亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1779 | 回復: 2
打印 上一主題 下一主題

[硬件及驅動] reboot 無法重啟,求調試方法 [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2015-10-12 19:37 |只看該作者 |倒序瀏覽
目前用的是powerpc 8309, 現(xiàn)在遇到的問題軟件無法復位,硬件的復位時可以用的,
在uboot執(zhí)行reset ,停在Resetting the board ,跟進去發(fā)現(xiàn)
do_reset (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
197 {
198         ulong msr;
199 #ifndef MPC83xx_RESET
200         ulong addr;
201 #endif
202
203         volatile immap_t *immap = (immap_t *) CONFIG_SYS_IMMR;
204
205         puts("Resetting the board.\n";
206
207 #ifdef MPC83xx_RESET
208         /* Interrupts and MMU off */
209         __asm__ __volatile__ ("mfmsr    %0":"=r" (msr);
210
211         msr &= ~( MSR_EE | MSR_IR | MSR_DR);
212         __asm__ __volatile__ ("mtmsr    %0"::"r" (msr));
213
214         /* enable Reset Control Reg */
215         immap->reset.rpr = 0x52535445;
216         __asm__ __volatile__ ("sync";
217         __asm__ __volatile__ ("isync";
218
219         /* confirm Reset Control Reg is enabled */
220         while(!((immap->reset.rcer) & RCER_CRE));
221         udelay(200);
這些都執(zhí)行了   

系統(tǒng)起來后, 執(zhí)行reboot ,出現(xiàn)Restarting system.  
跟進去void mpc83xx_restart(char *cmd)
34 {
35 #define RST_OFFSET      0x00000900
36 #define RST_PROT_REG    0x00000018
37 #define RST_CTRL_REG    0x0000001c
38 printk("yv  enter mpc83xx_restart\n";
39         local_irq_disable();
40
41         if (restart_reg_base) {
42                 /* enable software reset "RSTE" */
43                 printk("yv  enter mpc83xx_restart  1\n";
44                 out_be32(restart_reg_base + (RST_PROT_REG >> 2), 0x52535445);
45                 printk("yv  enter mpc83xx_restart  2\n";
46                 /* set software hard reset */
47                 out_be32(restart_reg_base + (RST_CTRL_REG >> 2), 0x2);
************************************************************************
48                 printk("yv  enter mpc83xx_restart 3\n";
49         } else {
50                 printk (KERN_EMERG "Error: Restart registers not mapped, spinning!\n";
51         }
52
53         for (; ;
54 }
四十七行之前都執(zhí)行了。
不知道為什么都是給cpu復位的寄存器 賦值,它不能從啟,求大神給點解決這種問題的思路,多謝!

論壇徽章:
0
2 [報告]
發(fā)表于 2015-11-05 16:22 |只看該作者
建議自己簡單寫個測試程序,直接操作這個復位寄存器看是否生效。如果沒有生效,再去看看芯片datasheet,是否還有其他依賴。
按理說freescale這么老的片子,代碼應該很成熟了

論壇徽章:
0
3 [報告]
發(fā)表于 2015-11-06 09:17 |只看該作者
這個問題找到了,是通過reset的一個信號量到的,復位電路有個多余的電容。回復 2# mysky0407


   
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP