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 2292a1babfSTom 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 #ifdef CONFIG_NAND 38*1abff55aSYegor Yefremov 396ce89324SYegor Yefremov #define NANDARGS \ 4043ede0bcSTom Rini "mtdids=" CONFIG_MTDIDS_DEFAULT "\0" \ 4143ede0bcSTom Rini "mtdparts=" CONFIG_MTDPARTS_DEFAULT "\0" \ 426ce89324SYegor Yefremov "nandargs=setenv bootargs console=${console} " \ 436ce89324SYegor Yefremov "${optargs} " \ 446ce89324SYegor Yefremov "${mtdparts} " \ 456ce89324SYegor Yefremov "root=${nandroot} " \ 466ce89324SYegor Yefremov "rootfstype=${nandrootfstype}\0" \ 476ce89324SYegor Yefremov "nandroot=ubi0:rootfs rw ubi.mtd=5\0" \ 486ce89324SYegor Yefremov "nandrootfstype=ubifs rootwait=1\0" \ 496ce89324SYegor Yefremov "nandboot=echo Booting from nand ...; " \ 506ce89324SYegor Yefremov "run nandargs; " \ 516ce89324SYegor Yefremov "setenv loadaddr 0x84000000; " \ 526ce89324SYegor Yefremov "ubi part UBI; " \ 536ce89324SYegor Yefremov "ubifsmount ubi0:kernel; " \ 546ce89324SYegor Yefremov "ubifsload $loadaddr kernel-fit.itb;" \ 556ce89324SYegor Yefremov "ubifsumount; " \ 565f9c58e9SYegor Yefremov "bootm ${loadaddr}#conf${board_name}; " \ 575f9c58e9SYegor Yefremov "if test $? -ne 0; then echo Using default FIT config; " \ 585f9c58e9SYegor Yefremov "bootm ${loadaddr}; fi;\0" 596ce89324SYegor Yefremov #else 606ce89324SYegor Yefremov #define NANDARGS "" 616ce89324SYegor Yefremov #endif 626ce89324SYegor Yefremov 636ce89324SYegor Yefremov #ifndef CONFIG_SPL_BUILD 646ce89324SYegor Yefremov #define CONFIG_EXTRA_ENV_SETTINGS \ 656ce89324SYegor Yefremov DEFAULT_LINUX_BOOT_ENV \ 666ce89324SYegor Yefremov "boot_fdt=try\0" \ 676ce89324SYegor Yefremov "bootpart=0:2\0" \ 686ce89324SYegor Yefremov "bootdir=/boot\0" \ 696ce89324SYegor Yefremov "bootfile=zImage\0" \ 706ce89324SYegor Yefremov "fdtfile=undefined\0" \ 716ce89324SYegor Yefremov "console=ttyO0,115200n8\0" \ 726ce89324SYegor Yefremov "partitions=" \ 736ce89324SYegor Yefremov "uuid_disk=${uuid_gpt_disk};" \ 746ce89324SYegor Yefremov "name=rootfs,start=2MiB,size=-,uuid=${uuid_gpt_rootfs}\0" \ 756ce89324SYegor Yefremov "optargs=\0" \ 766ce89324SYegor Yefremov "mmcdev=0\0" \ 776ce89324SYegor Yefremov "mmcroot=/dev/mmcblk0p2 ro\0" \ 7888679a29SYegor Yefremov "usbroot=/dev/sda2 ro\0" \ 796ce89324SYegor Yefremov "mmcrootfstype=ext4 rootwait\0" \ 8088679a29SYegor Yefremov "usbrootfstype=ext4 rootwait\0" \ 816ce89324SYegor Yefremov "rootpath=/export/rootfs\0" \ 826ce89324SYegor Yefremov "nfsopts=nolock\0" \ 836ce89324SYegor Yefremov "static_ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}" \ 846ce89324SYegor Yefremov "::off\0" \ 856ce89324SYegor Yefremov "ramroot=/dev/ram0 rw\0" \ 866ce89324SYegor Yefremov "ramrootfstype=ext2\0" \ 876ce89324SYegor Yefremov "mmcargs=setenv bootargs console=${console} " \ 886ce89324SYegor Yefremov "${optargs} " \ 896ce89324SYegor Yefremov "${mtdparts} " \ 906ce89324SYegor Yefremov "root=${mmcroot} " \ 916ce89324SYegor Yefremov "rootfstype=${mmcrootfstype}\0" \ 9288679a29SYegor Yefremov "usbargs=setenv bootargs console=${console} " \ 9388679a29SYegor Yefremov "${optargs} " \ 9488679a29SYegor Yefremov "${mtdparts} " \ 9588679a29SYegor Yefremov "root=${usbroot} " \ 9688679a29SYegor Yefremov "rootfstype=${usbrootfstype}\0" \ 976ce89324SYegor Yefremov "spiroot=/dev/mtdblock4 rw\0" \ 986ce89324SYegor Yefremov "spirootfstype=jffs2\0" \ 996ce89324SYegor Yefremov "spisrcaddr=0xe0000\0" \ 1006ce89324SYegor Yefremov "spiimgsize=0x362000\0" \ 1016ce89324SYegor Yefremov "spibusno=0\0" \ 1026ce89324SYegor Yefremov "spiargs=setenv bootargs console=${console} " \ 1036ce89324SYegor Yefremov "${optargs} " \ 1046ce89324SYegor Yefremov "root=${spiroot} " \ 1056ce89324SYegor Yefremov "rootfstype=${spirootfstype}\0" \ 1066ce89324SYegor Yefremov "netargs=setenv bootargs console=${console} " \ 1076ce89324SYegor Yefremov "${optargs} " \ 1086ce89324SYegor Yefremov "root=/dev/nfs " \ 1096ce89324SYegor Yefremov "nfsroot=${serverip}:${rootpath},${nfsopts} rw " \ 1106ce89324SYegor Yefremov "ip=dhcp\0" \ 1116ce89324SYegor Yefremov "bootenv=uEnv.txt\0" \ 1126ce89324SYegor Yefremov "loadbootenv=load mmc ${mmcdev} ${loadaddr} ${bootenv}\0" \ 11388679a29SYegor Yefremov "usbloadbootenv=load usb 0:1 ${loadaddr} ${bootenv}\0" \ 1146ce89324SYegor Yefremov "importbootenv=echo Importing environment from mmc ...; " \ 1156ce89324SYegor Yefremov "env import -t $loadaddr $filesize\0" \ 11688679a29SYegor Yefremov "usbimportbootenv=echo Importing environment from USB ...; " \ 11788679a29SYegor Yefremov "env import -t $loadaddr $filesize\0" \ 1186ce89324SYegor Yefremov "ramargs=setenv bootargs console=${console} " \ 1196ce89324SYegor Yefremov "${optargs} " \ 1206ce89324SYegor Yefremov "root=${ramroot} " \ 1216ce89324SYegor Yefremov "rootfstype=${ramrootfstype}\0" \ 1226ce89324SYegor Yefremov "loadramdisk=load mmc ${mmcdev} ${rdaddr} ramdisk.gz\0" \ 1236ce89324SYegor Yefremov "loadimage=load mmc ${bootpart} ${loadaddr} ${bootdir}/${bootfile}\0" \ 12488679a29SYegor Yefremov "usbloadimage=load usb 0:1 ${loadaddr} kernel-fit.itb\0" \ 1256ce89324SYegor Yefremov "loadfdt=load mmc ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile}\0" \ 12688679a29SYegor Yefremov "usbloados=run usbargs; " \ 12788679a29SYegor Yefremov "bootm ${loadaddr}#conf${board_name}; " \ 12888679a29SYegor Yefremov "if test $? -ne 0; then " \ 12988679a29SYegor Yefremov "echo Using default FIT configuration; " \ 13088679a29SYegor Yefremov "bootm ${loadaddr}; " \ 13188679a29SYegor Yefremov "fi;\0" \ 1326ce89324SYegor Yefremov "mmcloados=run mmcargs; " \ 1336ce89324SYegor Yefremov "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \ 1346ce89324SYegor Yefremov "if run loadfdt; then " \ 1356ce89324SYegor Yefremov "bootz ${loadaddr} - ${fdtaddr}; " \ 1366ce89324SYegor Yefremov "else " \ 1376ce89324SYegor Yefremov "if test ${boot_fdt} = try; then " \ 1386ce89324SYegor Yefremov "bootz; " \ 1396ce89324SYegor Yefremov "else " \ 1406ce89324SYegor Yefremov "echo WARN: Cannot load the DT; " \ 1416ce89324SYegor Yefremov "fi; " \ 1426ce89324SYegor Yefremov "fi; " \ 1436ce89324SYegor Yefremov "else " \ 1446ce89324SYegor Yefremov "bootz; " \ 1456ce89324SYegor Yefremov "fi;\0" \ 14688679a29SYegor Yefremov "usbboot=usb reset; " \ 14788679a29SYegor Yefremov "if usb storage; then " \ 14888679a29SYegor Yefremov "echo USB drive found;" \ 14988679a29SYegor Yefremov "if run usbloadbootenv; then " \ 15088679a29SYegor Yefremov "echo Loaded environment from ${bootenv};" \ 15188679a29SYegor Yefremov "run usbimportbootenv;" \ 15288679a29SYegor Yefremov "fi;" \ 15388679a29SYegor Yefremov "if test -n $uenvcmd; then " \ 15488679a29SYegor Yefremov "echo Running uenvcmd ...;" \ 15588679a29SYegor Yefremov "run uenvcmd;" \ 15688679a29SYegor Yefremov "fi;" \ 15788679a29SYegor Yefremov "if run usbloadimage; then " \ 15888679a29SYegor Yefremov "run usbloados;" \ 15988679a29SYegor Yefremov "fi;" \ 16088679a29SYegor Yefremov "fi;\0" \ 1616ce89324SYegor Yefremov "mmcboot=mmc dev ${mmcdev}; " \ 1626ce89324SYegor Yefremov "if mmc rescan; then " \ 1636ce89324SYegor Yefremov "echo SD/MMC found on device ${mmcdev};" \ 1646ce89324SYegor Yefremov "if run loadbootenv; then " \ 1656ce89324SYegor Yefremov "echo Loaded environment from ${bootenv};" \ 1666ce89324SYegor Yefremov "run importbootenv;" \ 1676ce89324SYegor Yefremov "fi;" \ 1686ce89324SYegor Yefremov "if test -n $uenvcmd; then " \ 1696ce89324SYegor Yefremov "echo Running uenvcmd ...;" \ 1706ce89324SYegor Yefremov "run uenvcmd;" \ 1716ce89324SYegor Yefremov "fi;" \ 1726ce89324SYegor Yefremov "if run loadimage; then " \ 1736ce89324SYegor Yefremov "run mmcloados;" \ 1746ce89324SYegor Yefremov "fi;" \ 1756ce89324SYegor Yefremov "fi;\0" \ 1766ce89324SYegor Yefremov "spiboot=echo Booting from spi ...; " \ 1776ce89324SYegor Yefremov "run spiargs; " \ 1786ce89324SYegor Yefremov "sf probe ${spibusno}:0; " \ 1796ce89324SYegor Yefremov "sf read ${loadaddr} ${spisrcaddr} ${spiimgsize}; " \ 1806ce89324SYegor Yefremov "bootz ${loadaddr}\0" \ 1816ce89324SYegor Yefremov "netboot=echo Booting from network ...; " \ 1826ce89324SYegor Yefremov "setenv autoload no; " \ 1836ce89324SYegor Yefremov "dhcp; " \ 1846ce89324SYegor Yefremov "tftp ${loadaddr} ${bootfile}; " \ 1856ce89324SYegor Yefremov "tftp ${fdtaddr} ${fdtfile}; " \ 1866ce89324SYegor Yefremov "run netargs; " \ 1876ce89324SYegor Yefremov "bootz ${loadaddr} - ${fdtaddr}\0" \ 1886ce89324SYegor Yefremov "ramboot=echo Booting from ramdisk ...; " \ 1896ce89324SYegor Yefremov "run ramargs; " \ 1906ce89324SYegor Yefremov "bootz ${loadaddr} ${rdaddr} ${fdtaddr}\0" \ 1916ce89324SYegor Yefremov "findfdt=setenv fdtfile am335x-baltos.dtb\0" \ 1926ce89324SYegor Yefremov NANDARGS 1936ce89324SYegor Yefremov /*DFUARGS*/ 1946ce89324SYegor Yefremov #endif 1956ce89324SYegor Yefremov 1966ce89324SYegor Yefremov #define CONFIG_BOOTCOMMAND \ 1976ce89324SYegor Yefremov "run findfdt; " \ 19888679a29SYegor Yefremov "run usbboot;" \ 1996ce89324SYegor Yefremov "run mmcboot;" \ 2006ce89324SYegor Yefremov "setenv mmcdev 1; " \ 2016ce89324SYegor Yefremov "setenv bootpart 1:2; " \ 2026ce89324SYegor Yefremov "run mmcboot;" \ 2036ce89324SYegor Yefremov "run nandboot;" 2046ce89324SYegor Yefremov 2056ce89324SYegor Yefremov /* NS16550 Configuration */ 2066ce89324SYegor Yefremov #define CONFIG_SYS_NS16550_COM1 0x44e09000 /* Base EVM has UART0 */ 2076ce89324SYegor Yefremov #define CONFIG_SYS_NS16550_COM2 0x48022000 /* UART1 */ 2086ce89324SYegor Yefremov #define CONFIG_SYS_NS16550_COM3 0x48024000 /* UART2 */ 2096ce89324SYegor Yefremov #define CONFIG_SYS_NS16550_COM4 0x481a6000 /* UART3 */ 2106ce89324SYegor Yefremov #define CONFIG_SYS_NS16550_COM5 0x481a8000 /* UART4 */ 2116ce89324SYegor Yefremov #define CONFIG_SYS_NS16550_COM6 0x481aa000 /* UART5 */ 2126ce89324SYegor Yefremov 2136ce89324SYegor Yefremov #define CONFIG_ENV_EEPROM_IS_ON_I2C 2146ce89324SYegor Yefremov #define CONFIG_SYS_I2C_EEPROM_ADDR 0x50 /* Main EEPROM */ 2156ce89324SYegor Yefremov #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 2 2166ce89324SYegor Yefremov 2176ce89324SYegor Yefremov /* PMIC support */ 2186ce89324SYegor Yefremov #define CONFIG_POWER_TPS65910 2196ce89324SYegor Yefremov 2206ce89324SYegor Yefremov /* SPL */ 2216ce89324SYegor Yefremov #ifndef CONFIG_NOR_BOOT 2226ce89324SYegor Yefremov 2236ce89324SYegor Yefremov #ifdef CONFIG_NAND 2246ce89324SYegor Yefremov #define CONFIG_SYS_NAND_5_ADDR_CYCLE 2256ce89324SYegor Yefremov #define CONFIG_SYS_NAND_PAGE_COUNT (CONFIG_SYS_NAND_BLOCK_SIZE / \ 2266ce89324SYegor Yefremov CONFIG_SYS_NAND_PAGE_SIZE) 2276ce89324SYegor Yefremov #define CONFIG_SYS_NAND_PAGE_SIZE 2048 2286ce89324SYegor Yefremov #define CONFIG_SYS_NAND_OOBSIZE 64 2296ce89324SYegor Yefremov #define CONFIG_SYS_NAND_BLOCK_SIZE (128*1024) 2306ce89324SYegor Yefremov #define CONFIG_SYS_NAND_BAD_BLOCK_POS NAND_LARGE_BADBLOCK_POS 2316ce89324SYegor Yefremov #define CONFIG_SYS_NAND_ECCPOS { 2, 3, 4, 5, 6, 7, 8, 9, \ 2326ce89324SYegor Yefremov 10, 11, 12, 13, 14, 15, 16, 17, \ 2336ce89324SYegor Yefremov 18, 19, 20, 21, 22, 23, 24, 25, \ 2346ce89324SYegor Yefremov 26, 27, 28, 29, 30, 31, 32, 33, \ 2356ce89324SYegor Yefremov 34, 35, 36, 37, 38, 39, 40, 41, \ 2366ce89324SYegor Yefremov 42, 43, 44, 45, 46, 47, 48, 49, \ 2376ce89324SYegor Yefremov 50, 51, 52, 53, 54, 55, 56, 57, } 2386ce89324SYegor Yefremov 2396ce89324SYegor Yefremov #define CONFIG_SYS_NAND_ECCSIZE 512 2406ce89324SYegor Yefremov #define CONFIG_SYS_NAND_ECCBYTES 14 2416ce89324SYegor Yefremov #define CONFIG_SYS_NAND_ONFI_DETECTION 2426ce89324SYegor Yefremov #define CONFIG_NAND_OMAP_ECCSCHEME OMAP_ECC_BCH8_CODE_HW 2436ce89324SYegor Yefremov #define CONFIG_SYS_NAND_U_BOOT_START CONFIG_SYS_TEXT_BASE 2446ce89324SYegor Yefremov #endif 2456ce89324SYegor Yefremov #endif 2466ce89324SYegor Yefremov 2476ce89324SYegor Yefremov /* 2486ce89324SYegor Yefremov * USB configuration. We enable MUSB support, both for host and for 2496ce89324SYegor Yefremov * gadget. We set USB0 as peripheral and USB1 as host, based on the 2506ce89324SYegor Yefremov * board schematic and physical port wired to each. Then for host we 2516ce89324SYegor Yefremov * add mass storage support and for gadget we add both RNDIS ethernet 2526ce89324SYegor Yefremov * and DFU. 2536ce89324SYegor Yefremov */ 25495de1e2fSPaul Kocialkowski #define CONFIG_USB_MUSB_DISABLE_BULK_COMBINE_SPLIT 2556ce89324SYegor Yefremov #define CONFIG_AM335X_USB0 2565e5055f0SYegor Yefremov #define CONFIG_AM335X_USB0_MODE MUSB_HOST 2576ce89324SYegor Yefremov #define CONFIG_AM335X_USB1 2585e5055f0SYegor Yefremov #define CONFIG_AM335X_USB1_MODE MUSB_OTG 2596ce89324SYegor Yefremov 2606ce89324SYegor Yefremov /* NAND support */ 2616ce89324SYegor Yefremov #ifdef CONFIG_NAND 2626ce89324SYegor Yefremov #define GPMC_NAND_ECC_LP_x8_LAYOUT 1 2636ce89324SYegor Yefremov #endif 2646ce89324SYegor Yefremov 2656ce89324SYegor Yefremov #endif /* ! __CONFIG_BALTOS_H */ 266