On Sat, Feb 27, 2016 at 11:09:10PM +0100, Patrick Wildt wrote:
> Hi,
>
> the Allwinner A10 and A20 SoC include an EMAC, but it's only used in
> few devices like the Cubieboard. The A20, like the A31 and A80, contain
> a GMAC, which is a Synopsys Designware controller. This is commonly
> used on the Banana Pi, Lamobo R1, Cubieboard 2 and more. This diff
> is the complete diff I worked on to support the GMAC. It's based on
> NetBSD's DWC driver plus some glue code.
>
> Unfortunately this diff currently (probably) only works on the
> Cubieboard 2, or devices similarly wired. Not every device is wired
> the same, and we currently have no way to distinguish A20 based devices.
> Once we are able to parse a device tree it will be much easier to set up
> the clock and tx delay per board.
Cubieboard 2, also with the workaround patch from arm@.
Thank you.
#### dmesg ####
OpenBSD/sunxi booting ...
arg0 0x0 arg1 0x10bb arg2 0x40000100
atag core flags 0 pagesize 0 rootdev 0
atag serial 0x16516616:0b01944c
atag mem start 0x40000000 size 0x40000000
bootfile:
bootargs:
memory size derived from u-boot
bootconf.mem[0].address = 40000000 pages 262144/0x40000000
Allocating page tables
freestart = 0x40774000, free_pages = 260236 (0x0003f88c)
IRQ stack: p0x407a2000 v0xc07a2000
ABT stack: p0x407a3000 v0xc07a3000
UND stack: p0x407a4000 v0xc07a4000
SVC stack: p0x407a5000 v0xc07a5000
Creating L1 page table at 0x40774000
Mapping kernel
Constructing L2 page tables
undefined page pmap [ using 398344 bytes of bsd ELF symbol table ]
board type: 4283
Copyright (c) 1982, 1986, 1989, 1991, 1993
The Regents of the University of California. All rights reserved.
Copyright (c) 1995-2016 OpenBSD. All rights reserved. http://www.OpenBSD.org
OpenBSD 5.9-current (GENERIC) #2: Mon Feb 29 01:35:57 BRT 2016
[email protected]:/usr/src/sys/arch/armv7/compile/GENERIC
real mem = 1073741824 (1024MB)
avail mem = 1044967424 (996MB)
warning: no entropy supplied by boot loader
mainbus0 at root
cortex0 at mainbus0
ampintc0 at cortex0 nirq 160
agtimer0 at cortex0: tick rate 24000 KHz
cpu0 at mainbus0: ARM Cortex A7 rev 4 (ARMv7 core)
cpu0: DC enabled IC enabled WB disabled EABT branch prediction enabled
cpu0: 32KB(32b/l,2way) I-cache, 32KB(64b/l,4way) wr-back D-cache
sunxi0 at mainbus0: Allwinner A20
sxipio0 at sunxi0
sxiccmu0 at sunxi0
sxidog0 at sunxi0
sxirtc0 at sunxi0
sxiuart0 at sunxi0: console
sxiuart1 at sunxi0
sxiuart2 at sunxi0
sxiuart3 at sunxi0
sxiuart4 at sunxi0
sxiuart5 at sunxi0
sxiuart6 at sunxi0
sxiuart7 at sunxi0
awge0 at sunxi0
awge0: Ethernet address: 02:16:0b:01:94:4c
rlphy0 at awge0 phy 1: RTL8201L 10/100 PHY, rev. 1
ahci0 at sunxi0 AHCI 1.1
ahci0: port 0: 1.5Gb/s
scsibus0 at ahci0: 32 targets
sd0 at scsibus0 targ 0 lun 0: <ATA, TOSHIBA MK3265GS, GJ00> SCSI3 0/direct
fixed naa.50000393138822a0
sd0: 305245MB, 512 bytes/sector, 625142448 sectors
ehci0 at sunxi0
usb0 at ehci0: USB revision 2.0
uhub0 at usb0 "Allwinner EHCI root hub" rev 2.00/1.00 addr 1
ehci1 at sunxi0
usb1 at ehci1: USB revision 2.0
uhub1 at usb1 "Allwinner EHCI root hub" rev 2.00/1.00 addr 1
gpio0 at sxipio0: 18 pins
gpio1 at sxipio0: 24 pins
gpio2 at sxipio0: 25 pins
gpio3 at sxipio0: 28 pins
gpio4 at sxipio0: 12 pins
gpio5 at sxipio0: 6 pins
gpio6 at sxipio0: 12 pins
gpio7 at sxipio0: 28 pins
gpio8 at sxipio0: 22 pins
vscsi0 at root
scsibus1 at vscsi0: 256 targets
softraid0 at root
scsibus2 at softraid0: 256 targets
boot device: lookup '' failed.
root device: sd0a
swap device (default sd0b):
root on sd0a swap on sd0b dump on sd0b
WARNING: preposterous time in file system
WARNING: CHECK AND RESET THE DATE!
Automatic boot in progress: starting file system checks.
/dev/sd0a (0d3d29f19b4e9e54.a): file system is clean; not checking
/dev/sd0l (0d3d29f19b4e9e54.l): file system is clean; not checking
/dev/sd0d (0d3d29f19b4e9e54.d): file system is clean; not checking
/dev/sd0f (0d3d29f19b4e9e54.f): file system is clean; not checking
/dev/sd0g (0d3d29f19b4e9e54.g): file system is clean; not checking
/dev/sd0h (0d3d29f19b4e9e54.h): file system is clean; not checking
/dev/sd0k (0d3d29f19b4e9e54.k): file system is clean; not checking
/dev/sd0j (0d3d29f19b4e9e54.j): file system is clean; not checking
/dev/sd0e (0d3d29f19b4e9e54.e): file system is clean; not checking
setting tty flags
pf enabled
starting network
DHCPDISCOVER on awge0 - interval 3
DHCPOFFER from 192.168.1.1 (14:cc:20:de:4b:cc)
DHCPREQUEST on awge0 to 255.255.255.255
DHCPACK from 192.168.1.1 (14:cc:20:de:4b:cc)
bound to 192.168.1.69 -- renewal in 3600 seconds.
starting early daemons: syslogd pflogd ntpd.
starting RPC daemons:.
savecore: no core dump
checking quotas: done.
clearing /tmp
kern.securelevel: 0 -> 1
creating runtime link editor directory cache.
preserving editor files.
starting network daemons: sshd smtpd sndiod.
starting local daemons: cron.
Thu Jan 1 07:47:54 BRT 1970
OpenBSD/armv7 (cb2.my.domain) (console)
login:
#### ddb ####
ddb> trace
panic+0x18
scp=0xc03c44c0 rlv=0xc0537eb8 (_bus_dmamap_sync+0xb8)
rsp=0xcc3d2db0 rfp=0xcc3d2df4
_bus_dmamap_sync+0xc
scp=0xc0537e0c rlv=0xc030edb4 (dwc_gmac_txdesc_sync+0xa8)
rsp=0xcc3d2df8 rfp=0xcc3d2e1c
r10=0x00000000 r9=0x000000ff r8=0xc54c119c r7=0xc0537e00
r6=0x00000005 r5=0x00000000 r4=0xc54c1000
dwc_gmac_txdesc_sync+0x10
scp=0xc030ed1c rlv=0xc0310a38 (dwc_gmac_start+0xec)
rsp=0xcc3d2e20 rfp=0xcc3d2e4c
r7=0xc54c1000 r6=0xc54c103c r5=0x00000000 r4=0x00000000
dwc_gmac_start+0x10
scp=0xc031095c rlv=0xc040c278 (if_start_locked+0x34)
rsp=0xcc3d2e50 rfp=0xcc3d2e6c
r10=0xc54c129c r9=0x00000000 r8=0x00000000 r7=0x00000062
r6=0xc069274c r5=0x00000003 r4=0xc54c103c
if_start_locked+0xc
scp=0xc040c250 rlv=0xc0410168 (if_enqueue+0x98)
rsp=0xcc3d2e70 rfp=0xcc3d2e94
r6=0x00000002 r5=0xc54c103c r4=0x00000000
if_enqueue+0x10
scp=0xc04100e0 rlv=0xc0411cf4 (ether_output+0x188)
rsp=0xcc3d2e98 rfp=0xcc3d2ecc
r8=0xcc3d2e9e r7=0x00000008 r6=0xca4bd700 r5=0xc54c103c
r4=0xca4bd756
ether_output+0xc
scp=0xc0411b78 rlv=0xc0467ea8 (ip_output+0x6d0)
rsp=0xcc3d2ed0 rfp=0xcc3d2f40
r10=0x00000000 r8=0xc54c103c r7=0xcc3d2f04 r6=0xcc3d2efc
r5=0xc068e658 r4=0xca4bd764
ip_output+0xc
scp=0xc04677e4 rlv=0xc04613a4 (ip_send+0x80)
rsp=0xcc3d2f44 rfp=0xcc3d2f78
r10=0xc06e6190 r9=0x00000000 r8=0xc06e632c r7=0xcc3d2f7c
r6=0xc069274c r5=0x00000000 r4=0xcc3d2f50
ip_send+0x48
scp=0xc046136c rlv=0xc03b7770 (taskq_thread+0x90)
rsp=0xcc3d2f7c rfp=0xcc3d2fb0
r6=0x00000001 r5=0xc53dc040 r4=0xc03b7648
taskq_thread+0xc
scp=0xc03b76ec rlv=0xc0538878 (proc_trampoline+0x18)
rsp=0xcc3d2fb4 rfp=0xc07a6edc
r7=0x00000000 r6=0x00000000 r5=0xc53dc040 r4=0xc03b76e0
Bad frame pointer: 0xc07a6edc
ddb> ps
TID PPID PGRP UID S FLAGS WAIT COMMAND
4908 1 4908 0 3 0x100083 ttyin ksh
20834 1 20834 0 3 0x100098 poll cron
18754 1 18754 99 3 0x100090 poll sndiod
28037 1 28037 110 3 0x100090 poll sndiod
32534 11442 11442 95 3 0x100090 kqread smtpd
25769 11442 11442 95 3 0x100090 kqread smtpd
23822 11442 11442 95 3 0x100090 kqread smtpd
30273 11442 11442 95 3 0x100090 kqread smtpd
14142 11442 11442 95 3 0x100090 kqread smtpd
4179 11442 11442 103 3 0x100090 kqread smtpd
11442 1 11442 0 3 0x100080 kqread smtpd
13130 1 13130 0 3 0x80 select sshd
23647 28151 7264 83 3 0x100090 poll ntpd
28151 7264 7264 83 3 0x100090 poll ntpd
7264 1 7264 0 3 0x100080 poll ntpd
7806 27743 27743 74 3 0x100090 bpf pflogd
27743 1 27743 0 3 0x80 netio pflogd
26121 11260 11260 73 3 0x100090 kqread syslogd
11260 1 11260 0 3 0x100080 netio syslogd
6306 1 6306 77 3 0x100090 poll dhclient
4007 1 4007 0 3 0x80 poll dhclient
19407 0 0 0 3 0x14200 pgzero zerothread
7013 0 0 0 3 0x14200 aiodoned aiodoned
3359 0 0 0 3 0x14200 syncer update
4092 0 0 0 3 0x14200 cleaner cleaner
2344 0 0 0 3 0x14200 reaper reaper
7077 0 0 0 3 0x14200 pgdaemon pagedaemon
29027 0 0 0 3 0x14200 bored crypto
6851 0 0 0 3 0x14200 pftm pfpurge
24135 0 0 0 3 0x14200 usbtsk usbtask
6548 0 0 0 3 0x14200 usbatsk usbatsk
*16145 0 0 0 7 0x14210 softnet
24256 0 0 0 3 0x14200 bored systqmp
15766 0 0 0 3 0x14200 bored systq
10622 0 0 0 3 0x40014200 idle0
8444 0 0 0 3 0x14200 kmalloc kmthread
1 0 1 0 3 0x82 wait init
0 -1 0 0 3 0x10200 scheduler swapper
ddb>
--
db