summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-04-01ARM: at91: sama7g5: Reset external devices at software resetTudor Ambarus
sama7g5 and other SoCs (sama5d3, sam9x60) define in the Reset Controller a RSTC_CR.EXTRST bit that asserts the nrst_out pin which resets external devices. This is particular useful for external devices that are configured in stateful modes which can not be undone without reconfiguring the device or without resetting the device. An example is an SPI NOR flash that is configured in octal mode. The do_reset u-boot cmd does not call any driver's remove method, but merely resets the CPU. As the code was, this left the flash in octal mode, being impossible for the first stage boot loaders to recover/identify the flash after a "software reset". RSTC_CR.EXTRST comes in handy here, as it can be set at "software reset" to assert low the nrst_out pin during a time defined by the RSTC_MR.ERSTL field and reset the external devices (including the SPI NOR flash in the example). nrst_out is always asserted at "user reset" and it resets the external devices correctly. Asserting nrst_out at "software reset" should behave in a similar way. The only difference that I could find between the two types of resets in regards to the nrst_out signal, is that at "user reset" timing diagram the "Processor and Peripherals Reset Line" rises after six MD_SLCK cycles after the nrst_out line rose, while at the "software reset" timing diagram the "Processor and Peripherals Reset Line" is active for 3 MD_SLCK cycles + 2 MCK cycles. In other words, in the "software reset" case the nrst_out signal can be active for a longer period of time than the "Processor and Peripherals Reset Line" active time, depending on the RSTC_MR.ERSTL value. Using the default value (zero) for RSTC_MR.ERSTL, worked just fine for the sama7g5 case. Tested QSPI0 and GMAC0/GMAC1 on sama7g5ek rev 4 after a software reset with RSTC_CR.EXTRST=1 and RSTC_MR.ERSTL=0. Signed-off-by: Tudor Ambarus <[email protected]>
2022-04-01configs: Convert AT91RESET_EXTRST to KconfigTudor Ambarus
Convert AT91RESET_EXTRST to Kconfig for easier integration. The symbol is not configurable from menuconfig, it will be automatically selected by SoCs that select it explicitly via the "select" directive. AT91RESET_EXTRST sets the Reset Controller's RSTC_CR.EXTRST bit which asserts the nrst_out pin that resets external devices. Signed-off-by: Tudor Ambarus <[email protected]>
2022-04-01ARM: at91: sama5d2: Enable the use of Galois Tables from ROMTudor Ambarus
sama5d2 contains in its ROM memory BCH code tables for NAND Flash ECC correction. Enable the use of the GF tables defined in ROM. This should speed up the boot process, as the tables are no longer constructed at runtime. Tested with sama5d2-ptc-ek. Reported-by: David Mosberger-Tang <[email protected]> Signed-off-by: Tudor Ambarus <[email protected]>
2022-03-31Merge tag 'efi-2022-04-rc6' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-efi Pull request for efi-2022-04-rc6 Documentation: * Move VxWorks and Plan 9 to HTML documentation * Move all command man-pages to a separate directory Test: * Fix pylint errors UEFI * Fix build flags for initrddump.efi QEMU * Remove unused function to get RNG device
2022-03-31env: Avoid using a leftover text-environment fileSimon Glass
If include/generated/environment.h exists (perhaps leftover from a build of another board) it is used, even if the board currently being built does not have a text environment. This causes a build error. Fix it by emptying the file if it should not be there. Fixes: https://source.denx.de/u-boot/u-boot/-/issues/9 Signed-off-by: Simon Glass <[email protected]> Reported-by: Sean Anderson <[email protected]> Tested-by: Sean Anderson <[email protected]>
2022-03-31Merge branch '2022-03-31-image-add-a-stage-pre-load' into nextTom Rini
To quote the author: This series adds a stage pre-load before launching an image. This stage is used to read a header before the image and this header contains the signature of the full image. So u-boot may check the full image before using any data of the image. The support of this header is added to binman, and a command verify checks the signature of a blob and set the u-boot env variable "loadaddr_verified" to the beginning of the "real" image. The support of this header is only added to binman, but it may also be added to mkimage.
2022-03-31cmd: bootm: add subcommand preloadPhilippe Reynes
Add a subcommand preload to bootm that execute the preload stage on the image. Right now, it checks the signature of the image with the pre-load header. If the check succeed, the u-boot env variable 'loadaddr_verified' is set to the address of the image (without the header). It allows to run such commands: tftp script.img && bootm preload $loadaddr && source $loadaddr_verified Signed-off-by: Philippe Reynes <[email protected]>
2022-03-31test: py: vboot: add test for global image signaturePhilippe Reynes
Adds test units for the pre-load header signature. Signed-off-by: Philippe Reynes <[email protected]>
2022-03-31configs: sandbox_defconfig: enable stage pre-load in bootmPhilippe Reynes
Enable the support of stage pre-load in bootm. For the moment, this stage allow to verify the signature of the full image with a header. Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Philippe Reynes <[email protected]>
2022-03-31tools: binman: add support for pre-load headerPhilippe Reynes
Adds the support of the pre-load header with the image signature to binman. Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Philippe Reynes <[email protected]>
2022-03-31Makefile: provide sah-key to binmanPhilippe Reynes
Set the variable pre-load-key-path with the shell variable PRE_LOAD_KEY_PATH that contain the keys path (used for signature). This variable pre-load-key-path is provided to binman. Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Philippe Reynes <[email protected]>
2022-03-31mkimage: add public key for image pre-load stagePhilippe Reynes
This commit enhances mkimage to update the node /image/pre-load/sig with the public key. Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Philippe Reynes <[email protected]>
2022-03-31common: spl: fit_ram: allow to use image pre loadPhilippe Reynes
Add the support of image pre load in spl or tpl when loading an image from ram. Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Philippe Reynes <[email protected]>
2022-03-31cmd: bootm: add a stage pre-loadPhilippe Reynes
Add a stage pre-load to the command bootm. Right now, this stage may be used to read a header and check the signature of the full image. Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Philippe Reynes <[email protected]>
2022-03-31boot: image: add a stage pre-loadPhilippe Reynes
Add a stage pre-load that could check or modify an image. For the moment, only a header with a signature is supported. This header has the following format: - magic : 4 bytes - version : 4 bytes - header size : 4 bytes - image size : 4 bytes - offset image signature : 4 bytes - flags : 4 bytes - reserved0 : 4 bytes - reserved1 : 4 bytes - sha256 of the image signature : 32 bytes - signature of the first 64 bytes : n bytes - image signature : n bytes - padding : up to header size The stage uses a node /image/pre-load/sig to get some informations: - algo-name (mandatory) : name of the algo used to sign - padding-name : name of padding used to sign - signature-size : size of the signature (in the header) - mandatory : set to yes if this sig is mandatory - public-key (madatory) : value of the public key Before running the image, the stage pre-load checks the signature provided in the header. This is an initial support, later we could add the support of: - ciphering - uncompressing - ... Signed-off-by: Philippe Reynes <[email protected]>
2022-03-31lib: rsa: allow rsa verify with pkey in SPLPhilippe Reynes
This commit adds the option SPL_RSA_VERIFY_WITH_PKEY. Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Philippe Reynes <[email protected]>
2022-03-31lib: crypto: allow to build crypyo in SPLPhilippe Reynes
This commit adds the options: - SPL_ASYMMETRIC_KEY_TYPE - SPL_ASYMMETRIC_PUBLIC_KEY_SUBTYPE - SPL_RSA_PUBLIC_KEY_PARSER Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Philippe Reynes <[email protected]>
2022-03-31lib: allow to build asn1 decoder and oid registry in SPLPhilippe Reynes
This commit adds the options: - SPL_ASN1_DECODER - SPL_OID_REGISTRY Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Philippe Reynes <[email protected]>
2022-03-31lib: Kconfig: enhance the help of OID_REGISTRYPhilippe Reynes
Enhance the help for the config OID_REGISTRY. Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Philippe Reynes <[email protected]>
2022-03-31lib: Kconfig: enhance help for ASN1Philippe Reynes
Enhance the help for configs ASN1_COMPILER and ASN1_decoder. Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Philippe Reynes <[email protected]>
2022-03-31arch: Kconfig: imply BINMAN for SANDBOXPhilippe Reynes
To be able to use the tool binman on sandbox, the config SANDBOX should imply BINMAN. Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Philippe Reynes <[email protected]>
2022-03-31efi_loader: initrddump: Actually use the custom CFLAGSAndy Shevchenko
It seems a copy'n'paste typo when tool had been introduced. It has never had the 'exit' suffix in the file name. Hence, the custom CFLAGS never been applied and, for example, BFD linker complains: LD lib/efi_loader/initrddump_efi.so ld.bfd: lib/efi_loader/initrddump.o: warning: relocation in read-only section `.text.efi_main' ld.bfd: warning: creating DT_TEXTREL in a shared object Remove wrong 'exit' suffix from the custom CFLAGS variable. Fixes: 65ab48d69ddb ("efi_selftest: provide initrddump test tool") Fixes: 9c045a49a9c9 ("efi_loader: move dtbdump.c, initrddump.c to lib/efi_loader") Signed-off-by: Andy Shevchenko <[email protected]> Reviewed-by: Heinrich Schuchardt <[email protected]>
2022-03-31test: fix pylint warnings in test_efi_bootmgrHeinrich Schuchardt
* Use f'' strings instead of .format(). * Correct sequence of imports. * Remove a superfluous import. * Add missing documentation. * Replace yield by return. Signed-off-by: Heinrich Schuchardt <[email protected]>
2022-03-31test: fix pylint warnings for test_efi_fit.pyHeinrich Schuchardt
* fix style of argument documentation * add encoding to open() calls Signed-off-by: Heinrich Schuchardt <[email protected]>
2022-03-31doc: usage: Convert README.plan9 to reSTBin Meng
This converts the existing README.plan9 to reST, and puts it under the doc/usage/os directory. Signed-off-by: Bin Meng <[email protected]> Reviewed-by: Heinrich Schuchardt <[email protected]>
2022-03-31doc: usage: Update vxworks doc to mention RISC-V supportBin Meng
At present the doc only mentions Arm, PowerPC and x86. RISC-V support has been added since VxWorks SR0650 support for a while, and U-Boot supports loading a RISC-V VxWorks kernel too. Let's document it. Signed-off-by: Bin Meng <[email protected]> Reviewed-by: Heinrich Schuchardt <[email protected]>
2022-03-31doc: usage: Convert README.vxworks to reSTBin Meng
This converts the existing README.vxworks to reST, and puts it under the doc/usage/os directory. Signed-off-by: Bin Meng <[email protected]> Reviewed-by: Heinrich Schuchardt <[email protected]>
2022-03-31doc: usage: Update the extension command titleBin Meng
Update the extension command title for consistency with other commands. Signed-off-by: Bin Meng <[email protected]> Reviewed-by: Heinrich Schuchardt <[email protected]>
2022-03-31doc: usage: Group all shell command docs into cmd/ sub-directoryBin Meng
Currently all shell command docs are put in the doc/usage root. Let's group them into cmd/ sub-directory. Signed-off-by: Bin Meng <[email protected]> Reviewed-by: Heinrich Schuchardt <[email protected]>
2022-03-31doc: mmc devPatrick Delaunay
Provide human readable descriptions of the speed nodes instead of the name of constants from the code as it is already done for 'mmc rescan' command in commit 212f078496e4 ("doc: mmc rescan speed mode"). Signed-off-by: Patrick Delaunay <[email protected]> Reviewed-by: Aswath Govindraju <[email protected]> Reviewed-by: Bin Meng <[email protected]>
2022-03-31qemu: arm: Remove platform specific function to get RNG deviceSughosh Ganu
The QEMU platform has a function defined to get the random number generator(RNG) device. However, the RNG device can be obtained simply by searching for a device belonging to the RNG uclass. Remove the superfluous platform function defined for the QEMU platform for getting the RNG device. Signed-off-by: Sughosh Ganu <[email protected]> Tested-by: Heinrich Schuchardt <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2022-03-31Merge branch '2022-03-31-critical-fixes'Tom Rini
- Fixes for 2 gateworks platforms, Edison platform, incorrectly showing 2 logos on LCD screens, not cleaning a generated environment file and correct the CONFIG_SYS_IMMR Kconfig migration on a number of MPC85xx platforms.
2022-03-31board: gateworks: venice: determine dram size at runtimeTim Harvey
The SPL does not update the memory node with the dram size from EEPROM but instead we can use get_ram_size which does a simple memory test to determine the available RAM. Update PHYS_SDRAM_SIZE to 4GiB as that is the max used on the Venice boards. Signed-off-by: Tim Harvey <[email protected]> Reviewed-by: Fabio Estevam <[email protected]>
2022-03-31Revert "x86: Move FACP table into separate functions"Andy Shevchenko
Before the culprit patch (see BugLink for the details): => acpi list Name Base Size Detail ---- -------- ----- ------ RSDP 000e4500 24 v02 U-BOOT RSDT 000e4530 38 v01 U-BOOT U-BOOTBL 20220401 INTL 0 XSDT 000e45e0 4c v01 U-BOOT U-BOOTBL 20220401 INTL 0 CSRT 000e5490 58 v00 U-BOOT U-BOOTBL 20220401 INTL 0 FACP 000e54f0 114 v06 U-BOOT U-BOOTBL 20220401 INTL 0 DSDT 000e4780 c06 v02 U-BOOT U-BOOTBL 10000 INTL 20200925 FACS 000e4740 40 MCFG 000e5610 3c v01 U-BOOT U-BOOTBL 20220401 INTL 0 SPCR 000e5650 50 v02 U-BOOT U-BOOTBL 20220401 INTL 0 APIC 000e56a0 48 v02 U-BOOT U-BOOTBL 20220401 INTL 0 After the culprit patch: => acpi list Name Base Size Detail ---- -------- ----- ------ RSDP 000e4500 24 v02 U-BOOT RSDT 000e4530 34 v01 U-BOOT U-BOOTBL 20220401 INTL 0 XSDT 000e45e0 44 v01 U-BOOT U-BOOTBL 20220401 INTL 0 CSRT 000e53a0 58 v00 U-BOOT U-BOOTBL 20220401 INTL 0 MCFG 000e5520 3c v01 U-BOOT U-BOOTBL 20220401 INTL 0 SPCR 000e5560 50 v02 U-BOOT U-BOOTBL 20220401 INTL 0 APIC 000e55b0 48 v02 U-BOOT U-BOOTBL 20220401 INTL 0 As a result Linux kernel can't find mandatory tables and fails to boot. Hence, revert it for good. This reverts commit 379d3c1fd6aa490b1ad5697525cfc89b615cf25a. BugLink: https://lore.kernel.org/all/20220131225930.GJ7515@bill-the-cat/ Signed-off-by: Andy Shevchenko <[email protected]>
2022-03-31powerpc: Fix incorrect SYS_IMMR migration valuesTom Rini
When migrating SYS_IMMR, I didn't allow for boards to provide non-default values here. This lead to an incorrect migration on the platforms where CONFIG_SYS_IMMR is set to CONFIG_SYS_CCSRBAR and CONFIG_SYS_CSSRBAR is NOT the same as CONFIG_SYS_CCSRBAR_DEFAULT. Add text to the prompt so that non-default values can be used and re-migrate the platforms that have CONFIG_SYS_IMMR=CONFIG_SYS_CSSRBAR where CONFIG_SYS_CSSRBAR != CONFIG_SYS_CCSRBAR_DEFAULT. Fixes: be7dbb60c5bf ("Convert CONFIG_SYS_IMMR to Kconfig") Reported-by: Pali Rohár <[email protected]> Signed-off-by: Tom Rini <[email protected]> Tested-by: Pali Rohár <[email protected]>
2022-03-31Makefile: make clean should delete include/generated/env.inHeinrich Schuchardt
'make sifive_unamtched_defconfig; make clean; make' fails if file include/generated/env.in exists. 'make clean' should remove all files that stop building. Add file include/generated/env.in to the clean target. Signed-off-by: Heinrich Schuchardt <[email protected]> Reviewed-by: Marek Behún <[email protected]>
2022-03-31video: Do not show splash and U-Boot logo simultaneouslyFabio Estevam
Currently, on imx6sabresd and gwventana boards, the company logo and U-Boot logo are shown. The correct behavior is to show only the company logo, if available, and not both logos. Reported-by: Tim Harvey <[email protected]> Signed-off-by: Fabio Estevam <[email protected]> Tested-by: Tim Harvey <[email protected]> #gw_ventana
2022-03-31board: gw_ventana: gsc: fix GSC read/write functionsTim Harvey
commit 7c84319af9c7 ("dm: gpio: Correct use of -ENODEV in drivers") changed the return code for an I2C NAK from -ENODEV to -EREMOTEIO. Update the gsc_i2c_read and gsc_i2c_write functions for this change to properly retry the transaction on a NAK meaning the GSC is busy. Fixes: 7c84319af9c7 ("dm: gpio: Correct use of -ENODEV in drivers") Signed-off-by: Tim Harvey <[email protected]> Reviewed-by: Fabio Estevam <[email protected]>
2022-03-30Merge tag 'clk-2022.04-next' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-clk into next Clock patches for u-boot/next This is mostly cleanups/consolidations. clk_free is made to return void, and the CCF wrappers present in almost every CCF clock are consolidated. I would particularly like to have the latter upstream, since there are at least two series adding support for new CCF drivers (imx8mq and imxrt1170) which can benefit from these commits. I had to fix up the last commit since I missed an include for at91. CI: https://source.denx.de/u-boot/custodians/u-boot-clk/-/pipelines/11521
2022-03-30clk: Use generic CCF ops where possibleSean Anderson
This converts most CCF drivers to use generic ops. imx6q is the only outlier, where we retain the existing functionality by moving the check to request(). Signed-off-by: Sean Anderson <[email protected]> Reviewed-by: Claudiu Beznea <[email protected]> Reviewed-by: Peng Fan <[email protected]> Link: https://lore.kernel.org/r/[email protected] [ fixed missing include for at91 ] Signed-off-by: Sean Anderson <[email protected]>
2022-03-30clk: ccf: Add some helper functions for clock opsSean Anderson
Most CCF drivers follow a common pattern where their clock ops defer the actual operation to the backing CCF clock. Add some generic implementations of these functions to reduce duplication of code. Signed-off-by: Sean Anderson <[email protected]> Reviewed-by: Peng Fan <[email protected]> Link: https://lore.kernel.org/r/[email protected]
2022-03-30clk: Consolidate some clock functionsSean Anderson
These functions are exactly the same as their "nodev" varients, except they accept a device and not an ofnode. Rewrite them to just call the other function. Signed-off-by: Sean Anderson <[email protected]> Link: https://lore.kernel.org/r/[email protected]
2022-03-30clk: Make clk_free return voidSean Anderson
Most callers of this function do not check the return value, and it is unclear what action they should take if it fails. If a function is freeing multiple clocks, it should not stop just because the first one failed. Since the callbacks can no longer fail, just convert the return type to void. Signed-off-by: Sean Anderson <[email protected]> Link: https://lore.kernel.org/r/[email protected]
2022-03-30spi: dw: Don't check clk_freeSean Anderson
This function always succeeds, so don't check its return value. Signed-off-by: Sean Anderson <[email protected]> Link: https://lore.kernel.org/r/[email protected]
2022-03-30spi: bcm63xx: Don't check clk_freeSean Anderson
This function always succeeds, so don't check its return value. Signed-off-by: Sean Anderson <[email protected]> Link: https://lore.kernel.org/r/[email protected]
2022-03-30phy: bcm63xx: Don't check clk_freeSean Anderson
This function always succeeds, so don't check its return value. Signed-off-by: Sean Anderson <[email protected]> Link: https://lore.kernel.org/r/[email protected]
2022-03-30net: bcm63xx: Don't check clk_freeSean Anderson
This function always succeeds, so don't check its return value. Signed-off-by: Sean Anderson <[email protected]> Link: https://lore.kernel.org/r/[email protected]
2022-03-30dma: bcm6348: Don't check clk_freeSean Anderson
This function always succeeds, so don't check its return value. Signed-off-by: Sean Anderson <[email protected]> Link: https://lore.kernel.org/r/[email protected]
2022-03-30clk: Make rfree return voidSean Anderson
When freeing a clock there is not much we can do if there is an error, and most callers do not actually check the return value. Even e.g. checking to make sure that clk->id is valid should have been done in request() in the first place (unless someone is messing with the driver behind our back). Just return void and don't bother returning an error. Signed-off-by: Sean Anderson <[email protected]> Reviewed-by: Simon Glass <[email protected]> Link: https://lore.kernel.org/r/[email protected]
2022-03-30arm: zynqmp: Enable PWM command and cadence ttc pwm driverMichal Simek
Enable PWM ttc driver and command in generic image. Signed-off-by: Michal Simek <[email protected]> Link: https://lore.kernel.org/r/a660c8f2010f4f07534753e0ac44a34b8ff0d3c3.1634303847.git.michal.simek@xilinx.com