141 lines
		
	
	
		
			6.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			141 lines
		
	
	
		
			6.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| 
								 | 
							
								#ifndef __MEM_MAP_ORG_H__
							 | 
						|||
| 
								 | 
							
								#define __MEM_MAP_ORG_H__
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								#include "chip_reg_base.h"
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								//CHIP BASE
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_CHIP_ROM_BASE               AHB_ROM_BASEADDR  //internal rom
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_CHIP_ROM_SIZE               (AHB_ROM_ENDADDR - AHB_ROM_BASEADDR)  //256k
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_CHIP_RAM_BASE               AHB_RAM0_BASEADDR  //internal ram
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_CHIP_RAM_SIZE               (AHB_RAM3_ENDADDR - AHB_RAM0_BASEADDR)  //448k
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_CHIP_ICACHE0_SMC_BASE       ICACHE0_SMC_RAM_BASEADDR  // icache0 smc base
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_CHIP_ICACHE0_SFC_BASE       ICACHE0_SFC_RAM_BASEADDR  // icache0 sfc base
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_CHIP_ICACHE1_SMC_BASE       ICACHE1_SMC_RAM_BASEADDR  // icache1 smc base
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_CHIP_ICACHE1_SFC_BASE       ICACHE1_SFC_RAM_BASEADDR  // icache1 sfc base
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_CHIP_ICACHE2_SMC_BASE       ICACHE2_SMC_RAM_BASEADDR  // icache2 smc base
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_CHIP_ICACHE2_SFC_BASE       ICACHE2_SFC_RAM_BASEADDR  // icache2 sfc base
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_CHIP_DCACHE0_SMC_BASE       DCACHE0_SMC_RAM_BASEADDR  // dcache0 smc base
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_CHIP_DCACHE0_SFC_BASE       DCACHE0_SFC_RAM_BASEADDR  // dcache0 sfc base
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_CHIP_DCACHE1_SMC_BASE       DCACHE1_SMC_RAM_BASEADDR  // dcache1 smc base
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_CHIP_DCACHE1_SFC_BASE       DCACHE1_SFC_RAM_BASEADDR  // dcache1 sfc base
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_CHIP_ICACHE0_RAM_BASE       ICACHE0_SMC_RAM_BASEADDR  // as ram base addr
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_CHIP_ICACHE0_RAM_SIZE       (0x8000)    //32k
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_CHIP_ICACHE1_RAM_BASE       ICACHE1_SMC_RAM_BASEADDR  // as ram base addr
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_CHIP_ICACHE1_RAM_SIZE       (0x8000)    //32k
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_CHIP_ICACHE2_RAM_BASE       ICACHE2_SMC_RAM_BASEADDR  // as ram base addr
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_CHIP_ICACHE2_RAM_SIZE       (0x8000)    //32k
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_CHIP_DCACHE0_RAM_BASE       DCACHE0_SMC_RAM_BASEADDR  // as ram base addr
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_CHIP_DCACHE0_RAM_SIZE       (0x10000)   //64k
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_CHIP_DCACHE1_RAM_BASE       DCACHE1_SMC_RAM_BASEADDR  // as ram base addr
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_CHIP_DCACHE1_RAM_SIZE       (0x10000)   //64k
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								/*address mapping. */
							 | 
						|||
| 
								 | 
							
								#define FLASH_BASE_ADDRESS            (ICACHE0_SFC_RAM_BASEADDR)
							 | 
						|||
| 
								 | 
							
								#define PSRAM_CORE0_BASE_ADDRESS      (ICACHE0_SMC_RAM_BASEADDR)
							 | 
						|||
| 
								 | 
							
								#define PSRAM_CORE1_BASE_ADDRESS      (ICACHE1_SMC_RAM_BASEADDR)
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								//SBL
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_SBL_IRAM_ADDRS      (MEM_CFG_CHIP_RAM_BASE + 0x00000800)
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_SBL_IRAM_SIZE       (0x10000)   //64k
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_SBL_DRAM_ADDRS      (MEM_CFG_CHIP_RAM_BASE +  0x0010800)
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_SBL_DRAM_SIZE       (0x10000)   //64k
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								/*
							 | 
						|||
| 
								 | 
							
								 * FLASH space for SBL code.
							 | 
						|||
| 
								 | 
							
								 */
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_FLASH_SBL1_CODE_OFFSET      (0x00000000)
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_FLASH_SBL2_CODE_OFFSET      (0x00000000 + 0x8000)
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								/*
							 | 
						|||
| 
								 | 
							
								 * PSRAM space for run offset.
							 | 
						|||
| 
								 | 
							
								 */
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_RAM_CORE0_RUN_OFFSET        (0x00000000)
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_RAM_CORE1_RUN_OFFSET        (0x005C0000)
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								/*
							 | 
						|||
| 
								 | 
							
								 * RAM space for bbcpu run offset.
							 | 
						|||
| 
								 | 
							
								 */
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_RAM_BBCPU_RUN_ADDR          (0x10000800)
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								/*
							 | 
						|||
| 
								 | 
							
								 * ROM space from 0x0002_0000 ~ 0x0005_FFFF, 256KB
							 | 
						|||
| 
								 | 
							
								 * Rom CODE : 0x00000000 ~ 0x00007FFF, 32KB.
							 | 
						|||
| 
								 | 
							
								 * Rom LIB  : 0x00008000 ~ 0x0005FFFF, 224KB.
							 | 
						|||
| 
								 | 
							
								 */
							 | 
						|||
