OpenWrt Forum Archive

Topic: Porting openwrt to mpc8343-based NAS

The content of this topic has been archived on 30 Apr 2018. There are no obvious gaps in this topic, but there may still be some posts missing at the end.

So i have this old Promise NS4300N NAS. It's running linux-2.6.11, booting it from u-boot. And i really hate the stock firmware with the crappy proprietary hardware raid driver and hostile userland.
I thought i might be able to make it slightly less useless if i could flash some openWRT unto it, but the openwrt mpc83xx images don't really seem to be compatible.

Pic of board

Hardware:
SOC: mpc8343vragd
RAM: 2 * Elpida d5116afta-6b-e (128MB total)
Flash: Spansion S29GL128N (16MB)
SATA controller: PDC40917 (TX4310) on pci bus
Ethernet: mpc8349 compatible (gianfar) + ip1001
USB: NEC upd720102 on pci bus
RTC: HT1381
There's also a Winbond w83l785g close to an at24c02 eeprom. Not sure what those two are up to.
And some buttons and leds, but i don't care much about those.

I have the kernel source from Promise that seems to differ quite a bit from the mainline 2.6.11.
3.3MB of uncut diff, gzipped.

dmesg:

Linux version 2.6.11SR3_1_2 (root@localhost.localdomain) (gcc version 3.4.3) #4 Mon Feb 4 07:25:45 CST 2008
On node 0 totalpages: 32768
  DMA zone: 32768 pages, LIFO batch:8
  Normal zone: 0 pages, LIFO batch:1
  HighMem zone: 0 pages, LIFO batch:1
Built 1 zonelists
Kernel command line: root=/dev/ram rw console=ttyS0,115200
IPIC (128 IRQ sources, 8 External IRQs) at fe000700
PID hash table entries: 1024 (order: 10, 16384 bytes)
Console: colour dummy device 80x25
Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
Memory: 123168k available (2292k kernel code, 668k data, 312k init, 0k highmem)
Calibrating delay loop... 265.21 BogoMIPS (lpj=132608)
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
checking if image is initramfs...it isn't (no cpio magic); looks like an initrd
Freeing initrd memory: 3189k freed
NET: Registered protocol family 16
PCI: Probing PCI hardware
PCI: bridge rsrc 0..ffffff (100), parent c028be7c
PCI: bridge rsrc 80000000..9fffffff (200), parent c028be60
PCI:0000:00:00.0: Resource 0: 00000000-000fffff (f=200)
PCI: Cannot allocate resource region 0 of device 0000:00:00.0
PCI:  parent is c0333054: 80000000-9fffffff (f=200)
PCI:0000:00:00.0: Resource 2: 40000000-7fffffff (f=120c)
PCI: Cannot allocate resource region 2 of device 0000:00:00.0
PCI:0000:00:00.0: Resource 4: 00000000-3fffffff (f=120c)
PCI: Cannot allocate resource region 4 of device 0000:00:00.0
PCI:  parent is c0333054: 80000000-9fffffff (f=200)
PCI:0000:00:0e.0: Resource 0: 9ffff000-9fffffff (f=200)
PCI:0000:00:0e.1: Resource 0: 9fffef00-9fffefff (f=200)
PCI:0000:00:10.0: Resource 0: 00ffff80-00ffffff (f=101)
PCI:0000:00:10.0: Resource 2: 00fffe00-00fffeff (f=101)
PCI:0000:00:10.0: Resource 3: 9fffd000-9fffdfff (f=200)
PCI:0000:00:10.0: Resource 4: 9ffc0000-9ffdffff (f=200)
PCI: Failed to allocate mem resource #2:40000000@c0000000 for 0000:00:00.0
PCI: Failed to allocate mem resource #4:40000000@c0000000 for 0000:00:00.0
Registering ipic with sysfs...
SCSI subsystem initialized
usbcore: registered new driver usbfs
usbcore: registered new driver hub
VFS: Disk quotas dquot_6.5.1
Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
squashfs: version 3.0 (2006/03/15) Phillip Lougher
Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
JFFS2 version 2.2. (C) 2001-2003 Red Hat, Inc.
Initializing Cryptographic API
MPC83xx SPI Driver on MDS board: Revision: 1.0 
Successfully registered spi major=252
MPC83xx GPIO Driver on MDS board: Revision: 1.0 
Successfully registered gpio major=253
Real Time Clock Driver v1.10f
MPC83xx Watchdog Demo Init 
Serial: 8250/16550 driver $Revision: 1.1.1.1.2.1 $ 4 ports, IRQ sharing disabled
ttyS0 at MMIO 0xe0004500 (irq = 9) is a 16550A
ttyS1 at MMIO 0xe0004600 (irq = 10) is a 16550A
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered
RAMDISK driver initialized: 16 RAM disks of 16384K size 1024 blocksize
loop: loaded (max 8 devices)
gfar_driver_version = 1.1a
GFAR: ECNTRL=00001018, MACCFG1,2=00000030,00007205
eth0: Gianfar Ethernet Controller Version 1.1, 00:0a:79:b9:91:ee 
eth0: MTU = 1500 (frame size=1514,truesize=1784)
eth0: Running with NAPI enabled
eth0: 64/64 RX/TX BD ring size
eth0: Socket buffer recycling mode enabled
SKB Handler initialized(max=64)
MPC8349MDS flash device: 1000000 at fe000000 Partition number 7
MPC8349MDS Flash Map Info: Found 1 x16 devices at 0x0 in 16-bit bank
 Amd/Fujitsu Extended Query Table at 0x0040
