summaryrefslogtreecommitdiff
path: root/src/dev/arm
diff options
context:
space:
mode:
authorSteve Reinhardt <stever@gmail.com>2013-07-11 21:57:04 -0500
committerSteve Reinhardt <stever@gmail.com>2013-07-11 21:57:04 -0500
commit1f43e244bda0c78844720609455fd77f6f275e51 (patch)
tree65eb7262e58a61992368dfe10f2152dd85eb6129 /src/dev/arm
parent502ad1e6757116867e0e0529c0c080320a2b440b (diff)
downloadgem5-1f43e244bda0c78844720609455fd77f6f275e51.tar.xz
dev: make BasicPioDevice take size in constructor
Instead of relying on derived classes explicitly assigning to the BasicPioDevice pioSize field, require them to pass a size value in to the constructor. Committed by: Nilay Vaish <nilay@cs.wisc.edu>
Diffstat (limited to 'src/dev/arm')
-rw-r--r--src/dev/arm/a9scu.cc3
-rw-r--r--src/dev/arm/amba_device.cc9
-rw-r--r--src/dev/arm/amba_device.hh4
-rw-r--r--src/dev/arm/amba_fake.cc3
-rw-r--r--src/dev/arm/kmi.cc8
-rw-r--r--src/dev/arm/pl011.cc5
-rw-r--r--src/dev/arm/rtc_pl031.cc7
-rw-r--r--src/dev/arm/rv_ctrl.cc3
-rw-r--r--src/dev/arm/timer_cpulocal.cc3
-rw-r--r--src/dev/arm/timer_sp804.cc4
10 files changed, 21 insertions, 28 deletions
diff --git a/src/dev/arm/a9scu.cc b/src/dev/arm/a9scu.cc
index 31d38b4ff..efb27daf9 100644
--- a/src/dev/arm/a9scu.cc
+++ b/src/dev/arm/a9scu.cc
@@ -45,9 +45,8 @@
#include "sim/system.hh"
A9SCU::A9SCU(Params *p)
- : BasicPioDevice(p)
+ : BasicPioDevice(p, 0x60)
{
- pioSize = 0x60;
}
Tick
diff --git a/src/dev/arm/amba_device.cc b/src/dev/arm/amba_device.cc
index 617a67d79..d2333417f 100644
--- a/src/dev/arm/amba_device.cc
+++ b/src/dev/arm/amba_device.cc
@@ -49,13 +49,14 @@
const uint64_t AmbaVendor = ULL(0xb105f00d00000000);
-AmbaPioDevice::AmbaPioDevice(const Params *p)
- : BasicPioDevice(p), ambaId(AmbaVendor | p->amba_id)
+AmbaPioDevice::AmbaPioDevice(const Params *p, Addr pio_size)
+ : BasicPioDevice(p, pio_size), ambaId(AmbaVendor | p->amba_id)
{
}
-AmbaIntDevice::AmbaIntDevice(const Params *p)
- : AmbaPioDevice(p), intNum(p->int_num), gic(p->gic), intDelay(p->int_delay)
+AmbaIntDevice::AmbaIntDevice(const Params *p, Addr pio_size)
+ : AmbaPioDevice(p, pio_size),
+ intNum(p->int_num), gic(p->gic), intDelay(p->int_delay)
{
}
diff --git a/src/dev/arm/amba_device.hh b/src/dev/arm/amba_device.hh
index d908ae616..3915e436c 100644
--- a/src/dev/arm/amba_device.hh
+++ b/src/dev/arm/amba_device.hh
@@ -82,7 +82,7 @@ class AmbaPioDevice : public BasicPioDevice, public AmbaDevice
public:
typedef AmbaPioDeviceParams Params;
- AmbaPioDevice(const Params *p);
+ AmbaPioDevice(const Params *p, Addr pio_size);
};
class AmbaIntDevice : public AmbaPioDevice
@@ -94,7 +94,7 @@ class AmbaIntDevice : public AmbaPioDevice
public:
typedef AmbaIntDeviceParams Params;
- AmbaIntDevice(const Params *p);
+ AmbaIntDevice(const Params *p, Addr pio_size);
};
class AmbaDmaDevice : public DmaDevice, public AmbaDevice
diff --git a/src/dev/arm/amba_fake.cc b/src/dev/arm/amba_fake.cc
index 654bd3112..3ca705c6c 100644
--- a/src/dev/arm/amba_fake.cc
+++ b/src/dev/arm/amba_fake.cc
@@ -47,9 +47,8 @@
#include "mem/packet_access.hh"
AmbaFake::AmbaFake(const Params *p)
- : AmbaPioDevice(p)
+ : AmbaPioDevice(p, 0xfff)
{
- pioSize = 0xfff;
}
Tick
diff --git a/src/dev/arm/kmi.cc b/src/dev/arm/kmi.cc
index 01b1fa737..99d61c610 100644
--- a/src/dev/arm/kmi.cc
+++ b/src/dev/arm/kmi.cc
@@ -51,12 +51,10 @@
#include "mem/packet_access.hh"
Pl050::Pl050(const Params *p)
- : AmbaIntDevice(p), control(0), status(0x43), clkdiv(0), interrupts(0),
- rawInterrupts(0), ackNext(false), shiftDown(false), vnc(p->vnc),
- driverInitialized(false), intEvent(this)
+ : AmbaIntDevice(p, 0xfff), control(0), status(0x43), clkdiv(0),
+ interrupts(0), rawInterrupts(0), ackNext(false), shiftDown(false),
+ vnc(p->vnc), driverInitialized(false), intEvent(this)
{
- pioSize = 0xfff;
-
if (vnc) {
if (!p->is_mouse)
vnc->setKeyboard(this);
diff --git a/src/dev/arm/pl011.cc b/src/dev/arm/pl011.cc
index 8af270878..2b4225ad5 100644
--- a/src/dev/arm/pl011.cc
+++ b/src/dev/arm/pl011.cc
@@ -52,11 +52,10 @@
#include "sim/sim_exit.hh"
Pl011::Pl011(const Params *p)
- : Uart(p), control(0x300), fbrd(0), ibrd(0), lcrh(0), ifls(0x12), imsc(0),
- rawInt(0), maskInt(0), intNum(p->int_num), gic(p->gic),
+ : Uart(p, 0xfff), control(0x300), fbrd(0), ibrd(0), lcrh(0), ifls(0x12),
+ imsc(0), rawInt(0), maskInt(0), intNum(p->int_num), gic(p->gic),
endOnEOT(p->end_on_eot), intDelay(p->int_delay), intEvent(this)
{
- pioSize = 0xfff;
}
Tick
diff --git a/src/dev/arm/rtc_pl031.cc b/src/dev/arm/rtc_pl031.cc
index ca1486f04..8f421a1da 100644
--- a/src/dev/arm/rtc_pl031.cc
+++ b/src/dev/arm/rtc_pl031.cc
@@ -49,11 +49,10 @@
#include "mem/packet_access.hh"
PL031::PL031(Params *p)
- : AmbaIntDevice(p), timeVal(mkutctime(&p->time)), lastWrittenTick(0),
- loadVal(0), matchVal(0), rawInt(false), maskInt(false),
- pendingInt(false), matchEvent(this)
+ : AmbaIntDevice(p, 0xfff), timeVal(mkutctime(&p->time)),
+ lastWrittenTick(0), loadVal(0), matchVal(0),
+ rawInt(false), maskInt(false), pendingInt(false), matchEvent(this)
{
- pioSize = 0xfff;
}
diff --git a/src/dev/arm/rv_ctrl.cc b/src/dev/arm/rv_ctrl.cc
index 337ed73ad..61111d22e 100644
--- a/src/dev/arm/rv_ctrl.cc
+++ b/src/dev/arm/rv_ctrl.cc
@@ -43,9 +43,8 @@
#include "mem/packet_access.hh"
RealViewCtrl::RealViewCtrl(Params *p)
- : BasicPioDevice(p), flags(0)
+ : BasicPioDevice(p, 0xD4), flags(0)
{
- pioSize = 0xD4;
}
Tick
diff --git a/src/dev/arm/timer_cpulocal.cc b/src/dev/arm/timer_cpulocal.cc
index 458df0674..ae341e2be 100644
--- a/src/dev/arm/timer_cpulocal.cc
+++ b/src/dev/arm/timer_cpulocal.cc
@@ -48,7 +48,7 @@
#include "mem/packet_access.hh"
CpuLocalTimer::CpuLocalTimer(Params *p)
- : BasicPioDevice(p), gic(p->gic)
+ : BasicPioDevice(p, 0x38), gic(p->gic)
{
// Initialize the timer registers for each per cpu timer
for (int i = 0; i < CPU_MAX; i++) {
@@ -60,7 +60,6 @@ CpuLocalTimer::CpuLocalTimer(Params *p)
localTimer[i].intNumWatchdog = p->int_num_watchdog;
localTimer[i].cpuNum = i;
}
- pioSize = 0x38;
}
CpuLocalTimer::Timer::Timer()
diff --git a/src/dev/arm/timer_sp804.cc b/src/dev/arm/timer_sp804.cc
index d4550845d..25bc08003 100644
--- a/src/dev/arm/timer_sp804.cc
+++ b/src/dev/arm/timer_sp804.cc
@@ -47,10 +47,10 @@
#include "mem/packet_access.hh"
Sp804::Sp804(Params *p)
- : AmbaPioDevice(p), gic(p->gic), timer0(name() + ".timer0", this, p->int_num0, p->clock0),
+ : AmbaPioDevice(p, 0xfff), gic(p->gic),
+ timer0(name() + ".timer0", this, p->int_num0, p->clock0),
timer1(name() + ".timer1", this, p->int_num1, p->clock1)
{
- pioSize = 0xfff;
}
Sp804::Timer::Timer(std::string __name, Sp804 *_parent, int int_num, Tick _clock)