13 Commits
Author SHA1 Message Date
Viacheslav Bocharov edb17ed799 meson64-6.12: drop upstreamed pinctrl-meson can_sleep patch
Fixes patching failure on linux-6.12.y: the patch sets
pc->chip.can_sleep = false, which upstream stable already did in
v6.12.97, so the hunk is now rejected as previously applied.

Signed-off-by: Viacheslav Bocharov <v@baodeep.com>
2026-09-07 12:01:33 +02:00
Viacheslav Bocharov 88e5c9b2f6 rtl88x2cs: bump driver to f4263fc6 (2026-09-01)
Picks up the two fixes merged in jethome-iot/rtl88x2cs since a2066739:
ae2cc93 makes the rx_ampdu sz_limit init handle an unexpected nss index
instead of indexing past the table, and a2e3fed makes remain_on_channel
and mgmt_tx report the cookie cfg80211 hands them, gated at
KERNEL_VERSION(7, 3, 0) so the 6.12/6.18/7.1/7.2 builds are unchanged.
2026-09-01 15:42:26 +03:00
Viacheslav Bocharov 4f813f1edb fix(bsp): do not block basic.target while resizing the rootfs
armbian-resize-filesystem runs with DefaultDependencies=no and
Before=basic.target, so the entire boot waits for it. The script calls
partprobe, which waits for the udev queue to drain. A udev worker that
never finishes its event stalls that queue for the full 180s worker
timeout, and basic.target - together with dbus.service - is delayed by
the same amount.

That delay breaks DNS on the first boot. systemd-resolved is ordered
before sysinit.target, so it starts while dbus is still not up and
never acquires org.freedesktop.resolve1. NetworkManager hands DNS
servers to resolved over D-Bus only, so the DHCP-provided servers never
reach it and name resolution stays dead for the whole session, which is
exactly when armbian-firstrun and apt need it.

Resizing need not run that early: resize2fs operates online on the
mounted rootfs, and the only unit ordered against it is lowmem-mkswap.
Move both units to multi-user.target so a stalled udev queue can no
longer hold up the boot. armbian-firstlogin already waits for queued
jobs through systemctl is-system-running --wait, and the script
disables itself with systemctl disable, which follows the new [Install]
section on its own.

Claude-Session: https://claude.ai/code/session_01SWvjHEYMimjZVj1qy3aR2k
2026-09-01 09:46:41 +02:00
Viacheslav Bocharov 1e84a42f61 Add CONFIG_RTW88_8821AU=m to rockchip64 kernel config 2026-08-03 17:57:42 +03:00
Viacheslav Bocharov 167f18df5e fix(jethub-burn): find u-boot deb in DEB_STORAGE, not hardcoded output/debs
post_build_image__900_jethub_burn looked for the u-boot .deb in
${SRC}/output/debs, but BETA builds (BETA=yes, used by the nightly) place
reversioned debs in output/debs-beta (DEB_STORAGE). The Amlogic burn
conversion therefore failed with "u-boot deb not found for <board>".
Use ${DEB_STORAGE} with a fallback to the previous path.
2026-07-09 15:36:16 +03:00
Viacheslav Bocharov b5dd29a9de meson64: add GPIO shared-proxy/pinctrl cansleep series (upstream v3)
Two related upstream patches, grouped under one prefix + number, in
meson64-7.1 and meson64-7.2:
- general-gpio-shared-cansleep-0001-gpio-shared-proxy-always-mutex.patch:
  serialize the shared GPIO descriptor with a sleeping mutex;
  gpio_shared_proxy_set_unlocked() calls gpiod_set_value_cansleep()
  directly; the proxy gpiochip is always sleeping.
- general-gpio-shared-cansleep-0002-pinctrl-meson-restore-non-sleeping-gpio.patch:
  restore meson gpio_chip.can_sleep = false (applies after 0001).

