- Oct 15, 2024
-
-
Sughosh Ganu authored
Use the LMB API's for allocating and freeing up memory. With this, the LMB module becomes the common backend for managing non U-Boot image memory that might be requested by other modules. Signed-off-by:
Sughosh Ganu <sughosh.ganu@linaro.org>
-
Sughosh Ganu authored
U-Boot does not use memory above ram_top. However, this memory does need to get registered as part of the memory map, so that subsystems like EFI pass it on to the operating system as part of the EFI memory map. Add memory above ram_top and reserve it with the LMB_NOOVERWRITE flag so that it does not get allocated or re-used. Signed-off-by:
Sughosh Ganu <sughosh.ganu@linaro.org> Suggested-by:
Mark Kettenis <kettenis@openbsd.org>
-
Sughosh Ganu authored
Add a flag LMB_NONOTIFY that can be passed to the LMB API's for reserving memory. This will then result in no notification being sent from the LMB module for the changes to the LMB's memory map. While here, also add a description of the memory attributes that the flags signify. Signed-off-by:
Sughosh Ganu <sughosh.ganu@linaro.org>
-
Sughosh Ganu authored
The LMB module is to be used as a backend for allocating and freeing up memory requested from other modules like EFI. These memory requests are different from the typical LMB reservations in that memory required by the EFI module cannot be overwritten, or re-requested. Add versions of the LMB API functions with flags for allocating and freeing up memory. The caller can then use these API's for specifying the type of memory that is required. For now, these functions will be used by the EFI memory module. Signed-off-by:
Sughosh Ganu <sughosh.ganu@linaro.org> Reviewed-by:
Simon Glass <sjg@chromium.org>
-
Simon Glass authored
A comment in test-main.c was not updated with the recent rename. Fix it. Signed-off-by:
Simon Glass <sjg@chromium.org> Reviewed-by:
Mattijs Korpershoek <mkorpershoek@baylibre.com>
-
Marek Vasut authored
The SPL_FIT_GENERATOR is long superseded by binman, drop SPL_FIT_GENERATOR support as there are no more users. Signed-off-by:
Marek Vasut <marex@denx.de> Reviewed-by:
Peter Robinson <pbrobinson@gmail.com> Reviewed-by:
Simon Glass <sjg@chromium.org>
-
Marek Vasut authored
The SPL_FIT_SOURCE is long superseded by SPL_FIT_GENERATOR which is long superseded by binman, drop SPL_FIT_SOURCE support as there are no more users. Signed-off-by:
Marek Vasut <marex@denx.de> Reviewed-by:
Simon Glass <sjg@chromium.org> Reviewed-by:
Peter Robinson <pbrobinson@gmail.com>
-
Andrew Goodbody authored
When the config option CMD_MISC was renamed to CMD_SLEEP the check in the test for the sleep command was not updated. Do that now. Fixes: 16060854 ("cmd: Rename CMD_MISC to CMD_SLEEP") Signed-off-by:
Andrew Goodbody <andrew.goodbody@linaro.org> Reviewed-by:
Simon Glass <sjg@chromium.org>
-
Tom Rini authored
When we have platforms being emulated by QEMU we cannot rely on the "sleep" command running for the expected wall-clock amount of time. Even with our current allowance for deviation from expected time, it will still fail from time to time. Exclude the sleep test here. Signed-off-by:
Tom Rini <trini@konsulko.com>
-
Heinrich Schuchardt authored
* Remove duplicate debug message in wget_connected() * Correct typo 'Connctd' Signed-off-by:
Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by:
Peter Robinson <pbrobinson@gmail.com> Reviewed-by:
Ilias Apalodimas <ilias.apalodimas@linaro.org>
-
Heinrich Schuchardt authored
After downloading a file with wget the file size may be needed in follow up actions, e.g. * write file to device * calculate hash Let wget set the environment variable filesize. Reviewed-by:
Ilias Apalodimas <ilias.apalodimas@linaro.org> Signed-off-by:
Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
-
Jonas Karlman authored
The commit 0252924a ("mmc: dw_mmc: Extract FIFO data transfer into a separate routine") unintentionally changed behavior of the FIFO data transfer routine. When data is read and size reaches 0 the original loop would wait on DWMCI_INTMSK_DTO or timeout. The remaining size to read and buf position is no longer tracked across dwmci_data_transfer_fifo() calls and because of this an extra call to fifo() and dwmci_fifo_ready() may now trigger a FIFO underflow timeout error and slows down FIFO reading. Buswidth = 4, clock: 50000000 Sending CMD16 Sending CMD17 dwmci_fifo_ready: FIFO underflow timeout Sending CMD16 Sending CMD18 dwmci_fifo_ready: FIFO underflow timeout Sending CMD12 ## Checking hash(es) for config config-1 ... OK This reverts commit 0252924a to restore the old working behavior. Fixes: 0252924a ("mmc: dw_mmc: Extract FIFO data transfer into a separate routine") Signed-off-by:
Jonas Karlman <jonas@kwiboo.se> Tested-by: Quentin Schulz <quentin.schulz@cherry.de> # RK3588 Tiger Reviewed-by:
Simon Glass <sjg@chromium.org>
-
Tom Rini authored
Simon Glass <sjg@chromium.org> says: This series collects together the patches from the Labgrid series which are not related to Labgrid, or at least can be applied independently of using Labgrid to run the lab. Link: https://lore.kernel.org/r/20241010002907.19383-1-sjg@chromium.org
-
Tom Rini authored
This series from Martyn Welch <martyn.welch@collabora.com> adds the ability to have a "fallback" option in extlinux.conf parsing, which can be in turn used in A/B style update mechanisms. Link: https://lore.kernel.org/u-boot/20241009131548.929439-1-martyn.welch@collabora.com/
-
Martyn Welch authored
We have added a "set" sub command to bootmeth, add some tests to check it's operation. Signed-off-by:
Martyn Welch <martyn.welch@collabora.com> Reviewed-by:
Simon Glass <sjg@chromium.org>
-
Simon Glass authored
Fix a typo in a comment. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
Martyn Welch authored
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 <sjg@chromium.org> Signed-off-by:
Martyn Welch <martyn.welch@collabora.com>
-
Simon Glass authored
Use the new handle_exception() function from ConsoleBase also. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
Martyn Welch authored
The "fallback" extlinux config option allows us to set an alternative default boot option for when it has been detected that the default is failing. Implement the logic required to boot from this option when desired. Signed-off-by:
Martyn Welch <martyn.welch@collabora.com> Reviewed-by:
Simon Glass <sjg@chromium.org>
-
Simon Glass authored
When the connection to a board dies, assume it is dead forever until some user action is taken. Skip all remaining tests. This avoids CI runs taking an hour, with hundreds of 30-second timeouts all to no avail. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
Martyn Welch authored
When configured correctly, we can detect when boot fails after the boot process has been handed over to the kernel through the use of U-Boot's bootcount support. In some instances, such as when we are performing atomic updates via a system such as OSTree, it is desirable to provide a fallback option so that we can return to a previous (hopefully working) state. Add a "fallback" option to the supported extlinux configuration options that points to a label like "default" so that we can utilise this in later commits. Signed-off-by:
Martyn Welch <martyn.welch@collabora.com> Reviewed-by:
Simon Glass <sjg@chromium.org>
-
Simon Glass authored
The tests currently catch a very broad Exception in each case. This is thrown even in the event of a coding error. We want to handle exceptions differently depending on their severity, so that we can avoid hour-long delays waiting for a board that is clearly broken. As a first step, create some new exception types, separating out those which are simply an unexpected result from executed a command, from those which indicate some kind of hardware failure. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
Simon Glass authored
There is quite a bit of code to deal with receiving data from the target so move it into its own receive() function. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
Simon Glass authored
The settings are decoded in two places. Combine them into a new function, before (in a future patch) expanding the number of items. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
Simon Glass authored
When a test returns -EAGAIN this should not be considered a failure. Fix what seems to be a problem case, where the pytests see a failure when a test has merely been skipped. We cannot squash the -EAGAIN error in ut_run_test() since the failure count is incremented by its caller, ut_run_test_live_flat() The specific example here is on snow, where a test is compiled into the image but cannot run, so returns -EAGAIN to skip: test/py/tests/test_ut.py sssnow # ut bdinfo bdinfo_test_eth Test: bdinfo_test_eth: bdinfo.c Skipping: Console recording disabled test/test-main.c:486, ut_run_test_live_flat(): 0 == ut_run_test(uts, test, test->name): Expected 0x0 (0), got 0xfffffff5 (-11) Test bdinfo_test_eth failed 1 times Skipped: 1, Failures: 1 snow # F+u-boot-test-reset snow snow The fix is simply to respect the return code from ut_run_test(), so do that. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
Simon Glass authored
Declare a constant rather than open-coding the same value twice. Signed-off-by:
Simon Glass <sjg@chromium.org> Reviewed-by:
Tom Rini <trini@konsulko.com>
-
Tom Rini authored
Merge patch series "mtd: Make sure UBIFS does not do multi-pass page programming on flashes that don't support it" Takahiro Kuwano <Takahiro.Kuwano@infineon.com> says: This series is equivalent to the one for Linux MTD submitted by Pratyush Yadav. https://patchwork.ozlabs.org/project/linux-mtd/list/?series=217759&state=* Changes in v3: - Rebase Changes in v2: - Fix an issue in setting macronix_octal_fixups - Rework fixup hooks Takahiro Kuwano (6): mtd: ubi: Do not zero out EC and VID on ECC-ed NOR flashes mtd: spi-nor: Allow flashes to specify MTD writesize mtd: spi-nor: Check nor->info before setting macronix_octal_fixups mtd: spi-nor: Replace default_init() hook with late_init() mtd: spi-nor: Call spi_nor_post_sfdp_fixups() only after spi_nor_parse_sfdp() mtd: spi-nor: Set ECC unit size to MTD writesize in Infineon SEMPER flashes drivers/mtd/spi/spi-nor-core.c | 88 +++++++++++++++++++++------------- drivers/mtd/ubi/build.c | 4 +- drivers/mtd/ubi/io.c | 9 +++- include/linux/mtd/spi-nor.h | 1 + 4 files changed, 65 insertions(+), 37 deletions(-) Link: https://lore.kernel.org/r/cover.1728964655.git.Takahiro.Kuwano@infineon.com
-
Takahiro Kuwano authored
The Infineon SEMPER NOR flash family uses 2-bit ECC by default with each ECC block being 16 bytes. Under this scheme multi-pass programming to an ECC block is not allowed. Set the writesize to make sure multi-pass programming is not attempted on the flash. Acked-by:
Tudor Ambarus <tudor.ambarus@linaro.org> Signed-off-by:
Takahiro Kuwano <Takahiro.Kuwano@infineon.com>
-
Takahiro Kuwano authored
This patch follows the upstream linux commit: 5273cc6df984("mtd: spi-nor: core: Call spi_nor_post_sfdp_fixups() only when SFDP is defined") spi_nor_post_sfdp_fixups() was called regardless of if spi_nor_parse_sfdp() had been called or not. late_init() should be instead used to initialize the parameters that are not defined in SFDP. Ideally spi_nor_post_sfdp_fixups() is called only after successful parse of SFDP. However, in case SFDP support is disabled by .config, that can break current functionality. Therefore, we would call it after spi_nor_parse_sfdp() regardless of its return value. Acked-by:
Tudor Ambarus <tudor.ambarus@linaro.org> Signed-off-by:
Takahiro Kuwano <Takahiro.Kuwano@infineon.com>
-
Takahiro Kuwano authored
default_init() is wrong, it contributes to the maze of initializing flash parameters. We'd like to get rid of it because the flash parameters that it initializes are not really used at SFDP parsing time, thus they can be initialized later. Ideally we want SFDP to initialize all the flash parameters. If (when) SFDP tables are wrong, we fix them with the post_sfdp/bfpt hooks, to emphasize that SFDP is indeed wrong. When there are parameters that are not covered by SFDP, we initialize them in late_init() - these parameters have nothing to do with SFDP and they are not needed earlier. With this we'll have a clearer view of who initializes what. There are six default_init() hooks implemented just for initializing octal_dtr_enable() and/or setup() hooks that called later on. Just moving those to late_init() does not change functionality. Suggested-by:
Tudor Ambarus <tudor.ambarus@linaro.org> Acked-by:
Tudor Ambarus <tudor.ambarus@linaro.org> Signed-off-by:
Takahiro Kuwano <Takahiro.Kuwano@infineon.com>
-
Takahiro Kuwano authored
The macronix_octal_fixups should be set only when mfr and flags match. Fixes: df3d5f9e ("mtd: spi-nor: add support for Macronix Octal flash") Acked-by:
Tudor Ambarus <tudor.ambarus@linaro.org> Signed-off-by:
Takahiro Kuwano <Takahiro.Kuwano@infineon.com> Cc: JaimeLiao <jaimeliao.tw@gmail.com>
-
Takahiro Kuwano authored
Some flashes like the Infineon SEMPER NOR flash family use ECC. Under this ECC scheme, multi-pass writes to an ECC block is not allowed. In other words, once data is programmed to an ECC block, it can't be programmed again without erasing it first. Upper layers like file systems need to be given this information so they do not cause error conditions on the flash by attempting multi-pass programming. This can be done by setting 'writesize' in 'struct mtd_info'. Set the default to 1 but allow flashes to modify it in fixup hooks. If more flashes show up with this constraint in the future it might be worth it to add it to 'struct flash_info', but for now increasing its size is not worth it. This patch replicates the following upstream linux commit: afd473e85827 ("mtd: spi-nor: core: Allow flashes to specify MTD writesize") Acked-by:
Tudor Ambarus <tudor.ambarus@linaro.org> Signed-off-by:
Takahiro Kuwano <Takahiro.Kuwano@infineon.com>
-
Takahiro Kuwano authored
For NOR flashes EC and VID are zeroed out before an erase is issued to make sure UBI does not mistakenly treat the PEB as used and associate it with an LEB. But on some flashes, like the Infineon Semper NOR flash family, multi-pass page programming is not allowed on the default ECC scheme. This means zeroing out these magic numbers will result in the flash throwing a page programming error. Do not zero out EC and VID for such flashes. A writesize > 1 is an indication of an ECC-ed flash. This patch replicates the following upstream linux commit: f669e74be820 ("ubi: Do not zero out EC and VID on ECC-ed NOR flashes") Acked-by:
Tudor Ambarus <tudor.ambarus@linaro.org> Acked-by:
Pratyush Yadav <pratyush@kernel.org> Signed-off-by:
Takahiro Kuwano <Takahiro.Kuwano@infineon.com> Reviewed-by:
Tudor Ambarus <tudor.ambarus@microchip.com>
-
Marek Vasut authored
The dtbs: target is almost identical in all architecture Makefiles. All architecture Makefiles include scripts/Makefile.dts . Deduplicate the dtbs: target into scripts/Makefile.dts . No functional change. Reviewed-by:
Sumit Garg <sumit.garg@linaro.org> Signed-off-by:
Marek Vasut <marex@denx.de> Reviewed-by:
Simon Glass <sjg@chromium.org> Tested-by: Caleb Connolly <caleb.connolly@linaro.org> #qcom, OF_UPSTREAM
-
- Oct 14, 2024
-
-
Tom Rini authored
Raymond Mao <raymond.mao@linaro.org> says: Integrate MbedTLS v3.6 LTS (currently v3.6.0) with U-Boot. Motivations: ------------ 1. MbedTLS is well maintained with LTS versions. 2. LWIP is integrated with MbedTLS and easily to enable HTTPS. 3. MbedTLS recently switched license back to GPLv2. Prerequisite: ------------- This patch series requires mbedtls git repo to be added as a subtree to the main U-Boot repo via: $ git subtree add --prefix lib/mbedtls/external/mbedtls \ https://github.com/Mbed-TLS/mbedtls.git \ v3.6.0 --squash Moreover, due to the Windows-style files from mbedtls git repo, we need to convert the CRLF endings to LF and do a commit manually: $ git add --renormalize . $ git commit New Kconfig options: -------------------- `MBEDTLS_LIB` is for MbedTLS general switch. `MBEDTLS_LIB_CRYPTO` is for replacing original digest and crypto libs with MbedTLS. `MBEDTLS_LIB_CRYPTO_ALT` is for using original U-Boot crypto libs as MbedTLS crypto alternatives. `MBEDTLS_LIB_X509` is for replacing original X509, PKCS7, MSCode, ASN1, and Pubkey parser with MbedTLS. By default `MBEDTLS_LIB_CRYPTO_ALT` and `MBEDTLS_LIB_X509` are selected when `MBEDTLS_LIB` is enabled. `LEGACY_CRYPTO` is introduced as a main switch for legacy crypto library. `LEGACY_CRYPTO_BASIC` is for the basic crypto functionalities and `LEGACY_CRYPTO_CERT` is for the certificate related functionalities. For each of the algorithm, a pair of `<alg>_LEGACY` and `<alg>_MBEDTLS` Kconfig options are introduced. Meanwhile, `SPL_` Kconfig options are introduced. In this patch set, MBEDTLS_LIB, MBEDTLS_LIB_CRYPTO and MBEDTLS_LIB_X509 are by default enabled in qemu_arm64_defconfig and sandbox_defconfig for testing purpose. Patches for external MbedTLS project: ------------------------------------- Since U-Boot uses Microsoft Authentication Code to verify PE/COFFs executables which is not supported by MbedTLS at the moment, addtional patches for MbedTLS are created to adapt with the EFI loader: 1. Decoding of Microsoft Authentication Code. 2. Decoding of PKCS#9 Authenticate Attributes. 3. Extending MbedTLS PKCS#7 lib to support multiple signer's certificates. 4. MbedTLS native test suites for PKCS#7 signer's info. All above 4 patches (tagged with `mbedtls/external`) are submitted to MbedTLS project and being reviewed, eventually they should be part of MbedTLS LTS release. But before that, please merge them into U-Boot, otherwise the building will be broken when MBEDTLS_LIB_X509 is enabled. See below PR link for the reference: https://github.com/Mbed-TLS/mbedtls/pull/9001 Miscellaneous: -------------- Optimized MbedTLS library size by tailoring the config file and disabling all unnecessary features for EFI loader. From v2, original libs (rsa, asn1_decoder, rsa_helper, md5, sha1, sha256, sha512) are completely replaced when MbedTLS is enabled. From v3, the size-growth is slightly reduced by refactoring Hash functions. From v6, smaller implementations for SHA256 and SHA512 are enabled and target size reduce significantly. Target(QEMU arm64) size-growth when enabling MbedTLS: v1: 6.03% v2: 4.66% v3 - v5: 4.55% v6: 2.90% Tests done: ----------- EFI Secure Boot test (EFI variables loading and verifying, EFI signed image verifying and booting) via U-Boot console. EFI Secure Boot and Capsule sandbox test passed. Known issues: ------------- None. Link: https://lore.kernel.org/u-boot/20241003215112.3103601-1-raymond.mao@linaro.org/
-
Raymond Mao authored
Enable MbedTLS as default setting for qemu arm64 and sandbox. Signed-off-by:
Raymond Mao <raymond.mao@linaro.org> Reviewed-by:
Ilias Apalodimas <ilias.apalodimas@linaro.org>
-
Raymond Mao authored
With MBEDTLS_LIB_X509 enabled, we don't build the original ASN1 lib, So remove it from test. Signed-off-by:
Raymond Mao <raymond.mao@linaro.org> Reviewed-by:
Ilias Apalodimas <ilias.apalodimas@linaro.org>
-
Raymond Mao authored
When building with MbedTLS, we are using MbedTLS to decode ASN1 data for x509, pkcs7 and mscode. Introduce _LEGACY and _MBEDTLS kconfigs for ASN1 decoder legacy and MbedTLS implementations respectively. Signed-off-by:
Raymond Mao <raymond.mao@linaro.org> Reviewed-by:
Ilias Apalodimas <ilias.apalodimas@linaro.org>
-
Raymond Mao authored
Previous patch has introduced MbedTLS porting layer for RSA helper, here to adjust the makefile accordingly. Signed-off-by:
Raymond Mao <raymond.mao@linaro.org> Reviewed-by:
Ilias Apalodimas <ilias.apalodimas@linaro.org>
-
Raymond Mao authored
Add RSA helper layer on top on MbedTLS PK and RSA library. Introduce _LEGACY and _MBEDTLS kconfigs for RSA helper legacy and MbedTLS implementations respectively. Signed-off-by:
Raymond Mao <raymond.mao@linaro.org> Acked-by:
Ilias Apalodimas <ilias.apalodimas@linaro.org>
-