From nobody Fri Sep 11 05:04:30 2026 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4hh2XG4X3yz6rbhV for ; Fri, 11 Sep 2026 05:04:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "YR2" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hh2XG2Ndbz4Bsl for ; Fri, 11 Sep 2026 05:04:30 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1789103070; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7S2Y/cme5U3ItQyHociF2ii4IAPRiMclGOcVwlAgVhU=; b=V/YzLZ6/aDRxlf1oofSiNt0fRCcvIYPYSHirUuhJ7Z/jPzKpAALKG6lw32ualeN3MVZCSG TXW7rBNLmXVkLfRj5SI0nWUJulYtlbfL0lPSVk6qH26s2pKzxuMFs6JJ6D+ffmUw0rSIfa FmzxHBqWawI7OATirM4vwlbzGcrGnrV/nU1BAV2KIme3KoTzIGYuf+9y8UHiYMfe5jmrCH uxCfNO3x+VCCPPGwpu9kVch7vJD+2jHa0c8SvZn19gwuNdwCtuUCC42RaKH8cbrBMraClM avcaNZaYRHC+9Lk+ScaU6SDKELRGeqw2/caI+1Ejlzqx9qxMsSv815tVDuKLvw== ARC-Seal: i=1; a=rsa-sha256; d=freebsd.org; s=dkim; cv=none; t=1789103070; b=yNhWkLuVAjwHShzzybnDkPOK46YbEhpslSkpKMNZH/eFOW2CSSMhml9+uDT5+pHkhvZ40v VjvuWMpAnJqm0DToFZkgZHw3mljp50WlpzzCDhzHytXHKsVSRlNLSdgAQjaC8LobP1aFzH pgFrwNoEsvljlmr7VWvcDfc1+itZvlbgYeggeowLnvqc9V0EVAPP7tkA8ak6CmijJ59vow Gd4y0JJyiR8TQCM2sSn1UWD5z8SbmKVF2uNEtOogv6whgo3e0XGUYC1MukSPwjR+Kz/j64 80NBLXRm9asoED2+gkjSozMvLma+NH/lfh/J0YIxamfs2Hs1QuUpZ7xAzJlT0w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1789103070; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7S2Y/cme5U3ItQyHociF2ii4IAPRiMclGOcVwlAgVhU=; b=Hq96Nf5eC/q99GyVVB/+yRWCFvr0IPjKQF/COZWfsusVJ1NReSIb7ZpmVL6zRicKr2Xah5 aqVH0+FFdpoovVweJ9Kc1wfcNyUe7RVEJdnG11DTmSa+uLGAO9sMGAAI+0DXqJPqdPVtOU uhnaGi6MiXc5xfyuZH3bL8/0cTxK/no+NUvX5rqDSxODwprAWhp8YPwP7gkOoiyIC0LNCH rAWo0RJi7XH0q4kDsBqkvP0H6eAuYb/80HWTYc8n6KCTiPZwDt9nA4OOXzhH+4DOJv3o55 R1equf3lbYGy2bcs4RgjSeTfq468uMYzISaEb5aGbtIZ/bgnpbMsWWfO+8ECEA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hh2XG17YKzyx3 for ; Fri, 11 Sep 2026 05:04:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3cb89 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 11 Sep 2026 05:04:30 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: d48e9bff8c02 - main - loader.efi: fetch initmd specified by DHCP List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: d48e9bff8c0216e66c5d789266c8800dc18d51e0 Auto-Submitted: auto-generated Date: Fri, 11 Sep 2026 05:04:30 +0000 Message-Id: <6aa38bde.3cb89.dfae335@gitrepo.freebsd.org> The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=d48e9bff8c0216e66c5d789266c8800dc18d51e0 commit d48e9bff8c0216e66c5d789266c8800dc18d51e0 Author: Warner Losh AuthorDate: 2026-09-11 04:14:24 +0000 Commit: Warner Losh CommitDate: 2026-09-11 04:15:29 +0000 loader.efi: fetch initmd specified by DHCP Configure net0, read the DHCP-provided initmd URL, and download it through the file API so directly booted loader.efi can construct its root memory disk. Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D59432 --- stand/efi/loader/loader_efi.h | 1 + stand/efi/loader/memdisk.c | 31 +++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/stand/efi/loader/loader_efi.h b/stand/efi/loader/loader_efi.h index 6fe547b83453..d6a45e04e27c 100644 --- a/stand/efi/loader/loader_efi.h +++ b/stand/efi/loader/loader_efi.h @@ -61,6 +61,7 @@ void efi_copy_finish_nop(void); void maybe_download_ramdisk(int argc, CHAR16 **argv); int download_md_image(const char *url); +void maybe_download_initmd(void); #if defined(__amd64__) || defined(__i386__) /* Need this to setup page tables */ diff --git a/stand/efi/loader/memdisk.c b/stand/efi/loader/memdisk.c index d02b99a0677c..ce509e50c71c 100644 --- a/stand/efi/loader/memdisk.c +++ b/stand/efi/loader/memdisk.c @@ -10,6 +10,7 @@ #include "loader_efi.h" #include +#include #include #include #include "decompress.h" @@ -197,6 +198,36 @@ out_close: return (error); } +void +maybe_download_initmd(void) +{ + struct devdesc dev; + const char *url; + int error; + + if (efi_find_handle(&efinet_dev, 0) == NULL) + return; + + memset(&dev, 0, sizeof(dev)); + dev.d_dev = &efinet_dev; + dev.d_unit = 0; + error = net_configure(&dev); + if (error != 0) { + printf("Could not configure net0 for initmd: %s\n", + strerror(error)); + return; + } + + url = getenv("dhcp.initmd"); + if (url == NULL || *url == '\0') + return; + + printf("Downloading initmd from %s\n", url); + error = download_md_image(url); + if (error != 0) + printf("Could not download initmd: %s\n", strerror(error)); +} + static void do_download_ramdisk(CHAR8 *url, bool is_disk) {