16ce89324SYegor Yefremov /* 26ce89324SYegor Yefremov * am335x_evm.h 36ce89324SYegor Yefremov * 46ce89324SYegor Yefremov * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/ 56ce89324SYegor Yefremov * 66ce89324SYegor Yefremov * This program is free software; you can redistribute it and/or 76ce89324SYegor Yefremov * modify it under the terms of the GNU General Public License as 86ce89324SYegor Yefremov * published by the Free Software Foundation version 2. 96ce89324SYegor Yefremov * 106ce89324SYegor Yefremov * This program is distributed "as is" WITHOUT ANY WARRANTY of any 116ce89324SYegor Yefremov * kind, whether express or implied; without even the implied warranty 126ce89324SYegor Yefremov * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 136ce89324SYegor Yefremov * GNU General Public License for more details. 146ce89324SYegor Yefremov */ 156ce89324SYegor Yefremov 166ce89324SYegor Yefremov #ifndef __CONFIG_BALTOS_H 176ce89324SYegor Yefremov #define __CONFIG_BALTOS_H 186ce89324SYegor Yefremov 195f9c58e9SYegor Yefremov #include <linux/sizes.h> 206ce89324SYegor Yefremov #include <configs/ti_am335x_common.h> 216ce89324SYegor Yefremov 22*92a1babfSTom Rini #define CONFIG_MACH_TYPE MACH_TYPE_AM335XEVM 236ce89324SYegor Yefremov 246ce89324SYegor Yefremov /* Clock Defines */ 256ce89324SYegor Yefremov #define V_OSCK 24000000 /* Clock output from T2 */ 266ce89324SYegor Yefremov #define V_SCLK (V_OSCK) 276ce89324SYegor Yefremov 286ce89324SYegor Yefremov /* Custom script for NOR */ 296ce89324SYegor Yefremov #define CONFIG_SYS_LDSCRIPT "board/vscom/baltos/u-boot.lds" 306ce89324SYegor Yefremov 316ce89324SYegor Yefremov /* Always 128 KiB env size */ 326ce89324SYegor Yefremov #define CONFIG_ENV_SIZE (128 << 10) 336ce89324SYegor Yefremov 346ce89324SYegor Yefremov /* FIT support */ 355f9c58e9SYegor Yefremov #define CONFIG_SYS_BOOTM_LEN SZ_64M 366ce89324SYegor Yefremov 376ce89324SYegor Yefremov /* UBI Support */ 386ce89324SYegor Yefremov 396ce89324SYegor Yefremov /* I2C configuration */ 406ce89324SYegor Yefremov #undef CONFIG_SYS_OMAP24_I2C_SPEED 41e6b1b58bSYegor Yefremov #define CONFIG_SYS_OMAP24_I2C_SPEED 1000 426ce89324SYegor Yefremov 436ce89324SYegor Yefremov #ifdef CONFIG_NAND 445f9c58e9SYegor Yefremov #define CONFIG_SYS_NAND_U_BOOT_OFFS 0x00080000 456ce89324SYegor Yefremov #ifdef CONFIG_SPL_OS_BOOT 466ce89324SYegor Yefremov #define CONFIG_SYS_NAND_SPL_KERNEL_OFFS 0x00200000 /* kernel offset */ 476ce89324SYegor Yefremov #endif 486ce89324SYegor Yefremov #define NANDARGS \ 496ce89324SYegor Yefremov "mtdids=" MTDIDS_DEFAULT "\0" \ 506ce89324SYegor Yefremov "mtdparts=" MTDPARTS_DEFAULT "\0" \ 516ce89324SYegor Yefremov "nandargs=setenv bootargs console=${console} " \ 526ce89324SYegor Yefremov "${optargs} " \ 536ce89324SYegor Yefremov "${mtdparts} " \ 546ce89324SYegor Yefremov "root=${nandroot} " \ 556ce89324SYegor Yefremov "rootfstype=${nandrootfstype}\0" \ 566ce89324SYegor Yefremov "nandroot=ubi0:rootfs rw ubi.mtd=5\0" \ 576ce89324SYegor Yefremov "nandrootfstype=ubifs rootwait=1\0" \ 586ce89324SYegor Yefremov "nandboot=echo Booting from nand ...; " \ 596ce89324SYegor Yefremov "run nandargs; " \ 606ce89324SYegor Yefremov "setenv loadaddr 0x84000000; " \ 616ce89324SYegor Yefremov "ubi part UBI; " \ 626ce89324SYegor Yefremov "ubifsmount ubi0:kernel; " \ 636ce89324SYegor Yefremov "ubifsload $loadaddr kernel-fit.itb;" \ 646ce89324SYegor Yefremov "ubifsumount; " \ 655f9c58e9SYegor Yefremov "bootm ${loadaddr}#conf${board_name}; " \ 665f9c58e9SYegor Yefremov "if test $? -ne 0; then echo Using default FIT config; " \ 675f9c58e9SYegor Yefremov "bootm ${loadaddr}; fi;\0" 686ce89324SYegor Yefremov #else 696ce89324SYegor Yefremov #define NANDARGS "" 706ce89324SYegor Yefremov #endif 716ce89324SYegor Yefremov 726ce89324SYegor Yefremov #define CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG 736ce89324SYegor Yefremov 746ce89324SYegor Yefremov #ifndef CONFIG_SPL_BUILD 756ce89324SYegor Yefremov #define CONFIG_EXTRA_ENV_SETTINGS \ 766ce89324SYegor Yefremov DEFAULT_LINUX_BOOT_ENV \ 776ce89324SYegor Yefremov "boot_fdt=try\0" \ 786ce89324SYegor Yefremov "bootpart=0:2\0" \ 796ce89324SYegor Yefremov "bootdir=/boot\0" \ 806ce89324SYegor Yefremov "bootfile=zImage\0" \ 816ce89324SYegor Yefremov "fdtfile=undefined\0" \ 826ce89324SYegor Yefremov "console=ttyO0,115200n8\0" \ 836ce89324SYegor Yefremov "partitions=" \ 846ce89324SYegor Yefremov "uuid_disk=${uuid_gpt_disk};" \ 856ce89324SYegor Yefremov "name=rootfs,start=2MiB,size=-,uuid=${uuid_gpt_rootfs}\0" \ 866ce89324SYegor Yefremov "optargs=\0" \ 876ce89324SYegor Yefremov "mmcdev=0\0" \ 886ce89324SYegor Yefremov "mmcroot=/dev/mmcblk0p2 ro\0" \ 8988679a29SYegor Yefremov "usbroot=/dev/sda2 ro\0" \ 906ce89324SYegor Yefremov "mmcrootfstype=ext4 rootwait\0" \ 9188679a29SYegor Yefremov "usbrootfstype=ext4 rootwait\0" \ 926ce89324SYegor Yefremov "rootpath=/export/rootfs\0" \ 936ce89324SYegor Yefremov "nfsopts=nolock\0" \ 946ce89324SYegor Yefremov "static_ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}" \ 956ce89324SYegor Yefremov "::off\0" \ 966ce89324SYegor Yefremov "ramroot=/dev/ram0 rw\0" \ 976ce89324SYegor Yefremov "ramrootfstype=ext2\0" \ 986ce89324SYegor Yefremov "mmcargs=setenv bootargs console=${console} " \ 996ce89324SYegor Yefremov "${optargs} " \ 1006ce89324SYegor Yefremov "${mtdparts} " \ 1016ce89324SYegor Yefremov "root=${mmcroot} " \ 1026ce89324SYegor Yefremov "rootfstype=${mmcrootfstype}\0" \ 10388679a29SYegor Yefremov "usbargs=setenv bootargs console=${console} " \ 10488679a29SYegor Yefremov "${optargs} " \ 10588679a29SYegor Yefremov "${mtdparts} " \ 10688679a29SYegor Yefremov "root=${usbroot} " \ 10788679a29SYegor Yefremov "rootfstype=${usbrootfstype}\0" \ 1086ce89324SYegor Yefremov "spiroot=/dev/mtdblock4 rw\0" \ 1096ce89324SYegor Yefremov "spirootfstype=jffs2\0" \ 1106ce89324SYegor Yefremov "spisrcaddr=0xe0000\0" \ 1116ce89324SYegor Yefremov "spiimgsize=0x362000\0" \ 1126ce89324SYegor Yefremov "spibusno=0\0" \ 1136ce89324SYegor Yefremov "spiargs=setenv bootargs console=${console} " \ 1146ce89324SYegor Yefremov "${optargs} " \ 1156ce89324SYegor Yefremov "root=${spiroot} " \ 1166ce89324SYegor Yefremov "rootfstype=${spirootfstype}\0" \ 1176ce89324SYegor Yefremov "netargs=setenv bootargs console=${console} " \ 1186ce89324SYegor Yefremov "${optargs} " \ 1196ce89324SYegor Yefremov "root=/dev/nfs " \ 1206ce89324SYegor Yefremov "nfsroot=${serverip}:${rootpath},${nfsopts} rw " \ 1216ce89324SYegor Yefremov "ip=dhcp\0" \ 1226ce89324SYegor Yefremov "bootenv=uEnv.txt\0" \ 1236ce89324SYegor Yefremov "loadbootenv=load mmc ${mmcdev} ${loadaddr} ${bootenv}\0" \ 12488679a29SYegor Yefremov "usbloadbootenv=load usb 0:1 ${loadaddr} ${bootenv}\0" \ 1256ce89324SYegor Yefremov "importbootenv=echo Importing environment from mmc ...; " \ 1266ce89324SYegor Yefremov "env import -t $loadaddr $filesize\0" \ 12788679a29SYegor Yefremov "usbimportbootenv=echo Importing environment from USB ...; " \ 12888679a29SYegor Yefremov "env import -t $loadaddr $filesize\0" \ 1296ce89324SYegor Yefremov "ramargs=setenv bootargs console=${console} " \ 1306ce89324SYegor Yefremov "${optargs} " \ 1316ce89324SYegor Yefremov "root=${ramroot} " \ 1326ce89324SYegor Yefremov "rootfstype=${ramrootfstype}\0" \ 1336ce89324SYegor Yefremov "loadramdisk=load mmc ${mmcdev} ${rdaddr} ramdisk.gz\0" \ 1346ce89324SYegor Yefremov "loadimage=load mmc ${bootpart} ${loadaddr} ${bootdir}/${bootfile}\0" \ 13588679a29SYegor Yefremov "usbloadimage=load usb 0:1 ${loadaddr} kernel-fit.itb\0" \ 1366ce89324SYegor Yefremov "loadfdt=load mmc ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile}\0" \ 13788679a29SYegor Yefremov "usbloados=run usbargs; " \ 13888679a29SYegor Yefremov "bootm ${loadaddr}#conf${board_name}; " \ 13988679a29SYegor Yefremov "if test $? -ne 0; then " \ 14088679a29SYegor Yefremov "echo Using default FIT configuration; " \ 14188679a29SYegor Yefremov "bootm ${loadaddr}; " \ 14288679a29SYegor Yefremov "fi;\0" \ 1436ce89324SYegor Yefremov "mmcloados=run mmcargs; " \ 1446ce89324SYegor Yefremov "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \ 1456ce89324SYegor Yefremov "if run loadfdt; then " \ 1466ce89324SYegor Yefremov "bootz ${loadaddr} - ${fdtaddr}; " \ 1476ce89324SYegor Yefremov "else " \ 1486ce89324SYegor Yefremov "if test ${boot_fdt} = try; then " \ 1496ce89324SYegor Yefremov "bootz; " \ 1506ce89324SYegor Yefremov "else " \ 1516ce89324SYegor Yefremov "echo WARN: Cannot load the DT; " \ 1526ce89324SYegor Yefremov "fi; " \ 1536ce89324SYegor Yefremov "fi; " \ 1546ce89324SYegor Yefremov "else " \ 1556ce89324SYegor Yefremov "bootz; " \ 1566ce89324SYegor Yefremov "fi;\0" \ 15788679a29SYegor Yefremov "usbboot=usb reset; " \ 15888679a29SYegor Yefremov "if usb storage; then " \ 15988679a29SYegor Yefremov "echo USB drive found;" \ 16088679a29SYegor Yefremov "if run usbloadbootenv; then " \ 16188679a29SYegor Yefremov "echo Loaded environment from ${bootenv};" \ 16288679a29SYegor Yefremov "run usbimportbootenv;" \ 16388679a29SYegor Yefremov "fi;" \ 16488679a29SYegor Yefremov "if test -n $uenvcmd; then " \ 16588679a29SYegor Yefremov "echo Running uenvcmd ...;" \ 16688679a29SYegor Yefremov "run uenvcmd;" \ 16788679a29SYegor Yefremov "fi;" \ 16888679a29SYegor Yefremov "if run usbloadimage; then " \ 16988679a29SYegor Yefremov "run usbloados;" \ 17088679a29SYegor Yefremov "fi;" \ 17188679a29SYegor Yefremov "fi;\0" \ 1726ce89324SYegor Yefremov "mmcboot=mmc dev ${mmcdev}; " \ 1736ce89324SYegor Yefremov "if mmc rescan; then " \ 1746ce89324SYegor Yefremov "echo SD/MMC found on device ${mmcdev};" \ 1756ce89324SYegor Yefremov "if run loadbootenv; then " \ 1766ce89324SYegor Yefremov "echo Loaded environment from ${bootenv};" \ 1776ce89324SYegor Yefremov "run importbootenv;" \ 1786ce89324SYegor Yefremov "fi;" \ 1796ce89324SYegor Yefremov "if test -n $uenvcmd; then " \ 1806ce89324SYegor Yefremov "echo Running uenvcmd ...;" \ 1816ce89324SYegor Yefremov "run uenvcmd;" \ 1826ce89324SYegor Yefremov "fi;" \ 1836ce89324SYegor Yefremov "if run loadimage; then " \ 1846ce89324SYegor Yefremov "run mmcloados;" \ 1856ce89324SYegor Yefremov "fi;" \ 1866ce89324SYegor Yefremov "fi;\0" \ 1876ce89324SYegor Yefremov "spiboot=echo Booting from spi ...; " \ 1886ce89324SYegor Yefremov "run spiargs; " \ 1896ce89324SYegor Yefremov "sf probe ${spibusno}:0; " \ 1906ce89324SYegor Yefremov "sf read ${loadaddr} ${spisrcaddr} ${spiimgsize}; " \ 1916ce89324SYegor Yefremov "bootz ${loadaddr}\0" \ 1926ce89324SYegor Yefremov "netboot=echo Booting from network ...; " \ 1936ce89324SYegor Yefremov "setenv autoload no; " \ 1946ce89324SYegor Yefremov "dhcp; " \ 1956ce89324SYegor Yefremov "tftp ${loadaddr} ${bootfile}; " \ 1966ce89324SYegor Yefremov "tftp ${fdtaddr} ${fdtfile}; " \ 1976ce89324SYegor Yefremov "run netargs; " \ 1986ce89324SYegor Yefremov "bootz ${loadaddr} - ${fdtaddr}\0" \ 1996ce89324SYegor Yefremov "ramboot=echo Booting from ramdisk ...; " \ 2006ce89324SYegor Yefremov "run ramargs; " \ 2016ce89324SYegor Yefremov "bootz ${loadaddr} ${rdaddr} ${fdtaddr}\0" \ 2026ce89324SYegor Yefremov "findfdt=setenv fdtfile am335x-baltos.dtb\0" \ 2036ce89324SYegor Yefremov NANDARGS 2046ce89324SYegor Yefremov /*DFUARGS*/ 2056ce89324SYegor Yefremov #endif 2066ce89324SYegor Yefremov 2076ce89324SYegor Yefremov #define CONFIG_BOOTCOMMAND \ 2086ce89324SYegor Yefremov "run findfdt; " \ 20988679a29SYegor Yefremov "run usbboot;" \ 2106ce89324SYegor Yefremov "run mmcboot;" \ 2116ce89324SYegor Yefremov "setenv mmcdev 1; " \ 2126ce89324SYegor Yefremov "setenv bootpart 1:2; " \ 2136ce89324SYegor Yefremov "run mmcboot;" \ 2146ce89324SYegor Yefremov "run nandboot;" 2156ce89324SYegor Yefremov 2166ce89324SYegor Yefremov /* NS16550 Configuration */ 2176ce89324SYegor Yefremov #define CONFIG_SYS_NS16550_COM1 0x44e09000 /* Base EVM has UART0 */ 2186ce89324SYegor Yefremov #define CONFIG_SYS_NS16550_COM2 0x48022000 /* UART1 */ 2196ce89324SYegor Yefremov #define CONFIG_SYS_NS16550_COM3 0x48024000 /* UART2 */ 2206ce89324SYegor Yefremov #define CONFIG_SYS_NS16550_COM4 0x481a6000 /* UART3 */ 2216ce89324SYegor Yefremov #define CONFIG_SYS_NS16550_COM5 0x481a8000 /* UART4 */ 2226ce89324SYegor Yefremov #define CONFIG_SYS_NS16550_COM6 0x481aa000 /* UART5 */ 2236ce89324SYegor Yefremov 2246ce89324SYegor Yefremov #define CONFIG_ENV_EEPROM_IS_ON_I2C 2256ce89324SYegor Yefremov #define CONFIG_SYS_I2C_EEPROM_ADDR 0x50 /* Main EEPROM */ 2266ce89324SYegor Yefremov #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 2 2276ce89324SYegor Yefremov 2286ce89324SYegor Yefremov /* PMIC support */ 2296ce89324SYegor Yefremov #define CONFIG_POWER_TPS65910 2306ce89324SYegor Yefremov 2316ce89324SYegor Yefremov /* SPL */ 2326ce89324SYegor Yefremov #ifndef CONFIG_NOR_BOOT 2336ce89324SYegor Yefremov /* Bootcount using the RTC block */ 2346ce89324SYegor Yefremov #define CONFIG_BOOTCOUNT_LIMIT 2356ce89324SYegor Yefremov #define CONFIG_BOOTCOUNT_AM33XX 2366ce89324SYegor Yefremov 2376ce89324SYegor Yefremov /* USB gadget RNDIS */ 2386ce89324SYegor Yefremov 2396ce89324SYegor Yefremov /* General network SPL, both CPSW and USB gadget RNDIS */ 2406ce89324SYegor Yefremov #define CONFIG_SPL_NET_VCI_STRING "AM335x U-Boot SPL"*/ 2416ce89324SYegor Yefremov 2426ce89324SYegor Yefremov #ifdef CONFIG_NAND 2436ce89324SYegor Yefremov #define CONFIG_SYS_NAND_5_ADDR_CYCLE 2446ce89324SYegor Yefremov #define CONFIG_SYS_NAND_PAGE_COUNT (CONFIG_SYS_NAND_BLOCK_SIZE / \ 2456ce89324SYegor Yefremov CONFIG_SYS_NAND_PAGE_SIZE) 2466ce89324SYegor Yefremov #define CONFIG_SYS_NAND_PAGE_SIZE 2048 2476ce89324SYegor Yefremov #define CONFIG_SYS_NAND_OOBSIZE 64 2486ce89324SYegor Yefremov #define CONFIG_SYS_NAND_BLOCK_SIZE (128*1024) 2496ce89324SYegor Yefremov #define CONFIG_SYS_NAND_BAD_BLOCK_POS NAND_LARGE_BADBLOCK_POS 2506ce89324SYegor Yefremov #define CONFIG_SYS_NAND_ECCPOS { 2, 3, 4, 5, 6, 7, 8, 9, \ 2516ce89324SYegor Yefremov 10, 11, 12, 13, 14, 15, 16, 17, \ 2526ce89324SYegor Yefremov 18, 19, 20, 21, 22, 23, 24, 25, \ 2536ce89324SYegor Yefremov 26, 27, 28, 29, 30, 31, 32, 33, \ 2546ce89324SYegor Yefremov 34, 35, 36, 37, 38, 39, 40, 41, \ 2556ce89324SYegor Yefremov 42, 43, 44, 45, 46, 47, 48, 49, \ 2566ce89324SYegor Yefremov 50, 51, 52, 53, 54, 55, 56, 57, } 2576ce89324SYegor Yefremov 2586ce89324SYegor Yefremov #define CONFIG_SYS_NAND_ECCSIZE 512 2596ce89324SYegor Yefremov #define CONFIG_SYS_NAND_ECCBYTES 14 2606ce89324SYegor Yefremov #define CONFIG_SYS_NAND_ONFI_DETECTION 2616ce89324SYegor Yefremov #define CONFIG_NAND_OMAP_ECCSCHEME OMAP_ECC_BCH8_CODE_HW 2626ce89324SYegor Yefremov #define CONFIG_SYS_NAND_U_BOOT_START CONFIG_SYS_TEXT_BASE 2636ce89324SYegor Yefremov #endif 2646ce89324SYegor Yefremov #endif 2656ce89324SYegor Yefremov 2666ce89324SYegor Yefremov /* 2676ce89324SYegor Yefremov * USB configuration. We enable MUSB support, both for host and for 2686ce89324SYegor Yefremov * gadget. We set USB0 as peripheral and USB1 as host, based on the 2696ce89324SYegor Yefremov * board schematic and physical port wired to each. Then for host we 2706ce89324SYegor Yefremov * add mass storage support and for gadget we add both RNDIS ethernet 2716ce89324SYegor Yefremov * and DFU. 2726ce89324SYegor Yefremov */ 2736ce89324SYegor Yefremov #define CONFIG_USB_MUSB_DSPS 27495de1e2fSPaul Kocialkowski #define CONFIG_USB_MUSB_PIO_ONLY 27595de1e2fSPaul Kocialkowski #define CONFIG_USB_MUSB_DISABLE_BULK_COMBINE_SPLIT 2766ce89324SYegor Yefremov #define CONFIG_AM335X_USB0 2775e5055f0SYegor Yefremov #define CONFIG_AM335X_USB0_MODE MUSB_HOST 2786ce89324SYegor Yefremov #define CONFIG_AM335X_USB1 2795e5055f0SYegor Yefremov #define CONFIG_AM335X_USB1_MODE MUSB_OTG 2806ce89324SYegor Yefremov 2816ce89324SYegor Yefremov #if defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_USBETH_SUPPORT) 2826ce89324SYegor Yefremov /* disable host part of MUSB in SPL */ 2836ce89324SYegor Yefremov /* disable EFI partitions and partition UUID support */ 2846ce89324SYegor Yefremov /* 2856ce89324SYegor Yefremov * Disable CPSW SPL support so we fit within the 101KiB limit. 2866ce89324SYegor Yefremov */ 2876ce89324SYegor Yefremov #endif 2886ce89324SYegor Yefremov 2896ce89324SYegor Yefremov /* Network. */ 2906ce89324SYegor Yefremov #define CONFIG_PHY_ADDR 0 2916ce89324SYegor Yefremov #define CONFIG_PHY_SMSC 2926ce89324SYegor Yefremov #define CONFIG_MII 2936ce89324SYegor Yefremov #define CONFIG_PHY_ATHEROS 2946ce89324SYegor Yefremov 2956ce89324SYegor Yefremov /* NAND support */ 2966ce89324SYegor Yefremov #ifdef CONFIG_NAND 2976ce89324SYegor Yefremov #define GPMC_NAND_ECC_LP_x8_LAYOUT 1 2986ce89324SYegor Yefremov #if !defined(CONFIG_SPI_BOOT) && !defined(CONFIG_NOR_BOOT) 2996ce89324SYegor Yefremov #define MTDIDS_DEFAULT "nand0=omap2-nand.0" 3006ce89324SYegor Yefremov #define MTDPARTS_DEFAULT "mtdparts=omap2-nand.0:128k(SPL)," \ 3016ce89324SYegor Yefremov "128k(SPL.backup1)," \ 3026ce89324SYegor Yefremov "128k(SPL.backup2)," \ 3036ce89324SYegor Yefremov "128k(SPL.backup3)," \ 3046ce89324SYegor Yefremov "1920k(u-boot)," \ 3056ce89324SYegor Yefremov "-(UBI)" 3066ce89324SYegor Yefremov #endif 3076ce89324SYegor Yefremov #endif 3086ce89324SYegor Yefremov 3096ce89324SYegor Yefremov #endif /* ! __CONFIG_BALTOS_H */ 310