mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-14 17:07:38 +00:00
e6ca148104
Fix multiple issues in ubifs distroboot code: U-Boot supports attaching only one MTD device as UBI at the time. So always call 'ubifsmount ubi0:${bootubivol}' for mounting UBI volume ${bootubivol}. Usage of 'ubi${devnum}' is incorrect as 'ubi part' command attach MTD device always as UBI device ubi0. Set distroboot ${bootfstype} variable to ubifs in ubifs_boot command. Distroboot scripts require ${bootfstype} variable to be properly set and it is already set for all other boot types. Set distroboot ${distro_bootpart} variable to ${bootubivol} value. UBI device does not have partitions, but has volumes. Distroboot scripts require something to be set in ${distro_bootpart} variable, so set it to the UBI volume which is currently mounted by ubifs. Set distroboot ${devnum} variable to fixed string "ubi0". ubifs code differs from the other partition code that it requires "ubi" prefix before number. Explicitly unmount ubifs volume after loading all data from it. This allows to detach UBI device from MTD device. Move definition of MTD device with UBI and UBI volume with ubifs filesystem from global env variables ${bootubipart} and ${bootubivol} into the distroboot "func" macro, defined in board include config files. UBIFS distroboot macros then set ${bootubipart} and ${bootubivol} local variables for compatibility with existing distroboot scripts. This last change allows to define more UBIFS target devices and make it clear what is boot MTD/UBI device. All board include config files are adjusted to use this new scheme of specifying boot MTD/UBI device. Signed-off-by: Pali Rohár <pali@kernel.org> Acked-by: Frieder Schrempf <frieder.schrempf@kontron.de>
100 lines
2.8 KiB
C
100 lines
2.8 KiB
C
/* SPDX-License-Identifier: GPL-2.0+ */
|
|
/*
|
|
* Configuration settings for the TI OMAP3 EVM board.
|
|
*
|
|
* Copyright (C) 2006-2011 Texas Instruments Incorporated - http://www.ti.com/
|
|
*
|
|
* Author :
|
|
* Manikandan Pillai <mani.pillai@ti.com>
|
|
* Derived from Beagle Board and 3430 SDP code by
|
|
* Richard Woodruff <r-woodruff2@ti.com>
|
|
* Syed Mohammed Khasim <khasim@ti.com>
|
|
*
|
|
* Manikandan Pillai <mani.pillai@ti.com>
|
|
*/
|
|
|
|
#ifndef __CONFIG_H
|
|
#define __CONFIG_H
|
|
|
|
#include <configs/ti_omap3_common.h>
|
|
|
|
/*
|
|
* We are only ever GP parts and will utilize all of the "downloaded image"
|
|
* area in SRAM which starts at 0x40200000 and ends at 0x4020FFFF (64KB).
|
|
*/
|
|
|
|
/* NAND */
|
|
#if defined(CONFIG_MTD_RAW_NAND)
|
|
#define CONFIG_SYS_FLASH_BASE NAND_BASE
|
|
#define CONFIG_SYS_MAX_NAND_DEVICE 1
|
|
#define CONFIG_SYS_NAND_ECCPOS {2, 3, 4, 5, 6, 7, 8, 9,\
|
|
10, 11, 12, 13}
|
|
#define CONFIG_SYS_NAND_ECCSIZE 512
|
|
#define CONFIG_SYS_NAND_ECCBYTES 3
|
|
#define CONFIG_SYS_ENV_SECT_SIZE SZ_128K
|
|
#endif /* CONFIG_MTD_RAW_NAND */
|
|
|
|
#define BOOTENV_DEV_LEGACY_MMC(devtypeu, devtypel, instance) \
|
|
"bootcmd_" #devtypel #instance "=" \
|
|
"setenv mmcdev " #instance "; " \
|
|
"run mmcboot\0"
|
|
#define BOOTENV_DEV_NAME_LEGACY_MMC(devtypeu, devtypel, instance) \
|
|
#devtypel #instance " "
|
|
|
|
#if defined(CONFIG_MTD_RAW_NAND)
|
|
|
|
#define BOOTENV_DEV_NAND(devtypeu, devtypel, instance) \
|
|
"bootcmd_" #devtypel #instance "=" \
|
|
"if test ${mtdids} = '' || test ${mtdparts} = '' ; then " \
|
|
"echo NAND boot disabled: No mtdids and/or mtdparts; " \
|
|
"else " \
|
|
"run nandboot; " \
|
|
"fi\0"
|
|
#define BOOTENV_DEV_NAME_NAND(devtypeu, devtypel, instance) \
|
|
#devtypel #instance " "
|
|
|
|
#define BOOT_TARGET_DEVICES(func) \
|
|
func(MMC, mmc, 0) \
|
|
func(LEGACY_MMC, legacy_mmc, 0) \
|
|
func(UBIFS, ubifs, 0, rootfs, rootfs) \
|
|
func(NAND, nand, 0)
|
|
|
|
#else /* !CONFIG_MTD_RAW_NAND */
|
|
|
|
#define BOOT_TARGET_DEVICES(func) \
|
|
func(MMC, mmc, 0) \
|
|
func(LEGACY_MMC, legacy_mmc, 0)
|
|
|
|
#endif /* CONFIG_MTD_RAW_NAND */
|
|
|
|
#include <config_distro_bootcmd.h>
|
|
|
|
#include <environment/ti/mmc.h>
|
|
|
|
#define CONFIG_EXTRA_ENV_SETTINGS \
|
|
DEFAULT_LINUX_BOOT_ENV \
|
|
DEFAULT_MMC_TI_ARGS \
|
|
DEFAULT_FIT_TI_ARGS \
|
|
"fdtfile=" CONFIG_DEFAULT_FDT_FILE "\0" \
|
|
"fdt_high=0xffffffff\0" \
|
|
"console=ttyO0,115200n8\0" \
|
|
"bootdir=/boot\0" \
|
|
"bootenv=uEnv.txt\0" \
|
|
"bootfile=zImage\0" \
|
|
"bootpart=0:2\0" \
|
|
"optargs=\0" \
|
|
"nandroot=ubi0:rootfs ubi.mtd=rootfs rw noinitrd\0" \
|
|
"nandrootfstype=ubifs rootwait\0" \
|
|
"nandargs=setenv bootargs console=${console} " \
|
|
"${mtdparts} " \
|
|
"${optargs} " \
|
|
"root=${nandroot} " \
|
|
"rootfstype=${nandrootfstype}\0" \
|
|
"nandboot=if nand read ${loadaddr} kernel && nand read ${fdtaddr} dtb; then " \
|
|
"echo Booting uImage from NAND MTD 'kernel' partition ...; " \
|
|
"run nandargs; " \
|
|
"bootm ${loadaddr} - ${fdtaddr}; " \
|
|
"fi\0" \
|
|
BOOTENV
|
|
|
|
#endif /* __CONFIG_H */
|