diff mbox series

[meta-ti,master/wrynose,v5] initramfs: Add initramfs-module-netsetup recipe for NFS boot

Message ID 20260717083522.1889008-1-m-shah@ti.com
State New
Headers show
Series [meta-ti,master/wrynose,v5] initramfs: Add initramfs-module-netsetup recipe for NFS boot | expand

Commit Message

Moteen Shah July 17, 2026, 8:35 a.m. UTC
Add a standalone initramfs-module-netsetup recipe that installs
83-netsetup, an initramfs-framework module that configures the network
interface via DHCP before the NFS root mount. The recipe's RDEPENDS
pulls in CPSW and its dependencies, so the kernel modules and DHCP
client are only included when NFS boot support is needed.

Include initramfs-module-netsetup in packagegroup-ti-core-initramfs
gated on :bsp-next, where AM65_CPSW_NUSS became a loadable module.
TI staging kernels (6.6/6.12/6.18) still have CPSW built-in (=y).

Signed-off-by: Moteen Shah <m-shah@ti.com>
---
Changes in v5:
- Scope CPSW modules and netsetup inclusion to :k3:bsp-next to avoid
  breaking legacy non-K3 platforms building with bsp-next (Denys)
- Restore PACKAGE_ARCH = "${MACHINE_ARCH}" since recipe has
  K3-specific RDEPENDS (Denys)

 .../initramfs-module-netsetup/83-netsetup     | 54 +++++++++++++++++++
 .../initramfs-module-netsetup_1.0.bb          | 32 +++++++++++
 .../packagegroup-ti-core-initramfs.bb         |  2 +
 3 files changed, 88 insertions(+)
 create mode 100644 meta-ti-bsp/recipes-ti/initramfs/initramfs-module-netsetup/83-netsetup
 create mode 100644 meta-ti-bsp/recipes-ti/initramfs/initramfs-module-netsetup_1.0.bb

Comments

PRC Automation July 17, 2026, 8:40 a.m. UTC | #1
meta-ti / na / 20260717083522.1889008-1-m-shah

PRC Results: FAIL

=========================================================
  check-yocto-patches: PASS
=========================================================
Patches
----------------------------------------
All patches passed



=========================================================
  apply-yocto-patch: FAIL
=========================================================
master
=====================
Summary:
- Patch Series: [meta-ti][master/wrynose][PATCH v5] initramfs: Add initramfs-module-netsetup recipe for NFS boot
- Submitter: From: Moteen Shah <m-shah@ti.com>
- Date: Date: Fri, 17 Jul 2026 14:05:22 +0530
- Num Patches: 1
- Mailing List (public inbox) Commit SHA: f0df7401864fa319167fdacab5f1968a47d53760

Applied to:
- Repository: lcpd-prc-meta-ti
- Base Branch: master
- Commit Author: LCPD Automation Script <lcpdbld@list.ti.com>
- Commit Subject: CI/CD Auto-Merger: cicd.master.202606162200
- Commit SHA: 8b9b4854295491a0272722fe4fb2e0aa773d0a6d

Patches
----------------------------------------
FAIL - [meta-ti][master/wrynose][PATCH v5] initramfs: Add initramfs-module-netsetup recipe for NFS boot
    error: meta-ti-bsp/recipes-ti/initramfs/initramfs-module-netsetup/83-netsetup: already exists in index
    error: meta-ti-bsp/recipes-ti/initramfs/initramfs-module-netsetup_1.0.bb: already exists in index
    error: patch failed: meta-ti-bsp/recipes-ti/initramfs/packagegroup-ti-core-initramfs.bb:23
    error: meta-ti-bsp/recipes-ti/initramfs/packagegroup-ti-core-initramfs.bb: patch does not apply
    Applying: initramfs: Add initramfs-module-netsetup recipe for NFS boot
    Patch failed at 0001 initramfs: Add initramfs-module-netsetup recipe for NFS boot

wrynose
=====================
Summary:
- Patch Series: [meta-ti][master/wrynose][PATCH v5] initramfs: Add initramfs-module-netsetup recipe for NFS boot
- Submitter: From: Moteen Shah <m-shah@ti.com>
- Date: Date: Fri, 17 Jul 2026 14:05:22 +0530
- Num Patches: 1
- Mailing List (public inbox) Commit SHA: f0df7401864fa319167fdacab5f1968a47d53760

Applied to:
- Repository: lcpd-prc-meta-ti
- Base Branch: wrynose
- Commit Author: LCPD Automation Script <lcpdbld@list.ti.com>
- Commit Subject: CI/CD Auto-Merger: cicd.wrynose.202607100005
- Commit SHA: 42b887f0b110eecb91744625bd4db09b1ea59770

