summaryrefslogtreecommitdiff
path: root/arch/arm
AgeCommit message (Collapse)Author
2025-05-04net: ravb: Add RZ/G2L SupportPaul Barker
The Renesas R9A07G044L (RZ/G2L) SoC includes two Gigabit Ethernet interfaces which can be supported using the ravb driver. Some RZ/G2L specific steps need to be taken during initialization due to differences between this SoC and previously supported SoCs. We also need to ensure that the module reset is de-asserted after the module clock is enabled but before any Ethernet register reads/writes take place. Signed-off-by: Paul Barker <paul.barker.ct@bp.renesas.com>
2025-05-03imx95_evk: add i.MX95 19x19 EVK board basic supportYe Li
This patch adds i.MX95 19x19 EVK board basic support. Messaging unit for EdgeLock Secure Enclave, messaging unit for System Manager, uSDHC for SD Card, gpio, lpuart are supported now. Signed-off-by: Ye Li <ye.li@nxp.com> Signed-off-by: Alice Guo <alice.guo@nxp.com> Reviewed-by: Peng Fan <peng.fan@nxp.com>
2025-05-03imx: container: add V2X container support for i.MX95Ye Li
This patch adds V2X container support for i.MX95. Since V2X container may not be included in ahab-container.img of i.MX95, check if V2X container exists in order to get the correct image end. Signed-off-by: Ye Li <ye.li@nxp.com> Signed-off-by: Alice Guo <alice.guo@nxp.com> Reviewed-by: Peng Fan <peng.fan@nxp.com>
2025-05-03imx: Kconfig: IMX8_ROMAPI is not configured for i.MX95Alice Guo
i.MX95 only supports low power boot, which means A55 is kicked by M33. There is no ROM runs on A55 in such case so that deselect IMX8_ROMAPI for i.MX95. Signed-off-by: Alice Guo <alice.guo@nxp.com>
2025-05-03imx9: add i.MX95 Kconfig and MakefileYe Li
This patch adds i.MX95 Kconfig and Makefile. i.MX95 uses SCMI. Signed-off-by: Ye Li <ye.li@nxp.com> Signed-off-by: Alice Guo <alice.guo@nxp.com> Reviewed-by: Peng Fan <peng.fan@nxp.com>
2025-05-03spl: imx: use trampoline buffer to load images to secure regionYe Li
When SPL loading image to secure region, for example, ATF and tee to DDR secure region. Because the USDHC controller is non-secure master, it can't access this region and will cause loading issue. So use a trampoline buffer in non-secure region, then use CPU to copy the image from trampoline buffer to destination secure region. Signed-off-by: Ye Li <ye.li@nxp.com> Signed-off-by: Alice Guo <alice.guo@nxp.com> Reviewed-by: Peng Fan <peng.fan@nxp.com>
2025-05-03imx9: scmi: add i.MX95 SoC and clock related codePeng Fan
This patch adds i.MX95 SoC and clock related code. Because they are based on SCMI, put them in the scmi subfolder. Signed-off-by: Alice Guo <alice.guo@nxp.com> Signed-off-by: Frank Li <Frank.Li@nxp.com> Signed-off-by: Ji Luo <ji.luo@nxp.com> Signed-off-by: Jindong Yue <jindong.yue@nxp.com> Signed-off-by: Peng Fan <peng.fan@nxp.com> Signed-off-by: Ranjani Vaidyanathan <ranjani.vaidyanathan@nxp.com> Signed-off-by: Ye Li <ye.li@nxp.com>
2025-05-02Merge patch series "k3-j784s4*: Enable ESMs and related PMIC"Tom Rini
Udit Kumar <u-kumar1@ti.com> says: This series enables the ESMs and the associated PMIC. Programming these bits is a requirement to make the watchdog actually reset the board. Series supports WDT reset on all TI platforms based upon J784S4 SOC including cut down (J742S2). Bootlogs for reset AM69: https://gist.github.com/uditkumarti/dca2171aafd6d50c82159346f9a0102f#file-am69-L2466 J784S4: https://gist.github.com/uditkumarti/dca2171aafd6d50c82159346f9a0102f#file-j784s4-L2704 J742S2: https://gist.github.com/uditkumarti/dca2171aafd6d50c82159346f9a0102f#file-j742s2-L2614 Link: https://lore.kernel.org/r/20250427070323.590449-1-u-kumar1@ti.com
2025-05-02Merge patch series "board: beagle: beagley-ai: Cleanups and stdboot"Tom Rini
Nishanth Menon <nm@ti.com> says: Just happened to get a BeagleY-AI at desk and happened to test master branch (7dd49a9264a6 drivers: scsi: Add 'erase' support), noticed a few issues which were rather easy to solve.. so, here we go: Link: https://lore.kernel.org/r/20250425173120.141503-1-nm@ti.com
2025-05-02arm: dts: k3: binman: Fix DM firmware selectionAndrew Davis
Just like TF-A and OP-TEE, the documentation states a custom path for DM can be provided at build time by setting TI_DM. This should then set ti-dm-path which updates ti-dm node filenames in binman. Two issues prevent this from functioning for most K3 boards. One is when then DM firmware name is inside a blob-ext node instead of a ti-dm node. The second is when the filename in the ti-dm node is a pointer to a blob-ext node. In this case even though the filename is updated, the filename in the blob-ext is not, so build can fail if the default file in the blob-ext cannot be found, even if the updated ti-dm file does exist. Fix both of these for all K3 by removing any indirect ti-dm nodes and making sure all DM nodes are labeled with "ti-dm". Signed-off-by: Andrew Davis <afd@ti.com> Reviewed-by: Bryan Brattlof <bb@ti.com> Reviewed-by: Neha Malcom Francis <n-francis@ti.com>
2025-05-02arm: mach-k3: use CFG_MAX_MEM_SIZEBryan Brattlof
Rather than hard coding the maximum memory size, lets just define the CFG_MAX_MEM_SIZE so get_effective_memsize() will return the correct value without modification. Signed-off-by: Bryan Brattlof <bb@ti.com>
2025-05-02board: ti: am33xx: Add support for BeagleBoard Green EcoKory Maincent
SeeedStudio BeagleBone Green Eco (BBGE) is a clone of the BeagleBone Green (BBG). It has minor differences from the BBG, such as a different PMIC, a different Ethernet PHY, and a larger eMMC. The PMIC is not yet supported in mainline, but the work is ongoing. Signed-off-by: Kory Maincent <kory.maincent@bootlin.com>
2025-05-02arm: dts: k3-am69-r5-evm: Add the PMIC ESM nodeAndrew Halaney
Add the PMIC ESM node which is responsible for triggering the PMIC reset. Suggested-by: Udit Kumar <u-kumar1@ti.com> Signed-off-by: Andrew Halaney <ahalaney@redhat.com>
2025-05-02arm: dts: k3-j784s4-r5-evm: Add the PMIC ESM nodeNeha Malcom Francis
Add the PMIC ESM node which is responsible for triggering the PMIC reset. Signed-off-by: Neha Malcom Francis <n-francis@ti.com> Signed-off-by: Andrew Halaney <ahalaney@redhat.com>
2025-05-02arch: arm: dts: k3-am67a-beagley-ai-u-boot: Mark main_gpio1 as bootph-allNishanth Menon
main_gpio1 controls the voltage for the SDcard from 3.3v to 1.8v. This is required for proper operation of SDcard through various boot stages. Fixes the following seen in the boot log: failed to set vqmmc-voltage to 3.3V Signed-off-by: Nishanth Menon <nm@ti.com> Reviewed-by: Bryan Brattlof <bb@ti.com> Reviewed-by: Andrew Davis <afd@ti.com>
2025-05-02Merge patch series "Qualcomm: cleanup OF_LIVE fixup and fix RB1/2"Tom Rini
Caleb Connolly <caleb.connolly@linaro.org> says: Introduce a new event to signal that the live tree has been built, allowing boards to perform fixups on the tree before devices are bound. Crucially this allows for devices to be enabled or disabled, but also allows for properties that are parsed during the bind stage to be modified (such as dr_mode for dwc3). With this in place, mach-snapdragon is switched over to use the event and some hacky U-Boot specific DT overrides (which had to be undone prior to booting an image) are removed in favour of fixing up the livetree (which is not passed on to further boot stages). Finally, some minor fixes are made for the QCM2290 RB1 board, the sdcard is enabled and it now uses USB host mode in U-Boot like it's bigger sibling the RB2. Link: https://lore.kernel.org/r/20250411-livetree-fixup-v2-0-1236823377bb@linaro.org
2025-05-02mach-snapdragon: of_fixup: set dr_mode for RB1/2 boardsCaleb Connolly
The RB1 and RB2 have a single USB controller which is manually muxed between a type-c port and an internal USB hub via a DIP switch. OTG is supported in Linux, but the DWC3 driver in U-Boot can only handle a single mode, and defaults to peripheral mode. We did hack around this on the RB2, but the RB1 got left out. Now that we can fix up the live tree before devices are bound, drop the DTS hacks and do the fixup at runtime instead. Reviewed-by: Sumit Garg <sumit.garg@oss.qualcomm.com> Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org> Tested-by: Sumit Garg <sumit.garg@oss.qualcomm.com> Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2025-05-02mach-snapdragon: of_fixup: update commentCaleb Connolly
we don't rewrite the volume buttons any more. Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org> Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
2025-05-02mach-snapdragon: of_fixup: remove confusing log messageCaleb Connolly
The debug log here had the logic completely backwards, even though the code is actually correct. Remove it since it's extraneous anyway. Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org> Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
2025-05-02mach-snapdragon: of_fixup: skip disabled USB nodesCaleb Connolly
There's no need to waste time fixing up nodes that aren't used on this device. Skip them. Reviewed-by: Sumit Garg <sumit.garg@oss.qualcomm.com> Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org> Tested-by: Sumit Garg <sumit.garg@oss.qualcomm.com> Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2025-05-02mach-snapdragon: use EVT_OF_LIVE_INIT to apply DT fixupsCaleb Connolly
This will now apply fixups prior to devices being bound, which makes it possible to enable/disable devices and adjust more properties that might be read before devices probe. Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
2025-05-01video: Enable VIDEO_DAMAGE for drivers that need itAlexander Graf
Some drivers call video_set_flush_dcache() to indicate that they want to have the dcache flushed for the frame buffer. These drivers benefit from our new video damage control, because we can reduce the amount of memory that gets flushed significantly. This patch enables video damage control for all device drivers that call video_set_flush_dcache() to make sure they benefit from it. Signed-off-by: Alexander Graf <agraf@csgraf.de> [Alper: Add to VIDEO_TIDSS, imply instead of select] Co-developed-by: Alper Nebi Yasak <alpernebiyasak@gmail.com> Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2025-04-28Merge patch series "Apple RTKit improvements"Tom Rini
Mark Kettenis <kettenis@openbsd.org> says: This is a collection of improvements for the Apple RTKit code that we have been carrying downstream for some time now. Link: https://lore.kernel.org/r/20250420115808.94272-1-kettenis@openbsd.org
2025-04-28arm: apple: rtkit: Support allocating OSLog out of SRAM in helperHector Martin
The new OSLog region in MTP (firmware 13.3+) persists on handoff to Linux. To avoid having to come up with some weird DART handoff or DAPF tricks, let's just steal some of the coprocessor's dedicated SRAM. This keeps it happy and Linux doesn't need any special handoff then. Signed-off-by: Hector Martin <marcan@marcan.st> Signed-off-by: Mark Kettenis <kettenis@openbsd.org>
2025-04-28arm: apple: rtkit: Add endpoint field to buffersHector Martin
To be used for special-case oslog support in rtkit-helper. Signed-off-by: Hector Martin <marcan@marcan.st> Signed-off-by: Mark Kettenis <kettenis@openbsd.org>
2025-04-28arm: apple: rtkit: Add OSLog buffer supportHector Martin
This will work for u-boot itself, but needs a special workaround in the MTP driver for Linux handoff to work. Signed-off-by: Hector Martin <marcan@marcan.st> Signed-off-by: Mark Kettenis <kettenis@openbsd.org>
2025-04-28arm: apple: rtkit: Add a generic RTKit helper driverHector Martin
This driver handles the MTP ASC coprocessor, which does not need any special handling on the RTKit side and communicates out-of-band. Signed-off-by: Hector Martin <marcan@marcan.st> Signed-off-by: Mark Kettenis <kettenis@openbsd.org>
2025-04-28arm: apple: rtkit: Add default buffer handlersHector Martin
For devices without specific buffer methods, just assume we can give them raw memory pointers when they request a buffer. Signed-off-by: Hector Martin <marcan@marcan.st> Signed-off-by: Mark Kettenis <kettenis@openbsd.org>
2025-04-28arm: apple: rtkit: Add support for AP power & syslogsHector Martin
This is required for MTP to work properly Signed-off-by: Hector Martin <marcan@marcan.st> Signed-off-by: Mark Kettenis <kettenis@openbsd.org>
2025-04-28Merge tag 'u-boot-imx-master-20250428' of ↵Tom Rini
https://gitlab.denx.de/u-boot/custodians/u-boot-imx CI: https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/25974 - Fix power-domain ref counting regression. - Fix i.MX8MP USB clock regression. - Fix i.MX8MM osc_32k regression in SPL. - Finish converting clock-osc-24 back to osc_24 on i.MX. - Several imx8mp capricorn updates. - Update Stefano Babic's email address. - Fix fsl_qspi bug by moving AHB read buffer config after LUT. - Fix verdin imx95 sku 0089 pid4.
2025-04-28Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-sunxiTom Rini
We have improvements to the reliability of H6 and H616 DRAM initialisation, hopefully avoiding those occasional size misdetections many people reported before. Also there is some modernisation of the USB PHY code, to use DT provided regulators and GPIOs, instead of relying on this being badly duplicated in Kconfig. This also happens to fix broken USB operations for older boards (using the A20 SoCs, for instance), which were clashing over grabbing some GPIOs, leading to a driver bailout. There is also some rework of the H6/H616 SPL clock code, to prepare it for being reused by the upcoming Allwinner A523 support. This drops the usage of C structs to model MMIO register frames, and replaces them by using an addition of the base address with a macro defined offset. Also in preparation for A523 there is one fix and one addition for the FEL code, to prepare for the GICv3 interrupt controller that the new SoC uses. And since this is a simple fix, and was ready, there is also the watchdog driver for that new SoC. Finally tossing in an easy fix to some H616 defconfig files to enable eMMC. I also use the opportunity to enable proper page table protection (observing read-only and no-execute attributes), support for which the arm64 port recently gained. I didn't spot any issues on my arm64 board tests, but it can be easily disabled or backed out again in case any issues arise. Full support for the two new SoC series (A133 and A523) we are working on is not quite ready yet, but might follow still a bit later if progress permits. CI passed, and boot-tested on at least one board with a H616, H6, A64, H3, A20, T113s.
2025-04-28sunxi: clock: H6: remove struct sunxi_prcm_regAndre Przywara
With the SPL clock code and the DRAM init routine we converted all users of the H6 class "struct sunxi_prcm_reg" over to use #define'd register offsets now. Drop the whole definition of this struct now, since it's not needed anymore, for all H6 and H616 boards. This removes the entire fragile and questionable definition, and allows new SoCs to share the code more easily. Signed-off-by: Andre Przywara <andre.przywara@arm.com>
2025-04-28sunxi: H6/H616: dram: remove usage of struct sunxi_prcm_regAndre Przywara
The Allwinner H6 and H616 DRAM initialisation code uses a complex C struct, modelling the PRCM clock register frame. For those SoCs, this struct contains 20 registers, but the DRAM code only uses two of them. Since we want to get rid of this struct, drop the usage of the struct in the H6 and H616 DRAM code, by using #define'd register names and their offset, and then adding those names to the base pointer. This removes one more user of the PRCM clock register struct. Signed-off-by: Andre Przywara <andre.przywara@arm.com>
2025-04-28sunxi: clock: H6: drop usage of struct sunxi_prcm_regAndre Przywara
U-Boot drivers often revert to using C structures for modelling hardware register frames. This creates some problems: - A "struct" is a C language construct to group several variables together. The details of the layout of this struct are partly subject to the compiler's discretion (padding and alignment). - The "packed" attribute would force a certain layout, but we are not using it. - The actual source of information from the data sheet is the register offset. Here we create an artificial struct, carefully tuning the layout (with a lot of reserved members) to match that offset. To help with correctness, we put the desired information as a *comment*, though this is purely for the human reader, and has no effect on the generated layout. This sounds all very backwards. - Using a struct suggests we can assign a pointer and then access the register content via the members. But this is not the case, instead every MMIO register access must go through specific accessor functions, to meet the ordering and access size guarantees the hardware requires. - We share those structs in code shared across multiple SoC families, though most SoCs define their own version of the struct. Members must match in their name, across every SoC, otherwise compilation will fail. We work around this with even more #ifdefs in the shared code. - Some SoCs have an *almost* identical layout, but differ in a few registers. This requires hard to maintain #ifdef's in the struct definition. - Some of the register frames are huge: the H6 CCU device defines 127 registers. We use 15 of them. Still the whole frame would need to be described, which is very tedious, but for no reason. - Adding a new SoC often forces people to decide whether to share an existing struct, or to create a new copy. For some cases (say like 80% similarity) this works out badly either way. The Linux kernel heavily frowns upon those register structs, and instead uses a much simpler solution: #define REG_NAME <offset> This easily maps to the actual information from the data sheet, and can much simpler be shared across multiple SoCs, as it allows to have all SoC versions visible, so we can use C "if" statements instead of #ifdef's. Also it requires to just define the registers we need, and we can use alternative locations for some registers much more easily. Drop the usage of "struct sunxi_prcm_reg" in the H6 SPL clock code, by defining the respective register names and their offsets, then adding them to the base pointer. We cannot drop the struct definition quite yet, as it's also used in other drivers, still. Signed-off-by: Andre Przywara <andre.przywara@arm.com>
2025-04-28sunxi: clock: H6: remove struct sunxi_ccm_regAndre Przywara
With the SPL clock code, the MMC driver, and the DRAM init routine we converted all users of the H6 class "struct sunxi_ccm_reg" over to use #define'd register offsets now. Drop the whole definition of this struct now, since it's not needed anymore, for all H6 and H616 boards. This removes the entire fragile and questionable definition, and allows new SoCs to share the code more easily. Signed-off-by: Andre Przywara <andre.przywara@arm.com>
2025-04-28sunxi: H6: dram: remove usage of struct sunxi_ccm_regAndre Przywara
The Allwinner H6 DRAM initialisation code uses a complex C struct, modelling the clock device's register frame. For this SoC, the struct contains 127 registers, but the DRAM code only uses four of them. Since we want to get rid of this struct, drop the usage of the struct in the H6 DRAM code, by using #define'd register names and their offset, and then adding those names to the base pointer. This removes one more user of the clock register struct. Signed-off-by: Andre Przywara <andre.przywara@arm.com>
2025-04-28sunxi: H616: dram: remove usage of struct sunxi_ccm_regAndre Przywara
The Allwinner H616 DRAM initialisation code uses a complex C struct, modelling the clock device's register frame. For this SoC, the struct contains 127 registers, but the DRAM code only uses four of them. Since we want to get rid of this struct, drop the usage of the struct in the H616 DRAM code, by using #define'd register names and their offset, and then adding those names to the base pointer. This removes one more user of the clock register struct. Signed-off-by: Andre Przywara <andre.przywara@arm.com>
2025-04-28sunxi: mmc: remove usage of struct sunxi_ccm_regAndre Przywara
The Allwinner MMC code uses a complex C struct, modelling the clock device's register frame. We rely on sharing the member names across all Allwinner SoCs, which is fragile. Drop the usage of the struct in the MMC code, by using #define'd register names and their offset, and then adding those names to the base pointer. This requires to define those offsets for all SoCs, but since we only use between four and six clock registers in the MMC code, this is easily done. This removes one common user of the clock register struct. Signed-off-by: Andre Przywara <andre.przywara@arm.com>
2025-04-28sunxi: clock: H6: drop usage of struct sunxi_ccm_regAndre Przywara
U-Boot drivers often revert to using C structures for modelling hardware register frames. This creates some problems: - A "struct" is a C language construct to group several variables together. The details of the layout of this struct are partly subject to the compiler's discretion (padding and alignment). - The "packed" attribute would force a certain layout, but we are not using it. - The actual source of information from the data sheet is the register offset. Here we create an artificial struct, carefully tuning the layout (with a lot of reserved members) to match that offset. To help with correctness, we put the desired information as a *comment*, though this is purely for the human reader, and has no effect on the generated layout. This sounds all very backwards. - Using a struct suggests we can assign a pointer and then access the register content via the members. But this is not the case, instead every MMIO register access must go through specific accessor functions, to meet the ordering and access size guarantees the hardware requires. - We share those structs in code shared across multiple SoC families, though most SoCs define their own version of the struct. Members must match in their name, across every SoC, otherwise compilation will fail. We work around this with even more #ifdefs in the shared code. - Some SoCs have an *almost* identical layout, but differ in a few registers. This requires hard to maintain #ifdef's in the struct definition. - Some of the register frames are huge: the H6 CCU device defines 127 registers. We use 15 of them. Still the whole frame would need to be described, which is very tedious, but for no reason. - Adding a new SoC often forces people to decide whether to share an existing struct, or to create a new copy. For some cases (say like 80% similarity) this works out badly either way. The Linux kernel heavily frowns upon those register structs, and instead uses a much simpler solution: #define REG_NAME <offset> This easily maps to the actual information from the data sheet, and can much simpler be shared across multiple SoCs, as it allows to have all SoC versions visible, so we can use C "if" statements instead of #ifdef's. Also it requires to just define the registers we need, and we can use alternative locations for some registers much more easily. Drop the usage of "struct sunxi_ccm_reg" in the H6 SPL clock code, by defining the respective register names and their offsets, then adding them to the base pointer. We cannot drop the struct definition quite yet, as it's also used in other drivers, still. Signed-off-by: Andre Przywara <andre.przywara@arm.com>
2025-04-28sunxi: armv8: FEL: save and restore SP_IRQAndre Przywara
Thanks for Jernej's JTAG debugging effort, it turns out that the BROM expects SP_IRQ to be saved and restored, when we want to enter back into FEL after the SPL's AArch64 stint. Save and restore SP_IRQ as part of the FEL state handling. The banked MRS/MSR access to SP_IRQ, without actually being in IRQ mode, was introduced with the ARMv7 virtualisation extensions. The Arm Cortex-A8 cores used in the A10/A13s or older F1C100s SoCs would not support that, but this code here is purely in the ARMv8/AArch64 code path, so it's safe to use unconditionally. Reported-by: Jernej Skrabec <jernej.skrabec@gmail.com> Signed-off-by: Andre Przywara <andre.przywara@arm.com> Reviewed-by: Jernej Skrabec <jernej.skrabec@gmail.com>
2025-04-28sunxi: armv8: FEL: save and restore GICv3 registersAndre Przywara
To be able to return to the BootROM FEL USB debug code, we must restore the core's state as accurately as possible after the SPL has been run. Since the BootROM runs in AArch32, but the SPL uses AArch64, this requires a core reset, which clears the core's state. So far we were saving and restoring the required registers like SCTLR and VBAR, but could ignore the interrupt controller's state (GICC), since that lives in MMIO registers, unaffected by a core reset. Newer Allwinner SoCs now feature a GICv3 interrupt controller, which keeps some GIC state in architected system registers, and those are cleared when we switch back to AArch32. To enable FEL operation on the Allwinner A523 SoC, Add AArch32 assembly code to save and restore the ICC_PMR and ICC_IGRPEN1 system registers. The other GICv3 sysregs are either not relevant for the BROM operation, or haven't been changed from their reset defaults by the BROM anyway. This enables FEL operation on the Allwinner A523 family of SoCs. Signed-off-by: Andre Przywara <andre.przywara@arm.com> Reviewed-by: Jernej Skrabec <jernej.skrabec@gmail.com>
2025-04-28sunxi: Kconfig: Remove obsolete USBx_* pin symbolsAndre Przywara
Now that the USB PHY driver uses the device tree to get the VBUS detect and USB ID GPIOs, these Kconfig symbols are unused. Remove them from their Kconfig definition, and also from all defconfig files. Signed-off-by: Andre Przywara <andre.przywara@arm.com> Acked-by: Jernej Skrabec <jernej.skrabec@gmail.com>
2025-04-28sunxi: Remove obsolete USBx_VBUS_PIN Kconfig symbolsSamuel Holland
Now that the USB PHY driver uses the device tree to get VBUS supply regulators, these Kconfig symbols are unused. Remove them. Signed-off-by: Samuel Holland <samuel@sholland.org> Signed-off-by: Andre Przywara <andre.przywara@arm.com> Acked-by: Jernej Skrabec <jernej.skrabec@gmail.com>
2025-04-28sunxi: enable MMU_PGPROT proper page table protectionAndre Przywara
Select the new MMU_PGPROT Kconfig symbol for all Allwinner board builds, to use a write-protected .rodata, non-executable .data and .rodata sections, and non-writable .text sections. This might trigger runtime exceptions in misbehaving drivers, which should then be fixed. Signed-off-by: Andre Przywara <andre.przywara@arm.com> Acked-by: Jernej Skrabec <jernej.skrabec@gmail.com>
2025-04-28sunxi: h6/h616: Reuse common DRAM infrastructureJernej Skrabec
H616 rank and size detection code is superior to the H6. Nevertheless, they are structurally the same. Split functions from H616 into new file and reuse them in H6 DRAM driver too. This should also fix some bugs for H6 too, like incorrect DRAM size detection. Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com> [Andre: back out panic if test fails to allow 2^11 columns] Reviewed-by: Andre Przywara <andre.przywara@arm.com> Signed-off-by: Andre Przywara <andre.przywara@arm.com>
2025-04-28sunxi: h6: dram: split dram_para structJernej Skrabec
This change is same as in commit 78aa00c38e86 ("sunxi: H616: dram: split struct dram_para"), but for H6. This is needed in order to extract common code between H6 and H616 later. Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com> Reviewed-by: Andre Przywara <andre.przywara@arm.com>
2025-04-28sunxi: H6: DRAM: Constify function parametersJernej Skrabec
Constify parameters for two reasons: - Allow more compile time optimizations - It will allow later sharing of common code with H616 (when it will be rearranged some more) Commit does same kind of changes as commit 457e2cd665bd ("sunxi: H616: dram: const-ify DRAM function parameters") Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com> Reviewed-by: Andre Przywara <andre.przywara@arm.com>
2025-04-28arm64: dts: imx8mm: Make osc_32k available in SPLFabio Estevam
Since commit b4734c9c333b ("clk: imx: Convert clock-osc-* back to osc_*") SPL takes a long time to load U-Boot proper on an imx8mm-evk board. The reason for the long delay is because the osc_32k clock is not available in the SPL phase. Fix this problem by passing the 'bootph-all' and 'bootph-pre-ram' properties to make the osc_32k clock available in SPL. This also aligns with imx8mn and imx8mp-u-boot.dtsi files. Fixes: b4734c9c333b ("clk: imx: Convert clock-osc-* back to osc_*") Suggested-by: Marek Vasut <marex@denx.de> Signed-off-by: Fabio Estevam <festevam@denx.de> Reviewed-by: Adam Ford <aford173@gmail.com>
2025-04-26sunxi: H6: Remove useless DRAM timings parameterJernej Skrabec
This is just cosmetic fix for later easier rework. Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com> Reviewed-by: Andre Przywara <andre.przywara@arm.com>
2025-04-25arm: stm32mp: stm32prog: add support rootfs-a for OTAPatrick Delaunay
Add support of "rootfs-a" name to allow support of A/B mechanism for OTA on rootfs. Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com> Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>