diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2008-06-21 11:55:29 -0400 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2008-06-21 11:55:29 -0400 |
commit | db03d5db185430812775f0075a18da459b96a019 (patch) | |
tree | 17aab1642efbd0baf5c07123a3f14ba515798654 /src/pirtable.c | |
parent | b8d7a4797d06c9ff69712a3b436d2e0458ac7a51 (diff) | |
download | seabios-hppa-db03d5db185430812775f0075a18da459b96a019.zip seabios-hppa-db03d5db185430812775f0075a18da459b96a019.tar.gz seabios-hppa-db03d5db185430812775f0075a18da459b96a019.tar.bz2 |
PCI fixes
Only set the PIR table signature and checksum in the init function -
that way, if it is disabled at runtime (eg, due to coreboot) then
it wont be found by the OS.
Fix parameter swap bug in handle_1ab102.
Add support for more than one bus in pci scanning code (but only have
1 bus for now).
Diffstat (limited to 'src/pirtable.c')
-rw-r--r-- | src/pirtable.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/pirtable.c b/src/pirtable.c index c20a169..433b889 100644 --- a/src/pirtable.c +++ b/src/pirtable.c @@ -11,15 +11,13 @@ struct pir_table { struct pir_header pir; struct pir_slot slots[6]; -} PACKED PIR_TABLE VISIBLE16 __attribute__((aligned(16))) = { +} PACKED PIR_TABLE __attribute__((aligned(16))) = { #if CONFIG_PIRTABLE .pir = { - .signature = PIR_SIGNATURE, .version = 0x0100, .size = sizeof(struct pir_table), .router_devfunc = 0x08, .compatible_devid = 0x122e8086, - .checksum = 0x37, // XXX - should auto calculate }, .slots = { { @@ -93,6 +91,7 @@ create_pirtable() if (! CONFIG_PIRTABLE) return; + PIR_TABLE.pir.signature = PIR_SIGNATURE; PIR_TABLE.pir.checksum = -checksum((u8*)&PIR_TABLE, sizeof(PIR_TABLE)); SET_EBDA(pir_loc, (u32)&PIR_TABLE); } |