[OpenBIOS] [commit] r1244 - trunk/openbios-devel/arch/sparc64
repository service
svn at openbios.org
Mon Dec 16 19:06:25 CET 2013
Author: mcayland
Date: Mon Dec 16 19:06:24 2013
New Revision: 1244
URL: http://tracker.coreboot.org/trac/openbios/changeset/1244
Log:
SPARC64: move retained area from top of physical RAM to static variable
Currently the low-level SPARC entry routine reserves the top of physical RAM
which is also where we happen to store our retained memory structure; because
of the way this memory is mapped, a fault is generated when trying to access
the retained memory area outside of OpenBIOS.
Move the retained area into a static variable for the moment; the existing
routine is unlikely to survive a reboot anyhow but at least we can store the
requested information for analysis later.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland at ilande.co.uk>
Modified:
trunk/openbios-devel/arch/sparc64/ofmem_sparc64.c
Modified: trunk/openbios-devel/arch/sparc64/ofmem_sparc64.c
==============================================================================
--- trunk/openbios-devel/arch/sparc64/ofmem_sparc64.c Mon Dec 16 19:06:22 2013 (r1243)
+++ trunk/openbios-devel/arch/sparc64/ofmem_sparc64.c Mon Dec 16 19:06:24 2013 (r1244)
@@ -29,6 +29,7 @@
#define OFMEM (&s_ofmem_data.ofmem)
#define TOP_OF_RAM (s_ofmem_data.memory + MEMSIZE)
+static retain_t s_retained;
translation_t **g_ofmem_translations = &s_ofmem_data.ofmem.trans;
ucell *va2ttedata = 0;
@@ -41,7 +42,7 @@
static ucell get_heap_top( void )
{
- return (ucell)(TOP_OF_RAM - ALIGN_SIZE(sizeof(retain_t), 8));
+ return (ucell)TOP_OF_RAM;
}
ofmem_t* ofmem_arch_get_private(void)
@@ -85,8 +86,7 @@
retain_t *ofmem_arch_get_retained(void)
{
- /* Retained area is at the top of physical RAM */
- return (retain_t *)(qemu_mem_size - sizeof(retain_t));
+ return (&s_retained);
}
int ofmem_arch_get_translation_entry_size(void)
More information about the OpenBIOS
mailing list