112916829SDavid Feng /* 212916829SDavid Feng * Configuration for Versatile Express. Parts were derived from other ARM 312916829SDavid Feng * configurations. 412916829SDavid Feng * 512916829SDavid Feng * SPDX-License-Identifier: GPL-2.0+ 612916829SDavid Feng */ 712916829SDavid Feng 812916829SDavid Feng #ifndef __VEXPRESS_AEMV8A_H 912916829SDavid Feng #define __VEXPRESS_AEMV8A_H 1012916829SDavid Feng 1112916829SDavid Feng #define DEBUG 1212916829SDavid Feng 1312916829SDavid Feng #define CONFIG_REMAKE_ELF 1412916829SDavid Feng 1512916829SDavid Feng /*#define CONFIG_ARMV8_SWITCH_TO_EL1*/ 1612916829SDavid Feng 1712916829SDavid Feng /*#define CONFIG_SYS_GENERIC_BOARD*/ 1812916829SDavid Feng 1912916829SDavid Feng #define CONFIG_SYS_NO_FLASH 2012916829SDavid Feng 2112916829SDavid Feng #define CONFIG_SUPPORT_RAW_INITRD 2212916829SDavid Feng 2312916829SDavid Feng /* Cache Definitions */ 2412916829SDavid Feng #define CONFIG_SYS_DCACHE_OFF 2512916829SDavid Feng #define CONFIG_SYS_ICACHE_OFF 2612916829SDavid Feng 2712916829SDavid Feng #define CONFIG_IDENT_STRING " vexpress_aemv8a" 2812916829SDavid Feng #define CONFIG_BOOTP_VCI_STRING "U-boot.armv8.vexpress_aemv8a" 2912916829SDavid Feng 3012916829SDavid Feng /* Link Definitions */ 3112916829SDavid Feng #define CONFIG_SYS_TEXT_BASE 0x80000000 3212916829SDavid Feng #define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_SDRAM_BASE + 0x7fff0) 3312916829SDavid Feng 3412916829SDavid Feng /* Flat Device Tree Definitions */ 3512916829SDavid Feng #define CONFIG_OF_LIBFDT 3612916829SDavid Feng 3712916829SDavid Feng #define CONFIG_DEFAULT_DEVICE_TREE vexpress64 3812916829SDavid Feng 3912916829SDavid Feng /* SMP Spin Table Definitions */ 4012916829SDavid Feng #define CPU_RELEASE_ADDR (CONFIG_SYS_SDRAM_BASE + 0x7fff0) 4112916829SDavid Feng 4212916829SDavid Feng /* CS register bases for the original memory map. */ 4312916829SDavid Feng #define V2M_PA_CS0 0x00000000 4412916829SDavid Feng #define V2M_PA_CS1 0x14000000 4512916829SDavid Feng #define V2M_PA_CS2 0x18000000 4612916829SDavid Feng #define V2M_PA_CS3 0x1c000000 4712916829SDavid Feng #define V2M_PA_CS4 0x0c000000 4812916829SDavid Feng #define V2M_PA_CS5 0x10000000 4912916829SDavid Feng 5012916829SDavid Feng #define V2M_PERIPH_OFFSET(x) (x << 16) 5112916829SDavid Feng #define V2M_SYSREGS (V2M_PA_CS3 + V2M_PERIPH_OFFSET(1)) 5212916829SDavid Feng #define V2M_SYSCTL (V2M_PA_CS3 + V2M_PERIPH_OFFSET(2)) 5312916829SDavid Feng #define V2M_SERIAL_BUS_PCI (V2M_PA_CS3 + V2M_PERIPH_OFFSET(3)) 5412916829SDavid Feng 5512916829SDavid Feng #define V2M_BASE 0x80000000 5612916829SDavid Feng 5712916829SDavid Feng /* 5812916829SDavid Feng * Physical addresses, offset from V2M_PA_CS0-3 5912916829SDavid Feng */ 6012916829SDavid Feng #define V2M_NOR0 (V2M_PA_CS0) 6112916829SDavid Feng #define V2M_NOR1 (V2M_PA_CS4) 6212916829SDavid Feng #define V2M_SRAM (V2M_PA_CS1) 6312916829SDavid Feng 6412916829SDavid Feng /* Common peripherals relative to CS7. */ 6512916829SDavid Feng #define V2M_AACI (V2M_PA_CS3 + V2M_PERIPH_OFFSET(4)) 6612916829SDavid Feng #define V2M_MMCI (V2M_PA_CS3 + V2M_PERIPH_OFFSET(5)) 6712916829SDavid Feng #define V2M_KMI0 (V2M_PA_CS3 + V2M_PERIPH_OFFSET(6)) 6812916829SDavid Feng #define V2M_KMI1 (V2M_PA_CS3 + V2M_PERIPH_OFFSET(7)) 6912916829SDavid Feng 7012916829SDavid Feng #define V2M_UART0 (V2M_PA_CS3 + V2M_PERIPH_OFFSET(9)) 7112916829SDavid Feng #define V2M_UART1 (V2M_PA_CS3 + V2M_PERIPH_OFFSET(10)) 7212916829SDavid Feng #define V2M_UART2 (V2M_PA_CS3 + V2M_PERIPH_OFFSET(11)) 7312916829SDavid Feng #define V2M_UART3 (V2M_PA_CS3 + V2M_PERIPH_OFFSET(12)) 7412916829SDavid Feng 7512916829SDavid Feng #define V2M_WDT (V2M_PA_CS3 + V2M_PERIPH_OFFSET(15)) 7612916829SDavid Feng 7712916829SDavid Feng #define V2M_TIMER01 (V2M_PA_CS3 + V2M_PERIPH_OFFSET(17)) 7812916829SDavid Feng #define V2M_TIMER23 (V2M_PA_CS3 + V2M_PERIPH_OFFSET(18)) 7912916829SDavid Feng 8012916829SDavid Feng #define V2M_SERIAL_BUS_DVI (V2M_PA_CS3 + V2M_PERIPH_OFFSET(22)) 8112916829SDavid Feng #define V2M_RTC (V2M_PA_CS3 + V2M_PERIPH_OFFSET(23)) 8212916829SDavid Feng 8312916829SDavid Feng #define V2M_CF (V2M_PA_CS3 + V2M_PERIPH_OFFSET(26)) 8412916829SDavid Feng 8512916829SDavid Feng #define V2M_CLCD (V2M_PA_CS3 + V2M_PERIPH_OFFSET(31)) 8612916829SDavid Feng 8712916829SDavid Feng /* System register offsets. */ 8812916829SDavid Feng #define V2M_SYS_CFGDATA (V2M_SYSREGS + 0x0a0) 8912916829SDavid Feng #define V2M_SYS_CFGCTRL (V2M_SYSREGS + 0x0a4) 9012916829SDavid Feng #define V2M_SYS_CFGSTAT (V2M_SYSREGS + 0x0a8) 9112916829SDavid Feng 9212916829SDavid Feng /* Generic Timer Definitions */ 9312916829SDavid Feng #define COUNTER_FREQUENCY (0x1800000) /* 24MHz */ 9412916829SDavid Feng 9512916829SDavid Feng /* Generic Interrupt Controller Definitions */ 9612916829SDavid Feng #define GICD_BASE (0x2C001000) 9712916829SDavid Feng #define GICC_BASE (0x2C002000) 9812916829SDavid Feng 9912916829SDavid Feng #define CONFIG_SYS_MEMTEST_START V2M_BASE 10012916829SDavid Feng #define CONFIG_SYS_MEMTEST_END (V2M_BASE + 0x80000000) 10112916829SDavid Feng 10212916829SDavid Feng /* Size of malloc() pool */ 10312916829SDavid Feng #define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + 128 * 1024) 10412916829SDavid Feng 105*3865ceb7SBhupesh Sharma /* SMSC91C111 Ethernet Configuration */ 106*3865ceb7SBhupesh Sharma #define CONFIG_SMC91111 1 107*3865ceb7SBhupesh Sharma #define CONFIG_SMC91111_BASE (0x01A000000) 10812916829SDavid Feng 10912916829SDavid Feng /* PL011 Serial Configuration */ 11012916829SDavid Feng #define CONFIG_PL011_SERIAL 11112916829SDavid Feng #define CONFIG_PL011_CLOCK 24000000 11212916829SDavid Feng #define CONFIG_PL01x_PORTS {(void *)CONFIG_SYS_SERIAL0, \ 11312916829SDavid Feng (void *)CONFIG_SYS_SERIAL1} 11412916829SDavid Feng #define CONFIG_CONS_INDEX 0 11512916829SDavid Feng 11612916829SDavid Feng #define CONFIG_BAUDRATE 115200 11712916829SDavid Feng #define CONFIG_SYS_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200 } 11812916829SDavid Feng #define CONFIG_SYS_SERIAL0 V2M_UART0 11912916829SDavid Feng #define CONFIG_SYS_SERIAL1 V2M_UART1 12012916829SDavid Feng 12112916829SDavid Feng /* Command line configuration */ 12212916829SDavid Feng #define CONFIG_MENU 12312916829SDavid Feng /*#define CONFIG_MENU_SHOW*/ 12412916829SDavid Feng #define CONFIG_CMD_CACHE 12512916829SDavid Feng #define CONFIG_CMD_BDI 12612916829SDavid Feng #define CONFIG_CMD_DHCP 12712916829SDavid Feng #define CONFIG_CMD_PXE 12812916829SDavid Feng #define CONFIG_CMD_ENV 12912916829SDavid Feng #define CONFIG_CMD_FLASH 13012916829SDavid Feng #define CONFIG_CMD_IMI 13112916829SDavid Feng #define CONFIG_CMD_MEMORY 13212916829SDavid Feng #define CONFIG_CMD_MII 13312916829SDavid Feng #define CONFIG_CMD_NET 13412916829SDavid Feng #define CONFIG_CMD_PING 13512916829SDavid Feng #define CONFIG_CMD_SAVEENV 13612916829SDavid Feng #define CONFIG_CMD_RUN 13712916829SDavid Feng #define CONFIG_CMD_BOOTD 13812916829SDavid Feng #define CONFIG_CMD_ECHO 13912916829SDavid Feng #define CONFIG_CMD_SOURCE 14012916829SDavid Feng #define CONFIG_CMD_FAT 14112916829SDavid Feng #define CONFIG_DOS_PARTITION 14212916829SDavid Feng 14312916829SDavid Feng /* BOOTP options */ 14412916829SDavid Feng #define CONFIG_BOOTP_BOOTFILESIZE 14512916829SDavid Feng #define CONFIG_BOOTP_BOOTPATH 14612916829SDavid Feng #define CONFIG_BOOTP_GATEWAY 14712916829SDavid Feng #define CONFIG_BOOTP_HOSTNAME 14812916829SDavid Feng #define CONFIG_BOOTP_PXE 14912916829SDavid Feng #define CONFIG_BOOTP_PXE_CLIENTARCH 0x100 15012916829SDavid Feng 15112916829SDavid Feng /* Miscellaneous configurable options */ 15212916829SDavid Feng #define CONFIG_SYS_LOAD_ADDR (V2M_BASE + 0x10000000) 15312916829SDavid Feng 15412916829SDavid Feng /* Physical Memory Map */ 15512916829SDavid Feng #define CONFIG_NR_DRAM_BANKS 1 15612916829SDavid Feng #define PHYS_SDRAM_1 (V2M_BASE) /* SDRAM Bank #1 */ 15712916829SDavid Feng #define PHYS_SDRAM_1_SIZE 0x80000000 /* 2048 MB */ 15812916829SDavid Feng #define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM_1 15912916829SDavid Feng 16012916829SDavid Feng /* Initial environment variables */ 16112916829SDavid Feng #define CONFIG_EXTRA_ENV_SETTINGS \ 16212916829SDavid Feng "kernel_addr=0x200000\0" \ 16312916829SDavid Feng "initrd_addr=0xa00000\0" \ 16412916829SDavid Feng "initrd_size=0x2000000\0" \ 16512916829SDavid Feng "fdt_addr=0x100000\0" \ 16612916829SDavid Feng "fdt_high=0xa0000000\0" 16712916829SDavid Feng 16812916829SDavid Feng #define CONFIG_BOOTARGS "console=ttyAMA0 root=/dev/ram0" 16912916829SDavid Feng #define CONFIG_BOOTCOMMAND "bootm $kernel_addr " \ 17012916829SDavid Feng "$initrd_addr:$initrd_size $fdt_addr" 17112916829SDavid Feng #define CONFIG_BOOTDELAY -1 17212916829SDavid Feng 17312916829SDavid Feng /* Do not preserve environment */ 17412916829SDavid Feng #define CONFIG_ENV_IS_NOWHERE 1 17512916829SDavid Feng #define CONFIG_ENV_SIZE 0x1000 17612916829SDavid Feng 17712916829SDavid Feng /* Monitor Command Prompt */ 17812916829SDavid Feng #define CONFIG_SYS_CBSIZE 512 /* Console I/O Buffer Size */ 17912916829SDavid Feng #define CONFIG_SYS_PROMPT "VExpress64# " 18012916829SDavid Feng #define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + \ 18112916829SDavid Feng sizeof(CONFIG_SYS_PROMPT) + 16) 18212916829SDavid Feng #define CONFIG_SYS_HUSH_PARSER 18312916829SDavid Feng #define CONFIG_SYS_PROMPT_HUSH_PS2 "> " 18412916829SDavid Feng #define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE 18512916829SDavid Feng #define CONFIG_SYS_LONGHELP 18612916829SDavid Feng #define CONFIG_CMDLINE_EDITING 1 18712916829SDavid Feng #define CONFIG_SYS_MAXARGS 64 /* max command args */ 18812916829SDavid Feng 18912916829SDavid Feng #endif /* __VEXPRESS_AEMV8A_H */ 190