Hi Simon,

On 29.10.18 21:47, Simon Goldschmidt wrote:
Commit 768f23dc8ae3 ("ARM: socfpga: Put stack at the end of SRAM")
broke those socfpga boards that keep the bootcounter at the
end of the internal SRAM as the bootcounter needs 8 bytes
by default and thus the very first SPL call to
board_init_f_alloc_reserve overwrites the bootcounter.

This patch allows to move the initial stack pointer down a
bit to allow boards to reserve some of the internal SRAM for
other features (like the bootcounter).

Signed-off-by: Simon Goldschmidt <[email protected]>

Thanks for working on this. I've just found some time to dig
into this as well. I'll send a different approach for this
shortly.

Thanks,
Stefan

---

  include/configs/socfpga_common.h | 6 +++++-
  include/configs/socfpga_is1.h    | 9 +++++----
  include/configs/socfpga_sr1500.h | 3 ++-
  3 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/include/configs/socfpga_common.h b/include/configs/socfpga_common.h
index 2330143cf1..1e26630330 100644
--- a/include/configs/socfpga_common.h
+++ b/include/configs/socfpga_common.h
@@ -31,8 +31,12 @@
  #define CONFIG_SYS_INIT_RAM_ADDR      0xFFE00000
  #define CONFIG_SYS_INIT_RAM_SIZE      0x40000 /* 256KB */
  #endif
+#ifndef SOCFPGA_INIT_RAM_END_RESERVE
+#define SOCFPGA_INIT_RAM_END_RESERVE   0
+#endif
  #define CONFIG_SYS_INIT_SP_ADDR                       \
-       (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_RAM_SIZE)
+       (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_RAM_SIZE - \
+        SOCFPGA_INIT_RAM_END_RESERVE)
#define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM_1 diff --git a/include/configs/socfpga_is1.h b/include/configs/socfpga_is1.h
index c233c208a5..3c80c0f45c 100644
--- a/include/configs/socfpga_is1.h
+++ b/include/configs/socfpga_is1.h
@@ -23,12 +23,13 @@
  /* PHY */
  #endif
-/* The rest of the configuration is shared */
-#include <configs/socfpga_common.h>
-
  /*
- * Bootcounter
+ * Bootcounter (8 bytes at the end of internal SRAM)
   */
  #define CONFIG_SYS_BOOTCOUNT_BE
+#define SOCFPGA_INIT_RAM_END_RESERVE   8
+
+/* The rest of the configuration is shared */
+#include <configs/socfpga_common.h>
#endif /* __CONFIG_SOCFPGA_IS1_H__ */
diff --git a/include/configs/socfpga_sr1500.h b/include/configs/socfpga_sr1500.h
index 984f1183fd..b7b43fc6af 100644
--- a/include/configs/socfpga_sr1500.h
+++ b/include/configs/socfpga_sr1500.h
@@ -25,9 +25,10 @@
  #define CONFIG_SPI_N25Q256A_RESET
/*
- * Bootcounter
+ * Bootcounter (8 bytes at the end of internal SRAM)
   */
  #define CONFIG_SYS_BOOTCOUNT_BE
+#define SOCFPGA_INIT_RAM_END_RESERVE   8
/* Environment setting for SPI flash */
  #define CONFIG_SYS_REDUNDAND_ENVIRONMENT


Viele Grüße,
Stefan

--
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: [email protected]
_______________________________________________
U-Boot mailing list
[email protected]
https://lists.denx.de/listinfo/u-boot

Reply via email to