Cover Letter Detail
Show a cover letter.
GET /api/covers/2231478/?format=api
{ "id": 2231478, "url": "http://patchwork.ozlabs.org/api/covers/2231478/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/cover/cover.1777571962.git.matyas.bobek@gmail.com/", "project": { "id": 14, "url": "http://patchwork.ozlabs.org/api/projects/14/?format=api", "name": "QEMU Development", "link_name": "qemu-devel", "list_id": "qemu-devel.nongnu.org", "list_email": "qemu-devel@nongnu.org", "web_url": "", "scm_url": "", "webscm_url": "", "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<cover.1777571962.git.matyas.bobek@gmail.com>", "list_archive_url": null, "date": "2026-04-30T18:26:02", "name": "[v3,0/7] hw/arm/sabrelite: Add FlexCAN support", "submitter": { "id": 92267, "url": "http://patchwork.ozlabs.org/api/people/92267/?format=api", "name": "Matyáš Bobek", "email": "matyas.bobek@gmail.com" }, "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/cover/cover.1777571962.git.matyas.bobek@gmail.com/mbox/", "series": [ { "id": 502356, "url": "http://patchwork.ozlabs.org/api/series/502356/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=502356", "date": "2026-04-30T18:26:02", "name": "hw/arm/sabrelite: Add FlexCAN support", "version": 3, "mbox": "http://patchwork.ozlabs.org/series/502356/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/covers/2231478/comments/", "headers": { "Return-Path": "<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=gUEHY34D;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists1p.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)" ], "Received": [ "from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g62hx1ZJnz1yJr\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 01 May 2026 04:27:43 +1000 (AEST)", "from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists1p.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1wIW6d-0006qN-4U; Thu, 30 Apr 2026 14:27:23 -0400", "from eggs.gnu.org ([2001:470:142:3::10])\n by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <matyas.bobek@gmail.com>)\n id 1wIW5i-0006WA-4O\n for qemu-devel@nongnu.org; Thu, 30 Apr 2026 14:26:34 -0400", "from mail-wr1-x434.google.com ([2a00:1450:4864:20::434])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.90_1) (envelope-from <matyas.bobek@gmail.com>)\n id 1wIW5e-0005U7-B4\n for qemu-devel@nongnu.org; Thu, 30 Apr 2026 14:26:24 -0400", "by mail-wr1-x434.google.com with SMTP id\n ffacd0b85a97d-43d7645adbdso885684f8f.1\n for <qemu-devel@nongnu.org>; Thu, 30 Apr 2026 11:26:20 -0700 (PDT)", "from acidburn.pod.cvut.cz (acidburn.pod.cvut.cz. [147.32.90.2])\n by smtp.gmail.com with ESMTPSA id\n ffacd0b85a97d-447b76e5c00sm14674925f8f.25.2026.04.30.11.26.18\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Thu, 30 Apr 2026 11:26:18 -0700 (PDT)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=gmail.com; s=20251104; t=1777573579; x=1778178379; darn=nongnu.org;\n h=content-transfer-encoding:mime-version:message-id:date:subject:cc\n :to:from:from:to:cc:subject:date:message-id:reply-to;\n bh=bVcTOSBzgf8YzSLv34DedErZlS0+u7paIqWok/bj8ko=;\n b=gUEHY34DjmcKm2A5uwQH1ENuQw6OhJSv4jjXKMIbK9LkbjoKIPotFD86wPdehmyfd/\n z3pV9J1mWJ7Q/d+ZgTKzBeKl2j6nuHpVdHB3ZkH5nxrboe2uL1cCfs67UjpHudXGDM72\n Fc91jl9w7mUrxHR3a4Vm7GAWeKXiTaP/25HQm0VQr21MkJlYtsnLGn8+L8lmlRtH1roc\n ASLu0lmaHrftDuOy7HQK/gvqdf/cqxLUr0sWaN2DKJJvJIGboLPMu7y8KxtK2Hvft3Lk\n VluXu8nYKP5egSELbHyGUv62zQ0PB6HjZN/z+khv4SvWqBV1NIibi3gAWoEnMMrB3F6c\n dTiA==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1777573579; x=1778178379;\n h=content-transfer-encoding:mime-version:message-id:date:subject:cc\n :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n :message-id:reply-to;\n bh=bVcTOSBzgf8YzSLv34DedErZlS0+u7paIqWok/bj8ko=;\n b=BcBGcvmZ/1Xji7H26NpxOSU9hOEpx+Q/nnMaZdA/yesXj+5V03MTdgdA42v2tNMQjF\n W1maNaCXDl8Hgo/u5ioVikxlQ7cnDt+A4j5v/KZnQAZQgVHgqgStxY1ttub2aubfNA7b\n tL7up7filnanrBkfqMaSYlCJfLqlUzJNcun4jb0hHFKuDDDKM7OLAEEbB6IS1OPkn0XR\n JktfVjT21nc+DfFa66EyxnwpVgjGChtkI9K6HxMBHaD7KGcbdywAVpR4hkIZjgsyc+LJ\n U+yU8Sbi8C39UmBg2cVG8KD7+3BA+PEU4tgLA6U+Jr1MZVxPYmcoLTkhANM91m6cKPeJ\n 0xgA==", "X-Gm-Message-State": "AOJu0YwY3TPAVQMwA/iwv6jms2WV7SVnsL42cXXWJCwWfJE++OtEfnO0\n qWX/6V2/rTiMs9rtbnBbjMhnUNpKbM9s64QuejURrowwVKo+TPjalP35kKa6C1Pm", "X-Gm-Gg": "AeBDieuJDRoGjvNTdFJSq/KWVQMVAEqC9JWODX4A2/Lio341rxZspy6g0+xC+qhORoW\n KqNK9kozdxNSSrlf7vvd/PPx+d45Xu6uQLXMHrJH50aKJtsP3WjyUUGHFmSzppDwd7mSHFDBVgg\n 4oTpB9ArLh/MKoSICRb2V63R5dYgZMfh5v237W2JP4QShl4YwVw5A4MgdXbL4qeKUh5LVDishOL\n xGcVEw+auUC/i7wlr//502IHi0bVoeQ1UFh8vX/BxoTMoO8la+blGv5aggrsZu9IYnWboJStRIu\n RS4GOxPjcuXzh+V1FdaGkQn3bMP4dCsq82p04X+BLuL+Sm/35CLaaMb3Duu6QaKNH9jRKdsVC1k\n Qd30sjmeAVHnf2LtlsWhvA3UGXRDSdR0SlvB+j1l0LvFiOgxQfGT7SCdHOitRLfD8J0cQyfnbQV\n yVXIINxqB+MKm9IcGMLh1Y+sfSYwJ4sW2VExDeaTJ/cEzaYIkQokiSekdUfhi10YXT", "X-Received": "by 2002:a05:6000:2f8a:b0:441:1cf9:4f06 with SMTP id\n ffacd0b85a97d-4493fed64c0mr6949536f8f.31.1777573579066;\n Thu, 30 Apr 2026 11:26:19 -0700 (PDT)", "From": "=?utf-8?b?TWF0ecOhxaEgQm9iZWs=?= <matyas.bobek@gmail.com>", "To": "qemu-devel@nongnu.org, Matyas Bobek <bobekmat@fel.cvut.cz>,\n Pavel Pisa <pisa@fel.cvut.cz>, Bernhard Beschow <shentey@gmail.com>", "Cc": "qemu-arm@nongnu.org, Marc Kleine-Budde <mkl@pengutronix.de>,\n Oliver Hartkopp <socketcan@hartkopp.net>,\n Nikita Ostrenkov <n.ostrenkov@gmail.com>,\n Peter Maydell <peter.maydell@linaro.org>,\n =?utf-8?b?TWF0ecOhxaEgQm9iZWs=?= <matyas.bobek@gmail.com>", "Subject": "[PATCH v3 0/7] hw/arm/sabrelite: Add FlexCAN support", "Date": "Thu, 30 Apr 2026 20:26:02 +0200", "Message-ID": "<cover.1777571962.git.matyas.bobek@gmail.com>", "X-Mailer": "git-send-email 2.53.0", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=UTF-8", "Content-Transfer-Encoding": "8bit", "Received-SPF": "pass client-ip=2a00:1450:4864:20::434;\n envelope-from=matyas.bobek@gmail.com; helo=mail-wr1-x434.google.com", "X-Spam_score_int": "-20", "X-Spam_score": "-2.1", "X-Spam_bar": "--", "X-Spam_report": "(-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,\n DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001,\n RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,\n SPF_PASS=-0.001 autolearn=ham autolearn_force=no", "X-Spam_action": "no action", "X-BeenThere": "qemu-devel@nongnu.org", "X-Mailman-Version": "2.1.29", "Precedence": "list", "List-Id": "qemu development <qemu-devel.nongnu.org>", "List-Unsubscribe": "<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>", "List-Archive": "<https://lists.nongnu.org/archive/html/qemu-devel>", "List-Post": "<mailto:qemu-devel@nongnu.org>", "List-Help": "<mailto:qemu-devel-request@nongnu.org?subject=help>", "List-Subscribe": "<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>", "Errors-To": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org", "Sender": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org" }, "content": "This series adds emulation of the FlexCAN CAN controller, version 2,\nfound in NXP i.MX6 series SoCs. The controller is integrated into\nfsl-imx6 and the Sabrelite ARM board.\n\nThe chip has two FlexCAN controllers, but the Linux Sabrelite\ndevice tree enables only one by default. Linux kernel with both\ncontrollers enabled has been tested to work properly (using a custom\ndevice tree).\nSee docs/system/devices/can.rst for an example of QEMU command line\ninvocation.\n\nMore information about the implementation can be found in my bachelor\nthesis [1].\n\nThe headers (struct FlexcanRegs and flexcan_regs.h macros) were copied\nfrom the Linux kernel. Marc Kleine-Budde is the copyright holder. He\nhas been kindly asked to provide consent, to confirm his approval for\nthe inclusion of said header fragments into QEMU. The approval is still\npending, hopefully it will be resolved soon. I will update the patchset\non request if another wording/solution for the copyright statement is\nproposed/requested.\n\nChanges from v2:\n- moved variable declarations to the top-of-the-block\n- cleanup\n- removed redundant license boilerplate\n- rebased onto latest master\n- Link to v2: https://lore.kernel.org/qemu-devel/cover.1773866323.git.matyas.bobek@gmail.com/\n\nChanges from v1 to v2:\n- removed DPRINTF (turned into traces or guest errors)\n- removed gotos and unnecessary continues\n- register memory region shortened to actual length w/o padding\n- make flexcan_* fns private\n- used DEVICE(s)->canonical_path instead of allocating new strings\n- changed DEVICE_NATIVE_ENDIAN to DEVICE_LITTLE_ENDIAN\n- removed ugly USE macro\n- used enums instead of define sequences in flexcan.c\n- fixed FlexCAN KConfig conf (fixes build on non-arm-softmmu)\n- fixed style and other issues from Bernhard's review\n- better wording in docs\n- rebased onto latest master\n- Link to v1: https://lore.kernel.org/qemu-devel/cover.1765826753.git.matyas.bobek@gmail.com\n\nThanks Bernhard Beschow for the review and his patience.\nI borrowed some fixes from his flexcan branch at [2].\n\n[1] http://dspace.cvut.cz/bitstream/handle/10467/122654/F3-BP-2025-Bobek-Matyas-BP_Bobek_FlexCAN_final_4.pdf\n[2] https://github.com/shentok/qemu/tree/flexcan\n\nMatyáš Bobek (7):\n hw/arm/sabrelite: Open code DEFINE_MACHINE_ARM\n hw/arm/sabrelite: Introduce class SabreliteMachineState\n hw/misc/imx6_ccm: Add PLL3 and CAN clock\n hw/net/can/flexcan: NXP FlexCAN core emulation\n hw/arm: Plug FlexCAN into FSL_IMX6 and Sabrelite\n tests: Add qtests for FlexCAN\n docs/arm/sabrelite: Mention FlexCAN support\n\n MAINTAINERS | 9 +\n docs/system/arm/sabrelite.rst | 1 +\n docs/system/devices/can.rst | 24 +\n hw/arm/Kconfig | 1 +\n hw/arm/fsl-imx6.c | 29 +\n hw/arm/sabrelite.c | 68 +-\n hw/misc/imx6_ccm.c | 24 +\n hw/misc/trace-events | 2 +\n hw/net/Kconfig | 5 +\n hw/net/can/flexcan.c | 1395 +++++++++++++++++++++++++++++++++\n hw/net/can/flexcan_regs.h | 193 +++++\n hw/net/can/meson.build | 1 +\n hw/net/can/trace-events | 18 +\n include/hw/arm/fsl-imx6.h | 6 +\n include/hw/misc/imx6_ccm.h | 4 +\n include/hw/misc/imx_ccm.h | 1 +\n include/hw/net/flexcan.h | 139 ++++\n tests/qtest/flexcan-test.c | 421 ++++++++++\n tests/qtest/meson.build | 1 +\n 19 files changed, 2332 insertions(+), 10 deletions(-)\n create mode 100644 hw/net/can/flexcan.c\n create mode 100644 hw/net/can/flexcan_regs.h\n create mode 100644 include/hw/net/flexcan.h\n create mode 100644 tests/qtest/flexcan-test.c" }