mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-24 21:54:01 +00:00
distroboot: Fix ubifs
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>
This commit is contained in:
parent
69ca709d0f
commit
e6ca148104
12 changed files with 25 additions and 27 deletions
|
@ -70,18 +70,23 @@
|
||||||
#ifdef CONFIG_CMD_UBIFS
|
#ifdef CONFIG_CMD_UBIFS
|
||||||
#define BOOTENV_SHARED_UBIFS \
|
#define BOOTENV_SHARED_UBIFS \
|
||||||
"ubifs_boot=" \
|
"ubifs_boot=" \
|
||||||
"env exists bootubipart || " \
|
|
||||||
"env set bootubipart UBI; " \
|
|
||||||
"env exists bootubivol || " \
|
|
||||||
"env set bootubivol boot; " \
|
|
||||||
"if ubi part ${bootubipart} && " \
|
"if ubi part ${bootubipart} && " \
|
||||||
"ubifsmount ubi${devnum}:${bootubivol}; " \
|
"ubifsmount ubi0:${bootubivol}; " \
|
||||||
"then " \
|
"then " \
|
||||||
"devtype=ubi; " \
|
"devtype=ubi; " \
|
||||||
|
"devnum=ubi0; " \
|
||||||
|
"bootfstype=ubifs; " \
|
||||||
|
"distro_bootpart=${bootubivol}; " \
|
||||||
"run scan_dev_for_boot; " \
|
"run scan_dev_for_boot; " \
|
||||||
|
"ubifsumount; " \
|
||||||
"fi\0"
|
"fi\0"
|
||||||
#define BOOTENV_DEV_UBIFS BOOTENV_DEV_BLKDEV
|
#define BOOTENV_DEV_UBIFS(devtypeu, devtypel, instance, bootubipart, bootubivol) \
|
||||||
#define BOOTENV_DEV_NAME_UBIFS BOOTENV_DEV_NAME_BLKDEV
|
"bootcmd_ubifs" #instance "=" \
|
||||||
|
"bootubipart=" #bootubipart "; " \
|
||||||
|
"bootubivol=" #bootubivol "; " \
|
||||||
|
"run ubifs_boot\0"
|
||||||
|
#define BOOTENV_DEV_NAME_UBIFS(devtypeu, devtypel, instance, bootubipart, bootubivol) \
|
||||||
|
#devtypel #instance " "
|
||||||
#else
|
#else
|
||||||
#define BOOTENV_SHARED_UBIFS
|
#define BOOTENV_SHARED_UBIFS
|
||||||
#define BOOTENV_DEV_UBIFS \
|
#define BOOTENV_DEV_UBIFS \
|
||||||
|
@ -411,13 +416,13 @@
|
||||||
BOOT_TARGET_DEVICES_references_PXE_without_CONFIG_CMD_DHCP_or_PXE
|
BOOT_TARGET_DEVICES_references_PXE_without_CONFIG_CMD_DHCP_or_PXE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define BOOTENV_DEV_NAME(devtypeu, devtypel, instance) \
|
#define BOOTENV_DEV_NAME(devtypeu, devtypel, instance, ...) \
|
||||||
BOOTENV_DEV_NAME_##devtypeu(devtypeu, devtypel, instance)
|
BOOTENV_DEV_NAME_##devtypeu(devtypeu, devtypel, instance, ## __VA_ARGS__)
|
||||||
#define BOOTENV_BOOT_TARGETS \
|
#define BOOTENV_BOOT_TARGETS \
|
||||||
"boot_targets=" BOOT_TARGET_DEVICES(BOOTENV_DEV_NAME) "\0"
|
"boot_targets=" BOOT_TARGET_DEVICES(BOOTENV_DEV_NAME) "\0"
|
||||||
|
|
||||||
#define BOOTENV_DEV(devtypeu, devtypel, instance) \
|
#define BOOTENV_DEV(devtypeu, devtypel, instance, ...) \
|
||||||
BOOTENV_DEV_##devtypeu(devtypeu, devtypel, instance)
|
BOOTENV_DEV_##devtypeu(devtypeu, devtypel, instance, ## __VA_ARGS__)
|
||||||
#define BOOTENV \
|
#define BOOTENV \
|
||||||
BOOTENV_SHARED_HOST \
|
BOOTENV_SHARED_HOST \
|
||||||
BOOTENV_SHARED_MMC \
|
BOOTENV_SHARED_MMC \
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
"ramdisk_addr_r=0x88080000\0" \
|
"ramdisk_addr_r=0x88080000\0" \
|
||||||
|
|
||||||
#define BOOT_TARGET_DEVICES(func) \
|
#define BOOT_TARGET_DEVICES(func) \
|
||||||
func(UBIFS, ubifs, 0)
|
func(UBIFS, ubifs, 0, UBI, rootfs)
|
||||||
|
|
||||||
#define AM335XX_BOARD_FDTFILE "fdtfile=" CONFIG_DEFAULT_DEVICE_TREE ".dtb\0"
|
#define AM335XX_BOARD_FDTFILE "fdtfile=" CONFIG_DEFAULT_DEVICE_TREE ".dtb\0"
|
||||||
|
|
||||||
|
@ -51,7 +51,6 @@
|
||||||
BOOTENV \
|
BOOTENV \
|
||||||
GUARDIAN_DEFAULT_PROD_ENV \
|
GUARDIAN_DEFAULT_PROD_ENV \
|
||||||
"backlight_brightness=50\0" \
|
"backlight_brightness=50\0" \
|
||||||
"bootubivol=rootfs\0" \
|
|
||||||
"distro_bootcmd=" \
|
"distro_bootcmd=" \
|
||||||
"setenv rootflags \"bulk_read,chk_data_crc\"; " \
|
"setenv rootflags \"bulk_read,chk_data_crc\"; " \
|
||||||
"setenv ethact usb_ether; " \
|
"setenv ethact usb_ether; " \
|
||||||
|
|
|
@ -90,7 +90,6 @@
|
||||||
UBI_BOOTCMD \
|
UBI_BOOTCMD \
|
||||||
UBOOT_UPDATE \
|
UBOOT_UPDATE \
|
||||||
"boot_script_dhcp=boot.scr\0" \
|
"boot_script_dhcp=boot.scr\0" \
|
||||||
"bootubipart=ubi\0" \
|
|
||||||
"console=ttymxc0\0" \
|
"console=ttymxc0\0" \
|
||||||
"defargs=user_debug=30\0" \
|
"defargs=user_debug=30\0" \
|
||||||
"fdt_board=eval-v3\0" \
|
"fdt_board=eval-v3\0" \
|
||||||
|
|
|
@ -130,7 +130,6 @@
|
||||||
UBOOT_UPDATE \
|
UBOOT_UPDATE \
|
||||||
"boot_file=zImage\0" \
|
"boot_file=zImage\0" \
|
||||||
"boot_script_dhcp=boot.scr\0" \
|
"boot_script_dhcp=boot.scr\0" \
|
||||||
"bootubipart=ubi\0" \
|
|
||||||
"console=ttymxc0\0" \
|
"console=ttymxc0\0" \
|
||||||
"defargs=\0" \
|
"defargs=\0" \
|
||||||
"fdt_board=eval-v3\0" \
|
"fdt_board=eval-v3\0" \
|
||||||
|
|
|
@ -37,7 +37,7 @@
|
||||||
#define BOOT_TARGET_DEVICES(func) \
|
#define BOOT_TARGET_DEVICES(func) \
|
||||||
func(MMC, mmc, 1) \
|
func(MMC, mmc, 1) \
|
||||||
func(MMC, mmc, 0) \
|
func(MMC, mmc, 0) \
|
||||||
func(UBIFS, ubifs, 0) \
|
func(UBIFS, ubifs, 0, UBI, boot) \
|
||||||
func(USB, usb, 0) \
|
func(USB, usb, 0) \
|
||||||
func(PXE, pxe, na) \
|
func(PXE, pxe, na) \
|
||||||
func(DHCP, dhcp, na)
|
func(DHCP, dhcp, na)
|
||||||
|
|
|
@ -50,7 +50,7 @@
|
||||||
|
|
||||||
#define BOOT_TARGET_DEVICES(func) \
|
#define BOOT_TARGET_DEVICES(func) \
|
||||||
func(MMC, mmc, 0) \
|
func(MMC, mmc, 0) \
|
||||||
func(UBIFS, ubifs, 0) \
|
func(UBIFS, ubifs, 0, UBI, boot) \
|
||||||
func(PXE, pxe, na) \
|
func(PXE, pxe, na) \
|
||||||
func(DHCP, dhcp, na)
|
func(DHCP, dhcp, na)
|
||||||
|
|
||||||
|
|
|
@ -58,7 +58,7 @@
|
||||||
|
|
||||||
#define BOOT_TARGET_DEVICES(func) \
|
#define BOOT_TARGET_DEVICES(func) \
|
||||||
func(MMC, mmc, 0) \
|
func(MMC, mmc, 0) \
|
||||||
func(UBIFS, ubifs, 0) \
|
func(UBIFS, ubifs, 0, UBI, boot) \
|
||||||
func(PXE, pxe, na) \
|
func(PXE, pxe, na) \
|
||||||
func(DHCP, dhcp, na)
|
func(DHCP, dhcp, na)
|
||||||
|
|
||||||
|
|
|
@ -62,7 +62,7 @@
|
||||||
#define BOOT_TARGET_DEVICES(func) \
|
#define BOOT_TARGET_DEVICES(func) \
|
||||||
func(MMC, mmc, 0) \
|
func(MMC, mmc, 0) \
|
||||||
func(LEGACY_MMC, legacy_mmc, 0) \
|
func(LEGACY_MMC, legacy_mmc, 0) \
|
||||||
func(UBIFS, ubifs, 0) \
|
func(UBIFS, ubifs, 0, rootfs, rootfs) \
|
||||||
func(NAND, nand, 0)
|
func(NAND, nand, 0)
|
||||||
|
|
||||||
#else /* !CONFIG_MTD_RAW_NAND */
|
#else /* !CONFIG_MTD_RAW_NAND */
|
||||||
|
@ -84,8 +84,6 @@
|
||||||
"bootenv=uEnv.txt\0" \
|
"bootenv=uEnv.txt\0" \
|
||||||
"bootfile=zImage\0" \
|
"bootfile=zImage\0" \
|
||||||
"bootpart=0:2\0" \
|
"bootpart=0:2\0" \
|
||||||
"bootubivol=rootfs\0" \
|
|
||||||
"bootubipart=rootfs\0" \
|
|
||||||
"usbtty=cdc_acm\0" \
|
"usbtty=cdc_acm\0" \
|
||||||
"mpurate=auto\0" \
|
"mpurate=auto\0" \
|
||||||
"buddy=none\0" \
|
"buddy=none\0" \
|
||||||
|
|
|
@ -56,7 +56,7 @@
|
||||||
#define BOOT_TARGET_DEVICES(func) \
|
#define BOOT_TARGET_DEVICES(func) \
|
||||||
func(MMC, mmc, 0) \
|
func(MMC, mmc, 0) \
|
||||||
func(LEGACY_MMC, legacy_mmc, 0) \
|
func(LEGACY_MMC, legacy_mmc, 0) \
|
||||||
func(UBIFS, ubifs, 0) \
|
func(UBIFS, ubifs, 0, rootfs, rootfs) \
|
||||||
func(NAND, nand, 0)
|
func(NAND, nand, 0)
|
||||||
|
|
||||||
#else /* !CONFIG_MTD_RAW_NAND */
|
#else /* !CONFIG_MTD_RAW_NAND */
|
||||||
|
@ -82,8 +82,6 @@
|
||||||
"bootenv=uEnv.txt\0" \
|
"bootenv=uEnv.txt\0" \
|
||||||
"bootfile=zImage\0" \
|
"bootfile=zImage\0" \
|
||||||
"bootpart=0:2\0" \
|
"bootpart=0:2\0" \
|
||||||
"bootubivol=rootfs\0" \
|
|
||||||
"bootubipart=rootfs\0" \
|
|
||||||
"optargs=\0" \
|
"optargs=\0" \
|
||||||
"nandroot=ubi0:rootfs ubi.mtd=rootfs rw noinitrd\0" \
|
"nandroot=ubi0:rootfs ubi.mtd=rootfs rw noinitrd\0" \
|
||||||
"nandrootfstype=ubifs rootwait\0" \
|
"nandrootfstype=ubifs rootwait\0" \
|
||||||
|
|
|
@ -62,7 +62,7 @@
|
||||||
|
|
||||||
#define BOOT_TARGET_DEVICES(func) \
|
#define BOOT_TARGET_DEVICES(func) \
|
||||||
func(MMC, mmc, 0) \
|
func(MMC, mmc, 0) \
|
||||||
func(UBIFS, ubifs, 0) \
|
func(UBIFS, ubifs, 0, UBI, boot) \
|
||||||
func(PXE, pxe, na) \
|
func(PXE, pxe, na) \
|
||||||
func(DHCP, dhcp, na)
|
func(DHCP, dhcp, na)
|
||||||
|
|
||||||
|
|
|
@ -57,7 +57,7 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_CMD_UBIFS
|
#ifdef CONFIG_CMD_UBIFS
|
||||||
#define BOOT_TARGET_UBIFS(func) func(UBIFS, ubifs, 0)
|
#define BOOT_TARGET_UBIFS(func) func(UBIFS, ubifs, 0, UBI, boot)
|
||||||
#else
|
#else
|
||||||
#define BOOT_TARGET_UBIFS(func)
|
#define BOOT_TARGET_UBIFS(func)
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_CMD_UBIFS
|
#ifdef CONFIG_CMD_UBIFS
|
||||||
#define BOOT_TARGET_DEVICE_UBIFS(func) func(UBIFS, ubifs, 0)
|
#define BOOT_TARGET_DEVICE_UBIFS(func) func(UBIFS, ubifs, 0, UBI, boot)
|
||||||
#else
|
#else
|
||||||
#define BOOT_TARGET_DEVICE_UBIFS(func)
|
#define BOOT_TARGET_DEVICE_UBIFS(func)
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue