zoukankan      html  css  js  c++  java
  • marvell 内存分析

    CONFIG_MV_INTERNAL_REGS_SELECTIVE_MAPPING=y

    选择映射内部寄存器(分散开,每个64K),否则映射1M寄存器空间

    sysmap.c文件

    #if defined(CONFIG_MV_INTERNAL_REGS_SELECTIVE_MAPPING)

    /* need to make sure it is big enough to hold all mapping entries */
    #define MEM_TABLE_MAX_ENTRIES    30

    /* default mapped entries */
    #define MEM_TABLE_ENTRIES    7

    /* number of entries to map */
    volatile u32 entries = MEM_TABLE_ENTRIES;

    struct _mv_internal_regs_map {
        MV_UNIT_ID id;
        u32 index;
        u32 offset;
        u32 size;
    };

    /* Internal registers mapping table */
    struct _mv_internal_regs_map mv_internal_regs_map[] = {
        {DRAM_UNIT_ID,    0, DRAM_BASE,                SZ_64K},
        {CESA_UNIT_ID,    0, MV_CESA_TDMA_REG_BASE,    SZ_64K},
        {USB_UNIT_ID,        0, USB_REG_BASE(0),          SZ_64K},
        {XOR_UNIT_ID,        0, MV_XOR_REG_BASE,          SZ_64K},
        {ETH_GIG_UNIT_ID, 0, MV_ETH_REG_BASE(0),       SZ_8K},  /* GbE port0 registers */
        {ETH_GIG_UNIT_ID, 1, MV_ETH_REG_BASE(1),       SZ_8K},  /* GbE port1 registers */
        {SATA_UNIT_ID,    0, (SATA_REG_BASE + 0x2000), SZ_8K }, /* SATA port0 registers */
        {SATA_UNIT_ID,    1, (SATA_REG_BASE + 0x4000), SZ_8K }, /* SATA port1 registers */
        {SDIO_UNIT_ID,    0, MV_SDIO_REG_BASE,         SZ_64K},
        {AUDIO_UNIT_ID,   0, AUDIO_REG_BASE(0),        SZ_64K},
        {TS_UNIT_ID,      0, TSU_GLOBAL_REG_BASE,      SZ_16K},
        {TDM_UNIT_ID,     0, TDM_REG_BASE,             SZ_64K}
    };

    /* AHB to MBUS mapping entry */
    struct map_desc AHB_TO_MBUS_MAP[] = {
      {(INTER_REGS_BASE + MAX_AHB_TO_MBUS_REG_BASE), __phys_to_pfn(INTER_REGS_BASE + MAX_AHB_TO_MBUS_REG_BASE),
              SZ_64K, MT_DEVICE},
      };

    /* WARNING: update of this table requires updating MEM_TABLE_ENTRIES */
    struct map_desc  MEM_TABLE[MEM_TABLE_MAX_ENTRIES] = {
      {(INTER_REGS_BASE + MPP_REG_BASE),  __phys_to_pfn(INTER_REGS_BASE + MPP_REG_BASE),  SZ_64K,          MT_DEVICE},
      {(INTER_REGS_BASE + SATA_REG_BASE), __phys_to_pfn(INTER_REGS_BASE + SATA_REG_BASE), SZ_8K,          MT_DEVICE},
      {(INTER_REGS_BASE + PEX_IF_BASE(0)),__phys_to_pfn(INTER_REGS_BASE + PEX_IF_BASE(0)),SZ_64K,         MT_DEVICE},
      { PEX0_IO_BASE,                 __phys_to_pfn(PEX0_IO_BASE),                  PEX0_IO_SIZE,   MT_DEVICE},
      { NFLASH_CS_BASE,               __phys_to_pfn(NFLASH_CS_BASE),                   NFLASH_CS_SIZE, MT_DEVICE},
      { SPI_CS_BASE,               __phys_to_pfn(SPI_CS_BASE),                   SPI_CS_SIZE,    MT_DEVICE},
      { CRYPT_ENG_BASE,               __phys_to_pfn(CRYPT_ENG_BASE),               CRYPT_ENG_SIZE, MT_DEVICE},
    };

    #else
    struct map_desc  MEM_TABLE[] =    {
        /* no use for pex mem remap */   
      /*{ PEX0_MEM_BASE,          __phys_to_pfn(PEX0_MEM_BASE),       PEX0_MEM_SIZE,      MT_DEVICE},*/
      { INTER_REGS_BASE,         __phys_to_pfn(INTER_REGS_BASE),     SZ_1M,               MT_DEVICE},
      { PEX0_IO_BASE,           __phys_to_pfn(PEX0_IO_BASE),            PEX0_IO_SIZE,          MT_DEVICE},
      { NFLASH_CS_BASE,         __phys_to_pfn(NFLASH_CS_BASE),         NFLASH_CS_SIZE,     MT_DEVICE},
      { SPI_CS_BASE,         __phys_to_pfn(SPI_CS_BASE),         SPI_CS_SIZE,         MT_DEVICE},
      { CRYPT_ENG_BASE,               __phys_to_pfn(CRYPT_ENG_BASE),               CRYPT_ENG_SIZE, MT_DEVICE},
    };
    #endif /* CONFIG_MV_INTERNAL_REGS_SELECTIVE_MAPPING */

    mvControlEnvSpec.h

    #define MPP_REG_BASE            0x10000

    mbus-l to mbus bridge register(需要研究,管理windowX映射的)

    #define MAX_AHB_TO_MBUS_REG_BASE    0x20000

    mvSysHwConfig.h

    /* Internal registers: size is defined in Controllerenvironment */
    #define INTER_REGS_BASE    0xF1000000

    #define SPI_CS_BASE 0xf4000000

    map_desc中的地址都经过mmu.c中映射

  • 相关阅读:
    什么是webview
    juqery.fn.extend和jquery.extend
    LeetCode
    5. Longest Palindromic Substring
    42. Trapping Rain Water
    11. Container With Most Water
    621. Task Scheduler
    49. Group Anagrams
    739. Daily Temperatures
    3. Longest Substring Without Repeating Characters
  • 原文地址:https://www.cnblogs.com/cute/p/2084017.html
Copyright © 2011-2022 走看看