I customized my own DTS that doesn't include PCIe ports and enabled earlyprintk and now it boots much further. SATA works in U-Boot:
$this->bbcode_second_pass_code('', '
OX820 # ide reset
Reset IDE: Bus 0: OK
Device 0: Model: ST1000DM003-9YN162 Firm: NDP3 Ser#: Z1D25T6Y
Type: Hard Disk
Supports 48-bit addressing
Capacity: 953869.7 MB = 931.5 GB (1953525168 x 512)
')
However, the kernel fails to detect that SATA drive. From what I saw, the SATA driver only supports one port for now, so I assume that the "wrong" SATA port is populated on my board
$this->bbcode_second_pass_code('', '
Stage-1 Bootloader Tue Aug 9 16:44:00 CST 2011
Attempting to set PLLA to 750MHz ...
plla_ctrl0 : 0x0000000A
plla_ctrl1 : 0x000F0000
plla_ctrl2 : 0x001D01A0
plla_ctrl3 : 0x00000017
PLLA Set
Setup memory, testing
Reading NAND, Image 0
Hdr len: 0x0001A94C
Hdr CRC: 0xF0019DAC
OK
U-Boot 1.1.2 (Jun 24 2011 - 09:41:57)
U-Boot code: 60D00000 -> 60D1A94C BSS: -> 60D1F004
RAM Configuration:
Bank #0: 60000000 128 MB
SRAM Configuration:
64KB at 0x50000000
NAND:128 MiB
In: serial
Out: serial
Err: serial
Setting Linux mem= boot arg value
Hit any key to stop autoboot: 2 0
$ tftp 64000000 openwrt-oxnas-ox820-u-boot.bin
Wait GMAC to reset
Wait for PHY reset.
PHY is Realtek RTL8211E
Wait for link to come up...........Link up
Wait for auto-negotiation to complete
Link is 1000M
TFTP from server 192.168.50.59; our IP address is 192.168.50.100
Filename 'openwrt-oxnas-ox820-u-boot.bin'.
Load address: 0x64000000
Loading: #################################################################
######################################
done
Bytes transferred = 526420 (80854 hex)
$ go 64000000
## Starting application at 0x64000000 ...
U-Boot 2013.10 (Nov 07 2013 - 23:44:01) for OXNAS
DRAM: 128 MiB
NAND: 128 MiB
Using default environment
In: serial
Out: serial
Err: serial
Net: mii0
Hit any key to stop autoboot: 3 0
OX820 # setenv serverip 192.168.50.59
OX820 # setenv ipaddr 192.168.50.100
OX820 # setenv bootargs $bootargs earlyprintk=serial
OX820 # tftp 62000000 openwrt-oxnas-stg212-fit-uImage-initramfs.itb
Waiting for PHY auto negotiation to complete.. done
ENET Speed is 1000 Mbps - FULL duplex connection
Using mii0 device
TFTP from server 192.168.50.59; our IP address is 192.168.50.100
Filename 'openwrt-oxnas-stg212-fit-uImage-initramfs.itb'.
Load address: 0x62000000
Loading: #################################################################
#################################################################
#####################################
3.4 MiB/s
done
Bytes transferred = 2443412 (254894 hex)
OX820 # bootm
## Loading kernel from FIT Image at 62000000 ...
Using 'config@1' configuration
Trying 'kernel@1' kernel subimage
Description: ARM OpenWrt Linux-3.12
Type: Kernel Image
Compression: uncompressed
Data Start: 0x620000e0
Data Size: 2437184 Bytes = 2.3 MiB
Architecture: ARM
OS: Linux
Load Address: 0x60008000
Entry Point: 0x60008000
Hash algo: crc32
Hash value: cfe49ebf
Hash algo: sha1
Hash value: f8c9d643d71b6166fbb1fbcf241b03b858006b40
Verifying Hash Integrity ... crc32+ sha1+ OK
## Loading fdt from FIT Image at 62000000 ...
Using 'config@1' configuration
Trying 'fdt@1' fdt subimage
Description: ARM OpenWrt stg212 device tree blob
Type: Flat Device Tree
Compression: uncompressed
Data Start: 0x62253250
Data Size: 4893 Bytes = 4.8 KiB
Architecture: ARM
Hash algo: crc32
Hash value: f97e2963
Hash algo: sha1
Hash value: cfb138982472cc85a01b45de16d678c18c1696be
Verifying Hash Integrity ... crc32+ sha1+ OK
Booting using the fdt blob at 0x62253250
Loading Kernel Image ... OK
Loading Device Tree to 67e24000, end 67e2831c ... OK
Starting kernel ...
Uncompressing Linux... done, booting the kernel.
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 3.12.0 (daniel@earthship) (gcc version 4.6.4 (OpenWrt/Linaro GCC 4.6-2013.05 r38636) ) #14 SMP Thu Nov 7 23:45:09 CET 2013
[ 0.000000] CPU: ARMv6-compatible processor [410fb025] revision 5 (ARMv7), cr=00c5387d
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[ 0.000000] Machine: PLXTECH NAS782X SoC (Flattened Device Tree), model: MitraStar Technology Corp. STG-212
[ 0.000000] Memory policy: ECC disabled, Data cache writealloc
[ 0.000000] DT missing boot CPU MPIDR[23:0], fall back to default cpu_logical_map
[ 0.000000] PERCPU: Embedded 7 pages/cpu @c0818000 s7104 r8192 d13376 u32768
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32512
[ 0.000000] Kernel command line: console=ttyS0,115200n8 earlyprintk=serial
[ 0.000000] PID hash table entries: 512 (order: -1, 2048 bytes)
[ 0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
[ 0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
[ 0.000000] Memory: 122608K/131072K available (3024K kernel code, 147K rwdata, 824K rodata, 2990K init, 213K bss, 8464K reserved)
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
[ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
[ 0.000000] vmalloc : 0xc8800000 - 0xff000000 ( 872 MB)
[ 0.000000] lowmem : 0xc0000000 - 0xc8000000 ( 128 MB)
[ 0.000000] modules : 0xbf000000 - 0xc0000000 ( 16 MB)
[ 0.000000] .text : 0xc0008000 - 0xc03ca4b4 (3850 kB)
[ 0.000000] .init : 0xc03cb000 - 0xc06b6bc0 (2991 kB)
[ 0.000000] .data : 0xc06b8000 - 0xc06dccac ( 148 kB)
[ 0.000000] .bss : 0xc06dccac - 0xc07123b0 ( 214 kB)
[ 0.000000] Hierarchical RCU implementation.
[ 0.000000] NR_IRQS:160
[ 0.000000] sched_clock: 24 bits at 390kHz, resolution 2560ns, wraps every 42949ms
[ 0.000222] Calibrating delay loop... 298.59 BogoMIPS (lpj=1492992)
[ 0.069939] pid_max: default: 32768 minimum: 301
[ 0.070195] Mount-cache hash table entries: 512
[ 0.071232] CPU: Testing write buffer coherency: ok
[ 0.071664] Setting up static identity map for 0xc00122f8 - 0xc0012330
[ 0.073628] CPU1: Booted secondary processor
[ 0.140252] Brought up 2 CPUs
[ 0.140277] SMP: Total of 2 processors activated.
[ 0.143800] pinctrl core: initialized pinctrl subsystem
[ 0.144248] NET: Registered protocol family 16
[ 0.144757] DMA: preallocated 256 KiB pool for atomic coherent allocations
[ 0.153159] gpio-oxnas 44000000.gpio: at address c8846000
[ 0.153297] gpio-oxnas 44100000.gpio: at address c8848000
[ 0.154058] pinctrl-oxnas pinc: initialized OX820 pinctrl driver
[ 0.176765] bio: create slab <bio-0> at 0
[ 0.179586] SCSI subsystem initialized
[ 0.181885] pps_core: LinuxPPS API ver. 1 registered
[ 0.181903] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[ 0.182164] PTP clock support registered
[ 0.184171] Switched to clocksource rps_clocksource_timer
[ 0.188052] NET: Registered protocol family 2
[ 0.188851] TCP established hash table entries: 1024 (order: 1, 8192 bytes)
[ 0.188902] TCP bind hash table entries: 1024 (order: 1, 8192 bytes)
[ 0.188938] TCP: Hash tables configured (established 1024 bind 1024)
[ 0.189027] TCP: reno registered
[ 0.189056] UDP hash table entries: 256 (order: 1, 8192 bytes)
[ 0.189099] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
[ 0.189450] NET: Registered protocol family 1
[ 0.261107] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[ 0.261209] msgmni has been set to 239
[ 0.262750] io scheduler noop registered
[ 0.262773] io scheduler deadline registered (default)
[ 0.262848] io scheduler cfq registered
[ 0.264197] Serial: 8250/16550 driver, 1 ports, IRQ sharing disabled
[ 0.266145] 44200000.uart: ttyS0 at MMIO 0x44200000 (irq = 55, base_baud = 390625) is a 16550A
[ 0.627563] console [ttyS0] enabled
[ 0.912970] scsi0 : sata_oxnas
[ 0.972661] ata1: SATA max UDMA/133 irq 50
[ 0.977006] ox820sata: reseting SATA core
[ 0.993853] ONFI param page 0 valid
[ 0.997335] ONFI flash detected
[ 1.000468] NAND device: Manufacturer ID: 0xad, Chip ID: 0xf1 (Hynix H27U1G8F2BTR-BC), 128MiB, page size: 2048, OOB size: 64
[ 1.011645] Scanning device for bad blocks
[ 1.084981] Bad eraseblock 602 at 0x000004b40000
[ 1.138565] 2 ofpart partitions found on MTD device 41000000.nand
[ 1.144632] Creating 2 MTD partitions on "41000000.nand":
[ 1.150005] 0x000000000000-0x000000e00000 : "boot"
[ 1.156705] 0x000000e00000-0x000008000000 : "data"
[ 1.163947] stmmac - user ID: 0x12, Synopsys ID: 0x35
[ 1.168977] Ring mode enabled
[ 1.172014] DMA HW capability register supported
[ 1.176519] Enhanced/Alternate descriptors
[ 1.180851] Enabled extended descriptors
[ 1.184837] RX Checksum Offload Engine supported (type 2)
[ 1.190289] TX Checksum insertion supported
[ 1.194536] Wake-Up On Lan supported
[ 1.198174] Enable RX Mitigation via HW Watchdog Timer
[ 1.207808] libphy: stmmac: probed
[ 1.211205] eth0: PHY ID 001cc915 at 0 IRQ 0 (stmmac-0:00) active
[ 1.217267] eth0: PHY ID 001cc915 at 7 IRQ 0 (stmmac-0:07)
[ 1.223347] mousedev: PS/2 mouse device common for all mice
[ 1.229388] TCP: cubic registered
[ 1.232796] NET: Registered protocol family 10
[ 1.238451] sit: IPv6 over IPv4 tunneling driver
[ 1.244577] NET: Registered protocol family 17
[ 1.249118] 8021q: 802.1Q VLAN Support v1.8
')