[LinuxBIOS] initram / xip issue
Jordan Crouse
jordan.crouse at amd.com
Sun Oct 7 15:39:31 CEST 2007
On 07/10/07 04:52 +0200, Stefan Reinauer wrote:
> Ok, here's my latest patch that makes initram callbacks to stage0 work
> in v3. It's not all that pretty, but it is the least ugly thing I could
> find.
>
> Stefan
>
> --
> coresystems GmbH • Brahmsstr. 16 • D-79104 Freiburg i. Br.
> Tel.: +49 761 7668825 • Fax: +49 761 7664613
> Email: info at coresystems.de • http://www.coresystems.de/
> Registergericht: Amtsgericht Freiburg • HRB 7656
> Geschäftsführer: Stefan Reinauer • Ust-IdNr.: DE245674866
> This patch against LinuxBIOSv3 enables calls from initram (freely located XIP
> code) to stage0 (fixed location code) by forcing gcc to create an absolute call
> instruction to stage0.
>
> Signed-off-by: Stefan Reinauer <stepan at coresystems.de>
>
> Index: include/console.h
> ===================================================================
> --- include/console.h (revision 503)
> +++ include/console.h (working copy)
> @@ -46,7 +46,13 @@
> };
>
> //
> +#ifndef XIP
I really don't like the idea of singling out XIP segements. I vote we
changed this to SHARED, and do this for all segments, regardless of where
they live. The code impact should be minimal.
> int printk(int msg_level, const char *fmt, ...)
> __attribute__((format (printf, 2, 3)));
> +#else
> +int stage0printk(int msg_level, const char *fmt, ...)
> + __attribute__((format (printf, 2, 3)));
> +int (*printk)(int msg_level, const char *fmt, ...) = stage0printk;
> +#endif
There has got to be a way that we can turn this into a general
purpose macro to make it easy for developers to mark new functions
as shared without understanding whats happening above
> Index: arch/x86/ldscript.ld
> ===================================================================
> --- arch/x86/ldscript.ld (revision 503)
> +++ arch/x86/ldscript.ld (working copy)
> @@ -33,10 +33,13 @@
> .stage0_1 . : {
> _stage0_1 = .;
> *(.text);
> + *(.text.*)
> + *(.rodata)
> + *(.rodata.*)
> + *(.got)
> + *(.got.*)
How much size does the GOT add?
Jordan
--
Jordan Crouse
Systems Software Development Engineer
Advanced Micro Devices, Inc.
More information about the coreboot
mailing list