From: Dalon Westergreen <dwesterg@gmail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v8 1/2] SPL: add support to boot from a partition type
Date: Fri, 10 Feb 2017 16:04:48 -0800 [thread overview]
Message-ID: <1486771488.6338.182.camel@gmail.com> (raw)
In-Reply-To: <618e627b-89ad-ded9-ecf6-1db07392b499@denx.de>
On Sat, 2017-02-11 at 00:47 +0100, Marek Vasut wrote:
> On 02/10/2017 11:58 PM, Dalon Westergreen wrote:
> >
> > 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 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 |??3 +++
> > ?common/spl/Kconfig????????????| 16 ++++++++++++++++
> > ?common/spl/spl_mmc.c??????????| 15 +++++++++++++++
> > ?disk/part_dos.c???????????????|??1 +
> > ?include/part.h????????????????|??3 +++
> > ?5 files changed, 38 insertions(+)
> >
> > diff --git a/arch/arm/mach-socfpga/Kconfig b/arch/arm/mach-socfpga/Kconfig
> > index df9e8d4..6fd724e 100644
> > --- a/arch/arm/mach-socfpga/Kconfig
> > +++ b/arch/arm/mach-socfpga/Kconfig
> > @@ -27,6 +27,9 @@ config SPL_SPI_SUPPORT
> > ?config SPL_WATCHDOG_SUPPORT
> > ? default y
> > ?
> > +config SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION_TYPE
> > + default 0xa2
> > +
> > ?config TARGET_SOCFPGA_ARRIA5
> > ? bool
> > ? select TARGET_SOCFPGA_GEN5
> > diff --git a/common/spl/Kconfig b/common/spl/Kconfig
> > index cf714c2..3cdd200 100644
> > --- a/common/spl/Kconfig
> > +++ b/common/spl/Kconfig
> > @@ -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
> > + default y if ARCH_SOCFPGA
>
> SoCFPGA should select this, ARCH_SOCFPGA has nothing to do in common
> stuff :)
>
Odd, i did test it and it worked in hw
> >
> > + 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
> > diff --git a/common/spl/spl_mmc.c b/common/spl/spl_mmc.c
> > index 0cd355c..fb51fd5 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 */
> >
>
>
next prev parent reply other threads:[~2017-02-11 0:04 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-10 22:58 [U-Boot] [PATCH v7 0/2] SPL: Add support to boot a partition type Dalon Westergreen
2017-02-10 22:58 ` [U-Boot] [PATCH v8 1/2] SPL: add support to boot from " Dalon Westergreen
2017-02-10 23:47 ` Marek Vasut
2017-02-11 0:04 ` Dalon Westergreen [this message]
2017-02-11 3:25 ` Tom Rini
2017-02-10 22:58 ` [U-Boot] [PATCH v8 2/2] SPL: Move SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION to Kconfig Dalon Westergreen
2017-02-11 3:25 ` Tom Rini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1486771488.6338.182.camel@gmail.com \
--to=dwesterg@gmail.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.