/* 
 | 
 * Copyright (C) 2017 Grinn - http://grinn-global.com/ 
 | 
 * 
 | 
 * SPDX-License-Identifier:    GPL-2.0+ 
 | 
 */ 
 | 
  
 | 
#ifndef __CONFIG_CHILIBOARD_H 
 | 
#define __CONFIG_CHILIBOARD_H 
 | 
  
 | 
#include <configs/ti_am335x_common.h> 
 | 
  
 | 
#define CONFIG_CONS_INDEX        1 
 | 
  
 | 
#ifndef CONFIG_SPL_BUILD 
 | 
# define CONFIG_TIMESTAMP 
 | 
#endif 
 | 
  
 | 
/* Clock Defines */ 
 | 
#define V_OSCK                24000000  /* Clock output from T2 */ 
 | 
#define V_SCLK                (V_OSCK) 
 | 
  
 | 
#define NANDARGS \ 
 | 
    "mtdids=" MTDIDS_DEFAULT "\0" \ 
 | 
    "mtdparts=" MTDPARTS_DEFAULT "\0" \ 
 | 
    "nandargs=setenv bootargs console=${console} ${optargs} " \ 
 | 
        "${mtdparts} " \ 
 | 
        "root=${nandroot} " \ 
 | 
        "rootfstype=${nandrootfstype}\0" \ 
 | 
    "nandroot=ubi0:rootfs rw ubi.mtd=NAND.file-system\0" \ 
 | 
    "nandrootfstype=ubifs rootwait=1\0" \ 
 | 
    "nandboot=echo Booting from nand ...; " \ 
 | 
        "run nandargs; " \ 
 | 
        "nand read ${fdt_addr} NAND.u-boot-spl-os; " \ 
 | 
        "nand read ${loadaddr} NAND.kernel; " \ 
 | 
        "bootz ${loadaddr} - ${fdt_addr}\0" 
 | 
  
 | 
#define CONFIG_BOOTCOMMAND \ 
 | 
    "run mmcboot; " \ 
 | 
    "run nandboot; " \ 
 | 
    "run netboot" 
 | 
  
 | 
