mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH 0/5] mtd: maps: lantiq-flash: support boot loaders using the EBU endianness swap
@ 2026-11-14 10:06 Simon Wunderlich
  2026-11-14 10:06 ` [PATCH 1/5] mtd: maps: lantiq-flash: fix NULL pointer dereference on probe Simon Wunderlich
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Simon Wunderlich @ 2026-11-14 10:06 UTC (permalink / raw)
  To: Miquel Raynal, Richard Weinberger, Vignesh Raghavendra, linux-mtd
  Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, devicetree,
	Thomas Bogendoerfer, linux-mips, Hauke Mehrtens,
	Aleksander Jan Bajkowski, John Crispin, Sebastien Decourriere,
	Yangtao Li, linux-kernel, Simon Wunderlich

Some Lantiq boards, like the bintec elmeg RS123 and RS353, have a boot
loader that enables the EBU's own endianness swapping for the NOR flash
chip select. lantiq-flash then fails to probe the flash. Patch 4 lets
such boards opt in to honouring that bit with a new
"lantiq,ebu-swap-check" property. The bit only works on VR9 from
revision 1.2 and on AR10, so the driver cannot rely on it on every SoC.
The property follows Hauke's review of an earlier attempt at this fix
in 2017 [1].

While porting the change from OpenWrt to mainline I noticed that
lantiq-flash dereferences a NULL pointer on probe since v6.6. Patch 1
fixes that and can go to mtd/fixes on its own. OpenWrt never ran into
it because it carries a downstream rework of the probe function.

Patch 2 documents the "lantiq,nor" binding, which was never documented,
together with the new property. Patch 3 exports ltq_ebu_membase so that
lantiq-flash still builds as a module. It would need an Acked-by from
Thomas to go through the MTD tree together with patch 4. Patch 5
renames the NOR node of the only in-tree user, danube_easy50712.dts, so
that it validates against the new binding. It is meant for the MIPS
tree and does not depend on the other patches.

The EBU swap change is used in OpenWrt on the RS123 with a 6.18 kernel,
on top of OpenWrt's reworked probe function. The series itself is
build-tested on mtd/next for XWAY (built-in and as a module) and Falcon
with W=1, the binding passes dt_binding_check and dt-check-style, and
danube_easy50712.dtb passes dtbs_check against it.

[1] https://lists.infradead.org/pipermail/linux-mtd/2017-January/071818.html

Simon Wunderlich (5):
  mtd: maps: lantiq-flash: fix NULL pointer dereference on probe
  dt-bindings: mtd: Add lantiq,nor
  mips: lantiq: xway: sysctrl: export ltq_ebu_membase
  mtd: maps: lantiq-flash: honour the EBU's own endianness swap
  mips: lantiq: danube: rename NOR node on EASY50712 reference board

 .../devicetree/bindings/mtd/lantiq,nor.yaml   | 79 +++++++++++++++++++
 .../mips/boot/dts/lantiq/danube_easy50712.dts |  2 +-
 arch/mips/lantiq/xway/sysctrl.c               |  1 +
 drivers/mtd/maps/lantiq-flash.c               | 39 +++++++--
 4 files changed, 112 insertions(+), 9 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/mtd/lantiq,nor.yaml


base-commit: 0ef71adafaa9b36a06dd5b823aebcd2fa9b9b9c2
-- 
2.47.3


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2026-11-14 10:06 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-11-14 10:06 [PATCH 0/5] mtd: maps: lantiq-flash: support boot loaders using the EBU endianness swap Simon Wunderlich
2026-11-14 10:06 ` [PATCH 1/5] mtd: maps: lantiq-flash: fix NULL pointer dereference on probe Simon Wunderlich
2026-11-14 10:06 ` [PATCH 2/5] dt-bindings: mtd: Add lantiq,nor Simon Wunderlich
2026-11-14 10:06 ` [PATCH 3/5] mips: lantiq: xway: sysctrl: export ltq_ebu_membase Simon Wunderlich
2026-11-14 10:06 ` [PATCH 4/5] mtd: maps: lantiq-flash: honour the EBU's own endianness swap Simon Wunderlich
2026-11-14 10:06 ` [PATCH 5/5] mips: lantiq: danube: rename NOR node on EASY50712 reference board Simon Wunderlich

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®