> -----Original Message-----
> I'm trying to boot a DA830 EVM with TI's U-Boot (1.3.3) I have the
> davinci kernel git tree and using CodeSourcery G++ Lite 2009q1-203, I
> did:
> 
> make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-
> da830_omapl137_defconfig
> make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- uImage
> 
> This gave me a uImage file [Image Name:
> Linux-2.6.31-rc7-davinci1-06494-] that I have tftp booted with these
> settings:
> 
> setenv nfshost x.x.x.x
> setenv serverip x.x.x.x
> setenv rootpath /my/OMAP/nfspath/root
> setenv bootfile uImage
> setenv bootcmd "dhcp;bootm"
> setenv bootagrs "console=ttyS2,115200n8 noinitrd rw ip=dhcp
> rootfs=/dev/nfs nfsroot=${nfshost}:${rootpath},nolock mem=32M"
> 
> It downloads, uncompresses, and says, "starting the kernel" and that's
> that. I dumped __log_buf and unmangled the output to get:
> 
> 27274>] (__bug+0x1c/0x28)
> <4>[<c0027274>] (__bug+0x1c/0x28) from [<c000e098>]
> (davinci_timer_init+0x304/0x34c)
> <4>[<c000e098>] (davinci_timer_init+0x304/0x34c) from [<c000c354>]
> (time_init+0x18/0x24)
> <4>[<c000c354>] (time_init+0x18/0x24) from [<c0008a28>]
> (start_kernel+0x174/0x2e8)
> <4>[<c0008a28>] (start_kernel+0x174/0x2e8) from [<c0008034>]
> (__enable_mmu+0x0/0x2c)
> <4>unwind: Unknown symbol address c0008034
> <4>unwind: Index not found c0008034
> <4>Code: e2887001 e5897004 e59f504c e5955000 (e5950080) .a8c c02d1ca8
> c0027760
> <4>1c20: c002776c 60000053 ffffffff 00000000 c02d3688 00000006
00000005
> c02d0000
> <4>1c40: 00000080 00000005 600000d3 c02d1c60 c0027760 c0023aec
600000d3
> ffffffff
> <4>1c60: 00000007 c02ec0ac 00000080 60000053 c02eb870 c02d0000
c02d3688
> c02d1db8
> 
> [snip more unwinding output]
> 
> There is only one call to bug() in davinci_timer_init(), so I guess it
> must be bugging out on
> 
>       timer_clk = clk_get(NULL, "timer0");
>       BUG_ON(IS_ERR(timer_clk));
> 
> Should I be using this new a kernel? Maybe I messed up the
> configuration:- they are basically the same settings I used for the TI
> supplied kernel though, which boots fine. It a very old kernel though
> 2.6.18 and a bit.
> 
> Any ideas what I have done wrong?

After adding the printk hack to get better debug output I found:

<5>Linux version 2.6.31-rc7-davinci1-06494-g6587756-dirty
(defa...@default-desktop) (gcc version 4.3.3 (Sourcery G++ Lite
2009q1-203) ) #6 PREEMPT Tue Sep 29 16:21:36 BST 2009
CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
CPU: VIVT data cache, VIVT instruction cache
Machine: DaVinci DA830/OMAP L137 EVM
Memory policy: ECC disabled, Data cache writethrough
<7>On node 0 totalpages: 8192
<7>free_area_init_node: node 0, pgdat c02bec88, node_mem_map c02e9000
<7>  DMA zone: 64 pages used for memmap
<7>  DMA zone: 0 pages reserved
<7>  DMA zone: 8128 pages, LIFO batch:0
<3>davinci_common_init: SoC Initialization failed
Built 1 zonelists in Zone order, mobility grouping on.  Total pages:
8128
<5>Kernel command line: console=ttyS2,115200n8 root=/dev/mmcblk0p1
noinitrd rw ip=off mem=32M
PID hash table entries: 128 (order: 7, 512 bytes)
<6>Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
<6>Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
<6>Memory: 32MB = 32MB total
<5>Memory: 29504KB available (2504K code, 270K data, 96K init, 0K
highmem)
<6>SLUB: Genslabs=11, HWalign=32, Order=0-3, MinObjects=0, CPUs=1,
Nodes=1
<6>NR_IRQS:245
<2>kernel BUG at arch/arm/mach-davinci/time.c:375!
<1>Unable to handle kernel NULL pointer dereference at virtual address
00000000
<1>pgd = c0004000

Note that the davinci SoC initilisation fails. This is where the clocks
are registered and the failure means there are no clocks, so clk_get
fails later.

Why??? My OMAP-L137 is reporting a jtag part number of 0xb7df and a
variant number of 0x8. da830.c is expecting:

static struct davinci_id da830_ids[] = {
        {
                .variant        = 0x0,
                .part_no        = 0xb7df,
                .manufacturer   = 0x017,        /* 0x02f >> 1 */
                .cpu_id         = DAVINCI_CPU_ID_DA830,
                .name           = "da830/omap l137",
        },
};

I hacked the 0x0 to 0x08 and my target now boots. I guess the correct
fix is to add a second entry for the new (?) variant, but I'm not a
kernel expert.

I hope that helps. Feel free to ask for more info.

Nick.


_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to