zephyr/drivers
Lukasz Majewski d0d68d6b0f drivers: net: ot: Provide structure instance for HDLC RCP context
Without this patch the hdlc_iface_init() function assigns to
ot_hdlc_rcp_context structure pointer (*ctx) value of 0, as in the
NET_DEVICE_DT_INST_DEFINE() preprocessor macro the 'data' field is
set to NULL.

Afterwards, the ctx->iface is set to iface address passed to the function
(as well as the ctx->ot_context is set).
Writing those values to address 0x0 is catastrophic to for example
mimxrt1020, which uses ITCM memory (mapped from 0x0) to store flash
handling functions, as those are used to XIP code directly from
SPI NOR memory (as mximxrt1020 doesn't have internal flash).

In this particular case - the flash_flexspi_nor_erase() function is mapped
(i.e. relocated) to ITCM's 0x0 address. Overwriting first 8 bytes of it
causes the SoC to enter "Precise data bus error" exception.

The fix is to define the static instance of struct ot_hdlc_rcp_context
and pass its address to the NET_DEVICE_DT_INST_DEFINE() macro. As a result
its storage is now in RAM, not ITCM.

This issue has been discovered on UART based HDLC RCP communication, but as
it also may be problematic on the NXP driver, this patch fixes it too.

Signed-off-by: Lukasz Majewski <lukma@denx.de>
2025-01-30 20:26:53 +01:00
..
adc drivers: adc: Add support for gain 2/7 in nRF devices 2025-01-29 15:13:19 +01:00
audio
auxdisplay
bbram
bluetooth drivers: bluetooth: hci: h4_ifx_cyw43xxx: add missing hci includes 2025-01-25 20:06:34 +01:00
cache
can can_shell: add shell device filtering 2025-01-29 04:17:47 +01:00
charger
clock_control soc: esp32xx: makes esp_console_init() calling conditional 2025-01-30 16:21:13 +01:00
comparator drivers: drop few redundant device_is_ready 2025-01-22 05:40:11 +01:00
console
coredump
counter counter_timer_shell: add shell device filtering 2025-01-29 04:17:47 +01:00
crypto
dac drivers: Update APIs to use DEVICE_API macro 2025-01-24 01:15:19 +01:00
dai drivers: dai: intel: ssp: Print usable error for poll timeout 2025-01-17 13:41:34 +01:00
disk drivers: disk: sdmmc_subsys: stm32_sdmmc driver custom disk name support 2025-01-21 19:29:36 +01:00
display drivers: display: ssd1306: add power pin support 2025-01-22 15:50:02 +01:00
dma drivers: dma: sam0: Fix crc reset 2025-01-29 20:33:56 +01:00
dp
edac
eeprom eeprom_shell: add shell device filtering 2025-01-29 04:17:47 +01:00
entropy drivers: entropy: nRF CRACEN: Fix comment 2025-01-28 09:50:28 +01:00
espi
ethernet drivers: dm8806: dm8806: disable ethernet efficient mode 2025-01-27 17:11:24 +01:00
firmware
flash flash_shell: add shell device filtering 2025-01-29 04:17:47 +01:00
fpga
fuel_gauge
gnss drivers: gnss: Add geoid separation to gnss_info 2025-01-29 11:02:42 +01:00
gpio drivers: gpio: npm2100: properly handle I2C write return value 2025-01-30 16:20:45 +01:00
haptics
hdlc_rcp_if drivers: net: ot: Provide structure instance for HDLC RCP context 2025-01-30 20:26:53 +01:00
hwinfo drivers: hwinfo: Add support for MIMXRT1180 2025-01-30 18:29:33 +01:00
hwspinlock
i2c drivers: i2c: add NXP i2c driver used on imx8m platforms 2025-01-24 19:15:57 +01:00
i2s drivers: i2s: Fix TX transfer stopping issue in some corner cases 2025-01-28 09:46:56 +01:00
i3c drivers: i3c: stm32: implement hj_response api 2025-01-27 11:02:34 +01:00
ieee802154
input drivers: input: cy8cmbr3xxx: add support for cy8cmbr3xxx input driver 2025-01-28 14:13:08 +01:00
interrupt_controller drivers: gic: Add multiple GIC redistributors regions support 2025-01-21 11:16:12 +01:00
ipm
kscan
led drivers: drop few redundant device_is_ready 2025-01-22 05:40:11 +01:00
led_strip
lora
mbox drivers: mbox: Add support for TI OMAP mailbox 2025-01-23 16:34:39 +01:00
mdio drivers: Update APIs to use DEVICE_API macro 2025-01-24 01:15:19 +01:00
memc drivers: memc_nxp_s32_qspi: add support for s32ze 2025-01-21 19:26:45 +01:00
mfd drivers: mfd: add MAX22017 DAC/GPIO MFD 2025-01-21 07:07:33 +01:00
mipi_dbi
mipi_dsi
misc drv: ft8xx: user data in the callback function 2025-01-30 02:01:34 +01:00
mm
modem modem: hl7800: optimize socket cleanup on boot 2025-01-20 11:15:57 +01:00
mspi
net
pcie
peci
pinctrl drivers: pinctrl: silabs: Add support for analog bus allocation 2025-01-30 18:30:01 +01:00
pm_cpu_ops
power_domain
ps2
ptp_clock
pwm drivers: Update APIs to use DEVICE_API macro 2025-01-24 01:15:19 +01:00
regulator drivers: regulator: npm1300: workaround for LDO HW bug 2025-01-29 15:12:40 +01:00
reset
retained_mem
rtc drivers: rtc: Add Texas Instruments BQ32002 RTC driver 2025-01-29 07:08:28 +01:00
sdhc drivers: sdhc: fix infineon cat1 gpio initialization 2025-01-29 07:08:58 +01:00
sensor sensor: grow_r502a: fix: untrusted array index read 2025-01-30 07:20:29 +01:00
serial drivers: serial: CAT1 UART driver: add ASYNC_API functionality 2025-01-30 02:00:50 +01:00
sip_svc
smbus
spi spi_nxp_lpspi: Rewrite driver, fix native chip sel 2025-01-30 20:26:36 +01:00
stepper drivers: drop few redundant device_is_ready 2025-01-22 05:40:11 +01:00
syscon
tee
timer drivers: timer: run clang-format on RISC-V machine timer file 2025-01-22 05:39:59 +01:00
usb soc: mimxrt1180: Add USB support 2025-01-30 18:29:33 +01:00
usb_c
video drivers: video: video_stm32_dcmi: Sanity-check frame size. 2025-01-30 16:20:17 +01:00
virtualization
w1
watchdog wdt_shell: add shell device filtering 2025-01-29 04:17:47 +01:00
wifi drivers: wifi: winc1500: Use strncpy instead of strcpy 2025-01-30 14:09:59 +01:00
xen
CMakeLists.txt
Kconfig