Skip to contentSkip to conversation

Fix booting from eMMC on BeagleBone Black

PATCH New Jussi Laako 2 participants 3 messages Feb 29, 2016 – May 12, 2016

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Fix booting from eMMC on BeagleBone Black

Hello,

By default, on BeagleBone, u-boot only looks for rootfs UUID from first mmc device and thus only from microSD. Thus booting from eMMC fails in kernel panic because command line has empty root partition UUID "root=PARTUUID=".

This patch makes it first look in the same place as before and if the lookup fails (no microSD inserted) it next looks up for the rootfs UUID on the second mmc device which is the on-board eMMC. I placed the bbappend and patch on meta-yocto-bsp layer because the BeagleBone support in general is located there.

Best regards,

- Jussi Laako

From f54171b120b1fa47a592bdb8f3fbac2350e1757e Mon Sep 17 00:00:00 2001
From: Jussi Laako <[email protected]>
Date: Mon, 29 Feb 2016 16:12:11 +0200
Subject: [PATCH] Search for rootfs partitions on both SD and eMMC

On BeagleBone Black, first attempt to find rootfs from microSD and then from eMMC if not available.

Fixes #9176
---
 ...r-bootable-partitions-on-both-SD-and-eMMC.patch | 38 ++++++++++++++++++++++
 .../recipes-bsp/u-boot/u-boot_2016.01.bbappend     |  3 ++
 2 files changed, 41 insertions(+)
 create mode 100644 meta-yocto-bsp/recipes-bsp/u-boot/u-boot/0001-Search-for-bootable-partitions-on-both-SD-and-eMMC.patch
 create mode 100644 meta-yocto-bsp/recipes-bsp/u-boot/u-boot_2016.01.bbappend
meta-yocto-bsp/recipes-bsp/u-boot/u-boot/0001-Search-for-bootable-partitions-on-both-SD-and-eMMC.patch new file +38 -0
new file mode 100644
index 0000000..729dddf
@@ -0,0 +1,38 @@
+From 86cc560ff9a6578326532e277d987e24661e5f04 Mon Sep 17 00:00:00 2001
+From: Jussi Laako <[email protected]>
+Date: Fri, 26 Feb 2016 14:58:32 +0200
+Subject: [PATCH] Search for bootable partitions on both SD and eMMC
+
+On BeagleBone Black, first attempt to boot from microSD and then from
+eMMC if not available.
+
+Signed-off-by: Jussi Laako <[email protected]>
+---
+ include/configs/ti_armv7_common.h | 11 ++++++++++-
+ 1 file changed, 10 insertions(+), 1 deletion(-)
+
+diff --git a/include/configs/ti_armv7_common.h b/include/configs/ti_armv7_common.h
+index 199612b..ece87ab 100644
+--- a/include/configs/ti_armv7_common.h
++++ b/include/configs/ti_armv7_common.h
+@@ -60,7 +60,16 @@
+ #define DEFAULT_MMC_TI_ARGS \
+ 	"mmcdev=0\0" \
+ 	"mmcrootfstype=ext4 rootwait\0" \
+-	"finduuid=part uuid mmc 0:2 uuid\0" \
++	"findsduuid=part uuid mmc 0:2 sduuid\0" \
++	"findemmcuuid=part uuid mmc 1:2 emmcuuid\0" \
++	"finduuid=if run findsduuid; then "\
++		"echo \"Boot from microSD\"; "\
++		"setenv uuid ${sduuid}; " \
++	"else " \
++		"run findemmcuuid; " \
++		"echo \"Boot from eMMC\"; " \
++		"setenv uuid ${emmcuuid}; " \
++	"fi;\0" \
+ 	"args_mmc=run finduuid;setenv bootargs console=${console} " \
+ 		"${optargs} " \
+ 		"root=PARTUUID=${uuid} rw " \
+-- 
+2.7.0
+
meta-yocto-bsp/recipes-bsp/u-boot/u-boot_2016.01.bbappend new file +3 -0
new file mode 100644
index 0000000..01c8e68
@@ -0,0 +1,3 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+
+SRC_URI_append = " file://0001-Search-for-bootable-partitions-on-both-SD-and-eMMC.patch"
Signature · 1 line
2.7.0
#1 lore raw

PATCH 1/1 Fix booting from eMMC on BeagleBone Black

Hello,

By default, on BeagleBone, u-boot only looks for rootfs UUID from first mmc device and thus only from microSD. Thus booting from eMMC fails in kernel panic because command line has empty root partition UUID "root=PARTUUID=".

This patch makes it first look in the same place as before and if the lookup fails (no microSD inserted) it next looks up for the rootfs UUID on the second mmc device which is the on-board eMMC. I placed the bbappend and patch on meta-yocto-bsp layer because the BeagleBone support in general is located there.

Best regards,

- Jussi Laako

From f54171b120b1fa47a592bdb8f3fbac2350e1757e Mon Sep 17 00:00:00 2001
From: Jussi Laako <[email protected]>
Date: Mon, 29 Feb 2016 16:12:11 +0200
Subject: [PATCH] Search for rootfs partitions on both SD and eMMC

On BeagleBone Black, first attempt to find rootfs from microSD and then from eMMC if not available.

Fixes #9176
---
 ...r-bootable-partitions-on-both-SD-and-eMMC.patch | 38 ++++++++++++++++++++++
 .../recipes-bsp/u-boot/u-boot_2016.01.bbappend     |  3 ++
 2 files changed, 41 insertions(+)
 create mode 100644 meta-yocto-bsp/recipes-bsp/u-boot/u-boot/0001-Search-for-bootable-partitions-on-both-SD-and-eMMC.patch
 create mode 100644 meta-yocto-bsp/recipes-bsp/u-boot/u-boot_2016.01.bbappend
meta-yocto-bsp/recipes-bsp/u-boot/u-boot/0001-Search-for-bootable-partitions-on-both-SD-and-eMMC.patch new file +38 -0
new file mode 100644
index 0000000..729dddf
@@ -0,0 +1,38 @@
+From 86cc560ff9a6578326532e277d987e24661e5f04 Mon Sep 17 00:00:00 2001
+From: Jussi Laako <[email protected]>
+Date: Fri, 26 Feb 2016 14:58:32 +0200
+Subject: [PATCH] Search for bootable partitions on both SD and eMMC
+
+On BeagleBone Black, first attempt to boot from microSD and then from
+eMMC if not available.
+
+Signed-off-by: Jussi Laako <[email protected]>
+---
+ include/configs/ti_armv7_common.h | 11 ++++++++++-
+ 1 file changed, 10 insertions(+), 1 deletion(-)
+
+diff --git a/include/configs/ti_armv7_common.h b/include/configs/ti_armv7_common.h
+index 199612b..ece87ab 100644
+--- a/include/configs/ti_armv7_common.h
++++ b/include/configs/ti_armv7_common.h
+@@ -60,7 +60,16 @@
+ #define DEFAULT_MMC_TI_ARGS \
+ 	"mmcdev=0\0" \
+ 	"mmcrootfstype=ext4 rootwait\0" \
+-	"finduuid=part uuid mmc 0:2 uuid\0" \
++	"findsduuid=part uuid mmc 0:2 sduuid\0" \
++	"findemmcuuid=part uuid mmc 1:2 emmcuuid\0" \
++	"finduuid=if run findsduuid; then "\
++		"echo \"Boot from microSD\"; "\
++		"setenv uuid ${sduuid}; " \
++	"else " \
++		"run findemmcuuid; " \
++		"echo \"Boot from eMMC\"; " \
++		"setenv uuid ${emmcuuid}; " \
++	"fi;\0" \
+ 	"args_mmc=run finduuid;setenv bootargs console=${console} " \
+ 		"${optargs} " \
+ 		"root=PARTUUID=${uuid} rw " \
+-- 
+2.7.0
+
meta-yocto-bsp/recipes-bsp/u-boot/u-boot_2016.01.bbappend new file +3 -0
new file mode 100644
index 0000000..01c8e68
@@ -0,0 +1,3 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+
+SRC_URI_append = " file://0001-Search-for-bootable-partitions-on-both-SD-and-eMMC.patch"
Signature · 1 line
2.7.0
#2 lore raw

Richard,

Not sure why/how this got missed, it is missing an Upstream-Status in the patch file, I would recommend that Jussi attempt to upstream it.

Jussi, can you please add Upstream-Status to this patch.

Thanks
   Sau!

Quoted 27 lines · Jussi Laako

Hello,

By default, on BeagleBone, u-boot only looks for rootfs UUID from first
mmc device and thus only from microSD. Thus booting from eMMC fails in
kernel panic because command line has empty root partition UUID "root=PARTUUID=".

This patch makes it first look in the same place as before and if the lookup fails (no microSD inserted) it next looks up for the rootfs UUID
on the second mmc device which is the on-board eMMC. I placed the bbappend and patch on meta-yocto-bsp layer because the BeagleBone support in general is located there.

Best regards,

- Jussi Laako

--
_______________________________________________
poky mailing list
[email protected]
https://lists.yoctoproject.org/listinfo/poky