Mirror area of external address space xSPI0和External address space xSPI0的区别

如题,请问Mirror area of external address space xSPI0和External address space xSPI0在读写访问上有什么区别?

我尝试使用如图所示代码进行验证,发现对Mirror area of external address space xSPI0区域进行写操作后,从Mirror area of external address space xSPI0读出来的数据不对,但是从External address space xSPI0读出来的就是对的。

Parents
  • 请问使用的是哪款RZ?mirror区域一般可以访问与真实内存区域相同的物理内存,但是有的真实地址区域不支持cache,mirror则支持,如果开启了cache功能,那么mirror区域无法直接读取物理地址数据,请检查配置是否开启cache:

  • 您好,使用的RZN2L,配置如下,也有尝试修改BSP_CFG_EL1_MPU_REGION04_SH为BSP_NON_SHAREABLE或BSP_INNER_SHAREABLE,现象一样

    /* Region04 : Mirror area of external address space */
    #define BSP_CFG_EL1_MPU_REGION04_BASE (0x40000000)
    #define BSP_CFG_EL1_MPU_REGION04_LIMIT (0x5FFFFFFF)
    #define BSP_CFG_EL1_MPU_REGION04_SH (BSP_OUTER_SHAREABLE)
    #define BSP_CFG_EL1_MPU_REGION04_AP (BSP_EL1RW_EL0RW)
    #define BSP_CFG_EL1_MPU_REGION04_XN (BSP_EXECUTE_ENABLE)
    #define BSP_CFG_EL1_MPU_REGION04_ATTRINDEX (BSP_ATTRINDEX3)
    #define BSP_CFG_EL1_MPU_REGION04_ENABLE (BSP_REGION_ENABLE)

    /* Region05 : External address space */
    #define BSP_CFG_EL1_MPU_REGION05_BASE (0x60000000)
    #define BSP_CFG_EL1_MPU_REGION05_LIMIT (0x7FFFFFFF)
    #define BSP_CFG_EL1_MPU_REGION05_SH (BSP_NON_SHAREABLE)
    #define BSP_CFG_EL1_MPU_REGION05_AP (BSP_EL1RW_EL0RW)
    #define BSP_CFG_EL1_MPU_REGION05_XN (BSP_EXECUTE_ENABLE)
    #define BSP_CFG_EL1_MPU_REGION05_ATTRINDEX (BSP_ATTRINDEX1)
    #define BSP_CFG_EL1_MPU_REGION05_ENABLE (BSP_REGION_ENABLE)

Reply
  • 您好,使用的RZN2L,配置如下,也有尝试修改BSP_CFG_EL1_MPU_REGION04_SH为BSP_NON_SHAREABLE或BSP_INNER_SHAREABLE,现象一样

    /* Region04 : Mirror area of external address space */
    #define BSP_CFG_EL1_MPU_REGION04_BASE (0x40000000)
    #define BSP_CFG_EL1_MPU_REGION04_LIMIT (0x5FFFFFFF)
    #define BSP_CFG_EL1_MPU_REGION04_SH (BSP_OUTER_SHAREABLE)
    #define BSP_CFG_EL1_MPU_REGION04_AP (BSP_EL1RW_EL0RW)
    #define BSP_CFG_EL1_MPU_REGION04_XN (BSP_EXECUTE_ENABLE)
    #define BSP_CFG_EL1_MPU_REGION04_ATTRINDEX (BSP_ATTRINDEX3)
    #define BSP_CFG_EL1_MPU_REGION04_ENABLE (BSP_REGION_ENABLE)

    /* Region05 : External address space */
    #define BSP_CFG_EL1_MPU_REGION05_BASE (0x60000000)
    #define BSP_CFG_EL1_MPU_REGION05_LIMIT (0x7FFFFFFF)
    #define BSP_CFG_EL1_MPU_REGION05_SH (BSP_NON_SHAREABLE)
    #define BSP_CFG_EL1_MPU_REGION05_AP (BSP_EL1RW_EL0RW)
    #define BSP_CFG_EL1_MPU_REGION05_XN (BSP_EXECUTE_ENABLE)
    #define BSP_CFG_EL1_MPU_REGION05_ATTRINDEX (BSP_ATTRINDEX1)
    #define BSP_CFG_EL1_MPU_REGION05_ENABLE (BSP_REGION_ENABLE)

Children
No Data