Patches
----------------------------------------
FAIL - [meta-ti][master/wrynose][PATCH v5] initramfs: Add initramfs-module-netsetup recipe for NFS boot
    error: meta-ti-bsp/recipes-ti/initramfs/initramfs-module-netsetup/83-netsetup: already exists in index
    error: meta-ti-bsp/recipes-ti/initramfs/initramfs-module-netsetup_1.0.bb: already exists in index
    error: patch failed: meta-ti-bsp/recipes-ti/initramfs/packagegroup-ti-core-initramfs.bb:23
    error: meta-ti-bsp/recipes-ti/initramfs/packagegroup-ti-core-initramfs.bb: patch does not apply
    Applying: initramfs: Add initramfs-module-netsetup recipe for NFS boot
    Patch failed at 0001 initramfs: Add initramfs-module-netsetup recipe for NFS boot
diff mbox series

Patch

diff --git a/meta-ti-bsp/recipes-ti/initramfs/initramfs-module-netsetup/83-netsetup b/meta-ti-bsp/recipes-ti/initramfs/initramfs-module-netsetup/83-netsetup
new file mode 100644
index 00000000..8e76bac4
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/initramfs/initramfs-module-netsetup/83-netsetup
@@ -0,0 +1,54 @@ 
+#!/bin/sh
+# Configure network via DHCP before NFS root mount. Polls for an Ethernet
+# interface with sleep 1 per iteration to allow the Ethernet driver deferred
+# probe chain to settle after udev loads the modules.
+
+netsetup_enabled() {
+    [ "${bootparam_root}" = "/dev/nfs" ] || return 1
+    return 0
+}
+
+netsetup_run() {
+    local iface timeout devtype
+
+    # Extract interface from ip= kernel param (format: client:server:gw:mask:host:device:autoconf)
+    iface=""
+    case "${bootparam_ip}" in
+        dhcp|on|any|"")
+            ;;
+        *)
+            iface=$(echo "${bootparam_ip}" | cut -d: -f6)
+            ;;
+    esac
+
+    udevadm trigger --action=add --subsystem-match=net
+    udevadm settle --timeout=10
+
+    # Poll up to 60 seconds for an Ethernet interface (ARPHRD_ETHER = type 1).
+    msg "netsetup: waiting for ethernet interface..."
+    timeout=60
+    while [ "${timeout}" -gt 0 ]; do
+        if [ -n "${iface}" ] && [ -d "/sys/class/net/${iface}" ]; then
+            break
+        fi
+        for dev in /sys/class/net/*; do
+            [ -f "${dev}/type" ] || continue
+            devtype=$(cat "${dev}/type")
+            [ "${devtype}" = "1" ] || continue
+            iface=$(basename "${dev}")
+            break
+        done
+        [ -n "${iface}" ] && [ -d "/sys/class/net/${iface}" ] && break
+        sleep 1
+        timeout=$((timeout - 1))
+    done
+
+    if [ -z "${iface}" ] || [ ! -d "/sys/class/net/${iface}" ]; then
+        msg "netsetup: no ethernet interface found after 60s, skipping DHCP"
+        return
+    fi
+
+    msg "netsetup: configuring ${iface} via DHCP"
+
+    udhcpc -q -i "${iface}"
+}
diff --git a/meta-ti-bsp/recipes-ti/initramfs/initramfs-module-netsetup_1.0.bb b/meta-ti-bsp/recipes-ti/initramfs/initramfs-module-netsetup_1.0.bb
new file mode 100644
index 00000000..03925497
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/initramfs/initramfs-module-netsetup_1.0.bb
@@ -0,0 +1,32 @@ 
+SUMMARY = "initramfs support for DHCP network configuration before NFS root mount"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+
+SRC_URI = "file://83-netsetup"
+
+S = "${UNPACKDIR}"
+
+do_install() {
+    install -d ${D}/init.d
+    install -m 0755 ${UNPACKDIR}/83-netsetup ${D}/init.d/83-netsetup
+}
+
+FILES:${PN} = "/init.d/83-netsetup"
+
+RDEPENDS:${PN} = "\
+    initramfs-framework-base \
+"
+
+RDEPENDS:${PN}:append:k3:bsp-next = " \
+    kernel-module-ti-am65-cpsw-nuss \
+    kernel-module-k3-cppi-desc-pool \
+    kernel-module-davinci-mdio \
+    kernel-module-ti-cpsw-ale \
+    kernel-module-ti-cpsw-sl \
+    kernel-module-phylink \
+    kernel-module-mdio-bitbang \
+    kernel-module-phy-gmii-sel \
+"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
diff --git a/meta-ti-bsp/recipes-ti/initramfs/packagegroup-ti-core-initramfs.bb b/meta-ti-bsp/recipes-ti/initramfs/packagegroup-ti-core-initramfs.bb
index a9eff847..537d1f5a 100644
--- a/meta-ti-bsp/recipes-ti/initramfs/packagegroup-ti-core-initramfs.bb
+++ b/meta-ti-bsp/recipes-ti/initramfs/packagegroup-ti-core-initramfs.bb
@@ -23,3 +23,5 @@  RDEPENDS:${PN} += "\
     initramfs-module-nfsrootfs \
     nfs-utils-mount \
 "
+
+RDEPENDS:${PN}:append:k3:bsp-next = " initramfs-module-netsetup"