summaryrefslogtreecommitdiff
path: root/arch/arm/include
AgeCommit message (Collapse)Author
2022-07-11Merge branch 'next'Tom Rini
2022-07-08arm: Remove strongarm supportTom Rini
There are no platforms using this architecture anymore, remove it. Signed-off-by: Tom Rini <[email protected]>
2022-07-07Convert CONFIG_SYS_BOOT_RAMDISK_HIGH to KconfigTom Rini
This converts the following to Kconfig: CONFIG_SYS_BOOT_RAMDISK_HIGH Signed-off-by: Tom Rini <[email protected]>
2022-07-07arm: Remove PXA architecture supportTom Rini
With the last platform for this architecture removed, remove the rest of the architecture support as well. Cc: Marek Vasut <[email protected]> Signed-off-by: Tom Rini <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2022-07-07layerscape: Remove some unused CONFIG symbolsTom Rini
All of these symbols are not referenced anywhere else in the code, so remove them. Cc: Peng Fan <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2022-07-07Convert CONFIG_USB_OHCI_NEW et al to KconfigTom Rini
This converts the following to Kconfig: CONFIG_SYS_OHCI_SWAP_REG_ACCESS CONFIG_SYS_USB_OHCI_CPU_INIT CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS CONFIG_SYS_USB_OHCI_SLOT_NAME CONFIG_USB_ATMEL CONFIG_USB_ATMEL_CLK_SEL_PLLB CONFIG_USB_ATMEL_CLK_SEL_UPLL CONFIG_USB_OHCI_LPC32XX CONFIG_USB_OHCI_NEW Signed-off-by: Tom Rini <[email protected]>
2022-07-05nxp: config_fsl_chain_trust.h: Clean up and remove unused portionsTom Rini
The way that secure boot is implemented today on NXP ARM platforms does not reuse the elements found in include/config_fsl_chain_trust.h to construct CONFIG_SECBOOT but instead board header files have their environment setup as needed and then fsl_setenv_chain_of_trust() will set secureboot in the environment. Remove a large number of unused defines here. Cc: Peng Fan <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2022-07-05fsl_validate: Migrate SPL_UBOOT_KEY_HASH to KconfigTom Rini
Move setting of SPL_UBOOT_KEY_HASH to a non-NULL value to Kconfig. As part of this, change fsl_secboot_validate(...) to check that it is passed a non-empty string, rather than non-NULL. Cc: Peng Fan <[email protected]> Cc: Priyanka Jain <[email protected]> Cc: Kshitiz Varshney <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2022-07-05Convert CONFIG_SYS_FSL_SFP_BE et al to KconfigTom Rini
This converts the following to Kconfig: CONFIG_KEY_REVOCATION CONFIG_SYS_FSL_SFP_BE CONFIG_SYS_FSL_SFP_LE CONFIG_SYS_FSL_SFP_VER_3_0 CONFIG_SYS_FSL_SFP_VER_3_2 CONFIG_SYS_FSL_SFP_VER_3_4 CONFIG_SYS_FSL_SRK_LE This partly means making sure to enable SYS_FSL_ERRATUM_A007186 only for when CHAIN_OF_TRUST is enabled. Signed-off-by: Tom Rini <[email protected]>
2022-07-05Convert CONFIG_SYS_FSL_SEC_MON et al to KconfigTom Rini
This converts the following to Kconfig: CONFIG_SYS_FSL_SEC_MON CONFIG_SYS_FSL_SEC_MON_BE CONFIG_SYS_FSL_SEC_MON_LE Signed-off-by: Tom Rini <[email protected]>
2022-07-05Convert CONFIG_ESBC_HDR_LS et al to KconfigTom Rini
This converts the following to Kconfig: CONFIG_ESBC_HDR_LS CONFIG_ESBC_ADDR_64BIT Signed-off-by: Tom Rini <[email protected]>
2022-06-28Convert CONFIG_USB_MAX_CONTROLLER_COUNT to KconfigTom Rini
This converts the following to Kconfig: CONFIG_USB_MAX_CONTROLLER_COUNT Signed-off-by: Tom Rini <[email protected]>
2022-06-28arm: samsung: Migrate a number of symbols to KconfigTom Rini
- In a number of cases, use CONFIG_ARCH_EXYNOS[45] rather than CONFIG_EXYNOS[45] - In other cases, test for CONFIG_ARCH_EXYNOS or CONFIG_ARCH_S5PC1XX - Migrate specific SoC CONFIG values to Kconfig - Use CONFIG_TARGET_x rather than CONFIG_x - Migrate other CONFIG_EXYNOS_x symbols to Kconfig - Reference CONFIG_EXYNOS_RELOCATE_CODE_BASE directly as EXYNOS_RELOCATE_CODE_BASE - Rename CONFIG_S5P_PA_SYSRAM to CONFIG_SMP_PEN_ADDR to match the rest of U-Boot usage. Cc: Minkyu Kang <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2022-06-28usb: ehci-fsl: Remove non-DM codeTom Rini
The deadline for DM_USB migration has passed and all users have been migrated. Remove now unused code. Signed-off-by: Tom Rini <[email protected]>
2022-06-23arm: apple: nvme: Add SART support and RTKit buffer managementJanne Grunau
The NVMe firmware in the macOS 13 beta blocks or crashes with u-boot's current minimal RTKit implementation. It does not provide buffers for the firmware's buffer requests. The ANS2 firmware included in macOS 11 and 12 tolerates this. The firmware included in the first macOS 13 beta requires buffers for the crashlog and ioreport endpoints to function. In the case of the NVMe the buffers are physical memory. Access to physical memory is guarded by what Apple calls SART. Import m1n1's SART driver (exclusively used for the NVMe controller). Implement buffer management helpers for RTKit. These are generic since other devices (none in u-boot so far) require different handling. Signed-off-by: Janne Grunau <[email protected]> Reviewed-by: Mark Kettenis <[email protected]> Tested-by: Mark Kettenis <[email protected]>
2022-06-22misc: nuvoton: Add NPCM7xx otp controller driverJim Liu
Add Nuvoton BMC npcm750 otp driver Signed-off-by: Jim Liu <[email protected]>
2022-06-22crypto: nuvoton: Add NPCM7xx AES driverJim Liu
add nuvoton BMC npcm750 AES driver Signed-off-by: Jim Liu <[email protected]>
2022-06-22ast2600: spl: Add boot mode detectionChia-Wei Wang
AST2600 supports boot from SPI(mmap), eMMC, and UART. This patch adds the boot mode detection and return the corresponding boot device type. Signed-off-by: Chia-Wei Wang <[email protected]>
2022-06-20Merge branch 'master' into nextTom Rini
Merge in v2022.07-rc5.
2022-06-20armv8: layerscape: add missing RCW source definesMichael Walle
A board might need to get the source of the RCW word, which is also the boot source in most cases. These defines are taken from the LS1028A and I expect they are the same across the SoCs with the same chassis, after all, there was already a reset source for NOR flash. Signed-off-by: Michael Walle <[email protected]>
2022-06-16armv8: always use current exception level for TCR_ELx accessAndre Przywara
Currently get_tcr() takes an "el" parameter, to select the proper version of the TCR_ELx system register. This is problematic in case of the Apple M1, since it runs with HCR_EL2.E2H fixed to 1, so TCR_EL2 is actually using the TCR_EL1 layout, and we get the wrong version. For U-Boot's purposes the only sensible choice here is the current exception level, and indeed most callers treat it like that, so let's remove that parameter and read the current EL inside the function. This allows us to check for the E2H bit, and pretend it's EL1 in this case. There are two callers which don't care about the EL, and they pass 0, which looks wrong, but is irrelevant in these two cases, since we don't use the return value there. So the change cannot affect those two. Signed-off-by: Andre Przywara <[email protected]> Reviewed-by: Mark Kettenis <[email protected]> Tested-by: Mark Kettenis <[email protected]>
2022-06-06arm: pxa: Remove CONFIG_CPU_PXA25XTom Rini
There are no platforms that set this, remove the code. Signed-off-by: Tom Rini <[email protected]>
2022-06-06ppc / layerscape: Clean up CONFIG_SYS_CCSR_DO_NOT_RELOCATE usageTom Rini
A number of PowerPC platforms define this, for SPL. To move this to Kconfig, it needs to be CONFIG_SPL_SYS_CCSR_DO_NOT_RELOCATE, so use CONFIG_IS_ENABLED() to check for usage. A number of layerscape platforms bring this logic from PowerPC, but only need a small part of it, for the fman driver. Remove their unused portion at least. Signed-off-by: Tom Rini <[email protected]>
2022-06-06arm: omap2plus: Move CONFIG_SYS_PTV out of CONFIG namespaceTom Rini
This is always defined to 2, and referenced in two places. Move the define to <asm/omap_common.h> and make sure the code that uses this includes that file. Make <asm/arch-omap*/clock.h> not include that file, as we don't need to be doing so. Signed-off-by: Tom Rini <[email protected]>
2022-06-03armv8: Fix TCR 64-bit writesAndre Przywara
The AArch64 TCR_ELx register is a 64-bit register, and many newer architecture features use bits in the upper half. So far U-Boot was igorant of those bits, trying to leave them alone. However, in an effort to set bit 31 to 1, it failed doing so, because the compiler sign-extended "1 << 31", so that all bits[63:31] got set. Older ARMv8.0 cores don't define anything dangerous up there, but newer architecture revisions do, and setting all those bits will end badly: ================= $ qemu-system-aarch64 -cpu max .... U-Boot 2022.07-rc1 (May 09 2022 - 15:21:00 +0100) DRAM: 1.5 GiB ================= (hangs here) Defining TCR_ELx_RSVD to "1U << 31" avoids the sign-extension, so all upper bits stay at a safe 0 value. This means no more surprises when U-Boot runs on a more capable CPU core. Reported-by: Balaji Anandapadmanaban <[email protected]> Signed-off-by: Andre Przywara <[email protected]> Reviewed-by: Peng Fan <[email protected]> Tested-by: Peter Collingbourne <[email protected]> Reviewed-by: Peter Collingbourne <[email protected]>
2022-05-20i.MX8ULP: add display_ele_fw_version apiGaurav Jain
implement get f/w version api. print ele f/w version in spl. Signed-off-by: Gaurav Jain <[email protected]> Reviewed-by: Peng Fan <[email protected]> Reviewed-by: Pankaj Gupta <[email protected]>
2022-05-20imx8m: fix reading of DDR4 MR registersRasmus Villemoes
I was trying to employ lpddr4_mr_read() to something similar to what the imx8mm-cl-iot-gate board is doing for auto-detecting the RAM type. However, the version in drivers/ddr/imx/imx8m/ddrphy_utils.c differs from the private one used by that board in how it extracts the byte value, and I was only getting zeroes. Adding a bit of debug printf'ing gives me tmp = 0x00ffff00 tmp = 0x00070700 tmp = 0x00000000 tmp = 0x00101000 and indeed I was expecting a (combined) value of 0xff070010 (0xff being Manufacturer ID for Micron). I can't find any documentation that says how the values are supposed to be read, but clearly the iot-gate definition is the right one, both for its use case as well as my imx8mp-based board. So lift the private definition of lpddr4_mr_read() from the imx8mm-cl-iot-gate board code to ddrphy_utils.c, and add a declaration in the ddr.h header where e.g. get_trained_CDD() is already declared. This has only been compile-tested for the imx8mm-cl-iot-gate board (since I don't have the hardware), but since I've merely moved its definition of lpddr4_mr_read(), I'd be surprised if it changed anything for that board. Signed-off-by: Rasmus Villemoes <[email protected]> Tested-by: Ying-Chun Liu (PaulLiu) <[email protected]> Reviewed-by: Fabio Estevam <[email protected]>
2022-05-20ARM: imx: imx31: Introduce and use UART_BASE_ADDR(n)Marek Vasut
Introduce helper macro UART_BASE_ADDR(n), which returns Nth UART base address. Convert all board configurations to this new macro. This is the first step toward switching CONFIG_MXC_UART_BASE to Kconfig. This is a clean up, no functional change. The new macro contains compile-time test to verify N is in suitable range. The test works such that it multiplies constant N by constant double-negation of size of a non-empty structure, i.e. it multiplies constant N by constant 1 in each successful compilation case. The non-empty structure may contain C11 _Static_assert(), make use of this and place the kernel variant of static assert in there, so that it performs the compile-time check for N in the correct range. Note that it is not possible to directly use static_assert in compound statements, hence this convoluted construct. Signed-off-by: Marek Vasut <[email protected]> Cc: Fabio Estevam <[email protected]> Cc: Peng Fan <[email protected]> Cc: Stefano Babic <[email protected]>
2022-05-20ARM: imx: imx27: Introduce and use UART_BASE_ADDR(n)Marek Vasut
Introduce helper macro UART_BASE_ADDR(n), which returns Nth UART base address. Convert all board configurations to this new macro. This is the first step toward switching CONFIG_MXC_UART_BASE to Kconfig. This is a clean up, no functional change. The new macro contains compile-time test to verify N is in suitable range. The test works such that it multiplies constant N by constant double-negation of size of a non-empty structure, i.e. it multiplies constant N by constant 1 in each successful compilation case. The non-empty structure may contain C11 _Static_assert(), make use of this and place the kernel variant of static assert in there, so that it performs the compile-time check for N in the correct range. Note that it is not possible to directly use static_assert in compound statements, hence this convoluted construct. Signed-off-by: Marek Vasut <[email protected]> Cc: Fabio Estevam <[email protected]> Cc: Peng Fan <[email protected]> Cc: Stefano Babic <[email protected]>
2022-05-20ARM: imx: imx8m: Introduce and use UART_BASE_ADDR(n)Marek Vasut
Introduce helper macro UART_BASE_ADDR(n), which returns Nth UART base address. Convert all board configurations to this new macro. This is the first step toward switching CONFIG_MXC_UART_BASE to Kconfig. This is a clean up, no functional change. The new macro contains compile-time test to verify N is in suitable range. The test works such that it multiplies constant N by constant double-negation of size of a non-empty structure, i.e. it multiplies constant N by constant 1 in each successful compilation case. The non-empty structure may contain C11 _Static_assert(), make use of this and place the kernel variant of static assert in there, so that it performs the compile-time check for N in the correct range. Note that it is not possible to directly use static_assert in compound statements, hence this convoluted construct. Signed-off-by: Marek Vasut <[email protected]> Cc: Fabio Estevam <[email protected]> Cc: Peng Fan <[email protected]> Cc: Stefano Babic <[email protected]>
2022-05-05arm: nuvoton: Add support for Nuvoton NPCM750 BMCJim Liu
Add basic support for the Nuvoton NPCM750 EVB (Poleg). Signed-off-by: Jim Liu <[email protected]>
2022-04-21pci: imx: remove weak overrides no longer usedTim Harvey
There are no users of the imx6_pcie_toggle_power and imx6_pcie_toggle_reset weak overrides and as these functions are able to be handled now via dt properties lets remove these. Cc: Marek Vasut <[email protected]> Signed-off-by: Tim Harvey <[email protected]>
2022-04-21pci: imx: use vpcie-supply if defined by device-treeTim Harvey
If vpcie-supply is defined by device-tree use that if CONFIG_PCIE_IMX_POWER_GPIO is not defined. Note that after this the following boards which define CONFIG_PCIE_IMX_POWER_GPIO in their board header file as well as their device-tree should be able to remove CONFIG_PCIE_IMX_PERST_GPIO without consequence: - mx6sabresd - mx6sxsabresd - novena Note that the ge_bx50v3 board uses CONFIG_PCIE_IMX_POWER_GPIO and does not have vpcie-supply defined in it's pcie node in the dt thus removing CONFIG_PCIE_IMX_POWER_GPIO globally can't be done until that board adds vpcie-supply. Cc: Ian Ray <[email protected]> (maintainer:GE BX50V3 BOARD) Cc: Sebastian Reichel <[email protected]> (maintainer:GE BX50V3 BOARD) Cc: Fabio Estevam <[email protected]> (maintainer:MX6SABRESD BOARD) Cc: Marek Vasut <[email protected]> (maintainer:NOVENA BOARD) Signed-off-by: Tim Harvey <[email protected]>
2022-04-21imx: power-domain: Inline arch-imx8m/power-domain.hMarek Vasut
The arch/arm/include/asm/arch-imx8m/power-domain.h is not included anywhere except in drivers/power/domain/imx8m-power-domain.c, just inline the content and drop the header. No functional change. Tested-By: Tim Harvey <[email protected]> #imx8mp-venice-defconfig Signed-off-by: Marek Vasut <[email protected]> Cc: Fabio Estevam <[email protected]> Cc: Peng Fan <[email protected]> Cc: Stefano Babic <[email protected]>
2022-04-18rockchip: rk3066: add core supportJohan Jonker
Add the core architecture code for the rk3066. Signed-off-by: Johan Jonker <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2022-04-18rockchip: rk3066: add clock driver for rk3066 socPaweł Jarosz
Add the clock driver for the rk3066 platform. Derived from the rk3288 and rk3188 driver it supports only a bare minimum to bring up the system to reduce the TPL size for: SDRAM clock configuration. The boot devices NAND, EMMC, SDMMC, SPI. A UART for the debug messages (fixed) at 115200n8. A SARADC for the recovery button. A TIMER for the delays (fixed). There's support for two possible frequencies, the safe 600MHz which will work with default pmic settings and will be set to get away from the 24MHz default and the maximum of 1.416Ghz, which boards can set if they were able to get pmic support for it. After the clock tree is set during the TPL probe there's no parent update support. In OF_REAL mode the drivers ns16550.c and dw-apb-timer.c obtain the (fixed) clk_get_rate from the clock driver instead of platdata. The rk3066 cru node has a number of assigned-clocks properties that call the .set_rate() function. Add them to the list so that they return a 0 instead of -ENOENT. Signed-off-by: Paweł Jarosz <[email protected]> Signed-off-by: Johan Jonker <[email protected]> Reviewed-by: Sean Anderson <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2022-04-18rockchip: rk3066: add grf header filePaweł Jarosz
grf is needed by various drivers for rk3066 soc. Signed-off-by: Paweł Jarosz <[email protected]> Signed-off-by: Johan Jonker <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2022-04-12clk: imxrt: Use dts for anatop base addressJesse Taube
In Linux IMX and IMXRT use the device tree to hold the anatop address. The anatop is used in clock drivers as it controls the internal PLLs This will move the macro from asm/arch-imxrt to the device tree. This presumably should also be done with the other IMX boards as well. Signed-off-by: Jesse Taube <[email protected]>
2022-04-12imx8m: add init_nand_clkMichael Trimarchi
Add init_nand_clk to enable gpmi nand clock. Since i.MX8M not use CCF, so we still use legacy mode to configure the clock. Signed-off-by: Michael Trimarchi <[email protected]>
2022-04-12imx8m: add regs used by GPMIMichael Trimarchi
Add regs used by GPMI Signed-off-by: Michael Trimarchi <[email protected]> Signed-off-by: Ariel D'Alessandro <[email protected]> Reviewed-by: Fabio Estevam <[email protected]>
2022-04-12imx: imx8mp: Add iMX8MP UltraLite Part cpu typePeng Fan
Add i.MX8MP UltraLite Part CPU type Signed-off-by: Peng Fan <[email protected]>
2022-04-12imx: dynamic setting mmcdev and mmcrootPeng Fan
Dynamic setting mmcdev and mmcroot. Then when boot linux, we can have correct "root=/dev/mmcblk[x]p2" Signed-off-by: Peng Fan <[email protected]>
2022-04-12misc: S400_API: Update S400 API for buffer dumpYe Li
Add ahab_dump_buffer API to dump AHAB buffer for debug purpose Signed-off-by: Ye Li <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2022-04-12misc: S400_API: add ahab_release_caamClement Faure
Add ahab_release_caam() function to the S400 API. Signed-off-by: Clement Faure <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2022-04-12imx: imx8ulp_evk: Skip init DDR for reboot in dual boot modeYe Li
When M33 is LPAV owner in dual boot, DDR, PCC5, CGC2 won't be reset during APD reset. So no need to init DDR again after reboot, but need to reconfigure the PLL4 PFD/PFDDIV/LPAV NIC etc, because kernel may change or disable some of them. Reviewed-by: Peng Fan <[email protected]> Signed-off-by: Ye Li <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2022-04-12imx: imx8ulp: add ND/LD clockPeng Fan
Add a new ddr script, defconfig for ND Configure the clock for ND mode changing A35 to 960MHz for OD mode Update NIC CLK for the various modes Introduce clock_init_early/late, late is used after pmic voltage setting, early is used in the very early stage for upower mu, lpuart and etc. Note: NIC runs at 324MHz, 442MHz has some random kernel hang issue with cpuidle enabled now. Reviewed-by: Ye Li <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2022-04-12imx: imx8ulp: add CAAM clock entryPeng Fan
Add CAAM clock entry in PCC3 Signed-off-by: Peng Fan <[email protected]>
2022-04-12imx: imx8ulp: Add M33 handshake functionsYe Li
Add functions to check if M33 image is booted and handshake with M33 image via MU. A core notifies M33 to start init by FCR F0, then wait M33 init done signal by checking FSR F0. Reviewed-by: Peng Fan <[email protected]> Signed-off-by: Ye Li <[email protected]> Signed-off-by: Biwen Li <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2022-04-12imx: imx8ulp: include pcc/cgc header in clock headerPeng Fan
With this change, we no need to include pcc/cgc header files both. Signed-off-by: Peng Fan <[email protected]>
2022-04-12arch: mach-imx: imx8m: add pwm_regs struct in imx-regsTommaso Merciai
Add pwm_regs struct for i.MX8MM SOC Signed-off-by: Tommaso Merciai <[email protected]>