]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - include/configs/km/keymile-common.h
Merge branch 'master' of git://git.denx.de/u-boot-mips
[karo-tx-uboot.git] / include / configs / km / keymile-common.h
index 6a5ecc6d747dbac1b6dc6bc8e7dacf8af252c247..a82987d6a09f5a05e7c33c1efd6085fadd92982a 100644 (file)
@@ -2,43 +2,14 @@
  * (C) Copyright 2008-2011
  * Heiko Schocher, DENX Software Engineering, hs@denx.de.
  *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
+ * SPDX-License-Identifier:    GPL-2.0+ 
  */
 
 #ifndef __CONFIG_KEYMILE_H
 #define __CONFIG_KEYMILE_H
 
-/* Do boardspecific init for all boards */
-#define CONFIG_BOARD_EARLY_INIT_R
-#define CONFIG_LAST_STAGE_INIT
-
 #define CONFIG_BOOTCOUNT_LIMIT
 
-/*
- * By default kwbimage.cfg from board specific folder is used
- * If for some board, different configuration file need to be used,
- * CONFIG_SYS_KWD_CONFIG should be defined in board specific header file
- */
-#ifndef CONFIG_SYS_KWD_CONFIG
-#define        CONFIG_SYS_KWD_CONFIG   $(SRCTREE)/$(CONFIG_BOARDDIR)/kwbimage.cfg
-#endif /* CONFIG_SYS_KWD_CONFIG */
-
 /*
  * Command line configuration.
  */
@@ -46,6 +17,7 @@
 
 #define CONFIG_CMD_ASKENV
 #define CONFIG_CMD_DHCP
+#define CONFIG_CMD_DEFAULTENV_VARS
 #define CONFIG_CMD_ECHO
 #define CONFIG_CMD_IMMAP
 #define CONFIG_CMD_MII
@@ -65,7 +37,6 @@
  * Miscellaneous configurable options
  */
 #define CONFIG_SYS_HUSH_PARSER
-#define CONFIG_SYS_PROMPT_HUSH_PS2     "> "
 #define CONFIG_SYS_LONGHELP                    /* undef to save memory   */
 #define CONFIG_SYS_PROMPT              "=> "   /* Monitor Command Prompt */
 #if defined(CONFIG_CMD_KGDB)
 
 #define CONFIG_LOADS_ECHO
 #define CONFIG_SYS_LOADS_BAUD_CHANGE
-#define CONFIG_SYS_BOARD_DRAM_INIT     /* Used board specific dram_init */
 
-/*
- * How to get access to the slot ID.  Put this here to make it easy
- * to modify in a centralized location.  This is used in the HDLC
- * driver to set the MAC.
-*/
-#define CONFIG_CHECK_ETHERNET_PRESENT
-#define CONFIG_SYS_SLOT_ID_BASE                CONFIG_SYS_KMBEC_FPGA_BASE
-#define CONFIG_SYS_SLOT_ID_OFF         (0x07)  /* register offset */
-#define CONFIG_SYS_SLOT_ID_MASK                (0x3f)  /* mask for slot ID bits */
-
-#define CONFIG_I2C_MULTI_BUS
-#define CONFIG_SYS_MAX_I2C_BUS         1
 #define CONFIG_SYS_I2C_INIT_BOARD
-#define CONFIG_I2C_MUX
-
-/* EEprom support */
-#define CONFIG_SYS_I2C_MULTI_EEPROMS
-#define CONFIG_SYS_EEPROM_PAGE_WRITE_ENABLE
-#define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS      3
-#define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS  10
 
 /* Support the IVM EEprom */
 #define        CONFIG_SYS_IVM_EEPROM_ADR       0x50
 #define CONFIG_MTD_DEVICE
 #define CONFIG_MTD_CONCAT
 
-/* common powerpc specific env settings */
+#define CONFIG_CMD_CRAMFS
+#define CONFIG_CRAMFS_CMDLINE
+
 #ifndef CONFIG_KM_DEF_ENV_BOOTPARAMS
 #define CONFIG_KM_DEF_ENV_BOOTPARAMS \
-       "bootparams=empty\0"    \
-       "initial_boot_bank=0\0"
+       "actual_bank=0\0"
 #endif
 
 #ifndef CONFIG_KM_DEF_NETDEV
        "netdev=eth0\0"
 #endif
 
