#
d82aac76 |
| 20-Jun-2011 |
Xin LI <delphij@FreeBSD.org> |
Correct a typo.
Submitted by: Fabian Keil <fk fabiankeil de> MFC after: 3 days
|
#
b8764e51 |
| 13-Jun-2011 |
Attilio Rao <attilio@FreeBSD.org> |
MFC
|
#
97ae6667 |
| 11-Jun-2011 |
Xin LI <delphij@FreeBSD.org> |
Add comments about the validation.
|
#
5e9857e7 |
| 07-Jun-2011 |
Attilio Rao <attilio@FreeBSD.org> |
MFC
|
#
393ec7ad |
| 07-Jun-2011 |
Jung-uk Kim <jkim@FreeBSD.org> |
Validate INT 15h and 16h vectors more strictly. Traditionally these entry points are fixed addresses and (U)EFI CSM specification also mandated that. Unfortunately, (U)EFI CSM specification does not
Validate INT 15h and 16h vectors more strictly. Traditionally these entry points are fixed addresses and (U)EFI CSM specification also mandated that. Unfortunately, (U)EFI CSM specification does not specifically mention this is to call service routine via interrupt vector table or to jump directly to the entry point. As a result, some CSM seems to install two routines and acts differently, depending on how it was executed, unfortunately. When INT 15h is used, it calls a function pointer (which is probably a UEFI service function). When it jumps directly to the entry point, it executes a simple and traditional INT 15h service routine. Therefore, actually there are two possible fixes, i. e., this fix or jumping directly to the fixed entry point. However, we chose this fix because a) keyboard typematic support via BIOS is becoming extremely rarer and b) we cannot support random service routine installed by a firmware or a boot loader. This should fix Lenovo X220 laptop, specifically.
Reviewed by: delphij MFC after: 3 days
show more ...
|
#
7d09e4ab |
| 07-Jun-2011 |
Jung-uk Kim <jkim@FreeBSD.org> |
Revert r222152. The root cause was analysed and better fix is upcoming.
Discussed with: delphij
|
#
87c3644c |
| 24-May-2011 |
Peter Grehan <grehan@FreeBSD.org> |
IFC @ r222256
|
#
76273fcb |
| 21-May-2011 |
Attilio Rao <attilio@FreeBSD.org> |
MFC
|
#
dd4aae65 |
| 21-May-2011 |
Xin LI <delphij@FreeBSD.org> |
Add a new knob to atkbd(4) to enable typematic rate detection on boot, which is now disabled by default. The detection is known to cause hangs on boot with some new Lenovo laptops on FreeBSD/amd64.
Add a new knob to atkbd(4) to enable typematic rate detection on boot, which is now disabled by default. The detection is known to cause hangs on boot with some new Lenovo laptops on FreeBSD/amd64.
Reported by: gnn Discussed with: jkim MFC after: 3 months
show more ...
|
Revision tags: release/7.4.0_cvs, release/8.2.0_cvs, release/7.4.0, release/8.2.0, release/8.1.0_cvs, release/8.1.0, release/7.3.0_cvs, release/7.3.0 |
|
#
1a0fda2b |
| 04-Mar-2010 |
Dag-Erling Smørgrav <des@FreeBSD.org> |
IFH@204581
|
#
aa3d547d |
| 02-Mar-2010 |
Xin LI <delphij@FreeBSD.org> |
MFC x86emu/x86bios emulator and make previously i386 only dpms and vesa framebuffer driver, etc. work on FreeBSD/amd64.
A significant amount of improvements were done by jkim@ during the recent mont
MFC x86emu/x86bios emulator and make previously i386 only dpms and vesa framebuffer driver, etc. work on FreeBSD/amd64.
A significant amount of improvements were done by jkim@ during the recent months to make vesa(4) work better, over the initial code import. This work is based on OpenBSD's x86emu implementation and contributed by paradox <ddkprog yahoo com> and swell.k at gmail com.
Hopefully I have stolen all their work to 8-STABLE :)
All bugs in this commit are mine, as usual.
show more ...
|
Revision tags: release/8.0.0_cvs, release/8.0.0 |
|
#
874108ae |
| 12-Nov-2009 |
Oleksandr Tymoshenko <gonzo@FreeBSD.org> |
MFC @199204
|
#
3219f535 |
| 19-Oct-2009 |
Jung-uk Kim <jkim@FreeBSD.org> |
Rewrite x86bios and update its dependent drivers.
- Do not map entire real mode memory (1MB). Instead, we map IVT/BDA and ROM 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 and ROM area separately. Most notably, ROM area is mapped as device memory (uncacheable) as it should be. User memory is dynamically allocated and free'ed with contigmalloc(9) and contigfree(9). Remove now redundant and potentially dangerous x86bios_alloc.c. If this emulator ever grows to support non-PC hardware, we may implement it with rman(9) later. - Move all host-specific initializations from x86emu_util.c to x86bios.c and remove now unnecessary x86emu_util.c. Currently, non-PC hardware is not supported. We may use bus_space(9) later when the KPI is fixed. - Replace all bzero() calls for emulated registers with more obviously named x86bios_init_regs(). This function also initializes DS and SS properly. - Add x86bios_get_intr(). This function checks if the interrupt vector is available for the platform. It is not necessary for PC-compatible hardware but 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 holding pointers to them. They may or may not be accessible always. Fix a memory leak of video mode table while I am here. - Add (experimental) BIOS POST call for vesa(4). This function calls VGA BIOS POST code from the current VGA option ROM. Some video controllers cannot save and restore the state properly even if it is claimed to be supported. Usually the symptom is blank display after resuming from suspend state. 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 was taken 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-display adapter setup. By default, the POST video controller is automatically probed and the tunable "hw.pci.default_vgapci_unit" is set to corresponding vgapci unit number. You may override it from loader but it is very unlikely to be necessary. Unfortunately only AGP/PCI/PCI-E controllers can be matched because ISA controller does not have necessary device IDs. - Fix a long standing bug in state save/restore function. The state buffer pointer 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 ...
|
#
1ee774f6 |
| 02-Oct-2009 |
Oleksandr Tymoshenko <gonzo@FreeBSD.org> |
- MFC
|
#
0fbc5fbe |
| 26-Sep-2009 |
Dag-Erling Smørgrav <des@FreeBSD.org> |
Sync with head
|
#
7ca724d5 |
| 25-Sep-2009 |
Jung-uk Kim <jkim@FreeBSD.org> |
Fix couple of style nits missed in the previous commit.
|
#
ee8cbcb4 |
| 25-Sep-2009 |
Jung-uk Kim <jkim@FreeBSD.org> |
- Use x86bios_offset() instead of BIOS_PADDRTOVADDR() macro.[1] - Clear all registers before calling real mode interrupt handlers as we did for dpms and vesa and re-enable the function as it should b
- Use x86bios_offset() instead of BIOS_PADDRTOVADDR() macro.[1] - Clear all registers before calling real mode interrupt handlers as we did for dpms and vesa and re-enable the function as it should be fixed by this. - Tidy up register access. For example, when we call INT 0x15, AH=0xc0, we used to initialize AX=0xc000 to clear AL at the same time but it is very confusing. We don't have to do this any more because we are explicitly clearing all registers now. - Check size of system configuration table although it is almost always 8. This is to make sure we are not reading some random low physical memory. Hopefully it is just zero in that case. :-) - Fix some style nits and add more comments.
Submitted by: paradox (ddkprog yahoo com)[1]
show more ...
|
#
a8672748 |
| 24-Sep-2009 |
Jung-uk Kim <jkim@FreeBSD.org> |
- Use FreeBSD function naming convention. - Change x86biosCall() to more appropriate x86bios_intr().[1]
Discussed with: delphij, paradox (ddkprog yahoo com) Submitted by: paradox (ddkprog yahoo com)
- Use FreeBSD function naming convention. - Change x86biosCall() to more appropriate x86bios_intr().[1]
Discussed with: delphij, paradox (ddkprog yahoo com) Submitted by: paradox (ddkprog yahoo com)[1]
show more ...
|
#
19de5df5 |
| 23-Sep-2009 |
Jung-uk Kim <jkim@FreeBSD.org> |
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)
|
#
bacfa53d |
| 22-Sep-2009 |
Xin LI <delphij@FreeBSD.org> |
Temporarily disable typematic retrieving code until we get a real fix, which currently causes hangs in some configurations.
Reported by: joel Submitted by: swell.k at gmail.com
|
#
8b1620e0 |
| 21-Sep-2009 |
Xin LI <delphij@FreeBSD.org> |
Allow atkbd to obtain keyboard repeat rate from BIOS on amd64.
Submitted by: swell.k at gmail.com
|
#
10b3b545 |
| 17-Sep-2009 |
Dag-Erling Smørgrav <des@FreeBSD.org> |
Merge from head
|
#
e7153b25 |
| 07-May-2009 |
Oleksandr Tymoshenko <gonzo@FreeBSD.org> |
Merge from HEAD
|
Revision tags: release/7.2.0_cvs, release/7.2.0 |
|
#
018cd707 |
| 17-Apr-2009 |
Maksim Yevmenkin <emax@FreeBSD.org> |
Prevent atkbd(4) interrupt handler from calling keyboard callback function when polled mode is enabled. This should help with duplicated/missing characters problem at mountroot, geli, etc. prompts on
Prevent atkbd(4) interrupt handler from calling keyboard callback function when polled mode is enabled. This should help with duplicated/missing characters problem at mountroot, geli, etc. prompts on multi CPU systems while kbdmux(4) is enabled.
Tested by: Tobias Grosser <grosser -at- fim -dot- uni-passau -dot- de> Tested by: Fabian Keil <freebsd-listen -at- fabiankeil -dot- de> MFC after: 3 days
show more ...
|
Revision tags: release/7.1.0_cvs, release/7.1.0, release/6.4.0_cvs, release/6.4.0, release/7.0.0_cvs, release/7.0.0, release/6.3.0_cvs, release/6.3.0 |
|
#
259699b2 |
| 29-Dec-2007 |
Wojciech A. Koszek <wkoszek@FreeBSD.org> |
Remove explicit calls to keyboard methods with their respective variants implemented with macros. This patch improves code readability. Reasoning behind kbdd_* is a "keyboard discipline".
List of ma
Remove explicit calls to keyboard methods with their respective variants implemented with macros. This patch improves code readability. Reasoning behind kbdd_* is a "keyboard discipline".
List of macros is supposed to be complete--all methods of keyboard_switch should have their respective macros from now on.
Functionally, this code should be no-op. My intention is to leave current behaviour of code as is.
Glanced at by: rwatson Reviewed by: emax, marcel Approved by: cognet
show more ...
|