linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* booting an ML405
@ 2008-07-04  1:05 Lorenzo T. Flores
  2008-07-04  2:02 ` David Baird
  2008-07-08 14:58 ` John Linn
  0 siblings, 2 replies; 7+ messages in thread
From: Lorenzo T. Flores @ 2008-07-04  1:05 UTC (permalink / raw)
  To: linuxppc-embedded

Hey all,

I did a little preliminary poking through the thread archives, but 
didn't turn anything up. I anyone could just point me in the right 
direction as far as troubleshooting, that would be great!

I'm trying to compile the Xilinx patched kernel tree (v2.6.25-rc9) and 
run it on an ML405

So far, I get to the following point in the boot sequence:

loaded at:     00400000 005AF5A0
board data at: 005AD524 005AD5A0
relocated to:  00405058 004050D4
zimage at:     00405E90 0051D6CC
initrd at:     0051E000 005ACC0D
avail ram:     005B0000 80000000

Linux/PPC load: console=ttyS0,9600 ip=on root=/dev/ram rw
Uncompressing Linux...done.
Now booting the kernel

The system hangs after it says "Now booting the kernel."

Once again, any input would be appreciated.

thank you,
Lorenzo

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: booting an ML405
  2008-07-04  1:05 booting an ML405 Lorenzo T. Flores
@ 2008-07-04  2:02 ` David Baird
  2008-07-08  1:37   ` Lorenzo T. Flores
  2008-07-08 14:58 ` John Linn
  1 sibling, 1 reply; 7+ messages in thread
From: David Baird @ 2008-07-04  2:02 UTC (permalink / raw)
  To: Lorenzo T. Flores; +Cc: linuxppc-embedded

On Thu, Jul 3, 2008 at 7:05 PM, Lorenzo T. Flores <lorenzo@alphagolf.com> wrote:
> I'm trying to compile the Xilinx patched kernel tree (v2.6.25-rc9) and run
> it on an ML405
>
> So far, I get to the following point in the boot sequence:
>
> loaded at:     00400000 005AF5A0
> board data at: 005AD524 005AD5A0
> relocated to:  00405058 004050D4
> zimage at:     00405E90 0051D6CC
> initrd at:     0051E000 005ACC0D
> avail ram:     005B0000 80000000
>
> Linux/PPC load: console=ttyS0,9600 ip=on root=/dev/ram rw
> Uncompressing Linux...done.
> Now booting the kernel
>
> The system hangs after it says "Now booting the kernel."

This seems to come up a lot, so I'm surprised you didn't find it in
the archives ;-)

Are you using uartlite?  You'll need to change the "console" option if you are.

-David

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: booting an ML405
  2008-07-04  2:02 ` David Baird
