DM8127上cache默认配置如下(FC_RMAN_IRES_c6xdsp.cfg):
/* Disable caching for HWspinlock addresses */ Cache.MAR0_31= 0x00000000; /* 0x00000000 - 0x1FFFFFFF --> NOT CACHEABLE */ Cache.MAR32_63= 0x00000000; /* 0x20000000 - 0x3FFFFFFF --> NOT CACHEABLE */ /* Config/EDMA registers cache disabled */ Cache.MAR64_95= 0x00000000; /* 0x40000000 - 0x5FFFFFFF --> NOT CACHEABLE */ Cache.MAR96_127 = 0x00000000; /* 0x60000000 - 0x7FFFFFFF --> NOT CACHEABLE */ /* cache settings for 1st 512MB DDR */ Cache.MAR128_159 = 0x0000FF00; /* 0x80000000 - 0x87FFFFFF --> NOT CACHEABLE *//* 0x88000000 - 0x8FFFFFFF -->CACHEABLE *//* 0x90000000 - 0x9FFFFFFF --> NOT CACHEABLE */ /* cache settings for 2nd 512MB DDR */ Cache.MAR160_191 = 0x0FFF0000; /* 0xA0000000 - 0xAFFFFFFF --> NOT CACHEABLE *//* 0xB0000000 - 0xBBFFFFFF -->CACHEABLE *//* 0xBC000000 - 0xBFFFFFFF --> NOT CACHEABLE */ /* cache settings for 3rd 512MB DDR */ Cache.MAR192_223 = 0x00000000; /* 0xC0000000 - 0xDFFFFFFF --> NOT CACHEABLE */ /* cache settings for 4th 512MB DDR */ Cache.MAR224_255 = 0x00000000; /* 0xE0000000 - 0xFFFFFFFF --> NOT CACHEABLE */
而在config_512M.bld中
var KB=1024; var MB=KB*KB; var GB=KB*KB*KB; var DDR3_ADDR= 0x80000000; var DDR3_SIZE= 1 * GB; var DDR3_ADDR_256_REG0_START = 0x80000000; var DDR3_ADDR_256_REG0_END= 0x90000000; var DDR3_ADDR_256_REG1_START = 0xB0000000; var DDR3_ADDR_256_REG1_END= 0xC0000000; var OCMC0_ADDR= 0x40300000; var OCMC1_ADDR= 0x40400000; var OCMC_SIZE= 256*KB; /* first 256MB */ var LINUX_SIZE= 80*MB; var CMEM_SIZE= 64*MB var SR1_SIZE= 60*MB; var VIDEO_M3_CODE_SIZE= 3*MB; var VIDEO_M3_DATA_SIZE= 14*MB; var DSS_M3_CODE_SIZE= 2*MB; var DSS_M3_DATA_SIZE= 22*MB; var DSP_CODE_SIZE= 1*MB; var DSP_DATA_SIZE= 10*MB; /* second 256MB */ var TILER_SIZE= 128*MB; /* Reducing this to fix Vid Frame Alloc failures. Need to fix */ /* MUST be aligned on 128MB boundary */ var SR2_FRAME_BUFFER_SIZE= 105*MB; var SR0_SIZE= 16*MB; var HDVPSS_DESC_SIZE= 2*MB; var HDVPSS_SHARED_SIZE= 2*MB; var NOTIFY_SHARED_SIZE= 2*MB; var REMOTE_DEBUG_SIZE= 1*MB;
根据cache配置
Cache.MAR128_159 = 0x0000FF00;Cache.MAR160_191 = 0x0FFF0000;512M内存中CMEM中有16MB是cacheable,SR1、VIDEO_M3_CODE、VIDEO_M3_DATA、DSS_M3_CODE、DSS_M3_DATA、DSP_CODE、DSP_DATA、TILER全部
cacheable,SR2_FRAME_BUFFER中有64MB是cacheable。
我的疑惑:
1. cacheable是不是只用配置DSP_CODE、DSP_DATA即可?毕竟FC_RMAN_IRES_c6xdsp.cfg是在配置DSP上的CACHE。
2. 默认配置为什么要设置 部分CMEM、SR1、VIDEO_M3_CODE、VIDEO_M3_DATA、DSS_M3_CODE、DSS_M3_DATA、TILER和部分SR2_FRAME_BUFFER cacheable?
cang_rong:
回复 Chris Meng:
我的IPNC RDK版本是3.5。