lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Tue, 13 Oct 2020 17:00:37 +0200
From:   Paul Menzel <pmenzel@...gen.mpg.de>
To:     "Rafael J. Wysocki" <rafael@...nel.org>
Cc:     Dmitry Torokhov <dmitry.torokhov@...il.com>,
        "Rafael J. Wysocki" <rafael.j.wysocki@...el.com>,
        Len Brown <lenb@...nel.org>, linux-input@...r.kernel.org,
        LKML <linux-kernel@...r.kernel.org>,
        ACPI Devel Maling List <linux-acpi@...r.kernel.org>,
        Hans de Goede <hdegoede@...hat.com>
Subject: Re: i8042_init: PS/2 mouse not detected with ACPIPnP/PnPBIOS

Dear Rafael, dear Dmitry,


Am 12.10.20 um 13:00 schrieb Rafael J. Wysocki:
> On Mon, Oct 12, 2020 at 12:50 PM Paul Menzel wrote:

>> Am 12.10.20 um 12:39 schrieb Rafael J. Wysocki:
>>> On Sun, Oct 11, 2020 at 1:08 AM Paul Menzel wrote:

>>>> Am 08.10.20 um 00:16 schrieb Dmitry Torokhov:
>>>>
>>>>> On Wed, Oct 07, 2020 at 11:18:41PM +0200, Paul Menzel wrote:
>>>>
>>>>>> On the Asus F2A85-M PRO Linux 5.9-rc8 (and previous versions) does not
>>>>>> recognize a plugged in PS/2 mouse using the Plug & Play method. The PS/2
>>>>>> keyboard is detected fine, and using `i8042.nopnp`, the PS/2 mouse also
>>>>>> works.
>>>>>>
>>>>>>> [    1.035915] calling  i8042_init+0x0/0x42d @ 1
>>>>>>> [    1.035947] i8042: PNP: PS/2 Controller [PNP0303:PS2K] at 0x60,0x64 irq 1
>>>>>>> [    1.035948] i8042: PNP: PS/2 appears to have AUX port disabled, if this is incorrect please boot with i8042.nopnp
>>>>>>> [    1.036589] serio: i8042 KBD port at 0x60,0x64 irq 1
>>>>>>> [    1.036621] initcall i8042_init+0x0/0x42d returned 0 after 687 usecs
>>>>>>
>>>>>> But, the DSDT includes the “mouse device”. From
>>>>>>
>>>>>>        acpidump > dump.bin; acpixtract dump.bin; iasl -d *dat; more dsdt.dsl
>>>>>>
>>>>>> we get
>>>>>>
>>>>>>                    Device (PS2M)
>>>>>>                    {
>>>>>>                        Name (_HID, EisaId ("PNP0F03") /* Microsoft PS/2-style Mouse */)  // _HID: Hardware ID
>>>>>>                        Name (_CID, EisaId ("PNP0F13") /* PS/2 Mouse */) // _CID: Compatible ID
>>>>>>                        Method (_STA, 0, NotSerialized)  // _STA: Status
>>>>>>                        {
>>>>>>                            If ((IOST & 0x4000))
>>>>>>                            {
>>>>>>                                Return (0x0F)
>>>>>>                            }
>>>>>>                            Else
>>>>>>                            {
>>>>>>                                Return (Zero)
>>>>>>                            }
>>>>>>                        }
>>>>>>
>>>>>> and the identifiers PNP0F03 and PNP0F13 are both listed in the array
>>>>>> `pnp_aux_devids[]`. But adding print statements to `i8042_pnp_aux_probe()`,
>>>>>> I do not see them, so the function does not seem to be called.
>>>>>
>>>>> My guess is that _STA returns 0 indicating that the device is not
>>>>> present. I would try tracking where IOST is being set and figuring out
>>>>> why it does not have mouse bit enabled.
>>>>
>>>> Does the ACPI subsystem allow to track, how ACPI variables(?) like IOST
>>>> are read and set?
>>>
>>> My guess would be that IOST is a field in an operation region which
>>> would indicate that it is initialized by the bootstrap part of the
>>> BIOS.
>>
>> Thank you for your answer. But how can I verify that?
> 
> Inspecting the ACPI tables from the system in question could help you
> to find out whether or not IOST really is a field in an operation
> region, but its initial value may not be possible to determine this
> way.
> 
>> Is there a Linux kernel parameter, that would print it?
> 
> Not that I know of.

I created an issue in the Linux kernel bugtracker [1] and attached the 
output of `acpidump` there.

Could

     If ((IOST & 0x4000))

versus

     If ((IOST & 0x0400))

be a typo?


Kind regards,

Paul


[1]: https://bugzilla.kernel.org/show_bug.cgi?id=209657

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