免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1000 | 回复: 1
打印 上一主题 下一主题

在powerpc 8250上构建linux2.6.12失败,请大侠指点 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-06-27 17:17 |只看该作者 |倒序浏览
使用U-BOOT 1.1.4 引导linux。经过跟踪发现在linux启动过程中无法打开数据cache。
在 cpu_setup_6xx.S文件中的setup_common_caches函数中如果打开数据cache,则程序无法继续执行。
原始代码默认是打开数据cache的,如下:
/* Enable caches for 603's, 604, 750 & 7400 */
setup_common_caches:
        mfspr        r11,SPRN_HID0
        andi.        r0,r11,HID0_DCE
        ori        r11,r11,HID0_ICE|HID0_DCE
        ori        r8,r11,HID0_ICFI
        bne        1f                        /* don't invalidate the D-cache */
        ori        r8,r8,HID0_DCI                /* unless it wasn't enabled */
1:        sync
        mtspr        SPRN_HID0,r8                /* enable and invalidate caches */
        sync
        mtspr        SPRN_HID0,r11                /* enable caches */
        sync
        isync
        blr

如果我修改代码,只打开指令cache,不打开数据cache,程序可以继续执行,但无法执行到start_here, 见下面代码:
turn_on_mmu:
        mfmsr        r0
        ori        r0,r0,MSR_DR|MSR_IR
        mtspr        SPRN_SRR1,r0
        lis        r0,start_here@h
        ori        r0,r0,start_here@l
        mtspr        SPRN_SRR0,r0
        SYNC
        RFI                                /* enables MMU */


程序停在RFI指令前, RFI指令无法返回。

请各位大侠帮忙分析,不胜感激。

[ 本帖最后由 gloom 于 2006-6-28 14:33 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2006-06-28 14:32 |只看该作者
顶,有高手帮忙吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP