From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <004501c0d902$f9f7c320$8021690a@huawei.com> From: "machael thailer" To: "Freddy Lugo" , "Dan Malek" , "Michael Habermann" Cc: Subject: Re: Uncompress Ok, but cannot run linux kernel... Date: Thu, 10 May 2001 11:40:36 +0800 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Sender: owner-linuxppc-embedded@lists.linuxppc.org List-Id: > turn_on_mmu: > ..... > SYNC > RFI >I am dealing with same problem. After the rfi (on >turn_on_mmu) instruction an signal is generated and >the progam counter is lost. When performing an rfi >most of the bits of the SRR1 registers become the MSR >bits and the SRR0 register become the next instruction >pointer (NIA). I read the manual and if the new MSR >value enables some pending exceptions then this >exceptions are processed by exception priority. The >bits modified after the rfi are MSR_IR & MSR_DR so I >think (I am not sure yet) this bits enables a waiting >exception of some kind and when the rfi is processed >the exception is executed. gdb only said it recevies >a SIGSTOP signal. I will be working with that today. >If I found anything I will let you know. Now I can "turn_on_mmu" and run "start_here" . I make a mistake when I try to debug by outputing a character vi SERIAL Port after "turn_on_mmu". The serial port IO is 0xfe0003f8, and the "initial_bats" only do the physical address 0~256M to virtual address 0xc0000000~0xc0000000+256M memory-mapping. To make the serial port output work, we have to do additional memory-mapping from physical address 0xf000000-0xffffffff to virtual address 0xf0000000~0xffffffff as following: initial_bats: ...... ...... mtspr DBAT0L,r8 mtspr DBAT0U,r11 mtspr IBAT0L,r8 mtspr IBAT0U,r11 /*the start added lines */ lis r9,0xf000 ori r9,r9,0x1ffe lis r8,0xf000 ori r8,r8,0x2a mtspr DBAT1L,r8 mtspr DBAT1U,r9 /*the end added lines*/ isync blr Now I meet a new problem. I can run through here: start_here: ... bl identify_machine bl MMU_init lis r4,2f@h ori r4,r4,2f@l tophys(r4,r4) li r3,MSR_KERNEL & ~(MSR_IR|MSR_DR) FIX_SRR1(r3,r5) mtspr SRR0,r4 mtspr SRR1,r3 SYNC RFI /*Here I add my serial output codes, but it outputs nothing. System seems to halt here?*/ 2: sync tlbia sync Do you have any ideas? thank you very much. machael thailer ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/