summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-02-15xilinx: firmware: Introduce zynqmp_pmufw_node() for loading PMU fragmentsMichal Simek
Introduce zynqmp_pmufw_node() for loading PMU configuration fragment for enabling IPs. Firmware driver has small overlay where NODE id is added and config fragment is sent to PMUFW. There is a need to build PMUFW with fragment support. Signed-off-by: Michal Simek <[email protected]> Link: https://lore.kernel.org/r/636e8150bd4e2b1f988d59795772c685ceeec083.1642163135.git.michal.simek@xilinx.com
2022-02-15power: zynqmp: Add power domain driver for ZynqMPMichal Simek
Driver should be enabled by CONFIG_POWER_DOMAIN=y and CONFIG_ZYNQMP_POWER_DOMAIN=y. Power domain driver doesn't have own DT node but it uses zynqmp firmware DT node that's why there is a need to bind driver when firmware node is found. Driver itself is simple. It is sending pmufw config object overlay for enabling access to device which is done in ...domain_request(). In ...domain_on() capabilities are passed and node is requested. This should be bare minimum of required to get power domain driver working. Signed-off-by: Michal Simek <[email protected]> Reviewed-by: Jaehoon Chung <[email protected]> Link: https://lore.kernel.org/r/f4b9433b91c0b18c375b061c7a4e29d428f70547.1644226055.git.michal.simek@xilinx.com
2022-02-15tools/zynqmp_pm_cfg_obj_convert.py: fix build with Vivado 2021.xLuca Ceresoli
This tool fails with a pm_cfg_obj.c file generated by Vitis 2021.2. This is because that version of Vitis added the PM_CONFIG_OBJECT_TYPE_BASE that was not previously generated, thus the script does not implement it. Reported-by: Neal Frager <[email protected]> [report: https://lists.buildroot.org/pipermail/buildroot/2022-February/636639.html] Signed-off-by: Luca Ceresoli <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Michal Simek <[email protected]>
2022-02-14configs: Resync with savedefconfigTom Rini
Rsync all defconfig files using moveconfig.py Signed-off-by: Tom Rini <[email protected]>
2022-02-14Prepare v2022.04-rc2v2022.04-rc2Tom Rini
Signed-off-by: Tom Rini <[email protected]>
2022-02-14Merge branch '2022-02-14-assorted-fixes'Tom Rini
- Fix for pstore already being in the DT, "setlocalversion" script bugfix and pdu001 platform bugfix
2022-02-14arm: pdu001: Fix dt to work with the current am33xx dtsi filesFelix Brack
The changes introduced with commit 6337d53fdf45 ("arm: dts: sync am33xx with Linux 5.9-rc7") prevent the PDU001 from operating correctly. This patch fixes the configuration of the pin multiplexer and uart3. Signed-off-by: Felix Brack <[email protected]>
2022-02-14scripts: setlocalversion: remove quotes around localversion from configNikita Maslov
After replacing of include/config/auto.conf sourcing with extraction of CONFIG_LOCALVERSION, resulting version string contains quotes around localversion part which are always present in auto.conf (even if localversion is empty). This patch fixes this script to remove quotes. Signed-off-by: Nikita Maslov <[email protected]> Cc: Philipp Tomsich <[email protected]> Cc: Tom Rini <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2022-02-14pstore: Support already existing reserved-memory nodeDetlev Casanova
The pstore command tries to create a reserved-memory node but fails if it is already present with: Add 'reserved-memory' node failed: FDT_ERR_EXISTS This patch creates the node only if it does not exist and adapts the reg values sizes depending on already present #address-cells and #size-cells values. Signed-off-by: Detlev Casanova <[email protected]>
2022-02-11Merge tag 'efi-2022-04-rc2-4' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-efi Pull request for efi-2022-04-rc2-4 Documentation: * mkeficapsule man-page UEFI changes: * add support for signing images to mkeficapsule * add support for user define capsule GUID * adjust unit tests for capsules * fix UEFI image signature validation in case of multiple signatures
2022-02-11test/py: efi_secboot: adjust secure boot tests to code changesIlias Apalodimas
The previous patch is changing U-Boot's behavior wrt certificate based binary authentication. Specifically an image who's digest of a certificate is found in dbx is now rejected. Fix the test accordingly and add another one testing signatures in reverse order Signed-off-by: Ilias Apalodimas <[email protected]>
2022-02-11efi_loader: fix dual signed image certificationIlias Apalodimas
The EFI spec allows for images to carry multiple signatures. Currently we don't adhere to the verification process for such images. The spec says: "Multiple signatures are allowed to exist in the binary's certificate table (as per PE/COFF Section "Attribute Certificate Table"). Only one hash or signature is required to be present in db in order to pass validation, so long as neither the SHA-256 hash of the binary nor any present signature is reflected in dbx." With our current implementation signing the image with two certificates and inserting both of them in db and one of them dbx doesn't always reject the image. The rejection depends on the order that the image was signed and the order the certificates are read (and checked) in db. While at it move the sha256 hash verification outside the signature checking loop, since it only needs to run once per image and get simplify the logic for authenticating an unsigned imahe using sha256 hashes. Signed-off-by: Ilias Apalodimas <[email protected]>
2022-02-11test/py: efi_capsule: check the results in case of CAPSULE_AUTHENTICATEAKASHI Takahiro
Before the capsule authentication is supported, this test script works correctly, but with the feature enabled, most tests will fail due to unsigned capsules. So check the results depending on CAPSULE_AUTHENTICATE or not. Signed-off-by: AKASHI Takahiro <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2022-02-11test/py: efi_capsule: add a test for "--guid" optionAKASHI Takahiro
This test scenario tests a new feature of mkeficapsule, "--guid" option, which allows us to specify FMP driver's guid explicitly at the command line. Signed-off-by: AKASHI Takahiro <[email protected]>
2022-02-11test/py: efi_capsule: align with the syntax change of mkeficapsuleAKASHI Takahiro
Since the syntax of mkeficapsule was changed in the previous commit, we need to modify command line arguments in a pytest script. Signed-off-by: AKASHI Takahiro <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2022-02-11tools: mkeficapsule: allow for specifying GUID explicitlyAKASHI Takahiro
The existing options, "--fit" and "--raw," are only used to put a proper GUID in a capsule header, where GUID identifies a particular FMP (Firmware Management Protocol) driver which then would handle the firmware binary in a capsule. In fact, mkeficapsule does the exact same job in creating a capsule file whatever the firmware binary type is. To prepare for the future extension, the command syntax will be a bit modified to allow users to specify arbitrary GUID for their own FMP driver. OLD: [--fit <image> | --raw <image>] <capsule file> NEW: [--fit | --raw | --guid <guid-string>] <image> <capsule file> Signed-off-by: AKASHI Takahiro <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2022-02-11test/py: efi_capsule: add image authentication testAKASHI Takahiro
Add a couple of test cases against capsule image authentication for capsule-on-disk, where only a signed capsule file with the verified signature will be applied to the system. Due to the difficulty of embedding a public key (esl file) in U-Boot binary during pytest setup time, all the keys/certificates are pre-created. Signed-off-by: AKASHI Takahiro <[email protected]> Reviewed-by: Simon Glass <[email protected]> Acked-by: Ilias Apalodimas <[email protected]>
2022-02-11doc: update UEFI document for usage of mkeficapsuleAKASHI Takahiro
Now we can use mkeficapsule command instead of EDK-II's script to create a signed capsule file. So update the instruction for capsule authentication. Signed-off-by: AKASHI Takahiro <[email protected]> Reviewed-by: Simon Glass <[email protected]> Acked-by: Ilias Apalodimas <[email protected]>
2022-02-11tools: mkeficapsule: add man pageAKASHI Takahiro
Add a man page for mkeficapsule command. Signed-off-by: AKASHI Takahiro <[email protected]> Reviewed-by: Simon Glass <[email protected]> Acked-by: Ilias Apalodimas <[email protected]>
2022-02-11tools: mkeficapsule: add firmware image signingAKASHI Takahiro
With this enhancement, mkeficapsule will be able to sign a capsule file when it is created. A signature added will be used later in the verification at FMP's SetImage() call. To do that, we need specify additional command parameters: -monotonic-cout <count> : monotonic count -private-key <private key file> : private key file -certificate <certificate file> : certificate file Only when all of those parameters are given, a signature will be added to a capsule file. Users are expected to maintain and increment the monotonic count at every time of the update for each firmware image. Signed-off-by: AKASHI Takahiro <[email protected]> Reviewed-by: Simon Glass <[email protected]> Acked-by: Ilias Apalodimas <[email protected]>
2022-02-11tools: build mkeficapsule with tools-only_defconfigAKASHI Takahiro
Add CONFIG_TOOLS_MKEFICAPSULE. Then we want to always build mkeficapsule if tools-only_defconfig is used. Signed-off-by: AKASHI Takahiro <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2022-02-11CI: enforce packages upgrade for Msys2 on WindowsAKASHI Takahiro
We need to install libgnutls-devel package to build the host tool, mkeficapsule, and as of now, there seems to be a depencency conflict in the current msys2 installer; :: installing libp11-kit (0.24.1-1) breaks dependency \ 'libp11-kit=0.23.22' required by p11-kit To resolve this conflict, however, the initial "pacman -Syyuu" in 'tools_only_windows' job is not enough. Another "pacman -Su" will enforce all the out-of-date packages being upgraded. (Probably the first "-Syyuu" can be changed to "-Syu".) See the installation steps in https://www.msys2.org/ Signed-off-by: AKASHI Takahiro <[email protected]>
2022-02-11Merge branch '2022-02-11-assorted-updates-and-fixes'Tom Rini
A partial list: - fw_env updates, a new testcase for mkimage -o ..., nop-phy reset-gpios support, DFU updates, kaslr-seed support in extlinux.conf, modern "partitions" support in mtd device tree
2022-02-11test: test field truncation in snprint()Heinrich Schuchardt
The output size for snprint() should not only be respected for whole fields but also with fields. Add more tests. Signed-off-by: Heinrich Schuchardt <[email protected]>
2022-02-11phy: nop-phy: Enable reset-gpios supportAdam Ford
Some usb-nop-xceiv devices use a gpio take them out of reset. Add a reset function to put them into that state. This is similar to how Linux handles the usb-nop-xceiv driver. Signed-off-by: Adam Ford <[email protected]>
2022-02-11fw_env: simplify logic & code paths in the fw_env_open()Rafał Miłecki
Environment variables can be stored in two formats: 1. Single entry with header containing CRC32 2. Two entries with extra flags field in each entry header For that reason fw_env_open() has two main code paths and there are pointers for CRC32/flags/data. Previous implementation was a bit hard to follow: 1. It was checking for used format twice (in reversed order each time) 2. It was setting "environment" global struct fields to some temporary values that required extra comments explaining it This change simplifies that code: 1. It introduces two clear code paths 2. It sets "environment" global struct fields values only once it really knows them To be fair there are *two* crc32() calls now and an extra pointer variable but that should be cheap enough and worth it. Signed-off-by: Rafał Miłecki <[email protected]>
2022-02-11fw_env: make flash_io() take buffer as an argumentRafał Miłecki
It's usually easier to understand code & follow it if all arguments are passed explicitly. Many coding styles also discourage using global variables. Behaviour of flash_io() was a bit unintuitive as it was writing to a buffer referenced in a global struct. That required developers to remember how it works and sometimes required hacking "environment" global struct variable to read data into a proper buffer. Signed-off-by: Rafał Miłecki <[email protected]>
2022-02-11acpi: Move acpi_write_tables() to a generic headerSimon Glass
This function is used by both x86 and sandbox. Put it in a common header file. Signed-off-by: Simon Glass <[email protected]>
2022-02-11cmd/dfu: Enable 'dfu list' command without DFU_OVER_USBMasami Hiramatsu
Since dfu is not only used for USB, and some platform only supports DFU_OVER_TFTP or EFI capsule update, dfu_alt_info is defined on such platforms too. For such platform, 'dfu list' command is useful to check how the current dfu_alt_info setting is parsed. Signed-off-by: Masami Hiramatsu <[email protected]>
2022-02-11doc: usage: DFU: Fix dfu_alt_info documentMasami Hiramatsu
Fix some typo and wrong information about dfu_alt_info. - Add the parameter format, decimal only or hexadecimal. - Use same parameter name for the same kind of parameters. (e.g. dev -> dev_id) Signed-off-by: Masami Hiramatsu <[email protected]>
2022-02-11DFU: Check the number of arguments and argument string strictlyMasami Hiramatsu
When parsing the dfu_alt_info, check the number of arguments and argument string strictly. If there is any garbage data (which is not able to be parsed correctly) in dfu_alt_info, that means something wrong and user may make a typo or mis- understanding about the syntax. Since the dfu_alt_info is used for updating the firmware, this mistake may lead to brick the hardware. Thus it should be checked strictly for making sure there is no mistake. Signed-off-by: Masami Hiramatsu <[email protected]>
2022-02-11DFU: Accept redundant spaces and tabs in dfu_alt_infoMasami Hiramatsu
If dfu_alt_info has repeated spaces or tab (for indentation or readability), the dfu fails to parse it. For example, if dfu_alt_info="mtd nor1=image raw 100000 200000" (double spaces after "raw"), the image entity start address is '0' and the size '0x100000'. This is because the repeated space is not skipped. Use space and tab as a separater and apply skip_spaces() to skip redundant spaces and tabs. Signed-off-by: Masami Hiramatsu <[email protected]>
2022-02-11DFU: Do not copy the entity name over the buffer sizeMasami Hiramatsu
Use strlcpy() instead of strcpy() to prevent copying the entity name over the name buffer size. Signed-off-by: Masami Hiramatsu <[email protected]>
2022-02-11mkimage: Improve documentation of algo-name parameterJan Kiszka
Addresses the feedback provided on 5902a397d029 ("mkimage: Allow to specify the signature algorithm on the command line") which raced with the merge. Signed-off-by: Jan Kiszka <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2022-02-11Replace echo -n's used in environment processing with touchqthedev
echo -n does not give the intended effect when invoked in macOS through /bin/sh, which is the shell make uses by default, see "https://stackoverflow.com/questions/11675070/makefile-echo-n-not-working" for a detailed explanation. In this case, it resulted in "-n" being written to env.txt and env.in even though they should be empty, which caused compilation to fail with "Your board uses a text-file environment, so must not define CONFIG_EXTRA_ENV_SETTINGS". This patch prevents the error by replacing echo -n's with touch, as they are used to create empty files in these cases.
2022-02-11cmd: wrong printf() code in do_test_stackprot_fail()Heinrich Schuchardt
strlen() returns size_t. So we should use %zu to print it. This avoids incorrect output on 32bit systems. Fixes: 2fc62f299174 ("stackprot: Make our test a bit more complex") Signed-off-by: Heinrich Schuchardt <[email protected]>
2022-02-11test/py: Add test case for mkimage -o argumentJan Kiszka
Stress the '-o algo_name' argument of mkimage by expanding the vboot test. Signed-off-by: Jan Kiszka <[email protected]> Reviewed-by: Simon Glass <[email protected]> [trini: Update scripts/pylint.base]
2022-02-11malloc_simple: Remove usage of unsupported %zx format stringPali Rohár
Replace %zx by %lx and cast size_t to ulong. U-Boot currently prints garbage debug output: size=x, ptr=18, limit=18: 4002a000 With this change it prints correct debug data: size=18, ptr=18, limit=2000: 4002a000 Signed-off-by: Pali Rohár <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2022-02-11common: fdt_support: add support for "partitions" subnode to ↵Matthias Schiffer
fdt_fixup_mtdparts() Listing MTD partitions directly in the flash mode has been deprecated for a while for kernel Device Trees. Look for a node "partitions" in the found flash nodes and use it instead of the flash node itself for the partition list when it exists, so Device Trees following the current best practices can be fixed up. Signed-off-by: Matthias Schiffer <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2022-02-11button: adc: set state to pressed when the voltage is closest to nominalPeter Cai
In the Linux implementation of adc-keys (drivers/input/keyboard/adc-keys.c), `press-threshold-microvolt` is not really interpreted as a threshold, but rather as the "nominal voltage" of the button. When the voltage read from the ADC is closest to a button's `press-threshold-microvolt`, the button is considered pressed. This patch reconciles the behavior of button-adc with Linux's adc-keys such that device trees can be synchronized with minimal modifications. Signed-off-by: Peter Cai <[email protected]>
2022-02-11cmd: pxe_utils: sysboot: add kaslr-seed generation supportZhang Ning
this will add kaslrseed keyword to sysboot lable, when it set, it will request to genarate random number from hwrng as kaslr-seed. with this patch exlinux.conf label looks like label l0 menu testing linux /boot/vmlinuz-5.15.16-arm initrd /boot/initramfs-5.15.16-arm.img fdtdir /boot/dtbs/5.15.16-arm/ kaslrseed append root=UUID=92ae1e50-eeeb-4c5b-8939-7e1cd6cfb059 ro Tested on Khadas VIM with kernel 5.16.0-rc5-arm64, Debian 11. Signed-off-by: Zhang Ning <[email protected]>
2022-02-11Merge https://source.denx.de/u-boot/custodians/u-boot-usbTom Rini
2022-02-11usb: gadget: ci: Avoid null pointer dereferenceMarek Vasut
The ci_req->hw_buf can be NULL, test whether it is and if so, avoid accessing it. Else, the system may crash. Signed-off-by: Marek Vasut <[email protected]> Cc: Peter Chen <[email protected]> Cc: Li Jun <[email protected]> Cc: Peng Fan <[email protected]>
2022-02-11console: usb: kbd: Limit poll frequency to improve performanceThomas Watson
Using the XHCI driver, the function `usb_kbd_poll_for_event` takes 30-40ms to run. The exact time is dependent on the polling interval the keyboard requests in its descriptor, and likely cannot be significantly reduced without major rework to the XHCI driver. The U-Boot EFI console service sets a timer to poll the keyboard every 5 microseconds, and this timer is checked every time a block is read off disk. The net effect is that, on my system, loading a ~40MiB kernel and initrd takes about 62 seconds with a slower keyboard and 53 seconds with a faster one, with the vast majority of the time spent polling the keyboard. To solve this problem, this patch adds a 20ms delay between consecutive calls to `usb_kbd_poll_for_event`. This is sufficient to reduce the total loading time to under half a second for both keyboards, and does not impact the perceived keystroke latency. Signed-off-by: Thomas Watson <[email protected]>
2022-02-11usb: ehci-mx6: Enable OTG detection on imx8mm and imx8mnAdam Ford
The imx8mm and imx8mn appear compatible with imx7d-usb flags in the OTG driver. If the dr_mode is defined as host or peripheral, the device appears to operate correctly, however the auto host/peripheral detection results in an error. The solution isn't just adding checks for imx8mm and imx8mn to the check for imx7, because the USB clock needs to be running to read from the USBNC_PHY_STATUS_OFFSET register or it will hang. Marek requested that I not enable the clocks in ehci_usb_of_to_plat, so I modified that function to return an unknown state if the device tree does not explicitly state whether it is a host or a peripheral. When the driver probes, it looks to see if it's in the unknown state, and only then will it read the register to auto-detect. Signed-off-by: Adam Ford <[email protected]> Tested-by: Tim Harvey <[email protected]>
2022-02-10Merge branch '2022-02-10-platform-updates'Tom Rini
- Assorted Apple M1 platform updates - Drop CONFIG_SYS_RESET_ADDR, update k3-am64-sk memory values in dts
2022-02-10arm:dts:k3-am64-sk: EMIF tool update to 0.8.0 with 1333MTs for lpddr4Sinthu Raja
EMIF tool for AM64 SK is now updated to 0.8.0 that includes * disabled Write DQ training * improve CA ODT to 60 ohms The lpddr4 enabled with periodic WDQ training is causing periodic 26us stall. This makes the SoC stall without doing anything which leads to R5 interrupt latency in TCM memory. Due to this periodic training there are some outstanding CPU transactions waiting for the lpddr4 to complete. Hence, disable the periodic write DQ training during the non-initialization stage of lpddr4 which results in an approximate 1us stall. Also, update the lpddr4 config to improve CA ODT by 60 ohms The rationales are as follows: - PI_WDQLVL_EN: 2 Bits register field to support write DQ leveling, disable bit 1 that supports Write DQ during non-initialization to avoid ~26us stall during code execution. - MR11_DATA_F1/F2_x register fields value changed to 0x66 that changes the CA ODT from 48ohm to 60ohm to improve the eye margin on CA bus by increasing the signal swing. Signed-off-by: James Doublesin <[email protected]> Signed-off-by: Sinthu Raja <[email protected]>
2022-02-10apple: Fix debug uart clock rateMark Kettenis
The clock rate for the serial console on Apple M1 systems is 24 MHz instead of 240 kHz. Signed-off-by: Mark Kettenis <[email protected]>
2022-02-10common: drop CONFIG_SYS_RESET_ADDROvidiu Panait
There are no boards that define CONFIG_SYS_RESET_ADDR, so drop the remaining comments referencing it and also the config_whitelist.txt entry. Signed-off-by: Ovidiu Panait <[email protected]> Reviewed-by: Stefan Roese <[email protected]> Acked-by: [email protected]
2022-02-10powerpc: mpc8xx: drop CONFIG_SYS_RESET_ADDRESSOvidiu Panait
There are no boards that define CONFIG_SYS_RESET_ADDRESS, so drop the associated mpc8xx code that checks for it. Signed-off-by: Ovidiu Panait <[email protected]> Reviewed-by: Stefan Roese <[email protected]> Acked-by: Christophe Leroy <[email protected]>