/* 
 | 
 * am335x_evm.h 
 | 
 * 
 | 
 * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/ 
 | 
 * 
 | 
 * 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 version 2. 
 | 
 * 
 | 
 * This program is distributed "as is" WITHOUT ANY WARRANTY of any 
 | 
 * kind, whether express or implied; without even the implied warranty 
 | 
 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
 | 
 * GNU General Public License for more details. 
 | 
 */ 
 | 
  
 | 
#ifndef __CONFIG_BALTOS_H 
 | 
#define __CONFIG_BALTOS_H 
 | 
  
 | 
#include <linux/sizes.h> 
 | 
#include <configs/ti_am335x_common.h> 
 | 
  
 | 
#define CONFIG_MACH_TYPE        MACH_TYPE_AM335XEVM 
 | 
  
 | 
/* Clock Defines */ 
 | 
#define V_OSCK                24000000  /* Clock output from T2 */ 
 | 
#define V_SCLK                (V_OSCK) 
 | 
  
 | 
/* Custom script for NOR */ 
 | 
#define CONFIG_SYS_LDSCRIPT        "board/vscom/baltos/u-boot.lds" 
 | 
  
 | 
/* Always 128 KiB env size */ 
 | 
#define CONFIG_ENV_SIZE            (128 << 10) 
 | 
  
 | 
/* FIT support */ 
 | 
#define CONFIG_SYS_BOOTM_LEN         SZ_64M 
 | 
  
 | 
/* UBI Support */ 
 | 
  
 | 
/* I2C configuration */ 
 | 
#undef CONFIG_SYS_OMAP24_I2C_SPEED 
 | 
#define CONFIG_SYS_OMAP24_I2C_SPEED 1000 
 | 
  
 | 
#ifdef CONFIG_NAND 
 | 
#define CONFIG_SYS_NAND_U_BOOT_OFFS    0x00080000 
 | 
#ifdef CONFIG_SPL_OS_BOOT 
 | 
#define CONFIG_SYS_NAND_SPL_KERNEL_OFFS 0x00200000 /* kernel offset */ 
 | 
#endif 
 | 
#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=5\0" \ 
 | 
    "nandrootfstype=ubifs rootwait=1\0" \ 
 | 
    "nandboot=echo Booting from nand ...; " \ 
 | 
        "run nandargs; " \ 
 | 
        "setenv loadaddr 0x84000000; " \ 
 | 
        "ubi part UBI; " \ 
 | 
        "ubifsmount ubi0:kernel; " \ 
 | 
        "ubifsload $loadaddr kernel-fit.itb;" \ 
 | 
        "ubifsumount; " \ 
 | 
        "bootm ${loadaddr}#conf${board_name}; " \ 
 | 
        "if test $? -ne 0; then echo Using default FIT config; " \ 
 | 
        "bootm ${loadaddr}; fi;\0" 
 | 
#else 
 | 
#define NANDARGS "" 
 | 
#endif 
 | 
  
 | 
#define CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG 
 | 
  
 | 
#ifndef CONFIG_SPL_BUILD 
 | 
