uboot/include/configs/iot_devkit.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0+ */
   2/*
   3 * Copyright (C) 2018 Synopsys, Inc. All rights reserved.
   4 */
   5
   6#ifndef _CONFIG_IOT_DEVKIT_H_
   7#define _CONFIG_IOT_DEVKIT_H_
   8
   9#include <linux/sizes.h>
  10
  11/*
  12 *                         MEMORY MAP
  13 *
  14 * eFlash: 0x0000_0000 - 0x0008_0000 (512K)
  15 *   ICCM: 0x2000_0000 - 0x2004_0000 (256K)
  16 *   SRAM: 0x3000_0000 - 0x3002_0000 (128K)
  17 *   DCCM: 0x8000_0000 - 0x8002_0000 (128K)
  18 *     Note: only data goes here, as IFQ cannot fetch instructions from DCCM
  19 *
  20 *
  21 *                         RAM PARTITIONING
  22 *
  23 *   +-----------+----------+---------------------+-------------+
  24 *   | <-- Stack |  .data   | Malloc              | Environment |
  25 *   +-----------+----------+---------------------+-------------+
  26 *   :           :          :                     :\___________/
  27 *   :           :          :                     :      |
  28 *   :           :          :                     :     CONFIG_ENV_SIZE
  29 *   :           :           \____________________/
  30 *   :           :                     |
  31 *   :           :                    CONFIG_SYS_MALLOC_LEN
  32 *   :           :
  33 *   :          Specified explicitly by CONFIG_SYS_INIT_SP_ADDR
  34 *   :
  35 *  Specified explicitly by CONFIG_SYS_SDRAM_BASE
  36 *
  37 *  NOTES:
  38 *    - Stack starts from CONFIG_SYS_INIT_SP_ADDR and grows down,
  39 *      i.e. towards CONFIG_SYS_SDRAM_BASE but nothing stops it from crossing
  40 *      that CONFIG_SYS_SDRAM_BASE in which case data won't be really saved on
  41 *      stack any longer and values popped from stack will contain garbage
  42 *      leading to unexpected behavior, typically but not limited to:
  43 *        - "Returning" back to bogus caller function
  44 *        - Reading data from weird addresses
  45 */
  46
  47#define CONFIG_SYS_MONITOR_BASE         CONFIG_SYS_TEXT_BASE
  48
  49#define SRAM_BASE                       0x30000000
  50#define SRAM_SIZE                       SZ_128K
  51
  52#define DCCM_BASE                       0x80000000
  53#define DCCM_SIZE                       SZ_128K
  54
  55#define CONFIG_SYS_SDRAM_BASE           DCCM_BASE
  56#define CONFIG_SYS_SDRAM_SIZE           DCCM_SIZE
  57
  58#define CONFIG_SYS_INIT_SP_ADDR         (CONFIG_SYS_SDRAM_BASE + SZ_32K)
  59
  60#define CONFIG_SYS_MALLOC_LEN           SZ_64K
  61#define CONFIG_SYS_BOOTM_LEN            SZ_128K
  62#define CONFIG_SYS_LOAD_ADDR            SRAM_BASE
  63
  64#define ROM_BASE                        CONFIG_SYS_MONITOR_BASE
  65#define ROM_SIZE                        SZ_256K
  66
  67#define RAM_DATA_BASE                   CONFIG_SYS_INIT_SP_ADDR
  68#define RAM_DATA_SIZE                   CONFIG_SYS_SDRAM_SIZE - \
  69                                        (CONFIG_SYS_INIT_SP_ADDR - \
  70                                        CONFIG_SYS_SDRAM_BASE) - \
  71                                        CONFIG_SYS_MALLOC_LEN - \
  72                                        CONFIG_ENV_SIZE
  73
  74/*
  75 * Environment
  76 */
  77#define CONFIG_BOOTFILE                 "app.bin"
  78#define CONFIG_LOADADDR                 CONFIG_SYS_LOAD_ADDR
  79
  80#endif /* _CONFIG_IOT_DEVKIT_H_ */
  81