MPC8349MDS Flash Map Info: CFI does not contain boot bank location. Assuming top.
number of CFI chips: 1
cfi_cmdset_0002: Disabling erase-suspend-program due to code brokenness.
add_mtd_partitions
Creating 7 MTD partitions on "MPC8349MDS Flash Map Info":
0x00000000-0x00040000 : "U-Boot"
ftl_cs: FTL header not found.
0x00040000-0x00080000 : "U-Boot_ENV"
ftl_cs: FTL header not found.
0x00080000-0x00240000 : "Kernel"
ftl_cs: FTL header not found.
0x00240000-0x00560000 : "Rootfs"
ftl_cs: FTL header not found.
0x00560000-0x00d60000 : "Usr"
ftl_cs: FTL header not found.
0x00d60000-0x00f00000 : "Promise"
ftl_cs: FTL header not found.
0x00f00000-0x01000000 : "Data"
ftl_cs: FTL header not found.
MPC8349MDS flash device initialized
ehci_hcd 0000:00:0e.1: NEC Corporation USB 2.0
ehci_hcd 0000:00:0e.1: new USB bus registered, assigned bus number 1
ehci_hcd 0000:00:0e.1: irq 21, io mem 0x9fffef00
ehci_hcd 0000:00:0e.1: park 0
ehci_hcd 0000:00:0e.1: USB 2.0 initialized, EHCI 1.00, driver 10 Dec 2004
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 3 ports detected
ohci_hcd: 2004 Nov 08 USB 1.1 'Open' Host Controller (OHCI) Driver (PCI)
ohci_hcd 0000:00:0e.0: NEC Corporation USB
ohci_hcd 0000:00:0e.0: new USB bus registered, assigned bus number 2
ohci_hcd 0000:00:0e.0: irq 21, io mem 0x9ffff000
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 3 ports detected
usbcore: registered new driver usblp
drivers/usb/class/usblp.c: v0.13: USB Printer Device Class driver
usbcore: registered new driver hiddev
usbcore: registered new driver usbhid
drivers/usb/input/hid-core.c: v2.01:USB HID core driver
mice: PS/2 mouse device common for all mice
i2c /dev entries driver
device-mapper: 4.4.0-ioctl (2005-01-12) initialised: dm-devel@redhat.com
NET: Registered protocol family 2
IP: routing cache hash table of 1024 buckets, 8Kbytes
TCP established hash table entries: 8192 (order: 4, 65536 bytes)
TCP bind hash table entries: 8192 (order: 3, 32768 bytes)
TCP: Hash tables configured (established 8192 bind 8192)
NET: Registered protocol family 1
NET: Registered protocol family 17
NET: Registered protocol family 5
RAMDISK: Compressed image found at block 0
VFS: Mounted root (ext2 filesystem).
Freeing unused kernel memory: 312k init
Promise FastTrak TX 4310 Serieal Device Driver 2.6.0.0330 (Sep 01, 2006)
PRODUCT_VERSION SR1_1_5 Build_Time Mar 27 2008 17:11:22
Required extension size: max: 2061328 Min: 1554420
fasttrak 0000:00:10.0: Found FastTrak Controller with IRQ: 23
Required DMA safe size: max: 169992 Min: 6556
Required DMA safe size: max: 169992 Min: 6556
scsi0 : ftsata2
  Vendor: Promise   Model: 4 Disk RAID5      Rev: 1.10
  Type:   Direct-Access                      ANSI SCSI revision: 02
