文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>MIPS Uboot 巧妙获取 cache size

MIPS Uboot 巧妙获取 cache size

时间:2009-05-26  来源:raul.liu

在MIPS uboot开发的过程中,在相应的config文件中,需要定义cache size:
#define CFG_DCACHE_SIZE        32768
#define CFG_ICACHE_SIZE        32768

由于mips的cache size 在cp中可以读得,我们可以读取寄存器,然后计算。
本文是巧用linux内mips arch下的分析cache函数probe_pcache来计算cache size:

此函数实现如下:

static void __cpuinit probe_pcache(void)
{
    struct cpuinfo_mips *c = &current_cpu_data;
    unsigned int config = read_c0_config();
    unsigned int prid = read_c0_prid();
    unsigned long config1;
    unsigned int lsize;

    switch (c->cputype) {
    case CPU_R4600:            /* QED style two way caches? */
    case CPU_R4700:
    case CPU_R5000:
    case CPU_NEVADA:
        icache_size = 1 << (12 + ((config & CONF_IC) >> 9));
        c->icache.linesz = 16 << ((config & CONF_IB) >> 5);
        c->icache.ways = 2;
        c->icache.waybit = __ffs(icache_size/2);

        dcache_size = 1 << (12 + ((config & CONF_DC) >> 6));
        c->dcache.linesz = 16 << ((config & CONF_DB) >> 4);
        c->dcache.ways = 2;
        c->dcache.waybit= __ffs(dcache_size/2);

        c->options |= MIPS_CPU_CACHE_CDEX_P;
        break;
 .....
}

 我们只需参考此函数实现简单的得到cache size 的函数
相关阅读 更多 +
排行榜 更多 +
龙珠格斗火柴人

龙珠格斗火柴人

飞行射击 下载
荒野恐龙猎手安卓版

荒野恐龙猎手安卓版

飞行射击 下载
超凡坦克英雄

超凡坦克英雄

飞行射击 下载