Linux Kernel stuck while booting at "i.MXC CPU frequency driver"

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Linux Kernel stuck while booting at "i.MXC CPU frequency driver"

1,846 Views
erezsteinberg
Contributor IV

Hello experts,

Could really use some help....

I'm trying to bring up a custom iMX6 Solo board based on iMX6DL Sabre Platform. The board is really similar to the SabreSD. Main differences are UART1 pin-muxing and DDR size configuration. Besides that, just removal of peripherals on the board.

The board has an eMMC, and I'm trying to rebuild MFGTool U-Boot and Linux Kernel in order to program it. Using LTIB (L3.0.35_4.1.0_130816_source. tar.gz), based on u-boot-2009.08/board/freescale/mx6q_sabresd, I updated DCD in flash_header.S and fixed IOMux settings. Then I fixed the pin-muxing for Linux Kernel in arch/arm/mach-mx6/board-mx6dl_sabresd.h.  U-boot and Linux build successfully (For Linux I use imx6_updated_defconfig). U-Boot loads successfully, and Kernel starts loading but stops after "i.MXC CPU frequency driver" (full log below).

What could be the problem?

Sincerely,

Erez

Console log:

-----------------

U-Boot 2009.08 (Oct 02 2014 - 17:21:50)

CPU: Freescale i.MX6 family TO1.2 at 792 MHz

Thermal sensor with ratio = 188

Temperature:   42 C, calibration data 0x5a75265f

mx6q pll1: 792MHz

mx6q pll2: 528MHz

mx6q pll3: 480MHz

mx6q pll8: 50MHz

ipg clock     : 66000000Hz

ipg per clock : 66000000Hz

uart clock    : 80000000Hz

cspi clock    : 60000000Hz

ahb clock     : 132000000Hz

axi clock   : 198000000Hz

emi_slow clock: 99000000Hz

ddr clock     : 396000000Hz

usdhc1 clock  : 198000000Hz

usdhc2 clock  : 198000000Hz

usdhc3 clock  : 198000000Hz

usdhc4 clock  : 198000000Hz

nfc clock     : 24000000Hz

Board: iMX6DL-SabreSD customized board [POR ]

Boot Device: MMC

I2C:   ready

DRAM:  256 MB

MMC:   FSL_USDHC: 0

Using default environment

In:    serial

Out:   serial

Err:   serial

Net:   No ethernet found.

Hit any key to stop autoboot:  0

## Booting kernel from Legacy Image at 10800000 ...

   Image Name:   Linux-3.0.35-2666-gbdde708

   Image Type:   ARM Linux Kernel Image (uncompressed)

   Data Size:    3165528 Bytes =  3 MB

   Load Address: 10008000

   Entry Point:  10008000

   Verifying Checksum ... OK

## Loading init Ramdisk from Legacy Image at 10c00000 ...

   Image Name:   uboot initramfs rootfs

   Image Type:   ARM Linux RAMDisk Image (gzip compressed)

   Data Size:    4545326 Bytes =  4.3 MB

   Load Address: 00000000

   Entry Point:  00000000

   Verifying Checksum ... OK

   Loading Kernel Image ... OK

OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.

Linux version 3.0.35-2666-gbdde708 (erez@ubuntu) (gcc version 4.6.2 20110630 (prerelease) (Freescale MAD -- Linaro 2011.07 -- Built at 2011/08/10 09:20) ) #1 SMP PREEMPT Fri Oct 3 17:14:26 IDT 2014

CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c53c7d

CPU: VIPT nonaliasing data cache, VIPT aliasing instruction cache

Machine: Freescale i.MX 6Quad/DualLite/Solo Sabre-SD Board

Memory policy: ECC disabled, Data cache writealloc

CPU identified as i.MX6DL/SOLO, silicon rev 1.2

PERCPU: Embedded 7 pages/cpu @8082e000 s5184 r8192 d15296 u32768

Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 32256

