summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/dev/arm/Gic.py7
-rw-r--r--src/dev/arm/gic_v3.cc4
2 files changed, 7 insertions, 4 deletions
diff --git a/src/dev/arm/Gic.py b/src/dev/arm/Gic.py
index eec6e95c2..20b7bca05 100644
--- a/src/dev/arm/Gic.py
+++ b/src/dev/arm/Gic.py
@@ -203,7 +203,7 @@ class Gicv3(BaseGic):
# Used for DTB autogeneration
_state = FdtState(addr_cells=2, size_cells=2, interrupt_cells=3)
- its = Param.Gicv3Its(Gicv3Its(), "GICv3 Interrupt Translation Service")
+ its = Param.Gicv3Its(NULL, "GICv3 Interrupt Translation Service")
dist_addr = Param.Addr("Address for distributor")
dist_pio_delay = Param.Latency('10ns', "Delay for PIO r/w to distributor")
@@ -263,7 +263,8 @@ class Gicv3(BaseGic):
node.appendPhandle(self)
- # Generate the ITS device tree
- node.append(self.its.generateDeviceTree(self._state))
+ # Generate the ITS device tree if instantiated
+ if self.its != NULL:
+ node.append(self.its.generateDeviceTree(self._state))
yield node
diff --git a/src/dev/arm/gic_v3.cc b/src/dev/arm/gic_v3.cc
index eb38efe4d..ba0a8ee63 100644
--- a/src/dev/arm/gic_v3.cc
+++ b/src/dev/arm/gic_v3.cc
@@ -91,7 +91,9 @@ Gicv3::init()
cpuInterfaces[i]->init();
}
- params()->its->setGIC(this);
+ Gicv3Its *its = params()->its;
+ if (its)
+ its->setGIC(this);
BaseGic::init();
}