On Fri, Jun 5, 2026 at 2:28 PM Jon Cormier via lists.yoctoproject.org <[email protected]> wrote:
> On Fri, Jun 5, 2026 at 8:17 AM Moteen Shah via lists.yoctoproject.org > <[email protected]> wrote: > > > > 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 <[email protected]> > > --- > > Hi everyone, > > AM65_CPSW_NUSS and its dependencies changed from built-in (=y) to > > loadable modules (=m) in linux-next. This breaks NFS boot because the > > Ethernet driver is no longer available before the NFS root mount. > > > > Add a standalone initramfs-module-netsetup recipe that waits for the > > Ethernet interface to appear after udev loads the modules and then > > configures it via DHCP before the nfsrootfs module runs. The CPSW > > kernel modules are declared as RDEPENDS:append:bsp-next of the recipe > > so they are only pulled in for bsp-next kernels and only when NFS boot > > support is needed. > > > > Changes in v3: > > - Remove FILESEXTRAPATHS:prepend - redundant in a standalone recipe > (Denys) > > - Remove PACKAGE_ARCH = "${MACHINE_ARCH}" - script is not > machine-specific (Denys) > > - Drop k3.inc patch; move CPSW modules into RDEPENDS:append:bsp-next of > > the recipe, linking module inclusion to NFS boot recipe inclusion > > - Gate initramfs-module-netsetup on :bsp-next in packagegroup so staging > > kernels (where CPSW is built-in =y) are unaffected > > > > .../initramfs-module-netsetup/83-netsetup | 54 +++++++++++++++++++ > > .../initramfs-module-netsetup_1.0.bb | 31 +++++++++++ > > .../packagegroup-ti-core-initramfs.bb | 2 + > > 3 files changed, 87 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 > > > > 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..b71bc3b3 > > --- /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" > > + > > + dhcpcd --waitip "${iface}" > Additionally I believe this should have been executed as a oneshot, I.E. no background service which won't survive the switch-root. For dhcpcd --oneshot --waitip "${iface}" For 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..cdb6116a > > --- /dev/null > > +++ b/meta-ti-bsp/recipes-ti/initramfs/initramfs-module-netsetup_1.0.bb > > @@ -0,0 +1,31 @@ > > +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 \ > > + dhcpcd \ > Sorry, I didn't notice this earlier. Is there a reason not to use > busybox-udhcpc which is already included? > > This adds two packages: > +dhcpcd aarch64 10.3.0-r0.0 > +libudev1 aarch64 1:259.5-r0.arago7.0 > > And increased the size by 1.6MB on arago-wrynose > +1,685,504 ti-core-initramfs.cpio > +327,560 ti-core-initramfs.cpio.xz > > > +" > > + > > +RDEPENDS:${PN}:append: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 \ > > +" > > 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..b4e6adff 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:bsp-next = " initramfs-module-netsetup" > > -- > > 2.34.1 > > > > > > > > > > > -- > Jonathan Cormier > Senior Software Engineer > > Office: 315.425.4045 x222 > > http://www.CriticalLink.com > 6712 Brooklawn Parkway, Syracuse, NY 13211 > > > > -- Jonathan Cormier Senior Software Engineer Office: 315.425.4045 x222 http://www.CriticalLink.com <http://www.criticallink.com/> 6712 Brooklawn Parkway, Syracuse, NY 13211
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#19982): https://lists.yoctoproject.org/g/meta-ti/message/19982 Mute This Topic: https://lists.yoctoproject.org/mt/119661032/21656 Group Owner: [email protected] Unsubscribe: https://lists.yoctoproject.org/g/meta-ti/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
