AnsweredAssumed Answered

kernel hangs or fails to allocate CMA in galcore with i.MX Solo Sabre

Question asked by vikash patil on Aug 3, 2014
Latest reply on Aug 10, 2016 by hrushinale

Dear All,

 

I am trying to bring up kernel  https://github.com/wandboard-org/linux/tree/wandboard_imx_3.10.17_1.0.0_ga on our customized board using i.MX6 Solo Sabre soc. I am observing following error while booting the kernel. Same kernel works fine on wandboard solo with CMA set to 256MB. Attaching here the kernel configuration I am using.

 

Is there any kernel configuration selection I am missing here? How can I fix this issue? Any suggestions/inputs would be very helpful?

 

*****CMA <= 160MB, I am getting following allocation failure from GAL core driver, however the kernel boots

mmc2: SDHCI controller on 219c000.usdhc [219c000.usdhc] using ADMA

galcore 130000.gpu: Failed to allocate contiguous memory

galcore: probe of 130000.gpu failed with error -12

mxc_vdoa 21e4000.vdoa: i.MX Video Data Order Adapter(VDOA) driver probed

 

*****Full Kernel Log with 256 MB CMA set, kernel doesn't boot and hangs after GAL core loaded:

 

Starting kernel ...

 

Booting Linux on physical CPU 0x0

Linux version 3.10.17-02444-g876e8f1-dirty (vipatil@linux ) (gcc version 4.7.3 20130226 (prerelease) (crosstool-NG linaro-1.13.1-4.7-2013.03-20130313 - Linaro GCC 2013.03) ) #7 Sat Aug 2 16:59:31 IST 2014

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

CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache

Machine: Freescale i.MX6 Quad/DualLite (Device Tree), model: Freescale i.MX6 DualLite SABRE Smart Device Board

cma: CMA: reserved 256 MiB at 20000000

Memory policy: ECC disabled, Data cache writeback

------------[ cut here ]------------

WARNING: at arch/arm/kernel/devtree.c:147 arm_dt_init_cpu_maps+0xa8/0x130()

DT /cpu 2 nodes greater than max cores 1, capping them

Modules linked in:

CPU: 0 PID: 0 Comm: swapper Not tainted 3.10.17-02444-g876e8f1-dirty #7

[<80013a20>] (unwind_backtrace+0x0/0x104) from [<80011df0>] (show_stack+0x20/0x24)

[<80011df0>] (show_stack+0x20/0x24) from [<80409f3c>] (dump_stack+0x20/0x28)

[<80409f3c>] (dump_stack+0x20/0x28) from [<80025e20>] (warn_slowpath_common+0x5c/0x78)

[<80025e20>] (warn_slowpath_common+0x5c/0x78) from [<80025ef8>] (warn_slowpath_fmt+0x40/0x48)

[<80025ef8>] (warn_slowpath_fmt+0x40/0x48) from [<805d4760>] (arm_dt_init_cpu_maps+0xa8/0x130)

[<805d4760>] (arm_dt_init_cpu_maps+0xa8/0x130) from [<805d3fe0>] (setup_arch+0x5bc/0x69c)

[<805d3fe0>] (setup_arch+0x5bc/0x69c) from [<805d0814>] (start_kernel+0x6c/0x310)

[<805d0814>] (start_kernel+0x6c/0x310) from [<10008070>] (0x10008070)

---[ end trace 1b75b31a2719ed1c ]---

CPU: All CPU(s) started in SVC mode.

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

Kernel command line: console=ttymxc0,115200 root=/dev/mmcblk0p2 rootwait rw init=/bin/systemd nosmp earlyprintk debug mem=512M loglevel=7

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: 512MB = 512MB total

Memory: 250000k/250000k available, 274288k reserved, 0K highmem

Virtual kernel memory layout:

    vector  : 0xffff0000 - 0xffff1000   (   4 kB)

    fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)

    vmalloc : 0xa0800000 - 0xff000000   (1512 MB)

    lowmem  : 0x80000000 - 0xa0000000   ( 512 MB)

    modules : 0x7f000000 - 0x80000000   (  16 MB)

      .text : 0x80008000 - 0x805cf3e8   (5917 kB)

      .init : 0x805d0000 - 0x8061a4ec   ( 298 kB)

      .data : 0x8061c000 - 0x80651c10   ( 216 kB)

       .bss : 0x80651c10 - 0x806cb318   ( 486 kB)

SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1

NR_IRQS:16 nr_irqs:16 16

L310 cache controller enabled

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

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

CPU identified as i.MX6DL, silicon rev 1.1

Console: colour dummy device 80x30

Calibrating delay loop... 789.70 BogoMIPS (lpj=3948544)

pid_max: default: 32768 minimum: 301

Mount-cache hash table entries: 512

CPU: Testing write buffer coherency: ok

ftrace: allocating 16491 entries in 49 pages

Setting up static identity map for 0x8040d420 - 0x8040d478

devtmpfs: initialized

pinctrl core: initialized pinctrl subsystem

regulator-dummy: no parameters

NET: Registered protocol family 16

DMA: preallocated 256 KiB pool for atomic coherent allocations

Use WDOG2 as reset source

syscon 20c8000.anatop: regmap [mem 0x020c8000-0x020c8fff] registered

vdd1p1: 800 <--> 1375 mV at 1125 mV

vdd3p0: 2800 <--> 3150 mV at 3000 mV