| 
								 | 
							
								/* Rom code in ROM space. */
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_ROM_ROM_CODE_OFFSET         (0x00000000)
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_ROM_ROM_CODE_LENGTH         (0x4000)
							 | 
						|||
| 
								 | 
							
								/* Rom lib code in ROM space. */
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_ROM_ROM_LIB_OFFSET          (0x00004000)
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_ROM_ROM_LIB_LENGTH          (0x3C000)
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								/*
							 | 
						|||
| 
								 | 
							
								 * RAM space from 0x1000_0000 ~ 0x1006_FFFF, 448KB
							 | 
						|||
| 
								 | 
							
								 * Rom DATA : 0x0006BC00 ~ 0x0006FFFF, 17KB
							 | 
						|||
| 
								 | 
							
								 * ...
							 | 
						|||
| 
								 | 
							
								 * SBL/RAM/DTEST DATA : 0x00010800 ~ 0x000207FF, 64KB
							 | 
						|||
| 
								 | 
							
								 * SBL/RAM/DTEST CODE : 0x00000800 ~ 0x000107FF, 64KB
							 | 
						|||
| 
								 | 
							
								 */
							 | 
						|||
| 
								 | 
							
								/* Rom data in RAM space. */
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_RAM_ROM_DATA_OFFSET         (0x0006BC00)
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_RAM_ROM_DATA_LENGTH         (0x4400)
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								/* SBL code in RAM space. */
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_RAM_SBL_DATA_OFFSET         0x00010800
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_RAM_SBL_DATA_LENGTH         0x10000
							 | 
						|||
| 
								 | 
							
								/* SBL data in RAM space. */
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_RAM_SBL_CODE_OFFSET         0x00000800
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_RAM_SBL_CODE_LENGTH         0x10000
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								/* RAM code in RAM space. */
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_RAM_RAM_DATA_OFFSET         (0x00010800)
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_RAM_RAM_DATA_LENGTH         (0x10000)
							 | 
						|||
| 
								 | 
							
								/* RAM data in RAM space. */
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_RAM_RAM_CODE_OFFSET         (0x00000800)
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_RAM_RAM_CODE_LENGTH         (0x10000)
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								//AUTHORITY RELATED
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_AUTH_READ       (0x4)
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_AUTH_WRITE      (0x2)
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_AUTH_NONE       (0x0)
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_AUTH_RW         (MEM_CFG_AUTH_READ | MEM_CFG_AUTH_WRITE)
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_SET_CORE_AUTHORITY(authority, core)   \
							 | 
						|||
| 
								 | 
							
								    (((authority) & 0xFF) << (core * 8))
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_GET_CORE_AUTHORITY(authority, core)   \
							 | 
						|||
| 
								 | 
							
								    (((authority) >> (core * 8)) & 0xFF)
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_R_ONLY(core)   MEM_CFG_SET_CORE_AUTHORITY(MEM_CFG_AUTH_READ, core)
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_W_ONLY(core)   MEM_CFG_SET_CORE_AUTHORITY(MEM_CFG_AUTH_WRITE, core)
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_RW(core)       MEM_CFG_SET_CORE_AUTHORITY(MEM_CFG_AUTH_RW, core)
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_NONE(core)     MEM_CFG_SET_CORE_AUTHORITY(MEM_CFG_AUTH_NONE, core)
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								/* fixed 带psram和不带psram相同的分<E79A84><E58886>?*/
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_PART_NUM_MIN        0
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_PART_NUM_SBL        0
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_PART_NUM_DD1        1
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_PART_NUM_DD2        2
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_PART_NUM_PARAM      3
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_PART_NUM_OEM        4
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_PART_NUM_PIB1       5
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_PART_NUM_PIB2       6
							 | 
						|||
| 
								 | 
							
								/* volatile 带psram和不带psram不相同的分区 */
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_PART_NUM_RUN_CUS    7
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_PART_NUM_RUN_PLC    8
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_PART_NUM_FW1_CUS    9
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_PART_NUM_FW1_PLC    10
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_PART_NUM_FW2_CUS    11
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_PART_NUM_FW2_PLC    12
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_PART_NUM_LOG1       13
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_PART_NUM_LOG2       14
							 | 
						|||
| 
								 | 
							
								/* fixed 带psram和不带psram相同的分<E79A84><E58886>?*/
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_PART_NUM_CUS        15
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_PART_NUM_PLC        16
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_PART_NUM_CALI_CUS   17
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_PART_NUM_CALI_PLC   18
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_PART_NUM_MAX        18 // keep this as the last one
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								/* 代码中用到的硬地址 */
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_DECOMPRESS_RAM      0x10058000
							 | 
						|||
| 
								 | 
							
								#define MEM_CFG_DECOMPRESS_RAM_SIZE (96 * 1024)
							 | 
						|||
| 
								 | 
							
								#endif
							 |