Message ID | 1314698171-7937-1-git-send-email-richard.zhu@linaro.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi Richard, again, please use --cover-letter when sending a new series and say what has changed since last time. Otherwise you force reviewers to find out for themselves (which easily makes them ignore the series) Regards, Wolfram
Hello, 2011/8/30 Richard Zhu <richard.zhu@linaro.org>: > Signed-off-by: Richard Zhu <richard.zhu@linaro.org> > --- > arch/arm/mach-mx5/clock-mx51-mx53.c | 19 ++++ > arch/arm/mach-mx5/devices-imx53.h | 4 + > arch/arm/plat-mxc/Makefile | 1 + > arch/arm/plat-mxc/ahci_sata.c | 104 +++++++++++++++++++++++ > arch/arm/plat-mxc/devices/Kconfig | 4 + > arch/arm/plat-mxc/devices/Makefile | 1 + > arch/arm/plat-mxc/devices/platform-ahci-imx.c | 66 ++++++++++++++ > arch/arm/plat-mxc/include/mach/ahci_sata.h | 33 +++++++ > arch/arm/plat-mxc/include/mach/devices-common.h | 10 ++ > 9 files changed, 242 insertions(+), 0 deletions(-) > create mode 100644 arch/arm/plat-mxc/ahci_sata.c > create mode 100644 arch/arm/plat-mxc/devices/platform-ahci-imx.c > create mode 100644 arch/arm/plat-mxc/include/mach/ahci_sata.h The good news are that I have tested this patch series on i.MX53 LOCO board and it seems to work fine here. Thanks. Tested-By: Hector Oron Martinez <hector.oron@gmail.com>
Hi Wolfram: Thanks for your suggestions. Accepted. Hi Hector: Thanks for your help to tests these patches. Best Regards Richard Zhu On 30 August 2011 18:43, Hector Oron <hector.oron@gmail.com> wrote: > Hello, > > 2011/8/30 Richard Zhu <richard.zhu@linaro.org>: >> Signed-off-by: Richard Zhu <richard.zhu@linaro.org> >> --- >> arch/arm/mach-mx5/clock-mx51-mx53.c | 19 ++++ >> arch/arm/mach-mx5/devices-imx53.h | 4 + >> arch/arm/plat-mxc/Makefile | 1 + >> arch/arm/plat-mxc/ahci_sata.c | 104 +++++++++++++++++++++++ >> arch/arm/plat-mxc/devices/Kconfig | 4 + >> arch/arm/plat-mxc/devices/Makefile | 1 + >> arch/arm/plat-mxc/devices/platform-ahci-imx.c | 66 ++++++++++++++ >> arch/arm/plat-mxc/include/mach/ahci_sata.h | 33 +++++++ >> arch/arm/plat-mxc/include/mach/devices-common.h | 10 ++ >> 9 files changed, 242 insertions(+), 0 deletions(-) >> create mode 100644 arch/arm/plat-mxc/ahci_sata.c >> create mode 100644 arch/arm/plat-mxc/devices/platform-ahci-imx.c >> create mode 100644 arch/arm/plat-mxc/include/mach/ahci_sata.h > > The good news are that I have tested this patch series on i.MX53 LOCO > board and it seems to work fine here. Thanks. > > > Tested-By: Hector Oron Martinez <hector.oron@gmail.com> > > -- > Héctor Orón -.. . -... .. .- -. -.. . ...- . .-.. --- .--. . .-. >
Hello, 2011/8/31 Richard Zhu <richard.zhu@linaro.org>: > Hi Hector: > Thanks for your help to tests these patches. Note I rebased this patches against 'imx-features' branch on Sascha's tree. I am noticing some obscure (to me) messages from kernel: [ 6.874694] Adding 9767516k swap on /dev/sda3. Priority:-1 extents:1 across:9767516k [ 7.073106] EXT4-fs (sda2): re-mounted. Opts: errors=remount-ro [ 7.708399] ata1.00: exception Emask 0x12 SAct 0x3 SErr 0x1280500 action 0x6 frozen [ 7.716219] ata1.00: irq_stat 0x08000000, interface fatal error [ 7.722216] ata1: SError: { UnrecovData Proto 10B8B BadCRC TrStaTrns } [ 7.728780] ata1.00: failed command: READ FPDMA QUEUED [ 7.733995] ata1.00: cmd 60/00:00:f2:11:32/01:00:00:00:00/40 tag 0 ncq 131072 in [ 7.734002] res 40/00:04:f2:11:32/00:00:00:00:00/40 Emask 0x12 (ATA bus error) [ 7.749468] ata1.00: status: { DRDY } [ 7.753176] ata1.00: failed command: READ FPDMA QUEUED [ 7.758356] ata1.00: cmd 60/18:08:c2:14:32/00:00:00:00:00/40 tag 1 ncq 12288 in [ 7.758363] res 40/00:04:f2:11:32/00:00:00:00:00/40 Emask 0x12 (ATA bus error) [ 7.773739] ata1.00: status: { DRDY } [ 7.777448] ata1: hard resetting link [ 8.750427] ata1: softreset failed (device not ready) [ 8.755551] ata1: applying PMP SRST workaround and retrying [ 8.960435] ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300) [ 8.981938] ata1.00: configured for UDMA/133 [ 8.986535] ata1: EH complete [ 12.147912] eth0: Freescale FEC PHY driver [Generic PHY] (mii_bus:phy_addr=1:00, irq=-1) [ 12.521870] ata1.00: exception Emask 0x12 SAct 0xf SErr 0x800500 action 0x6 frozen [ 12.529518] ata1.00: irq_stat 0x08000000, interface fatal error [ 12.535546] ata1: SError: { UnrecovData Proto LinkSeq } [ 12.540851] ata1.00: failed command: READ FPDMA QUEUED [ 12.546039] ata1.00: cmd 60/00:00:a2:19:2c/01:00:00:00:00/40 tag 0 ncq 131072 in [ 12.546046] res 40/00:14:7a:aa:2c/00:00:00:00:00/40 Emask 0x12 (ATA bus error) [ 12.561519] ata1.00: status: { DRDY } [ 12.565209] ata1.00: failed command: READ FPDMA QUEUED [ 12.570419] ata1.00: cmd 60/00:08:1a:e9:2c/01:00:00:00:00/40 tag 1 ncq 131072 in [ 12.570426] res 40/00:14:7a:aa:2c/00:00:00:00:00/40 Emask 0x12 (ATA bus error) [ 12.585890] ata1.00: status: { DRDY } [ 12.589578] ata1.00: failed command: READ FPDMA QUEUED [ 12.594776] ata1.00: cmd 60/00:10:7a:aa:2c/01:00:00:00:00/40 tag 2 ncq 131072 in [ 12.594783] res 40/00:14:7a:aa:2c/00:00:00:00:00/40 Emask 0x12 (ATA bus error) [ 12.610240] ata1.00: status: { DRDY } [ 12.613945] ata1.00: failed command: READ FPDMA QUEUED [ 12.619118] ata1.00: cmd 60/e0:18:1a:10:2c/00:00:00:00:00/40 tag 3 ncq 114688 in [ 12.619125] res 40/00:14:7a:aa:2c/00:00:00:00:00/40 Emask 0x12 (ATA bus error) [ 12.634583] ata1.00: status: { DRDY } [ 12.638292] ata1: hard resetting link [ 13.790424] ata1: softreset failed (device not ready) [ 13.795543] ata1: applying PMP SRST workaround and retrying [ 14.000437] ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300) [ 14.021749] ata1.00: configured for UDMA/133 [ 14.026836] ata1: EH complete [ 14.140774] PHY: 1:00 - Link is Up - 100/Full Best regards,
Hi Hector: What's happen before "> [ 7.073106] EXT4-fs (sda2): re-mounted. Opts: errors=remount-ro"? I re-based the patches to Sascha's imx-features branch, my sata device can work. Test sw environment: Sascha's imx-features branch, Test hw environment: iMX53 loco board, 32G sandisk ssd, tftp download the kernel image, and the nfs type rootfs is mounted. loop: module loaded ahci: SSS flag set, parallel bus scan disabled ahci imx53-ahci.0: AHCI 0001.0100 32 slots 1 ports 3 Gbps 0x1 impl platform mode ahci imx53-ahci.0: flags: ncq sntf stag pm led clo only pmp pio slum part ccc scsi0 : ahci_platform ata1: SATA max UDMA/133 mmio [mem 0x10000000-0x10000fff] port 0x100 irq 28 FEC Ethernet Driver fec_enet_mii_bus: probed ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver Initializing USB Mass Storage driver... usbcore: registered new interface driver usb-storage USB Mass Storage support registered. mousedev: PS/2 mouse device common for all mice input: mma8450 as /devices/virtual/input/input0 i2c /dev entries driver imx2-wdt imx2-wdt.0: IMX2+ Watchdog Timer enabled. timeout=60s (nowayout=0) sdhci: Secure Digital Host Controller Interface driver sdhci: Copyright(c) Pierre Ossman sdhci-pltfm: SDHCI platform and OF driver helper mmc0: no vmmc regulator found mmc0: SDHCI controller on sdhci-esdhc-imx53.0 [sdhci-esdhc-imx53.0] using DMA mmc1: no vmmc regulator found mmc1: SDHCI controller on sdhci-esdhc-imx53.2 [sdhci-esdhc-imx53.2] using DMA usbcore: registered new interface driver usbhid usbhid: USB HID core driver TCP cubic registered NET: Registered protocol family 17 Registering the dns_resolver key type VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 2 input: gpio-keys as /devices/platform/gpio-keys/input/input1 drivers/rtc/hctosys.c: unable to open rtc device (rtc0) eth0: Freescale FEC PHY driver [SMSC LAN8710/LAN8720] (mii_bus:phy_addr=1:00, irq=-1) mmc0: host does not support reading read-only switch. assuming write-enable. mmc0: new high speed SDHC card at address 0001 mmcblk0: mmc0:0001 00000 3.79 GiB mmcblk0: p1 p2 p3 ata1: softreset failed (device not ready) ata1: applying PMP SRST workaround and retrying ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300) ata1.00: ATA-8: SanDisk SSD P4 32GB, SSD 8.00, max UDMA/133 ata1.00: 62533296 sectors, multi 1: LBA48 ata1.00: configured for UDMA/133 scsi 0:0:0:0: Direct-Access ATA SanDisk SSD P4 3 SSD PQ: 0 ANSI: 5 sd 0:0:0:0: [sda] 62533296 512-byte logical blocks: (32.0 GB/29.8 GiB) sd 0:0:0:0: [sda] Write Protect is off sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA sda: sda1 sda2 sd 0:0:0:0: [sda] Attached SCSI disk PHY: 1:00 - Link is Up - 100/Full Sending DHCP requests ., OK Best Regards Richard Zhu On 31 August 2011 20:57, Hector Oron <hector.oron@gmail.com> wrote: > Hello, > > 2011/8/31 Richard Zhu <richard.zhu@linaro.org>: >> Hi Hector: >> Thanks for your help to tests these patches. > > Note I rebased this patches against 'imx-features' branch on Sascha's tree. > I am noticing some obscure (to me) messages from kernel: > > [ 6.874694] Adding 9767516k swap on /dev/sda3. Priority:-1 > extents:1 across:9767516k > [ 7.073106] EXT4-fs (sda2): re-mounted. Opts: errors=remount-ro > [ 7.708399] ata1.00: exception Emask 0x12 SAct 0x3 SErr 0x1280500 > action 0x6 frozen > [ 7.716219] ata1.00: irq_stat 0x08000000, interface fatal error > [ 7.722216] ata1: SError: { UnrecovData Proto 10B8B BadCRC TrStaTrns } > [ 7.728780] ata1.00: failed command: READ FPDMA QUEUED > [ 7.733995] ata1.00: cmd 60/00:00:f2:11:32/01:00:00:00:00/40 tag 0 > ncq 131072 in > [ 7.734002] res 40/00:04:f2:11:32/00:00:00:00:00/40 Emask > 0x12 (ATA bus error) > [ 7.749468] ata1.00: status: { DRDY } > [ 7.753176] ata1.00: failed command: READ FPDMA QUEUED > [ 7.758356] ata1.00: cmd 60/18:08:c2:14:32/00:00:00:00:00/40 tag 1 > ncq 12288 in > [ 7.758363] res 40/00:04:f2:11:32/00:00:00:00:00/40 Emask > 0x12 (ATA bus error) > [ 7.773739] ata1.00: status: { DRDY } > [ 7.777448] ata1: hard resetting link > [ 8.750427] ata1: softreset failed (device not ready) > [ 8.755551] ata1: applying PMP SRST workaround and retrying > [ 8.960435] ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300) > [ 8.981938] ata1.00: configured for UDMA/133 > [ 8.986535] ata1: EH complete > [ 12.147912] eth0: Freescale FEC PHY driver [Generic PHY] > (mii_bus:phy_addr=1:00, irq=-1) > [ 12.521870] ata1.00: exception Emask 0x12 SAct 0xf SErr 0x800500 > action 0x6 frozen > [ 12.529518] ata1.00: irq_stat 0x08000000, interface fatal error > [ 12.535546] ata1: SError: { UnrecovData Proto LinkSeq } > [ 12.540851] ata1.00: failed command: READ FPDMA QUEUED > [ 12.546039] ata1.00: cmd 60/00:00:a2:19:2c/01:00:00:00:00/40 tag 0 > ncq 131072 in > [ 12.546046] res 40/00:14:7a:aa:2c/00:00:00:00:00/40 Emask > 0x12 (ATA bus error) > [ 12.561519] ata1.00: status: { DRDY } > [ 12.565209] ata1.00: failed command: READ FPDMA QUEUED > [ 12.570419] ata1.00: cmd 60/00:08:1a:e9:2c/01:00:00:00:00/40 tag 1 > ncq 131072 in > [ 12.570426] res 40/00:14:7a:aa:2c/00:00:00:00:00/40 Emask > 0x12 (ATA bus error) > [ 12.585890] ata1.00: status: { DRDY } > [ 12.589578] ata1.00: failed command: READ FPDMA QUEUED > [ 12.594776] ata1.00: cmd 60/00:10:7a:aa:2c/01:00:00:00:00/40 tag 2 > ncq 131072 in > [ 12.594783] res 40/00:14:7a:aa:2c/00:00:00:00:00/40 Emask > 0x12 (ATA bus error) > [ 12.610240] ata1.00: status: { DRDY } > [ 12.613945] ata1.00: failed command: READ FPDMA QUEUED > [ 12.619118] ata1.00: cmd 60/e0:18:1a:10:2c/00:00:00:00:00/40 tag 3 > ncq 114688 in > [ 12.619125] res 40/00:14:7a:aa:2c/00:00:00:00:00/40 Emask > 0x12 (ATA bus error) > [ 12.634583] ata1.00: status: { DRDY } > [ 12.638292] ata1: hard resetting link > [ 13.790424] ata1: softreset failed (device not ready) > [ 13.795543] ata1: applying PMP SRST workaround and retrying > [ 14.000437] ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300) > [ 14.021749] ata1.00: configured for UDMA/133 > [ 14.026836] ata1: EH complete > [ 14.140774] PHY: 1:00 - Link is Up - 100/Full > > > Best regards, > -- > Héctor Orón -.. . -... .. .- -. -.. . ...- . .-.. --- .--. . .-. >
Hi Hector, I don't have this issue either. Could you verify it's caused by something else? You may try a different SSD. - eric On Wed, Aug 31, 2011 at 8:09 PM, Richard Zhu <richard.zhu@linaro.org> wrote: > Hi Hector: > What's happen before "> [ 7.073106] EXT4-fs (sda2): re-mounted. > Opts: errors=remount-ro"? > I re-based the patches to Sascha's imx-features branch, my sata device can work. > Test sw environment: Sascha's imx-features branch, > Test hw environment: iMX53 loco board, 32G sandisk ssd, tftp download > the kernel image, > and the nfs type rootfs is mounted. > > loop: module loaded > ahci: SSS flag set, parallel bus scan disabled > ahci imx53-ahci.0: AHCI 0001.0100 32 slots 1 ports 3 Gbps 0x1 impl platform mode > ahci imx53-ahci.0: flags: ncq sntf stag pm led clo only pmp pio slum part ccc > scsi0 : ahci_platform > ata1: SATA max UDMA/133 mmio [mem 0x10000000-0x10000fff] port 0x100 irq 28 > FEC Ethernet Driver > fec_enet_mii_bus: probed > ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver > Initializing USB Mass Storage driver... > usbcore: registered new interface driver usb-storage > USB Mass Storage support registered. > mousedev: PS/2 mouse device common for all mice > input: mma8450 as /devices/virtual/input/input0 > i2c /dev entries driver > imx2-wdt imx2-wdt.0: IMX2+ Watchdog Timer enabled. timeout=60s (nowayout=0) > sdhci: Secure Digital Host Controller Interface driver > sdhci: Copyright(c) Pierre Ossman > sdhci-pltfm: SDHCI platform and OF driver helper > mmc0: no vmmc regulator found > mmc0: SDHCI controller on sdhci-esdhc-imx53.0 [sdhci-esdhc-imx53.0] using DMA > mmc1: no vmmc regulator found > mmc1: SDHCI controller on sdhci-esdhc-imx53.2 [sdhci-esdhc-imx53.2] using DMA > usbcore: registered new interface driver usbhid > usbhid: USB HID core driver > TCP cubic registered > NET: Registered protocol family 17 > Registering the dns_resolver key type > VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 2 > input: gpio-keys as /devices/platform/gpio-keys/input/input1 > drivers/rtc/hctosys.c: unable to open rtc device (rtc0) > eth0: Freescale FEC PHY driver [SMSC LAN8710/LAN8720] > (mii_bus:phy_addr=1:00, irq=-1) > mmc0: host does not support reading read-only switch. assuming write-enable. > mmc0: new high speed SDHC card at address 0001 > mmcblk0: mmc0:0001 00000 3.79 GiB > mmcblk0: p1 p2 p3 > ata1: softreset failed (device not ready) > ata1: applying PMP SRST workaround and retrying > ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300) > ata1.00: ATA-8: SanDisk SSD P4 32GB, SSD 8.00, max UDMA/133 > ata1.00: 62533296 sectors, multi 1: LBA48 > ata1.00: configured for UDMA/133 > scsi 0:0:0:0: Direct-Access ATA SanDisk SSD P4 3 SSD PQ: 0 ANSI: 5 > sd 0:0:0:0: [sda] 62533296 512-byte logical blocks: (32.0 GB/29.8 GiB) > sd 0:0:0:0: [sda] Write Protect is off > sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't > support DPO or FUA > sda: sda1 sda2 > sd 0:0:0:0: [sda] Attached SCSI disk > PHY: 1:00 - Link is Up - 100/Full > Sending DHCP requests ., OK > > Best Regards > Richard Zhu > > On 31 August 2011 20:57, Hector Oron <hector.oron@gmail.com> wrote: >> Hello, >> >> 2011/8/31 Richard Zhu <richard.zhu@linaro.org>: >>> Hi Hector: >>> Thanks for your help to tests these patches. >> >> Note I rebased this patches against 'imx-features' branch on Sascha's tree. >> I am noticing some obscure (to me) messages from kernel: >> >> [ 6.874694] Adding 9767516k swap on /dev/sda3. Priority:-1 >> extents:1 across:9767516k >> [ 7.073106] EXT4-fs (sda2): re-mounted. Opts: errors=remount-ro >> [ 7.708399] ata1.00: exception Emask 0x12 SAct 0x3 SErr 0x1280500 >> action 0x6 frozen >> [ 7.716219] ata1.00: irq_stat 0x08000000, interface fatal error >> [ 7.722216] ata1: SError: { UnrecovData Proto 10B8B BadCRC TrStaTrns } >> [ 7.728780] ata1.00: failed command: READ FPDMA QUEUED >> [ 7.733995] ata1.00: cmd 60/00:00:f2:11:32/01:00:00:00:00/40 tag 0 >> ncq 131072 in >> [ 7.734002] res 40/00:04:f2:11:32/00:00:00:00:00/40 Emask >> 0x12 (ATA bus error) >> [ 7.749468] ata1.00: status: { DRDY } >> [ 7.753176] ata1.00: failed command: READ FPDMA QUEUED >> [ 7.758356] ata1.00: cmd 60/18:08:c2:14:32/00:00:00:00:00/40 tag 1 >> ncq 12288 in >> [ 7.758363] res 40/00:04:f2:11:32/00:00:00:00:00/40 Emask >> 0x12 (ATA bus error) >> [ 7.773739] ata1.00: status: { DRDY } >> [ 7.777448] ata1: hard resetting link >> [ 8.750427] ata1: softreset failed (device not ready) >> [ 8.755551] ata1: applying PMP SRST workaround and retrying >> [ 8.960435] ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300) >> [ 8.981938] ata1.00: configured for UDMA/133 >> [ 8.986535] ata1: EH complete >> [ 12.147912] eth0: Freescale FEC PHY driver [Generic PHY] >> (mii_bus:phy_addr=1:00, irq=-1) >> [ 12.521870] ata1.00: exception Emask 0x12 SAct 0xf SErr 0x800500 >> action 0x6 frozen >> [ 12.529518] ata1.00: irq_stat 0x08000000, interface fatal error >> [ 12.535546] ata1: SError: { UnrecovData Proto LinkSeq } >> [ 12.540851] ata1.00: failed command: READ FPDMA QUEUED >> [ 12.546039] ata1.00: cmd 60/00:00:a2:19:2c/01:00:00:00:00/40 tag 0 >> ncq 131072 in >> [ 12.546046] res 40/00:14:7a:aa:2c/00:00:00:00:00/40 Emask >> 0x12 (ATA bus error) >> [ 12.561519] ata1.00: status: { DRDY } >> [ 12.565209] ata1.00: failed command: READ FPDMA QUEUED >> [ 12.570419] ata1.00: cmd 60/00:08:1a:e9:2c/01:00:00:00:00/40 tag 1 >> ncq 131072 in >> [ 12.570426] res 40/00:14:7a:aa:2c/00:00:00:00:00/40 Emask >> 0x12 (ATA bus error) >> [ 12.585890] ata1.00: status: { DRDY } >> [ 12.589578] ata1.00: failed command: READ FPDMA QUEUED >> [ 12.594776] ata1.00: cmd 60/00:10:7a:aa:2c/01:00:00:00:00/40 tag 2 >> ncq 131072 in >> [ 12.594783] res 40/00:14:7a:aa:2c/00:00:00:00:00/40 Emask >> 0x12 (ATA bus error) >> [ 12.610240] ata1.00: status: { DRDY } >> [ 12.613945] ata1.00: failed command: READ FPDMA QUEUED >> [ 12.619118] ata1.00: cmd 60/e0:18:1a:10:2c/00:00:00:00:00/40 tag 3 >> ncq 114688 in >> [ 12.619125] res 40/00:14:7a:aa:2c/00:00:00:00:00/40 Emask >> 0x12 (ATA bus error) >> [ 12.634583] ata1.00: status: { DRDY } >> [ 12.638292] ata1: hard resetting link >> [ 13.790424] ata1: softreset failed (device not ready) >> [ 13.795543] ata1: applying PMP SRST workaround and retrying >> [ 14.000437] ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300) >> [ 14.021749] ata1.00: configured for UDMA/133 >> [ 14.026836] ata1: EH complete >> [ 14.140774] PHY: 1:00 - Link is Up - 100/Full >> >> >> Best regards, >> -- >> Héctor Orón -.. . -... .. .- -. -.. . ...- . .-.. --- .--. . .-. >> > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel >
Hector Oron <hector.oron@gmail.com> writes: > Hello, Hi, > > 2011/8/31 Richard Zhu <richard.zhu@linaro.org>: >> Hi Hector: >> Thanks for your help to tests these patches. > > Note I rebased this patches against 'imx-features' branch on Sascha's tree. > I am noticing some obscure (to me) messages from kernel: Currently testing with probably same checkout of imx-features branch with a sata 3.5" drive. Running badblocks in non destructive write mode and so far, so good (it's slow but it may comes from my drive). Did you test if there was a bad cable or faulty drive PSU ? Arnaud
Hi, 2011/9/1 Richard Zhu <richard.zhu@linaro.org>: > Hi Hector: > What's happen before "> [ 7.073106] EXT4-fs (sda2): re-mounted. > Opts: errors=remount-ro"? Here is my complete dmesg. The system seems to work fine, it is a 1.0TB WD10TPVT SATA disk in a case which provides eSATA and connected to mx53 LOCO with eSATA-to-SATA cable. I have around a Lacie eSATA disk which I might attempt to connect. Linux version 3.1.0-rc3-mx5 (zumbi@enorme) (gcc version 4.4.5 (Debian 4.4.5-8) ) #7 Tue Aug 30 13:17:14 BST 2011 CPU: ARMv7 Processor [412fc085] revision 5 (ARMv7), cr=10c53c7f CPU: VIPT nonaliasing data cache, VIPT aliasing instruction cache Machine: Freescale MX53 LOCO Board Ignoring RAM at b0000000-cfffffff (vmalloc region overlap). Memory policy: ECC disabled, Data cache writeback On node 0 totalpages: 131072 free_area_init_node: node 0, pgdat c0461e08, node_mem_map c04b2000 Normal zone: 1024 pages used for memmap Normal zone: 0 pages reserved Normal zone: 130048 pages, LIFO batch:31 pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768 pcpu-alloc: [0] 0 Built 1 zonelists in Zone order, mobility grouping on. Total pages: 130048 Kernel command line: console=ttymxc0,115200 console=tty1 root=/dev/sda2 video=mxcdi1fb:GBR24,XGA di1_primary tve printk.time=1 [ 0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes) [ 0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes) [ 0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes) [ 0.000000] Memory: 512MB = 512MB total [ 0.000000] Memory: 514948k/514948k available, 9340k 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] DMA : 0xffc00000 - 0xffe00000 ( 2 MB) [ 0.000000] vmalloc : 0xe0800000 - 0xf4000000 ( 312 MB) [ 0.000000] lowmem : 0xc0000000 - 0xe0000000 ( 512 MB) [ 0.000000] modules : 0xbf000000 - 0xc0000000 ( 16 MB) [ 0.000000] .text : 0xc0008000 - 0xc0412000 (4136 kB) [ 0.000000] .init : 0xc0412000 - 0xc0437000 ( 148 kB) [ 0.000000] .data : 0xc0438000 - 0xc0462480 ( 170 kB) [ 0.000000] .bss : 0xc04624a4 - 0xc04b1380 ( 316 kB) [ 0.000000] SLUB: Genslabs=11, HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 [ 0.000000] NR_IRQS:400 [ 0.000000] TrustZone Interrupt Controller (TZIC) initialized [ 0.000000] CPU identified as i.MX53, silicon rev 2.1 [ 0.000000] sched_clock: 32 bits at 55MHz, resolution 18ns, wraps every 77386ms [ 0.000000] Console: colour dummy device 80x30 [ 0.000000] console [tty1] enabled [ 0.000556] Calibrating delay loop... 795.44 BogoMIPS (lpj=3977216) [ 0.040182] pid_max: default: 32768 minimum: 301 [ 0.040450] Mount-cache hash table entries: 512 [ 0.041059] CPU: Testing write buffer coherency: ok [ 0.042459] devtmpfs: initialized [ 0.044791] print_constraints: dummy: [ 0.045120] NET: Registered protocol family 16 [ 0.065856] bio: create slab <bio-0> at 0 [ 0.067168] SCSI subsystem initialized [ 0.067580] libata version 3.00 loaded. [ 0.067989] usbcore: registered new interface driver usbfs [ 0.068174] usbcore: registered new interface driver hub [ 0.068488] usbcore: registered new device driver usb [ 0.070182] Switching to clocksource mxc_timer1 [ 0.080403] Switched to NOHz mode on CPU #0 [ 0.088737] NET: Registered protocol family 2 [ 0.089034] IP route cache hash table entries: 4096 (order: 2, 16384 bytes) [ 0.089503] TCP established hash table entries: 16384 (order: 5, 131072 bytes) [ 0.089861] TCP bind hash table entries: 16384 (order: 4, 65536 bytes) [ 0.090067] TCP: Hash tables configured (established 16384 bind 16384) [ 0.090096] TCP reno registered [ 0.090128] UDP hash table entries: 256 (order: 0, 4096 bytes) [ 0.090168] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) [ 0.090626] NET: Registered protocol family 1 [ 0.091318] RPC: Registered named UNIX socket transport module. [ 0.091381] RPC: Registered udp transport module. [ 0.091407] RPC: Registered tcp transport module. [ 0.091429] RPC: Registered tcp NFSv4.1 backchannel transport module. [ 0.115113] VFS: Disk quotas dquot_6.5.2 [ 0.115483] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes) [ 0.120839] fuse init (API version 7.16) [ 0.121919] msgmni has been set to 1005 [ 0.122544] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 253) [ 0.122618] io scheduler noop registered [ 0.122646] io scheduler deadline registered [ 0.122920] io scheduler cfq registered (default) [ 0.123527] Serial: IMX driver [ 0.123787] imx21-uart.0: ttymxc0 at MMIO 0x53fbc000 (irq = 31) is a IMX [ 0.489212] console [ttymxc0] enabled [ 0.502624] brd: module loaded [ 0.511401] loop: module loaded [ 0.515060] nbd: registered device at major 43 [ 0.532271] ahci: SSS flag set, parallel bus scan disabled [ 0.537878] ahci imx53-ahci.0: AHCI 0001.0100 32 slots 1 ports 3 Gbps 0x1 impl platform mode [ 0.546452] ahci imx53-ahci.0: flags: ncq sntf stag pm led clo only pmp pio slum part ccc [ 0.556008] scsi0 : ahci_platform [ 0.560052] ata1: SATA max UDMA/133 mmio [mem 0x10000000-0x10000fff] port 0x100 irq 28 [ 0.568788] FEC Ethernet Driver [ 0.575892] fec_enet_mii_bus: probed [ 0.580170] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver [ 0.587109] Initializing USB Mass Storage driver... [ 0.592309] usbcore: registered new interface driver usb-storage [ 0.598353] USB Mass Storage support registered. [ 0.603499] mousedev: PS/2 mouse device common for all mice [ 0.609483] i2c /dev entries driver [ 0.614322] imx2-wdt imx2-wdt.0: IMX2+ Watchdog Timer enabled. timeout=60s (nowayout=0) [ 0.623615] device-mapper: uevent: version 1.0.3 [ 0.629223] device-mapper: ioctl: 4.21.0-ioctl (2011-07-06) initialised: dm-devel@redhat.com [ 0.637827] sdhci: Secure Digital Host Controller Interface driver [ 0.644080] sdhci: Copyright(c) Pierre Ossman [ 0.648461] sdhci-pltfm: SDHCI platform and OF driver helper [ 0.654585] mmc0: no vmmc regulator found [ 0.658808] Registered led device: mmc0:: [ 0.659016] mmc0: SDHCI controller on sdhci-esdhc-imx53.0 [sdhci-esdhc-imx53.0] using DMA [ 0.667691] mmc1: no vmmc regulator found [ 0.672020] Registered led device: mmc1:: [ 0.672265] mmc1: SDHCI controller on sdhci-esdhc-imx53.2 [sdhci-esdhc-imx53.2] using DMA [ 0.681037] usbcore: registered new interface driver usbhid [ 0.686655] usbhid: USB HID core driver [ 0.790254] TCP cubic registered [ 0.793596] NET: Registered protocol family 17 [ 0.798190] Registering the dns_resolver key type [ 0.803078] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 2 [ 0.813279] input: gpio-keys as /devices/platform/gpio-keys/input/input0 [ 0.820805] drivers/rtc/hctosys.c: unable to open rtc device (rtc0) [ 0.863099] mmc0: host does not support reading read-only switch. assuming write-enable. [ 0.970967] mmc0: new SD card at address 1234 [ 1.540405] ata1: softreset failed (device not ready) [ 1.545514] ata1: applying PMP SRST workaround and retrying [ 1.750408] ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300) [ 1.764169] ata1.00: ATA-8: WDC WD10TPVT-00U4RT1, 01.01A01, max UDMA/133 [ 1.770981] ata1.00: 1953525168 sectors, multi 0: LBA48 NCQ (depth 31/32) [ 1.786154] ata1.00: configured for UDMA/133 [ 1.791272] scsi 0:0:0:0: Direct-Access ATA WDC WD10TPVT-00U 01.0 PQ: 0 ANSI: 5 [ 1.800460] sd 0:0:0:0: [sda] 1953525168 512-byte logical blocks: (1.00 TB/931 GiB) [ 1.808190] sd 0:0:0:0: [sda] 4096-byte physical blocks [ 1.815016] sd 0:0:0:0: [sda] Write Protect is off [ 1.819878] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00 [ 1.820201] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA [ 1.856631] sda: sda1 sda2 sda3 sda4 [ 1.863666] sd 0:0:0:0: [sda] Attached SCSI disk [ 1.880189] EXT3-fs (sda2): error: couldn't mount because of unsupported optional features (240) [ 1.890482] EXT2-fs (sda2): error: couldn't mount because of unsupported optional features (240) [ 1.932146] EXT4-fs (sda2): warning: maximal mount count reached, running e2fsck is recommended [ 1.959428] EXT4-fs (sda2): mounted filesystem with ordered data mode. Opts: (null) [ 1.967300] VFS: Mounted root (ext4 filesystem) on device 8:2. [ 1.989215] devtmpfs: mounted [ 1.992660] Freeing init memory: 148K [ 3.913577] udev[67]: starting version 164 [ 4.877589] mmcblk0: mmc0:1234 SA02G 1.83 GiB [ 5.040661] mmcblk0: p1 p2 p3 [ 6.847039] Adding 9767516k swap on /dev/sda3. Priority:-1 extents:1 across:9767516k [ 6.987841] EXT4-fs (sda2): re-mounted. Opts: errors=remount-ro [ 13.647889] kjournald starting. Commit interval 5 seconds [ 13.654619] EXT3-fs (dm-0): using internal journal [ 13.659490] EXT3-fs (dm-0): mounted filesystem with ordered data mode [ 15.143077] eth0: Freescale FEC PHY driver [Generic PHY] (mii_bus:phy_addr=1:00, irq=-1) [ 17.140873] PHY: 1:00 - Link is Up - 100/Full [ 17.329274] kjournald starting. Commit interval 5 seconds [ 17.335840] EXT3-fs (dm-3): using internal journal [ 17.340799] EXT3-fs (dm-3): mounted filesystem with ordered data mode [ 33.313977] sshd (855): /proc/855/oom_adj is deprecated, please use /proc/855/oom_score_adj instead. [ 3867.337774] kjournald starting. Commit interval 5 seconds [ 3867.344328] EXT3-fs (dm-7): using internal journal [ 3867.349195] EXT3-fs (dm-7): mounted filesystem with ordered data mode [ 3882.857122] ata1.00: exception Emask 0x12 SAct 0x1 SErr 0x1280501 action 0x6 frozen [ 3882.864931] ata1.00: irq_stat 0x08000000, interface fatal error [ 3882.870928] ata1: SError: { RecovData UnrecovData Proto 10B8B BadCRC TrStaTrns } [ 3882.878367] ata1.00: failed command: READ FPDMA QUEUED [ 3882.883582] ata1.00: cmd 60/c8:00:d0:8a:c4/00:00:0f:00:00/40 tag 0 ncq 102400 in [ 3882.883590] res 40/00:04:d0:8a:c4/00:00:0f:00:00/40 Emask 0x12 (ATA bus error) [ 3882.899063] ata1.00: status: { DRDY } [ 3882.902802] ata1: hard resetting link [ 3883.870400] ata1: softreset failed (device not ready) [ 3883.875515] ata1: applying PMP SRST workaround and retrying [ 3884.080465] ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300) [ 3884.102097] ata1.00: configured for UDMA/133 [ 3884.106635] ata1: EH complete [ 3934.010542] ata1.00: exception Emask 0x0 SAct 0xff SErr 0x0 action 0x6 frozen [ 3934.017759] ata1.00: failed command: READ FPDMA QUEUED [ 3934.023030] ata1.00: cmd 60/88:00:18:66:c7/00:00:0f:00:00/40 tag 0 ncq 69632 in [ 3934.023037] res 40/00:04:d0:8a:c4/00:00:0f:00:00/40 Emask 0x4 (timeout) [ 3934.038014] ata1.00: status: { DRDY } [ 3934.041769] ata1.00: failed command: WRITE FPDMA QUEUED [ 3934.047042] ata1.00: cmd 61/38:08:d8:2c:5a/00:00:12:00:00/40 tag 1 ncq 28672 out [ 3934.047051] res 40/00:00:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout) [ 3934.062081] ata1.00: status: { DRDY } [ 3934.065782] ata1.00: failed command: WRITE FPDMA QUEUED [ 3934.071103] ata1.00: cmd 61/20:10:90:67:90/00:00:09:00:00/40 tag 2 ncq 16384 out [ 3934.071113] res 40/00:00:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout) [ 3934.085984] ata1.00: status: { DRDY } [ 3934.089671] ata1.00: failed command: WRITE FPDMA QUEUED [ 3934.094963] ata1.00: cmd 61/08:18:40:a7:8e/00:00:09:00:00/40 tag 3 ncq 4096 out [ 3934.094971] res 40/00:00:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout) [ 3934.109735] ata1.00: status: { DRDY } [ 3934.113450] ata1.00: failed command: WRITE FPDMA QUEUED [ 3934.118711] ata1.00: cmd 61/08:20:40:27:8f/00:00:09:00:00/40 tag 4 ncq 4096 out [ 3934.118721] res 40/00:00:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout) [ 3934.133489] ata1.00: status: { DRDY } [ 3934.137172] ata1.00: failed command: WRITE FPDMA QUEUED [ 3934.142457] ata1.00: cmd 61/08:28:40:67:8f/00:00:09:00:00/40 tag 5 ncq 4096 out [ 3934.142465] res 40/00:00:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout) [ 3934.157251] ata1.00: status: { DRDY } [ 3934.160972] ata1.00: failed command: WRITE FPDMA QUEUED [ 3934.166239] ata1.00: cmd 61/08:30:40:a7:8f/00:00:09:00:00/40 tag 6 ncq 4096 out [ 3934.166245] res 40/00:00:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout) [ 3934.181013] ata1.00: status: { DRDY } [ 3934.184700] ata1.00: failed command: WRITE FPDMA QUEUED [ 3934.189959] ata1.00: cmd 61/60:38:4a:f3:e1/00:00:02:00:00/40 tag 7 ncq 49152 out [ 3934.189966] res 40/00:00:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout) [ 3934.204822] ata1.00: status: { DRDY } [ 3934.208535] ata1: hard resetting link [ 3935.180443] ata1: softreset failed (device not ready) [ 3935.185548] ata1: applying PMP SRST workaround and retrying [ 3935.390417] ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300) [ 3935.412020] ata1.00: configured for UDMA/133 [ 3935.416479] ata1.00: device reported invalid CHS sector 0 [ 3935.421985] ata1.00: device reported invalid CHS sector 0 [ 3935.427424] ata1.00: device reported invalid CHS sector 0 [ 3935.432893] ata1.00: device reported invalid CHS sector 0 [ 3935.438326] ata1.00: device reported invalid CHS sector 0 [ 3935.443788] ata1.00: device reported invalid CHS sector 0 [ 3935.449221] ata1.00: device reported invalid CHS sector 0 [ 3935.454728] ata1: EH complete [ 3950.155859] ata1.00: exception Emask 0x12 SAct 0x1 SErr 0x80500 action 0x6 frozen [ 3950.163510] ata1.00: irq_stat 0x08000000, interface fatal error [ 3950.169469] ata1: SError: { UnrecovData Proto 10B8B } [ 3950.174597] ata1.00: failed command: READ FPDMA QUEUED [ 3950.179788] ata1.00: cmd 60/00:00:28:97:71/01:00:0f:00:00/40 tag 0 ncq 131072 in [ 3950.179796] res 40/00:04:28:97:71/00:00:0f:00:00/40 Emask 0x12 (ATA bus error) [ 3950.195275] ata1.00: status: { DRDY } [ 3950.198992] ata1: hard resetting link [ 3951.380403] ata1: softreset failed (device not ready) [ 3951.385523] ata1: applying PMP SRST workaround and retrying [ 3951.590410] ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300) [ 3951.612472] ata1.00: configured for UDMA/133 [ 3951.617042] ata1: EH complete [ 3952.305676] ata1: limiting SATA link speed to 1.5 Gbps [ 3952.310994] ata1.00: exception Emask 0x12 SAct 0x1 SErr 0x1280500 action 0x6 frozen [ 3952.318692] ata1.00: irq_stat 0x08000000, interface fatal error [ 3952.324685] ata1: SError: { UnrecovData Proto 10B8B BadCRC TrStaTrns } [ 3952.331283] ata1.00: failed command: READ FPDMA QUEUED [ 3952.336469] ata1.00: cmd 60/00:00:28:9f:71/01:00:0f:00:00/40 tag 0 ncq 131072 in [ 3952.336477] res 40/00:04:28:9f:71/00:00:0f:00:00/40 Emask 0x12 (ATA bus error) [ 3952.351953] ata1.00: status: { DRDY } [ 3952.355667] ata1: hard resetting link [ 3953.360414] ata1: softreset failed (device not ready) [ 3953.365537] ata1: applying PMP SRST workaround and retrying [ 3953.570412] ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 310) [ 3953.592363] ata1.00: configured for UDMA/133 [ 3953.596938] ata1: EH complete [ 4479.040495] ata1.00: exception Emask 0x0 SAct 0x2 SErr 0x0 action 0x6 frozen [ 4479.047622] ata1.00: failed command: WRITE FPDMA QUEUED [ 4479.052947] ata1.00: cmd 61/10:08:4a:f9:e1/00:00:02:00:00/40 tag 1 ncq 8192 out [ 4479.052955] res 40/00:00:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout) [ 4479.067740] ata1.00: status: { DRDY } [ 4479.071480] ata1: hard resetting link [ 4480.040403] ata1: softreset failed (device not ready) [ 4480.045513] ata1: applying PMP SRST workaround and retrying [ 4480.250423] ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 310) [ 4480.272519] ata1.00: configured for UDMA/133 [ 4480.276866] ata1.00: device reported invalid CHS sector 0 [ 4480.282410] ata1: EH complete [52367.370517] ata1.00: exception Emask 0x10 SAct 0x1 SErr 0x280100 action 0x6 frozen [52367.378167] ata1.00: irq_stat 0x08000000, interface fatal error [52367.384188] ata1: SError: { UnrecovData 10B8B BadCRC } [52367.389366] ata1.00: failed command: READ FPDMA QUEUED [52367.394582] ata1.00: cmd 60/00:00:fa:c6:36/02:00:00:00:00/40 tag 0 ncq 262144 in [52367.394592] res 40/00:04:fa:c6:36/00:00:00:00:00/40 Emask 0x10 (ATA bus error) [52367.410065] ata1.00: status: { DRDY } [52367.413800] ata1: hard resetting link [52368.380402] ata1: softreset failed (device not ready) [52368.385506] ata1: applying PMP SRST workaround and retrying [52368.590410] ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 310) [52368.612592] ata1.00: configured for UDMA/133 [52368.617347] ata1: EH complete Best regards,
On Tue, Sep 6, 2011 at 1:46 AM, Hector Oron <hector.oron@gmail.com> wrote: > Hi, > > 2011/9/1 Richard Zhu <richard.zhu@linaro.org>: >> Hi Hector: >> What's happen before "> [ 7.073106] EXT4-fs (sda2): re-mounted. >> Opts: errors=remount-ro"? > > Here is my complete dmesg. The system seems to work fine, it is a > 1.0TB WD10TPVT SATA disk in a case which provides eSATA and connected > to mx53 LOCO with eSATA-to-SATA cable. Is it possible that it's caused by this converter? Do you have a separate SATA power supply that could help test the disk directly connected to mx53loco? > I have around a Lacie eSATA > disk which I might attempt to connect. > > Linux version 3.1.0-rc3-mx5 (zumbi@enorme) (gcc version 4.4.5 (Debian > 4.4.5-8) ) #7 Tue Aug 30 13:17:14 BST 2011 > CPU: ARMv7 Processor [412fc085] revision 5 (ARMv7), cr=10c53c7f > CPU: VIPT nonaliasing data cache, VIPT aliasing instruction cache > Machine: Freescale MX53 LOCO Board > Ignoring RAM at b0000000-cfffffff (vmalloc region overlap). > Memory policy: ECC disabled, Data cache writeback > On node 0 totalpages: 131072 > free_area_init_node: node 0, pgdat c0461e08, node_mem_map c04b2000 > Normal zone: 1024 pages used for memmap > Normal zone: 0 pages reserved > Normal zone: 130048 pages, LIFO batch:31 > pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768 > pcpu-alloc: [0] 0 > Built 1 zonelists in Zone order, mobility grouping on. Total pages: 130048 > Kernel command line: console=ttymxc0,115200 console=tty1 > root=/dev/sda2 video=mxcdi1fb:GBR24,XGA di1_primary tve printk.time=1 > [ 0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes) > [ 0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes) > [ 0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes) > [ 0.000000] Memory: 512MB = 512MB total > [ 0.000000] Memory: 514948k/514948k available, 9340k 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] DMA : 0xffc00000 - 0xffe00000 ( 2 MB) > [ 0.000000] vmalloc : 0xe0800000 - 0xf4000000 ( 312 MB) > [ 0.000000] lowmem : 0xc0000000 - 0xe0000000 ( 512 MB) > [ 0.000000] modules : 0xbf000000 - 0xc0000000 ( 16 MB) > [ 0.000000] .text : 0xc0008000 - 0xc0412000 (4136 kB) > [ 0.000000] .init : 0xc0412000 - 0xc0437000 ( 148 kB) > [ 0.000000] .data : 0xc0438000 - 0xc0462480 ( 170 kB) > [ 0.000000] .bss : 0xc04624a4 - 0xc04b1380 ( 316 kB) > [ 0.000000] SLUB: Genslabs=11, HWalign=64, Order=0-3, MinObjects=0, > CPUs=1, Nodes=1 > [ 0.000000] NR_IRQS:400 > [ 0.000000] TrustZone Interrupt Controller (TZIC) initialized > [ 0.000000] CPU identified as i.MX53, silicon rev 2.1 > [ 0.000000] sched_clock: 32 bits at 55MHz, resolution 18ns, wraps > every 77386ms > [ 0.000000] Console: colour dummy device 80x30 > [ 0.000000] console [tty1] enabled > [ 0.000556] Calibrating delay loop... 795.44 BogoMIPS (lpj=3977216) > [ 0.040182] pid_max: default: 32768 minimum: 301 > [ 0.040450] Mount-cache hash table entries: 512 > [ 0.041059] CPU: Testing write buffer coherency: ok > [ 0.042459] devtmpfs: initialized > [ 0.044791] print_constraints: dummy: > [ 0.045120] NET: Registered protocol family 16 > [ 0.065856] bio: create slab <bio-0> at 0 > [ 0.067168] SCSI subsystem initialized > [ 0.067580] libata version 3.00 loaded. > [ 0.067989] usbcore: registered new interface driver usbfs > [ 0.068174] usbcore: registered new interface driver hub > [ 0.068488] usbcore: registered new device driver usb > [ 0.070182] Switching to clocksource mxc_timer1 > [ 0.080403] Switched to NOHz mode on CPU #0 > [ 0.088737] NET: Registered protocol family 2 > [ 0.089034] IP route cache hash table entries: 4096 (order: 2, 16384 bytes) > [ 0.089503] TCP established hash table entries: 16384 (order: 5, > 131072 bytes) > [ 0.089861] TCP bind hash table entries: 16384 (order: 4, 65536 bytes) > [ 0.090067] TCP: Hash tables configured (established 16384 bind 16384) > [ 0.090096] TCP reno registered > [ 0.090128] UDP hash table entries: 256 (order: 0, 4096 bytes) > [ 0.090168] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) > [ 0.090626] NET: Registered protocol family 1 > [ 0.091318] RPC: Registered named UNIX socket transport module. > [ 0.091381] RPC: Registered udp transport module. > [ 0.091407] RPC: Registered tcp transport module. > [ 0.091429] RPC: Registered tcp NFSv4.1 backchannel transport module. > [ 0.115113] VFS: Disk quotas dquot_6.5.2 > [ 0.115483] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes) > [ 0.120839] fuse init (API version 7.16) > [ 0.121919] msgmni has been set to 1005 > [ 0.122544] Block layer SCSI generic (bsg) driver version 0.4 > loaded (major 253) > [ 0.122618] io scheduler noop registered > [ 0.122646] io scheduler deadline registered > [ 0.122920] io scheduler cfq registered (default) > [ 0.123527] Serial: IMX driver > [ 0.123787] imx21-uart.0: ttymxc0 at MMIO 0x53fbc000 (irq = 31) is a IMX > [ 0.489212] console [ttymxc0] enabled > [ 0.502624] brd: module loaded > [ 0.511401] loop: module loaded > [ 0.515060] nbd: registered device at major 43 > [ 0.532271] ahci: SSS flag set, parallel bus scan disabled > [ 0.537878] ahci imx53-ahci.0: AHCI 0001.0100 32 slots 1 ports 3 > Gbps 0x1 impl platform mode > [ 0.546452] ahci imx53-ahci.0: flags: ncq sntf stag pm led clo only > pmp pio slum part ccc > [ 0.556008] scsi0 : ahci_platform > [ 0.560052] ata1: SATA max UDMA/133 mmio [mem > 0x10000000-0x10000fff] port 0x100 irq 28 > [ 0.568788] FEC Ethernet Driver > [ 0.575892] fec_enet_mii_bus: probed > [ 0.580170] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver > [ 0.587109] Initializing USB Mass Storage driver... > [ 0.592309] usbcore: registered new interface driver usb-storage > [ 0.598353] USB Mass Storage support registered. > [ 0.603499] mousedev: PS/2 mouse device common for all mice > [ 0.609483] i2c /dev entries driver > [ 0.614322] imx2-wdt imx2-wdt.0: IMX2+ Watchdog Timer enabled. > timeout=60s (nowayout=0) > [ 0.623615] device-mapper: uevent: version 1.0.3 > [ 0.629223] device-mapper: ioctl: 4.21.0-ioctl (2011-07-06) > initialised: dm-devel@redhat.com > [ 0.637827] sdhci: Secure Digital Host Controller Interface driver > [ 0.644080] sdhci: Copyright(c) Pierre Ossman > [ 0.648461] sdhci-pltfm: SDHCI platform and OF driver helper > [ 0.654585] mmc0: no vmmc regulator found > [ 0.658808] Registered led device: mmc0:: > [ 0.659016] mmc0: SDHCI controller on sdhci-esdhc-imx53.0 > [sdhci-esdhc-imx53.0] using DMA > [ 0.667691] mmc1: no vmmc regulator found > [ 0.672020] Registered led device: mmc1:: > [ 0.672265] mmc1: SDHCI controller on sdhci-esdhc-imx53.2 > [sdhci-esdhc-imx53.2] using DMA > [ 0.681037] usbcore: registered new interface driver usbhid > [ 0.686655] usbhid: USB HID core driver > [ 0.790254] TCP cubic registered > [ 0.793596] NET: Registered protocol family 17 > [ 0.798190] Registering the dns_resolver key type > [ 0.803078] VFP support v0.3: implementor 41 architecture 3 part 30 > variant c rev 2 > [ 0.813279] input: gpio-keys as /devices/platform/gpio-keys/input/input0 > [ 0.820805] drivers/rtc/hctosys.c: unable to open rtc device (rtc0) > [ 0.863099] mmc0: host does not support reading read-only switch. > assuming write-enable. > [ 0.970967] mmc0: new SD card at address 1234 > [ 1.540405] ata1: softreset failed (device not ready) > [ 1.545514] ata1: applying PMP SRST workaround and retrying > [ 1.750408] ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300) > [ 1.764169] ata1.00: ATA-8: WDC WD10TPVT-00U4RT1, 01.01A01, max UDMA/133 > [ 1.770981] ata1.00: 1953525168 sectors, multi 0: LBA48 NCQ (depth 31/32) > [ 1.786154] ata1.00: configured for UDMA/133 > [ 1.791272] scsi 0:0:0:0: Direct-Access ATA WDC > WD10TPVT-00U 01.0 PQ: 0 ANSI: 5 > [ 1.800460] sd 0:0:0:0: [sda] 1953525168 512-byte logical blocks: > (1.00 TB/931 GiB) > [ 1.808190] sd 0:0:0:0: [sda] 4096-byte physical blocks > [ 1.815016] sd 0:0:0:0: [sda] Write Protect is off > [ 1.819878] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00 > [ 1.820201] sd 0:0:0:0: [sda] Write cache: enabled, read cache: > enabled, doesn't support DPO or FUA > [ 1.856631] sda: sda1 sda2 sda3 sda4 > [ 1.863666] sd 0:0:0:0: [sda] Attached SCSI disk > [ 1.880189] EXT3-fs (sda2): error: couldn't mount because of > unsupported optional features (240) > [ 1.890482] EXT2-fs (sda2): error: couldn't mount because of > unsupported optional features (240) > [ 1.932146] EXT4-fs (sda2): warning: maximal mount count reached, > running e2fsck is recommended > [ 1.959428] EXT4-fs (sda2): mounted filesystem with ordered data > mode. Opts: (null) > [ 1.967300] VFS: Mounted root (ext4 filesystem) on device 8:2. > [ 1.989215] devtmpfs: mounted > [ 1.992660] Freeing init memory: 148K > [ 3.913577] udev[67]: starting version 164 > [ 4.877589] mmcblk0: mmc0:1234 SA02G 1.83 GiB > [ 5.040661] mmcblk0: p1 p2 p3 > [ 6.847039] Adding 9767516k swap on /dev/sda3. Priority:-1 > extents:1 across:9767516k > [ 6.987841] EXT4-fs (sda2): re-mounted. Opts: errors=remount-ro > [ 13.647889] kjournald starting. Commit interval 5 seconds > [ 13.654619] EXT3-fs (dm-0): using internal journal > [ 13.659490] EXT3-fs (dm-0): mounted filesystem with ordered data mode > [ 15.143077] eth0: Freescale FEC PHY driver [Generic PHY] > (mii_bus:phy_addr=1:00, irq=-1) > [ 17.140873] PHY: 1:00 - Link is Up - 100/Full > [ 17.329274] kjournald starting. Commit interval 5 seconds > [ 17.335840] EXT3-fs (dm-3): using internal journal > [ 17.340799] EXT3-fs (dm-3): mounted filesystem with ordered data mode > [ 33.313977] sshd (855): /proc/855/oom_adj is deprecated, please use > /proc/855/oom_score_adj instead. > [ 3867.337774] kjournald starting. Commit interval 5 seconds > [ 3867.344328] EXT3-fs (dm-7): using internal journal > [ 3867.349195] EXT3-fs (dm-7): mounted filesystem with ordered data mode > [ 3882.857122] ata1.00: exception Emask 0x12 SAct 0x1 SErr 0x1280501 > action 0x6 frozen > [ 3882.864931] ata1.00: irq_stat 0x08000000, interface fatal error > [ 3882.870928] ata1: SError: { RecovData UnrecovData Proto 10B8B > BadCRC TrStaTrns } > [ 3882.878367] ata1.00: failed command: READ FPDMA QUEUED > [ 3882.883582] ata1.00: cmd 60/c8:00:d0:8a:c4/00:00:0f:00:00/40 tag 0 > ncq 102400 in > [ 3882.883590] res 40/00:04:d0:8a:c4/00:00:0f:00:00/40 Emask > 0x12 (ATA bus error) > [ 3882.899063] ata1.00: status: { DRDY } > [ 3882.902802] ata1: hard resetting link > [ 3883.870400] ata1: softreset failed (device not ready) > [ 3883.875515] ata1: applying PMP SRST workaround and retrying > [ 3884.080465] ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300) > [ 3884.102097] ata1.00: configured for UDMA/133 > [ 3884.106635] ata1: EH complete > [ 3934.010542] ata1.00: exception Emask 0x0 SAct 0xff SErr 0x0 action 0x6 frozen > [ 3934.017759] ata1.00: failed command: READ FPDMA QUEUED > [ 3934.023030] ata1.00: cmd 60/88:00:18:66:c7/00:00:0f:00:00/40 tag 0 > ncq 69632 in > [ 3934.023037] res 40/00:04:d0:8a:c4/00:00:0f:00:00/40 Emask > 0x4 (timeout) > [ 3934.038014] ata1.00: status: { DRDY } > [ 3934.041769] ata1.00: failed command: WRITE FPDMA QUEUED > [ 3934.047042] ata1.00: cmd 61/38:08:d8:2c:5a/00:00:12:00:00/40 tag 1 > ncq 28672 out > [ 3934.047051] res 40/00:00:00:00:00/00:00:00:00:00/00 Emask > 0x4 (timeout) > [ 3934.062081] ata1.00: status: { DRDY } > [ 3934.065782] ata1.00: failed command: WRITE FPDMA QUEUED > [ 3934.071103] ata1.00: cmd 61/20:10:90:67:90/00:00:09:00:00/40 tag 2 > ncq 16384 out > [ 3934.071113] res 40/00:00:00:00:00/00:00:00:00:00/00 Emask > 0x4 (timeout) > [ 3934.085984] ata1.00: status: { DRDY } > [ 3934.089671] ata1.00: failed command: WRITE FPDMA QUEUED > [ 3934.094963] ata1.00: cmd 61/08:18:40:a7:8e/00:00:09:00:00/40 tag 3 > ncq 4096 out > [ 3934.094971] res 40/00:00:00:00:00/00:00:00:00:00/00 Emask > 0x4 (timeout) > [ 3934.109735] ata1.00: status: { DRDY } > [ 3934.113450] ata1.00: failed command: WRITE FPDMA QUEUED > [ 3934.118711] ata1.00: cmd 61/08:20:40:27:8f/00:00:09:00:00/40 tag 4 > ncq 4096 out > [ 3934.118721] res 40/00:00:00:00:00/00:00:00:00:00/00 Emask > 0x4 (timeout) > [ 3934.133489] ata1.00: status: { DRDY } > [ 3934.137172] ata1.00: failed command: WRITE FPDMA QUEUED > [ 3934.142457] ata1.00: cmd 61/08:28:40:67:8f/00:00:09:00:00/40 tag 5 > ncq 4096 out > [ 3934.142465] res 40/00:00:00:00:00/00:00:00:00:00/00 Emask > 0x4 (timeout) > [ 3934.157251] ata1.00: status: { DRDY } > [ 3934.160972] ata1.00: failed command: WRITE FPDMA QUEUED > [ 3934.166239] ata1.00: cmd 61/08:30:40:a7:8f/00:00:09:00:00/40 tag 6 > ncq 4096 out > [ 3934.166245] res 40/00:00:00:00:00/00:00:00:00:00/00 Emask > 0x4 (timeout) > [ 3934.181013] ata1.00: status: { DRDY } > [ 3934.184700] ata1.00: failed command: WRITE FPDMA QUEUED > [ 3934.189959] ata1.00: cmd 61/60:38:4a:f3:e1/00:00:02:00:00/40 tag 7 > ncq 49152 out > [ 3934.189966] res 40/00:00:00:00:00/00:00:00:00:00/00 Emask > 0x4 (timeout) > [ 3934.204822] ata1.00: status: { DRDY } > [ 3934.208535] ata1: hard resetting link > [ 3935.180443] ata1: softreset failed (device not ready) > [ 3935.185548] ata1: applying PMP SRST workaround and retrying > [ 3935.390417] ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300) > [ 3935.412020] ata1.00: configured for UDMA/133 > [ 3935.416479] ata1.00: device reported invalid CHS sector 0 > [ 3935.421985] ata1.00: device reported invalid CHS sector 0 > [ 3935.427424] ata1.00: device reported invalid CHS sector 0 > [ 3935.432893] ata1.00: device reported invalid CHS sector 0 > [ 3935.438326] ata1.00: device reported invalid CHS sector 0 > [ 3935.443788] ata1.00: device reported invalid CHS sector 0 > [ 3935.449221] ata1.00: device reported invalid CHS sector 0 > [ 3935.454728] ata1: EH complete > [ 3950.155859] ata1.00: exception Emask 0x12 SAct 0x1 SErr 0x80500 > action 0x6 frozen > [ 3950.163510] ata1.00: irq_stat 0x08000000, interface fatal error > [ 3950.169469] ata1: SError: { UnrecovData Proto 10B8B } > [ 3950.174597] ata1.00: failed command: READ FPDMA QUEUED > [ 3950.179788] ata1.00: cmd 60/00:00:28:97:71/01:00:0f:00:00/40 tag 0 > ncq 131072 in > [ 3950.179796] res 40/00:04:28:97:71/00:00:0f:00:00/40 Emask > 0x12 (ATA bus error) > [ 3950.195275] ata1.00: status: { DRDY } > [ 3950.198992] ata1: hard resetting link > [ 3951.380403] ata1: softreset failed (device not ready) > [ 3951.385523] ata1: applying PMP SRST workaround and retrying > [ 3951.590410] ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300) > [ 3951.612472] ata1.00: configured for UDMA/133 > [ 3951.617042] ata1: EH complete > [ 3952.305676] ata1: limiting SATA link speed to 1.5 Gbps > [ 3952.310994] ata1.00: exception Emask 0x12 SAct 0x1 SErr 0x1280500 > action 0x6 frozen > [ 3952.318692] ata1.00: irq_stat 0x08000000, interface fatal error > [ 3952.324685] ata1: SError: { UnrecovData Proto 10B8B BadCRC TrStaTrns } > [ 3952.331283] ata1.00: failed command: READ FPDMA QUEUED > [ 3952.336469] ata1.00: cmd 60/00:00:28:9f:71/01:00:0f:00:00/40 tag 0 > ncq 131072 in > [ 3952.336477] res 40/00:04:28:9f:71/00:00:0f:00:00/40 Emask > 0x12 (ATA bus error) > [ 3952.351953] ata1.00: status: { DRDY } > [ 3952.355667] ata1: hard resetting link > [ 3953.360414] ata1: softreset failed (device not ready) > [ 3953.365537] ata1: applying PMP SRST workaround and retrying > [ 3953.570412] ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 310) > [ 3953.592363] ata1.00: configured for UDMA/133 > [ 3953.596938] ata1: EH complete > [ 4479.040495] ata1.00: exception Emask 0x0 SAct 0x2 SErr 0x0 action 0x6 frozen > [ 4479.047622] ata1.00: failed command: WRITE FPDMA QUEUED > [ 4479.052947] ata1.00: cmd 61/10:08:4a:f9:e1/00:00:02:00:00/40 tag 1 > ncq 8192 out > [ 4479.052955] res 40/00:00:00:00:00/00:00:00:00:00/00 Emask > 0x4 (timeout) > [ 4479.067740] ata1.00: status: { DRDY } > [ 4479.071480] ata1: hard resetting link > [ 4480.040403] ata1: softreset failed (device not ready) > [ 4480.045513] ata1: applying PMP SRST workaround and retrying > [ 4480.250423] ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 310) > [ 4480.272519] ata1.00: configured for UDMA/133 > [ 4480.276866] ata1.00: device reported invalid CHS sector 0 > [ 4480.282410] ata1: EH complete > [52367.370517] ata1.00: exception Emask 0x10 SAct 0x1 SErr 0x280100 > action 0x6 frozen > [52367.378167] ata1.00: irq_stat 0x08000000, interface fatal error > [52367.384188] ata1: SError: { UnrecovData 10B8B BadCRC } > [52367.389366] ata1.00: failed command: READ FPDMA QUEUED > [52367.394582] ata1.00: cmd 60/00:00:fa:c6:36/02:00:00:00:00/40 tag 0 > ncq 262144 in > [52367.394592] res 40/00:04:fa:c6:36/00:00:00:00:00/40 Emask > 0x10 (ATA bus error) > [52367.410065] ata1.00: status: { DRDY } > [52367.413800] ata1: hard resetting link > [52368.380402] ata1: softreset failed (device not ready) > [52368.385506] ata1: applying PMP SRST workaround and retrying > [52368.590410] ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 310) > [52368.612592] ata1.00: configured for UDMA/133 > [52368.617347] ata1: EH complete > > > > Best regards, > -- > Héctor Orón -.. . -... .. .- -. -.. . ...- . .-.. --- .--. . .-. > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel >
diff --git a/arch/arm/mach-mx5/clock-mx51-mx53.c b/arch/arm/mach-mx5/clock-mx51-mx53.c index 7f20308..e1fadaf 100644 --- a/arch/arm/mach-mx5/clock-mx51-mx53.c +++ b/arch/arm/mach-mx5/clock-mx51-mx53.c @@ -1397,6 +1397,22 @@ static struct clk esdhc4_mx53_clk = { .secondary = &esdhc4_ipg_clk, }; +static struct clk sata_clk = { + .parent = &ipg_clk, + .enable = _clk_max_enable, + .enable_reg = MXC_CCM_CCGR4, + .enable_shift = MXC_CCM_CCGRx_CG1_OFFSET, + .disable = _clk_max_disable, +}; + +static struct clk ahci_phy_clk = { + .parent = &usb_phy1_clk, +}; + +static struct clk ahci_dma_clk = { + .parent = &ahb_clk, +}; + DEFINE_CLOCK(mipi_esc_clk, 0, MXC_CCM_CCGR4, MXC_CCM_CCGRx_CG5_OFFSET, NULL, NULL, NULL, &pll2_sw_clk); DEFINE_CLOCK(mipi_hsc2_clk, 0, MXC_CCM_CCGR4, MXC_CCM_CCGRx_CG4_OFFSET, NULL, NULL, &mipi_esc_clk, &pll2_sw_clk); DEFINE_CLOCK(mipi_hsc1_clk, 0, MXC_CCM_CCGR4, MXC_CCM_CCGRx_CG3_OFFSET, NULL, NULL, &mipi_hsc2_clk, &pll2_sw_clk); @@ -1503,6 +1519,9 @@ static struct clk_lookup mx53_lookups[] = { _REGISTER_CLOCK("imx-ssi.1", NULL, ssi2_clk) _REGISTER_CLOCK("imx-ssi.2", NULL, ssi3_clk) _REGISTER_CLOCK("imx-keypad", NULL, dummy_clk) + _REGISTER_CLOCK("imx53-ahci.0", "ahci", sata_clk) + _REGISTER_CLOCK("imx53-ahci.0", "ahci_phy", ahci_phy_clk) + _REGISTER_CLOCK("imx53-ahci.0", "ahci_dma", ahci_dma_clk) }; static void clk_tree_init(void) diff --git a/arch/arm/mach-mx5/devices-imx53.h b/arch/arm/mach-mx5/devices-imx53.h index c27fe8b..bcb3af1 100644 --- a/arch/arm/mach-mx5/devices-imx53.h +++ b/arch/arm/mach-mx5/devices-imx53.h @@ -40,3 +40,7 @@ extern const struct imx_imx_ssi_data imx53_imx_ssi_data[]; extern const struct imx_imx_keypad_data imx53_imx_keypad_data; #define imx53_add_imx_keypad(pdata) \ imx_add_imx_keypad(&imx53_imx_keypad_data, pdata) + +extern const struct imx_ahci_imx_data imx53_ahci_imx_data __initconst; +#define imx53_add_ahci_imx(id, pdata) \ + imx_add_ahci_imx(&imx53_ahci_imx_data, pdata) diff --git a/arch/arm/plat-mxc/Makefile b/arch/arm/plat-mxc/Makefile index d53c35f..cc8e65a 100644 --- a/arch/arm/plat-mxc/Makefile +++ b/arch/arm/plat-mxc/Makefile @@ -19,6 +19,7 @@ obj-$(CONFIG_ARCH_MXC_AUDMUX_V1) += audmux-v1.o obj-$(CONFIG_ARCH_MXC_AUDMUX_V2) += audmux-v2.o obj-$(CONFIG_MXC_DEBUG_BOARD) += 3ds_debugboard.o obj-$(CONFIG_CPU_FREQ_IMX) += cpufreq.o +obj-$(CONFIG_IMX_HAVE_PLATFORM_AHCI) += ahci_sata.o ifdef CONFIG_SND_IMX_SOC obj-y += ssi-fiq.o obj-y += ssi-fiq-ksym.o diff --git a/arch/arm/plat-mxc/ahci_sata.c b/arch/arm/plat-mxc/ahci_sata.c new file mode 100644 index 0000000..4f54816 --- /dev/null +++ b/arch/arm/plat-mxc/ahci_sata.c @@ -0,0 +1,104 @@ +/* + * Copyright (C) 2011 Freescale Semiconductor, Inc. All Rights Reserved. + */ + +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include <linux/io.h> +#include <linux/clk.h> +#include <linux/err.h> +#include <linux/device.h> +#include <mach/ahci_sata.h> + +static struct clk *sata_clk, *sata_ref_clk; + +/* AHCI module Initialization, if return 0, initialization is successful. */ +int sata_init(struct device *dev, void __iomem *addr) +{ + u32 tmpdata; + int ret = 0; + struct clk *clk; + + sata_clk = clk_get(dev, "ahci"); + if (IS_ERR(sata_clk)) { + dev_err(dev, "no sata clock.\n"); + return PTR_ERR(sata_clk); + } + ret = clk_enable(sata_clk); + if (ret) { + dev_err(dev, "can't enable sata clock.\n"); + goto put_sata_clk; + } + + /* FSL IMX AHCI SATA uses the internal usb phy1 clk on loco */ + sata_ref_clk = clk_get(dev, "ahci_phy"); + if (IS_ERR(sata_ref_clk)) { + dev_err(dev, "no sata ref clock.\n"); + ret = PTR_ERR(sata_ref_clk); + goto release_sata_clk; + } + ret = clk_enable(sata_ref_clk); + if (ret) { + dev_err(dev, "can't enable sata ref clock.\n"); + goto put_sata_ref_clk; + } + + /* Get the AHB clock rate, and configure the TIMER1MS reg later */ + clk = clk_get(dev, "ahci_dma"); + if (IS_ERR(clk)) { + dev_err(dev, "no dma clock.\n"); + ret = PTR_ERR(clk); + goto release_sata_ref_clk; + } + tmpdata = clk_get_rate(clk) / 1000; + clk_put(clk); + + writel(tmpdata, addr + HOST_TIMER1MS); + + tmpdata = readl(addr + HOST_CAP); + if (!(tmpdata & HOST_CAP_SSS)) { + tmpdata |= HOST_CAP_SSS; + writel(tmpdata, addr + HOST_CAP); + } + + if (!(readl(addr + HOST_PORTS_IMPL) & 0x1)) + writel((readl(addr + HOST_PORTS_IMPL) | 0x1), + addr + HOST_PORTS_IMPL); + + return 0; + +release_sata_ref_clk: + clk_disable(sata_ref_clk); +put_sata_ref_clk: + clk_put(sata_ref_clk); +release_sata_clk: + clk_disable(sata_clk); +put_sata_clk: + clk_put(sata_clk); + + return ret; +} + +void sata_exit(struct device *dev) +{ + clk_disable(sata_ref_clk); + clk_put(sata_ref_clk); + + clk_disable(sata_clk); + clk_put(sata_clk); + +} diff --git a/arch/arm/plat-mxc/devices/Kconfig b/arch/arm/plat-mxc/devices/Kconfig index bd294ad..f63887b 100644 --- a/arch/arm/plat-mxc/devices/Kconfig +++ b/arch/arm/plat-mxc/devices/Kconfig @@ -76,3 +76,7 @@ config IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX config IMX_HAVE_PLATFORM_SPI_IMX bool + +config IMX_HAVE_PLATFORM_AHCI + bool + default y if ARCH_MX53 diff --git a/arch/arm/plat-mxc/devices/Makefile b/arch/arm/plat-mxc/devices/Makefile index b41bf97..e858ad9 100644 --- a/arch/arm/plat-mxc/devices/Makefile +++ b/arch/arm/plat-mxc/devices/Makefile @@ -25,3 +25,4 @@ obj-$(CONFIG_IMX_HAVE_PLATFORM_MXC_RTC) += platform-mxc_rtc.o obj-$(CONFIG_IMX_HAVE_PLATFORM_MXC_W1) += platform-mxc_w1.o obj-$(CONFIG_IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX) += platform-sdhci-esdhc-imx.o obj-$(CONFIG_IMX_HAVE_PLATFORM_SPI_IMX) += platform-spi_imx.o +obj-$(CONFIG_IMX_HAVE_PLATFORM_AHCI) += platform-ahci-imx.o diff --git a/arch/arm/plat-mxc/devices/platform-ahci-imx.c b/arch/arm/plat-mxc/devices/platform-ahci-imx.c new file mode 100644 index 0000000..9e1b460 --- /dev/null +++ b/arch/arm/plat-mxc/devices/platform-ahci-imx.c @@ -0,0 +1,66 @@ +/* + * Copyright (C) 2011 Freescale Semiconductor, Inc. All Rights Reserved. + */ + +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include <linux/dma-mapping.h> +#include <asm/sizes.h> +#include <mach/hardware.h> +#include <mach/devices-common.h> +#include <mach/ahci_sata.h> + +#define imx_ahci_imx_data_entry_single(soc, _devid) \ + { \ + .devid = _devid, \ + .iobase = soc ## _SATA_BASE_ADDR, \ + .irq = soc ## _INT_SATA, \ + } + +#ifdef CONFIG_SOC_IMX53 +const struct imx_ahci_imx_data imx53_ahci_imx_data __initconst = + imx_ahci_imx_data_entry_single(MX53, "imx53-ahci"); +#endif + +static struct ahci_platform_data default_sata_pdata = { + .init = sata_init, + .exit = sata_exit, +}; + +struct platform_device *__init imx_add_ahci_imx( + const struct imx_ahci_imx_data *data, + const struct ahci_platform_data *pdata) +{ + struct resource res[] = { + { + .start = data->iobase, + .end = data->iobase + SZ_4K - 1, + .flags = IORESOURCE_MEM, + }, { + .start = data->irq, + .end = data->irq, + .flags = IORESOURCE_IRQ, + }, + }; + + if (pdata == NULL) + pdata = &default_sata_pdata; + + return imx_add_platform_device_dmamask(data->devid, 0, + res, ARRAY_SIZE(res), + pdata, sizeof(*pdata), DMA_BIT_MASK(32)); +} diff --git a/arch/arm/plat-mxc/include/mach/ahci_sata.h b/arch/arm/plat-mxc/include/mach/ahci_sata.h new file mode 100644 index 0000000..ba297e1 --- /dev/null +++ b/arch/arm/plat-mxc/include/mach/ahci_sata.h @@ -0,0 +1,33 @@ +/* + * Copyright (C) 2011 Freescale Semiconductor, Inc. All Rights Reserved. + */ + +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#ifndef __PLAT_MXC_AHCI_SATA_H__ +#define __PLAT_MXC_AHCI_SATA_H__ + +enum { + HOST_CAP = 0x00, + HOST_CAP_SSS = (1 << 27), /* Staggered Spin-up */ + HOST_PORTS_IMPL = 0x0c, + HOST_TIMER1MS = 0xe0, /* Timer 1-ms */ +}; + +extern int sata_init(struct device *dev, void __iomem *addr); +extern void sata_exit(struct device *dev); +#endif /* __PLAT_MXC_AHCI_SATA_H__ */ diff --git a/arch/arm/plat-mxc/include/mach/devices-common.h b/arch/arm/plat-mxc/include/mach/devices-common.h index 524538a..f04e063 100644 --- a/arch/arm/plat-mxc/include/mach/devices-common.h +++ b/arch/arm/plat-mxc/include/mach/devices-common.h @@ -301,3 +301,13 @@ struct platform_device *__init imx_add_spi_imx( struct platform_device *imx_add_imx_dma(void); struct platform_device *imx_add_imx_sdma(char *name, resource_size_t iobase, int irq, struct sdma_platform_data *pdata); + +#include <linux/ahci_platform.h> +struct imx_ahci_imx_data { + const char *devid; + resource_size_t iobase; + resource_size_t irq; +}; +struct platform_device *__init imx_add_ahci_imx( + const struct imx_ahci_imx_data *data, + const struct ahci_platform_data *pdata);
Signed-off-by: Richard Zhu <richard.zhu@linaro.org> --- arch/arm/mach-mx5/clock-mx51-mx53.c | 19 ++++ arch/arm/mach-mx5/devices-imx53.h | 4 + arch/arm/plat-mxc/Makefile | 1 + arch/arm/plat-mxc/ahci_sata.c | 104 +++++++++++++++++++++++ arch/arm/plat-mxc/devices/Kconfig | 4 + arch/arm/plat-mxc/devices/Makefile | 1 + arch/arm/plat-mxc/devices/platform-ahci-imx.c | 66 ++++++++++++++ arch/arm/plat-mxc/include/mach/ahci_sata.h | 33 +++++++ arch/arm/plat-mxc/include/mach/devices-common.h | 10 ++ 9 files changed, 242 insertions(+), 0 deletions(-) create mode 100644 arch/arm/plat-mxc/ahci_sata.c create mode 100644 arch/arm/plat-mxc/devices/platform-ahci-imx.c create mode 100644 arch/arm/plat-mxc/include/mach/ahci_sata.h