Index: smbios.c =================================================================== RCS file: /home/ncvs/src/sys/boot/i386/libi386/smbios.c,v retrieving revision 1.2 diff -u -r1.2 smbios.c --- smbios.c 27 Jul 2005 19:11:10 -0000 1.2 +++ smbios.c 22 Aug 2005 20:19:20 -0000 @@ -67,6 +67,7 @@ u_int16_t i, length, count; u_int32_t paddr; + printf("smbios_detect\n"); /* locate and validate the SMBIOS */ smbios = smbios_sigsearch(PTOV(SMBIOS_START), SMBIOS_LENGTH); if (smbios == NULL) @@ -76,6 +77,7 @@ paddr = *(u_int32_t *)(smbios + 0x18); /* Structure Table Address */ count = *(u_int16_t *)(smbios + 0x1c); /* No of SMBIOS Structures */ + printf("length = %u, paddr = %u, count = %u\n", length, paddr, count); for (dmi = addr = PTOV(paddr), i = 0; dmi - addr < length && i < count; i++) dmi = smbios_parse_table(dmi); @@ -86,6 +88,7 @@ { u_int8_t *dp; + printf("smbios_parse_table: type %u\n", dmi[0]); switch(dmi[0]) { case 0: /* Type 0: BIOS */ smbios_setenv("smbios.bios.vendor", dmi, 0x04); @@ -119,6 +122,7 @@ while (dp[0] != 0 || dp[1] != 0) dp++; + printf("smbios_parse_table returns %p\n", dp + 2); return(dp + 2); } @@ -128,13 +132,16 @@ char *cp; int i; + printf("smbios_setenv: %s at %p, offset = %d\n", str, dmi, offset); /* skip undefined string */ if (dmi[offset] == 0) return; for (cp = (char *)(dmi + dmi[1]), i = 0; i < dmi[offset] - 1; i++) cp += strlen(cp) + 1; + printf("%s=\"%s\"\n", str, cp); setenv(str, cp, 1); + printf("smbios_setenv done\n"); } static u_int8_t @@ -143,6 +150,7 @@ u_int8_t sum; int i; + printf("smbios_checksum: %p, %u\n", addr, len); for (sum = 0, i = 0; i < len; i++) sum += addr[i]; @@ -154,6 +162,7 @@ { caddr_t cp; + printf("smbios_sigsearch: %p, %u\n", addr, len); /* search on 16-byte boundaries */ for (cp = addr; cp - addr < len; cp += SMBIOS_STEP) { /* compare signature, validate checksum */