IMX6SL kernel hang, linux kernel(3.0.35)

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

IMX6SL kernel hang, linux kernel(3.0.35)

Jump to solution
4,092 Views
sailfish009
Contributor III

hi

     imx6sl use L3.0.35_4.1.0_130816 to build u-boot,kernel and rootfs.  when system hang-up during booting. it happen always.

    here is the kernel log:

U-Boot 2009.08 (Nov 26 2014 - 03:42:10)

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

Thermal sensor with ratio = 192

Temperature:   41 C, calibration data 0x5bc54369

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

Board: MX6SoloLite-EVK (0x60310): [ POR ]

Boot Device: MMC

I2C:   ready

DRAM:  512 MB

MMC:   FSL_USDHC: 0,FSL_USDHC: 1,FSL_USDHC: 2

In:    serial

Out:   serial

Err:   serial

Found PFUZE100! deviceid=10,revid=11

Net:   got MAC address from IIM: 00:00:00:00:00:00

FEC0 [PRIME]

Hit any key to stop autoboot:  0

mmc1(part 0) is current device

MMC read: dev # 1, block # 2048, count 8192 ... 8192 blocks read: OK

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

   Image Name:   Linux-3.0.35-2666-gbdde708-g939e

   Image Type:   ARM Linux Kernel Image (uncompressed)

   Data Size:    3585132 Bytes =  3.4 MB

   Load Address: 80008000

   Entry Point:  80008000

   Verifying Checksum ... OK

   Loading Kernel Image ... OK

OK

Starting kernel ...

Linux version 3.0.35-2666-gbdde708-g939e548-dirty (sw@ubuntu) (gcc version 4.6.2 20110630 (prerelease) (Freescale MAD -- Linaro 2011.07 -- Built at 2011/08/10 09:20) ) #1 PREEMPT Wed Nov 26 03:52:19 PST 2014

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

CPU: VIPT nonaliasing data cache, VIPT aliasing instruction cache

Machine: Freescale i.MX 6SoloLite EVK Board

Memory policy: ECC disabled, Data cache writeback

CPU identified as i.MX6SoloLite, silicon rev 1.0

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

Kernel command line: console=ttymxc0,115200 root=/dev/mmcblk0p1 rootwait

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

Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)

Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)

Memory: 480MB = 480MB total

Memory: 476052k/476052k available, 48236k reserved, 0K highmem

