* MVL Linux on MPC8560 Booting goes into infinite loop in early_init memset_io ( )
@ 2008-04-07 6:49 Deepak Gaur
2008-04-07 16:04 ` Scott Wood
0 siblings, 1 reply; 5+ messages in thread
From: Deepak Gaur @ 2008-04-07 6:49 UTC (permalink / raw)
To: linuxppc-embedded
Hi all,
While booting MVL linux on MPC8560 based board the kernel goes into a infinite loop in
setup.c. The uncompressed image is located at 0x00000000 and is booted from 0x00000000
arch/ppc/kernel/head_fsl_booke.S
------------------------------------
bl early_init
arch/ppc/kernel/setup.c
----------------------------------------
unsigned long
early_init(int r3, int r4, int r5)
{
unsigned long phys;
unsigned long offset = reloc_offset();
/* Default */
phys = offset + KERNELBASE;
/* First zero the BSS -- use memset, some arches don't have
* caches on yet */
memset_io(PTRRELOC(&__bss_start), 0, _end - __bss_start);
__bss_start is 0xc039b00 and __bss_stop = _end =c03c7d90 _end
Please anyone give me some pointers to understand this i.e use of PTRRELOC and
REASON BEHIND clearing area from __bss_start to _end - __bss_start even though lot of
symbols and functions are defined here(as per System.map)
System.map
---------------------
c039b000 A __bss_start
c039b000 A __chrp_begin
c039b000 A __chrp_end
c039b000 A __init_end
c039b000 A __openfirmware_begin
c039b000 A __openfirmware_end
c039b000 A __pmac_begin
c039b000 A __pmac_end
c039b000 A __prep_begin
c039b000 A __prep_end
c039b000 B system_state
c039b004 B late_time_init
c039b008 b execute_command
c039b00c b panic_later
c039b010 b panic_param
c039b014 B Version_132618
.....
.....
c03c4458 B ic_nameservers
c03c4464 B unix_socket_table
c03c4464 B unix_table_lock
c03c4868 b auth_domain_table
c03c4868 b authtab_lock
c03c4868 b packet_sklist_lock
c03c4868 b rpc_credcache_lock
c03c4868 b rpc_queue_lock
c03c4868 b rpc_sched_lock
c03c4968 b ip_table
c03c4d68 b pmap_lock
c03c4d68 b pmap_stats
c03c4d90 b cache_defer_hash
c03c4d90 b cache_defer_lock
c03c4d90 b cache_list_lock
c03c4d90 b queue_lock
c03c5d90 b write_buf
c03c7d90 A __bss_stop
c03c7d90 A _end
Thanks,
Deepak Gaur
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: MVL Linux on MPC8560 Booting goes into infinite loop in early_init memset_io ( )
2008-04-07 6:49 MVL Linux on MPC8560 Booting goes into infinite loop in early_init memset_io ( ) Deepak Gaur
@ 2008-04-07 16:04 ` Scott Wood
2008-04-07 19:50 ` David Baird
0 siblings, 1 reply; 5+ messages in thread
From: Scott Wood @ 2008-04-07 16:04 UTC (permalink / raw)
To: Deepak Gaur; +Cc: linuxppc-embedded
Deepak Gaur wrote:
> Hi all,
>
> While booting MVL linux
Have you talked to MV support? For community support, it's best to use
the latest upstream sources (and arch/powerpc, not arch/ppc).
BTW, it's generally bad form to post the same question repeatedly. If
you have new information regarding your problem, just post a followup in
the same thread containing the new information.
> arch/ppc/kernel/setup.c
> ----------------------------------------
> unsigned long
> early_init(int r3, int r4, int r5)
> {
> unsigned long phys;
> unsigned long offset = reloc_offset();
>
> /* Default */
> phys = offset + KERNELBASE;
>
> /* First zero the BSS -- use memset, some arches don't have
> * caches on yet */
>
> memset_io(PTRRELOC(&__bss_start), 0, _end - __bss_start);
>
> __bss_start is 0xc039b00 and __bss_stop = _end =c03c7d90 _end
>
>
> Please anyone give me some pointers to understand this i.e use of PTRRELOC
The kernel hasn't been remapped yet, so the pointer is adjusted manually.
> and REASON BEHIND clearing area from __bss_start to _end - __bss_start even though lot of
> symbols and functions are defined here(as per System.map)
That's what the BSS is for -- symbols that are cleared at runtime so as
to eliminate the need to store them in the image. There should be no
functions in there.
-Scott
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: MVL Linux on MPC8560 Booting goes into infinite loop in early_init memset_io ( )
2008-04-07 16:04 ` Scott Wood
@ 2008-04-07 19:50 ` David Baird
2008-04-07 19:56 ` David Baird
2008-04-08 11:15 ` MVL Linux on MPC8560 Booting goes into infinite loop inearly_init " Deepak Gaur
0 siblings, 2 replies; 5+ messages in thread
From: David Baird @ 2008-04-07 19:50 UTC (permalink / raw)
To: linuxppc-embedded; +Cc: Deepak Gaur
On Mon, Apr 7, 2008 at 10:04 AM, Scott Wood <scottwood@freescale.com> wrote:
> BTW, it's generally bad form to post the same question repeatedly. If you
> have new information regarding your problem, just post a followup in the
> same thread containing the new information.
Agreed! I was about to respond to your new post, and then I
discovered this nearly identical slightly older post.
On Mon, Apr 7, 2008 at 12:37 AM, Deepak Gaur <gaur.deepak@gmail.com> wrote:
> While booting MVL linux on MPC8560 based board the kernel goes into a
> infinite loop in setup.c
Someone please correct me if I am wrong, but those symbols inside the
BSS should only be variables (not functions....) which are initialized
to zero. The whole reason for BSS is to initialize variables to a
0/null value.
Now, about the infinite loop. Can you check to see if perhaps you are
getting an exception?
I have no experience with the MPC8560, but I've seen a couple problems
that occur involving memset_io. What happens is that a TLB miss
exception occurs when the CPU gets inside of memset_io. Do you have
the ability to check that with a debugger (by setting breakpoints at
exceptions, such as the data and instruction TLB miss exceptions) to
see if you are getting exceptions?
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: MVL Linux on MPC8560 Booting goes into infinite loop in early_init memset_io ( )
2008-04-07 19:50 ` David Baird
@ 2008-04-07 19:56 ` David Baird
2008-04-08 11:15 ` MVL Linux on MPC8560 Booting goes into infinite loop inearly_init " Deepak Gaur
1 sibling, 0 replies; 5+ messages in thread
From: David Baird @ 2008-04-07 19:56 UTC (permalink / raw)
To: linuxppc-embedded
On Mon, Apr 7, 2008 at 1:50 PM, David Baird <dhbaird@gmail.com> wrote:
> On Mon, Apr 7, 2008 at 10:04 AM, Scott Wood <scottwood@freescale.com> wrote:
> > BTW, it's generally bad form to post the same question repeatedly. If you
> > have new information regarding your problem, just post a followup in the
> > same thread containing the new information.
>
> Agreed! I was about to respond to your new post, and then I
> discovered this nearly identical slightly older post.
(Oops, I got that backwards. This is the newer post...)
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: MVL Linux on MPC8560 Booting goes into infinite loop inearly_init memset_io ( )
2008-04-07 19:50 ` David Baird
2008-04-07 19:56 ` David Baird
@ 2008-04-08 11:15 ` Deepak Gaur
1 sibling, 0 replies; 5+ messages in thread
From: Deepak Gaur @ 2008-04-08 11:15 UTC (permalink / raw)
To: David Baird, linuxppc-embedded
Hi,
Thanks for valuable inputs.. memset_io() issue got resolved after I invalidated the L1
data and Instruction cache before calling early_init(was mentioned in some mailing list
). The code execution resumed and somewhere during MMU_init it again got struck.This
time its due to a DataTLBError. I am now trying to trace the function causing TLB miss
using ICE Trace32. Any pointers for reason behind generation of DataTLBError during MMU_init
Thanks
Deepak Gaur
On Mon, 7 Apr 2008 13:50:04 -0600, David Baird wrote
> On Mon, Apr 7, 2008 at 10:04 AM, Scott Wood <scottwood@freescale.com> wrote:
> > BTW, it's generally bad form to post the same question repeatedly. If you
> > have new information regarding your problem, just post a followup in the
> > same thread containing the new information.
>
> Agreed! I was about to respond to your new post, and then I
> discovered this nearly identical slightly older post.
>
> On Mon, Apr 7, 2008 at 12:37 AM, Deepak Gaur <gaur.deepak@gmail.com> wrote:
> > While booting MVL linux on MPC8560 based board the kernel goes into a
> > infinite loop in setup.c
>
> Someone please correct me if I am wrong, but those symbols inside the
> BSS should only be variables (not functions....) which are initialized
> to zero. The whole reason for BSS is to initialize variables to a
> 0/null value.
>
> Now, about the infinite loop. Can you check to see if perhaps you are
> getting an exception?
>
> I have no experience with the MPC8560, but I've seen a couple problems
> that occur involving memset_io. What happens is that a TLB miss
> exception occurs when the CPU gets inside of memset_io. Do you have
> the ability to check that with a debugger (by setting breakpoints at
> exceptions, such as the data and instruction TLB miss exceptions) to
> see if you are getting exceptions?
> _______________________________________________
> Linuxppc-embedded mailing list
> Linuxppc-embedded@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-embedded
Deepak Gaur
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2008-04-08 11:08 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-04-07 6:49 MVL Linux on MPC8560 Booting goes into infinite loop in early_init memset_io ( ) Deepak Gaur
2008-04-07 16:04 ` Scott Wood
2008-04-07 19:50 ` David Baird
2008-04-07 19:56 ` David Baird
2008-04-08 11:15 ` MVL Linux on MPC8560 Booting goes into infinite loop inearly_init " Deepak Gaur
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).