diff mbox

[U-Boot,1/5] arm: mvebu: Add SPL SDIO/MMC boot support

Message ID 1437384040-16244-1-git-send-email-sr@denx.de
State Accepted
Delegated to: Pantelis Antoniou
Headers show

Commit Message

Stefan Roese July 20, 2015, 9:20 a.m. UTC
This patch adds basic SDIO/MMC booting support to MVEBU SoC's. Since
I don't know of a way to test the boot-device upon runtime, this patch
hardcodes the spl_boot_device instead.

Tested on Marvell DB-88F6820-GP board.

Signed-off-by: Stefan Roese <sr@denx.de>
Cc: Luka Perkov <luka.perkov@sartura.hr>
Cc: Dirk Eibach <eibach@gdsys.de>
---
 arch/arm/mach-mvebu/spl.c | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

Comments

Albert ARIBAUD July 21, 2015, 7:24 a.m. UTC | #1
Hello Stefan,

On Mon, 20 Jul 2015 11:20:36 +0200, Stefan Roese <sr@denx.de> wrote:
> This patch adds basic SDIO/MMC booting support to MVEBU SoC's. Since
> I don't know of a way to test the boot-device upon runtime, this patch
> hardcodes the spl_boot_device instead.

Not sure about 6820, but for 6710 this info can be traced back from the
functional spec [1] to the device data sheet [2] as the sample-at-reset
(SAR) data, which (for the 6710 at least) is an embedded XLS sheet [3].
Maybe you can find the same info for 6820?

For 6710:

[1] "88F6710, 88F6707, and 88F6W11 ARMADA ® 370 SoC Functional
    Specifications – Unrestricted"
    Doc. No. MV-S107979-U0, Rev. B

[2] "88F6710, 88F6707, and 88F6W11 ARMADA ® 370 SoC Hardware
    Specifications"
    Doc. No. MV-S107978-00, Rev. G

[3] "Sample at Reset Table" and "Boot Source List" tabs in 
    88F6707_Pin_information.xls

Amicalement,
Stefan Roese July 21, 2015, 8:04 a.m. UTC | #2
Hi Albert,

On 21.07.2015 09:24, Albert ARIBAUD wrote:
> On Mon, 20 Jul 2015 11:20:36 +0200, Stefan Roese <sr@denx.de> wrote:
>> This patch adds basic SDIO/MMC booting support to MVEBU SoC's. Since
>> I don't know of a way to test the boot-device upon runtime, this patch
>> hardcodes the spl_boot_device instead.
>
> Not sure about 6820, but for 6710 this info can be traced back from the
> functional spec [1] to the device data sheet [2] as the sample-at-reset
> (SAR) data, which (for the 6710 at least) is an embedded XLS sheet [3].
> Maybe you can find the same info for 6820?
>
> For 6710:
>
> [1] "88F6710, 88F6707, and 88F6W11 ARMADA ® 370 SoC Functional
>      Specifications – Unrestricted"
>      Doc. No. MV-S107979-U0, Rev. B
>
> [2] "88F6710, 88F6707, and 88F6W11 ARMADA ® 370 SoC Hardware
>      Specifications"
>      Doc. No. MV-S107978-00, Rev. G
>
> [3] "Sample at Reset Table" and "Boot Source List" tabs in
>      88F6707_Pin_information.xls

Thanks Albert. Yes, this seems possible for AXP and A38x. I currently 
don't have access to the SD-card booting A38x platform though. So I 
would like to get this patch accepted now. And will send a patch for 
runtime boot-device detection later. Or perhaps somebody else will jump 
in... :)

Thanks,
Stefan
diff mbox

Patch

diff --git a/arch/arm/mach-mvebu/spl.c b/arch/arm/mach-mvebu/spl.c
index e65f6ca..af61ded 100644
--- a/arch/arm/mach-mvebu/spl.c
+++ b/arch/arm/mach-mvebu/spl.c
@@ -14,10 +14,21 @@  DECLARE_GLOBAL_DATA_PTR;
 
 u32 spl_boot_device(void)
 {
-	/* Right now only booting via SPI NOR flash is supported */
+#if defined(CONFIG_SPL_SPI_FLASH_SUPPORT)
 	return BOOT_DEVICE_SPI;
+#endif
+#if defined(CONFIG_SPL_MMC_SUPPORT)
+	return BOOT_DEVICE_MMC1;
+#endif
 }
 
+#ifdef CONFIG_SPL_MMC_SUPPORT
+u32 spl_boot_mode(void)
+{
+	return MMCSD_MODE_RAW;
+}
+#endif
+
 void board_init_f(ulong dummy)
 {
 	/* Set global data pointer */