From 84693d3dd40bdb291ec8dd92f99a4349da0db62b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ky=C3=B6sti=20M=C3=A4lkki?= Date: Fri, 14 Nov 2014 20:56:43 +0200 Subject: AGESA: Refactor HUDSON_SATA_MODE MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Expose one CONFIG_ variable instead of seven to C preprocessor. Change-Id: Ib815127561d320a5e8f8e6ef168933d81809521e Signed-off-by: Kyösti Mälkki Reviewed-on: http://review.coreboot.org/7494 Reviewed-by: Edward O'Callaghan Tested-by: build bot (Jenkins) --- src/mainboard/amd/olivehillplus/BiosCallOuts.c | 5 +- src/southbridge/amd/agesa/hudson/Kconfig | 94 +++++++++++--------------- src/southbridge/amd/agesa/hudson/Makefile.inc | 2 - src/southbridge/amd/agesa/hudson/hudson.h | 12 ++++ 4 files changed, 53 insertions(+), 60 deletions(-) (limited to 'src') diff --git a/src/mainboard/amd/olivehillplus/BiosCallOuts.c b/src/mainboard/amd/olivehillplus/BiosCallOuts.c index 5720250939..cc41ec8631 100644 --- a/src/mainboard/amd/olivehillplus/BiosCallOuts.c +++ b/src/mainboard/amd/olivehillplus/BiosCallOuts.c @@ -28,6 +28,7 @@ #if IS_ENABLED(CONFIG_HUDSON_IMC_FWM) #include "imc.h" #endif +#include "hudson.h" #include static AGESA_STATUS Fch_Oem_config(UINT32 Func, UINT32 FchData, VOID *ConfigPtr); @@ -268,8 +269,8 @@ static AGESA_STATUS Fch_Oem_config(UINT32 Func, UINT32 FchData, VOID *ConfigPtr) printk(BIOS_DEBUG, "\nFch OEM config in INIT RESET\n"); //FchParams_reset->EcChannel0 = TRUE; /* logical devicd 3 */ FchParams->LegacyFree = CONFIG_HUDSON_LEGACY_FREE; - FchParams->FchReset.SataEnable = CONFIG_HUDSON_SATA_IDE || CONFIG_HUDSON_SATA_AHCI; - FchParams->FchReset.IdeEnable = CONFIG_HUDSON_SATA_IDE || CONFIG_HUDSON_SATA_LEGACY_IDE; + FchParams->FchReset.SataEnable = hudson_sata_enable(); + FchParams->FchReset.IdeEnable = hudson_ide_enable(); FchParams->FchReset.Xhci0Enable = IS_ENABLED(CONFIG_HUDSON_XHCI_ENABLE); FchParams->FchReset.Xhci1Enable = FALSE; } else if (StdHeader->Func == AMD_INIT_ENV) { diff --git a/src/southbridge/amd/agesa/hudson/Kconfig b/src/southbridge/amd/agesa/hudson/Kconfig index a2a43a428e..df7d76f5de 100644 --- a/src/southbridge/amd/agesa/hudson/Kconfig +++ b/src/southbridge/amd/agesa/hudson/Kconfig @@ -140,67 +140,49 @@ config AMD_PUBKEY_FILE string "AMD public Key" default "3rdparty/southbridge/amd/avalon/PSP/AmdPubKey.bin" if CPU_AMD_AGESA_00730F01 -choice - prompt "SATA Mode" - default HUDSON_SATA_IDE +config HUDSON_SATA_MODE + int "SATA Mode" + default 0 + range 0 6 help Select the mode in which SATA should be driven. NATIVE AHCI, or RAID. The default is NATIVE. + 0: NATIVE mode does not require a ROM. + 1: RAID mode must have the two ROM files. + 2: AHCI may work with or without AHCI ROM. It depends on the payload support. + For example, seabios does not require the AHCI ROM. + 3: LEGACY IDE + 4: IDE to AHCI + 5: AHCI7804: ROM Required, and AMD driver required in the OS. + 6: IDE to AHCI7804: ROM Required, and AMD driver required in the OS. -config HUDSON_SATA_IDE - bool "NATIVE" - help - NATIVE is the default mode and does not require a ROM. +comment "NATIVE" + depends on HUDSON_SATA_MODE = 0 -config HUDSON_SATA_RAID - bool "RAID" - help - HUDSON RAID mode must have the two required ROM files. +comment "RAID" + depends on HUDSON_SATA_MODE = 1 -config HUDSON_SATA_AHCI - bool "AHCI" - help - AHCI may work with or without AHCI ROM. It depends on the payload support. - For example, seabios does not require the AHCI ROM. +comment "AHCI" + depends on HUDSON_SATA_MODE = 2 -config HUDSON_SATA_LEGACY_IDE - bool "LEGACY IDE" - help - TODO +comment "LEGACY IDE" + depends on HUDSON_SATA_MODE = 3 -config HUDSON_SATA_IDE2AHCI - bool "IDE to AHCI" - help - TODO +comment "IDE to AHCI" + depends on HUDSON_SATA_MODE = 4 -config HUDSON_SATA_AHCI7804 - bool "AHCI7804" - help - AHCI ROM Required, and AMD driver required in the OS. +comment "AHCI7804" + depends on HUDSON_SATA_MODE = 5 -config HUDSON_SATA_IDE2AHCI7804 - bool "IDE to AHCI7804" - help - AHCI ROM Required, and AMD driver required in the OS. +comment "IDE to AHCI7804" + depends on HUDSON_SATA_MODE = 6 -endchoice +if HUDSON_SATA_MODE = 2 || HUDSON_SATA_MODE = 5 -config HUDSON_SATA_MODE - hex - depends on (HUDSON_SATA_IDE || HUDSON_SATA_RAID || HUDSON_SATA_AHCI) - default "0x0" if HUDSON_SATA_IDE - default "0x1" if HUDSON_SATA_RAID - default "0x2" if HUDSON_SATA_AHCI - default "0x3" if HUDSON_SATA_LEGACY_IDE - default "0x4" if HUDSON_SATA_IDE2AHCI - default "0x5" if HUDSON_SATA_AHCI7804 - default "0x6" if HUDSON_SATA_IDE2AHCI7804 - -if HUDSON_SATA_AHCI || HUDSON_SATA_AHCI7804 config AHCI_ROM_ID - string "AHCI device PCI IDs" - default "1022,7801" if HUDSON_SATA_AHCI - default "1022,7804" if HUDSON_SATA_AHCI7804 + string "AHCI device PCI IDs" + default "1022,7801" if HUDSON_SATA_MODE = 2 + default "1022,7804" if HUDSON_SATA_MODE = 5 config HUDSON_AHCI_ROM bool "Add a AHCI ROM" @@ -209,9 +191,11 @@ config AHCI_ROM_FILE string "AHCI ROM path and filename" depends on HUDSON_AHCI_ROM default "src/southbridge/amd/agesa/hudson/ahci.bin" -endif # HUDSON_SATA_AHCI || HUDSON_SATA_AHCI7804 -if HUDSON_SATA_RAID +endif + +if HUDSON_SATA_MODE = 1 + config RAID_ROM_ID string "RAID device PCI IDs" default "1022,7802" @@ -220,23 +204,21 @@ config RAID_ROM_ID config RAID_ROM_FILE string "RAID ROM path and filename" - depends on HUDSON_SATA_RAID default "src/southbridge/amd/agesa/hudson/raid.bin" config RAID_MISC_ROM_FILE - string "RAID Misc ROM path and filename" - default "src/southbridge/amd/agesa/hudson/misc.bin" - depends on HUDSON_SATA_RAID + string "RAID Misc ROM path and filename" + default "src/southbridge/amd/agesa/hudson/misc.bin" config RAID_MISC_ROM_POSITION hex "RAID Misc ROM Position" default 0xFFF00000 - depends on HUDSON_SATA_RAID help The RAID ROM requires that the MISC ROM is located between the range 0xFFF0_0000 to 0xFFF0_FFFF. Also, it must 1K bytes aligned. The CONFIG_ROM_SIZE must be larger than 0x100000. -endif # HUDSON_SATA_RAID + +endif config HUDSON_LEGACY_FREE bool "System is legacy free" diff --git a/src/southbridge/amd/agesa/hudson/Makefile.inc b/src/southbridge/amd/agesa/hudson/Makefile.inc index 5fab10fe19..4b1eed696c 100644 --- a/src/southbridge/amd/agesa/hudson/Makefile.inc +++ b/src/southbridge/amd/agesa/hudson/Makefile.inc @@ -149,14 +149,12 @@ hudson/gec-type := raw hudson/gec-required := Hudson Gigabit Ethernet Controller Firmware (Contact your AMD representative) endif -#ifeq ($(CONFIG_HUDSON_SATA_AHCI), y) ifdef CONFIG_HUDSON_AHCI_ROM stripped_ahci_rom_id = $(call strip_quotes,$(CONFIG_AHCI_ROM_ID)) cbfs-files-y += pci$(stripped_ahci_rom_id).rom pci$(stripped_ahci_rom_id).rom-file := $(call strip_quotes,$(CONFIG_AHCI_ROM_FILE)) pci$(stripped_ahci_rom_id).rom-type := optionrom pci$(stripped_ahci_rom_id).rom-required := Hudson AHCI Option ROM (Contact your AMD representative) -#endif endif ifeq ($(CONFIG_HUDSON_PSP), y) diff --git a/src/southbridge/amd/agesa/hudson/hudson.h b/src/southbridge/amd/agesa/hudson/hudson.h index 286e11ca37..90c3205ed1 100644 --- a/src/southbridge/amd/agesa/hudson/hudson.h +++ b/src/southbridge/amd/agesa/hudson/hudson.h @@ -55,6 +55,18 @@ #define SPI_ROM_ENABLE 0x02 #define SPI_BASE_ADDRESS 0xFEC10000 +static inline int hudson_sata_enable(void) +{ + /* True if IDE or AHCI. */ + return (CONFIG_HUDSON_SATA_MODE == 0) || (CONFIG_HUDSON_SATA_MODE == 2); +} + +static inline int hudson_ide_enable(void) +{ + /* True if IDE or LEGACY IDE. */ + return (CONFIG_HUDSON_SATA_MODE == 0) || (CONFIG_HUDSON_SATA_MODE == 3); +} + #ifndef __SMM__ void pm_write8(u8 reg, u8 value); -- cgit v1.2.3