<style id="sinamailpaperfilter">.sinamailpaper-0{cursor:text;}.sinamailpaper-0 td,.sinamailpaper-0 textarea,.sinamailpaper-0 input,.sinamailpaper-0 br,.sinamailpaper-0 div,.sinamailpaper-0 span{font-size:14px;font-family:"????",Verdana,Arial,Helvetica,sans-serif;line-height:1.5;}.sinamailpaper-0 p{*margin:0.2em auto;}.sinamailpaper-0 img{border:0;}.sinamailpaper-0 pre{white-space:normal;}.sinamailpaper-0 form{margin:0;}</style><P>there is something confused me, which is my kernel code is halt because of something wrong i have no hint about it.</P>
<P>my bootloader is u-boot, version is 1.1.4, kernel version is 2.6.14.1, processor is MPC8247.</P>
<P>u-boot have run on the board already. bootloader booting information as follow:</P>
<P>U-Boot 1.1.4 (Mar 22 2009 - 20:30:57)</P>
<P>MPC8272 Reset Status: External Soft, External Hard</P>
<P>MPC8272 Clock Configuration<BR>&nbsp;- Bus-to-Core Mult 4x, VCO Div 2, 60x Bus Freq&nbsp; 25-75 , Core Freq 100-300<BR>&nbsp;- dfbrg 1, corecnf 0x1a, busdf 3, cpmdf 1, plldf 0, pllmf 3<BR>&nbsp;- vco_out&nbsp; 400000000, scc_clk&nbsp; 100000000, brg_clk&nbsp;&nbsp; 25000000<BR>&nbsp;- cpu_clk&nbsp; 400000000, cpm_clk&nbsp; 200000000, bus_clk&nbsp; 100000000</P>
<P>Board: Motorola MPC8272ADS<BR>DRAM:&nbsp; 32 MB<BR>FLASH: 512 kB<BR>In:&nbsp;&nbsp;&nbsp; serial<BR>Out:&nbsp;&nbsp; serial<BR>Err:&nbsp;&nbsp; serial<BR>Net:&nbsp;&nbsp; FCC1 ETHERNET<BR>Hit any key to stop autoboot:&nbsp; 0 </P>
<P>then i "tftp uImage" and "bootm" with no parameters, i suppose that booting kernel will be normal at beginning even if there is no any parameters. </P>
<P>=&gt; tftp</P>
<P>Using FCC1 ETHERNET device<BR>TFTP from server 192.168.0.99; our IP address is 192.168.0.100<BR>Filename 'uImage'.<BR>Load address: 0x400000<BR>Loading: #################################################################<BR>&nbsp; #################################################################<BR>&nbsp; ########################################################<BR>done<BR>Bytes transferred = 952157 (e875d hex)<BR>=&gt; bootm</P>
<P>## Booting image at 00400000 ...<BR>&nbsp;&nbsp; Image Name:&nbsp;&nbsp; Linux-2.6.14<BR>&nbsp;&nbsp; Image Type:&nbsp;&nbsp; PowerPC Linux Kernel Image (gzip compressed)<BR>&nbsp;&nbsp; Data Size:&nbsp;&nbsp;&nbsp; 952093 Bytes = 929.8 kB<BR>&nbsp;&nbsp; Load Address: 00000000<BR>&nbsp;&nbsp; Entry Point:&nbsp; 00000000<BR>&nbsp;&nbsp; Verifying Checksum ... OK<BR>OK</P>
<P>&nbsp;</P>
<P>by LEDs i am sure that it surely performs in kernel. then by sequence early_init, mmu_off, clear_bats and flush_tlbs.</P>
<P>at call_setup_cpu, the performing is halt, i get "bl call_setup_cpu" will invoke setup_common_caches actually. right here, enable caches for 603e by HID0, get HID0 register and setting DCE and ICE bit put into HID0 register, the performing halt. </P>
<P>_GLOBAL(__setup_cpu_603)<BR>&nbsp;b&nbsp;setup_common_caches</P>
<P>setup_common_caches:<BR>&nbsp;mfspr&nbsp;r11,SPRN_HID0<BR>&nbsp;andi.&nbsp;r0,r11,HID0_DCE<BR>&nbsp;ori&nbsp;r11,r11,HID0_ICE|HID0_DCE<BR>&nbsp;ori&nbsp;r8,r11,HID0_ICFI<BR>&nbsp;bne&nbsp;1f&nbsp;&nbsp;&nbsp;/* don't invalidate the D-cache */<BR>/* halt here */&nbsp;<BR>&nbsp;ori&nbsp;r8,r8,HID0_DCI&nbsp;&nbsp;/* unless it wasn't enabled */<BR>1:&nbsp;sync<BR>&nbsp;mtspr&nbsp;SPRN_HID0,r8&nbsp;&nbsp;/* enable and invalidate caches */<BR>&nbsp;sync<BR>&nbsp;mtspr&nbsp;SPRN_HID0,r11&nbsp;&nbsp;/* enable caches */<BR>&nbsp;sync<BR>&nbsp;isync<BR>&nbsp;blr</P>
<P>then after i clear HI0_DCI , performing will run till MSR[DR] is set, i clear that bit. will run again. </P>
<P>i have nerver changed the code because i think there is something be independent of my board device. isnt?</P>
<P>why the performing halt there ? or do you think there is something wrong in the front?<BR>Cheers~ <BR>Sauce</P><hr /><br /><a href = 'http://space.sina.com.cn/ '>新浪空间——与朋友开心分享网络新生活!</a>