Kernel command line: console=ttymxc0,115200 rdinit=/linuxrc enable_wait_mode=off

PID hash table entries: 512 (order: -1, 2048 bytes)

Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)

Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)

Memory: 128MB = 128MB total

Memory: 118124k/118124k available, 144020k reserved, 0K highmem

Virtual kernel memory layout:

    vector  : 0xffff0000 - 0xffff1000   (   4 kB)

    fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)

    DMA     : 0xf4600000 - 0xffe00000   ( 184 MB)

    vmalloc : 0x90800000 - 0xf2000000   (1560 MB)

    lowmem  : 0x80000000 - 0x90000000   ( 256 MB)

    pkmap   : 0x7fe00000 - 0x80000000   (   2 MB)

    modules : 0x7f000000 - 0x7fe00000   (  14 MB)

      .init : 0x80008000 - 0x8003a000   ( 200 kB)

      .text : 0x8003a000 - 0x805aea70   (5587 kB)

      .data : 0x805b0000 - 0x805fe800   ( 314 kB)

       .bss : 0x805fe824 - 0x80629774   ( 172 kB)

SLUB: Genslabs=13, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1

Preemptible hierarchical RCU implementation.

NR_IRQS:624

MXC GPIO hardware

sched_clock: 32 bits at 3000kHz, resolution 333ns, wraps every 1431655ms

Set periph_clk's parent to pll2_pfd_400M!

arm_max_freq=1GHz

MXC_Early serial console at MMIO 0x2020000 (options '115200')

bootconsole [ttymxc0] enabled

Console: colour dummy device 80x30

Calibrating delay loop... 1581.05 BogoMIPS (lpj=7905280)

pid_max: default: 32768 minimum: 301

Mount-cache hash table entries: 512

CPU: Testing write buffer coherency: ok

hw perfevents: enabled with ARMv7 Cortex-A9 PMU driver, 7 counters available

Brought up 1 CPUs

SMP: Total of 1 processors activated (1581.05 BogoMIPS).

print_constraints: dummy:

NET: Registered protocol family 16

print_constraints: vddpu: 725 <--> 1300 mV at 700 mV fast normal

print_constraints: vddcore: 725 <--> 1300 mV at 1150 mV fast normal

print_constraints: vddsoc: 725 <--> 1300 mV at 1200 mV fast normal

print_constraints: vdd2p5: 2000 <--> 2775 mV at 2400 mV fast normal

print_constraints: vdd1p1: 800 <--> 1400 mV at 1100 mV fast normal

print_constraints: vdd3p0: 2625 <--> 3400 mV at 3000 mV fast normal

hw-breakpoint: found 6 breakpoint and 1 watchpoint registers.

hw-breakpoint: 1 breakpoint(s) reserved for watchpoint single-step.

hw-breakpoint: maximum watchpoint size is 4 bytes.

L310 cache controller enabled

l2x0: 16 ways, CACHE_ID 0x410000c8, AUX_CTRL 0x02050000, Cache size: 524288 B

bio: create slab <bio-0> at 0

mxs-dma mxs-dma-apbh: initialized

print_constraints: SPKVDD: 4200 mV

print_constraints: vmmc: 3300 mV

SCSI subsystem initialized

spi_imx imx6q-ecspi.0: probed

usbcore: registered new interface driver usbfs

usbcore: registered new interface driver hub

usbcore: registered new device driver usb

mc_pfuze 1-0008: ID: 0,Full lay: 1 ,Metal lay: 1

mc_pfuze 1-0008: FAB: 0 ,FIN: 0

print_constraints: PFUZE100_SW1A: 300 <--> 1875 mV at 1300 mV

print_constraints: PFUZE100_SW1B: 300 <--> 1875 mV at 300 mV

print_constraints: PFUZE100_SW1C: 300 <--> 1875 mV at 1300 mV

