u-boot/include/configs/iot_devkit.h
Tom Rini eaf6ea6a1d Migrate CUSTOM_SYS_INIT_SP_ADDR to Kconfig using system-constants.h
- Make all users of CUSTOM_SYS_INIT_SP_ADDR reference SYS_INIT_SP_ADDR
- Introduce HAS_CUSTOM_SYS_INIT_SP_ADDR to allow for setting the stack
  pointer directly, otherwise we use the common calculation.
- On some platforms that were using the standard calculation but did not
  set CONFIG_SYS_INIT_RAM_SIZE / CONFIG_SYS_INIT_RAM_ADDR, set them.
- On a small number of platforms that were not subtracting
  GENERATED_GBL_DATA_SIZE do so now via the standard calculation.
- CONFIG_SYS_INIT_SP_OFFSET is now widely unused, so remove it from most
  board config header files.

Signed-off-by: Tom Rini <trini@konsulko.com>
2022-06-06 12:09:19 -04:00

67 lines
2.2 KiB
C

/* SPDX-License-Identifier: GPL-2.0+ */
/*
* Copyright (C) 2018 Synopsys, Inc. All rights reserved.
*/
#ifndef _CONFIG_IOT_DEVKIT_H_
#define _CONFIG_IOT_DEVKIT_H_
#include <linux/sizes.h>
/*
* MEMORY MAP
*
* eFlash: 0x0000_0000 - 0x0008_0000 (512K)
* ICCM: 0x2000_0000 - 0x2004_0000 (256K)
* SRAM: 0x3000_0000 - 0x3002_0000 (128K)
* DCCM: 0x8000_0000 - 0x8002_0000 (128K)
* Note: only data goes here, as IFQ cannot fetch instructions from DCCM
*
*
* RAM PARTITIONING
*
* +-----------+----------+---------------------+-------------+
* | <-- Stack | .data | Malloc | Environment |
* +-----------+----------+---------------------+-------------+
* : : : :\___________/
* : : : : |
* : : : : CONFIG_ENV_SIZE
* : : \____________________/
* : : |
* : : CONFIG_SYS_MALLOC_LEN
* : :
* : Specified explicitly by CONFIG_CUSTOM_SYS_INIT_SP_ADDR
* :
* Specified explicitly by CONFIG_SYS_SDRAM_BASE
*
* NOTES:
* - Stack starts from CONFIG_CUSTOM_SYS_INIT_SP_ADDR and grows down,
* i.e. towards CONFIG_SYS_SDRAM_BASE but nothing stops it from crossing
* that CONFIG_SYS_SDRAM_BASE in which case data won't be really saved on
* stack any longer and values popped from stack will contain garbage
* leading to unexpected behavior, typically but not limited to:
* - "Returning" back to bogus caller function
* - Reading data from weird addresses
*/
#define SRAM_BASE 0x30000000
#define SRAM_SIZE SZ_128K
#define DCCM_BASE 0x80000000
#define DCCM_SIZE SZ_128K
#define CONFIG_SYS_SDRAM_BASE DCCM_BASE
#define CONFIG_SYS_SDRAM_SIZE DCCM_SIZE
#define CONFIG_SYS_BOOTM_LEN SZ_128K
#define ROM_BASE CONFIG_SYS_MONITOR_BASE
#define ROM_SIZE SZ_256K
#define RAM_DATA_BASE SYS_INIT_SP_ADDR
#define RAM_DATA_SIZE CONFIG_SYS_SDRAM_SIZE - \
(SYS_INIT_SP_ADDR - \
CONFIG_SYS_SDRAM_BASE) - \
CONFIG_SYS_MALLOC_LEN - \
CONFIG_ENV_SIZE
#endif /* _CONFIG_IOT_DEVKIT_H_ */