-#ifndef CONFIG_KM_UBI_PARTITION_NAME
-#define CONFIG_KM_UBI_PARTITION_NAME   "ubi0"
-#endif
-#ifndef CONFIG_KM_UBI_LINUX_MTD_NAME
-#define CONFIG_KM_UBI_LINUX_MTD_NAME   "ubi0"
+#ifndef CONFIG_KM_UBI_PARTITION_NAME_BOOT
+#define CONFIG_KM_UBI_PARTITION_NAME_BOOT      "ubi0"
+#endif /* CONFIG_KM_UBI_PARTITION_NAME_BOOT */
+
+#ifndef CONFIG_KM_UBI_PARTITION_NAME_APP
+/* one flash chip only called boot */
+/* boot: CONFIG_KM_UBI_PARTITION_NAME_BOOT */
+# define CONFIG_KM_UBI_LINUX_MTD                                       \
+       "ubi.mtd=" CONFIG_KM_UBI_PARTITION_NAME_BOOT
+# define CONFIG_KM_DEV_ENV_FLASH_BOOT_UBI                              \
+       "ubiattach=ubi part " CONFIG_KM_UBI_PARTITION_NAME_BOOT "\0"
+#else /* CONFIG_KM_UBI_PARTITION_NAME_APP */
+/* two flash chips called boot and app */
+/* boot: CONFIG_KM_UBI_PARTITION_NAME_BOOT */
+/* app:  CONFIG_KM_UBI_PARTITION_NAME_APP */
+# define CONFIG_KM_UBI_LINUX_MTD                                       \
+       "ubi.mtd=" CONFIG_KM_UBI_PARTITION_NAME_BOOT " "                \
+       "ubi.mtd=" CONFIG_KM_UBI_PARTITION_NAME_APP
+# define CONFIG_KM_DEV_ENV_FLASH_BOOT_UBI                              \
+       "ubiattach=if test ${boot_bank} -eq 0; then; "                  \
+       "ubi part " CONFIG_KM_UBI_PARTITION_NAME_BOOT "; else; "        \
+       "ubi part " CONFIG_KM_UBI_PARTITION_NAME_APP "; fi\0"
+#endif /* CONFIG_KM_UBI_PARTITION_NAME_APP */
+
+#ifdef CONFIG_NAND_ECC_BCH
+#define CONFIG_KM_UIMAGE_NAME "ecc_bch_uImage\0"
+#define CONFIG_KM_ECC_MODE    " eccmode=bch"
+#else
+#define CONFIG_KM_UIMAGE_NAME "uImage\0"
+#define CONFIG_KM_ECC_MODE
 #endif
 
-#define xstr(s)        str(s)
-#define str(s) #s
-
-/*
- * bootrunner
- * - run all commands in 'subbootcmds'
- * - on error, stop running the remaing commands
- */
-#define CONFIG_KM_DEF_ENV_BOOTRUNNER                                   \
-       "bootrunner="                                                   \
-               "break=0; "                                             \
-               "for subbootcmd in ${subbootcmds}; do "                 \
-               "if test ${break} -eq 0; then; "                        \
-               "echo \"[INFO] running \\c\"; "                         \
-               "print ${subbootcmd}; "                                 \
-               "run ${subbootcmd} || break=1; "                        \
-               "if test ${break} -eq 1; then; "                        \
-               "echo \"[ERR] failed \\c\"; "                           \
-               "print ${subbootcmd}; "                                 \
-               "fi; "                                                  \
-               "fi; "                                                  \
-               "done\0"                                                \
-       ""
-
 /*
  * boottargets
- * - set 'subbootcmds' for the bootrunner
+ * - set 'subbootcmds'
  * - set 'bootcmd' and 'altbootcmd'
  * available targets:
  * - 'release': for a standalone system                kernel/rootfs from flash
- * - 'develop': for development                        kernel(tftp)/rootfs(NFS)
- * - 'ramfs': rootfilesystem in RAM            kernel(tftp)/rootfs(RAM)
- *
- * - 'commonargs': bootargs common to all targets
  */
 #define CONFIG_KM_DEF_ENV_BOOTTARGETS                                  \
-       "commonargs="                                                   \
-               "addip "                                                \
-               "addtty "                                               \
-               "addmem "                                               \
-               "addinit "                                              \
-               "addvar "                                               \
-               "addmtdparts "                                          \
-               "addbootcount "                                         \
-               "\0"                                                    \
+       "subbootcmds=ubiattach ubicopy cramfsloadfdt cramfsloadkernel " \
+               "flashargs add_default addpanic boot\0"                 \
        "develop="                                                      \
