Re: linux 3.13-rc1 make dw_mmc-exynos more worse

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




Hi, Randy,

It seems a problem that controller didn't find the clock source.
Also you can see the below message. Did you check the clock source?

> [    1.125000] s3c-sdhci 12550000.sdhci: failed to get io clock

Actually, need to prevent the "null pointer dereference" for clock in dw-mmc.c

And If dw-mmc controller can be used, recommend to use it.
dw-mmc can use DDR mode, but sdhci can't.

Best Regards,
Jaehoon Chung

On 11/26/2013 10:47 AM, randy wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> 于 2013年11月26日 08:41, Tomasz Figa 写道:
>> On Sunday 24 of November 2013 22:18:46 Olof Johansson wrote:
>>> Hi,
>>>
>>> On Sun, Nov 24, 2013 at 4:07 AM, randy <lxr1234@xxxxxxxxxxx>
>>> wrote:
>>>> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
>>>>
>>>> After pull the merge of 3.13-rc1, the dw_mmc-exynos will make
>>>> the boot stock.In 3.13, it is just stocked udev in 3.13 and
>>>> makse udev timeout but kernel report the emmc device is found.
>>>>
>>>> And in the
>>>> Documentation/devicetree/bindings/mmc/exynos-dw-mshc.txt I saw
>>>> that it is need to define which gpio ports that a emmc slot
>>>> use, but when I watched others dts, they use pinctrl, which is
>>>> correct? Here is the log and dts
>>>
>>> [..]
>>>
>>>> =======================log begin =============================
>>> [..]
>>>> [    0.000000] CPU EXYNOS4412 (id 0xe4412011)
>>>
>>> [..]
>>>
>>>> [    1.095000] mmc0: no vmmc regulator found [    1.130000]
>>>> mmc0: SDHCI controller on samsung-hsmmc [12530000.sdhci] using
>>>> ADMA [    1.130000] Synopsys Designware Multimedia Card
>>>> Interface Driver [    1.130000] Unable to handle kernel NULL
>>>> pointer dereference at virtual address 0000002a [    1.130000]
>>>> pgd = c0004000 [    1.130000] [0000002a] *pgd=00000000 [
>>>> 1.135000] Internal error: Oops: 5 [#1] PREEMPT SMP ARM [
>>>> 1.140000] Modules linked in: [    1.140000] CPU: 0 PID: 1 Comm:
>>>> swapper/0 Not tainted 3.13.0-rc1-00008-g584fa45-dirty #3 [
>>>> 1.150000] task: ef0a4000 ti: ef0a8000 task.ti: ef0a8000 [
>>>> 1.155000] PC is at clk_get_rate+0x18/0x5c [    1.160000] LR is
>>>> at clk_prepare_lock+0xc/0xd8 [    1.165000] pc : [<c0319400>]
>>>> lr : [<c0318864>]    psr: a0000113 [    1.165000] sp : ef0a9e20
>>>> ip : ee94eb40  fp : 00000000 [    1.175000] r10: c0571510  r9 :
>>>> ef0a8000  r8 : ef227a10 [    1.180000] r7 : c043544c  r6 :
>>>> fffffffe  r5 : ee94ead0  r4 : fffffffe [    1.185000] r3 :
>>>> ef0a4000  r2 : 00000001  r1 : 000002b9  r0 : 00000001 [
>>>> 1.195000] Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM 
>>>> Segment kernel [    1.200000] Control: 10c5387d  Table:
>>>> 4000404a  DAC: 00000015 [    1.205000] Process swapper/0 (pid:
>>>> 1, stack limit = 0xef0a8240) [    1.210000] Stack: (0xef0a9e20
>>>> to 0xef0aa000) [    1.215000] 9e20: c0308474 ee9ea610 ee94ead0
>>>> c0308488 c0308474 ee9ea610 00000000 c030592c [    1.225000]
>>>> 9e40: ef227a10 00001000 c043544c c020a920 c0838b04 17d78400
>>>> ee9ea610 ef227a00 [    1.235000] 9e60: ef227a10 c05d6b1c
>>>> 00000000 c05d6b1c c05890b0 ef0a8000 c0571510 c0269448 [
>>>> 1.240000] 9e80: c0269430 ef227a10 c061291c c0268088 00000000 
>>>> ef227a10 c05d6b1c ef227a44 [    1.250000] 9ea0: 00000000
>>>> c026822c 00000000 c05d6b1c c02681a0 c02668a8 ef005478 ef212740 
>>>> [    1.255000] 9ec0: c05d6b1c ef2c7900 c05cf438 c0267864
>>>> c0511e38 c05d6b1c 00000006 c05d6b1c [    1.265000] 9ee0:
>>>> 00000006 c059575c c05df580 c026884c 00000000 c05a2e14 00000006
>>>> c00088dc [    1.275000] 9f00: c0603f70 ef163e00 c040e334
>>>> 60000113 c05b5000 a0000113 c05b5054 c05b5050 [    1.280000]
>>>> 9f20: c05df580 c054ad68 c0839c96 c04247b4 00000093 c0035158
>>>> c05b5054 c05a2a20 [    1.290000] 9f40: c050ae2c c054a438
>>>> 00000006 00000006 00000000 c05a2e14 00000006 c059575c [
>>>> 1.300000] 9f60: c05df580 00000093 c0595768 c0571510 00000000 
>>>> c0571c48 00000006 00000006 [    1.305000] 9f80: c0571510
>>>> c003df68 00000000 c0403544 00000000 00000000 00000000 00000000 
>>>> [    1.315000] 9fa0: 00000000 c040354c 00000000 c000e738
>>>> 00000000 00000000 00000000 00000000 [    1.320000] 9fc0:
>>>> 00000000 00000000 00000000 00000000 00000000 00000000 00000000
>>>> 00000000 [    1.330000] 9fe0: 00000000 00000000 00000000
>>>> 00000000 00000013 00000000 be73efa4 ffffbffd [    1.340000]
>>>> [<c0319400>] (clk_get_rate+0x18/0x5c) from [<c0308488>] 
>>>> (dw_mci_exynos_setup_clock+0x14/0x2c) [    1.350000]
>>>> [<c0308488>] (dw_mci_exynos_setup_clock+0x14/0x2c) from 
>>>> [<c030592c>] (dw_mci_probe+0x15c/0xca4) [    1.360000]
>>>> [<c030592c>] (dw_mci_probe+0x15c/0xca4) from [<c0269448>]
>>>> (platform_drv_probe+0x18/0x48) [    1.365000] [<c0269448>]
>>>> (platform_drv_probe+0x18/0x48) from [<c0268088>]
>>>> (driver_probe_device+0x100/0x218) [    1.375000] [<c0268088>]
>>>> (driver_probe_device+0x100/0x218) from [<c026822c>]
>>>> (__driver_attach+0x8c/0x90) [    1.385000] [<c026822c>]
>>>> (__driver_attach+0x8c/0x90) from [<c02668a8>]
>>>> (bus_for_each_dev+0x54/0x88) [    1.395000] [<c02668a8>]
>>>> (bus_for_each_dev+0x54/0x88) from [<c0267864>]
>>>> (bus_add_driver+0xd4/0x1d0) [    1.405000] [<c0267864>]
>>>> (bus_add_driver+0xd4/0x1d0) from [<c026884c>]
>>>> (driver_register+0x78/0xf4) [    1.415000] [<c026884c>]
>>>> (driver_register+0x78/0xf4) from [<c00088dc>]
>>>> (do_one_initcall+0xec/0x148) [    1.420000] [<c00088dc>]
>>>> (do_one_initcall+0xec/0x148) from [<c0571c48>]
>>>> (kernel_init_freeable+0xfc/0x1c8) [    1.430000] [<c0571c48>]
>>>> (kernel_init_freeable+0xfc/0x1c8) from [<c040354c>]
>>>> (kernel_init+0x8/0x110) [    1.440000] [<c040354c>]
>>>> (kernel_init+0x8/0x110) from [<c000e738>] 
>>>> (ret_from_fork+0x14/0x3c) [    1.450000] Code: ebfffd18
>>>> e3540000 01a05004 0a000008 (e594302c)
>>>
>>>
>>> Looks like a clock issue on 4412? I only have 5250 that I boot
>>> test on, no EXYNOS4 coverage at all (I had an Odroid-X but it
>>> wasn't useful due to the very old u-boot it came with so I gave
>>> it away).
>>>
>>> Tomasz, is this something you can reproduce on 4210/4412?
>>
>> Nope. All of our boards (exynos4210-trats, exynos4412-trats2) are 
>> configured to use sdhci-s3c for all MMC slots[1], as at the time
>> they got submitted to mainline, this driver was considered more
>> reliable than dw-mmc. Not sure about today, though.
>>
>> [1] On Exynos4 there is one dw-mmc block and four sdhci-s3c
>> blocks, while there are just four physical busses. Using pin
>> control you can configure any of the four sets of pins to work
>> either using its dedicated sdhci-s3c or the only one dw-mmc.
>>
>> Best regards, Tomasz
>>
>> -- To unsubscribe from this list: send the line "unsubscribe
>> linux-samsung-soc" in the body of a message to
>> majordomo@xxxxxxxxxxxxxxx More majordomo info at
>> http://vger.kernel.org/majordomo-info.html
>>
>>
> Well I don't think it can work this time, maybe my dts is wrong.
> At this time neither emmc nor usb can work.
> ==========================log begin===============================
> [    1.035000] s3c-rtc 10070000.rtc: rtc disabled, re-enabling
> [    1.040000] s3c-rtc 10070000.rtc: rtc core: registered s3c as rtc0
> [    1.050000] device-mapper: ioctl: 4.27.0-ioctl (2013-10-30)
> initialised: dm-devel@xxxxxxxxxx
> [    1.055000] sdhci: Secure Digital Host Controller Interface driver
> [    1.060000] sdhci: Copyright(c) Pierre Ossman
> [    1.065000] s3c-sdhci 12530000.sdhci: clock source 2: mmc_busclk.2
> (100000000 Hz)
> [    1.075000] s3c-sdhci 12530000.sdhci: dummy supplies not allowed
> [    1.080000] mmc0: no vqmmc regulator found
> [    1.085000] s3c-sdhci 12530000.sdhci: dummy supplies not allowed
> [    1.090000] mmc0: no vmmc regulator found
> [    1.125000] mmc0: SDHCI controller on samsung-hsmmc
> [12530000.sdhci] using ADMA
> [    1.125000] s3c-sdhci 12550000.sdhci: failed to get io clock
> [    1.125000] s3c-sdhci: probe of 12550000.sdhci failed with error -2
> [    1.125000] Synopsys Designware Multimedia Card Interface Driver
> [    1.130000] usbcore: registered new interface driver usbhid
> [    1.130000] usbhid: USB HID core driver
> [    1.135000] TCP: cubic registered
> [    1.145000] NET: Registered protocol family 10
> [    1.145000] NET: Registered protocol family 17
> [    1.145000] NET: Registered protocol family 15
> [    1.150000] Key type dns_resolver registered
> [    1.155000] Registering SWP/SWPB emulation handler
> [    1.160000] unable to find transceiver of type USB2 PHY
> [    1.165000] exynos-ehci 12580000.ehci: no platform data or
> transceiver defined
> [    1.175000] platform 12580000.ehci: Driver exynos-ehci requests
> probe deferral
> [    1.175000] mmc0: new high speed SDHC card at address aaaa
> [    1.185000] isa bounce pool size: 16 pages
> [    1.190000] mmcblk0: mmc0:aaaa SU08G 7.40 GiB
> [    1.195000] s3c-rtc 10070000.rtc: setting system clock to
> 2013-01-01 12:06:09 UTC (1357041969)
> [    1.205000] exynos_cpufreq_init: failed to get resource vdd_arm
> [    1.205000]  mmcblk0: p1 p2 p3 p4
> [    1.215000] unable to find transceiver of type USB2 PHY
> [    1.215000] exynos-ehci 12580000.ehci: no platform data or
> transceiver defined
> [    1.225000] platform 12580000.ehci: Driver exynos-ehci requests
> probe deferral
> 
> ==========================log end=================================
> =======================dts==============================================
> /*
>  * Hardkernel's Exynos4412 based tiny4412 1306 board device tree source
>  *
>  * Copyright (c) 2013 Tomoya Gitsufuki <ayaka@xxxxxxxxxxxxxxxx>
>  *
>  * Device tree source file for Friendyarm tiny4412 1306 board which is
> based on
>  * Samsung's Exynos4412 SoC.
>  *
>  * This program is free software; you can redistribute it and/or modify
>  * it under the terms of the GNU General Public License version 2 as
>  * published by the Free Software Foundation.
> */
> 
> /dts-v1/;
> #include "exynos4412.dtsi"
> 
> / {
> 	model = "Friendly Arm Tiny4412 1306 board based on Exynos4412";
> 	compatible = "friendlyarm,tiny4412-1306", "samsung,exynos4412";
> 
> 	memory {
> 		reg = <0x40000000 0x40000000>;
> 	};
> 
> 	chosen {
> 		bootargs ="root=/dev/mmcblk0p1 rootfstype=ext4 rw
> console=ttySAC0,115200 init=/sbin/init";
> 	};
> 
> 	leds {
> 		compatible = "gpio-leds";
> 		led1 {
> 			label = "led1:heart";
> 			gpios = <&gpm4 0 1>;
> 			default-state = "on";
> 			linux,default-trigger = "heartbeat";
> 		};
> 		led2 {
> 			label = "led2:mmc0";
> 			gpios = <&gpm4 1 1>;
> 			default-state = "on";
> 			linux,default-trigger = "mmc0";
> 		};
> 
> 	};
> 
> 	regulators {
> 		compatible = "simple-bus";
> 		#address-cells = <1>;
> 
> 		vemmc_reg: regulator-0 {
> 			compatible = "regulator-fixed";
> 			regulator-name = "VMEM_VDD_2.8V";
> 			regulator-min-microvolt = <2800000>;
> 			regulator-max-microvolt = <2800000>;
> 			gpio = <&gpk0 2 0>;
> 			enable-active-high;
> 		};
> 
> 	};
> 
> /*
> 	mshc@12550000 {
> 		#address-cells = <1>;
> 		#size-cells = <0>;
> 		pinctrl-0 = <&sd4_clk &sd4_cmd &sd4_bus4 &sd4_bus8>;
> 		pinctrl-names = "default";
> 		status = "okay";
> 
> 		vmmc-supply = <&vemmc_reg>;
> 		clocks = <&clock 301>, <&clock 149>;
> 		clocks-name = "dwmci", "sclk_dwmci";
> 		clock-frequency = <400000000>;
> 
> 		num-slots = <1>;
> 		supports-highspeed;
> 		broken-cd;
> 		fifo-depth = <0x80>;
> 		card-detect-delay = <200>;
> 		samsung,dw-mshc-sdr-timing = <2 3>;
> 		samsung,dw-mshc-ddr-timing = <1 2>;
> 
> 		slot@0 {
> 			reg = <0>;
> 			bus-width = <8>;
> 				
> 		};
> 	};
> */
> 
> 	rtc@10070000 {
> 		status = "okay";
> 	};
> 
> 	sdhci@12530000 {
> 		bus-width = <4>;
> 		pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4 &sd2_cd>;
> 		pinctrl-names = "default";
> 		status = "okay";
> 	};
> 
> 	sdhci@1254000 {
> 		bus-width = <4>;
> 		pinctrl-0 = <&sd3_clk &sd3_cmd &sd3_bus4 &sd3_cd>;
> 		pinctrl-names = "default";
> 		status = "okay";
> 	};
> 
> 	sdhci@12550000 {
> 		compatible = "samsung,exynos4210-sdhci";
> 		#address-cells = <1>;
> 		#size-cells = <0>;
> 		reg = <0x12550000 0x1000>;
> 		interrupts = <0 77 0>;
> 		non-removable;
> 		pinctrl-0 = <&sd4_clk &sd4_cmd &sd4_bus4 &sd4_bus8>;
> 		pinctrl-names = "default";
> 		status = "okay";
> 
> 		bus-width = <8>;
> 		vmmc-supply = <&vemmc_reg>;
> 		clocks = <&clock 301>, <&clock 149>;
> 		clocks-name = "dwmci", "sclk_dwmci";
> 		clock-frequency = <400000000>;
> 
> 	};
> 
> 	/* the usb phy of hsic0, hsic1 and otg are in the same place */
> 	usb_phy: otg@125B0000 {
> 		#address-cells = <1>;
> 		#size-cells = <1>;
> 		compatible = "samsung,exynos4210-usbphy";
> 		reg = <0x125B0000 0x100>;
> 		ranges;
> 
> 		clocks = <&clock 2>, <&clock 305>;
> 		clock-names = "xusbxti", "otg";
> 		usbphy-sys {
> 			/* USB device and host PHY_CONTROL registers */
> 			reg = <0x10020704 0x8>;
> 		};
> 	};
> 
> 	ehci@12580000 {
> 		usb-phy = <&usb_phy>;
> 		status = "okay";
> 	};
> 	
> 	ohci@12590000 {
> 		status = "okay";
> 	};
> 
> 
> 	codec@13400000 {
> 		samsung,mfc-r = <0x43000000 0x800000>;
> 		samsung,mfc-l = <0x51000000 0x800000>;
> 		status = "okay";
> 	};
> 
> 	serial@13800000 {
> 		status = "okay";
> 	};
> 
> 	serial@13810000 {
> 		status = "okay";
> 	};
> 
> 	serial@13820000 {
> 		status = "okay";
> 	};
> 
> 	serial@13830000 {
> 		status = "okay";
> 	};
> 
> 	fixed-rate-clocks {
> 		xxti {
> 			compatible = "samsung,clock-xxti";
> 			clock-frequency = <0>;
> 		};
> 
> 		xusbxti {
> 			compatible = "samsung,clock-xusbxti";
> 			clock-frequency = <24000000>;
> 		};
> 	};
> 
> 	i2c@13860000 {
> 		status = "okay";
> 		samsung,i2c-sda-delay = <100>;
> 		samsung,i2c-max-bus-freq = <200000>;
> 
> 		wm8960@10 {
> 			compatible = "wlf,wm8960";
> 			reg = <0x10>;
> 		};
> 	};
> };
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.12 (GNU/Linux)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
> 
> iQEcBAEBAgAGBQJSk/2uAAoJEPb4VsMIzTzirLAH/0H3n2a8s8qvizr+YOOCnLvr
> iiK21Mh/Gi9wLgvpU16oEDiOP5p2da7TUKI7AnIGY48SnBrB+E0C2UVHVn7L/4aX
> cputqr5mEswV3RUOaEg7s1HHbXp249LJ4Z8IByxesO4lVCRGVTcz+i121uDGKrH4
> OoybBl/YuDACo3D1AZShNq+m8lLIAyEUT3UOEPJdxsa1V/Zwf4MdQbY1YMC6Twqs
> kmLPCgKlS7wKeFvpYG/cmWZEG/fFlBiCey3mmJDy6DK+YC6Mq1WEFJEU4zWec3kI
> cJwyA20U+GC5cz7CZfDjkLhMinXnOhz8oP9RGCKlKrz22DlEJd4/mXnHwEK1c1o=
> =GHoW
> -----END PGP SIGNATURE-----
> 

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]
  Powered by Linux