def METHOD_NAME(self, state):
    node = self.generateBasicPioDeviceNode(
        state, "plic", self.pio_addr, self.pio_size
    )
    int_state = FdtState(addr_cells=0, interrupt_cells=1)
    node.append(int_state.addrCellsProperty())
    node.append(int_state.interruptCellsProperty())
    phandle = int_state.phandle(self)
    node.append(FdtPropertyWords("phandle", [phandle]))
    node.append(FdtPropertyWords("riscv,ndev", [self.n_src - 1]))
    cpus = self.system.unproxy(self).cpu
    int_extended = list()
    for cpu in cpus:
        phandle = int_state.phandle(cpu)
        int_extended.append(phandle)
        int_extended.append(0xB)
        int_extended.append(phandle)
        int_extended.append(0x9)
    node.append(FdtPropertyWords("interrupts-extended", int_extended))
    node.append(FdtProperty("interrupt-controller"))
    node.appendCompatible(["riscv,plic0"])
    yield node