Michał Januszewski [Fri, 25 Feb 2011 21:27:39 +0000 (25 22:27 +0100)]
Print phys_base_ptr in testvbe.
Michał Januszewski [Fri, 25 Feb 2011 21:24:46 +0000 (25 22:24 +0100)]
Verify that netlink messages are coming from kernel.
Thanks to Nelson Elhage for reporting this problem.
Michał Januszewski [Wed, 27 Jan 2010 19:40:03 +0000 (27 20:40 +0100)]
Check the EBDA is mapped before accessing it.
The EBDA is the one region of memory which may not be mapped. If this is
the case, and someone tries to access it, emit a proper warning. Thanks
to Enrico Perla for spotting the problem.
Michał Januszewski [Mon, 3 Nov 2008 23:24:17 +0000 (4 00:24 +0100)]
Map the system and video BIOSes with PROT_WRITE for x86emu.
https://bugs.gentoo.org/show_bug.cgi?id=245254 provides an example
of a system which requires the Video BIOS and the System BIOS to
be mapped with read-write protections for the emulation to work
correctly.
Since only a few systems exhibit this property, this patch only
fixes this problem in x86emu. The lrmi backend is left unchanged.
Mapping the BIOS with PROT_WRITE there would cause it to break
on PaX systems. This is not an issue for x86emu, where the code
is never directly executed (and thus the BIOS pages are not mapped
with PROT_EXEC).
Michał Januszewski [Mon, 3 Nov 2008 23:20:57 +0000 (4 00:20 +0100)]
Fix parsing of the OEM descriptions.
There is at least one known case where the OEM descriptions provided
by the Video BIOS are not valid, null-terminated strings. Fix the
code so that even invalid data in those fields does not cause an
overflow of the buffer.
Michał Januszewski [Sat, 4 Oct 2008 00:06:05 +0000 (4 02:06 +0200)]
Add 0.1.9 ChangeLog entry.
Michał Januszewski [Sat, 4 Oct 2008 00:02:08 +0000 (4 02:02 +0200)]
Fix a off-by-one error in the VBE string copy function.
Michał Januszewski [Sat, 27 Sep 2008 19:43:45 +0000 (27 21:43 +0200)]
Fix concurrent build by properly specifying all dependencies.
Michał Januszewski [Mon, 22 Sep 2008 23:01:27 +0000 (23 01:01 +0200)]
Don't map memory with PROT_EXEC for x86emu.
Since x86emu is a full emulator, the mmapped code is never directly
executed. Thus, PROT_EXEC is not needed.
Michał Januszewski [Mon, 22 Sep 2008 22:56:59 +0000 (23 00:56 +0200)]
Remove dynamically generated code from LRMI.
LRMI dynamically generated the return to 32-bit code (int 0xff), which
causes problem with systems using PaX, where memory pages are either
executable or writable, but never both at once. Fix this by including
this code in a separate section in the object file and mapping it
to the absolute address 0x9000.
Thanks to the PaX team for useful suggestions and discussions in
http://bugs.gentoo.org/show_bug.cgi?id=226107
Michał Januszewski [Sun, 21 Sep 2008 15:43:10 +0000 (21 17:43 +0200)]
Add 0.1.8 ChangeLog entry.
PaX team [Sun, 21 Sep 2008 15:39:42 +0000 (21 17:39 +0200)]
Fix compatibility with PaX.
Paweł Sikora [Sun, 21 Sep 2008 12:08:37 +0000 (21 14:08 +0200)]
Fix formatting in ulog strings.
Michał Januszewski [Sun, 14 Sep 2008 10:06:18 +0000 (14 12:06 +0200)]
Add 0.1.7 ChangeLog entry.
Michał Januszewski [Sun, 7 Sep 2008 23:35:30 +0000 (8 01:35 +0200)]
Map the VRAM and Video ROM/System ROM seperately.
lrmi maps both the Video RAM and ROM with PROT_EXEC. This can cause
problems on systems with NX and PaX. In order to avoid these, map
the RAM and ROM areas separately, with different PROT_* flags.
Michał Januszewski [Sun, 7 Sep 2008 23:25:22 +0000 (8 01:25 +0200)]
Map 0xe0000-0xfffff instead of 0xf0000-0xfffff.
Parts of the BIOS can be located in the 0xe000 memory segment. Gentoo
bug #226107 provides at least one example where not mapping this part
of the memory caused the Video BIOS to fail.
Michał Januszewski [Sat, 26 Jul 2008 15:12:07 +0000 (26 17:12 +0200)]
Add 0.1.6 ChangeLog entry.
Mark Karpeles [Sat, 26 Jul 2008 15:08:36 +0000 (26 17:08 +0200)]
Add support for the SMSW instruction to x86emu.
Michał Januszewski [Sat, 26 Jul 2008 08:49:59 +0000 (26 10:49 +0200)]
Add support for bswap and cpuid.
The code for these functions somes out of the x86emu version
used in xorg.
Mark Karpeles [Sat, 26 Jul 2008 06:37:21 +0000 (26 08:37 +0200)]
Fix the insd and outsd instructions.
The implementation of insd and outsd used in x86emu puts a 'break'
instruction inside a while loop, causing only the first double word
to be transferred. Fix this by moving the instruction out of the
loop.
Michał Januszewski [Fri, 25 Jul 2008 22:02:32 +0000 (26 00:02 +0200)]
Properly map all regions of memory.
Currently, the EBDA (Extended BIOS Data Area) isn't mapped at all
and the Video RAM, Video ROM and system BIOS are treated as a single
chunk of memory.
Fix this by trying to locate and mmap the EBDA, and by mapping the
VRAM, the VBIOS and the System BIOS separately.
Michał Januszewski [Wed, 16 Jul 2008 20:31:00 +0000 (16 22:31 +0200)]
Add 0.1.5.2 ChangeLog entry.
PaX team [Wed, 16 Jul 2008 20:30:01 +0000 (16 22:30 +0200)]
Fix compatibility with NX and PaX.
Michał Januszewski [Tue, 15 Jul 2008 20:23:50 +0000 (15 22:23 +0200)]
Fix LRMI compilation with 2.6.26 kernel headers.
Michał Januszewski [Thu, 1 May 2008 18:03:15 +0000 (1 20:03 +0200)]
Don't map memory beyond 0x10000.
This fixes the problem with devmem_is_allowed() denying access to
/dev/mem in recent kernels.
Michał Januszewski [Sat, 19 Apr 2008 20:45:31 +0000 (19 22:45 +0200)]
Update the ChangeLog with the 0.1.4 entry
Michał Januszewski [Sat, 19 Apr 2008 20:43:39 +0000 (19 22:43 +0200)]
Fix error handling in case of failed memory allocations.
Michał Januszewski [Sun, 23 Dec 2007 11:19:09 +0000 (23 12:19 +0100)]
Add info about the KDIR make option in the README.
Michał Januszewski [Mon, 3 Dec 2007 00:26:06 +0000 (3 01:26 +0100)]
Update the ChangeLog with the 0.1.3 entry
Michał Januszewski [Mon, 3 Dec 2007 00:24:41 +0000 (3 01:24 +0100)]
Fix VBE IB retrieval from the Video ROM.
Michał Januszewski [Sun, 2 Dec 2007 15:31:55 +0000 (2 16:31 +0100)]
testvbe: Clean the registers before doing VBE calls.
Michał Januszewski [Sun, 2 Dec 2007 11:00:16 +0000 (2 12:00 +0100)]
Include the video mode list location in the debug messages.
Michał Januszewski [Sun, 4 Nov 2007 14:59:00 +0000 (4 15:59 +0100)]
Update ChangeLog with 0.1.2 entry.
Michał Januszewski [Sun, 4 Nov 2007 14:57:39 +0000 (4 15:57 +0100)]
Add the --with-debug configure option.
Michał Januszewski [Sun, 4 Nov 2007 14:56:56 +0000 (4 15:56 +0100)]
Formatting fixes for testvbe info display.
Michał Januszewski [Mon, 22 Oct 2007 21:04:18 +0000 (22 23:04 +0200)]
Update testvbe to display basic information about the Video BIOS.
Michał Januszewski [Thu, 18 Oct 2007 22:35:52 +0000 (19 00:35 +0200)]
Add support for filtering log levels.
Michał Januszewski [Thu, 18 Oct 2007 22:21:22 +0000 (19 00:21 +0200)]
Refactor code to properly use log levels.
Michał Januszewski [Thu, 18 Oct 2007 22:17:17 +0000 (19 00:17 +0200)]
lrmi: Map the IVTBDA as shared.
Michał Januszewski [Sun, 16 Sep 2007 12:24:11 +0000 (16 14:24 +0200)]
Fail x86emu autodetection if a supported arch isn't detected.
Michał Januszewski [Sun, 16 Sep 2007 12:23:33 +0000 (16 14:23 +0200)]
Add info about supported arches.
Michał Januszewski [Tue, 7 Aug 2007 17:11:34 +0000 (7 19:11 +0200)]
Fix compiler warnings in v86_lrmi.
Michał Januszewski [Tue, 7 Aug 2007 17:10:27 +0000 (7 19:10 +0200)]
Add support for the new memory access functions to v86_lrmi.
Michał Januszewski [Tue, 7 Aug 2007 17:04:14 +0000 (7 19:04 +0200)]
Use our own memory access functions in x86emu.
Change the v86 memory access functions so that they no longer require
mapping files into the first 1 MB of the address space.
Michał Januszewski [Sun, 22 Jul 2007 21:38:38 +0000 (22 23:38 +0200)]
Move ioperm and iopl declarations to v86.h.
ioperm and iopl are used both by x86emu and lrmi. Since we don't use
sys/io.h in either one of these, we need to define the function prototypes
to avoid compilation warnings.
Michał Januszewski [Sat, 21 Jul 2007 13:37:23 +0000 (21 15:37 +0200)]
Map the IVTBDA as a shared.
Michał Januszewski [Sat, 21 Jul 2007 13:21:12 +0000 (21 15:21 +0200)]
v86_x86emu.c cleanup. Change default EFLAGS.
Michał Januszewski [Sat, 21 Jul 2007 13:14:15 +0000 (21 15:14 +0200)]
testvbe: remove unused headers
Michał Januszewski [Sat, 21 Jul 2007 13:03:16 +0000 (21 15:03 +0200)]
x86emu: add support for the rdtsc opcode
This update comes from the xorg's x86emu.
Michał Januszewski [Sat, 21 Jul 2007 13:01:09 +0000 (21 15:01 +0200)]
x86emu: remove unused defines from the Makefile
Michał Januszewski [Sat, 21 Jul 2007 12:39:54 +0000 (21 14:39 +0200)]
Fix compilation warnings.
Michał Januszewski [Sat, 21 Jul 2007 12:37:28 +0000 (21 14:37 +0200)]
Compile with -g by default.
Michał Januszewski [Sat, 7 Jul 2007 15:09:11 +0000 (7 17:09 +0200)]
Fix a bug in the code used to retrieve the OEM strings
from the Video ROM.
Michał Januszewski [Tue, 3 Jul 2007 12:15:47 +0000 (3 14:15 +0200)]
Don't use sys/io.h as it's broken on x86_64 in klibc.
Michał Januszewski [Fri, 22 Jun 2007 23:28:36 +0000 (23 01:28 +0200)]
Fix minor bugs, use v86_regs to pass reg values from/to the kernel.
Michał Januszewski [Fri, 22 Jun 2007 23:27:39 +0000 (23 01:27 +0200)]
Add licensing info.
Michał Januszewski [Sun, 10 Jun 2007 23:07:33 +0000 (11 01:07 +0200)]
Make the kernel dir overridable.
Michał Januszewski [Sun, 10 Jun 2007 23:04:54 +0000 (11 01:04 +0200)]
Code cleanup.
Michał Januszewski [Sat, 9 Jun 2007 21:34:32 +0000 (9 23:34 +0200)]
Fix compilation issues after removal of the kernel/ subdir.
Michał Januszewski [Sat, 9 Jun 2007 18:21:16 +0000 (9 20:21 +0200)]
Remove uvesafb.
uvesafb is now tracked in a separete kernel tree.
Michał Januszewski [Sat, 9 Jun 2007 17:43:04 +0000 (9 19:43 +0200)]
Add basic documentation (README).
Michał Januszewski [Sat, 9 Jun 2007 12:53:31 +0000 (9 14:53 +0200)]
Make the C library and x86 emulation configurable.
Michał Januszewski [Sat, 9 Jun 2007 10:34:28 +0000 (9 12:34 +0200)]
Add preliminary support for the x86emu backend.
Michał Januszewski [Thu, 7 Jun 2007 19:01:56 +0000 (7 21:01 +0200)]
v86d: add support for ESBX buffers
Michał Januszewski [Sun, 27 May 2007 13:29:29 +0000 (27 15:29 +0200)]
Add support for uvesafb_open() and uvesafb_release().
Michał Januszewski [Sun, 27 May 2007 13:03:27 +0000 (27 15:03 +0200)]
Add support for blanking and panning.
Michał Januszewski [Sun, 27 May 2007 11:46:15 +0000 (27 13:46 +0200)]
Remove debugging printk's.
Michał Januszewski [Sun, 27 May 2007 11:26:49 +0000 (27 13:26 +0200)]
Don't open tty1 in v86d.
Opening tty1 causes a hang if v86d is started from set_par(), called from
fbcon (because of console_sem being held by fbcon).
Michał Januszewski [Tue, 22 May 2007 15:49:58 +0000 (22 17:49 +0200)]
Add support for video mode switching.
Michał Januszewski [Tue, 22 May 2007 10:37:42 +0000 (22 12:37 +0200)]
Add command line option parsing.
Michał Januszewski [Mon, 21 May 2007 18:37:21 +0000 (21 20:37 +0200)]
Add preliminary support for monitor limits.
Michał Januszewski [Sun, 20 May 2007 21:29:03 +0000 (20 23:29 +0200)]
Add initial support for the LRMI v86 backend.
Michał Januszewski [Mon, 14 May 2007 06:38:25 +0000 (14 08:38 +0200)]
Initial commit