Testing has been done based on Patrick’s work. It turned out
that the ure0 is not ready for serious usage.

The issue is that ure0 will hang/freeze there after hours
usage, while the kernel still running and can be accessed
via serial port. But it’s enough to render it not working
as a router.

The problem can be easily triggered by a FaceTime audio call
in my setup environment.

Really hope the stability be enhanced somehow.

Lear Zhou

On Wed, Jun 3, 2020 at 11:17 AM Patrick Wildt <patr...@blueri.se> wrote:

> On Wed, Jun 03, 2020 at 04:27:00PM +0100, Steve wrote:
> > A pair of us have been using OpenBSB as our firewall for about 10
> > years now, but the hardware is getting old and we want to replace
> > it with a smaller / lower power device. With the new Arm boards out
> > now we have been attempting to make a new version using the Nano Pi
> > R2S from FriendlyElec which appears to be perfect, but we are not
> > experienced in getting Arm SBC's working with OpenBSD.
> >
> > The R2S is an RK3328 based dual ethernet SBC and we have taken the
> > rk3328-roc-cc.dts (Firefly board) as a base to modify, and compiled
> > u-boot, with bl31 to get OpenBSD installed and running, as well as
> > comparing the similar schematics.
> >
> > After OpenBSD boots, one of the ethernet ports which we believe to
> > be connected directly to the RockChip is detected, giving a dwge0
> > device, but the second ethernet port is not detected at all.
> >
> > From looking at the schematic diagram we think that the RTL8153 IC
> > is connected via USB3.0 interface and we are not getting any USB3.0
> > show up in the dmesg log.
> >
> > If were configured correctly, we think that we would expect to see a
> > ure0 device. So this configuration needs to be added to the device
> > tree.
> >
> > There is a working linux Armbian image which when checked allows
> > access to both LAN ports. Converting their dtb->dts, there is a
> > section for usb at 0xff6000000, which matches the RK3328 data sheet
> > memory map for the USB3 register set.
> >
> > This, and the subsection dwc3, which we believe uses the phy's
> > referenced as utmi and pipe, have many sections, such as the clocks,
> > resets (and interrupts?) for which we can find no relevant information.
> >
> > Also of note is that on the schematic for the board, the pin GPIO2_C6
> > seems to be required to be high to enable power to the USB subsystem,
> > as VDD_5V_LAN powers the IO of the RTL8153 device.
> >
> > Further, the WAN-LED / LAN-LED from pins GPIO2_C2 / GPIO2_B7 remain
> > off and unconfigured from the boot output even when we have attempted
> > to direct them to be on.
> >
> > What are we are doing wrong in order to develop the dts to a working
> > state? Any pointers to information on how to proceed and verify our
> > progress would be appreciated. Especially, how do we set IO lines
> > high so that we may power the USB3.0 subsystem and RTL8153 ?
> >
> >
> > The defconfig is again based on the roc-cc one and contains:
> >
> > CONFIG_USB=y
> > CONFIG_USB_XHCI_HCD=y
> > CONFIG_USB_XHCI_DWC3=y
> > CONFIG_USB_EHCI_HCD=y
> > CONFIG_USB_EHCI_GENERIC=y
> > CONFIG_USB_OHCI_HCD=y
> > CONFIG_USB_OHCI_GENERIC=y
> > CONFIG_USB_DWC2=y
> > CONFIG_USB_DWC3=y
> > # CONFIG_USB_DWC3_GADGET is not set
> > CONFIG_USB_GADGET=y
> > CONFIG_USB_GADGET_DWC2_OTG=y
> >
> > Also, relevant sections of our dts file are shown below.
> >
> > Many thanks.
> >
> > syscon: syscon@ff460000 {
> >     compatible = "rockchip,usb3phy-grf", "syscon";
> >     reg = <0x0 0xff460000 0x0 0x1000>;
> > };
> >
> > u3phy: u3phy@ff470000 {
> >     compatible = "rockchip,rk3328-u3phy";
> >     reg = <0x0 0xff470000 0x0 0x0>;
> >     rockchip,u3phygrf = <&syscon>;
> >     rockchip,grf = <&grf>;
> >     interrupts = <0x0 0x4d 0x4>;
> >     interrupt-names = "linestate";
> >     clocks = <0x2 0xe0 0x2 0xe1>;
> >     clock-names = "u3phy-otg", "u3phy-pipe";
> >     resets = <0x2 0x7d 0x2 0x7e 0x2 0x7f 0x2 0x7c 0x2 0x9e 0x2 0x9f>;
> >     reset-names = "u3phy-u2-por", "u3phy-u3-por", "u3phy-pipe-mac",
> > "u3phy-utmi-mac", "u3phy-utmi-apb", "u3phy-pipe-apb";
> >     #address-cells = <0x2>;
> >     #size-cells = <0x2>;
> >     ranges;
> >     status = "okay";
> >
> >     utmi: utmi@ff470000 {
> >         reg = <0x0 0xff470000 0x0 0x8000>;
> >         #phy-cells = <0x0>;
> >         status = "okay";
> >     };
> >
> >     pipe: pipe@ff478000 {
> >         reg = <0x0 0xff478000 0x0 0x8000>;
> >         #phy-cells = <0x0>;
> >         status = "okay";
> >     };
> > };
> >
> > usb30: usb@ff600000 {
> >     compatible = "rockchip,rk3328-dwc3", "rockchip,rk3399-dwc3";
> >     clocks = <0x2 0x60 0x2 0x84 0x2 0x61>;    // Should contain &u3phy?
> >                           // Are some phandles?
> >     clock-names = "ref", "bus_early", "suspend";
> >     #address-cells = <0x2>;
> >     #size-cells = <0x2>;
> >     ranges;
> >     clock-ranges;
> >     status = "okay";
> >     phy-supply = <&vcc_usb30>;
> >
> >     dwc3@ff600000 {
> >         compatible = "snps,dwc3";
> >         reg = <0x0 0xff600000 0x0 0x100000>;
> >         interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;      // OK?
> >         dr_mode = "host";
> >         phys = <&utmi &pipe>;
> >         phy-names = "u2phy", "u3phy";
> >         phy_type = "utmi_wide";
> >         snps,dis_enblslpm_quirk;
> >         snps,dis-u2-freeclk-exists-quirk;
> >         snps,dis_u2_susphy_quirk;
> >         snps,dis_u3_susphy_quirk;
> >         snps,dis-del-phy-power-chg-quirk;
> >         snps,dis-tx-ipgap-linecheck-quirk;
> >         snps,xhci-trb-ent-quirk;
> >         status = "okay";
> >         #address-cells = <0x1>;
> >         #size-cells = <0x0>;
> >
> >         device@2 {
> >             compatible = "usbbda:8153";
> >             reg = <0x2>;
> >             local-mac-address = [00 00 00 00 00 00];
> >         };
> >     };
> > };
> >
> > vcc-sys {
> >     compatible = "regulator-fixed";
> >     regulator-name = "vcc_usb30";
> >     regulator-always-on;
> >     regulator-boot-on;
> >     gpio = <&gpio2 RK_PC6 GPIO_ACTIVE_HIGH>;
> >     pinctrl-names = "default";
> >     pinctrl-0 = <&i2s1_sdio3>;
> >     regulator-min-microvolt = <5000000>;
> >     regulator-max-microvolt = <5000000>;
> >     vin-supply = <&vcc_io>;
> > };
> >
> > leds_all: leds {
> >     compatible = "gpio-leds";
> >
> >     status {
> >         label = "r2s:red:status";
> >         linux,default-trigger = "heartbeat";
> >         gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>;
> >         default-state = "on";
> >     };
> >
> >     wan {
> >         label = "r2s:green:wan";
> >         gpios = <&gpio2 RK_PC2 GPIO_ACTIVE_HIGH>;
> >         default-state = "on";
> >     };
> >
> >     lan {
> >         label = "r2s:green:lan";
> >         gpios = <&gpio2 RK_PB7 GPIO_ACTIVE_HIGH>;
> >         default-state = "on";
> >     };
> > };
> >
> > &vcc_usb30 {
> >     status = "okay";
> > };
> >
> > &leds_all {
> >     status = "okay";
> > };
> >
>
> About 6 weeks ago I build my own U-Boot for the R2S, based on what's in
> U-Boot master, and also built a device tree based on Linux master, I
> think, and also the patches in FriendlyARM's repo.  Here's the DTB,
> put this onto your MS-DOS partition and make sure that U-Boot loads
> that file (and not something else).
>
> The u-boot environment contains an fdtfile or fdt_file variable.  You
> can either change that variable to reflect the filename, or you can
> put the file onto the MS-DOS partition with the name as in the variable.
>
> Patrick
>

Reply via email to