183d290c5STom Rini /* SPDX-License-Identifier: GPL-2.0+ */ 22290fe06SHannes Schmelzer /* 32290fe06SHannes Schmelzer * brtpp1.h 42290fe06SHannes Schmelzer * 52290fe06SHannes Schmelzer * specific parts for B&R T-Series Motherboard 62290fe06SHannes Schmelzer * 72290fe06SHannes Schmelzer * Copyright (C) 2013 Hannes Schmelzer <oe5hpm@oevsv.at> - 82290fe06SHannes Schmelzer * Bernecker & Rainer Industrieelektronik GmbH - http://www.br-automation.com 92290fe06SHannes Schmelzer */ 102290fe06SHannes Schmelzer 112290fe06SHannes Schmelzer #ifndef __CONFIG_BRPPT1_H__ 122290fe06SHannes Schmelzer #define __CONFIG_BRPPT1_H__ 132290fe06SHannes Schmelzer 142290fe06SHannes Schmelzer #include <configs/bur_cfg_common.h> 152290fe06SHannes Schmelzer #include <configs/bur_am335x_common.h> 162290fe06SHannes Schmelzer /* ------------------------------------------------------------------------- */ 172290fe06SHannes Schmelzer /* memory */ 182290fe06SHannes Schmelzer #define CONFIG_SYS_MALLOC_LEN (5 * 1024 * 1024) 1973e9db22SHannes Schmelzer #define CONFIG_SYS_BOOTM_LEN SZ_32M 202290fe06SHannes Schmelzer 212290fe06SHannes Schmelzer /* Clock Defines */ 222290fe06SHannes Schmelzer #define V_OSCK 26000000 /* Clock output from T2 */ 232290fe06SHannes Schmelzer #define V_SCLK (V_OSCK) 242290fe06SHannes Schmelzer 252290fe06SHannes Schmelzer #define CONFIG_POWER_TPS65217 262290fe06SHannes Schmelzer 272290fe06SHannes Schmelzer /* Support both device trees and ATAGs. */ 282290fe06SHannes Schmelzer #define CONFIG_CMDLINE_TAG 292290fe06SHannes Schmelzer #define CONFIG_SETUP_MEMORY_TAGS 302290fe06SHannes Schmelzer #define CONFIG_INITRD_TAG 312290fe06SHannes Schmelzer /*#define CONFIG_MACH_TYPE 3589*/ 322290fe06SHannes Schmelzer #define CONFIG_MACH_TYPE 0xFFFFFFFF /* TODO: check with kernel*/ 332290fe06SHannes Schmelzer 342290fe06SHannes Schmelzer /* MMC/SD IP block */ 352290fe06SHannes Schmelzer #if defined(CONFIG_EMMC_BOOT) 362290fe06SHannes Schmelzer #define CONFIG_SUPPORT_EMMC_BOOT 372290fe06SHannes Schmelzer #endif /* CONFIG_EMMC_BOOT */ 382290fe06SHannes Schmelzer 392290fe06SHannes Schmelzer /* 40fbc7c7deSHannes Schmelzer * When we have NAND flash we expect to be making use of mtdparts, 412290fe06SHannes Schmelzer * both for ease of use in U-Boot and for passing information on to 422290fe06SHannes Schmelzer * the Linux kernel. 432290fe06SHannes Schmelzer */ 44*9c5b0097SAdam Ford 45*9c5b0097SAdam Ford #ifdef CONFIG_SPL_OS_BOOT 46*9c5b0097SAdam Ford #define CONFIG_SYS_SPL_ARGS_ADDR 0x80F80000 47*9c5b0097SAdam Ford 48*9c5b0097SAdam Ford /* RAW SD card / eMMC */ 49*9c5b0097SAdam Ford #define CONFIG_SYS_MMCSD_RAW_MODE_KERNEL_SECTOR 0x900 /* address 0x120000 */ 50*9c5b0097SAdam Ford #define CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTOR 0x80 /* address 0x10000 */ 51*9c5b0097SAdam Ford #define CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTORS 0x80 /* 64KiB */ 52*9c5b0097SAdam Ford 53*9c5b0097SAdam Ford /* NAND */ 54*9c5b0097SAdam Ford #ifdef CONFIG_NAND 55*9c5b0097SAdam Ford #define CONFIG_SYS_NAND_SPL_KERNEL_OFFS 0x140000 56*9c5b0097SAdam Ford #endif /* CONFIG_NAND */ 57*9c5b0097SAdam Ford #endif /* CONFIG_SPL_OS_BOOT */ 582290fe06SHannes Schmelzer 592290fe06SHannes Schmelzer #ifdef CONFIG_NAND 602290fe06SHannes Schmelzer #define CONFIG_SPL_NAND_BASE 612290fe06SHannes Schmelzer #define CONFIG_SPL_NAND_DRIVERS 622290fe06SHannes Schmelzer #define CONFIG_SPL_NAND_ECC 632290fe06SHannes Schmelzer #define CONFIG_SYS_NAND_U_BOOT_START CONFIG_SYS_TEXT_BASE 642290fe06SHannes Schmelzer #define CONFIG_SYS_NAND_U_BOOT_OFFS 0x80000 652290fe06SHannes Schmelzer #endif /* CONFIG_NAND */ 662290fe06SHannes Schmelzer 672290fe06SHannes Schmelzer /* Always 64 KiB env size */ 682290fe06SHannes Schmelzer #define CONFIG_ENV_SIZE (64 << 10) 692290fe06SHannes Schmelzer 702290fe06SHannes Schmelzer #ifdef CONFIG_NAND 7173e9db22SHannes Schmelzer #define NANDTGTS \ 7243ede0bcSTom Rini "mtdids=" CONFIG_MTDIDS_DEFAULT "\0" \ 7343ede0bcSTom Rini "mtdparts=" CONFIG_MTDPARTS_DEFAULT "\0" \ 7473e9db22SHannes Schmelzer "cfgscr=nand read ${cfgaddr} cfgscr && source ${cfgaddr}\0" \ 7573e9db22SHannes Schmelzer "nandargs=setenv bootargs console=${console} ${optargs} ${optargs_rot} " \ 7673e9db22SHannes Schmelzer "root=mtd6 rootfstype=jffs2 b_mode=${b_mode}\0" \ 7773e9db22SHannes Schmelzer "b_nand=nand read ${loadaddr} kernel; nand read ${dtbaddr} dtb; " \ 7873e9db22SHannes Schmelzer "run nandargs; run cfgscr; bootz ${loadaddr} - ${dtbaddr}\0" \ 7973e9db22SHannes Schmelzer "b_tgts_std=usb0 nand net\0" \ 8073e9db22SHannes Schmelzer "b_tgts_rcy=net usb0 nand\0" \ 8173e9db22SHannes Schmelzer "b_tgts_pme=usb0 nand net\0" 822290fe06SHannes Schmelzer #else 8373e9db22SHannes Schmelzer #define NANDTGTS "" 842290fe06SHannes Schmelzer #endif /* CONFIG_NAND */ 852290fe06SHannes Schmelzer 8673e9db22SHannes Schmelzer #define MMCSPI_TGTS \ 8773e9db22SHannes Schmelzer "t30args#0=setenv bootargs ${optargs_rot} ${optargs} console=${console} " \ 8873e9db22SHannes Schmelzer "b_mode=${b_mode} root=/dev/mmcblk0p2 rootfstype=ext4\0" \ 8973e9db22SHannes Schmelzer "b_t30lgcy#0=" \ 9073e9db22SHannes Schmelzer "load ${loaddev}:2 ${loadaddr} /boot/PPTImage.md5 && " \ 9173e9db22SHannes Schmelzer "load ${loaddev}:2 ${loadaddr} /boot/zImage && " \ 9273e9db22SHannes Schmelzer "load ${loaddev}:2 ${dtbaddr} /boot/am335x-ppt30.dtb || " \ 9373e9db22SHannes Schmelzer "load ${loaddev}:1 ${dtbaddr} am335x-ppt30-legacy.dtb; "\ 9473e9db22SHannes Schmelzer "run t30args#0; run cfgscr; bootz ${loadaddr} - ${dtbaddr}\0" \ 9573e9db22SHannes Schmelzer "t30args#1=setenv bootargs ${optargs_rot} ${optargs} console=${console} " \ 9673e9db22SHannes Schmelzer "b_mode=${b_mode}\0" \ 9773e9db22SHannes Schmelzer "b_t30lgcy#1=" \ 9873e9db22SHannes Schmelzer "load ${loaddev}:1 ${loadaddr} zImage && " \ 9973e9db22SHannes Schmelzer "load ${loaddev}:1 ${dtbaddr} am335x-ppt30.dtb && " \ 10073e9db22SHannes Schmelzer "load ${loaddev}:1 ${ramaddr} rootfsPPT30.uboot && " \ 10173e9db22SHannes Schmelzer "run t30args#1; run cfgscr; bootz ${loadaddr} ${ramaddr} ${dtbaddr}\0" \ 10273e9db22SHannes Schmelzer "b_mmc0=load ${loaddev}:1 ${scraddr} bootscr.img && source ${scraddr}\0" \ 10373e9db22SHannes Schmelzer "b_mmc1=load ${loaddev}:1 ${scraddr} /boot/bootscr.img && source ${scraddr}\0" \ 10473e9db22SHannes Schmelzer "b_tgts_std=mmc0 mmc1 t30lgcy#0 t30lgcy#1 usb0 net\0" \ 10573e9db22SHannes Schmelzer "b_tgts_rcy=t30lgcy#1 usb0 net\0" \ 10673e9db22SHannes Schmelzer "b_tgts_pme=net usb0 mmc0 mmc1\0" \ 10773e9db22SHannes Schmelzer "loaddev=mmc 1\0" 10873e9db22SHannes Schmelzer 109fbc7c7deSHannes Schmelzer #ifdef CONFIG_ENV_IS_IN_MMC 11073e9db22SHannes Schmelzer #define MMCTGTS \ 11173e9db22SHannes Schmelzer MMCSPI_TGTS \ 11273e9db22SHannes Schmelzer "cfgscr=mmc dev 1; mmc read ${cfgaddr} 200 80; source ${cfgaddr}\0" 1132290fe06SHannes Schmelzer #else 11473e9db22SHannes Schmelzer #define MMCTGTS "" 1152290fe06SHannes Schmelzer #endif /* CONFIG_MMC */ 1162290fe06SHannes Schmelzer 11773e9db22SHannes Schmelzer #ifdef CONFIG_SPI 11873e9db22SHannes Schmelzer #define SPITGTS \ 11973e9db22SHannes Schmelzer MMCSPI_TGTS \ 12073e9db22SHannes Schmelzer "cfgscr=sf probe; sf read ${cfgaddr} 0xC0000 10000; source ${cfgaddr}\0" 12173e9db22SHannes Schmelzer #else 12273e9db22SHannes Schmelzer #define SPITGTS "" 12373e9db22SHannes Schmelzer #endif /* CONFIG_SPI */ 12473e9db22SHannes Schmelzer 12573e9db22SHannes Schmelzer #define LOAD_OFFSET(x) 0x8##x 12673e9db22SHannes Schmelzer 1272290fe06SHannes Schmelzer #ifndef CONFIG_SPL_BUILD 1282290fe06SHannes Schmelzer #define CONFIG_EXTRA_ENV_SETTINGS \ 1292290fe06SHannes Schmelzer BUR_COMMON_ENV \ 1302290fe06SHannes Schmelzer "verify=no\0" \ 1312290fe06SHannes Schmelzer "autoload=0\0" \ 13273e9db22SHannes Schmelzer "scraddr=" __stringify(LOAD_OFFSET(0000000)) "\0" \ 13373e9db22SHannes Schmelzer "cfgaddr=" __stringify(LOAD_OFFSET(0020000)) "\0" \ 13473e9db22SHannes Schmelzer "dtbaddr=" __stringify(LOAD_OFFSET(0040000)) "\0" \ 13573e9db22SHannes Schmelzer "loadaddr=" __stringify(LOAD_OFFSET(0100000)) "\0" \ 13673e9db22SHannes Schmelzer "ramaddr=" __stringify(LOAD_OFFSET(2000000)) "\0" \ 1372290fe06SHannes Schmelzer "console=ttyO0,115200n8\0" \ 1382290fe06SHannes Schmelzer "optargs=consoleblank=0 quiet panic=2\0" \ 13973e9db22SHannes Schmelzer "b_break=0\0" \ 14073e9db22SHannes Schmelzer "b_usb0=usb start && load usb 0 ${scraddr} bootscr.img && source ${scraddr}\0" \ 14173e9db22SHannes Schmelzer "b_net=tftp ${scraddr} netscript.img && source ${scraddr}\0" \ 14273e9db22SHannes Schmelzer MMCTGTS \ 14373e9db22SHannes Schmelzer SPITGTS \ 14473e9db22SHannes Schmelzer NANDTGTS \ 14573e9db22SHannes Schmelzer "b_deftgts=if test ${b_mode} = 12; then setenv b_tgts ${b_tgts_pme};" \ 14673e9db22SHannes Schmelzer " elif test ${b_mode} = 0; then setenv b_tgts ${b_tgts_rcy};" \ 14773e9db22SHannes Schmelzer " else setenv b_tgts ${b_tgts_std}; fi\0" \ 14873e9db22SHannes Schmelzer "b_default=run b_deftgts; for target in ${b_tgts};"\ 14973e9db22SHannes Schmelzer " do echo \"### booting ${target} ###\"; run b_${target};" \ 15073e9db22SHannes Schmelzer " if test ${b_break} = 1; then; exit; fi; done\0" 1512290fe06SHannes Schmelzer #endif /* !CONFIG_SPL_BUILD*/ 1522290fe06SHannes Schmelzer 1532290fe06SHannes Schmelzer #ifdef CONFIG_NAND 1542290fe06SHannes Schmelzer /* 1552290fe06SHannes Schmelzer * GPMC block. We support 1 device and the physical address to 1562290fe06SHannes Schmelzer * access CS0 at is 0x8000000. 1572290fe06SHannes Schmelzer */ 1582290fe06SHannes Schmelzer #define CONFIG_SYS_MAX_NAND_DEVICE 1 1592290fe06SHannes Schmelzer #define CONFIG_SYS_NAND_BASE 0x8000000 1602290fe06SHannes Schmelzer /* don't change OMAP_ELM, ECCSCHEME. ROM code only supports this */ 1612290fe06SHannes Schmelzer #define CONFIG_NAND_OMAP_ECCSCHEME OMAP_ECC_BCH8_CODE_HW 1622290fe06SHannes Schmelzer #define CONFIG_SYS_NAND_5_ADDR_CYCLE 1632290fe06SHannes Schmelzer #define CONFIG_SYS_NAND_BLOCK_SIZE (128*1024) 1642290fe06SHannes Schmelzer #define CONFIG_SYS_NAND_PAGE_SIZE 2048 1652290fe06SHannes Schmelzer #define CONFIG_SYS_NAND_PAGE_COUNT (CONFIG_SYS_NAND_BLOCK_SIZE / \ 1662290fe06SHannes Schmelzer CONFIG_SYS_NAND_PAGE_SIZE) 1672290fe06SHannes Schmelzer #define CONFIG_SYS_NAND_OOBSIZE 64 1682290fe06SHannes Schmelzer #define CONFIG_SYS_NAND_BAD_BLOCK_POS NAND_LARGE_BADBLOCK_POS 1692290fe06SHannes Schmelzer #define CONFIG_SYS_NAND_ECCPOS {2, 3, 4, 5, 6, 7, 8, 9, \ 1702290fe06SHannes Schmelzer 10, 11, 12, 13, 14, 15, 16, 17, \ 1712290fe06SHannes Schmelzer 18, 19, 20, 21, 22, 23, 24, 25, \ 1722290fe06SHannes Schmelzer 26, 27, 28, 29, 30, 31, 32, 33, \ 1732290fe06SHannes Schmelzer 34, 35, 36, 37, 38, 39, 40, 41, \ 1742290fe06SHannes Schmelzer 42, 43, 44, 45, 46, 47, 48, 49, \ 1752290fe06SHannes Schmelzer 50, 51, 52, 53, 54, 55, 56, 57, } 1762290fe06SHannes Schmelzer 1772290fe06SHannes Schmelzer #define CONFIG_SYS_NAND_ECCSIZE 512 1782290fe06SHannes Schmelzer #define CONFIG_SYS_NAND_ECCBYTES 14 1792290fe06SHannes Schmelzer 1802290fe06SHannes Schmelzer #define CONFIG_SYS_NAND_U_BOOT_START CONFIG_SYS_TEXT_BASE 1812290fe06SHannes Schmelzer 1822290fe06SHannes Schmelzer #define CONFIG_NAND_OMAP_GPMC_WSCFG 1 1832290fe06SHannes Schmelzer #endif /* CONFIG_NAND */ 1842290fe06SHannes Schmelzer 1852290fe06SHannes Schmelzer /* USB configuration */ 1862290fe06SHannes Schmelzer #define CONFIG_USB_MUSB_DISABLE_BULK_COMBINE_SPLIT 1872290fe06SHannes Schmelzer 188fbc7c7deSHannes Schmelzer #if defined(CONFIG_SPI) 189fbc7c7deSHannes Schmelzer /* SPI Flash */ 190fbc7c7deSHannes Schmelzer #define CONFIG_SYS_SPI_U_BOOT_OFFS 0x40000 191fbc7c7deSHannes Schmelzer /* Environment */ 1922290fe06SHannes Schmelzer #define CONFIG_SYS_REDUNDAND_ENVIRONMENT 193fbc7c7deSHannes Schmelzer #define CONFIG_ENV_SECT_SIZE CONFIG_ENV_SIZE 194fbc7c7deSHannes Schmelzer #define CONFIG_ENV_OFFSET 0x20000 195fbc7c7deSHannes Schmelzer #define CONFIG_ENV_OFFSET_REDUND (CONFIG_ENV_OFFSET + \ 196fbc7c7deSHannes Schmelzer CONFIG_ENV_SECT_SIZE) 197fbc7c7deSHannes Schmelzer #elif defined(CONFIG_ENV_IS_IN_MMC) 19829e00313SHannes Schmelzer #define CONFIG_SYS_MMC_ENV_DEV 1 1992290fe06SHannes Schmelzer #define CONFIG_SYS_MMC_ENV_PART 2 2002290fe06SHannes Schmelzer #define CONFIG_ENV_OFFSET 0x40000 /* TODO: Adresse definieren */ 2012290fe06SHannes Schmelzer #define CONFIG_ENV_OFFSET_REDUND (CONFIG_ENV_OFFSET + CONFIG_ENV_SIZE) 2022290fe06SHannes Schmelzer #define CONFIG_SYS_REDUNDAND_ENVIRONMENT 2032290fe06SHannes Schmelzer 204fbc7c7deSHannes Schmelzer #elif defined(CONFIG_ENV_IS_IN_NAND) 2052290fe06SHannes Schmelzer /* No NAND env support in SPL */ 2062290fe06SHannes Schmelzer #define CONFIG_ENV_OFFSET 0x60000 2072290fe06SHannes Schmelzer #define CONFIG_SYS_ENV_SECT_SIZE CONFIG_ENV_SIZE 2082290fe06SHannes Schmelzer #else 2092290fe06SHannes Schmelzer #error "no storage for Environment defined!" 2102290fe06SHannes Schmelzer #endif 2112290fe06SHannes Schmelzer 2122290fe06SHannes Schmelzer #endif /* ! __CONFIG_BRPPT1_H__ */ 213