NetBSD-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Experience with NetBSD on 13-gen Framework 13 laptop



On Mon, Jun 05, 2023 at 05:29:41PM +0100, David Brownlee wrote:
> > [...]
> > For Linux, these seem to be the relevant bits from the Fedora 38
> > installation:
> >
> > [    3.776427] input: ImExPS/2 Generic Explorer Mouse as /devices/platform/i8042/serio1/input/input4
> > [    3.828419] memfd_create() without MFD_EXEC nor MFD_NOEXEC_SEAL, pid=1 'systemd'
> > [    3.850162] usb 3-9: new full-speed USB device number 4 using xhci_hcd
> > [    3.932086] input: FRMW0001:00 32AC:0006 Wireless Radio Control as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-FRMW0001:00/0018:32AC:0006.0002/input/input5
> > [    3.932217] input: FRMW0001:00 32AC:0006 Consumer Control as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-FRMW0001:00/0018:32AC:0006.0002/input/input6
> > [    3.932252] input: FRMW0001:00 32AC:0006 as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-FRMW0001:00/0018:32AC:0006.0002/input/input7
> > [    3.932291] hid-generic 0018:32AC:0006.0002: input,hidraw1: I2C HID v1.00 Device [FRMW0001:00 32AC:0006] on i2c-FRMW0001:00
> > [    3.939039] input: PIXA3854:00 093A:0274 Mouse as /devices/pci0000:00/0000:00:15.3/i2c_designware.2/i2c-2/i2c-PIXA3854:00/0018:093A:0274.0003/input/input8
> > [    3.951140] input: PIXA3854:00 093A:0274 Touchpad as /devices/pci0000:00/0000:00:15.3/i2c_designware.2/i2c-2/i2c-PIXA3854:00/0018:093A:0274.0003/input/input9
> > [    3.963142] hid-generic 0018:093A:0274.0003: input,hidraw2: I2C HID v1.00 Mouse [PIXA3854:00 093A:0274] on i2c-PIXA3854:00
> > ...
> > [    4.031656] input: PIXA3854:00 093A:0274 Mouse as /devices/pci0000:00/0000:00:15.3/i2c_designware.2/i2c-2/i2c-PIXA3854:00/0018:093A:0274.0003/input/input10
> > [    4.031750] input: PIXA3854:00 093A:0274 Touchpad as /devices/pci0000:00/0000:00:15.3/i2c_designware.2/i2c-2/i2c-PIXA3854:00/0018:093A:0274.0003/input/input11
> > [    4.031800] hid-multitouch 0018:093A:0274.0003: input,hidraw1: I2C HID v1.00 Mouse [PIXA3854:00 093A:0274] on i2c-PIXA3854:00
> >
> > Full pre-login dmesg attached.
> 
> OK - so it's working as a basic mouse on NetBSD, but not as a two
> finger capable device. I'm... going to have to drop out and hope
> someone else knowing more can chime in :)

It looks like it's a I2C HID device. We have a driver for this:
# DesignWare I2C controller as found in some Intel PCH and AMD FCH devices.
dwiic*          at acpi?                # DesignWare I2C controller
dwiic*          at pci?                 # DesignWare I2C controller
iic*            at dwiic?

# I2C HID devices
ihidev* at iic?

# I2C Mice
ims*    at ihidev? reportid ?
wsmouse* at ims? mux 0

The i2c controller are probably:
[     1.050437] Intel 600 Series PCH-LP I2C 0 (miscellaneous serial bus, revision 0x01) at pci0 dev 21 function 0 not configured
[     1.050437] Intel 600 Series PCH-LP I2C 1 (miscellaneous serial bus, revision 0x01) at pci0 dev 21 function 1 not configured
[     1.050437] Intel 600 Series PCH-LP I2C 3 (miscellaneous serial bus, revision 0x01) at pci0 dev 21 function 3 not configured

(this matches the linux dmesg). So you could try rebuilding a kernel with
this patch:
Index: sys/arch/x86/pci/dwiic_pci.c
===================================================================
RCS file: /cvsroot/src/sys/arch/x86/pci/dwiic_pci.c,v
retrieving revision 1.9
diff -u -p -u -r1.9 dwiic_pci.c
--- sys/arch/x86/pci/dwiic_pci.c	19 Oct 2022 22:28:35 -0000	1.9
+++ sys/arch/x86/pci/dwiic_pci.c	5 Jun 2023 17:13:21 -0000
@@ -80,6 +80,14 @@ static const struct device_compatible_en
 	{ .id = VIDDID(INTEL, 100SERIES_LP_I2C_3) },
 	{ .id = VIDDID(INTEL, 100SERIES_LP_I2C_4) },
 	{ .id = VIDDID(INTEL, 100SERIES_LP_I2C_5) },
+	{ .id = VIDDID(INTEL, 6HS_LP_I2C_0) },
+	{ .id = VIDDID(INTEL, 6HS_LP_I2C_1) },
+	{ .id = VIDDID(INTEL, 6HS_LP_I2C_2) },
+	{ .id = VIDDID(INTEL, 6HS_LP_I2C_3) },
+	{ .id = VIDDID(INTEL, 6HS_LP_I2C_4) },
+	{ .id = VIDDID(INTEL, 6HS_LP_I2C_5) },
+	{ .id = VIDDID(INTEL, 6HS_LP_I2C_6) },
+	{ .id = VIDDID(INTEL, 6HS_LP_I2C_7) },
 	{ .id = VIDDID(INTEL, 2HS_I2C_0) },
 	{ .id = VIDDID(INTEL, 2HS_I2C_1) },
 	{ .id = VIDDID(INTEL, 2HS_I2C_2) },


I'm not sure all the 8 entries are dwiic-compatible, maybe you'll have to
remove some of them.

-- 
Manuel Bouyer <bouyer%antioche.eu.org@localhost>
     NetBSD: 26 ans d'experience feront toujours la difference
--


Home | Main Index | Thread Index | Old Index