mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2026-06-13 15:03:58 +03:00
arm: mvebu: Define env_sf_get_env_addr() also for Proper U-Boot
Proper U-Boot moves SPI0 CS0 Flash mapping from 0xD4000000 to 0xF4000000 and change its size from 64 MB to 8 MB. Definitions are already in MBUS_SPI_BASE/MBUS_SPI_SIZE macros. So define these macros also for SPL build, use them in env_sf_get_env_addr() function and move this function from spl.c to cpu.c to be available in Proper U-Boot too. Signed-off-by: Pali Rohár <pali@kernel.org>
This commit is contained in:
@@ -35,6 +35,15 @@ static const struct mbus_win windows[] = {
|
||||
#endif
|
||||
};
|
||||
|
||||
/* SPI0 CS0 Flash of size MBUS_SPI_SIZE is mapped to address MBUS_SPI_BASE */
|
||||
#if CONFIG_ENV_SPI_BUS == 0 && CONFIG_ENV_SPI_CS == 0 && \
|
||||
CONFIG_ENV_OFFSET + CONFIG_ENV_SIZE <= MBUS_SPI_SIZE
|
||||
void *env_sf_get_env_addr(void)
|
||||
{
|
||||
return (void *)MBUS_SPI_BASE + CONFIG_ENV_OFFSET;
|
||||
}
|
||||
#endif
|
||||
|
||||
void lowlevel_init(void)
|
||||
{
|
||||
/*
|
||||
|
||||
@@ -71,8 +71,13 @@ enum cpu_attrib {
|
||||
#define MBUS_PCI_MEM_SIZE ((MBUS_PCI_MAX_PORTS * 128) << 20)
|
||||
#define MBUS_PCI_IO_BASE 0xF1100000
|
||||
#define MBUS_PCI_IO_SIZE ((MBUS_PCI_MAX_PORTS * 64) << 10)
|
||||
#ifdef CONFIG_SPL_BUILD
|
||||
#define MBUS_SPI_BASE 0xD4000000
|
||||
#define MBUS_SPI_SIZE (64 << 20)
|
||||
#else
|
||||
#define MBUS_SPI_BASE 0xF4000000
|
||||
#define MBUS_SPI_SIZE (8 << 20)
|
||||
#endif
|
||||
#define MBUS_DFX_BASE 0xF6000000
|
||||
#define MBUS_DFX_SIZE (1 << 20)
|
||||
#define MBUS_BOOTROM_BASE 0xF8000000
|
||||
|
||||
@@ -308,19 +308,6 @@ int board_return_to_bootrom(struct spl_image_info *spl_image,
|
||||
hang();
|
||||
}
|
||||
|
||||
/*
|
||||
* SPI0 CS0 Flash is mapped to address range 0xD4000000 - 0xD7FFFFFF by BootROM.
|
||||
* Proper U-Boot removes this direct mapping. So it is available only in SPL.
|
||||
*/
|
||||
#if defined(CONFIG_SPL_ENV_IS_IN_SPI_FLASH) && \
|
||||
CONFIG_ENV_SPI_BUS == 0 && CONFIG_ENV_SPI_CS == 0 && \
|
||||
CONFIG_ENV_OFFSET + CONFIG_ENV_SIZE <= 64*1024*1024
|
||||
void *env_sf_get_env_addr(void)
|
||||
{
|
||||
return (void *)0xD4000000 + CONFIG_ENV_OFFSET;
|
||||
}
|
||||
#endif
|
||||
|
||||
void board_init_f(ulong dummy)
|
||||
{
|
||||
int ret;
|
||||
|
||||
Reference in New Issue
Block a user