* [U-Boot] [PATCH v4 0/2] SPL: Add support to boot a partition type
@ 2017-02-03 18:36 Dalon Westergreen
2017-02-03 18:36 ` [U-Boot] [PATCH v4 1/2] SPL: add support to boot from " Dalon Westergreen
` (2 more replies)
0 siblings, 3 replies; 10+ messages in thread
From: Dalon Westergreen @ 2017-02-03 18:36 UTC (permalink / raw)
To: u-boot
From: Dalon Westergreen <dalon.westergreen@intel.com>
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, splwill search for the partition type but
fallback to the specified partition number.
In addition to the above, move SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION to Kconfig.
Dalon Westergreen (2):
SPL: add support to boot from a partition type
SPL: Move SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION to Kconfig
common/spl/Kconfig | 33 +++++++++++++++++++++++++++++++++
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 +++
11 files changed, 60 insertions(+), 16 deletions(-)
--
2.7.4
^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH v4 1/2] SPL: add support to boot from a partition type
2017-02-03 18:36 [U-Boot] [PATCH v4 0/2] SPL: Add support to boot a partition type Dalon Westergreen
@ 2017-02-03 18:36 ` Dalon Westergreen
2017-02-09 10:04 ` Marek Vasut
2017-02-03 18:36 ` [U-Boot] [PATCH v4 2/2] SPL: Move SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION to Kconfig Dalon Westergreen
2017-02-09 0:15 ` [U-Boot] [PATCH v4 0/2] SPL: Add support to boot a partition type Dalon Westergreen
2 siblings, 1 reply; 10+ messages in thread
From: Dalon Westergreen @ 2017-02-03 18:36 UTC (permalink / raw)
To: u-boot
From: Dalon Westergreen <dalon.westergreen@intel.com>
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
Signed-off-by: Dalon Westergreen <dwesterg@gmail.com>
--
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
---
common/spl/Kconfig | 17 +++++++++++++++++
common/spl/spl_mmc.c | 15 +++++++++++++++
disk/part_dos.c | 1 +
include/part.h | 3 +++
4 files changed, 36 insertions(+)
diff --git a/common/spl/Kconfig b/common/spl/Kconfig
index b2ba492..37e002f 100644
--- a/common/spl/Kconfig
+++ b/common/spl/Kconfig
@@ -96,6 +96,23 @@ 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
+ default y if ARCH_SOCFPGA
+ 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
+ default 0xa2
+ 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
diff --git a/common/spl/spl_mmc.c b/common/spl/spl_mmc.c
index 0cd355c..f127aee 100644
--- a/common/spl/spl_mmc.c
+++ b/common/spl/spl_mmc.c
@@ -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
diff --git a/disk/part_dos.c b/disk/part_dos.c
index c77d881..7ede15e 100644
--- a/disk/part_dos.c
+++ b/disk/part_dos.c
@@ -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;
}
diff --git a/include/part.h b/include/part.h
index 9d0e20d..b6d1b33 100644
--- a/include/part.h
+++ b/include/part.h
@@ -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 */
--
2.7.4
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH v4 2/2] SPL: Move SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION to Kconfig
2017-02-03 18:36 [U-Boot] [PATCH v4 0/2] SPL: Add support to boot a partition type Dalon Westergreen
2017-02-03 18:36 ` [U-Boot] [PATCH v4 1/2] SPL: add support to boot from " Dalon Westergreen
@ 2017-02-03 18:36 ` Dalon Westergreen
2017-02-09 10:06 ` Marek Vasut
2017-02-09 0:15 ` [U-Boot] [PATCH v4 0/2] SPL: Add support to boot a partition type Dalon Westergreen
2 siblings, 1 reply; 10+ messages in thread
From: Dalon Westergreen @ 2017-02-03 18:36 UTC (permalink / raw)
To: u-boot
From: Dalon Westergreen <dalon.westergreen@intel.com>
Added SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION and
SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION to Kconfig.
set to default y for socfpga platforms, and add appropriate
configurations for kc1, snipper, and db-88f6820-gp boards.
Signed-off-by: Dalon Westergreen <dwesterg@gmail.com>
--
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
fix use_sector
---
common/spl/Kconfig | 18 +++++++++++++++++-
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 --
9 files changed, 25 insertions(+), 17 deletions(-)
diff --git a/common/spl/Kconfig b/common/spl/Kconfig
index 37e002f..120381a 100644
--- a/common/spl/Kconfig
+++ b/common/spl/Kconfig
@@ -96,9 +96,25 @@ 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
+ default y if ARCH_SOCFPGA
+ 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
+ depends on SPL && DOS_PARTITION && \
+ SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
default y if ARCH_SOCFPGA
help
Use partition type for specifying U-Boot partition on MMC/SD in
diff --git a/common/spl/spl_mmc.c b/common/spl/spl_mmc.c
index f127aee..956695b 100644
--- a/common/spl/spl_mmc.c
+++ b/common/spl/spl_mmc.c
@@ -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);
diff --git a/configs/db-88f6820-gp_defconfig b/configs/db-88f6820-gp_defconfig
index 1347550..fec5e56 100644
--- a/configs/db-88f6820-gp_defconfig
+++ b/configs/db-88f6820-gp_defconfig
@@ -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
diff --git a/configs/kc1_defconfig b/configs/kc1_defconfig
index d9895d7..ffaaec3 100644
--- a/configs/kc1_defconfig
+++ b/configs/kc1_defconfig
@@ -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
diff --git a/configs/sniper_defconfig b/configs/sniper_defconfig
index fbdbc0c..9dd737f 100644
--- a/configs/sniper_defconfig
+++ b/configs/sniper_defconfig
@@ -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
diff --git a/include/configs/db-88f6820-gp.h b/include/configs/db-88f6820-gp.h
index 1fdeedd..cc2bfbe 100644
--- a/include/configs/db-88f6820-gp.h
+++ b/include/configs/db-88f6820-gp.h
@@ -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
diff --git a/include/configs/kc1.h b/include/configs/kc1.h
index 33b6a98..fed70f9 100644
--- a/include/configs/kc1.h
+++ b/include/configs/kc1.h
@@ -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
*/
diff --git a/include/configs/sniper.h b/include/configs/sniper.h
index 4f8a9f8..06519fb 100644
--- a/include/configs/sniper.h
+++ b/include/configs/sniper.h
@@ -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"
diff --git a/include/configs/socfpga_common.h b/include/configs/socfpga_common.h
index 8bbe3c5..a5725cb 100644
--- a/include/configs/socfpga_common.h
+++ b/include/configs/socfpga_common.h
@@ -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
--
2.7.4
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH v4 0/2] SPL: Add support to boot a partition type
2017-02-03 18:36 [U-Boot] [PATCH v4 0/2] SPL: Add support to boot a partition type Dalon Westergreen
2017-02-03 18:36 ` [U-Boot] [PATCH v4 1/2] SPL: add support to boot from " Dalon Westergreen
2017-02-03 18:36 ` [U-Boot] [PATCH v4 2/2] SPL: Move SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION to Kconfig Dalon Westergreen
@ 2017-02-09 0:15 ` Dalon Westergreen
2017-02-09 10:06 ` Marek Vasut
2 siblings, 1 reply; 10+ messages in thread
From: Dalon Westergreen @ 2017-02-09 0:15 UTC (permalink / raw)
To: u-boot
On Fri, 2017-02-03 at 10:36 -0800, Dalon Westergreen wrote:
> From: Dalon Westergreen <dalon.westergreen@intel.com>
>
> 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, splwill search for the partition type but
> fallback to the specified partition number.
>
> In addition to the above, move SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION to Kconfig.
>
> Dalon Westergreen (2):
> ? SPL: add support to boot from a partition type
> ? SPL: Move SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION to Kconfig
>
> ?common/spl/Kconfig???????????????| 33 +++++++++++++++++++++++++++++++++
> ?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 +++
> ?11 files changed, 60 insertions(+), 16 deletions(-)
Marek, I was wondering if you have had a chance to look this over?
--dalon
^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH v4 1/2] SPL: add support to boot from a partition type
2017-02-03 18:36 ` [U-Boot] [PATCH v4 1/2] SPL: add support to boot from " Dalon Westergreen
@ 2017-02-09 10:04 ` Marek Vasut
0 siblings, 0 replies; 10+ messages in thread
From: Marek Vasut @ 2017-02-09 10:04 UTC (permalink / raw)
To: u-boot
On 02/03/2017 07:36 PM, Dalon Westergreen wrote:
> From: Dalon Westergreen <dalon.westergreen@intel.com>
>
> 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
>
> Signed-off-by: Dalon Westergreen <dwesterg@gmail.com>
>
> --
> 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
> ---
> common/spl/Kconfig | 17 +++++++++++++++++
> common/spl/spl_mmc.c | 15 +++++++++++++++
> disk/part_dos.c | 1 +
> include/part.h | 3 +++
> 4 files changed, 36 insertions(+)
>
> diff --git a/common/spl/Kconfig b/common/spl/Kconfig
> index b2ba492..37e002f 100644
> --- a/common/spl/Kconfig
> +++ b/common/spl/Kconfig
> @@ -96,6 +96,23 @@ 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
> + default y if ARCH_SOCFPGA
> + 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
> + default 0xa2
> + 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
> diff --git a/common/spl/spl_mmc.c b/common/spl/spl_mmc.c
> index 0cd355c..f127aee 100644
> --- a/common/spl/spl_mmc.c
> +++ b/common/spl/spl_mmc.c
> @@ -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 == \
The backslash here is not needed.
> + 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
> diff --git a/disk/part_dos.c b/disk/part_dos.c
> index c77d881..7ede15e 100644
> --- a/disk/part_dos.c
> +++ b/disk/part_dos.c
> @@ -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;
> }
>
> diff --git a/include/part.h b/include/part.h
> index 9d0e20d..b6d1b33 100644
> --- a/include/part.h
> +++ b/include/part.h
> @@ -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 */
>
--
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH v4 2/2] SPL: Move SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION to Kconfig
2017-02-03 18:36 ` [U-Boot] [PATCH v4 2/2] SPL: Move SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION to Kconfig Dalon Westergreen
@ 2017-02-09 10:06 ` Marek Vasut
0 siblings, 0 replies; 10+ messages in thread
From: Marek Vasut @ 2017-02-09 10:06 UTC (permalink / raw)
To: u-boot
On 02/03/2017 07:36 PM, Dalon Westergreen wrote:
> From: Dalon Westergreen <dalon.westergreen@intel.com>
>
> Added SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION and
> SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION to Kconfig.
>
> set to default y for socfpga platforms, and add appropriate
> configurations for kc1, snipper, and db-88f6820-gp boards.
>
> Signed-off-by: Dalon Westergreen <dwesterg@gmail.com>
>
> --
> 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
>
> fix use_sector
> ---
> common/spl/Kconfig | 18 +++++++++++++++++-
> 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 --
> 9 files changed, 25 insertions(+), 17 deletions(-)
>
> diff --git a/common/spl/Kconfig b/common/spl/Kconfig
> index 37e002f..120381a 100644
> --- a/common/spl/Kconfig
> +++ b/common/spl/Kconfig
> @@ -96,9 +96,25 @@ 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
> + default y if ARCH_SOCFPGA
This is IMO wrong, it should be selected by ARCH_SOCFPGA in
arch/arm/Kconfig .
> + 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
> + depends on SPL && DOS_PARTITION && \
> + SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
> default y if ARCH_SOCFPGA
> help
> Use partition type for specifying U-Boot partition on MMC/SD in
> diff --git a/common/spl/spl_mmc.c b/common/spl/spl_mmc.c
> index f127aee..956695b 100644
> --- a/common/spl/spl_mmc.c
> +++ b/common/spl/spl_mmc.c
> @@ -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);
The defconfig stuff should be in a separate patch IMO.
> diff --git a/configs/db-88f6820-gp_defconfig b/configs/db-88f6820-gp_defconfig
> index 1347550..fec5e56 100644
> --- a/configs/db-88f6820-gp_defconfig
> +++ b/configs/db-88f6820-gp_defconfig
> @@ -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
> diff --git a/configs/kc1_defconfig b/configs/kc1_defconfig
> index d9895d7..ffaaec3 100644
> --- a/configs/kc1_defconfig
> +++ b/configs/kc1_defconfig
> @@ -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
> diff --git a/configs/sniper_defconfig b/configs/sniper_defconfig
> index fbdbc0c..9dd737f 100644
> --- a/configs/sniper_defconfig
> +++ b/configs/sniper_defconfig
> @@ -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
> diff --git a/include/configs/db-88f6820-gp.h b/include/configs/db-88f6820-gp.h
> index 1fdeedd..cc2bfbe 100644
> --- a/include/configs/db-88f6820-gp.h
> +++ b/include/configs/db-88f6820-gp.h
> @@ -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
> diff --git a/include/configs/kc1.h b/include/configs/kc1.h
> index 33b6a98..fed70f9 100644
> --- a/include/configs/kc1.h
> +++ b/include/configs/kc1.h
> @@ -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
> */
> diff --git a/include/configs/sniper.h b/include/configs/sniper.h
> index 4f8a9f8..06519fb 100644
> --- a/include/configs/sniper.h
> +++ b/include/configs/sniper.h
> @@ -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"
>
> diff --git a/include/configs/socfpga_common.h b/include/configs/socfpga_common.h
> index 8bbe3c5..a5725cb 100644
> --- a/include/configs/socfpga_common.h
> +++ b/include/configs/socfpga_common.h
> @@ -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
>
>
--
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH v4 0/2] SPL: Add support to boot a partition type
2017-02-09 0:15 ` [U-Boot] [PATCH v4 0/2] SPL: Add support to boot a partition type Dalon Westergreen
@ 2017-02-09 10:06 ` Marek Vasut
2017-02-09 14:28 ` Dalon Westergreen
0 siblings, 1 reply; 10+ messages in thread
From: Marek Vasut @ 2017-02-09 10:06 UTC (permalink / raw)
To: u-boot
On 02/09/2017 01:15 AM, Dalon Westergreen wrote:
> On Fri, 2017-02-03 at 10:36 -0800, Dalon Westergreen wrote:
>> From: Dalon Westergreen <dalon.westergreen@intel.com>
>>
>> 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, splwill search for the partition type but
>> fallback to the specified partition number.
>>
>> In addition to the above, move SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION to Kconfig.
>>
>> Dalon Westergreen (2):
>> SPL: add support to boot from a partition type
>> SPL: Move SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION to Kconfig
>>
>> common/spl/Kconfig | 33 +++++++++++++++++++++++++++++++++
>> 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 +++
>> 11 files changed, 60 insertions(+), 16 deletions(-)
>
> Marek, I was wondering if you have had a chance to look this over?
Looks generally OK, just a few minor nits.
--
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH v4 0/2] SPL: Add support to boot a partition type
2017-02-09 10:06 ` Marek Vasut
@ 2017-02-09 14:28 ` Dalon Westergreen
2017-02-09 15:02 ` Marek Vasut
0 siblings, 1 reply; 10+ messages in thread
From: Dalon Westergreen @ 2017-02-09 14:28 UTC (permalink / raw)
To: u-boot
On Thu, 2017-02-09 at 11:06 +0100, Marek Vasut wrote:
> On 02/09/2017 01:15 AM, Dalon Westergreen wrote:
> >
> > On Fri, 2017-02-03 at 10:36 -0800, Dalon Westergreen wrote:
> > >
> > > From: Dalon Westergreen <dalon.westergreen@intel.com>
> > >
> > > 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, splwill search for the partition type but
> > > fallback to the specified partition number.
> > >
> > > In addition to the above, move SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION to
> > > Kconfig.
> > >
> > > Dalon Westergreen (2):
> > > ? SPL: add support to boot from a partition type
> > > ? SPL: Move SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION to Kconfig
> > >
> > > ?common/spl/Kconfig???????????????| 33 +++++++++++++++++++++++++++++++++
> > > ?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 +++
> > > ?11 files changed, 60 insertions(+), 16 deletions(-)
> >
> > Marek, I was wondering if you have had a chance to look this over?
>
> Looks generally OK, just a few minor nits.
thanks, i will clean them up.
>
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH v4 0/2] SPL: Add support to boot a partition type
2017-02-09 14:28 ` Dalon Westergreen
@ 2017-02-09 15:02 ` Marek Vasut
0 siblings, 0 replies; 10+ messages in thread
From: Marek Vasut @ 2017-02-09 15:02 UTC (permalink / raw)
To: u-boot
On 02/09/2017 03:28 PM, Dalon Westergreen wrote:
> On Thu, 2017-02-09 at 11:06 +0100, Marek Vasut wrote:
>> On 02/09/2017 01:15 AM, Dalon Westergreen wrote:
>>>
>>> On Fri, 2017-02-03 at 10:36 -0800, Dalon Westergreen wrote:
>>>>
>>>> From: Dalon Westergreen <dalon.westergreen@intel.com>
>>>>
>>>> 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, splwill search for the partition type but
>>>> fallback to the specified partition number.
>>>>
>>>> In addition to the above, move SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION to
>>>> Kconfig.
>>>>
>>>> Dalon Westergreen (2):
>>>> SPL: add support to boot from a partition type
>>>> SPL: Move SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION to Kconfig
>>>>
>>>> common/spl/Kconfig | 33 +++++++++++++++++++++++++++++++++
>>>> 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 +++
>>>> 11 files changed, 60 insertions(+), 16 deletions(-)
>>>
>>> Marek, I was wondering if you have had a chance to look this over?
>>
>> Looks generally OK, just a few minor nits.
>
> thanks, i will clean them up.
Thanks!
--
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH v4 1/2] SPL: add support to boot from a partition type
@ 2017-02-01 16:45 Dalon Westergreen
0 siblings, 0 replies; 10+ messages in thread
From: Dalon Westergreen @ 2017-02-01 16:45 UTC (permalink / raw)
To: u-boot
From: Dalon Westergreen <dalon.westergreen@intel.com>
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
Signed-off-by: Dalon Westergreen <dwesterg@gmail.com>
--
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
---
common/spl/Kconfig | 17 +++++++++++++++++
common/spl/spl_mmc.c | 15 +++++++++++++++
disk/part_dos.c | 1 +
include/part.h | 3 +++
4 files changed, 36 insertions(+)
diff --git a/common/spl/Kconfig b/common/spl/Kconfig
index b2ba492..37e002f 100644
--- a/common/spl/Kconfig
+++ b/common/spl/Kconfig
@@ -96,6 +96,23 @@ 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
+ default y if ARCH_SOCFPGA
+ 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
+ default 0xa2
+ 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
diff --git a/common/spl/spl_mmc.c b/common/spl/spl_mmc.c
index 0cd355c..8119fc1 100644
--- a/common/spl/spl_mmc.c
+++ b/common/spl/spl_mmc.c
@@ -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
diff --git a/disk/part_dos.c b/disk/part_dos.c
index c77d881..7ede15e 100644
--- a/disk/part_dos.c
+++ b/disk/part_dos.c
@@ -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;
}
diff --git a/include/part.h b/include/part.h
index 9d0e20d..b6d1b33 100644
--- a/include/part.h
+++ b/include/part.h
@@ -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 */
--
2.7.4
^ permalink raw reply related [flat|nested] 10+ messages in thread
end of thread, other threads:[~2017-02-09 15:02 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-02-03 18:36 [U-Boot] [PATCH v4 0/2] SPL: Add support to boot a partition type Dalon Westergreen
2017-02-03 18:36 ` [U-Boot] [PATCH v4 1/2] SPL: add support to boot from " Dalon Westergreen
2017-02-09 10:04 ` Marek Vasut
2017-02-03 18:36 ` [U-Boot] [PATCH v4 2/2] SPL: Move SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION to Kconfig Dalon Westergreen
2017-02-09 10:06 ` Marek Vasut
2017-02-09 0:15 ` [U-Boot] [PATCH v4 0/2] SPL: Add support to boot a partition type Dalon Westergreen
2017-02-09 10:06 ` Marek Vasut
2017-02-09 14:28 ` Dalon Westergreen
2017-02-09 15:02 ` Marek Vasut
-- strict thread matches above, loose matches on Subject: below --
2017-02-01 16:45 [U-Boot] [PATCH v4 1/2] SPL: add support to boot from " Dalon Westergreen
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.