Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/smbios/smbios.c
Show First 20 Lines • Show All 90 Lines • ▼ Show 20 Lines | smbios_identify (driver_t *driver, device_t parent) | ||||
vm_paddr_t addr; | vm_paddr_t addr; | ||||
int length; | int length; | ||||
int rid; | int rid; | ||||
bool eps_64bit; | bool eps_64bit; | ||||
if (!device_is_alive(parent)) | if (!device_is_alive(parent)) | ||||
return; | return; | ||||
if (resource_long_value("smbios3", 0, "mem", &addr) != 0) { | |||||
#if defined(__amd64__) || defined(__i386__) | #if defined(__amd64__) || defined(__i386__) | ||||
addr = bios_sigsearch(SMBIOS_START, SMBIOS3_SIG, SMBIOS3_LEN, | addr = bios_sigsearch(SMBIOS_START, SMBIOS3_SIG, SMBIOS3_LEN, | ||||
SMBIOS_STEP, SMBIOS_OFF); | SMBIOS_STEP, SMBIOS_OFF); | ||||
#else | |||||
addr = 0; | |||||
#endif | |||||
} | |||||
if (addr != 0) { | if (addr != 0) { | ||||
eps_64bit = true; | eps_64bit = true; | ||||
} else { | } else { | ||||
eps_64bit = false; | eps_64bit = false; | ||||
if (resource_long_value("smbios", 0, "mem", &addr) != 0) { | |||||
#if defined(__amd64__) || defined(__i386__) | |||||
addr = bios_sigsearch(SMBIOS_START, SMBIOS_SIG, SMBIOS_LEN, | addr = bios_sigsearch(SMBIOS_START, SMBIOS_SIG, SMBIOS_LEN, | ||||
SMBIOS_STEP, SMBIOS_OFF); | SMBIOS_STEP, SMBIOS_OFF); | ||||
} | |||||
#else | #else | ||||
addr = 0; | addr = 0; | ||||
#endif | #endif | ||||
} | |||||
} | |||||
if (addr != 0) { | if (addr != 0) { | ||||
if (eps_64bit) { | if (eps_64bit) { | ||||
eps3 = pmap_mapbios(addr, 0x18); | eps3 = pmap_mapbios(addr, 0x18); | ||||
length = eps3->length; | length = eps3->length; | ||||
} else { | } else { | ||||
eps = pmap_mapbios(addr, 0x1f); | eps = pmap_mapbios(addr, 0x1f); | ||||
length = eps->length; | length = eps->length; | ||||
▲ Show 20 Lines • Show All 192 Lines • Show Last 20 Lines |