Stuck getting DTS working for a new kirkwood board
Dashie
dashie at sigpipe.me
Fri Feb 21 17:01:49 EST 2014
On 02/21/2014 09:08 PM, Jason Cooper wrote:
> On Fri, Feb 21, 2014 at 08:21:11PM +0100, Dashie wrote:
>> On 02/21/2014 04:15 PM, Jason Cooper wrote:
>>> On Fri, Feb 21, 2014 at 08:39:08AM +0100, Dashie wrote:
>>>> On 02/21/2014 02:34 AM, Jason Cooper wrote:
>>>>> On Thu, Feb 20, 2014 at 10:22:35PM +0100, Dashie wrote:
>>>>>> I've done some tests using mainlineLinux and arcNumber and i remember to
>>>>>> got some things working (PCI-e, Intel eth) but only two drives and no
>>>>>> fan/sensor using arcNumber for "00000b1e HP t5325 Thin Client
>>>>>> 2846".
>>>>>>
>>>>> Let's focus on converting this board file to devicetree. which means
>>>>> you'll be setting mainlineLinux to true and arcNumber to 0xffffffff.
>>>>> (means booting via devicetree).
>>>>>
>>>> Actually i've unset mainlineLinux and arcNumber, so the DTB is used.
>>>> In fact the t5325 device is the only one which the pci-e works, but it
>>>> use old -setup.c files and then i'm lost with that.
>>>>
>>>>>> I've since started to use a DTS, copied the guruplug-server-plus (IIRC)
>>>>>> and done some changes, actually i can get working :
>>>>>> - temp sensor
>>>>>> - fan control (off, middle, full)
>>>>>> - integrated marvell eth
>>>>>> - the four disks are detected and seems working
>>>>> That's a good start.
>>>>>
>>>>>> But can't get the PCI-e working (and then the intel ethernet), also
>>>>>> sensor path seems to change every reboot (i need to do more tests).
>>>>>> Also i've SATA power reg enabled in the DTS but it doesn't seems to have
>>>>>> any (to be confirmed, the original firmware seems to have the ability to
>>>>>> shutdown unaccessed drives) and i will remove them, anyway i don't know
>>>>>> the GPIO, if any.
>>>>>>
>>>>>> I still miss some GPIOS for : Led (r/g) power, func led, the four sata
>>>>>> leds, maybe some triggers for hdds, and the power and func buttons.
>>>>>> (already tried gpio export and out direction and "1" in value, but
>>>>>> nothing blink)
>>>>>> Reset button sends things in /dev/input/input0 so it seems to works.
>>>>>>
>>>>>> The current DTS is joined to this mail, i've actually the NAS with me
>>>>>> and can test things. I can provide too : original dmesg (from original
>>>>>> firmware), current dmesg using DTS, lspci -vvv (from kernel with arcNumber).
>>>>>>
>>>>>> I'm currently using a stock 3.12.9 debian kernel and doesn't have
>>>>>> anymore access to the original firmware.
>>>>>>
>>>>> It would be helpful if you could build a kernel from the git repos.
>>>>> Have you done that before?
>>>>>
>>>> I've built a kernel from the 3.12.9 debian sources but can't get it to
>>>> boot, i got nothing after "Uncompressing Linux... done, booting the
>>>> kernel.".
>>> Check that you have 'earlyprintk' in your commandline, and that you set
>>>
>>> Kernel hacking
>>> -> Kernel low-level debugging functions
>>> -> Kernel low-level debugging port (Kernel low-level debugging via 8250 UART)
>>> -> (0xf1012000) Physical base address of debug UART
>>> -> (0xfde12000) Virtual base address of debug UART
>>> -> (2) Register offset shift for the 8250 debug UART
>>> -> Early printk
>>>
>>> Also make sure you have set 'console=ttyS0,115200n8' on the commandline
>>> as well.
>> All good, also checked for DTB append.
>>>> I've used the debian's kernel config file, but i can try the
>>>> kirkwood_defconfig make target and checking everything is activated (DTB
>>>> append, SATA PMP, etc.)
>>>> Which git repos i could try to build then ?
>>> We'll have you work with two repos. Linus' mainline repo:
>>>
>>> $ cd
>>> $ git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
>>> $ cd linux
>>> $ git config --add user.name "first and last"
>>> $ git config --add user.email "dashie at sigpipe.me"
>>>
>>> And we'll add our repo as another remote:
>>>
>>> $ git remote add mvebu git://git.infradead.org/linux-mvebu.git
>>> $ git remote update --prune mvebu
>>>
>>> First you should try v3.14-rc1
>>>
>>> $ git checkout -b t5325 v3.14-rc1
>>>
>>> Now, add your dts file and commit the result. Build, boot, report back.
>>>
>>> I wold also do kirkwood_defconfig with the above that I mentioned.
>>>
>> Well, with kirkwood_defconfig it doesn't find the SATA PHY and panic.
>> So i've used my debian config, make oldconfig, built and ... the toy is
>> booting.
> Yes, this is a known issue. You worked around it by enabling generic
> phy support (it's most likely in the other configs).
>
>> Since i've checkout the mvebu branch,
> ? I'm confused. You should be on v3.14-rc1 with your dts file change
> on top.
Err yes exactly.
>> i think it's better to start from kirkwood_defconfig and activate
>> things that starting from the debian config, right ?
> Yes, we use kirkwood_defconfig for testing here so it should be a good,
> up-to-date minimal config for starting from (with the exception of the
> above bug). Debian's config, by necessity is much bigger.
>
>> Anyway, going to play with an initrd to get rootfs on usb working.
> Looks like you just need to add some modules or compile them in.
>
> thx,
>
> Jason.
I restarted from the defconfig kirkwood, activated some builtin stuff
(USB / e1000) and it boots perfectly.
Sata and fan doesn't seems to be detected, but i got PCI-e with intel
eth detected this time.
'will see tomorrow about SATA part.
Thanks,
Dashie.
-------------- next part --------------
Bytes transferred = 3406619 (33fb1b hex)
## Booting image at 02000000 ...
Image Name: 3.x-git-t5325__5
Created: 2014-02-21 21:54:13 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 3406555 Bytes = 3.2 MB
Load Address: 00008000
Entry Point: 00008000
Verifying Checksum ... OK
OK
Starting kernel ...
Uncompressing Linux... done, booting the kernel.
Booting Linux on physical CPU 0x0
Linux version 3.14.0-rc1-dirty (dashie at soarin) (gcc version 4.8.1 (Sourcery CodeBench Lite 2013.11-33) ) #8 PREEMPT Fri Feb 21 22:49:34 CET 2014
CPU: Feroceon 88FR131 [56251311] revision 1 (ARMv5TE), cr=00053977
CPU: VIVT data cache, VIVT instruction cache
Machine model: Verbatim PowerBay
bootconsole [earlycon0] enabled
Memory policy: Data cache writeback
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 65024
Kernel command line: mtdparts=orion_nand:0x000e0000 at 0x00000000(u-boot)ro,0x1d73c0 at 0x000e0000(uImage),0x86cb58 at 0x2b73c0(uInitrd),- at 0xb23f18(rootfs) console=ttyS0,115200n8 verbose mem=256M root=/dev/sda2 rootdelay=8 ip=off earlyprintk
PID hash table entries: 1024 (order: 0, 4096 bytes)
Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
Memory: 252524K/262144K available (4903K kernel code, 253K rwdata, 1320K rodata, 153K init, 630K bss, 9620K reserved, 0K highmem)
Virtual kernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
vmalloc : 0xd0800000 - 0xff000000 ( 744 MB)
lowmem : 0xc0000000 - 0xd0000000 ( 256 MB)
pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
modules : 0xbf000000 - 0xbfe00000 ( 14 MB)
.text : 0xc0008000 - 0xc061c1d8 (6225 kB)
.init : 0xc061d000 - 0xc064377c ( 154 kB)
.data : 0xc0644000 - 0xc06835a0 ( 254 kB)
.bss : 0xc06835ac - 0xc0721144 ( 631 kB)
SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
Preemptible hierarchical RCU implementation.
NR_IRQS:114
sched_clock: 32 bits at 200MHz, resolution 5ns, wraps every 21474836475ns
Console: colour dummy device 80x30
Calibrating delay loop... 1191.11 BogoMIPS (lpj=5955584)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
Setting up static identity map for 0x4ab1a0 - 0x4ab1f8
devtmpfs: initialized
pinctrl core: initialized pinctrl subsystem
regulator-dummy: no parameters
NET: Registered protocol family 16
DMA: preallocated 256 KiB pool for atomic coherent allocations
cpuidle: using governor ladder
cpuidle: using governor menu
Kirkwood: MV88F6281-A0.
Feroceon L2: Enabling L2
Feroceon L2: Cache support initialised.
[Firmware Info]: /ocp at f1000000/ethernet-controller at 72000/ethernet0-port at 0: local-mac-address is not set
bio: create slab <bio-0> at 0
vgaarb: loaded
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
pps_core: LinuxPPS API ver. 1 registered
pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti at linux.it>
PTP clock support registered
cfg80211: Calling CRDA to update world regulatory domain
Switched to clocksource orion_clocksource
NET: Registered protocol family 2
TCP established hash table entries: 2048 (order: 1, 8192 bytes)
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
TCP: Hash tables configured (established 2048 bind 2048)
TCP: reno registered
UDP hash table entries: 256 (order: 0, 4096 bytes)
UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
NET: Registered protocol family 1
RPC: Registered named UNIX socket transport module.
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
futex hash table entries: 256 (order: -1, 2048 bytes)
jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
msgmni has been set to 493
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
kirkwood-pinctrl f1010000.pinctrl: registered pinctrl driver
mvebu-pcie pcie-controller.1: PCI host bridge to bus 0000:00
pci_bus 0000:00: root bus resource [io 0x1000-0xfffff]
pci_bus 0000:00: root bus resource [mem 0xe0000000-0xf0000000]
pci_bus 0000:00: root bus resource [bus 00-ff]
PCI: bus0: Fast back to back transfers disabled
pci 0000:00:01.0: bridge configuration invalid ([bus 00-00]), reconfiguring
PCI: bus1: Fast back to back transfers disabled
pci 0000:00:01.0: BAR 8: assigned [mem 0xe0000000-0xe00fffff]
pci 0000:00:01.0: BAR 7: assigned [io 0x10000-0x10fff]
pci 0000:01:00.0: BAR 0: assigned [mem 0xe0000000-0xe001ffff]
pci 0000:01:00.0: BAR 3: assigned [mem 0xe0020000-0xe0023fff]
pci 0000:01:00.0: BAR 2: assigned [io 0x10000-0x1001f]
pci 0000:00:01.0: PCI bridge to [bus 01]
pci 0000:00:01.0: bridge window [io 0x10000-0x10fff]
pci 0000:00:01.0: bridge window [mem 0xe0000000-0xe00fffff]
mv_xor f1060800.xor: Marvell shared XOR driver
mv_xor f1060800.xor: Marvell XOR: ( xor cpy )
mv_xor f1060800.xor: Marvell XOR: ( xor cpy )
mv_xor f1060900.xor: Marvell shared XOR driver
mv_xor f1060900.xor: Marvell XOR: ( xor cpy )
mv_xor f1060900.xor: Marvell XOR: ( xor cpy )
Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled
f1012000.serial: ttyS0 at MMIO 0xf1012000 (irq = 33, base_baud = 12500000) is a 16550A
console [ttyS0] enabled
console [ttyS0] enabled
bootconsole [earlycon0] disabled
bootconsole [earlycon0] disabled
loop: module loaded
e1000e: Intel(R) PRO/1000 Network Driver - 2.3.2-k
e1000e: Copyright(c) 1999 - 2013 Intel Corporation.
PCI: enabling device 0000:00:01.0 (0140 -> 0143)
e1000e 0000:01:00.0: Interrupt Throttling Rate (ints/sec) set to dynamic conservative mode
e1000e 0000:01:00.0 eth0: registered PHC clock
e1000e 0000:01:00.0 eth0: (PCI Express:2.5GT/s:Width x1) 00:a0:b0:a1:01:79
e1000e 0000:01:00.0 eth0: Intel(R) PRO/1000 Network Connection
e1000e 0000:01:00.0 eth0: MAC: 3, PHY: 8, PBA No: FFFFFF-0FF
libphy: orion_mdio_bus: probed
mv643xx_eth: MV-643xx 10/100/1000 ethernet driver version 1.4
mv643xx_eth_port mv643xx_eth_port.0 eth1: port 0 with MAC address 00:50:43:3c:3b:5d
libertas_sdio: Libertas SDIO driver
libertas_sdio: Copyright Pierre Ossman
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
ehci-pci: EHCI PCI platform driver
ehci-orion: EHCI orion driver
orion-ehci f1050000.ehci: EHCI Host Controller
orion-ehci f1050000.ehci: new USB bus registered, assigned bus number 1
orion-ehci f1050000.ehci: irq 24, io mem 0xf1050000
orion-ehci f1050000.ehci: USB 2.0 started, EHCI 1.00
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
usbcore: registered new interface driver usb-storage
usbcore: registered new interface driver ums-datafab
usbcore: registered new interface driver ums-freecom
usbcore: registered new interface driver ums-jumpshot
usbcore: registered new interface driver ums-sddr09
usbcore: registered new interface driver ums-sddr55
mousedev: PS/2 mouse device common for all mice
usb 1-1: new high-speed USB device number 2 using orion-ehci
hub 1-1:1.0: USB hub found
hub 1-1:1.0: 2 ports detected
usb 1-1.2: new high-speed USB device number 3 using orion-ehci
usb-storage 1-1.2:1.0: USB Mass Storage device detected
scsi0 : usb-storage 1-1.2:1.0
rtc-mv f1010300.rtc: internal RTC not ticking
i2c /dev entries driver
lm75 0-0049: hwmon0: sensor 'lm75'
orion_wdt: Initial timeout 21 sec
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
oprofile: no performance counters
oprofile: using timer interrupt.
TCP: cubic registered
NET: Registered protocol family 17
lib80211: common routines for IEEE802.11 drivers
input: gpio_keys.3 as /devices/gpio_keys.3/input/input0
drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
Waiting 8 sec before mounting root device...
scsi 0:0:0:0: Direct-Access SanDisk Cruzer Orbit 1.27 PQ: 0 ANSI: 6
sd 0:0:0:0: Attached scsi generic sg0 type 0
sd 0:0:0:0: [sda] 15633408 512-byte logical blocks: (8.00 GB/7.45 GiB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
sda: sda1 sda2 sda3 < sda5 >
sd 0:0:0:0: [sda] Attached SCSI disk
EXT3-fs (sda2): error: couldn't mount because of unsupported optional features (240)
EXT2-fs (sda2): error: couldn't mount because of unsupported optional features (240)
EXT4-fs (sda2): mounted filesystem with ordered data mode. Opts: (null)
VFS: Mounted root (ext4 filesystem) readonly on device 8:2.
devtmpfs: mounted
Freeing unused kernel memory: 152K (c061d000 - c0643000)
Mount failed for selinuxfs on /sys/fs/selinux: No such file or directory
INIT: version 2.88 booting
[info] Using makefile-style concurrent boot in runlevel S.
findfs: unable to resolve 'UUID=2922a347-7209-4983-8038-eae31b911dfa'
[....] Starting the hotplug events dispatcher: udevdsystemd-udevd[771]: starting version 204
. ok
[....] Synthesizing the initial hotplug events...systemd-udevd[795]: renamed network interface eth1 to rename3
done.
[....] Waiting for /dev to be fully populated...systemd-udevd[792]: renamed network interface eth0 to eth2
systemd-udevd[795]: renamed network interface rename3 to eth0
done.
[....] Activating swap...Adding 383996k swap on /dev/sda5. Priority:-1 extents:1 across:383996k
done.
EXT4-fs (sda2): re-mounted. Opts: (null)
[....] Checking root file system...fsck from util-linux 2.20.1
/dev/sda2: clean, 108733/449680 files, 582150/1795328 blocks
done.
random: nonblocking pool is initialized
EXT4-fs (sda2): re-mounted. Opts: errors=remount-ro
[ ok ] Cleaning up temporary files... /tmp.
[ ok ] Activating lvm and md swap...done.
[....] Checking file systems...fsck from util-linux 2.20.1
/dev/sda1: clean, 17/124496 files, 27791/248832 blocks
done.
[ ok ] Mounting local filesystems...done.
[ ok ] Activating swapfile swap...done.
[ ok ] Cleaning up temporary files....
[ ok ] Setting kernel variables ...done.
[ ok ] Configuring network interfaces...done.
[....] Starting rpcbind daemon...rpcbind: cannot create socket for udp6
rpcbind: cannot create socket for tcp6
. ok
[ ok ] Starting NFS common utilities: statd idmapd.
[ ok ] Cleaning up temporary files....
[ ok ] Setting sensors limits.
[ ok ] Starting qcontrol daemon: qcontrol.
[ ok ] Setting up X socket directories... /tmp/.X11-unix /tmp/.ICE-unix.
INIT: Entering runlevel: 2
[info] Using makefile-style concurrent boot in runlevel 2.
[ ok ] Starting fan speed regulator: fancontrol.
[ ok ] Starting NFS common utilities: statd idmapd.
[warn] Not starting NFS kernel daemon: no exports. ... (warning).
mv643xx_eth_port mv643xx_eth_port.0 eth0: link up, 100 Mb/s, full duplex, flow control disabled
[ ok ] Starting NetBIOS name server: nmbd.
[ ok ] Starting enhanced syslogd: rsyslogd.
[ ok ] Starting deferred execution scheduler: atd.
[ ok ] Starting periodic command scheduler: cron.
[ ok ] Starting system message bus: dbus.
[ ok ] Starting MTA: exim4.
ALERT: exim paniclog /var/log/exim4/paniclog has non-zero size, mail system possibly broken
[ ok ] Starting sensor daemon: sensord.
[ ok ] Starting SMB/CIFS daemon: smbd.
[ ok ] Starting OpenBSD Secure Shell server: sshd.
[ ok ] Starting the Winbind daemon: winbind.
[info] System boot completed.
Error connecting to socket: No such file or directory
Debian GNU/Linux jessie/sid debian ttyS0
debian login: root
Password:
Last login: Fri Feb 21 22:50:56 CET 2014 on ttyS0
Linux debian 3.14.0-rc1-dirty #8 PREEMPT Fri Feb 21 22:49:34 CET 2014 armv5tel
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
ifroot at debian:~# ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:50:43:3c:3b:5d
inet addr:192.168.1.137 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:73 errors:0 dropped:0 overruns:0 frame:0
TX packets:93 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:7219 (7.0 KiB) TX bytes:9313 (9.0 KiB)
Interrupt:31
eth2 Link encap:Ethernet HWaddr 00:a0:b0:a1:01:79
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:25 Memory:e0000000-e0020000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:2 errors:0 dropped:0 overruns:0 frame:0
TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:100 (100.0 B) TX bytes:100 (100.0 B)
root at debian:~# lspci
00:01.0 PCI bridge: Marvell Technology Group Ltd. Device 7846
01:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection
More information about the linux-arm-kernel
mailing list