Go to file
Trevor Woerner 0aa5e60054 use uuid instead of hard-coding root device
Recent upstream kernel changes have made the mmc probing order unpredictable.
Therefore, boards with both an emmc and sdmmc interface aren't guaranteed to
boot with a hard-coded root device selected.

For example, on the rock64, with linux-yocto 5.10.y, using the uSD card (i.e.
the sdmmc interface) about 50% of the time the boot would succeed, and roughly
50% of the time it wouldn't:

	...
	[    0.612233] Waiting for root device /dev/mmcblk1p7...
	[    0.634551] mmc_host mmc1: Bus speed (slot 0) = 300000Hz (slot req 300000Hz, actual 300000HZ div = 0)
	[    0.639064] mmc_host mmc0: Bus speed (slot 0) = 50000000Hz (slot req 50000000Hz, actual 50000000HZ di)
	[    0.640007] mmc0: new high speed SDXC card at address 5048
	[    0.641176] mmcblk0: mmc0:5048 SD64G 58.0 GiB
	[    0.647610] random: fast init done
	[    0.648279] GPT:Primary header thinks Alt. header is not at the end of the disk.
	[    0.648941] GPT:376479 != 121634815
	[    0.649252] GPT:Alternate GPT header not at the end of the disk.
	[    0.649796] GPT:376479 != 121634815
	[    0.650106] GPT: Use GNU Parted to correct GPT errors.
	[    0.650598]  mmcblk0: p1 p2 p3 p4 p5 p6 p7

NOTE the discrepancy between the kernel waiting for device /dev/mmcblk1p7,
which comes from the hard-coded kernel cmdline, and the kernel probing putting
the sdmmc on mmcblk0.

With linux-yocto 5.13.y on the rock64 using the uSD card the board would never
boot, the sdmmc always appears on mmcblk0.

Instead of simply changing the hard-coded root device (i.e. from mmcblk0 to
mmcblk1) switch to using partition UUIDs instead. Hard-coding the boot device
would work with 5.13.y but would fail 50% of the time with 5.10.y; who knows
what other kernels will do?

In any case, switching to UUIDs works regardless of board, kernel, or
available mmc interfaces.

Boot tested on:
- rock64
- nanopi-m4-2gb
- tinker-board
- rock-pi-e
- rock-pi-4b

Signed-off-by: Trevor Woerner <twoerner@gmail.com>
2021-09-20 12:52:03 -04:00
classes rockchip-gpt-img: fix for new override syntax 2021-08-10 15:31:42 -04:00
conf use uuid instead of hard-coding root device 2021-09-20 12:52:03 -04:00
dynamic-layers/qt5-layer/recipes-qt/qt5 switch to the new bitbake OVERRIDE syntax 2021-08-04 21:59:14 -04:00
recipes-bsp switch to the new bitbake OVERRIDE syntax 2021-08-04 21:59:14 -04:00
recipes-graphics/mesa rock64: enable lima with rock64 2021-09-17 11:10:31 -04:00
recipes-kernel/linux linux-yocto_5.4: Drop bbappend 2021-08-19 10:14:35 -04:00
wic use uuid instead of hard-coding root device 2021-09-20 12:52:03 -04:00
COPYING.MIT Initial commit 2014-04-04 16:25:45 +02:00
README rock64: add machine 2021-06-17 22:29:22 -04:00

OpenEmbedded BSP layer for Rockchip boards

About:

The purpose of this layer is to provide OpenEmbedded BSP support for
Rockchip-based devices using upstream sources as much as possible.

Dependencies:

URI: git://git.openembedded.org/openembedded-core
layers: meta
branch: matched branches (e.g. master, sumo, ...)

URI: git://git.yoctoproject.org/meta-arm
layers: meta-arm, meta-arm-toolchain
branch: matched branches (e.g. master, sumo, ...)

Status of supported boards:

builds and boots wic image:
	nanopi-m4
	nanopi-m4-2gb
	rock-pi-e
	rock-pi-4a
	rock-pi-4b
	rock-pi-4c
	rock64
	tinker-board
	tinker-board-s
	vyasa-rk3288
	firefly-rk3288
builds:
	marsboard-rk3066
	radxarock
	rock2-square

Maintenance:

Please send pull requests, patches, comments, or questions to the
yocto mailing list (yocto@lists.yoctoproject.org) CCing the maintainer

When sending patches, please make sure the email subject line includes
"[meta-rockchip][PATCH]" and follow the community's patch submission
guidelines, as described in:
	https://www.openembedded.org/wiki/Commit_Patch_Message_Guidelines
	https://www.openembedded.org/wiki/How_to_submit_a_patch_to_OpenEmbedded

For example, to send your most recent commit (i.e. just one patch),
please use something like:
	git format-patch -M --subject-prefix="meta-rockchip][PATCH" HEAD^
	git send-email --to yocto@lists.yoctoproject.org --cc twoerner@gmail.com <your patch file>

Maintainer:

Trevor Woerner <twoerner@gmail.com>

Brief History:

2014 April
	- originally started by Julien Chauveau
	- Romain Perier joins
2014 Sep
	- Julien leaves
2015 Aug
	- Trevor Woerner joins
2017 Mar
	- developers from Rockchip fork this layer see:
		https://github.com/rockchip-linux/meta-rockchip.git
		http://rockchip.wikidot.com/yocto-user-guide
2017 May
	- Romain leaves
2018 Feb
	- Rockchip developers abandon their fork for buildroot
		http://opensource.rock-chips.com/wiki_Buildroot