@@ 63,13 63,13 @@ static X86type x86intel[] =
{ 5, 4, 23, "P55C MMX", },
{ 5, 7, 23, "P54C VRT", },
{ 6, 1, 16, "PentiumPro", },/* determined by trial and error */
- { 6, 3, 16, "PentiumII", }, /* determined by trial and error */
- { 6, 5, 16, "PentiumII", }, /* determined by trial and error */
+ { 6, 3, 16, "PentiumII", },
+ { 6, 5, 16, "PentiumII/Xeon", },
{ 3, -1, 32, "386", }, /* family defaults */
{ 4, -1, 22, "486", },
- { 5, -1, 23, "Pentium", },
- { 6, -1, 16, "PentiumPro", },
+ { 5, -1, 23, "P5", },
+ { 6, -1, 16, "P6", },
{ -1, -1, 23, "unknown", }, /* total default */
};
@@ 41,39 41,39 @@ typedef struct {
Lock;
} RMap;
-static Map mapupa[8];
+static Map mapupa[16];
static RMap rmapupa = {
"unallocated unbacked physical memory",
mapupa,
- &mapupa[7],
+ &mapupa[nelem(mapupa)-1],
};
-static Map xmapupa[8];
+static Map xmapupa[16];
static RMap xrmapupa = {
"unbacked physical memory",
xmapupa,
- &xmapupa[7],
+ &xmapupa[nelem(xmapupa)-1],
};
-static Map mapram[8];
+static Map mapram[16];
static RMap rmapram = {
"physical memory",
mapram,
- &mapram[7],
+ &mapram[nelem(mapram)-1],
};
static Map mapumb[64];
static RMap rmapumb = {
"upper memory block",
mapumb,
- &mapumb[63],
+ &mapumb[nelem(mapumb)-1],
};
-static Map mapumbrw[8];
+static Map mapumbrw[16];
static RMap rmapumbrw = {
"UMB device memory",
mapumbrw,
- &mapumbrw[7],
+ &mapumbrw[nelem(mapumbrw)-1],
};
void
@@ 335,7 335,7 @@ mmukmap(ulong pa, ulong va, int size)
*/
x = PPN(*table);
if(x != pa)
- panic("mmukmap1: pa %ux entry %uX\n",
+ panic("mmukmap1: pa %uX entry %uX\n",
pa, *table);
x += 4*MB;
if(pae <= x){
@@ 358,7 358,7 @@ mmukmap(ulong pa, ulong va, int size)
if(pte && *pte & PTEVALID){
x = PPN(*pte);
if(x != pa)
- panic("mmukmap2: pa %ux entry %uX\n",
+ panic("mmukmap2: pa %uX entry %uX\n",
pa, *pte);
pgsz = BY2PG;
pa += pgsz;
@@ 395,7 395,7 @@ pcimatch(Pcidev* prev, int vid, int did)
else
prev = prev->list;
- while(prev != nil) {
+ while(prev != nil){
if(prev->vid == vid && (did == 0 || prev->did == did))
break;
prev = prev->list;
@@ 403,6 403,21 @@ pcimatch(Pcidev* prev, int vid, int did)
return prev;
}
+Pcidev*
+pcimatchtbdf(int tbdf)
+{
+ Pcidev *pcidev;
+
+ if(pcicfgmode == -1)
+ pcicfginit();
+
+ for(pcidev = pcilist; pcidev != nil; pcidev = pcidev->list){
+ if(pcidev->tbdf == tbdf)
+ break;
+ }
+ return pcidev;
+}
+
void
pcihinv(Pcidev* p)
{