diff --git a/src/arch/i386/Makefile.inc b/src/arch/i386/Makefile.inc index 24fd02abab..f308fa029b 100644 --- a/src/arch/i386/Makefile.inc +++ b/src/arch/i386/Makefile.inc @@ -25,8 +25,8 @@ endif ifeq ($(CONFIG_AP_CODE_IN_CAR),y) COREBOOT_ROM_DEPENDENCIES+=$(obj)/coreboot_ap endif -ifeq ($(CONFIG_GEODE_VSA),y) -COREBOOT_ROM_DEPENDENCIES+=$(CONFIG_VSA_FILE) +ifeq ($(CONFIG_GEODE_VSA_FILE),y) +COREBOOT_ROM_DEPENDENCIES+=$(CONFIG_VSA_FILENAME) endif $(obj)/coreboot.rom: $(obj)/coreboot.pre $(obj)/coreboot_ram $(CBFSTOOL) $(call strip_quotes,$(COREBOOT_ROM_DEPENDENCIES)) @@ -55,9 +55,9 @@ ifeq ($(CONFIG_BOOTSPLASH),y) @printf " BOOTSPLASH $(CONFIG_FALLBACK_BOOTSPLASH_FILE)\n" $(CBFSTOOL) $@.tmp add $(CONFIG_FALLBACK_BOOTSPLASH_FILE) bootsplash.jpg bootsplash endif -ifeq ($(CONFIG_GEODE_VSA),y) - @printf " VSA $(CONFIG_VSA_FILE)\n" - $(OBJCOPY) --set-start 0x20 --adjust-vma 0x60000 -I binary -O elf32-i386 -B i386 $(CONFIG_VSA_FILE) $(obj)/vsa.o +ifeq ($(CONFIG_GEODE_VSA_FILE),y) + @printf " VSA $(CONFIG_VSA_FILENAME)\n" + $(OBJCOPY) --set-start 0x20 --adjust-vma 0x60000 -I binary -O elf32-i386 -B i386 $(CONFIG_VSA_FILENAME) $(obj)/vsa.o $(LD) -e 0x60020 --section-start .data=0x60000 $(obj)/vsa.o -o $(obj)/vsa.elf $(CBFSTOOL) $@.tmp add-stage $(obj)/vsa.elf vsa endif diff --git a/src/cpu/amd/model_gx2/Kconfig b/src/cpu/amd/model_gx2/Kconfig index 3eaddca379..610120a3bf 100644 --- a/src/cpu/amd/model_gx2/Kconfig +++ b/src/cpu/amd/model_gx2/Kconfig @@ -31,6 +31,12 @@ config DCACHE_RAM_SIZE depends on CPU_AMD_GX2 config GEODE_VSA + bool + default y + depends on CPU_AMD_GX2 + select PCI_OPTION_ROM_RUN_REALMODE + +config GEODE_VSA_FILE bool "Add a VSA image" depends on CPU_AMD_GX2 help @@ -40,9 +46,9 @@ config GEODE_VSA You will be able to specify the location and file name of the image later. -config VSA_FILE +config VSA_FILENAME string "AMD Geode GX2 VSA path and filename" - depends on GEODE_VSA && CPU_AMD_GX2 + depends on GEODE_VSA_FILE && CPU_AMD_GX2 default "gpl_vsa_gx_102.bin" help The path and filename of the file to use as VSA. diff --git a/src/cpu/amd/model_lx/Kconfig b/src/cpu/amd/model_lx/Kconfig index 66e20ec45e..07bbce4f0b 100644 --- a/src/cpu/amd/model_lx/Kconfig +++ b/src/cpu/amd/model_lx/Kconfig @@ -12,6 +12,12 @@ config DCACHE_RAM_SIZE depends on CPU_AMD_LX config GEODE_VSA + bool + default y + depends on CPU_AMD_LX + select PCI_OPTION_ROM_RUN_REALMODE + +config GEODE_VSA_FILE bool "Add a VSA image" depends on CPU_AMD_LX help @@ -21,9 +27,9 @@ config GEODE_VSA You will be able to specify the location and file name of the image later. -config VSA_FILE +config VSA_FILENAME string "AMD Geode LX VSA path and filename" - depends on GEODE_VSA && CPU_AMD_LX + depends on GEODE_VSA_FILE && CPU_AMD_LX default "gpl_vsa_lx_102.bin" help The path and filename of the file to use as VSA. diff --git a/src/devices/oprom/x86.c b/src/devices/oprom/x86.c index ca08b0657d..4ed0ff8709 100644 --- a/src/devices/oprom/x86.c +++ b/src/devices/oprom/x86.c @@ -37,7 +37,6 @@ void x86_exception(struct eregs *info); extern unsigned char __idt_handler, __idt_handler_size; extern unsigned char __realmode_code, __realmode_code_size; extern unsigned char __run_optionrom, __run_interrupt; -extern unsigned char __run_vsa; void (*run_optionrom)(u32 devfn) __attribute__((regparm(0))) = (void *)&__run_optionrom; void (*vga_enable_console)(void) __attribute__((regparm(0))) = (void *)&__run_interrupt; @@ -167,11 +166,12 @@ void run_bios(struct device *dev, unsigned long addr) #include #include +extern unsigned char __run_vsa; +void (*run_vsa)(u32 smm, u32 sysmem) __attribute__((regparm(0))) = (void *)&__run_vsa; + #define VSA2_BUFFER 0x60000 #define VSA2_ENTRY_POINT 0x60020 -void (*run_vsa)(u32 smm, u32 sysmem) __attribute__((regparm(0))) = (void *)&__run_vsa; - // TODO move to a header file. void do_vsmbios(void); diff --git a/src/northbridge/amd/gx2/Kconfig b/src/northbridge/amd/gx2/Kconfig index 4fa7ea6543..959a3c1a64 100644 --- a/src/northbridge/amd/gx2/Kconfig +++ b/src/northbridge/amd/gx2/Kconfig @@ -19,6 +19,5 @@ config NORTHBRIDGE_AMD_GX2 bool - # for VSM: - select PCI_OPTION_ROM_RUN_REALMODE + select GEODE_VSA diff --git a/src/northbridge/amd/lx/Kconfig b/src/northbridge/amd/lx/Kconfig index b6fd816d2e..57a485eedc 100644 --- a/src/northbridge/amd/lx/Kconfig +++ b/src/northbridge/amd/lx/Kconfig @@ -1,8 +1,7 @@ config NORTHBRIDGE_AMD_LX bool select HAVE_HIGH_TABLES - # for VSM: - select PCI_OPTION_ROM_RUN_REALMODE + select GEODE_VSA config VIDEO_MB int