ref: 5ef922959a546d54f19f63344ef5d581cc41c568
parent: d6a91e0ae47b4e1df9a9783c49666e2a7357e277
author: cinap_lenrek <[email protected]>
date: Tue May 26 20:23:13 EDT 2015
pci: map pci bars for devices with base class codes (ccrb) 0x00 and 0x0D-0x11 (thanks qeed) there are a few more device base class codes defined 0x0D-0x11, and qemu appears to use base class code 0x00 for some of its fake devices.
--- a/sys/src/9/pc/pci.c
+++ b/sys/src/9/pc/pci.c
@@ -406,6 +406,7 @@
* and work out the sizes.
*/
switch(p->ccrb) {
+ case 0x00: /* prehistoric */
case 0x01: /* mass storage controller */
case 0x02: /* network controller */
case 0x03: /* display controller */
@@ -416,6 +417,11 @@
case 0x0A: /* docking stations */
case 0x0B: /* processors */
case 0x0C: /* serial bus controllers */
+ case 0x0D: /* wireless controllers */
+ case 0x0E: /* intelligent I/O controllers */
+ case 0x0F: /* sattelite communication controllers */
+ case 0x10: /* encryption/decryption controllers */
+ case 0x11: /* signal processing controllers */
if((hdt & 0x7F) != 0)
break;
rno = PciBAR0;
@@ -439,7 +445,6 @@
}
break;
- case 0x00:
case 0x05: /* memory controller */
case 0x06: /* bridge device */
default: