summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-06-09FWU: Add FWU metadata access driver for MTD storage regionsMasami Hiramatsu
In the FWU Multi Bank Update feature, the information about the updatable images is stored as part of the metadata, on a separate region. Add a driver for reading from and writing to the metadata when the updatable images and the metadata are stored on a raw MTD region. The code is divided into core under drivers/fwu-mdata/ and some helper functions clubbed together under lib/fwu_updates/ Signed-off-by: Masami Hiramatsu <[email protected]> Signed-off-by: Jassi Brar <[email protected]>
2023-06-09test: dm: fwu: fix for the updated apiJassi Brar
fwu_get_mdata() no more requires 'dev' argument and fwu_check_mdata_validity() has been rendered useless and dropped. Fix the test cases to work with aforementioned changes. Signed-off-by: Jassi Brar <[email protected]> Acked-by: Ilias Apalodimas <[email protected]> Tested-by: Sughosh Ganu <[email protected]>
2023-06-09fwu: rename fwu_get_verified_mdata to fwu_get_mdataJassi Brar
fwu_get_mdata() sounds more appropriate than fwu_get_verified_mdata() Signed-off-by: Jassi Brar <[email protected]> Reviewed-by: Etienne Carriere <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]> Tested-by: Sughosh Ganu <[email protected]>
2023-06-09fwu: meta-data: switch to management by common codeJassi Brar
The common code can now read, verify and fix meta-data copies while exposing one consistent structure to users. Only the .read_mdata() and .write_mdata() callbacks of fwu_mdata_ops are needed. Get rid of .get_mdata() .update_mdata() .get_mdata_part_num() .read_mdata_partition() and .write_mdata_partition() and also the corresponding wrapper functions. Signed-off-by: Jassi Brar <[email protected]> Reviewed-by: Etienne Carriere <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]> Tested-by: Sughosh Ganu <[email protected]>
2023-06-09fwu: gpt: implement read_mdata and write_mdata callbacksJassi Brar
Moving towards using common code for meta-data management, implement the read/write mdata hooks. Signed-off-by: Jassi Brar <[email protected]> Reviewed-by: Etienne Carriere <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]> Tested-by: Sughosh Ganu <[email protected]>
2023-06-09fwu: move meta-data management in coreJassi Brar
Instead of each i/f having to implement their own meta-data verification and storage, move the logic in common code. This simplifies the i/f code much simpler and compact. Signed-off-by: Jassi Brar <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]> Tested-by: Sughosh Ganu <[email protected]>
2023-06-09fwu: gpt: use cached meta-data partition numbersJassi Brar
Use cached values and avoid parsing and scanning through partitions everytime for meta-data partitions because they can't change after bootup. Acked-by: Etienne Carriere <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]> Signed-off-by: Jassi Brar <[email protected]> Tested-by: Sughosh Ganu <[email protected]>
2023-06-09dt/bindings: fwu-mdata-mtd: drop changes outside FWUJassi Brar
Any requirement of FWU should not require changes to bindings of other subsystems. For example, for mtd-backed storage we can do without requiring 'fixed-partitions' children to also carry 'uuid', a property which is non-standard and not in the bindings. There exists no code yet, so we can change the fwu-mtd bindings to contain all properties within the fwu-mdata node. Signed-off-by: Jassi Brar <[email protected]> Acked-by: Ilias Apalodimas <[email protected]> Tested-by: Sughosh Ganu <[email protected]>
2023-06-09Merge branch 'next_soc/v3x' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-sh into next
2023-06-08Merge https://source.denx.de/u-boot/custodians/u-boot-usbTom Rini
2023-06-08Merge branch 'master_soc/fixes' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-sh
2023-06-08ARM: renesas: Add R8A77980 V3HSK board and CPLD codeValentine Barshak
Add board code for the R8A77980 V3HSK board. Add CPLD sysreset driver to the R-Car V3H SK board. Extracted from a larger patch by Valentine Barshak. Reviewed-by: Marek Vasut <[email protected]> Signed-off-by: Valentine Barshak <[email protected]> Signed-off-by: Hai Pham <[email protected]> Signed-off-by: Tam Nguyen <[email protected]> Signed-off-by: Marek Vasut <[email protected]> [Marek: Sync configs and board code with V3H Condor, squash CPLD driver in]
2023-06-08ARM: dts: renesas: Add R8A77980 V3HSK DTsValentine Barshak
Import R8A77980 V3HSK DTs from Linux 6.1.31, commit d2869ace6eeb ("Linux 6.1.31"). Extracted from a larger patch by Valentine Barshak. Reviewed-by: Marek Vasut <[email protected]> Signed-off-by: Valentine Barshak <[email protected]> Signed-off-by: Hai Pham <[email protected]> Signed-off-by: Tam Nguyen <[email protected]> Signed-off-by: Marek Vasut <[email protected]> # Sync with 6.1.31
2023-06-08ARM: renesas: Add R8A77970 V3MSK board and CPLD codeValentine Barshak
Add board code for the R8A77970 V3MSK board. Add CPLD sysreset driver to the R-Car V3M SK board. Extracted from a larger patch by Valentine Barshak. Reviewed-by: Marek Vasut <[email protected]> Signed-off-by: Valentine Barshak <[email protected]> Signed-off-by: Hai Pham <[email protected]> Signed-off-by: Tam Nguyen <[email protected]> Signed-off-by: Marek Vasut <[email protected]> [Marek: Sync configs and board code with V3M Eagle, squash CPLD driver in]
2023-06-08ARM: dts: renesas: Add R8A77970 V3MSK DTsValentine Barshak
Import R8A77970 V3MSK DTs from Linux 6.1.31, commit d2869ace6eeb ("Linux 6.1.31"). Extracted from a larger patch by Valentine Barshak. Reviewed-by: Marek Vasut <[email protected]> Signed-off-by: Valentine Barshak <[email protected]> Signed-off-by: Hai Pham <[email protected]> Signed-off-by: Tam Nguyen <[email protected]> Signed-off-by: Marek Vasut <[email protected]> # Sync with 6.1.31
2023-06-08ARM: rmobile: Introduce weak default board_init()Marek Vasut
Introduce weak default board_init() in rcar-common/common.c , which allows complete removal of ebisu.c and condor.c at the same time . Signed-off-by: Marek Vasut <[email protected]>
2023-06-08ARM: rmobile: Drop eagle.h config of R8A77970 V3M Eagle boardMarek Vasut
The eagle.h is now empty and only includes rcar-gen3-common.h . Use rcar-gen3-common.h directly instead and drop eagle.h . No functional change. Signed-off-by: Marek Vasut <[email protected]>
2023-06-08ARM: rmobile: Factor out common R-Car V3M/V3H board codeMarek Vasut
Pull common board initialization code from V3M Eagle board into rcar-common/v3-common.c so it can be re-used by other V3M/V3H boards. Signed-off-by: Marek Vasut <[email protected]>
2023-06-08ARM: rmobile: Reduce R-Car V3H Condor header usageMarek Vasut
There is no need to pull in all those headers as the board file is basically empty. Drop them all. Signed-off-by: Marek Vasut <[email protected]>
2023-06-08ARM: rmobile: Reduce R-Car E3 Ebisu header usageMarek Vasut
There is no need to pull in all those headers as the board file is basically empty. Drop them all. Signed-off-by: Marek Vasut <[email protected]>
2023-06-08ARM: rmobile: Deduplicate R-Car Gen3/Gen4 reset_cpu()Marek Vasut
The reset_cpu() implementation is basically the same across Gen3 SoCs and identical across Gen4 SoCs. Introduce weak default for reset_cpu(), so that it does not have to be duplicated in every board file again. There is a slight difference for CA53 only systems, like E3 and D3, which now check MIDR for CPU ID first just like the other systems, but this is OK since the MIDR always returns CA53 core type and the correct reset register is written. Signed-off-by: Marek Vasut <[email protected]>
2023-06-08pinctrl: renesas: r8a779a0: Remove incorrect AVB[01] pinmux configurationHai Pham
AVB[01]_{MAGIC,MDC,MDIO,TXCREFCLK} are registered as both PINMUX_SINGLE(fn) and PINMUX_IPSR_GPSR(fn) in the pinmux_data array. The latter are correct, hence remove the former. Without this fix, the Ethernet PHY is not operational on the MDIO bus. Ported from Linux kernel commit a145c9a8674ac8fbfa1595276e1b6cbfc5139038 . Signed-off-by: Hai Pham <[email protected]> Signed-off-by: LUU HOAI <[email protected]> Fixes: 741a7370fc3b8b54 ("pinctrl: renesas: Initial R8A779A0 (V3U) PFC support") Signed-off-by: Geert Uytterhoeven <[email protected]> Link: https://lore.kernel.org/r/6fd217b71e83ba9a8157513ed671a1fa218b23b6.1674824958.git.geert+renesas@glider.be --- Cc: Geert Uytterhoeven <[email protected]> Cc: Hai Pham <[email protected]> Cc: LUU HOAI <[email protected]> Cc: Marek Vasut <[email protected]>
2023-06-08ARM: rmobile: Identify R-Car D3 R8A77995 r1.1 SoCHai Pham
Add support to identify R8A77995 r1.1 SoC. Reviewed-by: Marek Vasut <[email protected]> Signed-off-by: Hai Pham <[email protected]> [Marek: Slight update to commit message, spell out the SoC model]
2023-06-08ARM: rmobile: Identify R-Car M3-W R8A7796 r1.1/1.2 SoCHiroyuki Yokoyama
r8a7796 cpu revision v1.2 has the same information as revision v1.1. This patch fixes revision display at startup to "rev 1.1/1.2". Reviewed-by: Marek Vasut <[email protected]> Signed-off-by: Hiroyuki Yokoyama <[email protected]> Signed-off-by: Hai Pham <[email protected]> [Marek: Slight update to commit message, spell out the SoC model]
2023-06-08usb: musb-new: sunxi: remove unused defineSam Edwards
This is a remnant from when the USB controller driver managed the reset signal itself. A patch from the very end of 2018 changed this driver to delegate reset (and clock) management to the proper control unit driver, but left this unused define behind. Signed-off-by: Sam Edwards <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2023-06-08Merge tag 'efi-next-20230608' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-efi into next Pull request efi-next-20230608 UEFI: * Support for firmware versions in capsule updates
2023-06-08test/py: efi_capsule: test for FMP versioningMasahisa Kojima
This test covers the FMP versioning for both raw and FIT image, and both signed and non-signed capsule update. Signed-off-by: Masahisa Kojima <[email protected]> Acked-by: Ilias Apalodimas <[email protected]>
2023-06-08test: efi_capsule: refactor efi_capsule testMasahisa Kojima
Current efi capsule python tests have much code duplication. This commit creates the common function in test/py/tests/test_efi_capsule/capsule_common.py, aim to reduce the code size and improve maintainability. Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Masahisa Kojima <[email protected]> Acked-by: Ilias Apalodimas <[email protected]>
2023-06-08doc: uefi: add anti-rollback documentationMasahisa Kojima
This commit describe the procedure to configure lowest supported version in the device tree for anti-rollback protection. Signed-off-by: Masahisa Kojima <[email protected]>
2023-06-08doc: uefi: add firmware versioning documentationMasahisa Kojima
This commit describes the procedure to add the firmware version into the capsule file. Signed-off-by: Masahisa Kojima <[email protected]>
2023-06-08mkeficapsule: add FMP Payload HeaderMasahisa Kojima
Current mkeficapsule tool does not provide firmware version management. EDK II reference implementation inserts the FMP Payload Header right before the payload. It coutains the fw_version and lowest supported version. This commit adds a new parameters required to generate the FMP Payload Header for mkeficapsule tool. '-v' indicates the firmware version. When mkeficapsule tool is invoked without '-v' option, FMP Payload Header is not inserted, the behavior is same as current implementation. The lowest supported version included in the FMP Payload Header is not used, the value stored in the device tree is used instead. Signed-off-by: Masahisa Kojima <[email protected]> Acked-by: Ilias Apalodimas <[email protected]>
2023-06-08efi_loader: check lowest supported versionMasahisa Kojima
The FMP Payload Header which EDK II capsule generation scripts insert has a firmware version. This commit reads the lowest supported version stored in the device tree, then check if the firmware version in FMP payload header of the ongoing capsule is equal or greater than the lowest supported version. If the firmware version is lower than lowest supported version, capsule update will not be performed. Signed-off-by: Masahisa Kojima <[email protected]>
2023-06-08efi_loader: get lowest supported version from device treeMasahisa Kojima
This commit gets the lowest supported version from device tree, then fills the lowest supported version in FMP->GetImageInfo(). Signed-off-by: Masahisa Kojima <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]>
2023-06-08efi_loader: versioning support in GetImageInfoMasahisa Kojima
Current FMP->GetImageInfo() always return 0 for the firmware version, user can not identify which firmware version is currently running through the EFI interface. This commit reads the "FmpStateXXXX" EFI variable, then fills the firmware version in FMP->GetImageInfo(). Now FMP->GetImageInfo() and ESRT have the meaningful version number. Signed-off-by: Masahisa Kojima <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]>
2023-06-08efi_loader: store firmware version into FmpState variableMasahisa Kojima
Firmware version management is not implemented in the current FMP protocol. EDK II reference implementation capsule generation script inserts the FMP Payload Header right before the payload, FMP Payload Header contains the firmware version and lowest supported version. This commit utilizes the FMP Payload Header, reads the header and stores the firmware version into "FmpStateXXXX" EFI non-volatile variable. XXXX indicates the image index, since FMP protocol handles multiple image indexes. Note that lowest supported version included in the FMP Payload Header is not used. If the platform uses file-based EFI variable storage, it can be tampered. The file-based EFI variable storage is not the right place to store the lowest supported version for anti-rollback protection. This change is compatible with the existing FMP implementation. This change does not mandate the FMP Payload Header. If no FMP Payload Header is found in the capsule file, fw_version, lowest supported version, last attempt version and last attempt status is 0 and this is the same behavior as existing FMP implementation. Signed-off-by: Masahisa Kojima <[email protected]>
2023-06-08efi_loader: add the number of image entries in efi_capsule_update_infoMasahisa Kojima
The number of image array entries global variable is required to support EFI capsule update. This information is exposed as a num_image_type_guids variable, but this information should be included in the efi_capsule_update_info structure. This commit adds the num_images member in the efi_capsule_update_info structure. All board files supporting EFI capsule update are updated. Signed-off-by: Masahisa Kojima <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]>
2023-06-07Merge https://source.denx.de/u-boot/custodians/u-boot-sunxiTom Rini
A small late pull request for Allwinner. The main feature is just a DT update, matching the v6.4 Linux kernel DT files. This also enables a board (LCTech Pi F1C200s) which got its .dts file merged into Linux. Plus a tiny typo fix from Sam. Gitlab CI passed, briefly tested on an H616 board and the new LCTech Pi.
2023-06-07sunxi: Fix typo in include guardSam Edwards
Signed-off-by: Sam Edwards <[email protected]> Reviewed-by: Andre Przywara <[email protected]>
2023-06-07sunxi: defconfig: Add Lctech Pi F1C200s boardAndre Przywara
The Lctech Pi F1C200s (also previously known under the Cherry Pi brand) is a small development board with the Allwinner F1C200s SoC. This is the same as the F1C100s, but with 64MB instead of 32MB co-packaged DRAM. Add a defconfig for this board, enabling the most basic features. This uses the new 64MB memory map, which avoids the very tight memory map we use for the 32MB F1C100s board(s). The devicetree file is already in the tree, courtesy of the previous Linux repo sync. Signed-off-by: Andre Przywara <[email protected]>
2023-06-07sunxi: dts: arm/arm64: update devicetree files from Linux-v6.4-rc2Andre Przywara
Sync the devicetree files from the official Linux kernel tree, v6.4-rc2. This is covering both 64-bit and 32-bit Allwinner SoCs with Arm Ltd. cores, we skip the new RISC-V bits for now, as sunxi RISC-V support is still work in progress. Among smaller cosmetic changes, this adds a SATA regulator node which we need in U-Boot to get rid of hard-coded GPIOs. Also this updates the Allwinner F1C100s DTs, enabling USB support, and also adds the DTs for two new boards. As before, this omits the non-backwards compatible changes to the R_INTC controller, to remain compatible with older kernels. Signed-off-by: Andre Przywara <[email protected]>
2023-06-07phy: rockchip-inno-usb2: Implement clock operations for usb2phy clockXavier Drudis Ferran
This clock doesn't seem needed but appears in a phandle list used by ehci-generic.c to bulk enable it. The phandle list comes from linux, where it is needed for suspend/resume to work [1]. My tests give the same results with or without this patch, but Marek Vasut found it weird to declare an empty clk_ops [2]. So I adapted the code from linux 6.1-rc8 so that it hopefully works if it ever has some user. For now, without real use, it seems to at least not give any errors when called. Link: [1] https://lkml.kernel.org/lkml/1731551.Q6cHK6n5ZM@phil/T/ [2] https://patchwork.ozlabs.org/project/uboot/patch/Y5IWpjYLB4aXMy9o@localhost/ Cc: Simon Glass <[email protected]> Cc: Philipp Tomsich <[email protected]> Cc: Kever Yang <[email protected]> Cc: Lukasz Majewski <[email protected]> Cc: Sean Anderson <[email protected]> Cc: Marek Vasut <[email protected]> Cc: Christoph Fritz <[email protected]> Cc: Jagan Teki <[email protected]> Signed-off-by: Xavier Drudis Ferran <[email protected]> Reviewed-by: Kever Yang <[email protected]> Reviewed-by: Jagan Teki <[email protected]> Tested-by: Jagan Teki <[email protected]> # rk3399, rk3328, rv1126
2023-06-07phy: rockchip-inno-usb2: Add usb2phy clock provider of 480MHz clockXavier Drudis Ferran
arch/arm/dts/rk3399.dtsi has a node usb_host0_ehci: usb@fe380000 { compatible = "generic-ehci"; with clocks: clocks = <&cru HCLK_HOST0>, <&cru HCLK_HOST0_ARB>, <&u2phy0>; The first 2 refer to nodes with class UCLASS_CLK, but &u2phy0 has class UCLASS_PHY. u2phy0: usb2phy@e450 { compatible = "rockchip,rk3399-usb2phy"; Since clk_get_bulk() only looks for devices with UCLASS_CLK, it fails with -ENODEV and then ehci_usb_probe() aborts. The consequence is peripherals connected to a USB 2 port (e.g. in a Rock Pi 4 the white port, nearer the edge) not being detected. They're detected if CONFIG_USB_OHCI_GENERIC is selected in Kconfig, because ohci_usb_probe() does not abort when one clk_get_by_index() fails, but then they work in USB 1 mode. rk3399.dtsi comes from linux and the u2phy0 was added[1] to the clock list in: commit b5d1c57299734f5b54035ef2e61706b83041f20c Author: William wu <[email protected]> Date: Wed Dec 21 18:41:05 2016 +0800 arm64: dts: rockchip: add u2phy clock for ehci and ohci of rk3399 We found that the suspend process was blocked when it run into ehci/ohci module due to clk-480m of usb2-phy was disabled. [...] Suspend concerns don't apply to U-Boot, and the problem with U-Boot failing to probe EHCI doesn't apply to linux, because in linux rockchip_usb2phy_clk480m_register makes u2phy0 a proper clock provider when called by rockchip_usb2phy_probe(). So I can think of a few alternative solutions: 1- Change ehci_usb_probe() to make it more similar to ohci_usb_probe(), and survive failure to get one clock. Looks a little harder, and I don't know whether it could break something if it ignored a clock that was important for something else than suspend. 2- Change rk3399.dtsi effectively reverting the linux commit b5d1c57299734f5b54035ef2e61706b83041f20c. This dealigns the .dtsi from linux and seems fragile at the next synchronisation. 3- Change the clock list in rk3399-u-boot.dtsi or somewhere else. This survives .dts* sync but may survive "too much" and miss some change from linux that we might want. 4- Enable CONFIG_USB_OHCI_GENERIC and use the ports in USB 1 mode. This would need to be made for all boards using rk3399. In a simple test reading one file from USB storage it gave 769.5 KiB/s instead of 20.5 MiB/s with solution 2. 5- Trying to replicate linux and have usb2phy somehow provide a clk, or have a separate clock device for usb2phy in addition to the phy device. This patch tries to implement option 5 as Marek Vasut requested in December 5th. Options 1 and 3 didn't get through [2][3]. It just registers usb2phy as a clock driver (device_bind_driver() didn't work but device_bind_driver_to_node() did), without any specific operations, so that ehci-generic.c finds it and is happy. It worked in my tests on a Rock Pi 4 B+ (rk3399). Link: [1] https://lkml.kernel.org/lkml/1731551.Q6cHK6n5ZM@phil/T/ [2] https://patchwork.ozlabs.org/project/uboot/patch/20220701185959.GC1700@begut/ [3] https://patchwork.ozlabs.org/project/uboot/patch/Y44+ayJfUlI08ptM@localhost/ Cc: Simon Glass <[email protected]> Cc: Philipp Tomsich <[email protected]> Cc: Kever Yang <[email protected]> Cc: Lukasz Majewski <[email protected]> Cc: Sean Anderson <[email protected]> Cc: Marek Vasut <[email protected]> Cc: Christoph Fritz <[email protected]> Cc: Jagan Teki <[email protected]> Signed-off-by: Xavier Drudis Ferran <[email protected]> Reviewed-by: Kever Yang <[email protected]> Reviewed-by: Jagan Teki <[email protected]> Tested-by: Jagan Teki <[email protected]> # rk3399, rk3328, rv1126
2023-06-07usb: musb-new: sunxi: fix error checkSam Edwards
The `musb_register` function returns some ERR_PTR(...) on failure, not NULL, so update the check here appropriately. Signed-off-by: Sam Edwards <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2023-06-07Merge tag 'u-boot-amlogic-20230607' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-amlogic - meson_uart empty logic fix
2023-06-07serial: meson: fix meson_serial_pending() tx logicMattijs Korpershoek
According to the dm_serial_ops documentation, pending() should: > @return number of waiting characters, 0 for none, -ve on error And: > It is acceptable to return 1 if an indeterminant number > of characters is waiting. With the current implementation, we have: * FIFO is full -> pending() returns 0 * FIFO is partially used -> pending() returns 1 * FIFO is empty -> pending() returns 1 This is not the same as what the documentation requires. Moreover, since [1], arm reset now flushes all console devices (including serial) before the cpu gets reset. Because of the flawed logic: => reset # user calls reset flush() is called _serial_flush() is called ops->pending(dev, false) # never returns false # board hangs indefinitely without resetting. Fix it by using AML_UART_TX_EMPTY instead of AML_UART_TX_FULL. [1] commit c5f4cdb8eb60 ("console: Use flush() before panic and reset"), Signed-off-by: Mattijs Korpershoek <[email protected]> Acked-by: Neil Armstrong <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Neil Armstrong <[email protected]>
2023-06-06Merge tag 'ubifixes-for-v2023-07-rc4' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-ubi ubifs changes for v2023.07-rc4 UBIFS fixes from Ben Dooks - ubifs: allow loading to above 4GiB
2023-06-06Merge tag 'for-v2023-07-rc4' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-i2c i2c updates for v2023-07-rc4 Bugfixes: - rockchip: De-initialize the bus after start bit failure from Ondrej Jirman - cdns: Fix broken retry mechanism on arbitration lost
2023-06-06ubifs: allow loading to above 4GiBBen Dooks
The ubifsload command is truncating any address above 4GiB as it casts this address to an u32, instead of using an unsigned long which most of the other load commands do. Change this to an unsigned long to allow loading into high memory for boards which use these areas. Fixes the following error: => ubifsload 0x2100000000 /boot/Image.lzma Loading file '/boot/Image.lzma' to addr 0x00000000... Unhandled exception: Store/AMO access fault Signed-off-by: Ben Dooks <[email protected]> Signed-off-by: Ben Dooks <[email protected]>
2023-06-05I2C: cdns: Fix broken retry mechanism on arbitration lost.Andrea Merello
In the current implementation, in case of I2C arbitration lost, a retry is attempted; the message counter and pointer are reset to the original values and the I2C xfer process is restart from the beginning. However the message counter and message pointer are respectively decremented and incremented by one before attempting any transfer, causing the 1st transfer not to be actually retried (in case of a single transfer, nothing is actually retried at all). This patch fixes this: in case of retry, the 1st transfer is also retried. Tested on a ZynqMP Kria board, with upstream older u-boot, but the involved file and underlying logic seem basically the same. Signed-off-by: Andrea Merello <[email protected]>
2023-06-05i2c: rockchip: De-initialize the bus after start bit failureOndrej Jirman
Failure can happen when i2c is used without initializing pinctrl properly, which U-Boot happily allows in SPL. Without this fix, further I2C access would fail, even after proper pinctrl initialization. Signed-off-by: Ondrej Jirman <[email protected]> Cc: Heiko Schocher <[email protected]> Reviewed-by: Kever Yang <[email protected]> Reviewed-by: Heiko Schocher <[email protected]>