summaryrefslogtreecommitdiff
path: root/board/CZ.NIC
diff options
context:
space:
mode:
authorPali Rohár <pali@kernel.org>2022-03-02 12:47:52 +0100
committerStefan Roese <sr@denx.de>2022-05-02 07:28:25 +0200
commitd6ba5c4f922cbe596da13b295ffe10db35101fb4 (patch)
tree20b3390718d0db536147e7fbc5d0603713f4264d /board/CZ.NIC
parentf4bf81b01351f4d8918ee9ab6855dcb33acd4db8 (diff)
downloadu-boot-d6ba5c4f922cbe596da13b295ffe10db35101fb4.tar.gz
arm: mvebu: turris_omnia: Provide env_sf_get_env_addr() function
BootROM maps SPI Flash to fixed address 0xD4000000 and this mapping is active also when BootROM is executing binary kwbimage headers, which includes also U-Boot SPL. Therefore no initialization code is required to access SPI Flags from U-Boot SPL. In proper U-Boot it is remapped to other location. So in mvebu implementation of env_sf_get_env_addr() function returns 0xD4000000 when running in SPL and NULL when in proper U-Boot. This change would allow to use U-Boot ENV in U-Boot SPL. Normally it is not possible to read ENV because it is too big and U-Boot SPL does not have such big malloc() pool to real all ENV variables. Signed-off-by: Pali Rohár <pali@kernel.org> Reviewed-by: Marek Behún <marek.behun@nic.cz>
Diffstat (limited to 'board/CZ.NIC')
-rw-r--r--board/CZ.NIC/turris_omnia/turris_omnia.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/board/CZ.NIC/turris_omnia/turris_omnia.c b/board/CZ.NIC/turris_omnia/turris_omnia.c
index da2fee578c..28a3f2b825 100644
--- a/board/CZ.NIC/turris_omnia/turris_omnia.c
+++ b/board/CZ.NIC/turris_omnia/turris_omnia.c
@@ -236,6 +236,16 @@ static bool omnia_detect_sata(void)
return stsword & MSATA_IND_STSBIT ? true : false;
}
+void *env_sf_get_env_addr(void)
+{
+ /* SPI Flash is mapped to address 0xD4000000 only in SPL */
+#ifdef CONFIG_SPL_BUILD
+ return (void *)0xD4000000 + CONFIG_ENV_OFFSET;
+#else
+ return NULL;
+#endif
+}
+
int hws_board_topology_load(struct serdes_map **serdes_map_array, u8 *count)
{
if (omnia_detect_sata()) {