1f5d0b9b2SMasahiro Yamada /* 2f8f35944SMasahiro Yamada * Copyright (C) 2012-2015 Masahiro Yamada <yamada.masahiro@socionext.com> 3f5d0b9b2SMasahiro Yamada * 4f5d0b9b2SMasahiro Yamada * SPDX-License-Identifier: GPL-2.0+ 5f5d0b9b2SMasahiro Yamada */ 6f5d0b9b2SMasahiro Yamada 7a187559eSBin Meng /* U-Boot - Common settings for UniPhier Family */ 8f5d0b9b2SMasahiro Yamada 9f5d0b9b2SMasahiro Yamada #ifndef __CONFIG_UNIPHIER_COMMON_H__ 10f5d0b9b2SMasahiro Yamada #define __CONFIG_UNIPHIER_COMMON_H__ 11f5d0b9b2SMasahiro Yamada 12233e42a9SMasahiro Yamada #define CONFIG_I2C_EEPROM 13233e42a9SMasahiro Yamada #define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS 10 14233e42a9SMasahiro Yamada 15f5d0b9b2SMasahiro Yamada #ifdef CONFIG_SYS_NS16550_SERIAL 16f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_NS16550_COM1 CONFIG_SUPPORT_CARD_UART_BASE 17f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_NS16550_CLK 12288000 18f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_NS16550_REG_SIZE -2 19f5d0b9b2SMasahiro Yamada #endif 20f5d0b9b2SMasahiro Yamada 21f5d0b9b2SMasahiro Yamada /* TODO: move to Kconfig and device tree */ 22f5d0b9b2SMasahiro Yamada #if 0 23f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_NS16550_SERIAL 24f5d0b9b2SMasahiro Yamada #endif 25f5d0b9b2SMasahiro Yamada 26f5d0b9b2SMasahiro Yamada #define CONFIG_SMC911X 27f5d0b9b2SMasahiro Yamada 28d7728aa4SMasahiro Yamada /* dummy: referenced by examples/standalone/smc911x_eeprom.c */ 29d7728aa4SMasahiro Yamada #define CONFIG_SMC911X_BASE 0 30f5d0b9b2SMasahiro Yamada #define CONFIG_SMC911X_32_BIT 31f5d0b9b2SMasahiro Yamada 32f5d0b9b2SMasahiro Yamada /*----------------------------------------------------------------------- 33f5d0b9b2SMasahiro Yamada * MMU and Cache Setting 34f5d0b9b2SMasahiro Yamada *----------------------------------------------------------------------*/ 35f5d0b9b2SMasahiro Yamada 36f5d0b9b2SMasahiro Yamada /* Comment out the following to enable L1 cache */ 37f5d0b9b2SMasahiro Yamada /* #define CONFIG_SYS_ICACHE_OFF */ 38f5d0b9b2SMasahiro Yamada /* #define CONFIG_SYS_DCACHE_OFF */ 39f5d0b9b2SMasahiro Yamada 4053c45d4eSMasahiro Yamada #define CONFIG_SYS_CACHELINE_SIZE 32 4153c45d4eSMasahiro Yamada 42f5d0b9b2SMasahiro Yamada /* Comment out the following to enable L2 cache */ 43f5d0b9b2SMasahiro Yamada #define CONFIG_UNIPHIER_L2CACHE_ON 44f5d0b9b2SMasahiro Yamada 45f5d0b9b2SMasahiro Yamada #define CONFIG_DISPLAY_CPUINFO 46f5d0b9b2SMasahiro Yamada #define CONFIG_DISPLAY_BOARDINFO 4708fda258SMasahiro Yamada #define CONFIG_MISC_INIT_F 4884ccd791SMasahiro Yamada #define CONFIG_BOARD_EARLY_INIT_F 497a3620b2SMasahiro Yamada #define CONFIG_BOARD_EARLY_INIT_R 50f5d0b9b2SMasahiro Yamada #define CONFIG_BOARD_LATE_INIT 51f5d0b9b2SMasahiro Yamada 52f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_MALLOC_LEN (4 * 1024 * 1024) 53f5d0b9b2SMasahiro Yamada 54f5d0b9b2SMasahiro Yamada #define CONFIG_TIMESTAMP 55f5d0b9b2SMasahiro Yamada 56f5d0b9b2SMasahiro Yamada /* FLASH related */ 57f5d0b9b2SMasahiro Yamada #define CONFIG_MTD_DEVICE 58f5d0b9b2SMasahiro Yamada 59f5d0b9b2SMasahiro Yamada /* 60f5d0b9b2SMasahiro Yamada * uncomment the following to disable FLASH related code. 61f5d0b9b2SMasahiro Yamada */ 62f5d0b9b2SMasahiro Yamada /* #define CONFIG_SYS_NO_FLASH */ 63f5d0b9b2SMasahiro Yamada 64f5d0b9b2SMasahiro Yamada #define CONFIG_FLASH_CFI_DRIVER 65f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_FLASH_CFI 66f5d0b9b2SMasahiro Yamada 67f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_MAX_FLASH_SECT 256 68f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_MONITOR_BASE 0 69f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_FLASH_BASE 0 70f5d0b9b2SMasahiro Yamada 71f5d0b9b2SMasahiro Yamada /* 72f5d0b9b2SMasahiro Yamada * flash_toggle does not work for out supoort card. 73f5d0b9b2SMasahiro Yamada * We need to use flash_status_poll. 74f5d0b9b2SMasahiro Yamada */ 75f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_CFI_FLASH_STATUS_POLL 76f5d0b9b2SMasahiro Yamada 77f5d0b9b2SMasahiro Yamada #define CONFIG_FLASH_SHOW_PROGRESS 45 /* count down from 45/5: 9..1 */ 78f5d0b9b2SMasahiro Yamada 799879842cSMasahiro Yamada #define CONFIG_SYS_MAX_FLASH_BANKS_DETECT 1 80f5d0b9b2SMasahiro Yamada 81f5d0b9b2SMasahiro Yamada /* serial console configuration */ 82f5d0b9b2SMasahiro Yamada #define CONFIG_BAUDRATE 115200 83f5d0b9b2SMasahiro Yamada 84f5d0b9b2SMasahiro Yamada 85f5d0b9b2SMasahiro Yamada #if !defined(CONFIG_SPL_BUILD) 86f5d0b9b2SMasahiro Yamada #define CONFIG_USE_ARCH_MEMSET 87f5d0b9b2SMasahiro Yamada #define CONFIG_USE_ARCH_MEMCPY 88f5d0b9b2SMasahiro Yamada #endif 89f5d0b9b2SMasahiro Yamada 90f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_LONGHELP /* undef to save memory */ 91f5d0b9b2SMasahiro Yamada 92f5d0b9b2SMasahiro Yamada #define CONFIG_CMDLINE_EDITING /* add command line history */ 93f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_CBSIZE 1024 /* Console I/O Buffer Size */ 94f5d0b9b2SMasahiro Yamada /* Print Buffer Size */ 95f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16) 96f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_MAXARGS 16 /* max number of command */ 97f5d0b9b2SMasahiro Yamada /* Boot Argument Buffer Size */ 98f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_BARGSIZE (CONFIG_SYS_CBSIZE) 99f5d0b9b2SMasahiro Yamada 100f5d0b9b2SMasahiro Yamada #define CONFIG_CONS_INDEX 1 101f5d0b9b2SMasahiro Yamada 102f5d0b9b2SMasahiro Yamada /* 103f5d0b9b2SMasahiro Yamada * For NAND booting the environment is embedded in the U-Boot image. Please take 104f5d0b9b2SMasahiro Yamada * look at the file board/amcc/canyonlands/u-boot-nand.lds for details. 105f5d0b9b2SMasahiro Yamada */ 106f5d0b9b2SMasahiro Yamada /* #define CONFIG_ENV_IS_IN_NAND */ 107f5d0b9b2SMasahiro Yamada #define CONFIG_ENV_IS_NOWHERE 108f5d0b9b2SMasahiro Yamada #define CONFIG_ENV_SIZE 0x2000 109f5d0b9b2SMasahiro Yamada #define CONFIG_ENV_OFFSET 0x0 110f5d0b9b2SMasahiro Yamada /* #define CONFIG_ENV_OFFSET_REDUND (CONFIG_ENV_OFFSET + CONFIG_ENV_SIZE) */ 111f5d0b9b2SMasahiro Yamada 112f5d0b9b2SMasahiro Yamada /* Time clock 1MHz */ 113f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_TIMER_RATE 1000000 114f5d0b9b2SMasahiro Yamada 115f5d0b9b2SMasahiro Yamada /* 116f5d0b9b2SMasahiro Yamada * By default, ARP timeout is 5 sec. 117f5d0b9b2SMasahiro Yamada * The first ARP request does not seem to work. 118f5d0b9b2SMasahiro Yamada * So we need to retry ARP request anyway. 119f5d0b9b2SMasahiro Yamada * We want to shrink the interval until the second ARP request. 120f5d0b9b2SMasahiro Yamada */ 121f5d0b9b2SMasahiro Yamada #define CONFIG_ARP_TIMEOUT 500UL /* 0.5 msec */ 122f5d0b9b2SMasahiro Yamada 123f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_MAX_NAND_DEVICE 1 124f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_NAND_MAX_CHIPS 2 125f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_NAND_ONFI_DETECTION 126f5d0b9b2SMasahiro Yamada 127f5d0b9b2SMasahiro Yamada #define CONFIG_NAND_DENALI_ECC_SIZE 1024 128f5d0b9b2SMasahiro Yamada 1298497ccc4SMasahiro Yamada #ifdef CONFIG_ARCH_UNIPHIER_PH1_SLD3 1303365b4ebSMasahiro Yamada #define CONFIG_SYS_NAND_REGS_BASE 0xf8100000 1313365b4ebSMasahiro Yamada #define CONFIG_SYS_NAND_DATA_BASE 0xf8000000 1323365b4ebSMasahiro Yamada #else 133f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_NAND_REGS_BASE 0x68100000 134f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_NAND_DATA_BASE 0x68000000 1353365b4ebSMasahiro Yamada #endif 136f5d0b9b2SMasahiro Yamada 137f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_NAND_BASE (CONFIG_SYS_NAND_DATA_BASE + 0x10) 138f5d0b9b2SMasahiro Yamada 139f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_NAND_USE_FLASH_BBT 140f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_NAND_BAD_BLOCK_POS 0 141f5d0b9b2SMasahiro Yamada 142f5d0b9b2SMasahiro Yamada /* USB */ 143f5d0b9b2SMasahiro Yamada #define CONFIG_USB_MAX_CONTROLLER_COUNT 2 14453c45d4eSMasahiro Yamada #define CONFIG_SYS_USB_XHCI_MAX_ROOT_PORTS 4 145f5d0b9b2SMasahiro Yamada #define CONFIG_CMD_FAT 146f5d0b9b2SMasahiro Yamada #define CONFIG_FAT_WRITE 147f5d0b9b2SMasahiro Yamada #define CONFIG_DOS_PARTITION 148f5d0b9b2SMasahiro Yamada 149*4aceb3f8SMasahiro Yamada /* SD/MMC */ 150*4aceb3f8SMasahiro Yamada #define CONFIG_CMD_MMC 151*4aceb3f8SMasahiro Yamada #define CONFIG_GENERIC_MMC 152*4aceb3f8SMasahiro Yamada 153f5d0b9b2SMasahiro Yamada /* memtest works on */ 154f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_MEMTEST_START CONFIG_SYS_SDRAM_BASE 155f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_MEMTEST_END (CONFIG_SYS_SDRAM_BASE + 0x01000000) 156f5d0b9b2SMasahiro Yamada 157f5d0b9b2SMasahiro Yamada #define CONFIG_BOOTDELAY 3 158f5d0b9b2SMasahiro Yamada #define CONFIG_ZERO_BOOTDELAY_CHECK /* check for keypress on bootdelay==0 */ 159f5d0b9b2SMasahiro Yamada 160f5d0b9b2SMasahiro Yamada /* 161f5d0b9b2SMasahiro Yamada * Network Configuration 162f5d0b9b2SMasahiro Yamada */ 163f5d0b9b2SMasahiro Yamada #define CONFIG_SERVERIP 192.168.11.1 164f5d0b9b2SMasahiro Yamada #define CONFIG_IPADDR 192.168.11.10 165f5d0b9b2SMasahiro Yamada #define CONFIG_GATEWAYIP 192.168.11.1 166f5d0b9b2SMasahiro Yamada #define CONFIG_NETMASK 255.255.255.0 167f5d0b9b2SMasahiro Yamada 168f5d0b9b2SMasahiro Yamada #define CONFIG_LOADADDR 0x84000000 169f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_LOAD_ADDR CONFIG_LOADADDR 170f5d0b9b2SMasahiro Yamada 171f5d0b9b2SMasahiro Yamada #define CONFIG_CMDLINE_EDITING /* add command line history */ 172f5d0b9b2SMasahiro Yamada 173f5d0b9b2SMasahiro Yamada #define CONFIG_BOOTCOMMAND "run $bootmode" 174f5d0b9b2SMasahiro Yamada 175f5d0b9b2SMasahiro Yamada #define CONFIG_ROOTPATH "/nfs/root/path" 176f5d0b9b2SMasahiro Yamada #define CONFIG_NFSBOOTCOMMAND \ 177f5d0b9b2SMasahiro Yamada "setenv bootargs $bootargs root=/dev/nfs rw " \ 178f5d0b9b2SMasahiro Yamada "nfsroot=$serverip:$rootpath " \ 179f5d0b9b2SMasahiro Yamada "ip=$ipaddr:$serverip:$gatewayip:$netmask:$hostname:$netdev:off;" \ 180d566f754SMasahiro Yamada "run __nfsboot" 181f5d0b9b2SMasahiro Yamada 182421376aeSMasahiro Yamada #ifdef CONFIG_FIT 183421376aeSMasahiro Yamada #define CONFIG_BOOTFILE "fitImage" 184421376aeSMasahiro Yamada #define LINUXBOOT_ENV_SETTINGS \ 185421376aeSMasahiro Yamada "fit_addr=0x00100000\0" \ 186421376aeSMasahiro Yamada "fit_addr_r=0x84100000\0" \ 187421376aeSMasahiro Yamada "fit_size=0x00f00000\0" \ 1885451b777SMasahiro Yamada "norboot=setexpr fit_addr $nor_base + $fit_addr &&" \ 189421376aeSMasahiro Yamada "bootm $fit_addr\0" \ 1905451b777SMasahiro Yamada "nandboot=nand read $fit_addr_r $fit_addr $fit_size &&" \ 191e037db0cSMasahiro Yamada "bootm $fit_addr_r\0" \ 1925451b777SMasahiro Yamada "tftpboot=tftpboot $fit_addr_r $bootfile &&" \ 193d566f754SMasahiro Yamada "bootm $fit_addr_r\0" \ 194d566f754SMasahiro Yamada "__nfsboot=run tftpboot\0" 195421376aeSMasahiro Yamada #else 19689835b35SMasahiro Yamada #define CONFIG_CMD_BOOTZ 19789835b35SMasahiro Yamada #define CONFIG_BOOTFILE "zImage" 198421376aeSMasahiro Yamada #define LINUXBOOT_ENV_SETTINGS \ 199421376aeSMasahiro Yamada "fdt_addr=0x00100000\0" \ 200421376aeSMasahiro Yamada "fdt_addr_r=0x84100000\0" \ 201421376aeSMasahiro Yamada "fdt_size=0x00008000\0" \ 202421376aeSMasahiro Yamada "kernel_addr=0x00200000\0" \ 20389835b35SMasahiro Yamada "kernel_addr_r=0x80208000\0" \ 204421376aeSMasahiro Yamada "kernel_size=0x00800000\0" \ 205421376aeSMasahiro Yamada "ramdisk_addr=0x00a00000\0" \ 206421376aeSMasahiro Yamada "ramdisk_addr_r=0x84a00000\0" \ 207421376aeSMasahiro Yamada "ramdisk_size=0x00600000\0" \ 208e037db0cSMasahiro Yamada "ramdisk_file=rootfs.cpio.uboot\0" \ 209cd5d9565SMasahiro Yamada "boot_common=setexpr bootm_low $kernel_addr_r '&' fe000000 &&" \ 210cd5d9565SMasahiro Yamada "bootz $kernel_addr_r $ramdisk_addr_r $fdt_addr_r\0" \ 211cd5d9565SMasahiro Yamada "norboot=setexpr kernel_addr $nor_base + $kernel_addr &&" \ 21290a6e929SMasahiro Yamada "cp.b $kernel_addr $kernel_addr_r $kernel_size &&" \ 213cd5d9565SMasahiro Yamada "setexpr ramdisk_addr_r $nor_base + $ramdisk_addr &&" \ 214cd5d9565SMasahiro Yamada "setexpr fdt_addr_r $nor_base + $fdt_addr &&" \ 215cd5d9565SMasahiro Yamada "run boot_common\0" \ 216cd5d9565SMasahiro Yamada "nandboot=nand read $kernel_addr_r $kernel_addr $kernel_size &&" \ 217421376aeSMasahiro Yamada "nand read $ramdisk_addr_r $ramdisk_addr $ramdisk_size &&" \ 218421376aeSMasahiro Yamada "nand read $fdt_addr_r $fdt_addr $fdt_size &&" \ 219cd5d9565SMasahiro Yamada "run boot_common\0" \ 220cd5d9565SMasahiro Yamada "tftpboot=tftpboot $kernel_addr_r $bootfile &&" \ 221e037db0cSMasahiro Yamada "tftpboot $ramdisk_addr_r $ramdisk_file &&" \ 222e037db0cSMasahiro Yamada "tftpboot $fdt_addr_r $fdt_file &&" \ 223d566f754SMasahiro Yamada "run boot_common\0" \ 224d566f754SMasahiro Yamada "__nfsboot=tftpboot $kernel_addr_r $bootfile &&" \ 225d566f754SMasahiro Yamada "tftpboot $fdt_addr_r $fdt_file &&" \ 226d566f754SMasahiro Yamada "tftpboot $fdt_addr_r $fdt_file &&" \ 227d566f754SMasahiro Yamada "setenv ramdisk_addr_r - &&" \ 228cd5d9565SMasahiro Yamada "run boot_common\0" 229421376aeSMasahiro Yamada #endif 230421376aeSMasahiro Yamada 231f5d0b9b2SMasahiro Yamada #define CONFIG_EXTRA_ENV_SETTINGS \ 232f5d0b9b2SMasahiro Yamada "netdev=eth0\0" \ 233f5d0b9b2SMasahiro Yamada "verify=n\0" \ 23490a6e929SMasahiro Yamada "nor_base=0x42000000\0" \ 235421376aeSMasahiro Yamada "nandupdate=nand erase 0 0x00100000 &&" \ 2363cb9abc9SMasahiro Yamada "tftpboot u-boot-spl.bin &&" \ 237421376aeSMasahiro Yamada "nand write $loadaddr 0 0x00010000 &&" \ 2383cb9abc9SMasahiro Yamada "tftpboot u-boot.img &&" \ 239421376aeSMasahiro Yamada "nand write $loadaddr 0x00010000 0x000f0000\0" \ 240421376aeSMasahiro Yamada LINUXBOOT_ENV_SETTINGS 241f5d0b9b2SMasahiro Yamada 24217bd4a21SMasahiro Yamada #define CONFIG_SYS_BOOTMAPSZ 0x20000000 24317bd4a21SMasahiro Yamada 244f5d0b9b2SMasahiro Yamada /* Open Firmware flat tree */ 245f5d0b9b2SMasahiro Yamada #define CONFIG_OF_LIBFDT 246f5d0b9b2SMasahiro Yamada 247cf88affaSMasahiro Yamada #define CONFIG_SYS_SDRAM_BASE 0x80000000 248f5d0b9b2SMasahiro Yamada #define CONFIG_NR_DRAM_BANKS 2 249f5d0b9b2SMasahiro Yamada 2508497ccc4SMasahiro Yamada #if defined(CONFIG_ARCH_UNIPHIER_PH1_SLD3) || \ 2518497ccc4SMasahiro Yamada defined(CONFIG_ARCH_UNIPHIER_PH1_LD4) || \ 2528497ccc4SMasahiro Yamada defined(CONFIG_ARCH_UNIPHIER_PH1_SLD8) 253f5d0b9b2SMasahiro Yamada #define CONFIG_SPL_TEXT_BASE 0x00040000 254323d1f9dSMasahiro Yamada #else 255f5d0b9b2SMasahiro Yamada #define CONFIG_SPL_TEXT_BASE 0x00100000 256f5d0b9b2SMasahiro Yamada #endif 257f5d0b9b2SMasahiro Yamada 258755c7d9aSMasahiro Yamada #define CONFIG_SPL_STACK (0x00100000) 2598cddc279SMasahiro Yamada #define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_TEXT_BASE) 260f5d0b9b2SMasahiro Yamada 261a286039bSMasahiro Yamada #define CONFIG_PANIC_HANG 262a286039bSMasahiro Yamada 263f5d0b9b2SMasahiro Yamada #define CONFIG_SPL_FRAMEWORK 264499785b9SMasahiro Yamada #define CONFIG_SPL_SERIAL_SUPPORT 265f5d0b9b2SMasahiro Yamada #define CONFIG_SPL_NAND_SUPPORT 266f5d0b9b2SMasahiro Yamada 267f5d0b9b2SMasahiro Yamada #define CONFIG_SPL_LIBCOMMON_SUPPORT /* for mem_malloc_init */ 268f5d0b9b2SMasahiro Yamada #define CONFIG_SPL_LIBGENERIC_SUPPORT 269f5d0b9b2SMasahiro Yamada 270f5d0b9b2SMasahiro Yamada #define CONFIG_SPL_BOARD_INIT 271f5d0b9b2SMasahiro Yamada 272f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_NAND_U_BOOT_OFFS 0x10000 273f5d0b9b2SMasahiro Yamada 2746a3cffe8SMasahiro Yamada #define CONFIG_SPL_MAX_FOOTPRINT 0x10000 2756a3cffe8SMasahiro Yamada 276f5d0b9b2SMasahiro Yamada #endif /* __CONFIG_UNIPHIER_COMMON_H__ */ 277