diff options
author | Patrick Georgi <patrick.georgi@coresystems.de> | 2009-12-21 12:32:29 +0000 |
---|---|---|
committer | Patrick Georgi <patrick.georgi@coresystems.de> | 2009-12-21 12:32:29 +0000 |
commit | 7a27fc558d8ae47abe74d5a958b7a8b81797a3e7 (patch) | |
tree | 313cb733a5861afbca2b4d01983fd43cc9ecdf64 /src/cpu | |
parent | eecaba8b6cfdab1b082e84e3bdfc56a96268cb4e (diff) | |
download | coreboot-7a27fc558d8ae47abe74d5a958b7a8b81797a3e7.tar.xz |
Make coreboot load VSA from CBFS on amd/gx2.
You have to convert the VSA bios image to ELF using the following
commands (assuming i386/32bit binutils, if in doubt, use crossgcc's
i386-elf-* tools):
objcopy --set-start 0x20 --adjust-vma 0x60000 -I binary -O elf32-i386 -B i386 vsa.binary vsa.o
ld -e 0x60020 --section-start .data=0x60000 vsa.o -o vsa.elf
Then, after build, use
cbfstool coreboot.rom add-stage vsa.elf vsa l
to add it to the image.
Signed-off-by: Patrick Georgi <patrick.georgi@coresystems.de>
Acked-by: Peter Stuge <peter@stuge.se>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@4986 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'src/cpu')
-rw-r--r-- | src/cpu/amd/model_gx2/vsmsetup.c | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/src/cpu/amd/model_gx2/vsmsetup.c b/src/cpu/amd/model_gx2/vsmsetup.c index 251d580691..7fa33fc0c2 100644 --- a/src/cpu/amd/model_gx2/vsmsetup.c +++ b/src/cpu/amd/model_gx2/vsmsetup.c @@ -33,6 +33,7 @@ #include <cpu/x86/lapic.h> #include <cpu/x86/cache.h> #include <arch/io.h> +#include <cbfs.h> u32 VSA_vrRead(u16 classIndex); void do_vsmbios(void); @@ -190,18 +191,11 @@ void do_vsmbios(void) /* Clear VSM BIOS data area. */ for (i = 0x400; i < 0x500; i++) *(volatile unsigned char *)i = 0; - /* set up cbfs and find the vsa file -- later */ -/* - init_archive(&archive); - - if (find_file(&archive, "blob/vsa", &file)) - die("FATAL: NO VSA found!\n"); - - if (process_file(&file, (void *)VSA2_BUFFER)) - die("FATAL: Processing /blob/vsa failed\n"); - */ + if ((unsigned int)cbfs_load_stage("vsa") != VSA2_ENTRY_POINT) { + printk_err("do_vsmbios: Failed to load VSA.\n"); + } + buf = VSA2_BUFFER; - buf = (unsigned char *)VSA2_BUFFER; printk_debug("buf[0x20] signature is %x:%x:%x:%x\n", buf[0x20], buf[0x21], buf[0x22], buf[0x23]); /* Check for POST code at start of vsainit.bin. If you don't see it, |