Virtual kernel memory layout:

    vector  : 0xffff0000 - 0xffff1000   (   4 kB)

    fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)

    DMA     : 0xf4600000 - 0xffe00000   ( 184 MB)

    vmalloc : 0xa0800000 - 0xf2000000   (1304 MB)

    lowmem  : 0x80000000 - 0xa0000000   ( 512 MB)

    pkmap   : 0x7fe00000 - 0x80000000   (   2 MB)

    modules : 0x7f000000 - 0x7fe00000   (  14 MB)

      .init : 0x80008000 - 0x80035000   ( 180 kB)

      .text : 0x80035000 - 0x80a30c1c   (10224 kB)

      .data : 0x80a32000 - 0x80a86760   ( 338 kB)

       .bss : 0x80a86784 - 0x80aab718   ( 148 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 24MHz, resolution 41ns, wraps every 178956ms

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

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 1100 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 0x02030000, Cache size: 262144 B

bio: create slab <bio-0> at 0

print_constraints: vmmc: 3300 mV

print_constraints: SPKVDD: 4325 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

Freescale USB OTG Driver loaded, $Revision: 1.55 $

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

mc_pfuze 0-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 1200 mV

print_constraints: PFUZE100_SW3B: 400 <--> 1975 mV at 1200 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 800 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 1800 mV

i2c i2c-1: Invalid 7-bit I2C address 0x00

i2c i2c-1: Can't create device at 0x00

MIPI CSI2 driver module loaded

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

cfg80211: Calling CRDA to update world regulatory domain

max17135 0-0048: Max17135 PMIC not found!

max17135 regulator init failed: -6

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: 4096 (order: 2, 16384 bytes)

TCP established hash table entries: 16384 (order: 5, 131072 bytes)

TCP bind hash table entries: 16384 (order: 4, 65536 bytes)

TCP: Hash tables configured (established 16384 bind 16384)

TCP reno registered

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

UDP-Lite hash table entries: 256 (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.

etb: probe of etb failed with error -2

etm: probe of etm.0 failed with error -2

Static Power Management for Freescale i.MX6

wait mode is enabled for i.MX6

cpaddr = a0820000 suspend_iram_base=a0840000

PM driver module loaded

IMX usb wakeup probe

add wake up source irq 75

IMX usb wakeup probe

mxc_bt_rfkill driver success loaded

rfkill: BT RF going to : on

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

JFFS2 version 2.2. (NAND) ⓒ 2001-2006 Red Hat, Inc.

msgmni has been set to 929

io scheduler noop registered

io scheduler deadline registered

io scheduler cfq registered (default)

Console: switching to colour frame buffer device 100x30

imx-sdma imx-sdma: loaded firmware 1.1

imx-sdma imx-sdma: initialized

Serial: IMX driver

imx-uart.0: ttymxc0 at MMIO 0x2020000 (irq = 58) is a IMX

console [ttymxc0] enabled, bootconsole disabled

console [ttymxc0] enabled, bootconsole disabled

fsl_rngc fsl_rngc.0: FSL RNGC Registered.

loop: module loaded

m25p80 spi0.0: found m25p05-nonjedec, expected m25p32

m25p80 spi0.0: m25p05-nonjedec (64 Kbytes)

Creating 2 MTD partitions on "m25p32":

0x000000000000-0x000000100000 : "bootloader"

mtd: partition "bootloader" extends beyond the end of device "m25p32" -- size truncated to 0x10000

0x000000010000-0x000000010000 : "kernel"

mtd: partition "kernel" is out of reach -- disabled

vcan: Virtual CAN interface driver

CAN device driver interface

flexcan netdevice driver

FEC Ethernet Driver

fec_enet_mii_bus: probed

ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver

fsl-ehci fsl-ehci.0: Freescale On-Chip EHCI Host Controller

fsl-ehci fsl-ehci.0: new USB bus registered, assigned bus number 1

fsl-ehci fsl-ehci.0: irq 75, io base 0x02184000

fsl-ehci fsl-ehci.0: USB 2.0 started, EHCI 1.00

hub 1-0:1.0: USB hub found

hub 1-0:1.0: 1 port detected

add wake up source irq 74

fsl-ehci fsl-ehci.1: Freescale On-Chip EHCI Host Controller

fsl-ehci fsl-ehci.1: new USB bus registered, assigned bus number 2

fsl-ehci fsl-ehci.1: irq 74, io base 0x02184200

fsl-ehci fsl-ehci.1: USB 2.0 started, EHCI 1.00

hub 2-0:1.0: USB hub found

hub 2-0:1.0: 1 port detected

Initializing USB Mass Storage driver...

usbcore: registered new interface driver usb-storage

USB Mass Storage support registered.

ARC USBOTG Device Controller driver (1 August 2005)

mousedev: PS/2 mouse device common for all mice

input: imx-keypad as /devices/platform/imx-keypad/input/input0

elan - Read Hello Packet Failed

elan-touch: probe of 0-0010 failed with error -22

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

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

snvs_rtc snvs_rtc.0: rtc core: registered snvs_rtc as rtc0

i2c /dev entries driver

Linux video capture interface: v2.00

pxp-v4l2 pxp-v4l2: initialized

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

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

check mma8450 chip ID

mma8450 0-001c: read chip ID 0xfffffffb is not equal to 0xc6!

read chip ID failed

mma8450: probe of 0-001c failed with error -22

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

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

add mma8450 i2c driver

imx2-wdt imx2-wdt.0: IMX2+ Watchdog Timer enabled. timeout=60s (nowayout=1)

Bluetooth: Virtual HCI driver ver 1.3

Bluetooth: HCI UART driver ver 2.2

Bluetooth: HCIATH3K protocol initialized

Bluetooth: Generic Bluetooth USB driver ver 0.6

usbcore: registered new interface driver btusb

sdhci: Secure Digital Host Controller Interface driver

sdhci: Copyright(c) Pierre Ossman

sdhci sdhci-esdhc-imx.1: no card-detect pin available!

mmc0: SDHCI controller on platform [sdhci-esdhc-imx.1] using DMA

mmc1: SDHCI controller on platform [sdhci-esdhc-imx.0] using DMA

sdhci sdhci-esdhc-imx.2: no write-protect pin available!

mmc2: SDHCI controller on platform [sdhci-esdhc-imx.2] using DMA

Galcore version 4.6.9.6622

Thermal calibration data is 0x5bc54369

Thermal sensor with ratio = 192

Anatop Thermal registered as thermal_zone0

anatop_thermal_probe: default cooling device is cpufreq!

dcp dcp.0: DCP crypto enabled.!

usbcore: registered new interface driver usbhid

usbhid: USB HID core driver

usbcore: registered new interface driver snd-usb-audio

mxc_spdif mxc_spdif.0: MXC SPDIF Audio

Cirrus Logic CS42888 ALSA SoC Codec Driver

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

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

mmc0: new high speed DDR MMC card at address 0001

mmcblk0: mmc0:0001 SEM08G 7.39 GiB

mmcblk0boot0: mmc0:0001 SEM08G partition 1 2.00 MiB

mmcblk0boot1: mmc0:0001 SEM08G partition 2 2.00 MiB

mmcblk0: p1

mmcblk0boot1: unknown partition table

mmcblk0boot0: unknown partition table

wm8962 1-001a: Device is not a WM8962, ID 0 != 6243

wm8962 1-001a: asoc: failed to probe CODEC wm8962.1-001a: -22

asoc: failed to instantiate card wm8962-audio: -22

imx_3stack asoc driver

asoc: mxc-spdif <-> imx-spdif-dai.0 mapping ok

Initialize HDMI-audio failed. Load HDMI-video first!

ALSA device list:

  #0: imx-spdif

TCP cubic registered

NET: Registered protocol family 17

can: controller area network core (rev 20090105 abi 8)

NET: Registered protocol family 29

can: raw protocol (rev 20090105)

can: broadcast manager protocol (rev 20090105 t)

Bluetooth: RFCOMM TTY layer initialized

Bluetooth: RFCOMM socket layer initialized

Bluetooth: RFCOMM ver 1.11

Bluetooth: BNEP (Ethernet Emulation) ver 1.3

Bluetooth: BNEP filters: protocol multicast

Bluetooth: HIDP (Human Interface Emulation) ver 1.2

lib80211: common routines for IEEE802.11 drivers

VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4

Bus freq driver module loaded

Bus freq driver Enabled

mxc_dvfs_core_probe

DVFS driver module loaded

Labels (1)
1 Solution
1,608 Views
sailfish009
Contributor III

Thanks, this is very helpful, especially for Yocto version!

i.Mx6SL LPDDR2 Script Aid

PS: [2014-12-20]

i found that real reason that hangs,

my board is customized which is come with 8GB emmc.

and official LTIB build kernel configuration file is NOT worked for my board,

i found out that freescsale FAE company's linux kernel configuration file is different

from freescale legacy LTIB kernel configuration file!!

THE freescsale FAE company's linux kernel configuration file is worked for my board.

View solution in original post

0 Kudos
8 Replies
1,608 Views
igorpadykov
NXP Employee
NXP Employee

Hi Ji

had you updated DDR settings for custom board with results of DDR tool below

(uboot/board/freescale/mx6sl_evk/flash_header.S) ?

i.MX6 DDR Stress Test Tool V1.0.3

Also one can try various kernel boot parameters, given in attached

document, Table 7. Kernel Boot Parameters: such as ip=none

and others.

Best regards

igor

0 Kudos
1,608 Views
sailfish009
Contributor III

it turned out, built bsp image was wrong in some linux environment,

when i build linux kernel in ltib-build-package(with custom emmc patch) from freescale official site, it didn't worked.

uImage size is 3.4MB

i.MX 6SoloLite Evaluation Kit|Freescale

so, i received ltib-build-package(with custom emmc patch) for i.MX6SL  from freescale technical support company in my area.

built the package with no-distclean configuration, it boot without hang-up.

uImage size is 3.3MB

--

PS:

1. tested linux environment were ubuntu 9.04 32bit, 11.04 64bit, 12.04 64bit

2. tried linux kernel 3.0.101 patch set, also didn't worked.

0 Kudos
1,608 Views
igorpadykov
NXP Employee
NXP Employee

probably DDR settings were different in these two

cases: one accidentally works for you, another  - not.

0 Kudos
1,608 Views
sailfish009
Contributor III

not sure, because if i did "make ARCH=arm CROSS_COMPILE=... distclean" in working ltib-build-package.

and build it again "ltib -m scbuild -p kernel", uImage also didn't worked. 3.3MB(O) -> 3.4MB(X)

0 Kudos
1,608 Views
igorpadykov
NXP Employee
NXP Employee

DDR settings are not defined in kernel, they are defined

in uboot dcd header.

1,609 Views
sailfish009
Contributor III

Thanks, this is very helpful, especially for Yocto version!

i.Mx6SL LPDDR2 Script Aid

PS: [2014-12-20]

i found that real reason that hangs,

my board is customized which is come with 8GB emmc.

and official LTIB build kernel configuration file is NOT worked for my board,

i found out that freescsale FAE company's linux kernel configuration file is different

from freescale legacy LTIB kernel configuration file!!

THE freescsale FAE company's linux kernel configuration file is worked for my board.

0 Kudos
1,608 Views
sailfish009
Contributor III

Hi, igor!

no i didn't, so i have tried your suggestion, but,

page 7/23 in i.MX6_DDR_Stress_Tester_User_Guide.pdf.

BOOT_CFG3[5:4] is reserved value, how to check the value?

and stress test result hang-up at first trial in my board.

in reference board, the stress test works fine.

DDR_Stress_Tester.exe -t mx6x -

df scripts\MX6_series_boards\MX6SL_Megrez_boards\MX6SL_MMDC_LPDDR2_register_prog

ramming_aid_v0.9.inc


Would you like to run the DDR Stress Test (y/n)?

Enter desired START freq (135 to 672 MHz), then hit enter.

Note: DDR3 minimum is ~333MHz, do not recommend to go too much below this.

135

  The freq you entered was: 135

Enter desired END freq (135 to 672 MHz), then hit enter.

Make sure this is equal to or greater than start freq

300

  The freq you entered was: 300

Beginning stress test

loop: 1

0 Kudos
1,608 Views
igorpadykov
NXP Employee
NXP Employee

Hi Ji

fuses can be read with below

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

BOOT_CFG3[5-4] configure the lpddr2 mapping mode

'00' Single channel

‘01’ for “Fixed 2x32 map”

'10’ for “4KB interleaving” mode

also please create new thread and provide

more details about you board configuration:

proccesor full name and what DDR memory was used.

Best regards

igor

0 Kudos