在powerpc 8250上构建linux2.6.12失败,请大侠指点

发布于 2022-07-22 08:12:17 字数 2359 浏览 24 评论 1

使用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 编辑 ]

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

放我走吧 2022-07-23 13:05:59

顶,有高手帮忙吗

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文