-               "setenv subbootcmds \""                                 \
-               "tftpfdt tftpkernel "                                   \
-               "nfsargs ${commonargs} "                                \
-               "printbootargs boot "                                   \
-               "\" && "                                                \
-               "setenv bootcmd \'"                                     \
-               "run bootrunner"                                        \
-               "\' && "                                                \
-               "setenv altbootcmd \'"                                  \
-               "run bootcmd"                                           \
-               "\' && "                                                \
-               "run setboardid && "                                    \
-               "saveenv && "                                           \
-               "reset\0"                                               \
+               "tftp 200000 scripts/develop-${arch}.txt && "           \
+               "env import -t 200000 ${filesize} && "                  \
+               "run setup_debug_env\0"                                 \
        "ramfs="                                                        \
-               "setenv actual_bank -1 && "                             \
-               "setenv subbootcmds \""                                 \
-               "tftpfdt tftpkernel "                                   \
-               "setrootfsaddr tftpramfs "                              \
-               "flashargs ${commonargs} "                              \
-               "addpanic addramfs "                                    \
-               "printbootargs boot "                                   \
-               "\" && "                                                \
-               "setenv bootcmd \'"                                     \
-               "run bootrunner"                                        \
-               "\' && "                                                \
-               "setenv altbootcmd \'"                                  \
-               "run bootcmd"                                           \
-               "\' && "                                                \
-               "run setboardid && "                                    \
-               "run setramfspram && "                                  \
-               "saveenv && "                                           \
-               "reset\0"                                               \
-       "release="                                                      \
-               "setenv actual_bank ${initial_boot_bank} && "           \
-               "setenv subbootcmds \""                                 \
-               "checkboardid "                                         \
-               "ubiattach ubicopy "                                    \
-               "cramfsloadfdt cramfsloadkernel "                       \
-               "flashargs ${commonargs} "                              \
-               "addpanic "                                             \
-               "printbootargs boot "                                   \
-               "\" && "                                                \
-               "setenv bootcmd \'"                                     \
-               "run actual bootrunner; reset"                          \
-               "\' && "                                                \
-               "setenv altbootcmd \'"                                  \
-               "run backup bootrunner; reset"                          \
-               "\' && "                                                \
-               "saveenv && "                                           \
-               "reset\0"                                               \
+               "tftp 200000 scripts/ramfs-${arch}.txt && "             \
+               "env import -t 200000 ${filesize} && "                  \
+               "run setup_debug_env\0"                                 \
        ""
 
 /*
  * bootargs
  * - modify 'bootargs'
  *
- * - 'addip': add ip configuration
- * - 'addmem': limit kernel memory mem=
+ * - 'add_default': default bootargs common for all arm/ppc boards
  * - 'addpanic': add kernel panic options
- * - 'addramfs': add phram device for the rootfilesysten in ram
- * - 'addtty': add console=...
- * - 'addvar': add phram device for /var
- * - 'nfsargs': default arguments for nfs boot
  * - 'flashargs': defaults arguments for flash base boot
  *
- * processor specific settings
- * - 'addbootcount': add boot counter
- * - 'addmtdparts': add mtd partition information
  */
 #define CONFIG_KM_DEF_ENV_BOOTARGS                                     \
-       "addinit="                                                      \
-               "setenv bootargs ${bootargs} init=${init}\0"            \
-       "addip="                                                        \
+       "add_default="                                                  \
                "setenv bootargs ${bootargs} "                          \
                "ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}"      \
-               ":${hostname}:${netdev}:off\0"                          \
-       "addmem="                                                       \
-               "setenv bootargs ${bootargs} mem=0x${pnvramaddr}\0"     \
+               ":${hostname}:${netdev}:off3"                           \
+               " console=" CONFIG_KM_CONSOLE_TTY ",${baudrate}"        \
+               " mem=${kernelmem} init=${init}"                        \
+               CONFIG_KM_ECC_MODE                                      \
+               " phram.phram=phvar,${varaddr}," __stringify(CONFIG_KM_PHRAM)\
+               " " CONFIG_KM_UBI_LINUX_MTD " "                         \
+               CONFIG_KM_DEF_BOOT_ARGS_CPU                             \
+               "\0"                                                    \
        "addpanic="                                                     \
-               "setenv bootargs ${bootargs} "                          \
-               "panic=1 panic_on_oops=1\0"                             \
-       "addramfs="                                                     \
-               "setenv bootargs \""                                    \
-               "${bootargs} phram.phram="                              \
-               "rootfs${boot_bank},${rootfsaddr},${rootfssize}\"\0"    \
-       "addtty="                                                       \
-               "setenv bootargs ${bootargs}"                           \
-               " console=" CONFIG_KM_CONSOLE_TTY ",${baudrate}\0"      \
-       "addvar="                                                       \
-               "setenv bootargs ${bootargs} phram.phram=phvar,"        \
-               "${varaddr},0x" xstr(CONFIG_KM_PHRAM) "\0"              \
-       "nfsargs="                                                      \
-               "setenv bootargs "                                      \
-               "ubi.mtd=" CONFIG_KM_UBI_LINUX_MTD_NAME " "             \
-               "root=/dev/nfs rw "                                     \
-               "nfsroot=${serverip}:${rootpath}\0"                     \
+               "setenv bootargs ${bootargs} panic=1 panic_on_oops=1\0" \
        "flashargs="                                                    \
                "setenv bootargs "                                      \
-               "ubi.mtd=" CONFIG_KM_UBI_LINUX_MTD_NAME " "             \
                "root=mtdblock:rootfs${boot_bank} "                     \
                "rootfstype=squashfs ro\0"                              \
        ""
 
-/*
- * compute_addr
- * - compute addresses and sizes
- * - addresses are calculated form the end of memory 'memsize'
- *
- * - 'setramfspram': compute PRAM size for ramfs target
- * - 'setrootfsaddr': compute rootfilesystem address for phram
- */
-#define CONFIG_KM_DEF_ENV_COMPUTE_ADDR                                 \
-       "setboardid="                                                   \
-               "if test \"x${boardId}\" = \"x\"; then; "               \
-               "setenv boardId ${IVM_BoardId} && "                     \
-               "setenv hwKey ${IVM_HWKey}; "                           \
-               "else; "                                                \
-               "echo \\\\c; "                                          \
-               "fi\0"                                                  \
-       "setramfspram="                                                 \
-               "setexpr value ${rootfssize} / 0x400 && "               \
-               "setexpr value 0x${value} + ${pram} && "                \
-               "setenv pram 0x${value}\0"                              \
-       "setrootfsaddr="                                                \
-               "setexpr value ${pnvramaddr} - ${rootfssize} && "       \
-               "setenv rootfsaddr 0x${value}\0"                        \
-       ""
-
 /*
  * flash_boot
  * - commands for booting from flash
  *
- * - 'cramfsaddr': address to the cramfs (in ram)
  * - 'cramfsloadkernel': copy kernel from a cramfs to ram
  * - 'ubiattach': attach ubi partition
  * - 'ubicopy': copy ubi volume to ram
  *              - volume names: bootfs0, bootfs1, bootfs2, ...
- * - 'ubiparition': mtd parition name for ubi
  *
  * processor specific settings
  * - 'cramfsloadfdt': copy fdt from a cramfs to ram
  */
 #define CONFIG_KM_DEF_ENV_FLASH_BOOT                                   \
-       "cramfsaddr="xstr(CONFIG_KM_CRAMFS_ADDR) "\0"                   \
-       "cramfsloadkernel="                                             \
-               "cramfsload ${kernel_addr_r} uImage && "                \
-               "setenv actual_kernel_addr ${kernel_addr_r}\0"          \
-       "ubiattach=ubi part ${ubipartition}\0"                          \
-       "ubicopy=ubi read ${cramfsaddr} bootfs${boot_bank}\0"           \
-       "ubipartition=" CONFIG_KM_UBI_PARTITION_NAME "\0"               \
-       ""
-
-/*
- * net_boot
- * - commands for booting over the network
- *
- * - 'tftpkernel': load a kernel with tftp into ram
- * - 'tftpramfs': load rootfs with tftp into ram
- *
- * processor specific settings
- * - 'tftpfdt': load fdt with tftp into ram
- */
-#define CONFIG_KM_DEF_ENV_NET_BOOT                                     \
-       "tftpkernel="                                                   \
-               "tftpboot ${kernel_addr_r} ${kernel_file} && "          \
-               "setenv actual_kernel_addr ${kernel_addr_r}\0"          \
-       "tftpramfs="                                                    \
-               "tftpboot ${rootfsaddr} \"\\\"${rootfsfile}\\\"\" && "  \
-               "setenv loadaddr\0"                                     \
-       ""
+       "cramfsaddr=" __stringify(CONFIG_KM_CRAMFS_ADDR) "\0"           \
+       "cramfsloadkernel=cramfsload ${load_addr_r} ${uimage}\0"        \
+       "ubicopy=ubi read "__stringify(CONFIG_KM_CRAMFS_ADDR)           \
+                       " bootfs${boot_bank}\0"                         \
+       "uimage=" CONFIG_KM_UIMAGE_NAME                                 \
+       CONFIG_KM_DEV_ENV_FLASH_BOOT_UBI
 
 /*
  * constants
  * - 'default': setup default environment
  */
 #define CONFIG_KM_DEF_ENV_CONSTANTS                                    \
