-
-
Notifications
You must be signed in to change notification settings - Fork 14.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
u-boot: 2023.07.02 -> 2023.10 #258701
u-boot: 2023.07.02 -> 2023.10 #258701
Conversation
U-boot seems to have a dtc and libfdt implementation that works better with their build system. Use that instead. Builds fail when specifying `DTC=<our dtc>`.
There does not exist a file to install at $BUILD/u-boot-spl.bin, but there is a file named $BUILD/u-boot-with-spl.bin, which is most likely the file that a user wants to boot their clearfog device with.
@ofborg build pkgsCross.aarch64-multiplatform.ubootRaspberryPi4_64bit |
@ofborg build ubootTools |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(No changes requested)
All devices should be tried to be built (pkgsCross on their arch) before merging.
It is fine to assume built == valid
, given the track record of U-Boot.
The mkimage tool requires openssl for the host platform.
I quickly built all immediately build-able (with a pkgsCross package set available) u-boot derivations and gathered the results here: https://gist.github.com/jmbaur/466df3f4200914f906c05994d3f38674. All of them that fail also fail on master for the same reason. Luckily the failure is the same, so the fix should be easy. I'm happy to try and track down the SCP binary for these boards and include that in this PR, I'm assuming this means they will need to be marked unfree. I'm also happy keeping them broken and fixing them in a separate PR, just let me know. I also fixed cross-compilation of ubootTools. |
This PR fixes the SCP build failures: #252111 |
These are the attributes for the builds with question marks:
|
Thanks @lopsided98! The rest of them build successfully (gist updated), and that PR you linked would cover the rest that are failing. |
Successfully booted:
Failed:
|
When looking for Tow-Boot, I've observed that all Raspberry Pi boards were moved to |
I thought I had a saved environment on this RPi4, which might have broken things with bootstd, but this wasn't the problem. The real problem is that, by default, U-Boot has
This appears to be incorrect, and the fix is probably to set |
Another odd RPi4 bug: the 2 second boot delay takes closer to 10 seconds |
I added a patch to address this, let me know if you think this is appropriate or not. Unfortunately I do not have an rpi to try and reproduce this, but I'll check out the behavior on qemu with bootstd. Edit: behavior on qemu with two virtio drives looks fine, |
I submitted the patch upstream; we'll see what they think: https://patchwork.ozlabs.org/project/uboot/patch/[email protected]/ |
2f48bfc
to
4d2e0c3
Compare
Upstream suggested trying this patch, which also fixes the RPi4 issue: https://patchwork.ozlabs.org/project/uboot/patch/[email protected]/ |
This patch enables the raspberry pi (and really any board using standard boot without BOOTSTD_FULL) to boot properly when `boot_targets` only specifies the uclass of the device to boot from (e.g. "mmc" rather than "mmc0").
I included the patch here: https://patchwork.ozlabs.org/project/uboot/patch/[email protected]/raw |
I missed this one and created #261775 which does bunch of other things as well. Except for
@jmbaur do you mind if I pick the 3 other patches to my branch and we continue there? |
@sorki that sounds good to me! |
closed in favor of #261775 |
Much appreciated @jmbaur! |
Description of changes
Among other changes, this release moves more boards to use the new environment format where a simple text file is used under ./board rather than using CFG_EXTRA_ENV_SETTINGS. This includes the default environment for the raspberry pi, hence the change of patch.
Something I haven't been able to track down is the need for removing the DTC make flag. U-boot has a version of this (along with libfdt) in their tree that builds just fine, so I propose we use that instead.
I've tested these changes building various boards defined in nixpkgs (cross compiling from x86_64-linux) with good success. I'm not sure of the expectation that every u-boot board defined in nixpkgs build successfully, (as I saw one with an incorrect
filesToInstall
), so I have not tested all boards. Please test if these changes break your board!Things done
sandbox = true
set innix.conf
? (See Nix manual)nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD"
. Note: all changes have to be committed, also see nixpkgs-review usage./result/bin/
)