> Date: Tue, 13 Aug 2019 22:01:30 +0000
> From: ioh <m...@sdf.org>
> 
> On Tue, Aug 13, Mark Kettenis wrote:
> > > Date: Tue, 13 Aug 2019 01:01:37 +0000
> > > From: ioh <m...@sdf.org>
> > > 
> > > On Mon, Aug 12, Mark Kettenis wrote:
> > > > > Date: Sun, 11 Aug 2019 23:49:10 +0000
> > > > > From: ioh <m...@sdf.org>
> > > > > 
> > > > > I have been able to successfully install OpenBSD Current Aug 06
> > > > > 2019 on the Olimex Teres laptop.  It has very similar hardware to
> > > > > the PineBook, arm64 allwinner, etc.  I used u-boot-sunxi-with-spl.bin
> > > > > from u-boot v2019.07 (teres_i_defconfig) and Arm Trusted Firmware
> > > > > v2.1. The dtb (sun50i-a64-teres-i.dtb) is from the OpenBSD 6.5-release
> > > > > ports tree.
> > > > > 
> > > > > To complete kernel initialization from either the install bsd.rd
> > > > > or bsd from an install, the ohci driver must be disabled.  I have
> > > > > included the serial console output and dmesg of first a boot without
> > > > > the ohci driver disabled, and then the boot log of my successful
> > > > > install with ohci disabled.  According to linux dmesg or the
> > > > > sun50i-a64-teres-i.dts, ohci is available so the driver is probed
> > > > > correctly - but even after several minutes the initialization process
> > > > > will not continue past the line "ohci0 at simplebus0".
> > > > 
> > > > The hang at that point suggests that accessing the OHCI registers
> > > > hangs the machine.  That happened in the past when the relevant clock
> > > > wasn't running or when the OHCI logic block wasn't brought out of
> > > > reset.  But those issues got fixed and ohci(4) works fine on other
> > > > boards that use the Allwinner A64 SoC.  What seems to be different is
> > > > that the Teres-i only has the 2nd USB controller enabled.
> > > > 
> > > > Adding printfs is probably the way to go here.  Start with
> > > > ohci_fdt_attach() in sys/dev/fdt/ohci_fdt.c and try to pinpoint at
> > > > which point it hangs.
> > > 
> > > This is the printf's I added, followed by the dmesg output.  The
> > > point at which init hangs is at bus_space_read_4() in ohci_fdt_attach().
> > > Do you need further digging in bus_space_read_4, ie adding printf's
> > > to that function too to find the exact line further, or is that
> > > enough information?
> > 
> > Thanks, yes, at least for now.
> > 
> > This confirms my suspicion and does point towards an issue with a
> > clock that isn't running and/or a reset that isn't deasserted.  You
> > could see what happens if you enable the other USB controller (both
> > ehci0 and ohci0) in the device tree if you know how to do that.  On my
> > end I'll try to do the opposite (disable ehci0 and ohci0) and see if I
> > can reproduce the issue.  It seems the Linux image you're using has
> > both controllers enabled.
> 
> I took the latest linux v5.3-rc4 and added some basic ehci0 and
> ohci0 nodes. I built the dtb with musl-cross-make and by running
> make dtbs in the linux source tree:
> 
> diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-teres-i.dts 
> b/arch/arm64/boot/dts/allwinner/sun50i-a64-teres-i.dts
> index 1069e7012c9c..a8596d742d68 100644
> --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-teres-i.dts
> +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-teres-i.dts
> @@ -100,6 +100,11 @@
>         status = "okay";
>  };
> 
> +&ehci0 {
> +       phys = <&usbphy 0>;
> +       status = "okay";
> +};
> +
>  &ehci1 {
>         status = "okay";
>  };
> @@ -153,6 +158,11 @@
>         status = "okay";
>  };
> 
> +&ohci0 {
> +       phys = <&usbphy 0>;
> +       status = "okay";
> +};
> +
>  &ohci1 {
>         status = "okay";
>  };
> 
> This is how the nodes are in the pinebook dts and similar to an
> armbian patch:
> https://github.com/armbian/build/blob/master/patch/kernel/sunxi-dev/xxx-teres-fixed.patch
> 
> Here is my resulting dmesg and boot log. External usb ports were
> unresponsive, inserting and removing a flash drive showed nothing
> in dmesg and the light on the flash drive did not turn on. Also,
> the usb wifi dongle was not recognized, and no keyboard in dmesg:

