mirror of
https://git.rwth-aachen.de/acs/public/villas/node/
synced 2025-03-09 00:00:00 +01:00
fpga: make hwdef-parse.py correctly detect interrupt on zynq designs
Signed-off-by: Niklas Eiling <niklas.eiling@eonerc.rwth-aachen.de>
This commit is contained in:
parent
9bf8f24695
commit
16b6a21512
3 changed files with 33 additions and 11 deletions
|
@ -164,6 +164,9 @@
|
|||
"edk_iptype": "PERIPHERAL",
|
||||
"c_baseaddr": 2684551168,
|
||||
"c_highaddr": 2684616703
|
||||
},
|
||||
"irqs": {
|
||||
"iic2intc_irpt": "zynq_zynq_ultra_ps_e_0:2"
|
||||
}
|
||||
},
|
||||
"axis_interconnect_0_xbar": {
|
||||
|
@ -683,7 +686,11 @@
|
|||
"target": "axis_interconnect_0_xbar:M00_AXIS",
|
||||
"name": "S2MM"
|
||||
}
|
||||
]
|
||||
],
|
||||
"irqs": {
|
||||
"mm2s_introut": "zynq_zynq_ultra_ps_e_0:0",
|
||||
"s2mm_introut": "zynq_zynq_ultra_ps_e_0:1"
|
||||
}
|
||||
},
|
||||
"zynq_axi_read_cache_0": {
|
||||
"vlnv": "xilinx.com:module_ref:axi_read_cache:1.0",
|
||||
|
|
|
@ -155,7 +155,7 @@ bool fpga::ConnectString::configCrossBar(
|
|||
}
|
||||
|
||||
auto dinoAdc = std::dynamic_pointer_cast<fpga::ip::DinoAdc>(
|
||||
card->lookupIp(fpga::Vlnv("xilinx.com:module_ref:dinoif_fast:")));
|
||||
card->lookupIp(fpga::Vlnv("xilinx.com:module_ref:dinoif_adc:")));
|
||||
if (dinoAdc == nullptr) {
|
||||
logger->warn("No Dino ADC found on FPGA ");
|
||||
}
|
||||
|
@ -209,6 +209,7 @@ bool fpga::ConnectString::configCrossBar(
|
|||
}
|
||||
dest->connect(dest->getDefaultMasterPort(), src->getDefaultSlavePort());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void fpga::setupColorHandling() {
|
||||
|
|
|
@ -6,10 +6,12 @@ Author: Steffen Vogel <post@steffenvogel.de>
|
|||
Author: Daniel Krebs <github@daniel-krebs.net>
|
||||
Author: Hatim Kanchwala <hatim@hatimak.me>
|
||||
Author: Pascal Bauer <pascal.bauer@rwth-aachen.de>
|
||||
Author: Niklas Eiling <niklas.eiling@eonerc.rwth-aachen.de
|
||||
SPDX-FileCopyrightText: 2017-2022 Steffen Vogel <post@steffenvogel.de>
|
||||
SPDX-FileCopyrightText: 2017-2022 Daniel Krebs <github@daniel-krebs.net>
|
||||
SPDX-FileCopyrightText: 2017-2022 Hatim Kanchwala <hatim@hatimak.me>
|
||||
SPDX-FileCopyrightText: 2023 Pascal Bauer <pascal.bauer@rwth-aachen.de>
|
||||
SPDX-FileCopyrightText: 2024 Niklas Eiling <niklas.eiling@eonerc.rwth-aachen.de>
|
||||
SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
|
@ -256,14 +258,26 @@ for busif in busifs:
|
|||
ips[switch.get("INSTANCE")]["num_ports"] = int(switch_ports / 2)
|
||||
|
||||
# find interrupt assignments
|
||||
intc = root.find('.//MODULE[@MODTYPE="axi_pcie_intc"]')
|
||||
if intc is not None:
|
||||
intr = intc.xpath('.//PORT[@NAME="intr" and @DIR="I"]')[0]
|
||||
concat = root.xpath(
|
||||
'.//MODULE[@MODTYPE="xlconcat" and .//PORT[@SIGNAME="{}" and @DIR="O"]]'.format(
|
||||
intr.get("SIGNAME")
|
||||
)
|
||||
)[0]
|
||||
|
||||
|
||||
|
||||
# find interrupt assignments
|
||||
intr_controllers = []
|
||||
intr_signals = []
|
||||
|
||||
intc_pcie = root.findall('.//MODULE[@MODTYPE="axi_pcie_intc"]')
|
||||
intc_zynq = root.findall('.//MODULE[@MODTYPE="zynq_ultra_ps_e"]')
|
||||
|
||||
intr_controllers += intc_pcie
|
||||
for intc in intc_pcie:
|
||||
intr_signals.append(intc.xpath('.//PORT[@NAME="intr" and @DIR="I"]')[0].get("SIGNAME"))
|
||||
|
||||
intr_controllers += intc_zynq
|
||||
for intc in intc_zynq:
|
||||
intr_signals.append(intc.xpath('.//PORT[@NAME="pl_ps_irq0" and @DIR="I"]')[0].get("SIGNAME"))
|
||||
|
||||
for intc, intr in zip(intr_controllers, intr_signals):
|
||||
concat = root.xpath('.//MODULE[@MODTYPE="xlconcat" and .//PORT[@SIGNAME="{}" and @DIR="O"]]'.format(intr))[0]
|
||||
ports = concat.xpath('.//PORT[@DIR="I"]')
|
||||
|
||||
for port in ports:
|
||||
|
|
Loading…
Add table
Reference in a new issue