@ 2008-07-08  1:37   ` Lorenzo T. Flores
  2008-07-08  2:29     ` Grant Likely
  2008-07-08 17:12     ` David Baird
  0 siblings, 2 replies; 7+ messages in thread
From: Lorenzo T. Flores @ 2008-07-08  1:37 UTC (permalink / raw)
  To: David Baird; +Cc: linuxppc-embedded

David,

Thanks for the response. I searched a little more and found that many 
people recommend looking through __log_buf to see if info is getting 
printed to memory. Below I've added the printouts I get both before and 
after the system hangs. Also, I'm not using Uartlite. I'm using 16550; 
however, I have created the same design with Uartlite and adjusted the 
console parameter to reflect that change. In both instances the kernel 
hangs. You're right too, this is common...I just need to figure out how 
to read out this __log_buf address:

If I stop the processor after it hangs:

XMD% mrd 0xc0259fa4 10
C0259FA4:   3C353E5B
C0259FA8:   20202020
C0259FAC:   302E3030
C0259FB0:   30303030
C0259FB4:   5D204C69
C0259FB8:   6E757820
C0259FBC:   76657273
C0259FC0:   696F6E20
C0259FC4:   322E362E
C0259FC8:   32352D72

If I stop it before it hangs:
XMD% mrd 0xc0259fa4 10
C0259FA4:   00000000
C0259FA8:   00000000
C0259FAC:   00000000
C0259FB0:   00000000
C0259FB4:   00000000
C0259FB8:   00000000
C0259FBC:   00000000
C0259FC0:   00000000
C0259FC4:   00000000
C0259FC8:   00000000

according to my system.map file __log_buf is located at C0259FA4

If I cut off the 0xc0000000:

XMD% mrd 0x259fa4 10
  259FA4:   FFFFFFFF
  259FA8:   FFFFFFFF
  259FAC:   FFFFFFFF
  259FB0:   FFFFFFFF
  259FB4:   FFFFFFFF
  259FB8:   FFFFFFFF
  259FBC:   FFFFFFFF
  259FC0:   FFFFFFFF
  259FC4:   FFFFFFFF
  259FC8:   FFFFFFFF

Any insight as to how to figure out what these values mean using XMD 
would be great. Or if you guys have any other recommendations for using 
the JTAG (not with XMD) I would greatly appreciated!

thanks,
Lorenzo



David Baird wrote:
> On Thu, Jul 3, 2008 at 7:05 PM, Lorenzo T. Flores <lorenzo@alphagolf.com> wrote:
>   
>> I'm trying to compile the Xilinx patched kernel tree (v2.6.25-rc9) and run
>> it on an ML405
>>
>> So far, I get to the following point in the boot sequence:
>>
>> loaded at:     00400000 005AF5A0
>> board data at: 005AD524 005AD5A0
>> relocated to:  00405058 004050D4
>> zimage at:     00405E90 0051D6CC
>> initrd at:     0051E000 005ACC0D
>> avail ram:     005B0000 80000000
>>
>> Linux/PPC load: console=ttyS0,9600 ip=on root=/dev/ram rw
>> Uncompressing Linux...done.
>> Now booting the kernel
>>
>> The system hangs after it says "Now booting the kernel."
>>     
>
> This seems to come up a lot, so I'm surprised you didn't find it in
> the archives ;-)
>
> Are you using uartlite?  You'll need to change the "console" option if you are.
>
> -David
> _______________________________________________
> Linuxppc-embedded mailing list
> Linuxppc-embedded@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-embedded
>
>   

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: booting an ML405
  2008-07-08  1:37   ` Lorenzo T. Flores
@ 2008-07-08  2:29     ` Grant Likely
  2008-07-08 17:12     ` David Baird
  1 sibling, 0 replies; 7+ messages in thread
From: Grant Likely @ 2008-07-08  2:29 UTC (permalink / raw)
  To: Lorenzo T. Flores; +Cc: David Baird, linuxppc-embedded

On Mon, Jul 7, 2008 at 7:37 PM, Lorenzo T. Flores <lorenzo@alphagolf.com> wrote:
> David,
>
> Thanks for the response. I searched a little more and found that many people
> recommend looking through __log_buf to see if info is getting printed to
> memory. Below I've added the printouts I get both before and after the
> system hangs. Also, I'm not using Uartlite. I'm using 16550; however, I have
> created the same design with Uartlite and adjusted the console parameter to
> reflect that change. In both instances the kernel hangs. You're right too,
> this is common...I just need to figure out how to read out this __log_buf
> address:
>
> If I stop the processor after it hangs:

... This looks like ASCII text; let's try decoding it...

> XMD% mrd 0xc0259fa4 10
> C0259FA4:   3C353E5B    '<5>['
> C0259FA8:   20202020    '    '
> C0259FAC:   302E3030    '0.00'
> C0259FB0:   30303030    '0000'
> C0259FB4:   5D204C69    '] Li'
> C0259FB8:   6E757820    'nux '
> C0259FBC:   76657273    'vers'
> C0259FC0:   696F6E20    'ion '
> C0259FC4:   322E362E    '2.6.'
> C0259FC8:   32352D72    '25-r'

