-
Notifications
You must be signed in to change notification settings - Fork 217
driver: add RKUSBMaskromDriver bootstrap driver #1721
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
Open
Kwiboo
wants to merge
4
commits into
labgrid-project:master
Choose a base branch
from
Kwiboo:rkusbmaskrom
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
4 commits
Select commit
Hold shift + click to select a range
eccca93
driver: add RKUSBMaskromDriver bootstrap driver
Kwiboo 8401742
RKUSBMaskromDriver: add support for using vendor loader images
Kwiboo 13e2cf7
RKUSBMaskromDriver: add support for using vendor idblock v2 images
Kwiboo 77dff7d
RKUSBMaskromDriver: add support for using vendor idblock v1 images
Kwiboo File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
question: is this compatible with Barebox?
Barebox seems to be generating only one binary which contains both "files". I think it'd make sense to support Barebox file format as well, which likely differs from U-Boot's (currently two separate files IIRC) or the binary generated by Rockchip's boot_merger?
@a3f any opinion on that maybe?
EDIT: I see that the next patch adds the implementation for reading the file from
boot_merger
, so I guess if we have a unique way of identifying Barebox's implementation that would work too. Still, wondering if we shouldn't simply use snagboot and implement stuff there if necessary?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.
Barebox uses the IDBlock v2 format, i.e. same format that
mkimage
produce forTPL
andSPL
in U-Boot for RK35xx.Will add an implementation for extracting images from the IDBlock v1 and v2 formats, thanks!
This format is supported with the second commit, one special thing that
boot_merger
does differently forRK35xx
is that it adds an IDBlock v2 header for the 471 and 472 files referenced in the rkboot .ini-files.However, this extra header does not seem to be required on all RK35xx SoCs I have tested.
Also the BootROM seem to use a much slower crc16 implementation, so validating a huge blob for i.e. U-Boot RAM boot can take several seconds.
Will send an updated Rockchip U-Boot RAM-boot series that take advantage of FIT compression along with relocation the FIT to the 2 MiB offset to help speed up RAM-boot.
Feel free to implement and use a
snagboot
driver, I will be using this for my personal lab ;-)Uh oh!
There was an error while loading. Please reload this page.
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.
I have now added a new commit with support for decoding the IDBlock v2 image format (both unsigned and signed) in addition to the loader image format.
With that added we should be able to use the Barebox output image or
u-boot-rockchip.bin
to at least boot into SPL on newer Rockchip SoCs.Will run some more tests and add one more commit to add support for the legacy IDBlock image format to make this fully featured.
This will need to be tested some more on e.g. RK3576 where more than two idblock images is typically used to e.g. fixup booting from SD-card.
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.
I have now pushed one more commit with support for decoding the legacy IDBlock image format, the boot image format used for Rockchip SoCs prior to the RK35xx line.
With this I can now use something like the following
labgrid-client
command on my Rockchip boards:And as expected, without a proper FIT available or SPL DFU working, U-Boot SPL will fail trying to bootstrap a plain U-Boot
u-boot-rockchip.bin
image: