Hi all,
Quick update: I have updated the .config and patch above. The PCI bus is now working correctly -- it turns out that the device tree that RouterBOOT feeds the kernel is utter crap, and doesn't provide a map of IO/memory ranges for the PHB. I've made a (dangerous) assumption in assuming that the RB600 ranges are identical to those on the Freescale MPC8343_MDS test board and totally hacked support in. I have no idea whether this is true or not.
For your convenience, I've also uploaded a complete vmlinux image, prior to being objcopy'd with kernel parameters: http://cynigram.com/~nfontes/rb600/vmli … 26.5-rb600 (7.1MB).
Here's a complete dmesg with a bit of debug output:
[ 0.000000] Using Mikrotik RouterBOARD RB333/RB600 machine description
[ 0.000000] Linux version 2.6.26.5-chapelhill0 (nfontes@mizuho) (gcc version 4.2.4 (Debian 4.2.4-3)) #35 Sat Oct 4 01:26:12 EDT 2008
[ 0.000000] Found legacy serial port 0 for /soc8343@e0000000/serial@4500
[ 0.000000] mem=e0004500, taddr=e0004500, irq=0, clk=266664000, speed=0
[ 0.000000] console [udbg0] enabled
[ 0.000000] Entering add_active_range(0, 0, 32768) 0 entries of 256 used
[ 0.000000] RB333/RB600: rbppc_pci_add_bridge(/soc8343@e0000000/pci@8500): Adding PCI host bridge
[ 0.000000] Found RB333/RB600 PCI host bridge at 0x00000000e0008500. Firmware bus number: 0->0
[ 0.000000] Hose at 0xc05fe000 (cfg_addr=0xfdffd300, cfg_data=0xfdffd304)
[ 0.000000] Ranges:
[ 0.000000] IO: 0x0000000000000000..0x00000000e20fffff -> 0x0000000000000000
[ 0.000000] Memory: 0x0000000090000000..0x000000009fffffff -> 0x0000000090000000
[ 0.000000] Memory (prefetch): 0x0000000080000000..0x000000008fffffff -> 0x0000000080000000
[ 0.000000] Top of RAM: 0x8000000, Total RAM: 0x8000000
[ 0.000000] Memory hole size: 0MB
[ 0.000000] Zone PFN ranges:
[ 0.000000] DMA 0 -> 32768
[ 0.000000] Normal 32768 -> 32768
[ 0.000000] Movable zone start PFN for each node
[ 0.000000] early_node_map[1] active PFN ranges
[ 0.000000] 0: 0 -> 32768
[ 0.000000] On node 0 totalpages: 32768
[ 0.000000] DMA zone: 256 pages used for memmap
[ 0.000000] DMA zone: 0 pages reserved
[ 0.000000] DMA zone: 32512 pages, LIFO batch:7
[ 0.000000] Normal zone: 0 pages used for memmap
[ 0.000000] Movable zone: 0 pages used for memmap
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32512
[ 0.000000] Kernel command line: root=/dev/sdb2 debug earlyprintk=serial,ttyS0,keep loglevel=7 console=ttyS0,115200 board=mpc8343 boot=1
[ 0.000000] IPIC (128 IRQ sources) at fdefc700
[ 0.000000] PID hash table entries: 512 (order: 9, 2048 bytes)
[ 0.000000] time_init: decrementer frequency = 66.666000 MHz
[ 0.000000] time_init: processor frequency = 399.996000 MHz
[ 0.000009] clocksource: timebase mult[3c00275] shift[22] registered
[ 0.006244] clockevent: decrementer mult[1111] shift[16] cpu[0]
[ 0.006764] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
[ 0.014337] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
[ 0.035706] Memory: 123632k/131072k available (5612k kernel code, 7284k reserved, 180k data, 289k bss, 204k init)
[ 0.045983] SLUB: Genslabs=12, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.053503] Calibrating delay loop... 133.12 BogoMIPS (lpj=266240)
[ 0.145714] Security Framework initialized
[ 0.149685] Capability LSM initialized
[ 0.153411] Mount-cache hash table entries: 512
[ 0.159388] Initializing cgroup subsys ns
[ 0.163294] Initializing cgroup subsys cpuacct
[ 0.168993] net_namespace: 652 bytes
[ 0.173612] NET: Registered protocol family 16
[ 0.181622] PCI: Probing PCI hardware
[ 0.185590] PCI: Scanning bus 0000:00
[ 0.185641] PCI: Found 0000:00:00.0 [1957/0087] 000b20 00
[ 0.185684] pci 0000:00:00.0: calling <7>pci 0000:00:00.0: calling <7>PCI: Found 0000:00:0b.0 [1106/3119] 000200 00
[ 0.185771] pci 0000:00:0b.0: calling <7>PCI: Found 0000:00:0c.0 [168c/0013] 000200 00
[ 0.185839] pci 0000:00:0c.0: calling <7>PCI: Fixups for bus 0000:00
[ 0.186005] PCI: Bus scan for 0000:00 returning with max=00
[ 0.187164] got res [90000000:9000ffff] bus [90000000:9000ffff] flags 20020200 for BAR 0 of 0000:00:0c.0
[ 0.187199] PCI: moved device 0000:00:0c.0 resource 0 (20200) to 90000000
[ 0.187220] got res [1000:10ff] bus [1000:10ff] flags 20020101 for BAR 0 of 0000:00:0b.0
[ 0.187240] PCI: moved device 0000:00:0b.0 resource 0 (20101) to 1000
[ 0.187260] got res [90010000:900100ff] bus [90010000:900100ff] flags 20020200 for BAR 1 of 0000:00:0b.0
[ 0.187282] PCI: moved device 0000:00:0b.0 resource 1 (20200) to 90010000
[ 0.187301] Registering qe_ic with sysfs...
[ 0.187818] Registering ipic with sysfs...
[ 0.203845] SCSI subsystem initialized
[ 0.207704] libata version 3.00 loaded.
[ 0.210035] i2c-core: driver [dummy] registered
[ 0.239125] NET: Registered protocol family 2
[ 0.243388] Switched to high resolution mode on CPU 0
[ 0.283627] IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.291405] TCP established hash table entries: 4096 (order: 3, 32768 bytes)
[ 0.298577] TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.305037] TCP: Hash tables configured (established 4096 bind 4096)
[ 0.311243] TCP reno registered
[ 0.323651] NET: Registered protocol family 1
[ 0.330685] prom_parse: Bad cell count for /soc8343@e0000000/mdio@24520/ethernet-phy@0
[ 0.338893] prom_parse: Bad cell count for /soc8343@e0000000/mdio@24520/ethernet-phy@1
[ 0.351268] audit: initializing netlink socket (disabled)
[ 0.356619] type=2000 audit(0.313:1): initialized
[ 0.382087] VFS: Disk quotas dquot_6.5.1
[ 0.386232] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[ 0.394709] DLM (built Sep 21 2008 19:30:26) installed
[ 0.404506] Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
[ 0.413354] JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
[ 0.420963] fuse init (API version 7.9)
[ 0.426109] msgmni has been set to 241
[ 0.431107] io scheduler noop registered
[ 0.434934] io scheduler anticipatory registered
[ 0.439556] io scheduler deadline registered
[ 0.443952] io scheduler cfq registered (default)
[ 0.448531] pci 0000:00:00.0: calling <7>pci 0000:00:00.0: calling <7>pci 0000:00:0b.0: calling <7>pci 0000:00:0b.0: calling <7>pci 0000:00:0c.0: calling <7>pci 0000:00:0c.0: calling <6>Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled
[ 0.452077] serial8250.0: ttyS0 at MMIO 0xe0004500 (irq = 16) is a 16550A
[ 0.458809] console handover: boot [udbg0] -> real [ttyS0]
[ 0.476875] brd: module loaded
[ 0.486170] loop: module loaded
[ 0.490772] nbd: registered device at major 43
[ 0.513511] Gianfar MII Bus: probed
[ 0.518756] eth0: Gianfar Ethernet Controller Version 1.2, 00:0c:42:20:1e:15
[ 0.525991] eth0: Running with NAPI enabled
[ 0.530201] eth0: 256/256 RX/TX BD ring size
[ 0.536051] eth1: Gianfar Ethernet Controller Version 1.2, 00:0c:42:20:1e:16
[ 0.543184] eth1: Running with NAPI enabled
[ 0.547397] eth1: 256/256 RX/TX BD ring size
[ 0.552123] VIA Networking Velocity Family Gigabit Ethernet Adapter Driver Ver. 1.14
[ 0.559957] Copyright (c) 2002, 2003 VIA Networking Technologies, Inc.
[ 0.566530] Copyright (c) 2004 Red Hat Inc.
[ 0.570761] via-velocity 0000:00:0b.0: calling <6>eth2: VIA Networking Velocity Family Gigabit Ethernet Adapter
[ 0.572616] eth2: Ethernet Address: 00:0C:42:20:1E:17
[ 0.593156] PPP generic driver version 2.4.2
[ 0.598128] PPP Deflate Compression module registered
[ 0.603255] PPP BSD Compression module registered
[ 0.608612] PPP MPPE Compression module registered
[ 0.613484] NET: Registered protocol family 24
[ 0.618018] PPPoL2TP kernel driver, V1.0
[ 0.621973] SLIP: version 0.8.4-NET3.019-NEWTTY (dynamic channels, max=256) (6 bit encapsulation enabled).
[ 0.631672] CSLIP: code copyright 1989 Regents of the University of California.
[ 0.639012] SLIP linefill/keepalive option.
[ 0.648095] tun: Universal TUN/TAP device driver, 1.6
[ 0.653225] tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
[ 0.659810] HDLC support module revision 1.22
[ 0.664256] DLCI driver v0.35, 4 Jan 1997, mike.mclagan@linux.org.
[ 0.670585] ath5k_pci 0000:00:0c.0: enabling device (0000 -> 0002)
[ 0.676831] PCI: Enabling bus mastering for device 0000:00:0c.0
[ 0.676909] ath5k_pci 0000:00:0c.0: registered as 'phy0'
[ 0.772135] phy0: Selected rate control algorithm 'pid'
[ 0.774179] ath5k phy0: Atheros AR5414 chip found (MAC: 0xa5, PHY: 0x61)
[ 0.784163] Loading iSCSI transport class v2.0-869.
[ 0.792925] iscsi: registered transport (tcp)
[ 0.797765] Driver 'sd' needs updating - please use bus_type methods
[ 0.872255] scsi0 : scsi_debug, version 1.81 [20070104], dev_size_mb=8, opts=0x0
[ 0.881780] scsi 0:0:0:0: Direct-Access Linux scsi_debug 0004 PQ: 0 ANSI: 5
[ 0.890815] MikroTik RouterBoard RB333/RB600 CompactFlash PATA driver, version 0.0.1
[ 0.898747] CF: using Local-Bus clock 66666 kHz 15000 ps
[ 0.904102] CF: irq level 0
[ 0.908377] scsi1 : pata_rb_ppc
[ 0.911888] sd 0:0:0:0: [sda] 16384 512-byte hardware sectors (8 MB)
[ 0.918698] ata1: PATA max PIO6 irq 20
[ 0.922697] CF PIO mode changed to 0
[ 0.926445] sd 0:0:0:0: [sda] Write Protect is off
[ 0.931286] sd 0:0:0:0: [sda] Mode Sense: 73 00 10 08
[ 0.939426] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, supports DPO and FUA
[ 0.951442] sd 0:0:0:0: [sda] 16384 512-byte hardware sectors (8 MB)
[ 0.959424] sd 0:0:0:0: [sda] Write Protect is off
[ 0.964273] sd 0:0:0:0: [sda] Mode Sense: 73 00 10 08
[ 0.971424] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, supports DPO and FUA
[ 0.980033] sda: unknown partition table
[ 0.994625] sd 0:0:0:0: [sda] Attached SCSI disk
[ 1.000092] sd 0:0:0:0: Attached scsi generic sg0 type 0
[ 1.079814] ata1.00: CFA: SanDisk SDCFX3-4096, HDX 4.31, max MWDMA2
[ 1.086156] ata1.00: 8027712 sectors, multi 0: LBA
[ 1.091653] ata1.00: configured for PIO6
[ 1.095723] blk_queue_max_hw_segments: set to minimum 1
[ 1.101422] scsi 1:0:0:0: Direct-Access ATA SanDisk SDCFX3-4 HDX PQ: 0 ANSI: 5
[ 1.110720] sd 1:0:0:0: [sdb] 8027712 512-byte hardware sectors (4110 MB)
[ 1.117763] sd 1:0:0:0: [sdb] Write Protect is off
[ 1.122634] sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[ 1.122912] sd 1:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[ 1.133073] sd 1:0:0:0: [sdb] 8027712 512-byte hardware sectors (4110 MB)
[ 1.140114] sd 1:0:0:0: [sdb] Write Protect is off
[ 1.144985] sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[ 1.145263] sd 1:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[ 1.154509] sdb: sdb1 sdb2
[ 1.160871] sd 1:0:0:0: [sdb] Attached SCSI removable disk
[ 1.167192] sd 1:0:0:0: Attached scsi generic sg1 type 0
[ 1.172646] MikroTik RouterBoard RB333/RB600 CompactFlash PATA driver, version 0.0.1
[ 1.180473] CF: irq level 0
[ 1.183639] scsi2 : pata_rb_ppc
[ 1.187300] ata2: PATA max PIO6 irq 22
[ 1.355565] NFTL driver: nftlcore.c $Revision: 1.98 $, nftlmount.c $Revision: 1.41 $
[ 1.363583] INFTL: inftlcore.c $Revision: 1.19 $, inftlmount.c $Revision: 1.18 $
[ 1.371391] SSFDC read-only Flash Translation layer
[ 1.376487] slram: not enough parameters.
[ 1.380553] block2mtd: version $Revision: 1.30 $
[ 1.385662] MikroTik RouterBoard RB333/RB600 NAND driver
[ 1.391147] NAND device: Manufacturer ID: 0xad, Chip ID: 0x76 (Hynix NAND 64MiB 3,3V 8-bit)
[ 1.399581] Scanning device for bad blocks
[ 1.404261] Bad eraseblock 9 at 0x00024000
[ 1.409037] Bad eraseblock 21 at 0x00054000
[ 1.439506] Bad eraseblock 481 at 0x00784000
[ 1.453033] Bad eraseblock 643 at 0x00a0c000
[ 1.470102] Bad eraseblock 867 at 0x00d8c000
[ 1.486602] Bad eraseblock 1081 at 0x010e4000
[ 1.491364] Bad eraseblock 1088 at 0x01100000
[ 1.502973] Bad eraseblock 1215 at 0x012fc000
[ 1.518402] Bad eraseblock 1409 at 0x01604000
[ 1.527329] Bad eraseblock 1489 at 0x01744000
[ 1.538713] Bad eraseblock 1612 at 0x01930000
[ 1.543962] Bad eraseblock 1627 at 0x0196c000
[ 1.548427] Bad eraseblock 1629 at 0x01974000
[ 1.554205] Bad eraseblock 1654 at 0x019d8000
[ 1.561703] Bad eraseblock 1709 at 0x01ab4000
[ 1.577718] Bad eraseblock 1913 at 0x01de4000
[ 1.585846] Bad eraseblock 1979 at 0x01eec000
[ 1.590939] Bad eraseblock 1992 at 0x01f20000
[ 1.628890] Bad eraseblock 2580 at 0x02850000
[ 1.698273] Bad eraseblock 3718 at 0x03a18000
[ 1.724207] Creating 2 MTD partitions on "NAND 64MiB 3,3V 8-bit":
[ 1.730339] 0x00000000-0x00400000 : "RouterBoard NAND Boot"
[ 1.738631] 0x00400000-0x04000000 : "RouterBoard NAND Main"
[ 1.751218] ftl_cs: FTL header not found.
[ 1.760541] aoe: AoE v47 initialised.
[ 1.765451] i2c-core: driver [rtc-ds1374] registered
[ 1.765474] i2c /dev entries driver
[ 1.769619] i2c-core: driver [dev_driver] registered
[ 1.770213] i2c-core: driver [lm87] registered
[ 1.770649] WDT driver for MPC83xx initialized. mode:reset timeout=65535 (-65536 seconds)
[ 1.780097] device-mapper: uevent: version 1.0.3
[ 1.785986] device-mapper: ioctl: 4.13.0-ioctl (2007-10-18) initialised: dm-devel@redhat.com
[ 1.795043] device-mapper: multipath: version 1.0.5 loaded
[ 1.800630] device-mapper: multipath round-robin: version 1.0.0 loaded
[ 1.807193] device-mapper: multipath emc: version 0.0.3 loaded
[ 1.813058] device-mapper: multipath hp-sw: version 1.0.0 loaded
[ 1.819213] device-mapper: multipath rdac: rdac: version 0.4 loaded
[ 1.827167] Netfilter messages via NETLINK v0.30.
[ 1.832175] nf_conntrack version 0.5.0 (2048 buckets, 8192 max)
[ 1.842524] IPv4 over IPv4 tunneling driver
[ 1.849046] GRE over IPv4 tunneling driver
[ 1.857647] ip_tables: (C) 2000-2006 Netfilter Core Team
[ 1.863186] ClusterIP Version 0.8 loaded successfully
[ 1.868379] arp_tables: (C) 2002 David S. Miller
[ 1.873108] TCP cubic registered
[ 1.876373] Initializing XFRM netlink socket
[ 1.881051] NET: Registered protocol family 10
[ 1.889385] lo: Disabled Privacy Extensions
[ 1.914896] tunl0: Disabled Privacy Extensions
[ 1.927562] Mobile IPv6
[ 1.930091] ip6_tables: (C) 2000-2006 Netfilter Core Team
[ 1.936121] IPv6 over IPv4 tunneling driver
[ 1.944958] sit0: Disabled Privacy Extensions
[ 1.958135] ip6tnl0: Disabled Privacy Extensions
[ 1.967148] NET: Registered protocol family 17
[ 1.971693] NET: Registered protocol family 15
[ 1.976945] Bridge firewalling registered
[ 1.982612] RPC: Registered udp transport module.
[ 1.987405] RPC: Registered tcp transport module.
[ 1.992200] 802.1Q VLAN Support v1.8 Ben Greear <greearb@candelatech.com>
[ 1.999031] All bugs added by David S. Miller <davem@redhat.com>
[ 2.005881] SCTP: Hash tables configured (established 4096 bind 8192)
[ 2.041221] registered taskstats version 1
[ 2.045641] drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
[ 2.064217] VFS: Mounted root (ext2 filesystem) readonly.
[ 2.069834] Freeing unused kernel memory: 204k init
Other good news: The ath5k developers have just added support for AP mode to the driver. I suspect kernel 2.6.27 or .28 will have full support for it, and you can already compile it as a working module if you want (make sure you remove the built-in ath5k from the kernel first!).
Enjoy!
(Last edited by impl on 7 Oct 2008, 00:26)