Looks like you've found how to read the logbuf; now you just need to
dump it to a file so tha tyou can read it.  :-)

g.

-- 
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* RE: booting an ML405
  2008-07-04  1:05 booting an ML405 Lorenzo T. Flores
  2008-07-04  2:02 ` David Baird
@ 2008-07-08 14:58 ` John Linn
  1 sibling, 0 replies; 7+ messages in thread
From: John Linn @ 2008-07-08 14:58 UTC (permalink / raw)
  To: Lorenzo T. Flores, linuxppc-embedded

Hi Lorenzo,

I'm assuming you're trying to use the reference design bit stream for
the ML405 that we have had out on the http://git.xilinx.com site?

Since the bootstrap loader is working, the UART appears to be OK.
Assuming you have the kernel configuration right with the 8250 driver
and the console, it sounds like something else must be wrong and you're
headed in the right direction with using the __log_buf.

The __log_buf should tell you if the kernel is really hung, or if it
booted and you just don't have a console working.

The ml405_defconfig sets up the kernel configuration so it should work
on the board just building it for the reference design.

One thing I notice is the available ram looks wrong to me for the ML405
based on my notes.
 =

> avail ram:     005B0000 80000000

I had a problem once with the kernel and I found the DDR_SIZE in
xparameters.h (arch/ppc/platforms/40x/xparameters) was not right, and
this does hang the kernel in my experience.

My old kernel output shows

> avail ram:     00519000 04000000

Hope that might help,
John


> -----Original Message-----
> From: linuxppc-embedded-bounces+john.linn=3Dxilinx.com@ozlabs.org
[mailto:linuxppc-embedded-
> bounces+john.linn=3Dxilinx.com@ozlabs.org] On Behalf Of Lorenzo T.
Flores
> Sent: Thursday, July 03, 2008 7:05 PM
> To: linuxppc-embedded@ozlabs.org
> Subject: booting an ML405
> =

> Hey all,
> =

> I did a little preliminary poking through the thread archives, but
> didn't turn anything up. I anyone could just point me in the right
> direction as far as troubleshooting, that would be great!
> =

> I'm trying to compile the Xilinx patched kernel tree (v2.6.25-rc9) and
> run it on an ML405
> =

> So far, I get to the following point in the boot sequence:
> =

> loaded at:     00400000 005AF5A0
> board data at: 005AD524 005AD5A0
> relocated to:  00405058 004050D4
> zimage at:     00405E90 0051D6CC
> initrd at:     0051E000 005ACC0D
> avail ram:     005B0000 80000000
> =

> Linux/PPC load: console=3DttyS0,9600 ip=3Don root=3D/dev/ram rw
> Uncompressing Linux...done.
> Now booting the kernel
> =

> The system hangs after it says "Now booting the kernel."
> =

> Once again, any input would be appreciated.
> =

> thank you,
> Lorenzo
> _______________________________________________
> Linuxppc-embedded mailing list
> Linuxppc-embedded@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-embedded


This email and any attachments are intended for the sole use of the named r=
ecipient(s) and contain(s) confidential information that may be proprietary=
, privileged or copyrighted under applicable law. If you are not the intend=
ed recipient, do not read, copy, or forward this email message or any attac=
hments. Delete this email message and any attachments immediately.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: booting an ML405
  2008-07-08  1:37   ` Lorenzo T. Flores
  2008-07-08  2:29     ` Grant Likely
@ 2008-07-08 17:12     ` David Baird
  2008-07-10  1:11       ` Lorenzo T. Flores
  1 sibling, 1 reply; 7+ messages in thread
From: David Baird @ 2008-07-08 17:12 UTC (permalink / raw)
  To: Lorenzo T. Flores; +Cc: linuxppc-embedded

