mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-08-23 02:18:51 +09:00
![Tom Rini](/assets/img/avatar_default.png)
We have a number of platforms that are a combination of a carrier board and System-on-Module (SoM) that in turn allows for the board to have different SoCs on it. In some cases, this is handled via board-specific Kconfig options. In other cases we make use of CONFIG_SYS_EXTRA_OPTIONS. This latter case however can lead to invalid configurations as we will not in turn get options that in Kconfig are selected by or depend on that setting. To resolve this, make the SoC option a choice in Kconfig and make boards depend on what they can support. This change opens us up for further clean-ups in the cases where a single CONFIG_TARGET_xxx can support different SoCs and today they do not, or do not cleanly do so. Reported-by: Matt Porter <mporter@konsulko.com> Cc: Stefano Babic <sbabic@denx.de> Cc: Fabio Estevam <festevam@gmail.com> Cc: "NXP i.MX U-Boot Team" <uboot-imx@nxp.com> Cc: Soeren Moch <smoch@web.de> Cc: Markus Niebel <Markus.Niebel@tq-group.com> Cc: Igor Opaniuk <igor.opaniuk@toradex.com> Cc: Heiko Schocher <hs@denx.de> Cc: Hannes Schmelzer <hannes.schmelzer@br-automation.com> Cc: Otavio Salvador <otavio@ossystems.com.br> Cc: Nikita Kiryanov <nikita@compulab.co.il> Cc: Andreas Geisreiter <ageisreiter@dh-electronics.de> Cc: Ludwig Zenz <lzenz@dh-electronics.de> Cc: Lukasz Majewski <lukma@denx.de> Cc: Akshay Bhat <akshaybhat@timesys.com> Cc: Ken Lin <Ken.Lin@advantech.com.tw> Cc: Ian Ray <ian.ray@ge.com> Cc: Tim Harvey <tharvey@gateworks.com> Cc: Jagan Teki <jagan@amarulasolutions.com> Cc: Raffaele RECALCATI <raffaele.recalcati@bticino.it> Cc: Simone CIANNI <simone.cianni@bticino.it> Cc: Adam Ford <aford173@gmail.com> Cc: Marcin Niestroj <m.niestroj@grinn-global.com> Cc: "Eric Bénard" <eric@eukrea.com> Cc: Baruch Siach <baruch@tkos.co.il> Cc: Jason Liu <jason.hui.liu@nxp.com> Cc: Ye Li <ye.li@nxp.com> Cc: Eric Nelson <eric@nelint.com> Cc: Troy Kisky <troy.kisky@boundarydevices.com> Cc: Peng Fan <peng.fan@nxp.com> Cc: Parthiban Nallathambi <parthiban@linumiz.com> Cc: Marek Vasut <marex@denx.de> Cc: "Sébastien Szymanski" <sebastien.szymanski@armadeus.com> Cc: Christian Gmeiner <christian.gmeiner@gmail.com> Cc: Niel Fourie <lusus@denx.de> Cc: Martyn Welch <martyn.welch@collabora.com> Cc: Richard Hu <richard.hu@technexion.com> Cc: Stefan Roese <sr@denx.de> Cc: Boris Brezillon <bbrezillon@kernel.org> Cc: Arkadiusz Karas <arkadiusz.karas@somlabs.com> Cc: Breno Lima <breno.lima@nxp.com> Cc: Francesco Montefoschi <francesco.montefoschi@udoo.org> Cc: Silvio Fricke <open-source@softing.de> Tested-by: Matt Porter <mporter@konsulko.com> [colibri_imx6] Signed-off-by: Tom Rini <trini@konsulko.com> Reviewed-by: Marcin Niestroj <m.niestroj@grinn-global.com>
152 lines
4.8 KiB
C
152 lines
4.8 KiB
C
/* SPDX-License-Identifier: GPL-2.0+ */
|
|
/*
|
|
* Copyright (C) 2013 Stefan Roese <sr@denx.de>
|
|
*
|
|
* Configuration settings for the ProjectionDesign / Barco
|
|
* Titanium board.
|
|
*
|
|
* Based on mx6qsabrelite.h which is:
|
|
* Copyright (C) 2010-2011 Freescale Semiconductor, Inc.
|
|
*/
|
|
|
|
#ifndef __CONFIG_H
|
|
#define __CONFIG_H
|
|
|
|
#include "mx6_common.h"
|
|
|
|
/* Provide the MACH_TYPE value that the vendor kernel requires. */
|
|
#define CONFIG_MACH_TYPE 3769
|
|
|
|
/* Size of malloc() pool */
|
|
#define CONFIG_SYS_MALLOC_LEN (2 * 1024 * 1024)
|
|
|
|
#define CONFIG_MXC_UART_BASE UART1_BASE
|
|
|
|
/* I2C Configs */
|
|
#define CONFIG_SYS_I2C
|
|
#define CONFIG_SYS_I2C_MXC
|
|
#define CONFIG_SYS_I2C_MXC_I2C1 /* enable I2C bus 1 */
|
|
#define CONFIG_SYS_I2C_MXC_I2C2 /* enable I2C bus 2 */
|
|
#define CONFIG_SYS_I2C_MXC_I2C3 /* enable I2C bus 3 */
|
|
#define CONFIG_SYS_I2C_SPEED 100000
|
|
|
|
/* MMC Configs */
|
|
#define CONFIG_SYS_FSL_ESDHC_ADDR 0
|
|
#define CONFIG_SYS_FSL_USDHC_NUM 1
|
|
|
|
#define CONFIG_FEC_MXC
|
|
#define IMX_FEC_BASE ENET_BASE_ADDR
|
|
#define CONFIG_FEC_XCV_TYPE RGMII
|
|
#define CONFIG_FEC_MXC_PHYADDR 4
|
|
|
|
/* USB Configs */
|
|
#define CONFIG_MXC_USB_PORT 1
|
|
#define CONFIG_MXC_USB_PORTSC (PORT_PTS_UTMI | PORT_PTS_PTW)
|
|
#define CONFIG_MXC_USB_FLAGS 0
|
|
|
|
#define CONFIG_HOSTNAME "titanium"
|
|
#define CONFIG_UBI_PART ubi
|
|
#define CONFIG_UBIFS_VOLUME rootfs0
|
|
|
|
#define CONFIG_EXTRA_ENV_SETTINGS \
|
|
"kernel=" CONFIG_HOSTNAME "/uImage\0" \
|
|
"kernel_fs=/boot/uImage\0" \
|
|
"kernel_addr=11000000\0" \
|
|
"dtb=" CONFIG_HOSTNAME "/" \
|
|
CONFIG_HOSTNAME ".dtb\0" \
|
|
"dtb_fs=/boot/" CONFIG_HOSTNAME ".dtb\0" \
|
|
"dtb_addr=12800000\0" \
|
|
"script=boot.scr\0" \
|
|
"uimage=uImage\0" \
|
|
"console=ttymxc0\0" \
|
|
"baudrate=115200\0" \
|
|
"fdt_high=0xffffffff\0" \
|
|
"initrd_high=0xffffffff\0" \
|
|
"mmcdev=0\0" \
|
|
"mmcpart=1\0" \
|
|
"uimage=uImage\0" \
|
|
"loadbootscript=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr}" \
|
|
" ${script}\0" \
|
|
"bootscript=echo Running bootscript from mmc ...; source\0" \
|
|
"loaduimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${uimage}\0" \
|
|
"mmcroot=/dev/mmcblk0p2\0" \
|
|
"mmcargs=setenv bootargs console=${console},${baudrate} " \
|
|
"root=${mmcroot} rootwait rw\0" \
|
|
"bootmmc=run mmcargs; fatload mmc ${mmcdev}:${mmcpart} ${loadaddr}" \
|
|
" ${uimage}; bootm\0" \
|
|
"addip=setenv bootargs ${bootargs} " \
|
|
"ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}" \
|
|
":${hostname}:${netdev}:off panic=1\0" \
|
|
"addcon=setenv bootargs ${bootargs} console=ttymxc0," \
|
|
"${baudrate}\0" \
|
|
"addmtd=setenv bootargs ${bootargs} ${mtdparts}\0" \
|
|
"rootpath=/opt/eldk-5.3/armv7a/rootfs-minimal-mtdutils\0" \
|
|
"nfsargs=setenv bootargs root=/dev/nfs rw " \
|
|
"nfsroot=${serverip}:${rootpath}\0" \
|
|
"ubifs=" CONFIG_HOSTNAME "/ubifs.img\0" \
|
|
"part=" __stringify(CONFIG_UBI_PART) "\0" \
|
|
"boot_vol=0\0" \
|
|
"vol=" __stringify(CONFIG_UBIFS_VOLUME) "\0" \
|
|
"load_ubifs=tftp ${kernel_addr} ${ubifs}\0" \
|
|
"update_ubifs=ubi part ${part};ubi write ${kernel_addr} ${vol}" \
|
|
" ${filesize}\0" \
|
|
"upd_ubifs=run load_ubifs update_ubifs\0" \
|
|
"init_ubi=nand erase.part ubi;ubi part ${part};" \
|
|
"ubi create ${vol} c800000\0" \
|
|
"mtdids=" CONFIG_MTDIDS_DEFAULT "\0" \
|
|
"mtdparts=" CONFIG_MTDPARTS_DEFAULT "\0" \
|
|
"nand_ubifs=run ubifs_mount ubifs_load ubifsargs addip" \
|
|
" addcon addmtd;" \
|
|
"bootm ${kernel_addr} - ${dtb_addr}\0" \
|
|
"ubifsargs=set bootargs ubi.mtd=ubi " \
|
|
"root=ubi:rootfs${boot_vol} rootfstype=ubifs\0" \
|
|
"ubifs_mount=ubi part ubi;ubifsmount ubi:rootfs${boot_vol}\0" \
|
|
"ubifs_load=ubifsload ${kernel_addr} ${kernel_fs};" \
|
|
"ubifsload ${dtb_addr} ${dtb_fs};\0" \
|
|
"nand_ubifs=run ubifs_mount ubifs_load ubifsargs addip addcon " \
|
|
"addmtd;bootm ${kernel_addr} - ${dtb_addr}\0" \
|
|
"load_kernel=tftp ${kernel_addr} ${kernel}\0" \
|
|
"load_dtb=tftp ${dtb_addr} ${dtb}\0" \
|
|
"net_nfs=run load_dtb load_kernel; " \
|
|
"run nfsargs addip addcon addmtd;" \
|
|
"bootm ${kernel_addr} - ${dtb_addr}\0" \
|
|
"delenv=env default -a -f; saveenv; reset\0"
|
|
|
|
#define CONFIG_BOOTCOMMAND "run nand_ubifs"
|
|
|
|
/* Physical Memory Map */
|
|
#define PHYS_SDRAM MMDC0_ARB_BASE_ADDR
|
|
#define PHYS_SDRAM_SIZE (512 << 20)
|
|
|
|
#define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM
|
|
#define CONFIG_SYS_INIT_RAM_ADDR IRAM_BASE_ADDR
|
|
#define CONFIG_SYS_INIT_RAM_SIZE IRAM_SIZE
|
|
|
|
#define CONFIG_SYS_INIT_SP_OFFSET \
|
|
(CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE)
|
|
#define CONFIG_SYS_INIT_SP_ADDR \
|
|
(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET)
|
|
|
|
/* Enable NAND support */
|
|
#ifdef CONFIG_CMD_NAND
|
|
|
|
/* NAND stuff */
|
|
#define CONFIG_SYS_MAX_NAND_DEVICE 1
|
|
#define CONFIG_SYS_NAND_BASE 0x40000000
|
|
#define CONFIG_SYS_NAND_5_ADDR_CYCLE
|
|
#define CONFIG_SYS_NAND_ONFI_DETECTION
|
|
|
|
/* DMA stuff, needed for GPMI/MXS NAND support */
|
|
|
|
/* Environment in NAND */
|
|
|
|
#else /* CONFIG_CMD_NAND */
|
|
|
|
/* Environment in MMC */
|
|
|
|
#endif /* CONFIG_CMD_NAND */
|
|
|
|
/* UBI/UBIFS config options */
|
|
|
|
#endif /* __CONFIG_H */
|