SPL: Add support to boot a partition type
Subsystems (3)
v9 cover SPL: Add support to boot a partition type
This adds support for the spl to seach for and boot from an arbitrary partition type rather then a specific partition number. When USE_PARTITION_TYPE is enabled, spl will search for the partition type but fallback to the specified partition number.
SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION is moved to a Kconfig and header and defconfigs for the affected boards are updated.
Changes in v9:
- Missed moving use partition type to socfpga/Kconfig
Changes in v8:
-> Move partition type default to arch/arm/mach-socfpga/Kconfig
Changes in v7:
-> set part type to 0xa2 only if socfpga selected and merge previously split
patch
Changes in V6:
-> Fix unneeded backslash
-> Move SPL socfpga Kconfig default to selec tin arch/arm/Kconfig -> Split out defconfig changes for affected boards into a separate patch
Dalon Westergreen (2):
SPL: add support to boot from a partition type
SPL: Move SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION to Kconfig
arch/arm/Kconfig | 1 + common/spl/Kconfig | 32 ++++++++++++++++++++++++++++++++ common/spl/spl_mmc.c | 27 ++++++++++++++++++--------- configs/db-88f6820-gp_defconfig | 1 + configs/kc1_defconfig | 2 ++ configs/sniper_defconfig | 2 ++ disk/part_dos.c | 1 + include/configs/db-88f6820-gp.h | 1 - include/configs/kc1.h | 2 -- include/configs/sniper.h | 2 -- include/configs/socfpga_common.h | 2 -- include/part.h | 3 +++ 12 files changed, 60 insertions(+), 16 deletions(-)
Signature · 1 line
2.7.4
PATCH v9 1/2 SPL: add support to boot from a partition type
the socfpga bootrom supports mmc booting from either a raw image starting at 0x0, or from a partition of type 0xa2. This patch adds support for locating the boot image in the first type 0xa2 partition found.
Assigned a partition number of -1 will cause a search for a partition of type CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION_TYPE and use it to find the u-boot image
--
Changes in v9:
- Missed moving use partition type to socfpga/Kconfig
Changes in v8:
- Move partition type default to arch/arm/mach-socfpga/Kconfig
Changes in v7:
- set part type to 0xa2 only if socfpga selected
Changes in V6:
- Remove unneeded backslash
Changes in V5:
- fix styling in if (..) per Tom's request
Changes in V4:
- Try search for partition type and failover to the defined partition number
Changes in V3:
- Add depends on DOS_PARTITION
- Ensure that PARTTION_TYPE defaults to non-zero
- Add ifdef around sys_ind in disk_partition structure
Changes in V2:
- Merge partition search into single partition function
--- arch/arm/mach-socfpga/Kconfig | 6 ++++++ common/spl/Kconfig | 16 ++++++++++++++++ common/spl/spl_mmc.c | 15 +++++++++++++++ disk/part_dos.c | 1 + include/part.h | 3 +++ 5 files changed, 41 insertions(+)
arch/arm/mach-socfpga/Kconfig +6 -0
@@ -27,6 +27,12 @@ config SPL_SPI_SUPPORT config SPL_WATCHDOG_SUPPORT default y +config SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION_TYPE + default y + +config SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION_TYPE + default 0xa2 + config TARGET_SOCFPGA_ARRIA5 bool select TARGET_SOCFPGA_GEN5
common/spl/Kconfig +16 -0
@@ -96,6 +96,22 @@ config SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR Address on the MMC to load U-Boot from, when the MMC is being used in raw mode. Units: MMC sectors (1 sector = 512 bytes). +config SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION_TYPE + bool "MMC raw mode: by partition type" + depends on SPL && DOS_PARTITION && \ + SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION + help + Use partition type for specifying U-Boot partition on MMC/SD in + raw mode. U-Boot will be loaded from the first partition of this + type to be found. + +config SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION_TYPE + hex "Partition Type on the MMC to load U-Boot from" + depends on SPL && SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION_TYPE + help + Partition Type on the MMC to load U-Boot from, when the MMC is being + used in raw mode. + config TPL bool depends on SPL && SUPPORT_TPL
common/spl/spl_mmc.c +15 -0
@@ -157,6 +157,21 @@ static int mmc_load_image_raw_partition(struct spl_image_info *spl_image,disk_partition_t info;int err; +#ifdef CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION_TYPE +int type_part; +/* Only support MBR so DOS_ENTRY_NUMBERS */ +for (type_part =1 ; type_part <=DOS_ENTRY_NUMBERS ; type_part++) { + err =part_get_info (mmc_get_blk_desc (mmc), type_part, &info); +if (err) +continue ; +if (info.sys_ind == +CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION_TYPE ) { + partition = type_part; +break ; + } + } +#endif + err =part_get_info (mmc_get_blk_desc (mmc), partition, &info);if (err) {#ifdef CONFIG_SPL_LIBCOMMON_SUPPORT
disk/part_dos.c +1 -0
@@ -217,6 +217,7 @@ static int part_get_info_extended(struct blk_desc *dev_desc,#if CONFIG_IS_ENABLED (PARTITION_UUIDS )sprintf (info->uuid,"%08x-%02x" , disksig, part_num);#endif + info->sys_ind = pt->sys_ind;return 0 ; }
include/part.h +3 -0
@@ -59,6 +59,9 @@ typedef struct disk_partition {#ifdef CONFIG_PARTITION_TYPE_GUID char type_guid[37 ];/* type GUID as string, if exists */ #endif +#ifdef CONFIG_DOS_PARTITION +uchar sys_ind;/* partition type */ +#endif } disk_partition_t;/* Misc _get_dev functions */
Signature · 1 line
2.7.4
PATCH v9 1/2 SPL: add support to boot from a partition type
Quoted 10 lines · Dalon Westergreen
the socfpga bootrom supports mmc booting from either a raw image starting at
0x0, or from a partition of type0xa2. This patch adds support for locating the boot image in the first type0xa2partition found.Assigned a partition number of -1 will cause a search for a partition of type
CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION_TYPEand use it to find the u-boot imageSigned-off-by Dalon Westergreen <[email protected]>
Applied to u-boot/master, thanks!
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20170217/0bb0a5e5/attachment.sig>
PATCH v9 2/2 SPL: Move SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION to Kconfig
In reply to Dalon WestergreenAdded SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION andSYS_MMCSD_RAW_MODE_U_BOOT_PARTITION to Kconfig.
Due to SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION being moved to Kconfig the board defconfigs for db-88f6820-gp_defconfig kc1_defconfig and sniper_defconfig need to be updated.
--
Changes in v4:
- merge defconfig changes into single patch
Changes in v3:
- Split off defconfig changes for db-88f6820-gp_defconfig kc1_defconfig and sniper_defconfig into a separate patch
Changes in v2:
- Remove SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION from socfpga_common.h
- wrong ifdef around mmc_load_image_raw_partition should be CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
--- arch/arm/Kconfig | 1 + common/spl/Kconfig | 14 ++++++++++++++ common/spl/spl_mmc.c | 12 +++--------- configs/db-88f6820-gp_defconfig | 1 + configs/kc1_defconfig | 2 ++ configs/sniper_defconfig | 2 ++ include/configs/db-88f6820-gp.h | 1 - include/configs/kc1.h | 2 -- include/configs/sniper.h | 2 -- include/configs/socfpga_common.h | 2 -- 10 files changed, 23 insertions(+), 16 deletions(-)
arch/arm/Kconfig +1 -0
@@ -633,6 +633,7 @@ config ARCH_SOCFPGA select ENABLE_ARM_SOC_BOOT0_HOOK select ARCH_EARLY_INIT_R select ARCH_MISC_INIT + select SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION config TARGET_CM_T43 bool "Support cm_t43"
common/spl/Kconfig +14 -0
@@ -96,6 +96,20 @@ config SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR Address on the MMC to load U-Boot from, when the MMC is being used in raw mode. Units: MMC sectors (1 sector = 512 bytes). +config SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION + bool "MMC Raw mode: by partition" + depends on SPL + help + Use a partition for loading U-Boot when using MMC/SD in raw mode. + +config SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION + hex "Partition to use to load U-Boot from" + depends on SPL && SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION + default 1 + help + Partition on the MMC to load U-Boot from when the MMC is being + used in raw mode + config SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION_TYPE bool "MMC raw mode: by partition type" depends on SPL && DOS_PARTITION && \
common/spl/spl_mmc.c +3 -9
@@ -150,7 +150,7 @@ static int spl_mmc_find_device(struct mmc **mmcp, u32 boot_device)return 0 ; } -#ifdef CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION +#ifdef CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION static int mmc_load_image_raw_partition (struct spl_image_info *spl_image,struct mmc *mmc,int partition) {
@@ -187,13 +187,6 @@ static int mmc_load_image_raw_partition(struct spl_image_info *spl_image,return mmc_load_image_raw_sector (spl_image, mmc, info.start); #endif } -#else -#define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION -1 -static int mmc_load_image_raw_partition (struct spl_image_info *spl_image, -struct mmc *mmc,int partition) -{ -return -ENOSYS ; -}#endif #ifdef CONFIG_SPL_OS_BOOT
@@ -341,11 +334,12 @@ int spl_mmc_load_image(struct spl_image_info *spl_image,if (!err)return err; } - +#ifdef CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION err =mmc_load_image_raw_partition (spl_image, mmc,CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION );if (!err)return err; +#endif #ifdef CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR err =mmc_load_image_raw_sector (spl_image, mmc,CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR );
configs/db-88f6820-gp_defconfig +1 -0
@@ -51,3 +51,4 @@ CONFIG_USB=y CONFIG_DM_USB=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_STORAGE=y +CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION=y
configs/kc1_defconfig +2 -0
@@ -36,3 +36,5 @@ CONFIG_G_DNL_MANUFACTURER="Texas Instruments" CONFIG_G_DNL_VENDOR_NUM=0x0451 CONFIG_G_DNL_PRODUCT_NUM=0xd022 CONFIG_OF_LIBFDT=y +CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION=y +CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION=2
configs/sniper_defconfig +2 -0
@@ -37,3 +37,5 @@ CONFIG_G_DNL_MANUFACTURER="Texas Instruments" CONFIG_G_DNL_VENDOR_NUM=0x0451 CONFIG_G_DNL_PRODUCT_NUM=0xd022 CONFIG_OF_LIBFDT=y +CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION=y +CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION=2
include/configs/db-88f6820-gp.h +0 -1
@@ -123,7 +123,6 @@#if CONFIG_SPL_BOOT_DEVICE ==SPL_BOOT_SDIO_MMC_CARD /* SPL related MMC defines */ -#define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION 1#define CONFIG_SYS_MMC_U_BOOT_OFFS (160 << 10)#define CONFIG_SYS_U_BOOT_OFFS CONFIG_SYS_MMC_U_BOOT_OFFS#ifdef CONFIG_SPL_BUILD
include/configs/kc1.h +0 -2
@@ -113,8 +113,6 @@#define CONFIG_SPL_LDSCRIPT "arch/arm/mach-omap2/u-boot-spl.lds"#define CONFIG_SPL_BOARD_INIT -#define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION 2 -/* * Console */
include/configs/sniper.h +0 -2
@@ -121,8 +121,6 @@#define CONFIG_SPL_LDSCRIPT "arch/arm/mach-omap2/u-boot-spl.lds"#define CONFIG_SPL_BOARD_INIT -#define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION 2 -#define CONFIG_SYS_MMCSD_FS_BOOT_PARTITION 1#define CONFIG_SPL_FS_LOAD_PAYLOAD_NAME "u-boot.img"
include/configs/socfpga_common.h +0 -2
@@ -311,8 +311,6 @@ unsigned int cm_get_qspi_controller_clk_hz(void);#if defined(CONFIG_SPL_FAT_SUPPORT ) || defined(CONFIG_SPL_EXT_SUPPORT )#define CONFIG_SYS_MMCSD_FS_BOOT_PARTITION 2#define CONFIG_SPL_FS_LOAD_PAYLOAD_NAME "u-boot-dtb.img" -#else -#define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION 1#endif #endif
Signature · 1 line
2.7.4
PATCH v9 2/2 SPL: Move SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION to Kconfig
Quoted 8 lines · Dalon Westergreen
Added
SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITIONandSYS_MMCSD_RAW_MODE_U_BOOT_PARTITIONtoKconfig.Due to
SYS_MMCSD_RAW_MODE_U_BOOT_PARTITIONbeing moved toKconfigthe board defconfigs for db-88f6820-gp_defconfigkc1_defconfigandsniper_defconfigneed to be updated.Signed-off-by Dalon Westergreen <[email protected]>
Applied to u-boot/master, thanks!
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20170217/3f40ec02/attachment.sig>
v9 cover SPL: Add support to boot a partition type
In reply to Dalon WestergreenQuoted 24 lines · Dalon Westergreen
This adds support for the spl to seach for and boot from an arbitrary partition type rather then a specific partition number. When
USE_PARTITION_TYPEis enabled, spl will search for the partition type but fallback to the specified partition number.
SYS_MMCSD_RAW_MODE_U_BOOT_PARTITIONis moved to aKconfigand header and defconfigs for the affected boards are updated.Changes in v9:
- Missed moving use partition type to socfpga/Kconfig
Changes in v8:
-> Move partition type default toarch/arm/mach-socfpga/Kconfig
Changes in v7:
-> set part type to0xa2only if socfpga selected and merge previously split
patch
Changes in V6:
-> Fix unneeded backslash
-> Move SPL socfpgaKconfigdefault to selec tinarch/arm/Kconfig-> Split out defconfig changes for affected boards into a separate patchDalon Westergreen (2):
SPL: add support to boot from a partition type
SPL: MoveSYS_MMCSD_RAW_MODE_U_BOOT_PARTITIONtoKconfig
Quoted 14 lines
arch/arm/Kconfig | 1 + common/spl/Kconfig | 32 ++++++++++++++++++++++++++++++++ common/spl/spl_mmc.c | 27 ++++++++++++++++++--------- configs/db-88f6820-gp_defconfig | 1 + configs/kc1_defconfig | 2 ++ configs/sniper_defconfig | 2 ++ disk/part_dos.c | 1 + include/configs/db-88f6820-gp.h | 1 - include/configs/kc1.h | 2 -- include/configs/sniper.h | 2 -- include/configs/socfpga_common.h | 2 -- include/part.h | 3 +++ 12 files changed, 60 insertions(+), 16 deletions(-)
Series
Signature · 2 lines
Best regards, Marek Vasut
v9 cover SPL: Add support to boot a partition type
Quoted 42 lines · Marek Vasut
Quoted 38 lines · Dalon Westergreen
This adds support for the spl to seach for and boot from an arbitrary partition type rather then a specific partition number.??When
USE_PARTITION_TYPEis enabled, spl will search for the partition type but fallback to the specified partition number.
?SYS_MMCSD_RAW_MODE_U_BOOT_PARTITIONis moved to aKconfigand header and defconfigs for the affected boards are updated.Changes in v9:
?- Missed moving use partition type to socfpga/Kconfig Changes in v8:
?-> Move partition type default toarch/arm/mach-socfpga/KconfigChanges in v7:
?-> set part type to0xa2only if socfpga selected and merge previously split
????patch
Changes in V6:
?-> Fix unneeded backslash
?-> Move SPL socfpgaKconfigdefault to selec tinarch/arm/Kconfig?-> Split out defconfig changes for affected boards into a separate patchDalon Westergreen (2):
? SPL: add support to boot from a partition type ? SPL: MoveSYS_MMCSD_RAW_MODE_U_BOOT_PARTITIONtoKconfig?arch/arm/Kconfig?????????????????|??1 + ?common/spl/Kconfig???????????????| 32 ++++++++++++++++++++++++++++++++ ?common/spl/spl_mmc.c?????????????| 27 ++++++++++++++++++--------- ?configs/db-88f6820-gp_defconfig??|??1 + ?configs/kc1_defconfig????????????|??2 ++ ?configs/sniper_defconfig?????????|??2 ++ ?disk/part_dos.c??????????????????|??1 + ?include/configs/db-88f6820-gp.h??|??1 - ?include/configs/kc1.h????????????|??2 -- ?include/configs/sniper.h?????????|??2 -- ?include/configs/socfpga_common.h |??2 -- ?include/part.h???????????????????|??3 +++Quoted 2 lines
?12 files changed, 60 insertions(+), 16 deletions(-)
Quoted 2 lines
Series
Acked-by Marek Vasut <[email protected]>
Thanks. ?I am still not 100% sure on the etiquette at this point. ?Is any further action required on my parT?
Dalon
Quoted 2 lines
v9 cover SPL: Add support to boot a partition type
Quoted 43 lines · Dalon Westergreen
Quoted 42 lines · Marek Vasut
Quoted 40 lines · Dalon Westergreen
This adds support for the spl to seach for and boot from an arbitrary partition type rather then a specific partition number.??When
USE_PARTITION_TYPEis enabled, spl will search for the partition type but fallback to the specified partition number.
?SYS_MMCSD_RAW_MODE_U_BOOT_PARTITIONis moved to aKconfigand header and defconfigs for the affected boards are updated.Changes in v9:
?- Missed moving use partition type to socfpga/Kconfig Changes in v8:
?-> Move partition type default toarch/arm/mach-socfpga/KconfigChanges in v7:
?-> set part type to0xa2only if socfpga selected and merge previously split
????patch
Changes in V6:
?-> Fix unneeded backslash
?-> Move SPL socfpgaKconfigdefault to selec tinarch/arm/Kconfig?-> Split out defconfig changes for affected boards into a separate patchDalon Westergreen (2):
? SPL: add support to boot from a partition type ? SPL: MoveSYS_MMCSD_RAW_MODE_U_BOOT_PARTITIONtoKconfig?arch/arm/Kconfig?????????????????|??1 + ?common/spl/Kconfig???????????????| 32 ++++++++++++++++++++++++++++++++ ?common/spl/spl_mmc.c?????????????| 27 ++++++++++++++++++--------- ?configs/db-88f6820-gp_defconfig??|??1 + ?configs/kc1_defconfig????????????|??2 ++ ?configs/sniper_defconfig?????????|??2 ++ ?disk/part_dos.c??????????????????|??1 + ?include/configs/db-88f6820-gp.h??|??1 - ?include/configs/kc1.h????????????|??2 -- ?include/configs/sniper.h?????????|??2 -- ?include/configs/socfpga_common.h |??2 -- ?include/part.h???????????????????|??3 +++?12 files changed, 60 insertions(+), 16 deletions(-)
Quoted 5 lines
Quoted 2 lines
Series
Acked-by Marek Vasut <[email protected]>Thanks. ?I am still not 100% sure on the etiquette at this point. ?Is any further action required on my parT?
No, I'll pick up one of the versions (I think v8 was more correct, but I'm not sure if it matters greatly) soon, thanks.
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20170213/12831ac9/attachment.sig>