The upstream kernel reorganized the 32-bit arch/arm device-tree directory
structure to separate out the device-trees by manufacturer (similar to the
organization of the arch/arm64 device-trees). Update the references to
32-bit arm device-trees to match.
This patch can now be applied since all pre-6.5-rc1 kernels have been
removed from oe-core.
NOTE: trying to build a post-6.5-rc1 32-bit kernel with this patch applied
will fail
Signed-off-by: Trevor Woerner <twoerner@gmail.com>
Signed-off-by: Stephen Chen <stephen@radxa.com>
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>
Create a common conf/machine/include/tinker.inc and re-spin
- conf/machine/tinker-board.conf
- conf/machine-tinker-board-s.conf
to just contain the differences.
Signed-off-by: Trevor Woerner <twoerner@gmail.com>
Currently machine configs define the partition layout for each machine
by setting the WKS_FILE variable. However, there are situations where it
may be needed to use a different, non default layout. To simplify such
configurations we will set WKS_FILE using ?= so that it can be easily
overriden in local configurations.
Signed-off-by: Sergey Bostandzhyan <jin@mediatomb.cc>
Asus Tinker Board-S has emmc on mmcblk1, this is also the default
configuration when building the image. If you need an image for booting
from the sd card set RK_BOOT_DEVICE to mmcblk0
Signed-off-by: Sergey Bostandzhyan <jin@mediatomb.cc>