On Wednesday 02 March 2022 13:37:25 Marek Behún wrote: > On Wed, 2 Mar 2022 12:47:52 +0100 > Pali Rohár <[email protected]> wrote: > > > 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 <[email protected]> > > --- > > board/CZ.NIC/turris_omnia/turris_omnia.c | 10 ++++++++++ > > 1 file changed, 10 insertions(+) > > > > diff --git a/board/CZ.NIC/turris_omnia/turris_omnia.c > > b/board/CZ.NIC/turris_omnia/turris_omnia.c > > index 33cec6587e19..a93af6c5b877 100644 > > --- a/board/CZ.NIC/turris_omnia/turris_omnia.c > > +++ b/board/CZ.NIC/turris_omnia/turris_omnia.c > > @@ -243,6 +243,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 > > if (IS_ENABLED(CONFIG_SPL_BUILD)) > return (void *)0xD4000000 + CONFIG_ENV_OFFSET; > else > return NULL; > > Marek
This does not work. CONFIG_ENV_OFFSET is not defined. All this code needs to be filtered out via preprocessor.