sda : very big device. try to use READ CAPACITY(16).
SCSI device sda: 5860182144 512-byte hdwr sectors (3000413 MB)
sda: asking for cache data failed
sda: assuming drive cache: write through
sda : very big device. try to use READ CAPACITY(16).
SCSI device sda: 5860182144 512-byte hdwr sectors (3000413 MB)
sda: asking for cache data failed
sda: assuming drive cache: write through
 unknown partition table
Attached scsi disk sda at scsi0, channel 0, id 0, lun 0
Attached scsi generic sg0 at scsi0, channel 0, id 0, lun 0,  type 0
Initializing USB Mass Storage driver...
usbcore: registered new driver usb-storage
USB Mass Storage support registered.
fuse init (API version 7.8)
fuse distribution version: 2.7.4
kjournald starting.  Commit interval 5 seconds
EXT3 FS on dm-0, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
eth0: MTU = 9000 (frame size=9014,truesize=9464)
fifo_tx_thr=100,1c0
fifo_tx_sp=10,25
fifo_tx_starve=80,1a0
fifo_tx_starve_shutoff=100,1c0
fifo_rx_alarm=100,40
fifo_rx_alarm_shutoff=80,20
fifo_rx_panic=180,60
fifo_rx_panic_shutoff=100,40
eth0: PHY is IP1001 (2430d90)
eth0: Full Duplex
eth0: Speed 1000BT
eth0: Link is up
eth0: Flow control is on

U-Boot:

U-Boot 1.1.3 (Promise u-boot 008) (Nov 15 2006 - 11:25:01) MPC83XX

Clock configuration:
  Coherent System Bus:  266 MHz
  Core:                 399 MHz
  Local Bus Controller: 266 MHz
  Local Bus:             33 MHz
  DDR:                  266 MHz
  I2C:                   88 MHz
  TSEC1:                266 MHz
  TSEC2:                 88 MHz
  USB MPH:                0 MHz
  USB DR:                 0 MHz
CPU: MPC83xx, Rev: 11 at 399.999 MHz
Board: Promise Tech. MPC8343PT
I2C:   ready
DRAM:  Board ID: 0
SDRAM on Local Bus is NOT available!
sdram_init finish
   DDR RAM: 128 MB
Prepare to enter post.
post_bootmode_init()...
post_run() ...Diagnostic Mode Disabled.
FLASH: 16 MB
PCI1 32bit on PMC1,PCI2 32bit on PMC2 & PMC3
        00  0e  1033  0035  0c03  00
        00  0e  1033  00e0  0c03  00
        00  10  105a  3515  0104  0e
In:    serial
Out:   serial
Err:   serial
Net:   Freescale TSEC0: PHY is IP1001 detected, 1000BaseT Full duplex (2430d90)
Freescale TSEC0
Diagnostic Mode Disabled.
Hit any key to stop autoboot:  0