#define CONFIG_EXTRA_ENV_SETTINGS \ 
 | 
    DEFAULT_LINUX_BOOT_ENV \ 
 | 
    "boot_fdt=try\0" \ 
 | 
    "bootpart=0:2\0" \ 
 | 
    "bootdir=/boot\0" \ 
 | 
    "bootfile=zImage\0" \ 
 | 
    "fdtfile=undefined\0" \ 
 | 
    "console=ttyO0,115200n8\0" \ 
 | 
    "partitions=" \ 
 | 
        "uuid_disk=${uuid_gpt_disk};" \ 
 | 
        "name=rootfs,start=2MiB,size=-,uuid=${uuid_gpt_rootfs}\0" \ 
 | 
    "optargs=\0" \ 
 | 
    "mmcdev=0\0" \ 
 | 
    "mmcroot=/dev/mmcblk0p2 ro\0" \ 
 | 
    "usbroot=/dev/sda2 ro\0" \ 
 | 
    "mmcrootfstype=ext4 rootwait\0" \ 
 | 
    "usbrootfstype=ext4 rootwait\0" \ 
 | 
    "rootpath=/export/rootfs\0" \ 
 | 
    "nfsopts=nolock\0" \ 
 | 
    "static_ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}" \ 
 | 
        "::off\0" \ 
 | 
    "ramroot=/dev/ram0 rw\0" \ 
 | 
    "ramrootfstype=ext2\0" \ 
 | 
    "mmcargs=setenv bootargs console=${console} " \ 
 | 
        "${optargs} " \ 
 | 
        "${mtdparts} " \ 
 | 
        "root=${mmcroot} " \ 
 | 
        "rootfstype=${mmcrootfstype}\0" \ 
 | 
    "usbargs=setenv bootargs console=${console} " \ 
 | 
        "${optargs} " \ 
 | 
        "${mtdparts} " \ 
 | 
        "root=${usbroot} " \ 
 | 
        "rootfstype=${usbrootfstype}\0" \ 
 | 
    "spiroot=/dev/mtdblock4 rw\0" \ 
 | 
    "spirootfstype=jffs2\0" \ 
 | 
    "spisrcaddr=0xe0000\0" \ 
 | 
    "spiimgsize=0x362000\0" \ 
 | 
    "spibusno=0\0" \ 
 | 
    "spiargs=setenv bootargs console=${console} " \ 
 | 
        "${optargs} " \ 
 | 
        "root=${spiroot} " \ 
 | 
        "rootfstype=${spirootfstype}\0" \ 
 | 
    "netargs=setenv bootargs console=${console} " \ 
 | 
        "${optargs} " \ 
 | 
        "root=/dev/nfs " \ 
 | 
        "nfsroot=${serverip}:${rootpath},${nfsopts} rw " \ 
 | 
        "ip=dhcp\0" \ 
 | 
    "bootenv=uEnv.txt\0" \ 
 | 
    "loadbootenv=load mmc ${mmcdev} ${loadaddr} ${bootenv}\0" \ 
 | 
    "usbloadbootenv=load usb 0:1 ${loadaddr} ${bootenv}\0" \ 
 | 
    "importbootenv=echo Importing environment from mmc ...; " \ 
 | 
        "env import -t $loadaddr $filesize\0" \ 
 | 
    "usbimportbootenv=echo Importing environment from USB ...; " \ 
 | 
        "env import -t $loadaddr $filesize\0" \ 
 | 
    "ramargs=setenv bootargs console=${console} " \ 
 | 
        "${optargs} " \ 
 | 
        "root=${ramroot} " \ 
 | 
        "rootfstype=${ramrootfstype}\0" \ 
 | 
    "loadramdisk=load mmc ${mmcdev} ${rdaddr} ramdisk.gz\0" \ 
 | 
    "loadimage=load mmc ${bootpart} ${loadaddr} ${bootdir}/${bootfile}\0" \ 
 | 
    "usbloadimage=load usb 0:1 ${loadaddr} kernel-fit.itb\0" \ 
 | 
    "loadfdt=load mmc ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile}\0" \ 
 | 
    "usbloados=run usbargs; " \ 
 | 
        "bootm ${loadaddr}#conf${board_name}; " \ 
 | 
        "if test $? -ne 0; then " \ 
 | 
            "echo Using default FIT configuration; " \ 
 | 
            "bootm ${loadaddr}; " \ 
 | 
        "fi;\0" \ 
 | 
    "mmcloados=run mmcargs; " \ 
 | 
        "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \ 
 | 
            "if run loadfdt; then " \ 
 | 
                "bootz ${loadaddr} - ${fdtaddr}; " \ 
 | 
            "else " \ 
 | 
                "if test ${boot_fdt} = try; then " \ 
 | 
                    "bootz; " \ 
 | 
                "else " \ 
 | 
                    "echo WARN: Cannot load the DT; " \ 
 | 
                "fi; " \ 
 | 
            "fi; " \ 
 | 
        "else " \ 
 | 
            "bootz; " \ 
 | 
        "fi;\0" \ 
 | 
    "usbboot=usb reset; " \ 
 | 
        "if usb storage; then " \ 
 | 
            "echo USB drive found;" \ 
 | 
            "if run usbloadbootenv; then " \ 
 | 
                "echo Loaded environment from ${bootenv};" \ 
 | 
                "run usbimportbootenv;" \ 
 | 
            "fi;" \ 
 | 
            "if test -n $uenvcmd; then " \ 
 | 
                "echo Running uenvcmd ...;" \ 
 | 
                "run uenvcmd;" \ 
 | 
            "fi;" \ 
 | 
            "if run usbloadimage; then " \ 
 | 
                "run usbloados;" \ 
 | 
            "fi;" \ 
 | 
        "fi;\0" \ 
 | 
    "mmcboot=mmc dev ${mmcdev}; " \ 
 | 
        "if mmc rescan; then " \ 
 | 
            "echo SD/MMC found on device ${mmcdev};" \ 
 | 
            "if run loadbootenv; then " \ 
 | 
                "echo Loaded environment from ${bootenv};" \ 
 | 
                "run importbootenv;" \ 
 | 
            "fi;" \ 
 | 
            "if test -n $uenvcmd; then " \ 
 | 
                "echo Running uenvcmd ...;" \ 
 | 
                "run uenvcmd;" \ 
 | 
            "fi;" \ 
 | 
            "if run loadimage; then " \ 
 | 
                "run mmcloados;" \ 
 | 
            "fi;" \ 
 | 
        "fi;\0" \ 
 | 
    "spiboot=echo Booting from spi ...; " \ 
 | 
        "run spiargs; " \ 
 | 
        "sf probe ${spibusno}:0; " \ 
 | 
        "sf read ${loadaddr} ${spisrcaddr} ${spiimgsize}; " \ 
 | 
        "bootz ${loadaddr}\0" \ 
 | 
    "netboot=echo Booting from network ...; " \ 
 | 
        "setenv autoload no; " \ 
 | 
        "dhcp; " \ 
 | 
        "tftp ${loadaddr} ${bootfile}; " \ 
 | 
        "tftp ${fdtaddr} ${fdtfile}; " \ 
 | 
        "run netargs; " \ 
 | 
        "bootz ${loadaddr} - ${fdtaddr}\0" \ 
 | 
    "ramboot=echo Booting from ramdisk ...; " \ 
 | 
        "run ramargs; " \ 
 | 
        "bootz ${loadaddr} ${rdaddr} ${fdtaddr}\0" \ 
 | 
    "findfdt=setenv fdtfile am335x-baltos.dtb\0" \ 
 | 
    NANDARGS 
 | 
    /*DFUARGS*/ 
 | 
