Hi, This patch implements CANFD controller for xlnx-versal-virt machine. There are two controllers CANFD0@0xFF06_0000 and CANFD1@0xFF07_0000 are connected to the machine.
Also, added basic qtests for data exchange between both the controllers in various supported configs. Changelog: v3->v4: Address formatting related feedback from Peter. Correct dlc byte data storing if dlc is not a multiple of 4. Remove unnecessary LOG_GUEST_ERROR. Remove instance_finalize(canfd_finalize) function. Remove unused member of struct XlnxVersalCANFDState. v2->v3: Corrected reg2frame(). Added assert to prevent out of bound cases. Replace tx_id link list with GSList and removed sorting function. Replaced PTIMER_POLICY_LEGACY with proper timer policies. Corrected minor code format issues. v1->v2 Update xlnx-versal-virt.rst with CANFD examples and add this in 03/05 patch. Addressed comments for patch 02/05 and 03/05. Add reviewed-by tags for patch 01/05, 04/05 and 05/05. Change commit message for patch 02/05. Add SPDX license for Qtest. Regards, Vikram Vikram Garhwal (4): MAINTAINERS: Include canfd tests under Xilinx CAN hw/net/can: Introduce Xilinx Versal CANFD controller xlnx-versal: Connect Xilinx VERSAL CANFD controllers tests/qtest: Introduce tests for Xilinx VERSAL CANFD controller MAINTAINERS | 2 +- docs/system/arm/xlnx-versal-virt.rst | 31 + hw/arm/xlnx-versal-virt.c | 48 + hw/arm/xlnx-versal.c | 37 + hw/net/can/meson.build | 1 + hw/net/can/trace-events | 7 + hw/net/can/xlnx-versal-canfd.c | 2115 ++++++++++++++++++++++++++ include/hw/arm/xlnx-versal.h | 12 + include/hw/net/xlnx-versal-canfd.h | 87 ++ tests/qtest/meson.build | 1 + tests/qtest/xlnx-canfd-test.c | 423 ++++++ 11 files changed, 2763 insertions(+), 1 deletion(-) create mode 100644 hw/net/can/xlnx-versal-canfd.c create mode 100644 include/hw/net/xlnx-versal-canfd.h create mode 100644 tests/qtest/xlnx-canfd-test.c -- 2.17.1