Remove residual blank line at start of MakefileThis is a residual of the $FreeBSD$ removal.MFC After: 3 days (though I'll just run the command on the branches)Sponsored by: Netflix
sys: Remove $FreeBSD$: one-line sh patternRemove /^\s*#[#!]?\s*\$FreeBSD\$.*$\n/
sys/modules: normalize .CURDIR-relative paths to SRCTOPThis simplifies make output/logicTested with: `cd sys/modules; make ALL_MODULES=` on amd64MFC after: 1 monthSponsored by: Dell EMC Isilon
Do not build real mode emulator for i386. We use VM86 again since r210877.
Rewrite x86bios and update its dependent drivers.- Do not map entire real mode memory (1MB). Instead, we map IVT/BDA andROM area separately. Most notably, ROM area is mapped as device memory(un
Rewrite x86bios and update its dependent drivers.- Do not map entire real mode memory (1MB). Instead, we map IVT/BDA andROM area separately. Most notably, ROM area is mapped as device memory(uncacheable) as it should be. User memory is dynamically allocated andfree'ed with contigmalloc(9) and contigfree(9). Remove now redundant andpotentially dangerous x86bios_alloc.c. If this emulator ever grows tosupport non-PC hardware, we may implement it with rman(9) later.- Move all host-specific initializations from x86emu_util.c to x86bios.c andremove now unnecessary x86emu_util.c. Currently, non-PC hardware is notsupported. We may use bus_space(9) later when the KPI is fixed.- Replace all bzero() calls for emulated registers with more obviously namedx86bios_init_regs(). This function also initializes DS and SS properly.- Add x86bios_get_intr(). This function checks if the interrupt vector isavailable for the platform. It is not necessary for PC-compatible hardwarebut it may be needed later. ;-)- Do not try turning off monitor if DPMS does not support the state.- Allocate stable memory for VESA OEM strings instead of just holdingpointers to them. They may or may not be accessible always. Fix a memoryleak of video mode table while I am here.- Add (experimental) BIOS POST call for vesa(4). This function calls VGABIOS POST code from the current VGA option ROM. Some video controllerscannot save and restore the state properly even if it is claimed to besupported. Usually the symptom is blank display after resuming from suspendstate. If the video mode does not match the previous mode after restoring,we try BIOS POST and force the known good initial state. Some magic wastaken from NetBSD (and it was taken from vbetool, I believe.)- Add a loader tunable for vgapci(4) to give a hint to dpms(4) and vesa(4)to identify who owns the VESA BIOS. This is very useful for multi-displayadapter setup. By default, the POST video controller is automaticallyprobed and the tunable "hw.pci.default_vgapci_unit" is set to correspondingvgapci unit number. You may override it from loader but it is very unlikelyto be necessary. Unfortunately only AGP/PCI/PCI-E controllers can bematched because ISA controller does not have necessary device IDs.- Fix a long standing bug in state save/restore function. The state bufferpointer should be ES:BX, not ES:DI according to VBE 3.0. If it ever worked,that's because BX was always zero. :-)- Clean up register initializations more clearer per VBE 3.0.- Fix a lot of style issues with vesa(4).
show more ...
Move sys/dev/x86bios to sys/compat/x86bios.It may not be optimal but it is clearly better than the old place.OK'ed by: delphij, paradox (ddkprog yahoo com)
Collapase interrupt supporting functions to a new module, and switch fromx86emu to this new module.This changeset also brings a fix for bugs introduced with the initialx86emu commit, which preven
Collapase interrupt supporting functions to a new module, and switch fromx86emu to this new module.This changeset also brings a fix for bugs introduced with the initialx86emu commit, which prevents the user from using some display mode orcause instant reboots during mode switch.Submitted by: paradox <ddkprog yahoo com>