vdd2p5: 2000 <--> 2750 mV at 2425 mV

cpu: 725 <--> 1450 mV at 1150 mV

vddpu: 725 <--> 1450 mV

vddsoc: 725 <--> 1450 mV at 1200 mV

syscon 20e0000.iomuxc-gpr: regmap [mem 0x020e0000-0x020e0037] registered

syscon 21bc000.ocotp-ctrl: regmap [mem 0x021bc000-0x021bffff] registered

hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.

hw-breakpoint: maximum watchpoint size is 4 bytes.

imx6dl-pinctrl 20e0000.iomuxc: initialized IMX pinctrl driver

bio: create slab <bio-0> at 0

usb_otg_vbus: 5000 mV

usb_h1_vbus: 5000 mV

wm8962-supply: no parameters

mipi_dsi_pwr_on: no parameters

sensor-supply: 3300 mV

SCSI subsystem initialized

usbcore: registered new interface driver usbfs

usbcore: registered new interface driver hub

usbcore: registered new device driver usb

i2c i2c-0: IMX I2C adapter registered

i2c i2c-1: IMX I2C adapter registered

i2c i2c-2: IMX I2C adapter registered

pps_core: LinuxPPS API ver. 1 registered

pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>

PTP clock support registered

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

mxc_mipi_csi2 21dc000.mipi_csi: i.MX MIPI CSI2 driver probed

mxc_mipi_csi2 21dc000.mipi_csi: i.MX MIPI CSI2 dphy version is 0x3130302a

MIPI CSI2 driver module loaded

Switching to clocksource mxc_timer1

NET: Registered protocol family 2

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

TCP bind hash table entries: 4096 (order: 2, 16384 bytes)

TCP: Hash tables configured (established 4096 bind 4096)

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

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

pureg-dummy: no parameters

imx6_busfreq busfreq.15: Busfreq: Cannot set irq affinity irq=139,

imx6_busfreq busfreq.15: Busfreq init of MMDC failed

imx6_busfreq: probe of busfreq.15 failed with error -22

Bus freq driver module loaded

fuse init (API version 7.22)

msgmni has been set to 1000

io scheduler noop registered

io scheduler deadline registered

io scheduler cfq registered (default)

imx-weim 21b8000.weim: WEIM driver registered.

mxc_mipi_dsi 21e0000.mipi: i.MX MIPI DSI driver probed

MIPI DSI driver module loaded

mxc_sdc_fb fb.30: register mxc display driver lcd

mxc_sdc_fb fb.30: 800x480 h_sync,r,l: 20,60,40  v_sync,l,u: 10,10,10 pixclock=27000000 Hz

imx-sdma 20ec000.sdma: no iram assigned, using external mem

imx-sdma 20ec000.sdma: initialized

imx-sdma 20ec000.sdma: loaded firmware 1.1

pfuze100-regulator 1-0008: unrecognized pfuze chip ID!

pfuze100-regulator: probe of 1-0008 failed with error -5

Serial: IMX driver

2020000.serial: ttymxc0 at MMIO 0x2020000 (irq = 58) is a IMX

console [ttymxc0] enabled

serial: Freescale lpuart driver

[drm] Initialized drm 1.1.0 20060810

[drm] Initialized vivante 1.0.0 20120216 on minor 0

brd: module loaded

loop: module loaded

spi_imx 2008000.ecspi: probed

usbcore: registered new interface driver asix

usbcore: registered new interface driver ax88179_178a

usbcore: registered new interface driver cdc_ether

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

usbcore: registered new interface driver usb-storage

ci_hdrc ci_hdrc.0: EHCI Host Controller

ci_hdrc ci_hdrc.0: new USB bus registered, assigned bus number 1

ci_hdrc ci_hdrc.0: USB 2.0 started, EHCI 1.00

hub 1-0:1.0: USB hub found

hub 1-0:1.0: 1 port detected

ci_hdrc ci_hdrc.1: doesn't support gadget

ci_hdrc ci_hdrc.1: EHCI Host Controller

ci_hdrc ci_hdrc.1: new USB bus registered, assigned bus number 2

ci_hdrc ci_hdrc.1: USB 2.0 started, EHCI 1.00

hub 2-0:1.0: USB hub found

hub 2-0:1.0: 1 port detected

mousedev: PS/2 mouse device common for all mice

snvs_rtc 20cc034.snvs-rtc-lp: rtc core: registered 20cc034.snvs-rtc-lp as rtc0

i2c /dev entries driver

cpuidle: using governor ladder

cpuidle: using governor menu

sdhci: Secure Digital Host Controller Interface driver

sdhci: Copyright(c) Pierre Ossman

sdhci-pltfm: SDHCI platform and OF driver helper

mmc0: no vqmmc regulator found

mmc0: no vmmc regulator found

mmc0: SDHCI controller on 2194000.usdhc [2194000.usdhc] using ADMA

mmc1: no vqmmc regulator found

mmc1: no vmmc regulator found

mmc1: SDHCI controller on 2198000.usdhc [2198000.usdhc] using ADMA

mmc2: no vqmmc regulator found

mmc2: no vmmc regulator found

mmc2: SDHCI controller on 219c000.usdhc [219c000.usdhc] using ADMA

Galcore version 4.6.9.9754

usb 1-1: new high-speed USB device number 2 using ci_hdrc

 

 

Regards,

Vikash

Original Attachment has been moved to: config_nl3_f6.zip

Outcomes