#
4cd94c8a |
|
08-Sep-2023 |
Warner Losh <imp@FreeBSD.org> |
atkbdc: Add additional heurstic for Chromebook keyboards It turns out that that heurstic used to determine if we have a Google coreboot, and thus have the i8042 emulation bugs, is incorrect. At least one Acer "Peppy" Chromebook has an issue because Acer space'd out the smbios.bios.version string we're using as part of the heuristic. So, if the version starts with a space, then enable the workarounds if the smbios.bios.reldate is 2018 or earlier. While not perfect, it should be a reasonable dividing line and still allow newer core boot-based machines that aren't Chromebooks to not have the workaround. Tested by: Matthias Apitz Sponsored by: Netflix MFC After: 3 days (14.0 candiate)
|
#
685dc743 |
|
16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: one-line .c pattern Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/
|
#
319d2bf4 |
|
29-Jun-2023 |
Warner Losh <imp@FreeBSD.org> |
atkbc: Better test for old chromebooks Older Chromebooks have issues in their embedded controller (EC) firmware which need working around in atkbd and atkbdc. On these systems, rather than use a standard EC, Google used their own arm-based EC. For a while, its firmware incorrectly implemented the i8042, requiring workaroundsd in the driver. Implement a heuristic recommended by MrChromebox <mrchromebox@gmail.com> to detect them: If the bios.version starts with Google_, or the maker is either Google or GOOGLE, assume that it's a chromebook with the affected bios. While this isn't strictly true, the number of updated systems without the bug is very small and this will exclude all the non-Google coreboot user that use a standard EC. There's no simple way to test the hardware to see if it's implemented with the buggy EC. Sponsored by: Netflix Reviewed by: jon@thesoo.org, MrChromebox Differential Revision: https://reviews.freebsd.org/D40789
|
#
31b3e4f1 |
|
28-Jun-2023 |
Warner Losh <imp@FreeBSD.org> |
atkbdc: Minor style nits 'char* ' -> 'char *', per style(9) Sponsored by: Netflix
|
#
599a4548 |
|
28-Jun-2023 |
Jon Hopper <jon@thesoo.org> |
Adds support for Purism coreboot keyboards On Purism coreboot systems the quirks mode in atkbdc prevents built in Keyboard from being used. Add quirk to prevent that. MFC After: 2 weeks PR: 271737 Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D40405
|
#
3a52ffb8 |
|
05-Dec-2020 |
Conrad Meyer <cem@FreeBSD.org> |
atkbd(4): Just use nitems() for quirk enumeration Reviewed by: imp, wulf X-MFC-With: r368365 Differential Revision: https://reviews.freebsd.org/D27489
|
#
a5cc5fce |
|
05-Dec-2020 |
Vladimir Kondratyev <wulf@FreeBSD.org> |
atkbd(4): Change quirk table end-of-list marker to NULL vendor/maker/product This fixes regression introduced in r367349 which effectively resulted in truncation of quirk table. PR: 250711 Submitted by: grembo Reported by: Matthias Apitz <guru@unixarea.de> X-MFC with: r367349
|
#
b33ba834 |
|
19-Nov-2020 |
Vladimir Kondratyev <wulf@FreeBSD.org> |
psm(4): Disable AUX multiplexer probing on all Lenovo laptops. Rudimentary AUX multiplexing support was added to kernel to make possible touchpad initialization on some HP EliteBook laptops with trackpoint. Disable multiplexer probing on all Lenovo laptops now as they use touchpad pass-through port rather than AUX multiplexer to connect trackpoint and at least two model (X120e and X121e) is known for getting PS/2 AUX port dysfunctional after switching back to hidden multiplexing mode. AUX MUX probing can be reenabled with setting of hw.psm.mux_disabled loader tunable to 0. PR: 249987 Reported by: jwb MFC after: 2 weeks
|
#
07030f33 |
|
04-Nov-2020 |
Vladimir Kondratyev <wulf@FreeBSD.org> |
atkbdc(4): Add quirk for "System76 lemur Pro" laptops. Currently atkbdc(4) assumes all coreboot BIOSes belonging to Chromebooks and unconditionally sets a number of quirks to workaround known issues. Exclude "System76" laptops from this set as they appeared to be a traditional hardware ("lemur Pro" is a rebranded Clevo chassis) with coreboot firmware on board. KBDC_QUIRK_KEEP_ACTIVATED quirk activated for Chromebook platform makes keyboard on this devices inoperable. "Purism Librem" laptops may require the same exclusion too. PR: 250711 Reported by: nick.lott@gmail.com MFC after: 2 weeks
|
#
bf479e13 |
|
01-Sep-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
atkbdc: clean up empty lines in .c and .h files
|
#
58aa35d4 |
|
03-Feb-2020 |
Warner Losh <imp@FreeBSD.org> |
Remove sparc64 kernel support Remove all sparc64 specific files Remove all sparc64 ifdefs Removee indireeect sparc64 ifdefs
|
#
e9305818 |
|
25-Dec-2019 |
Kyle Evans <kevans@FreeBSD.org> |
atkbdc: use proper pointer type for KBDC Proper locking for atkbdc will likely replace the kbdc_lock mechanism entirely with a mutex in atkbdc_softc, so that other consumers can also properly ensure locking protocol is followed (e.g. psm.c:doinitialize). The first step to doing this neatly is making KBDC less opaque so that others don't have to jump through weird casting hoops to address the mutex. No functional change intended; this diff effectively just removes a bunch of casting. A future change may remove the KBDC typedef entirely and just opt for using `atkbdc_softc_c *` directly, but this was decidedly a good intermediate step to make these changes simple to audit.
|
#
80203cce |
|
24-Nov-2018 |
Vladimir Kondratyev <wulf@FreeBSD.org> |
psm(4): Add minimal support for active AUX port multiplexers Active PS/2 multiplexing is a method for attaching up to four PS/2 pointing devices to a computer. Enabling of multiplexed mode allows commands to be directed to individual devices using routing prefixes. Multiplexed mode reports input with each byte tagged to identify its source. This method differs from one currently supported by psm(4) where so called guest device (trackpoint) is attached to special interface located on the host device (touchpad) and latter performs guest protocol conversion to special encapsulation packet format. At present time active PS/2 multiplexing is used in some models of HP laptops e.g. EliteBook 8560w, 9470m. Enabling of absolute operation mode on such touchpads is connected with following problems: 1. Touchpad's port priority is lower than trackpoint's. That blocks information queries thus prevents touchpad detection and configuration. 2. Touchpad and trackpoint have different protocol packet sizes and sync bytes. As PS/2 usage is on decline only minimal possible set of changes to support Synaptics touchpad and generic mouses is implemented. Active multiplexing mode is enabled only at probe stage to scan through attached PS/2 devices to query and configure Synaptics touchpad. After touchpad has been configured, mux is switched back to legacy (hidden multiplexing) mode to perform normal interrupt-driven input data processing. Overflow bit values rather than tags are used to separate packets produced by different devices. Switching back to legacy mode allows to avoid psm(4) and atkbd(4) rework to support 4 instances of mouse driver. Note: While in hidden multiplexing mode KBC does some editing of the packet stream. It remembers the button bits from the last packet received from each device, and replaces the button bits of every packet with the logical OR of all devices’ most recent button bits. This sort of button crosstalk results in spurious button events which are inhibitted with various tricks. E.g. trackpoint middle button events are suppressed while trackpad surface is touched and touchpad left and right button events are suppressed if corresponding trackpoint buttons are pressed. PR: 231058 Reported by: Michael Figiel <mifigiel@gmail.com> Tested by: Michael Figiel <mifigiel@gmail.com> MFC after: 2 weeks
|
#
718cf2cc |
|
27-Nov-2017 |
Pedro F. Giffuni <pfg@FreeBSD.org> |
sys/dev: further adoption of SPDX licensing ID tags. Mainly focus on files that use BSD 2-Clause license, however the tool I was using misidentified many licenses so this was mostly a manual - error prone - task. The Software Package Data Exchange (SPDX) group provides a specification to make it easier for automated tools to detect and summarize well known opensource licenses. We are gradually adopting the specification, noting that the tags are considered only advisory and do not, in any way, superceed or replace the license texts.
|
#
013da020 |
|
16-Oct-2016 |
Warner Losh <imp@FreeBSD.org> |
Assume all coreboot BIOSes have the need for these workarounds because coreboot implements the keyboard controller and it's common to all Chromebooks. The workaround won't hurt and may help.
|
#
73a1170a |
|
19-Apr-2016 |
Pedro F. Giffuni <pfg@FreeBSD.org> |
sys/dev: use our nitems() macro when it is avaliable through param.h. No functional change, only trivial cases are done in this sweep, Drivers that can get further enhancements will be done independently. Discussed in: freebsd-current
|
#
6c176113 |
|
14-Feb-2015 |
Michael Gmelin <grembo@FreeBSD.org> |
Quirk based support of Chromebook keyboard found in Acer C720 This probably supports other devices based on SeaBIOS, which need to be added to the smbios based quirks table. The functionality has been ported from DragonFlyBSD and adapted to FreeBSD's more general purpose environment. Devices not covered by a quirk shouldn't be affected at all. Thanks to jhb and kostikbel for reviewing the code. Reviewed by: kostikbel, jhb Approved by: jhb, kostikbel Differential Revision: https://reviews.freebsd.org/D1802
|
#
e7d939bd |
|
06-Jul-2014 |
Marcel Moolenaar <marcel@FreeBSD.org> |
Remove ia64. This includes: o All directories named *ia64* o All files named *ia64* o All ia64-specific code guarded by __ia64__ o All ia64-specific makefile logic o Mention of ia64 in comments and documentation This excludes: o Everything under contrib/ o Everything under crypto/ o sys/xen/interface o sys/sys/elf_common.h Discussed at: BSDcan
|
#
81bd5041 |
|
20-Dec-2010 |
Tijl Coosemans <tijl@FreeBSD.org> |
Merge amd64 and i386 bus.h and move the resulting header to x86. Replace the original amd64 and i386 headers with stubs. Rename (AMD64|I386)_BUS_SPACE_* to X86_BUS_SPACE_* everywhere. Reviewed by: imp (previous version), jhb Approved by: kib (mentor)
|
#
a7d5f7eb |
|
19-Oct-2010 |
Jamie Gritton <jamie@FreeBSD.org> |
A new jail(8) with a configuration file, to replace the work currently done by /etc/rc.d/jail.
|
#
ff605594 |
|
29-Apr-2010 |
Maxim Sobolev <sobomax@FreeBSD.org> |
On certain chipsets AT keyboard controller isn't present and is emulated by BIOS using SMI interrupt. On those chipsets reading from the status port may be thousand times slower than usually. Sometimes this emilation is not working properly resulting in commands timing out and since we assume that inb() operation takes very little time to complete we need to adjust number of retries to keep waiting time within a designed limits (100ms). Measure time it takes to make read_status() call and adjust number of retries accordingly. To keep it simple, use TSC to measure inb() performance and keep it to amd64-only, since TSC may not available on older CPUs. Also enable detection of the AT controller absence on amd64. Reviewed by: jhb MFC after: 1 month
|
#
d7f03759 |
|
19-Oct-2008 |
Ulf Lilleengen <lulf@FreeBSD.org> |
- Import the HEAD csup code which is the basis for the cvsmode work.
|
#
9aeef366 |
|
03-Sep-2006 |
Doug White <dwhite@FreeBSD.org> |
Avoid an infinite loop in empty_both_buffers() by adding a timeout. This helps systems that don't actually have atkbd controllers, such as the Intel SBX82 blade, boot without device.hints hacks. Hardware for this fix provided by iXsystems. PR: 94822 Submitted by: Devon H. O'Dell <devon.odell@coyotepoint.com> MFC After: 3 days
|
#
73dbd3da |
|
11-May-2006 |
John Baldwin <jhb@FreeBSD.org> |
Remove various bits of conditional Alpha code and fixup a few comments.
|
#
6621aa5c |
|
26-Apr-2006 |
Maxim Sobolev <sobomax@FreeBSD.org> |
Use the same method for detecting actual presence of AT-style keyboard controller as we use in boot blocks (querying status register until bit 1 goes off). If that doesn't happed during reasonable period assume that the hardware doesn't have AT-style keyboard controller. This makes FreeBSD working almost OOB on MacBook Pro (still there are issues with putting second CPU core on-line, but since installation CD comes with UP kernel with this change one should be able to install FreeBSD without playing tricks with hints). Other legacy-free hardware (e.g. IBM NetVista S40) should benefit from this as well, but since I don't have any I can't verify. It should make no difference on the ordinary i386 hardware (since in that case that hardware already would be having an issues with A20 routines in boot blocks). I don't know much about AT-style keyboard controller on other platforms (and don't have dedicated access to one), therefore, the code is restricted to i386 for now. I suspect that amd64 may need this as well, but I would rather leave this decision to someone who knows better about the platform(s) in question. I have tested this change on as many "ordinary i386 boxes" as I can get my hands on, and it doesn't create any false negatives on hardware with AT-style keyboard present. MFC after: 1 month
|
#
f4e98881 |
|
03-Dec-2005 |
Ruslan Ermilov <ru@FreeBSD.org> |
Fix -Wundef.
|
#
520b6353 |
|
10-Jun-2005 |
Marius Strobl <marius@FreeBSD.org> |
- Hook up the new locations of the atkbdc(4), atkbd(4) and psm(4) source files after they were repo-copied to sys/dev/atkbdc. The sources of atkbdc(4) and its children were moved to the new location in preparation for adding an EBus front-end to atkbdc(4) for use on sparc64; i.e. in order to not further scatter them over the whole tree which would have been the result of adding atkbdc_ebus.c in e.g. sys/sparc64/ebus. Another reason for the repo-copies was that some of the sources were misfiled, e.g. sys/isa/atkbd_isa.c wasn't ISA-specific at all but for hanging atkbd(4) off of atkbdc(4) and was renamed to atkbd_atkbdc.c accordingly. Most of sys/isa/psm.c, i.e. expect for its PSMC PNP part, also isn't ISA-specific. - Separate the parts of atkbdc_isa.c which aren't actually ISA-specific but are shareable between different atkbdc(4) bus front-ends into atkbdc_subr.c (repo-copied from atkbdc_isa.c). While here use bus_generic_rl_alloc_resource() and bus_generic_rl_release_resource() respectively in atkbdc_isa.c instead of rolling own versions. - Add sparc64 MD bits to atkbdc(4) and atkbd(4) and an EBus front-end for atkbdc(4). PS/2 controllers and input devices are used on a couple of Sun OEM boards and occur on either the EBus or the ISA bus. Depending on the board it's either the only on-board mean to connect a keyboard and mouse or an alternative to either RS232 or USB devices. - Wrap the PSMC PNP part of psm.c in #ifdef DEV_ISA so it can be compiled without isa(4) (e.g. for EBus-only machines). This ISA-specific part isn't separated into its own source file, yet, as it requires more work than was feasible for 6.0 in order to do it in a clean way. Actually philip@ is working on a rewrite of psm(4) so a more comprehensive clean-up and separation of hardware dependent and independent parts is expected to happen after 6.0. Tested on: i386, sparc64 (AX1105, AXe and AXi boards) Reviewed by: philip
|
#
d4fcf3cb |
|
28-May-2005 |
Yoshihiro Takahashi <nyan@FreeBSD.org> |
Remove bus_{mem,p}io.h and related code for a micro-optimization on i386 and amd64. The optimization is a trivial on recent machines. Reviewed by: -arch (imp, marcel, dfr)
|
#
0e9502aa |
|
07-Apr-2005 |
Maxim Sobolev <sobomax@FreeBSD.org> |
Backout previous diffs - this functionality is already provided by the hints to the atkbd(4). PR: Submitted by: jhb
|
#
7ca67a68 |
|
07-Apr-2005 |
Maxim Sobolev <sobomax@FreeBSD.org> |
Make previous commit actually working by replacing TUNABLE_INT() with TUNABLE_INT_FETCH(). Apparently keyboard init is performed earlier in the boot process than fetching all static tunables. MFC after: 1 day
|
#
9ec4f9e3 |
|
07-Apr-2005 |
Maxim Sobolev <sobomax@FreeBSD.org> |
Provide a new tunable hw.atkbdc.broken_kit_cmd, which if set to 1 instructs the driver to avoid using Keyboard Interface Test command. This command causes problems with some non-compliant hardware, resulting in machine being abruptly powered down early in the boot process. Particularly it's known that HP ZV5000 and Compaq R3000Z notebooks are affected by this problem. Due to popularity of those models this patch is good MFC5.4 candidate. PR: 67745 Submitted by: Jung-uk Kim jkim at niksun.com MFC after: 1 days
|
#
aad970f1 |
|
24-Aug-2003 |
David E. O'Brien <obrien@FreeBSD.org> |
Use __FBSDID(). Also some minor style cleanups.
|
#
e9b193dc |
|
11-May-2003 |
Peter Wemm <peter@FreeBSD.org> |
AMD64 physical space is much larger than i386, de-i386 the bus_space and bus_dma MD code for AMD64. (And a trivial ifdef update in dev/kbd because of this). More updates are needed here to take advantage of the 64 bit instructions. Approved by: re (blanket amd64/*)
|
#
25b0a175 |
|
30-Apr-2003 |
Peter Wemm <peter@FreeBSD.org> |
Update the hardcoded bus tags for early console support for amd64.
|
#
2943ed8c |
|
19-Aug-2002 |
Peter Wemm <peter@FreeBSD.org> |
de-count atkbdc. I have more extensive patches to make properly dynamic, but since pc hardware only allows one AT-style keyboard controller, this doesn't seem particularly urgent. (I do not know what the old sunriver remote keyboard/mouse/vga cards do, that might be an exception).
|
#
93c30e2e |
|
27-Mar-2002 |
Murray Stokely <murray@FreeBSD.org> |
Fix spelling and grammar bogons in a comment. PR: kern/30540 Submitted by: Tony Finch <dot@dotat.at> MFC after: 3 days
|
#
5f4a0f78 |
|
19-Mar-2002 |
Peter Wemm <peter@FreeBSD.org> |
Add the ia64 bus space tag for the IO ports (!). Add a #else and #error so that this doesn't go unnoticed again.
|
#
7cc0979f |
|
08-Dec-2000 |
David Malone <dwmalone@FreeBSD.org> |
Convert more malloc+bzero to malloc+M_ZERO. Submitted by: josh@zipperup.org Submitted by: Robert Drehmel <robd@gmx.net>
|
#
db7e3af1 |
|
15-Oct-2000 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Remove unneeded #include <machine/clock.h>
|
#
21c3015a |
|
28-Aug-2000 |
Doug Rabson <dfr@FreeBSD.org> |
* Completely rewrite the alpha busspace to hide the implementation from the drivers. * Remove legacy inx/outx support from chipset and replace with macros which call busspace. * Rework pci config accesses to route through the pcib device instead of calling a MD function directly. With these changes it is possible to cleanly support machines which have more than one independantly numbered PCI busses. As a bonus, the new busspace implementation should be measurably faster than the old one.
|
#
db3e34cb |
|
18-Mar-2000 |
Kazutaka YOKOTA <yokota@FreeBSD.org> |
- Properly keep track of I/O port resources. - Use bus_space_read/write() to access the ports.
|
#
8f8e5879 |
|
29-Jan-2000 |
Peter Wemm <peter@FreeBSD.org> |
Use config's conditional compilation rather than using #ifdefs that make modular compilation harder. I'm doing this because people seem to like cut/pasting examples of bad practices in existing code.
|
#
c3aac50f |
|
27-Aug-1999 |
Peter Wemm <peter@FreeBSD.org> |
$Id$ -> $FreeBSD$
|
#
aee1b285 |
|
20-May-1999 |
Kazutaka YOKOTA <yokota@FreeBSD.org> |
Include sys/isa/isareg.h rather than i386/isa/isa.h for i386.
|
#
ec6948cc |
|
18-May-1999 |
Kazutaka YOKOTA <yokota@FreeBSD.org> |
Slight reorganization of internal interface in the keyboard controller driver.
|
#
617b9080 |
|
08-Jan-1999 |
Kazutaka YOKOTA <yokota@FreeBSD.org> |
Add the new keyboard driver and video card driver. They will be used by console drivers. (They are not yet activated yet. Wait for announcement later.)
|