AGESA: Refactor HUDSON_SATA_MODE
Expose one CONFIG_ variable instead of seven to C preprocessor. Change-Id: Ib815127561d320a5e8f8e6ef168933d81809521e Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com> Reviewed-on: http://review.coreboot.org/7494 Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com> Tested-by: build bot (Jenkins)
This commit is contained in:
parent
3bff5d9064
commit
84693d3dd4
|
@ -28,6 +28,7 @@
|
||||||
#if IS_ENABLED(CONFIG_HUDSON_IMC_FWM)
|
#if IS_ENABLED(CONFIG_HUDSON_IMC_FWM)
|
||||||
#include "imc.h"
|
#include "imc.h"
|
||||||
#endif
|
#endif
|
||||||
|
#include "hudson.h"
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
static AGESA_STATUS Fch_Oem_config(UINT32 Func, UINT32 FchData, VOID *ConfigPtr);
|
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");
|
printk(BIOS_DEBUG, "\nFch OEM config in INIT RESET\n");
|
||||||
//FchParams_reset->EcChannel0 = TRUE; /* logical devicd 3 */
|
//FchParams_reset->EcChannel0 = TRUE; /* logical devicd 3 */
|
||||||
FchParams->LegacyFree = CONFIG_HUDSON_LEGACY_FREE;
|
FchParams->LegacyFree = CONFIG_HUDSON_LEGACY_FREE;
|
||||||
FchParams->FchReset.SataEnable = CONFIG_HUDSON_SATA_IDE || CONFIG_HUDSON_SATA_AHCI;
|
FchParams->FchReset.SataEnable = hudson_sata_enable();
|
||||||
FchParams->FchReset.IdeEnable = CONFIG_HUDSON_SATA_IDE || CONFIG_HUDSON_SATA_LEGACY_IDE;
|
FchParams->FchReset.IdeEnable = hudson_ide_enable();
|
||||||
FchParams->FchReset.Xhci0Enable = IS_ENABLED(CONFIG_HUDSON_XHCI_ENABLE);
|
FchParams->FchReset.Xhci0Enable = IS_ENABLED(CONFIG_HUDSON_XHCI_ENABLE);
|
||||||
FchParams->FchReset.Xhci1Enable = FALSE;
|
FchParams->FchReset.Xhci1Enable = FALSE;
|
||||||
} else if (StdHeader->Func == AMD_INIT_ENV) {
|
} else if (StdHeader->Func == AMD_INIT_ENV) {
|
||||||
|
|
|
@ -140,67 +140,49 @@ config AMD_PUBKEY_FILE
|
||||||
string "AMD public Key"
|
string "AMD public Key"
|
||||||
default "3rdparty/southbridge/amd/avalon/PSP/AmdPubKey.bin" if CPU_AMD_AGESA_00730F01
|
default "3rdparty/southbridge/amd/avalon/PSP/AmdPubKey.bin" if CPU_AMD_AGESA_00730F01
|
||||||
|
|
||||||
choice
|
config HUDSON_SATA_MODE
|
||||||
prompt "SATA Mode"
|
int "SATA Mode"
|
||||||
default HUDSON_SATA_IDE
|
default 0
|
||||||
|
range 0 6
|
||||||
help
|
help
|
||||||
Select the mode in which SATA should be driven. NATIVE AHCI, or RAID.
|
Select the mode in which SATA should be driven. NATIVE AHCI, or RAID.
|
||||||
The default is NATIVE.
|
The default is NATIVE.
|
||||||
|
0: NATIVE mode does not require a ROM.
|
||||||
config HUDSON_SATA_IDE
|
1: RAID mode must have the two ROM files.
|
||||||
bool "NATIVE"
|
2: AHCI may work with or without AHCI ROM. It depends on the payload support.
|
||||||
help
|
|
||||||
NATIVE is the default mode and does not require a ROM.
|
|
||||||
|
|
||||||
config HUDSON_SATA_RAID
|
|
||||||
bool "RAID"
|
|
||||||
help
|
|
||||||
HUDSON RAID mode must have the two required ROM files.
|
|
||||||
|
|
||||||
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.
|
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_LEGACY_IDE
|
comment "NATIVE"
|
||||||
bool "LEGACY IDE"
|
depends on HUDSON_SATA_MODE = 0
|
||||||
help
|
|
||||||
TODO
|
|
||||||
|
|
||||||
config HUDSON_SATA_IDE2AHCI
|
comment "RAID"
|
||||||
bool "IDE to AHCI"
|
depends on HUDSON_SATA_MODE = 1
|
||||||
help
|
|
||||||
TODO
|
|
||||||
|
|
||||||
config HUDSON_SATA_AHCI7804
|
comment "AHCI"
|
||||||
bool "AHCI7804"
|
depends on HUDSON_SATA_MODE = 2
|
||||||
help
|
|
||||||
AHCI ROM Required, and AMD driver required in the OS.
|
|
||||||
|
|
||||||
config HUDSON_SATA_IDE2AHCI7804
|
comment "LEGACY IDE"
|
||||||
bool "IDE to AHCI7804"
|
depends on HUDSON_SATA_MODE = 3
|
||||||
help
|
|
||||||
AHCI ROM Required, and AMD driver required in the OS.
|
|
||||||
|
|
||||||
endchoice
|
comment "IDE to AHCI"
|
||||||
|
depends on HUDSON_SATA_MODE = 4
|
||||||
|
|
||||||
config HUDSON_SATA_MODE
|
comment "AHCI7804"
|
||||||
hex
|
depends on HUDSON_SATA_MODE = 5
|
||||||
depends on (HUDSON_SATA_IDE || HUDSON_SATA_RAID || HUDSON_SATA_AHCI)
|
|
||||||
default "0x0" if HUDSON_SATA_IDE
|
comment "IDE to AHCI7804"
|
||||||
default "0x1" if HUDSON_SATA_RAID
|
depends on HUDSON_SATA_MODE = 6
|
||||||
default "0x2" if HUDSON_SATA_AHCI
|
|
||||||
default "0x3" if HUDSON_SATA_LEGACY_IDE
|
if HUDSON_SATA_MODE = 2 || HUDSON_SATA_MODE = 5
|
||||||
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
|
config AHCI_ROM_ID
|
||||||
string "AHCI device PCI IDs"
|
string "AHCI device PCI IDs"
|
||||||
default "1022,7801" if HUDSON_SATA_AHCI
|
default "1022,7801" if HUDSON_SATA_MODE = 2
|
||||||
default "1022,7804" if HUDSON_SATA_AHCI7804
|
default "1022,7804" if HUDSON_SATA_MODE = 5
|
||||||
|
|
||||||
config HUDSON_AHCI_ROM
|
config HUDSON_AHCI_ROM
|
||||||
bool "Add a AHCI ROM"
|
bool "Add a AHCI ROM"
|
||||||
|
@ -209,9 +191,11 @@ config AHCI_ROM_FILE
|
||||||
string "AHCI ROM path and filename"
|
string "AHCI ROM path and filename"
|
||||||
depends on HUDSON_AHCI_ROM
|
depends on HUDSON_AHCI_ROM
|
||||||
default "src/southbridge/amd/agesa/hudson/ahci.bin"
|
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
|
config RAID_ROM_ID
|
||||||
string "RAID device PCI IDs"
|
string "RAID device PCI IDs"
|
||||||
default "1022,7802"
|
default "1022,7802"
|
||||||
|
@ -220,23 +204,21 @@ config RAID_ROM_ID
|
||||||
|
|
||||||
config RAID_ROM_FILE
|
config RAID_ROM_FILE
|
||||||
string "RAID ROM path and filename"
|
string "RAID ROM path and filename"
|
||||||
depends on HUDSON_SATA_RAID
|
|
||||||
default "src/southbridge/amd/agesa/hudson/raid.bin"
|
default "src/southbridge/amd/agesa/hudson/raid.bin"
|
||||||
|
|
||||||
config RAID_MISC_ROM_FILE
|
config RAID_MISC_ROM_FILE
|
||||||
string "RAID Misc ROM path and filename"
|
string "RAID Misc ROM path and filename"
|
||||||
default "src/southbridge/amd/agesa/hudson/misc.bin"
|
default "src/southbridge/amd/agesa/hudson/misc.bin"
|
||||||
depends on HUDSON_SATA_RAID
|
|
||||||
|
|
||||||
config RAID_MISC_ROM_POSITION
|
config RAID_MISC_ROM_POSITION
|
||||||
hex "RAID Misc ROM Position"
|
hex "RAID Misc ROM Position"
|
||||||
default 0xFFF00000
|
default 0xFFF00000
|
||||||
depends on HUDSON_SATA_RAID
|
|
||||||
help
|
help
|
||||||
The RAID ROM requires that the MISC ROM is located between the range
|
The RAID ROM requires that the MISC ROM is located between the range
|
||||||
0xFFF0_0000 to 0xFFF0_FFFF. Also, it must 1K bytes aligned.
|
0xFFF0_0000 to 0xFFF0_FFFF. Also, it must 1K bytes aligned.
|
||||||
The CONFIG_ROM_SIZE must be larger than 0x100000.
|
The CONFIG_ROM_SIZE must be larger than 0x100000.
|
||||||
endif # HUDSON_SATA_RAID
|
|
||||||
|
endif
|
||||||
|
|
||||||
config HUDSON_LEGACY_FREE
|
config HUDSON_LEGACY_FREE
|
||||||
bool "System is legacy free"
|
bool "System is legacy free"
|
||||||
|
|
|
@ -149,14 +149,12 @@ hudson/gec-type := raw
|
||||||
hudson/gec-required := Hudson Gigabit Ethernet Controller Firmware (Contact your AMD representative)
|
hudson/gec-required := Hudson Gigabit Ethernet Controller Firmware (Contact your AMD representative)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
#ifeq ($(CONFIG_HUDSON_SATA_AHCI), y)
|
|
||||||
ifdef CONFIG_HUDSON_AHCI_ROM
|
ifdef CONFIG_HUDSON_AHCI_ROM
|
||||||
stripped_ahci_rom_id = $(call strip_quotes,$(CONFIG_AHCI_ROM_ID))
|
stripped_ahci_rom_id = $(call strip_quotes,$(CONFIG_AHCI_ROM_ID))
|
||||||
cbfs-files-y += pci$(stripped_ahci_rom_id).rom
|
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-file := $(call strip_quotes,$(CONFIG_AHCI_ROM_FILE))
|
||||||
pci$(stripped_ahci_rom_id).rom-type := optionrom
|
pci$(stripped_ahci_rom_id).rom-type := optionrom
|
||||||
pci$(stripped_ahci_rom_id).rom-required := Hudson AHCI Option ROM (Contact your AMD representative)
|
pci$(stripped_ahci_rom_id).rom-required := Hudson AHCI Option ROM (Contact your AMD representative)
|
||||||
#endif
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(CONFIG_HUDSON_PSP), y)
|
ifeq ($(CONFIG_HUDSON_PSP), y)
|
||||||
|
|
|
@ -55,6 +55,18 @@
|
||||||
#define SPI_ROM_ENABLE 0x02
|
#define SPI_ROM_ENABLE 0x02
|
||||||
#define SPI_BASE_ADDRESS 0xFEC10000
|
#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__
|
#ifndef __SMM__
|
||||||
|
|
||||||
void pm_write8(u8 reg, u8 value);
|
void pm_write8(u8 reg, u8 value);
|
||||||
|
|
Loading…
Reference in New Issue