On Mon, Jul 7, 2008 at 7:37 PM, Lorenzo T. Flores <lorenzo@alphagolf.com> wrote:
> If I stop the processor after it hangs:
>
> XMD% mrd 0xc0259fa4 10
> C0259FA4:   3C353E5B
> C0259FA8:   20202020
> C0259FAC:   302E3030
> C0259FB0:   30303030
> C0259FB4:   5D204C69
> C0259FB8:   6E757820
> C0259FBC:   76657273
> C0259FC0:   696F6E20
> C0259FC4:   322E362E
> C0259FC8:   32352D72

Since XMD is also a Tcl shell, you can easily download __log_buf like this:

    set fd [open xmd.log w]
    puts $fd [mrd  0xc0259fa4 10]

Then, with a little tweaking, you could use xxd or some other tool to
convert it to ASCII.

> If I cut off the 0xc0000000:
>
> XMD% mrd 0x259fa4 10
>  259FA4:   FFFFFFFF
>  259FA8:   FFFFFFFF
>  259FAC:   FFFFFFFF
>  259FB0:   FFFFFFFF
>  259FB4:   FFFFFFFF
>  259FB8:   FFFFFFFF
>  259FBC:   FFFFFFFF
>  259FC0:   FFFFFFFF
>  259FC4:   FFFFFFFF
>  259FC8:   FFFFFFFF

My guess is that if you issue a rst (reset) command, I think this will
take the processor out of virtual mode and then you can strip of the
0xc0000000.  But looks like you got what you need anyways, so no need
for this :-)

-David

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: booting an ML405
  2008-07-08 17:12     ` David Baird
@ 2008-07-10  1:11       ` Lorenzo T. Flores
  0 siblings, 0 replies; 7+ messages in thread
From: Lorenzo T. Flores @ 2008-07-10  1:11 UTC (permalink / raw)
  To: David Baird; +Cc: linuxppc-embedded

Hey all (David, John, & Grant)

Thanks for the responses! Using the TCL commands to dump memory values 
and a little python script I was able to get a readout of what my kernel 
is doing when it hangs:

