From: "Matyáš Bobek" <matyas.bobek@gmail.com>
To: qemu-devel@nongnu.org, Matyas Bobek <bobekmat@fel.cvut.cz>,
Pavel Pisa <pisa@fel.cvut.cz>,
Bernhard Beschow <shentey@gmail.com>
Cc: "Marc Kleine-Budde" <mkl@pengutronix.de>,
"Oliver Hartkopp" <socketcan@hartkopp.net>,
"Nikita Ostrenkov" <n.ostrenkov@gmail.com>,
"Peter Maydell" <peter.maydell@linaro.org>,
"Matyáš Bobek" <matyas.bobek@gmail.com>
Subject: [PATCH v1 0/6] hw/arm/sabrelite: Add FlexCAN support
Date: Mon, 15 Dec 2025 21:03:09 +0100 [thread overview]
Message-ID: <cover.1765826753.git.matyas.bobek@gmail.com> (raw)
This series adds emulation of the FlexCAN CAN controller, version 2,
found in NXP i.MX6 series SoCs. The controller is integrated into
fsl-imx6 and the Sabrelite ARM board.
The chip has two FlexCAN controllers, but the Linux Sabrelite
device tree enables only one by default. Linux kernel with both
controllers enabled has been tested to work properly (using a custom
device tree).
See docs/system/devices/can.rst for an example of QEMU command line
invocation.
More information about the implementation can be found in my bachelor
thesis [1].
[1] http://dspace.cvut.cz/bitstream/handle/10467/122654/F3-BP-2025-Bobek-Matyas-BP_Bobek_FlexCAN_final_4.pdf
Matyáš Bobek (6):
hw/arm/sabrelite: Convert machine to full class
hw/misc/imx6_ccm: Add PLL3 and CAN clock
hw/net/can/flexcan: NXP FlexCAN core emulation
hw/arm: Plug FlexCAN into FSL_IMX6 and Sabrelite
tests: Add qtests for FlexCAN
docs/arm/sabrelite: Mention FlexCAN support
MAINTAINERS | 2 +
docs/system/arm/sabrelite.rst | 1 +
docs/system/devices/can.rst | 20 +
hw/arm/Kconfig | 1 +
hw/arm/fsl-imx6.c | 29 +
hw/arm/sabrelite.c | 70 +-
hw/misc/imx6_ccm.c | 24 +
hw/misc/trace-events | 2 +
hw/net/Kconfig | 5 +
hw/net/can/flexcan.c | 1469 +++++++++++++++++++++++++++++++++
hw/net/can/flexcan_regs.h | 188 +++++
hw/net/can/meson.build | 1 +
hw/net/can/trace-events | 18 +
include/hw/arm/fsl-imx6.h | 7 +
include/hw/misc/imx6_ccm.h | 4 +
include/hw/misc/imx_ccm.h | 1 +
include/hw/net/flexcan.h | 153 ++++
tests/qtest/flexcan-test.c | 411 +++++++++
tests/qtest/meson.build | 1 +
19 files changed, 2397 insertions(+), 10 deletions(-)
create mode 100644 hw/net/can/flexcan.c
create mode 100644 hw/net/can/flexcan_regs.h
create mode 100644 include/hw/net/flexcan.h
create mode 100644 tests/qtest/flexcan-test.c
--
2.52.0
next reply other threads:[~2025-12-15 20:05 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-12-15 20:03 Matyáš Bobek [this message]
2025-12-15 20:03 ` [PATCH v1 1/6] hw/arm/sabrelite: Convert machine to full class Matyáš Bobek
2025-12-15 20:03 ` [PATCH v1 2/6] hw/misc/imx6_ccm: Add PLL3 and CAN clock Matyáš Bobek
2025-12-15 20:03 ` [PATCH v1 3/6] hw/net/can/flexcan: NXP FlexCAN core emulation Matyáš Bobek
2025-12-15 20:03 ` [PATCH v1 4/6] hw/arm: Plug FlexCAN into FSL_IMX6 and Sabrelite Matyáš Bobek
2025-12-15 20:03 ` [PATCH v1 5/6] tests: Add qtests for FlexCAN Matyáš Bobek
2025-12-15 20:03 ` [PATCH v1 6/6] docs/arm/sabrelite: Mention FlexCAN support Matyáš Bobek
2025-12-16 0:44 ` [PATCH v1 0/6] hw/arm/sabrelite: Add " Pavel Pisa
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1765826753.git.matyas.bobek@gmail.com \
--to=matyas.bobek@gmail.com \
--cc=bobekmat@fel.cvut.cz \
--cc=mkl@pengutronix.de \
--cc=n.ostrenkov@gmail.com \
--cc=peter.maydell@linaro.org \
--cc=pisa@fel.cvut.cz \
--cc=qemu-devel@nongnu.org \
--cc=shentey@gmail.com \
--cc=socketcan@hartkopp.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).