u-boot/drivers
Jonas Karlman 63348d61a8 pinctrl: rockchip: Fix Data Abort exception in SPL
Using CONFIG_ARMV8_SPL_EXCEPTION_VECTORS=y and CONFIG_OF_LIVE=y triggers
a Data Abort exception from unaligned memory access when the pinctrl
driver iterate node properties, e.g. for UART2 on RK3568.

  setting mux of GPIO0-24 to 1
  setting mux of GPIO0-24 to 1
  "Synchronous Abort" handler, esr 0x96000021
  elr: 000000000000e554 lr : 000000000000e54c
  x 0: 0000000000000a5c x 1: 0000000000000a5c
  x 2: 0000000000000007 x 3: 0000000000000065
  x 4: 0000000000000007 x 5: 0000000000022d4e
  x 6: 0000000000000a7c x 7: 00000000000227a4
  x 8: 0000000000021cf0 x 9: 0000000000000a7c
  x10: 0000000000021cf0 x11: 0000000000021cf0
  x12: 00000000003fda1c x13: 0000000000000007
  x14: 00000000003fd9ec x15: 000000000001c0ff
  x16: 0000000007000000 x17: 00000000fdccd028
  x18: 00000000003fde20 x19: 0000000000000018
  x20: 0000000000020670 x21: 0000000000000000
  x22: 00000000003fdb00 x23: 00000000003fef90
  x24: 0000000000020688 x25: 0000000000000000
  x26: 0000000000000001 x27: 00000000003ffc50
  x28: 0000000000000000 x29: 00000000003fda60

  Code: b94083e1 97ffd508 93407c01 37f81260 (f9401038)
  Resetting CPU ...

Fix this by replacing the loop to access node properties with use of
ofnode_for_each_prop instead of the current ifdef.

Also continue to next prop instead of aborting at first sign of an
unknown property.

This fixes the Data Abort exception and also pinconf of e.g. pull and
drive in SPL, e.g. for UART2 on RK3568.

  setting mux of GPIO0-24 to 1
  setting mux of GPIO0-24 to 1
  setting pull of GPIO0-24 to 5
  setting mux of GPIO0-25 to 1
  setting mux of GPIO0-25 to 1
  setting pull of GPIO0-25 to 5

