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

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

 




On Tue, November 26, 2013, Randy wrote:
> Thanks Jaehoon,
> I have noticed that before it, but in dw_mmc driver, I won't meet this
> problem.
> As you can seen in dts, I have defined a clock source.
> Or the clock source what I choose is not correct?
> I don't know how to debug this, I don't know much about it.
> Actually, I don't really understand the contain in chapter 7 of datasheet.
> I am sorry for that.
> Would you like to tell me some more about it?

Can you add the followings for you test?
arch/arm/boot/dts/exynos4412.dtsi
+               clocks = <&clock 301>, <&clock 149>;
+               clock-name = "biu", "ciu";

Thanks,
Seungwon Jeon

> 
> 于 2013年11月26日 12:32, Jaehoon Chung 写道:
> > 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: 于 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>; }; }; };
> >>
> >
> > -- 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
> >
> >
> 
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.12 (GNU/Linux)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
> 
> iQEcBAEBAgAGBQJSlDj0AAoJEPb4VsMIzTziji8H/jgZfK7ZArb6kK74jb/P8vOv
> OIsOw301smAp83LafMd1BWzInkhZnMp+4g/uTawjWDGPw3rJOiu8Qcyr4VmI1r4h
> oXfcVS+p27qAVsMN+11e9fFKu2DsDwxb/aidau6OAAi5+U3h0rHTptRzIzbqbnxp
> 5lOV1eldrnXSRIsUTYmaPVLUcVRAD0p8zcPmOH79XghrcHdTisYA/yjFgu2mQJgE
> QgaDaEgwoFwXrTkg/w+fHHZFdOUHhursSzIGR8HUKirK2Sg2KaPRU+MXPf8nVY8B
> 1MEX7pnI+7feOK20eNEc9H8GmCph8MnjCsY+9DxwxqDeBkP31BhTVGIxK+ajmzw=
> =aRRx
> -----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