-       "actual=setenv boot_bank ${actual_bank}\0"                      \
-       "backup=setenv boot_bank ${backup_bank}\0"                      \
-       "actual_bank=${initial_boot_bank}\0"                            \
        "backup_bank=0\0"                                               \
-       "default="                                                      \
-               "setenv default 'run newenv; reset' &&  "               \
-               "run release && saveenv; reset\0"                       \
-       "printbootargs=print bootargs\0"                                \
-       "rootfsfile="xstr(CONFIG_HOSTNAME) "/rootfsImage\0"             \
-       "checkboardid=km_checkbidhwk\0"                                 \
+       "release=run newenv; reset\0"                                   \
+       "pnvramsize=" __stringify(CONFIG_KM_PNVRAM) "\0"                \
+       "testbootcmd=setenv boot_bank ${test_bank}; "                   \
+               "run ${subbootcmds}; reset\0"                           \
        ""
 
 #ifndef CONFIG_KM_DEF_ENV
        CONFIG_KM_DEF_ENV_BOOTPARAMS                                    \
        CONFIG_KM_DEF_NETDEV                                            \
        CONFIG_KM_DEF_ENV_CPU                                           \
-       CONFIG_KM_DEF_ENV_BOOTRUNNER                                    \
        CONFIG_KM_DEF_ENV_BOOTTARGETS                                   \
        CONFIG_KM_DEF_ENV_BOOTARGS                                      \
-       CONFIG_KM_DEF_ENV_COMPUTE_ADDR                                  \
        CONFIG_KM_DEF_ENV_FLASH_BOOT                                    \
-       CONFIG_KM_DEF_ENV_NET_BOOT                                      \
        CONFIG_KM_DEF_ENV_CONSTANTS                                     \
        "altbootcmd=run bootcmd\0"                                      \
-       "bootcmd=run default\0"                                         \
-       "bootlimit=2\0"                                                 \
+       "bootcmd=km_checkbidhwk &&  "                                   \
+               "setenv bootcmd \'if km_checktestboot; then; "          \
+                               "setenv boot_bank ${test_bank}; else; " \
+                               "setenv boot_bank ${actual_bank}; fi;"  \
+                       "run ${subbootcmds}; reset\' && "               \
+               "setenv altbootcmd \'setenv boot_bank ${backup_bank}; " \
+                       "run ${subbootcmds}; reset\' && "               \
+               "saveenv && saveenv && boot\0"                          \
+       "bootlimit=3\0"                                                 \
        "init=/sbin/init-overlay.sh\0"                                  \
-       "kernel_addr_r="xstr(CONFIG_KM_KERNEL_ADDR) "\0"                \
-       "kernel_file="xstr(CONFIG_HOSTNAME) "/uImage\0"                 \
-       "kernel_name=uImage\0"                                          \
-       "load=tftpboot ${u-boot_addr_r} ${u-boot}\0"                    \
+       "load_addr_r="__stringify(CONFIG_KM_KERNEL_ADDR) "\0"           \
+       "load=tftpboot ${load_addr_r} ${u-boot}\0"                      \
        "mtdids=" MTDIDS_DEFAULT "\0"                                   \
        "mtdparts=" MTDPARTS_DEFAULT "\0"                               \
-       "stderr=serial\0"                                               \
-       "stdin=serial\0"                                                \
-       "stdout=serial\0"                                               \
-       "u-boot="xstr(CONFIG_HOSTNAME) "/u-boot.bin\0"                  \
-       "u-boot_addr_r="xstr(CONFIG_KM_KERNEL_ADDR) "\0"                \
        ""
 #endif /* CONFIG_KM_DEF_ENV */