Fixes: e7ae4cf27a ("pinctrl: rockchip: Add common rockchip pinctrl driver")
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2023-06-29 18:42:58 +08:00
..
adc rockchip: adc: rockchip-saradc: use dev_read_addr_ptr 2023-05-06 17:28:18 +08:00
ata drivers: use dev_read_addr_ptr when cast to pointer 2023-05-06 17:28:18 +08:00
axi WS cleanup: remove trailing empty lines 2021-09-30 08:08:56 -04:00
bios_emulator video: Rename structs and functions to avoid VBE 2022-08-12 08:14:23 -04:00
block sandbox: fix return type of os_filesize() 2023-04-28 11:30:17 -06:00
bootcount global: Move remaining CONFIG_SYS_* to CFG_SYS_* 2022-12-05 16:06:08 -05:00
bus bus: Optionally include TI sysc driver in SPL/TPL 2022-12-02 08:39:00 -05:00
button dm: button: add support for linux_code in button-gpio.c driver 2023-02-10 12:50:01 -05:00
cache drivers: use dev_read_addr_ptr when cast to pointer 2023-05-06 17:28:18 +08:00
clk u-boot-imx-20230525 2023-05-25 14:27:39 -04:00
core core: fdtaddr: use map_sysmem() as cast for the return (part 2) 2023-05-15 17:14:46 -04:00
cpu imx9: add i.MX93 variants support 2023-05-21 16:54:41 +02:00
crypto Correct SPL uses of HW_WATCHDOG 2023-02-10 07:41:39 -05:00
ddr ddr: imx9: update the rank setting for multi fsp support 2023-05-21 16:54:41 +02:00
demo demo: migrate uclass to livetree 2021-10-05 08:50:15 -04:00
dfu blk: Switch over to using uclass IDs 2022-09-16 11:05:16 -04:00
dma dma: ti: k3-udma: Fix channel hang on teardown 2023-03-22 12:51:15 -04:00
extcon extcon: add MAX14526 MUIC support 2023-05-02 14:23:58 -04:00
fastboot net: share fastboot boot handle logic between transports 2023-05-05 17:48:44 -04:00
firmware firmware: psci: enable DM_FLAG_PRE_RELOC 2023-04-25 15:31:28 -04:00
fpga fpga: zynqmppl: fix fpga loads command for unencrypted use case 2023-03-09 13:15:00 +01:00
fuzz sandbox: Implement fuzzing engine driver 2022-06-23 12:58:19 -04:00
fwu-mdata FWU: Add FWU metadata access driver for GPT partitioned block devices 2022-10-31 14:47:32 -04:00
gpio drivers: use dev_read_addr_ptr when cast to pointer 2023-05-06 17:28:18 +08:00
hwspinlock treewide: invaild -> invalid 2022-01-13 07:57:49 -05:00
i2c I2C: cdns: Fix broken retry mechanism on arbitration lost. 2023-06-05 06:54:25 +02:00
input input: Flush the keyboard buffer before resetting it 2023-05-11 10:25:29 +08:00
iommu iommu: Implement mapping IOMMUs for PCI devices 2023-01-27 14:47:58 -05:00
led led: led_pwm: typo 'iverted' on code comment 2022-11-02 13:58:17 -04:00
mailbox mailbox: zynqmp: Enable ipi mailbox driver for Versal NET 2022-09-26 14:23:29 +02:00
memory memory: atmel-ebi: add Atmel EBI (External Bus Interface) driver 2022-12-08 18:06:27 +02:00
mfd mfd: syscon: atmel-smc: Add new helpers to ease SMC regs manipulation 2022-12-08 18:06:27 +02:00
misc imx: move imx8 sci header file to include/firmware/imx 2023-05-21 16:54:32 +02:00
mmc mmc: rockchip_sdhci: Disable DMA mode using a device tree property 2023-05-18 08:34:45 +08:00
mtd mtd: cfi: respect reg address length 2023-05-15 10:00:30 +02:00
mux Correct SPL uses of MULTIPLEXER 2023-03-02 17:45:58 -05:00
net net: rtl8169: add depends on PCI 2023-06-14 12:56:10 -04:00
nvme nvme: Enable PCI bus mastering 2023-05-11 10:25:29 +08:00
pch treewide: Simply conditions with the new OF_REAL 2021-09-25 09:46:15 -06:00
pci pci: apple: Add support for M2 Pro/Max 2023-05-30 15:13:44 -04:00
pci_endpoint dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
phy phy: rockchip: inno-usb2: fix phy reg=0 case 2023-06-29 18:31:48 +08:00
pinctrl pinctrl: rockchip: Fix Data Abort exception in SPL 2023-06-29 18:42:58 +08:00
power imx: move imx8 sci header file to include/firmware/imx 2023-05-21 16:54:32 +02:00
pwm drivers: use dev_read_addr_ptr when cast to pointer 2023-05-06 17:28:18 +08:00
qe global: Finish CONFIG -> CFG migration 2023-01-20 12:27:24 -05:00
ram board: schneider: add RZN1 board support 2023-05-13 04:01:30 +02:00
reboot-mode reboot-mode: Add NVMEM reboot mode 2023-01-11 11:54:50 -05:00
remoteproc remoteproc: ti_k3_arm64: Change the startup of arm64 core 2023-04-24 13:18:48 -04:00
reset reset: rockchip: implement rk3588 lookup table 2023-05-17 17:36:18 +08:00
rng rockchip: rng: add trngv1 for rk3588 2023-04-21 15:16:01 +08:00
rtc drivers: rtc: add max313xx series rtc driver 2023-03-30 15:09:59 -04:00
scsi scsi: typo supporedt 2023-04-01 10:11:50 +02:00
serial serial: meson: fix meson_serial_pending() tx logic 2023-06-07 10:09:20 +02:00
smem smem: msm: add missing <linux/sizes.h> 2022-10-12 08:56:24 -04:00
soc soc: soc_ti_k3: fix revision array bounds checks 2023-04-25 15:31:27 -04:00
sound test: test sandbox sound driver more rigorously 2022-12-05 17:43:21 +01:00
spi spi: rockchip_sfc: Use linux rockchip,sfc-no-dma prop 2023-05-18 08:44:04 +08:00
spmi spmi: msm: add arbiter version 5 support 2021-10-31 08:46:44 -04:00
sysinfo sysinfo: gpio: fix loop over DT "revisions" array 2023-03-30 15:09:59 -04:00
sysreset x86: sysreset: Set up LPC only after relocation 2023-05-11 10:25:29 +08:00
tee drivers: tee: sandbox: Fix SCP03 control emulator 2023-04-28 11:30:17 -06:00
thermal imx: move imx8 sci header file to include/firmware/imx 2023-05-21 16:54:32 +02:00
timer rockchip: timer: dw-apb-timer: use regs variable with uintptr_t size 2023-05-06 17:28:18 +08:00
tpm tpm: sandbox: Change the return code when device is already open 2023-02-28 09:44:25 +02:00
ufs drivers: use dev_read_addr_ptr when cast to pointer 2023-05-06 17:28:18 +08:00
usb usb: dwc2: Fix the write to W1C fields in HPRT register 2023-06-21 13:15:58 +02:00
video video: tweak CONFIG_SPL_VIDEO description 2023-05-15 17:14:46 -04:00
virtio virtio: Ensure PCI is set up first 2023-04-26 08:43:04 -04:00
w1 dm: treewide: Do not use the return value of simple uclass iterator 2022-10-29 07:36:33 -06:00
w1-eeprom dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
watchdog watchdog: ulp_wdog: guard reset_cpu with condition check 2023-05-21 16:54:40 +02:00
xen xen: Limit execution to EL1 only 2023-04-25 15:31:28 -04:00
Kconfig dm: extcon: add an uclass for extcon 2023-05-02 14:23:34 -04:00
Makefile - enable video support in SPL 2023-05-05 09:36:08 -04:00