mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-30 08:07:59 +00:00

Add support for WinLink E850-96 board [1]. It's based on Exynos850 SoC and follows 96boards specification, so it's compatible with 96boards mezzanine boards [2]. This patch enables next features: * Serial console * USI * PMU (muxing AP UART path) * Pinctrl * Clocks * Timer (ARMv8 architected) * Reset control It's quite a minimal enablement. Features like MMC, USB and Ethernet will be enabled later. The rationale for config values is as follows: * TEXT_BASE = 0xf8800000 That's where BL2 loads the U-Boot payload, so TEXT_BASE must be exactly this value. Overall the memory map is designed in a way to keep the bootloader in the upper 128 MiB area of RAM, which is 0xf8000000..0xffffffff. That includes bootloader's code, stack, data, heap, MMU tables, etc. All the memory below that 128 MiB chunk can be used for storing boot images (0x80000000..0xf8000000). * CUSTOM_SYS_INIT_SP_ADDR = 0xf8c00000 Just 4 MiB above the TEXT_BASE address, to leave enough space for U-Boot code and stack itself (grows downwards). * SYS_LOAD_ADDR = 0x80000000 The beginning of RAM. That's where Linux kernel image must be loaded. * SYS_MALLOC_LEN = 0x81f000 8 MiB for malloc() + ENV_SIZE (128 KiB) * SYS_MALLOC_F_LEN = 0x4000 Increase malloc() pool size available before relocation from 8 KiB (default) to 16 KiB. Otherwise "alloc space exhausted" message appears in U-Boot log during board_init_f() stage. There are next reasons for doing so: 1. Having "bootph-all" flags in some dts nodes leads to binding those during pre-relocation stage, and binding (DM) uses dynamic memory allocation 2. clk-exynos850 driver uses CCF clocks, which in turn use dynamic memory allocation Device tree file was imported from Linux kernel. All nodes and boot phase flags added in exynos850-e850-96-u-boot.dtsi are only needed to enable serial console: * oscclk -> cmu_top -> cmu_peri: generate UART/USI clocks * pinctrl_alive and uart1_pins: needed to mux UART pins * pmu_system_controller: configures AP UART path to uart1_pins * usi_uart: configures USI block to operate as a UART protocol * serial_0: enables serial console (UART) [1] https://www.96boards.org/product/e850-96b/ [2] https://www.96boards.org/products/mezzanine/ Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org> Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
282 lines
5.2 KiB
Text
282 lines
5.2 KiB
Text
if ARCH_EXYNOS
|
|
|
|
config BOARD_COMMON
|
|
def_bool y
|
|
depends on !TARGET_SMDKV310 && !TARGET_ARNDALE && !TARGET_E850_96
|
|
|
|
config SPI_BOOTING
|
|
bool
|
|
|
|
config USB_BOOTING
|
|
bool
|
|
|
|
choice
|
|
prompt "EXYNOS architecture type select"
|
|
optional
|
|
|
|
config ARCH_EXYNOS4
|
|
bool "Exynos4 SoC family"
|
|
select BOARD_EARLY_INIT_F
|
|
select CPU_V7A
|
|
select BLK
|
|
select DM_MMC
|
|
help
|
|
Samsung Exynos4 SoC family are based on ARM Cortex-A9 CPU. There
|
|
are multiple SoCs in this family including Exynos4210, Exynos4412,
|
|
and Exynos4212.
|
|
|
|
config ARCH_EXYNOS5
|
|
bool "Exynos5 SoC family"
|
|
select BOARD_EARLY_INIT_F
|
|
select CPU_V7A
|
|
select SHA_HW_ACCEL
|
|
select SPI_BOOTING if EXYNOS5_DT
|
|
select USB_BOOTING
|
|
imply CMD_HASH
|
|
imply CRC32_VERIFY
|
|
imply HASH_VERIFY
|
|
imply KEYBOARD
|
|
imply USB_ETHER_ASIX
|
|
imply USB_ETHER_RTL8152
|
|
imply USB_ETHER_SMSC95XX
|
|
select BLK
|
|
select DM_MMC
|
|
|
|
help
|
|
Samsung Exynos5 SoC family are based on ARM Cortex-A15 CPU (and
|
|
Cortex-A7 CPU in big.LITTLE configuration). There are multiple SoCs
|
|
in this family including Exynos5250, Exynos5420 and Exynos5800.
|
|
|
|
config ARCH_EXYNOS7
|
|
bool "Exynos7 SoC family"
|
|
select ARM64
|
|
select BOARD_EARLY_INIT_F
|
|
select BLK
|
|
select DM_MMC
|
|
help
|
|
Samsung Exynos7 SoC family are based on ARM Cortex-A57 CPU or
|
|
Cortex-A53 CPU (and some in a big.LITTLE configuration). There are
|
|
multiple SoCs in this family including Exynos7420.
|
|
|
|
config ARCH_EXYNOS9
|
|
bool "Exynos9 SoC family"
|
|
select ARM64
|
|
select BLK
|
|
select DM_MMC
|
|
help
|
|
Samsung Exynos9 SoC family are based on ARMv8 Cortex CPU. There are
|
|
multiple SoCs in this family including Exynos850.
|
|
|
|
endchoice
|
|
|
|
if ARCH_EXYNOS4
|
|
|
|
config EXYNOS4210
|
|
bool
|
|
|
|
choice
|
|
prompt "EXYNOS4 board select"
|
|
|
|
config TARGET_SMDKV310
|
|
bool "Exynos4210 SMDKV310 board"
|
|
select EXYNOS4210
|
|
select OF_CONTROL
|
|
select SUPPORT_SPL
|
|
|
|
config TARGET_TRATS
|
|
select MISC_COMMON
|
|
bool "Exynos4210 Trats board"
|
|
|
|
config TARGET_S5PC210_UNIVERSAL
|
|
bool "EXYNOS4210 Universal C210 board"
|
|
select MISC_COMMON
|
|
|
|
config TARGET_ORIGEN
|
|
bool "Exynos4412 Origen board"
|
|
select EXYNOS4210
|
|
select SUPPORT_SPL
|
|
|
|
config TARGET_TRATS2
|
|
bool "Exynos4412 Trat2 board"
|
|
select MISC_COMMON
|
|
|
|
config TARGET_ODROID
|
|
bool "Exynos4412 Odroid board"
|
|
select MISC_COMMON
|
|
|
|
endchoice
|
|
endif
|
|
|
|
if ARCH_EXYNOS5
|
|
|
|
config EXYNOS5250
|
|
bool
|
|
|
|
config EXYNOS5420
|
|
bool
|
|
|
|
config EXYNOS5_DT
|
|
bool
|
|
|
|
config SPL_GPIO
|
|
default y
|
|
|
|
config SPL_LIBCOMMON_SUPPORT
|
|
default y
|
|
|
|
config SPL_LIBGENERIC_SUPPORT
|
|
default y
|
|
|
|
choice
|
|
prompt "EXYNOS5 board select"
|
|
|
|
config TARGET_ODROID_XU3
|
|
bool "Exynos5422 Odroid board"
|
|
select EXYNOS5_DT
|
|
select EXYNOS5420
|
|
select MISC_COMMON
|
|
select OF_CONTROL
|
|
|
|
config TARGET_ARNDALE
|
|
bool "Exynos5250 Arndale board"
|
|
select ARM_ERRATA_773022
|
|
select ARM_ERRATA_774769
|
|
select CPU_V7_HAS_NONSEC
|
|
select CPU_V7_HAS_VIRT
|
|
select EXYNOS5250
|
|
select OF_CONTROL
|
|
select SUPPORT_SPL
|
|
|
|
config TARGET_SMDK5250
|
|
bool "SMDK5250 board"
|
|
select EXYNOS5_DT
|
|
select EXYNOS5250
|
|
select OF_CONTROL
|
|
select SUPPORT_SPL
|
|
|
|
config TARGET_SNOW
|
|
bool "Snow board"
|
|
select EXYNOS5_DT
|
|
select EXYNOS5250
|
|
select OF_CONTROL
|
|
select SUPPORT_SPL
|
|
|
|
config TARGET_SPRING
|
|
bool "Spring board"
|
|
select EXYNOS5_DT
|
|
select EXYNOS5250
|
|
select OF_CONTROL
|
|
select SUPPORT_SPL
|
|
|
|
config TARGET_SMDK5420
|
|
bool "SMDK5420 board"
|
|
select EXYNOS5_DT
|
|
select EXYNOS5420
|
|
select OF_CONTROL
|
|
select SUPPORT_SPL
|
|
|
|
config TARGET_PEACH_PI
|
|
bool "Peach Pi board"
|
|
select EXYNOS5_DT
|
|
select EXYNOS5420
|
|
select OF_CONTROL
|
|
select SUPPORT_SPL
|
|
|
|
config TARGET_PEACH_PIT
|
|
bool "Peach Pit board"
|
|
select EXYNOS5_DT
|
|
select EXYNOS5420
|
|
select OF_CONTROL
|
|
select SUPPORT_SPL
|
|
|
|
endchoice
|
|
endif
|
|
|
|
if ARCH_EXYNOS7
|
|
|
|
choice
|
|
prompt "EXYNOS7 board select"
|
|
|
|
config TARGET_ESPRESSO7420
|
|
bool "ESPRESSO7420 board"
|
|
select ARM64
|
|
select ARMV8_MULTIENTRY
|
|
select CLK_EXYNOS
|
|
select OF_CONTROL
|
|
select PINCTRL
|
|
select PINCTRL_EXYNOS7420
|
|
select SUPPORT_SPL
|
|
|
|
config TARGET_A5Y17LTE
|
|
bool "Samsung SM-A520F board"
|
|
select ARM64
|
|
select CLK_EXYNOS
|
|
select OF_CONTROL
|
|
select PINCTRL
|
|
select PINCTRL_EXYNOS78x0
|
|
select SUPPORT_SPL
|
|
|
|
config TARGET_A7Y17LTE
|
|
bool "Samsung SM-A720F board"
|
|
select ARM64
|
|
select CLK_EXYNOS
|
|
select OF_CONTROL
|
|
select PINCTRL
|
|
select PINCTRL_EXYNOS78x0
|
|
select SUPPORT_SPL
|
|
|
|
config TARGET_A3Y17LTE
|
|
bool "Samsung SM-A320F board"
|
|
select ARM64
|
|
select CLK_EXYNOS
|
|
select OF_CONTROL
|
|
select PINCTRL
|
|
select PINCTRL_EXYNOS78x0
|
|
select SUPPORT_SPL
|
|
|
|
endchoice
|
|
endif
|
|
|
|
if ARCH_EXYNOS9
|
|
|
|
choice
|
|
prompt "EXYNOS9 board select"
|
|
|
|
config TARGET_E850_96
|
|
bool "WinLink E850-96 board"
|
|
select ARM64
|
|
select CLK_EXYNOS
|
|
select OF_CONTROL
|
|
select PINCTRL
|
|
select PINCTRL_EXYNOS850
|
|
|
|
endchoice
|
|
endif
|
|
|
|
config SYS_SOC
|
|
default "exynos"
|
|
|
|
config EXYNOS_ACE_SHA
|
|
bool "Advanced Crypto Engine SHA support"
|
|
depends on (ARCH_EXYNOS4 || ARCH_EXYNOS5) && (LIB_HW_RAND || SHA_HW_ACCEL)
|
|
default y if ARCH_EXYNOS5
|
|
|
|
config EXYNOS_TMU
|
|
bool "Exynos5 thermal management unit support"
|
|
depends on ARCH_EXYNOS5
|
|
default y
|
|
|
|
source "board/samsung/smdkv310/Kconfig"
|
|
source "board/samsung/trats/Kconfig"
|
|
source "board/samsung/universal_c210/Kconfig"
|
|
source "board/samsung/origen/Kconfig"
|
|
source "board/samsung/trats2/Kconfig"
|
|
source "board/samsung/odroid/Kconfig"
|
|
source "board/samsung/arndale/Kconfig"
|
|
source "board/samsung/smdk5250/Kconfig"
|
|
source "board/samsung/smdk5420/Kconfig"
|
|
source "board/samsung/espresso7420/Kconfig"
|
|
source "board/samsung/axy17lte/Kconfig"
|
|
source "board/samsung/e850-96/Kconfig"
|
|
|
|
endif
|