#define CONFIG_EXTRA_ENV_SETTINGS \ 
 | 
    "loadaddr=0x82000000\0" \ 
 | 
    "fdt_addr=0x87800000\0" \ 
 | 
    "boot_fdt=try\0" \ 
 | 
    "console=ttyO0,115200n8\0" \ 
 | 
    "image=zImage\0" \ 
 | 
    "fdt_file=am335x-chiliboard.dtb\0" \ 
 | 
    "ip_dyn=yes\0" \ 
 | 
    "optargs=\0" \ 
 | 
    "loadbootscript=" \ 
 | 
        "load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \ 
 | 
    "bootscript=echo Running bootscript from mmc ...; " \ 
 | 
        "source\0" \ 
 | 
    "loadimage=load mmc ${mmcdev}:${mmcpart} ${loadaddr} " \ 
 | 
        "${boot_dir}/${image}\0" \ 
 | 
    "loadfdt=load mmc ${mmcdev}:${mmcpart} ${fdt_addr} " \ 
 | 
        "${boot_dir}/${fdt_file}\0" \ 
 | 
    "mmcdev=0\0" \ 
 | 
    "mmcpart=1\0" \ 
 | 
    "mmcroot=/dev/mmcblk0p2 rootwait rw\0" \ 
 | 
    "mmcargs=setenv bootargs console=${console},${baudrate} ${optargs} " \ 
 | 
        "${mtdparts} " \ 
 | 
        "root=${mmcroot}\0" \ 
 | 
    "mmcloados=run mmcargs; " \ 
 | 
        "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \ 
 | 
            "if run loadfdt; then " \ 
 | 
                "bootz ${loadaddr} - ${fdt_addr}; " \ 
 | 
            "else " \ 
 | 
                "if test ${boot_fdt} = try; then " \ 
 | 
                    "bootz; " \ 
 | 
                "else " \ 
 | 
                    "echo WARN: Cannot load the DT; " \ 
 | 
                "fi; " \ 
 | 
            "fi; " \ 
 | 
        "else " \ 
 | 
            "bootz; " \ 
 | 
        "fi;\0" \ 
 | 
    "mmcboot=mmc dev ${mmcdev}; " \ 
 | 
        "if mmc rescan; then " \ 
 | 
            "echo SD/MMC found on device ${mmcdev};" \ 
 | 
            "if run loadimage; then " \ 
 | 
                "run mmcloados;" \ 
 | 
            "fi;" \ 
 | 
        "fi;\0" \ 
 | 
    "netargs=setenv bootargs console=${console},${baudrate} ${optargs} " \ 
 | 
        "${mtdparts} " \ 
 | 
        "root=/dev/nfs " \ 
 | 
        "ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp\0" \ 
 | 
    "netboot=echo Booting from net ...; " \ 
 | 
        "run netargs; " \ 
 | 
        "if test ${ip_dyn} = yes; then " \ 
 | 
            "setenv get_cmd dhcp; " \ 
 | 
        "else " \ 
 | 
            "setenv get_cmd tftp; " \ 
 | 
        "fi; " \ 
 | 
        "${get_cmd} ${image}; " \ 
 | 
        "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \ 
 | 
            "if ${get_cmd} ${fdt_addr} ${fdt_file}; then " \ 
 | 
                "bootz ${loadaddr} - ${fdt_addr}; " \ 
 | 
            "else " \ 
 | 
                "if test ${boot_fdt} = try; then " \ 
 | 
                    "bootz; " \ 
 | 
                "else " \ 
 | 
                    "echo WARN: Cannot load the DT; " \ 
 | 
                "fi; " \ 
 | 
            "fi; " \ 
 | 
        "else " \ 
 | 
            "bootz; " \ 
 | 
        "fi;\0" \ 
 | 
    NANDARGS 
 | 
  
 | 
/* NS16550 Configuration */ 
 | 
#define CONFIG_SYS_NS16550_COM1        0x44e09000    /* UART0 */ 
 | 
#define CONFIG_SYS_NS16550_COM2        0x48022000    /* UART1 */ 
 | 
#define CONFIG_SYS_NS16550_COM3        0x48024000    /* UART2 */ 
 | 
#define CONFIG_SYS_NS16550_COM4        0x481a6000    /* UART3 */ 
 | 
#define CONFIG_SYS_NS16550_COM5        0x481a8000    /* UART4 */ 
 | 
#define CONFIG_SYS_NS16550_COM6        0x481aa000    /* UART5 */ 
 | 
  
 | 
/* PMIC support */ 
 | 
#define CONFIG_POWER_TPS65217 
 | 
  
 | 
/* SPL */ 
 | 
/* Bootcount using the RTC block */ 
 | 
#define CONFIG_BOOTCOUNT_LIMIT 
 | 
#define CONFIG_BOOTCOUNT_AM33XX 
 | 
#define CONFIG_SYS_BOOTCOUNT_BE 
 | 
  
 | 
/* NAND: device related configs */ 
 | 
#define CONFIG_SYS_NAND_5_ADDR_CYCLE 
 | 
#define CONFIG_SYS_NAND_PAGE_COUNT    (CONFIG_SYS_NAND_BLOCK_SIZE / \ 
 | 
                     CONFIG_SYS_NAND_PAGE_SIZE) 
 | 
#define CONFIG_SYS_NAND_PAGE_SIZE    2048 
 | 
#define CONFIG_SYS_NAND_OOBSIZE        64 
 | 
#define CONFIG_SYS_NAND_BLOCK_SIZE    (128*1024) 
 | 
/* NAND: driver related configs */ 
 | 
#define CONFIG_SYS_NAND_BAD_BLOCK_POS    NAND_LARGE_BADBLOCK_POS 
 | 
