Rock64 dwc interface issues
Emmanuel Vadot
manu at bidouilliste.com
Fri Jun 19 17:42:32 UTC 2020
Hello Søren, Charles,
On Fri, 19 Jun 2020 15:48:36 +0200
Søren Schmidt <soren.schmidt at gmail.com> wrote:
> You might not be alone :) I got my shiny new rockpro64 (yeah a little different) and it probes the dwc device just fine (todays -current)
>
> dwc0: <Rockchip Gigabit Ethernet Controller> mem 0xfe300000-0xfe30ffff irq 9 on ofwbus0
> miibus0: <MII bus> on dwc0
> rgephy0: <RTL8169S/8110S/8211 1000BASE-T media interface> PHY 0 on miibus0
> rgephy0: OUI 0x00e04c, model 0x0011, rev. 6
> rgephy0: none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT-FDX, 1000baseT-FDX-master, auto
> rgephy1: <RTL8169S/8110S/8211 1000BASE-T media interface> PHY 1 on miibus0
> rgephy1: OUI 0x00e04c, model 0x0011, rev. 6
> rgephy1: none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT-FDX, 1000baseT-FDX-master, auto
> dwc0: bpf attached
> dwc0: Ethernet address: X:X:X:X:X:X
>
> It does not work however, no error msgs or anything, but no traffic enter or leaves at all.
>
> I had a similar issue with the dwc compat chip on the Allwinner R40 (Bananapi M2 Berry) and got that working, so I?ll se if similar hacks works here?
>
> -Søren
>
> > On 22 May 2020, at 11.12, Charles <charlesr at scd-systems.net> wrote:
> >
> > Hi,
> >
> >
> > I am currently trying to setup my Rock64 V2.0 SoC with FreeBSD (Image: http://ftp.freebsd.org/pub/FreeBSD/snapshots/arm64/aarch64/ISO-IMAGES/13.0/FreeBSD-13.0-CURRENT-arm64-aarch64-ROCK64-20200514-r361019.img.xz)
> >
> > The spi from the rock64 board is not flashed and the sd-card is booting successful FreeBSD.
> >
> > But the dwc0 network interface makes trouble.
> >
> > At first I tried to reach the soc by ssh without success, the connection ends into a timeout. Next i tried to reach the board by icmp requests from other machines and i only got approx. every 3-4 packets answered back from the rock.
> > The arp table from the rock64 machine is fine, same on the other side.
> >
> > icmp outout:
> >
> > # ping 192.168.178.79
> > PING 192.168.178.79 (192.168.178.79): 56 data bytes
> > 64 bytes from 192.168.178.79: icmp_seq=3 ttl=64 time=0.422 ms
> > 64 bytes from 192.168.178.79: icmp_seq=7 ttl=64 time=0.295 ms
> > 64 bytes from 192.168.178.79: icmp_seq=8 ttl=64 time=0.284 ms
> > 64 bytes from 192.168.178.79: icmp_seq=11 ttl=64 time=0.289 ms
> > 64 bytes from 192.168.178.79: icmp_seq=12 ttl=64 time=0.282 ms
> >
> > tcpdump dump from the rock:
> >
> > # tcpdump -i dwc0 -n icmp
> > tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
> > listening on dwc0, link-type EN10MB (Ethernet), capture size 262144 bytes
> > 01:24:30.275479 IP 192.168.178.21 > 192.168.178.79: ICMP echo request, id 20996, seq 0, length 64
> > 01:24:31.286399 IP truncated-ip - 16384 bytes missing! 192.168.178.21 > 192.168.242.79: ICMP echo request, id 20996, seq 4097, length 16448
> > 01:24:33.400434 IP 192.168.178.21 > 192.168.178.79: ICMP echo request, id 20996, seq 3, length 64
> > 01:24:33.400533 IP 192.168.178.79 > 192.168.178.21: ICMP echo reply, id 20996, seq 3, length 64
> > 01:24:34.460477 IP truncated-ip - 16384 bytes missing! 192.168.242.21 > 192.168.178.79: ICMP echo request, id 20996, seq 4, length 16448
> > 01:24:35.512486 IP 192.168.178.21 > 192.168.186.79: ICMP echo request, id 20996, seq 5, length 64
> > 01:24:36.572512 IP truncated-ip - 16384 bytes missing! 192.168.178.21 > 192.168.178.79: ICMP echo request, id 20996, seq 6, length 16448
> > 01:24:37.632534 IP 192.168.178.21 > 192.168.178.79: ICMP echo request, id 20996, seq 7, length 64
> > 01:24:37.632631 IP 192.168.178.79 > 192.168.178.21: ICMP echo reply, id 20996, seq 7, length 64
> > 01:24:38.688549 IP 192.168.178.21 > 192.168.178.79: ICMP echo request, id 20996, seq 8, length 64
> > 01:24:38.688640 IP 192.168.178.79 > 192.168.178.21: ICMP echo reply, id 20996, seq 8, length 64
> > 01:24:39.709363 IP 192.168.178.21 > 192.168.178.79: ICMP echo request, id 20996, seq 9, length 64
> > 01:24:40.711011 IP truncated-ip - 16384 bytes missing! 192.168.178.21 > 192.168.178.79: ICMP echo request, id 20996, seq 10, length 16448
> > 01:24:41.712351 IP 192.168.178.21 > 192.168.178.79: ICMP echo request, id 20996, seq 11, length 64
> > 01:24:41.712449 IP 192.168.178.79 > 192.168.178.21: ICMP echo reply, id 20996, seq 11, length 64
> > 01:24:42.775589 IP 192.168.178.21 > 192.168.178.79: ICMP echo request, id 20996, seq 12, length 64
> > 01:24:42.775677 IP 192.168.178.79 > 192.168.178.21: ICMP echo reply, id 20996, seq 12, length 64
> >
> >
> > Output ifconfig:
> >
> > dwc0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
> > options=80008<VLAN_MTU,LINKSTATE>
> > ether 3a:6f:36:64:e6:9c
> > inet 192.168.178.79 netmask 0xffffff00 broadcast 192.168.178.255
> > media: Ethernet autoselect (1000baseT <full-duplex>)
> > status: active
> > nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
> >
> > dmesg:
> >
> > ---<<BOOT>>---
> > KDB: debugger backends: ddb
> > KDB: current backend: ddb
> > Copyright (c) 1992-2020 The FreeBSD Project.
> > Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
> > The Regents of the University of California. All rights reserved.
> > FreeBSD is a registered trademark of The FreeBSD Foundation.
> > FreeBSD 13.0-CURRENT #0 r361019: Thu May 14 09:26:15 UTC 2020
> > root at releng1.nyi.freebsd.org:/usr/obj/usr/src/arm64.aarch64/sys/GENERIC arm64
> > FreeBSD clang version 10.0.0 (git at github.com:llvm/llvm-project.git llvmorg-10.0.0-0-gd32170dbd5b)
> > WARNING: WITNESS option enabled, expect reduced performance.
> > VT: init without driver.
> > module firmware already present!
> > KLD file umodem.ko is missing dependencies
> > Starting CPU 1 (1)
> > Starting CPU 2 (2)
> > Starting CPU 3 (3)
> > FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs
> > random: unblocking device.
> > random: entropy device external interface
> > MAP fbf1b000 mode 2 pages 1
> > MAP fbf24000 mode 2 pages 1
> > MAP fbf27000 mode 2 pages 1
> > MAP fef30000 mode 2 pages 16
> > WARNING: Device "kbd" is Giant locked and may bware Device Tree>
> > simplebus0: <Flattened device tree simple bus> on ofwbus0
> > clk_fixed0: <Fixed clock> on ofwbus0
> > rk_grf0: <RockChip General Register Files> mem 0xff100000-0xff100fff on ofwbus0
> > rk3328_cru0: <Rockchip RK3328 Clock and Reset Unit> mem 0xff440000-0xff440fff on ofwbus0
> > rk3328_cru0: cannot get parent at idx 6
> > Cannot set frequency for clk: aclk_bus_pre, error: 34
> > rk3328_cru0: Failed to set aclk_bus_pre to a frequency of 15000000
> > Cannot set frequency for clk: aclk_peri_pre, error: 34
> > rk3328_cru0: Failed to set aclk_peri_pre to a frequency of 15000000
> > clk_fixed1: <Fixed clock> on ofwbus0
> > regfix0: <Fixed Regulator> on ofwbus0
> > regfix1: <Fixed Regulator> on ofwbus0
> > regfix2: <Fixed Regulator> on ofwbus0
> > regfix3: <Fixed Regulator> on ofwbus0
> > simple_mfd0: <Simple MFD (Multi-Functions Device)> mem 0xff450000-0xff45ffff on ofwbus0
> > psci0: <ARM Power State Co-ordination Interface Driver> on ofwbus0
> > gic0: <ARM Generic Interrupt Controller> mem 0xff811000-0xff811fff,0xff812000-0xff813fff,0xff8140s 160
> > rk_pinctrl0: <RockChip Pinctrl controller> on ofwbus0
> > gpio0: <RockChip GPIO Bank controller> mem 0xff210000-0xff2100ff irq 52 on rk_pinctrl0
> > gpiobus0: <OFW GPIO bus> on gpio0
> > gpio1: <RockChip GPIO Bank controller> mem 0xff220000-0xff2200ff irq 53 on rk_pinctrl0
> > gpiobus1: <OFW GPIO bus> on gpio1
> > gpio2: <RockChip GPIO Bank controller> mem 0xff230000-0xff2300ff irq 54 on rk_pinctrl0
> > gpiobus2: <OFW GPIO bus> on gpio2
> > gpio3: <RockChip GPIO Bank controller> mem 0xff240000-0xff2400ff irq 55 on rk_pinctrl0
> > gpiobus3: <OFW GPIO bus> on gpio3
> > rk_i2c0: <RockChip I2C> mem 0xff160000-0xff160fff irq 16 on ofwbus0
> > iicbus0: <OFW I2C bus> on rk_i2c0
> > rk805_pmu0: <RockChip RK805 PMIC> at addr 0x30 irq 56 on iicbus0
> > generic_timer0: <ARMv8 Generic Timer> irq 4,5,6,7 on ofwbus0
> > Timecounter "ARM MPCore Timecounter" frequency 24000000 Hz quality 1000
> > Event timer "ARM MPCore Eventtimer" frequency 24000000 Hz quality 1000
> > rk_tsadc0: <RockChip temperature sensors> mem 0xff250000-0xff2500ff irq 22 on ofwbus0
> > cpuliseq_dt1: <Generic cpufreq driver> on cpu1
> > cpu2: <Open Firmware CPU> on cpulist0
> > cpufreq_dt2: <Generic cpufreq driver> on cpu2
> > cpu3: <Open Firmware CPU> on cpulist0
> > cpufreq_dt3: <Generic cpufreq driver> on cpu3
> > uart0: <16750 or compatible> mem 0xff130000-0xff1300ff irq 14 on ofwbus0
> > uart0: console (-1,n,8,1)
> > iic0: <I2C generic I/O> on iicbus0
> > rockchip_dwmmc0: <Synopsys DesignWare Mobile Storage Host Controller (RockChip)> mem 0xff500000-0xff503fff irq 41 on ofwbus0
> > rockchip_dwmmc0: Hardware version ID is 270a
> > mmc0: <MMC/SD bus> on rockchip_dwmmc0
> > rockchip_dwmmc1: <Synopsys DesignWare Mobile Storage Host Controller (RockChip)> mem 0xff520000-0xff523fff irq 43 on ofwbus0
> > rockchip_dwmmc1: Hardware version ID is 270a
> > mmc1: <MMC/SD bus> on rockchip_dwmmc1
> > dwc0: <Rockchip Gigabit Ethernet Controller> mem 0xff540000-0xff54ffff irq 44 on ofwbus0
> > miibus0: <MII bus> on dwc0
> > rgephy0: <RTL8169S/8110S/8211 1000BASE-T media interface> PHY 0 on miibus0
> > rgephy0: none, 10baseT, 10baseT-FDX, 100baseTX, 100baseT0baseTX-FDX, 1000baseT-FDX, 1000baseT-FDX-master, auto
> > dwc0: Ethernet address: 3a:6f:36:64:e6:9c
> > dwcotg0: <DWC OTG 2.0 integrated USB controller> mem 0xff580000-0xff5bffff irq 46 on ofwbus0
> > usbus0 on dwcotg0
> > ehci0: <Generic EHCI Controller> mem 0xff5c0000-0xff5cffff irq 47 on ofwbus0
> > usbus1: EHCI version 1.0
> > usbus1 on ehci0
> > ohci0: <Generic OHCI Controller> mem 0xff5d0000-0xff5dffff irq 48 on ofwbus0
> > usbus2 on ohci0
> > gpioc0: <GPIO controller> on gpio0
> > gpioc1: <GPIO controller> on gpio1
> > gpioc2: <GPIO controller> on gpio2
> > gpioc3: <GPIO controller> on gpio3
> > gpioled0: <GPIO LEDs> on ofwbus0
> > gpioled0: <power> failed to map pin
> > gpioled0: <standby> failed to map pin
> > cryptosoft0: <software crypto>
> > Timecounters tick every 1.000 msec
> > usbus0: 480Mbps High Speed USB v2.0
> > usbus1: 480Mbps High Speed USB v2.0
> > usbus2: 12Mbps Full Speed USB v1.0
> > Obsolete code will be removed soon: random(9) is the obsolete Park-Miller LCG from 1988
> > ugen1.1: <Generic EHCI root HUB> at usbus1
> > uhub0 on usbus1
> > uhub0: <Generiaddr 1> on usbus0
> > ugen2.1: <Generic OHCI root HUB> at usbus2
> > uhub2 on usbus2
> > uhub2: <Generic OHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus2
> > mmcsd0: 32GB <SDHC SL32G 8.0 SN 0C4A1E4B MFG 08/2016 by 3 SD> at mmc0 50.0MHz/4bit/2048-block
> > mmc1: No compatible cards found on bus
> > Release APs...done
> > CPU 0: ARM Cortex-A53 r0p4 affinity: 0
> > Cache Type = <64 byte D-cacheline,64 byte I-cacheline,VIPT ICache,64 byte ERG,64 byte CWG>
> > Instruction Set Attributes 0 = <CRC32,SHA2,SHA1,AES+PMULL>
> > Instruction Set Attributes 1 = <>
> > Processor Features 0 = <AdvSIMD,FP,EL3 32,EL2 32,EL1 32,EL0 32>
> > Processor Features 1 = <>
> > Memory Model Features 0 = <TGran4,TGran64,SNSMem,BigEnd,16bit ASID,1TB PA>
> > Memory Model Features 1 = <8bit VMID>
> > Memory Model Features 2 = <32bit CCIDX,48bit VA>
> > Trying to mount root from ufs:/dev/ufs/rootfs [rw]...
> > Debug Features 0 = <2 CTX BKPTs,4 Watchpoints,6 Breakpoints,PMUv3,Debugv8>
> > Debug FeatureCortex-A53 r0p4 affinity: 3
> > WARNING: WITNESS option enabled, expect reduced performance.
> > Warning: no time-of-day clock registered, system time will not be set accurately
> > uhub2: 1 port with 1 removable, self powered
> > uhub1: 1 port with 1 removable, self powered
> > uhub0: 1 port with 1 removable, self powered
> > lo0: link state changed to UP
> > dwc0: link state changed to DOWN
> > dwc0: link state changed to UP
> >
> >
> > Does anyone know this issue ?
> >
> >
> > Best,
> >
> > Charles
> > _______________________________________________
> > freebsd-arm at freebsd.org mailing list
> > https://lists.freebsd.org/mailman/listinfo/freebsd-arm
> > To unsubscribe, send any mail to "freebsd-arm-unsubscribe at freebsd.org"
I've just took the last image for rock64 and rockpro64 to test on my
boards (I usually netboot but testing the image give a common reference
between everyone).
As a reference the image I've burned on the sd are :
FreeBSD-13.0-CURRENT-arm64-aarch64-ROCK64-20200618-r362292.img.xz
FreeBSD-13.0-CURRENT-arm64-aarch64-ROCKPRO64-20200618-r362292.img.xz
On Rock64 v2.0 (2017-0713) I see no issues, I got an IP from my dhcp
server and could install packages properly.
Using iperf3 I have ~275Mbits/sec which isn't great but we're aware of
the bad perf of the dwc(4) driver.
On RockPro64 v2.1 I also see no issues, iperf3 give the same speed
result for tx but rx is worse (~100Mbits/sec).
Søren, what are your hack for R40 (which do not have support for in
term of clock so I'm not surprise that you need "something" for it).
Charles, could you test the same image as me and see if that makes a
difference (but I doubt since not much changed recently that could
affect that).
Cheers,
--
Emmanuel Vadot <manu at bidouilliste.com> <manu at freebsd.org>
More information about the freebsd-arm
mailing list