#endif 
 | 
  
 | 
#define CONFIG_BOOTCOMMAND \ 
 | 
    "run findfdt; " \ 
 | 
    "run usbboot;" \ 
 | 
    "run mmcboot;" \ 
 | 
    "setenv mmcdev 1; " \ 
 | 
    "setenv bootpart 1:2; " \ 
 | 
    "run mmcboot;" \ 
 | 
    "run nandboot;" 
 | 
  
 | 
/* NS16550 Configuration */ 
 | 
#define CONFIG_SYS_NS16550_COM1        0x44e09000    /* Base EVM has 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 */ 
 | 
  
 | 
#define CONFIG_ENV_EEPROM_IS_ON_I2C 
 | 
#define CONFIG_SYS_I2C_EEPROM_ADDR    0x50    /* Main EEPROM */ 
 | 
#define CONFIG_SYS_I2C_EEPROM_ADDR_LEN    2 
 | 
  
 | 
/* PMIC support */ 
 | 
#define CONFIG_POWER_TPS65910 
 | 
  
 | 
/* SPL */ 
 | 
#ifndef CONFIG_NOR_BOOT 
 | 
/* Bootcount using the RTC block */ 
 | 
#define CONFIG_BOOTCOUNT_LIMIT 
 | 
#define CONFIG_BOOTCOUNT_AM33XX 
 | 
  
 | 
/* USB gadget RNDIS */ 
 | 
  
 | 
/* General network SPL, both CPSW and USB gadget RNDIS */ 
 | 
#define CONFIG_SPL_NET_VCI_STRING    "AM335x U-Boot SPL"*/ 
 | 
  
 | 
#ifdef CONFIG_NAND 
 | 
#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) 
 | 
#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 CONFIG_SYS_NAND_U_BOOT_START    CONFIG_SYS_TEXT_BASE 
 | 
#endif 
 | 
#endif 
 | 
  
 | 
/* 
 | 
 * USB configuration.  We enable MUSB support, both for host and for 
 | 
 * gadget.  We set USB0 as peripheral and USB1 as host, based on the 
 | 
 * board schematic and physical port wired to each.  Then for host we 
 | 
 * add mass storage support and for gadget we add both RNDIS ethernet 
 | 
 * and DFU. 
 | 
 */ 
 | 
#define CONFIG_USB_MUSB_DSPS 
 | 
#define CONFIG_USB_MUSB_PIO_ONLY 
 | 
#define CONFIG_USB_MUSB_DISABLE_BULK_COMBINE_SPLIT 
 | 
#define CONFIG_AM335X_USB0 
 | 
#define CONFIG_AM335X_USB0_MODE    MUSB_HOST 
 | 
#define CONFIG_AM335X_USB1 
 | 
#define CONFIG_AM335X_USB1_MODE MUSB_OTG 
 | 
  
 | 
#if defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_USBETH_SUPPORT) 
 | 
/* disable host part of MUSB in SPL */ 
 | 
/* disable EFI partitions and partition UUID support */ 
 | 
/* 
 | 
 * Disable CPSW SPL support so we fit within the 101KiB limit. 
 | 
 */ 
 | 
#endif 
 | 
  
 | 
/* Network. */ 
 | 
#define CONFIG_PHY_ADDR            0 
 | 
#define CONFIG_PHY_SMSC 
 | 
#define CONFIG_MII 
 | 
#define CONFIG_PHY_ATHEROS 
 | 
  
 | 
/* NAND support */ 
 | 
#ifdef CONFIG_NAND 
 | 
#define GPMC_NAND_ECC_LP_x8_LAYOUT    1 
 | 
#if !defined(CONFIG_SPI_BOOT) && !defined(CONFIG_NOR_BOOT) 
 | 
#define MTDIDS_DEFAULT            "nand0=omap2-nand.0" 
 | 
#define MTDPARTS_DEFAULT        "mtdparts=omap2-nand.0:128k(SPL)," \ 
 | 
                    "128k(SPL.backup1)," \ 
 | 
                    "128k(SPL.backup2)," \ 
 | 
                    "128k(SPL.backup3)," \ 
 | 
                    "1920k(u-boot)," \ 
 | 
                    "-(UBI)" 
 | 
#endif 
 | 
#endif 
 | 
  
 | 
#endif    /* ! __CONFIG_BALTOS_H */ 
 |