mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-05 11:00:15 +00:00
2975bba6df
U-Boot SPL is on 32-bit mvebu executed by the BootROM. And BootROM expects that U-Boot SPL returns execution back to the BootROM. Vectors during execution of U-Boot SPL should not be changed as BootROM does not expect it and uses its own vectors. So do not overwrite vectors in SPL build. Signed-off-by: Pali Rohár <pali@kernel.org>
369 lines
8.6 KiB
Text
369 lines
8.6 KiB
Text
if ARCH_MVEBU
|
|
|
|
config HAVE_MVEBU_EFUSE
|
|
bool
|
|
|
|
config ARMADA_32BIT
|
|
bool
|
|
select ARCH_MISC_INIT
|
|
select BOARD_EARLY_INIT_F
|
|
select CPU_V7A
|
|
select SPL_DM if SPL
|
|
select SPL_DM_SEQ_ALIAS if SPL
|
|
select SPL_OF_CONTROL if SPL
|
|
select SPL_SKIP_LOWLEVEL_INIT if SPL
|
|
select SPL_SIMPLE_BUS if SPL
|
|
select SUPPORT_SPL
|
|
select TRANSLATION_OFFSET
|
|
select SPL_SYS_NO_VECTOR_TABLE if SPL
|
|
|
|
config ARMADA_64BIT
|
|
bool
|
|
select ARM64
|
|
|
|
# ARMv7 SoCs...
|
|
config ARMADA_375
|
|
bool
|
|
select ARMADA_32BIT
|
|
|
|
config ARMADA_38X
|
|
bool
|
|
select ARMADA_32BIT
|
|
select HAVE_MVEBU_EFUSE
|
|
|
|
config ARMADA_38X_HS_IMPEDANCE_THRESH
|
|
hex "Armada 38x USB 2.0 High-Speed Impedance Threshold (0x0 - 0x7)"
|
|
depends on ARMADA_38X
|
|
default 0x6
|
|
range 0x0 0x7
|
|
|
|
config ARMADA_XP
|
|
bool
|
|
select ARMADA_32BIT
|
|
|
|
# ARMv8 SoCs...
|
|
config ARMADA_3700
|
|
bool
|
|
select ARM64
|
|
select HAVE_MVEBU_EFUSE
|
|
|
|
# Armada 7K and 8K are very similar - use only one Kconfig symbol for both
|
|
config ARMADA_8K
|
|
bool
|
|
select ARM64
|
|
|
|
# Armada PLL frequency (used for NAND clock generation)
|
|
config SYS_MVEBU_PLL_CLOCK
|
|
int
|
|
default "2000000000" if ARMADA_XP || ARMADA_3700 || ARMADA_8K || ARMADA_MSYS
|
|
default "1000000000" if ARMADA_38X || ARMADA_375
|
|
|
|
# Armada XP/38x SoC types...
|
|
config MV78230
|
|
bool
|
|
select ARMADA_XP
|
|
|
|
config MV78260
|
|
bool
|
|
select ARMADA_XP
|
|
imply CMD_SATA
|
|
|
|
config MV78460
|
|
bool
|
|
select ARMADA_XP
|
|
|
|
config ARMADA_MSYS
|
|
bool
|
|
select ARMADA_32BIT
|
|
|
|
config 98DX4251
|
|
bool
|
|
select ARMADA_MSYS
|
|
|
|
config 98DX3336
|
|
bool
|
|
select ARMADA_MSYS
|
|
|
|
config 98DX3236
|
|
bool
|
|
select ARMADA_MSYS
|
|
|
|
config 88F6820
|
|
bool
|
|
select ARMADA_38X
|
|
|
|
config CUSTOMER_BOARD_SUPPORT
|
|
bool
|
|
|
|
choice
|
|
prompt "Armada XP/375/38x/3700/7K/8K board select"
|
|
optional
|
|
|
|
config TARGET_CLEARFOG
|
|
bool "Support ClearFog"
|
|
select 88F6820
|
|
select BOARD_LATE_INIT
|
|
|
|
config TARGET_HELIOS4
|
|
bool "Support Helios4"
|
|
select 88F6820
|
|
|
|
config TARGET_MVEBU_ARMADA_37XX
|
|
bool "Support Armada 37xx platforms"
|
|
select ARMADA_3700
|
|
imply SCSI
|
|
|
|
config TARGET_DB_88F6720
|
|
bool "Support DB-88F6720 Armada 375"
|
|
select ARMADA_375
|
|
|
|
config TARGET_DB_88F6820_GP
|
|
bool "Support DB-88F6820-GP"
|
|
select 88F6820
|
|
|
|
config TARGET_DB_88F6820_AMC
|
|
bool "Support DB-88F6820-AMC"
|
|
select 88F6820
|
|
|
|
config TARGET_TURRIS_OMNIA
|
|
bool "Support Turris Omnia"
|
|
select 88F6820
|
|
select BOARD_LATE_INIT
|
|
select DM_I2C
|
|
select I2C_MUX
|
|
select I2C_MUX_PCA954x
|
|
select SPL_DRIVERS_MISC
|
|
select SPL_I2C_MUX
|
|
select SPL_SYS_MALLOC_SIMPLE
|
|
select SYS_I2C_MVTWSI
|
|
select ATSHA204A
|
|
|
|
config TARGET_TURRIS_MOX
|
|
bool "Support Turris Mox"
|
|
select ARMADA_3700
|
|
|
|
config TARGET_MVEBU_ARMADA_8K
|
|
bool "Support Armada 7k/8k platforms"
|
|
select ARMADA_8K
|
|
select BOARD_LATE_INIT
|
|
imply SCSI
|
|
|
|
config TARGET_OCTEONTX2_CN913x
|
|
bool "Support CN913x platforms"
|
|
select ARMADA_8K
|
|
imply BOARD_EARLY_INIT_R
|
|
select BOARD_LATE_INIT
|
|
imply SCSI
|
|
|
|
config TARGET_DB_MV784MP_GP
|
|
bool "Support db-mv784mp-gp"
|
|
select BOARD_ECC_SUPPORT
|
|
select MV78460
|
|
|
|
config TARGET_DS414
|
|
bool "Support Synology DS414"
|
|
select MV78230
|
|
|
|
config TARGET_MAXBCM
|
|
bool "Support maxbcm"
|
|
select BOARD_ECC_SUPPORT
|
|
select MV78460
|
|
|
|
config TARGET_THEADORABLE
|
|
bool "Support theadorable Armada XP"
|
|
select BOARD_LATE_INIT if USB
|
|
select MV78260
|
|
imply CMD_SATA
|
|
|
|
config TARGET_CONTROLCENTERDC
|
|
bool "Support CONTROLCENTERDC"
|
|
select 88F6820
|
|
select CUSTOMER_BOARD_SUPPORT
|
|
|
|
config TARGET_X530
|
|
bool "Support Allied Telesis x530"
|
|
select 88F6820
|
|
|
|
config TARGET_DB_XC3_24G4XG
|
|
bool "Support DB-XC3-24G4XG"
|
|
select 98DX3336
|
|
|
|
config TARGET_CRS3XX_98DX3236
|
|
bool "Support CRS3XX-98DX3236"
|
|
select 98DX3236
|
|
|
|
endchoice
|
|
|
|
choice
|
|
prompt "DDR bus width"
|
|
default DDR_64BIT
|
|
depends on ARMADA_XP
|
|
|
|
config DDR_64BIT
|
|
bool "64bit bus width"
|
|
|
|
config DDR_32BIT
|
|
bool "32bit bus width"
|
|
|
|
endchoice
|
|
|
|
config DDR_LOG_LEVEL
|
|
int "DDR training code log level"
|
|
depends on ARMADA_XP
|
|
default 0
|
|
range 0 3
|
|
help
|
|
Amount of information provided on error while running the DDR
|
|
training code. At level 0, provides an error code in a case of
|
|
failure, RL, WL errors and other algorithm failure. At level 1,
|
|
provides the D-Unit setup (SPD/Static configuration). At level 2,
|
|
provides the windows margin as a results of DQS centeralization.
|
|
At level 3, rovides the windows margin of each DQ as a results of
|
|
DQS centeralization.
|
|
|
|
config DDR_RESET_ON_TRAINING_FAILURE
|
|
bool "Reset the board on DDR training failure instead of hanging"
|
|
depends on ARMADA_38X || ARMADA_XP
|
|
help
|
|
If DDR training fails in SPL, reset the board instead of hanging.
|
|
Some boards are known to fail DDR training occasionally and an
|
|
immediate reset may be preferable to waiting until the board is
|
|
reset by watchdog (if there even is one).
|
|
|
|
Note that if booting via UART and the DDR training fails, the
|
|
device will still hang - it doesn't make sense to reset the board
|
|
in such a case.
|
|
|
|
config BOARD_ECC_SUPPORT
|
|
bool
|
|
|
|
config SYS_BOARD
|
|
default "clearfog" if TARGET_CLEARFOG
|
|
default "helios4" if TARGET_HELIOS4
|
|
default "mvebu_armada-37xx" if TARGET_MVEBU_ARMADA_37XX
|
|
default "db-88f6720" if TARGET_DB_88F6720
|
|
default "db-88f6820-gp" if TARGET_DB_88F6820_GP
|
|
default "db-88f6820-amc" if TARGET_DB_88F6820_AMC
|
|
default "turris_omnia" if TARGET_TURRIS_OMNIA
|
|
default "turris_mox" if TARGET_TURRIS_MOX
|
|
default "mvebu_armada-8k" if TARGET_MVEBU_ARMADA_8K
|
|
default "octeontx2_cn913x" if TARGET_OCTEONTX2_CN913x
|
|
default "db-mv784mp-gp" if TARGET_DB_MV784MP_GP
|
|
default "ds414" if TARGET_DS414
|
|
default "maxbcm" if TARGET_MAXBCM
|
|
default "theadorable" if TARGET_THEADORABLE
|
|
default "a38x" if TARGET_CONTROLCENTERDC
|
|
default "x530" if TARGET_X530
|
|
default "db-xc3-24g4xg" if TARGET_DB_XC3_24G4XG
|
|
default "crs3xx-98dx3236" if TARGET_CRS3XX_98DX3236
|
|
|
|
config SYS_CONFIG_NAME
|
|
default "clearfog" if TARGET_CLEARFOG
|
|
default "helios4" if TARGET_HELIOS4
|
|
default "mvebu_armada-37xx" if TARGET_MVEBU_ARMADA_37XX
|
|
default "db-88f6720" if TARGET_DB_88F6720
|
|
default "db-88f6820-gp" if TARGET_DB_88F6820_GP
|
|
default "db-88f6820-amc" if TARGET_DB_88F6820_AMC
|
|
default "mvebu_armada-8k" if TARGET_MVEBU_ARMADA_8K
|
|
default "mvebu_armada-8k" if TARGET_OCTEONTX2_CN913x
|
|
default "db-mv784mp-gp" if TARGET_DB_MV784MP_GP
|
|
default "ds414" if TARGET_DS414
|
|
default "maxbcm" if TARGET_MAXBCM
|
|
default "theadorable" if TARGET_THEADORABLE
|
|
default "turris_omnia" if TARGET_TURRIS_OMNIA
|
|
default "turris_mox" if TARGET_TURRIS_MOX
|
|
default "controlcenterdc" if TARGET_CONTROLCENTERDC
|
|
default "x530" if TARGET_X530
|
|
default "db-xc3-24g4xg" if TARGET_DB_XC3_24G4XG
|
|
default "crs3xx-98dx3236" if TARGET_CRS3XX_98DX3236
|
|
|
|
config SYS_VENDOR
|
|
default "Marvell" if TARGET_DB_MV784MP_GP
|
|
default "Marvell" if TARGET_MVEBU_ARMADA_37XX
|
|
default "Marvell" if TARGET_DB_88F6720
|
|
default "Marvell" if TARGET_DB_88F6820_GP
|
|
default "Marvell" if TARGET_DB_88F6820_AMC
|
|
default "Marvell" if TARGET_MVEBU_ARMADA_8K
|
|
default "Marvell" if TARGET_OCTEONTX2_CN913x
|
|
default "Marvell" if TARGET_DB_XC3_24G4XG
|
|
default "Marvell" if TARGET_MVEBU_DB_88F7040
|
|
default "solidrun" if TARGET_CLEARFOG
|
|
default "kobol" if TARGET_HELIOS4
|
|
default "Synology" if TARGET_DS414
|
|
default "CZ.NIC" if TARGET_TURRIS_OMNIA
|
|
default "CZ.NIC" if TARGET_TURRIS_MOX
|
|
default "gdsys" if TARGET_CONTROLCENTERDC
|
|
default "alliedtelesis" if TARGET_X530
|
|
default "mikrotik" if TARGET_CRS3XX_98DX3236
|
|
|
|
config SYS_SOC
|
|
default "mvebu"
|
|
|
|
choice
|
|
prompt "Boot method"
|
|
depends on SPL
|
|
|
|
config MVEBU_SPL_BOOT_DEVICE_SPI
|
|
bool "SPI NOR flash"
|
|
imply ENV_IS_IN_SPI_FLASH
|
|
imply SPL_DM_SPI
|
|
imply SPL_SPI_FLASH_SUPPORT
|
|
imply SPL_SPI_LOAD
|
|
imply SPL_SPI
|
|
select SPL_BOOTROM_SUPPORT
|
|
|
|
config MVEBU_SPL_BOOT_DEVICE_MMC
|
|
bool "SDIO/MMC card"
|
|
imply ENV_IS_IN_MMC
|
|
# GPIO needed for eMMC/SD card presence detection
|
|
imply SPL_DM_GPIO
|
|
imply SPL_DM_MMC
|
|
imply SPL_GPIO
|
|
imply SPL_LIBDISK_SUPPORT
|
|
imply SPL_MMC
|
|
select SPL_BOOTROM_SUPPORT
|
|
|
|
config MVEBU_SPL_BOOT_DEVICE_SATA
|
|
bool "SATA"
|
|
imply SPL_SATA
|
|
imply SPL_LIBDISK_SUPPORT
|
|
select SPL_BOOTROM_SUPPORT
|
|
|
|
config MVEBU_SPL_BOOT_DEVICE_UART
|
|
bool "UART"
|
|
select SPL_BOOTROM_SUPPORT
|
|
|
|
endchoice
|
|
|
|
config MVEBU_EFUSE
|
|
bool "Enable eFuse support"
|
|
depends on HAVE_MVEBU_EFUSE
|
|
help
|
|
Enable support for reading and writing eFuses on mvebu SoCs.
|
|
|
|
config MVEBU_EFUSE_FAKE
|
|
bool "Fake eFuse access (dry run)"
|
|
depends on MVEBU_EFUSE
|
|
help
|
|
This enables a "dry run" mode where eFuses are not really programmed.
|
|
Instead the eFuse accesses are emulated by writing to and reading
|
|
from a memory block.
|
|
This is can be used for testing prog scripts.
|
|
|
|
config SECURED_MODE_IMAGE
|
|
bool "Build image for trusted boot"
|
|
default false
|
|
depends on 88F6820
|
|
help
|
|
Build an image that employs the ARMADA SoC's trusted boot framework
|
|
for securely booting images.
|
|
|
|
config SECURED_MODE_CSK_INDEX
|
|
int "Index of active CSK"
|
|
default 0
|
|
depends on SECURED_MODE_IMAGE
|
|
|
|
source "board/solidrun/clearfog/Kconfig"
|
|
source "board/kobol/helios4/Kconfig"
|
|
|
|
endif
|