pinebuds/platform/hal/best2300p/plat_addr_map_best2300p.h
2022-08-15 17:20:27 +08:00

175 lines
6.9 KiB
C

/***************************************************************************
*
* Copyright 2015-2019 BES.
* All rights reserved. All unpublished rights reserved.
*
* No part of this work may be used or reproduced in any form or by any
* means, or stored in a database or retrieval system, without prior written
* permission of BES.
*
* Use of this work is governed by a license granted by BES.
* This work contains confidential and proprietary information of
* BES. which is protected by copyright, trade secret,
* trademark and other intellectual property rights.
*
****************************************************************************/
#ifndef __PLAT_ADDR_MAP_BEST2300P_H__
#define __PLAT_ADDR_MAP_BEST2300P_H__
#ifdef __cplusplus
extern "C" {
#endif
#define ROM_BASE 0x00000000
#ifndef ROM_SIZE
#define ROM_SIZE 0x0000C000
#endif
#define RAMRET_BASE 0x200D8000
#define RAMXRET_BASE 0x002D8000
#ifndef RAMRET_SIZE
#define RAMRET_SIZE 0x00020000
#endif
#define RAM0_BASE 0x20000000
#define RAMX0_BASE 0x00200000
#define RAM1_BASE 0x20020000
#define RAMX1_BASE 0x00220000
#define RAM2_BASE 0x20040000
#define RAMX2_BASE 0x00240000
#define RAM3_BASE 0x20060000
#define RAMX3_BASE 0x00260000
#define RAM4_BASE 0x20080000
#define RAMX4_BASE 0x00280000
#define RAM5_BASE 0x200A0000
#define RAMX5_BASE 0x002A0000
#define RAM6_BASE 0x200C0000
#define RAMX6_BASE 0x002C0000
#define RAM_BASE RAM0_BASE
#define RAMX_BASE RAMX0_BASE
#ifdef CHIP_HAS_CP
#define RAMCP_TOP (RAMRET_BASE + RAMRET_SIZE - 0x20)
#ifndef RAMCP_SIZE
#define RAMCP_SIZE (RAMRET_SIZE - 0x20)
#endif
#define RAMCP_BASE (RAMCP_TOP - RAMCP_SIZE)
#ifndef RAMCPX_SIZE
#define RAMCPX_SIZE (RAMXRET_BASE - RAMX6_BASE)
#endif
#ifndef RAMCPX_BASE
#define RAMCPX_BASE (RAM_TO_RAMX(RAMCP_BASE) - RAMCPX_SIZE)
#endif
#endif
#ifndef RAM_SIZE
#ifdef CHIP_HAS_CP
#define RAM_SIZE (RAMCPX_BASE - RAMX_BASE) // 0X000C0000
#else
#ifdef LARGE_RAM
#define RAM_SIZE (RAMRET_BASE + RAMRET_SIZE - RAM_BASE) // 0x000F8000
#else
#define RAM_SIZE (RAMRET_BASE - RAM_BASE) // 0x000D8000
#endif
#endif /* !CHIP_HAS_CP */
#endif /* !RAM_SIZE */
#if defined(ROM_BUILD) && defined(CORE_SLEEP_POWER_DOWN)
#undef RAM_BASE
#undef RAMX_BASE
#undef RAM_SIZE
#define RAM_BASE RAMRET_BASE
#define RAMX_BASE RAMXRET_BASE
#define RAM_SIZE RAMRET_SIZE
#endif
#define FLASH_BASE 0x3C000000
#define FLASH_NC_BASE 0x38000000
#define FLASHX_BASE 0x0C000000
#define FLASHX_NC_BASE 0x08000000
#define ICACHE_CTRL_BASE 0x07FFE000
#define ICACHECP_CTRL_BASE 0x07FFA000
/* No data cache */
#define CMU_BASE 0x40000000
#define MCU_WDT_BASE 0x40001000
#define MCU_TIMER0_BASE 0x40002000
#define MCU_TIMER1_BASE 0x40003000
#define MCU_TIMER2_BASE 0x40004000
#define I2C0_BASE 0x40005000
#define I2C1_BASE 0x40006000
#define SPI_BASE 0x40007000
#define SPILCD_BASE 0x40008000
#define ISPI_BASE 0x40009000
#define SPIPHY_BASE 0x4000A000
#define UART0_BASE 0x4000B000
#define UART1_BASE 0x4000C000
#define UART2_BASE 0x4000D000
#define BTPCM_BASE 0x4000E000
#define I2S0_BASE 0x4000F000
#define SPDIF0_BASE 0x40010000
#define I2S1_BASE 0x40011000
#define SEC_ENG_BASE 0x40020000
#define AON_CMU_BASE 0x40080000
#define AON_GPIO_BASE 0x40081000
#define AON_WDT_BASE 0x40082000
#define AON_PWM_BASE 0x40083000
#define AON_TIMER_BASE 0x40084000
#define AON_PSC_BASE 0x40085000
#define AON_IOMUX_BASE 0x40086000
#define SDMMC_BASE 0x40110000
#define AUDMA_BASE 0x40120000
#define GPDMA_BASE 0x40130000
#define FLASH_CTRL_BASE 0x40140000
#define BTDUMP_BASE 0x40150000
#define I2C_SLAVE_BASE 0x40160000
#define SENSOR_ENG_BASE 0x40170000
#define USB_BASE 0x40180000
#define SEDMA_BASE 0x401D0000
#define CODEC_BASE 0x40300000
#define BT_SUBSYS_BASE 0xA0000000
#define BT_RAM_BASE 0xC0000000
#define BT_RAM_SIZE 0x00008000
#define BT_EXCH_MEM_BASE 0xD0210000
#define BT_EXCH_MEM_SIZE 0x00008000
#define BT_UART_BASE 0xD0300000
#define BT_CMU_BASE 0xD0330000
#define IOMUX_BASE AON_IOMUX_BASE
#define GPIO_BASE AON_GPIO_BASE
#define PWM_BASE AON_PWM_BASE
#ifdef CORE_SLEEP_POWER_DOWN
#define TIMER0_BASE AON_TIMER_BASE
#else
#define TIMER0_BASE MCU_TIMER0_BASE
#endif
#define TIMER1_BASE MCU_TIMER1_BASE
#define WDT_BASE AON_WDT_BASE
/* For linker scripts */
#define VECTOR_SECTION_SIZE 320
#define REBOOT_PARAM_SECTION_SIZE 64
#define ROM_BUILD_INFO_SECTION_SIZE 40
#define ROM_EXPORT_FN_SECTION_SIZE 128
#define BT_INTESYS_MEM_OFFSET 0x00000000
/* For boot struct version */
#ifndef SECURE_BOOT_VER
#define SECURE_BOOT_VER 2
#endif
#ifdef __cplusplus
}
#endif
#endif