mirror of
https://github.com/freebsd/freebsd-src
synced 2024-10-04 23:50:27 +00:00
Don't call INT 12H anymore in boot program.
Many recent machine have a broken INT 12H (Get base memory size) implementation and boot program stops if INT 12H is called. This commit should solve the problem at very first step of FreeBSD installation occurred on newer some machines. Reviewed by: bde, jhb MFC after: 1 week
This commit is contained in:
parent
c111eed934
commit
31db71276a
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=104315
|
@ -232,7 +232,7 @@ main(void)
|
|||
dsk.slice = *(uint8_t *)PTOV(ARGS + 1) + 1;
|
||||
bootinfo.bi_version = BOOTINFO_VERSION;
|
||||
bootinfo.bi_size = sizeof(bootinfo);
|
||||
bootinfo.bi_basemem = memsize(MEM_BASE);
|
||||
bootinfo.bi_basemem = 0; /* XXX will be filled by loader or kernel */
|
||||
bootinfo.bi_extmem = memsize(MEM_EXT);
|
||||
bootinfo.bi_memsizes_valid++;
|
||||
for (i = 0; i < N_BIOS_GEOM; i++)
|
||||
|
|
|
@ -232,7 +232,7 @@ main(void)
|
|||
dsk.slice = *(uint8_t *)PTOV(ARGS + 1) + 1;
|
||||
bootinfo.bi_version = BOOTINFO_VERSION;
|
||||
bootinfo.bi_size = sizeof(bootinfo);
|
||||
bootinfo.bi_basemem = memsize(MEM_BASE);
|
||||
bootinfo.bi_basemem = 0; /* XXX will be filled by loader or kernel */
|
||||
bootinfo.bi_extmem = memsize(MEM_EXT);
|
||||
bootinfo.bi_memsizes_valid++;
|
||||
for (i = 0; i < N_BIOS_GEOM; i++)
|
||||
|
|
|
@ -129,6 +129,10 @@ main(void)
|
|||
if (devsw[i]->dv_init != NULL)
|
||||
(devsw[i]->dv_init)();
|
||||
printf("BIOS %dkB/%dkB available memory\n", bios_basemem / 1024, bios_extmem / 1024);
|
||||
if (initial_bootinfo != NULL) {
|
||||
initial_bootinfo->bi_basemem = bios_basemem / 1024;
|
||||
initial_bootinfo->bi_extmem = bios_extmem / 1024;
|
||||
}
|
||||
|
||||
/* detect ACPI for future reference */
|
||||
biosacpi_detect();
|
||||
|
|
Loading…
Reference in a new issue