Giacomo Travaglini has submitted this change. (
https://gem5-review.googlesource.com/c/public/gem5/+/35397 )
Change subject: dev-arm: Use generateFdtProperty in the GenericTimer
......................................................................
dev-arm: Use generateFdtProperty in the GenericTimer
Change-Id: I4115d14ba65685627b51b0e5438fe5a3ed9328bc
Signed-off-by: Giacomo Travaglini <[email protected]>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/35397
Tested-by: kokoro <[email protected]>
Reviewed-by: Andreas Sandberg <[email protected]>
Maintainer: Andreas Sandberg <[email protected]>
---
M src/dev/arm/GenericTimer.py
M src/dev/arm/RealView.py
2 files changed, 25 insertions(+), 18 deletions(-)
Approvals:
Andreas Sandberg: Looks good to me, approved; Looks good to me, approved
kokoro: Regressions pass
diff --git a/src/dev/arm/GenericTimer.py b/src/dev/arm/GenericTimer.py
index ed81b24..db93532 100644
--- a/src/dev/arm/GenericTimer.py
+++ b/src/dev/arm/GenericTimer.py
@@ -104,12 +104,13 @@
node.appendCompatible(["arm,cortex-a15-timer",
"arm,armv7-timer",
"arm,armv8-timer"])
- node.append(FdtPropertyWords("interrupts", [
- 1, int(self.int_phys_s.num) - 16, 0xf08,
- 1, int(self.int_phys_ns.num) - 16, 0xf08,
- 1, int(self.int_virt.num) - 16, 0xf08,
- 1, int(self.int_hyp.num) - 16, 0xf08,
- ]))
+
+ gic = self._parent.unproxy(self).gic
+ node.append(FdtPropertyWords("interrupts",
+ self.int_phys_s.generateFdtProperty(gic) +
+ self.int_phys_ns.generateFdtProperty(gic) +
+ self.int_virt.generateFdtProperty(gic) +
+ self.int_hyp.generateFdtProperty(gic)))
if self._freq_in_dtb:
node.append(self.counter.unproxy(self).generateDtb())
@@ -139,13 +140,15 @@
int_phys = Param.ArmSPI("Physical Interrupt")
int_virt = Param.ArmSPI("Virtual Interrupt")
- def generateDeviceTree(self, state):
+ def generateDeviceTree(self, state, gic):
node = FdtNode("frame@{:08x}".format(self.cnt_base.value))
node.append(FdtPropertyWords("frame-number", self._frame_num))
- ints = [0, int(self.int_phys.num) - 32, 4]
+
+ ints = self.int_phys.generateFdtProperty(gic)
if self.int_virt != NULL:
- ints.extend([0, int(self.int_virt.num) - 32, 4])
+ ints.extend(self.int_virt.generateFdtProperty(gic))
node.append(FdtPropertyWords("interrupts", ints))
+
reg = state.addrCells(self.cnt_base) + state.sizeCells(0x1000)
if self.cnt_el0_base.value != MaxAddr:
reg.extend(state.addrCells(self.cnt_el0_base)
@@ -193,8 +196,10 @@
if self._freq_in_dtb:
node.append(self.counter.unproxy(self).generateDtb())
+ gic = self._parent.unproxy(self).gic
+
for i, frame in enumerate(self.frames):
frame._frame_num = i
- node.append(frame.generateDeviceTree(state))
+ node.append(frame.generateDeviceTree(state, gic))
yield node
diff --git a/src/dev/arm/RealView.py b/src/dev/arm/RealView.py
index 4664a19..0d2251d 100644
--- a/src/dev/arm/RealView.py
+++ b/src/dev/arm/RealView.py
@@ -703,10 +703,11 @@
pci_pio_base=0)
sys_counter = SystemCounter()
- generic_timer = GenericTimer(int_phys_s=ArmPPI(num=29),
- int_phys_ns=ArmPPI(num=30),
- int_virt=ArmPPI(num=27),
- int_hyp=ArmPPI(num=26))
+ generic_timer = GenericTimer(
+ int_phys_s=ArmPPI(num=29, int_type='IRQ_TYPE_LEVEL_LOW'),
+ int_phys_ns=ArmPPI(num=30, int_type='IRQ_TYPE_LEVEL_LOW'),
+ int_virt=ArmPPI(num=27, int_type='IRQ_TYPE_LEVEL_LOW'),
+ int_hyp=ArmPPI(num=26, int_type='IRQ_TYPE_LEVEL_LOW'))
timer0 = Sp804(int0=ArmSPI(num=34), int1=ArmSPI(num=34),
pio_addr=0x1C110000, clock0='1MHz', clock1='1MHz')
@@ -975,10 +976,11 @@
trusted_watchdog = Sp805(pio_addr=0x2a490000, interrupt=ArmSPI(num=56))
sys_counter = SystemCounter()
- generic_timer = GenericTimer(int_phys_s=ArmPPI(num=29),
- int_phys_ns=ArmPPI(num=30),
- int_virt=ArmPPI(num=27),
- int_hyp=ArmPPI(num=26))
+ generic_timer = GenericTimer(
+ int_phys_s=ArmPPI(num=29, int_type='IRQ_TYPE_LEVEL_LOW'),
+ int_phys_ns=ArmPPI(num=30, int_type='IRQ_TYPE_LEVEL_LOW'),
+ int_virt=ArmPPI(num=27, int_type='IRQ_TYPE_LEVEL_LOW'),
+ int_hyp=ArmPPI(num=26, int_type='IRQ_TYPE_LEVEL_LOW'))
generic_timer_mem = GenericTimerMem(cnt_control_base=0x2a430000,
cnt_read_base=0x2a800000,
cnt_ctl_base=0x2a810000,
--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/35397
To unsubscribe, or for help writing mail filters, visit
https://gem5-review.googlesource.com/settings
Gerrit-Project: public/gem5
Gerrit-Branch: develop
Gerrit-Change-Id: I4115d14ba65685627b51b0e5438fe5a3ed9328bc
Gerrit-Change-Number: 35397
Gerrit-PatchSet: 8
Gerrit-Owner: Giacomo Travaglini <[email protected]>
Gerrit-Reviewer: Andreas Sandberg <[email protected]>
Gerrit-Reviewer: Giacomo Travaglini <[email protected]>
Gerrit-Reviewer: kokoro <[email protected]>
Gerrit-MessageType: merged
_______________________________________________
gem5-dev mailing list -- [email protected]
To unsubscribe send an email to [email protected]
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s