xref: /openbmc/u-boot/include/configs/brppt1.h (revision 66c433ed4342e5761ee9b048c85fe47d31130b2e)
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