[vfio-users] Trying to pass through USB controller.

Samuel Holland samuel at sholland.org
Wed Sep 6 18:38:31 UTC 2017


Hello,

On 08/31/17 22:45, Andrew A. wrote:
> I tried the following to no avail:
> setpci -s 00:14.0 0xd4.L=0x00000000
> setpci -s 00:14.0 0xdc.L=0x00000000
> 
> This seems not to have taken hold upon readback:
> setpci -s 00:14.0 0xd4.L
> 00003fff
> setpci -s 00:14.0 0xdc.L
> 0000003f

This is also what I get on my machine.

> (And indeed, the same problem persists -- qemu changes the port
> mappings as soon as I boot a guest, locking me out of my host machine
> until I ssh in and run 'setpci .. d0' again)
> 
> I took a look at what I believe is the R/WL property for these
> settings, which is bit 31 of D20:F0:40h according to the datasheet,
> so:
> setpci -s 00:14.0 0x40.L
> 803609fd
> sudo setpci -s 00:14.0 0x40.L=0x003609fd

Note that the ACCTRL bit is not documented in that register, further
suggesting that it is a BIOS-only control bit. Likely it is a write-once
bit, so once it has been set, it cannot be unset.

> But this again didn't seem to have an effect:
> setpci -s 00:14.0 0x40.L
> 803609fd

Note that other bits in the register can be changed (e.g. you can change
the 6 to a 0 to turn off power management, and change it back to a 6).
Just the top bit is write-protected.

>> Another potential problem is that your BIOS on the host may 
>> write-protect the mask register. In that case, see the datasheet 
>> for how to unlock it, if possible.
> 
> Right, and despite trying to remove the write protect I'm inclined
> to think my unlocking commands are not working for some reason. Do
> you see anything wrong with what I've tried here?

No, other than that it doesn't work :) I guess we're just out of luck
then, without doing something like patching your BIOS (so the bit never
gets set).

> Thanks.

Regards,
Samuel




More information about the vfio-users mailing list