I have a wandboard quad, and would like to mount a sata root FS at boot time. kwizart helped me to get sata support when booting by doing the following:

--- instructions from kwizart ---
cat>/etc/modules-load.d/imx.conf<<EOF
# Load ahci imx  at boot
ahci_platform
ahci_imx
EOF

dracut -H /boot/initramfs-$(uname -r).img $(uname -r)
mkimage -A arm -O linux -T ramdisk -C none -n $(uname -r) -d  /boot/initramfs-$(uname -r).img /boot/uInitrd-$(uname -r)
--- end instructions ---

I indeed see that sata works at the first login prompt. However, I cannot mount the rootFS on sata, as apparently the fs mounting is done before the initialization of the AHCI (sata) subsystem. The following console output is when booting and mounting the rootFS on uSD card:

---- console output ----
Jan  1 01:00:17 localhost kernel: [    0.000000] Booting Linux on physical CPU 0x0
Jan  1 01:00:17 localhost kernel: [    0.000000] Initializing cgroup subsys cpuset
Jan  1 01:00:17 localhost kernel: [    0.000000] Initializing cgroup subsys cpu
Jan  1 01:00:17 localhost kernel: [    0.000000] Initializing cgroup subsys cpuacct
Jan  1 01:00:17 localhost kernel: [    0.000000] Linux version 3.12.1-2.fc21.armv7hl (mockbuild@arm02-builder12.arm.fedoraproject.org) (gcc version 4.8.2 20131111 (Red Hat 4.8.2-4) (GCC) ) #1 SMP Thu Nov 21 05:58:27 UTC 2013
Jan  1 01:00:17 localhost kernel: [    0.000000] CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c5387d
Jan  1 01:00:17 localhost kernel: [    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
Jan  1 01:00:17 localhost kernel: [    0.000000] Machine: Freescale i.MX6 Quad/DualLite (Device Tree), model: Wandboard i.MX6 Quad Board
Jan  1 01:00:17 localhost kernel: [    0.000000] cma: CMA: reserved 16 MiB at 3e800000
Jan  1 01:00:17 localhost kernel: [    0.000000] Memory policy: ECC disabled, Data cache writealloc
Jan  1 01:00:17 localhost kernel: [    0.000000] PERCPU: Embedded 9 pages/cpu @c2222000 s13568 r8192 d15104 u36864
Jan  1 01:00:17 localhost kernel: [    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 522768
Jan  1 01:00:17 localhost kernel: [    0.000000] Kernel command line: console=ttymxc0,115200 root=UUID=fe1515c1-3a1d-4904-98e5-ba61cc7f013d ro rhgb LANG=en_US.UTF-8 selinux=0
------ skip uninteresting stuff  here -----
Jan  1 01:00:17 localhost kernel: [    4.062420] mmc2: new high speed SDHC card at address 0007
Jan  1 01:00:17 localhost kernel: [    4.068525] mmcblk0: mmc2:0007 SD8GB 7.21 GiB
Jan  1 01:00:17 localhost kernel: [    4.074729]  mmcblk0: p1 p2 p3
Jan  1 01:00:17 localhost kernel: [    4.451255] EXT4-fs (mmcblk0p3): mounted filesystem with ordered data mode. Opts: (null)
Jan  1 01:00:17 localhost kernel: [    7.245130] Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
Jan  1 01:00:17 localhost kernel: [    7.573281] EXT4-fs (mmcblk0p3): re-mounted. Opts: (null)
Jan  1 01:00:17 localhost kernel: [    8.040711] ahci ahci: SSS flag set, parallel bus scan disabled
Jan  1 01:00:17 localhost kernel: [    8.046826] ahci ahci: AHCI 0001.0300 32 slots 1 ports 3 Gbps 0x1 impl platform mode
Jan  1 01:00:17 localhost kernel: [    8.054716] ahci ahci: flags: ncq sntf stag pm led clo only pmp pio slum part ccc apst
Jan  1 01:00:17 localhost kernel: [    8.065987] scsi0 : ahci_platform
Jan  1 01:00:17 localhost kernel: [    8.069805] ata1: SATA max UDMA/133 mmio [mem 0x02200000-0x02203fff] port 0x100 irq 71
Jan  1 01:00:17 localhost kernel: [    8.133208] imx-sdma 20ec000.sdma: firmware not found
Jan  1 01:00:17 localhost kernel: [    8.142883] imx-sdma 20ec000.sdma: initialized
Jan  1 01:00:17 localhost kernel: [    8.173272] ci_hdrc ci_hdrc.0: doesn't support gadget
Jan  1 01:00:17 localhost kernel: [    8.179507] ci_hdrc ci_hdrc.0: EHCI Host Controller
Jan  1 01:00:17 localhost rsyslogd: [origin software="rsyslogd" swVersion="7.4.2" x-pid="353" x-info="http://www.rsyslog.com"] start
Jan  1 01:00:17 localhost kernel: [    8.184987] ci_hdrc ci_hdrc.0: new USB bus registered, assigned bus number 1
Jan  1 01:00:17 localhost kernel: [    8.209086] ci_hdrc ci_hdrc.0: USB 2.0 started, EHCI 1.00
Jan  1 01:00:17 localhost kernel: [    8.215557] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
Jan  1 01:00:17 localhost kernel: [    8.222495] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
Jan  1 01:00:17 localhost kernel: [    8.229801] usb usb1: Product: EHCI Host Controller
Jan  1 01:00:17 localhost kernel: [    8.234760] usb usb1: Manufacturer: Linux 3.12.1-2.fc21.armv7hl ehci_hcd
Jan  1 01:00:17 localhost kernel: [    8.241547] usb usb1: SerialNumber: ci_hdrc.0
Jan  1 01:00:17 localhost kernel: [    8.249815] hub 1-0:1.0: USB hub found
Jan  1 01:00:17 localhost kernel: [    8.254717] hub 1-0:1.0: 1 port detected
Jan  1 01:00:17 localhost kernel: [    8.336178] imx-sgtl5000 sound.13: failed to find codec platform device
Jan  1 01:00:17 localhost kernel: [    8.342881] platform sound.13: Driver imx-sgtl5000 requests probe deferral
Jan  1 01:00:17 localhost kernel: [    8.458135] pps_core: LinuxPPS API ver. 1 registered
Jan  1 01:00:17 localhost kernel: [    8.463240] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
Jan  1 01:00:17 localhost kernel: [    8.467510] imx_ipu_v3: module is from the staging directory, the quality is unknown, you have been warned.
Jan  1 01:00:17 localhost kernel: [    8.472546] imx-ipuv3 2400000.ipu: IPUv3H probed
Jan  1 01:00:17 localhost kernel: [    8.473071] imx-sgtl5000 sound.13: failed to find codec platform device
Jan  1 01:00:17 localhost kernel: [    8.473087] platform sound.13: Driver imx-sgtl5000 requests probe deferral
Jan  1 01:00:17 localhost kernel: [    8.473891] imx-ipuv3 2800000.ipu: IPUv3H probed
Jan  1 01:00:17 localhost kernel: [    8.474362] imx-sgtl5000 sound.13: failed to find codec platform device
Jan  1 01:00:17 localhost kernel: [    8.474378] platform sound.13: Driver imx-sgtl5000 requests probe deferral
Jan  1 01:00:17 localhost kernel: [    8.483185] imx_ipu_v3: module is from the staging directory, the quality is unknown, you have been warned.
Jan  1 01:00:17 localhost kernel: [    8.536977] [drm] Initialized drm 1.1.0 20060810
Jan  1 01:00:17 localhost kernel: [    8.547867] PTP clock support registered
Jan  1 01:00:17 localhost kernel: [    8.592222] ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
Jan  1 01:00:17 localhost kernel: [    8.599992] ata1.00: ATA-7: ST9100821AS, 3.CMC, max UDMA/100
Jan  1 01:00:17 localhost kernel: [    8.605699] ata1.00: 195371568 sectors, multi 0: LBA48 NCQ (depth 31/32)
Jan  1 01:00:17 localhost kernel: [    8.624052] imx-sgtl5000 sound.13: failed to find codec platform device
Jan  1 01:00:17 localhost kernel: [    8.626277] libphy: fec_enet_mii_bus: probed
Jan  1 01:00:17 localhost kernel: [    8.626967] fec 2188000.ethernet eth0: registered PHC device 0
Jan  1 01:00:17 localhost kernel: [    8.643241] platform sound.13: Driver imx-sgtl5000 requests probe deferral
Jan  1 01:00:17 localhost kernel: [    8.662792] imxdrm: module is from the staging directory, the quality is unknown, you have been warned.
Jan  1 01:00:17 localhost kernel: [    8.662800] imxdrm: module is from the staging directory, the quality is unknown, you have been warned.
Jan  1 01:00:17 localhost kernel: [    8.662834] imxdrm: module is from the staging directory, the quality is unknown, you have been warned.
Jan  1 01:00:17 localhost kernel: [    8.664912] cfg80211: Calling CRDA to update world regulatory domain
Jan  1 01:00:17 localhost kernel: [    8.668998] [drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
Jan  1 01:00:17 localhost kernel: [    8.669002] [drm] No driver support for vblank timestamp query.
Jan  1 01:00:17 localhost kernel: [    8.669015] [drm] Initialized imx-drm 1.0.0 20120507 on minor 0
Jan  1 01:00:17 localhost kernel: [    8.669626] imx-sgtl5000 sound.13: failed to find codec platform device
Jan  1 01:00:17 localhost kernel: [    8.669645] platform sound.13: Driver imx-sgtl5000 requests probe deferral
Jan  1 01:00:17 localhost kernel: [    8.675308] imxdrm: module is from the staging directory, the quality is unknown, you have been warned.
Jan  1 01:00:17 localhost kernel: [    8.712414] ipuv3_crtc: module is from the staging directory, the quality is unknown, you have been warned.
Jan  1 01:00:17 localhost kernel: [    8.712420] ipuv3_crtc: module is from the staging directory, the quality is unknown, you have been warned.
Jan  1 01:00:17 localhost kernel: [    8.713329] ipuv3_crtc: module is from the staging directory, the quality is unknown, you have been warned.
Jan  1 01:00:17 localhost kernel: [    8.714454] imx-sgtl5000 sound.13: failed to find codec platform device
Jan  1 01:00:17 localhost kernel: [    8.714472] platform sound.13: Driver imx-sgtl5000 requests probe deferral
Jan  1 01:00:17 localhost kernel: [    8.714950] imx-sgtl5000 sound.13: failed to find codec platform device
Jan  1 01:00:17 localhost kernel: [    8.714965] platform sound.13: Driver imx-sgtl5000 requests probe deferral
Jan  1 01:00:17 localhost kernel: [    8.748753] imx-sgtl5000 sound.13: failed to find codec platform device
Jan  1 01:00:17 localhost kernel: [    8.748771] platform sound.13: Driver imx-sgtl5000 requests probe deferral
Jan  1 01:00:17 localhost kernel: [    8.750975] brcmfmac: brcmf_sdio_chip_drivestrengthinit: No SDIO Drive strength init done for chip 4329 rev 3 pmurev 6
Jan  1 01:00:17 localhost kernel: [    8.797409] ata1.00: configured for UDMA/100
Jan  1 01:00:17 localhost kernel: [    8.797902] scsi 0:0:0:0: Direct-Access     ATA      ST9100821AS      3.CM PQ: 0 ANSI: 5
Jan  1 01:00:17 localhost kernel: [    8.798935] sd 0:0:0:0: [sda] 195371568 512-byte logical blocks: (100 GB/93.1 GiB)
Jan  1 01:00:17 localhost kernel: [    8.798975] sd 0:0:0:0: Attached scsi generic sg0 type 0
Jan  1 01:00:17 localhost kernel: [    8.799374] sd 0:0:0:0: [sda] Write Protect is off
Jan  1 01:00:17 localhost kernel: [    8.799528] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
Jan  1 01:00:17 localhost kernel: [    8.799825] imx-sgtl5000 sound.13: failed to find codec platform device
Jan  1 01:00:17 localhost kernel: [    8.799844] platform sound.13: Driver imx-sgtl5000 requests probe deferral
Jan  1 01:00:17 localhost kernel: [    8.806051] brcmfmac: brcmf_sdbrcm_download_code_file: Fail to request firmware -2
Jan  1 01:00:17 localhost kernel: [    8.806058] brcmfmac: _brcmf_sdbrcm_download_firmware: dongle image file download failed
Jan  1 01:00:17 localhost kernel: [    8.806119] brcmfmac: brcmf_bus_start: brcmf_sdbrcm_bus_init failed -1
Jan  1 01:00:17 localhost kernel: [    8.806127] brcmfmac: brcmf_sdbrcm_probe: dongle is not responding
Jan  1 01:00:17 localhost kernel: [    8.807864] brcmfmac: brcmf_sdio_probe: device attach failed
Jan  1 01:00:17 localhost kernel: [    8.808011] brcmfmac: brcmf_ops_sdio_probe: F2 error, probe failed -19...
Jan  1 01:00:17 localhost kernel: [    8.808487] usbcore: registered new interface driver brcmfmac
Jan  1 01:00:17 localhost kernel: [    8.826448] Bluetooth: Core ver 2.16
Jan  1 01:00:17 localhost kernel: [    8.826544] NET: Registered protocol family 31
Jan  1 01:00:17 localhost kernel: [    8.826548] Bluetooth: HCI device and connection manager initialized
Jan  1 01:00:17 localhost kernel: [    8.826577] Bluetooth: HCI socket layer initialized
Jan  1 01:00:17 localhost kernel: [    8.826587] Bluetooth: L2CAP socket layer initialized
Jan  1 01:00:17 localhost kernel: [    8.826614] Bluetooth: SCO socket layer initialized
Jan  1 01:00:17 localhost kernel: [    8.835564] Bluetooth: Generic Bluetooth SDIO driver ver 0.1
Jan  1 01:00:17 localhost kernel: [    8.837531] imx-sgtl5000 sound.13: failed to find codec platform device
Jan  1 01:00:17 localhost kernel: [    8.837549] platform sound.13: Driver imx-sgtl5000 requests probe deferral
Jan  1 01:00:17 localhost kernel: [    8.950459]  sda: sda1 sda2 sda3
------- cut here ---------

mmcblk0p3 has the root file system on uSD card, mounted at  [    4.451255]. Much later, only at [    8.592222], the sata link is up.

If I try to mount /dev/sda1 for the root fs (in the kernel command line), I get a panic kernel after a 90 second timeout....

Can someone help me to get ahci initialized before the root fs is mounted?

Cheers, Ronald

PS the wandquad can be seen here, btw: http://www.swissdutch.ch:4999/