<5>[ 0.000000] Linux version 2.6.25-rc9 
(ltflores@buildmachinelinux.ag.com) (gcc version 4.1.2) #9 Thu Jul 3 
15:55:15 EDT 2008
<6>[ 0.000000] Xilinx Generic PowerPC board support package (Xilinx 
ML405) (Virtex-4 FX)
<7>[ 0.000000] Entering add_active_range(0, 0, 196608) 0 entries of 256 used
<4>[ 0.000000] Zone PFN ranges:
<4>[ 0.000000] DMA 0 -> 196608
<4>[ 0.000000] Normal 196608 -> 196608
<4>[ 0.000000] Movable zone start PFN for each node
<4>[ 0.000000] early_node_map[1] active PFN ranges
<4>[ 0.000000] 0: 0 -> 196608
<7>[ 0.000000] On node 0 totalpages: 196608
<7>[ 0.000000] DMA zone: 1536 pages used for memmap
<7>[ 0.000000] DMA zone: 0 pages reserved
<7>[ 0.000000] DMA zone: 195072 pages, LIFO batch:31
<7>[ 0.000000] Normal zone: 0 pages used for memmap
<7>[ 0.000000] Movable zone: 0 pages used for memmap
<4>[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. 
Total pages: 195072
<5>[ 0.000000] Kernel command line: console=ttyS0,9600 ip=on 
root=/dev/ram rw
<6>[ 0.000000] Xilinx INTC #0 at 0x81800000 mapped to 0xFDFFE000
<4>[ 0.000000] PID hash table entries: 4096 (order: 12, 16384 bytes)
<4>[ 0.000231] Console: colour dummy device 80x25
<6>[ 0.009326] Dentry cache hash table entries: 131072 (order: 7, 524288 
bytes)
<6>[ 0.023201] Inode-cache hash table entries: 65536 (order: 6, 262144 
bytes)
<4>[ 0.243554] Memory: 776192k available (1768k kernel code, 596k data, 
108k init, 0k highmem)
<4>[ 0.243750] Data machine check in kernel mode.
<4>[ 0.243798] Oops: machine check, sig: 7 [#1]
<4>[ 0.243826] NIP: c00593b0 LR: c005926c CTR: 00000000
<4>[ 0.243864] REGS: c0257f50 TRAP: 0202 Not tainted (2.6.25-rc9)
<4>[ 0.243890] MSR: 00029030 <EE,ME,IR,DR> CR: 24000082 XER: 00000050
<4>[ 0.243945] TASK = c0222518[0] 'swapper' THREAD: c0238000
<6>[ 0.243969] GPR00: 00000000 c0239f00 c0222518 c0ba5000 00000000 
00000000 ffffffff c0225e70
<6>[ 0.244000] GPR08: ffffffff efc000c0 00000001 00000002 c0ba53c0 
ffffffff ffffffff ffffffff
<6>[ 0.244000] GPR16: ffffffff ffffffff ffffffff ffffffff ffffffff 
ffffffff 00000000 00000010
<6>[ 0.244000] GPR24: 00000020 000080d0 c025263c 000000d0 c022693c 
efc00000 000000c0 efc00000
<4>[ 0.244000] NIP [c00593b0] cache_alloc_refill+0x428/0x594
<4>[ 0.244000] LR [c005926c] cache_alloc_refill+0x2e4/0x594
<4>[ 0.244000] Call Trace:
<4>[ 0.244000] [c0239f00] [c005926c] cache_alloc_refill+0x2e4/0x594 
(unreliable)
<4>[ 0.244000] [c0239f30] [c0058f40] kmem_cache_alloc+0x58/0xa0
<4>[ 0.244000] [c0239f50] [c005a2e0] kmem_cache_create+0x1b4/0x418
<4>[ 0.244000] [c0239f90] [c0246b58] kmem_cache_init+0x1a0/0x3c4
<4>[ 0.244000] [c0239fc0] [c023b958] start_kernel+0x244/0x2b4
<4>[ 0.244000] [c0239ff0] [c000225c] start_here+0x44/0xb0
<4>[ 0.244000] Instruction dump:
<4>[ 0.244000] 4bfffb69 2c030000 41820118 7c7f1b78 48000010 801c0034 
7ffdf214 7fde0214
<4>[ 0.244000] 38000000 7d3df214 913f000c 901f0014 <901f0010> 93df0008 
b01f0018 3d20c025
<4>[ 0.244000] Data machine check in kernel mode.
<4>[ 0.244000] Oops: machine check, sig: 7 [#2]
<4>[ 0.244000] NIP: c0003f6c LR: c0002dbc CTR: 00000001
<4>[ 0.244000] REGS: c0257f50 TRAP: 0202 Tainted: G D (2.6.25-rc9)
<4>[ 0.244000] MSR: 00021030 <ME,IR,DR> CR: 48000022 XER: 00000050
<4>[ 0.244000] TASK = c0222518[0] 'swapper' THREAD: c0238000
<6>[ 0.244000] GPR00: 08000000 c0257e70 c0222518 c0257e80 00000001 
00000001 00000000 c0220000
<6>[ 0.244000] GPR08: 00004000 c0002dbc 00021032 c0003f6c 00222728 
ffffffff ffffffff ffffffff
<6>[ 0.244000] GPR16: ffffffff ffffffff ffffffff ffffffff ffffffff 
ffffffff 00000000 00000010
<6>[ 0.244000] GPR24: 00000020 000080d0 c025263c 000000d0 c022693c 
efc00000 c0257f50 00000007
<4>[ 0.244000] NIP [c0003f6c] timer_interrupt+0x0/0x19c
<4>[ 0.244000] LR [c0002dbc] ret_from_except+0x0/0x18
<4>[ 0.244000] Call Trace:
<4>[ 0.244000] Instruction dump:
<4>[ 0.244000] 900960bc 4802dd71 813b62d0 39290001 913b62d0 7f200124 
38600000 80010034
<4>[ 0.244000] bb210014 7c0803a6 38210030 4e800020 <9421ffe0> 7c0802a6 
bf61000c 90010024
<0>[ 0.244000] Kernel panic - not syncing: Attempted to kill the idle task!
<0>[ 0.244000] Rebooting in 180 seconds..

Things just don't look good here...

John mentioned inconsistencies with my available ram, heres what I found 
in my xparameters_ml405.h file -

 From my xparameters_ml405.h file:

/* Definitions for driver MPMC */
#define XPAR_XMPMC_NUM_INSTANCES 1

/* Definitions for peripheral DDR_SDRAM */
#define XPAR_DDR_SDRAM_DEVICE_ID 0
#define XPAR_DDR_SDRAM_MPMC_CTRL_BASEADDR 0xFFFFFFFF
#define XPAR_DDR_SDRAM_INCLUDE_ECC_SUPPORT 0


/******************************************************************/

/* Definitions for peripheral DDR_SDRAM */
#define XPAR_DDR_SDRAM_MPMC_BASEADDR 0x00000000
#define XPAR_DDR_SDRAM_MPMC_HIGHADDR 0x07FFFFFF
#define XPAR_DDR_SDRAM_SDMA_CTRL_BASEADDR 0x84600000
#define XPAR_DDR_SDRAM_SDMA_CTRL_HIGHADDR 0x8460FFFF

Unfortunately I'll have to wait till tomorrow to really dig into my 
memory stuff, I figured I'd include it in case anyone has good info to 
help me avoid walking down the wrong direction here.

I'm very grateful for your responses as they were tremendously helpful. 
Thank you. And as before, any info or tips you guys have is always 
appreciated.

thanks,
Lorenzo

David Baird wrote:
> On Mon, Jul 7, 2008 at 7:37 PM, Lorenzo T. Flores <lorenzo@alphagolf.com> wrote:
>   
>> If I stop the processor after it hangs:
>>
>> XMD% mrd 0xc0259fa4 10
>> C0259FA4:   3C353E5B
>> C0259FA8:   20202020
>> C0259FAC:   302E3030
>> C0259FB0:   30303030
>> C0259FB4:   5D204C69
>> C0259FB8:   6E757820
>> C0259FBC:   76657273
>> C0259FC0:   696F6E20
>> C0259FC4:   322E362E
>> C0259FC8:   32352D72
>>     
>
> Since XMD is also a Tcl shell, you can easily download __log_buf like this:
>
>     set fd [open xmd.log w]
>     puts $fd [mrd  0xc0259fa4 10]
>
> Then, with a little tweaking, you could use xxd or some other tool to
> convert it to ASCII.
>
>   
>> If I cut off the 0xc0000000:
>>
>> XMD% mrd 0x259fa4 10
>>  259FA4:   FFFFFFFF
>>  259FA8:   FFFFFFFF
>>  259FAC:   FFFFFFFF
>>  259FB0:   FFFFFFFF
>>  259FB4:   FFFFFFFF
>>  259FB8:   FFFFFFFF
>>  259FBC:   FFFFFFFF
>>  259FC0:   FFFFFFFF
>>  259FC4:   FFFFFFFF
>>  259FC8:   FFFFFFFF
>>     
>
> My guess is that if you issue a rst (reset) command, I think this will
> take the processor out of virtual mode and then you can strip of the
> 0xc0000000.  But looks like you got what you need anyways, so no need
> for this :-)
>
> -David
> _______________________________________________
> Linuxppc-embedded mailing list
> Linuxppc-embedded@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-embedded
>
>   

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2008-07-10  1:15 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-07-04  1:05 booting an ML405 Lorenzo T. Flores
2008-07-04  2:02 ` David Baird
2008-07-08  1:37   ` Lorenzo T. Flores
2008-07-08  2:29     ` Grant Likely
2008-07-08 17:12     ` David Baird
2008-07-10  1:11       ` Lorenzo T. Flores
2008-07-08 14:58 ` John Linn

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).