diff mbox series

[v5,06/15] board: ns3: default reset type to L3

Message ID 20200715171909.25868-7-rayagonda.kokatanur@broadcom.com
State Accepted
Commit b5a152e7ca0b2b71300c1ef7a4c80a1f729a7d05
Delegated to: Tom Rini
Headers show
Series add initial support for broadcom NS3 soc | expand

Commit Message

Rayagonda Kokatanur July 15, 2020, 5:19 p.m. UTC
Default "reset" from U-Boot to L3 reset.
"reset" command with argument will trigger L1 reset.

Signed-off-by: Rajesh Ravi <rajesh.ravi@broadcom.com>
Signed-off-by: Bharat Kumar Reddy Gooty <bharat.gooty@broadcom.com>
Signed-off-by: Rayagonda Kokatanur <rayagonda.kokatanur@broadcom.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
---
Changes from v4:
  -Address review comments from Simon,
   Move hash defines at top of file and add comment,
   Correct spelling mistakes.

 board/broadcom/bcmns3/ns3.c | 23 +++++++++++++++++++++--
 1 file changed, 21 insertions(+), 2 deletions(-)

Comments

Tom Rini July 29, 2020, 8:28 p.m. UTC | #1
On Wed, Jul 15, 2020 at 10:49:00PM +0530, Rayagonda Kokatanur wrote:

> Default "reset" from U-Boot to L3 reset.
> "reset" command with argument will trigger L1 reset.
> 
> Signed-off-by: Rajesh Ravi <rajesh.ravi@broadcom.com>
> Signed-off-by: Bharat Kumar Reddy Gooty <bharat.gooty@broadcom.com>
> Signed-off-by: Rayagonda Kokatanur <rayagonda.kokatanur@broadcom.com>
> Reviewed-by: Simon Glass <sjg@chromium.org>

Applied to u-boot/master, thanks!
diff mbox series

Patch

diff --git a/board/broadcom/bcmns3/ns3.c b/board/broadcom/bcmns3/ns3.c
index e51263f85e..6a72e28494 100644
--- a/board/broadcom/bcmns3/ns3.c
+++ b/board/broadcom/bcmns3/ns3.c
@@ -10,6 +10,9 @@ 
 #include <asm/armv8/mmu.h>
 #include <asm/arch-bcmns3/bl33_info.h>
 
+/* Default reset-level = 3 and strap-val = 0 */
+#define L3_RESET	30
+
 static struct mm_region ns3_mem_map[] = {
 	{
 		.virt = 0x0UL,
@@ -68,7 +71,23 @@  int dram_init_banksize(void)
 	return 0;
 }
 
-void reset_cpu(ulong addr)
+void reset_cpu(ulong level)
 {
-	psci_system_reset();
+	u32 reset_level, strap_val;
+
+	/* Default reset type is L3 reset */
+	if (!level) {
+		/*
+		 * Encoding: U-Boot reset command expects decimal argument,
+		 * Boot strap val: Bits[3:0]
+		 * reset level: Bits[7:4]
+		 */
+		strap_val = L3_RESET % 10;
+		level = L3_RESET / 10;
+		reset_level = level % 10;
+		psci_system_reset2(reset_level, strap_val);
+	} else {
+		/* U-Boot cmd "reset" with any arg will trigger L1 reset */
+		psci_system_reset();
+	}
 }