#define CONFIG_SYS_NAND_ECCPOS        { 2, 3, 4, 5, 6, 7, 8, 9, \ 
 | 
                     10, 11, 12, 13, 14, 15, 16, 17, \ 
 | 
                     18, 19, 20, 21, 22, 23, 24, 25, \ 
 | 
                     26, 27, 28, 29, 30, 31, 32, 33, \ 
 | 
                     34, 35, 36, 37, 38, 39, 40, 41, \ 
 | 
                     42, 43, 44, 45, 46, 47, 48, 49, \ 
 | 
                     50, 51, 52, 53, 54, 55, 56, 57, } 
 | 
  
 | 
#define CONFIG_SYS_NAND_ECCSIZE        512 
 | 
#define CONFIG_SYS_NAND_ECCBYTES    14 
 | 
#define CONFIG_SYS_NAND_ONFI_DETECTION 
 | 
#define CONFIG_NAND_OMAP_ECCSCHEME    OMAP_ECC_BCH8_CODE_HW 
 | 
#define MTDIDS_DEFAULT            "nand0=8000000.nand" 
 | 
#define MTDPARTS_DEFAULT        "mtdparts=8000000.nand:" \ 
 | 
                    "128k(NAND.SPL)," \ 
 | 
                    "128k(NAND.SPL.backup1)," \ 
 | 
                    "128k(NAND.SPL.backup2)," \ 
 | 
                    "128k(NAND.SPL.backup3)," \ 
 | 
                    "256k(NAND.u-boot-spl-os)," \ 
 | 
                    "1m(NAND.u-boot)," \ 
 | 
                    "128k(NAND.u-boot-env)," \ 
 | 
                    "128k(NAND.u-boot-env.backup1)," \ 
 | 
                    "8m(NAND.kernel)," \ 
 | 
                    "-(NAND.file-system)" 
 | 
#define CONFIG_SYS_NAND_U_BOOT_OFFS    0x000c0000 
 | 
/* NAND: SPL related configs */ 
 | 
  
 | 
/* USB configuration */ 
 | 
#define CONFIG_USB_MUSB_DSPS 
 | 
#define CONFIG_ARCH_MISC_INIT 
 | 
#define CONFIG_USB_MUSB_PIO_ONLY 
 | 
#define CONFIG_USB_MUSB_DISABLE_BULK_COMBINE_SPLIT 
 | 
#define CONFIG_AM335X_USB1 
 | 
#define CONFIG_AM335X_USB1_MODE MUSB_HOST 
 | 
  
 | 
/* 
 | 
 * Disable MMC DM for SPL build and can be re-enabled after adding 
 | 
 * DM support in SPL 
 | 
 */ 
 | 
#ifdef CONFIG_SPL_BUILD 
 | 
#undef CONFIG_DM_MMC 
 | 
#undef CONFIG_TIMER 
 | 
#endif 
 | 
  
 | 
#if defined(CONFIG_ENV_IS_IN_NAND) 
 | 
#define CONFIG_ENV_OFFSET        0x001c0000 
 | 
#define CONFIG_ENV_OFFSET_REDUND    0x001e0000 
 | 
#define CONFIG_ENV_SIZE            SZ_128K 
 | 
#define CONFIG_SYS_ENV_SECT_SIZE    CONFIG_SYS_NAND_BLOCK_SIZE 
 | 
#else 
 | 
#define CONFIG_SYS_MMC_ENV_DEV        0 
 | 
#define CONFIG_ENV_OFFSET        SZ_128K 
 | 
#define CONFIG_ENV_OFFSET_REDUND    (CONFIG_ENV_OFFSET + CONFIG_ENV_SIZE) 
 | 
#define CONFIG_ENV_SIZE            SZ_8K 
 | 
#define CONFIG_SYS_REDUNDAND_ENVIRONMENT 
 | 
#endif 
 | 
  
 | 
/* Network. */ 
 | 
#define CONFIG_PHY_SMSC 
 | 
  
 | 
#endif    /* ! __CONFIG_CHILIBOARD_H */ 
 |