[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: Config space access to Mediatek MT7922 doesn't work after device reset in Xen PV dom0 (regression, Linux 6.12)
On 30.01.2025 05:55, Marek Marczykowski-Górecki wrote: > I've added logging of all config read/write to this device. Full log at > [1]. > > A little explanation: > - it's done in pci_conf_read/pci_conf_write in > https://xenbits.xen.org/gitweb/?p=xen.git;a=blob;f=xen/arch/x86/pci.c;h=97b792e578f1093194466081ad3651ade21cae7d;hb=HEAD > - cf8 means cf8 port value (BDF + register) > - bytes is read/write size (1/2/4) > - offset is the offset in the register (on top of cf8), but not in data > - data is either retrieved value, or written value, depending on > function > - it's logging only accesses to 01:00.0 > > interesting part: > > lspci before reset: > (XEN) d0v3 conf read cf8 0x80010000 bytes 4 offset 0 data 0x61614c3 > (XEN) d0v3 conf read cf8 0x80010004 bytes 4 offset 0 data 0x100000 > (XEN) d0v3 conf read cf8 0x80010008 bytes 4 offset 0 data 0x2800000 > (XEN) d0v3 conf read cf8 0x8001000c bytes 4 offset 0 data 0x10 > (XEN) d0v3 conf read cf8 0x80010010 bytes 4 offset 0 data 0x1090000c > (XEN) d0v3 conf read cf8 0x80010014 bytes 4 offset 0 data 0x80 > (XEN) d0v3 conf read cf8 0x80010018 bytes 4 offset 0 data 0x90b00004 > (XEN) d0v3 conf read cf8 0x8001001c bytes 4 offset 0 data 0 > (XEN) d0v3 conf read cf8 0x80010020 bytes 4 offset 0 data 0 > (XEN) d0v3 conf read cf8 0x80010024 bytes 4 offset 0 data 0 > (XEN) d0v3 conf read cf8 0x80010028 bytes 4 offset 0 data 0 > (XEN) d0v3 conf read cf8 0x8001002c bytes 4 offset 0 data 0xe61614c3 > (XEN) d0v3 conf read cf8 0x80010030 bytes 4 offset 0 data 0 > (XEN) d0v3 conf read cf8 0x80010034 bytes 4 offset 0 data 0x80 > (XEN) d0v3 conf read cf8 0x80010038 bytes 4 offset 0 data 0 > (XEN) d0v3 conf read cf8 0x8001003c bytes 4 offset 0 data 0x1ff > (XEN) d0v3 conf read cf8 0x80010080 bytes 4 offset 0 data 0x2e010 > (XEN) d0v3 conf read cf8 0x800100e0 bytes 4 offset 0 data 0x18af805 > (XEN) d0v3 conf read cf8 0x800100f8 bytes 4 offset 0 data 0xc8030001 > > reset: > (XEN) d0v1 conf read cf8 0x800100fc bytes 2 offset 0 data 0x8 > (XEN) d0v1 conf read cf8 0x800100fc bytes 2 offset 0 data 0x8 > (XEN) d0v1 conf read cf8 0x8001008c bytes 4 offset 0 data 0x145dc12 > (XEN) d0v1 conf read cf8 0x80010000 bytes 4 offset 0 data 0x61614c3 > (XEN) d0v1 conf read cf8 0x80010004 bytes 4 offset 0 data 0x100000 > (XEN) d0v1 conf read cf8 0x80010008 bytes 4 offset 0 data 0x2800000 > (XEN) d0v1 conf read cf8 0x8001000c bytes 4 offset 0 data 0x10 > (XEN) d0v1 conf read cf8 0x80010010 bytes 4 offset 0 data 0x1090000c > (XEN) d0v1 conf read cf8 0x80010014 bytes 4 offset 0 data 0x80 > (XEN) d0v1 conf read cf8 0x80010018 bytes 4 offset 0 data 0x90b00004 > (XEN) d0v1 conf read cf8 0x8001001c bytes 4 offset 0 data 0 > (XEN) d0v1 conf read cf8 0x80010020 bytes 4 offset 0 data 0 > (XEN) d0v1 conf read cf8 0x80010024 bytes 4 offset 0 data 0 > (XEN) d0v1 conf read cf8 0x80010028 bytes 4 offset 0 data 0 > (XEN) d0v1 conf read cf8 0x8001002c bytes 4 offset 0 data 0xe61614c3 > (XEN) d0v1 conf read cf8 0x80010030 bytes 4 offset 0 data 0 > (XEN) d0v1 conf read cf8 0x80010034 bytes 4 offset 0 data 0x80 > (XEN) d0v1 conf read cf8 0x80010038 bytes 4 offset 0 data 0 > (XEN) d0v1 conf read cf8 0x8001003c bytes 4 offset 0 data 0x1ff > (XEN) d0v1 conf read cf8 0x80010088 bytes 2 offset 0 data 0x2910 > (XEN) d0v1 conf read cf8 0x80010090 bytes 2 offset 0 data 0x1c2 > (XEN) d0v1 conf read cf8 0x800100a8 bytes 2 offset 0 data 0x400 > (XEN) d0v1 conf read cf8 0x800100b0 bytes 2 offset 0 data 0x2 > (XEN) d0v1 conf read cf8 0x80010004 bytes 2 offset 2 data 0x10 > (XEN) d0v1 conf read cf8 0x80010034 bytes 1 offset 0 data 0x80 > (XEN) d0v1 conf read cf8 0x80010080 bytes 2 offset 0 data 0xe010 > (XEN) d0v1 conf read cf8 0x800100e0 bytes 2 offset 0 data 0xf805 > (XEN) d0v1 conf read cf8 0x800100f8 bytes 2 offset 0 data 0x1 > (XEN) d0v1 conf write cf8 0x80010004 bytes 2 offset 0 data 0x400 > (XEN) d0v1 conf read cf8 0x80010088 bytes 2 offset 2 data 0x9 > (XEN) d0v1 conf read cf8 0x80010088 bytes 2 offset 0 data 0x2910 > (XEN) d0v1 conf write cf8 0x80010088 bytes 2 offset 0 data 0xa910 This is the express capability's Link Control 2 Register afaict. As per the copy of the 6.0 spec that I have the top 4 bits have only two defined encodings - 0b0000 and 0b0001. 0b1000, as is being set here, is not defined. Yet then the earlier questions remain: Why has this suddenly become a problem? And why would this depend on how the present session was started, and what was running in the previous session? Is this write perhaps conditional upon something that has changed? Jan > (XEN) d0v2 conf read cf8 0x80010000 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf read cf8 0x80010090 bytes 2 offset 0 data 0xffff > (XEN) d0v2 conf write cf8 0x80010090 bytes 2 offset 0 data 0xfffc > (XEN) d0v2 conf write cf8 0x80010090 bytes 2 offset 0 data 0xffff > (XEN) d0v2 conf write cf8 0x80010088 bytes 2 offset 0 data 0x2910 > (XEN) d0v2 conf write cf8 0x80010090 bytes 2 offset 0 data 0x1c2 > (XEN) d0v2 conf write cf8 0x800100a8 bytes 2 offset 0 data 0x400 > (XEN) d0v2 conf write cf8 0x800100b0 bytes 2 offset 0 data 0x2 > (XEN) d0v2 conf read cf8 0x8001003c bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x8001003c bytes 4 offset 0 data 0x1ff > (XEN) d0v2 conf read cf8 0x80010038 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010038 bytes 4 offset 0 data 0 > (XEN) d0v2 conf read cf8 0x80010034 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010034 bytes 4 offset 0 data 0x80 > (XEN) d0v2 conf read cf8 0x80010030 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010030 bytes 4 offset 0 data 0 > (XEN) d0v2 conf read cf8 0x8001002c bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x8001002c bytes 4 offset 0 data 0xe61614c3 > (XEN) d0v2 conf read cf8 0x80010028 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010028 bytes 4 offset 0 data 0 > (XEN) d0v2 conf read cf8 0x80010024 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010024 bytes 4 offset 0 data 0 > (XEN) d0v2 conf read cf8 0x80010024 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010024 bytes 4 offset 0 data 0 > (XEN) d0v2 conf read cf8 0x80010024 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010024 bytes 4 offset 0 data 0 > (XEN) d0v2 conf read cf8 0x80010024 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010024 bytes 4 offset 0 data 0 > (XEN) d0v2 conf read cf8 0x80010024 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010024 bytes 4 offset 0 data 0 > (XEN) d0v2 conf read cf8 0x80010024 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010024 bytes 4 offset 0 data 0 > (XEN) d0v2 conf read cf8 0x80010024 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010024 bytes 4 offset 0 data 0 > (XEN) d0v2 conf read cf8 0x80010024 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010024 bytes 4 offset 0 data 0 > (XEN) d0v2 conf read cf8 0x80010024 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010024 bytes 4 offset 0 data 0 > (XEN) d0v2 conf read cf8 0x80010024 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010024 bytes 4 offset 0 data 0 > (XEN) d0v2 conf read cf8 0x80010024 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010024 bytes 4 offset 0 data 0 > (XEN) d0v2 conf read cf8 0x80010020 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010020 bytes 4 offset 0 data 0 > (XEN) d0v2 conf read cf8 0x80010020 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010020 bytes 4 offset 0 data 0 > (XEN) d0v2 conf read cf8 0x80010020 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010020 bytes 4 offset 0 data 0 > (XEN) d0v2 conf read cf8 0x80010020 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010020 bytes 4 offset 0 data 0 > (XEN) d0v2 conf read cf8 0x80010020 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010020 bytes 4 offset 0 data 0 > (XEN) d0v2 conf read cf8 0x80010020 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010020 bytes 4 offset 0 data 0 > (XEN) d0v2 conf read cf8 0x80010020 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010020 bytes 4 offset 0 data 0 > (XEN) d0v2 conf read cf8 0x80010020 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010020 bytes 4 offset 0 data 0 > (XEN) d0v2 conf read cf8 0x80010020 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010020 bytes 4 offset 0 data 0 > (XEN) d0v2 conf read cf8 0x80010020 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010020 bytes 4 offset 0 data 0 > (XEN) d0v2 conf read cf8 0x80010020 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010020 bytes 4 offset 0 data 0 > (XEN) d0v2 conf read cf8 0x8001001c bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x8001001c bytes 4 offset 0 data 0 > (XEN) d0v2 conf read cf8 0x8001001c bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x8001001c bytes 4 offset 0 data 0 > (XEN) d0v2 conf read cf8 0x8001001c bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x8001001c bytes 4 offset 0 data 0 > (XEN) d0v2 conf read cf8 0x8001001c bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x8001001c bytes 4 offset 0 data 0 > (XEN) d0v2 conf read cf8 0x8001001c bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x8001001c bytes 4 offset 0 data 0 > (XEN) d0v2 conf read cf8 0x8001001c bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x8001001c bytes 4 offset 0 data 0 > (XEN) d0v2 conf read cf8 0x8001001c bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x8001001c bytes 4 offset 0 data 0 > (XEN) d0v2 conf read cf8 0x8001001c bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x8001001c bytes 4 offset 0 data 0 > (XEN) d0v2 conf read cf8 0x8001001c bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x8001001c bytes 4 offset 0 data 0 > (XEN) d0v2 conf read cf8 0x8001001c bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x8001001c bytes 4 offset 0 data 0 > (XEN) d0v2 conf read cf8 0x8001001c bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x8001001c bytes 4 offset 0 data 0 > (XEN) d0v2 conf read cf8 0x80010018 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010018 bytes 4 offset 0 data 0x90b00004 > (XEN) d0v2 conf read cf8 0x80010018 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010018 bytes 4 offset 0 data 0x90b00004 > (XEN) d0v2 conf read cf8 0x80010018 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010018 bytes 4 offset 0 data 0x90b00004 > (XEN) d0v2 conf read cf8 0x80010018 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010018 bytes 4 offset 0 data 0x90b00004 > (XEN) d0v2 conf read cf8 0x80010018 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010018 bytes 4 offset 0 data 0x90b00004 > (XEN) d0v2 conf read cf8 0x80010018 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010018 bytes 4 offset 0 data 0x90b00004 > (XEN) d0v2 conf read cf8 0x80010018 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010018 bytes 4 offset 0 data 0x90b00004 > (XEN) d0v2 conf read cf8 0x80010018 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010018 bytes 4 offset 0 data 0x90b00004 > (XEN) d0v2 conf read cf8 0x80010018 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010018 bytes 4 offset 0 data 0x90b00004 > (XEN) d0v2 conf read cf8 0x80010018 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010018 bytes 4 offset 0 data 0x90b00004 > (XEN) d0v2 conf read cf8 0x80010018 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010018 bytes 4 offset 0 data 0x90b00004 > (XEN) d0v2 conf read cf8 0x80010014 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010014 bytes 4 offset 0 data 0x80 > (XEN) d0v2 conf read cf8 0x80010014 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010014 bytes 4 offset 0 data 0x80 > (XEN) d0v2 conf read cf8 0x80010014 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010014 bytes 4 offset 0 data 0x80 > (XEN) d0v2 conf read cf8 0x80010014 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010014 bytes 4 offset 0 data 0x80 > (XEN) d0v2 conf read cf8 0x80010014 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010014 bytes 4 offset 0 data 0x80 > (XEN) d0v2 conf read cf8 0x80010014 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010014 bytes 4 offset 0 data 0x80 > (XEN) d0v2 conf read cf8 0x80010014 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010014 bytes 4 offset 0 data 0x80 > (XEN) d0v2 conf read cf8 0x80010014 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010014 bytes 4 offset 0 data 0x80 > (XEN) d0v2 conf read cf8 0x80010014 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010014 bytes 4 offset 0 data 0x80 > (XEN) d0v2 conf read cf8 0x80010014 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010014 bytes 4 offset 0 data 0x80 > (XEN) d0v2 conf read cf8 0x80010014 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010014 bytes 4 offset 0 data 0x80 > (XEN) d0v2 conf read cf8 0x80010010 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010010 bytes 4 offset 0 data 0x1090000c > (XEN) d0v2 conf read cf8 0x80010010 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010010 bytes 4 offset 0 data 0x1090000c > (XEN) d0v2 conf read cf8 0x80010010 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010010 bytes 4 offset 0 data 0x1090000c > (XEN) d0v2 conf read cf8 0x80010010 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010010 bytes 4 offset 0 data 0x1090000c > (XEN) d0v2 conf read cf8 0x80010010 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010010 bytes 4 offset 0 data 0x1090000c > (XEN) d0v2 conf read cf8 0x80010010 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010010 bytes 4 offset 0 data 0x1090000c > (XEN) d0v2 conf read cf8 0x80010010 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010010 bytes 4 offset 0 data 0x1090000c > (XEN) d0v2 conf read cf8 0x80010010 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010010 bytes 4 offset 0 data 0x1090000c > (XEN) d0v2 conf read cf8 0x80010010 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010010 bytes 4 offset 0 data 0x1090000c > (XEN) d0v2 conf read cf8 0x80010010 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010010 bytes 4 offset 0 data 0x1090000c > (XEN) d0v2 conf read cf8 0x80010010 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010010 bytes 4 offset 0 data 0x1090000c > (XEN) d0v2 conf read cf8 0x8001000c bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x8001000c bytes 4 offset 0 data 0x10 > (XEN) d0v2 conf read cf8 0x80010008 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010008 bytes 4 offset 0 data 0x2800000 > (XEN) d0v2 conf read cf8 0x80010004 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010004 bytes 4 offset 0 data 0x100000 > (XEN) d0v2 conf read cf8 0x80010000 bytes 4 offset 0 data 0xffffffff > (XEN) d0v2 conf write cf8 0x80010000 bytes 4 offset 0 data 0x61614c3 > (XEN) d0v2 conf read cf8 0x80010004 bytes 2 offset 2 data 0xffff > (XEN) d0v2 conf read cf8 0x80010034 bytes 1 offset 0 data 0xff > (XEN) d0v2 conf read cf8 0x800100fc bytes 2 offset 0 data 0xffff > > > [1] https://gist.github.com/marmarek/b4391c71801145e52590e877c559c5e0 >
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |