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: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20200127174127.25522-1-bsz@semihalf.com>
Date:   Mon, 27 Jan 2020 18:41:27 +0100
From:   Bartosz Szczepanek <bsz@...ihalf.com>
To:     nick.dyer@...ev.co.uk, jiada_wang@...tor.com
Cc:     Andrew_Gabbasov@...tor.com, benjamin.tissoires@...hat.com,
        dmitry.torokhov@...il.com, erosca@...adit-jv.com, jikos@...nel.org,
        linux-input@...r.kernel.org, linux-kernel@...r.kernel.org,
        nick@...anahar.org, rydberg@...math.org, levinale@...gle.com,
        rad@...ihalf.com
Subject: [PATCH v6 24/48] Input: atmel_mxt_ts - make bootloader interrupt driven

Hi,

I've been testing this patchset on Chromebook equipped with Atmel touchscreen &
touchpad. In my setup, this particular patch seems to introduce a regression
on firmware update:

> localhost /sys/devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-6/i2c-ATML0001:00 # echo maxtouch-ts.fw > update_fw
> bash: echo: write error: Remote I/O error

Kernel logs show that the reason is failed I2C transfer:

> [ 111.632131] atmel_mxt_ts i2c-ATML0001:00: Found bootloader addr:27 ID:21 version:4
> [ 111.637711] atmel_mxt_ts i2c-ATML0001:00: Unlocking bootloader
> [ 129.155091] atmel_mxt_ts i2c-ATML0001:00: Sent 1356 frames, 212224 bytes
> [ 129.263269] atmel_mxt_ts i2c-ATML0001:00: The firmware update succeeded
> [ 129.263952] atmel_mxt_ts i2c-ATML0001:00: __mxt_read_chunk: i2c transfer failed (-121)
> [ 129.265072] atmel_mxt_ts i2c-ATML0001:00: mxt_bootloader_read: i2c recv failed (-121)
> [ 129.265588] atmel_mxt_ts i2c-ATML0001:00: Trying alternate bootloader address
> [ 129.266375] atmel_mxt_ts i2c-ATML0001:00: mxt_bootloader_read: i2c recv failed (-121)

Surprisingly, only touchscreen device is affected. When I checked out to
119e1b7e8481 ("Input: atmel_mxt_ts - refactor code to enter bootloader into
separate func") all worked fine. In between these commits I got some mixed
results, including timeout while waiting for completion:

> [ 190.006174] atmel_mxt_ts i2c-ATML0001:00: Found bootloader addr:27 ID:21 version:4
> [ 190.317819] atmel_mxt_ts i2c-ATML0001:00: Wait for completion timed out.
> [ 190.318267] atmel_mxt_ts i2c-ATML0001:00: Update wait error -110
> [ 190.319310] atmel_mxt_ts i2c-ATML0001:00: Unlocking bootloader
> [ 208.369825] atmel_mxt_ts i2c-ATML0001:00: Sent 1356 frames, 212224 bytes
> [ 208.536942] atmel_mxt_ts i2c-ATML0001:00: The firmware update succeeded
> [ 208.544835] atmel_mxt_ts i2c-ATML0001:00: Family: 164 Variant: 14 Firmware V2.3.AA Objects: 40
> [ 208.547623] atmel_mxt_ts i2c-ATML0001:00: Touchscreen size X4095Y2729

Some more details - the touchscreen device reports itself as:

> atmel_mxt_ts i2c-ATML0001:00: Family: 164 Variant: 14 Firmware V2.3.AA Objects: 40

Due to Chromebook limitations on kernel version, I'm running 4.19 kernel
with patches backported from master (so that atmel_mxt_ts is aligned between
master and 4.19). The platform is Samsung Chromebook Pro.

Best regards,
Bartosz

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