mirror of
https://github.com/u-boot/u-boot.git
synced 2024-11-28 07:03:31 +08:00
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>
This commit is contained in:
parent
f4bf81b013
commit
d6ba5c4f92
@ -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()) {
|
||||
|
Loading…
Reference in New Issue
Block a user