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 dbolgher...@bbb.my.domain:/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