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 16f5d0b9b2SMasahiro Yamada /*----------------------------------------------------------------------- 17f5d0b9b2SMasahiro Yamada * MMU and Cache Setting 18f5d0b9b2SMasahiro Yamada *----------------------------------------------------------------------*/ 19f5d0b9b2SMasahiro Yamada 20f5d0b9b2SMasahiro Yamada /* Comment out the following to enable L1 cache */ 21f5d0b9b2SMasahiro Yamada /* #define CONFIG_SYS_ICACHE_OFF */ 22f5d0b9b2SMasahiro Yamada /* #define CONFIG_SYS_DCACHE_OFF */ 23f5d0b9b2SMasahiro Yamada 24f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_MALLOC_LEN (4 * 1024 * 1024) 25f5d0b9b2SMasahiro Yamada 26f5d0b9b2SMasahiro Yamada #define CONFIG_TIMESTAMP 27f5d0b9b2SMasahiro Yamada 28f5d0b9b2SMasahiro Yamada /* FLASH related */ 29f5d0b9b2SMasahiro Yamada 30f1d9a9edSMasahiro Yamada #define CONFIG_SMC911X_32_BIT 31f1d9a9edSMasahiro Yamada /* dummy: referenced by examples/standalone/smc911x_eeprom.c */ 32f1d9a9edSMasahiro Yamada #define CONFIG_SMC911X_BASE 0 33f1d9a9edSMasahiro Yamada 34f1d9a9edSMasahiro Yamada #ifdef CONFIG_MICRO_SUPPORT_CARD 35f1d9a9edSMasahiro Yamada #define CONFIG_SMC911X 36f4c93a4fSMasahiro Yamada #endif 37f5d0b9b2SMasahiro Yamada 38f5d0b9b2SMasahiro Yamada #define CONFIG_FLASH_CFI_DRIVER 39f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_FLASH_CFI 40f5d0b9b2SMasahiro Yamada 41f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_MAX_FLASH_SECT 256 42f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_MONITOR_BASE 0 43d085ecd6SMasahiro Yamada #define CONFIG_SYS_MONITOR_LEN 0x00080000 /* 512KB */ 44f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_FLASH_BASE 0 45f5d0b9b2SMasahiro Yamada 46f5d0b9b2SMasahiro Yamada /* 4766deb91eSMasahiro Yamada * flash_toggle does not work for our support card. 48f5d0b9b2SMasahiro Yamada * We need to use flash_status_poll. 49f5d0b9b2SMasahiro Yamada */ 50f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_CFI_FLASH_STATUS_POLL 51f5d0b9b2SMasahiro Yamada 52f5d0b9b2SMasahiro Yamada #define CONFIG_FLASH_SHOW_PROGRESS 45 /* count down from 45/5: 9..1 */ 53f5d0b9b2SMasahiro Yamada 549879842cSMasahiro Yamada #define CONFIG_SYS_MAX_FLASH_BANKS_DETECT 1 55f5d0b9b2SMasahiro Yamada 56f5d0b9b2SMasahiro Yamada /* serial console configuration */ 57f5d0b9b2SMasahiro Yamada 58f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_LONGHELP /* undef to save memory */ 59f5d0b9b2SMasahiro Yamada 60f5d0b9b2SMasahiro Yamada #define CONFIG_CMDLINE_EDITING /* add command line history */ 61f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_CBSIZE 1024 /* Console I/O Buffer Size */ 62f5d0b9b2SMasahiro Yamada /* Boot Argument Buffer Size */ 63f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_BARGSIZE (CONFIG_SYS_CBSIZE) 64f5d0b9b2SMasahiro Yamada 65f5d0b9b2SMasahiro Yamada #define CONFIG_CONS_INDEX 1 66f5d0b9b2SMasahiro Yamada 670b93e3deSMasahiro Yamada #define CONFIG_ENV_OFFSET 0x100000 68f5d0b9b2SMasahiro Yamada #define CONFIG_ENV_SIZE 0x2000 69f5d0b9b2SMasahiro Yamada /* #define CONFIG_ENV_OFFSET_REDUND (CONFIG_ENV_OFFSET + CONFIG_ENV_SIZE) */ 70f5d0b9b2SMasahiro Yamada 71aa8a9348SMasahiro Yamada #define CONFIG_SYS_MMC_ENV_DEV 0 72aa8a9348SMasahiro Yamada #define CONFIG_SYS_MMC_ENV_PART 1 73aa8a9348SMasahiro Yamada 74ee8d037cSMasahiro Yamada #if !defined(CONFIG_ARM64) 75f5d0b9b2SMasahiro Yamada /* Time clock 1MHz */ 76f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_TIMER_RATE 1000000 779d0c2cebSMasahiro Yamada #endif 789d0c2cebSMasahiro Yamada 79f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_MAX_NAND_DEVICE 1 80f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_NAND_ONFI_DETECTION 81f5d0b9b2SMasahiro Yamada 82f5d0b9b2SMasahiro Yamada #define CONFIG_NAND_DENALI_ECC_SIZE 1024 83f5d0b9b2SMasahiro Yamada 84f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_NAND_REGS_BASE 0x68100000 85f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_NAND_DATA_BASE 0x68000000 86f5d0b9b2SMasahiro Yamada 87f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_NAND_USE_FLASH_BBT 88f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_NAND_BAD_BLOCK_POS 0 89f5d0b9b2SMasahiro Yamada 904aceb3f8SMasahiro Yamada /* SD/MMC */ 91a55d9feeSMasahiro Yamada #define CONFIG_SUPPORT_EMMC_BOOT 924aceb3f8SMasahiro Yamada 93f5d0b9b2SMasahiro Yamada /* memtest works on */ 94f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_MEMTEST_START CONFIG_SYS_SDRAM_BASE 95f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_MEMTEST_END (CONFIG_SYS_SDRAM_BASE + 0x01000000) 96f5d0b9b2SMasahiro Yamada 97f5d0b9b2SMasahiro Yamada /* 98f5d0b9b2SMasahiro Yamada * Network Configuration 99f5d0b9b2SMasahiro Yamada */ 100f5d0b9b2SMasahiro Yamada #define CONFIG_SERVERIP 192.168.11.1 101f5d0b9b2SMasahiro Yamada #define CONFIG_IPADDR 192.168.11.10 102f5d0b9b2SMasahiro Yamada #define CONFIG_GATEWAYIP 192.168.11.1 103f5d0b9b2SMasahiro Yamada #define CONFIG_NETMASK 255.255.255.0 104f5d0b9b2SMasahiro Yamada 105f5d0b9b2SMasahiro Yamada #define CONFIG_LOADADDR 0x84000000 106f5d0b9b2SMasahiro Yamada #define CONFIG_SYS_LOAD_ADDR CONFIG_LOADADDR 107f5d0b9b2SMasahiro Yamada 108f5d0b9b2SMasahiro Yamada #define CONFIG_CMDLINE_EDITING /* add command line history */ 109f5d0b9b2SMasahiro Yamada 110ee8d037cSMasahiro Yamada #if defined(CONFIG_ARM64) 111b7b43036SMasahiro Yamada /* ARM Trusted Firmware */ 112b7b43036SMasahiro Yamada #define BOOT_IMAGES \ 1137728f0c6SMasahiro Yamada "second_image=unph_bl.bin\0" \ 114b7b43036SMasahiro Yamada "third_image=fip.bin\0" 115b7b43036SMasahiro Yamada #else 116b7b43036SMasahiro Yamada #define BOOT_IMAGES \ 117b7b43036SMasahiro Yamada "second_image=u-boot-spl.bin\0" \ 118b7b43036SMasahiro Yamada "third_image=u-boot.bin\0" 119b7b43036SMasahiro Yamada #endif 120b7b43036SMasahiro Yamada 121f5d0b9b2SMasahiro Yamada #define CONFIG_BOOTCOMMAND "run $bootmode" 122f5d0b9b2SMasahiro Yamada 123f5d0b9b2SMasahiro Yamada #define CONFIG_ROOTPATH "/nfs/root/path" 124f5d0b9b2SMasahiro Yamada #define CONFIG_NFSBOOTCOMMAND \ 125f5d0b9b2SMasahiro Yamada "setenv bootargs $bootargs root=/dev/nfs rw " \ 126f5d0b9b2SMasahiro Yamada "nfsroot=$serverip:$rootpath " \ 127f5d0b9b2SMasahiro Yamada "ip=$ipaddr:$serverip:$gatewayip:$netmask:$hostname:$netdev:off;" \ 128d566f754SMasahiro Yamada "run __nfsboot" 129f5d0b9b2SMasahiro Yamada 130421376aeSMasahiro Yamada #ifdef CONFIG_FIT 131421376aeSMasahiro Yamada #define CONFIG_BOOTFILE "fitImage" 132421376aeSMasahiro Yamada #define LINUXBOOT_ENV_SETTINGS \ 133421376aeSMasahiro Yamada "fit_addr=0x00100000\0" \ 134421376aeSMasahiro Yamada "fit_addr_r=0x84100000\0" \ 135421376aeSMasahiro Yamada "fit_size=0x00f00000\0" \ 1365451b777SMasahiro Yamada "norboot=setexpr fit_addr $nor_base + $fit_addr &&" \ 137421376aeSMasahiro Yamada "bootm $fit_addr\0" \ 1385451b777SMasahiro Yamada "nandboot=nand read $fit_addr_r $fit_addr $fit_size &&" \ 139e037db0cSMasahiro Yamada "bootm $fit_addr_r\0" \ 1405451b777SMasahiro Yamada "tftpboot=tftpboot $fit_addr_r $bootfile &&" \ 141d566f754SMasahiro Yamada "bootm $fit_addr_r\0" \ 142d566f754SMasahiro Yamada "__nfsboot=run tftpboot\0" 143421376aeSMasahiro Yamada #else 1449d0c2cebSMasahiro Yamada #ifdef CONFIG_ARM64 14599b85170SMasahiro Yamada #define CONFIG_BOOTFILE "Image.gz" 1469d0c2cebSMasahiro Yamada #define LINUXBOOT_CMD "booti" 14799b85170SMasahiro Yamada #define KERNEL_ADDR_LOAD "kernel_addr_load=0x84200000\0" 148edee114aSMasahiro Yamada #define KERNEL_ADDR_R "kernel_addr_r=0x82080000\0" 1499d0c2cebSMasahiro Yamada #else 15089835b35SMasahiro Yamada #define CONFIG_BOOTFILE "zImage" 1519d0c2cebSMasahiro Yamada #define LINUXBOOT_CMD "bootz" 15299b85170SMasahiro Yamada #define KERNEL_ADDR_LOAD "kernel_addr_load=0x80208000\0" 1539d0c2cebSMasahiro Yamada #define KERNEL_ADDR_R "kernel_addr_r=0x80208000\0" 1549d0c2cebSMasahiro Yamada #endif 155421376aeSMasahiro Yamada #define LINUXBOOT_ENV_SETTINGS \ 156421376aeSMasahiro Yamada "fdt_addr=0x00100000\0" \ 157421376aeSMasahiro Yamada "fdt_addr_r=0x84100000\0" \ 158421376aeSMasahiro Yamada "fdt_size=0x00008000\0" \ 159421376aeSMasahiro Yamada "kernel_addr=0x00200000\0" \ 16099b85170SMasahiro Yamada KERNEL_ADDR_LOAD \ 1619d0c2cebSMasahiro Yamada KERNEL_ADDR_R \ 16299b85170SMasahiro Yamada "kernel_size=0x00800000\0" \ 16399b85170SMasahiro Yamada "ramdisk_addr=0x00a00000\0" \ 164421376aeSMasahiro Yamada "ramdisk_addr_r=0x84a00000\0" \ 165421376aeSMasahiro Yamada "ramdisk_size=0x00600000\0" \ 166e037db0cSMasahiro Yamada "ramdisk_file=rootfs.cpio.uboot\0" \ 167cd5d9565SMasahiro Yamada "boot_common=setexpr bootm_low $kernel_addr_r '&' fe000000 && " \ 16899b85170SMasahiro Yamada "if test $kernel_addr_load = $kernel_addr_r; then " \ 16999b85170SMasahiro Yamada "true; " \ 17099b85170SMasahiro Yamada "else " \ 17199b85170SMasahiro Yamada "unzip $kernel_addr_load $kernel_addr_r; " \ 17299b85170SMasahiro Yamada "fi && " \ 1739d0c2cebSMasahiro Yamada LINUXBOOT_CMD " $kernel_addr_r $ramdisk_addr_r $fdt_addr_r\0" \ 17499b85170SMasahiro Yamada "norboot=setexpr kernel_addr_nor $nor_base + $kernel_addr && " \ 17599b85170SMasahiro Yamada "setexpr kernel_size_div4 $kernel_size / 4 && " \ 17699b85170SMasahiro Yamada "cp $kernel_addr_nor $kernel_addr_load $kernel_size_div4 && " \ 177c0df1fafSMasahiro Yamada "setexpr ramdisk_addr_nor $nor_base + $ramdisk_addr && " \ 178c0df1fafSMasahiro Yamada "setexpr ramdisk_size_div4 $ramdisk_size / 4 && " \ 179c0df1fafSMasahiro Yamada "cp $ramdisk_addr_nor $ramdisk_addr_r $ramdisk_size_div4 && " \ 180c0df1fafSMasahiro Yamada "setexpr fdt_addr_nor $nor_base + $fdt_addr && " \ 181c0df1fafSMasahiro Yamada "setexpr fdt_size_div4 $fdt_size / 4 && " \ 182c0df1fafSMasahiro Yamada "cp $fdt_addr_nor $fdt_addr_r $fdt_size_div4 && " \ 183cd5d9565SMasahiro Yamada "run boot_common\0" \ 18499b85170SMasahiro Yamada "nandboot=nand read $kernel_addr_load $kernel_addr $kernel_size && " \ 185421376aeSMasahiro Yamada "nand read $ramdisk_addr_r $ramdisk_addr $ramdisk_size &&" \ 186421376aeSMasahiro Yamada "nand read $fdt_addr_r $fdt_addr $fdt_size &&" \ 187cd5d9565SMasahiro Yamada "run boot_common\0" \ 18899b85170SMasahiro Yamada "tftpboot=tftpboot $kernel_addr_load $bootfile && " \ 189e037db0cSMasahiro Yamada "tftpboot $ramdisk_addr_r $ramdisk_file &&" \ 190e037db0cSMasahiro Yamada "tftpboot $fdt_addr_r $fdt_file &&" \ 191d566f754SMasahiro Yamada "run boot_common\0" \ 19299b85170SMasahiro Yamada "__nfsboot=tftpboot $kernel_addr_load $bootfile && " \ 193d566f754SMasahiro Yamada "tftpboot $fdt_addr_r $fdt_file &&" \ 194d566f754SMasahiro Yamada "setenv ramdisk_addr_r - &&" \ 195cd5d9565SMasahiro Yamada "run boot_common\0" 196421376aeSMasahiro Yamada #endif 197421376aeSMasahiro Yamada 198f5d0b9b2SMasahiro Yamada #define CONFIG_EXTRA_ENV_SETTINGS \ 199f5d0b9b2SMasahiro Yamada "netdev=eth0\0" \ 200f5d0b9b2SMasahiro Yamada "verify=n\0" \ 201c0df1fafSMasahiro Yamada "initrd_high=0xffffffffffffffff\0" \ 20290a6e929SMasahiro Yamada "nor_base=0x42000000\0" \ 20361a4f5bdSMasahiro Yamada "sramupdate=setexpr tmp_addr $nor_base + 0x50000 &&" \ 204b7b43036SMasahiro Yamada "tftpboot $tmp_addr $second_image && " \ 205c0efc314SMasahiro Yamada "setexpr tmp_addr $nor_base + 0x70000 && " \ 206b7b43036SMasahiro Yamada "tftpboot $tmp_addr $third_image\0" \ 207c231c436SMasahiro Yamada "emmcupdate=mmcsetn &&" \ 208c231c436SMasahiro Yamada "mmc partconf $mmc_first_dev 0 1 1 &&" \ 209b7b43036SMasahiro Yamada "tftpboot $second_image && " \ 210c0efc314SMasahiro Yamada "mmc write $loadaddr 0 100 && " \ 211b7b43036SMasahiro Yamada "tftpboot $third_image && " \ 212c0efc314SMasahiro Yamada "mmc write $loadaddr 100 700\0" \ 213421376aeSMasahiro Yamada "nandupdate=nand erase 0 0x00100000 &&" \ 214b7b43036SMasahiro Yamada "tftpboot $second_image && " \ 215c0efc314SMasahiro Yamada "nand write $loadaddr 0 0x00020000 && " \ 216b7b43036SMasahiro Yamada "tftpboot $third_image && " \ 217c0efc314SMasahiro Yamada "nand write $loadaddr 0x00020000 0x000e0000\0" \ 2188d3064d9SMasahiro Yamada "usbupdate=usb start &&" \ 2198d3064d9SMasahiro Yamada "tftpboot $second_image && " \ 2208d3064d9SMasahiro Yamada "usb write $loadaddr 0 100 && " \ 2218d3064d9SMasahiro Yamada "tftpboot $third_image && " \ 2228d3064d9SMasahiro Yamada "usb write $loadaddr 100 700\0" \ 223b7b43036SMasahiro Yamada BOOT_IMAGES \ 224421376aeSMasahiro Yamada LINUXBOOT_ENV_SETTINGS 225f5d0b9b2SMasahiro Yamada 22617bd4a21SMasahiro Yamada #define CONFIG_SYS_BOOTMAPSZ 0x20000000 22717bd4a21SMasahiro Yamada 228cf88affaSMasahiro Yamada #define CONFIG_SYS_SDRAM_BASE 0x80000000 2293e9952beSMasahiro Yamada #define CONFIG_NR_DRAM_BANKS 3 23023869698SMasahiro Yamada /* for LD20; the last 64 byte is used for dynamic DDR PHY training */ 23123869698SMasahiro Yamada #define CONFIG_SYS_MEM_TOP_HIDE 64 232f5d0b9b2SMasahiro Yamada 2333e0cfaa0SMasahiro Yamada #define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_TEXT_BASE) 2343e0cfaa0SMasahiro Yamada 2353e0cfaa0SMasahiro Yamada /* only for SPL */ 236*00aa453eSMasahiro Yamada #if defined(CONFIG_ARCH_UNIPHIER_LD4) || \ 237ea65c980SMasahiro Yamada defined(CONFIG_ARCH_UNIPHIER_SLD8) 238f5d0b9b2SMasahiro Yamada #define CONFIG_SPL_TEXT_BASE 0x00040000 239323d1f9dSMasahiro Yamada #else 240f5d0b9b2SMasahiro Yamada #define CONFIG_SPL_TEXT_BASE 0x00100000 241f5d0b9b2SMasahiro Yamada #endif 242f5d0b9b2SMasahiro Yamada 243755c7d9aSMasahiro Yamada #define CONFIG_SPL_STACK (0x00100000) 244a286039bSMasahiro Yamada 245f5d0b9b2SMasahiro Yamada #define CONFIG_SPL_FRAMEWORK 246f5d0b9b2SMasahiro Yamada 247c0efc314SMasahiro Yamada #define CONFIG_SYS_NAND_U_BOOT_OFFS 0x20000 248cbbc2d80SMasahiro Yamada 249d085ecd6SMasahiro Yamada /* subtract sizeof(struct image_header) */ 250c0efc314SMasahiro Yamada #define CONFIG_SYS_UBOOT_BASE (0x70000 - 0x40) 251f5d0b9b2SMasahiro Yamada 252d085ecd6SMasahiro Yamada #define CONFIG_SPL_TARGET "u-boot-with-spl.bin" 2536a3cffe8SMasahiro Yamada #define CONFIG_SPL_MAX_FOOTPRINT 0x10000 25486c3345aSMasahiro Yamada #define CONFIG_SPL_MAX_SIZE 0x10000 2559d0c2cebSMasahiro Yamada #define CONFIG_SPL_BSS_MAX_SIZE 0x2000 2566a3cffe8SMasahiro Yamada 257c0efc314SMasahiro Yamada #define CONFIG_SPL_PAD_TO 0x20000 258c0efc314SMasahiro Yamada 259f5d0b9b2SMasahiro Yamada #endif /* __CONFIG_UNIPHIER_COMMON_H__ */ 260