summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-01-03arm: dts: k3-am654: remove duplicate main_uart0Bryan Brattlof
With the Linux and U-Boot board dtb files unified, we now have a duplicate main_uart0 node. Remove it Tested-by: Tom Rini <[email protected]> Signed-off-by: Bryan Brattlof <[email protected]> Reviewed-by: Nishanth Menon <[email protected]>
2024-01-03arm: dts: k3-am654: remove duplicate mcu_uart0 nodeBryan Brattlof
With the Linux and U-Boot board dtb files unified we now have a duplicate mcu_uart0 node. Remove it Tested-by: Tom Rini <[email protected]> Signed-off-by: Bryan Brattlof <[email protected]> Reviewed-by: Nishanth Menon <[email protected]>
2024-01-03arm: dts: k3-am654: add needed regs to udmap nodesBryan Brattlof
Ethernet is one of a few IPs in U-Boot that depend on DMA to operate. However there are a few missing registers ranges in the udmap nodes need to properly setup DMA for the am65x. A fix has been added to the Linux kernel[0] to add these ranges however they have not made it to a Linux tag. To keep DMA operational until the next DT sync from Linux, add these ranges to the *-u-boot.dtsi with a note for our future selves. [0] https://lore.kernel.org/r/[email protected] Tested-by: Tom Rini <[email protected]> Signed-off-by: Bryan Brattlof <[email protected]> Reviewed-by: Nishanth Menon <[email protected]>
2024-01-03arm: dts: k3-am654: remove duplicate mcu_udmapBryan Brattlof
With the Linux and U-Boot board dtb files unified, we now have a duplicate mcu_udmap node. Remove it Tested-by: Tom Rini <[email protected]> Signed-off-by: Bryan Brattlof <[email protected]> Reviewed-by: Nishanth Menon <[email protected]>
2024-01-03arm: dts: k3-am654: remove duplicate mcu_ringaccBryan Brattlof
With the Linux and U-Boot board dtb files unified, we now have a duplicate mcu_ringacc node. Remove it Tested-by: Tom Rini <[email protected]> Signed-off-by: Bryan Brattlof <[email protected]> Reviewed-by: Nishanth Menon <[email protected]>
2024-01-03arm: dts: k3-am654: remove duplicate timerBryan Brattlof
timer1 is really just the mcu_timer0 node redefined for the WKUP SPL. Remove the timer1 and replace it with the mcu_timer0 from the Linux device tree we imported into U-Boot. Tested-by: Tom Rini <[email protected]> Signed-off-by: Bryan Brattlof <[email protected]> Reviewed-by: Nishanth Menon <[email protected]>
2024-01-03arm: dts: k3-am654: remove duplicate wkup_uart0Bryan Brattlof
With the Linux and U-Boot board files unified, we now have a duplicate wkup_uart0 node. Remove it Tested-by: Tom Rini <[email protected]> Signed-off-by: Bryan Brattlof <[email protected]> Reviewed-by: Nishanth Menon <[email protected]>
2024-01-03arm: dts: k3-am654: remove duplicate vtt_supplyBryan Brattlof
With the Linux and U-Boot board dtb files unified we now have a duplicate vtt_supply node. Remove it Tested-by: Tom Rini <[email protected]> Signed-off-by: Bryan Brattlof <[email protected]> Reviewed-by: Nishanth Menon <[email protected]>
2024-01-03arm: dts: k3-am654: include a53 board dtb for r5 buildBryan Brattlof
To make things as organized as possible, start from the Linux board dtbs and apply all properties needed for U-Boot in our *-u-boot.dtsi file for the MAIN SPL and U-Boot builds. We can then include these files for the WKUP SPL build making further edits to the needed properties and nodes for the WKUP SPL bootloader's view of the am65x. Tested-by: Tom Rini <[email protected]> Signed-off-by: Bryan Brattlof <[email protected]> Reviewed-by: Nishanth Menon <[email protected]>
2024-01-03arm: dts: k3-am654: copy bootph properties to a53 dtsBryan Brattlof
In order to unify the R5 board dtb file with the Linux board dtb file, we will need to copy all bootph-pre-ram properties to the *-u-boot.dtsi overlay. Tested-by: Tom Rini <[email protected]> Signed-off-by: Bryan Brattlof <[email protected]> Reviewed-by: Nishanth Menon <[email protected]>
2024-01-03arm: dts: k3-am654: pull in dtb update from LinuxBryan Brattlof
Pull in dtb updates for the am654 base board from v6.7-rc1 of Linux Tested-by: Tom Rini <[email protected]> Signed-off-by: Bryan Brattlof <[email protected]> Reviewed-by: Nishanth Menon <[email protected]>
2024-01-03arm: dts: k3-am654-r5: Merge board file and U-Boot overlayBryan Brattlof
The R5 board file for U-Boot should be the same as the board file copied from Linux with a few alterations to work with the R5's view of the SoC. First we need to unify the R5 board file and it's U-Boot overlay before we can unify the Linux board file with this one. Tested-by: Tom Rini <[email protected]> Signed-off-by: Bryan Brattlof <[email protected]> Reviewed-by: Nishanth Menon <[email protected]>
2024-01-03configs: am65x_evm_a53: disable CONSOLE_MUXBryan Brattlof
We do not have a need to share a single console with the evaluation board and disabling this option reduces the complexity of configuring the consoles. Disable CONSOLE_MUX Tested-by: Tom Rini <[email protected]> Signed-off-by: Bryan Brattlof <[email protected]> Reviewed-by: Nishanth Menon <[email protected]>
2024-01-03configs: am65x_evm_r5: enable driver for fixed regulatorsBryan Brattlof
Some of the regulators we need to successfully boot are fixed regulators. Enable the driver to properly probe them. Tested-by: Tom Rini <[email protected]> Signed-off-by: Bryan Brattlof <[email protected]> Reviewed-by: Nishanth Menon <[email protected]>
2024-01-02tegra114: clock: define MIPI calibration peripheral clockSvyatoslav Ryhel
TEGRA114_CLK_MIPI_CAL is a fixed child of PLLP and is used as clock source of the MIPI PHY calibration mechanism. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2024-01-02doc: board: tegra30: update information in board documentsSvyatoslav Ryhel
Recently, the U-Boot installation process has changed significantly. This should be depicted in documentation. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2024-01-01Merge tag 'dm-next-1124' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-dm into next support propagating supernode properties with bootph schema align bloblist with v0.9 of Firmware Handoff spec
2023-12-31bloblist: Update documentation and header commentSimon Glass
Align the documentation with the v0.9 spec. Signed-off-by: Simon Glass <[email protected]> Signed-off-by: Raymond Mao <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]>
2023-12-31bloblist: Add alignment to bloblist_new()Simon Glass
Allow the alignment to be specified when creating a bloblist. Signed-off-by: Simon Glass <[email protected]> Co-developed-by: Raymond Mao <[email protected]> Signed-off-by: Raymond Mao <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]>
2023-12-31bloblist: Adjust the bloblist headerSimon Glass
The v0.9 spec provides for a 24-byte header. Update the implementation to match this. Rename the fields of the bloblist header to align to the spec. Adds an alignment field into the bloblist header. Update the related bloblist APIs and UT testcases. Signed-off-by: Simon Glass <[email protected]> Co-developed-by: Raymond Mao <[email protected]> Signed-off-by: Raymond Mao <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]>
2023-12-31bloblist: Reduce blob-header sizeSimon Glass
The v0.9 spec provides for an 8-byte header for each blob, with fewer fields. The blob data start address should be aligned to the alignment specified by the bloblist header. Update the implementation to match this. Signed-off-by: Simon Glass <[email protected]> Co-developed-by: Raymond Mao <[email protected]> Signed-off-by: Raymond Mao <[email protected]>
2023-12-31bloblist: Handle alignment with a void entrySimon Glass
Rather than setting the alignment using the header size, add an entirely new entry to cover the gap left by the alignment. Signed-off-by: Simon Glass <[email protected]> Co-developed-by: Raymond Mao <[email protected]> Signed-off-by: Raymond Mao <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]>
2023-12-31bloblist: Checksum the entire bloblistSimon Glass
Use a sinple 8-bit checksum for bloblist, as specified by the spec version 0.9. Spec v0.9 specifies that the entire bloblist area is checksummed, including unused portions. Update the code to follow this. Signed-off-by: Simon Glass <[email protected]> Co-developed-by: Raymond Mao <[email protected]> Signed-off-by: Raymond Mao <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]>
2023-12-31bloblist: Drop spare value from bloblist recordSimon Glass
Drop spare value from bloblist record header. For now it is still present in the header, with an underscore, so that tests continue to pass. Signed-off-by: Simon Glass <[email protected]> Co-developed-by: Raymond Mao <[email protected]> Signed-off-by: Raymond Mao <[email protected]>
2023-12-31bloblist: Access record hdr_size and tag via a functionSimon Glass
Convert accesses to tag and hdr_size via function for grouping tag and hdr_size together later. Signed-off-by: Simon Glass <[email protected]> Co-developed-by: Raymond Mao <[email protected]> Signed-off-by: Raymond Mao <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]>
2023-12-31bloblist: Set version to 1Simon Glass
The new bloblist for v0.9 has version 1 so update this value. Signed-off-by: Simon Glass <[email protected]> Co-developed-by: Raymond Mao <[email protected]> Signed-off-by: Raymond Mao <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2023-12-31bloblist: Change the magic valueSimon Glass
This uses a new value with spec v0.9 so change it. Signed-off-by: Simon Glass <[email protected]> Co-developed-by: Raymond Mao <[email protected]> Signed-off-by: Raymond Mao <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2023-12-31bloblist: Adjust API to align in powers of 2Simon Glass
The updated bloblist structure stores the alignment as a power-of-two value in its structures. Adjust the API to use this, to avoid needing to calling ilog2(). Update the bloblist alignment from 16 bytes to 8 bytes. Drop a stale comment while we are here. Signed-off-by: Simon Glass <[email protected]> Co-developed-by: Raymond Mao <[email protected]> Signed-off-by: Raymond Mao <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]>
2023-12-31bloblist: Update the tag numberingSimon Glass
Align bloblist tags with the FW handoff spec v0.9. The most common ones are from 0. TF related ones are from 0x100. All non-standard ones from 0xfff000. Added new defined tags: BLOBLISTT_OPTEE_PAGABLE_PART for TF. BLOBLISTT_TPM_EVLOG and BLOBLISTT_TPM_CRB_BASE for TPM. Signed-off-by: Simon Glass <[email protected]> Co-developed-by: Raymond Mao <[email protected]> Signed-off-by: Raymond Mao <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]>
2023-12-31Makefile: Use the fdtgrep -u flagSimon Glass
Use this flag so that the bootph binding is obeyed correctly. Add a comment about what is going on. Signed-off-by: Simon Glass <[email protected]> Fixes: https://source.denx.de/u-boot/custodians/u-boot-dm/-/issues/12 Reviewed-by: Tom Rini <[email protected]>
2023-12-31fdtgrep: Allow propagating properties up to supernodesSimon Glass
The existing bootph binding is defined such that properties in a subnode are also implied in the supernode also, as in this example: buttons { /* bootph,pre-ram is implied by btn1 */ compatible = "gpio-keys"; btn1 { bootph,pre-ram; gpios = <&gpio_a 3 0>; label = "button1"; linux,code = <BTN_1>; }; Provide an option to implement this in fdtgrep. Signed-off-by: Simon Glass <[email protected]>
2023-12-31sandbox: Correct SPL condition for building devicetreeSimon Glass
With sandbox, CONFIG_SANDBOX is y so the current rule ends up building the devicetree for only those SPL builds where it is unwanted. Correct the condition. This allows sandbox_vpl to produce a u-boot-vpl.dtb file. Fixes: e7fb789612e ("sandbox: Remove OF_HOSTFILE") Signed-off-by: Simon Glass <[email protected]>
2023-12-31fdtgrep: Move property checking into a functionSimon Glass
The h_include() function includes a piece which checks if a node contains a property being searched for. Move this into its own function to reduce the size of the h_include() function. Signed-off-by: Simon Glass <[email protected]>
2023-12-31fdtgrep: Simplify code to inverting the matchSimon Glass
The code to invert the match in h_include() is a bit convoluted. Simplify it by using disp->invert only once. Signed-off-by: Simon Glass <[email protected]>
2023-12-31fdtgrep: Tidy up comment for h_include()Simon Glass
Copy the comment from fdt_first_region() so that it is clear what value this function returns. Signed-off-by: Simon Glass <[email protected]>
2023-12-31fdtgrep: Correct references to fdt_find_regions()Simon Glass
The function name is actually fdtgrep_find_regions() so update the name in comments accordinging. Signed-off-by: Simon Glass <[email protected]>
2023-12-31fdtgrep: Correct ordering of flagsSimon Glass
Two of the flags are out of order, so fix this. Also adjust the ordering of one flag in the main switch() Signed-off-by: Simon Glass <[email protected]>
2023-12-31fdtgrep: Tidy up a few type warnings and commentsSimon Glass
Align the code with the upstream version at fdt-tools which had a few tweaks before being applied. Signed-off-by: Simon Glass <[email protected]>
2023-12-31x86: coral: Align bootph SPI-flash subnodes with parentSimon Glass
The subnode has different tags from the parents, which is not correct. Fix the subnode. Signed-off-by: Simon Glass <[email protected]>
2023-12-31binman: used-before-assignment in ftest.pyHeinrich Schuchardt
Pytest 7.4.3 complains if a variable is used in a finally clause without having been initialized before the try clause. Signed-off-by: Heinrich Schuchardt <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2023-12-31buildman: type cotainingHeinrich Schuchardt
%s/cotaining/containing/ Signed-off-by: Heinrich Schuchardt <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2023-12-28Merge patch series "Modernize U-Boot shell"Tom Rini
Francis Laniel <[email protected]> says: During 2021 summer, Sean Anderson wrote a contribution to add a new shell, based on LIL, to U-Boot [1, 2]. While one of the goals of this contribution was to address the fact actual U-Boot shell, which is based on Busybox hush, is old there was a discussion about adding a new shell versus updating the actual one [3, 4]. So, in this series, with Harald Seiler, we updated the actual U-Boot shell to reflect what is currently in Busybox source code. Basically, this contribution is about taking a snapshot of Busybox shell/hush.c file (as it exists in commit 37460f5da) and adapt it to suit U-Boot needs. This contribution was written to be as backward-compatible as possible to avoid breaking the existing. So, the modern hush flavor offers the same as the actual, that is to say: 1. Variable expansion. 2. Instruction lists (;, && and ||). 3. If, then and else. 4. Loops (for, while and until). No new features offered by Busybox hush were implemented (e.g. functions). It is possible to change the parser at runtime using the "cli" command: => cli print old => cli set modern => cli print modern => cli set old The default parser is the old one. Note that to use both parser, you would need to set both CONFIG_HUSH_MODERN_PARSER and CONFIG_HUSH_OLD_PARSER. In terms of testing, new unit tests were added to ut to ensure the new behavior is the same as the old one and it does not add regression. Nonetheless, if old behavior was buggy and fixed upstream, the fix is then added to U-Boot [5]. In sandbox, all of these tests pass smoothly: => printenv board board=sandbox => ut hush Running 20 hush tests ... Failures: 0 => cli set modern => ut hush Running 20 hush tests ... Failures: 0 Thanks to the effort of Harald Seiler, I was successful booting a board: => printenv fdtfile fdtfile=amlogic/meson-gxl-s905x-libretech-cc.dtb => cli get old => boot ... root@lepotato:~# root@lepotato:~# reboot ... => cli set modern => cli get modern => printenv fdtfile fdtfile=amlogic/meson-gxl-s905x-libretech-cc.dtb => boot ... root@lepotato:~# This contribution indeed adds a lot of code and there were concern about its size [6, 7]. With regard to the amount of code added, the cli_hush_upstream.c is 13030 lines long but it seems a smaller subset is really used: gcc -D__U_BOOT__ -E common/cli_hush_upstream.c | wc -l 2870 Despite this, it is better to still have the whole upstream code for the sake of easing maintenance. With regard to memory size, I conducted some experiments for version 8 of this series and for a subset of arm64 boards and found the worst case to be 4K [8]. Tom Rini conducted more research on this and also found the increase to be acceptable [9]. If you want to review it - your review will really be appreciated - here are some information regarding the commits: * commits marked as "test:" deal with unit tests. * commit "cli: Add Busybox upstream hush.c file." copies Busybox shell/hush.c into U-Boot tree, this explain why this commit contains around 12000 additions. * commit "cli: Port Busybox 2021 hush to U-Boot." modifies previously added file to permit us to use this as new shell. The really good idea of #include'ing Busybox code into a wrapper file to define some particular functions while minimizing modifications to upstream code comes from Harald Seiler. * commit "cmd: Add new parser command" adds a new command which permits selecting parser at runtime. I am not really satisfied with the fact it calls cli_init() and cli_loop() each time the parser is set, so your reviews would be welcomed. * Other commits focus on enabling features we need (e.g. if).
2023-12-28configs: Use old hush for several boardsFrancis Laniel
The keymile board family is not compatible with modern hush parser. Indeed, This boards used set_local_var() to store some variables as local shell. They then used get_local_var() to retrieve the variables values. Sadly, this two functions do not exist with CONFIG_HUSH_MODERN_PARSER. A patch was proposed to use environment variables rather than local variables but it does not tackle the problem, so complementary work is needed to make this boards use CONFIG_HUSH_MODERN_PARSER. Also, with CONFIG_HUSH_MODERN_PARSER, kirkwoord sheevaplug and phytec bk4r1 hit their board limits, so better to stick with old hush. Cc: Holger Brunck <[email protected]> Link: https://marc.info/?l=u-boot&m=165541917618725&w=2 Signed-off-by: Francis Laniel <[email protected]>
2023-12-28cmd: Set modern hush as default shellFrancis Laniel
Signed-off-by: Francis Laniel <[email protected]>
2023-12-28cli: modern_hush: Add upstream commits up to 2nd October 2023.Francis Laniel
This commit adds the following hush busybox upstream commits: 791b222dd55d ("sleep: fix "sleep -- ARGS"") 5353df91cba7 ("Update applet size estimates") e41e481fd571 ("hush: fix a compile failure") 07a95cfcabb0 ("ash: disable check for "good" function name, bash does not check this") e5692e2342c6 ("hush: quote values in "readonly" output") 96769486e20f ("shell: move varcmp() to shell_common.h and use it in hush") bab8828b0dad ("hush: fix expansion of space in "a=${a:+$a }c" construct") b5be8da350b5 ("hush: make "false" built-in") 6824298ab4d3 ("hush: fix ELIF cmd1;cmd2 THEN ... not executing cmd2, closes 15571") 3a7f00eadcf4 ("hush: add comment about abort on syntax error %{^}") acae889dd972 ("ash,hush: tab completion of functions and aliases") 90b607d79a13 ("hush: quote variable values printed by "set" (match ash behavior)") 6748e6494c22 ("hush (NOMMU): fix LINENO in execed children") fd5fb2d2b596 ("hush: speed up "big heredoc" code") 1409432d072e ("hush: add TODO comment") 93ae7464e6e4 ("hush: restore SIGHUP handling, this time explain why we do what we do") 1fdb33bd07e5 ("hush: restore tty pgrp on SIGHUP") 6101b6d3eaa0 ("hush: remove special handling of SIGHUP") 93e0898c663a ("shell: fix SIGWINCH and SIGCHLD (in hush) interrupting line input, closes 15256") 969e00816835 ("hush: code shrink") 27be0e8cfeb6 ("shell: fix compile failures in some configs") 7d1c7d833785 ("ash,hush: use HOME for tab completion and prompts") 21afddefd258 ("hush: fix "error: invalid preprocessing directive ##"") e53c7dbafc78 ("hush: fix set -n to act immediately, not just after run_list()") 574b9c446da1 ("hush: fix var_LINENO3.tests failure") 49bcf9f40cff ("hush: speed up ${x//\*/|} too") 53b2fdcdba4c ("*: add NOINLINEs where code noticeably shrinks") 7c3e96d4b3d4 ("shell: use more compact SHELL_ASH / HUSH config defines. no code changes") 62f1eed1e191 ("hush: in a comment, document what -i might be doing") aaf3d5ba74c5 ("shell: tweak --help") db5546ca1018 ("libbb: code shrink: introduce and use [_]exit_SUCCESS()") 931c55f9e2b4 ("libbb: invert the meaning of SETUP_ENV_NO_CHDIR -> SETUP_ENV_CHDIR") 12566e7f9b5e ("ash,hush: fix handling of SIGINT while waiting for interactive input") 987be932ed3c ("*: slap on a few ALIGN_PTR where appropriate") Signed-off-by: Francis Laniel <[email protected]>
2023-12-28test: hush: Fix loop tests for modern hushFrancis Laniel
Modifies return code got from while loop as modern hush always returns 0 from while loop. Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Francis Laniel <[email protected]>
2023-12-28cli: hush_modern: Enable loopsFrancis Laniel
Enables the use of for, while and until loops for command line as well as with run_command(). Signed-off-by: Francis Laniel <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2023-12-28cli: hush_modern: Enable if keywordFrancis Laniel
Adds support for "if then else" construct both for command line interface and through run_command(). Signed-off-by: Francis Laniel <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2023-12-28cli: hush_modern: Enable using < and > as string compare operatorsFrancis Laniel
In Busybox hush, '<' and '>' are used as redirection operators. For example, cat foo > bar will write content of file foo inside file bar. In U-Boot, we do not have file system, so we can hardly redirect command output inside a file. But, in actual U-Boot hush, these operators ('<' and '>') are used as string compare operators. For example, test aaa < bbb returns 0 as aaa is before bbb in the dictionary. Busybox hush also permits this, but operators need to be escaped ('\<' and '\>'). Indeed, if escaping is needed it permits the developer to think about its code, as in a lot of case, we want to compare integers (using '-lt' or '-gt') rather than strings. As testing in U-Boot is handled by the test command, we will stick with the original behaviour and not adapt to Busybox one. Nonetheless, if one day we decide to implement test with '[[ ]]', we will then stick to upstream Busybox behavior. Signed-off-by: Francis Laniel <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2023-12-28test: hush: Fix variable expansion tests for modern hushFrancis Laniel
Modifies the expected result for modern hush. Indeed, there were bugs in actual U-Boot hush which were fixed in upstream Busybox. As modern hush is based on upstream Busybox, these bugs no longer exist. Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Francis Laniel <[email protected]>