1f5d0b9b2SMasahiro Yamada /* 2e8a92932SMasahiro Yamada * Copyright (C) 2012-2015 Panasonic Corporation 3e8a92932SMasahiro Yamada * Copyright (C) 2015-2016 Socionext Inc. 4e8a92932SMasahiro Yamada * Author: Masahiro Yamada <yamada.masahiro@socionext.com> 5f5d0b9b2SMasahiro Yamada * 6f5d0b9b2SMasahiro Yamada * SPDX-License-Identifier: GPL-2.0+ 7f5d0b9b2SMasahiro Yamada */ 8f5d0b9b2SMasahiro Yamada 9a187559eSBin Meng /* U-Boot - Common settings for UniPhier Family */ 10f5d0b9b2SMasahiro Yamada 11f5d0b9b2SMasahiro Yamada #ifndef __CONFIG_UNIPHIER_COMMON_H__ 12f5d0b9b2SMasahiro Yamada #define __CONFIG_UNIPHIER_COMMON_H__ 13f5d0b9b2SMasahiro Yamada 14928f3248SMasahiro Yamada #define CONFIG_ARMV7_PSCI_1_0 15e8a92932SMasahiro Yamada 16233e42a9SMasahiro Yamada #define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS 10 17233e42a9SMasahiro Yamada 18f5d0b9b2SMasahiro Yamada /*----------------------------------------------------------------------- 19f5d0b9b2SMasahiro Yamada * MMU and Cache Setting 20f5d0b9b2SMasahiro Yamada *----------------------------------------------------------------------*/ 21f5d0b9b2SMasahiro Yamada 22f5d0b9b2SMasahiro Yamada /* Comment out the following to enable L1 cache */ 23f5d0b9b2SMasahiro Yamada /* #define CONFIG_SYS_ICACHE_OFF */ 24f5d0b9b2SMasahiro Yamada /* #define CONFIG_SYS_DCACHE_OFF */ 25f5d0b9b2SMasahiro Yamada 26f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_MALLOC_LEN (4 * 1024 * 1024) 27f5d0b9b2SMasahiro Yamada 28f5d0b9b2SMasahiro Yamada #define CONFIG_TIMESTAMP 29f5d0b9b2SMasahiro Yamada 30f5d0b9b2SMasahiro Yamada /* FLASH related */ 31f5d0b9b2SMasahiro Yamada #define CONFIG_MTD_DEVICE 32f5d0b9b2SMasahiro Yamada 33f1d9a9edSMasahiro Yamada #define CONFIG_SMC911X_32_BIT 34f1d9a9edSMasahiro Yamada /* dummy: referenced by examples/standalone/smc911x_eeprom.c */ 35f1d9a9edSMasahiro Yamada #define CONFIG_SMC911X_BASE 0 36f1d9a9edSMasahiro Yamada 37f1d9a9edSMasahiro Yamada #ifdef CONFIG_MICRO_SUPPORT_CARD 38f1d9a9edSMasahiro Yamada #define CONFIG_SMC911X 39f4c93a4fSMasahiro Yamada #endif 40f5d0b9b2SMasahiro Yamada 41f5d0b9b2SMasahiro Yamada #define CONFIG_FLASH_CFI_DRIVER 42f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_FLASH_CFI 43f5d0b9b2SMasahiro Yamada 44f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_MAX_FLASH_SECT 256 45f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_MONITOR_BASE 0 46d085ecd6SMasahiro Yamada #define CONFIG_SYS_MONITOR_LEN 0x00080000 /* 512KB */ 47f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_FLASH_BASE 0 48f5d0b9b2SMasahiro Yamada 49f5d0b9b2SMasahiro Yamada /* 5066deb91eSMasahiro Yamada * flash_toggle does not work for our support card. 51f5d0b9b2SMasahiro Yamada * We need to use flash_status_poll. 52f5d0b9b2SMasahiro Yamada */ 53f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_CFI_FLASH_STATUS_POLL 54f5d0b9b2SMasahiro Yamada 55f5d0b9b2SMasahiro Yamada #define CONFIG_FLASH_SHOW_PROGRESS 45 /* count down from 45/5: 9..1 */ 56f5d0b9b2SMasahiro Yamada 579879842cSMasahiro Yamada #define CONFIG_SYS_MAX_FLASH_BANKS_DETECT 1 58f5d0b9b2SMasahiro Yamada 59f5d0b9b2SMasahiro Yamada /* serial console configuration */ 60f5d0b9b2SMasahiro Yamada 61f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_LONGHELP /* undef to save memory */ 62f5d0b9b2SMasahiro Yamada 63f5d0b9b2SMasahiro Yamada #define CONFIG_CMDLINE_EDITING /* add command line history */ 64f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_CBSIZE 1024 /* Console I/O Buffer Size */ 65f5d0b9b2SMasahiro Yamada /* Print Buffer Size */ 66f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16) 67f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_MAXARGS 16 /* max number of command */ 68f5d0b9b2SMasahiro Yamada /* Boot Argument Buffer Size */ 69f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_BARGSIZE (CONFIG_SYS_CBSIZE) 70f5d0b9b2SMasahiro Yamada 71f5d0b9b2SMasahiro Yamada #define CONFIG_CONS_INDEX 1 72f5d0b9b2SMasahiro Yamada 730b93e3deSMasahiro Yamada #define CONFIG_ENV_OFFSET 0x100000 74f5d0b9b2SMasahiro Yamada #define CONFIG_ENV_SIZE 0x2000 75f5d0b9b2SMasahiro Yamada /* #define CONFIG_ENV_OFFSET_REDUND (CONFIG_ENV_OFFSET + CONFIG_ENV_SIZE) */ 76f5d0b9b2SMasahiro Yamada 77aa8a9348SMasahiro Yamada #define CONFIG_SYS_MMC_ENV_DEV 0 78aa8a9348SMasahiro Yamada #define CONFIG_SYS_MMC_ENV_PART 1 79aa8a9348SMasahiro Yamada 80*ee8d037cSMasahiro Yamada #if !defined(CONFIG_ARM64) 81f5d0b9b2SMasahiro Yamada /* Time clock 1MHz */ 82f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_TIMER_RATE 1000000 839d0c2cebSMasahiro Yamada #endif 849d0c2cebSMasahiro Yamada 85f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_MAX_NAND_DEVICE 1 86f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_NAND_MAX_CHIPS 2 87f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_NAND_ONFI_DETECTION 88f5d0b9b2SMasahiro Yamada 89f5d0b9b2SMasahiro Yamada #define CONFIG_NAND_DENALI_ECC_SIZE 1024 90f5d0b9b2SMasahiro Yamada 91ea65c980SMasahiro Yamada #ifdef CONFIG_ARCH_UNIPHIER_SLD3 923365b4ebSMasahiro Yamada #define CONFIG_SYS_NAND_REGS_BASE 0xf8100000 933365b4ebSMasahiro Yamada #define CONFIG_SYS_NAND_DATA_BASE 0xf8000000 943365b4ebSMasahiro Yamada #else 95f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_NAND_REGS_BASE 0x68100000 96f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_NAND_DATA_BASE 0x68000000 973365b4ebSMasahiro Yamada #endif 98f5d0b9b2SMasahiro Yamada 99f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_NAND_BASE (CONFIG_SYS_NAND_DATA_BASE + 0x10) 100f5d0b9b2SMasahiro Yamada 101f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_NAND_USE_FLASH_BBT 102f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_NAND_BAD_BLOCK_POS 0 103f5d0b9b2SMasahiro Yamada 104f5d0b9b2SMasahiro Yamada /* USB */ 10553c45d4eSMasahiro Yamada #define CONFIG_SYS_USB_XHCI_MAX_ROOT_PORTS 4 106f5d0b9b2SMasahiro Yamada 1074aceb3f8SMasahiro Yamada /* SD/MMC */ 108a55d9feeSMasahiro Yamada #define CONFIG_SUPPORT_EMMC_BOOT 1094aceb3f8SMasahiro Yamada 110f5d0b9b2SMasahiro Yamada /* memtest works on */ 111f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_MEMTEST_START CONFIG_SYS_SDRAM_BASE 112f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_MEMTEST_END (CONFIG_SYS_SDRAM_BASE + 0x01000000) 113f5d0b9b2SMasahiro Yamada 114f5d0b9b2SMasahiro Yamada /* 115f5d0b9b2SMasahiro Yamada * Network Configuration 116f5d0b9b2SMasahiro Yamada */ 117f5d0b9b2SMasahiro Yamada #define CONFIG_SERVERIP 192.168.11.1 118f5d0b9b2SMasahiro Yamada #define CONFIG_IPADDR 192.168.11.10 119f5d0b9b2SMasahiro Yamada #define CONFIG_GATEWAYIP 192.168.11.1 120f5d0b9b2SMasahiro Yamada #define CONFIG_NETMASK 255.255.255.0 121f5d0b9b2SMasahiro Yamada 122f5d0b9b2SMasahiro Yamada #define CONFIG_LOADADDR 0x84000000 123f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_LOAD_ADDR CONFIG_LOADADDR 124f5d0b9b2SMasahiro Yamada 125f5d0b9b2SMasahiro Yamada #define CONFIG_CMDLINE_EDITING /* add command line history */ 126f5d0b9b2SMasahiro Yamada 127*ee8d037cSMasahiro Yamada #if defined(CONFIG_ARM64) 128b7b43036SMasahiro Yamada /* ARM Trusted Firmware */ 129b7b43036SMasahiro Yamada #define BOOT_IMAGES \ 1307728f0c6SMasahiro Yamada "second_image=unph_bl.bin\0" \ 131b7b43036SMasahiro Yamada "third_image=fip.bin\0" 132b7b43036SMasahiro Yamada #else 133b7b43036SMasahiro Yamada #define BOOT_IMAGES \ 134b7b43036SMasahiro Yamada "second_image=u-boot-spl.bin\0" \ 135b7b43036SMasahiro Yamada "third_image=u-boot.bin\0" 136b7b43036SMasahiro Yamada #endif 137b7b43036SMasahiro Yamada 138f5d0b9b2SMasahiro Yamada #define CONFIG_BOOTCOMMAND "run $bootmode" 139f5d0b9b2SMasahiro Yamada 140f5d0b9b2SMasahiro Yamada #define CONFIG_ROOTPATH "/nfs/root/path" 141f5d0b9b2SMasahiro Yamada #define CONFIG_NFSBOOTCOMMAND \ 142f5d0b9b2SMasahiro Yamada "setenv bootargs $bootargs root=/dev/nfs rw " \ 143f5d0b9b2SMasahiro Yamada "nfsroot=$serverip:$rootpath " \ 144f5d0b9b2SMasahiro Yamada "ip=$ipaddr:$serverip:$gatewayip:$netmask:$hostname:$netdev:off;" \ 145d566f754SMasahiro Yamada "run __nfsboot" 146f5d0b9b2SMasahiro Yamada 147421376aeSMasahiro Yamada #ifdef CONFIG_FIT 148421376aeSMasahiro Yamada #define CONFIG_BOOTFILE "fitImage" 149421376aeSMasahiro Yamada #define LINUXBOOT_ENV_SETTINGS \ 150421376aeSMasahiro Yamada "fit_addr=0x00100000\0" \ 151421376aeSMasahiro Yamada "fit_addr_r=0x84100000\0" \ 152421376aeSMasahiro Yamada "fit_size=0x00f00000\0" \ 1535451b777SMasahiro Yamada "norboot=setexpr fit_addr $nor_base + $fit_addr &&" \ 154421376aeSMasahiro Yamada "bootm $fit_addr\0" \ 1555451b777SMasahiro Yamada "nandboot=nand read $fit_addr_r $fit_addr $fit_size &&" \ 156e037db0cSMasahiro Yamada "bootm $fit_addr_r\0" \ 1575451b777SMasahiro Yamada "tftpboot=tftpboot $fit_addr_r $bootfile &&" \ 158d566f754SMasahiro Yamada "bootm $fit_addr_r\0" \ 159d566f754SMasahiro Yamada "__nfsboot=run tftpboot\0" 160421376aeSMasahiro Yamada #else 1619d0c2cebSMasahiro Yamada #ifdef CONFIG_ARM64 16299b85170SMasahiro Yamada #define CONFIG_BOOTFILE "Image.gz" 1639d0c2cebSMasahiro Yamada #define LINUXBOOT_CMD "booti" 16499b85170SMasahiro Yamada #define KERNEL_ADDR_LOAD "kernel_addr_load=0x84200000\0" 165edee114aSMasahiro Yamada #define KERNEL_ADDR_R "kernel_addr_r=0x82080000\0" 1669d0c2cebSMasahiro Yamada #else 16789835b35SMasahiro Yamada #define CONFIG_BOOTFILE "zImage" 1689d0c2cebSMasahiro Yamada #define LINUXBOOT_CMD "bootz" 16999b85170SMasahiro Yamada #define KERNEL_ADDR_LOAD "kernel_addr_load=0x80208000\0" 1709d0c2cebSMasahiro Yamada #define KERNEL_ADDR_R "kernel_addr_r=0x80208000\0" 1719d0c2cebSMasahiro Yamada #endif 172421376aeSMasahiro Yamada #define LINUXBOOT_ENV_SETTINGS \ 173421376aeSMasahiro Yamada "fdt_addr=0x00100000\0" \ 174421376aeSMasahiro Yamada "fdt_addr_r=0x84100000\0" \ 175421376aeSMasahiro Yamada "fdt_size=0x00008000\0" \ 176421376aeSMasahiro Yamada "kernel_addr=0x00200000\0" \ 17799b85170SMasahiro Yamada KERNEL_ADDR_LOAD \ 1789d0c2cebSMasahiro Yamada KERNEL_ADDR_R \ 17999b85170SMasahiro Yamada "kernel_size=0x00800000\0" \ 18099b85170SMasahiro Yamada "ramdisk_addr=0x00a00000\0" \ 181421376aeSMasahiro Yamada "ramdisk_addr_r=0x84a00000\0" \ 182421376aeSMasahiro Yamada "ramdisk_size=0x00600000\0" \ 183e037db0cSMasahiro Yamada "ramdisk_file=rootfs.cpio.uboot\0" \ 184cd5d9565SMasahiro Yamada "boot_common=setexpr bootm_low $kernel_addr_r '&' fe000000 && " \ 18599b85170SMasahiro Yamada "if test $kernel_addr_load = $kernel_addr_r; then " \ 18699b85170SMasahiro Yamada "true; " \ 18799b85170SMasahiro Yamada "else " \ 18899b85170SMasahiro Yamada "unzip $kernel_addr_load $kernel_addr_r; " \ 18999b85170SMasahiro Yamada "fi && " \ 1909d0c2cebSMasahiro Yamada LINUXBOOT_CMD " $kernel_addr_r $ramdisk_addr_r $fdt_addr_r\0" \ 19199b85170SMasahiro Yamada "norboot=setexpr kernel_addr_nor $nor_base + $kernel_addr && " \ 19299b85170SMasahiro Yamada "setexpr kernel_size_div4 $kernel_size / 4 && " \ 19399b85170SMasahiro Yamada "cp $kernel_addr_nor $kernel_addr_load $kernel_size_div4 && " \ 194c0df1fafSMasahiro Yamada "setexpr ramdisk_addr_nor $nor_base + $ramdisk_addr && " \ 195c0df1fafSMasahiro Yamada "setexpr ramdisk_size_div4 $ramdisk_size / 4 && " \ 196c0df1fafSMasahiro Yamada "cp $ramdisk_addr_nor $ramdisk_addr_r $ramdisk_size_div4 && " \ 197c0df1fafSMasahiro Yamada "setexpr fdt_addr_nor $nor_base + $fdt_addr && " \ 198c0df1fafSMasahiro Yamada "setexpr fdt_size_div4 $fdt_size / 4 && " \ 199c0df1fafSMasahiro Yamada "cp $fdt_addr_nor $fdt_addr_r $fdt_size_div4 && " \ 200cd5d9565SMasahiro Yamada "run boot_common\0" \ 20199b85170SMasahiro Yamada "nandboot=nand read $kernel_addr_load $kernel_addr $kernel_size && " \ 202421376aeSMasahiro Yamada "nand read $ramdisk_addr_r $ramdisk_addr $ramdisk_size &&" \ 203421376aeSMasahiro Yamada "nand read $fdt_addr_r $fdt_addr $fdt_size &&" \ 204cd5d9565SMasahiro Yamada "run boot_common\0" \ 20599b85170SMasahiro Yamada "tftpboot=tftpboot $kernel_addr_load $bootfile && " \ 206e037db0cSMasahiro Yamada "tftpboot $ramdisk_addr_r $ramdisk_file &&" \ 207e037db0cSMasahiro Yamada "tftpboot $fdt_addr_r $fdt_file &&" \ 208d566f754SMasahiro Yamada "run boot_common\0" \ 20999b85170SMasahiro Yamada "__nfsboot=tftpboot $kernel_addr_load $bootfile && " \ 210d566f754SMasahiro Yamada "tftpboot $fdt_addr_r $fdt_file &&" \ 211d566f754SMasahiro Yamada "setenv ramdisk_addr_r - &&" \ 212cd5d9565SMasahiro Yamada "run boot_common\0" 213421376aeSMasahiro Yamada #endif 214421376aeSMasahiro Yamada 215f5d0b9b2SMasahiro Yamada #define CONFIG_EXTRA_ENV_SETTINGS \ 216f5d0b9b2SMasahiro Yamada "netdev=eth0\0" \ 217f5d0b9b2SMasahiro Yamada "verify=n\0" \ 218c0df1fafSMasahiro Yamada "initrd_high=0xffffffffffffffff\0" \ 21990a6e929SMasahiro Yamada "nor_base=0x42000000\0" \ 22061a4f5bdSMasahiro Yamada "sramupdate=setexpr tmp_addr $nor_base + 0x50000 &&" \ 221b7b43036SMasahiro Yamada "tftpboot $tmp_addr $second_image && " \ 222c0efc314SMasahiro Yamada "setexpr tmp_addr $nor_base + 0x70000 && " \ 223b7b43036SMasahiro Yamada "tftpboot $tmp_addr $third_image\0" \ 224c231c436SMasahiro Yamada "emmcupdate=mmcsetn &&" \ 225c231c436SMasahiro Yamada "mmc partconf $mmc_first_dev 0 1 1 &&" \ 226b7b43036SMasahiro Yamada "tftpboot $second_image && " \ 227c0efc314SMasahiro Yamada "mmc write $loadaddr 0 100 && " \ 228b7b43036SMasahiro Yamada "tftpboot $third_image && " \ 229c0efc314SMasahiro Yamada "mmc write $loadaddr 100 700\0" \ 230421376aeSMasahiro Yamada "nandupdate=nand erase 0 0x00100000 &&" \ 231b7b43036SMasahiro Yamada "tftpboot $second_image && " \ 232c0efc314SMasahiro Yamada "nand write $loadaddr 0 0x00020000 && " \ 233b7b43036SMasahiro Yamada "tftpboot $third_image && " \ 234c0efc314SMasahiro Yamada "nand write $loadaddr 0x00020000 0x000e0000\0" \ 2358d3064d9SMasahiro Yamada "usbupdate=usb start &&" \ 2368d3064d9SMasahiro Yamada "tftpboot $second_image && " \ 2378d3064d9SMasahiro Yamada "usb write $loadaddr 0 100 && " \ 2388d3064d9SMasahiro Yamada "tftpboot $third_image && " \ 2398d3064d9SMasahiro Yamada "usb write $loadaddr 100 700\0" \ 240b7b43036SMasahiro Yamada BOOT_IMAGES \ 241421376aeSMasahiro Yamada LINUXBOOT_ENV_SETTINGS 242f5d0b9b2SMasahiro Yamada 24317bd4a21SMasahiro Yamada #define CONFIG_SYS_BOOTMAPSZ 0x20000000 24417bd4a21SMasahiro Yamada 245cf88affaSMasahiro Yamada #define CONFIG_SYS_SDRAM_BASE 0x80000000 2463e9952beSMasahiro Yamada #define CONFIG_NR_DRAM_BANKS 3 24723869698SMasahiro Yamada /* for LD20; the last 64 byte is used for dynamic DDR PHY training */ 24823869698SMasahiro Yamada #define CONFIG_SYS_MEM_TOP_HIDE 64 249f5d0b9b2SMasahiro Yamada 2503e0cfaa0SMasahiro Yamada #define CONFIG_PANIC_HANG 2513e0cfaa0SMasahiro Yamada 2523e0cfaa0SMasahiro Yamada #define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_TEXT_BASE) 2533e0cfaa0SMasahiro Yamada 2543e0cfaa0SMasahiro Yamada /* only for SPL */ 255*ee8d037cSMasahiro Yamada #if defined(CONFIG_ARCH_UNIPHIER_SLD3) || \ 2569d0c2cebSMasahiro Yamada defined(CONFIG_ARCH_UNIPHIER_LD4) || \ 257ea65c980SMasahiro Yamada defined(CONFIG_ARCH_UNIPHIER_SLD8) 258f5d0b9b2SMasahiro Yamada #define CONFIG_SPL_TEXT_BASE 0x00040000 259323d1f9dSMasahiro Yamada #else 260f5d0b9b2SMasahiro Yamada #define CONFIG_SPL_TEXT_BASE 0x00100000 261f5d0b9b2SMasahiro Yamada #endif 262f5d0b9b2SMasahiro Yamada 263755c7d9aSMasahiro Yamada #define CONFIG_SPL_STACK (0x00100000) 264a286039bSMasahiro Yamada 265f5d0b9b2SMasahiro Yamada #define CONFIG_SPL_FRAMEWORK 266f5d0b9b2SMasahiro Yamada 267c0efc314SMasahiro Yamada #define CONFIG_SYS_NAND_U_BOOT_OFFS 0x20000 268cbbc2d80SMasahiro Yamada 269d085ecd6SMasahiro Yamada /* subtract sizeof(struct image_header) */ 270c0efc314SMasahiro Yamada #define CONFIG_SYS_UBOOT_BASE (0x70000 - 0x40) 271f5d0b9b2SMasahiro Yamada 272d085ecd6SMasahiro Yamada #define CONFIG_SPL_TARGET "u-boot-with-spl.bin" 2736a3cffe8SMasahiro Yamada #define CONFIG_SPL_MAX_FOOTPRINT 0x10000 27486c3345aSMasahiro Yamada #define CONFIG_SPL_MAX_SIZE 0x10000 2759d0c2cebSMasahiro Yamada #define CONFIG_SPL_BSS_MAX_SIZE 0x2000 2766a3cffe8SMasahiro Yamada 277c0efc314SMasahiro Yamada #define CONFIG_SPL_PAD_TO 0x20000 278c0efc314SMasahiro Yamada 279f5d0b9b2SMasahiro Yamada #endif /* __CONFIG_UNIPHIER_COMMON_H__ */ 280