Commit Graph

5 Commits

Author SHA1 Message Date
CyberMind
b1ebae2d58
kernel-build: add DTS patch for MOCHAbin mPCIe USB PHY (ref #255) (#258)
The MOCHAbin DTS (armada-7040-mochabin.dts) enables cp0_usb3_1 — the
mPCIe slot's USB 2.0 controller — with `status = "okay"` but assigns
no PHY. Result: the xhci driver registers the controller but it has
no signaling path; USB devices plugged into the mPCIe slot do not
enumerate.

This patch assigns the UTMI PHY (cp0_utmi1) to cp0_usb3_1, matching
the upstream armada-7040-db reference design for that controller.

After the patch, both USB3 host controllers bind at boot (was 1):
  xhci-hcd f2500000.usb: cp0_usb3_0 (SMSC hub)
  xhci-hcd f2510000.usb: cp0_usb3_1 (mPCIe slot, new)

The 6 SerDes (comphy) lanes are all allocated to other peripherals
(eth0=SFP+, eth1=Topaz, usb3_0=SMSC, sata0×2, pcie2=mPCIe). No lane
is available for USB 3.0 SuperSpeed on the slot, but the slot's USB
pins are USB 2.0 only by design — UTMI alone is correct.

Board-validated 2026-05-20 on gk2 (MOCHAbin):
  Before patch: lsusb shows 2 buses (cp0_usb3_0)
  After  patch: lsusb shows 4 buses (cp0_usb3_0 + cp0_usb3_1 = 4)

NOTE: this patch is necessary but not sufficient for cellular modems
in the mPCIe slot to actually enumerate. The slot's W_DISABLE# /
power-enable sequencing also needs investigation. The Quectel EP06-E
plugged into J5 on gk2 still doesn't enumerate after this patch
(lspci shows the PCIe bridge with `[disabled]` memory window — modem
is electrically dark on both USB and PCIe interfaces). See #255 for
the remaining hardware investigation.

Ref #255

Co-authored-by: CyberMind-FR <gandalf@Gk2.net>
2026-05-20 16:44:31 +02:00
00766234d2 feat(kernel): Add complete nftables support + busybox rescue docs
Kernel nftables fix (issue #64):
- Added CONFIG_NF_TABLES_INET, CONFIG_NF_TABLES_IPV4/IPV6
- Added NFT_CT, NFT_LOG, NFT_LIMIT, NFT_REJECT, NFT_COUNTER
- CrowdSec firewall bouncer now works correctly

Build script safety:
- Added deploy_to_device() with safe module extraction
- Prevents /lib symlink overwrite disaster

Documentation:
- FAQ-BUSYBOX-RESCUE.md: Emergency recovery when libc inaccessible
- PROMPT-BUSYBOX-TECHTIP.md: Gemini prompt for visual tech tip
- QUICKSHEET: Added emergency recovery section

Sidebar v2.32.0:
- Per-LED tooltips (Hardware/Services/Security)
- Fixed tooltip positioning for sidebar elements

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-05-08 18:27:30 +02:00
8bc3159439 feat(led): Add kernel rebuild preparation and initramfs support
- Add build-kernel.sh for cross-compiling kernel 6.6.x LTS with LED as module
- Add secubox-led-reset tool for I2C recovery via rmmod/modprobe
- Add initramfs modules.d configs for LED (leds-is31fl319x) and USB network
- Update debian/rules to install initramfs configs and led-reset tool
- Fix .gitignore to track build-kernel.sh

LED driver as module (=m) allows recovery from I2C bus hang without reboot:
  rmmod leds_is31fl319x && modprobe leds_is31fl319x

USB network modules (usbnet, cdc_ether, cdc_ncm, rndis_host) added for
Eye Remote gadget support at early boot.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-05-08 10:21:23 +02:00
5c3afdd521 feat(kernel): Add I2C timing patches for LED driver reliability
Created kernel patches to fix I2C timing issues with IS31FL319X LED
controller on Marvell Armada platforms (errata FE-8471889):

- 001-leds-is31fl319x-add-i2c-delays.patch: Adds 1ms delays between
  I2C register writes in LED driver to prevent bus errors
- 002-i2c-mv64xxx-increase-errata-delay.patch: Increases mv64xxx
  errata delay from 5µs to 50µs for more reliable operation

Updated .gitignore to track kernel-build/patches/ while still
ignoring build outputs.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-05-08 09:21:21 +02:00
af1f9b441a docs(kernel): Switch to kernel 6.6.x LTS for I2C/LED compatibility
Kernel 6.12.x has mv64xxx I2C driver timing issues causing LED write
failures (-EIO). OpenWrt kernel 6.6.119 works perfectly with the same
IS31FL3199 LED chip.

Updated build instructions to use kernel 6.6.137 LTS (same generation
as OpenWrt) for reliable I2C/LED support on MOCHAbin.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-05-08 08:47:30 +02:00