From nobody Fri Sep 11 05:04:17 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 4hh2X23pkRz6rZty for ; Fri, 11 Sep 2026 05:04:18 +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 4hh2X21cc8z3RFh for ; Fri, 11 Sep 2026 05:04:18 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1789103058; 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=p+vRgh/yyv+q4ACsSzemMF3ysLO6TTgYj+DzUF8EkTc=; b=dDlCR0wEcNIGBVYZVGGIdmqYoFtYOFBnEB89kOfmbnhJ5kcYXygGu+mIrsUg/EHFiYmHT7 GfTGzpbkVnDt5AK6APkUPM4qlvQAQ8M7XpqJz6Qq/6hpPfbHH3rKRYtJzKW60N+Nx8jwNE foR/46/KUIYb7OlLfpa05i87AunWoTXkcfNjUBCWXGByvxR23kmKXJquUqO44NREY8MJ69 GQJNv9W44DXdPetge31NZho9RGoZ3ASBM6xp8uAGuL7Z9ZcPsxQ2l8n3ZAnVg3thQeFlzi h3EEczCqIOiutEtD4ppajm9uO/C1+jVZQssoLqHgm+bgxwJPBhmW49nmaCDuFw== ARC-Seal: i=1; a=rsa-sha256; d=freebsd.org; s=dkim; cv=none; t=1789103058; b=FI3/zt7uOuIvSVR00CXfAkBQFpFLjiBQHNzx2jGI+g2Us9LjZSJOY0S0PuG7HUUoyBEjOQ EZraWsF5eZuwFPkroBQJWz4/CR0dHkqOmqwqB9ZYLKxRKt2tA0fKfTTvIfwkJfkf+psqKH LNUzV/946ebf7mZQQ5DCyVoYYt0M3vEv9HEGgApkCCn84XbCmoAfnUpb9fKTsVty3ArwNX N2eJ8MvXDnkI60o1uAqQJG4Px62GS9VyGDOWsiUJ8k/UxOlZ5l1QACYvJBs3tGnXTjVcTS TD8cfGBRnjzrhEZhhNzUdz5CIqLCksoIkwxTc2lB9RpzuJkPvC+84PpIdXv4pw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1789103058; 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=p+vRgh/yyv+q4ACsSzemMF3ysLO6TTgYj+DzUF8EkTc=; b=LnkwElQJlF1lOU1/soUkn2pZKmPBVB1L+cRwd4+QrNu7CZqEnBUrAQR4fsaJ7lTtOYmPRs Gw9dBPNyOqLLAPMsMZbZGf+rNqoGK6VdBbMsQOboOKwbQvpM+L1PZ7zUUI4oJGuBA/ZNpH 1WA8qW5rtF0m0tk+947EqQc9nQYBouZ9oKSUopMQeeytlsA8QySGO3//KKsgHrxLM/K5RN bktK51Qeq89Hv5didQJhmiIjNwTSt10bfdWGUIKrbmgH1UPFwDwEmTIsxWlIpCxIgUVSWK KTQZMqHYcpVm/Ptlq+k/5G/60C7nRsavWcscp5s+EkBGDH0um/iopx5+CMHCAg== 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 4hh2X175b5z10gV for ; Fri, 11 Sep 2026 05:04:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3be0e by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 11 Sep 2026 05:04:17 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: 7055aa7a070f - main - loader: Move ramdisk export to md.c 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: 7055aa7a070fa98fa3a7e1efaab0b07d68a08975 Auto-Submitted: auto-generated Date: Fri, 11 Sep 2026 05:04:17 +0000 Message-Id: <6aa38bd1.3be0e.44da1c20@gitrepo.freebsd.org> The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=7055aa7a070fa98fa3a7e1efaab0b07d68a08975 commit 7055aa7a070fa98fa3a7e1efaab0b07d68a08975 Author: Warner Losh AuthorDate: 2026-09-11 04:13:09 +0000 Commit: Warner Losh CommitDate: 2026-09-11 04:15:27 +0000 loader: Move ramdisk export to md.c Move the common routine to md.c and use it where we do memdisks today. Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D59417 --- stand/common/bootstrap.h | 3 +++ stand/common/md.c | 19 +++++++++++++++++++ stand/efi/libefi/efipart.c | 8 +------- stand/i386/libi386/biosmemdisk.c | 11 ++--------- stand/i386/loader/Makefile | 1 + 5 files changed, 26 insertions(+), 16 deletions(-) diff --git a/stand/common/bootstrap.h b/stand/common/bootstrap.h index 7be1d6897a9a..ba56f2e3c149 100644 --- a/stand/common/bootstrap.h +++ b/stand/common/bootstrap.h @@ -381,4 +381,7 @@ int gen_setcurrdev(struct env_var *ev, int flags, const void *value); int mount_currdev(struct env_var *, int, const void *); void set_currdev(const char *devname); +/* md.c */ +void md_export_to_kernel(uint64_t start, uint64_t len); + #endif /* !_BOOTSTRAP_H_ */ diff --git a/stand/common/md.c b/stand/common/md.c index b1179254e3c0..604bf2ae64a8 100644 --- a/stand/common/md.c +++ b/stand/common/md.c @@ -34,6 +34,25 @@ #define MD_BLOCK_SIZE 512 +/* + * The kernel can accept a MD inline in the metadata, or out-of-line via + * hints, like when memory disks are passed to us in, for example, UEFI. + */ +void +md_export_to_kernel(uint64_t start, uint64_t len) +{ + char key[32], value[32]; + static int unit = 0; /* Note: loader unit and kernel unit may differ */ + + snprintf(key, sizeof(key), "hint.md.%d.physaddr", unit); + snprintf(value, sizeof(value), "0x%016jx", (uintmax_t)start); + setenv(key, value, 1); + snprintf(key, sizeof(key), "hint.md.%d.len", unit); + snprintf(value, sizeof(value), "%jd", (uintmax_t)len); + setenv(key, value, 1); + unit++; +} + #ifdef MD_IMAGE_SIZE #if (MD_IMAGE_SIZE == 0 || MD_IMAGE_SIZE % MD_BLOCK_SIZE) diff --git a/stand/efi/libefi/efipart.c b/stand/efi/libefi/efipart.c index c80a3b966376..1b1795ccdd40 100644 --- a/stand/efi/libefi/efipart.c +++ b/stand/efi/libefi/efipart.c @@ -1278,7 +1278,6 @@ efiblk_memdisk_preload(void) MEDIA_RAM_DISK_DEVICE_PATH *ram; uint64_t start, end; pdinfo_t *md; - char key[32], value[32]; int i; STAILQ_FOREACH(md, &pdinfo, pd_link) { @@ -1288,11 +1287,6 @@ efiblk_memdisk_preload(void) i = ram->Instance; start = ((uint64_t)ram->StartingAddr[1] << 32) | ram->StartingAddr[0]; end = ((uint64_t)ram->EndingAddr[1] << 32) | ram->EndingAddr[0]; - snprintf(key, sizeof(key), "hint.md.%d.physaddr", i); - snprintf(value, sizeof(value), "0x%016x", start); - setenv(key, value, 1); - snprintf(key, sizeof(key), "hint.md.%d.len", i); - snprintf(value, sizeof(value), "%d", end - start + 1); - setenv(key, value, 1); + md_export_to_kernel(start, end - start + 1); } } diff --git a/stand/i386/libi386/biosmemdisk.c b/stand/i386/libi386/biosmemdisk.c index 208ae289950a..89199563cbef 100644 --- a/stand/i386/libi386/biosmemdisk.c +++ b/stand/i386/libi386/biosmemdisk.c @@ -66,8 +66,7 @@ struct safe_13h_hook { void biosmemdisk_detect(void) { - char line[80], scratch[80]; - int hook = 0, count = 0, sector_size; + int hook = 0, sector_size; uint16_t segment, offset; struct safe_13h_hook *probe; ACPI_TABLE_HEADER *mbft; @@ -125,13 +124,7 @@ biosmemdisk_detect(void) mdi->mdi_major, mdi->mdi_minor, mdi->mdi_disk_ptr, mdi->mdi_disk_sectors, mdi->mdi_disk_sectors * sector_size); - snprintf(line, sizeof(line), "hint.md.%d.physaddr", count); - snprintf(scratch, sizeof(scratch), "0x%08x", mdi->mdi_disk_ptr); - setenv(line, scratch, 1); - snprintf(line, sizeof(line), "hint.md.%d.len", count); - snprintf(scratch, sizeof(scratch), "%d", mdi->mdi_disk_sectors * sector_size); - setenv(line, scratch, 1); - count++; + md_export_to_kernel(mdi->mdi_disk_ptr, mdi->mdi_disk_sectors * sector_size); end_of_loop: hook++; offset = probe->sh_next_offset; diff --git a/stand/i386/loader/Makefile b/stand/i386/loader/Makefile index 8b9163aa69c2..043853f80360 100644 --- a/stand/i386/loader/Makefile +++ b/stand/i386/loader/Makefile @@ -10,6 +10,7 @@ LOADER_UFS_SUPPORT?= yes LOADER_GZIP_SUPPORT?= yes LOADER_BZIP2_SUPPORT?= yes LOADER_XZ_SUPPORT?= yes +LOADER_MD_SUPPORT?= yes .include