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 80ee8d037cSMasahiro 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 91f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_NAND_REGS_BASE 0x68100000 92f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_NAND_DATA_BASE 0x68000000 93f5d0b9b2SMasahiro Yamada 94f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_NAND_BASE (CONFIG_SYS_NAND_DATA_BASE + 0x10) 95f5d0b9b2SMasahiro Yamada 96f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_NAND_USE_FLASH_BBT 97f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_NAND_BAD_BLOCK_POS 0 98f5d0b9b2SMasahiro Yamada 994aceb3f8SMasahiro Yamada /* SD/MMC */ 100a55d9feeSMasahiro Yamada #define CONFIG_SUPPORT_EMMC_BOOT 1014aceb3f8SMasahiro Yamada 102f5d0b9b2SMasahiro Yamada /* memtest works on */ 103f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_MEMTEST_START CONFIG_SYS_SDRAM_BASE 104f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_MEMTEST_END (CONFIG_SYS_SDRAM_BASE + 0x01000000) 105f5d0b9b2SMasahiro Yamada 106f5d0b9b2SMasahiro Yamada /* 107f5d0b9b2SMasahiro Yamada * Network Configuration 108f5d0b9b2SMasahiro Yamada */ 109f5d0b9b2SMasahiro Yamada #define CONFIG_SERVERIP 192.168.11.1 110f5d0b9b2SMasahiro Yamada #define CONFIG_IPADDR 192.168.11.10 111f5d0b9b2SMasahiro Yamada #define CONFIG_GATEWAYIP 192.168.11.1 112f5d0b9b2SMasahiro Yamada #define CONFIG_NETMASK 255.255.255.0 113f5d0b9b2SMasahiro Yamada 114f5d0b9b2SMasahiro Yamada #define CONFIG_LOADADDR 0x84000000 115f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_LOAD_ADDR CONFIG_LOADADDR 116f5d0b9b2SMasahiro Yamada 117f5d0b9b2SMasahiro Yamada #define CONFIG_CMDLINE_EDITING /* add command line history */ 118f5d0b9b2SMasahiro Yamada 119ee8d037cSMasahiro Yamada #if defined(CONFIG_ARM64) 120b7b43036SMasahiro Yamada /* ARM Trusted Firmware */ 121b7b43036SMasahiro Yamada #define BOOT_IMAGES \ 1227728f0c6SMasahiro Yamada "second_image=unph_bl.bin\0" \ 123b7b43036SMasahiro Yamada "third_image=fip.bin\0" 124b7b43036SMasahiro Yamada #else 125b7b43036SMasahiro Yamada #define BOOT_IMAGES \ 126b7b43036SMasahiro Yamada "second_image=u-boot-spl.bin\0" \ 127b7b43036SMasahiro Yamada "third_image=u-boot.bin\0" 128b7b43036SMasahiro Yamada #endif 129b7b43036SMasahiro Yamada 130f5d0b9b2SMasahiro Yamada #define CONFIG_BOOTCOMMAND "run $bootmode" 131f5d0b9b2SMasahiro Yamada 132f5d0b9b2SMasahiro Yamada #define CONFIG_ROOTPATH "/nfs/root/path" 133f5d0b9b2SMasahiro Yamada #define CONFIG_NFSBOOTCOMMAND \ 134f5d0b9b2SMasahiro Yamada "setenv bootargs $bootargs root=/dev/nfs rw " \ 135f5d0b9b2SMasahiro Yamada "nfsroot=$serverip:$rootpath " \ 136f5d0b9b2SMasahiro Yamada "ip=$ipaddr:$serverip:$gatewayip:$netmask:$hostname:$netdev:off;" \ 137d566f754SMasahiro Yamada "run __nfsboot" 138f5d0b9b2SMasahiro Yamada 139421376aeSMasahiro Yamada #ifdef CONFIG_FIT 140421376aeSMasahiro Yamada #define CONFIG_BOOTFILE "fitImage" 141421376aeSMasahiro Yamada #define LINUXBOOT_ENV_SETTINGS \ 142421376aeSMasahiro Yamada "fit_addr=0x00100000\0" \ 143421376aeSMasahiro Yamada "fit_addr_r=0x84100000\0" \ 144421376aeSMasahiro Yamada "fit_size=0x00f00000\0" \ 1455451b777SMasahiro Yamada "norboot=setexpr fit_addr $nor_base + $fit_addr &&" \ 146421376aeSMasahiro Yamada "bootm $fit_addr\0" \ 1475451b777SMasahiro Yamada "nandboot=nand read $fit_addr_r $fit_addr $fit_size &&" \ 148e037db0cSMasahiro Yamada "bootm $fit_addr_r\0" \ 1495451b777SMasahiro Yamada "tftpboot=tftpboot $fit_addr_r $bootfile &&" \ 150d566f754SMasahiro Yamada "bootm $fit_addr_r\0" \ 151d566f754SMasahiro Yamada "__nfsboot=run tftpboot\0" 152421376aeSMasahiro Yamada #else 1539d0c2cebSMasahiro Yamada #ifdef CONFIG_ARM64 15499b85170SMasahiro Yamada #define CONFIG_BOOTFILE "Image.gz" 1559d0c2cebSMasahiro Yamada #define LINUXBOOT_CMD "booti" 15699b85170SMasahiro Yamada #define KERNEL_ADDR_LOAD "kernel_addr_load=0x84200000\0" 157edee114aSMasahiro Yamada #define KERNEL_ADDR_R "kernel_addr_r=0x82080000\0" 1589d0c2cebSMasahiro Yamada #else 15989835b35SMasahiro Yamada #define CONFIG_BOOTFILE "zImage" 1609d0c2cebSMasahiro Yamada #define LINUXBOOT_CMD "bootz" 16199b85170SMasahiro Yamada #define KERNEL_ADDR_LOAD "kernel_addr_load=0x80208000\0" 1629d0c2cebSMasahiro Yamada #define KERNEL_ADDR_R "kernel_addr_r=0x80208000\0" 1639d0c2cebSMasahiro Yamada #endif 164421376aeSMasahiro Yamada #define LINUXBOOT_ENV_SETTINGS \ 165421376aeSMasahiro Yamada "fdt_addr=0x00100000\0" \ 166421376aeSMasahiro Yamada "fdt_addr_r=0x84100000\0" \ 167421376aeSMasahiro Yamada "fdt_size=0x00008000\0" \ 168421376aeSMasahiro Yamada "kernel_addr=0x00200000\0" \ 16999b85170SMasahiro Yamada KERNEL_ADDR_LOAD \ 1709d0c2cebSMasahiro Yamada KERNEL_ADDR_R \ 17199b85170SMasahiro Yamada "kernel_size=0x00800000\0" \ 17299b85170SMasahiro Yamada "ramdisk_addr=0x00a00000\0" \ 173421376aeSMasahiro Yamada "ramdisk_addr_r=0x84a00000\0" \ 174421376aeSMasahiro Yamada "ramdisk_size=0x00600000\0" \ 175e037db0cSMasahiro Yamada "ramdisk_file=rootfs.cpio.uboot\0" \ 176cd5d9565SMasahiro Yamada "boot_common=setexpr bootm_low $kernel_addr_r '&' fe000000 && " \ 17799b85170SMasahiro Yamada "if test $kernel_addr_load = $kernel_addr_r; then " \ 17899b85170SMasahiro Yamada "true; " \ 17999b85170SMasahiro Yamada "else " \ 18099b85170SMasahiro Yamada "unzip $kernel_addr_load $kernel_addr_r; " \ 18199b85170SMasahiro Yamada "fi && " \ 1829d0c2cebSMasahiro Yamada LINUXBOOT_CMD " $kernel_addr_r $ramdisk_addr_r $fdt_addr_r\0" \ 18399b85170SMasahiro Yamada "norboot=setexpr kernel_addr_nor $nor_base + $kernel_addr && " \ 18499b85170SMasahiro Yamada "setexpr kernel_size_div4 $kernel_size / 4 && " \ 18599b85170SMasahiro Yamada "cp $kernel_addr_nor $kernel_addr_load $kernel_size_div4 && " \ 186c0df1fafSMasahiro Yamada "setexpr ramdisk_addr_nor $nor_base + $ramdisk_addr && " \ 187c0df1fafSMasahiro Yamada "setexpr ramdisk_size_div4 $ramdisk_size / 4 && " \ 188c0df1fafSMasahiro Yamada "cp $ramdisk_addr_nor $ramdisk_addr_r $ramdisk_size_div4 && " \ 189c0df1fafSMasahiro Yamada "setexpr fdt_addr_nor $nor_base + $fdt_addr && " \ 190c0df1fafSMasahiro Yamada "setexpr fdt_size_div4 $fdt_size / 4 && " \ 191c0df1fafSMasahiro Yamada "cp $fdt_addr_nor $fdt_addr_r $fdt_size_div4 && " \ 192cd5d9565SMasahiro Yamada "run boot_common\0" \ 19399b85170SMasahiro Yamada "nandboot=nand read $kernel_addr_load $kernel_addr $kernel_size && " \ 194421376aeSMasahiro Yamada "nand read $ramdisk_addr_r $ramdisk_addr $ramdisk_size &&" \ 195421376aeSMasahiro Yamada "nand read $fdt_addr_r $fdt_addr $fdt_size &&" \ 196cd5d9565SMasahiro Yamada "run boot_common\0" \ 19799b85170SMasahiro Yamada "tftpboot=tftpboot $kernel_addr_load $bootfile && " \ 198e037db0cSMasahiro Yamada "tftpboot $ramdisk_addr_r $ramdisk_file &&" \ 199e037db0cSMasahiro Yamada "tftpboot $fdt_addr_r $fdt_file &&" \ 200d566f754SMasahiro Yamada "run boot_common\0" \ 20199b85170SMasahiro Yamada "__nfsboot=tftpboot $kernel_addr_load $bootfile && " \ 202d566f754SMasahiro Yamada "tftpboot $fdt_addr_r $fdt_file &&" \ 203d566f754SMasahiro Yamada "setenv ramdisk_addr_r - &&" \ 204cd5d9565SMasahiro Yamada "run boot_common\0" 205421376aeSMasahiro Yamada #endif 206421376aeSMasahiro Yamada 207f5d0b9b2SMasahiro Yamada #define CONFIG_EXTRA_ENV_SETTINGS \ 208f5d0b9b2SMasahiro Yamada "netdev=eth0\0" \ 209f5d0b9b2SMasahiro Yamada "verify=n\0" \ 210c0df1fafSMasahiro Yamada "initrd_high=0xffffffffffffffff\0" \ 21190a6e929SMasahiro Yamada "nor_base=0x42000000\0" \ 21261a4f5bdSMasahiro Yamada "sramupdate=setexpr tmp_addr $nor_base + 0x50000 &&" \ 213b7b43036SMasahiro Yamada "tftpboot $tmp_addr $second_image && " \ 214c0efc314SMasahiro Yamada "setexpr tmp_addr $nor_base + 0x70000 && " \ 215b7b43036SMasahiro Yamada "tftpboot $tmp_addr $third_image\0" \ 216c231c436SMasahiro Yamada "emmcupdate=mmcsetn &&" \ 217c231c436SMasahiro Yamada "mmc partconf $mmc_first_dev 0 1 1 &&" \ 218b7b43036SMasahiro Yamada "tftpboot $second_image && " \ 219c0efc314SMasahiro Yamada "mmc write $loadaddr 0 100 && " \ 220b7b43036SMasahiro Yamada "tftpboot $third_image && " \ 221c0efc314SMasahiro Yamada "mmc write $loadaddr 100 700\0" \ 222421376aeSMasahiro Yamada "nandupdate=nand erase 0 0x00100000 &&" \ 223b7b43036SMasahiro Yamada "tftpboot $second_image && " \ 224c0efc314SMasahiro Yamada "nand write $loadaddr 0 0x00020000 && " \ 225b7b43036SMasahiro Yamada "tftpboot $third_image && " \ 226c0efc314SMasahiro Yamada "nand write $loadaddr 0x00020000 0x000e0000\0" \ 2278d3064d9SMasahiro Yamada "usbupdate=usb start &&" \ 2288d3064d9SMasahiro Yamada "tftpboot $second_image && " \ 2298d3064d9SMasahiro Yamada "usb write $loadaddr 0 100 && " \ 2308d3064d9SMasahiro Yamada "tftpboot $third_image && " \ 2318d3064d9SMasahiro Yamada "usb write $loadaddr 100 700\0" \ 232b7b43036SMasahiro Yamada BOOT_IMAGES \ 233421376aeSMasahiro Yamada LINUXBOOT_ENV_SETTINGS 234f5d0b9b2SMasahiro Yamada 23517bd4a21SMasahiro Yamada #define CONFIG_SYS_BOOTMAPSZ 0x20000000 23617bd4a21SMasahiro Yamada 237cf88affaSMasahiro Yamada #define CONFIG_SYS_SDRAM_BASE 0x80000000 2383e9952beSMasahiro Yamada #define CONFIG_NR_DRAM_BANKS 3 23923869698SMasahiro Yamada /* for LD20; the last 64 byte is used for dynamic DDR PHY training */ 24023869698SMasahiro Yamada #define CONFIG_SYS_MEM_TOP_HIDE 64 241f5d0b9b2SMasahiro Yamada 2423e0cfaa0SMasahiro Yamada #define CONFIG_PANIC_HANG 2433e0cfaa0SMasahiro Yamada 2443e0cfaa0SMasahiro Yamada #define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_TEXT_BASE) 2453e0cfaa0SMasahiro Yamada 2463e0cfaa0SMasahiro Yamada /* only for SPL */ 247*00aa453eSMasahiro Yamada #if defined(CONFIG_ARCH_UNIPHIER_LD4) || \ 248ea65c980SMasahiro Yamada defined(CONFIG_ARCH_UNIPHIER_SLD8) 249f5d0b9b2SMasahiro Yamada #define CONFIG_SPL_TEXT_BASE 0x00040000 250323d1f9dSMasahiro Yamada #else 251f5d0b9b2SMasahiro Yamada #define CONFIG_SPL_TEXT_BASE 0x00100000 252f5d0b9b2SMasahiro Yamada #endif 253f5d0b9b2SMasahiro Yamada 254755c7d9aSMasahiro Yamada #define CONFIG_SPL_STACK (0x00100000) 255a286039bSMasahiro Yamada 256f5d0b9b2SMasahiro Yamada #define CONFIG_SPL_FRAMEWORK 257f5d0b9b2SMasahiro Yamada 258c0efc314SMasahiro Yamada #define CONFIG_SYS_NAND_U_BOOT_OFFS 0x20000 259cbbc2d80SMasahiro Yamada 260d085ecd6SMasahiro Yamada /* subtract sizeof(struct image_header) */ 261c0efc314SMasahiro Yamada #define CONFIG_SYS_UBOOT_BASE (0x70000 - 0x40) 262f5d0b9b2SMasahiro Yamada 263d085ecd6SMasahiro Yamada #define CONFIG_SPL_TARGET "u-boot-with-spl.bin" 2646a3cffe8SMasahiro Yamada #define CONFIG_SPL_MAX_FOOTPRINT 0x10000 26586c3345aSMasahiro Yamada #define CONFIG_SPL_MAX_SIZE 0x10000 2669d0c2cebSMasahiro Yamada #define CONFIG_SPL_BSS_MAX_SIZE 0x2000 2676a3cffe8SMasahiro Yamada 268c0efc314SMasahiro Yamada #define CONFIG_SPL_PAD_TO 0x20000 269c0efc314SMasahiro Yamada 270f5d0b9b2SMasahiro Yamada #endif /* __CONFIG_UNIPHIER_COMMON_H__ */ 271