Re: booting linux on arm problem
- From: Wei Wang <camwwang@xxxxxxxxx>
- Date: Mon, 15 Oct 2007 10:13:44 -0000
On Oct 12, 9:23 pm, karthikbalaguru <karthikbalagur...@xxxxxxxxx>
On Oct 9, 1:57 pm, Wei Wang <camww...@xxxxxxxxx> wrote:
On Oct 9, 1:51 am, Janaka <jana...@xxxxxxxxxxxx> wrote:
On Oct 9, 6:03 am, Wei Wang <camww...@xxxxxxxxx> wrote:
On Oct 8, 8:37 pm, Juergen Beisert <jbeis...@xxxxxxxxxxxx> wrote:
Wei Wang wrote:
My boot code is located at addr 0x0 and kernel at 0x8000. The boot
code initialize uart and print out OK on a terminal correctly, but
when it jumps to 0x8000 to start the kernel, the PC was set to
0xEA00009A, which is nowhere in my memory map and caused read abort.
The boot code and kernel is supposed to run in the first 64MB DRAM
space. I checked the kernel code and found that the kernel died at the
vprintk subroutine, but I couldn't pin down the actual problem, I
suppose the kernel code should be all right, the only problems should
remain with my boot code. The only printout in terminal after OK was
<<5> which seemed right compared with successful boots. Just wondering
what could be causing this probelm I am seeing, many thanks!
What is your memory map? Means to what address ranges are your flash and RAM
Flash mapped from address 0x0 when booting to 0x4000_0000 after
SRAM at 0x4800_0000(32MB).
SDRAM mapped from 0x7000_0000 when booting to 0x0000_0000 after
booting (64MB), and both the boot code and kernel reside here at
What does your boot code do in summary ? Is it passing any arguments
to the kernel ?
The boot code does pretty much the same thing as described here
(http://www.arm.linux.org.uk/developer/booting.php). It's legacy code
from somebody else, what I don't quite understand is the tagged list
in the boot code. which looks like this
ALIGN 256 ; gets us to 0x100 - where
tags ; to find its boot tags
DCD 0x00000005 ; Size = 5 words, what does
DCD 0x54410001 ; ATAG_CORE, how to determine
the value here? I'm not quite sure.
DCD 0x00000000 ; Flags
DCD 0x00000000 ; PageSize
DCD 0x00000000 ; RootDev
ASSERT . - tags == 256
DCD 0x00000000 ; Size = 0 words
DCD 0x00000000 ; ATAG_NONE - end of list
Just wondering whether there are any resources that I can refer to, in
order to understand the boot code better.
Is the number of arguments you specify match with> whats on the stack ?
I'm not entirely sure, how can I find this out?
Is your flash on chip or on the local/IO bus ?
I suppose the latter - on the local IO bus, it's connected through
static memory controller.
And, what I am still wondering what could have caused the PC change to
0XEA00_009A? there isn't such an address in the entire kernel code.- Hide quoted text -
- Show quoted text -
Do not mistake me.
If you clearly understand the problem.
Then, that itself will give you a 98% percent answer to your problem.
Indeed, although I do not want to believe there can even be problems
with the processor, but thought it looked very like a processor
problem, as a function call saved a certain reg values but popped out
different values afterwards, albeit the reg values on stack remained
- Prev by Date: Re: LTIB for embedded
- Next by Date: Linux Kernel Architect Openings with a CMM Level 5 company
- Previous by thread: Re: booting linux on arm problem
- Next by thread: Re: booting linux on arm problem