mbox series

[v3,0/7] CTU CAN FD core support

Message ID cover.1600069689.git.pisa@cmp.felk.cvut.cz (mailing list archive)
Headers show
Series CTU CAN FD core support | expand

Message

Pavel Pisa Sept. 14, 2020, 8:09 a.m. UTC
CTU CAN FD is an open source soft core written in VHDL.
It originated in 2015 as Ondrej Ille's project at the
Department of Measurement of FEE at CTU.

Integration for Xilinx Zynq and Intel based SoCs is available
as well as support for PCIe integration of the core.

The core sources

  https://gitlab.fel.cvut.cz/canbus/ctucanfd_ip_core

The controller model and QEMU CAN subsystem extension to CAN FD
has been implemented in frame of bachelor theses of Jan Charvat.
The development branch ctu-canfd in CTU local project repository

  https://gitlab.fel.cvut.cz/canbus/qemu-canbus

More CAN bus related project from Czech Technical University
in Prague, Faculty of Electrical Engineering at

  http://canbus.pages.fel.cvut.cz/

Patches v3 updates:

 - resend triggered by switch to DECLARE_INSTANCE_CHECKER
   in mainline. I try to follow mainline as time allows.

 - SJA1000, CTU CAN FD and SocketCAN support retested
   with QEMU mainline from 9/12/20 10:17 PM

 - Added Reviewed-by: Vikram Garhwal
   to reviewed and tested patches which are used as common
   CAN FD base at Xilinx

 - Added Vikram Garhwal to MAINTAINERS file as the second person
   who has interrest in QEMU CAN (FD) support and would
   like to be notified about changes and help with reviews.

 - excuse massive TO/CC list but I do not know who has and who
   does not interrest in the series. If you sent me that
   it is unwanted load for you to be patch series addressees,
   I would remove you from my git send command arguments.

Patches v2 updates:

 - CTU CAN FD IP core emulation tested on x86 host
   with big-endian MIPS MALTA target as well.
   This helped t correct Linux driver to support
   big-endian systems.

 - CTU CAN FD IP core emulation updated to pass CAN frame
   data correctly on big-endian host systems. Big-endian
   host not tested, would required whole QEMU build
   for MIPS MALTA or big-endian POWER and run it nested
   emulation, because I have no access to Linux based big-endian
   system capable for QEMU build.

 - Makefile.objs changes applied to meson.build and Kconfig.

 - The common CAN support update for CAN FD tested and reviewed
   by Vikram Garhwal from Xilinx. They base their CAN FD
   controllers emulation on our work.

 - Vikram Garhwal agrees to help with common QEMU CAN bus
   infrastructure reviews. I add him and myself into maintainers.

 - Corrected SJA1000 dependencies in Kconfig after (probably)
   automated switch to meson build from make build.

Please, let me know if somebody from recipients list does
no longer have interrest in QEMU CAN bus emulation
and I would remove you from recipients list to not load
you by uniteresting content in future.


Jan Charvat (5):
  net/can: Initial host SocketCan support for CAN FD.
  hw/net/can: sja1000 ignore CAN FD frames
  net/can: Add can_dlc2len and can_len2dlc for CAN FD.
  hw/net/can/ctucafd: Add CTU CAN FD core register definitions.
  hw/net/can: CTU CAN FD IP open hardware core emulation.

Pavel Pisa (2):
  hw/net/can: Documentation for CTU CAN FD IP open hardware core
    emulation.
  hw/net/can: Correct Kconfig dependencies after switch to meson build.

 MAINTAINERS                   |   9 +
 docs/can.txt                  | 113 +++-
 hw/net/Kconfig                |  16 +-
 hw/net/can/can_sja1000.c      |  31 +-
 hw/net/can/ctu_can_fd_frame.h | 189 +++++++
 hw/net/can/ctu_can_fd_regs.h  | 971 ++++++++++++++++++++++++++++++++++
 hw/net/can/ctucan_core.c      | 696 ++++++++++++++++++++++++
 hw/net/can/ctucan_core.h      | 127 +++++
 hw/net/can/ctucan_pci.c       | 281 ++++++++++
 hw/net/can/meson.build        |   2 +
 include/net/can_emu.h         |  12 +-
 net/can/can_core.c            |  36 ++
 net/can/can_socketcan.c       |  47 +-
 13 files changed, 2506 insertions(+), 24 deletions(-)
 create mode 100644 hw/net/can/ctu_can_fd_frame.h
 create mode 100644 hw/net/can/ctu_can_fd_regs.h
 create mode 100644 hw/net/can/ctucan_core.c
 create mode 100644 hw/net/can/ctucan_core.h
 create mode 100644 hw/net/can/ctucan_pci.c