aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2023-10-27Merge tag 'tpm-next-27102023' of ↵WIP/27Oct2023Tom Rini24-1063/+1492
https://source.denx.de/u-boot/custodians/u-boot-tpm bootX measurements and measurement API moved to u-boot core: Up to now, U-Boot could perform measurements and EventLog creation as described by the TCG spec when booting via EFI. The EFI code was residing in lib/efi_loader/efi_tcg2.c and contained both EFI specific code + the API needed to access the TPM, extend PCRs and create an EventLog. The non-EFI part proved modular enough and moving it around to the TPM subsystem was straightforward. With that in place we can have a common API for measuring binaries regardless of the boot command, EFI or boot(m|i|z), and contructing an EventLog. I've tested all of the EFI cases -- booting with an empty EventLog and booting with a previous stage loader providing one and found no regressions. Eddie tested the bootX part. Eddie also fixed the sandbox TPM which couldn't be used for the EFI code and it now supports all the required capabilities. This had a slight sideeffect in our testing since the EFI subsystem initializes the TPM early and 'tpm2 init' failed during some python tests. That code only opens the device though, so we can replace it with 'tpm2 autostart' which doesn't error out and still allows you to perfom the rest of the tests but doesn't report an error if the device is already opened. There's a few minor issues with this PR as well but since testing and verifying the changes takes a considerable amount of time, I prefer merging it now. Heinrich has already sent a PR for -master containing "efi_loader: fix EFI_ENTRY point on get_active_pcr_banks" and I am not sure if that will cause any conflicts, but in any case they should be trivial to resolve. Both the EFI and non-EFI code have a Kconfig for measuring the loaded Device Tree. The reason this is optional is that we can't reason when/if devices add random info like kaslr-seed, mac addresses etc in the DT. In that case measurements are random, board specific and eventually useless. The reason it was difficult to fix it prior to this patchset is because the EFI subsystem and thus measurements was brought up late and DT fixups might have already been applied. With this patchset we can measure the DT really early in the future. Heinrich also pointed out that the two Kconfigs for the DTB measurements can be squashed in a single one and that the documentation only explains the non-EFI case. I agree on both but as I said this is a sane working version, so let's pull this first it's aleady big enough and painful to test.
2023-10-27Merge tag 'u-boot-amlogic-20231027' of ↵Tom Rini48-7/+687
https://source.denx.de/u-boot/custodians/u-boot-amlogic - Fix environment saving for new Android boot features on vim3*_android - Add SPIFC support for Amlogic A1 - Add DFU RAM boot step when booting over USB
2023-10-27Merge https://source.denx.de/u-boot/custodians/u-boot-marvellTom Rini13-67/+200
- kirkwood: Enable bootstd on some boards (Tony) - mvebu: turris_mox: Extend to support RIPE Atlas Probe (Marek) - mvebu/bubt: Support eMMC data partition booting (Josua)
2023-10-27test/py: always use autostart on tpm2 selftestsIlias Apalodimas1-2/+2
commit 789ed2784256 ("test/py: replace 'tpm2 init, startup, selftest' sequences") changed some of the tpm2 init sequences to 'tpm2 autostart' instead of calling 'tpm init', 'tpm startup TPM2_SU_CLEAR', 'tpm2 self_test full'. The autostart command calls the afforementioned sequence and on top of that deals with the 'tpm2 init' return codes if the tpm is already started. Since we initialize the tpm from various subsystems now, replace the last remaining instances of 'tpm2 init' with 'tpm2 autostart'. Since the latter calls 'tpm2 init' anyway we will still be implicitly testing the validity of that command It's worth noting that since 'tpm2 autostart' performs the startup and self tests sequences of the tpm we could drop 'test_tpm2_sandbox_self_test_full' and 'test_tpm2_startup, but let's keep the since they test tpm commands and options Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2023-10-27test: use a non system PCR for testing PCR extendIlias Apalodimas1-8/+8
We currently use PCR 0 for testing the PCR read/extend functionality in our selftests. How ever those PCRs are defined by the TCG spec for platform use. For example if the tests run *after* the efi subsystem initialization, which extends PCRs 0 & 7 it will give a false positive. So let's switch over to a PCR which is more suitable and is defined for OS use. It's worth noting that we are using PCR10 here, since PCR9 is used internally by U-Boot if we choose to measure the loaded DTB Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2023-10-27efi_loader: fix EFI_ENTRY point on get_active_pcr_banksIlias Apalodimas1-2/+2
efi_tcg2_get_active_pcr_banks doesn't immediately call the EFI_ENTRY() wrapper once it enters the function. Move the call a few lines above to cover the error cases properly as well. Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2023-10-27doc: Add measured boot documentationEddie James2-0/+32
Briefly describe the feature and specify the requirements. Signed-off-by: Eddie James <eajames@linux.ibm.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org> Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2023-10-27test: Add sandbox TPM boot measurementEddie James7-0/+99
Use the sandbox TPM driver to measure some boot images in a unit test case. Signed-off-by: Eddie James <eajames@linux.ibm.com> Reviewed-by: Simon Glass <sjg@chromium.org> Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org> Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2023-10-27bootm: Support boot measurementEddie James7-0/+122
Add a configuration option to measure the boot through the bootm function. Add the measurement state to the booti and bootz paths as well. Signed-off-by: Eddie James <eajames@linux.ibm.com> Reviewed-by: Simon Glass <sjg@chromium.org> Ilias: Added some info on Kconfig explaining this is when booting !EFI Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2023-10-27tpm: Support boot measurementsEddie James5-1020/+1154
Add TPM2 functions to support boot measurement. This includes starting up the TPM, initializing/appending the event log, and measuring the U-Boot version. Much of the code was used in the EFI subsystem, so remove it there and use the common functions. Signed-off-by: Eddie James <eajames@linux.ibm.com> For the API moving around from EFI -> u-boot core Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org> For EFI testing Tested-by: Ilias Apalodimas <ilias.apalodimas@linaro.org> Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2023-10-27tpm: sandbox: Update for needed TPM2 capabilitiesEddie James2-30/+72
The driver needs to support getting the PCRs in the capabilities command. Fix various other things and support the max number of PCRs for TPM2. Remove the !SANDBOX dependency for EFI TCG2 as well. Signed-off-by: Eddie James <eajames@linux.ibm.com> Reviewed-by: Simon Glass <sjg@chromium.org> Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org> Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2023-10-27tpm: Fix spelling for tpmu_ha unionEddie James1-2/+2
tmpu -> tpmu Signed-off-by: Eddie James <eajames@linux.ibm.com> Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org> Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2023-10-26ARM: amlogic: ad401: enable SPIFCIgor Prusov1-0/+1
Enable Amlogic A1 SPI FLash Controller support. Signed-off-by: Igor Prusov <ivprusov@sberdevices.ru> Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org> Link: https://lore.kernel.org/r/20231024225140.366571-3-ivprusov@sberdevices.ru Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2023-10-26spi: add support for Amlogic A1 SPI Flash ControllerIgor Prusov3-0/+394
Add A1 SPIFC driver from Linux. Slightly modified to use u-boot driver framework and accommodate to lack of ioread32_rep/iowrite32_rep. Based on Linux version 6.6-rc4 Signed-off-by: Igor Prusov <IVPrusov@sberdevices.ru> Signed-off-by: Martin Kurbanov <mmkurbanov@sberdevices.ru> Reviewed-by: Simon Glass <sjg@chromium.org> Link: https://lore.kernel.org/r/20231024225140.366571-2-ivprusov@sberdevices.ru Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2023-10-26ARM: meson: enable USB DFU + RAM on Amlogic boards with USB GadgetNeil Armstrong31-0/+62
Enable DFU as an alternate USB boot method when script wasn't uploaded, this fixes USB full boot on G12/SM1 boards. Link: https://lore.kernel.org/r/20231023-usb-dfu-boot-v1-4-df9d121c67c1@linaro.org [narmstrong: remove dfu from ad401] Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2023-10-26configs: meson64: add alternate USB DFU boot targetNeil Armstrong1-0/+26
Add boot over DFU RAM as an alternate to running script at a fixed address like done today. The main culprit is that it's not possible to do that on G12A/Sm1 platforms due to changes in the USB boot protocol. With this, U-Boot will present a DFU device with a ram slot where the Host could write a fitImage or legacy U-Boot image, then with the detach command boot will continue trying to boot the uploaded image. Signed-off-by: Neil Armstrong <narmstrong@baylibre.com> Link: https://lore.kernel.org/r/20231023-usb-dfu-boot-v1-3-df9d121c67c1@linaro.org Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2023-10-26configs: meson64: declare addr out of EXTRA_ENV_SETTINGSNeil Armstrong1-7/+16
In order to reuse addresses for DFU RAM, define them separately, it's cleaner and will be easier to override. Link: https://lore.kernel.org/r/20231023-usb-dfu-boot-v1-2-df9d121c67c1@linaro.org Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2023-10-26ARM: meson: enable FIT with LEGACY_IMAGE_FORMAT on all configsNeil Armstrong43-0/+172
Allow all boards to boot with a fitImage, but keep support for Legacy image format for now. Link: https://lore.kernel.org/r/20231023-usb-dfu-boot-v1-1-df9d121c67c1@linaro.org Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2023-10-26configs: khadas-vim3*_android: fix environment savingMattijs Korpershoek4-0/+16
The environment is used to configure some additional boot features such as: * extra boot arguments * enable AVB (Android Verified Boot) verification Right now, we cannot store it in eMMC: Loading Environment from nowhere... OK Fix it by enabling the appropriate options in the defconfig Fixes: b749d5ecdc06 ("configs: meson64_android: define raw parts for bootloader") Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com> Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org> Link: https://lore.kernel.org/r/20231026-fix-saveenv-v1-1-6aa59be65481@baylibre.com Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2023-10-26arm: kirkwood: Enable bootstd for Zyxel NSA310S boardTony Dinh2-16/+4
Enable bootstd for Zyxel NSA310S board, and remove distroboot. Signed-off-by: Tony Dinh <mibodhi@gmail.com> Reviewed-by: Stefan Roese <sr@denx.de>
2023-10-26cmd: mvebu/bubt: move eMMC data-partition uboot from LBA-0 to 4096Josua Mayer1-2/+9
A38x bootrom only searches 2 sectors when booting from eMMC, irregardless of data or boot partition: 0 & 4096. For eMMC boot partitions sector 0 is fine, but on data partition it conflicts with MBR. Change bubt command default to 4096 for eMMC data partition only, to allow using an MBR partition table on the eMMC data partition while also booting from it. Signed-off-by: Josua Mayer <josua@solid-run.com> Reviewed-by: Stefan Roese <sr@denx.de>
2023-10-26arm: mvebu: allow additional 4096 offset for bootable mmc imageJosua Mayer1-2/+3
Disarm the error message forcing u-boot/spl image to be located at sector 0 on eMMC data-partition and microSD. Offset 0 makes sense on eMMC boot partitions only, data partition must use 4096 to avoid conflicting with MBR. Valid offsets when booting from microSD, reported by boot-rom v1.73: BootROM: Bad header at offset 00000200 BootROM: Bad header at offset 00004400 BootROM: Bad header at offset 00200000 BootROM: Bad header at offset 00400000 BootROM: Bad header at offset 00600000 BootROM: Bad header at offset 00800000 BootROM: Bad header at offset 00A00000 BootROM: Bad header at offset 00C00000 BootROM: Bad header at offset 00E00000 BootROM: Bad header at offset 01000000 BootROM: Bad header at offset 01200000 BootROM: Bad header at offset 01400000 BootROM: Bad header at offset 01600000 BootROM: Bad header at offset 01800000 BootROM: Bad header at offset 01A00000 BootROM: Bad header at offset 01C00000 BootROM: Bad header at offset 01E00000 BootROM: Bad header at offset 02000000 BootROM: Bad header at offset 02200000 BootROM: Bad header at offset 02400000 BootROM: Bad header at offset 02600000 BootROM: Bad header at offset 02800000 BootROM: Bad header at offset 02A00000 BootROM: Bad header at offset 02C00000 BootROM: Bad header at offset 02E00000 Valid offsets when booting from eMMC: BootROM: Bad header at offset 00000000 BootROM: Bad header at offset 00200000 Switching BootPartitions. BootROM: Bad header at offset 00000000 BootROM: Bad header at offset 00200000 Fixes: 2226ca17348 ("arm: mvebu: Load U-Boot proper binary in SPL code based on kwbimage header") Signed-off-by: Josua Mayer <josua@solid-run.com> Reviewed-by: Stefan Roese <sr@denx.de>
2023-10-26arm: kirkwood: Enable bootstd for Pogo V4 boardTony Dinh2-34/+4
Enable bootstd for Pogo V4 board, and remove distroboot. Signed-off-by: Tony Dinh <mibodhi@gmail.com> Reviewed-by: Stefan Roese <sr@denx.de>
2023-10-26arm: mvebu: turris_mox: Extend to support RIPE Atlas ProbeMarek Behún7-13/+180
Extend Turris Mox board code to support CZ.NIC's RIPE Atlas Probe. Signed-off-by: Marek Behún <kabel@kernel.org> Reviewed-by: Stefan Roese <sr@denx.de>
2023-10-24Merge branch '2023-10-24-assorted-general-fixes-and-updates'Tom Rini179-160/+1657
- Remove common.h in a number of places and make checkpatch.pl complain about its use in all cases, allow the mbr command to handle 4 primary partitions, fix an issue with the pstore command, fix a problem with cli parsing of escape sequences, remove and ignore more files, allow for the serial port to be flushed with every print (for debugging), and add SCMI power domain support.
2023-10-24serial: introduce CONFIG_CONSOLE_FLUSH_ON_NEWLINERasmus Villemoes2-2/+16
When debugging, one sometimes only gets partial output lines or nothing at all from the last printf, because the uart has a largish buffer, and the code after the printf() may cause the CPU to hang before the uart IP has time to actually emit all the characters. That can be very confusing, because one doesn't then know exactly where the hang happens. Introduce a config knob allowing one to wait for the uart fifo to drain whenever a newline character is printed, roughly corresponding to the effect of setvbuf(..., _IOLBF, ...) in ordinary C programs. Since this uses IS_ENABLED() instead of cpp ifdef, we can remove the ifdef around the _serial_flush() definition - if neither CONSOLE_FLUSH_SUPPORT or CONSOLE_FLUSH_ON_NEWLINE are enabled, the compiler elides _serial_flush(), but it won't warn about it being unused. Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk> Reviewed-by: Simon Glass <sjg@chromium.org>
2023-10-24serial: serial-uclass.c: move definition of _serial_flush up a bitRasmus Villemoes1-12/+12
Preparation for next patch. Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
2023-10-24test: dm: add SCMI power domain protocol testAKASHI Takahiro1-0/+103
This ut has tests for the SCMI power domain protocol as well as DM interfaces for power domain devices. Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org> Reviewed-by: Simon Glass <sjg@chromium.org>
2023-10-24sandbox: add SCMI power domain protocol support for testingAKASHI Takahiro5-1/+302
SCMI power domain management protocol is supported on sandbox for test purpose. Add fake agent interfaces and associated power domain devices. Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org> Reviewed-by: Simon Glass <sjg@chromium.org>
2023-10-24power: domain: add SCMI driverAKASHI Takahiro5-0/+213
Add power domain driver based on SCMI power domain management protocol. Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
2023-10-24firmware: scmi: add power domain protocol supportAKASHI Takahiro3-0/+367
In this patch, added are helper functions to directly manipulate SCMI power domain management protocol. DM compliant power domain driver will be implemented on top of those interfaces in a succeeding patch. Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
2023-10-24cmd: mbr: Allow 4 MBR partitions without need for extendedAlexander Gendin10-4/+506
Current code allows up to 3 MBR partitions without extended one. If more than 3 partitions are required, then extended partition(s) must be used. This commit allows up to 4 primary MBR partitions without the need for extended partition. Add mbr test unit. In order to run the test manually, mmc6.img file of size 12 MiB or greater is required in the same directory as u-boot. Test also runs automatically via ./test/py/test.py tool. Running mbr test is only supported in sandbox mode. Signed-off-by: Alex Gendin <agendin@matrox.com> [ And due to some further changes for testing ] Signed-off-by: Simon Glass <sjg@chromium.org>
2023-10-24pstore: Use root address-cells/size-cells as defaults for reserved-memoryAndrey Skvortsov1-2/+8
u-boot adds reserve-memory node, if it's missing, with following properties: ``` reserved-memory { #address-cells = <2>; #size-cells = <2>; ranges; } ``` But with these default address-cells and size-cells values, pstore isn't working on A64. Root node for A64 defines 'address-cells' and 'size-cells' as 1. dtc complains if reserved-memory has different address-cells and size-cells. ``` Warning (ranges_format): /reserved-memory:ranges: empty "ranges" property but its #address-cells (2) differs from / (1) ``` This patch takes into account address-cells and size-cells of the root node and uses them as values for new reserved-memory node. Signed-off-by: Andrey Skvortsov <andrej.skvortzov@gmail.com>
2023-10-24.gitignore: ignore misc include, simple-bin, and tools/generated build artifactsJohn Clark1-1/+6
make rock5b-rk3588_defconfig make git status before ~~~~~~~ On branch master Your branch is ahead of 'origin/master' by 1 commit. (use "git push" to publish your local commits) Untracked files: (use "git add <file>..." to include in what will be committed) include/autoconf.mk include/autoconf.mk.dep include/config.h mkimage-in-simple-bin-spi.mkimage-rockchip-tpl mkimage-in-simple-bin-spi.mkimage-u-boot-spl mkimage-in-simple-bin.mkimage-rockchip-tpl mkimage-in-simple-bin.mkimage-u-boot-spl simple-bin-spi.map simple-bin.fit.fit simple-bin.fit.itb simple-bin.map tools/generated/ after ~~~~~~~ On branch master Your branch is ahead of 'origin/master' by 1 commit. (use "git push" to publish your local commits) nothing to commit, working tree clean Signed-off-by: John Clark <inindev@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2023-10-24Makefile: remove misc include and simple-bin build artifacts on cleanJohn Clark1-3/+3
make rock5b-rk3588_defconfig make make clean git status before ~~~~~~~ On branch master Your branch is up to date with 'origin/master'. Untracked files: (use "git add <file>..." to include in what will be committed) include/autoconf.mk include/autoconf.mk.dep include/config.h mkimage-in-simple-bin-spi.mkimage-rockchip-tpl mkimage-in-simple-bin-spi.mkimage-u-boot-spl mkimage-in-simple-bin.mkimage-rockchip-tpl mkimage-in-simple-bin.mkimage-u-boot-spl simple-bin.fit.fit simple-bin.fit.itb after ~~~~~~~ On branch master Your branch is ahead of 'origin/master' by 1 commit. (use "git push" to publish your local commits) nothing to commit, working tree clean Signed-off-by: John Clark <inindev@gmail.com>
2023-10-24riscv: Remove common.h usageTom Rini34-32/+9
We can remove common.h from most cases of the code here, and only a few places need an additional header instead. Signed-off-by: Tom Rini <trini@konsulko.com> Reviewed-by: Rick Chen <rick@andestech.com>
2023-10-24mips: Remove common.h usageTom Rini46-47/+4
We can remove common.h from most cases of the code here, and only a few places need an additional header instead. Signed-off-by: Tom Rini <trini@konsulko.com>
2023-10-24microblaze: Remove common.h usageTom Rini10-9/+7
We can remove common.h from most cases of the code here, and only a few places need an additional header instead. Signed-off-by: Tom Rini <trini@konsulko.com> Acked-by: Michal Simek <michal.simek@amd.com>
2023-10-24m68k: Remove common.h usageTom Rini39-30/+17
We can remove common.h from most cases of the code here, and only a few places need an additional header instead. Signed-off-by: Tom Rini <trini@konsulko.com> Acked-by: Angelo Dureghello <angelo@kernel-space.org>
2023-10-24arc: Remove common.h usageTom Rini16-15/+3
We can remove common.h from most cases of the code here, and only a few places need an additional header instead. Signed-off-by: Tom Rini <trini@konsulko.com> Acked-by: Alexey Brodkin <abrodkin@synopsys.com>
2023-10-24include: Add <linux/types.h> in a few placesTom Rini3-0/+5
These files references a number of types that are defined in <linux/types.h> (and so forth), so include it here rather than rely on indirect inclusion. Signed-off-by: Tom Rini <trini@konsulko.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2023-10-24patman: Add a little documentation on the checkpatch testsSimon Glass1-0/+49
These texts lack comments. Add some so that it is clearer what is going on. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-10-24checkpatch.pl: Make common.h check boarderTom Rini2-4/+15
At this point in time we should not add common.h to any new files, so make checkpatch.pl complain. Signed-off-by: Tom Rini <trini@konsulko.com> Signed-off-by: Simon Glass <sjg@chromium.org>
2023-10-24cli: Consume invalid escape sequences earlyYurii Monakov2-0/+14
Unexpected 'Esc' key presses are accumulated internally, even if it is already clear that the current escape sequence is invalid. This results in weird behaviour. For example, the next character after 'Esc' key simply disappears from input and 'Unknown command' is printed after 'Enter'. This commit fixes some issues with extra 'Esc' keys entered by user: 1. Sequence <Esc><Esc><Enter> right after autoboot stop gives: => nknown command 'ry 'help' => 2. Sequence <Esc><p><r><i><Enter> gives: => ri Unknown command 'ri' - try 'help' => 3. Extra 'Esc' key presses break backspace functionality. Signed-off-by: Yurii Monakov <monakov.y@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2023-10-24Merge tag 'u-boot-rockchip-20231024' of ↵WIP/24Oct2023Tom Rini57-295/+5472
https://source.denx.de/u-boot/custodians/u-boot-rockchip - Add Board: rk3588 NanoPC-T6, Orange Pi 5, Orange Pi 5 Plus; - clk driver fix for rk3568 and rk3588; - rkmtd cmd support for rockchip nand device; - dts update and sync from linux;
2023-10-24Merge tag 'u-boot-imx-20231024' of ↵Tom Rini17-29/+184
https://gitlab.denx.de/u-boot/custodians/u-boot-imx u-boot-imx-20231024 ------------------- CI: https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/18211 - Fixes for MC2432 Eeprom - i.MX93 ADC - Secondary boot mode on i.MX8M
2023-10-24rockchip: configs: sandbox: enable rkmtd commandJohan Jonker2-0/+2
Enable rkmtd command for testing with sandbox_defconfig and sandbox64_defconfig. Signed-off-by: Johan Jonker <jbx6244@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2023-10-24rockchip: doc: add rkmtd.rstJohan Jonker2-0/+106
Add documention for Rockchip rkmtd virtual block device. Signed-off-by: Johan Jonker <jbx6244@gmail.com> Reviewed-by: Kever Yang <kever.yang@rock-chips.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2023-10-24rockchip: test: dm: add rkmtd testJohan Jonker2-0/+201
Add Rockchip rkmtd test: Create/attach/detach RKMTD device. Send/read data with Rockchip boot block header. Test that reusing the same label should work. Basic test of 'rkmtd' commands. Signed-off-by: Johan Jonker <jbx6244@gmail.com> Reviewed-by: Kever Yang <kever.yang@rock-chips.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2023-10-24rockchip: cmd: add rkmtd commandJohan Jonker3-0/+213
The command rkmtd creates a virtual block device to transfer Rockchip boot block data to and from NAND with block orientated tools like "ums" and "rockusb". It uses the Rockchip MTD driver to scan for boot blocks and copies data from the first block in a GPT formated virtual disk. Data must be written in U-boot "idbloader.img" format and start at partition "loader1" offset 64. The data header is parsed for length and offset. When the last sector is received it erases up to 5 erase blocks on NAND and writes bootblocks in a pattern depending on the NAND ID. Data is then verified. When a block turns out bad the block header is discarded. Signed-off-by: Johan Jonker <jbx6244@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>