diff options
author | Steve Reinhardt <stever@eecs.umich.edu> | 2006-08-28 11:01:25 -0700 |
---|---|---|
committer | Steve Reinhardt <stever@eecs.umich.edu> | 2006-08-28 11:01:25 -0700 |
commit | b77da23e1ae15eff2475d16f11b0b394b82c831e (patch) | |
tree | fab92a05ade69619b1a86844fccdd12fbac8e79d /src/dev | |
parent | 19d51452b1d4809de31702a7132cfba53af9dfd2 (diff) | |
download | gem5-b77da23e1ae15eff2475d16f11b0b394b82c831e.tar.xz |
Get rid of unneeded union.
Verify that BAR sizes are powers of two.
--HG--
extra : convert_revision : ce8dca07aaf1a340cc166b99b5858613a954e2fd
Diffstat (limited to 'src/dev')
-rw-r--r-- | src/dev/pcidev.cc | 20 | ||||
-rw-r--r-- | src/dev/pcireg.h | 13 |
2 files changed, 15 insertions, 18 deletions
diff --git a/src/dev/pcidev.cc b/src/dev/pcidev.cc index 9e6d5cd37..3e4238908 100644 --- a/src/dev/pcidev.cc +++ b/src/dev/pcidev.cc @@ -429,12 +429,12 @@ CREATE_SIM_OBJECT(PciConfigData) data->config.headerType = htole(HeaderType); data->config.bist = htole(BIST); - data->config.baseAddr0 = htole(BAR0); - data->config.baseAddr1 = htole(BAR1); - data->config.baseAddr2 = htole(BAR2); - data->config.baseAddr3 = htole(BAR3); - data->config.baseAddr4 = htole(BAR4); - data->config.baseAddr5 = htole(BAR5); + data->config.baseAddr[0] = htole(BAR0); + data->config.baseAddr[1] = htole(BAR1); + data->config.baseAddr[2] = htole(BAR2); + data->config.baseAddr[3] = htole(BAR3); + data->config.baseAddr[4] = htole(BAR4); + data->config.baseAddr[5] = htole(BAR5); data->config.cardbusCIS = htole(CardbusCIS); data->config.subsystemVendorID = htole(SubsystemVendorID); data->config.subsystemID = htole(SubsystemVendorID); @@ -451,6 +451,14 @@ CREATE_SIM_OBJECT(PciConfigData) data->BARSize[4] = BAR4Size; data->BARSize[5] = BAR5Size; + for (int i = 0; i < 6; ++i) { + uint32_t barsize = data->BARSize[i]; + if (barsize != 0 && !isPowerOf2(barsize)) { + fatal("%s: BAR %d size %d is not a power of 2\n", + getInstanceName(), i, data->BARSize[i]); + } + } + return data; } diff --git a/src/dev/pcireg.h b/src/dev/pcireg.h index a48abd4fa..df57acdb0 100644 --- a/src/dev/pcireg.h +++ b/src/dev/pcireg.h @@ -54,18 +54,7 @@ union PCIConfig { uint8_t latencyTimer; uint8_t headerType; uint8_t bist; - union { - uint32_t baseAddr[6]; - - struct { - uint32_t baseAddr0; - uint32_t baseAddr1; - uint32_t baseAddr2; - uint32_t baseAddr3; - uint32_t baseAddr4; - uint32_t baseAddr5; - }; - }; + uint32_t baseAddr[6]; uint32_t cardbusCIS; uint16_t subsystemVendorID; uint16_t subsystemID; |