Right, now you need my latest commits!

Latest snapshot kernel (dated Tue Aug 13) should be ok.
> 
> OpenBSD 6.5-current (GENERIC.MP) #158: Tue Aug  6 16:46:13 MDT 2019
>     dera...@arm64.openbsd.org:/usr/src/sys/arch/arm64/compile/GENERIC.MP
> real mem  = 2018369536 (1924MB)
> avail mem = 1928814592 (1839MB)
> mainbus0 at root: Olimex A64 Teres-I
> cpu0 at mainbus0 mpidr 0: ARM Cortex-A53 r0p4
> cpu0: 32KB 64b/line 2-way L1 VIPT I-cache, 32KB 64b/line 4-way L1 D-cache
> cpu0: 512KB 64b/line 16-way L2 cache
> efi0 at mainbus0: UEFI 2.7
> efi0: Das U-Boot rev 0x20190700
> apm0 at mainbus0
> psci0 at mainbus0: PSCI 1.1, SMCCC 1.1
> "osc24M_clk" at mainbus0 not configured
> "osc32k_clk" at mainbus0 not configured
> "pmu" at mainbus0 not configured
> "sound" at mainbus0 not configured
> "sound_spdif" at mainbus0 not configured
> "spdif-out" at mainbus0 not configured
> agtimer0 at mainbus0: tick rate 24000 KHz
> simplebus0 at mainbus0: "soc"
> sxiccmu0 at simplebus0
> sxipio0 at simplebus0: 103 pins
> ampintc0 at simplebus0 nirq 224, ncpu 4 ipi: 0, 1: "interrupt-controller"
> sxiccmu1 at simplebus0
> sxipio1 at simplebus0: 13 pins
> sxirsb0 at simplebus0
> axppmic0 at sxirsb0 addr 0x3a3: AXP803
> "bus" at simplebus0 not configured
> "syscon" at simplebus0 not configured
> "dma-controller" at simplebus0 not configured
> "lcd-controller" at simplebus0 not configured
> "lcd-controller" at simplebus0 not configured
> "video-codec" at simplebus0 not configured
> sximmc0 at simplebus0
> sdmmc0 at sximmc0: 4-bit, sd high-speed, mmc high-speed, dma
> sximmc1 at simplebus0
> sdmmc1 at sximmc1: 4-bit, sd high-speed, mmc high-speed, dma
> sximmc2 at simplebus0
> sdmmc2 at sximmc2: 8-bit, sd high-speed, mmc high-speed, dma
> "eeprom" at simplebus0 not configured
> "phy" at simplebus0 not configured
> ehci0 at simplebus0
> usb0 at ehci0: USB revision 2.0
> uhub0 at usb0 configuration 1 interface 0 "Generic EHCI root hub" rev 
> 2.00/1.00 addr 1
> ohci0 at simplebus0: version 1.0
> ehci1 at simplebus0
> usb1 at ehci1: USB revision 2.0
> uhub1 at usb1 configuration 1 interface 0 "Generic EHCI root hub" rev 
> 2.00/1.00 addr 1
> ohci1 at simplebus0: version 1.0
> "dai" at simplebus0 not configured
> "codec" at simplebus0 not configured
> com0 at simplebus0: ns16550, no working fifo
> com0: console
> sxitwi0 at simplebus0
> iic0 at sxitwi0
> "gpu" at simplebus0 not configured
> "pwm" at simplebus0 not configured
> "hdmi-phy" at simplebus0 not configured
> sxirtc0 at simplebus0
> "interrupt-controller" at simplebus0 not configured
> "codec-analog" at simplebus0 not configured
> "watchdog" at simplebus0 not configured
> gpio0 at sxipio0: 32 pins
> gpio1 at sxipio0: 32 pins
> gpio2 at sxipio0: 32 pins
> gpio3 at sxipio0: 32 pins
> gpio4 at sxipio0: 32 pins
> gpio5 at sxipio0: 32 pins
> gpio6 at sxipio0: 32 pins
> gpio7 at sxipio0: 32 pins
> gpio8 at sxipio1: 32 pins
> usb2 at ohci0: USB revision 1.0
> uhub2 at usb2 configuration 1 interface 0 "Generic OHCI root hub" rev 
> 1.00/1.00 addr 1
> usb3 at ohci1: USB revision 1.0
> uhub3 at usb3 configuration 1 interface 0 "Generic OHCI root hub" rev 
> 1.00/1.00 addr 1
> "backlight" at mainbus0 not configured
> "gpio-keys" at mainbus0 not configured
> "leds" at mainbus0 not configured
> "usb1-vbus" at mainbus0 not configured
> "wifi_pwrseq" at mainbus0 not configured
> "audio-amplifier" at mainbus0 not configured
> simplefb0 at mainbus0: 1366x768, 32bpp
> wsdisplay0 at simplefb0 mux 1
> wsdisplay0: screen 0-5 added (std, vt100 emulation)
> cpu1 at mainbus0 mpidr 1: ARM Cortex-A53 r0p4
> cpu1: 32KB 64b/line 2-way L1 VIPT I-cache, 32KB 64b/line 4-way L1 D-cache
> cpu1: 512KB 64b/line 16-way L2 cache
> cpu2 at mainbus0 mpidr 2: ARM Cortex-A53 r0p4
> cpu2: 32KB 64b/line 2-way L1 VIPT I-cache, 32KB 64b/line 4-way L1 D-cache
> cpu2: 512KB 64b/line 16-way L2 cache
> cpu3 at mainbus0 mpidr 3: ARM Cortex-A53 r0p4
> cpu3: 32KB 64b/line 2-way L1 VIPT I-cache, 32KB 64b/line 4-way L1 D-cache
> cpu3: 512KB 64b/line 16-way L2 cache
> ohci1: 1 scheduling overruns
> scsibus0 at sdmmc0: 2 targets, initiator 0
> sd0 at scsibus0 targ 1 lun 0: <SD/MMC, SDCIT, 0030> SCSI2 0/direct removable
> sd0: 7464MB, 512 bytes/sector, 15286272 sectors
> manufacturer 0x024c, product 0xb723 at sdmmc1 function 1 not configured
> scsibus1 at sdmmc2: 2 targets, initiator 0
> sd1 at scsibus1 targ 1 lun 0: <Micron, R1J56L, 0000> SCSI2 0/direct removable
> sd1: 14080MB, 512 bytes/sector, 28835840 sectors
> vscsi0 at root
> scsibus2 at vscsi0: 256 targets
> softraid0 at root
> scsibus3 at softraid0: 256 targets
> bootfile: sd1a:/bsd
> boot device: sd1
> root on sd1a (7f4f193dd87e3ae5.a) swap on sd1b dump on sd1b
> ohci1: 1234 scheduling overruns
> ohci1: 259 scheduling overruns
> ohci1: 259 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 259 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> Automatic boot in progress: starting file system checks.
> /dev/sd1a (7f4f193dd87e3ae5.a): file system is clean; not checking
> /dev/sd1l (7f4f193dd87e3ae5.l): file system is clean; not checking
> /dev/sd1d (7f4f193dd87e3ae5.d): file system is clean; not checking
> /dev/sd1f (7f4f193dd87e3ae5.f): file system is clean; not checking
> /dev/sd1g (7f4f193dd87e3ae5.g): file system is clean; not checking
> /dev/sd1h (7f4f193dd87e3ae5.h): file system is clean; not checking
> /dev/sd1k (7f4f193dd87e3ae5.k): file system is clean; not checking
> /dev/sd1j (7f4f193dd87e3ae5.j): file system is clean; not checking
> /dev/sd1e (7f4f193dd87e3ae5.e): file system is clean; not checking
> ohci1: 259 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> pf enabled
> ohci1: 259 scheduling overruns
> ddb.console: 0 -> 1
> ohci1: 259 scheduling overruns
> ohci1: 245 scheduling overruns
> starting network
> ohci1: 258 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 258 scheduling overruns
> reordering libraries:ohci1: 253 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 246 scheduling overruns
> ohci1: 259 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 248 scheduling overruns
> ohci1: 237 scheduling overruns
> ohci1: 258 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 259 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 259 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 259 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 231 scheduling overruns
> ohci1: 258 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 259 scheduling overruns
> ohci1: 244 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 243 scheduling overruns
> ohci1: 250 scheduling overruns
> ohci1: 221 scheduling overruns
> ohci1: 238 scheduling overruns
> ohci1: 250 scheduling overruns
> ohci1: 244 scheduling overruns
> ohci1: 259 scheduling overruns
> ohci1: 242 scheduling overruns
> ohci1: 245 scheduling overruns
> ohci1: 259 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 220 scheduling overruns
> ohci1: 242 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 259 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 234 scheduling overruns
> ohci1: 237 scheduling overruns
> ohci1: 242 scheduling overruns
> ohci1: 244 scheduling overruns
> ohci1: 199 scheduling overruns
> ohci1: 237 scheduling overruns
> ohci1: 245 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 259 scheduling overruns
> ohci1: 248 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 259 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 244 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 259 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 259 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 259 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
> ohci1: 249 scheduling overruns
>  done.
> ohci1: 229 scheduling overruns
> starting early daemons:ohci1: 232 scheduling overruns
>  syslogdohci1: 230 scheduling overruns
> ohci1: 252 scheduling overruns
> ohci1: 245 scheduling overruns
>  pflogdohci1: 246 scheduling overruns
>  ntpdohci1: 243 scheduling overruns
> ohci1: 251 scheduling overruns
> ohci1: 259 scheduling overruns
> ohci1: 259 scheduling overruns
> ohci1: 259 scheduling overruns
> .
> starting RPC daemons:.
> ohci1: 256 scheduling overruns
> savecore: no core dump
> checking quotas: done.
> ohci1: 239 scheduling overruns
> clearing /tmp
> kern.securelevel: 0 -> 1
> ohci1: 250 scheduling overruns
> creating runtime link editor directory cache.
> preserving editor files.
> ohci1: 252 scheduling overruns
> starting network daemons:ohci1: 249 scheduling overruns
>  sshdohci1: 256 scheduling overruns
> ohci1: 256 scheduling overruns
>  smtpdohci1: 255 scheduling overruns
> ohci1: 238 scheduling overruns
>  sndiodohci1: 255 scheduling overruns
> .
> starting local daemons:ohci1: 254 scheduling overruns
>  cronohci1: 254 scheduling overruns
> .
> Tue Aug 13 14:45:32 PDT 2019
> ohci1: 257 scheduling overruns
> ohci1: 259 scheduling overruns
> ohci1: 259 scheduling overruns
> ohci1: 248 scheduling overruns
> ohci1: 256 scheduling overruns
> ohci1: 245 scheduling overruns
> ohci1: 256 scheduling overruns
> ohci1: 259 scheduling overruns
> ohci1: 259 scheduling overruns
> ohci1: 259 scheduling overruns
> ohci1: 259 scheduling overruns
> 
> OpenBSD/arm64 (hedges.my.domain) (console)
> 
> login: ohci1: 259 scheduling overruns
> ohci1: 259 scheduling overruns
> ohci1: 259 scheduling overruns
> ohci1: 259 scheduling overruns
> ohci1: 259 scheduling overruns
> ohci1: 259 scheduling overruns
> ohci1: 259 scheduling overruns
> ohci1: 259 scheduling overruns
> ohci1: 259 scheduling overruns
> ohci1: 259 scheduling overruns
> 

Reply via email to