diff options
author | Giacomo Travaglini <giacomo.travaglini@arm.com> | 2019-08-09 22:21:34 +0100 |
---|---|---|
committer | Giacomo Travaglini <giacomo.travaglini@arm.com> | 2019-08-12 18:17:45 +0000 |
commit | 91419e36827df52ef7c551f497e0a47fc143e461 (patch) | |
tree | 48fc91ac42dd1371f97298622b69622a312c236d /src/python | |
parent | 00b3d2c5bc05f22d5a4f3c63839a2cf45b4915a0 (diff) | |
download | gem5-91419e36827df52ef7c551f497e0a47fc143e461.tar.xz |
python: FdtState using interrupt-cells
Change-Id: I37813748f518b442d2b53c2bc4f381edb2e26146
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/20050
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Diffstat (limited to 'src/python')
-rw-r--r-- | src/python/m5/util/fdthelper.py | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/src/python/m5/util/fdthelper.py b/src/python/m5/util/fdthelper.py index c8760508c..27d6f844c 100644 --- a/src/python/m5/util/fdthelper.py +++ b/src/python/m5/util/fdthelper.py @@ -1,4 +1,4 @@ -# Copyright (c) 2016 ARM Limited +# Copyright (c) 2016,2019 ARM Limited # All rights reserved. # # The license below extends only to copyright in the software and shall @@ -87,13 +87,14 @@ class FdtState(object): phandle_counter = 0 phandles = dict() - def __init__(self, addr_cells, size_cells, cpu_cells): + def __init__(self, **kwargs): """Instantiate values of this state. The state can only be initialized once.""" - self.addr_cells = addr_cells - self.size_cells = size_cells - self.cpu_cells = cpu_cells + self.addr_cells = kwargs.pop('addr_cells', 0) + self.size_cells = kwargs.pop('size_cells', 0) + self.cpu_cells = kwargs.pop('cpu_cells', 0) + self.interrupt_cells = kwargs.pop('interrupt_cells', 0) def phandle(self, obj): """Return a unique phandle number for a key. The key can be a SimObject @@ -142,6 +143,11 @@ class FdtState(object): state.""" return self.int_to_cells(size, self.size_cells) + def interruptCells(self, interrupt): + """Format an integer type according to the interrupt_cells value + of this state.""" + return self.int_to_cells(interrupt, self.interrupt_cells) + def addrCellsProperty(self): """Return an #address-cells property with the value of this state.""" return FdtPropertyWords("#address-cells", self.addr_cells) @@ -155,6 +161,12 @@ class FdtState(object): of this state.""" return FdtPropertyWords("#address-cells", self.cpu_cells) + def interruptCellsProperty(self): + """Return an #interrupt-cells property for cpu nodes with the value + of this state.""" + return FdtPropertyWords("#interrupt-cells", self.interrupt_cells) + + class FdtNop(pyfdt.FdtNop): """Create an empty node.""" pass |