print_constraints: PFUZE100_SW2: 800 <--> 3950 mV at 3150 mV

print_constraints: PFUZE100_SW3A: 400 <--> 1975 mV at 1500 mV

print_constraints: PFUZE100_SW3B: 400 <--> 1975 mV at 1500 mV

print_constraints: PFUZE100_SW4: 800 <--> 3950 mV at 3300 mV

print_constraints: PFUZE100_SWBST: 5000 <--> 5150 mV at 5000 mV

print_constraints: PFUZE100_VSNVS: 1200 <--> 3000 mV at 1800 mV

print_constraints: PFUZE100_VREFDDR: at 750 mV

print_constraints: PFUZE100_VGEN1: 800 <--> 1550 mV at 1200 mV

print_constraints: PFUZE100_VGEN2: 800 <--> 1550 mV at 1500 mV

print_constraints: PFUZE100_VGEN3: 1800 <--> 3300 mV at 1800 mV

print_constraints: PFUZE100_VGEN4: 1800 <--> 3300 mV at 1800 mV

print_constraints: PFUZE100_VGEN5: 1800 <--> 3300 mV at 2500 mV

print_constraints: PFUZE100_VGEN6: 1800 <--> 3300 mV at 2800 mV

imx-ipuv3 imx-ipuv3.0: IPU DMFC NORMAL mode: 1(0~1), 5B(4,5), 5F(6,7)

Advanced Linux Sound Architecture Driver Version 1.0.24.

Bluetooth: Core ver 2.16

NET: Registered protocol family 31

Bluetooth: HCI device and connection manager initialized

Bluetooth: HCI socket layer initialized

Bluetooth: L2CAP socket layer initialized

Bluetooth: SCO socket layer initialized

max17135 2-0048: PMIC MAX17135 for eInk display

i2c-core: driver [max17135] using legacy suspend method

i2c-core: driver [max17135] using legacy resume method

Switching to clocksource mxc_timer1

NET: Registered protocol family 2

IP route cache hash table entries: 1024 (order: 0, 4096 bytes)

TCP established hash table entries: 4096 (order: 3, 32768 bytes)

TCP bind hash table entries: 4096 (order: 3, 49152 bytes)

TCP: Hash tables configured (established 4096 bind 4096)

TCP reno registered

UDP hash table entries: 128 (order: 0, 4096 bytes)

UDP-Lite hash table entries: 128 (order: 0, 4096 bytes)

NET: Registered protocol family 1

RPC: Registered named UNIX socket transport module.

RPC: Registered udp transport module.

RPC: Registered tcp transport module.

RPC: Registered tcp NFSv4.1 backchannel transport module.

Unpacking initramfs...

Freeing initrd memory: 4436K

PMU: registered new PMU device of type 0

Static Power Management for Freescale i.MX6

wait mode is disabled for i.MX6

cpaddr = 90820000 suspend_iram_base=908b4000

PM driver module loaded

IMX usb wakeup probe

cpu regulator mode:ldo_bypass

_regulator_get: get() with no identifier

mx6_cpu_regulator_init: failed to get pu regulator

i.MXC CPU frequency driver

Labels (3)
0 Kudos
Reply
2 Replies

874 Views
igorpadykov
NXP Employee
NXP Employee

Hi Erez

did you updated DDR calibration settings in flash_header.S

https://community.freescale.com/docs/DOC-96412

also one can try to run Uboot/Linux with kernel command line:

ldo_active=on, maxcpus=1

Best regards

igor

0 Kudos
Reply

874 Views
erezsteinberg
Contributor IV

Hi Igor,

Thanks for the answer.

I did update the DDR parameters in the plugin. But, using the 'correct' parameters causes UBoot not to load.

These same parameters work well with another version of Uboot and pass stress-testing at >500MHz. So, this is really weird.

In any case-- I'm discontinuing this effort for now.

0 Kudos
Reply