meson64-7.2 shipped an earlier draft of these under separate filenames;
this replaces it with the grouped versions. meson64-6.12/6.18 carry no
shared-proxy driver and are unchanged.
2026-07-01 17:03:14 +03:00
Viacheslav Bocharov 8f0344a65e rtl88x2cs: bump to new commit for Linux 7.2
Pulls in jethome-iot/rtl88x2cs#40 (strncpy() removed in kernel 7.2;
version-gated rtw_strscpy_pad/rtw_bytes wrappers, built against v7.2-rc1).
2026-06-30 14:02:48 +02:00
Viacheslav Bocharov 6082f86eb7 meson64: bleedingedge: enable CONFIG_GPIO_CDEV_V1
Linux v7.1 dropped the 'default y' from GPIO_CDEV_V1, the v1 GPIO
character-device ABI used by libgpiod 1.x. That is what virtually all
current userspace ships: every Ubuntu release and Debian up to bookworm
use libgpiod 1.x; only Debian trixie and newer moved to libgpiod 2.x
(v2 ABI). Without this option such images lose all libgpiod GPIO access
(gpioget/gpioset/gpiomon return -EINVAL).

The option is purely additive - the v2 ABI used by libgpiod 2.x stays
available - so enabling it only restores the pre-7.1 behaviour. The
older meson64 branches (6.12/6.18/7.0) still default it to y.
2026-06-15 16:49:22 +03:00
Viacheslav BocharovandClaude Fable 5 f8627b37d7 meson64: extend the GPIO can_sleep fixes to 7.1 (bleedingedge)
7.1 carries both the masking commit (28f240683871, not reverted in
v7.1-rc) and the gpio-shared-proxy code, so it needs the same pair as
7.0: the proxy locking fix plus the meson can_sleep restore. Patches
are generated from the same kernel commits (based on v7.1-rc7) and
apply without offset.

Boot-tested on JetHub D1 (jethubj100, BRANCH=bleedingedge, 7.1.0-rc6):
clean dmesg (no BUG/WARNING), 1-Wire DS18B20 detected and read.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-11 11:46:48 +02:00
Viacheslav BocharovandClaude Fable 5 ee9627e9d5 meson64: extend the can_sleep restore to 6.12 (oldlts)
The masking commit was backported to 6.12.y as well (fee56df34234);
the shared-GPIO proxy code does not exist in 6.12 either, so there the
backport also fixes nothing and only breaks w1-gpio. Same restore
patch, adapted Fixes reference.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-11 11:46:48 +02:00
Viacheslav BocharovandClaude Fable 5 4f3e5eb9b7 meson64: fix GPIO can_sleep regression that breaks w1-gpio (1-Wire)
Mainline commit 28f240683871 ("pinctrl: meson: mark the GPIO controller
as sleeping", in v7.0, backported to 6.18.y as e81d1bc4ea79) marks the
whole meson GPIO controller as sleeping to work around a locking bug in
the gpio-shared-proxy layer. The flag breaks atomic value-path GPIO
consumers on all Amlogic boards: w1-gpio (1-Wire bitbang) hits
WARN_ON(can_sleep) on every transferred bit inside its IRQs-off time
slot, the bit timing is destroyed and no 1-Wire devices are detected
(w1_master_slave_count stays 0).

meson64-7.0: fix the root cause in gpio-shared-proxy (always serialize
with a sleeping mutex instead of deriving the lock type from the
underlying chip's can_sleep) and restore meson can_sleep=false.

meson64-6.18: the shared-GPIO proxy code does not exist in 6.18, so the
backported workaround fixes nothing there and only causes the
regression; restore meson can_sleep=false.

Both kernels build with the patches applied. The fix pair was verified
on hardware on JetHub D1 (Amlogic A113X, DS18B20 on GPIOA_14) with a
7.0.12 kernel: the sensor is detected and read again, no gpiolib
warnings. On-device verification of the per-branch builds is tracked in
the PR.

The same two patches are being submitted to LKML (gpio/pinctrl
maintainers); they can be dropped here once they land upstream.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-11 11:46:48 +02:00
Viacheslav Bocharov e85f8dbc5d update CODEOWNEERS for jethome/amlogic 2026-05-07 17:32:27 +03:00
Viacheslav Bocharov 8219356183 Reenbale rtl88x2cs driver
Signed-off-by: Viacheslav Bocharov <v@baodeep.com>
2026-05-07 05:30:15 +02:00