summaryrefslogtreecommitdiff
path: root/doc/develop
AgeCommit message (Collapse)Author
2024-10-15bootstd: Add command to enable setting of bootmeth specific propertiesMartyn Welch
We have previously added logic to allow a "fallback" option to be specified in the extlinux configuration. Provide a command that allows us to set this as the preferred default option when booting. Combined with the bootcount functionality, this allows the "altbootcmd" to provide a means of falling back to a previously known good state after a failed update. For example, if "bootcmd" is set to: bootflow scan -lb We would set "altbootcmd" to: bootmeth set extlinux fallback 1; bootflow scan -lb Causing the boot process to boot from the fallback option. Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Martyn Welch <[email protected]>
2024-10-11Merge patch series "Tidy up use of 'SPL' and CONFIG_SPL_BUILD"Tom Rini
Simon Glass <[email protected]> says: When the SPL build-phase was first created it was designed to solve a particular problem (the need to init SDRAM so that U-Boot proper could be loaded). It has since expanded to become an important part of U-Boot, with three phases now present: TPL, VPL and SPL Due to this history, the term 'SPL' is used to mean both a particular phase (the one before U-Boot proper) and all the non-proper phases. This has become confusing. For a similar reason CONFIG_SPL_BUILD is set to 'y' for all 'SPL' phases, not just SPL. So code which can only be compiled for actual SPL, for example, must use something like this: #if defined(CONFIG_SPL_BUILD) && !defined(CONFIG_TPL_BUILD) In Makefiles we have similar issues. SPL_ has been used as a variable which expands to either SPL_ or nothing, to chose between options like CONFIG_BLK and CONFIG_SPL_BLK. When TPL appeared, a new SPL_TPL variable was created which expanded to 'SPL_', 'TPL_' or nothing. Later it was updated to support 'VPL_' as well. This series starts a change in terminology and usage to resolve the above issues: - The word 'xPL' is used instead of 'SPL' to mean a non-proper build - A new CONFIG_XPL_BUILD define indicates that the current build is an 'xPL' build - The existing CONFIG_SPL_BUILD is changed to mean SPL; it is not now defined for TPL and VPL phases - The existing SPL_ Makefile variable is renamed to SPL_ - The existing SPL_TPL Makefile variable is renamed to PHASE_ It should be noted that xpl_phase() can generally be used instead of the above CONFIGs without a code-space or run-time penalty. This series does not attempt to convert all of U-Boot to use this new terminology but it makes a start. In particular, renaming spl.h and common/spl seems like a bridge too far at this point. The series is fully bisectable. It has also been checked to ensure there are no code-size changes on any commit.
2024-10-11global: Rename SPL_ to XPL_Simon Glass
Use XPL_ as the symbol to indicate an SPL build. This means that SPL_ is no-longer set. Signed-off-by: Simon Glass <[email protected]>
2024-10-11global: Use CONFIG_XPL_BUILD instead of CONFIG_SPL_BUILDSimon Glass
Complete this rename for all directories outside arch/ board/ drivers/ and include/ Use the new symbol to refer to any 'SPL' build, including TPL and VPL Signed-off-by: Simon Glass <[email protected]>
2024-10-11doc: Update init docs for the xPL changesSimon Glass
Update the documentation here to cover the meaning of xPL Signed-off-by: Simon Glass <[email protected]>
2024-10-11doc: Move init-related things out of READMESimon Glass
Move this section to rst, changing it just enough so that it builds. Signed-off-by: Simon Glass <[email protected]>
2024-10-11doc: Update SPL docs for the xPL changesSimon Glass
Update the various references to SPL in this document. Make sure to refer to 'phases' instead of 'stages', which is not a U-Boot term. Fix a few U-boot typos and try to improve grammar a little while we are here. Signed-off-by: Simon Glass <[email protected]>
2024-10-11log: global: Rename warn_non_spl()Simon Glass
This should now refer to xPL rather than SPL, so update it throughout the tree. Signed-off-by: Simon Glass <[email protected]>
2024-10-11xpl: Rename spl_phase() to xpl_phase()Simon Glass
Rename this function to indicate that it refers to any xPL phase. Signed-off-by: Simon Glass <[email protected]>
2024-10-09efi_loader: Rename and move CMD_BOOTEFI_HELLO_COMPILESimon Glass
This is not actually a command so the name is confusing. Use BOOTEFI_HELLO_COMPILE instead. Put it in the efi_loader directory with the other such config options. The link rule (for $(obj)/%_efi.so) in scripts/Makefile.lib handles pulling in efi_crt0.o and efi_reloc.o so drop the 'extra' rules. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]>
2024-10-09doc: Move the generic memory-documentation to doc/Simon Glass
Move this section of the README into doc/ with some minor updates to mention SPL and user lower-case hex. Signed-off-by: Simon Glass <[email protected]> Acked-by: Heinrich Schuchardt <[email protected]>
2024-10-07Merge branch 'next'Tom Rini
2024-10-07Prepare v2024.10v2024.10Tom Rini
Signed-off-by: Tom Rini <[email protected]>
2024-09-30Merge tag 'v2024.10-rc6' into nextTom Rini
Prepare v2024.10-rc6
2024-09-30Prepare v2024.10-rc6v2024.10-rc6Tom Rini
Signed-off-by: Tom Rini <[email protected]>
2024-09-16Merge tag 'v2024.10-rc5' into nextTom Rini
Prepare v2024.10-rc5
2024-09-16doc/develop/sending_patches.rst: Reword where our git tree is slightlyTom Rini
We shouldn't have had the link to our git tree be contained within "``" as that meant that it did not work as a link, so remove those. And rather than make this a link plus text, keep this as a link within the text for overall clarity. Suggested-by: Quentin Schulz <[email protected]> Reviewed-by: Neil Armstrong <[email protected]> Reviewed-by: Quentin Schulz <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2024-09-12doc: Update rST to not reference the old wikiTom Rini
In two places we had references to the old wiki pages instead of links to the relevant part of our documentation. Update (and slightly reword) these spots. Signed-off-by: Tom Rini <[email protected]>
2024-09-12doc/develop/sending_patches.rst: Clarify when to use which branchTom Rini
The previous wording on the paragraph about what branch to use when submitting patches did not reflect how / when the next branch is currently used. Reword this to note that master should be used for bug and regression fixes, always, and that next should be used once it opens, with -rc2. Reported-by: Jerome Forissier <[email protected]> Signed-off-by: Tom Rini <[email protected]> Reviewed-by: Quentin Schulz <[email protected]> Acked-by: Jerome Forissier <[email protected]> Reviewed-by: Heinrich Schuchardt <[email protected]>
2024-09-12doc: uefi: document dynamic UUID generationCaleb Connolly
Document how platforms can generate GUIDs at runtime rather than maintaining a list of UUIDs per-board. Reviewed-by: Ilias Apalodimas <[email protected]> Signed-off-by: Caleb Connolly <[email protected]>
2024-09-02Merge tag 'v2024.10-rc4' into nextTom Rini
Prepare v2024.10-rc4
2024-09-02Prepare v2024.10-rc4v2024.10-rc4Tom Rini
Signed-off-by: Tom Rini <[email protected]>
2024-08-26Merge patch series "Tidy up console recording in tests"Tom Rini
Simon Glass <[email protected]> says: This series started as a small fix for checking for an empty line, but in the process several other problems were found and fixed: - fix tests which use console recording but don't set the flag - drop unnecessary resetting of the console in tests - drop unnecessary blank line before MMC output - update the docs a little - fix buildman test failure on newer Pythons - a few other minor things This series also renames the confusing flag names, so that they are easier to remember - just a UTF_ (unit-test flags) prefix.
2024-08-26doc: Add a few notes about how to use console checkingSimon Glass
Tidy up the existing docs in line with current conventions. Signed-off-by: Simon Glass <[email protected]>
2024-08-26test: Rename UTF_CONSOLE_REC to UTF_CONSOLESimon Glass
The _REC suffix doesn't add much. Really what we want to know is whether the test uses the console, so rename this flag. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]>
2024-08-26test: Drop the blank line before test macrosSimon Glass
Most tests don't have this. It helps to keep the test declaration clearly associated with the function it relates to, rather than the next one in the file. Remove the extra blank line and mention this in the docs. Signed-off-by: Simon Glass <[email protected]>
2024-08-26test: Rename unit-test flagsSimon Glass
The UT_TESTF_ macros read as 'unit test test flags' which is not right. Rename to UTF ('unit test flags'). This has the benefit of being shorter, which helps keep UNIT_TEST() declarations on a single line. Give the enum a name and reference it from the UNIT_TEST() macros while we are here. Signed-off-by: Simon Glass <[email protected]>
2024-08-26doc: Add some guidelines about global dataSimon Glass
Update the documentation to provide a bit more information about how to use global data. Signed-off-by: Simon Glass <[email protected]>
2024-08-26doc: Move generic-board documentation into rstSimon Glass
This information is useful for people looking at how U-Boot has changed over the years and the design decisions which led to it. Move it into doc/ in an 'historical' section. Signed-off-by: Simon Glass <[email protected]>
2024-08-19Prepare v2024.10-rc3v2024.10-rc3Tom Rini
Signed-off-by: Tom Rini <[email protected]>
2024-08-05Prepare v2024.10-rc2v2024.10-rc2Tom Rini
Signed-off-by: Tom Rini <[email protected]>
2024-07-31tools: Add script to update git subtree projectsRaymond Mao
Recently we are introducing multiple git subtree projects and it is the right time to have a universal script to update various subtrees and replace the dts/update-dts-subtree.sh. update-subtree.sh is a wrapper of git subtree commands. Usage: From U-Boot top directory, run $ ./tools/update-subtree.sh pull <subtree-name> <release-tag> for pulling a tag from the upstream. Or run $ ./tools/update-subtree.sh pick <subtree-name> <commit-id> for cherry-pick a commit from the upstream. Currently <subtree-name> supports dts, mbedtls and lwip. Signed-off-by: Raymond Mao <[email protected]>
2024-07-31doc: Add a description for bootmeth_androidMattijs Korpershoek
Add initial documentation for the Android bootmeth. Signed-off-by: Mattijs Korpershoek <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2024-07-29binman: fit: Allow running fdtgrep on devicetree blobsSimon Glass
When using FIT to load firmware builds for multiple models, the FIT must include a common binary along with a number of devicetree blobs, one for each model. This is the same mechanism as is used for loading an OS. However, SPL builds do not normally use the full devicetree, but instead a cut-down version which various nodes and properties removed. Add a new fit,fdt-phase property to allow binman to produce these devicetree blobs. Signed-off-by: Simon Glass <[email protected]>
2024-07-29qconfig: Allow searching for CONFIG valuesSimon Glass
Add basic support for searching for matching of non-matching values. Signed-off-by: Simon Glass <[email protected]> Fixes: https://source.denx.de/u-boot/custodians/u-boot-dm/-/issues/20
2024-07-22Prepare v2024.10-rc1v2024.10-rc1Tom Rini
Signed-off-by: Tom Rini <[email protected]>
2024-07-19doc: Describe the bootstd settingsSimon Glass
The bootstd node provides some configuration properties. Add these to the documentation. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Quentin Schulz <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]>
2024-07-19doc: Add a link to VBE from the bootstd docsSimon Glass
Link to this page to make it easier to find the VBE docs. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Heinrich Schuchardt <[email protected]> Reviewed-by: Quentin Schulz <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]>
2024-07-19doc: Add a description for bootmeth_scriptSimon Glass
Add documentation for the script bootmeth. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Quentin Schulz <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]>
2024-07-19doc: Add a description for bootmeth_sandboxSimon Glass
Add documentation for the sandbox bootmeth. Fix up the compatible string to drop the 'extlinux' part, which is not relevant to this bootmeth. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Quentin Schulz <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]>
2024-07-19doc: Add a description for bootmeth_crosSimon Glass
Add documentation for the cros bootmeth. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Quentin Schulz <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]>
2024-07-19doc: Add a description for bootmeth_qfwSimon Glass
Add documentation for the qfw bootmeth. Fix up the compatible string to drop the 'extlinux' part, which is not relevant to this bootmeth. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Quentin Schulz <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]>
2024-07-19doc: Add a description for bootmeth_pxeSimon Glass
Add documentation for the pxe bootmeth. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Quentin Schulz <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]>
2024-07-19doc: Add a description for bootmeth_extlinuxSimon Glass
Add documentation for the extlinux bootmeth. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Quentin Schulz <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]>
2024-07-19doc: Mention automatic binding of bootmethsSimon Glass
Add a note about how bootmeth drivers are instantiated. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]> Suggested-by: Heinrich Schuchardt <[email protected]>
2024-07-19doc: Move bootstd into its own directorySimon Glass
Before adding more files, move the bootstd docs into a new directory, with an index. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Quentin Schulz <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]>
2024-07-18Merge patch series "bootstd: Add Android support"Tom Rini
Mattijs Korpershoek <[email protected]> says: Android boot flow is a bit different than a regular Linux distro. Android relies on multiple partitions in order to boot. A typical boot flow would be: 1. Parse the Bootloader Control Block (BCB, misc partition) 2. If BCB requested bootonce-bootloader, start fastboot and wait. 3. If BCB requested recovery or normal android, run the following: a. Get slot (A/B) from BCB b. Run AVB (Android Verified Boot) on boot partitions c. Load boot and vendor_boot partitions d. Load device-tree, ramdisk and boot The AOSP documentation has more details at [1], [2], [3] This has been implemented via complex boot scripts such as [4]. However, these boot script are neither very maintainable nor generic. Moreover, DISTRO_DEFAULTS is being deprecated [5]. Add a generic Android bootflow implementation for bootstd. For this initial version, only boot image v4 is supported. This has been tested on sandbox using: $ ./test/py/test.py --bd sandbox --build -k test_ut This has also been tested on the AM62X SK EVM using TI's Android SDK[6] To test on TI board, the following (WIP) patch is needed as well: https://gitlab.baylibre.com/baylibre/ti/ti-u-boot/-/commit/84cceb912bccd7cdd7f9dd69bca0e5d987a1fd04 [1] https://source.android.com/docs/core/architecture/bootloader [2] https://source.android.com/docs/core/architecture/partitions [3] https://source.android.com/docs/core/architecture/partitions/generic-boot [4] https://source.denx.de/u-boot/u-boot/-/blob/master/include/configs/meson64_android.h [5] https://lore.kernel.org/r/all/[email protected]/ [6] https://software-dl.ti.com/processor-sdk-android/esd/AM62X/09_02_00/docs/android/Overview.html
2024-07-18bootstd: Add a bootmeth for AndroidMattijs Korpershoek
Android boot flow is a bit different than a regular Linux distro. Android relies on multiple partitions in order to boot. A typical boot flow would be: 1. Parse the Bootloader Control Block (BCB, misc partition) 2. If BCB requested bootonce-bootloader, start fastboot and wait. 3. If BCB requested recovery or normal android, run the following: 3.a. Get slot (A/B) from BCB 3.b. Run AVB (Android Verified Boot) on boot partitions 3.c. Load boot and vendor_boot partitions 3.d. Load device-tree, ramdisk and boot The AOSP documentation has more details at [1], [2], [3] This has been implemented via complex boot scripts such as [4]. However, these boot script are neither very maintainable nor generic. Moreover, DISTRO_DEFAULTS is being deprecated [5]. Add a generic Android bootflow implementation for bootstd. For this initial version, only boot image v4 is supported. [1] https://source.android.com/docs/core/architecture/bootloader [2] https://source.android.com/docs/core/architecture/partitions [3] https://source.android.com/docs/core/architecture/partitions/generic-boot [4] https://source.denx.de/u-boot/u-boot/-/blob/master/include/configs/meson64_android.h [5] https://lore.kernel.org/r/all/[email protected]/ Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Julien Masson <[email protected]> Tested-by: Guillaume La Roque <[email protected]> Signed-off-by: Mattijs Korpershoek <[email protected]>
2024-07-14scripts/Makefile.lib: EFI: Use capsule CRT instead of ESL fileJonathan Humphreys
The EFI Capsule ESL file (EFI Signature List File) used for authentication is a binary generated from the EFI Capsule public key certificate. Instead of including it in the source repo, automatically generate it from the certificate file during the build process. Currently, sandbox is the only device using this, so removed its ESL file and set the (new) CONFIG_EFI_CAPSULE_CRT_FILE config to point to its public key certificate. Signed-off-by: Jonathan Humphreys <[email protected]>
2024-07-01Merge branch 'next'Tom Rini