bleh. add XICS_ICS and XICS_ICP but the patch is
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Thu, 14 Apr 2022 13:42:45 +0000 (14:42 +0100)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Thu, 14 Apr 2022 13:42:45 +0000 (14:42 +0100)
commitb9c0f4568515743e463391a72728ea8ed4fe45f2
treeed4e524b0eaee00b0aecc4df1428789882fecae8
parent99b2b4f6afb85d5e4e9a8dded916ac0952286dfe
bleh. add XICS_ICS and XICS_ICP but the patch is
a little bigger than expected.
note that a bug ECP5CRG(clk_freq, dram_clk_freq=None, pod_bits=pod_bits)
is also fixed here (whoops)

firstly, the XICS ICP and ICS need adding. but, they are
using make_wb_layout not wishbone.Interface.  therefore,
create a wishbone.Interface (sigh) and map the Signals across
one by one (just like with cvtuartbus)

secondly, the incoming IRQs are wired to GenericInterruptController
which is different from how Testissuer does it.

thirdly, eth_macs IRQ number is moved to 1 in order to match with
the Microwatt soc.vhdl

fourthly, uart_irq is set to 0

fifthly, UART16550 and EthMac needed to have their IRQLine
constructed *here* and passed in, otherwise the entire soc repo
becomes dependent on LambdaSoC just for that one import

sixthly, at the same time, DDRSoC has a uart_addr-0xc0002000 added
to match what soc.vhdl does

seventhly, eth0_cfg_addr is moved to 0xc000_c000 to get it out
of the way of XICS_ICP/ICS at 0xc000_4000 and 0xc000_5000

eigthly, xicx icp/ics are added at 0xc000_4000 and 0xc000_5000

totally broke the "one-purpose, one-commit" rule but not entirely
because after all this is "add XICS controller
src/ls2.py