0a1,12
> # Copyright (c) 2012-2016 ARM Limited
> # All rights reserved.
> #
> # The license below extends only to copyright in the software and shall
> # not be construed as granting a license to any other intellectual
> # property including but not limited to intellectual property relating
> # to a hardware implementation of the functionality of the software
> # licensed hereunder. You may use the software subject to the license
> # terms below provided that you ensure that this notice is replicated
> # unmodified and in its entirety in all distributions of the software,
> # modified or unmodified, in source code or in binary form.
> #
27a40
> # Glenn Bergmans
30a44
> from m5.util.fdthelper import *
39a54,72
> def generateBasicPioDeviceNode(self, state, name, pio_addr,
> size, interrupts = None):
> node = FdtNode("%s@%x" % (name, long(pio_addr)))
> node.append(FdtPropertyWords("reg",
> state.addrCells(pio_addr) +
> state.sizeCells(size) ))
>
> if interrupts:
> if any([i < 32 for i in interrupts]):
> raise(("Interrupt number smaller than 32 "+
> " in PioDevice %s") % name)
>
> # subtracting 32 because Linux assumes that SPIs start at 0, while
> # gem5 uses the internal GIC numbering (SPIs start at 32)
> node.append(FdtPropertyWords("interrupts", sum(
> [[0, i - 32, 4] for i in interrupts], []) ))
>
> return node
>