From 89a8bd848cc0ae5a018005881977230151a487fc Mon Sep 17 00:00:00 2001
From: Gregory Nutt <gnutt@nuttx.org>
Date: Thu, 3 Apr 2014 15:40:51 -0600
Subject: [PATCH] Updated NOR boot logic from David Sidrane

---
 configs/sama5d3x-ek/src/nor_main.c | 25 +++++++++++++------------
 1 file changed, 13 insertions(+), 12 deletions(-)

diff --git a/configs/sama5d3x-ek/src/nor_main.c b/configs/sama5d3x-ek/src/nor_main.c
index f840918529..063ba1d1f7 100644
--- a/configs/sama5d3x-ek/src/nor_main.c
+++ b/configs/sama5d3x-ek/src/nor_main.c
@@ -1,7 +1,7 @@
 /*****************************************************************************
  * configs/sama5d3x-ek/src/nor_main.c
  *
- *   Copyright (C) 2013 Gregory Nutt. All rights reserved.
+ *   Copyright (C) 2013-2014 Gregory Nutt. All rights reserved.
  *   Author: Gregory Nutt <gnutt@nuttx.org>
  *
  * Redistribution and use in source and binary forms, with or without
@@ -61,6 +61,15 @@
 
 #define NOR_ENTRY ((nor_entry_t)SAM_EBICS0_VSECTION)
 
+#define NOR_WAIT        1
+#define NOR_NO_WAIT     0
+
+#ifdef CONFIG_SAMA5D3xEK_NOR_START
+#  define NOR_BOOT_MODE NOR_NO_WAIT
+#else
+#  define NOR_BOOT_MODE NOR_WAIT
+#endif
+
 /****************************************************************************
  * Private Types
  ****************************************************************************/
@@ -92,16 +101,9 @@ int nor_main(int argc, char *argv)
    * to begin booting in NOR Flash
    */
 
-  static volatile uint32_t wait = 1;
+  static volatile uint32_t wait = NOR_BOOT_MODE;
 
-#ifdef CONFIG_SAMA5D3xEK_NOR_START
-  printf("Configuring and booting from NOR FLASH on CS0\n");
-  wait = 0;
-
-#else
-  printf("Configuring NOR FLASH on CS0 and waiting\n");
-  wait = 1;
-#endif
+  printf("Configuring NOR FLASH on CS0 and %s\n", wait ? "waiting" : "booting");
 
   /* Make sure that the SMC peripheral is enabled (But of course it is... we
    * are executing from NOR FLASH now).
@@ -191,12 +193,11 @@ int nor_main(int argc, char *argv)
 
   /* Then jump into NOR flash */
 
-  while (!wait)
+  while (wait)
     {
     }
 
   NOR_ENTRY();
 
-
   return 0; /* We should not get here in either case */
 }
-- 
GitLab