Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/1421827/?format=api
{ "id": 1421827, "url": "http://patchwork.ozlabs.org/api/patches/1421827/?format=api", "web_url": "http://patchwork.ozlabs.org/project/uboot/patch/20210103092633.36226-13-jernej.skrabec@siol.net/", "project": { "id": 18, "url": "http://patchwork.ozlabs.org/api/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": "<20210103092633.36226-13-jernej.skrabec@siol.net>", "list_archive_url": null, "date": "2021-01-03T09:26:28", "name": "[12/17] sunxi: Add support for H616 SoC", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": false, "hash": "f1286c44bfd3d4a7f4435ac47b5794c3b77ddb56", "submitter": { "id": 70601, "url": "http://patchwork.ozlabs.org/api/people/70601/?format=api", "name": "Jernej Škrabec", "email": "jernej.skrabec@siol.net" }, "delegate": { "id": 114289, "url": "http://patchwork.ozlabs.org/api/users/114289/?format=api", "username": "apritzel", "first_name": "Andre", "last_name": "Przywara", "email": "andre.przywara@arm.com" }, "mbox": "http://patchwork.ozlabs.org/project/uboot/patch/20210103092633.36226-13-jernej.skrabec@siol.net/mbox/", "series": [ { "id": 222511, "url": "http://patchwork.ozlabs.org/api/series/222511/?format=api", "web_url": "http://patchwork.ozlabs.org/project/uboot/list/?series=222511", "date": "2021-01-03T09:26:16", "name": "sunxi: Introduce H616 support", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/222511/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/1421827/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/1421827/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<u-boot-bounces@lists.denx.de>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@bilbo.ozlabs.org", "Authentication-Results": [ "ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de\n (client-ip=85.214.62.61; helo=phobos.denx.de;\n envelope-from=u-boot-bounces@lists.denx.de; receiver=<UNKNOWN>)", "ozlabs.org;\n dmarc=fail (p=none dis=none) header.from=siol.net", "phobos.denx.de;\n dmarc=fail (p=none dis=none) header.from=siol.net", "phobos.denx.de;\n spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de", "phobos.denx.de;\n dmarc=pass (p=none dis=none) header.from=siol.net", "phobos.denx.de;\n spf=pass smtp.mailfrom=jernej.skrabec@siol.net" ], "Received": [ "from phobos.denx.de (phobos.denx.de [85.214.62.61])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange X25519 server-signature RSA-PSS (4096 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 4D7tkD3SrSz9sVn\n\tfor <incoming@patchwork.ozlabs.org>; Sun, 3 Jan 2021 20:29:08 +1100 (AEDT)", "from h2850616.stratoserver.net (localhost [IPv6:::1])\n\tby phobos.denx.de (Postfix) with ESMTP id BF4278269B;\n\tSun, 3 Jan 2021 10:27:21 +0100 (CET)", "by phobos.denx.de (Postfix, from userid 109)\n id 18B8B82699; Sun, 3 Jan 2021 10:27:20 +0100 (CET)", "from mail.siol.net (mailoutvs25.siol.net [185.57.226.216])\n (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n (No client certificate requested)\n by phobos.denx.de (Postfix) with ESMTPS id 2E9DB82676\n for <u-boot@lists.denx.de>; Sun, 3 Jan 2021 10:27:17 +0100 (CET)", "from localhost (localhost [127.0.0.1])\n by mail.siol.net (Zimbra) with ESMTP id BFBF0522D6D;\n Sun, 3 Jan 2021 10:27:16 +0100 (CET)", "from mail.siol.net ([127.0.0.1])\n by localhost (psrvmta12.zcs-production.pri [127.0.0.1]) (amavisd-new,\n port 10032)\n with ESMTP id 49OIQXu259bu; Sun, 3 Jan 2021 10:27:16 +0100 (CET)", "from mail.siol.net (localhost [127.0.0.1])\n by mail.siol.net (Zimbra) with ESMTPS id 62E45522D6C;\n Sun, 3 Jan 2021 10:27:16 +0100 (CET)", "from localhost.localdomain (89-212-178-211.dynamic.t-2.net\n [89.212.178.211]) (Authenticated sender: 031275009)\n by mail.siol.net (Zimbra) with ESMTPSA id 2AD04522D6D;\n Sun, 3 Jan 2021 10:27:14 +0100 (CET)" ], "X-Spam-Checker-Version": "SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de", "X-Spam-Level": "", "X-Spam-Status": "No, score=-2.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_LOW,\n SPF_HELO_NONE autolearn=ham autolearn_force=no version=3.4.2", "From": "Jernej Skrabec <jernej.skrabec@siol.net>", "To": "jagan@amarulasolutions.com,\n\tandre.przywara@arm.com", "Cc": "hdegoede@redhat.com, jernej.skrabec@siol.net, lukma@denx.de, hs@denx.de,\n peng.fan@nxp.com, joe.hershberger@ni.com, jh80.chung@samsung.com,\n u-boot@lists.denx.de, linux-sunxi@googlegroups.com", "Subject": "[PATCH 12/17] sunxi: Add support for H616 SoC", "Date": "Sun, 3 Jan 2021 10:26:28 +0100", "Message-Id": "<20210103092633.36226-13-jernej.skrabec@siol.net>", "X-Mailer": "git-send-email 2.30.0", "In-Reply-To": "<20210103092633.36226-1-jernej.skrabec@siol.net>", "References": "<20210103092633.36226-1-jernej.skrabec@siol.net>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "quoted-printable", "X-BeenThere": "u-boot@lists.denx.de", "X-Mailman-Version": "2.1.34", "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.102.3 at phobos.denx.de", "X-Virus-Status": "Clean" }, "content": "H616 is very similar to H6 so most of the infrastructure can be reused.\nHowever, two big differences are that it doesn't have functional SRAM A2\nwhich is usually used for TF-A and it doesn't have ARISC co-processor.\nIt also needs bigger SPL size - 48 KiB.\n\nSigned-off-by: Jernej Skrabec <jernej.skrabec@siol.net>\n---\n arch/arm/dts/sunxi-u-boot.dtsi | 9 +++++++++\n arch/arm/include/asm/arch-sunxi/cpu_sun50i_h6.h | 7 +++++++\n arch/arm/mach-sunxi/Kconfig | 11 ++++++++++-\n arch/arm/mach-sunxi/cpu_info.c | 2 ++\n drivers/power/Kconfig | 1 +\n include/configs/sunxi-common.h | 10 ++++++++++\n 6 files changed, 39 insertions(+), 1 deletion(-)", "diff": "diff --git a/arch/arm/dts/sunxi-u-boot.dtsi b/arch/arm/dts/sunxi-u-boot.dtsi\nindex c77cf7cacf0c..7e8644f390a8 100644\n--- a/arch/arm/dts/sunxi-u-boot.dtsi\n+++ b/arch/arm/dts/sunxi-u-boot.dtsi\n@@ -3,6 +3,9 @@\n #ifdef CONFIG_MACH_SUN50I_H6\n #define BL31_ADDR 0x104000\n #define SCP_ADDR 0x114000\n+#elif defined(CONFIG_MACH_SUN50I_H616)\n+#define BL31_ADDR 0x40004000\n+#define SCP_ADDR 0x028000\n #else\n #define BL31_ADDR 0x44000\n #define SCP_ADDR 0x50000\n@@ -61,6 +64,7 @@\n \t\t\t\t\t};\n \t\t\t\t};\n \n+#ifndef CONFIG_MACH_SUN50I_H616\n \t\t\t\tscp {\n \t\t\t\t\tdescription = \"SCP firmware\";\n \t\t\t\t\ttype = \"firmware\";\n@@ -73,6 +77,7 @@\n \t\t\t\t\t\tmissing-msg = \"scp-sunxi\";\n \t\t\t\t\t};\n \t\t\t\t};\n+#endif\n \n \t\t\t\t@fdt-SEQ {\n \t\t\t\t\tdescription = \"NAME\";\n@@ -87,7 +92,11 @@\n \t\t\t\t@config-SEQ {\n \t\t\t\t\tdescription = \"NAME\";\n \t\t\t\t\tfirmware = \"atf\";\n+#ifdef CONFIG_MACH_SUN50I_H616\n+\t\t\t\t\tloadables = \"uboot\";\n+#else\n \t\t\t\t\tloadables = \"scp\", \"uboot\";\n+#endif\n \t\t\t\t\tfdt = \"fdt-SEQ\";\n \t\t\t\t};\n \t\t\t};\ndiff --git a/arch/arm/include/asm/arch-sunxi/cpu_sun50i_h6.h b/arch/arm/include/asm/arch-sunxi/cpu_sun50i_h6.h\nindex 6392cb07b472..d9cf8ae04288 100644\n--- a/arch/arm/include/asm/arch-sunxi/cpu_sun50i_h6.h\n+++ b/arch/arm/include/asm/arch-sunxi/cpu_sun50i_h6.h\n@@ -28,13 +28,20 @@\n #define SUNXI_GIC400_BASE\t\t0x03020000\n #define SUNXI_IOMMU_BASE\t\t0x030F0000\n \n+#ifdef CONFIG_MACH_SUN50I_H6\n #define SUNXI_DRAM_COM_BASE\t\t0x04002000\n #define SUNXI_DRAM_CTL0_BASE\t\t0x04003000\n #define SUNXI_DRAM_PHY0_BASE\t\t0x04005000\n+#endif\n #define SUNXI_NFC_BASE\t\t\t0x04011000\n #define SUNXI_MMC0_BASE\t\t\t0x04020000\n #define SUNXI_MMC1_BASE\t\t\t0x04021000\n #define SUNXI_MMC2_BASE\t\t\t0x04022000\n+#ifdef CONFIG_MACH_SUN50I_H616\n+#define SUNXI_DRAM_COM_BASE\t\t0x047FA000\n+#define SUNXI_DRAM_CTL0_BASE\t\t0x047FB000\n+#define SUNXI_DRAM_PHY0_BASE\t\t0x04800000\n+#endif\n \n #define SUNXI_UART0_BASE\t\t0x05000000\n #define SUNXI_UART1_BASE\t\t0x05000400\ndiff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig\nindex 1a5497989f04..859b30d74ceb 100644\n--- a/arch/arm/mach-sunxi/Kconfig\n+++ b/arch/arm/mach-sunxi/Kconfig\n@@ -190,9 +190,10 @@ config MACH_SUNXI_H3_H5\n \tselect SUPPORT_SPL\n \n # TODO: try out A80's 8GiB DRAM space\n+# TODO: H616 supports 4 GiB DRAM space\n config SUNXI_DRAM_MAX_SIZE\n \thex\n-\tdefault 0xC0000000 if MACH_SUN50I || MACH_SUN50I_H5 || MACH_SUN50I_H6\n+\tdefault 0xC0000000 if MACH_SUN50I || MACH_SUN50I_H5 || MACH_SUN50I_H6 || MACH_SUN50I_H616\n \tdefault 0x80000000\n \n choice\n@@ -354,6 +355,12 @@ config MACH_SUN50I_H6\n \tselect PHY_SUN4I_USB\n \tselect DRAM_SUN50I_H6\n \n+config MACH_SUN50I_H616\n+\tbool \"sun50i (Allwinner H616)\"\n+\tselect ARM64\n+\tselect DRAM_SUN50I_H616\n+\tselect SUN50I_GEN_H6\n+\n endchoice\n \n # The sun8i SoCs share a lot, this helps to avoid a lot of \"if A23 || A33\"\n@@ -589,6 +596,7 @@ config SYS_CLK_FREQ\n \tdefault 816000000 if MACH_SUN50I || MACH_SUN50I_H5\n \tdefault 1008000000 if MACH_SUN8I\n \tdefault 1008000000 if MACH_SUN9I\n+\tdefault 1008000000 if MACH_SUN50I_H616\n \n config SYS_CONFIG_NAME\n \tdefault \"sun4i\" if MACH_SUN4I\n@@ -599,6 +607,7 @@ config SYS_CONFIG_NAME\n \tdefault \"sun9i\" if MACH_SUN9I\n \tdefault \"sun50i\" if MACH_SUN50I\n \tdefault \"sun50i\" if MACH_SUN50I_H6\n+\tdefault \"sun50i\" if MACH_SUN50I_H616\n \n config SYS_BOARD\n \tdefault \"sunxi\"\ndiff --git a/arch/arm/mach-sunxi/cpu_info.c b/arch/arm/mach-sunxi/cpu_info.c\nindex 875e5a1a8a8e..ba33ef24300c 100644\n--- a/arch/arm/mach-sunxi/cpu_info.c\n+++ b/arch/arm/mach-sunxi/cpu_info.c\n@@ -99,6 +99,8 @@ int print_cpuinfo(void)\n \tputs(\"CPU: Allwinner H5 (SUN50I)\\n\");\n #elif defined CONFIG_MACH_SUN50I_H6\n \tputs(\"CPU: Allwinner H6 (SUN50I)\\n\");\n+#elif defined CONFIG_MACH_SUN50I_H616\n+\tputs(\"CPU: Allwinner H616 (SUN50I)\\n\");\n #else\n #warning Please update cpu_info.c with correct CPU information\n \tputs(\"CPU: SUNXI Family\\n\");\ndiff --git a/drivers/power/Kconfig b/drivers/power/Kconfig\nindex d17cf2d9112a..c5fbf1f832a9 100644\n--- a/drivers/power/Kconfig\n+++ b/drivers/power/Kconfig\n@@ -13,6 +13,7 @@ choice\n \tdepends on ARCH_SUNXI\n \tdefault AXP209_POWER if MACH_SUN4I || MACH_SUN5I || MACH_SUN7I\n \tdefault AXP221_POWER if MACH_SUN6I || MACH_SUN8I_A23 || MACH_SUN8I_A33 || MACH_SUN8I_R40\n+\tdefault AXP305_POWER if MACH_SUN50I_H616\n \tdefault AXP818_POWER if MACH_SUN8I_A83T\n \tdefault SUNXI_NO_PMIC if MACH_SUNXI_H3_H5 || MACH_SUN50I || MACH_SUN8I_V3S\n \ndiff --git a/include/configs/sunxi-common.h b/include/configs/sunxi-common.h\nindex 203cb10fbabc..6e8f547214d6 100644\n--- a/include/configs/sunxi-common.h\n+++ b/include/configs/sunxi-common.h\n@@ -178,9 +178,14 @@\n #define LOW_LEVEL_SRAM_STACK\t\t0x00018000\n #endif /* !CONFIG_ARM64 */\n #elif CONFIG_SUNXI_SRAM_ADDRESS == 0x20000\n+#ifdef CONFIG_MACH_SUN50I_H616\n+#define CONFIG_SPL_MAX_SIZE\t\t0xbfa0\t\t/* 48 KiB */\n+#define LOW_LEVEL_SRAM_STACK\t\t0x58000\n+#else\n #define CONFIG_SPL_MAX_SIZE\t\t0x7fa0\t\t/* 32 KiB */\n /* end of SRAM A2 on H6 for now */\n #define LOW_LEVEL_SRAM_STACK\t\t0x00118000\n+#endif\n #else\n #define CONFIG_SPL_MAX_SIZE\t\t0x5fa0\t\t/* 24KB on sun4i/sun7i */\n #define LOW_LEVEL_SRAM_STACK\t\t0x00008000\t/* End of sram */\n@@ -188,7 +193,12 @@\n \n #define CONFIG_SPL_STACK\t\tLOW_LEVEL_SRAM_STACK\n \n+/* H616 supports 48 KiB SPL */\n+#ifdef CONFIG_MACH_SUN50I_H616\n+#define CONFIG_SPL_PAD_TO\t\t49152\t\t/* decimal for 'dd' */\n+#else\n #define CONFIG_SPL_PAD_TO\t\t32768\t\t/* decimal for 'dd' */\n+#endif\n \n \n /* I2C */\n", "prefixes": [ "12/17" ] }