Default "reset" from u-boot to L3 reset.
"reset" command with argument will trigger L1 reset.

Signed-off-by: Rajesh Ravi <rajesh.r...@broadcom.com>
Signed-off-by: Bharat Kumar Reddy Gooty <bharat.go...@broadcom.com>
Signed-off-by: Rayagonda Kokatanur <rayagonda.kokata...@broadcom.com>
---
 board/broadcom/bcmns3/ns3.c | 20 ++++++++++++++++++--
 1 file changed, 18 insertions(+), 2 deletions(-)

diff --git a/board/broadcom/bcmns3/ns3.c b/board/broadcom/bcmns3/ns3.c
index 5e644bd466..1221f26ddc 100644
--- a/board/broadcom/bcmns3/ns3.c
+++ b/board/broadcom/bcmns3/ns3.c
@@ -68,7 +68,23 @@ int dram_init_banksize(void)
        return 0;
 }
 
-void reset_cpu(ulong addr)
+void reset_cpu(ulong level)
 {
-       psci_system_reset();
+#define L3_RESET 30
+       u32 reset_level, strap_val;
+
+       /* Default reset type is L3 reset */
+       if (!level) {
+               /*
+                * Encoding: u-boot reset command expects decimal argument
+                * strap val = 1st decimal digit;reset level = 2nd decimal digit
+                */
+               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();
+       }
 }
-- 
2.17.1

Reply via email to