From ce18c50c5de8b82d69e393353d9ff438f1e59e5a Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Tue, 15 Dec 2020 18:07:49 +0000 Subject: [PATCH] 2021.01 RC3, latest proposed RPi-400 patch, UEFI boot fixes --- AllWinner-PinePhone.patch | 1843 ----------------- AllWinner-PineTab.patch | 493 ----- AllWinner-UpstreamSync.patch | 1297 ------------ ...erry-Pi-400-Compute-Module-4-support.patch | 1277 +++++++++--- aarch64-boards | 4 + arm-boards | 9 + ...b-specific-bits-to-it-s-specific-u-b.patch | 104 - rockchip-Pinebook-Pro-Fix-USB.patch | 39 - sources | 2 +- uboot-tools.spec | 20 +- 10 files changed, 1032 insertions(+), 4056 deletions(-) delete mode 100644 AllWinner-PinePhone.patch delete mode 100644 AllWinner-UpstreamSync.patch rename rpi-Add-identifier-for-the-new-RPi400.patch => Raspberry-Pi-400-Compute-Module-4-support.patch (52%) delete mode 100644 rockchip-Move-Bob-specific-bits-to-it-s-specific-u-b.patch delete mode 100644 rockchip-Pinebook-Pro-Fix-USB.patch diff --git a/AllWinner-PinePhone.patch b/AllWinner-PinePhone.patch deleted file mode 100644 index baa7119..0000000 --- a/AllWinner-PinePhone.patch +++ /dev/null @@ -1,1843 +0,0 @@ -From patchwork Thu Sep 3 05:07:09 2020 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Samuel Holland -X-Patchwork-Id: 1356315 -Return-Path: -X-Original-To: incoming@patchwork.ozlabs.org -Delivered-To: patchwork-incoming@bilbo.ozlabs.org -Authentication-Results: ozlabs.org; - spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de - (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; - envelope-from=u-boot-bounces@lists.denx.de; receiver=) -Authentication-Results: ozlabs.org; - dmarc=none (p=none dis=none) header.from=sholland.org -Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; - unprotected) header.d=sholland.org header.i=@sholland.org header.a=rsa-sha256 - header.s=fm3 header.b=buHTSW+5; - dkim=pass (2048-bit key; - unprotected) header.d=messagingengine.com header.i=@messagingengine.com - header.a=rsa-sha256 header.s=fm3 header.b=soUNU+zi; - dkim-atps=neutral -Received: from phobos.denx.de (phobos.denx.de - [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) - (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) - key-exchange X25519 server-signature RSA-PSS (4096 bits)) - (No client certificate requested) - by ozlabs.org (Postfix) with ESMTPS id 4Bhpk04dbHz9sTR - for ; Thu, 3 Sep 2020 15:08:40 +1000 (AEST) -Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) - by phobos.denx.de (Postfix) with ESMTP id B8046822FB; - Thu, 3 Sep 2020 07:07:34 +0200 (CEST) -Authentication-Results: phobos.denx.de; - dmarc=none (p=none dis=none) header.from=sholland.org -Authentication-Results: phobos.denx.de; - spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de -Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; - unprotected) header.d=sholland.org header.i=@sholland.org - header.b="buHTSW+5"; dkim=pass (2048-bit key; - unprotected) header.d=messagingengine.com header.i=@messagingengine.com - header.b="soUNU+zi"; dkim-atps=neutral -Received: by phobos.denx.de (Postfix, from userid 109) - id 5B11B822E1; Thu, 3 Sep 2020 07:07:27 +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.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, - DKIM_VALID,DKIM_VALID_AU,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL, - SPF_HELO_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no - version=3.4.2 -Received: from out2-smtp.messagingengine.com (out2-smtp.messagingengine.com - [66.111.4.26]) - (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) - (No client certificate requested) - by phobos.denx.de (Postfix) with ESMTPS id AF853822D8 - for ; Thu, 3 Sep 2020 07:07:19 +0200 (CEST) -Authentication-Results: phobos.denx.de; - dmarc=none (p=none dis=none) header.from=sholland.org -Authentication-Results: phobos.denx.de; - spf=pass smtp.mailfrom=samuel@sholland.org -Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) - by mailout.nyi.internal (Postfix) with ESMTP id 6D2045C0190; - Thu, 3 Sep 2020 01:07:18 -0400 (EDT) -Received: from mailfrontend2 ([10.202.2.163]) - by compute3.internal (MEProxy); Thu, 03 Sep 2020 01:07:18 -0400 -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sholland.org; h= - from:to:cc:subject:date:message-id:in-reply-to:references - :mime-version:content-transfer-encoding; s=fm3; bh=U4jA0nvRK7Czr - dgeNIS5gDY5tElSJ2feLLbT7NYhO6s=; b=buHTSW+5/tt6GjGA2vOU6Ivto0Cdk - fngE70LZVaDreoNlTLgMANhhiJzWyBYb3mjmMUR2EHBJeYNdzuOYpRL/hBztVsqa - B+hq24fQr6OsXlroOC+9DIkrBtgkfEXrmaHqyO9jP0/BBHQUHBAjJr6RkItNOJqs - tL5255/XbQw05IUwTN+fwQs+x1qtv9dPXiYVdELfBIhuTKSyQJaKqBLEO3mPFxRz - PIISy3OQi1lzdrJdmurLcp6DfbzqB9nJfuD0CtslCI1Bu09KsMgr7sn/mxITx0Vy - qyWz9p5t9Vr2A3xct652aED771i3Ra6UK+UYoSayMMMyCG4g+rb0DzJhQ== -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= - messagingengine.com; h=cc:content-transfer-encoding:date:from - :in-reply-to:message-id:mime-version:references:subject:to - :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= - fm3; bh=U4jA0nvRK7CzrdgeNIS5gDY5tElSJ2feLLbT7NYhO6s=; b=soUNU+zi - uXuVOTwtphqr7B11oSRvrTR5EMY1G0DCfVWT5s+K/e9h3V/TodXW0tbddWCX1Qhf - 2EbJfg61h8/UFqtAFCwuDtcIaxiykHsoFtLgyvzZrBQIoWF9LF/YDvRSmyDr1lyV - hY8s0GIVyKaAXjkwwoUEaknhWhGHrbVOeWZTWUnB9W1++iN+4uXoWlMohB72yOlk - 3TZ7XBSJLe2Nd4NxPuirhOfuGpWFLHiTQ/cSUcvZW+8DPmy+hZL/KNYEgY4NjN0I - uAZwnZNHCO2j+82cPGETrg4u4iziby3clWWhVNK04wJCiBfVWlkQgL5VP4ORJUzp - E1csDeRCXdGAgw== -X-ME-Sender: - -X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduiedrudegtddgleduucetufdoteggodetrfdotf - fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen - uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne - cujfgurhephffvufffkffojghfggfgsedtkeertdertddtnecuhfhrohhmpefurghmuhgv - lhcujfholhhlrghnugcuoehsrghmuhgvlhesshhhohhllhgrnhgurdhorhhgqeenucggtf - frrghtthgvrhhnpeduhfejfedvhffgfeehtefghfeiiefgfeehgfdvvdevfeegjeehjedv - gfejheeuieenucfkphepjedtrddufeehrddugeekrdduhedunecuvehluhhsthgvrhfuih - iivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepshgrmhhuvghlsehshhholhhlrghn - ugdrohhrgh -X-ME-Proxy: - - - -Received: from titanium.stl.sholland.net - (70-135-148-151.lightspeed.stlsmo.sbcglobal.net [70.135.148.151]) - by mail.messagingengine.com (Postfix) with ESMTPA id B6856306005E; - Thu, 3 Sep 2020 01:07:17 -0400 (EDT) -From: Samuel Holland -To: Jagan Teki , Maxime Ripard -Cc: Andre Przywara , - Peter Robinson , u-boot@lists.denx.de, - Samuel Holland -Subject: [PATCH 1/8] sunxi: board: Use a more descriptive variable name -Date: Thu, 3 Sep 2020 00:07:09 -0500 -Message-Id: <20200903050716.48488-2-samuel@sholland.org> -X-Mailer: git-send-email 2.26.2 -In-Reply-To: <20200903050716.48488-1-samuel@sholland.org> -References: <20200903050716.48488-1-samuel@sholland.org> -MIME-Version: 1.0 -X-BeenThere: u-boot@lists.denx.de -X-Mailman-Version: 2.1.34 -Precedence: list -List-Id: U-Boot discussion -List-Unsubscribe: , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: , - -Errors-To: u-boot-bounces@lists.denx.de -Sender: "U-Boot" -X-Virus-Scanned: clamav-milter 0.102.3 at phobos.denx.de -X-Virus-Status: Clean - -The variable "cmp_str" always leaves me wondering if it is the DT name -of the current board (yes) or DT name in the FIT config entry (no). - -In preparation for expanding the functionality here, rename it to -something that obviously means "this is the DT name we are looking for". - -Signed-off-by: Samuel Holland ---- - board/sunxi/board.c | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) - -diff --git a/board/sunxi/board.c b/board/sunxi/board.c -index 71e2b758a3e..674e6816d2d 100644 ---- a/board/sunxi/board.c -+++ b/board/sunxi/board.c -@@ -892,14 +892,14 @@ int ft_board_setup(void *blob, struct bd_info *bd) - int board_fit_config_name_match(const char *name) - { - struct boot_file_head *spl = get_spl_header(SPL_DT_HEADER_VERSION); -- const char *cmp_str = (const char *)spl; -+ const char *best_dt_name = (const char *)spl; - - /* Check if there is a DT name stored in the SPL header and use that. */ - if (spl != INVALID_SPL_HEADER && spl->dt_name_offset) { -- cmp_str += spl->dt_name_offset; -+ best_dt_name += spl->dt_name_offset; - } else { - #ifdef CONFIG_DEFAULT_DEVICE_TREE -- cmp_str = CONFIG_DEFAULT_DEVICE_TREE; -+ best_dt_name = CONFIG_DEFAULT_DEVICE_TREE; - #else - return 0; - #endif -@@ -907,15 +907,15 @@ int board_fit_config_name_match(const char *name) - - #ifdef CONFIG_PINE64_DT_SELECTION - /* Differentiate the two Pine64 board DTs by their DRAM size. */ -- if (strstr(name, "-pine64") && strstr(cmp_str, "-pine64")) { -+ if (strstr(name, "-pine64") && strstr(best_dt_name, "-pine64")) { - if ((gd->ram_size > 512 * 1024 * 1024)) - return !strstr(name, "plus"); - else - return !!strstr(name, "plus"); - } else { -- return strcmp(name, cmp_str); -+ return strcmp(name, best_dt_name); - } - #endif -- return strcmp(name, cmp_str); -+ return strcmp(name, best_dt_name); - } - #endif - -From patchwork Thu Sep 3 05:07:10 2020 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Samuel Holland -X-Patchwork-Id: 1356309 -Return-Path: -X-Original-To: incoming@patchwork.ozlabs.org -Delivered-To: patchwork-incoming@bilbo.ozlabs.org -Authentication-Results: ozlabs.org; - spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de - (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; - envelope-from=u-boot-bounces@lists.denx.de; receiver=) -Authentication-Results: ozlabs.org; - dmarc=none (p=none dis=none) header.from=sholland.org -Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; - unprotected) header.d=sholland.org header.i=@sholland.org header.a=rsa-sha256 - header.s=fm3 header.b=Sj8OLfL4; - dkim=pass (2048-bit key; - unprotected) header.d=messagingengine.com header.i=@messagingengine.com - header.a=rsa-sha256 header.s=fm3 header.b=gP0Xb3h8; - dkim-atps=neutral -Received: from phobos.denx.de (phobos.denx.de - [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) - (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) - key-exchange X25519 server-signature RSA-PSS (4096 bits)) - (No client certificate requested) - by ozlabs.org (Postfix) with ESMTPS id 4Bhphf6BH6z9sTR - for ; Thu, 3 Sep 2020 15:07:30 +1000 (AEST) -Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) - by phobos.denx.de (Postfix) with ESMTP id A8413822E3; - Thu, 3 Sep 2020 07:07:25 +0200 (CEST) -Authentication-Results: phobos.denx.de; - dmarc=none (p=none dis=none) header.from=sholland.org -Authentication-Results: phobos.denx.de; - spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de -Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; - unprotected) header.d=sholland.org header.i=@sholland.org - header.b="Sj8OLfL4"; dkim=pass (2048-bit key; - unprotected) header.d=messagingengine.com header.i=@messagingengine.com - header.b="gP0Xb3h8"; dkim-atps=neutral -Received: by phobos.denx.de (Postfix, from userid 109) - id 7B2D9822E8; Thu, 3 Sep 2020 07:07:23 +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.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, - DKIM_VALID,DKIM_VALID_AU,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL, - SPF_HELO_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no - version=3.4.2 -Received: from out2-smtp.messagingengine.com (out2-smtp.messagingengine.com - [66.111.4.26]) - (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) - (No client certificate requested) - by phobos.denx.de (Postfix) with ESMTPS id 88299822CA - for ; Thu, 3 Sep 2020 07:07:19 +0200 (CEST) -Authentication-Results: phobos.denx.de; - dmarc=none (p=none dis=none) header.from=sholland.org -Authentication-Results: phobos.denx.de; - spf=pass smtp.mailfrom=samuel@sholland.org -Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) - by mailout.nyi.internal (Postfix) with ESMTP id 76A985C0185; - Thu, 3 Sep 2020 01:07:18 -0400 (EDT) -Received: from mailfrontend2 ([10.202.2.163]) - by compute3.internal (MEProxy); Thu, 03 Sep 2020 01:07:18 -0400 -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sholland.org; h= - from:to:cc:subject:date:message-id:in-reply-to:references - :mime-version:content-transfer-encoding; s=fm3; bh=PQN64SHY0DFbJ - Xj9YPEcwJKL0bbybvo9/xMWQLiHCkU=; b=Sj8OLfL4WM4t/eW8xPA7XiaXE7bRC - 9oDd5605MwRja78aJ+GwV1TuxapJm7IlVNnlBETATblOjQenK4B7tAuxyPitzu+K - yJP+d0AYfgltsx888/hHtABBhsY20/7onFV1xxF/nB6fWwM6UTYfzsg2QQ2QYHmb - R5QGX38IUdDGZPR/U3bd2roatbUMK+xMqPZku3+3xxbSlLdWpeXp3YBmNCZFrkef - DjNUZE0kZWZIXIEk25bliOi1Yol1RZQZBq4As373rtZSvdXJbPKxU6C5c2TH6OgZ - ZcjNRU6zogMnOHhe/nklaCLzZQPx8Wz5Nse8PYJuRlDGk5tu5tOcONmog== -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= - messagingengine.com; h=cc:content-transfer-encoding:date:from - :in-reply-to:message-id:mime-version:references:subject:to - :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= - fm3; bh=PQN64SHY0DFbJXj9YPEcwJKL0bbybvo9/xMWQLiHCkU=; b=gP0Xb3h8 - lzo0knlriZlcpqJf2dY4yeWblYiYIsakrHO3GUDeZ7G9RYeSSWZ89RjUPZIHn4tw - mTk7vKxHbWz88EaQ+iPXaHsygzVk6RGrnU+7eGtJzZmUmKAm19hTi1uqkP/nXGyY - yyL1IKzw3pieBI1wHq1JPBo+AqTyAsrhrjgdalM+f9/0WwcdAWLTWYUXdR65xW1W - oFUPZ3bjJWrhFb1KFwEiJKdkK9tpivNCGKLe9fvnTLEelYQVoKMAE5G0xVdJhIqY - mQAq41sXJ3LRSeQWUb4Nd00bQsDTsroKLXDYc1P2K57wRGNIalbkkWZmbadPn2VW - 5jUVvdCWPvDEZQ== -X-ME-Sender: - -X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduiedrudegtddgleduucetufdoteggodetrfdotf - fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen - uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne - cujfgurhephffvufffkffojghfggfgsedtkeertdertddtnecuhfhrohhmpefurghmuhgv - lhcujfholhhlrghnugcuoehsrghmuhgvlhesshhhohhllhgrnhgurdhorhhgqeenucggtf - frrghtthgvrhhnpeduhfejfedvhffgfeehtefghfeiiefgfeehgfdvvdevfeegjeehjedv - gfejheeuieenucfkphepjedtrddufeehrddugeekrdduhedunecuvehluhhsthgvrhfuih - iivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepshgrmhhuvghlsehshhholhhlrghn - ugdrohhrgh -X-ME-Proxy: - - - -Received: from titanium.stl.sholland.net - (70-135-148-151.lightspeed.stlsmo.sbcglobal.net [70.135.148.151]) - by mail.messagingengine.com (Postfix) with ESMTPA id 0C6DA306005B; - Thu, 3 Sep 2020 01:07:18 -0400 (EDT) -From: Samuel Holland -To: Jagan Teki , Maxime Ripard -Cc: Andre Przywara , - Peter Robinson , u-boot@lists.denx.de, - Samuel Holland -Subject: [PATCH 2/8] sunxi: board: Add a helper to get the SPL DT name -Date: Thu, 3 Sep 2020 00:07:10 -0500 -Message-Id: <20200903050716.48488-3-samuel@sholland.org> -X-Mailer: git-send-email 2.26.2 -In-Reply-To: <20200903050716.48488-1-samuel@sholland.org> -References: <20200903050716.48488-1-samuel@sholland.org> -MIME-Version: 1.0 -X-BeenThere: u-boot@lists.denx.de -X-Mailman-Version: 2.1.34 -Precedence: list -List-Id: U-Boot discussion -List-Unsubscribe: , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: , - -Errors-To: u-boot-bounces@lists.denx.de -Sender: "U-Boot" -X-Virus-Scanned: clamav-milter 0.102.3 at phobos.denx.de -X-Virus-Status: Clean - -This moves the validity checking and typecasts all to one place away -from the string comparison logic, and it detangles the compile-time -and runtime control flow. - -The new helper will also be used by U-Boot proper in a future commit. - -Signed-off-by: Samuel Holland ---- - board/sunxi/board.c | 26 +++++++++++++++++--------- - 1 file changed, 17 insertions(+), 9 deletions(-) - -diff --git a/board/sunxi/board.c b/board/sunxi/board.c -index 674e6816d2d..5c9b811f27a 100644 ---- a/board/sunxi/board.c -+++ b/board/sunxi/board.c -@@ -319,6 +319,17 @@ static struct boot_file_head * get_spl_header(uint8_t req_version) - return spl; - } - -+static const char *get_spl_dt_name(void) -+{ -+ struct boot_file_head *spl = get_spl_header(SPL_DT_HEADER_VERSION); -+ -+ /* Check if there is a DT name stored in the SPL header. */ -+ if (spl != INVALID_SPL_HEADER && spl->dt_name_offset) -+ return (char *)spl + spl->dt_name_offset; -+ -+ return NULL; -+} -+ - int dram_init(void) - { - struct boot_file_head *spl = get_spl_header(SPL_DRAM_HEADER_VERSION); -@@ -891,20 +902,17 @@ int ft_board_setup(void *blob, struct bd_info *bd) - #ifdef CONFIG_SPL_LOAD_FIT - int board_fit_config_name_match(const char *name) - { -- struct boot_file_head *spl = get_spl_header(SPL_DT_HEADER_VERSION); -- const char *best_dt_name = (const char *)spl; -+ const char *best_dt_name = get_spl_dt_name(); - -- /* Check if there is a DT name stored in the SPL header and use that. */ -- if (spl != INVALID_SPL_HEADER && spl->dt_name_offset) { -- best_dt_name += spl->dt_name_offset; -- } else { - #ifdef CONFIG_DEFAULT_DEVICE_TREE -+ if (best_dt_name == NULL) - best_dt_name = CONFIG_DEFAULT_DEVICE_TREE; --#else -- return 0; - #endif -- }; - -+ if (best_dt_name == NULL) { -+ /* No DT name was provided, so accept the first config. */ -+ return 0; -+ } - #ifdef CONFIG_PINE64_DT_SELECTION - /* Differentiate the two Pine64 board DTs by their DRAM size. */ - if (strstr(name, "-pine64") && strstr(best_dt_name, "-pine64")) { - -From patchwork Thu Sep 3 05:07:11 2020 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Samuel Holland -X-Patchwork-Id: 1356311 -Return-Path: -X-Original-To: incoming@patchwork.ozlabs.org -Delivered-To: patchwork-incoming@bilbo.ozlabs.org -Authentication-Results: ozlabs.org; - spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de - (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; - envelope-from=u-boot-bounces@lists.denx.de; receiver=) -Authentication-Results: ozlabs.org; - dmarc=none (p=none dis=none) header.from=sholland.org -Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; - unprotected) header.d=sholland.org header.i=@sholland.org header.a=rsa-sha256 - header.s=fm3 header.b=YljKqDaX; - dkim=pass (2048-bit key; - unprotected) header.d=messagingengine.com header.i=@messagingengine.com - header.a=rsa-sha256 header.s=fm3 header.b=KFsvPFSQ; - dkim-atps=neutral -Received: from phobos.denx.de (phobos.denx.de - [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) - (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) - key-exchange X25519 server-signature RSA-PSS (4096 bits)) - (No client certificate requested) - by ozlabs.org (Postfix) with ESMTPS id 4Bhpj50Q5mz9sTR - for ; Thu, 3 Sep 2020 15:07:52 +1000 (AEST) -Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) - by phobos.denx.de (Postfix) with ESMTP id 921A1822EA; - Thu, 3 Sep 2020 07:07:28 +0200 (CEST) -Authentication-Results: phobos.denx.de; - dmarc=none (p=none dis=none) header.from=sholland.org -Authentication-Results: phobos.denx.de; - spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de -Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; - unprotected) header.d=sholland.org header.i=@sholland.org - header.b="YljKqDaX"; dkim=pass (2048-bit key; - unprotected) header.d=messagingengine.com header.i=@messagingengine.com - header.b="KFsvPFSQ"; dkim-atps=neutral -Received: by phobos.denx.de (Postfix, from userid 109) - id 29DBC822EA; Thu, 3 Sep 2020 07:07:26 +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.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, - DKIM_VALID,DKIM_VALID_AU,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL, - SPF_HELO_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no - version=3.4.2 -Received: from out2-smtp.messagingengine.com (out2-smtp.messagingengine.com - [66.111.4.26]) - (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) - (No client certificate requested) - by phobos.denx.de (Postfix) with ESMTPS id AA176822D5 - for ; Thu, 3 Sep 2020 07:07:19 +0200 (CEST) -Authentication-Results: phobos.denx.de; - dmarc=none (p=none dis=none) header.from=sholland.org -Authentication-Results: phobos.denx.de; - spf=pass smtp.mailfrom=samuel@sholland.org -Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) - by mailout.nyi.internal (Postfix) with ESMTP id C1C965C01A4; - Thu, 3 Sep 2020 01:07:18 -0400 (EDT) -Received: from mailfrontend2 ([10.202.2.163]) - by compute3.internal (MEProxy); Thu, 03 Sep 2020 01:07:18 -0400 -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sholland.org; h= - from:to:cc:subject:date:message-id:in-reply-to:references - :mime-version:content-transfer-encoding; s=fm3; bh=Qd9EKlOeDxNxU - GjePDGIEyZE9Rx9hOCoFpYSpjLblzg=; b=YljKqDaXzM+KcF2P5M1Qm4ZqIN47C - vZyob9mNeC9Ih6xzht0zmIiswyR4o06F6F75APKEHOLdF98lM16tFq5lm2c0K2C/ - FLv20iU82lyakGbT5y0fX9BUw2B1l6InAM81fN1aIyj6vKXDINvzr0Njek5zd82e - EBZJnaT7r4LgQ3tDupNPvYm+nq18jIibpUUERREvoNh6ktNeYOJbWPpuyRpW06+o - zKpzwXrrMFjcTuczM3DCSk0LchI0IGfF9STJXcWYrkwILpOIIZIn7Pcxbxg3LuPP - EF8OLTHGhbp2yvtbSVxuSyV5XrLKaiMTJNs8Z8T/AVWTfuAfwA146icVg== -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= - messagingengine.com; h=cc:content-transfer-encoding:date:from - :in-reply-to:message-id:mime-version:references:subject:to - :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= - fm3; bh=Qd9EKlOeDxNxUGjePDGIEyZE9Rx9hOCoFpYSpjLblzg=; b=KFsvPFSQ - oz3tuB0IgFDRGBPs9pm02ZFiQW6XW9io0ha6PFYr7sl2irhSUuA89cAncxDeQ99n - /SKVx+jefi15iu+rEUTEdZwFzb8FbfQ6faNIyvJ1RL4m+eH9ifIF0yuc62Qe9Pt2 - Y0+6e1tDB3SyFRABn0Vib5DrnmbMSYeSJZug7TRAxINnW/qdG6pq1ycNPbhvYy7V - L0yBLcV7gP/gwEF5OtEWV2X22kqKFir6fKCsAVDK2KUTmM3ezGifn8h6u7n8ksWC - +4UbNfjcBKfNLHFEEIb7CdNdtixI4oo/XIsA8eDHULQ0v7cF7bZ1KAR+jBSW4Bf9 - CRQNy2hCu5K+Rg== -X-ME-Sender: - -X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduiedrudegtddgleduucetufdoteggodetrfdotf - fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen - uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne - cujfgurhephffvufffkffojghfggfgsedtkeertdertddtnecuhfhrohhmpefurghmuhgv - lhcujfholhhlrghnugcuoehsrghmuhgvlhesshhhohhllhgrnhgurdhorhhgqeenucggtf - frrghtthgvrhhnpeduhfejfedvhffgfeehtefghfeiiefgfeehgfdvvdevfeegjeehjedv - gfejheeuieenucfkphepjedtrddufeehrddugeekrdduhedunecuvehluhhsthgvrhfuih - iivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepshgrmhhuvghlsehshhholhhlrghn - ugdrohhrgh -X-ME-Proxy: - - - -Received: from titanium.stl.sholland.net - (70-135-148-151.lightspeed.stlsmo.sbcglobal.net [70.135.148.151]) - by mail.messagingengine.com (Postfix) with ESMTPA id 56CF53060062; - Thu, 3 Sep 2020 01:07:18 -0400 (EDT) -From: Samuel Holland -To: Jagan Teki , Maxime Ripard -Cc: Andre Przywara , - Peter Robinson , u-boot@lists.denx.de, - Samuel Holland -Subject: [PATCH 3/8] sunxi: board: Simplify Pine A64 DT selection logic -Date: Thu, 3 Sep 2020 00:07:11 -0500 -Message-Id: <20200903050716.48488-4-samuel@sholland.org> -X-Mailer: git-send-email 2.26.2 -In-Reply-To: <20200903050716.48488-1-samuel@sholland.org> -References: <20200903050716.48488-1-samuel@sholland.org> -MIME-Version: 1.0 -X-BeenThere: u-boot@lists.denx.de -X-Mailman-Version: 2.1.34 -Precedence: list -List-Id: U-Boot discussion -List-Unsubscribe: , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: , - -Errors-To: u-boot-bounces@lists.denx.de -Sender: "U-Boot" -X-Virus-Scanned: clamav-milter 0.102.3 at phobos.denx.de -X-Virus-Status: Clean - -Instead of using an entirely separate matching algorithm, simply update -the name of the DT we want to match. Enabling this logic does not depend -on the FIT config name, only on the initial guess of the board name. - -Importantly, the initial guess must be "sun50i-a64-pine64-plus", because -otherwise the logic would trigger when "sun50i-a64-pine64-lts" was -written to the SPL header. - -Signed-off-by: Samuel Holland ---- - board/sunxi/board.c | 12 ++++-------- - 1 file changed, 4 insertions(+), 8 deletions(-) - -diff --git a/board/sunxi/board.c b/board/sunxi/board.c -index 5c9b811f27a..fb0d5bf4743 100644 ---- a/board/sunxi/board.c -+++ b/board/sunxi/board.c -@@ -914,14 +914,10 @@ int board_fit_config_name_match(const char *name) - return 0; - } - #ifdef CONFIG_PINE64_DT_SELECTION --/* Differentiate the two Pine64 board DTs by their DRAM size. */ -- if (strstr(name, "-pine64") && strstr(best_dt_name, "-pine64")) { -- if ((gd->ram_size > 512 * 1024 * 1024)) -- return !strstr(name, "plus"); -- else -- return !!strstr(name, "plus"); -- } else { -- return strcmp(name, best_dt_name); -+ else if (strstr(best_dt_name, "-pine64-plus")) { -+ /* Differentiate the Pine A64 boards by their DRAM size. */ -+ if ((gd->ram_size == 512 * 1024 * 1024)) -+ best_dt_name = "sun50i-a64-pine64"; - } - #endif - return strcmp(name, best_dt_name); - -From patchwork Thu Sep 3 05:07:12 2020 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Samuel Holland -X-Patchwork-Id: 1356310 -Return-Path: -X-Original-To: incoming@patchwork.ozlabs.org -Delivered-To: patchwork-incoming@bilbo.ozlabs.org -Authentication-Results: ozlabs.org; - spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de - (client-ip=85.214.62.61; helo=phobos.denx.de; - envelope-from=u-boot-bounces@lists.denx.de; receiver=) -Authentication-Results: ozlabs.org; - dmarc=none (p=none dis=none) header.from=sholland.org -Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; - unprotected) header.d=sholland.org header.i=@sholland.org header.a=rsa-sha256 - header.s=fm3 header.b=WQvh0tb6; - dkim=pass (2048-bit key; - unprotected) header.d=messagingengine.com header.i=@messagingengine.com - header.a=rsa-sha256 header.s=fm3 header.b=Va8mMuMz; - dkim-atps=neutral -Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) - (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) - key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest - SHA256) (No client certificate requested) - by ozlabs.org (Postfix) with ESMTPS id 4Bhphw0Nkzz9sTR - for ; Thu, 3 Sep 2020 15:07:43 +1000 (AEST) -Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) - by phobos.denx.de (Postfix) with ESMTP id 19AFA822DF; - Thu, 3 Sep 2020 07:07:27 +0200 (CEST) -Authentication-Results: phobos.denx.de; - dmarc=none (p=none dis=none) header.from=sholland.org -Authentication-Results: phobos.denx.de; - spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de -Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; - unprotected) header.d=sholland.org header.i=@sholland.org - header.b="WQvh0tb6"; dkim=pass (2048-bit key; - unprotected) header.d=messagingengine.com header.i=@messagingengine.com - header.b="Va8mMuMz"; dkim-atps=neutral -Received: by phobos.denx.de (Postfix, from userid 109) - id 3129B822E3; Thu, 3 Sep 2020 07:07:24 +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.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, - DKIM_VALID,DKIM_VALID_AU,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL, - SPF_HELO_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no - version=3.4.2 -Received: from out2-smtp.messagingengine.com (out2-smtp.messagingengine.com - [66.111.4.26]) - (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) - (No client certificate requested) - by phobos.denx.de (Postfix) with ESMTPS id D694E822E1 - for ; Thu, 3 Sep 2020 07:07:19 +0200 (CEST) -Authentication-Results: phobos.denx.de; - dmarc=none (p=none dis=none) header.from=sholland.org -Authentication-Results: phobos.denx.de; - spf=pass smtp.mailfrom=samuel@sholland.org -Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) - by mailout.nyi.internal (Postfix) with ESMTP id 1C9B95C0116; - Thu, 3 Sep 2020 01:07:19 -0400 (EDT) -Received: from mailfrontend2 ([10.202.2.163]) - by compute3.internal (MEProxy); Thu, 03 Sep 2020 01:07:19 -0400 -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sholland.org; h= - from:to:cc:subject:date:message-id:in-reply-to:references - :mime-version:content-transfer-encoding; s=fm3; bh=CNkIsGtVD92kV - ynV0NXjTV4vykOq+sdspxFol5f0iNM=; b=WQvh0tb6tyqtZYusFC0NyOcSeWaQm - ikcA+euqToY6scf0d256r+20fb4HnTosS+vXbhpF5vlo1hBhc2RW2/e+dR3a3AKH - qb8j3UwBWhpnwwZMS8HqUob5Cfq1BxHU1+/2tjRXvlMxDxNd/HvUoRlLBhfK57OA - Ln6MfWcRmxHlq5Js5MGAD9hRdzkPrnDX4x/NdRttkUaH/WMSGNEO0TnKW88PYXsE - 8u0eiuJQWWLED8nBAxf89vvVUf7o+It6gx5i+r5Bjl/BE5Ykj4O4kpMX2MeiB+Zh - KjYjivDQw8wmG4CrFKPCq4Bd/RoSQd9zHYBp6QuYpvY80vw+jLX7oVwMw== -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= - messagingengine.com; h=cc:content-transfer-encoding:date:from - :in-reply-to:message-id:mime-version:references:subject:to - :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= - fm3; bh=CNkIsGtVD92kVynV0NXjTV4vykOq+sdspxFol5f0iNM=; b=Va8mMuMz - othxHX11xn91XUTb1pYRnk4BO4zhPNKy7f+RU+S4/3DaYnmV9zl4x03LblsUWZRs - bnICHr20DS5YKUcqT9ag5zm1ocAxwJQGTc/SnTpWkZsJXR8unpsmm89jDyV+w5dM - p3YUeZ3AhxjEFHJXhqUnnOIXSLXGzYsnWA+szWf0dHI7tpZJqaV5O4X8xTk2X5cp - 2siDwjLGLi7PUtB/vcNZmOOZQbROGonW6mu2iNurHnrBUk4gOOmQhmeiEkjJb9lk - +MfMZsLXllNr8/o7323d6iP90v1scxaBASDC+q2zzEmUVAmU/Y/fyH0B6frHJy3O - QTcFTnYy45X3Zw== -X-ME-Sender: - -X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduiedrudegtddgleduucetufdoteggodetrfdotf - fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen - uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne - cujfgurhephffvufffkffojghfggfgsedtkeertdertddtnecuhfhrohhmpefurghmuhgv - lhcujfholhhlrghnugcuoehsrghmuhgvlhesshhhohhllhgrnhgurdhorhhgqeenucggtf - frrghtthgvrhhnpeduhfejfedvhffgfeehtefghfeiiefgfeehgfdvvdevfeegjeehjedv - gfejheeuieenucfkphepjedtrddufeehrddugeekrdduhedunecuvehluhhsthgvrhfuih - iivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepshgrmhhuvghlsehshhholhhlrghn - ugdrohhrgh -X-ME-Proxy: - - - -Received: from titanium.stl.sholland.net - (70-135-148-151.lightspeed.stlsmo.sbcglobal.net [70.135.148.151]) - by mail.messagingengine.com (Postfix) with ESMTPA id A21AB306005B; - Thu, 3 Sep 2020 01:07:18 -0400 (EDT) -From: Samuel Holland -To: Jagan Teki , Maxime Ripard -Cc: Andre Przywara , - Peter Robinson , u-boot@lists.denx.de, - Samuel Holland -Subject: [PATCH 4/8] sunxi: board: Add PinePhone DT selection logic -Date: Thu, 3 Sep 2020 00:07:12 -0500 -Message-Id: <20200903050716.48488-5-samuel@sholland.org> -X-Mailer: git-send-email 2.26.2 -In-Reply-To: <20200903050716.48488-1-samuel@sholland.org> -References: <20200903050716.48488-1-samuel@sholland.org> -MIME-Version: 1.0 -X-BeenThere: u-boot@lists.denx.de -X-Mailman-Version: 2.1.34 -Precedence: list -List-Id: U-Boot discussion -List-Unsubscribe: , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: , - -Errors-To: u-boot-bounces@lists.denx.de -Sender: "U-Boot" -X-Virus-Scanned: clamav-milter 0.102.3 at phobos.denx.de -X-Virus-Status: Clean - -There are two different publicly-released revisions of the PinePhone -hardware, versions 1.1 and 1.2; and they need different device trees. -Since some GPIO pins were rerouted, we can use that to distinguish -between them. - -Signed-off-by: Samuel Holland ---- - arch/arm/mach-sunxi/Kconfig | 7 +++++++ - board/sunxi/board.c | 21 +++++++++++++++++++++ - 2 files changed, 28 insertions(+) - -diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig -index be0822bfb7d..8421f3b6854 100644 ---- a/arch/arm/mach-sunxi/Kconfig -+++ b/arch/arm/mach-sunxi/Kconfig -@@ -1010,4 +1010,11 @@ config PINE64_DT_SELECTION - option, the device tree selection code specific to Pine64 which - utilizes the DRAM size will be enabled. - -+config PINEPHONE_DT_SELECTION -+ bool "Enable PinePhone device tree selection code" -+ depends on MACH_SUN50I -+ help -+ Enable this option to automatically select the device tree for the -+ correct PinePhone hardware revision during boot. -+ - endif -diff --git a/board/sunxi/board.c b/board/sunxi/board.c -index fb0d5bf4743..3d64ed18664 100644 ---- a/board/sunxi/board.c -+++ b/board/sunxi/board.c -@@ -27,6 +27,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -920,6 +921,26 @@ int board_fit_config_name_match(const char *name) - best_dt_name = "sun50i-a64-pine64"; - } - #endif -+#ifdef CONFIG_PINEPHONE_DT_SELECTION -+ else if (strstr(best_dt_name, "-pinephone")) { -+ /* Differentiate the PinePhone revisions by GPIO inputs. */ -+ prcm_apb0_enable(PRCM_APB0_GATE_PIO); -+ sunxi_gpio_set_pull(SUNXI_GPL(6), SUNXI_GPIO_PULL_UP); -+ sunxi_gpio_set_cfgpin(SUNXI_GPL(6), SUNXI_GPIO_INPUT); -+ udelay(100); -+ -+ /* PL6 is pulled low by the modem on v1.2. */ -+ if (gpio_get_value(SUNXI_GPL(6)) == 0) -+ best_dt_name = "sun50i-a64-pinephone-1.2"; -+ else -+ best_dt_name = "sun50i-a64-pinephone-1.1"; -+ -+ sunxi_gpio_set_cfgpin(SUNXI_GPL(6), SUNXI_GPIO_DISABLE); -+ sunxi_gpio_set_pull(SUNXI_GPL(6), SUNXI_GPIO_PULL_DISABLE); -+ prcm_apb0_disable(PRCM_APB0_GATE_PIO); -+ } -+#endif -+ - return strcmp(name, best_dt_name); - } - #endif - -From patchwork Thu Sep 3 05:07:13 2020 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Samuel Holland -X-Patchwork-Id: 1356314 -Return-Path: -X-Original-To: incoming@patchwork.ozlabs.org -Delivered-To: patchwork-incoming@bilbo.ozlabs.org -Authentication-Results: ozlabs.org; - spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de - (client-ip=85.214.62.61; helo=phobos.denx.de; - envelope-from=u-boot-bounces@lists.denx.de; receiver=) -Authentication-Results: ozlabs.org; - dmarc=none (p=none dis=none) header.from=sholland.org -Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; - unprotected) header.d=sholland.org header.i=@sholland.org header.a=rsa-sha256 - header.s=fm3 header.b=fyCJtExp; - dkim=pass (2048-bit key; - unprotected) header.d=messagingengine.com header.i=@messagingengine.com - header.a=rsa-sha256 header.s=fm3 header.b=B5Js1Nb8; - dkim-atps=neutral -Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) - (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) - key-exchange X25519 server-signature RSA-PSS (4096 bits)) - (No client certificate requested) - by ozlabs.org (Postfix) with ESMTPS id 4Bhpjn2MLBz9sTR - for ; Thu, 3 Sep 2020 15:08:29 +1000 (AEST) -Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) - by phobos.denx.de (Postfix) with ESMTP id 774738230A; - Thu, 3 Sep 2020 07:07:33 +0200 (CEST) -Authentication-Results: phobos.denx.de; - dmarc=none (p=none dis=none) header.from=sholland.org -Authentication-Results: phobos.denx.de; - spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de -Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; - unprotected) header.d=sholland.org header.i=@sholland.org - header.b="fyCJtExp"; dkim=pass (2048-bit key; - unprotected) header.d=messagingengine.com header.i=@messagingengine.com - header.b="B5Js1Nb8"; dkim-atps=neutral -Received: by phobos.denx.de (Postfix, from userid 109) - id 43189822ED; Thu, 3 Sep 2020 07:07:27 +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.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, - DKIM_VALID,DKIM_VALID_AU,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL, - SPF_HELO_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no - version=3.4.2 -Received: from out2-smtp.messagingengine.com (out2-smtp.messagingengine.com - [66.111.4.26]) - (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) - (No client certificate requested) - by phobos.denx.de (Postfix) with ESMTPS id 2BF26822D9 - for ; Thu, 3 Sep 2020 07:07:21 +0200 (CEST) -Authentication-Results: phobos.denx.de; - dmarc=none (p=none dis=none) header.from=sholland.org -Authentication-Results: phobos.denx.de; - spf=pass smtp.mailfrom=samuel@sholland.org -Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) - by mailout.nyi.internal (Postfix) with ESMTP id 672025C018A; - Thu, 3 Sep 2020 01:07:19 -0400 (EDT) -Received: from mailfrontend2 ([10.202.2.163]) - by compute3.internal (MEProxy); Thu, 03 Sep 2020 01:07:19 -0400 -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sholland.org; h= - from:to:cc:subject:date:message-id:in-reply-to:references - :mime-version:content-transfer-encoding; s=fm3; bh=azt3bcG2gyjJM - Z+euNV8r3HcVvCpV+eSxdiwdmzQYjE=; b=fyCJtExpAf8Pds8sXBs5pz5z9Werb - vqBSzut0Ck+pcCvap7NpVy7HIRtLqRZZ5TVdGQrBdCyjMYPaBcpnxw/mfUNJKoX9 - WjOBrSnHpTrRp42ZQmJhQhQwBcX/s0j54ruprCfSqKSDuTOBG1N1JvKxI/PpfY6r - SsSEbwLKYq1RtK4noXm6JikphM9ME5i5XlR5n4XPsXPdM3UhM9DZXrkVwtWp+NyK - 4Xz63Is8oAxwJZAmqv049v/YeMe/Rsf9FY93zxcnQyZVoOHuW1s17AsX7jF8wDRy - xqvpvT8c3cJYXaFLGLrY+nmcGoKIjQSszLh9y5NwbGmjlEElJCcUUJW1A== -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= - messagingengine.com; h=cc:content-transfer-encoding:date:from - :in-reply-to:message-id:mime-version:references:subject:to - :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= - fm3; bh=azt3bcG2gyjJMZ+euNV8r3HcVvCpV+eSxdiwdmzQYjE=; b=B5Js1Nb8 - 5VzNH4aOuAW1FHK3OmKXRhz2sqhORkqO2K1N+kVfuPWZeATNjSIGEHwqkBJeJDNc - i+/y18eeCQg5sWkt3YCGaFv//m+LNamP1DRTkwLglswewvGqj0zfgN4MjMJvBWt3 - 0bbdP8+D9o1geSld8IyI3lyRZgu7QN+3vJs4xxyTQL6xTOg6VizhNwm6nwSSl2u8 - O6WzLWqrShbb6PD7Lqy5FrJ+BiqwRR+QrRp1JI86QDXssPJh1CtMiF2LnrkmwPxB - DSp3hr1nqudSNopltfwdUyNu3GdkGbMCE8Iv+4KIZpD8oRH12hS19aRtIqosAuXm - 1Ljrqzx4Vp/yNA== -X-ME-Sender: - -X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduiedrudegtddgleduucetufdoteggodetrfdotf - fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen - uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne - cujfgurhephffvufffkffojghfggfgsedtkeertdertddtnecuhfhrohhmpefurghmuhgv - lhcujfholhhlrghnugcuoehsrghmuhgvlhesshhhohhllhgrnhgurdhorhhgqeenucggtf - frrghtthgvrhhnpeduhfejfedvhffgfeehtefghfeiiefgfeehgfdvvdevfeegjeehjedv - gfejheeuieenucfkphepjedtrddufeehrddugeekrdduhedunecuvehluhhsthgvrhfuih - iivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepshgrmhhuvghlsehshhholhhlrghn - ugdrohhrgh -X-ME-Proxy: - - - -Received: from titanium.stl.sholland.net - (70-135-148-151.lightspeed.stlsmo.sbcglobal.net [70.135.148.151]) - by mail.messagingengine.com (Postfix) with ESMTPA id EE48F306005E; - Thu, 3 Sep 2020 01:07:18 -0400 (EDT) -From: Samuel Holland -To: Jagan Teki , Maxime Ripard -Cc: Andre Przywara , - Peter Robinson , u-boot@lists.denx.de, - Samuel Holland -Subject: [PATCH 5/8] sunxi: board: Save the chosen DT name in the SPL header -Date: Thu, 3 Sep 2020 00:07:13 -0500 -Message-Id: <20200903050716.48488-6-samuel@sholland.org> -X-Mailer: git-send-email 2.26.2 -In-Reply-To: <20200903050716.48488-1-samuel@sholland.org> -References: <20200903050716.48488-1-samuel@sholland.org> -MIME-Version: 1.0 -X-BeenThere: u-boot@lists.denx.de -X-Mailman-Version: 2.1.34 -Precedence: list -List-Id: U-Boot discussion -List-Unsubscribe: , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: , - -Errors-To: u-boot-bounces@lists.denx.de -Sender: "U-Boot" -X-Virus-Scanned: clamav-milter 0.102.3 at phobos.denx.de -X-Virus-Status: Clean - -This overwrites the name loaded from the SPL image. It will be different -if there was previously no name provided, or if a more accurate name was -determined by the board variant selection logic. This means that the DT -name in the SPL header now always matches the DT appended to U-Boot. - -Signed-off-by: Samuel Holland ---- - board/sunxi/board.c | 27 ++++++++++++++++++++++++++- - 1 file changed, 26 insertions(+), 1 deletion(-) - -diff --git a/board/sunxi/board.c b/board/sunxi/board.c -index 3d64ed18664..eaa40a1ea96 100644 ---- a/board/sunxi/board.c -+++ b/board/sunxi/board.c -@@ -331,6 +331,21 @@ static const char *get_spl_dt_name(void) - return NULL; - } - -+static void set_spl_dt_name(const char *name) -+{ -+ struct boot_file_head *spl = get_spl_header(SPL_ENV_HEADER_VERSION); -+ -+ if (spl == INVALID_SPL_HEADER) -+ return; -+ -+ /* Promote the header version for U-Boot proper, if needed. */ -+ if (spl->spl_signature[3] < SPL_DT_HEADER_VERSION) -+ spl->spl_signature[3] = SPL_DT_HEADER_VERSION; -+ -+ strcpy((char *)&spl->string_pool, name); -+ spl->dt_name_offset = offsetof(struct boot_file_head, string_pool); -+} -+ - int dram_init(void) - { - struct boot_file_head *spl = get_spl_header(SPL_DRAM_HEADER_VERSION); -@@ -904,6 +919,7 @@ int ft_board_setup(void *blob, struct bd_info *bd) - int board_fit_config_name_match(const char *name) - { - const char *best_dt_name = get_spl_dt_name(); -+ int ret; - - #ifdef CONFIG_DEFAULT_DEVICE_TREE - if (best_dt_name == NULL) -@@ -941,6 +957,15 @@ int board_fit_config_name_match(const char *name) - } - #endif - -- return strcmp(name, best_dt_name); -+ ret = strcmp(name, best_dt_name); -+ -+ /* -+ * If one of the FIT configurations matches the most accurate DT name, -+ * update the SPL header to provide that DT name to U-Boot proper. -+ */ -+ if (ret == 0) -+ set_spl_dt_name(best_dt_name); -+ -+ return ret; - } - #endif - -From patchwork Thu Sep 3 05:07:14 2020 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Samuel Holland -X-Patchwork-Id: 1356313 -Return-Path: -X-Original-To: incoming@patchwork.ozlabs.org -Delivered-To: patchwork-incoming@bilbo.ozlabs.org -Authentication-Results: ozlabs.org; - spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de - (client-ip=85.214.62.61; helo=phobos.denx.de; - envelope-from=u-boot-bounces@lists.denx.de; receiver=) -Authentication-Results: ozlabs.org; - dmarc=none (p=none dis=none) header.from=sholland.org -Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; - unprotected) header.d=sholland.org header.i=@sholland.org header.a=rsa-sha256 - header.s=fm3 header.b=Ps0W2fd7; - dkim=pass (2048-bit key; - unprotected) header.d=messagingengine.com header.i=@messagingengine.com - header.a=rsa-sha256 header.s=fm3 header.b=irLh9odg; - dkim-atps=neutral -Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) - (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) - key-exchange X25519 server-signature RSA-PSS (4096 bits)) - (No client certificate requested) - by ozlabs.org (Postfix) with ESMTPS id 4BhpjY18DVz9sTR - for ; Thu, 3 Sep 2020 15:08:17 +1000 (AEST) -Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) - by phobos.denx.de (Postfix) with ESMTP id 1375E82300; - Thu, 3 Sep 2020 07:07:32 +0200 (CEST) -Authentication-Results: phobos.denx.de; - dmarc=none (p=none dis=none) header.from=sholland.org -Authentication-Results: phobos.denx.de; - spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de -Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; - unprotected) header.d=sholland.org header.i=@sholland.org - header.b="Ps0W2fd7"; dkim=pass (2048-bit key; - unprotected) header.d=messagingengine.com header.i=@messagingengine.com - header.b="irLh9odg"; dkim-atps=neutral -Received: by phobos.denx.de (Postfix, from userid 109) - id E9DCE822E1; Thu, 3 Sep 2020 07:07:26 +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.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, - DKIM_VALID,DKIM_VALID_AU,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL, - SPF_HELO_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no - version=3.4.2 -Received: from out2-smtp.messagingengine.com (out2-smtp.messagingengine.com - [66.111.4.26]) - (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) - (No client certificate requested) - by phobos.denx.de (Postfix) with ESMTPS id 2CC5D822DF - for ; Thu, 3 Sep 2020 07:07:21 +0200 (CEST) -Authentication-Results: phobos.denx.de; - dmarc=none (p=none dis=none) header.from=sholland.org -Authentication-Results: phobos.denx.de; - spf=pass smtp.mailfrom=samuel@sholland.org -Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) - by mailout.nyi.internal (Postfix) with ESMTP id AAA455C0197; - Thu, 3 Sep 2020 01:07:19 -0400 (EDT) -Received: from mailfrontend2 ([10.202.2.163]) - by compute3.internal (MEProxy); Thu, 03 Sep 2020 01:07:19 -0400 -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sholland.org; h= - from:to:cc:subject:date:message-id:in-reply-to:references - :mime-version:content-transfer-encoding; s=fm3; bh=YJZBYh6lhnaT4 - or+KKTYoX0BgbruFrnszv2AxRFjCUg=; b=Ps0W2fd7vmO9tBRewK6ov5Y2vWsh9 - oAAVK6vPK0hEzUkkeBIkhSenj5xlmR2HCeP5LxQU+Vgty5CzLJnc48U8lCQwGRFR - ZZ6tAiD9/vOtdVCbU2dRH7WK3uoAEi4AB688do5c3H3KhS8ZN6N7vsakr50TbczK - beuX76xciz0QEuRhJUFbnK9EYpV8/CDS1OFv6P+kA6OSIb71gm9FeFgdHHpmdQ/U - 7sE6vbkMYhL7pFMzeBCYWSfUWF6NK3gfJApDaxFqR1KBlszLuGbIXLVYWImA3WV8 - sFDNZWGk2swSOB1ivq+Xvb2WTlPidjY0OrROgggZcyDHPRFEoZaS1ezAA== -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= - messagingengine.com; h=cc:content-transfer-encoding:date:from - :in-reply-to:message-id:mime-version:references:subject:to - :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= - fm3; bh=YJZBYh6lhnaT4or+KKTYoX0BgbruFrnszv2AxRFjCUg=; b=irLh9odg - 4mUJO3vUBGyeYD/WBs8BrulYezzsNoTAJp4uGEv0b9KyxbofUjok4+liYvAT/QZa - ED/iKo1bqgGmEwNPLoM0YORd0pXRd5jyv9W53Z96qzGsNOe0iGkJtSlOMXF3Lrfl - aIpGPRSMoRkqztR6oWBAEHeCm3NCFY4LDzzCoPFQqdcWmiDl+Wi3YfpApRGHdL3v - 4XVOruQFZlZUHZPp42VOzgbJyz+uWB3Z/RN2y0P7Lof1CrYtsWNftV4LuXDQ70VZ - P9TlSWjk75qTa1dqHdj/cvbi5WFBqa4FJKgCCV1OgCCEAc1ZGLhPBVDjt4W7FHJh - hNPlKS0liPCmGQ== -X-ME-Sender: - -X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduiedrudegtddgleduucetufdoteggodetrfdotf - fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen - uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne - cujfgurhephffvufffkffojghfggfgsedtkeertdertddtnecuhfhrohhmpefurghmuhgv - lhcujfholhhlrghnugcuoehsrghmuhgvlhesshhhohhllhgrnhgurdhorhhgqeenucggtf - frrghtthgvrhhnpeduhfejfedvhffgfeehtefghfeiiefgfeehgfdvvdevfeegjeehjedv - gfejheeuieenucfkphepjedtrddufeehrddugeekrdduhedunecuvehluhhsthgvrhfuih - iivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepshgrmhhuvghlsehshhholhhlrghn - ugdrohhrgh -X-ME-Proxy: - - - -Received: from titanium.stl.sholland.net - (70-135-148-151.lightspeed.stlsmo.sbcglobal.net [70.135.148.151]) - by mail.messagingengine.com (Postfix) with ESMTPA id 4678A306005B; - Thu, 3 Sep 2020 01:07:19 -0400 (EDT) -From: Samuel Holland -To: Jagan Teki , Maxime Ripard -Cc: Andre Przywara , - Peter Robinson , u-boot@lists.denx.de, - Samuel Holland -Subject: [PATCH 6/8] sunxi: board: Set fdtfile to match the DT chosen by SPL -Date: Thu, 3 Sep 2020 00:07:14 -0500 -Message-Id: <20200903050716.48488-7-samuel@sholland.org> -X-Mailer: git-send-email 2.26.2 -In-Reply-To: <20200903050716.48488-1-samuel@sholland.org> -References: <20200903050716.48488-1-samuel@sholland.org> -MIME-Version: 1.0 -X-BeenThere: u-boot@lists.denx.de -X-Mailman-Version: 2.1.34 -Precedence: list -List-Id: U-Boot discussion -List-Unsubscribe: , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: , - -Errors-To: u-boot-bounces@lists.denx.de -Sender: "U-Boot" -X-Virus-Scanned: clamav-milter 0.102.3 at phobos.denx.de -X-Virus-Status: Clean - -Previously, fdtfile was always the value in CONFIG_DEFAULT_DEVICE_TREE. -This meant that, regardless of the DT chosen by SPL (either by changing -the header in the image or by the selection code at runtime), Linux -always used the default DT. - -By using the name from the SPL header (which, because of the previous -commit, always matches the DT used by U-Boot proper), Linux also sees -the same board as U-Boot/SPL, even if the boot script later loads a DT -from disk. - -Signed-off-by: Samuel Holland ---- - board/sunxi/board.c | 11 +++++++++++ - 1 file changed, 11 insertions(+) - -diff --git a/board/sunxi/board.c b/board/sunxi/board.c -index eaa40a1ea96..5457b28e135 100644 ---- a/board/sunxi/board.c -+++ b/board/sunxi/board.c -@@ -870,6 +870,7 @@ static void setup_environment(const void *fdt) - - int misc_init_r(void) - { -+ const char *spl_dt_name; - uint boot; - - env_set("fel_booted", NULL); -@@ -888,6 +889,16 @@ int misc_init_r(void) - env_set("mmc_bootdev", "1"); - } - -+ /* Set fdtfile to match the FIT configuration chosen in SPL. */ -+ spl_dt_name = get_spl_dt_name(); -+ if (spl_dt_name) { -+ char *prefix = IS_ENABLED(CONFIG_ARM64) ? "allwinner/" : ""; -+ char str[64]; -+ -+ snprintf(str, sizeof(str), "%s%s.dtb", prefix, spl_dt_name); -+ env_set("fdtfile", str); -+ } -+ - setup_environment(gd->fdt_blob); - - #ifdef CONFIG_USB_ETHER - -From 9e91885814f880ce13ee98cab79876338811949f Mon Sep 17 00:00:00 2001 -From: Peter Robinson -Date: Thu, 9 Jul 2020 12:44:55 +0100 -Subject: [PATCH 7/8] arm64: dts: allwinner: Add initial support for Pine64 - PinePhone - -At the moment PinePhone comes in three slightly incompatible variants: - -- 1.0: Early Developer Batch -- 1.1: Braveheart Batch -- 1.2: Initial Production version - -This syncs the Pinephone DTs from Linux 5.8-rc1. - -Signed-off-by: Peter Robinson ---- - arch/arm/dts/Makefile | 3 + - arch/arm/dts/sun50i-a64-pinephone-1.0.dts | 11 + - arch/arm/dts/sun50i-a64-pinephone-1.1.dts | 11 + - arch/arm/dts/sun50i-a64-pinephone-1.2.dts | 40 +++++++++++++++++++++++ - arch/arm/dts/sun50i-a64-pinephone.dtsi | 379 ++++++++++++++++++++++ - 5 files changed, 403 insertions(+) - create mode 100644 arch/arm/dts/sun50i-a64-pinephone-1.0.dts - create mode 100644 arch/arm/dts/sun50i-a64-pinephone-1.1.dts - create mode 100644 arch/arm/dts/sun50i-a64-pinephone-1.2.dts - create mode 100644 arch/arm/dts/sun50i-a64-pinephone.dtsi - -diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile -index f8f529435b..193f5c6138 100644 ---- a/arch/arm/dts/Makefile -+++ b/arch/arm/dts/Makefile -@@ -608,6 +608,9 @@ dtb-$(CONFIG_MACH_SUN50I) += \ - sun50i-a64-pine64-plus.dtb \ - sun50i-a64-pine64.dtb \ - sun50i-a64-pinebook.dtb \ -+ sun50i-a64-pinephone-1.0.dtb \ -+ sun50i-a64-pinephone-1.1.dtb \ -+ sun50i-a64-pinephone-1.2.dtb \ - sun50i-a64-sopine-baseboard.dtb \ - sun50i-a64-teres-i.dtb - dtb-$(CONFIG_MACH_SUN9I) += \ -diff --git a/arch/arm/dts/sun50i-a64-pinephone-1.0.dts b/arch/arm/dts/sun50i-a64-pinephone-1.0.dts -new file mode 100644 -index 0000000000..0c42272106 ---- /dev/null -+++ b/arch/arm/dts/sun50i-a64-pinephone-1.0.dts -@@ -0,0 +1,11 @@ -+// SPDX-License-Identifier: (GPL-2.0+ OR MIT) -+// Copyright (C) 2020 Ondrej Jirman -+ -+/dts-v1/; -+ -+#include "sun50i-a64-pinephone.dtsi" -+ -+/ { -+ model = "Pine64 PinePhone Developer Batch (1.0)"; -+ compatible = "pine64,pinephone-1.0", "allwinner,sun50i-a64"; -+}; -diff --git a/arch/arm/dts/sun50i-a64-pinephone-1.1.dts b/arch/arm/dts/sun50i-a64-pinephone-1.1.dts -new file mode 100644 -index 0000000000..06a775c416 ---- /dev/null -+++ b/arch/arm/dts/sun50i-a64-pinephone-1.1.dts -@@ -0,0 +1,11 @@ -+// SPDX-License-Identifier: (GPL-2.0+ OR MIT) -+// Copyright (C) 2020 Ondrej Jirman -+ -+/dts-v1/; -+ -+#include "sun50i-a64-pinephone.dtsi" -+ -+/ { -+ model = "Pine64 PinePhone Braveheart (1.1)"; -+ compatible = "pine64,pinephone-1.1", "allwinner,sun50i-a64"; -+}; -diff --git a/arch/arm/dts/sun50i-a64-pinephone-1.2.dts b/arch/arm/dts/sun50i-a64-pinephone-1.2.dts -new file mode 100644 -index 0000000000..a9f5b670c9 ---- /dev/null -+++ b/arch/arm/dts/sun50i-a64-pinephone-1.2.dts -@@ -0,0 +1,40 @@ -+// SPDX-License-Identifier: (GPL-2.0+ OR MIT) -+// Copyright (C) 2020 Ondrej Jirman -+ -+/dts-v1/; -+ -+#include "sun50i-a64-pinephone.dtsi" -+ -+/ { -+ model = "Pine64 PinePhone (1.2)"; -+ compatible = "pine64,pinephone-1.2", "allwinner,sun50i-a64"; -+}; -+ -+&backlight { -+ power-supply = <®_ldo_io0>; -+ /* -+ * PWM backlight circuit on this PinePhone revision was changed since 1.0, -+ * and the lowest PWM duty cycle that doesn't lead to backlight being off -+ * is around 10%. Duty cycle for the lowest brightness level also varries -+ * quite a bit between individual boards, so the lowest value here was -+ * chosen as a safe default. -+ */ -+ brightness-levels = < -+ 5000 5248 5506 5858 6345 -+ 6987 7805 8823 10062 11543 -+ 13287 15317 17654 20319 23336 -+ 26724 30505 34702 39335 44427 -+ 50000 -+ >; -+ num-interpolated-steps = <50>; -+ default-brightness-level = <500>; -+}; -+ -+&lis3mdl { -+ /* -+ * Board revision 1.2 fixed routing of the interrupt to DRDY pin, -+ * enable interrupts. -+ */ -+ interrupt-parent = <&pio>; -+ interrupts = <1 1 IRQ_TYPE_EDGE_RISING>; /* PB1 */ -+}; -diff --git a/arch/arm/dts/sun50i-a64-pinephone.dtsi b/arch/arm/dts/sun50i-a64-pinephone.dtsi -new file mode 100644 -index 0000000000..cefda145c3 ---- /dev/null -+++ b/arch/arm/dts/sun50i-a64-pinephone.dtsi -@@ -0,0 +1,379 @@ -+// SPDX-License-Identifier: (GPL-2.0+ OR MIT) -+// Copyright (C) 2019 Icenowy Zheng -+// Copyright (C) 2020 Martijn Braam -+// Copyright (C) 2020 Ondrej Jirman -+ -+#include "sun50i-a64.dtsi" -+#include "sun50i-a64-cpu-opp.dtsi" -+ -+#include -+#include -+#include -+#include -+ -+/ { -+ aliases { -+ serial0 = &uart0; -+ }; -+ -+ chosen { -+ stdout-path = "serial0:115200n8"; -+ }; -+ -+ leds { -+ compatible = "gpio-leds"; -+ -+ blue { -+ function = LED_FUNCTION_INDICATOR; -+ color = ; -+ gpios = <&pio 3 20 GPIO_ACTIVE_HIGH>; /* PD20 */ -+ }; -+ -+ green { -+ function = LED_FUNCTION_INDICATOR; -+ color = ; -+ gpios = <&pio 3 18 GPIO_ACTIVE_HIGH>; /* PD18 */ -+ }; -+ -+ red { -+ function = LED_FUNCTION_INDICATOR; -+ color = ; -+ gpios = <&pio 3 19 GPIO_ACTIVE_HIGH>; /* PD19 */ -+ }; -+ }; -+ -+ speaker_amp: audio-amplifier { -+ compatible = "simple-audio-amplifier"; -+ enable-gpios = <&pio 2 7 GPIO_ACTIVE_HIGH>; /* PC7 */ -+ sound-name-prefix = "Speaker Amp"; -+ }; -+ -+ vibrator { -+ compatible = "gpio-vibrator"; -+ enable-gpios = <&pio 3 2 GPIO_ACTIVE_HIGH>; /* PD2 */ -+ vcc-supply = <®_dcdc1>; -+ }; -+}; -+ -+&codec { -+ status = "okay"; -+}; -+ -+&codec_analog { -+ cpvdd-supply = <®_eldo1>; -+ status = "okay"; -+}; -+ -+&cpu0 { -+ cpu-supply = <®_dcdc2>; -+}; -+ -+&cpu1 { -+ cpu-supply = <®_dcdc2>; -+}; -+ -+&cpu2 { -+ cpu-supply = <®_dcdc2>; -+}; -+ -+&cpu3 { -+ cpu-supply = <®_dcdc2>; -+}; -+ -+&dai { -+ status = "okay"; -+}; -+ -+&ehci0 { -+ status = "okay"; -+}; -+ -+&ehci1 { -+ status = "okay"; -+}; -+ -+&i2c1 { -+ status = "okay"; -+ -+ /* Magnetometer */ -+ lis3mdl@1e { -+ compatible = "st,lis3mdl-magn"; -+ reg = <0x1e>; -+ vdd-supply = <®_dldo1>; -+ vddio-supply = <®_dldo1>; -+ }; -+ -+ /* Accelerometer/gyroscope */ -+ mpu6050@68 { -+ compatible = "invensense,mpu6050"; -+ reg = <0x68>; -+ interrupt-parent = <&pio>; -+ interrupts = <7 5 IRQ_TYPE_EDGE_RISING>; /* PH5 */ -+ vdd-supply = <®_dldo1>; -+ vddio-supply = <®_dldo1>; -+ }; -+}; -+ -+/* Connected to pogo pins (external spring based pinheader for user addons) */ -+&i2c2 { -+ status = "okay"; -+}; -+ -+&lradc { -+ vref-supply = <®_aldo3>; -+ status = "okay"; -+ -+ button-200 { -+ label = "Volume Up"; -+ linux,code = ; -+ channel = <0>; -+ voltage = <200000>; -+ }; -+ -+ button-400 { -+ label = "Volume Down"; -+ linux,code = ; -+ channel = <0>; -+ voltage = <400000>; -+ }; -+}; -+ -+&mmc0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&mmc0_pins>; -+ vmmc-supply = <®_dcdc1>; -+ vqmmc-supply = <®_dcdc1>; -+ cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */ -+ disable-wp; -+ bus-width = <4>; -+ status = "okay"; -+}; -+ -+&mmc2 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&mmc2_pins>; -+ vmmc-supply = <®_dcdc1>; -+ vqmmc-supply = <®_dcdc1>; -+ bus-width = <8>; -+ non-removable; -+ cap-mmc-hw-reset; -+ status = "okay"; -+}; -+ -+&ohci0 { -+ status = "okay"; -+}; -+ -+&ohci1 { -+ status = "okay"; -+}; -+ -+&pio { -+ vcc-pb-supply = <®_dcdc1>; -+ vcc-pc-supply = <®_dcdc1>; -+ vcc-pd-supply = <®_dcdc1>; -+ vcc-pe-supply = <®_aldo1>; -+ vcc-pf-supply = <®_dcdc1>; -+ vcc-pg-supply = <®_dldo4>; -+ vcc-ph-supply = <®_dcdc1>; -+}; -+ -+&r_pio { -+ /* -+ * FIXME: We can't add that supply for now since it would -+ * create a circular dependency between pinctrl, the regulator -+ * and the RSB Bus. -+ * -+ * vcc-pl-supply = <®_aldo2>; -+ */ -+}; -+ -+&r_rsb { -+ status = "okay"; -+ -+ axp803: pmic@3a3 { -+ compatible = "x-powers,axp803"; -+ reg = <0x3a3>; -+ interrupt-parent = <&r_intc>; -+ interrupts = <0 IRQ_TYPE_LEVEL_LOW>; -+ }; -+}; -+ -+#include "axp803.dtsi" -+ -+&ac_power_supply { -+ status = "okay"; -+}; -+ -+&battery_power_supply { -+ status = "okay"; -+}; -+ -+®_aldo1 { -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ regulator-name = "dovdd-csi"; -+}; -+ -+®_aldo2 { -+ regulator-always-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ regulator-name = "vcc-pl"; -+}; -+ -+®_aldo3 { -+ regulator-always-on; -+ regulator-min-microvolt = <2700000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-name = "vcc-pll-avcc"; -+}; -+ -+®_dcdc1 { -+ regulator-always-on; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-name = "vcc-3v3"; -+}; -+ -+®_dcdc2 { -+ regulator-always-on; -+ regulator-min-microvolt = <1000000>; -+ regulator-max-microvolt = <1300000>; -+ regulator-name = "vdd-cpux"; -+}; -+ -+/* DCDC3 is polyphased with DCDC2 */ -+ -+®_dcdc5 { -+ regulator-always-on; -+ regulator-min-microvolt = <1200000>; -+ regulator-max-microvolt = <1200000>; -+ regulator-name = "vcc-dram"; -+}; -+ -+®_dcdc6 { -+ regulator-always-on; -+ regulator-min-microvolt = <1100000>; -+ regulator-max-microvolt = <1100000>; -+ regulator-name = "vdd-sys"; -+}; -+ -+®_dldo1 { -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-name = "vcc-dsi-sensor"; -+}; -+ -+®_dldo2 { -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ regulator-name = "vcc-mipi-io"; -+}; -+ -+®_dldo3 { -+ regulator-min-microvolt = <2800000>; -+ regulator-max-microvolt = <2800000>; -+ regulator-name = "avdd-csi"; -+}; -+ -+®_dldo4 { -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-name = "vcc-wifi-io"; -+}; -+ -+®_eldo1 { -+ regulator-always-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ regulator-name = "vcc-lpddr"; -+}; -+ -+®_eldo3 { -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ regulator-name = "dvdd-1v8-csi"; -+}; -+ -+®_fldo1 { -+ regulator-min-microvolt = <1200000>; -+ regulator-max-microvolt = <1200000>; -+ regulator-name = "vcc-1v2-hsic"; -+}; -+ -+®_fldo2 { -+ regulator-always-on; -+ regulator-min-microvolt = <1100000>; -+ regulator-max-microvolt = <1100000>; -+ regulator-name = "vdd-cpus"; -+}; -+ -+®_ldo_io0 { -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-name = "vcc-lcd-ctp-stk"; -+ status = "okay"; -+}; -+ -+®_ldo_io1 { -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ regulator-name = "vcc-1v8-typec"; -+ status = "okay"; -+}; -+ -+®_rtc_ldo { -+ regulator-name = "vcc-rtc"; -+}; -+ -+&sound { -+ status = "okay"; -+ simple-audio-card,aux-devs = <&codec_analog>, <&speaker_amp>; -+ simple-audio-card,widgets = "Microphone", "Headset Microphone", -+ "Microphone", "Internal Microphone", -+ "Headphone", "Headphone Jack", -+ "Speaker", "Internal Earpiece", -+ "Speaker", "Internal Speaker"; -+ simple-audio-card,routing = -+ "Headphone Jack", "HP", -+ "Internal Earpiece", "EARPIECE", -+ "Internal Speaker", "Speaker Amp OUTL", -+ "Internal Speaker", "Speaker Amp OUTR", -+ "Speaker Amp INL", "LINEOUT", -+ "Speaker Amp INR", "LINEOUT", -+ "Left DAC", "AIF1 Slot 0 Left", -+ "Right DAC", "AIF1 Slot 0 Right", -+ "AIF1 Slot 0 Left ADC", "Left ADC", -+ "AIF1 Slot 0 Right ADC", "Right ADC", -+ "Internal Microphone", "MBIAS", -+ "MIC1", "Internal Microphone", -+ "Headset Microphone", "HBIAS", -+ "MIC2", "Headset Microphone"; -+}; -+ -+&uart0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&uart0_pb_pins>; -+ status = "okay"; -+}; -+ -+/* Connected to the modem (hardware flow control can't be used) */ -+&uart3 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&uart3_pins>; -+ status = "okay"; -+}; -+ -+&usb_otg { -+ dr_mode = "peripheral"; -+ status = "okay"; -+}; -+ -+&usb_power_supply { -+ status = "okay"; -+}; -+ -+&usbphy { -+ status = "okay"; -+}; --- -2.26.2 - -From bed9375bf6d11bdbf08839135541c44d80189384 Mon Sep 17 00:00:00 2001 -From: Peter Robinson -Date: Wed, 9 Sep 2020 11:19:09 +0100 -Subject: [PATCH] pinephone dts sync to 5.9-rc1 - ---- - arch/arm/dts/sun50i-a64-pinephone-1.1.dts | 19 ++++++++ - arch/arm/dts/sun50i-a64-pinephone.dtsi | 54 ++++++++++++++++++++++- - 2 files changed, 71 insertions(+), 2 deletions(-) - -diff --git a/arch/arm/dts/sun50i-a64-pinephone-1.1.dts b/arch/arm/dts/sun50i-a64-pinephone-1.1.dts -index 06a775c416..3e99a87e9c 100644 ---- a/arch/arm/dts/sun50i-a64-pinephone-1.1.dts -+++ b/arch/arm/dts/sun50i-a64-pinephone-1.1.dts -@@ -9,3 +9,22 @@ - model = "Pine64 PinePhone Braveheart (1.1)"; - compatible = "pine64,pinephone-1.1", "allwinner,sun50i-a64"; - }; -+ -+&backlight { -+ power-supply = <®_ldo_io0>; -+ /* -+ * PWM backlight circuit on this PinePhone revision was changed since -+ * 1.0, and the lowest PWM duty cycle that doesn't lead to backlight -+ * being off is around 20%. Duty cycle for the lowest brightness level -+ * also varries quite a bit between individual boards, so the lowest -+ * value here was chosen as a safe default. -+ */ -+ brightness-levels = < -+ 774 793 814 842 -+ 882 935 1003 1088 -+ 1192 1316 1462 1633 -+ 1830 2054 2309 2596 -+ 2916 3271 3664 4096>; -+ num-interpolated-steps = <50>; -+ default-brightness-level = <400>; -+}; -diff --git a/arch/arm/dts/sun50i-a64-pinephone.dtsi b/arch/arm/dts/sun50i-a64-pinephone.dtsi -index cefda145c3..25150aba74 100644 ---- a/arch/arm/dts/sun50i-a64-pinephone.dtsi -+++ b/arch/arm/dts/sun50i-a64-pinephone.dtsi -@@ -16,6 +16,13 @@ - serial0 = &uart0; - }; - -+ backlight: backlight { -+ compatible = "pwm-backlight"; -+ pwms = <&r_pwm 0 50000 PWM_POLARITY_INVERTED>; -+ enable-gpios = <&pio 7 10 GPIO_ACTIVE_HIGH>; /* PH10 */ -+ /* Backlight configuration differs per PinePhone revision. */ -+ }; -+ - chosen { - stdout-path = "serial0:115200n8"; - }; -@@ -84,6 +91,28 @@ - status = "okay"; - }; - -+&de { -+ status = "okay"; -+}; -+ -+&dphy { -+ status = "okay"; -+}; -+ -+&dsi { -+ vcc-dsi-supply = <®_dldo1>; -+ status = "okay"; -+ -+ panel@0 { -+ compatible = "xingbangda,xbd599"; -+ reg = <0>; -+ reset-gpios = <&pio 3 23 GPIO_ACTIVE_LOW>; /* PD23 */ -+ iovcc-supply = <®_dldo2>; -+ vcc-supply = <®_ldo_io0>; -+ backlight = <&backlight>; -+ }; -+}; -+ - &ehci0 { - status = "okay"; - }; -@@ -92,11 +121,28 @@ - status = "okay"; - }; - -+&i2c0 { -+ status = "okay"; -+ -+ touchscreen@5d { -+ compatible = "goodix,gt917s"; -+ reg = <0x5d>; -+ interrupt-parent = <&pio>; -+ interrupts = <7 4 IRQ_TYPE_LEVEL_HIGH>; /* PH4 */ -+ irq-gpios = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */ -+ reset-gpios = <&pio 7 11 GPIO_ACTIVE_HIGH>; /* PH11 */ -+ AVDD28-supply = <®_ldo_io0>; -+ VDDIO-supply = <®_ldo_io0>; -+ touchscreen-size-x = <720>; -+ touchscreen-size-y = <1440>; -+ }; -+}; -+ - &i2c1 { - status = "okay"; - - /* Magnetometer */ -- lis3mdl@1e { -+ lis3mdl: lis3mdl@1e { - compatible = "st,lis3mdl-magn"; - reg = <0x1e>; - vdd-supply = <®_dldo1>; -@@ -188,6 +234,10 @@ - */ - }; - -+&r_pwm { -+ status = "okay"; -+}; -+ - &r_rsb { - status = "okay"; - -@@ -279,7 +329,7 @@ - - ®_dldo4 { - regulator-min-microvolt = <1800000>; -- regulator-max-microvolt = <3300000>; -+ regulator-max-microvolt = <1800000>; - regulator-name = "vcc-wifi-io"; - }; - --- -2.26.2 - -From ab4bad52587be7da4262d943f19b5db02a24a045 Mon Sep 17 00:00:00 2001 -From: Peter Robinson -Date: Wed, 15 Jul 2020 13:14:09 +0100 -Subject: [PATCH 8/8] Initial Pine64 Pinephone support - -The Pine64 Pinephone is a smartphone based on the AllWinner A64 SoC. -It has the following features: -* 2GB LPDDR3 SDRAM -* 5.95 inch 1440x720 HD IPS capacitive touchscreen -* 16GB eMMC, mSD slot -* Quectel EG25 LTE Modem -* Realtek RTL8723CS WiFi/BT -* Front and read cameras -* Accelerometer, gyro, proximity, ambient light, compass sensors -* A USB Type-C, USB Host, DisplayPort alt mode output, 15W 5V 3A Quick Charge, follows USB PD specification - -Signed-off-by: Peter Robinson ---- - arch/arm/Kconfig | 2 +- - configs/pinephone_defconfig | 38 +++++++++++++++++++++++++++++++++++++ - 2 files changed, 39 insertions(+), 1 deletion(-) - create mode 100644 configs/pinephone_defconfig - -diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig -index e16fe03887..636ba26938 100644 ---- a/arch/arm/Kconfig -+++ b/arch/arm/Kconfig -@@ -1004,7 +1004,7 @@ config ARCH_SUNXI - bool "Support sunxi (Allwinner) SoCs" - select BINMAN - select CMD_GPIO -- select CMD_MMC if MMC -+select CMD_MMC if MMC - select CMD_USB if DISTRO_DEFAULTS - select CLK - select DM -diff --git a/configs/pinephone_defconfig b/configs/pinephone_defconfig -new file mode 100644 -index 0000000000..d5750aa954 ---- /dev/null -+++ b/configs/pinephone_defconfig -@@ -0,0 +1,39 @@ -+CONFIG_ARM=y -+CONFIG_ARCH_SUNXI=y -+CONFIG_SPL=y -+CONFIG_MACH_SUN50I=y -+CONFIG_SUNXI_DRAM_LPDDR3_STOCK=y -+CONFIG_DRAM_CLK=552 -+CONFIG_DRAM_ZQ=3881949 -+CONFIG_NR_DRAM_BANKS=1 -+CONFIG_MMC_SUNXI_SLOT_EXTRA=2 -+CONFIG_R_I2C_ENABLE=y -+# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set -+# CONFIG_SPL_SPI_SUNXI is not set -+# CONFIG_SPL_DOS_PARTITION is not set -+# CONFIG_SPL_EFI_PARTITION is not set -+CONFIG_PINEPHONE_DT_SELECTION=y -+CONFIG_DEFAULT_DEVICE_TREE="sun50i-a64-pinephone-1.2" -+CONFIG_OF_LIST=" sun50i-a64-pinephone-1.2 sun50i-a64-pinephone-1.1 sun50i-a64-pinephone-1.0" -+CONFIG_SYS_RELOC_GD_ENV_ADDR=y -+CONFIG_DM_REGULATOR=y -+CONFIG_DM_REGULATOR_FIXED=y -+CONFIG_DM_PWM=y -+CONFIG_PWM_SUNXI=y -+CONFIG_CMD_GPIO=y -+CONFIG_CMD_GPT=y -+CONFIG_CMD_I2C=y -+CONFIG_CMD_MMC=y -+# CONFIG_CMD_MII is not set -+# CONFIG_CMD_NFS is not set -+# CONFIG_DM_ETH is not set -+# CONFIG_PHY is not set -+# CONFIG_PHY_GIGE is not set -+# CONFIG_SUN8I_EMAC is not set -+# CONFIG_PHY_REALTEK is not set -+# CONFIG_CMD_SF is not set -+# CONFIG_SPI is not set -+# CONFIG_DM_SPI is not set -+# CONFIG_SPI_FLASH is not set -+# CONFIG_SPI_MEM is not set -+# CONFIG_DM_SPI_FLASH is not set --- -2.26.2 diff --git a/AllWinner-PineTab.patch b/AllWinner-PineTab.patch index ce569e7..04b6896 100644 --- a/AllWinner-PineTab.patch +++ b/AllWinner-PineTab.patch @@ -1,496 +1,3 @@ -From 9b10863bc8b14ca5463a95dd2c77555cfc68f326 Mon Sep 17 00:00:00 2001 -From: Peter Robinson -Date: Wed, 9 Sep 2020 10:59:31 +0100 -Subject: [PATCH] Initial PineTab dts from linux 5.7-rc1 - -Signed-off-by: Peter Robinson ---- - arch/arm/dts/Makefile | 1 + - arch/arm/dts/sun50i-a64-pinetab.dts | 460 ++++++++++++++++++++++++++++ - 2 files changed, 461 insertions(+) - create mode 100644 arch/arm/dts/sun50i-a64-pinetab.dts - -diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile -index 193f5c6138..57ef94450a 100644 ---- a/arch/arm/dts/Makefile -+++ b/arch/arm/dts/Makefile -@@ -611,6 +611,7 @@ dtb-$(CONFIG_MACH_SUN50I) += \ - sun50i-a64-pinephone-1.0.dtb \ - sun50i-a64-pinephone-1.1.dtb \ - sun50i-a64-pinephone-1.2.dtb \ -+ sun50i-a64-pinetab.dtb \ - sun50i-a64-sopine-baseboard.dtb \ - sun50i-a64-teres-i.dtb - dtb-$(CONFIG_MACH_SUN9I) += \ -diff --git a/arch/arm/dts/sun50i-a64-pinetab.dts b/arch/arm/dts/sun50i-a64-pinetab.dts -new file mode 100644 -index 0000000000..316e8a4439 ---- /dev/null -+++ b/arch/arm/dts/sun50i-a64-pinetab.dts -@@ -0,0 +1,460 @@ -+// SPDX-License-Identifier: (GPL-2.0+ OR MIT) -+/* -+ * Copyright (C) 2019 Icenowy Zheng -+ * -+ */ -+ -+/dts-v1/; -+ -+#include "sun50i-a64.dtsi" -+#include "sun50i-a64-cpu-opp.dtsi" -+ -+#include -+#include -+#include -+ -+/ { -+ model = "PineTab"; -+ compatible = "pine64,pinetab", "allwinner,sun50i-a64"; -+ -+ aliases { -+ serial0 = &uart0; -+ ethernet0 = &rtl8723cs; -+ }; -+ -+ backlight: backlight { -+ compatible = "pwm-backlight"; -+ pwms = <&pwm 0 50000 PWM_POLARITY_INVERTED>; -+ brightness-levels = <0 16 18 20 22 24 26 29 32 35 38 42 46 51 56 62 68 75 83 91 100>; -+ default-brightness-level = <15>; -+ enable-gpios = <&pio 3 23 GPIO_ACTIVE_HIGH>; /* PD23 */ -+ power-supply = <&vdd_bl>; -+ }; -+ -+ chosen { -+ stdout-path = "serial0:115200n8"; -+ }; -+ -+ i2c-csi { -+ compatible = "i2c-gpio"; -+ sda-gpios = <&pio 4 13 GPIO_ACTIVE_HIGH>; /* PE13 */ -+ scl-gpios = <&pio 4 12 GPIO_ACTIVE_HIGH>; /* PE12 */ -+ i2c-gpio,delay-us = <5>; -+ #address-cells = <1>; -+ #size-cells = <0>; -+ -+ /* Rear camera */ -+ ov5640: camera@3c { -+ compatible = "ovti,ov5640"; -+ reg = <0x3c>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&csi_mclk_pin>; -+ clocks = <&ccu CLK_CSI_MCLK>; -+ clock-names = "xclk"; -+ -+ AVDD-supply = <®_dldo3>; -+ DOVDD-supply = <®_aldo1>; -+ DVDD-supply = <®_eldo3>; -+ reset-gpios = <&pio 4 14 GPIO_ACTIVE_LOW>; /* PE14 */ -+ powerdown-gpios = <&pio 4 15 GPIO_ACTIVE_HIGH>; /* PE15 */ -+ -+ port { -+ ov5640_ep: endpoint { -+ remote-endpoint = <&csi_ep>; -+ bus-width = <8>; -+ hsync-active = <1>; /* Active high */ -+ vsync-active = <0>; /* Active low */ -+ data-active = <1>; /* Active high */ -+ pclk-sample = <1>; /* Rising */ -+ }; -+ }; -+ }; -+ }; -+ -+ speaker_amp: audio-amplifier { -+ compatible = "simple-audio-amplifier"; -+ enable-gpios = <&pio 7 7 GPIO_ACTIVE_HIGH>; /* PH7 */ -+ sound-name-prefix = "Speaker Amp"; -+ }; -+ -+ vdd_bl: regulator@0 { -+ compatible = "regulator-fixed"; -+ regulator-name = "bl-3v3"; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ gpio = <&pio 7 6 GPIO_ACTIVE_HIGH>; /* PH6 */ -+ enable-active-high; -+ }; -+ -+ wifi_pwrseq: wifi_pwrseq { -+ compatible = "mmc-pwrseq-simple"; -+ reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */ -+ post-power-on-delay-ms = <200>; -+ }; -+}; -+ -+&codec { -+ status = "okay"; -+}; -+ -+&codec_analog { -+ hpvcc-supply = <®_eldo1>; -+ status = "okay"; -+}; -+ -+&cpu0 { -+ cpu-supply = <®_dcdc2>; -+}; -+ -+&cpu1 { -+ cpu-supply = <®_dcdc2>; -+}; -+ -+&cpu2 { -+ cpu-supply = <®_dcdc2>; -+}; -+ -+&cpu3 { -+ cpu-supply = <®_dcdc2>; -+}; -+ -+&csi { -+ status = "okay"; -+ -+ port { -+ #address-cells = <1>; -+ #size-cells = <0>; -+ -+ csi_ep: endpoint { -+ remote-endpoint = <&ov5640_ep>; -+ bus-width = <8>; -+ hsync-active = <1>; /* Active high */ -+ vsync-active = <0>; /* Active low */ -+ data-active = <1>; /* Active high */ -+ pclk-sample = <1>; /* Rising */ -+ }; -+ }; -+}; -+ -+&dai { -+ status = "okay"; -+}; -+ -+&de { -+ status = "okay"; -+}; -+ -+&dphy { -+ status = "okay"; -+}; -+ -+&dsi { -+ vcc-dsi-supply = <®_dldo1>; -+ status = "okay"; -+ -+ panel@0 { -+ compatible = "feixin,k101-im2ba02"; -+ reg = <0>; -+ avdd-supply = <®_dc1sw>; -+ dvdd-supply = <®_dc1sw>; -+ cvdd-supply = <®_ldo_io1>; -+ reset-gpios = <&pio 3 24 GPIO_ACTIVE_HIGH>; /* PD24 */ -+ backlight = <&backlight>; -+ }; -+}; -+ -+&ehci0 { -+ status = "okay"; -+}; -+ -+&ehci1 { -+ status = "okay"; -+}; -+ -+&i2c0 { -+ status = "okay"; -+ -+ touchscreen@5d { -+ compatible = "goodix,gt9271"; -+ reg = <0x5d>; -+ interrupt-parent = <&pio>; -+ interrupts = <7 4 IRQ_TYPE_LEVEL_HIGH>; /* PH4 */ -+ irq-gpios = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */ -+ reset-gpios = <&pio 7 8 GPIO_ACTIVE_HIGH>; /* PH8 */ -+ AVDD28-supply = <®_ldo_io1>; -+ }; -+}; -+ -+&i2c0_pins { -+ bias-pull-up; -+}; -+ -+&i2c1 { -+ status = "okay"; -+ -+ /* TODO: add Bochs BMA223 accelerometer here */ -+}; -+ -+&lradc { -+ vref-supply = <®_aldo3>; -+ status = "okay"; -+ -+ button-200 { -+ label = "Volume Up"; -+ linux,code = ; -+ channel = <0>; -+ voltage = <200000>; -+ }; -+ -+ button-400 { -+ label = "Volume Down"; -+ linux,code = ; -+ channel = <0>; -+ voltage = <400000>; -+ }; -+}; -+ -+&mixer1 { -+ status = "okay"; -+}; -+ -+&mmc0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&mmc0_pins>; -+ vmmc-supply = <®_dcdc1>; -+ cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; -+ disable-wp; -+ bus-width = <4>; -+ status = "okay"; -+}; -+ -+&mmc1 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&mmc1_pins>; -+ vmmc-supply = <®_dldo4>; -+ vqmmc-supply = <®_eldo1>; -+ mmc-pwrseq = <&wifi_pwrseq>; -+ bus-width = <4>; -+ non-removable; -+ status = "okay"; -+ -+ rtl8723cs: wifi@1 { -+ reg = <1>; -+ }; -+}; -+ -+&mmc2 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&mmc2_pins>; -+ vmmc-supply = <®_dcdc1>; -+ vqmmc-supply = <®_dcdc1>; -+ bus-width = <8>; -+ non-removable; -+ cap-mmc-hw-reset; -+ status = "okay"; -+}; -+ -+&ohci0 { -+ status = "okay"; -+}; -+ -+&pwm { -+ status = "okay"; -+}; -+ -+&r_rsb { -+ status = "okay"; -+ -+ axp803: pmic@3a3 { -+ compatible = "x-powers,axp803"; -+ reg = <0x3a3>; -+ interrupt-parent = <&r_intc>; -+ interrupts = <0 IRQ_TYPE_LEVEL_LOW>; -+ x-powers,drive-vbus-en; -+ }; -+}; -+ -+#include "axp803.dtsi" -+ -+&ac_power_supply { -+ status = "okay"; -+}; -+ -+&battery_power_supply { -+ status = "okay"; -+}; -+ -+®_aldo1 { -+ regulator-min-microvolt = <2800000>; -+ regulator-max-microvolt = <2800000>; -+ regulator-name = "dovdd-csi"; -+}; -+ -+®_aldo2 { -+ regulator-always-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-name = "vcc-pl"; -+}; -+ -+®_aldo3 { -+ regulator-always-on; -+ regulator-min-microvolt = <2700000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-name = "vcc-pll-avcc"; -+}; -+ -+®_dc1sw { -+ regulator-name = "vcc-lcd"; -+}; -+ -+®_dcdc1 { -+ regulator-always-on; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-name = "vcc-3v3"; -+}; -+ -+®_dcdc2 { -+ regulator-always-on; -+ regulator-min-microvolt = <1000000>; -+ regulator-max-microvolt = <1300000>; -+ regulator-name = "vdd-cpux"; -+}; -+ -+/* DCDC3 is polyphased with DCDC2 */ -+ -+®_dcdc5 { -+ regulator-always-on; -+ regulator-min-microvolt = <1200000>; -+ regulator-max-microvolt = <1200000>; -+ regulator-name = "vcc-dram"; -+}; -+ -+®_dcdc6 { -+ regulator-always-on; -+ regulator-min-microvolt = <1100000>; -+ regulator-max-microvolt = <1100000>; -+ regulator-name = "vdd-sys"; -+}; -+ -+®_dldo1 { -+ regulator-always-on; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-name = "vcc-hdmi-dsi-sensor"; -+}; -+ -+®_dldo3 { -+ regulator-min-microvolt = <2800000>; -+ regulator-max-microvolt = <2800000>; -+ regulator-name = "avdd-csi"; -+}; -+ -+®_dldo4 { -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-name = "vcc-wifi"; -+}; -+ -+®_drivevbus { -+ regulator-name = "usb0-vbus"; -+ status = "okay"; -+}; -+ -+®_eldo1 { -+ regulator-always-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ regulator-name = "cpvdd"; -+}; -+ -+®_eldo2 { -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ regulator-name = "vcca-1v8"; -+}; -+ -+®_eldo3 { -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ regulator-name = "dvdd-1v8-csi"; -+}; -+ -+®_fldo1 { -+ regulator-min-microvolt = <1200000>; -+ regulator-max-microvolt = <1200000>; -+ regulator-name = "vcc-1v2-hsic"; -+}; -+ -+®_fldo2 { -+ regulator-always-on; -+ regulator-min-microvolt = <1100000>; -+ regulator-max-microvolt = <1100000>; -+ regulator-name = "vdd-cpus"; -+}; -+ -+®_ldo_io0 { -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-name = "vcc-usb"; -+ status = "okay"; -+}; -+ -+®_ldo_io1 { -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-enable-ramp-delay = <3500000>; -+ regulator-name = "vcc-touchscreen"; -+ status = "okay"; -+}; -+ -+®_rtc_ldo { -+ regulator-name = "vcc-rtc"; -+}; -+ -+&sound { -+ status = "okay"; -+ simple-audio-card,aux-devs = <&codec_analog>, <&speaker_amp>; -+ simple-audio-card,widgets = "Microphone", "Internal Microphone Left", -+ "Microphone", "Internal Microphone Right", -+ "Headphone", "Headphone Jack", -+ "Speaker", "Internal Speaker"; -+ simple-audio-card,routing = -+ "Left DAC", "AIF1 Slot 0 Left", -+ "Right DAC", "AIF1 Slot 0 Right", -+ "Speaker Amp INL", "LINEOUT", -+ "Speaker Amp INR", "LINEOUT", -+ "Internal Speaker", "Speaker Amp OUTL", -+ "Internal Speaker", "Speaker Amp OUTR", -+ "Headphone Jack", "HP", -+ "AIF1 Slot 0 Left ADC", "Left ADC", -+ "AIF1 Slot 0 Right ADC", "Right ADC", -+ "Internal Microphone Left", "MBIAS", -+ "MIC1", "Internal Microphone Left", -+ "Internal Microphone Right", "HBIAS", -+ "MIC2", "Internal Microphone Right"; -+}; -+ -+&uart0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&uart0_pb_pins>; -+ status = "okay"; -+}; -+ -+&usb_otg { -+ dr_mode = "otg"; -+ status = "okay"; -+}; -+ -+&usb_power_supply { -+ status = "okay"; -+}; -+ -+&usbphy { -+ usb0_id_det-gpios = <&pio 7 9 GPIO_ACTIVE_HIGH>; /* PH9 */ -+ usb0_vbus_power-supply = <&usb_power_supply>; -+ usb0_vbus-supply = <®_drivevbus>; -+ usb1_vbus-supply = <®_ldo_io0>; -+ status = "okay"; -+}; --- -2.26.2 - From 6bf15552c2b6becb48ce7732120e0ddb2078cb1a Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Tue, 14 Apr 2020 09:53:07 +0100 diff --git a/AllWinner-UpstreamSync.patch b/AllWinner-UpstreamSync.patch deleted file mode 100644 index 0b6bac4..0000000 --- a/AllWinner-UpstreamSync.patch +++ /dev/null @@ -1,1297 +0,0 @@ -From 6e5d771060dff5350e5940b7e457884b47a560ac Mon Sep 17 00:00:00 2001 -From: Peter Robinson -Date: Thu, 9 Jul 2020 12:20:53 +0100 -Subject: [PATCH 1/8] dt-bindings: clk: sync sun50i-a64-ccu.h to linux 5.8-rc1 - -Sync the clock bindings for the Allwinner A64 to Linux - -Signed-off-by: Peter Robinson ---- - include/dt-bindings/clock/sun50i-a64-ccu.h | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/include/dt-bindings/clock/sun50i-a64-ccu.h b/include/dt-bindings/clock/sun50i-a64-ccu.h -index d66432c6e6..318eb15c41 100644 ---- a/include/dt-bindings/clock/sun50i-a64-ccu.h -+++ b/include/dt-bindings/clock/sun50i-a64-ccu.h -@@ -43,8 +43,10 @@ - #ifndef _DT_BINDINGS_CLK_SUN50I_A64_H_ - #define _DT_BINDINGS_CLK_SUN50I_A64_H_ - -+#define CLK_PLL_VIDEO0 7 - #define CLK_PLL_PERIPH0 11 - -+#define CLK_CPUX 21 - #define CLK_BUS_MIPI_DSI 28 - #define CLK_BUS_CE 29 - #define CLK_BUS_DMA 30 -@@ -129,7 +131,7 @@ - #define CLK_AVS 109 - #define CLK_HDMI 110 - #define CLK_HDMI_DDC 111 -- -+#define CLK_MBUS 112 - #define CLK_DSI_DPHY 113 - #define CLK_GPU 114 - --- -2.26.2 - -From 274dff055e80778277860f72a903c01ef33f87c7 Mon Sep 17 00:00:00 2001 -From: Peter Robinson -Date: Thu, 9 Jul 2020 12:29:15 +0100 -Subject: [PATCH 2/8] dt-bindings: leds: sync leds common.h to linux from - 5.8-rc1 - -Sync the leds common.h to the latest Linux version. - -Signed-off-by: Peter Robinson ---- - include/dt-bindings/leds/common.h | 36 ++++++++++++++++++++++--------- - 1 file changed, 26 insertions(+), 10 deletions(-) - -diff --git a/include/dt-bindings/leds/common.h b/include/dt-bindings/leds/common.h -index 9e1256a7c1..0ce7dfc00d 100644 ---- a/include/dt-bindings/leds/common.h -+++ b/include/dt-bindings/leds/common.h -@@ -6,6 +6,7 @@ - * Author: Jacek Anaszewski - * - * Copyright (C) 2019 Jacek Anaszewski -+ * Copyright (C) 2020 Pavel Machek - */ - - #ifndef __DT_BINDINGS_LEDS_H -@@ -32,16 +33,38 @@ - #define LED_COLOR_ID_MAX 8 - - /* Standard LED functions */ -+/* Keyboard LEDs, usually it would be input4::capslock etc. */ -+/* Obsolete equivalent: "shift-key-light" */ -+#define LED_FUNCTION_CAPSLOCK "capslock" -+#define LED_FUNCTION_SCROLLLOCK "scrolllock" -+#define LED_FUNCTION_NUMLOCK "numlock" -+/* Obsolete equivalents: "tpacpi::thinklight" (IBM/Lenovo Thinkpads), -+ "lp5523:kb{1,2,3,4,5,6}" (Nokia N900) */ -+#define LED_FUNCTION_KBD_BACKLIGHT "kbd_backlight" -+ -+/* System LEDs, usually found on system body. -+ platform::mute (etc) is sometimes seen, :mute would be better */ -+#define LED_FUNCTION_POWER "power" -+#define LED_FUNCTION_DISK "disk" -+ -+/* Obsolete: "platform:*:charging" (allwinner sun50i) */ -+#define LED_FUNCTION_CHARGING "charging" -+/* Used RGB notification LEDs common on phones. -+ Obsolete equivalents: "status-led:{red,green,blue}" (Motorola Droid 4), -+ "lp5523:{r,g,b}" (Nokia N900) */ -+#define LED_FUNCTION_STATUS "status" -+ -+#define LED_FUNCTION_MICMUTE "micmute" -+#define LED_FUNCTION_MUTE "mute" -+ -+/* Miscelleaus functions. Use functions above if you can. */ - #define LED_FUNCTION_ACTIVITY "activity" - #define LED_FUNCTION_ALARM "alarm" - #define LED_FUNCTION_BACKLIGHT "backlight" - #define LED_FUNCTION_BLUETOOTH "bluetooth" - #define LED_FUNCTION_BOOT "boot" - #define LED_FUNCTION_CPU "cpu" --#define LED_FUNCTION_CAPSLOCK "capslock" --#define LED_FUNCTION_CHARGING "charging" - #define LED_FUNCTION_DEBUG "debug" --#define LED_FUNCTION_DISK "disk" - #define LED_FUNCTION_DISK_ACTIVITY "disk-activity" - #define LED_FUNCTION_DISK_ERR "disk-err" - #define LED_FUNCTION_DISK_READ "disk-read" -@@ -50,21 +73,14 @@ - #define LED_FUNCTION_FLASH "flash" - #define LED_FUNCTION_HEARTBEAT "heartbeat" - #define LED_FUNCTION_INDICATOR "indicator" --#define LED_FUNCTION_KBD_BACKLIGHT "kbd_backlight" - #define LED_FUNCTION_LAN "lan" - #define LED_FUNCTION_MAIL "mail" - #define LED_FUNCTION_MTD "mtd" --#define LED_FUNCTION_MICMUTE "micmute" --#define LED_FUNCTION_MUTE "mute" --#define LED_FUNCTION_NUMLOCK "numlock" - #define LED_FUNCTION_PANIC "panic" - #define LED_FUNCTION_PROGRAMMING "programming" --#define LED_FUNCTION_POWER "power" - #define LED_FUNCTION_RX "rx" - #define LED_FUNCTION_SD "sd" --#define LED_FUNCTION_SCROLLLOCK "scrolllock" - #define LED_FUNCTION_STANDBY "standby" --#define LED_FUNCTION_STATUS "status" - #define LED_FUNCTION_TORCH "torch" - #define LED_FUNCTION_TX "tx" - #define LED_FUNCTION_USB "usb" --- -2.26.2 - -From 7010e7d2b19d2ded674e376855d2716b7cd421b7 Mon Sep 17 00:00:00 2001 -From: Peter Robinson -Date: Fri, 10 Jul 2020 12:46:11 +0100 -Subject: [PATCH 3/8] dt-bindings: clk/reset: sync updated bindings for - Allwinner DE2 display engine - -Sync the clock and reset bindings for the Allwinner DE2 display engine to Linux 5.8-rc1. - -Signed-off-by: Peter Robinson ---- - include/dt-bindings/clock/sun8i-de2.h | 3 +++ - include/dt-bindings/reset/sun8i-de2.h | 1 + - 2 files changed, 4 insertions(+) - -diff --git a/include/dt-bindings/clock/sun8i-de2.h b/include/dt-bindings/clock/sun8i-de2.h -index 3bed63b524..7768f73b05 100644 ---- a/include/dt-bindings/clock/sun8i-de2.h -+++ b/include/dt-bindings/clock/sun8i-de2.h -@@ -15,4 +15,7 @@ - #define CLK_MIXER1 7 - #define CLK_WB 8 - -+#define CLK_BUS_ROT 9 -+#define CLK_ROT 10 -+ - #endif /* _DT_BINDINGS_CLOCK_SUN8I_DE2_H_ */ -diff --git a/include/dt-bindings/reset/sun8i-de2.h b/include/dt-bindings/reset/sun8i-de2.h -index 9526017432..1c36a6ac86 100644 ---- a/include/dt-bindings/reset/sun8i-de2.h -+++ b/include/dt-bindings/reset/sun8i-de2.h -@@ -10,5 +10,6 @@ - #define RST_MIXER0 0 - #define RST_MIXER1 1 - #define RST_WB 2 -+#define RST_ROT 3 - - #endif /* _DT_BINDINGS_RESET_SUN8I_DE2_H_ */ --- -2.26.2 - -From bdbf5f21343571af989754c908299854e81f44dd Mon Sep 17 00:00:00 2001 -From: Peter Robinson -Date: Thu, 9 Jul 2020 12:24:41 +0100 -Subject: [PATCH 4/8] arm: dts: sync axp803.dtsi from linux 5.8-rc1 - -Sync the Allwinner axp803 device tree to the latest upstream Linux. - -Signed-off-by: Peter Robinson ---- - arch/arm/dts/axp803.dtsi | 82 ++++++++++++++++++++-------------------- - 1 file changed, 41 insertions(+), 41 deletions(-) - -diff --git a/arch/arm/dts/axp803.dtsi b/arch/arm/dts/axp803.dtsi -index e5eae8bafc..10e9186a76 100644 ---- a/arch/arm/dts/axp803.dtsi -+++ b/arch/arm/dts/axp803.dtsi -@@ -1,44 +1,5 @@ --/* -- * Copyright 2017 Icenowy Zheng -- * -- * This file is dual-licensed: you can use it either under the terms -- * of the GPL or the X11 license, at your option. Note that this dual -- * licensing only applies to this file, and not this project as a -- * whole. -- * -- * a) This file is free software; you can redistribute it and/or -- * modify it under the terms of the GNU General Public License as -- * published by the Free Software Foundation; either version 2 of the -- * License, or (at your option) any later version. -- * -- * This file is distributed in the hope that it will be useful, -- * but WITHOUT ANY WARRANTY; without even the implied warranty of -- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- * GNU General Public License for more details. -- * -- * Or, alternatively, -- * -- * b) Permission is hereby granted, free of charge, to any person -- * obtaining a copy of this software and associated documentation -- * files (the "Software"), to deal in the Software without -- * restriction, including without limitation the rights to use, -- * copy, modify, merge, publish, distribute, sublicense, and/or -- * sell copies of the Software, and to permit persons to whom the -- * Software is furnished to do so, subject to the following -- * conditions: -- * -- * The above copyright notice and this permission notice shall be -- * included in all copies or substantial portions of the Software. -- * -- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -- * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -- * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -- * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -- * OTHER DEALINGS IN THE SOFTWARE. -- */ -+// SPDX-License-Identifier: (GPL-2.0+ OR MIT) -+// Copyright 2017 Icenowy Zheng - - /* - * AXP803 Integrated Power Management Chip -@@ -49,6 +10,39 @@ - interrupt-controller; - #interrupt-cells = <1>; - -+ ac_power_supply: ac-power-supply { -+ compatible = "x-powers,axp803-ac-power-supply", -+ "x-powers,axp813-ac-power-supply"; -+ status = "disabled"; -+ }; -+ -+ axp_adc: adc { -+ compatible = "x-powers,axp803-adc", "x-powers,axp813-adc"; -+ #io-channel-cells = <1>; -+ }; -+ -+ axp_gpio: gpio { -+ compatible = "x-powers,axp803-gpio", "x-powers,axp813-gpio"; -+ gpio-controller; -+ #gpio-cells = <2>; -+ -+ gpio0_ldo: gpio0-ldo { -+ pins = "GPIO0"; -+ function = "ldo"; -+ }; -+ -+ gpio1_ldo: gpio1-ldo { -+ pins = "GPIO1"; -+ function = "ldo"; -+ }; -+ }; -+ -+ battery_power_supply: battery-power-supply { -+ compatible = "x-powers,axp803-battery-power-supply", -+ "x-powers,axp813-battery-power-supply"; -+ status = "disabled"; -+ }; -+ - regulators { - /* Default work frequency for buck regulators */ - x-powers,dcdc-freq = <3000>; -@@ -152,4 +146,10 @@ - status = "disabled"; - }; - }; -+ -+ usb_power_supply: usb-power-supply { -+ compatible = "x-powers,axp803-usb-power-supply", -+ "x-powers,axp813-usb-power-supply"; -+ status = "disabled"; -+ }; - }; --- -2.26.2 - -From e0f7e9ce1a8a889bf7a1c5842700f0cb368bc81b Mon Sep 17 00:00:00 2001 -From: Peter Robinson -Date: Thu, 9 Jul 2020 12:26:34 +0100 -Subject: [PATCH 5/8] arm: dts: Add new sun50i-a64-cpu-opp.dtsi from Linux - 5.8-rc1 - -Sync the Allwinner A64 CPU operating points dtsi from Linux. - -Signed-off-by: Peter Robinson ---- - arch/arm/dts/sun50i-a64-cpu-opp.dtsi | 75 ++++++++++++++++++++++++++++ - 1 file changed, 75 insertions(+) - create mode 100644 arch/arm/dts/sun50i-a64-cpu-opp.dtsi - -diff --git a/arch/arm/dts/sun50i-a64-cpu-opp.dtsi b/arch/arm/dts/sun50i-a64-cpu-opp.dtsi -new file mode 100644 -index 0000000000..578c37490d ---- /dev/null -+++ b/arch/arm/dts/sun50i-a64-cpu-opp.dtsi -@@ -0,0 +1,75 @@ -+// SPDX-License-Identifier: GPL-2.0 -+/* -+ * Copyright (C) 2020 Vasily khoruzhick -+ */ -+ -+/ { -+ cpu0_opp_table: opp_table0 { -+ compatible = "operating-points-v2"; -+ opp-shared; -+ -+ opp-648000000 { -+ opp-hz = /bits/ 64 <648000000>; -+ opp-microvolt = <1040000>; -+ clock-latency-ns = <244144>; /* 8 32k periods */ -+ }; -+ -+ opp-816000000 { -+ opp-hz = /bits/ 64 <816000000>; -+ opp-microvolt = <1100000>; -+ clock-latency-ns = <244144>; /* 8 32k periods */ -+ }; -+ -+ opp-912000000 { -+ opp-hz = /bits/ 64 <912000000>; -+ opp-microvolt = <1120000>; -+ clock-latency-ns = <244144>; /* 8 32k periods */ -+ }; -+ -+ opp-960000000 { -+ opp-hz = /bits/ 64 <960000000>; -+ opp-microvolt = <1160000>; -+ clock-latency-ns = <244144>; /* 8 32k periods */ -+ }; -+ -+ opp-1008000000 { -+ opp-hz = /bits/ 64 <1008000000>; -+ opp-microvolt = <1200000>; -+ clock-latency-ns = <244144>; /* 8 32k periods */ -+ }; -+ -+ opp-1056000000 { -+ opp-hz = /bits/ 64 <1056000000>; -+ opp-microvolt = <1240000>; -+ clock-latency-ns = <244144>; /* 8 32k periods */ -+ }; -+ -+ opp-1104000000 { -+ opp-hz = /bits/ 64 <1104000000>; -+ opp-microvolt = <1260000>; -+ clock-latency-ns = <244144>; /* 8 32k periods */ -+ }; -+ -+ opp-1152000000 { -+ opp-hz = /bits/ 64 <1152000000>; -+ opp-microvolt = <1300000>; -+ clock-latency-ns = <244144>; /* 8 32k periods */ -+ }; -+ }; -+}; -+ -+&cpu0 { -+ operating-points-v2 = <&cpu0_opp_table>; -+}; -+ -+&cpu1 { -+ operating-points-v2 = <&cpu0_opp_table>; -+}; -+ -+&cpu2 { -+ operating-points-v2 = <&cpu0_opp_table>; -+}; -+ -+&cpu3 { -+ operating-points-v2 = <&cpu0_opp_table>; -+}; --- -2.26.2 - -From b077a5962ba631e198d42c14516426b878c157eb Mon Sep 17 00:00:00 2001 -From: Peter Robinson -Date: Fri, 10 Jul 2020 12:39:21 +0100 -Subject: [PATCH 6/8] arm: dts: Sync the sun50i-a64.dtsi from Linux 5.8-rc1 - -Sync the Allwinner A64 sun50i-a64.dtsi from Linux. - -Signed-off-by: Peter Robinson ---- - arch/arm/dts/sun50i-a64.dtsi | 532 ++++++++++++++++++++++++++++------- - 1 file changed, 434 insertions(+), 98 deletions(-) - -diff --git a/arch/arm/dts/sun50i-a64.dtsi b/arch/arm/dts/sun50i-a64.dtsi -index ff41abc96a..8dfbcd1440 100644 ---- a/arch/arm/dts/sun50i-a64.dtsi -+++ b/arch/arm/dts/sun50i-a64.dtsi -@@ -1,46 +1,7 @@ --/* -- * Copyright (C) 2016 ARM Ltd. -- * based on the Allwinner H3 dtsi: -- * Copyright (C) 2015 Jens Kuske -- * -- * This file is dual-licensed: you can use it either under the terms -- * of the GPL or the X11 license, at your option. Note that this dual -- * licensing only applies to this file, and not this project as a -- * whole. -- * -- * a) This file is free software; you can redistribute it and/or -- * modify it under the terms of the GNU General Public License as -- * published by the Free Software Foundation; either version 2 of the -- * License, or (at your option) any later version. -- * -- * This file is distributed in the hope that it will be useful, -- * but WITHOUT ANY WARRANTY; without even the implied warranty of -- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- * GNU General Public License for more details. -- * -- * Or, alternatively, -- * -- * b) Permission is hereby granted, free of charge, to any person -- * obtaining a copy of this software and associated documentation -- * files (the "Software"), to deal in the Software without -- * restriction, including without limitation the rights to use, -- * copy, modify, merge, publish, distribute, sublicense, and/or -- * sell copies of the Software, and to permit persons to whom the -- * Software is furnished to do so, subject to the following -- * conditions: -- * -- * The above copyright notice and this permission notice shall be -- * included in all copies or substantial portions of the Software. -- * -- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -- * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -- * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -- * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -- * OTHER DEALINGS IN THE SOFTWARE. -- */ -+// SPDX-License-Identifier: (GPL-2.0+ OR MIT) -+// Copyright (C) 2016 ARM Ltd. -+// based on the Allwinner H3 dtsi: -+// Copyright (C) 2015 Jens Kuske - - #include - #include -@@ -49,6 +10,7 @@ - #include - #include - #include -+#include - - / { - interrupt-parent = <&gic>; -@@ -84,35 +46,47 @@ - #size-cells = <0>; - - cpu0: cpu@0 { -- compatible = "arm,cortex-a53", "arm,armv8"; -+ compatible = "arm,cortex-a53"; - device_type = "cpu"; - reg = <0>; - enable-method = "psci"; - next-level-cache = <&L2>; -+ clocks = <&ccu 21>; -+ clock-names = "cpu"; -+ #cooling-cells = <2>; - }; - - cpu1: cpu@1 { -- compatible = "arm,cortex-a53", "arm,armv8"; -+ compatible = "arm,cortex-a53"; - device_type = "cpu"; - reg = <1>; - enable-method = "psci"; - next-level-cache = <&L2>; -+ clocks = <&ccu 21>; -+ clock-names = "cpu"; -+ #cooling-cells = <2>; - }; - - cpu2: cpu@2 { -- compatible = "arm,cortex-a53", "arm,armv8"; -+ compatible = "arm,cortex-a53"; - device_type = "cpu"; - reg = <2>; - enable-method = "psci"; - next-level-cache = <&L2>; -+ clocks = <&ccu 21>; -+ clock-names = "cpu"; -+ #cooling-cells = <2>; - }; - - cpu3: cpu@3 { -- compatible = "arm,cortex-a53", "arm,armv8"; -+ compatible = "arm,cortex-a53"; - device_type = "cpu"; - reg = <3>; - enable-method = "psci"; - next-level-cache = <&L2>; -+ clocks = <&ccu 21>; -+ clock-names = "cpu"; -+ #cooling-cells = <2>; - }; - - L2: l2-cache { -@@ -139,15 +113,16 @@ - #clock-cells = <0>; - compatible = "fixed-clock"; - clock-frequency = <32768>; -- clock-output-names = "osc32k"; -+ clock-output-names = "ext-osc32k"; - }; - -- iosc: internal-osc-clk { -- #clock-cells = <0>; -- compatible = "fixed-clock"; -- clock-frequency = <16000000>; -- clock-accuracy = <300000000>; -- clock-output-names = "iosc"; -+ pmu { -+ compatible = "arm,cortex-a53-pmu"; -+ interrupts = , -+ , -+ , -+ ; -+ interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>; - }; - - psci { -@@ -155,26 +130,33 @@ - method = "smc"; - }; - -- sound_spdif { -+ sound: sound { - compatible = "simple-audio-card"; -- simple-audio-card,name = "On-board SPDIF"; -+ simple-audio-card,name = "sun50i-a64-audio"; -+ simple-audio-card,format = "i2s"; -+ simple-audio-card,frame-master = <&cpudai>; -+ simple-audio-card,bitclock-master = <&cpudai>; -+ simple-audio-card,mclk-fs = <128>; -+ simple-audio-card,aux-devs = <&codec_analog>; -+ simple-audio-card,routing = -+ "Left DAC", "AIF1 Slot 0 Left", -+ "Right DAC", "AIF1 Slot 0 Right", -+ "AIF1 Slot 0 Left ADC", "Left ADC", -+ "AIF1 Slot 0 Right ADC", "Right ADC"; -+ status = "disabled"; - -- simple-audio-card,cpu { -- sound-dai = <&spdif>; -+ cpudai: simple-audio-card,cpu { -+ sound-dai = <&dai>; - }; - -- simple-audio-card,codec { -- sound-dai = <&spdif_out>; -+ link_codec: simple-audio-card,codec { -+ sound-dai = <&codec>; - }; - }; - -- spdif_out: spdif-out { -- #sound-dai-cells = <0>; -- compatible = "linux,spdif-dit"; -- }; -- - timer { - compatible = "arm,armv8-timer"; -+ allwinner,erratum-unknown1; - interrupts = , - ; - }; - -+ thermal-zones { -+ cpu_thermal: cpu0-thermal { -+ /* milliseconds */ -+ polling-delay-passive = <0>; -+ polling-delay = <0>; -+ thermal-sensors = <&ths 0>; -+ -+ cooling-maps { -+ map0 { -+ trip = <&cpu_alert0>; -+ cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; -+ }; -+ map1 { -+ trip = <&cpu_alert1>; -+ cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, -+ <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; -+ }; -+ }; -+ -+ trips { -+ cpu_alert0: cpu_alert0 { -+ /* milliCelsius */ -+ temperature = <75000>; -+ hysteresis = <2000>; -+ type = "passive"; -+ }; -+ -+ cpu_alert1: cpu_alert1 { -+ /* milliCelsius */ -+ temperature = <90000>; -+ hysteresis = <2000>; -+ type = "hot"; -+ }; -+ -+ cpu_crit: cpu_crit { -+ /* milliCelsius */ -+ temperature = <110000>; -+ hysteresis = <2000>; -+ type = "critical"; -+ }; -+ }; -+ }; -+ -+ gpu0_thermal: gpu0-thermal { -+ /* milliseconds */ -+ polling-delay-passive = <0>; -+ polling-delay = <0>; -+ thermal-sensors = <&ths 1>; -+ }; -+ -+ gpu1_thermal: gpu1-thermal { -+ /* milliseconds */ -+ polling-delay-passive = <0>; -+ polling-delay = <0>; -+ thermal-sensors = <&ths 2>; -+ }; -+ }; -+ - soc { - compatible = "simple-bus"; - #address-cells = <1>; - #size-cells = <1>; - ranges; - -- de2@1000000 { -+ bus@1000000 { - compatible = "allwinner,sun50i-a64-de2"; - reg = <0x1000000 0x400000>; - allwinner,sram = <&de2_sram 1>; -@@ -201,16 +246,28 @@ - - display_clocks: clock@0 { - compatible = "allwinner,sun50i-a64-de2-clk"; -- reg = <0x0 0x100000>; -- clocks = <&ccu CLK_DE>, -- <&ccu CLK_BUS_DE>; -- clock-names = "mod", -- "bus"; -+ reg = <0x0 0x10000>; -+ clocks = <&ccu CLK_BUS_DE>, -+ <&ccu CLK_DE>; -+ clock-names = "bus", -+ "mod"; - resets = <&ccu RST_BUS_DE>; - #clock-cells = <1>; - #reset-cells = <1>; - }; - -+ rotate: rotate@20000 { -+ compatible = "allwinner,sun50i-a64-de2-rotate", -+ "allwinner,sun8i-a83t-de2-rotate"; -+ reg = <0x20000 0x10000>; -+ interrupts = ; -+ clocks = <&display_clocks CLK_BUS_ROT>, -+ <&display_clocks CLK_ROT>; -+ clock-names = "bus", -+ "mod"; -+ resets = <&display_clocks RST_ROT>; -+ }; -+ - mixer0: mixer@100000 { - compatible = "allwinner,sun50i-a64-de2-mixer-0"; - reg = <0x100000 0x100000>; -@@ -225,11 +282,19 @@ - #size-cells = <0>; - - mixer0_out: port@1 { -+ #address-cells = <1>; -+ #size-cells = <0>; - reg = <1>; - -- mixer0_out_tcon0: endpoint { -+ mixer0_out_tcon0: endpoint@0 { -+ reg = <0>; - remote-endpoint = <&tcon0_in_mixer0>; - }; -+ -+ mixer0_out_tcon1: endpoint@1 { -+ reg = <1>; -+ remote-endpoint = <&tcon1_in_mixer0>; -+ }; - }; - }; - }; -@@ -248,9 +313,17 @@ - #size-cells = <0>; - - mixer1_out: port@1 { -+ #address-cells = <1>; -+ #size-cells = <0>; - reg = <1>; - -- mixer1_out_tcon1: endpoint { -+ mixer1_out_tcon0: endpoint@0 { -+ reg = <0>; -+ remote-endpoint = <&tcon0_in_mixer1>; -+ }; -+ -+ mixer1_out_tcon1: endpoint@1 { -+ reg = <1>; - remote-endpoint = <&tcon1_in_mixer1>; - }; - }; -@@ -259,8 +332,7 @@ - }; - - syscon: syscon@1c00000 { -- compatible = "allwinner,sun50i-a64-system-control", -- "syscon"; -+ compatible = "allwinner,sun50i-a64-system-control"; - reg = <0x01c00000 0x1000>; - #address-cells = <1>; - #size-cells = <1>; -@@ -278,6 +350,20 @@ - reg = <0x0000 0x28000>; - }; - }; -+ -+ sram_c1: sram@1d00000 { -+ compatible = "mmio-sram"; -+ reg = <0x01d00000 0x40000>; -+ #address-cells = <1>; -+ #size-cells = <1>; -+ ranges = <0 0x01d00000 0x40000>; -+ -+ ve_sram: sram-section@0 { -+ compatible = "allwinner,sun50i-a64-sram-c1", -+ "allwinner,sun4i-a10-sram-c1"; -+ reg = <0x000000 0x40000>; -+ }; -+ }; - }; - - dma: dma-controller@1c02000 { -@@ -299,6 +385,7 @@ - clocks = <&ccu CLK_BUS_TCON0>, <&ccu CLK_TCON0>; - clock-names = "ahb", "tcon-ch0"; - clock-output-names = "tcon-pixel-clock"; -+ #clock-cells = <0>; - resets = <&ccu RST_BUS_TCON0>, <&ccu RST_BUS_LVDS>; - reset-names = "lcd", "lvds"; - -@@ -315,12 +402,23 @@ - reg = <0>; - remote-endpoint = <&mixer0_out_tcon0>; - }; -+ -+ tcon0_in_mixer1: endpoint@1 { -+ reg = <1>; -+ remote-endpoint = <&mixer1_out_tcon0>; -+ }; - }; - - tcon0_out: port@1 { - #address-cells = <1>; - #size-cells = <0>; - reg = <1>; -+ -+ tcon0_out_dsi: endpoint@1 { -+ reg = <1>; -+ remote-endpoint = <&dsi_in_tcon0>; -+ allwinner,tcon-channel = <1>; -+ }; - }; - }; - }; -@@ -340,9 +438,17 @@ - #size-cells = <0>; - - tcon1_in: port@0 { -+ #address-cells = <1>; -+ #size-cells = <0>; - reg = <0>; - -- tcon1_in_mixer1: endpoint { -+ tcon1_in_mixer0: endpoint@0 { -+ reg = <0>; -+ remote-endpoint = <&mixer0_out_tcon1>; -+ }; -+ -+ tcon1_in_mixer1: endpoint@1 { -+ reg = <1>; - remote-endpoint = <&mixer1_out_tcon1>; - }; - }; -@@ -360,6 +466,17 @@ - }; - }; - -+ video-codec@1c0e000 { -+ compatible = "allwinner,sun50i-a64-video-engine"; -+ reg = <0x01c0e000 0x1000>; -+ clocks = <&ccu CLK_BUS_VE>, <&ccu CLK_VE>, -+ <&ccu CLK_DRAM_VE>; -+ clock-names = "ahb", "mod", "ram"; -+ resets = <&ccu RST_BUS_VE>; -+ interrupts = ; -+ allwinner,sram = <&ve_sram 1>; -+ }; -+ - mmc0: mmc@1c0f000 { - compatible = "allwinner,sun50i-a64-mmc"; - reg = <0x01c0f000 0x1000>; -@@ -405,6 +522,31 @@ - sid: eeprom@1c14000 { - compatible = "allwinner,sun50i-a64-sid"; - reg = <0x1c14000 0x400>; -+ #address-cells = <1>; -+ #size-cells = <1>; -+ -+ ths_calibration: thermal-sensor-calibration@34 { -+ reg = <0x34 0x8>; -+ }; -+ }; -+ -+ crypto: crypto@1c15000 { -+ compatible = "allwinner,sun50i-a64-crypto"; -+ reg = <0x01c15000 0x1000>; -+ interrupts = ; -+ clocks = <&ccu CLK_BUS_CE>, <&ccu CLK_CE>; -+ clock-names = "bus", "mod"; -+ resets = <&ccu RST_BUS_CE>; -+ }; -+ -+ msgbox: mailbox@1c17000 { -+ compatible = "allwinner,sun50i-a64-msgbox", -+ "allwinner,sun6i-a31-msgbox"; -+ reg = <0x01c17000 0x1000>; -+ clocks = <&ccu CLK_BUS_MSGBOX>; -+ resets = <&ccu RST_BUS_MSGBOX>; -+ interrupts = ; -+ #mbox-cells = <1>; - }; - - usb_otg: usb@1c19000 { -@@ -417,6 +559,7 @@ - phys = <&usbphy 0>; - phy-names = "usb"; - extcon = <&usbphy 0>; -+ dr_mode = "otg"; - status = "disabled"; - }; - -@@ -491,7 +634,7 @@ - ccu: clock@1c20000 { - compatible = "allwinner,sun50i-a64-ccu"; - reg = <0x01c20000 0x400>; -- clocks = <&osc24M>, <&osc32k>; -+ clocks = <&osc24M>, <&rtc 0>; - clock-names = "hosc", "losc"; - #clock-cells = <1>; - #reset-cells = <1>; -@@ -503,22 +646,50 @@ - interrupts = , - , - ; -- clocks = <&ccu 58>; -+ clocks = <&ccu CLK_BUS_PIO>, <&osc24M>, <&rtc 0>; -+ clock-names = "apb", "hosc", "losc"; - gpio-controller; - #gpio-cells = <3>; - interrupt-controller; - #interrupt-cells = <3>; - -- i2c0_pins: i2c0_pins { -+ csi_pins: csi-pins { -+ pins = "PE0", "PE2", "PE3", "PE4", "PE5", "PE6", -+ "PE7", "PE8", "PE9", "PE10", "PE11"; -+ function = "csi"; -+ }; -+ -+ /omit-if-no-ref/ -+ csi_mclk_pin: csi-mclk-pin { -+ pins = "PE1"; -+ function = "csi"; -+ }; -+ -+ i2c0_pins: i2c0-pins { - pins = "PH0", "PH1"; - function = "i2c0"; - }; - -- i2c1_pins: i2c1_pins { -+ i2c1_pins: i2c1-pins { - pins = "PH2", "PH3"; - function = "i2c1"; - }; - -+ i2c2_pins: i2c2-pins { -+ pins = "PE14", "PE15"; -+ function = "i2c2"; -+ }; -+ -+ /omit-if-no-ref/ -+ lcd_rgb666_pins: lcd-rgb666-pins { -+ pins = "PD0", "PD1", "PD2", "PD3", "PD4", -+ "PD5", "PD6", "PD7", "PD8", "PD9", -+ "PD10", "PD11", "PD12", "PD13", -+ "PD14", "PD15", "PD16", "PD17", -+ "PD18", "PD19", "PD20", "PD21"; -+ function = "lcd0"; -+ }; -+ - mmc0_pins: mmc0-pins { - pins = "PF0", "PF1", "PF2", "PF3", - "PF4", "PF5"; -@@ -551,19 +722,19 @@ - bias-pull-up; - }; - -- pwm_pin: pwm_pin { -+ pwm_pin: pwm-pin { - pins = "PD22"; - function = "pwm"; - }; - -- rmii_pins: rmii_pins { -+ rmii_pins: rmii-pins { - pins = "PD10", "PD11", "PD13", "PD14", "PD17", - "PD18", "PD19", "PD20", "PD22", "PD23"; - function = "emac"; - drive-strength = <40>; - }; - -- rgmii_pins: rgmii_pins { -+ rgmii_pins: rgmii-pins { - pins = "PD8", "PD9", "PD10", "PD11", "PD12", - "PD13", "PD15", "PD16", "PD17", "PD18", - "PD19", "PD20", "PD21", "PD22", "PD23"; -@@ -571,17 +742,17 @@ - drive-strength = <40>; - }; - -- spdif_tx_pin: spdif { -+ spdif_tx_pin: spdif-tx-pin { - pins = "PH8"; - function = "spdif"; - }; - -- spi0_pins: spi0 { -+ spi0_pins: spi0-pins { - pins = "PC0", "PC1", "PC2", "PC3"; - function = "spi0"; - }; - -- spi1_pins: spi1 { -+ spi1_pins: spi1-pins { - pins = "PD0", "PD1", "PD2", "PD3"; - function = "spi1"; - }; -@@ -591,12 +762,12 @@ - function = "uart0"; - }; - -- uart1_pins: uart1_pins { -+ uart1_pins: uart1-pins { - pins = "PG6", "PG7"; - function = "uart1"; - }; - -- uart1_rts_cts_pins: uart1_rts_cts_pins { -+ uart1_rts_cts_pins: uart1-rts-cts-pins { - pins = "PG8", "PG9"; - function = "uart1"; - }; -@@ -638,6 +809,14 @@ - status = "disabled"; - }; - -+ lradc: lradc@1c21800 { -+ compatible = "allwinner,sun50i-a64-lradc", -+ "allwinner,sun8i-a83t-r-lradc"; -+ reg = <0x01c21800 0x400>; -+ interrupts = ; -+ status = "disabled"; -+ }; -+ - i2s0: i2s@1c22000 { - #sound-dai-cells = <0>; - compatible = "allwinner,sun50i-a64-i2s", -@@ -666,6 +845,41 @@ - status = "disabled"; - }; - -+ dai: dai@1c22c00 { -+ #sound-dai-cells = <0>; -+ compatible = "allwinner,sun50i-a64-codec-i2s"; -+ reg = <0x01c22c00 0x200>; -+ interrupts = ; -+ clocks = <&ccu CLK_BUS_CODEC>, <&ccu CLK_AC_DIG>; -+ clock-names = "apb", "mod"; -+ resets = <&ccu RST_BUS_CODEC>; -+ dmas = <&dma 15>, <&dma 15>; -+ dma-names = "rx", "tx"; -+ status = "disabled"; -+ }; -+ -+ codec: codec@1c22e00 { -+ #sound-dai-cells = <0>; -+ compatible = "allwinner,sun8i-a33-codec"; -+ reg = <0x01c22e00 0x600>; -+ interrupts = ; -+ clocks = <&ccu CLK_BUS_CODEC>, <&ccu CLK_AC_DIG>; -+ clock-names = "bus", "mod"; -+ status = "disabled"; -+ }; -+ -+ ths: thermal-sensor@1c25000 { -+ compatible = "allwinner,sun50i-a64-ths"; -+ reg = <0x01c25000 0x100>; -+ clocks = <&ccu CLK_BUS_THS>, <&ccu CLK_THS>; -+ clock-names = "bus", "mod"; -+ interrupts = ; -+ resets = <&ccu RST_BUS_THS>; -+ nvmem-cells = <&ths_calibration>; -+ nvmem-cell-names = "calibration"; -+ #thermal-sensor-cells = <1>; -+ }; -+ - uart0: serial@1c28000 { - compatible = "snps,dw-apb-uart"; - reg = <0x01c28000 0x400>; -@@ -727,6 +941,8 @@ - interrupts = ; - clocks = <&ccu CLK_BUS_I2C0>; - resets = <&ccu RST_BUS_I2C0>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&i2c0_pins>; - status = "disabled"; - #address-cells = <1>; - #size-cells = <0>; -@@ -738,6 +954,8 @@ - interrupts = ; - clocks = <&ccu CLK_BUS_I2C1>; - resets = <&ccu RST_BUS_I2C1>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&i2c1_pins>; - status = "disabled"; - #address-cells = <1>; - #size-cells = <0>; -@@ -749,12 +967,13 @@ - interrupts = ; - clocks = <&ccu CLK_BUS_I2C2>; - resets = <&ccu RST_BUS_I2C2>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&i2c2_pins>; - status = "disabled"; - #address-cells = <1>; - #size-cells = <0>; - }; - -- - spi0: spi@1c68000 { - compatible = "allwinner,sun8i-h3-spi"; - reg = <0x01c68000 0x1000>; -@@ -808,6 +1027,28 @@ - }; - }; - -+ mali: gpu@1c40000 { -+ compatible = "allwinner,sun50i-a64-mali", "arm,mali-400"; -+ reg = <0x01c40000 0x10000>; -+ interrupts = , -+ , -+ , -+ , -+ , -+ , -+ ; -+ interrupt-names = "gp", -+ "gpmmu", -+ "pp0", -+ "ppmmu0", -+ "pp1", -+ "ppmmu1", -+ "pmu"; -+ clocks = <&ccu CLK_BUS_GPU>, <&ccu CLK_GPU>; -+ clock-names = "bus", "core"; -+ resets = <&ccu RST_BUS_GPU>; -+ }; -+ - gic: interrupt-controller@1c81000 { - compatible = "arm,gic-400"; - reg = <0x01c81000 0x1000>, -@@ -830,6 +1071,75 @@ - status = "disabled"; - }; - -+ mbus: dram-controller@1c62000 { -+ compatible = "allwinner,sun50i-a64-mbus"; -+ reg = <0x01c62000 0x1000>; -+ clocks = <&ccu 112>; -+ #address-cells = <1>; -+ #size-cells = <1>; -+ dma-ranges = <0x00000000 0x40000000 0xc0000000>; -+ #interconnect-cells = <1>; -+ }; -+ -+ csi: csi@1cb0000 { -+ compatible = "allwinner,sun50i-a64-csi"; -+ reg = <0x01cb0000 0x1000>; -+ interrupts = ; -+ clocks = <&ccu CLK_BUS_CSI>, -+ <&ccu CLK_CSI_SCLK>, -+ <&ccu CLK_DRAM_CSI>; -+ clock-names = "bus", "mod", "ram"; -+ resets = <&ccu RST_BUS_CSI>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&csi_pins>; -+ status = "disabled"; -+ }; -+ -+ dsi: dsi@1ca0000 { -+ compatible = "allwinner,sun50i-a64-mipi-dsi"; -+ reg = <0x01ca0000 0x1000>; -+ interrupts = ; -+ clocks = <&ccu CLK_BUS_MIPI_DSI>; -+ resets = <&ccu RST_BUS_MIPI_DSI>; -+ phys = <&dphy>; -+ phy-names = "dphy"; -+ status = "disabled"; -+ #address-cells = <1>; -+ #size-cells = <0>; -+ -+ port { -+ dsi_in_tcon0: endpoint { -+ remote-endpoint = <&tcon0_out_dsi>; -+ }; -+ }; -+ }; -+ -+ dphy: d-phy@1ca1000 { -+ compatible = "allwinner,sun50i-a64-mipi-dphy", -+ "allwinner,sun6i-a31-mipi-dphy"; -+ reg = <0x01ca1000 0x1000>; -+ clocks = <&ccu CLK_BUS_MIPI_DSI>, -+ <&ccu CLK_DSI_DPHY>; -+ clock-names = "bus", "mod"; -+ resets = <&ccu RST_BUS_MIPI_DSI>; -+ status = "disabled"; -+ #phy-cells = <0>; -+ }; -+ -+ deinterlace: deinterlace@1e00000 { -+ compatible = "allwinner,sun50i-a64-deinterlace", -+ "allwinner,sun8i-h3-deinterlace"; -+ reg = <0x01e00000 0x20000>; -+ clocks = <&ccu CLK_BUS_DEINTERLACE>, -+ <&ccu CLK_DEINTERLACE>, -+ <&ccu CLK_DRAM_DEINTERLACE>; -+ clock-names = "bus", "mod", "ram"; -+ resets = <&ccu RST_BUS_DEINTERLACE>; -+ interrupts = ; -+ interconnects = <&mbus 9>; -+ interconnect-names = "dma-mem"; -+ }; -+ - hdmi: hdmi@1ee0000 { - compatible = "allwinner,sun50i-a64-dw-hdmi", - "allwinner,sun8i-a83t-dw-hdmi"; -@@ -842,7 +1152,7 @@ - resets = <&ccu RST_BUS_HDMI1>; - reset-names = "ctrl"; - phys = <&hdmi_phy>; -- phy-names = "hdmi-phy"; -+ phy-names = "phy"; - status = "disabled"; - - ports { -@@ -867,7 +1177,7 @@ - compatible = "allwinner,sun50i-a64-hdmi-phy"; - reg = <0x01ef0000 0x10000>; - clocks = <&ccu CLK_BUS_HDMI>, <&ccu CLK_HDMI_DDC>, -- <&ccu 7>; -+ <&ccu CLK_PLL_VIDEO0>; - clock-names = "bus", "mod", "pll-0"; - resets = <&ccu RST_BUS_HDMI0>; - reset-names = "phy"; -@@ -875,11 +1185,12 @@ - }; - - rtc: rtc@1f00000 { -- compatible = "allwinner,sun6i-a31-rtc"; -- reg = <0x01f00000 0x54>; -+ compatible = "allwinner,sun50i-a64-rtc", -+ "allwinner,sun8i-h3-rtc"; -+ reg = <0x01f00000 0x400>; - interrupts = , - ; -- clock-output-names = "rtc-osc32k", "rtc-osc32k-out"; -+ clock-output-names = "osc32k", "osc32k-out", "iosc"; - clocks = <&osc32k>; - #clock-cells = <1>; - }; -@@ -896,13 +1207,19 @@ - r_ccu: clock@1f01400 { - compatible = "allwinner,sun50i-a64-r-ccu"; - reg = <0x01f01400 0x100>; -- clocks = <&osc24M>, <&osc32k>, <&iosc>, -- <&ccu 11>; -+ clocks = <&osc24M>, <&rtc 0>, <&rtc 2>, -+ <&ccu CLK_PLL_PERIPH0>; - clock-names = "hosc", "losc", "iosc", "pll-periph"; - #clock-cells = <1>; - #reset-cells = <1>; - }; - -+ codec_analog: codec-analog@1f015c0 { -+ compatible = "allwinner,sun50i-a64-codec-analog"; -+ reg = <0x01f015c0 0x4>; -+ status = "disabled"; -+ }; -+ - r_i2c: i2c@1f02400 { - compatible = "allwinner,sun50i-a64-i2c", - "allwinner,sun6i-a31-i2c"; -@@ -915,6 +1232,19 @@ - #size-cells = <0>; - }; - -+ r_ir: ir@1f02000 { -+ compatible = "allwinner,sun50i-a64-ir", -+ "allwinner,sun6i-a31-ir"; -+ reg = <0x01f02000 0x400>; -+ clocks = <&r_ccu CLK_APB0_IR>, <&r_ccu CLK_IR>; -+ clock-names = "apb", "ir"; -+ resets = <&r_ccu RST_APB0_IR>; -+ interrupts = ; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&r_ir_rx_pin>; -+ status = "disabled"; -+ }; -+ - r_pwm: pwm@1f03800 { - compatible = "allwinner,sun50i-a64-pwm", - "allwinner,sun5i-a13-pwm"; -@@ -942,12 +1272,17 @@ - function = "s_i2c"; - }; - -- r_pwm_pin: pwm { -+ r_ir_rx_pin: r-ir-rx-pin { -+ pins = "PL11"; -+ function = "s_cir_rx"; -+ }; -+ -+ r_pwm_pin: r-pwm-pin { - pins = "PL10"; - function = "s_pwm"; - }; - -- r_rsb_pins: rsb { -+ r_rsb_pins: r-rsb-pins { - pins = "PL0", "PL1"; - function = "s_rsb"; - }; -@@ -972,6 +1307,7 @@ - "allwinner,sun6i-a31-wdt"; - reg = <0x01c20ca0 0x20>; - interrupts = ; -+ clocks = <&osc24M>; - }; - }; - }; --- -2.26.2 diff --git a/rpi-Add-identifier-for-the-new-RPi400.patch b/Raspberry-Pi-400-Compute-Module-4-support.patch similarity index 52% rename from rpi-Add-identifier-for-the-new-RPi400.patch rename to Raspberry-Pi-400-Compute-Module-4-support.patch index eb8ec31..6d0a27c 100644 --- a/rpi-Add-identifier-for-the-new-RPi400.patch +++ b/Raspberry-Pi-400-Compute-Module-4-support.patch @@ -1,64 +1,62 @@ -From patchwork Thu Nov 19 17:48:15 2020 +From patchwork Tue Dec 15 17:23:12 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Saenz Julienne -X-Patchwork-Id: 1403195 -X-Patchwork-Delegate: matthias.bgg@gmail.com +X-Patchwork-Id: 1416597 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de - (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; + (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=suse.de -Received: from phobos.denx.de (phobos.denx.de - [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) +Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) - key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest - SHA256) + key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) - by ozlabs.org (Postfix) with ESMTPS id 4CcRyK4z4fz9sTR - for ; Fri, 20 Nov 2020 04:49:25 +1100 (AEDT) + by ozlabs.org (Postfix) with ESMTPS id 4CwQ8l3Yy3z9sPB + for ; Wed, 16 Dec 2020 04:23:41 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) - by phobos.denx.de (Postfix) with ESMTP id 350D882578; - Thu, 19 Nov 2020 18:49:06 +0100 (CET) + by phobos.denx.de (Postfix) with ESMTP id 9EE4A829F3; + Tue, 15 Dec 2020 18:23:32 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=suse.de Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Received: by phobos.denx.de (Postfix, from userid 109) - id 0C6CC8258E; Thu, 19 Nov 2020 18:49:05 +0100 (CET) + id 9EDCF829F5; Tue, 15 Dec 2020 18:23:30 +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=-1.9 required=5.0 tests=BAYES_00,RCVD_IN_MSPIKE_H3, - RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham +X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, + RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from mx2.suse.de (mx2.suse.de [195.135.220.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) - by phobos.denx.de (Postfix) with ESMTPS id F2DC482384 - for ; Thu, 19 Nov 2020 18:49:01 +0100 (CET) + by phobos.denx.de (Postfix) with ESMTPS id 1E15E829EE + for ; Tue, 15 Dec 2020 18:23:28 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=suse.de Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=nsaenzjulienne@suse.de Received: from relay2.suse.de (unknown [195.135.221.27]) - by mx2.suse.de (Postfix) with ESMTP id 80AEDACC6; - Thu, 19 Nov 2020 17:49:01 +0000 (UTC) + by mx2.suse.de (Postfix) with ESMTP id D500BACC6; + Tue, 15 Dec 2020 17:23:27 +0000 (UTC) From: Nicolas Saenz Julienne -To: u-boot@lists.denx.de, bmeng.cn@gmail.com, sjg@chromium.org, marex@denx.de -Cc: mbrugger@suse.com, m.szyprowski@samsung.com, s.nawrocki@samsung.com, - swarren@wwwdotorg.org, peng.fan@nxp.com, +To: mbrugger@suse.com, u-boot@lists.denx.de, bmeng.cn@gmail.com, + sjg@chromium.org, marex@denx.de +Cc: m.szyprowski@samsung.com, s.nawrocki@samsung.com, swarren@wwwdotorg.org, + peng.fan@nxp.com, sr@denx.de, pbrobinson@gmail.com, Nicolas Saenz Julienne -Subject: [PATCH 1/8] rpi: Add identifier for the new RPi400 -Date: Thu, 19 Nov 2020 18:48:15 +0100 -Message-Id: <20201119174820.7820-2-nsaenzjulienne@suse.de> +Subject: [PATCH v3 01/12] rpi: Add identifier for the new RPi400 +Date: Tue, 15 Dec 2020 18:23:12 +0100 +Message-Id: <20201215172323.13309-2-nsaenzjulienne@suse.de> X-Mailer: git-send-email 2.29.2 -In-Reply-To: <20201119174820.7820-1-nsaenzjulienne@suse.de> -References: <20201119174820.7820-1-nsaenzjulienne@suse.de> +In-Reply-To: <20201215172323.13309-1-nsaenzjulienne@suse.de> +References: <20201215172323.13309-1-nsaenzjulienne@suse.de> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 @@ -80,17 +78,18 @@ The Raspberry Pi Foundation released the new RPi400 which we want to detect, so we can enable Ethernet on it and know the correct device tree file name. -So far the Raspberry Pi foundation is using the RPi4b device-tree file -to boot RPi400. I see no reason not to do the same as they are -completely compatible. - Signed-off-by: Nicolas Saenz Julienne --- + +Changes since v1: + - The RPi Foundation introduced a RPi400 specific device tree, so use + that file name instead of the fallback (RPi4b). + board/raspberrypi/rpi/rpi.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/board/raspberrypi/rpi/rpi.c b/board/raspberrypi/rpi/rpi.c -index 6b1fa5fc14..ce60a24352 100644 +index 6b1fa5fc14..b66698e4a9 100644 --- a/board/raspberrypi/rpi/rpi.c +++ b/board/raspberrypi/rpi/rpi.c @@ -157,6 +157,11 @@ static const struct rpi_model rpi_models_new_scheme[] = { @@ -99,20 +98,19 @@ index 6b1fa5fc14..ce60a24352 100644 }, + [0x13] = { + "400", -+ DTB_DIR "bcm2711-rpi-4-b.dtb", ++ DTB_DIR "bcm2711-rpi-400.dtb", + true, + }, }; static const struct rpi_model rpi_models_old_scheme[] = { -From patchwork Thu Nov 19 17:48:16 2020 +From patchwork Tue Dec 15 17:23:13 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Saenz Julienne -X-Patchwork-Id: 1403200 -X-Patchwork-Delegate: matthias.bgg@gmail.com +X-Patchwork-Id: 1416599 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org @@ -127,45 +125,46 @@ Received: from phobos.denx.de (phobos.denx.de (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) - by ozlabs.org (Postfix) with ESMTPS id 4CcRzB2rFTz9s1l - for ; Fri, 20 Nov 2020 04:50:14 +1100 (AEDT) + by ozlabs.org (Postfix) with ESMTPS id 4CwQ8w3WB6z9sS8 + for ; Wed, 16 Dec 2020 04:24:00 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) - by phobos.denx.de (Postfix) with ESMTP id 647BF825AA; - Thu, 19 Nov 2020 18:49:19 +0100 (CET) + by phobos.denx.de (Postfix) with ESMTP id DD01382A02; + Tue, 15 Dec 2020 18:23:39 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=suse.de Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Received: by phobos.denx.de (Postfix, from userid 109) - id 8A3B282571; Thu, 19 Nov 2020 18:49:09 +0100 (CET) + id 9BF99829FB; Tue, 15 Dec 2020 18:23:33 +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=-1.9 required=5.0 tests=BAYES_00,RCVD_IN_MSPIKE_H3, - RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham +X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, + RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from mx2.suse.de (mx2.suse.de [195.135.220.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) - by phobos.denx.de (Postfix) with ESMTPS id 3FBD7823E1 - for ; Thu, 19 Nov 2020 18:49:02 +0100 (CET) + by phobos.denx.de (Postfix) with ESMTPS id A9EDA829EF + for ; Tue, 15 Dec 2020 18:23:28 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=suse.de Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=nsaenzjulienne@suse.de Received: from relay2.suse.de (unknown [195.135.221.27]) - by mx2.suse.de (Postfix) with ESMTP id 0360EACEB; - Thu, 19 Nov 2020 17:49:02 +0000 (UTC) + by mx2.suse.de (Postfix) with ESMTP id 6F5BBAF1A; + Tue, 15 Dec 2020 17:23:28 +0000 (UTC) From: Nicolas Saenz Julienne -To: u-boot@lists.denx.de, bmeng.cn@gmail.com, sjg@chromium.org, marex@denx.de -Cc: mbrugger@suse.com, m.szyprowski@samsung.com, s.nawrocki@samsung.com, - swarren@wwwdotorg.org, peng.fan@nxp.com, +To: mbrugger@suse.com, u-boot@lists.denx.de, bmeng.cn@gmail.com, + sjg@chromium.org, marex@denx.de +Cc: m.szyprowski@samsung.com, s.nawrocki@samsung.com, swarren@wwwdotorg.org, + peng.fan@nxp.com, sr@denx.de, pbrobinson@gmail.com, Nicolas Saenz Julienne -Subject: [PATCH 2/8] rpi: Add identifier for the new CM4 -Date: Thu, 19 Nov 2020 18:48:16 +0100 -Message-Id: <20201119174820.7820-3-nsaenzjulienne@suse.de> +Subject: [PATCH v3 02/12] rpi: Add identifier for the new CM4 +Date: Tue, 15 Dec 2020 18:23:13 +0100 +Message-Id: <20201215172323.13309-3-nsaenzjulienne@suse.de> X-Mailer: git-send-email 2.29.2 -In-Reply-To: <20201119174820.7820-1-nsaenzjulienne@suse.de> -References: <20201119174820.7820-1-nsaenzjulienne@suse.de> +In-Reply-To: <20201215172323.13309-1-nsaenzjulienne@suse.de> +References: <20201215172323.13309-1-nsaenzjulienne@suse.de> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 @@ -183,7 +182,7 @@ Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.102.3 at phobos.denx.de X-Virus-Status: Clean -The Raspberry Pi Foundation released the new Compute Module 4which we +The Raspberry Pi Foundation released the new Compute Module 4 which we want to detect, so we can enable Ethernet on it and know the correct device tree file name. @@ -192,21 +191,20 @@ IO board has an Ethernet port. But that might not be the case when using custom ones. Signed-off-by: Nicolas Saenz Julienne ---- --- board/raspberrypi/rpi/rpi.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/board/raspberrypi/rpi/rpi.c b/board/raspberrypi/rpi/rpi.c -index ce60a24352..4ffd23c6ac 100644 +index b66698e4a9..abcf41a5a8 100644 --- a/board/raspberrypi/rpi/rpi.c +++ b/board/raspberrypi/rpi/rpi.c @@ -162,6 +162,11 @@ static const struct rpi_model rpi_models_new_scheme[] = { - DTB_DIR "bcm2711-rpi-4-b.dtb", + DTB_DIR "bcm2711-rpi-400.dtb", true, }, + [0x14] = { -+ "Compute Modue 4", ++ "Compute Module 4", + DTB_DIR "bcm2711-rpi-cm4.dtb", + true, + }, @@ -214,13 +212,12 @@ index ce60a24352..4ffd23c6ac 100644 static const struct rpi_model rpi_models_old_scheme[] = { -From patchwork Thu Nov 19 17:48:17 2020 +From patchwork Tue Dec 15 17:23:14 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Saenz Julienne -X-Patchwork-Id: 1403196 -X-Patchwork-Delegate: matthias.bgg@gmail.com +X-Patchwork-Id: 1416601 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org @@ -232,48 +229,48 @@ Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=suse.de Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) - key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest - SHA256) + key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) - by ozlabs.org (Postfix) with ESMTPS id 4CcRyb0r6Jz9s1l - for ; Fri, 20 Nov 2020 04:49:43 +1100 (AEDT) + by ozlabs.org (Postfix) with ESMTPS id 4CwQ9K2mz5z9sPB + for ; Wed, 16 Dec 2020 04:24:21 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) - by phobos.denx.de (Postfix) with ESMTP id CC8548258E; - Thu, 19 Nov 2020 18:49:11 +0100 (CET) + by phobos.denx.de (Postfix) with ESMTP id D4983829F1; + Tue, 15 Dec 2020 18:23:44 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=suse.de Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Received: by phobos.denx.de (Postfix, from userid 109) - id D7281825A1; Thu, 19 Nov 2020 18:49:07 +0100 (CET) + id DF1AE829FB; Tue, 15 Dec 2020 18:23:35 +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=-1.9 required=5.0 tests=BAYES_00,RCVD_IN_MSPIKE_H3, - RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham +X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, + RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from mx2.suse.de (mx2.suse.de [195.135.220.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) - by phobos.denx.de (Postfix) with ESMTPS id B218F8254E - for ; Thu, 19 Nov 2020 18:49:02 +0100 (CET) + by phobos.denx.de (Postfix) with ESMTPS id 3D7D2829F0 + for ; Tue, 15 Dec 2020 18:23:29 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=suse.de Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=nsaenzjulienne@suse.de Received: from relay2.suse.de (unknown [195.135.221.27]) - by mx2.suse.de (Postfix) with ESMTP id 7CC19ACF1; - Thu, 19 Nov 2020 17:49:02 +0000 (UTC) + by mx2.suse.de (Postfix) with ESMTP id 07A04AF22; + Tue, 15 Dec 2020 17:23:29 +0000 (UTC) From: Nicolas Saenz Julienne -To: u-boot@lists.denx.de, bmeng.cn@gmail.com, sjg@chromium.org, marex@denx.de -Cc: mbrugger@suse.com, m.szyprowski@samsung.com, s.nawrocki@samsung.com, - swarren@wwwdotorg.org, peng.fan@nxp.com, +To: mbrugger@suse.com, u-boot@lists.denx.de, bmeng.cn@gmail.com, + sjg@chromium.org, marex@denx.de +Cc: m.szyprowski@samsung.com, s.nawrocki@samsung.com, swarren@wwwdotorg.org, + peng.fan@nxp.com, sr@denx.de, pbrobinson@gmail.com, Nicolas Saenz Julienne -Subject: [PATCH 3/8] pci: pcie-brcmstb: Fix inbound window configurations -Date: Thu, 19 Nov 2020 18:48:17 +0100 -Message-Id: <20201119174820.7820-4-nsaenzjulienne@suse.de> +Subject: [PATCH v3 03/12] pci: pcie-brcmstb: Fix inbound window configurations +Date: Tue, 15 Dec 2020 18:23:14 +0100 +Message-Id: <20201215172323.13309-4-nsaenzjulienne@suse.de> X-Mailer: git-send-email 2.29.2 -In-Reply-To: <20201119174820.7820-1-nsaenzjulienne@suse.de> -References: <20201119174820.7820-1-nsaenzjulienne@suse.de> +In-Reply-To: <20201215172323.13309-1-nsaenzjulienne@suse.de> +References: <20201215172323.13309-1-nsaenzjulienne@suse.de> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 @@ -299,9 +296,9 @@ now cover the whole address space, whereas before we where limited to the lower 3GB. This information is passed to us through DT's 'dma-ranges' property and -it's specially important for us to honor it them since some interactions -with the board's co-processor assume we're doing so (specifically the -XHCI firmware load operation, which is handled by the co-processor after +it's specially important for us to honor it since some interactions with +the board's co-processor assume we're doing so (specifically the XHCI +firmware load operation, which is handled by the co-processor after u-boot has correctly configured the PCIe controller). Signed-off-by: Nicolas Saenz Julienne @@ -340,13 +337,12 @@ index dade79e9c8..f6e8ad0d0a 100644 tmp = lower_32_bits(rc_bar2_offset); u32p_replace_bits(&tmp, brcm_pcie_encode_ibar_size(rc_bar2_size), -From patchwork Thu Nov 19 17:48:18 2020 +From patchwork Tue Dec 15 17:23:15 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Saenz Julienne -X-Patchwork-Id: 1403201 -X-Patchwork-Delegate: matthias.bgg@gmail.com +X-Patchwork-Id: 1416603 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org @@ -361,45 +357,46 @@ Received: from phobos.denx.de (phobos.denx.de (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) - by ozlabs.org (Postfix) with ESMTPS id 4CcRzP329Pz9s1l - for ; Fri, 20 Nov 2020 04:50:25 +1100 (AEDT) + by ozlabs.org (Postfix) with ESMTPS id 4CwQ9n295dz9sPB + for ; Wed, 16 Dec 2020 04:24:45 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) - by phobos.denx.de (Postfix) with ESMTP id 4AFAA825C6; - Thu, 19 Nov 2020 18:49:21 +0100 (CET) + by phobos.denx.de (Postfix) with ESMTP id 67F0A82A0D; + Tue, 15 Dec 2020 18:23:49 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=suse.de Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Received: by phobos.denx.de (Postfix, from userid 109) - id EFDD38258E; Thu, 19 Nov 2020 18:49:09 +0100 (CET) + id 01A3B829EF; Tue, 15 Dec 2020 18:23:37 +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=-1.9 required=5.0 tests=BAYES_00,RCVD_IN_MSPIKE_H3, - RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham +X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, + RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from mx2.suse.de (mx2.suse.de [195.135.220.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) - by phobos.denx.de (Postfix) with ESMTPS id 3C8D282552 - for ; Thu, 19 Nov 2020 18:49:03 +0100 (CET) + by phobos.denx.de (Postfix) with ESMTPS id CF965829F1 + for ; Tue, 15 Dec 2020 18:23:29 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=suse.de Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=nsaenzjulienne@suse.de Received: from relay2.suse.de (unknown [195.135.221.27]) - by mx2.suse.de (Postfix) with ESMTP id 01C33ACF5; - Thu, 19 Nov 2020 17:49:03 +0000 (UTC) + by mx2.suse.de (Postfix) with ESMTP id 933CFAF8D; + Tue, 15 Dec 2020 17:23:29 +0000 (UTC) From: Nicolas Saenz Julienne -To: u-boot@lists.denx.de, bmeng.cn@gmail.com, sjg@chromium.org, marex@denx.de -Cc: mbrugger@suse.com, m.szyprowski@samsung.com, s.nawrocki@samsung.com, - swarren@wwwdotorg.org, peng.fan@nxp.com, +To: mbrugger@suse.com, u-boot@lists.denx.de, bmeng.cn@gmail.com, + sjg@chromium.org, marex@denx.de +Cc: m.szyprowski@samsung.com, s.nawrocki@samsung.com, swarren@wwwdotorg.org, + peng.fan@nxp.com, sr@denx.de, pbrobinson@gmail.com, Nicolas Saenz Julienne -Subject: [PATCH 4/8] dm: Introduce xxx_get_dma_range() -Date: Thu, 19 Nov 2020 18:48:18 +0100 -Message-Id: <20201119174820.7820-5-nsaenzjulienne@suse.de> +Subject: [PATCH v3 04/12] dm: Introduce xxx_get_dma_range() +Date: Tue, 15 Dec 2020 18:23:15 +0100 +Message-Id: <20201215172323.13309-5-nsaenzjulienne@suse.de> X-Mailer: git-send-email 2.29.2 -In-Reply-To: <20201119174820.7820-1-nsaenzjulienne@suse.de> -References: <20201119174820.7820-1-nsaenzjulienne@suse.de> +In-Reply-To: <20201215172323.13309-1-nsaenzjulienne@suse.de> +References: <20201215172323.13309-1-nsaenzjulienne@suse.de> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 @@ -417,7 +414,7 @@ Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.102.3 at phobos.denx.de X-Virus-Status: Clean -Add the follwing functions to get a specific device's DMA ranges: +Add the following functions to get a specific device's DMA ranges: - dev_get_dma_range() - ofnode_get_dma_range() - of_get_dma_range() @@ -428,21 +425,31 @@ spaces. Signed-off-by: Nicolas Saenz Julienne --- - common/fdt_support.c | 72 ++++++++++++++++++++++++++++++++++++++++++ - drivers/core/of_addr.c | 68 +++++++++++++++++++++++++++++++++++++++ - drivers/core/ofnode.c | 9 ++++++ - drivers/core/read.c | 5 +++ - include/dm/of_addr.h | 17 ++++++++++ - include/dm/ofnode.h | 16 ++++++++++ - include/dm/read.h | 6 ++++ +Changes since v2: + - Return ENOENT instead of ENODEV + - Refcount OF nodes + +Changes since v1: + - Fix wrong arguments in of_get_dma_range()'s call to of_translate_dma_address() + - Fix build in SPL/TPL and no LIBFDT supprt + - Add missing declaration in 'core/read.c' + - Address Matthias' comments + + common/fdt_support.c | 73 +++++++++++++++++++++++++++++++++++++++ + drivers/core/of_addr.c | 78 ++++++++++++++++++++++++++++++++++++++++++ + drivers/core/ofnode.c | 9 +++++ + drivers/core/read.c | 6 ++++ + include/dm/of_addr.h | 17 +++++++++ + include/dm/ofnode.h | 16 +++++++++ + include/dm/read.h | 21 ++++++++++++ include/fdt_support.h | 14 ++++++++ - 8 files changed, 207 insertions(+) + 8 files changed, 234 insertions(+) diff --git a/common/fdt_support.c b/common/fdt_support.c -index 5ae75df3c6..78dc7906bd 100644 +index 5ae75df3c6..bf855d26c8 100644 --- a/common/fdt_support.c +++ b/common/fdt_support.c -@@ -1342,6 +1342,78 @@ u64 fdt_translate_dma_address(const void *blob, int node_offset, +@@ -1342,6 +1342,79 @@ u64 fdt_translate_dma_address(const void *blob, int node_offset, return __of_translate_address(blob, node_offset, in_addr, "dma-ranges"); } @@ -450,10 +457,10 @@ index 5ae75df3c6..78dc7906bd 100644 + dma_addr_t *bus, u64 *size) +{ + bool found_dma_ranges = false; ++ struct of_bus *bus_node; + const fdt32_t *ranges; + int na, ns, pna, pns; + int parent = node; -+ u64 cpu_addr; + int ret = 0; + int len; + @@ -467,7 +474,7 @@ index 5ae75df3c6..78dc7906bd 100644 + + /* Once we find 'dma-ranges', then a missing one is an error */ + if (found_dma_ranges && !ranges) { -+ ret = -ENODEV; ++ ret = -EINVAL; + goto out; + } + @@ -480,7 +487,7 @@ index 5ae75df3c6..78dc7906bd 100644 + if (!ranges || parent < 0) { + debug("no dma-ranges found for node %s\n", + fdt_get_name(blob, node, NULL)); -+ ret = -ENODEV; ++ ret = -ENOENT; + goto out; + } + @@ -494,7 +501,8 @@ index 5ae75df3c6..78dc7906bd 100644 + } + + /* Get the address sizes both for the bus and its parent */ -+ of_match_bus(blob, node)->count_cells(blob, node, &na, &ns); ++ bus_node = of_match_bus(blob, node); ++ bus_node->count_cells(blob, node, &na, &ns); + if (!OF_CHECK_COUNTS(na, ns)) { + printf("%s: Bad cell count for %s\n", __FUNCTION__, + fdt_get_name(blob, node, NULL)); @@ -502,7 +510,8 @@ index 5ae75df3c6..78dc7906bd 100644 + goto out; + } + -+ of_match_bus(blob, parent)->count_cells(blob, parent, &pna, &pns); ++ bus_node = of_match_bus(blob, parent); ++ bus_node->count_cells(blob, parent, &pna, &pns); + if (!OF_CHECK_COUNTS(pna, pns)) { + printf("%s: Bad cell count for %s\n", __FUNCTION__, + fdt_get_name(blob, parent, NULL)); @@ -511,8 +520,7 @@ index 5ae75df3c6..78dc7906bd 100644 + } + + *bus = fdt_read_number(ranges, na); -+ cpu_addr = fdt_read_number(ranges + na, pna); -+ *cpu = fdt_translate_dma_address(blob, node, (const fdt32_t*)&cpu_addr); ++ *cpu = fdt_translate_dma_address(blob, node, ranges + na); + *size = fdt_read_number(ranges + na + pna, ns); +out: + return ret; @@ -522,10 +530,10 @@ index 5ae75df3c6..78dc7906bd 100644 * fdt_node_offset_by_compat_reg: Find a node that matches compatiable and * who's reg property matches a physical cpu address diff --git a/drivers/core/of_addr.c b/drivers/core/of_addr.c -index ca34d84922..8457e04a25 100644 +index ca34d84922..703bc3e3f5 100644 --- a/drivers/core/of_addr.c +++ b/drivers/core/of_addr.c -@@ -325,6 +325,74 @@ u64 of_translate_dma_address(const struct device_node *dev, const __be32 *in_add +@@ -325,6 +325,84 @@ u64 of_translate_dma_address(const struct device_node *dev, const __be32 *in_add return __of_translate_address(dev, in_addr, "dma-ranges"); } @@ -533,13 +541,15 @@ index ca34d84922..8457e04a25 100644 + dma_addr_t *bus, u64 *size) +{ + bool found_dma_ranges = false; -+ struct device_node parent; ++ struct device_node *parent; ++ struct of_bus *bus_node; + int na, ns, pna, pns; + const __be32 *ranges; + int ret = 0; + int len; + + /* Find the closest dma-ranges property */ ++ dev = of_node_get(dev); + while (dev) { + ranges = of_get_property(dev, "dma-ranges", &len); + @@ -549,20 +559,22 @@ index ca34d84922..8457e04a25 100644 + + /* Once we find 'dma-ranges', then a missing one is an error */ + if (found_dma_ranges && !ranges) { -+ ret = -ENODEV; ++ ret = -EINVAL; + goto out; + } + + if (ranges) + found_dma_ranges = true; + -+ dev = of_get_parent(dev); ++ parent = of_get_parent(dev); ++ of_node_put(dev); ++ dev = parent; + } + + if (!dev || !ranges) { + debug("no dma-ranges found for node %s\n", + of_node_full_name(dev)); -+ ret = -ENODEV ++ ret = -ENOENT; + goto out; + } + @@ -575,24 +587,30 @@ index ca34d84922..8457e04a25 100644 + } + + /* Get the address sizes both for the bus and its parent */ -+ of_match_bus(dev)->count_cells(dev, &na, &ns); ++ bus_node = of_match_bus((struct device_node*)dev); ++ bus_node->count_cells(dev, &na, &ns); + if (!OF_CHECK_COUNTS(na, ns)) { + printf("Bad cell count for %s\n", of_node_full_name(dev)); + return -EINVAL; -+ goto out; ++ goto out_parent; + } + -+ of_match_bus(parent)->count_cells(parent, &pna, &pns); ++ bus_node = of_match_bus(parent); ++ bus_node->count_cells(parent, &pna, &pns); + if (!OF_CHECK_COUNTS(pna, pns)) { + printf("Bad cell count for %s\n", of_node_full_name(parent)); + return -EINVAL; -+ goto out; ++ goto out_parent; + } + + *bus = of_read_number(ranges, na); -+ *cpu = of_translate_dma_address(dev, of_read_number(ranges + na, pna)); ++ *cpu = of_translate_dma_address(dev, ranges + na); + *size = of_read_number(ranges + na + pna, ns); ++ ++out_parent: ++ of_node_put(parent); +out: ++ of_node_put(dev); + return ret; +} + @@ -621,16 +639,17 @@ index a68076bf35..15470d4875 100644 { if (ofnode_is_np(node)) diff --git a/drivers/core/read.c b/drivers/core/read.c -index 076125824c..b835e82be9 100644 +index 076125824c..0994fbd979 100644 --- a/drivers/core/read.c +++ b/drivers/core/read.c -@@ -338,6 +338,11 @@ u64 dev_translate_dma_address(const struct udevice *dev, const fdt32_t *in_addr) +@@ -338,6 +338,12 @@ u64 dev_translate_dma_address(const struct udevice *dev, const fdt32_t *in_addr) return ofnode_translate_dma_address(dev_ofnode(dev), in_addr); } -+u64 dev_translate_cpu_address(const struct udevice *dev, const fdt32_t *in_addr) ++int dev_get_dma_range(const struct udevice *dev, phys_addr_t *cpu, ++ dma_addr_t *bus, u64 *size) +{ -+ return ofnode_translate_cpu_address(dev_ofnode(dev), in_addr); ++ return ofnode_get_dma_range(dev_ofnode(dev), cpu, bus, size); +} + int dev_read_alias_highest_id(const char *stem) @@ -692,14 +711,36 @@ index ced7f6ffb2..dc3dd84d9f 100644 * ofnode_device_is_compatible() - check if the node is compatible with compat * diff --git a/include/dm/read.h b/include/dm/read.h -index 0585eb1228..9e1f3f5f12 100644 +index 0585eb1228..46e902c57d 100644 --- a/include/dm/read.h +++ b/include/dm/read.h -@@ -1004,6 +1004,12 @@ static inline u64 dev_translate_dma_address(const struct udevice *dev, +@@ -664,6 +664,21 @@ u64 dev_translate_address(const struct udevice *dev, const fdt32_t *in_addr); + u64 dev_translate_dma_address(const struct udevice *dev, + const fdt32_t *in_addr); + ++/** ++ * dev_get_dma_range() - Get a device's DMA constraints ++ * ++ * Provide the address bases and size of the linear mapping between the CPU and ++ * a device's BUS address space. ++ * ++ * @dev: device giving the context in which to translate the DMA address ++ * @cpu: base address for CPU's view of memory ++ * @bus: base address for BUS's view of memory ++ * @size: size of the address space ++ * @return 0 if ok, negative on error ++ */ ++int dev_get_dma_range(const struct udevice *dev, phys_addr_t *cpu, ++ dma_addr_t *bus, u64 *size); ++ + /** + * dev_read_alias_highest_id - Get highest alias id for the given stem + * @stem: Alias stem to be examined +@@ -1004,6 +1019,12 @@ static inline u64 dev_translate_dma_address(const struct udevice *dev, return ofnode_translate_dma_address(dev_ofnode(dev), in_addr); } -+static inline u64 dev_get_dma_range(const struct udevice *dev, phys_addr_t *cpu, ++static inline int dev_get_dma_range(const struct udevice *dev, phys_addr_t *cpu, + dma_addr_t *bus, u64 *size) +{ + return ofnode_get_dma_range(dev_ofnode(dev), cpu, bus, size); @@ -734,13 +775,12 @@ index dbbac0fb6a..46eb1dbbb2 100644 phys_addr_t compat_off); int fdt_alloc_phandle(void *blob); -From patchwork Thu Nov 19 17:48:19 2020 +From patchwork Tue Dec 15 17:23:16 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Saenz Julienne -X-Patchwork-Id: 1403197 -X-Patchwork-Delegate: matthias.bgg@gmail.com +X-Patchwork-Id: 1416600 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org @@ -755,45 +795,230 @@ Received: from phobos.denx.de (phobos.denx.de (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) - by ozlabs.org (Postfix) with ESMTPS id 4CcRyk3Wgvz9s1l - for ; Fri, 20 Nov 2020 04:49:50 +1100 (AEDT) + by ozlabs.org (Postfix) with ESMTPS id 4CwQ965n7dz9sPB + for ; Wed, 16 Dec 2020 04:24:10 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) - by phobos.denx.de (Postfix) with ESMTP id 7EFFE825A3; - Thu, 19 Nov 2020 18:49:13 +0100 (CET) + by phobos.denx.de (Postfix) with ESMTP id 3E93F82A06; + Tue, 15 Dec 2020 18:23:42 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=suse.de Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Received: by phobos.denx.de (Postfix, from userid 109) - id 31A79825A4; Thu, 19 Nov 2020 18:49:08 +0100 (CET) + id C092C829FB; Tue, 15 Dec 2020 18:23:34 +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=-1.9 required=5.0 tests=BAYES_00,RCVD_IN_MSPIKE_H3, - RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham +X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, + RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from mx2.suse.de (mx2.suse.de [195.135.220.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) - by phobos.denx.de (Postfix) with ESMTPS id B2CC482563 - for ; Thu, 19 Nov 2020 18:49:03 +0100 (CET) + by phobos.denx.de (Postfix) with ESMTPS id 78A6C829F4 + for ; Tue, 15 Dec 2020 18:23:30 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=suse.de Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=nsaenzjulienne@suse.de Received: from relay2.suse.de (unknown [195.135.221.27]) - by mx2.suse.de (Postfix) with ESMTP id 7CCA0AD09; - Thu, 19 Nov 2020 17:49:03 +0000 (UTC) + by mx2.suse.de (Postfix) with ESMTP id 299DBB27A; + Tue, 15 Dec 2020 17:23:30 +0000 (UTC) From: Nicolas Saenz Julienne -To: u-boot@lists.denx.de, bmeng.cn@gmail.com, sjg@chromium.org, marex@denx.de -Cc: mbrugger@suse.com, m.szyprowski@samsung.com, s.nawrocki@samsung.com, - swarren@wwwdotorg.org, peng.fan@nxp.com, +To: mbrugger@suse.com, u-boot@lists.denx.de, bmeng.cn@gmail.com, + sjg@chromium.org, marex@denx.de +Cc: m.szyprowski@samsung.com, s.nawrocki@samsung.com, swarren@wwwdotorg.org, + peng.fan@nxp.com, sr@denx.de, pbrobinson@gmail.com, Nicolas Saenz Julienne -Subject: [PATCH 5/8] dm: Introduce DMA constraints into the core device model -Date: Thu, 19 Nov 2020 18:48:19 +0100 -Message-Id: <20201119174820.7820-6-nsaenzjulienne@suse.de> +Subject: [PATCH v3 05/12] dm: test: Add test case for dev_get_dma_ranges() +Date: Tue, 15 Dec 2020 18:23:16 +0100 +Message-Id: <20201215172323.13309-6-nsaenzjulienne@suse.de> X-Mailer: git-send-email 2.29.2 -In-Reply-To: <20201119174820.7820-1-nsaenzjulienne@suse.de> -References: <20201119174820.7820-1-nsaenzjulienne@suse.de> +In-Reply-To: <20201215172323.13309-1-nsaenzjulienne@suse.de> +References: <20201215172323.13309-1-nsaenzjulienne@suse.de> +MIME-Version: 1.0 +X-BeenThere: u-boot@lists.denx.de +X-Mailman-Version: 2.1.34 +Precedence: list +List-Id: U-Boot discussion +List-Unsubscribe: , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: , + +Errors-To: u-boot-bounces@lists.denx.de +Sender: "U-Boot" +X-Virus-Scanned: clamav-milter 0.102.3 at phobos.denx.de +X-Virus-Status: Clean + +Introduce some new nodes in sandbox's test device-tree and dm tests in +order to validate dev_get_dma_range(). + +Signed-off-by: Nicolas Saenz Julienne +--- + arch/sandbox/dts/test.dts | 17 ++++++++++++++ + test/dm/Makefile | 1 + + test/dm/read.c | 49 +++++++++++++++++++++++++++++++++++++++ + 3 files changed, 67 insertions(+) + create mode 100644 test/dm/read.c + +diff --git a/arch/sandbox/dts/test.dts b/arch/sandbox/dts/test.dts +index f3b766271d..3a3b51f83b 100644 +--- a/arch/sandbox/dts/test.dts ++++ b/arch/sandbox/dts/test.dts +@@ -292,6 +292,23 @@ + test5-gpios = <&gpio_a 19>; + }; + ++ mmio-bus@0 { ++ #address-cells = <1>; ++ #size-cells = <1>; ++ compatible = "denx,u-boot-test-bus"; ++ dma-ranges = <0x10000000 0x00000000 0x00040000>; ++ ++ subnode@0 { ++ compatible = "denx,u-boot-fdt-test"; ++ }; ++ }; ++ ++ mmio-bus@1 { ++ #address-cells = <1>; ++ #size-cells = <1>; ++ compatible = "denx,u-boot-test-bus"; ++ }; ++ + acpi_test1: acpi-test { + compatible = "denx,u-boot-acpi-test"; + acpi-ssdt-test-data = "ab"; +diff --git a/test/dm/Makefile b/test/dm/Makefile +index 46e076ed09..5c52d8b6ea 100644 +--- a/test/dm/Makefile ++++ b/test/dm/Makefile +@@ -15,6 +15,7 @@ obj-$(CONFIG_UT_DM) += test-fdt.o + obj-$(CONFIG_UT_DM) += test-uclass.o + + obj-$(CONFIG_UT_DM) += core.o ++obj-$(CONFIG_UT_DM) += read.o + ifneq ($(CONFIG_SANDBOX),) + obj-$(CONFIG_ACPIGEN) += acpi.o + obj-$(CONFIG_ACPIGEN) += acpigen.o +diff --git a/test/dm/read.c b/test/dm/read.c +new file mode 100644 +index 0000000000..090eee0544 +--- /dev/null ++++ b/test/dm/read.c +@@ -0,0 +1,49 @@ ++// SPDX-License-Identifier: GPL-2.0+ ++/* ++ * Copyright (c) 2020 Nicolas Saenz Julienne ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static int dm_test_dma_ranges(struct unit_test_state *uts) ++{ ++ struct udevice *dev; ++ phys_addr_t cpu; ++ dma_addr_t bus; ++ ofnode node; ++ u64 size; ++ ++ /* dma-ranges are on the device's node */ ++ node = ofnode_path("/mmio-bus@0"); ++ ut_assert(ofnode_valid(node)); ++ ut_assert(!uclass_get_device_by_ofnode(UCLASS_TEST_BUS, node, &dev)); ++ ut_assert(!dev_get_dma_range(dev, &cpu, &bus, &size)); ++ ut_asserteq_64(0x40000, size); ++ ut_asserteq_64(0x0, cpu); ++ ut_asserteq_64(0x10000000, bus); ++ ++ /* dma-ranges are on the bus' node */ ++ node = ofnode_path("/mmio-bus@0/subnode@0"); ++ ut_assert(ofnode_valid(node)); ++ ut_assert(!uclass_get_device_by_ofnode(UCLASS_TEST_FDT, node, &dev)); ++ ut_assert(!dev_get_dma_range(dev, &cpu, &bus, &size)); ++ ut_asserteq_64(0x40000, size); ++ ut_asserteq_64(0x0, cpu); ++ ut_asserteq_64(0x10000000, bus); ++ ++ /* No dma-ranges available */ ++ node = ofnode_path("/mmio-bus@1"); ++ ut_assert(ofnode_valid(node)); ++ ut_assert(!uclass_get_device_by_ofnode(UCLASS_TEST_BUS, node, &dev)); ++ ut_asserteq(-ENOENT, dev_get_dma_range(dev, &cpu, &bus, &size)); ++ ++ return 0; ++} ++DM_TEST(dm_test_dma_ranges, UT_TESTF_SCAN_PDATA | UT_TESTF_SCAN_FDT); + +From patchwork Tue Dec 15 17:23:17 2020 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +X-Patchwork-Submitter: Nicolas Saenz Julienne +X-Patchwork-Id: 1416602 +Return-Path: +X-Original-To: incoming@patchwork.ozlabs.org +Delivered-To: patchwork-incoming@bilbo.ozlabs.org +Authentication-Results: ozlabs.org; + spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de + (client-ip=85.214.62.61; helo=phobos.denx.de; + envelope-from=u-boot-bounces@lists.denx.de; receiver=) +Authentication-Results: ozlabs.org; + dmarc=none (p=none dis=none) header.from=suse.de +Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) + (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) + key-exchange X25519 server-signature RSA-PSS (4096 bits)) + (No client certificate requested) + by ozlabs.org (Postfix) with ESMTPS id 4CwQ9Y1YbZz9sPB + for ; Wed, 16 Dec 2020 04:24:33 +1100 (AEDT) +Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) + by phobos.denx.de (Postfix) with ESMTP id 5A5D482A08; + Tue, 15 Dec 2020 18:23:47 +0100 (CET) +Authentication-Results: phobos.denx.de; + dmarc=none (p=none dis=none) header.from=suse.de +Authentication-Results: phobos.denx.de; + spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de +Received: by phobos.denx.de (Postfix, from userid 109) + id 5D82E829F0; Tue, 15 Dec 2020 18:23:36 +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=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, + RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE autolearn=ham + autolearn_force=no version=3.4.2 +Received: from mx2.suse.de (mx2.suse.de [195.135.220.15]) + (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) + (No client certificate requested) + by phobos.denx.de (Postfix) with ESMTPS id AF637829EE + for ; Tue, 15 Dec 2020 18:23:31 +0100 (CET) +Authentication-Results: phobos.denx.de; + dmarc=none (p=none dis=none) header.from=suse.de +Authentication-Results: phobos.denx.de; + spf=pass smtp.mailfrom=nsaenzjulienne@suse.de +Received: from relay2.suse.de (unknown [195.135.221.27]) + by mx2.suse.de (Postfix) with ESMTP id CE05EAFBE; + Tue, 15 Dec 2020 17:23:30 +0000 (UTC) +From: Nicolas Saenz Julienne +To: mbrugger@suse.com, u-boot@lists.denx.de, bmeng.cn@gmail.com, + sjg@chromium.org, marex@denx.de +Cc: m.szyprowski@samsung.com, s.nawrocki@samsung.com, swarren@wwwdotorg.org, + peng.fan@nxp.com, sr@denx.de, pbrobinson@gmail.com, + Nicolas Saenz Julienne +Subject: [PATCH v3 06/12] dm: Introduce DMA constraints into the core device + model +Date: Tue, 15 Dec 2020 18:23:17 +0100 +Message-Id: <20201215172323.13309-7-nsaenzjulienne@suse.de> +X-Mailer: git-send-email 2.29.2 +In-Reply-To: <20201215172323.13309-1-nsaenzjulienne@suse.de> +References: <20201215172323.13309-1-nsaenzjulienne@suse.de> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 @@ -813,78 +1038,123 @@ X-Virus-Status: Clean Calculating the DMA offset between a bus address space and CPU's every time we call phys_to_bus() and bus_to_phys() isn't ideal performance -wise. This information is static and available before initializing the -devices so parse it before the probe call an provide the DMA offset it -in 'struct udevice' for the DMA code to use it. +wise, as it implies traversing the device tree from the device's node up +to the root. Since this information is static and available before the +device's initialization, parse it before the probe call an provide the +DMA offset in 'struct udevice' for the address translation code to use +it. Signed-off-by: Nicolas Saenz Julienne --- - drivers/core/device.c | 24 ++++++++++++++++++++++++ - include/dm/device.h | 1 + - 2 files changed, 25 insertions(+) +Changes since v2: + - Return/Fail on error + - Add config option + - use ulong instead for u64 for dev->dma_offset +Changes since v1: + - Update commit message so as to explain better the reasoning behind + this + + drivers/core/Kconfig | 10 ++++++++++ + drivers/core/device.c | 35 +++++++++++++++++++++++++++++++++++ + include/dm/device.h | 3 +++ + 3 files changed, 48 insertions(+) + +diff --git a/drivers/core/Kconfig b/drivers/core/Kconfig +index ffae6f9795..153be25351 100644 +--- a/drivers/core/Kconfig ++++ b/drivers/core/Kconfig +@@ -113,6 +113,16 @@ config SPL_DM_SEQ_ALIAS + numbered devices (e.g. serial0 = &serial0). This feature can be + disabled if it is not required, to save code space in SPL. + ++config DM_DMA ++ bool "Support per device DMA constraints" ++ depends on DM ++ default n ++ help ++ Enable this to extract per-device DMA constraints, only supported on ++ device-tree systems for now. This is needed in order translate ++ addresses on systems where different buses have different views of ++ the physical address space. ++ + config REGMAP + bool "Support register maps" + depends on DM diff --git a/drivers/core/device.c b/drivers/core/device.c -index 4b3dcb3b37..4255bea24d 100644 +index 4b3dcb3b37..21285432d8 100644 --- a/drivers/core/device.c +++ b/drivers/core/device.c -@@ -421,6 +421,28 @@ fail: +@@ -421,6 +421,37 @@ fail: return ret; } -+void device_get_dma_constraints(struct udevice *dev) ++#if CONFIG_IS_ENABLED(DM_DMA) ++static int device_get_dma_constraints(struct udevice *dev) +{ -+ phys_addr_t cpu; -+ dma_addr_t bus; -+ u64 size; ++ struct udevice *parent = dev->parent; ++ phys_addr_t cpu = 0; ++ dma_addr_t bus = 0; ++ u64 size = 0; + int ret; + -+ if (!dev_of_valid(dev)) -+ return; ++ if (!parent || !dev_of_valid(parent)) ++ return 0; + -+ ret = dev_get_dma_range(dev, &cpu, &bus, &size); -+ if (ret) { -+ /* Don't complain if no 'dma-ranges' were found */ -+ if (ret != -ENODEV) -+ dm_warn("%s: failed to get DMA range, %d\n", -+ dev->name, ret); -+ return; ++ /* ++ * We start parsing for dma-ranges from the device's bus node. This is ++ * specially important on nested buses. ++ */ ++ ret = dev_get_dma_range(parent, &cpu, &bus, &size); ++ /* Don't return an error if no 'dma-ranges' were found */ ++ if (ret && ret != -ENOENT) { ++ dm_warn("%s: failed to get DMA range, %d\n", dev->name, ret); ++ return ret; + } + + dev->dma_offset = cpu - bus; ++ ++ return 0; +} ++#else ++static int device_get_dma_constraints(struct udevice *dev) { return 0; } ++#endif + int device_probe(struct udevice *dev) { const struct driver *drv; -@@ -482,6 +504,8 @@ int device_probe(struct udevice *dev) +@@ -482,6 +513,10 @@ int device_probe(struct udevice *dev) goto fail; } -+ device_get_dma_constraints(dev); ++ ret = device_get_dma_constraints(dev); ++ if (ret) ++ goto fail; + ret = uclass_pre_probe_device(dev); if (ret) goto fail; diff --git a/include/dm/device.h b/include/dm/device.h -index 5bef484247..59f711e3dd 100644 +index 5bef484247..9126dc00fe 100644 --- a/include/dm/device.h +++ b/include/dm/device.h -@@ -161,6 +161,7 @@ struct udevice { +@@ -161,6 +161,9 @@ struct udevice { #ifdef CONFIG_DEVRES struct list_head devres_head; #endif -+ u64 dma_offset; ++#ifdef CONFIG_DM_DMA ++ ulong dma_offset; ++#endif }; /* Maximum sequence number supported */ -From patchwork Thu Nov 19 17:48:20 2020 +From patchwork Tue Dec 15 17:23:18 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Saenz Julienne -X-Patchwork-Id: 1403199 -X-Patchwork-Delegate: matthias.bgg@gmail.com +X-Patchwork-Id: 1416604 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org @@ -898,45 +1168,237 @@ Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) - by ozlabs.org (Postfix) with ESMTPS id 4CcRyy5XbHz9sVd - for ; Fri, 20 Nov 2020 04:50:02 +1100 (AEDT) + by ozlabs.org (Postfix) with ESMTPS id 4CwQB14gCvz9sPB + for ; Wed, 16 Dec 2020 04:24:57 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) - by phobos.denx.de (Postfix) with ESMTP id 32DE7825B9; - Thu, 19 Nov 2020 18:49:15 +0100 (CET) + by phobos.denx.de (Postfix) with ESMTP id DF70A82A16; + Tue, 15 Dec 2020 18:23:51 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=suse.de Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Received: by phobos.denx.de (Postfix, from userid 109) - id 0DC4482563; Thu, 19 Nov 2020 18:49:09 +0100 (CET) + id 8DEB6829FF; Tue, 15 Dec 2020 18:23:38 +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=-1.9 required=5.0 tests=BAYES_00,RCVD_IN_MSPIKE_H3, - RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham +X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, + RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from mx2.suse.de (mx2.suse.de [195.135.220.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) - by phobos.denx.de (Postfix) with ESMTPS id 375DF82571 - for ; Thu, 19 Nov 2020 18:49:04 +0100 (CET) + by phobos.denx.de (Postfix) with ESMTPS id 65B40829ED + for ; Tue, 15 Dec 2020 18:23:32 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=suse.de Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=nsaenzjulienne@suse.de Received: from relay2.suse.de (unknown [195.135.221.27]) - by mx2.suse.de (Postfix) with ESMTP id 0202DAD0B; - Thu, 19 Nov 2020 17:49:04 +0000 (UTC) + by mx2.suse.de (Postfix) with ESMTP id 54CF4B1C2; + Tue, 15 Dec 2020 17:23:31 +0000 (UTC) From: Nicolas Saenz Julienne -To: u-boot@lists.denx.de, bmeng.cn@gmail.com, sjg@chromium.org, marex@denx.de -Cc: mbrugger@suse.com, m.szyprowski@samsung.com, s.nawrocki@samsung.com, - swarren@wwwdotorg.org, peng.fan@nxp.com, +To: mbrugger@suse.com, u-boot@lists.denx.de, bmeng.cn@gmail.com, + sjg@chromium.org, marex@denx.de +Cc: m.szyprowski@samsung.com, s.nawrocki@samsung.com, swarren@wwwdotorg.org, + peng.fan@nxp.com, sr@denx.de, pbrobinson@gmail.com, Nicolas Saenz Julienne -Subject: [PATCH 6/8] dm: Introduce dev_phys_to_bus()/dev_bus_to_phys() -Date: Thu, 19 Nov 2020 18:48:20 +0100 -Message-Id: <20201119174820.7820-7-nsaenzjulienne@suse.de> +Subject: [PATCH v3 07/12] dm: test: Add test case for dev->dma_offset +Date: Tue, 15 Dec 2020 18:23:18 +0100 +Message-Id: <20201215172323.13309-8-nsaenzjulienne@suse.de> X-Mailer: git-send-email 2.29.2 -In-Reply-To: <20201119174820.7820-1-nsaenzjulienne@suse.de> -References: <20201119174820.7820-1-nsaenzjulienne@suse.de> +In-Reply-To: <20201215172323.13309-1-nsaenzjulienne@suse.de> +References: <20201215172323.13309-1-nsaenzjulienne@suse.de> +MIME-Version: 1.0 +X-BeenThere: u-boot@lists.denx.de +X-Mailman-Version: 2.1.34 +Precedence: list +List-Id: U-Boot discussion +List-Unsubscribe: , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: , + +Errors-To: u-boot-bounces@lists.denx.de +Sender: "U-Boot" +X-Virus-Scanned: clamav-milter 0.102.3 at phobos.denx.de +X-Virus-Status: Clean + +Add test to validate dev->dma_offset is properly set on devices. + +Signed-off-by: Nicolas Saenz Julienne +--- + arch/sandbox/dts/test.dts | 4 ++++ + configs/sandbox64_defconfig | 1 + + configs/sandbox_defconfig | 1 + + configs/sandbox_flattree_defconfig | 1 + + configs/sandbox_spl_defconfig | 1 + + test/dm/core.c | 30 ++++++++++++++++++++++++++++++ + 6 files changed, 38 insertions(+) + +diff --git a/arch/sandbox/dts/test.dts b/arch/sandbox/dts/test.dts +index 3a3b51f83b..78f0100282 100644 +--- a/arch/sandbox/dts/test.dts ++++ b/arch/sandbox/dts/test.dts +@@ -307,6 +307,10 @@ + #address-cells = <1>; + #size-cells = <1>; + compatible = "denx,u-boot-test-bus"; ++ ++ subnode@0 { ++ compatible = "denx,u-boot-fdt-test"; ++ }; + }; + + acpi_test1: acpi-test { +diff --git a/configs/sandbox64_defconfig b/configs/sandbox64_defconfig +index 5fbbfd7236..2c189a8a00 100644 +--- a/configs/sandbox64_defconfig ++++ b/configs/sandbox64_defconfig +@@ -94,6 +94,7 @@ CONFIG_ENV_EXT4_DEVICE_AND_PART="0:0" + CONFIG_BOOTP_SEND_HOSTNAME=y + CONFIG_NETCONSOLE=y + CONFIG_IP_DEFRAG=y ++CONFIG_DM_DMA=y + CONFIG_REGMAP=y + CONFIG_SYSCON=y + CONFIG_DEVRES=y +diff --git a/configs/sandbox_defconfig b/configs/sandbox_defconfig +index f1ec701a9f..ac97c16cef 100644 +--- a/configs/sandbox_defconfig ++++ b/configs/sandbox_defconfig +@@ -108,6 +108,7 @@ CONFIG_ENV_EXT4_DEVICE_AND_PART="0:0" + CONFIG_BOOTP_SEND_HOSTNAME=y + CONFIG_NETCONSOLE=y + CONFIG_IP_DEFRAG=y ++CONFIG_DM_DMA=y + CONFIG_REGMAP=y + CONFIG_SYSCON=y + CONFIG_DEVRES=y +diff --git a/configs/sandbox_flattree_defconfig b/configs/sandbox_flattree_defconfig +index edca7f1808..f5923bf713 100644 +--- a/configs/sandbox_flattree_defconfig ++++ b/configs/sandbox_flattree_defconfig +@@ -75,6 +75,7 @@ CONFIG_ENV_EXT4_DEVICE_AND_PART="0:0" + CONFIG_BOOTP_SEND_HOSTNAME=y + CONFIG_NETCONSOLE=y + CONFIG_IP_DEFRAG=y ++CONFIG_DM_DMA=y + CONFIG_REGMAP=y + CONFIG_SYSCON=y + CONFIG_DEVRES=y +diff --git a/configs/sandbox_spl_defconfig b/configs/sandbox_spl_defconfig +index 479f0226e3..0a4815770c 100644 +--- a/configs/sandbox_spl_defconfig ++++ b/configs/sandbox_spl_defconfig +@@ -94,6 +94,7 @@ CONFIG_BOOTP_SEND_HOSTNAME=y + CONFIG_NETCONSOLE=y + CONFIG_IP_DEFRAG=y + CONFIG_SPL_DM=y ++CONFIG_DM_DMA=y + CONFIG_REGMAP=y + CONFIG_SPL_REGMAP=y + CONFIG_SYSCON=y +diff --git a/test/dm/core.c b/test/dm/core.c +index 6f380a574c..998874ffee 100644 +--- a/test/dm/core.c ++++ b/test/dm/core.c +@@ -1066,3 +1066,33 @@ static int dm_test_inactive_child(struct unit_test_state *uts) + return 0; + } + DM_TEST(dm_test_inactive_child, UT_TESTF_SCAN_PDATA); ++ ++static int dm_test_dma_offset(struct unit_test_state *uts) ++{ ++ struct udevice *dev; ++ ofnode node; ++ ++ /* Make sure the bus's dma-ranges aren't taken into account here */ ++ node = ofnode_path("/mmio-bus@0"); ++ ut_assert(ofnode_valid(node)); ++ ut_assert(!uclass_get_device_by_ofnode(UCLASS_TEST_BUS, node, &dev)); ++ ut_asserteq_64(0, dev->dma_offset); ++ ++ /* Device behind a bus with dma-ranges */ ++ node = ofnode_path("/mmio-bus@0/subnode@0"); ++ ut_assert(ofnode_valid(node)); ++ ut_assert(!uclass_get_device_by_ofnode(UCLASS_TEST_FDT, node, &dev)); ++ ut_asserteq_64(-0x10000000ULL, dev->dma_offset); ++ ++ /* This one has no dma-ranges */ ++ node = ofnode_path("/mmio-bus@1"); ++ ut_assert(ofnode_valid(node)); ++ ut_assert(!uclass_get_device_by_ofnode(UCLASS_TEST_BUS, node, &dev)); ++ node = ofnode_path("/mmio-bus@1/subnode@0"); ++ ut_assert(ofnode_valid(node)); ++ ut_assert(!uclass_get_device_by_ofnode(UCLASS_TEST_FDT, node, &dev)); ++ ut_asserteq_64(0, dev->dma_offset); ++ ++ return 0; ++} ++DM_TEST(dm_test_dma_offset, UT_TESTF_SCAN_PDATA | UT_TESTF_SCAN_FDT); + +From patchwork Tue Dec 15 17:23:19 2020 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +X-Patchwork-Submitter: Nicolas Saenz Julienne +X-Patchwork-Id: 1416605 +Return-Path: +X-Original-To: incoming@patchwork.ozlabs.org +Delivered-To: patchwork-incoming@bilbo.ozlabs.org +Authentication-Results: ozlabs.org; + spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de + (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; + envelope-from=u-boot-bounces@lists.denx.de; receiver=) +Authentication-Results: ozlabs.org; + dmarc=none (p=none dis=none) header.from=suse.de +Received: from phobos.denx.de (phobos.denx.de + [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) + (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) + key-exchange X25519 server-signature RSA-PSS (4096 bits)) + (No client certificate requested) + by ozlabs.org (Postfix) with ESMTPS id 4CwQBD2DRkz9sRK + for ; Wed, 16 Dec 2020 04:25:07 +1100 (AEDT) +Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) + by phobos.denx.de (Postfix) with ESMTP id 9CFDD82A1B; + Tue, 15 Dec 2020 18:23:53 +0100 (CET) +Authentication-Results: phobos.denx.de; + dmarc=none (p=none dis=none) header.from=suse.de +Authentication-Results: phobos.denx.de; + spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de +Received: by phobos.denx.de (Postfix, from userid 109) + id B5B47829EE; Tue, 15 Dec 2020 18:23:38 +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=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, + RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE autolearn=ham + autolearn_force=no version=3.4.2 +Received: from mx2.suse.de (mx2.suse.de [195.135.220.15]) + (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) + (No client certificate requested) + by phobos.denx.de (Postfix) with ESMTPS id B363E829F5 + for ; Tue, 15 Dec 2020 18:23:32 +0100 (CET) +Authentication-Results: phobos.denx.de; + dmarc=none (p=none dis=none) header.from=suse.de +Authentication-Results: phobos.denx.de; + spf=pass smtp.mailfrom=nsaenzjulienne@suse.de +Received: from relay2.suse.de (unknown [195.135.221.27]) + by mx2.suse.de (Postfix) with ESMTP id DC8BFB71A; + Tue, 15 Dec 2020 17:23:31 +0000 (UTC) +From: Nicolas Saenz Julienne +To: mbrugger@suse.com, u-boot@lists.denx.de, bmeng.cn@gmail.com, + sjg@chromium.org, marex@denx.de +Cc: m.szyprowski@samsung.com, s.nawrocki@samsung.com, swarren@wwwdotorg.org, + peng.fan@nxp.com, sr@denx.de, pbrobinson@gmail.com, + Nicolas Saenz Julienne +Subject: [PATCH v3 08/12] dm: Introduce dev_phys_to_bus()/dev_bus_to_phys() +Date: Tue, 15 Dec 2020 18:23:19 +0100 +Message-Id: <20201215172323.13309-9-nsaenzjulienne@suse.de> +X-Mailer: git-send-email 2.29.2 +In-Reply-To: <20201215172323.13309-1-nsaenzjulienne@suse.de> +References: <20201215172323.13309-1-nsaenzjulienne@suse.de> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 @@ -958,20 +1420,28 @@ These functions, instead of relying on hard-coded platform-specific address translations, make use of the DMA constraints provided by the DM core. This allows for per-device translations. +We can't yet get rid of the legacy phys_to_bus()/bus_to_phys() +implementations as some of its users are not integrated into the +device model. + Signed-off-by: Nicolas Saenz Julienne +Reviewed-by: Simon Glass --- +Changes since v2: + - Use CONFIG_DM_DMA + include/phys2bus.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/include/phys2bus.h b/include/phys2bus.h -index dc9b8e5a25..a380063af4 100644 +index dc9b8e5a25..516d630aea 100644 --- a/include/phys2bus.h +++ b/include/phys2bus.h @@ -21,4 +21,20 @@ static inline unsigned long bus_to_phys(unsigned long bus) } #endif -+#if CONFIG_IS_ENABLED(DM) ++#if CONFIG_IS_ENABLED(DM_DMA) +#include + +static inline dma_addr_t dev_phys_to_bus(struct udevice *dev, @@ -989,13 +1459,12 @@ index dc9b8e5a25..a380063af4 100644 + #endif -From patchwork Thu Nov 19 17:48:21 2020 +From patchwork Tue Dec 15 17:23:20 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Saenz Julienne -X-Patchwork-Id: 1403203 -X-Patchwork-Delegate: matthias.bgg@gmail.com +X-Patchwork-Id: 1416606 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org @@ -1009,46 +1478,190 @@ Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) - by ozlabs.org (Postfix) with ESMTPS id 4CcRzp2ZpRz9sTR - for ; Fri, 20 Nov 2020 04:50:46 +1100 (AEDT) + by ozlabs.org (Postfix) with ESMTPS id 4CwQBN59dSz9sPB + for ; Wed, 16 Dec 2020 04:25:16 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) - by phobos.denx.de (Postfix) with ESMTP id 2D4E0825D9; - Thu, 19 Nov 2020 18:49:25 +0100 (CET) + by phobos.denx.de (Postfix) with ESMTP id 29A0082A13; + Tue, 15 Dec 2020 18:23:56 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=suse.de Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Received: by phobos.denx.de (Postfix, from userid 109) - id BFF1B825A3; Thu, 19 Nov 2020 18:49:12 +0100 (CET) + id 672DA82A04; Tue, 15 Dec 2020 18:23:40 +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=-1.9 required=5.0 tests=BAYES_00,RCVD_IN_MSPIKE_H3, - RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham +X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, + RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from mx2.suse.de (mx2.suse.de [195.135.220.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) - by phobos.denx.de (Postfix) with ESMTPS id B7CCF82586 - for ; Thu, 19 Nov 2020 18:49:04 +0100 (CET) + by phobos.denx.de (Postfix) with ESMTPS id 02380829F8 + for ; Tue, 15 Dec 2020 18:23:33 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=suse.de Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=nsaenzjulienne@suse.de Received: from relay2.suse.de (unknown [195.135.221.27]) - by mx2.suse.de (Postfix) with ESMTP id 7AA0FAD0F; - Thu, 19 Nov 2020 17:49:04 +0000 (UTC) + by mx2.suse.de (Postfix) with ESMTP id 8760FAFD7; + Tue, 15 Dec 2020 17:23:32 +0000 (UTC) From: Nicolas Saenz Julienne -To: u-boot@lists.denx.de, bmeng.cn@gmail.com, sjg@chromium.org, marex@denx.de -Cc: mbrugger@suse.com, m.szyprowski@samsung.com, s.nawrocki@samsung.com, - swarren@wwwdotorg.org, peng.fan@nxp.com, +To: mbrugger@suse.com, u-boot@lists.denx.de, bmeng.cn@gmail.com, + sjg@chromium.org, marex@denx.de +Cc: m.szyprowski@samsung.com, s.nawrocki@samsung.com, swarren@wwwdotorg.org, + peng.fan@nxp.com, sr@denx.de, pbrobinson@gmail.com, Nicolas Saenz Julienne -Subject: [PATCH 7/8] xhci: translate virtual addresses into the bus's address - space -Date: Thu, 19 Nov 2020 18:48:21 +0100 -Message-Id: <20201119174820.7820-8-nsaenzjulienne@suse.de> +Subject: [PATCH v3 09/12] dm: test: Add test case for + dev_phys_to_bus()/dev_bus_to_phys() +Date: Tue, 15 Dec 2020 18:23:20 +0100 +Message-Id: <20201215172323.13309-10-nsaenzjulienne@suse.de> X-Mailer: git-send-email 2.29.2 -In-Reply-To: <20201119174820.7820-1-nsaenzjulienne@suse.de> -References: <20201119174820.7820-1-nsaenzjulienne@suse.de> +In-Reply-To: <20201215172323.13309-1-nsaenzjulienne@suse.de> +References: <20201215172323.13309-1-nsaenzjulienne@suse.de> +MIME-Version: 1.0 +X-BeenThere: u-boot@lists.denx.de +X-Mailman-Version: 2.1.34 +Precedence: list +List-Id: U-Boot discussion +List-Unsubscribe: , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: , + +Errors-To: u-boot-bounces@lists.denx.de +Sender: "U-Boot" +X-Virus-Scanned: clamav-milter 0.102.3 at phobos.denx.de +X-Virus-Status: Clean + +By reusing DT nodes already available in sandbox's test DT introduce a +test to validate dev_phys_to_bus()/dev_bus_to_phys(). + +Signed-off-by: Nicolas Saenz Julienne +--- + test/dm/Makefile | 1 + + test/dm/phys2bus.c | 36 ++++++++++++++++++++++++++++++++++++ + 2 files changed, 37 insertions(+) + create mode 100644 test/dm/phys2bus.c + +diff --git a/test/dm/Makefile b/test/dm/Makefile +index 5c52d8b6ea..ac86abaa88 100644 +--- a/test/dm/Makefile ++++ b/test/dm/Makefile +@@ -16,6 +16,7 @@ obj-$(CONFIG_UT_DM) += test-uclass.o + + obj-$(CONFIG_UT_DM) += core.o + obj-$(CONFIG_UT_DM) += read.o ++obj-$(CONFIG_UT_DM) += phys2bus.o + ifneq ($(CONFIG_SANDBOX),) + obj-$(CONFIG_ACPIGEN) += acpi.o + obj-$(CONFIG_ACPIGEN) += acpigen.o +diff --git a/test/dm/phys2bus.c b/test/dm/phys2bus.c +new file mode 100644 +index 0000000000..06a045c168 +--- /dev/null ++++ b/test/dm/phys2bus.c +@@ -0,0 +1,36 @@ ++// SPDX-License-Identifier: GPL-2.0+ ++/* ++ * Copyright (c) 2020 Nicolas Saenz Julienne ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static int dm_test_phys_to_bus(struct unit_test_state *uts) ++{ ++ struct udevice *dev; ++ ofnode node; ++ ++ node = ofnode_path("/mmio-bus@0"); ++ ut_assert(ofnode_valid(node)); ++ ut_assert(!uclass_get_device_by_ofnode(UCLASS_TEST_BUS, node, &dev)); ++ /* In this case it should be transparent, no dma-ranges in parent bus */ ++ ut_asserteq_ptr((void*)0xfffffULL, (void*)dev_phys_to_bus(dev, 0xfffff)); ++ ut_asserteq_ptr((void*)0xfffffULL, (void*)(ulong)dev_bus_to_phys(dev, 0xfffff)); ++ ++ node = ofnode_path("/mmio-bus@0/subnode@0"); ++ ut_assert(ofnode_valid(node)); ++ ut_assert(!uclass_get_device_by_ofnode(UCLASS_TEST_FDT, node, &dev)); ++ ut_asserteq_ptr((void*)0x100fffffULL, (void*)dev_phys_to_bus(dev, 0xfffff)); ++ ut_asserteq_ptr((void*)0xfffffULL, (void*)(ulong)dev_bus_to_phys(dev, 0x100fffff)); ++ ++ return 0; ++} ++DM_TEST(dm_test_phys_to_bus, UT_TESTF_SCAN_PDATA | UT_TESTF_SCAN_FDT); + +From patchwork Tue Dec 15 17:23:21 2020 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +X-Patchwork-Submitter: Nicolas Saenz Julienne +X-Patchwork-Id: 1416608 +Return-Path: +X-Original-To: incoming@patchwork.ozlabs.org +Delivered-To: patchwork-incoming@bilbo.ozlabs.org +Authentication-Results: ozlabs.org; + spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de + (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; + envelope-from=u-boot-bounces@lists.denx.de; receiver=) +Authentication-Results: ozlabs.org; + dmarc=none (p=none dis=none) header.from=suse.de +Received: from phobos.denx.de (phobos.denx.de + [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) + (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) + key-exchange X25519 server-signature RSA-PSS (4096 bits)) + (No client certificate requested) + by ozlabs.org (Postfix) with ESMTPS id 4CwQBm5kcqz9sPB + for ; Wed, 16 Dec 2020 04:25:36 +1100 (AEDT) +Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) + by phobos.denx.de (Postfix) with ESMTP id E9EE282A25; + Tue, 15 Dec 2020 18:23:59 +0100 (CET) +Authentication-Results: phobos.denx.de; + dmarc=none (p=none dis=none) header.from=suse.de +Authentication-Results: phobos.denx.de; + spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de +Received: by phobos.denx.de (Postfix, from userid 109) + id 2666182A05; Tue, 15 Dec 2020 18:23:43 +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=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, + RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE autolearn=ham + autolearn_force=no version=3.4.2 +Received: from mx2.suse.de (mx2.suse.de [195.135.220.15]) + (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) + (No client certificate requested) + by phobos.denx.de (Postfix) with ESMTPS id 4BFAE829F9 + for ; Tue, 15 Dec 2020 18:23:33 +0100 (CET) +Authentication-Results: phobos.denx.de; + dmarc=none (p=none dis=none) header.from=suse.de +Authentication-Results: phobos.denx.de; + spf=pass smtp.mailfrom=nsaenzjulienne@suse.de +Received: from relay2.suse.de (unknown [195.135.221.27]) + by mx2.suse.de (Postfix) with ESMTP id 0AEEDB1C9; + Tue, 15 Dec 2020 17:23:33 +0000 (UTC) +From: Nicolas Saenz Julienne +To: mbrugger@suse.com, u-boot@lists.denx.de, bmeng.cn@gmail.com, + sjg@chromium.org, marex@denx.de +Cc: m.szyprowski@samsung.com, s.nawrocki@samsung.com, swarren@wwwdotorg.org, + peng.fan@nxp.com, sr@denx.de, pbrobinson@gmail.com, + Nicolas Saenz Julienne +Subject: [PATCH v3 10/12] xhci: translate virtual addresses into the bus's + address space +Date: Tue, 15 Dec 2020 18:23:21 +0100 +Message-Id: <20201215172323.13309-11-nsaenzjulienne@suse.de> +X-Mailer: git-send-email 2.29.2 +In-Reply-To: <20201215172323.13309-1-nsaenzjulienne@suse.de> +References: <20201215172323.13309-1-nsaenzjulienne@suse.de> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 @@ -1073,7 +1686,7 @@ Raspberry Pi 4 might introduce an offset to memory accesses incoming from its PCIe port. Introduce xhci_virt_to_bus() and xhci_bus_to_virt() to cater with these -limitations and make sure we don't break non DM users. +limitations, and make sure we don't break non DM users. Signed-off-by: Nicolas Saenz Julienne --- @@ -1084,7 +1697,7 @@ Signed-off-by: Nicolas Saenz Julienne 4 files changed, 54 insertions(+), 28 deletions(-) diff --git a/drivers/usb/host/xhci-mem.c b/drivers/usb/host/xhci-mem.c -index b002d6f166..e8d435d644 100644 +index b002d6f166..83147d51b5 100644 --- a/drivers/usb/host/xhci-mem.c +++ b/drivers/usb/host/xhci-mem.c @@ -110,7 +110,7 @@ static void xhci_scratchpad_free(struct xhci_ctrl *ctrl) @@ -1157,7 +1770,7 @@ index b002d6f166..e8d435d644 100644 - cpu_to_le64((uintptr_t)scratchpad->sp_array); + + val_64 = xhci_virt_to_bus(ctrl, scratchpad->sp_array); -+ ctrl->dcbaa->dev_context_ptrs[0] = cpu_to_le64((uintptr_t)val_64); ++ ctrl->dcbaa->dev_context_ptrs[0] = cpu_to_le64(val_64); xhci_flush_cache((uintptr_t)&ctrl->dcbaa->dev_context_ptrs[0], sizeof(ctrl->dcbaa->dev_context_ptrs[0])); @@ -1318,7 +1931,7 @@ index 7080f8fabe..d27ac01c83 100644 virt_dev->eps[ep_index].ring->cycle_state); diff --git a/include/usb/xhci.h b/include/usb/xhci.h -index e1d382369a..57e06087a1 100644 +index e1d382369a..b87210b9ba 100644 --- a/include/usb/xhci.h +++ b/include/usb/xhci.h @@ -16,6 +16,7 @@ @@ -1345,7 +1958,7 @@ index e1d382369a..57e06087a1 100644 +static inline dma_addr_t xhci_virt_to_bus(struct xhci_ctrl *ctrl, void *addr) +{ -+#if CONFIG_IS_ENABLED(DM_USB) ++#if CONFIG_IS_ENABLED(DM_DMA) + return dev_phys_to_bus(ctrl->dev, virt_to_phys(addr)); +#else + return phys_to_bus(virt_to_phys(addr)); @@ -1354,7 +1967,7 @@ index e1d382369a..57e06087a1 100644 + +static inline void *xhci_bus_to_virt(struct xhci_ctrl *ctrl, dma_addr_t addr) +{ -+#if CONFIG_IS_ENABLED(DM_USB) ++#if CONFIG_IS_ENABLED(DM_DMA) + return phys_to_virt(dev_bus_to_phys(ctrl->dev, addr)); +#else + return phys_to_virt(bus_to_phys(addr)); @@ -1363,13 +1976,12 @@ index e1d382369a..57e06087a1 100644 + #endif /* HOST_XHCI_H_ */ -From patchwork Thu Nov 19 17:48:22 2020 +From patchwork Tue Dec 15 17:23:22 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Saenz Julienne -X-Patchwork-Id: 1403202 -X-Patchwork-Delegate: matthias.bgg@gmail.com +X-Patchwork-Id: 1416607 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org @@ -1383,45 +1995,46 @@ Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) - by ozlabs.org (Postfix) with ESMTPS id 4CcRzc5cjwz9s1l - for ; Fri, 20 Nov 2020 04:50:36 +1100 (AEDT) + by ozlabs.org (Postfix) with ESMTPS id 4CwQBb0GLmz9sPB + for ; Wed, 16 Dec 2020 04:25:27 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) - by phobos.denx.de (Postfix) with ESMTP id 4A055825D4; - Thu, 19 Nov 2020 18:49:23 +0100 (CET) + by phobos.denx.de (Postfix) with ESMTP id E7F9482A20; + Tue, 15 Dec 2020 18:23:57 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=suse.de Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Received: by phobos.denx.de (Postfix, from userid 109) - id 0FD2E8258E; Thu, 19 Nov 2020 18:49:11 +0100 (CET) + id 05F0082A03; Tue, 15 Dec 2020 18:23:41 +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=-1.9 required=5.0 tests=BAYES_00,RCVD_IN_MSPIKE_H3, - RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham +X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, + RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from mx2.suse.de (mx2.suse.de [195.135.220.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) - by phobos.denx.de (Postfix) with ESMTPS id 3691182573 - for ; Thu, 19 Nov 2020 18:49:05 +0100 (CET) + by phobos.denx.de (Postfix) with ESMTPS id CA59E829FA + for ; Tue, 15 Dec 2020 18:23:33 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=suse.de Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=nsaenzjulienne@suse.de Received: from relay2.suse.de (unknown [195.135.221.27]) - by mx2.suse.de (Postfix) with ESMTP id F38DCAD11; - Thu, 19 Nov 2020 17:49:04 +0000 (UTC) + by mx2.suse.de (Postfix) with ESMTP id 92E15AF1A; + Tue, 15 Dec 2020 17:23:33 +0000 (UTC) From: Nicolas Saenz Julienne -To: u-boot@lists.denx.de, bmeng.cn@gmail.com, sjg@chromium.org, marex@denx.de -Cc: mbrugger@suse.com, m.szyprowski@samsung.com, s.nawrocki@samsung.com, - swarren@wwwdotorg.org, peng.fan@nxp.com, +To: mbrugger@suse.com, u-boot@lists.denx.de, bmeng.cn@gmail.com, + sjg@chromium.org, marex@denx.de +Cc: m.szyprowski@samsung.com, s.nawrocki@samsung.com, swarren@wwwdotorg.org, + peng.fan@nxp.com, sr@denx.de, pbrobinson@gmail.com, Nicolas Saenz Julienne -Subject: [PATCH 8/8] mmc: Introduce mmc_phys_to_bus()/mmc_bus_to_phys() -Date: Thu, 19 Nov 2020 18:48:22 +0100 -Message-Id: <20201119174820.7820-9-nsaenzjulienne@suse.de> +Subject: [PATCH v3 11/12] mmc: Introduce mmc_phys_to_bus()/mmc_bus_to_phys() +Date: Tue, 15 Dec 2020 18:23:22 +0100 +Message-Id: <20201215172323.13309-12-nsaenzjulienne@suse.de> X-Mailer: git-send-email 2.29.2 -In-Reply-To: <20201119174820.7820-1-nsaenzjulienne@suse.de> -References: <20201119174820.7820-1-nsaenzjulienne@suse.de> +In-Reply-To: <20201215172323.13309-1-nsaenzjulienne@suse.de> +References: <20201215172323.13309-1-nsaenzjulienne@suse.de> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 @@ -1481,7 +2094,7 @@ index 0628934312..2086d7cdb1 100644 } } diff --git a/include/mmc.h b/include/mmc.h -index 1d377e0281..805a3b2215 100644 +index 1d377e0281..5fe1ef1dfc 100644 --- a/include/mmc.h +++ b/include/mmc.h @@ -15,6 +15,7 @@ @@ -1498,7 +2111,7 @@ index 1d377e0281..805a3b2215 100644 +static inline dma_addr_t mmc_phys_to_bus(struct mmc *mmc, phys_addr_t addr) +{ -+#if CONFIG_IS_ENABLED(DM_MMC) ++#if CONFIG_IS_ENABLED(DM_DMA) + return dev_phys_to_bus(mmc->dev, addr); +#else + return phys_to_bus(addr); @@ -1506,3 +2119,127 @@ index 1d377e0281..805a3b2215 100644 +} + #endif /* _MMC_H_ */ + +From patchwork Tue Dec 15 17:23:23 2020 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +X-Patchwork-Submitter: Nicolas Saenz Julienne +X-Patchwork-Id: 1416609 +Return-Path: +X-Original-To: incoming@patchwork.ozlabs.org +Delivered-To: patchwork-incoming@bilbo.ozlabs.org +Authentication-Results: ozlabs.org; + spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de + (client-ip=85.214.62.61; helo=phobos.denx.de; + envelope-from=u-boot-bounces@lists.denx.de; receiver=) +Authentication-Results: ozlabs.org; + dmarc=none (p=none dis=none) header.from=suse.de +Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) + (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) + key-exchange X25519 server-signature RSA-PSS (4096 bits)) + (No client certificate requested) + by ozlabs.org (Postfix) with ESMTPS id 4CwQBy4zZlz9sPB + for ; Wed, 16 Dec 2020 04:25:46 +1100 (AEDT) +Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) + by phobos.denx.de (Postfix) with ESMTP id 6DF6282A2E; + Tue, 15 Dec 2020 18:24:04 +0100 (CET) +Authentication-Results: phobos.denx.de; + dmarc=none (p=none dis=none) header.from=suse.de +Authentication-Results: phobos.denx.de; + spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de +Received: by phobos.denx.de (Postfix, from userid 109) + id 9CF0B82A09; Tue, 15 Dec 2020 18:23:42 +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=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, + RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE autolearn=ham + autolearn_force=no version=3.4.2 +Received: from mx2.suse.de (mx2.suse.de [195.135.220.15]) + (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) + (No client certificate requested) + by phobos.denx.de (Postfix) with ESMTPS id 6979E829FE + for ; Tue, 15 Dec 2020 18:23:34 +0100 (CET) +Authentication-Results: phobos.denx.de; + dmarc=none (p=none dis=none) header.from=suse.de +Authentication-Results: phobos.denx.de; + spf=pass smtp.mailfrom=nsaenzjulienne@suse.de +Received: from relay2.suse.de (unknown [195.135.221.27]) + by mx2.suse.de (Postfix) with ESMTP id 2DF96AC7F; + Tue, 15 Dec 2020 17:23:34 +0000 (UTC) +From: Nicolas Saenz Julienne +To: mbrugger@suse.com, u-boot@lists.denx.de, bmeng.cn@gmail.com, + sjg@chromium.org, marex@denx.de +Cc: m.szyprowski@samsung.com, s.nawrocki@samsung.com, swarren@wwwdotorg.org, + peng.fan@nxp.com, sr@denx.de, pbrobinson@gmail.com, + Nicolas Saenz Julienne +Subject: [PATCH v3 12/12] configs: rpi4: Enable DM_DMA across all RPi4 + configurations +Date: Tue, 15 Dec 2020 18:23:23 +0100 +Message-Id: <20201215172323.13309-13-nsaenzjulienne@suse.de> +X-Mailer: git-send-email 2.29.2 +In-Reply-To: <20201215172323.13309-1-nsaenzjulienne@suse.de> +References: <20201215172323.13309-1-nsaenzjulienne@suse.de> +MIME-Version: 1.0 +X-BeenThere: u-boot@lists.denx.de +X-Mailman-Version: 2.1.34 +Precedence: list +List-Id: U-Boot discussion +List-Unsubscribe: , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: , + +Errors-To: u-boot-bounces@lists.denx.de +Sender: "U-Boot" +X-Virus-Scanned: clamav-milter 0.102.3 at phobos.denx.de +X-Virus-Status: Clean + +The DM_DMA option is needed in order to translate physical address into +bus addresses on a per-device basis. + +Signed-off-by: Nicolas Saenz Julienne +--- + configs/rpi_4_32b_defconfig | 1 + + configs/rpi_4_defconfig | 1 + + configs/rpi_arm64_defconfig | 1 + + 3 files changed, 3 insertions(+) + +diff --git a/configs/rpi_4_32b_defconfig b/configs/rpi_4_32b_defconfig +index 5ddd838fd5..0a5d3ff8cd 100644 +--- a/configs/rpi_4_32b_defconfig ++++ b/configs/rpi_4_32b_defconfig +@@ -22,6 +22,7 @@ CONFIG_OF_BOARD=y + CONFIG_ENV_FAT_DEVICE_AND_PART="0:1" + CONFIG_SYS_RELOC_GD_ENV_ADDR=y + CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y ++CONFIG_DM_DMA=y + CONFIG_DFU_MMC=y + CONFIG_DM_KEYBOARD=y + CONFIG_DM_MMC=y +diff --git a/configs/rpi_4_defconfig b/configs/rpi_4_defconfig +index 2590d0a696..b61cdc05f1 100644 +--- a/configs/rpi_4_defconfig ++++ b/configs/rpi_4_defconfig +@@ -22,6 +22,7 @@ CONFIG_OF_BOARD=y + CONFIG_ENV_FAT_DEVICE_AND_PART="0:1" + CONFIG_SYS_RELOC_GD_ENV_ADDR=y + CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y ++CONFIG_DM_DMA=y + CONFIG_DFU_MMC=y + CONFIG_DM_KEYBOARD=y + CONFIG_DM_MMC=y +diff --git a/configs/rpi_arm64_defconfig b/configs/rpi_arm64_defconfig +index 2639219a1a..4125a1feba 100644 +--- a/configs/rpi_arm64_defconfig ++++ b/configs/rpi_arm64_defconfig +@@ -20,6 +20,7 @@ CONFIG_CMD_FS_UUID=y + CONFIG_OF_BOARD=y + CONFIG_ENV_FAT_DEVICE_AND_PART="0:1" + CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y ++CONFIG_DM_DMA=y + CONFIG_DM_KEYBOARD=y + CONFIG_DM_MMC=y + CONFIG_MMC_SDHCI=y diff --git a/aarch64-boards b/aarch64-boards index d849833..e5d4147 100644 --- a/aarch64-boards +++ b/aarch64-boards @@ -43,6 +43,9 @@ orangepi_win orangepi_zero_plus orangepi_zero_plus2 p212 +p2371-2180 +p2771-0000-500 +p3450-0000 pine64-lts pine64_plus pinebook @@ -51,6 +54,7 @@ pinephone pinetab pine_h64 poplar +puma-rk3399 rock64-rk3328 rock960-rk3399 rock-pi-4-rk3399 diff --git a/arm-boards b/arm-boards index f4a04d4..8a7798d 100644 --- a/arm-boards +++ b/arm-boards @@ -56,6 +56,7 @@ inet9f_rev03 inet_q972 Itead_Ibox_A20 jesurun_q5 +jetson-tk1 kc1 Lamobo_R1 libretech_all_h3_cc_h2_plus @@ -63,6 +64,7 @@ Linksprite_pcDuino Linksprite_pcDuino3 Linksprite_pcDuino3_Nano liteboard +marsboard Marsboard_A10 Mele_A1000 Mele_A1000G_quad @@ -99,6 +101,8 @@ orangepi_plus2e orangepi_r1 orangepi_zero origen +paz00 +pinecube polaroid_mid2809pxe04 pov_protab2_ips9 q8_a13_tablet @@ -107,8 +111,10 @@ q8_a33_tablet_1024x600 q8_a33_tablet_800x480 qemu_arm r7-tv-dongle +riotboard rock rock-pi-n8-rk3288 +rock2 rpi_2 rpi_3_32b rpi_4_32b @@ -121,6 +127,9 @@ sunxi_Gemei_G9 tbs_a711 tinker-rk3288 tinker-s-rk3288 +trimslice +udoo +udoo_neo usbarmory UTOO_P66 vexpress_ca15_tc2 diff --git a/rockchip-Move-Bob-specific-bits-to-it-s-specific-u-b.patch b/rockchip-Move-Bob-specific-bits-to-it-s-specific-u-b.patch deleted file mode 100644 index 2718f7b..0000000 --- a/rockchip-Move-Bob-specific-bits-to-it-s-specific-u-b.patch +++ /dev/null @@ -1,104 +0,0 @@ -From 71f86c48580642a8d6a7d1049427bb72cb93b480 Mon Sep 17 00:00:00 2001 -From: Peter Robinson -Date: Sun, 8 Nov 2020 19:57:50 +0000 -Subject: [PATCH] rockchip: Move Bob specific bits to it's specific u-boot.dtsi - -Move the bits that are device specific to the -u-boot.dtsi as the -bits may be different on other devices and hence breaks SPI on -those devices such as the Pinebook Pro. - -Signed-off-by: Peter Robinson -Fixes: c4cea2bbf995 ("rockchip: Enable building a SPI ROM image on bob") -Cc: Simon Glass ---- - arch/arm/dts/rk3399-gru-u-boot.dtsi | 30 +++++++++++++++++++++++++++++ - arch/arm/dts/rk3399-u-boot.dtsi | 25 ------------------------ - 2 files changed, 30 insertions(+), 25 deletions(-) - -diff --git a/arch/arm/dts/rk3399-gru-u-boot.dtsi b/arch/arm/dts/rk3399-gru-u-boot.dtsi -index 390ac2bb5a..5e95cacfea 100644 ---- a/arch/arm/dts/rk3399-gru-u-boot.dtsi -+++ b/arch/arm/dts/rk3399-gru-u-boot.dtsi -@@ -5,6 +5,36 @@ - - #include "rk3399-u-boot.dtsi" - -+/ { -+ aliases { -+ spi1 = &spi1; -+ }; -+}; -+ -+#ifdef CONFIG_ROCKCHIP_SPI_IMAGE -+&binman { -+ rom { -+ filename = "u-boot.rom"; -+ size = <0x400000>; -+ pad-byte = <0xff>; -+ -+ mkimage { -+ args = "-n rk3399 -T rkspi"; -+ u-boot-spl { -+ }; -+ }; -+ u-boot-img { -+ offset = <0x40000>; -+ }; -+ u-boot { -+ offset = <0x300000>; -+ }; -+ fdtmap { -+ }; -+ }; -+}; -+#endif -+ - &spi_flash { - u-boot,dm-pre-reloc; - }; -diff --git a/arch/arm/dts/rk3399-u-boot.dtsi b/arch/arm/dts/rk3399-u-boot.dtsi -index ecd230c720..26b0a34e64 100644 ---- a/arch/arm/dts/rk3399-u-boot.dtsi -+++ b/arch/arm/dts/rk3399-u-boot.dtsi -@@ -11,7 +11,6 @@ - mmc0 = &sdhci; - mmc1 = &sdmmc; - pci0 = &pcie0; -- spi1 = &spi1; - }; - - cic: syscon@ff620000 { -@@ -60,30 +59,6 @@ - - }; - --#ifdef CONFIG_ROCKCHIP_SPI_IMAGE --&binman { -- rom { -- filename = "u-boot.rom"; -- size = <0x400000>; -- pad-byte = <0xff>; -- -- mkimage { -- args = "-n rk3399 -T rkspi"; -- u-boot-spl { -- }; -- }; -- u-boot-img { -- offset = <0x40000>; -- }; -- u-boot { -- offset = <0x300000>; -- }; -- fdtmap { -- }; -- }; --}; --#endif -- - &cru { - u-boot,dm-pre-reloc; - }; --- -2.28.0 - diff --git a/rockchip-Pinebook-Pro-Fix-USB.patch b/rockchip-Pinebook-Pro-Fix-USB.patch deleted file mode 100644 index 8f81454..0000000 --- a/rockchip-Pinebook-Pro-Fix-USB.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 12bc3e2c7c805f989629d1a546276491a7d28922 Mon Sep 17 00:00:00 2001 -From: Peter Robinson -Date: Mon, 9 Nov 2020 23:01:19 +0000 -Subject: [PATCH] rockchip: Pinebook Pro: Fix USB - -Improve USB config so keyboard and USB-A ports work. - -Signed-off-by: Peter Robinson ---- - configs/pinebook-pro-rk3399_defconfig | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/configs/pinebook-pro-rk3399_defconfig b/configs/pinebook-pro-rk3399_defconfig -index 1ed54ad0ed..8fbd7280ac 100644 ---- a/configs/pinebook-pro-rk3399_defconfig -+++ b/configs/pinebook-pro-rk3399_defconfig -@@ -55,6 +55,8 @@ CONFIG_SPI_FLASH_WINBOND=y - CONFIG_DM_ETH=y - CONFIG_NVME=y - CONFIG_PCI=y -+CONFIG_PHY_ROCKCHIP_INNO_USB2=y -+CONFIG_PHY_ROCKCHIP_TYPEC=y - CONFIG_DM_PMIC_FAN53555=y - CONFIG_PMIC_RK8XX=y - CONFIG_REGULATOR_PWM=y -@@ -76,8 +78,9 @@ CONFIG_USB_EHCI_GENERIC=y - CONFIG_USB_OHCI_HCD=y - CONFIG_USB_OHCI_GENERIC=y - CONFIG_USB_DWC3=y --CONFIG_ROCKCHIP_USB2_PHY=y -+CONFIG_USB_DWC3_GENERIC=y - CONFIG_USB_KEYBOARD=y -+CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y - CONFIG_USB_HOST_ETHER=y - CONFIG_USB_ETHER_ASIX=y - CONFIG_USB_ETHER_RTL8152=y --- -2.28.0 - diff --git a/sources b/sources index 2551a01..69acae9 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (u-boot-2021.01-rc2.tar.bz2) = ac21ed6ce160de377a8ea5750cd617f1c6d6e2b9508c8999fafb641e210e3bd030dcd26cea38259639c45ae0d0b9fda6d1007c547fdee002d8d946d6fb1952bb +SHA512 (u-boot-2021.01-rc3.tar.bz2) = 4c88bbdeb1e39e52bb069c4bf65c9829290a51da9a21de8e60d50b62c74ae98a35d22a235fdc0a86467aedc34f85dff5d63b874af247323d0d5bdcb2e82cd4a3 diff --git a/uboot-tools.spec b/uboot-tools.spec index 31a75ec..98b93ed 100644 --- a/uboot-tools.spec +++ b/uboot-tools.spec @@ -1,8 +1,8 @@ -%global candidate rc2 +%global candidate rc3 Name: uboot-tools Version: 2021.01 -Release: 0.2%{?candidate:.%{candidate}}%{?dist} +Release: 0.3%{?candidate:.%{candidate}}%{?dist} Summary: U-Boot utilities License: GPLv2+ BSD LGPL-2.1+ LGPL-2.0+ URL: http://www.denx.de/wiki/U-Boot @@ -23,22 +23,19 @@ Patch2: uefi-use-Fedora-specific-path-name.patch # Board fixes and enablement # RPi - uses RPI firmware device tree for HAT support Patch4: rpi-Enable-using-the-DT-provided-by-the-Raspberry-Pi.patch -Patch5: rpi-Add-identifier-for-the-new-RPi400.patch +Patch5: Raspberry-Pi-400-Compute-Module-4-support.patch # Tegra improvements Patch6: arm-tegra-define-fdtfile-option-for-distro-boot.patch Patch7: arm-add-BOOTENV_EFI_SET_FDTFILE_FALLBACK-for-tegra186-be.patch # AllWinner improvements -Patch8: AllWinner-UpstreamSync.patch -Patch9: AllWinner-PinePhone.patch Patch10: AllWinner-PineTab.patch Patch11: 0001-Fixes-for-AllWinner-ethernet-network-interfaces.patch +Patch12: sunxi-add-PineCube-board.patch # TI fixes -Patch12: 0001-Fix-BeagleAI-detection.patch +Patch13: 0001-Fix-BeagleAI-detection.patch # Rockchips improvements -Patch13: arm-rk3399-enable-rng-on-rock960-and-firefly3399.patch -Patch14: rockchip-Move-Bob-specific-bits-to-it-s-specific-u-b.patch +#Patch14: arm-rk3399-enable-rng-on-rock960-and-firefly3399.patch Patch15: rk3399-Pinebook-pro-EDP-support.patch -Patch16: rockchip-Pinebook-Pro-Fix-USB.patch BuildRequires: bc BuildRequires: dtc @@ -239,6 +236,11 @@ cp -p board/warp7/README builds/docs/README.warp7 %endif %changelog +* Tue Dec 15 2020 Peter Robinson - 2021.01-0.3.rc3 +- Update to 2021.01 RC3 +- Latest RPi-400/CM4 support patch +- Re-enable previously disabled device support + * Mon Dec 14 2020 Javier Martinez Canillas - 2021.01-0.2.rc2 - Fix a "scan_dev_for_efi" not defined error