summaryrefslogtreecommitdiffstats
path: root/sys/boot
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2006-09-28 19:07:13 +0000
committerjhb <jhb@FreeBSD.org>2006-09-28 19:07:13 +0000
commit7a85c13bc9248b76c1b77416703fcaeabe8e9a3a (patch)
tree1490c8c14fff3e53cfe3f16178a606871a16727e /sys/boot
parent181759445845fd7299a5c25b027d80096b7be2d9 (diff)
downloadFreeBSD-src-7a85c13bc9248b76c1b77416703fcaeabe8e9a3a.zip
FreeBSD-src-7a85c13bc9248b76c1b77416703fcaeabe8e9a3a.tar.gz
Add an 'smap' command that dumps out the BIOS SMAP.
MFC after: 1 week
Diffstat (limited to 'sys/boot')
-rw-r--r--sys/boot/i386/libi386/biossmap.c15
-rw-r--r--sys/boot/i386/loader/help.i3867
2 files changed, 22 insertions, 0 deletions
diff --git a/sys/boot/i386/libi386/biossmap.c b/sys/boot/i386/libi386/biossmap.c
index 9648d23..056bc22 100644
--- a/sys/boot/i386/libi386/biossmap.c
+++ b/sys/boot/i386/libi386/biossmap.c
@@ -95,6 +95,7 @@ bios_getsmap(void)
break;
} while (v86.ebx != 0 && smaplen < n);
}
+
void
bios_addsmapdata(struct preloaded_file *kfp)
{
@@ -105,3 +106,17 @@ bios_addsmapdata(struct preloaded_file *kfp)
len = smaplen * sizeof(*smapbase);
file_addmetadata(kfp, MODINFOMD_SMAP, len, smapbase);
}
+
+COMMAND_SET(smap, "smap", "show BIOS SMAP", command_smap);
+
+static int
+command_smap(int argc, char *argv[])
+{
+ int i;
+
+ if (smapbase == 0 || smaplen == 0)
+ return;
+ for (i = 0; i < smaplen; i++)
+ printf("SMAP type=%02x base=%016llx len=%016llx\n",
+ smapbase[i].type, smapbase[i].base, smapbase[i].length);
+}
diff --git a/sys/boot/i386/loader/help.i386 b/sys/boot/i386/loader/help.i386
index e8a8277..6928c8e 100644
--- a/sys/boot/i386/loader/help.i386
+++ b/sys/boot/i386/loader/help.i386
@@ -54,3 +54,10 @@
forced by setting this variable.
################################################################################
+# Tsmap DDisplay BIOS SMAP table
+
+ smap
+
+ Displays the BIOS SMAP (system memory map) table.
+
+################################################################################
OpenPOWER on IntegriCloud