From f537407e5ae1885a3f434412dd35f5f28f78343f Mon Sep 17 00:00:00 2001 From: Patrick Georgi Date: Wed, 5 Aug 2009 10:48:43 +0000 Subject: [PATCH] Fix the generic code for copying and running coreboot_ram in case certain configuration options are disabled. The strings were just at the wrong place. Two boards fix up some variables for romstream. This isn't necessary (or possible) when CBFS is active, as there is no romstream. It would be nicer to have them depend on CONFIG_ROM_PAYLOAD, but there isn't any invariant that forces that to be inactive if CBFS is active, and this patch is supposed to be small, esp. as the stream loaders are on the way out. Signed-off-by: Patrick Georgi Acked-by: Ronald G. Minnich git-svn-id: svn://svn.coreboot.org/coreboot/trunk@4494 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1 --- src/arch/i386/init/crt0.S.lb | 10 ++++++---- src/mainboard/digitallogic/msm586seg/mainboard.c | 4 ++++ src/mainboard/technologic/ts5300/mainboard.c | 4 ++++ 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/arch/i386/init/crt0.S.lb b/src/arch/i386/init/crt0.S.lb index 3865ba3c3f..9e8968510d 100644 --- a/src/arch/i386/init/crt0.S.lb +++ b/src/arch/i386/init/crt0.S.lb @@ -70,6 +70,7 @@ __main: * Normally this is copying from FLASH ROM to RAM. */ movl %ebp, %esi + /* FIXME: look for a proper place for the stack */ movl $0x4000000, %esp movl %esp, %ebp pushl %esi @@ -142,6 +143,11 @@ str_copying_to_ram: .string "Uncompressing coreboot to RAM.\r\n" #else str_copying_to_ram: .string "Copying coreboot to RAM.\r\n" #endif +str_pre_main: .string "Jumping to coreboot.\r\n" +.previous + +#endif /* ASM_CONSOLE_LOGLEVEL > BIOS_DEBUG */ + #if CONFIG_CBFS == 1 # if CONFIG_USE_FALLBACK_IMAGE == 1 str_coreboot_ram_name: .string "fallback/coreboot_ram" @@ -149,9 +155,5 @@ str_coreboot_ram_name: .string "fallback/coreboot_ram" str_coreboot_ram_name: .string "normal/coreboot_ram" # endif #endif -str_pre_main: .string "Jumping to coreboot.\r\n" -.previous - -#endif /* ASM_CONSOLE_LOGLEVEL > BIOS_DEBUG */ #endif /* CONFIG_USE_DCACHE_RAM */ diff --git a/src/mainboard/digitallogic/msm586seg/mainboard.c b/src/mainboard/digitallogic/msm586seg/mainboard.c index b8f2150e78..7bd8ac0910 100644 --- a/src/mainboard/digitallogic/msm586seg/mainboard.c +++ b/src/mainboard/digitallogic/msm586seg/mainboard.c @@ -35,7 +35,9 @@ static void irqdump() - set ADDDECTL (now done in raminit.c in cpu/amd/sc520 */ static void enable_dev(struct device *dev) { +#if !CONFIG_CBFS extern unsigned char *rom_start, *rom_end; +#endif volatile struct mmcrpic *pic = MMCRPIC; volatile struct mmcr *mmcr = MMCRDEFAULT; @@ -134,10 +136,12 @@ static void enable_dev(struct device *dev) { /* follow fuctory here */ mmcr->dmacontrol.extchanmapa = 0x3210; +#if !CONFIG_CBFS /* hack for IDIOTIC need to fix rom_start */ printk_err("Patching rom_start due to sc520 limits\n"); rom_start = 0x2000000 + 0x40000; rom_end = rom_start + CONFIG_PAYLOAD_SIZE - 1; +#endif } diff --git a/src/mainboard/technologic/ts5300/mainboard.c b/src/mainboard/technologic/ts5300/mainboard.c index 343dbdf73c..551c3e0a84 100644 --- a/src/mainboard/technologic/ts5300/mainboard.c +++ b/src/mainboard/technologic/ts5300/mainboard.c @@ -35,7 +35,9 @@ static void irqdump() - set ADDDECTL (now done in raminit.c in cpu/amd/sc520 */ static void enable_dev(struct device *dev) { +#if !CONFIG_CBFS extern unsigned char *rom_start, *rom_end; +#endif volatile struct mmcrpic *pic = MMCRPIC; volatile struct mmcr *mmcr = MMCRDEFAULT; @@ -139,10 +141,12 @@ static void enable_dev(struct device *dev) { mmcr->dmacontrol.extchanmapa = 0xf210; mmcr->dmacontrol.extchanmapb = 0xffff; +#if !CONFIG_CBFS /* hack for IDIOTIC need to fix rom_start */ printk_err("Patching rom_start due to sc520 limits\n"); rom_start = 0x09400000 + 0xe0000; rom_end = rom_start + CONFIG_PAYLOAD_SIZE - 1; +#endif printk_err("TS5300 EXIT %s\n", __func__);