get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/1.2/patches/2225602/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2225602,
    "url": "http://patchwork.ozlabs.org/api/1.2/patches/2225602/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/uboot/patch/b00091b4415618da4964793a3280970c3eff3d64.1776762022.git.vjardin@free.fr/",
    "project": {
        "id": 18,
        "url": "http://patchwork.ozlabs.org/api/1.2/projects/18/?format=api",
        "name": "U-Boot",
        "link_name": "uboot",
        "list_id": "u-boot.lists.denx.de",
        "list_email": "u-boot@lists.denx.de",
        "web_url": null,
        "scm_url": null,
        "webscm_url": null,
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<b00091b4415618da4964793a3280970c3eff3d64.1776762022.git.vjardin@free.fr>",
    "list_archive_url": null,
    "date": "2026-04-21T09:04:56",
    "name": "[v2,2/5] board: freebox: add Nodebox 10G board support",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "762c7bda9c0c1710fe7391405cb6f82531b65228",
    "submitter": {
        "id": 89131,
        "url": "http://patchwork.ozlabs.org/api/1.2/people/89131/?format=api",
        "name": "Vincent Jardin",
        "email": "vjardin@free.fr"
    },
    "delegate": {
        "id": 1696,
        "url": "http://patchwork.ozlabs.org/api/1.2/users/1696/?format=api",
        "username": "stroese",
        "first_name": "Stefan",
        "last_name": "Roese",
        "email": "sr@denx.de"
    },
    "mbox": "http://patchwork.ozlabs.org/project/uboot/patch/b00091b4415618da4964793a3280970c3eff3d64.1776762022.git.vjardin@free.fr/mbox/",
    "series": [
        {
            "id": 500764,
            "url": "http://patchwork.ozlabs.org/api/1.2/series/500764/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/uboot/list/?series=500764",
            "date": "2026-04-21T09:04:54",
            "name": "NBX10G: Marvell Armada 8040 Nodebox 10G board support",
            "version": 2,
            "mbox": "http://patchwork.ozlabs.org/series/500764/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2225602/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2225602/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<u-boot-bounces@lists.denx.de>",
        "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=free.fr header.i=@free.fr header.a=rsa-sha256\n header.s=smtp-20201208 header.b=ceuK4Glx;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de\n (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de;\n envelope-from=u-boot-bounces@lists.denx.de; receiver=patchwork.ozlabs.org)",
            "phobos.denx.de;\n dmarc=pass (p=quarantine dis=none) header.from=free.fr",
            "phobos.denx.de;\n spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de",
            "phobos.denx.de;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=free.fr header.i=@free.fr header.b=\"ceuK4Glx\";\n\tdkim-atps=neutral",
            "phobos.denx.de;\n dmarc=pass (p=quarantine dis=none) header.from=free.fr",
            "phobos.denx.de; spf=pass smtp.mailfrom=vjardin@free.fr"
        ],
        "Received": [
            "from phobos.denx.de (phobos.denx.de\n [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g0GfP6fmlz1yCv\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 21 Apr 2026 19:05:33 +1000 (AEST)",
            "from h2850616.stratoserver.net (localhost [IPv6:::1])\n\tby phobos.denx.de (Postfix) with ESMTP id B99718441A;\n\tTue, 21 Apr 2026 11:05:26 +0200 (CEST)",
            "by phobos.denx.de (Postfix, from userid 109)\n id 5DEB48441A; Tue, 21 Apr 2026 11:05:25 +0200 (CEST)",
            "from smtp6-g21.free.fr (smtp6-g21.free.fr [212.27.42.6])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits))\n (No client certificate requested)\n by phobos.denx.de (Postfix) with ESMTPS id 21F5F84390\n for <u-boot@lists.denx.de>; Tue, 21 Apr 2026 11:05:23 +0200 (CEST)",
            "from y14 (unknown [IPv6:2a01:e0a:2af:22b0:6ee8:ae48:54aa:4eff])\n (Authenticated sender: vjardin@free.fr)\n by smtp6-g21.free.fr (Postfix) with ESMTPSA id 6276378050C;\n Tue, 21 Apr 2026 11:05:18 +0200 (CEST)"
        ],
        "X-Spam-Checker-Version": "SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de",
        "X-Spam-Level": "",
        "X-Spam-Status": "No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED,\n DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,\n RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,\n SPF_HELO_PASS,SPF_PASS autolearn=ham autolearn_force=no version=3.4.2",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=free.fr;\n s=smtp-20201208; t=1776762322;\n bh=+17s94n4UWUdaOKjUegQ0oOO/kIY+fNzVIobCSshYLU=;\n h=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n b=ceuK4GlxPpc5KCdqgu5QEGpuLIka2ySp/oN8ssV68I7d+LOrS1WZ9Rwdtw6gwLUKs\n ONfe8P4KQ7Qu68GsbiPiX1DQiqkHtGzFawS3gZXyujJh++2TTNwD4d/KWOrRjBW2/Y\n DOelk0xShuvoSSgfqvTN9Yw8Ce8X+VXCXy3RuuNIGY7wqAXESNqZX1SxYUjsC0KiAO\n /1WusVO+TNFrdhuJx1ehfllGPUmfYovFLxso0OzPuQ8MijpvwW/cU+/bs97SEIMT0n\n FspYXDl7mwiv2zNyWt2EWEor3m7MZwXTk4MbZqHuIKESKuG1ODN7KDs4fSqsG6gGFG\n ZicnXPaMc2pPw==",
        "From": "Vincent Jardin <vjardin@free.fr>",
        "To": "u-boot@lists.denx.de",
        "Cc": "Stefan Roese <stefan.roese@mailbox.org>, Tom Rini <trini@konsulko.com>,\n Vincent Jardin <vjardin@free.fr>",
        "Subject": "[PATCH v2 2/5] board: freebox: add Nodebox 10G board support",
        "Date": "Tue, 21 Apr 2026 11:04:56 +0200",
        "Message-ID": "\n <b00091b4415618da4964793a3280970c3eff3d64.1776762022.git.vjardin@free.fr>",
        "X-Mailer": "git-send-email 2.53.0",
        "In-Reply-To": "<cover.1776762022.git.vjardin@free.fr>",
        "References": "<cover.1776762022.git.vjardin@free.fr>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "X-BeenThere": "u-boot@lists.denx.de",
        "X-Mailman-Version": "2.1.39",
        "Precedence": "list",
        "List-Id": "U-Boot discussion <u-boot.lists.denx.de>",
        "List-Unsubscribe": "<https://lists.denx.de/options/u-boot>,\n <mailto:u-boot-request@lists.denx.de?subject=unsubscribe>",
        "List-Archive": "<https://lists.denx.de/pipermail/u-boot/>",
        "List-Post": "<mailto:u-boot@lists.denx.de>",
        "List-Help": "<mailto:u-boot-request@lists.denx.de?subject=help>",
        "List-Subscribe": "<https://lists.denx.de/listinfo/u-boot>,\n <mailto:u-boot-request@lists.denx.de?subject=subscribe>",
        "Errors-To": "u-boot-bounces@lists.denx.de",
        "Sender": "\"U-Boot\" <u-boot-bounces@lists.denx.de>",
        "X-Virus-Scanned": "clamav-milter 0.103.8 at phobos.denx.de",
        "X-Virus-Status": "Clean"
    },
    "content": "Add board support for the Freebox Nodebox 10G based on the Marvell\nArmada 8040 SoC. This board features:\n\n- Quad-core ARMv8 AP806 with dual CP110 companions\n- eMMC storage via Xenon SDHCI controller\n- 1G SGMII Ethernet on CP0 lane 5\n- I2C buses for peripheral access\n- NS16550 UART console at 115200 baud\n\nThe implementation includes:\n- Device tree for the Nodebox 10G hardware\n- Dedicated board directory (board/freebox/nbx10g/)\n- Board-specific Kconfig and defconfig\n\nThe U-Boot comphy bindings (phy-type/phy-speed) differ from the\nmainline Linux PHY framework bindings used by phy-mvebu-cp110-comphy,\nso U-Boot and the kernel each have their own device tree.\n\nSigned-off-by: Vincent Jardin <vjardin@free.fr>\nReviewed-by: Stefan Roese <stefan.roese@mailbox.org>\n---\n arch/arm/dts/Makefile               |   1 +\n arch/arm/dts/armada-8040-nbx.dts    | 259 ++++++++++++++++++++++++++++\n arch/arm/mach-mvebu/Kconfig         |   9 +\n board/freebox/nbx10g/Kconfig        |  12 ++\n board/freebox/nbx10g/MAINTAINERS    |   6 +\n board/freebox/nbx10g/Makefile       |   3 +\n board/freebox/nbx10g/board.c        |  53 ++++++\n configs/mvebu_nbx_88f8040_defconfig |  75 ++++++++\n include/configs/nbx10g.h            |  29 ++++\n 9 files changed, 447 insertions(+)\n create mode 100644 arch/arm/dts/armada-8040-nbx.dts\n create mode 100644 board/freebox/nbx10g/Kconfig\n create mode 100644 board/freebox/nbx10g/MAINTAINERS\n create mode 100644 board/freebox/nbx10g/Makefile\n create mode 100644 board/freebox/nbx10g/board.c\n create mode 100644 configs/mvebu_nbx_88f8040_defconfig\n create mode 100644 include/configs/nbx10g.h",
    "diff": "diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile\nindex bff341d6118..a743fde92df 100644\n--- a/arch/arm/dts/Makefile\n+++ b/arch/arm/dts/Makefile\n@@ -169,6 +169,7 @@ dtb-$(CONFIG_ARCH_MVEBU) +=\t\t\t\\\n \tarmada-8040-clearfog-gt-8k.dtb\t\t\\\n \tarmada-8040-db.dtb\t\t\t\\\n \tarmada-8040-mcbin.dtb\t\t\t\\\n+\tarmada-8040-nbx.dtb\t\t\t\\\n \tarmada-8040-puzzle-m801.dtb\t\t\\\n \tcn9130-db-A.dtb\t\t\t\t\\\n \tcn9130-db-B.dtb\t\t\t\t\\\ndiff --git a/arch/arm/dts/armada-8040-nbx.dts b/arch/arm/dts/armada-8040-nbx.dts\nnew file mode 100644\nindex 00000000000..b8b7298b4f5\n--- /dev/null\n+++ b/arch/arm/dts/armada-8040-nbx.dts\n@@ -0,0 +1,259 @@\n+// SPDX-License-Identifier: GPL-2.0+\n+/*\n+ * Device Tree file for NBX board (Freebox Nodebox10G)\n+ * Based on Marvell Armada 8040 SoC\n+ *\n+ * Copyright (C) 2024\n+ */\n+\n+#include \"armada-8040.dtsi\"\n+\n+/ {\n+\tmodel = \"NBX Armada 8040\";\n+\tcompatible = \"nbx,armada8040\", \"marvell,armada8040\";\n+\n+\tchosen {\n+\t\tstdout-path = \"serial0:115200n8\";\n+\t};\n+\n+\taliases {\n+\t\ti2c0 = &cp0_i2c0;\n+\t\ti2c1 = &cp0_i2c1;\n+\t\tgpio0 = &ap_gpio0;\n+\t\tgpio1 = &cp0_gpio0;\n+\t\tgpio2 = &cp0_gpio1;\n+\t};\n+\n+\tmemory@00000000 {\n+\t\tdevice_type = \"memory\";\n+\t\treg = <0x0 0x0 0x0 0x80000000>;  /* 2GB */\n+\t};\n+};\n+\n+/* AP806 UART - active */\n+&uart0 {\n+\tstatus = \"okay\";\n+};\n+\n+/* AP806 pinctrl */\n+&ap_pinctl {\n+\t/*\n+\t * MPP Bus:\n+\t * eMMC  [0-10]\n+\t * UART0 [11,19]\n+\t */\n+\t\t  /* 0 1 2 3 4 5 6 7 8 9 */\n+\tpin-func = < 1 1 1 1 1 1 1 1 1 1\n+\t\t     1 3 0 0 0 0 0 0 0 3 >;\n+};\n+\n+/* AP806 on-board eMMC */\n+&ap_sdhci0 {\n+\tpinctrl-names = \"default\";\n+\tpinctrl-0 = <&ap_emmc_pins>;\n+\tbus-width = <8>;\n+\tnon-removable;\n+\tstatus = \"okay\";\n+};\n+\n+/* CP0 pinctrl */\n+&cp0_pinctl {\n+\t/*\n+\t * MPP Bus:\n+\t * [0-31]  = 0xff: Keep default CP0_shared_pins\n+\t * [32,34] GE_MDIO/MDC\n+\t * [35-36] I2C1\n+\t * [37-38] I2C0\n+\t * [57-58] MSS I2C\n+\t */\n+\t\t/*   0    1    2    3    4    5    6    7    8    9 */\n+\tpin-func = < 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff\n+\t\t     0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff\n+\t\t     0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff\n+\t\t     0xff 0xff 7    0    7    2    2    2    2    0\n+\t\t     0    0    0    0    0    0    0    0    0    0\n+\t\t     0    0    0    0    0    0    0    2    2    0\n+\t\t     0    0    0 >;\n+\n+\tcp0_smi_pins: cp0-smi-pins {\n+\t\tmarvell,pins = <32 34>;\n+\t\tmarvell,function = <7>;\n+\t};\n+};\n+\n+/* CP0 I2C0 */\n+&cp0_i2c0 {\n+\tpinctrl-names = \"default\";\n+\tpinctrl-0 = <&cp0_i2c0_pins>;\n+\tstatus = \"okay\";\n+\tclock-frequency = <100000>;\n+};\n+\n+/* CP0 I2C1 */\n+&cp0_i2c1 {\n+\tpinctrl-names = \"default\";\n+\tpinctrl-0 = <&cp0_i2c1_pins>;\n+\tstatus = \"okay\";\n+\tclock-frequency = <100000>;\n+};\n+\n+/* CP0 MSS I2C0 - Management SubSystem I2C (pins 57-58, func 2) */\n+&cp0_mss_i2c0 {\n+\tstatus = \"okay\";\n+};\n+\n+/* CP0 MDIO for PHY */\n+&cp0_mdio {\n+\tstatus = \"okay\";\n+\tpinctrl-names = \"default\";\n+\tpinctrl-0 = <&cp0_smi_pins>;\n+\n+\tnbx_phy0: ethernet-phy@0 {\n+\t\treg = <0>;\n+\t};\n+};\n+\n+/* CP0 ComPhy - SerDes configuration */\n+&cp0_comphy {\n+\t/*\n+\t * CP0 Serdes Configuration:\n+\t * Lane 0-3: Unconnected\n+\t * Lane 4:   SFI (10G Ethernet)\n+\t * Lane 5:   SGMII2 (1G Ethernet)\n+\t */\n+\tphy0 {\n+\t\tphy-type = <COMPHY_TYPE_UNCONNECTED>;\n+\t};\n+\tphy1 {\n+\t\tphy-type = <COMPHY_TYPE_UNCONNECTED>;\n+\t};\n+\tphy2 {\n+\t\tphy-type = <COMPHY_TYPE_UNCONNECTED>;\n+\t};\n+\tphy3 {\n+\t\tphy-type = <COMPHY_TYPE_UNCONNECTED>;\n+\t};\n+\tphy4 {\n+\t\tphy-type = <COMPHY_TYPE_SFI0>;\n+\t\tphy-speed = <COMPHY_SPEED_10_3125G>;\n+\t};\n+\tphy5 {\n+\t\tphy-type = <COMPHY_TYPE_SGMII2>;\n+\t\tphy-speed = <COMPHY_SPEED_1_25G>;\n+\t};\n+};\n+\n+/* CP0 Ethernet - only eth2 (MAC3) is active via SGMII */\n+&cp0_ethernet {\n+\tstatus = \"okay\";\n+};\n+\n+&cp0_eth2 {\n+\tstatus = \"okay\";\n+\tphy = <&nbx_phy0>;\n+\tphy-mode = \"sgmii\";\n+};\n+\n+/* CP0 UTMI PHY for USB */\n+&cp0_utmi {\n+\tstatus = \"okay\";\n+};\n+\n+&cp0_utmi0 {\n+\tstatus = \"okay\";\n+};\n+\n+&cp0_utmi1 {\n+\tstatus = \"okay\";\n+};\n+\n+/* CP0 USB3 Host controllers */\n+&cp0_usb3_0 {\n+\tstatus = \"okay\";\n+};\n+\n+&cp0_usb3_1 {\n+\tstatus = \"okay\";\n+};\n+\n+/* CP1 pinctrl */\n+&cp1_pinctl {\n+\t/*\n+\t * MPP Bus:\n+\t * [0-26]  = Unconfigured\n+\t * [27-28] GE_MDIO/MDC\n+\t * [29-30] MSS I2C\n+\t * [31]    = Unconfigured\n+\t * [32-62] = 0xff: Keep default CP1_shared_pins\n+\t */\n+\t\t/*   0    1    2    3    4    5    6    7    8    9 */\n+\tpin-func = < 0x0  0x0  0x0  0x0  0x0  0x0  0x0  0x0  0x0  0x0\n+\t\t     0x0  0x0  0x0  0x0  0x0  0x0  0x0  0x0  0x0  0x0\n+\t\t     0x0  0x0  0x0  0x0  0x0  0x0  0x0  0x8  0x8  0x8\n+\t\t     0x8  0x0  0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff\n+\t\t     0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff\n+\t\t     0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff\n+\t\t     0xff 0xff 0xff>;\n+\n+\tcp1_mss_i2c_pins: cp1-mss-i2c-pins {\n+\t\tmarvell,pins = <29 30>;\n+\t\tmarvell,function = <8>;\n+\t};\n+};\n+\n+/* CP1 MSS I2C0 - Management SubSystem I2C (pins 29-30, func 8) */\n+&cp1_mss_i2c0 {\n+\tstatus = \"okay\";\n+\tpinctrl-names = \"default\";\n+\tpinctrl-0 = <&cp1_mss_i2c_pins>;\n+};\n+\n+/* CP1 ComPhy - SerDes configuration */\n+&cp1_comphy {\n+\t/*\n+\t * CP1 Serdes Configuration:\n+\t * Lane 0:   PCIe x1\n+\t * Lane 1:   USB3 Host\n+\t * Lane 2-3: Unconnected\n+\t * Lane 4:   SFI (10G Ethernet)\n+\t * Lane 5:   Unconnected\n+\t */\n+\tphy0 {\n+\t\tphy-type = <COMPHY_TYPE_PEX0>;\n+\t};\n+\tphy1 {\n+\t\tphy-type = <COMPHY_TYPE_USB3_HOST0>;\n+\t};\n+\tphy2 {\n+\t\tphy-type = <COMPHY_TYPE_UNCONNECTED>;\n+\t};\n+\tphy3 {\n+\t\tphy-type = <COMPHY_TYPE_UNCONNECTED>;\n+\t};\n+\tphy4 {\n+\t\tphy-type = <COMPHY_TYPE_SFI0>;\n+\t\tphy-speed = <COMPHY_SPEED_10_3125G>;\n+\t};\n+\tphy5 {\n+\t\tphy-type = <COMPHY_TYPE_UNCONNECTED>;\n+\t};\n+};\n+\n+/* CP1 PCIe x1 on lane 0 */\n+&cp1_pcie0 {\n+\tstatus = \"okay\";\n+};\n+\n+/* CP1 USB3 Host on lane 1 */\n+&cp1_usb3_0 {\n+\tstatus = \"okay\";\n+};\n+\n+/* CP1 UTMI PHY for USB */\n+&cp1_utmi {\n+\tstatus = \"okay\";\n+};\n+\n+&cp1_utmi0 {\n+\tstatus = \"okay\";\n+};\ndiff --git a/arch/arm/mach-mvebu/Kconfig b/arch/arm/mach-mvebu/Kconfig\nindex 4afaee234ea..86d90cddb0b 100644\n--- a/arch/arm/mach-mvebu/Kconfig\n+++ b/arch/arm/mach-mvebu/Kconfig\n@@ -166,6 +166,14 @@ config TARGET_MVEBU_ARMADA_8K\n \tselect BOARD_LATE_INIT\n \timply SCSI\n \n+config TARGET_NBX10G\n+\tbool \"Support Freebox Nodebox 10G\"\n+\tselect ARMADA_8K\n+\tselect BOARD_LATE_INIT\n+\thelp\n+\t  Enable support for the Freebox Nodebox 10G board based on the\n+\t  Marvell Armada 8040 SoC with dual CP110 companion chips.\n+\n config TARGET_MVEBU_ALLEYCAT5\n \tbool \"Support AlleyCat 5 platforms\"\n \tselect ALLEYCAT_5\n@@ -508,5 +516,6 @@ config ARMADA_32BIT_SYSCON_SYSRESET\n \n source \"board/solidrun/clearfog/Kconfig\"\n source \"board/kobol/helios4/Kconfig\"\n+source \"board/freebox/nbx10g/Kconfig\"\n \n endif\ndiff --git a/board/freebox/nbx10g/Kconfig b/board/freebox/nbx10g/Kconfig\nnew file mode 100644\nindex 00000000000..18a169761b7\n--- /dev/null\n+++ b/board/freebox/nbx10g/Kconfig\n@@ -0,0 +1,12 @@\n+if TARGET_NBX10G\n+\n+config SYS_BOARD\n+\tdefault \"nbx10g\"\n+\n+config SYS_VENDOR\n+\tdefault \"freebox\"\n+\n+config SYS_CONFIG_NAME\n+\tdefault \"nbx10g\"\n+\n+endif\ndiff --git a/board/freebox/nbx10g/MAINTAINERS b/board/freebox/nbx10g/MAINTAINERS\nnew file mode 100644\nindex 00000000000..2e31eed45b9\n--- /dev/null\n+++ b/board/freebox/nbx10g/MAINTAINERS\n@@ -0,0 +1,6 @@\n+NBX10G BOARD\n+M:\tVincent Jardin <vjardin@free.fr>\n+S:\tMaintained\n+F:\tboard/freebox/nbx10g/\n+F:\tconfigs/mvebu_nbx_88f8040_defconfig\n+F:\tarch/arm/dts/armada-8040-nbx*\ndiff --git a/board/freebox/nbx10g/Makefile b/board/freebox/nbx10g/Makefile\nnew file mode 100644\nindex 00000000000..bf83bdf63ee\n--- /dev/null\n+++ b/board/freebox/nbx10g/Makefile\n@@ -0,0 +1,3 @@\n+# SPDX-License-Identifier: GPL-2.0+\n+\n+obj-y\t:= board.o\ndiff --git a/board/freebox/nbx10g/board.c b/board/freebox/nbx10g/board.c\nnew file mode 100644\nindex 00000000000..7d16010ec7e\n--- /dev/null\n+++ b/board/freebox/nbx10g/board.c\n@@ -0,0 +1,53 @@\n+// SPDX-License-Identifier: GPL-2.0+\n+/*\n+ * Copyright (C) 2017-2018 Freebox SA\n+ * Copyright (C) 2026 Free Mobile, Vincent Jardin <vjardin@free.fr>\n+ *\n+ * Freebox Nodebox 10G board support\n+ */\n+\n+#include <init.h>\n+#include <asm/gpio.h>\n+#include <linux/delay.h>\n+\n+/* Management PHY reset GPIO */\n+#define NBX_PHY_RESET_GPIO\t83\n+\n+/* Nodebox 10G ASCII art logo */\n+static const char * const nbx_logo =\n+\t\"  _   _           _      _                 __  ___   _____\\n\"\n+\t\" | \\\\ | |         | |    | |               /_ |/ _ \\\\ / ____|\\n\"\n+\t\" |  \\\\| | ___   __| | ___| |__   _____  __  | | | | | |  __\\n\"\n+\t\" | . ` |/ _ \\\\ / _` |/ _ \\\\ '_ \\\\ / _ \\\\ \\\\/ /  | | | | | | |_ |\\n\"\n+\t\" | |\\\\  | (_) | (_| |  __/ |_) | (_) >  <   | | |_| | |__| |\\n\"\n+\t\" |_| \\\\_|\\\\___/ \\\\__,_|\\\\___|_.__/ \\\\___/_/\\\\_\\\\  |_|\\\\___/ \\\\_____|\\n\";\n+\n+int checkboard(void)\n+{\n+\tprintf(\"%s\\n\", nbx_logo);\n+\treturn 0;\n+}\n+\n+int board_init(void)\n+{\n+\treturn 0;\n+}\n+\n+int board_late_init(void)\n+{\n+\tint ret;\n+\n+\t/* Reset the management PHY */\n+\tret = gpio_request(NBX_PHY_RESET_GPIO, \"phy-reset\");\n+\tif (ret) {\n+\t\tprintf(\"Failed to request PHY reset GPIO: %d\\n\", ret);\n+\t\treturn 0;\n+\t}\n+\n+\tgpio_direction_output(NBX_PHY_RESET_GPIO, 0);\n+\tmdelay(100);\n+\tgpio_set_value(NBX_PHY_RESET_GPIO, 1);\n+\tmdelay(100);\n+\n+\treturn 0;\n+}\ndiff --git a/configs/mvebu_nbx_88f8040_defconfig b/configs/mvebu_nbx_88f8040_defconfig\nnew file mode 100644\nindex 00000000000..85a3086d6a0\n--- /dev/null\n+++ b/configs/mvebu_nbx_88f8040_defconfig\n@@ -0,0 +1,75 @@\n+CONFIG_ARM=y\n+CONFIG_ARCH_CPU_INIT=y\n+CONFIG_ARCH_MVEBU=y\n+CONFIG_TEXT_BASE=0x00000000\n+CONFIG_NR_DRAM_BANKS=2\n+CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y\n+CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0xff0000\n+CONFIG_TARGET_NBX10G=y\n+CONFIG_ENV_SIZE=0x10000\n+CONFIG_ENV_OFFSET=0x180000\n+CONFIG_DM_GPIO=y\n+CONFIG_DEFAULT_DEVICE_TREE=\"armada-8040-nbx\"\n+CONFIG_FIT=y\n+CONFIG_SYS_BOOTM_LEN=0x1000000\n+CONFIG_SYS_LOAD_ADDR=0x800000\n+CONFIG_PCI=y\n+# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set\n+# CONFIG_EFI_LOADER is not set\n+CONFIG_USE_PREBOOT=y\n+CONFIG_PREBOOT=\"echo (CRC warning is normal: no env saved yet)\"\n+CONFIG_SYS_PBSIZE=1048\n+CONFIG_SYS_CONSOLE_INFO_QUIET=y\n+CONFIG_LAST_STAGE_INIT=y\n+CONFIG_SYS_PROMPT=\"nodebox10G>> \"\n+CONFIG_SYS_MAXARGS=32\n+CONFIG_CMD_BOOTZ=y\n+# CONFIG_BOOTM_VXWORKS is not set\n+# CONFIG_CMD_ELF is not set\n+CONFIG_CMD_MEMTEST=y\n+CONFIG_CMD_GPIO=y\n+CONFIG_CMD_I2C=y\n+CONFIG_CMD_MISC=y\n+CONFIG_CMD_MMC=y\n+CONFIG_CMD_PCI=y\n+# CONFIG_CMD_SF is not set\n+CONFIG_CMD_USB=y\n+CONFIG_CMD_DHCP=y\n+CONFIG_CMD_MII=y\n+CONFIG_CMD_PING=y\n+CONFIG_CMD_CACHE=y\n+CONFIG_CMD_TIME=y\n+CONFIG_CMD_TIMER=y\n+CONFIG_CMD_NBX_EMMCBOOT=y\n+CONFIG_CMD_NBX_FBXSERIAL=y\n+CONFIG_CMD_EXT2=y\n+CONFIG_CMD_EXT4=y\n+CONFIG_CMD_EXT4_WRITE=y\n+CONFIG_CMD_FAT=y\n+CONFIG_CMD_FS_GENERIC=y\n+CONFIG_EFI_PARTITION=y\n+CONFIG_ENV_OVERWRITE=y\n+CONFIG_ENV_IS_IN_MMC=y\n+CONFIG_ENV_RELOC_GD_ENV_ADDR=y\n+CONFIG_ARP_TIMEOUT=200\n+CONFIG_NET_RETRY_COUNT=50\n+CONFIG_NET_RANDOM_ETHADDR=y\n+CONFIG_DM_I2C=y\n+CONFIG_SYS_I2C_MVTWSI=y\n+CONFIG_I2C_MUX=y\n+CONFIG_MISC=y\n+CONFIG_MMC_SDHCI=y\n+CONFIG_MMC_SDHCI_XENON=y\n+# CONFIG_SPI_FLASH is not set\n+CONFIG_PHY_MARVELL=y\n+CONFIG_PHY_GIGE=y\n+CONFIG_MVPP2=y\n+CONFIG_PCIE_DW_MVEBU=y\n+CONFIG_PHY=y\n+CONFIG_MVEBU_COMPHY_SUPPORT=y\n+CONFIG_PINCTRL=y\n+CONFIG_PINCTRL_ARMADA_8K=y\n+CONFIG_SYS_NS16550=y\n+CONFIG_USB=y\n+CONFIG_USB_XHCI_HCD=y\n+CONFIG_USB_STORAGE=y\ndiff --git a/include/configs/nbx10g.h b/include/configs/nbx10g.h\nnew file mode 100644\nindex 00000000000..bd083b7e7d8\n--- /dev/null\n+++ b/include/configs/nbx10g.h\n@@ -0,0 +1,29 @@\n+/* SPDX-License-Identifier: GPL-2.0+ */\n+/*\n+ * Copyright (C) 2017-2018 Freebox SA\n+ * Copyright (C) 2026 Free Mobile, Vincent Jardin <vjardin@free.fr>\n+ *\n+ * Configuration for Freebox Nodebox 10G\n+ */\n+\n+#ifndef _CONFIG_NBX10G_H\n+#define _CONFIG_NBX10G_H\n+\n+#include \"mvebu_armada-8k.h\"\n+\n+/* Override environment settings for NBX */\n+#undef CFG_EXTRA_ENV_SETTINGS\n+#define CFG_EXTRA_ENV_SETTINGS \\\n+\t\"hostname=nodebox10G\\0\" \\\n+\t\"ethrotate=no\\0\" \\\n+\t\"image_addr=0x7000000\\0\" \\\n+\t\"image_name=Image.nodebox10G\\0\" \\\n+\t\"fdt_addr=0x6f00000\\0\" \\\n+\t\"fdt_name=nodebox10G.dtb\\0\" \\\n+\t\"console=ttyS0,115200\\0\" \\\n+\t\"tftpboot=setenv bootargs console=${console} bank=tftp; \" \\\n+\t\t\"dhcp ${image_addr} ${image_name}; \" \\\n+\t\t\"tftp ${fdt_addr} ${fdt_name}; \" \\\n+\t\t\"booti ${image_addr} - ${fdt_addr}\\0\"\n+\n+#endif /* _CONFIG_NBX10G_H */\n",
    "prefixes": [
        "v2",
        "2/5"
    ]
}