From: "Jernej Škrabec" <jernej.skrabec@siol.net>
To: u-boot@lists.denx.de
Subject: [linux-sunxi] [PATCH 07/17] sunxi: support loading with SPL > 32KB
Date: Mon, 11 Jan 2021 19:17:47 +0100 [thread overview]
Message-ID: <1755235.v7npiR6l92@kista> (raw)
In-Reply-To: <ab1c65f0-2fec-5982-04f8-fb3b41e5c6aa@sholland.org>
Dne ponedeljek, 04. januar 2021 ob 03:02:03 CET je Samuel Holland napisal(a):
> On 1/3/21 3:26 AM, Jernej Skrabec wrote:
> > From: Andre Przywara <andre.przywara@arm.com>
> >
> > H616 supports and needs bigger SPL than 32 KiB, mostly due to big DRAM
> > driver and need for PMIC configuration, which pull several drivers which
> > are not needed otherwise.
> >
> > Signed-off-by: Andre Przywara <andre.przywara@arm.com>
> > Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
> > ---
> > arch/arm/mach-sunxi/board.c | 12 ++++++++++++
> > 1 file changed, 12 insertions(+)
> >
> > diff --git a/arch/arm/mach-sunxi/board.c b/arch/arm/mach-sunxi/board.c
> > index 7a8b303f233c..296efd615769 100644
> > --- a/arch/arm/mach-sunxi/board.c
> > +++ b/arch/arm/mach-sunxi/board.c
> > @@ -277,6 +277,14 @@ uint32_t sunxi_get_boot_device(void)
> > }
> >
> > #ifdef CONFIG_SPL_BUILD
> > +static u32 sunxi_get_spl_size(void)
> > +{
> > + if (!is_boot0_magic(SPL_ADDR + 4)) /* eGON.BT0 */
> > + return 32768;
> In the context of the suggestion below, this case could return 0.
>
> > +
> > + return readl(SPL_ADDR + 0x10);
> > +}
> > +
> > /*
> > * The eGON SPL image can be located at 8KB or at 128KB into an SD card
or
> > * an eMMC device. The boot source has bit 4 set in the latter case.
> > @@ -286,6 +294,7 @@ uint32_t sunxi_get_boot_device(void)
> > unsigned long spl_mmc_get_uboot_raw_sector(struct mmc *mmc)
>
> As a side note, the prototype for this function was changed in commit
> cf0082559698 ("spl: mmc: Fix spl_mmc_get_uboot_raw_sector()
> implementation"), but nobody noticed since it is not in a header.
>
> > {
> > unsigned long sector = CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR;
> > + u32 spl_size = sunxi_get_spl_size();
> >
> > switch (sunxi_get_boot_source()) {
> > case SUNXI_BOOTED_FROM_MMC0_HIGH:
> > @@ -294,6 +303,9 @@ unsigned long spl_mmc_get_uboot_raw_sector(struct mmc
*mmc)
> > break;
> > }
> >
> > + if (spl_size > 32768)
> > + sector += (spl_size - 32768) / 512;
> > +
>
> What I would suggest doing instead of this is setting
> SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x40,
> SYS_MMCSD_RAW_MODE_U_BOOT_DATA_PART_OFFSET=0x10, and then before the
> switch statement doing:
>
> sector = max(CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR,
> spl_size / 512);
>
> Not only does this get rid of the magic 32768 constant (which is
> meaningless on new platforms), but it also works cleanly for eMMC boot
> partitions (where there's no 0x10 sector offset).
Thanks for the suggestion, this is indeed much cleaner.
Best regards,
Jernej
>
> > return sector;
> > }
> >
> >
>
> Cheers,
> Samuel
>
next prev parent reply other threads:[~2021-01-11 18:17 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-01-03 9:26 [PATCH 00/17] sunxi: Introduce H616 support Jernej Skrabec
2021-01-03 9:26 ` [PATCH 01/17] sunxi: Add support for AXP305 PMIC Jernej Skrabec
2021-01-05 22:36 ` Jaehoon Chung
2021-01-06 10:11 ` André Przywara
2021-01-06 23:33 ` Jaehoon Chung
2021-01-07 9:49 ` André Przywara
2021-01-11 0:02 ` André Przywara
2021-01-11 1:32 ` Jaehoon Chung
2021-01-11 19:48 ` Jernej Škrabec
2021-01-03 9:26 ` [PATCH 02/17] sunxi: Introduce common symbol for H6 like SoCs Jernej Skrabec
2021-01-03 23:43 ` [linux-sunxi] " Samuel Holland
2021-01-04 10:35 ` André Przywara
2021-01-04 18:28 ` Jernej Škrabec
2021-01-11 0:13 ` André Przywara
2021-01-03 9:26 ` [PATCH 03/17] mmc: sunxi: Replace H6 ifdefs with H6 gen macro Jernej Skrabec
2021-01-11 0:13 ` André Przywara
2021-01-03 9:26 ` [PATCH 04/17] i2c: mvtwsi: sunxi: update macro Jernej Skrabec
2021-01-03 23:55 ` [linux-sunxi] " Samuel Holland
2021-01-04 5:57 ` Heiko Schocher
2021-01-03 9:26 ` [PATCH 05/17] sunxi: prcm: Add memory map for H6 like SoCs Jernej Skrabec
2021-01-04 0:03 ` [linux-sunxi] " Samuel Holland
2021-01-11 16:13 ` Jernej Škrabec
2021-01-03 9:26 ` [PATCH 06/17] sunxi: Add support for I2C on " Jernej Skrabec
2021-01-04 0:04 ` [linux-sunxi] " Samuel Holland
2021-01-03 9:26 ` [PATCH 07/17] sunxi: support loading with SPL > 32KB Jernej Skrabec
2021-01-04 2:02 ` [linux-sunxi] " Samuel Holland
2021-01-11 18:17 ` Jernej Škrabec [this message]
2021-01-03 9:26 ` [PATCH 08/17] sunxi: introduce support for H616 clocks Jernej Skrabec
2021-01-04 2:28 ` [linux-sunxi] " Samuel Holland
2021-01-03 9:26 ` [PATCH 09/17] sunxi: add support for H616 uart0 Jernej Skrabec
2021-01-04 2:30 ` [linux-sunxi] " Samuel Holland
2021-01-03 9:26 ` [PATCH 10/17] sunxi: add support for R_I2C on H616 Jernej Skrabec
2021-01-04 2:33 ` [linux-sunxi] " Samuel Holland
2021-01-04 18:36 ` Jernej Škrabec
2021-01-03 9:26 ` [PATCH 11/17] sunxi: Add H616 DRAM support Jernej Skrabec
2021-01-04 2:39 ` [linux-sunxi] " Samuel Holland
2021-01-04 18:39 ` Jernej Škrabec
2021-01-05 3:14 ` Samuel Holland
2021-01-03 9:26 ` [PATCH 12/17] sunxi: Add support for H616 SoC Jernej Skrabec
2021-01-04 2:47 ` [linux-sunxi] " Samuel Holland
2021-01-04 18:43 ` Jernej Škrabec
2021-01-03 9:26 ` [PATCH 13/17] net: sun8i-emac: Determine pinmux based on SoC, not EMAC type Jernej Skrabec
2021-01-03 9:26 ` [PATCH 14/17] arm: sunxi: add initial H616 DTSI and headers Jernej Skrabec
2021-01-03 9:26 ` [PATCH 15/17] sunxi: gpio: introduce compatible for H616 Jernej Skrabec
2021-01-11 0:36 ` André Przywara
2021-01-03 9:26 ` [PATCH 16/17] clk: sunxi: Add support for H616 clocks Jernej Skrabec
2021-01-11 0:44 ` André Przywara
2021-01-03 9:26 ` [PATCH 17/17] sunxi: Add support for OrangePi Zero2 Jernej Skrabec
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=1755235.v7npiR6l92@kista \
--to=jernej.skrabec@siol.net \
--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.