This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM3352 hangs on Kernelboot

Other Parts Discussed in Thread: AM3352, AM3359, TPS65910

I'm using TISDK06 on a own AM3352 Board similar to TI-EVM board wit TP65910A3 and DDR3 (256MB).

u-boot and kernel are starting proper on TI-EVM  TMDSSK3358 (AM3359) board.

Have built a new board file for Linux3.2 in ./arc/arm/mach-omap2/board-am335x_kno_txt.c

derived from board-am335xevm.c.

In our board file I've removed everything except UART0 and I2C0 (for TPS65910).

Exactly this kernel is working on TI-EVM board

on my board bot process hangs at:

==============================================================

U-Boot SPL 2013.10 (May 30 2014 - 21:22:41)
>>> I2C0 On
Incorrect magic number (0xee3355bb) in EEPROM
Could not get board ID.
Incorrect magic number (0xee3355bb) in EEPROM
Could not get board ID.
>>> Setting MUX Start
>>> Setting MUX End
Incorrect magic number (0xee3355bb) in EEPROM
Could not get board ID.
Incorrect magic number (0xee3355bb) in EEPROM
Could not get board ID.
---> MPU 600 VDD 46 CONST 1_1_3 : 46
reading args
spl: error reading image args, err - -1
reading u-boot.img
reading u-boot.img


U-Boot 2013.10 (May 30 2014 - 21:22:41)

I2C:   ready
DRAM:  256 MiB
NAND:  nand_decode_bbm_options:: badblockpos 0 64 MiB
MMC:   OMAP SD/MMC: 0
*** Warning - bad CRC, using default environment

Incorrect magic number (0xee3355bb) in EEPROM
Could not get board ID.
Net:   usb_ether
Hit any key to stop autoboot:  0
reading uImage
3185360 bytes read in 306 ms (9.9 MiB/s)
reading initrd.gz
10562028 bytes read in 1004 ms (10 MiB/s)
## Booting kernel from Legacy Image at 80200000 ...
   Image Name:   Linux-3.2.0
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    3185296 Bytes = 3 MiB
   Load Address: 80008000
   Entry Point:  80008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK

Starting kernel ...

=======================================================

Ram has been tested with u-boot internal memorytest and seems to work proper.

Loading uImage and initrd.gz works well too (have compared randomly contents with file for initrd.gz, uImage has checksum)