=> bdinfo
memstart    = 0x00000000
memsize     = 0x08000000
flashstart  = 0xFE000000
flashsize   = 0x01000000
flashoffset = 0x0002A000
sramstart   = 0x00000000
sramsize    = 0x00000000
bootflags   = 0x00000001
intfreq     = 399.999 MHz
busfreq     = 266.666 MHz
ethaddr     = 00:01:55:10:46:5E
IP addr     = 10.0.2.1
baudrate    = 115200 bps

=> pci
Scanning PCI devices on bus 0
BusDevFun  VendorId   DeviceId   Device Class       Sub-Class
_____________________________________________________________
00.00.00   0x1957     0x0087     Bridge device           0x80
00.0e.00   0x1033     0x0035     Serial bus controller   0x03
00.0e.01   0x1033     0x00e0     Serial bus controller   0x03
00.10.00   0x105a     0x3515     Mass storage controller 0x04

=> coninfo
List of available devices:
serial   80000003 SIO stdin stdout stderr 

=> flinfo

Bank # 1: CFI compatible FLASH (16 port width with 16 chip width)
Command set is AMD/Fujitsu standard. Driver is polling DQ6 for status checking.
  Size: 16 MB in 128 Sectors
 Erase timeout 16384 ms, write timeout 1 ms, buffer write timeout 4096 ms, buffer size 32
  Sector Start Addresses:
    FE000000 (RO)   FE020000 (RO)   FE040000 (RO)   FE060000 (RO)   FE080000     
    FE0A0000      FE0C0000      FE0E0000      FE100000      FE120000     
    FE140000      FE160000      FE180000      FE1A0000      FE1C0000     
    FE1E0000      FE200000      FE220000      FE240000      FE260000     
    FE280000      FE2A0000      FE2C0000      FE2E0000      FE300000     
    FE320000      FE340000      FE360000      FE380000      FE3A0000     
    FE3C0000      FE3E0000      FE400000      FE420000      FE440000     
    FE460000      FE480000      FE4A0000      FE4C0000      FE4E0000     
    FE500000      FE520000      FE540000      FE560000      FE580000     
    FE5A0000      FE5C0000      FE5E0000      FE600000      FE620000     
    FE640000      FE660000      FE680000      FE6A0000      FE6C0000     
    FE6E0000      FE700000      FE720000      FE740000      FE760000     
    FE780000      FE7A0000      FE7C0000      FE7E0000      FE800000     
    FE820000      FE840000      FE860000      FE880000      FE8A0000     
    FE8C0000      FE8E0000      FE900000      FE920000      FE940000     
    FE960000      FE980000      FE9A0000      FE9C0000      FE9E0000     
    FEA00000      FEA20000      FEA40000      FEA60000      FEA80000     
    FEAA0000      FEAC0000      FEAE0000      FEB00000      FEB20000     
    FEB40000      FEB60000      FEB80000      FEBA0000      FEBC0000     
    FEBE0000      FEC00000      FEC20000      FEC40000      FEC60000     
    FEC80000      FECA0000      FECC0000      FECE0000      FED00000     
    FED20000      FED40000      FED60000      FED80000      FEDA0000     
    FEDC0000      FEDE0000      FEE00000      FEE20000      FEE40000     
    FEE60000      FEE80000      FEEA0000      FEEC0000      FEEE0000     
    FEF00000      FEF20000      FEF40000      FEF60000      FEF80000     
    FEFA0000      FEFC0000      FEFE0000     

=> iprobe
Valid chip addresses: 2D 50
Excluded chip addresses: 69

I've got the openwrt buildroot from git, set it up how i think is reasonable with make menuconfig/make kernel_menuconfig, but now i'm stuck.

Here's my dumb ass question: How do i get from here to a working image?

EDIT: Words.

(Last edited by luffe48 on 15 Dec 2013, 18:29)

From what i can gather, i need to write a .dts file and get that baked into a uImage. Does that sound right?

The discussion might have continued from here.