summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-02-28tools: mkimage/dumpimage: Allow to use -l with -TPali Rohár
Currently -l option for mkimage and dumpimage ignores option -T and always tries to autodetect image type. With this change it is possible to tell mkimage and dumpimage to parse image file as specific type (and not random autodetected type). This allows to use mkimage -l or dumpimage -l as tool for validating image. params.type for -l option is now by default initialized to zero (IH_TYPE_INVALID) instead of IH_TYPE_KERNEL. imagetool_get_type() for IH_TYPE_INVALID returns NULL, which is assigned to tparams. mkimage and dumpimage code is extended to handle tparams with NULL for -l option. And imagetool_verify_print_header() is extended to do validation via tparams if is not NULL. Signed-off-by: Pali Rohár <pali@kernel.org> Reviewed-by: Simon Glass <sjg@chromium.org>
2022-02-26Merge tag 'efi-2022-04-rc3' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-efi Pull request for efi-2022-04-rc3 Documentation: * add man-page for fatload * add SMBIOS table page UEFI: * partial fix for UEFI secure boot with intermediate certs * disable watchdog when returning to command line * reset system after capsule update
2022-02-26Merge https://source.denx.de/u-boot/custodians/u-boot-shTom Rini
- rzg2_beacon updates
2022-02-26efi_loader: update the timing of enabling and disabling EFI watchdogMasahisa Kojima
UEFI specification requires that 5 minutes watchdog timer is armed before the firmware's boot manager invokes an EFI boot option. This watchdog timer is updated as follows, according to the UEFI specification. 1) The EFI Image may reset or disable the watchdog timer as needed. 2) If control is returned to the firmware's boot manager, the watchdog timer must be disabled. 3) On successful completion of EFI_BOOT_SERVICES.ExitBootServices() the watchdog timer is disabled. 1) is up to the EFI image, and 3) is already implemented in U-Boot. This patch implements 2), the watchdog is disabled when control is returned to U-Boot. In addition, current implementation arms the EFI watchdog at only the first "bootefi" invocation. The EFI watchdog must be armed in every EFI boot option invocation. Signed-off-by: Masahisa Kojima <masahisa.kojima@linaro.org> Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2022-02-26efi_loader: test/py: Reset system after capsule update on diskMasami Hiramatsu
Add a cold reset soon after processing capsule update on disk. This is required in UEFI specification 2.9 Section 8.5.5 "Delivery of Capsules via file on Mass Storage device" as; In all cases that a capsule is identified for processing the system is restarted after capsule processing is completed. This also reports the result of each capsule update so that the user can notice that the capsule update has been succeeded or not from console log. Signed-off-by: Masami Hiramatsu <masami.hiramatsu@linaro.org> Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2022-02-26test/py: Handle expected reboot while booting sandboxMasami Hiramatsu
Add expected_reset optional argument to ConsoleBase::ensure_spawned(), ConsoleBase::restart_uboot() and ConsoleSandbox::restart_uboot_with_flags() so that it can handle a reset while the 1st boot process after main boot logo before prompt correctly. Signed-off-by: Masami Hiramatsu <masami.hiramatsu@linaro.org> Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2022-02-26test/py: Handle expected reset by commandMasami Hiramatsu
Add wait_for_reboot optional argument to ConsoleBase::run_command() so that it can handle an expected reset by command execution. This is useful if a command will reset the sandbox while testing such commands, e.g. run_command("reset", wait_for_reboot = True) Signed-off-by: Masami Hiramatsu <masami.hiramatsu@linaro.org> Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2022-02-26efi_loader: use efi_update_capsule_firmware() for capsule on diskMasami Hiramatsu
Since the efi_update_capsule() represents the UpdateCapsule() runtime service, it has to handle the capsule flags and update ESRT. However the capsule-on-disk doesn't need to care about such things. Thus, the capsule-on-disk should use the efi_capsule_update_firmware() directly instead of calling efi_update_capsule(). This means the roles of the efi_update_capsule() and capsule-on-disk are different. We have to keep the efi_update_capsule() for providing runtime service API at boot time. Suggested-by: AKASHI Takahiro <takahiro.akashi@linaro.org> Signed-off-by: Masami Hiramatsu <masami.hiramatsu@linaro.org> Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
2022-02-26efi_loader: fix uefi secure boot with intermediate certsIlias Apalodimas
The general rule of accepting or rejecting an image is 1. Is the sha256 of the image in dbx 2. Is the image signed with a certificate that's found in db and not in dbx 3. The image carries a cert which is signed by a cert in db (and not in dbx) and the image can be verified against the former 4. Is the sha256 of the image in db For example SHIM is signed by "CN=Microsoft Windows UEFI Driver Publisher", which is issued by "CN=Microsoft Corporation UEFI CA 2011", which in it's turn is issued by "CN=Microsoft Corporation Third Party Marketplace Root". The latter is a self-signed CA certificate and with our current implementation allows shim to execute if we insert it in db. However it's the CA cert in the middle of the chain which usually ends up in the system's db. pkcs7_verify_one() might or might not return the root certificate for a given chain. But when verifying executables in UEFI, the trust anchor can be in the middle of the chain, as long as that certificate is present in db. Currently we only allow this check on self-signed certificates, so let's remove that check and allow all certs to try a match an entry in db. Open questions: - Does this break any aspect of variable authentication since efi_signature_verify() is used on those as well? Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2022-02-26tools: mkeficapsule: remove duplicated codeAKASHI Takahiro
That code is mistakenly duplicated due to copy-and-paste error. Just remove it. Fixes: CID 348360 Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org> Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2022-02-26doc: describe fatload commandHeinrich Schuchardt
Man-page for fatload command. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2022-02-26doc: describe generation of SMBIOS tableHeinrich Schuchardt
SMBIOS is not x86 specific. So we should have an architecture independent page describing it. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2022-02-25arm: rmobile: rzg2_beacon: Enable proper Ethernet PHYAdam Ford
The wrong phy was being enabled, because it worked and the proper PHY did not. After the Renesas maintainer made some adjustments to the device tree, Linux was able to use the proper driver, and when that device tree was ported to Linux, the ethernet stopped working due to the lack of rgmii-rxid support. Now that rgmii-rxid is supported, enable the proper driver to restore ethernet function. Fixes: 1eaf61c84db6 ("arm: dts: beacon-rzg2: Resync device trees with Linux 5.16-rc3") Signed-off-by: Adam Ford <aford173@gmail.com>
2022-02-25net: ravb: Add tx/rx delay flag checks and support for rgmii-rxidAdam Ford
Some boards like the Beacon RZ/G2 SOM use either flags for tx-internal-delay-ps, rx-internal-delay-ps or rgmii-rxid. In Linux the APSR_RDM flag is set when either rx-internal-delay-ps is set or the mode is rgmii-rxid, and the APSR_TDM is set when tx-internal-delay-ps is found or rgmii-txid is set, and both are set if rgmii-id is set. The ravb driver in U-Boot driver was missing rgmii-rxid support, so add that support in a similar fashion to what is done in Linux. Signed-off-by: Adam Ford <aford173@gmail.com>
2022-02-25Merge tag 'clk-2022.04-rc2' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-clk Clock patches for v2022.04-rc2 This has an assortment of cleanups and the occasional bugfix. Also present is the addition of the clock subsystem documentation to HTML docs. CI: https://source.denx.de/u-boot/custodians/u-boot-clk/-/pipelines/11075
2022-02-25scripts: Makefile.lib: generate dsdt_generated.c instead of dsdt.cPhilippe Reynes
There is a conflict between the static file lib/acpi/dsdt.c and the file dsdt.c generated dynamicaly by scripts/Makefile.lib. When a mrproper is done, the static file dsdt.c is removed. If a build with acpi enabled is launched after, the following error is raised: CC lib/acpi/acpi_table.o make[2]: *** No rule to make target 'lib/acpi/dsdt.asl', needed by 'lib/acpi/dsdt.c'. Stop. scripts/Makefile.build:394: recipe for target 'lib/acpi' failed To avoid such error, the generated file is named dsdt_generated.c instead of dstdt.c. Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com> Tested-by: Heiko Thiery <heiko.thiery@gmail.com>
2022-02-25cmd: clk: fix long help messagePatrick Delaunay
Fix the long help message for "clk setfreq" command Fixes: 7ab418fbe612 ("clk: add support for setting clk rate from cmdline") Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com> Reviewed-by: Sean Anderson <seanga2@gmail.com> Link: https://lore.kernel.org/r/20220131172131.4.Ic863c28ffdcc15b3f4616434c2efd88b4e45495c@changeid
2022-02-25cmd: clk: update result of do_clk_setfreqPatrick Delaunay
Update the result of do_clk_setfreq and always returns a CMD_RET_ value (-EINVAL was a possible result). This patch avoid the CLI output "exit not allowed from main input shell." Fixes: 7ab418fbe612 ("clk: add support for setting clk rate from cmdline") Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com> Reviewed-by: Sean Anderson <seanga2@gmail.com> Link: https://lore.kernel.org/r/20220131172131.3.Iec2029edb7fc0b29e13bcb86058ad2f614f62779@changeid
2022-02-25cmd: clk: replace clk_lookup by uclass_get_device_by_namePatrick Delaunay
The function clk_lookup can be replaced by a direct call to uclass_get_device_by_name for UCLASS_CLK. This patch removes duplicated codes by the generic DM API and avoids issue in clk_lookup because result of uclass_get_device wasn't tested; when ret < 0, dev = NULL and dev->name is invalid, the next function call strcmp(name, dev->name) causes a crash. Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com> Link: https://lore.kernel.org/r/20220131172131.2.I7bc7762eff1e31ab7ff5b34c416ee03b8fe52200@changeid
2022-02-25cmd: clk: test the number of argument in setfreq commandPatrick Delaunay
Test the number of argument in setfreq command to avoid a crash when the command setfreq is called without argument: STM32MP> clk setfreq data abort pc : [<ddba3f18>] lr : [<ddba3f89>] reloc pc : [<c018ff18>] lr : [<c018ff89>] sp : dbaf45b8 ip : ddb1d859 fp : 00000002 r10: dbb3fd80 r9 : dbb11e90 r8 : ddbf38cc r7 : ddb39725 r6 : 00000000 r5 : 00000000 r4 : dbb3fd84 r3 : dbb3fd84 r2 : 0000000a r1 : dbaf45bc r0 : 00000011 Flags: nzCv IRQs off FIQs off Mode SVC_32 (T) Code: 4dd3 1062 85a3 ddbd (7803) 2b30 Resetting CPU ... Fixes: 7ab418fbe612 ("clk: add support for setting clk rate from cmdline") Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com> Reviewed-by: Sean Anderson <seanga2@gmail.com> Link: https://lore.kernel.org/r/20220131172131.1.I32a8f213d330dccd922f7aafc60d3d63fcbe8615@changeid
2022-02-25clk: ccf: correct the test on the parent uclass in clk_enable/clk_disablePatrick Delaunay
It is safe to check if the uclass id on the device is UCLASS_CLK before to call the clk_ functions, but today this comparison is not done on the device used in API: clkp->dev->parent but on the device himself: clkp->dev. This patch corrects this behavior and tests if the parent device is a clock device before to call the clock API, clk_enable or clk_disable, on this device. Fixes: 0520be0f67e3 ("clk: prograte clk enable/disable to parent") Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com> Reviewed-by: Sean Anderson <seanga2@gmail.com>
2022-02-25clk: Add clk_get_by_name_optionalSean Anderson
This adds a helper function for clk_get_by_name in cases where the clock is optional. Hopefully this helps point driver writers in the right direction. Also convert some existing users. Signed-off-by: Sean Anderson <seanga2@gmail.com> Reviewed-by: Neil Armstrong <narmstrong@baylibre.com> Reviewed-by: Simon Glass <sjg@chromium.org> Link: https://lore.kernel.org/r/20220115205247.566210-2-seanga2@gmail.com
2022-02-25clk: Add driver API to HTML docsSean Anderson
This converts the existing driver API docs (clk-uclass.h) to kernel doc format and adds them to the HTML documentation. Because the kernel doc sphinx converter does not handle functions in structs very well, the individual methods are documented separately. This is primarily inspired by the phylink documentation [1], which uses this trick extensively. [1] https://www.kernel.org/doc/html/latest/networking/kapi.html#c.phylink_mac_ops Signed-off-by: Sean Anderson <seanga2@gmail.com> Tested-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Reviewed-by: Simon Glass <sjg@chromium.org> Link: https://lore.kernel.org/r/20211222171114.3091780-5-seanga2@gmail.com
2022-02-25clk: Add client API to HTML docsSean Anderson
This converts the existing client (aka clk.h) documentation to kernel doc format, and adds it to the HTML docs. I have tried to preserve existing comments as much as possible, refraining from semantic changes. Signed-off-by: Sean Anderson <seanga2@gmail.com> Tested-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Reviewed-by: Simon Glass <sjg@chromium.org> Link: https://lore.kernel.org/r/20211222171114.3091780-4-seanga2@gmail.com [rebased onto u-boot/master and resolved conflicts] Signed-off-by: Sean Anderson <seanga2@gmail.com>
2022-02-24clk: Inline clk_get_*_optionalSean Anderson
The optional varients of clk_get_* functions are just simple wrappers. Reduce code size a bit by inlining them. On platforms where it is not used (most of them), it will not be compiled in any more. On platforms where they are used, the inlined branch should not cause any significant growth. Signed-off-by: Sean Anderson <seanga2@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> Link: https://lore.kernel.org/r/20211222171114.3091780-3-seanga2@gmail.com
2022-02-24clk: Rename clk_get_optional_nodevSean Anderson
This normalizes the name of this accessor function to put "_optional" last. Signed-off-by: Sean Anderson <seanga2@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> Link: https://lore.kernel.org/r/20211222171114.3091780-2-seanga2@gmail.com
2022-02-24clk: cdce9xx: Convert .of_xlate to .requestSean Anderson
This xlate function just performs some checking. We can do this in request() instead and use the default xlate. Signed-off-by: Sean Anderson <seanga2@gmail.com> Reviewed-by: Tero Kristo <kristo@kernel.org> Link: https://lore.kernel.org/r/20211215164718.2778664-1-seanga2@gmail.com
2022-02-24clk: versaclock: Remove xlate functionSean Anderson
This function is the same as the default xlate. Remove it. Signed-off-by: Sean Anderson <seanga2@gmail.com> Reviewed-by: Adam Ford <aford173@gmail.com> Link: https://lore.kernel.org/r/20211201201317.2174547-1-seanga2@gmail.com
2022-02-24clk: Remove no-op request and rfree callbacksSean Anderson
These callbacks are optional. Remove ones which do nothing. Signed-off-by: Sean Anderson <seanga2@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> Link: https://lore.kernel.org/r/20211201195100.2173465-1-seanga2@gmail.com
2022-02-24clk: Rename ICS8N3QV01 to CLK_ICS8N3QV01Sean Anderson
This driver was missing a clock prefix. Add one. Signed-off-by: Sean Anderson <seanga2@gmail.com> Link: https://lore.kernel.org/r/20211215163620.2770126-4-seanga2@gmail.com
2022-02-24clk: Alphabetize KconfigSean Anderson
This alphabetizes the Kconfig for the clock subsystem. This will help people find their clocks, and help prevent merge conflicts. Signed-off-by: Sean Anderson <seanga2@gmail.com> Link: https://lore.kernel.org/r/20211215163620.2770126-3-seanga2@gmail.com
2022-02-24clk: Alphabetize MakefileSean Anderson
This alphabetizes the clock makefile by Kconfig option. This will help prevent merge conflicts. Signed-off-by: Sean Anderson <seanga2@gmail.com> Link: https://lore.kernel.org/r/20211215163620.2770126-2-seanga2@gmail.com
2022-02-23Merge https://gitlab.denx.de/u-boot/custodians/u-boot-usbTom Rini
- OMAP EHCI updates
2022-02-23Merge tag 'dm-pull-22222' of https://gitlab.denx.de/u-boot/custodians/u-boot-dmTom Rini
binman fixes/improvements to FIT generator binman SPL fixes moveconfig support regex matches
2022-02-23configs: omap various: Remove OMAP_EHCI_PHY from defconfigsAdam Ford
With the Kconfig options being deleted, the references to OMAP_EHCI_PHY are useless. Remove them from the various defconfigs. Signed-off-by: Adam Ford <aford173@gmail.com>
2022-02-23usb: ehci-omap: Remove OMAP_EHCI_PHYx_RESET_GPIO from KconfigAdam Ford
With the omap-ehci driver now using the phy subsystem to enable and disable reset, the driver no longer needs to know which GPIO's are used, and they can be removed from Kconfig. Signed-off-by: Adam Ford <aford173@gmail.com>
2022-02-23usb: ehci-omap: Use PHY system to manage phy resetsAdam Ford
There are a few boards that use hard-coded GPIO definitions in their respective defconfig files. If the GPIO's are listed in their device trees, the nop-phy can toggle the GPIO's, so the EHCI driver does not need to know anything about the GPIO's. Add functions for getting the phys and remove the GPIO toggles since the phy will now do that. Signed-off-by: Adam Ford <aford173@gmail.com>
2022-02-23usb: ehci-omap: Make Kconfig select PHY if USB_EHCI_OMAPAdam Ford
The USB_EHCI_OMAP driver currently has a series of Kconfig options which let users specify a GPIO for the reset pin. Some devices may have only one reset, while others might have more. Since there is a nop phy driver, let's selct enable the PHY system, and imply the nop phy driver. The nop phy driver can now toggle the reset pins when putting the phy in and out of reset. If the gpio is listed under the phy, it will get toggled and the hard-coded config options specifying the GPIO numbers can eventually go away. Signed-off-by: Adam Ford <aford173@gmail.com>
2022-02-23phy: nop-phy: Fix enabling resetAdam Ford
The reset function should place the phy into reset, while the init function should take the phy out of reset. Currently the reset function takes it out of reset, and the init calls the reset. Signed-off-by: Adam Ford <aford173@gmail.com>
2022-02-23usb: ehci-omap: Move omap_ehci_hcd_init to omap_ehci_probeAdam Ford
The OMAP3 hierarchy has the ehci node as a sub-node of the usbhshost. The usbhshost node contains an ohci and an ehci subnode. The configuration of the ehci belongs in the EHCI node and not its parent. Move it to the proper probe. usb start starting USB... Bus ehci@48064800: USB EHCI 1.00 Bus usb_otg_hs@480ab000: Port not available. scanning bus ehci@48064800 for devices... 3 USB Device(s) found scanning usb for storage devices... 1 Storage Device(s) found Signed-off-by: Adam Ford <aford173@gmail.com>
2022-02-23usb: ehci-omap: Drop dead codeAdam Ford
omap_ehci_hcd_stop appears to be dead code, and omap_ehci_hcd_init is only called by the probe function, so it can be static to that function. Remove both from the header along with some additional checking for DM_USB. Signed-off-by: Adam Ford <aford173@gmail.com>
2022-02-22scripts: dtc: libfdt: fdt_ro.c: always define fdt_check_fullPhilippe Reynes
On some configs (like stm32mp15_dhcom_basic_defconfig), if configs SPL_LOAD_FIT_FULL and SPL_FIT_FULL_CHECK are enabled. Then the compilatio fails with the following error: arm-linux-gnueabi-ld.bfd: boot/image-fit.o: in function `fit_check_format': <PATH>/uboot/u-boot-stm/boot/image-fit.c:1641: undefined reference to `fdt_check_full' scripts/Makefile.spl:509: recipe for target 'spl/u-boot-spl' failed This issue happens because the function fdt_check_full is only defined if "!defined(FDT_ASSUME_MASK) || FDT_ASSUME_MASK != 0xff". But this function may be called even if this condition are not verified. To avoid this issue, the function fdt_check_full is always defined. Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2022-02-22phy: phy-uclass: check the parents for physAngus Ainslie
The port/hub leaf nodes don't contain the phy definitions in some dts files so check the parents. Signed-off-by: Angus Ainslie <angus@akkea.ca> Reviewed-by: Simon Glass <sjg@chromium.org>
2022-02-22binman: Allow different operations in FIT generator nodesSimon Glass
At present we only support expanding out FDT nodes. Make the operation into an @operation property, so that others can be supported. Re-arrange and tidy up the documentation so that it has separate headings for each topic. Signed-off-by: Simon Glass <sjg@chromium.org>
2022-02-22binman: Tidy up the docs a little with fitSimon Glass
Add a few quotes and clarify the data property. Signed-off-by: Simon Glass <sjg@chromium.org>
2022-02-22binman: fit: Refactor to reduce function sizeSimon Glass
Split subnode and property processing into separate functions to make the _AddNode() function a little smaller. Tweak a few comments. This does not change any functionality. Signed-off-by: Simon Glass <sjg@chromium.org>
2022-02-22binman: Move entry-data collection into a Entry methodSimon Glass
Collecting the data from a list of entries and putting it in a file is a useful operation that will be needed by other entry types. Put this into a method in the Entry class. Add some documentation about how to collect data for an entry type. Signed-off-by: Simon Glass <sjg@chromium.org>
2022-02-22binman: Add a ELF test file with disjoint text sectionsSimon Glass
Add a file that has two text sections at different addresses, so we can test this behaviour in binman, once added. Signed-off-by: Simon Glass <sjg@chromium.org>
2022-02-22binman: Support a list of strings with the mkimage etypeSimon Glass
At present the 'args' property of the mkimage entry type is a string. This makes it difficult to include CONFIG options in that property. In particular, this does not work: args = "-n CONFIG_SYS_SOC -E" since the preprocessor does not operate within strings, nor does this: args = "-n" CONFIG_SYS_SOC" "-E" since the device tree compiler does not understand string concatenation. With this new feature, we can do: args = "-n", CONFIG_SYS_SOC, "-E"; Signed-off-by: Simon Glass <sjg@chromium.org>
2022-02-22binman: Add to the TODOSimon Glass
Add some ideas that have come to mind recently. Signed-off-by: Simon Glass <sjg@chromium.org>