At TI-EVM board everyting is working proper.

  • Hi Reinhard,

    You say that your board is similar to the Starter Kit. Do you have a DDR3 Vtt regulator on board? This is U14 on the Starter Kit Rev. 1.2B schematics. If you have one check the enable signal DDR_VTT_EN. If you moved this to a different GPIO it's possible that the regulator switches off during kernel boot.

  • DDR_VTT PIN is set properly

    actually boot stop on differet places after hw-init (look at the end of the answer)

    I use a modified *dts file.

    you should see it at:

    http://gitweb.ruhome.de/tisdk07_kno.git/blob_plain/574f284a4aaf7cad03875db08a6fa3c82f934a5b:/board-support/linux-3.12.10-ti2013.12.01/arch/arm/boot/dts/am335x-kno_txt.dts

    U-Boot 2013.10 (Jun 02 2014 - 11:26:48)

    I2C:   ready
    DRAM:  256 MiB
    NAND:  64 MiB
    MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1
    *** Warning - bad CRC, using default environment

    Incorrect magic number (0xee335500) in EEPROM
    Could not get board ID.
    Net:   usb_ether
    Hit any key to stop autoboot:  0
    reading uImage
    4092808 bytes read in 406 ms (9.6 MiB/s)
    reading am335x-kno_txt.dtb
    32686 bytes read in 9 ms (3.5 MiB/s)
    reading initrd.gz
    10565072 bytes read in 1038 ms (9.7 MiB/s)
    ## Booting kernel from Legacy Image at 80200000 ...
       Image Name:   Linux-3.12.10-ti2013.12.01
       Image Type:   ARM Linux Kernel Image (uncompressed)
       Data Size:    4092744 Bytes = 3.9 MiB
       Load Address: 80008000
       Entry Point:  80008000
       Verifying Checksum ... OK
    ## Flattened Device Tree blob at 80f00000
       Booting using the fdt blob at 0x80f00000
       Loading Kernel Image ... OK
       Loading Device Tree to 8f324000, end 8f32efad ... OK

    Starting kernel ...

    [    0.000000] Booting Linux on physical CPU 0x0
    [    0.000000] Linux version 3.12.10-ti2013.12.01 (ru@nb-ru-deb) (gcc version 4.7.3 20130226 (prerelease) (crosstool-NG linaro-1.13.1-4.7-2013.03-20130313 - Linaro GCC 2013.03) ) #3 Mon Jun 2 14:11:46 CEST 2014
    [    0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7d
    [    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
    [    0.000000] Machine: Generic AM33XX (Flattened Device Tree), model: TI AM335x EVM-SK
    [    0.000000] bootconsole [earlycon0] enabled
    [    0.000000] cma: CMA: reserved 24 MiB at 8d800000
    [    0.000000] Memory policy: ECC disabled, Data cache writeback
    [    0.000000] On node 0 totalpages: 64768
    [    0.000000] free_area_init_node: node 0, pgdat c0815370, node_mem_map c0850000
    [    0.000000]   Normal zone: 512 pages used for memmap
    [    0.000000]   Normal zone: 0 pages reserved
    [    0.000000]   Normal zone: 64768 pages, LIFO batch:15
    [    0.000000] CPU: All CPU(s) started in SVC mode.
    [    0.000000] AM335X ES2.1 (neon )
    [    0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
    [    0.000000] pcpu-alloc: [0] 0
    [    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 64256
    [    0.000000] Kernel command line: console=ttyO0,115200 initrd=0x81000000,0xa135d0 root=/dev/ram0 rw init=/sbin/init debug initcall_debug earlyprintk
    [    0.000000] PID hash table entries: 1024 (order: 0, 4096 bytes)
    [    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
    [    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
    [    0.000000] Memory: 213228K/259072K available (5551K kernel code, 506K rwdata, 1868K rodata, 312K init, 225K bss, 45844K reserved, 0K highmem)
    [    0.000000] Virtual kernel memory layout:
    [    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
    [    0.000000]     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
    [    0.000000]     vmalloc : 0xd0800000 - 0xff000000   ( 744 MB)
    [    0.000000]     lowmem  : 0xc0000000 - 0xd0000000   ( 256 MB)
    [    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
    [    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
    [    0.000000]       .text : 0xc0008000 - 0xc074704c   (7421 kB)
    [    0.000000]       .init : 0xc0748000 - 0xc0796060   ( 313 kB)
    [    0.000000]       .data : 0xc0798000 - 0xc0816bd8   ( 507 kB)
    [    0.000000]        .bss : 0xc0816bd8 - 0xc084f0c0   ( 226 kB)
    [    0.000000] NR_IRQS:16 nr_irqs:16 16
    [    0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts
    [    0.000000] Total of 128 interrupts on 1 active controller
    [    0.000000] OMAP clockevent source: timer2 at 24000000 Hz
    [    0.000000] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 178956ms
    [    0.000000] OMAP clocksource: timer1 at 24000000 Hz
    [    0.000000] Console: colour dummy device 80x30
    [    0.010479] Calibrating delay loop... 199.06 BogoMIPS (lpj=995328)
    [    0.088856] pid_max: default: 32768 minimum: 301
    [    0.093880] Security Framework initialized
    [    0.098296] Mount-cache hash table entries: 512
    [    0.119520] CPU: Testing write buffer coherency: ok
    [    0.125219] calling  cpu_suspend_alloc_sp+0x0/0xac @ 1
    [    0.130714] initcall cpu_suspend_alloc_sp+0x0/0xac returned 0 after 0 usecs
    [    0.138025] calling  init_static_idmap+0x0/0xf0 @ 1
    [    0.143228] Setting up static identity map for 0xc0571ea8 - 0xc0571f18
    [    0.150172] initcall init_static_idmap+0x0/0xf0 returned 0 after 9765 usecs
    [    0.157494] calling  __omap4_sar_ram_init+0x0/0x98 @ 1
    [    0.162895] initcall __omap4_sar_ram_init+0x0/0x98 returned -12 after 0 usecs
    [    0.170367] calling  __omap_l2_cache_init+0x0/0x178 @ 1
    [    0.175855] initcall __omap_l2_cache_init+0x0/0x178 returned -19 after 0 usecs
    [    0.183422] calling  __omap4430_phy_power_down+0x0/0x74 @ 1
    [    0.189286] initcall __omap4430_phy_power_down+0x0/0x74 returned 0 after 0 usecs
    [    0.197027] calling  spawn_ksoftirqd+0x0/0x24 @ 1
    [    0.202152] initcall spawn_ksoftirqd+0x0/0x24 returned 0 after 0 usecs
    [    0.209018] calling  init_workqueues+0x0/0x2bc @ 1
    [    0.214702] initcall init_workqueues+0x0/0x2bc returned 0 after 0 usecs
    [    0.221671] calling  jump_label_init_module+0x0/0x1c @ 1
    [    0.227277] initcall jump_label_init_module+0x0/0x1c returned 0 after 0 usecs
    [    0.235520] devtmpfs: initialized
    [    0.243037] calling  ipc_ns_init+0x0/0x20 @ 1
    [    0.247705] initcall ipc_ns_init+0x0/0x20 returned 0 after 0 usecs
    [    0.254175] calling  init_mmap_min_addr+0x0/0x2c @ 1
    [    0.259413] initcall init_mmap_min_addr+0x0/0x2c returned 0 after 0 usecs
    [    0.266537] calling  init_cpufreq_transition_notifier_list+0x0/0x2c @ 1
    [    0.273481] initcall init_cpufreq_transition_notifier_list+0x0/0x2c returned 0 after 0 usecs
    [    0.282305] calling  net_ns_init+0x0/0x18c @ 1
    [    0.287034] initcall net_ns_init+0x0/0x18c returned 0 after 0 usecs
    [    0.293894] calling  vfp_init+0x0/0x198 @ 1
    [    0.298321] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
    [    0.306354] initcall vfp_init+0x0/0x198 returned 0 after 9765 usecs
    [    0.312912] calling  ptrace_break_init+0x0/0x34 @ 1
    [    0.318062] initcall ptrace_break_init+0x0/0x34 returned 0 after 0 usecs
    [    0.325072] calling  v6_userpage_init+0x0/0x40 @ 1
    [    0.330133] initcall v6_userpage_init+0x0/0x40 returned 0 after 0 usecs
    [    0.337064] calling  __omap_serial_early_init+0x0/0x160 @ 1
    [    0.342908] initcall __omap_serial_early_init+0x0/0x160 returned -19 after 0 usecs
    [    0.350827] calling  __omap_hwmod_setup_all+0x0/0x48 @ 1
    [    0.429914] omap_hwmod: debugss: _wait_target_disable failed
    [    0.435947] initcall __omap_hwmod_setup_all+0x0/0x48 returned 0 after 68359 usecs
    [    0.443788] calling  __omap_device_init+0x0/0x34 @ 1
    [    0.449029] initcall __omap_device_init+0x0/0x34 returned 0 after 0 usecs
    [    0.456149] calling  __omap2xxx_common_look_up_clks_for_reset+0x0/0x68 @ 1
    [    0.463355] initcall __omap2xxx_common_look_up_clks_for_reset+0x0/0x68 returned -22 after 0 usecs
    [    0.472620] calling  wq_sysfs_init+0x0/0x20 @ 1
    [    0.478257] initcall wq_sysfs_init+0x0/0x20 returned 0 after 0 usecs
    [    0.484918] calling  ksysfs_init+0x0/0xa8 @ 1
    [    0.489794] initcall ksysfs_init+0x0/0xa8 returned 0 after 0 usecs


  • Problem is fixed now,

    have changed *.dts the following way (gpio3 set to no reset DDR3 Voltage enable is on gpio3.21 on our board, and PMIC setup removed is properly done in bootloader and only OPP100 is needed)

    index 83c6abf..9c93bb7 100644 (file)
    --- a/board-support/linux-3.12.10-ti2013.12.01/arch/arm/boot/dts/am335x-kno_txt.dts
    +++ b/board-support/linux-3.12.10-ti2013.12.01/arch/arm/boot/dts/am335x-kno_txt.dts
    @@ -84,11 +84,6 @@
                            status = "okay";
                            clock-frequency = <600000>;
     
    -                       /* Set OPP100 (1.10V) for VDD core */
    -                       wake-sequence = /bits/ 8 <
    -                               0x02 0x2d 0x25 0x2b /* Set VDD2 to 1.1V */
    -                       >;
    -
                            tps: tps@2d {
                                    reg = <0x2d>;
                            };
    @@ -263,3 +258,7 @@
     &gpio0 {
            ti,no-reset;
     };
    +
    +&gpio3 {
    +       ti,no-reset;
    +};