Subject: [PATCH 00/12] ARM: OMAP2 DT clock conversion

From: [email-masked] (Tero Kristo)
Date: Mon, 3 Mar 2014 20:51:42 +0200

On 03/03/2014 08:46 PM, Tony Lindgren wrote:
> * Tero Kristo <[email-masked]> [140303 00:20]:
>> On 02/28/2014 08:33 PM, Tony Lindgren wrote:
>>> * Tero Kristo <[email-masked]> [140228 10:21]:
>>>>
>>>> Hmm, some clock node is broken, might be missing a name or parent
>>>> name for some reason. Can you try to boot with DEBUG enabled so you
>>>> get pr_debug:s out and see which clock is being initialized during
>>>> the crash?
>>>
>>> ...
>>> [    0.000000] ti_dt_clk_init_provider: ti_dt_clk_init_provider: initializing: core_d18_ck
>>> [    0.000000] ti_dt_clk_init_provider: ti_dt_clk_init_provider: initializing: vlynq_mux_fck
>>> [    0.000000] ti_dt_clk_init_provider: ti_dt_clk_init_provider: initializing: vlynq_fck
>>> [    0.000000] Unable to handle kernel NULL pointer dereference at virtual address 00000000
>>> ...
>>>
>>> We really should be registering the clocks lazily as needed BTW. That
>>> leaves out the dependency to DEBUG_LL for seeing any kind of decent
>>> error messages during the booting.
>>>
>>> Regards,
>>>
>>> Tony
>>>
>>
>> Hey Tony,
>>
>> Can you retry with the branch? I just pushed one patch there, seems
>> the parents for the vlynq_mux_fck were somewhat broken (there are
>> holes in the valid mux values list, which hasn't happened with any
>> other mux-clock so far.)
>>
>> If this works, I will rework the series a bit and send v2 out.
>> Alternatively I need to add extra debug info.
>
> Still getting this without omap3:
>
> drivers/built-in.o: In function `of_ti_dpll_setup':
> /home/tmlind/src/linux-2.6/drivers/clk/ti/dpll.c:235: undefined reference to `clkhwops_omap3_dpll'
> drivers/built-in.o:(.rodata+0x1d7a0): undefined reference to `omap3_noncore_dpll_enable'
> drivers/built-in.o:(.rodata+0x1d7a4): undefined reference to `omap3_noncore_dpll_disable'
> drivers/built-in.o:(.rodata+0x1d7b0): undefined reference to `omap3_dpll_recalc'
> drivers/built-in.o:(.rodata+0x1d7c4): undefined reference to `omap3_noncore_dpll_set_rate'
> drivers/built-in.o:(.rodata+0x1d808): undefined reference to `omap3_dpll_recalc'
> drivers/built-in.o:(.rodata+0x1d84c): undefined reference to `omap3_dpll_recalc'
> drivers/built-in.o:(.rodata+0x1d860): undefined reference to `omap3_noncore_dpll_set_rate'
>
> and after enabling omap3 getting this without 2430:
>
> drivers/built-in.o: In function `of_ti_omap2430_interface_clk_setup':
> /home/tmlind/src/linux-2.6/drivers/clk/ti/interface.c:129: undefined reference to `clkhwops_omap2430_i2chs_wait'

Yea, I didn't fix these with the patch I pushed, just the boot problem. 
I will fix these with the next version of the set, in addition to the 
issues reported by Nishanth.

>
> But after enabling those, it now boots on n8x0. The dmesg is below.

This is good, so the culprit was only the vlynq fck.

> Care to post a patch to try dropping the legacy clock data as it should
> now work with the DT clocks only for omap2?

Yes, I can post patches for this for omap2/omap3 also tomorrow.

-Tero

>
> Regards,
>
> Tony
>
>
> [    0.000000] Booting Linux on physical CPU 0x0
> [    0.000000] Linux version 3.14.0-rc5-00014-g2297f72-dirty (tmlind at muffinssi) (gcc version 4.3.5 (Debian 4.3.5-4) ) #388 Mon Mar 3 10:38:58 PST 2014
> [    0.000000] CPU: ARMv6-compatible processor [4107b362] revision 2 (ARMv6TEJ), cr=00c5387d
> [    0.000000] CPU: VIPT aliasing data cache, VIPT aliasing instruction cache
> [    0.000000] Machine model: Nokia N800
> [    0.000000] bootconsole [earlycon0] enabled
> [    0.000000] debug: ignoring loglevel setting.
> [    0.000000] Memory policy: Data cache writeback
> [    0.000000] On node 0 totalpages: 32512
> [    0.000000] free_area_init_node: node 0, pgdat c07969a8, node_mem_map c7df9000
> [    0.000000]   Normal zone: 256 pages used for memmap
> [    0.000000]   Normal zone: 0 pages reserved
> [    0.000000]   Normal zone: 32512 pages, LIFO batch:7
> [    0.000000] CPU: All CPU(s) started in SVC mode.
> [    0.000000] OMAP2420
> [    0.000000]
> [    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: 32256
> [    0.000000] Kernel command line: root=/dev/mmcblk0p2 rootwait console=ttyO2,115200 earlyprintk ignore_loglevel
> [    0.000000] PID hash table entries: 512 (order: -1, 2048 bytes)
> [    0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
> [    0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
> [    0.000000] Memory: 115492K/130048K available (5098K kernel code, 457K rwdata, 1884K rodata, 304K init, 5485K bss, 14556K 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 : 0xc8800000 - 0xff000000   ( 872 MB)
> [    0.000000]     lowmem  : 0xc0000000 - 0xc8000000   ( 128 MB)
> [    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
> [    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
> [    0.000000]       .text : 0xc0008000 - 0xc06d9e10   (6984 kB)
> [    0.000000]       .init : 0xc06da000 - 0xc072601c   ( 305 kB)
> [    0.000000]       .data : 0xc0728000 - 0xc079a690   ( 458 kB)
> [    0.000000]        .bss : 0xc079a690 - 0xc0cf5b10   (5486 kB)
> [    0.000000] NR_IRQS:16 nr_irqs:16 16
> [    0.000000] IRQ: Found an INTC at 0xfa0fe000 (revision 2.0) with 96 interrupts
> [    0.000000] Total of 96 interrupts on 1 active controller
> [    0.000000] Clocking rate (Crystal/DPLL/MPU): 19.2/658/329 MHz
> [    0.000000] OMAP clockevent source: timer1 at 32768 Hz
> [    0.000030] sched_clock: 32 bits at 32kHz, resolution 30517ns, wraps every 65536000000000ns
> [    0.008758] OMAP clocksource: 32k_counter at 32768 Hz
> [    0.014465] hw-breakpoint: CPUID feature registers not supported. Assuming v6 debug is present.
> [    0.026245] Console: colour dummy device 80x30
> [    0.031005] Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar
> [    0.039215] ... MAX_LOCKDEP_SUBCLASSES:  8
> [    0.043609] ... MAX_LOCK_DEPTH:          48
> [    0.048034] ... MAX_LOCKDEP_KEYS:        8191
> [    0.052673] ... CLASSHASH_SIZE:          4096
> [    0.057250] ... MAX_LOCKDEP_ENTRIES:     16384
> [    0.061981] ... MAX_LOCKDEP_CHAINS:      32768
> [    0.066680] ... CHAINHASH_SIZE:          16384
> [    0.071411]  memory used by lock dependency info: 3695 kB
> [    0.077056]  per task-struct memory footprint: 1152 bytes
> [    0.082916] Calibrating delay loop... 324.40 BogoMIPS (lpj=1622016)
> [    0.143737] pid_max: default: 32768 minimum: 301
> [    0.149230] Security Framework initialized
> [    0.153930] Mount-cache hash table entries: 512
> [    0.247467] CPU: Testing write buffer coherency: ok
> [    0.256866] Setting up static identity map for 0x804db430 - 0x804db4a0
> [    0.286865] VFP support v0.3: implementor 41 architecture 1 part 20 variant b rev 2
> [    0.404479] pinctrl core: initialized pinctrl subsystem
> [    0.424957] regulator-dummy: no parameters
> [    0.437042] NET: Registered protocol family 16
> [    0.443664] DMA: preallocated 256 KiB pool for atomic coherent allocations
> [    0.615081] omap_gpio 48018000.gpio: Could not get gpio dbck
> [    0.626770] gpiochip_add: registered GPIOs 0 to 31 on device: gpio
> [    0.636871] OMAP GPIO hardware version 1.8
> [    0.647003] omap_gpio 4801a000.gpio: Could not get gpio dbck
> [    0.655456] gpiochip_add: registered GPIOs 32 to 63 on device: gpio
> [    0.668640] omap_gpio 4801c000.gpio: Could not get gpio dbck
> [    0.677062] gpiochip_add: registered GPIOs 64 to 95 on device: gpio
> [    0.690704] omap_gpio 4801e000.gpio: Could not get gpio dbck
> [    0.698974] gpiochip_add: registered GPIOs 96 to 127 on device: gpio
> [    0.712554] omap-gpmc 6800a000.gpmc: GPMC revision 2.0
> [    0.730529] platform mmci-omap.0: alias fck already exists
> [    0.743072] No ATAGs?
> [    0.745300] hw-breakpoint: found 6 breakpoint and 1 watchpoint registers.
> [    0.752807] hw-breakpoint: maximum watchpoint size is 4 bytes.
> [    0.771942] OMAP DMA hardware revision 2.0
> [    1.001983] bio: create slab <bio-0> at 0
> [    1.308654] omap-dma-engine 48056000.dma-controller: OMAP DMA engine driver
> [    1.336578] SCSI subsystem initialized
> [    1.351013] usbcore: registered new interface driver usbfs
> [    1.358825] usbcore: registered new interface driver hub
> [    1.366912] usbcore: registered new device driver usb
> [    1.391571] omap_i2c 48070000.i2c: bus 0 rev3.3 at 400 kHz
> [    1.401855] omap_i2c 48072000.i2c: bus 1 rev3.3 at 400 kHz
> [    1.433074] Switched to clocksource 32k_counter
> [    1.892578] NET: Registered protocol family 2
> [    1.902313] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
> [    1.910247] TCP bind hash table entries: 1024 (order: 3, 36864 bytes)
> [    1.918212] TCP: Hash tables configured (established 1024 bind 1024)
> [    1.925659] TCP: reno registered
> [    1.929168] UDP hash table entries: 256 (order: 2, 20480 bytes)
> [    1.936157] UDP-Lite hash table entries: 256 (order: 2, 20480 bytes)
> [    1.946411] NET: Registered protocol family 1
> [    1.955749] RPC: Registered named UNIX socket transport module.
> [    1.962005] RPC: Registered udp transport module.
> [    1.967132] RPC: Registered tcp transport module.
> [    1.972106] RPC: Registered tcp NFSv4.1 backchannel transport module.
> [    1.983520] hw perfevents: enabled with v6 PMU driver, 3 counters available
> [    2.018554] futex hash table entries: 256 (order: 1, 10240 bytes)
> [    2.587036] VFS: Disk quotas dquot_6.5.2
> [    2.591400] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
> [    2.603668] NFS: Registering the id_resolver key type
> [    2.610473] Key type id_resolver registered
> [    2.615142] Key type id_legacy registered
> [    2.619812] jffs2: version 2.2. (NAND) (SUMMARY)  ? 2001-2006 Red Hat, Inc.
> [    2.629089] msgmni has been set to 225
> [    2.645568] io scheduler noop registered
> [    2.649749] io scheduler deadline registered
> [    2.654632] io scheduler cfq registered (default)
> [    2.671997] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
> [    2.702178] omap_uart 4806a000.serial: no wakeirq for uart0
> [    2.708282] of_get_named_gpiod_flags: can't parse gpios property of node '/ocp/serial at 4806a000[0]'
> [    2.720428] 4806a000.serial: ttyO0 at MMIO 0x4806a000 (irq = 88, base_baud = 3000000) is a OMAP UART0
> [    2.736633] omap_uart 4806c000.serial: no wakeirq for uart0
> [    2.742553] of_get_named_gpiod_flags: can't parse gpios property of node '/ocp/serial at 4806c000[0]'
> [    2.753723] 4806c000.serial: ttyO1 at MMIO 0x4806c000 (irq = 89, base_baud = 3000000) is a OMAP UART1
> [    2.768005] omap_uart 4806e000.serial: no wakeirq for uart0
> [    2.774078] of_get_named_gpiod_flags: can't parse gpios property of node '/ocp/serial at 4806e000[0]'
> [    2.784912] 4806e000.serial: ttyO2 at MMIO 0x4806e000 (irq = 90, base_baud = 3000000) is a OMAP UART2
> [    2.795776] console [ttyO2] enabled
> [    2.795776] console [ttyO2] enabled
> [    2.803344] bootconsole [earlycon0] disabled
> [    2.803344] bootconsole [earlycon0] disabled
> [    2.825744] omap_rng 480a0000.rng: OMAP Random Number Generator ver. 40
> [    2.935699] brd: module loaded
> [    2.997741] loop: module loaded
> [    3.006866] Menelaus rev 2.2
> [    3.047821] mtdoops: mtd device (mtddev=name/number) must be supplied
> [    3.059997] omap2-onenand omap2-onenand: initializing on CS0, phys base 0x04000000, virtual base c88c0000, freq 54 MHz
> [    3.071533] OneNAND Manufacturer: Samsung (0xec)
> [    3.076538] Muxed OneNAND(DDP) 256MB 1.8V 16-bit (0x48)
> [    3.082092] OneNAND version = 0x0011
> [    3.085968] Chip support all block unlock
> [    3.090332] onenand_wait: controller error = 0x0400
> [    3.097259] Scanning device for bad blocks
> [    3.254333] 6 ofpart partitions found on MTD device omap2-onenand
> [    3.260803] Creating 6 MTD partitions on "omap2-onenand":
> [    3.266662] 0x000000000000-0x000000020000 : "bootloader"
> [    3.292877] 0x000000020000-0x000000080000 : "config"
> [    3.312042] 0x000000080000-0x000000280000 : "kernel"
> [    3.331085] 0x000000280000-0x000000680000 : "initfs"
> [    3.350555] 0x000000680000-0x000010000000 : "rootfs"
> [    3.393737] 0x000000000000-0x000010000000 : "omap2-onenand"
> [    3.474853] usbcore: registered new interface driver asix
> [    3.482421] usbcore: registered new interface driver ax88179_178a
> [    3.490844] usbcore: registered new interface driver cdc_ether
> [    3.498992] usbcore: registered new interface driver r815x
> [    3.506896] usbcore: registered new interface driver smsc95xx
> [    3.514953] usbcore: registered new interface driver net1080
> [    3.522705] usbcore: registered new interface driver cdc_subset
> [    3.530944] usbcore: registered new interface driver zaurus
> [    3.539093] usbcore: registered new interface driver cdc_ncm
> [    3.551727] usbcore: registered new interface driver cdc_wdm
> [    3.559906] usbcore: registered new interface driver usb-storage
> [    3.568420] usbcore: registered new interface driver usbtest
> [    3.583953] mousedev: PS/2 mouse device common for all mice
> [    3.606262] i2c /dev entries driver
> [    3.620574] of_get_named_gpiod_flags exited with status 0
> [    3.626647] of_get_named_gpiod_flags exited with status 0
> [    3.632476] of_get_named_gpiod_flags exited with status 0
> [    3.656005] retu-mfd 2-0001: Retu & Vilma v1.5 found
> [    3.677124] input: retu-pwrbutton as /devices/ocp.3/i2c.4/i2c-2/2-0001/retu-pwrbutton/input/input0
> [    3.695190] Driver for 1-wire Dallas network protocol.
> [    3.724243] mmci-omap mmci-omap.0: no slots
> [    3.728820] platform mmci-omap.0: Driver mmci-omap requests probe deferral
> [    3.745727] usbcore: registered new interface driver usbhid
> [    3.751678] usbhid: USB HID core driver
> [    3.760375] oprofile: using arm/armv6
> [    3.766571] TCP: cubic registered
> [    3.770111] Initializing XFRM netlink socket
> [    3.775299] NET: Registered protocol family 17
> [    3.780242] NET: Registered protocol family 15
> [    3.786315] Key type dns_resolver registered
> [    3.804290] omap_mux_get_by_name: Could not find signal sys_ndmareq0
> [    3.811065] omap_mux_get_by_name: Could not find signal sys_ndmareq1
> [    3.817932] omap_mux_get_by_name: Could not find signal sys_ndmareq2
> [    3.824768] omap_mux_get_by_name: Could not find signal sys_ndmareq3
> [    3.831512] omap_mux_get_by_name: Could not find signal sys_ndmareq4
> [    3.838317] omap_mux_get_by_name: Could not find signal sys_ndmareq5
> [    3.854064] usb_phy_gen_xceiv supply vcc not found, using dummy regulator
> [    3.883972] tusb: prcm2.0 int2.0 gpio3.0 dma3.0 dieid2 rev3.1
> [    3.890167] musb-hdrc: ConfigData=0x06 (UTMI-8, dyn FIFOs, SoftConn)
> [    3.897064] musb-hdrc: MHDRC RTL version 1.400
> [    3.901885] musb-hdrc: setup fifo_mode 4
> [    3.906188] musb-hdrc: 28/31 max ep, 16384/16384 memory
> [    3.912506] musb-hdrc musb-hdrc.0.auto: MUSB HDRC host driver
> [    3.928985] musb-hdrc musb-hdrc.0.auto: new USB bus registered, assigned bus number 1
> [    3.942871] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
> [    3.950256] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
> [    3.958068] usb usb1: Product: MUSB HDRC host driver
> [    3.963439] usb usb1: Manufacturer: Linux 3.14.0-rc5-00014-g2297f72-dirty musb-hcd
> [    3.971466] usb usb1: SerialNumber: musb-hdrc.0.auto
> [    3.992279] hub 1-0:1.0: USB hub found
> [    3.997680] hub 1-0:1.0: 1 port detected
> [    4.022338] TUSB 6010
> [    4.157165] mmci-omap mmci-omap.0: command timeout (CMD52)
> [    4.165161] mmci-omap mmci-omap.0: command timeout (CMD52)
> [    4.196777] mmci-omap mmci-omap.0: command timeout (CMD5)
> [    4.203491] mmci-omap mmci-omap.0: command timeout (CMD5)
> [    4.210144] mmci-omap mmci-omap.0: command timeout (CMD5)
> [    4.219604] mmci-omap mmci-omap.0: command timeout (CMD5)
> [    4.241088] drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
> [    4.353851] Waiting for root device /dev/mmcblk0p2...
> [    4.385711] mmc0: host does not support reading read-only switch. assuming write-enable.
> [    4.395019] mmc0: new SDHC card at address ea4d
> [    4.407897] mmcblk0: mmc0:ea4d SU04G 3.79 GiB
> [    4.428863]  mmcblk0: p1 p2
> [    4.447296] mmci-omap mmci-omap.0: command timeout (CMD52)
> [    4.454101] mmci-omap mmci-omap.0: command timeout (CMD52)
> [    4.464874] mmci-omap mmci-omap.0: command timeout (CMD8)
> [    4.477966] mmci-omap mmci-omap.0: command timeout (CMD5)
> [    4.488250] mmci-omap mmci-omap.0: command timeout (CMD5)
> [    4.498260] mmci-omap mmci-omap.0: command timeout (CMD5)
> [    4.506286] EXT3-fs (mmcblk0p2): recovery required on readonly filesystem
> [    4.513671] EXT3-fs (mmcblk0p2): write access will be enabled during recovery
> [    4.523468] mmci-omap mmci-omap.0: command timeout (CMD5)
> [    4.540527] mmci-omap mmci-omap.0: command timeout (CMD8)
> [    4.547363] kjournald starting.  Commit interval 5 seconds
> [    4.562103] EXT3-fs (mmcblk0p2): recovery complete
> [    4.567413] EXT3-fs (mmcblk0p2): mounted filesystem with ordered data mode
> [    4.577270] VFS: Mounted root (ext3 filesystem) readonly on device 179:2.
> [    4.587280] Freeing unused kernel memory: 304K (c06da000 - c0726000)
> [    4.662048] mmc1: host does not support reading read-only switch. assuming write-enable.
> [    4.671020] mmc1: new SD card at address e624
> [    4.683898] mmcblk1: mmc1:e624 SD128 120 MiB
> [    4.706298]  mmcblk1: p1
> INIT: version 2.86 booting
>