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 <patrick.georgi@coresystems.de>
Acked-by: Ronald G. Minnich <rminnich@gmail.com>


git-svn-id: svn://svn.coreboot.org/coreboot/trunk@4494 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
Patrick Georgi 2009-08-05 10:48:43 +00:00
parent 8f95edaabd
commit f537407e5a
3 changed files with 14 additions and 4 deletions

View File

@ -70,6 +70,7 @@ __main:
* Normally this is copying from FLASH ROM to RAM. * Normally this is copying from FLASH ROM to RAM.
*/ */
movl %ebp, %esi movl %ebp, %esi
/* FIXME: look for a proper place for the stack */
movl $0x4000000, %esp movl $0x4000000, %esp
movl %esp, %ebp movl %esp, %ebp
pushl %esi pushl %esi
@ -142,6 +143,11 @@ str_copying_to_ram: .string "Uncompressing coreboot to RAM.\r\n"
#else #else
str_copying_to_ram: .string "Copying coreboot to RAM.\r\n" str_copying_to_ram: .string "Copying coreboot to RAM.\r\n"
#endif #endif
str_pre_main: .string "Jumping to coreboot.\r\n"
.previous
#endif /* ASM_CONSOLE_LOGLEVEL > BIOS_DEBUG */
#if CONFIG_CBFS == 1 #if CONFIG_CBFS == 1
# if CONFIG_USE_FALLBACK_IMAGE == 1 # if CONFIG_USE_FALLBACK_IMAGE == 1
str_coreboot_ram_name: .string "fallback/coreboot_ram" 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" str_coreboot_ram_name: .string "normal/coreboot_ram"
# endif # endif
#endif #endif
str_pre_main: .string "Jumping to coreboot.\r\n"
.previous
#endif /* ASM_CONSOLE_LOGLEVEL > BIOS_DEBUG */
#endif /* CONFIG_USE_DCACHE_RAM */ #endif /* CONFIG_USE_DCACHE_RAM */

View File

@ -35,7 +35,9 @@ static void irqdump()
- set ADDDECTL (now done in raminit.c in cpu/amd/sc520 - set ADDDECTL (now done in raminit.c in cpu/amd/sc520
*/ */
static void enable_dev(struct device *dev) { static void enable_dev(struct device *dev) {
#if !CONFIG_CBFS
extern unsigned char *rom_start, *rom_end; extern unsigned char *rom_start, *rom_end;
#endif
volatile struct mmcrpic *pic = MMCRPIC; volatile struct mmcrpic *pic = MMCRPIC;
volatile struct mmcr *mmcr = MMCRDEFAULT; volatile struct mmcr *mmcr = MMCRDEFAULT;
@ -134,10 +136,12 @@ static void enable_dev(struct device *dev) {
/* follow fuctory here */ /* follow fuctory here */
mmcr->dmacontrol.extchanmapa = 0x3210; mmcr->dmacontrol.extchanmapa = 0x3210;
#if !CONFIG_CBFS
/* hack for IDIOTIC need to fix rom_start */ /* hack for IDIOTIC need to fix rom_start */
printk_err("Patching rom_start due to sc520 limits\n"); printk_err("Patching rom_start due to sc520 limits\n");
rom_start = 0x2000000 + 0x40000; rom_start = 0x2000000 + 0x40000;
rom_end = rom_start + CONFIG_PAYLOAD_SIZE - 1; rom_end = rom_start + CONFIG_PAYLOAD_SIZE - 1;
#endif
} }

View File

@ -35,7 +35,9 @@ static void irqdump()
- set ADDDECTL (now done in raminit.c in cpu/amd/sc520 - set ADDDECTL (now done in raminit.c in cpu/amd/sc520
*/ */
static void enable_dev(struct device *dev) { static void enable_dev(struct device *dev) {
#if !CONFIG_CBFS
extern unsigned char *rom_start, *rom_end; extern unsigned char *rom_start, *rom_end;
#endif
volatile struct mmcrpic *pic = MMCRPIC; volatile struct mmcrpic *pic = MMCRPIC;
volatile struct mmcr *mmcr = MMCRDEFAULT; volatile struct mmcr *mmcr = MMCRDEFAULT;
@ -139,10 +141,12 @@ static void enable_dev(struct device *dev) {
mmcr->dmacontrol.extchanmapa = 0xf210; mmcr->dmacontrol.extchanmapa = 0xf210;
mmcr->dmacontrol.extchanmapb = 0xffff; mmcr->dmacontrol.extchanmapb = 0xffff;
#if !CONFIG_CBFS
/* hack for IDIOTIC need to fix rom_start */ /* hack for IDIOTIC need to fix rom_start */
printk_err("Patching rom_start due to sc520 limits\n"); printk_err("Patching rom_start due to sc520 limits\n");
rom_start = 0x09400000 + 0xe0000; rom_start = 0x09400000 + 0xe0000;
rom_end = rom_start + CONFIG_PAYLOAD_SIZE - 1; rom_end = rom_start + CONFIG_PAYLOAD_SIZE - 1;
#endif
printk_err("TS5300 EXIT %s\n", __func__); printk_err("TS5300 EXIT %s\n", __func__);