openwrt-pf/package/kernel
Joshua Covington 11de7145c9
kernel: i2c-designware: disable core on 32-bit bcm27xx targets on 6.18
The bcm27xx/bcm2708 all-kmods CI build fails when modpost reaches the
DesignWare I2C core module:

  ERROR: modpost: "__aeabi_uldivmod"
  [drivers/i2c/busses/i2c-designware-core.ko] undefined!

This is triggered by CONFIG_ALL_KMODS=y. The old 32-bit Raspberry Pi
subtargets do not normally select this driver for runtime use, but all-kmods
forces the kmod package to be built anyway. On 32-bit ARM, raw 64-bit
division in a module can cause GCC to emit the ARM EABI helper
__aeabi_uldivmod, which is not available as a kernel module symbol.

The failing reference comes from i2c-designware-master.c, where clock_calc()
uses raw u64 division for SCL timing calculations (introduced with commit
3805d13c3ead21494f7d00aa44f10e3656363d4c in rpi-6.18.y / "i2c: designware:
Support non-standard bus speeds"). That is a kernel-side portability issue,
but these old bcm27xx subtargets do not use DesignWare I2C hardware. They
use the Broadcom I2C controller instead.

The failure is emitted for i2c-designware-core.ko, so guard the hidden core
package itself rather than only guarding the platform or PCI frontend package.
This prevents CONFIG_ALL_KMODS from selecting the failing core module directly
on the affected 32-bit bcm27xx subtargets.

DesignWare I2C is relevant for newer Raspberry Pi 5 / RP1 based systems, so
keep it available for bcm2712.

A similar issue was reported by NixOS for Raspberry Pi ARM builds, where
i2c-designware-core.ko failed with the same unresolved __aeabi_uldivmod symbol.
Their workaround was to disable the DesignWare I2C symbols for older Raspberry
Pi targets that do not need them.
Link: https://github.com/NixOS/nixpkgs/issues/464515

Until the underlying ARM32 kernel-side issue is fixed, avoid building
the DesignWare core package on bcm2708, bcm2709 and bcm2710.

Signed-off-by: Joshua Covington <joshuacov@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23703
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
2026-07-07 08:48:40 +02:00
..
ath10k-ct kernel/ath10k: provide a virtual kmod 2025-12-31 18:16:48 +01:00
bcm27xx-gpu-fw bcm27xx-gpu-fw: update to v1.20250430 2025-06-06 12:34:01 +02:00
bcm63xx-cfe bcm63xx-cfe: install into image staging dir 2025-04-13 10:44:19 +02:00
bpf-headers bpf-headers: update to version 6.12 2025-11-27 14:31:30 +01:00
button-hotplug button-hotplug: bump package release 2026-06-16 11:33:24 +02:00
cryptodev-linux cryptodev-linux: add backport to build for 6.18 2025-12-23 18:06:23 +01:00
econet-eth econet: en7528: add basic ethernet support 2026-02-15 01:12:52 +01:00
gpio-button-hotplug treewide: various fwnode conversions 2026-07-05 23:35:05 +02:00
gpio-nct5104d package: gpio-nct5104d: adapt to kernel 6.18 2025-12-30 10:44:05 +01:00
lantiq lantiq: vrx518_ep: use module_pci_driver macro 2026-06-28 23:36:05 +02:00
leds-gca230718 treewide: remove usage of of_device.h 2026-06-10 09:03:11 +02:00
leds-ws2812b treewide: remove usage of of_device.h 2026-06-10 09:03:11 +02:00
linux kernel: i2c-designware: disable core on 32-bit bcm27xx targets on 6.18 2026-07-07 08:48:40 +02:00
mac80211 mac80211: read calibration variant from device tree 2026-07-07 08:32:11 +02:00
mt76 mt76: update to Git HEAD (2026-07-01) 2026-07-01 13:15:44 +02:00
mt7621-qtn-rgmii
mwlwifi mwlwifi: add patch series for kernel 6.18 compatibility 2026-04-06 16:03:37 +02:00
nat46 netfilter: remove nf-conntrack6 2026-01-21 22:42:20 +01:00
ntfs ntfs: update to 2026-05-03 2026-05-14 19:05:45 +02:00
qca-nss-dp qca-nss-dp: update to Git HEAD (2026-03-13) 2026-03-13 11:40:03 +01:00
qca-ssdk qca-ssdk: update to Git HEAD (2026-06-04) 2026-06-04 22:21:21 +02:00
r8101 kernel/r8169: provide a virtual kmod 2025-12-31 18:16:48 +01:00
r8125 kernel/r8169: provide a virtual kmod 2025-12-31 18:16:48 +01:00
r8126 kernel/r8169: provide a virtual kmod 2025-12-31 18:16:48 +01:00
r8127 kernel/r8169: provide a virtual kmod 2025-12-31 18:16:48 +01:00
r8168 kernel: r8168: update to v8.056.02 2026-05-14 21:19:22 +02:00
rtc-rv5c386a rtc-rv5c386a: fix build with kernel 6.12 2026-03-10 23:50:54 +01:00
rtl8812au-ct rtl8812au-ct: fix compilation with GCC 15 2026-06-27 11:45:04 +02:00
trelay trelay: use struct_size helper in allocation 2026-03-13 19:58:05 +01:00
ubnt-ledbar treewide: various fwnode conversions 2026-07-05 23:35:05 +02:00
ubootenv-nvram treewide: replace remove_new with remove 2026-01-03 17:27:25 +01:00