jgauthier Posted 2 hours ago Posted 2 hours ago Build logs: https://paste.armbian.com/owesobikic I am coming from a yocto build for a dev board. I had to make u-boot patches, kernel config changes, and custom DTS tree. I'm trying to adapt this to Armbian, one step at a time. I started with building am image for sk-am62b.conf. I did not expect u-boot to boot from correctly. I was glad to see console messages, but expectedly, u-boot didn't continue. I made a new board config for this, duplicating sk-am62b.conf, but changing a critical line I made to get this to work previously. TIBOOT3_FILE="tiboot3-am62x-gp-evm.bin" Now, the boot process gets through u-boot and loads the Linux kernel. However, the kernel halts because it cannot find the root file system. Waiting for root device PARTUUID=26aa2b10-02... I confirmed the device in u-boot, and it seems to agree. Environment size: 5112/126972 bytes => echo load mmc ${bootpart} ${fdtaddr} ${bootdir}/dtb/${fdtfile} load mmc 1:2 0x88000000 /boot/dtb/ti/k3-am625-sk.dtb => run finduuid => echo part uuid ${boot} ${bootpart} uuid part uuid mmc 1:2 uuid => part uuid mmc 1:2 26aa2b10-02 I then modified my board config: BOOT_FDT_FILE="myir-6254-am62x/myir-6254-am62x.dts" But after booting, u-boot didn't acknowledge this: (From the u-boot environment) fdtfile=ti/k3-am625-sk.dtb So, I finished applying my u-boot patches that I made under the Yocto build. Some of these changes may be redundant: edited: am62x_evm_a53_defconfig + CONFIG_DEFAULT_FDT_FILE="myir-6254-am62x.dts" +CONFIG_TI_FDT_FOLDER_PATH="myir-6254-am62x" After booting into u-boot, now I see the change made: fdtfile=myir-6254-am62x.dts Then I see this: Running uenvcmd ... 14857759 bytes read in 983 ms (14.4 MiB/s) 36805120 bytes read in 1549 ms (22.7 MiB/s) Failed to load '/dtb/myir-6254-am62x.dts' libfdt fdt_check_header(): FDT_ERR_BADMAGIC No FDT memory address configured. Please configure the FDT address via "fdt addr <address>" command. Aborting! ERROR: Did not find a cmdline Flattened Device Tree Could not find a valid device tree Scanning for bootflows in all bootdevs This is not unexpected either - since the files are not the image yet. When u-boot can't find the device tree, it loads a grub interface. And when I 'e'dit that I see the line linux /Image root=PARTUUID=076c4a2a-02 rootwait rootfstype=ext4 and change it to: linux /Image root=/dev/mmcblk1p2 rootwait rootfstype=ext4 The kernel sees the rootfs, and proceeds to boot. If I change it to using the PARTUUID, as above, it also boots. If I manually place the DTB file where u-boot reported it is is looking (copied from my running yocto system) (in /dtb/) The kernel boots, without the grub interface. However, the same situation occurs, where it is waiting for the root device. Waiting for root device PARTUUID=26aa2b10-02... I have a few things going on here. I think in order to boot to an OS I need: 1) Solve why the kernel does not see the root partition when booting from u-boot (but does when I can get into the grub interface) 2) How to properly implement a custom device tree structure. I know there are overlays, but I'd prefer to just drop in my whole custom tree. Once I get there, I can proceed to implement some of the kernel modification I did within the yocto build environment, but this first. Thanks for the assistance. 0 Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.