Failed boot at drm_vblank in arm64/aarch64 on PBP
Date: Tue, 25 Jan 2022 02:15:28 UTC
Hi, all I've re-made boot image for Pinebook Pro (PBP) of 14.0-CURRENT n252589-ece746877783 which is made by GENERIC-DRM kernel for Panfrost driver [1] : First `git subtree add' to 14.0-CURRENT (f72926eab00c) in src server : root@vm:/ds/src/freebsd/current/14.0/f72926eab00c.generic_drm # git checkout f72926eab00c root@vm:/ds/src/freebsd/current/14.0/f72926eab00c.generic_drm # git remote add drm-subtree https://github.com/jsm222/drm-subtree.git root@vm:/ds/src/freebsd/current/14.0/f72926eab00c.generic_drm # git subtree add --prefix sys/dev/drm/ drm-subtree pinebookpro-test root@vm:/ds/src/freebsd/current/14.0/f72926eab00c.generic_drm # git apply sys/dev/drm/extra_patches/0001-Hook-DRM-to-the-build.patch root@vm:/ds/src/freebsd/current/14.0/f72926eab00c.generic_drm # git apply sys/dev/drm/extra_patches/0002-Add-GENERIC-DRM-for-armv7.patch root@vm:/ds/src/freebsd/current/14.0/f72926eab00c.generic_drm # git apply sys/dev/drm/extra_patches/0003-drm-Add-rockchip-and-bridges-into-GENERIC-DRM.patch root@vm:/ds/src/freebsd/current/14.0/f72926eab00c.generic_drm # git apply sys/dev/drm/pbp-kernel-extra-patches/gicv3_its.c-patch root@vm:/ds/src/freebsd/current/14.0/f72926eab00c.generic_drm # git apply sys/dev/drm/pbp-kernel-extra-patches/mixer.c.patch root@vm:/ds/src/freebsd/current/14.0/f72926eab00c.generic_drm # git apply sys/dev/drm/pbp-kernel-extra-patches/sys_dev_iicbus_es8316.c root@vm:/ds/src/freebsd/current/14.0/f72926eab00c.generic_drm # git apply sys/dev/drm/pbp-kernel-extra-patches/GENERIC-DRM.patch root@vm:/ds/src/freebsd/current/14.0/f72926eab00c.generic_drm # git apply sys/dev/drm/pbp-kernel-extra-patches/sys_modules_dtb_rockchip_Makefile.patch root@vm:/ds/src/freebsd/current/14.0/f72926eab00c.generic_drm # git apply sys/dev/drm/pbp-kernel-extra-patches/mmc.c.patch root@vm:/ds/src/freebsd/current/14.0/f72926eab00c.generic_drm # git rev-parse --verify --short HEAD ece746877783 root@vm:/ds/src/freebsd/current/14.0/f72926eab00c.generic_drm # cd .. root@vm:/ds/src/freebsd/current/14.0 # mv f72926eab00c.generic_drm ece746877783.generic_drm and then build GENERIC-DRM kernel and boot image on 14.0-CURRENT VM : # cd /usr/src # make buildworld TARGET=arm64 # make buildkernel TARGET=arm64 KERNCONF=GENERIC-DRM # cd /usr/src/release # make clean memstick.img TARGET=arm64 TARGET_ARCH=aarch64 KERNCONF=GENERIC-DRM Then boot from it. Failed : ---<<BOOT>>--- GDB: debug ports: uart GDB: current port: uart KDB: debugger backends: ddb gdb KDB: current backend: ddb WARNING: Cannot find freebsd,dts-version property, cannot check DTB compliance Copyright (c) 1992-2022 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 14.0-CURRENT #0 n252589-ece746877783-dirty: Tue Jan 25 03:42:31 JST 2022 root@tbedfc:/usr/obj/usr/src/arm64.aarch64/sys/GENERIC-DRM arm64 FreeBSD clang version 13.0.0 (git@github.com:llvm/llvm-project.git llvmorg-13.0.0-0-gd7b669b3a303) VT(efifb): resolution 1920x1080 module firmware already present! real memory = 4150083584 (3957 MB) avail memory = 4022452224 (3836 MB) Starting CPU 1 (1) Starting CPU 2 (2) Starting CPU 3 (3) Starting CPU 4 (100) Starting CPU 5 (101) FreeBSD/SMP: Multiprocessor System Detected: 6 CPUs arc4random: WARNING: initial seeding bypassed the cryptographic random device because it was not yet seeded and the knob 'bypass_before_seeding' was enabled. random: entropy device external interface MAP f3f10000 mode 2 pages 4 MAP f3f15000 mode 2 pages 4 MAP f6f30000 mode 2 pages 16 kbd0 at kbdmux0 ofwbus0: <Open Firmware Device Tree> clk_fixed0: <Fixed clock> on ofwbus0 simplebus0: <Flattened device tree simple bus> on ofwbus0 rk_grf0: <RockChip General Register Files> mem 0xff320000-0xff320fff on ofwbus0 rk3399_pmucru0: <Rockchip RK3399 PMU Clock and Reset Unit> mem 0xff750000-0xff750fff on ofwbus0 rk3399_cru0: <Rockchip RK3399 Clock and Reset Unit> mem 0xff760000-0xff760fff on ofwbus0 rk_grf1: <RockChip General Register Files> mem 0xff770000-0xff77ffff on ofwbus0 regfix0: <Fixed Regulator> on ofwbus0 regfix1: <Fixed Regulator> on ofwbus0 regfix2: <Fixed Regulator> on ofwbus0 regfix3: <Fixed Regulator> on ofwbus0 regfix4: <Fixed Regulator> on ofwbus0 regfix5: <Fixed Regulator> on ofwbus0 regfix6: <Fixed Regulator> on ofwbus0 regfix7: <Fixed Regulator> on ofwbus0 regfix8: <Fixed Regulator> on ofwbus0 regfix9: <Fixed Regulator> on ofwbus0 regfix10: <Fixed Regulator> on ofwbus0 regfix11: <Fixed Regulator> on ofwbus0 simple_mfd0: <Simple MFD (Multi-Functions Device)> mem 0xff310000-0xff310fff on ofwbus0 psci0: <ARM Power State Co-ordination Interface Driver> on ofwbus0 rk_drm0: <Rockchip Display Subsystem> on ofwbus0 gic0: <ARM Generic Interrupt Controller v3.0> mem 0xfee00000-0xfee0ffff,0xfef00000-0xfefbffff,0xfff00000-0xfff0ffff,0xfff10000-0xfff1ffff,0xfff20000-0xfff2ffff irq 18 on ofwbus0 its0: <ARM GIC Interrupt Translation Service> mem 0xfee20000-0xfee3ffff on gic0 rk_iodomain0: <RockChip IO Voltage Domain> mem 0-0xff31ffff,0-0xfff on rk_grf0 rk_iodomain1: <RockChip IO Voltage Domain> mem 0-0xff76ffff,0-0xffff on rk_grf1 rk_pinctrl0: <RockChip Pinctrl controller> on ofwbus0 gpio0: <RockChip GPIO Bank controller> mem 0xff720000-0xff7200ff irq 71 on rk_pinctrl0 gpiobus0: <OFW GPIO bus> on gpio0 gpio1: <RockChip GPIO Bank controller> mem 0xff730000-0xff7300ff irq 72 on rk_pinctrl0 gpiobus1: <OFW GPIO bus> on gpio1 gpio2: <RockChip GPIO Bank controller> mem 0xff780000-0xff7800ff irq 73 on rk_pinctrl0 gpiobus2: <OFW GPIO bus> on gpio2 gpio3: <RockChip GPIO Bank controller> mem 0xff788000-0xff7880ff irq 74 on rk_pinctrl0 gpiobus3: <OFW GPIO bus> on gpio3 gpio4: <RockChip GPIO Bank controller> mem 0xff790000-0xff7900ff irq 75 on rk_pinctrl0 gpiobus4: <OFW GPIO bus> on gpio4 rk_i2c0: <RockChip I2C> mem 0xff110000-0xff110fff irq 20 on ofwbus0 iicbus0: <OFW I2C bus> on rk_i2c0 rk_i2c1: <RockChip I2C> mem 0xff130000-0xff130fff irq 22 on ofwbus0 iicbus1: <OFW I2C bus> on rk_i2c1 rk_i2c2: <RockChip I2C> mem 0xff3c0000-0xff3c0fff irq 38 on ofwbus0 iicbus2: <OFW I2C bus> on rk_i2c2 fan53555_pmic0: <SYR827 PMIC> at addr 0x80 on iicbus2 fan53555_pmic1: <SYR828 PMIC> at addr 0x82 on iicbus2 rk_i2c3: <RockChip I2C> mem 0xff3d0000-0xff3d0fff irq 39 on ofwbus0 iicbus3: <OFW I2C bus> on rk_i2c3 rk808_pmu0: <RockChip RK808 PMIC> at addr 0x36 irq 76 on iicbus2 rk_vop0: <Rockchip RK3399 Visual Output Processor> mem 0xff8f0000-0xff8f3efb irq 53 on ofwbus0 rk_vop0: VOP version: 3068896 generic_timer0: <ARMv8 Generic Timer> irq 2,3,4,5 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 0xff260000-0xff2600ff irq 35 on ofwbus0 mmc_pwrseq0: <MMC Simple Power sequence> on ofwbus0 rk_edp0: <RockChip edp> mem 0xff970000-0xff977fff irq 62 on ofwbus0 rk_usb2phy0: <Rockchip RK3399 USB2PHY> mem 0-0xff76ffff,0-0xffff on rk_grf1 rk_usb2phy1: <Rockchip RK3399 USB2PHY> mem 0-0xff76ffff,0-0xffff on rk_grf1 rk_emmcphy0: <Rockchip RK3399 eMMC PHY> mem 0-0xff76ffff,0-0xffff on rk_grf1 rk_pcie_phy0: <Rockchip RK3399 PCIe PHY> mem 0-0xff76ffff,0-0xffff on rk_grf1 rk_typec_phy0: <Rockchip RK3399 PHY TYPEC> mem 0xff7c0000-0xff7fffff on ofwbus0 rk_typec_phy1: <Rockchip RK3399 PHY TYPEC> mem 0xff800000-0xff83ffff on ofwbus0 cpulist0: <Open Firmware CPU Group> on ofwbus0 cpu0: <Open Firmware CPU> on cpulist0 cpufreq_dt0: <Generic cpufreq driver> on cpu0 cpufreq_dt0: Found cpu-supply cpu1: <Open Firmware CPU> on cpulist0 cpufreq_dt1: <Generic cpufreq driver> on cpu1 cpufreq_dt1: Found cpu-supply cpu2: <Open Firmware CPU> on cpulist0 cpufreq_dt2: <Generic cpufreq driver> on cpu2 cpufreq_dt2: Found cpu-supply cpu3: <Open Firmware CPU> on cpulist0 cpufreq_dt3: <Generic cpufreq driver> on cpu3 cpufreq_dt3: Found cpu-supply cpu4: <Open Firmware CPU> on cpulist0 cpufreq_dt4: <Generic cpufreq driver> on cpu4 cpufreq_dt4: Found cpu-supply cpu5: <Open Firmware CPU> on cpulist0 cpufreq_dt5: <Generic cpufreq driver> on cpu5 cpufreq_dt5: Found cpu-supply pmu0: <Performance Monitoring Unit> irq 0 on ofwbus0 pmu1: <Performance Monitoring Unit> irq 1 on ofwbus0 pcib0: <Rockchip PCIe controller> mem 0xf8000000-0xf9ffffff,0xfd000000-0xfdffffff irq 6,7,8 on ofwbus0 pcib0: Gen1 link training timeouted: 0x00080001. pci0: <OFW PCI bus> on pcib0 pcib1: <PCI-PCI bridge> at device 0.0 on pci0 pcib0: failed to reserve resource for pcib1 pcib1: failed to allocate initial memory window: 0-0xfffff pci1: <PCI bus> on pcib1 rockchip_dwmmc0: <Synopsys DesignWare Mobile Storage Host Controller (RockChip)> mem 0xfe310000-0xfe313fff irq 10 on ofwbus0 rockchip_dwmmc0: Hardware version ID is 270a rockchip_dwmmc1: <Synopsys DesignWare Mobile Storage Host Controller (RockChip)> mem 0xfe320000-0xfe323fff irq 11 on ofwbus0 rockchip_dwmmc1: Hardware version ID is 270a mmc0: <MMC/SD bus> on rockchip_dwmmc1 sdhci_fdt0: <Rockchip RK3399 fdt SDHCI controller> mem 0xfe330000-0xfe33ffff irq 12 on ofwbus0 rk_emmcphy0: got emmcclk clock sdhci_fdt0-slot0: Hardware doesn't specify timeout clock frequency, setting BROKEN_TIMEOUT quirk. sdhci_fdt0: 1 slot(s) allocated mmc1: <MMC/SD bus> on sdhci_fdt0 ehci0: <Generic EHCI Controller> mem 0xfe380000-0xfe39ffff irq 13 on ofwbus0 usbus0: EHCI version 1.0 usbus0 on ehci0 ohci0: <Generic OHCI Controller> mem 0xfe3a0000-0xfe3bffff irq 14 on ofwbus0 usbus1 on ohci0 ehci1: <Generic EHCI Controller> mem 0xfe3c0000-0xfe3dffff irq 15 on ofwbus0 usbus2: EHCI version 1.0 usbus2 on ehci1 ohci1: <Generic OHCI Controller> mem 0xfe3e0000-0xfe3fffff irq 16 on ofwbus0 usbus3 on ohci1 rk_dwc30: <Rockchip RK3399 DWC3> on ofwbus0 xhci0: <Synopsys Designware DWC3> mem 0xfe800000-0xfe8fffff irq 77 on rk_dwc30 xhci0: 64 bytes context size, 32-bit DMA usbus4: trying to attach usbus4 on xhci0 rk_dwc31: <Rockchip RK3399 DWC3> on ofwbus0 xhci1: <Synopsys Designware DWC3> mem 0xfe900000-0xfe9fffff irq 78 on rk_dwc31 xhci1: 64 bytes context size, 32-bit DMA usbus5: trying to attach usbus5 on xhci1 es8316codec0: <Everest Semi ES8316 CODEC> at addr 0x22 on iicbus0 iic0: <I2C generic I/O> on iicbus0 iic1: <I2C generic I/O> on iicbus1 uart0: <Non-standard ns8250 class UART with FIFOs> mem 0xff180000-0xff1800ff irq 26 on ofwbus0 uart0: debug port (-1,n,8,1) uart1: <16750 or compatible> mem 0xff1a0000-0xff1a00ff irq 28 on ofwbus0 uart1: console (1500000,n,8,1) spi0: <Rockchip SPI> mem 0xff1d0000-0xff1d0fff irq 31 on ofwbus0 spibus0: <OFW SPI bus> on spi0 spibus0: <unknown card> at cs 0 mode 0 iic2: <I2C generic I/O> on iicbus2 iicbus3: <unknown card> at addr 0x44 iic3: <I2C generic I/O> on iicbus3 pwm0: <Rockchip PWM> mem 0xff420000-0xff42000f on ofwbus0 pwmbus0: <OFW PWM bus> on pwm0 pwmc0: <PWM Control> channel 0 on pwmbus0 pwm1: <Rockchip PWM> mem 0xff420020-0xff42002f on ofwbus0 pwmbus1: <OFW PWM bus> on pwm1 pwmc1: <PWM Control> channel 0 on pwmbus1 i2s0: <Rockchip I2S> mem 0xff890000-0xff890fff irq 51 on ofwbus0 Cannot set frequency for clk: clkin_i2s, error: 34 Cannot set frequency for clk: xin24m, error: 34 pcm0: <simple-audio-card> on ofwbus0 gpioc0: <GPIO controller> on gpio0 gpioc1: <GPIO controller> on gpio1 gpioc2: <GPIO controller> on gpio2 gpioc3: <GPIO controller> on gpio3 gpioc4: <GPIO controller> on gpio4 rk_edp_panel0: <RockChip lcd panel> on ofwbus0 gpioled0: <GPIO LEDs> on ofwbus0 pcm1: <simple-audio-card> on ofwbus0 simpleamp0: <Simple Amplifier> on ofwbus0 armv8crypto0: <AES-CBC,AES-XTS,AES-GCM> Timecounters tick every 1.000 msec usbus0: 480Mbps High Speed USB v2.0 usbus1: 12Mbps Full Speed USB v1.0 usbus2: 480Mbps High Speed USB v2.0 usbus3: 12Mbps Full Speed USB v1.0 usbus4: 5.0Gbps Super Speed USB v3.0 usbus5: 5.0Gbps Super Speed USB v3.0 rk_drm0: port found <6>[drm] Connector eDP-1: get mode from tunables: <6>[drm] - kern.vt.fb.modes.eDP-1 <6>[drm] - kern.vt.fb.default_mode rk_drm0: Cannot find port with phandle 10 rk_drm_fb_preinit <6>[drm] Supports vblank timestamp caching Rev 2 (21.10.2013). <6>[drm] No driver support for vblank timestamp query. WARNING: Device "fb" is Giant locked and may be deleted before FreeBSD 14.0. VT: Replacing driver "efifb" with new "fb". <6>[drm] Initialized rockchip 1.0.0 20201113 for rk_drm on minor 0 rk808_pmu0: registered as a time-of-day clock, resolution 1.000000s ugen3.1: <Generic OHCI root HUB> at usbus3 uhub0 on usbus3 uhub0: <Generic OHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus3 ugen2.1: <Generic EHCI root HUB> at usbus2 uhub1 on usbus2 uhub1: <Generic EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus2 ugen1.1: <Generic OHCI root HUB> at usbus1 uhub2 on usbus1 uhub2: <Generic OHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus1 ugen5.1: <Synopsys XHCI root HUB> at usbus5 uhub3 on usbus5 uhub3: <Synopsys XHCI root HUB, class 9/0, rev 3.00/1.00, addr 1> on usbus5 ugen4.1: <Synopsys XHCI root HUB> at usbus4 uhub4 on usbus4 uhub4: <Synopsys XHCI root HUB, class 9/0, rev 3.00/1.00, addr 1> on usbus4 ugen0.1: <Generic EHCI root HUB> at usbus0 uhub5 on usbus0 uhub5: <Generic EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus0 mmcsd0: 8GB <SDHC SA08G 4.3 SN 3177653E MFG 01/2020 by 2 TM> at mmc0 20.0MHz/4bit/1016-block WARNING cur_vblank != vblank->last failed at /usr/src/sys/dev/drm/core/drm_vblank.c:279 Fatal data abort: x0: ffffa0000091f498 x1: 0 x2: a8 x3: 102 x4: 102 x5: ffff00009a845990GEOM: mmcsd0: the secondary GPT header is not in the last LBA. (_end + 9976a990) x6: 0 x7: 501 x8: ffffa00000d5f000 x9: 2 x10: 2 x11: 0 x12: 0 x13: 0 x14: 0 x15: 10 x16: 400 x17: 0 x18: ffff00009a845810 (_end + 9976a810) x19: ffffa00000d5b600 x20: ffffa0000091f498 x21: 102 x22: 2 x23: ffff000000f10b30 (proc0 + 0) x24: ffff000000cb5000 (sdta_vfs_vop_vop_spare1_return0 + 0) x25: ffff000000cb5000 (sdta_vfs_vop_vop_spare1_return0 + 0) x26: ffff000000cb5000 (sdta_vfs_vop_vop_spare1_return0 + 0) x27: ffff000000cb5000 (sdta_vfs_vop_vop_spare1_return0 + 0) x28: 0 x29: ffff00009a845810 (_end + 9976a810) sp: ffff00009a845810 lr: ffff0000007080e8 (linux_alloc_current + 58) elr: ffff000000708360 (linux_alloc_current + 2d0) spsr: 60000045 far: e esr: 96000004 WARNING !list_empty(&lock->head) failed at /usr/src/sys/dev/drm/core/drm_modeset_lock.c:268 WARNING !list_empty(&lock->head) failed at /usr/src/sys/dev/drm/core/drm_modeset_lock.c:268 WARNING !list_empty(&lock->head) failed at /usr/src/sys/dev/drm/core/drm_modeset_lock.c:268 WARNING !list_empty(&lock->head) failed at /usr/src/sys/dev/drm/core/drm_modeset_lock.c:268 WARNING !list_empty(&lock->head) failed at /usr/src/sys/dev/drm/core/drm_modeset_lock.c:268 WARNING !drm_modeset_is_locked(&crtc->mutex) failed at /usr/src/sys/dev/drm/core/drm_atomic_helper.c:615 WARNING !drm_modeset_is_locked(&dev->mode_config.connection_mutex) failed at /usr/src/sys/dev/drm/core/drm_atomic_helper.c:660 WARNING !drm_modeset_is_locked(&plane->mutex) failed at /usr/src/sys/dev/drm/core/drm_atomic_helper.c:865 WARNING !drm_modeset_is_locked(&plane->mutex) failed at /usr/src/sys/dev/drm/core/drm_atomic_helper.c:865 <3>[drm: 0xffff00000090f048] *ERROR* [CRTC:33:crtc-0] hw_done timed out <3>[drm: 0xffff00000090f074] *ERROR* [CRTC:33:crtc-0] flip_done timed out <3>[drm: 0xffff00000090f0fc] *ERROR* [CONNECTOR:35:eDP-1] hw_done timed out <3>[drm: 0xffff00000090f128] *ERROR* [CONNECTOR:35:eDP-1] flip_done timed out <3>[drm: 0xffff00000090f1b8] *ERROR* [PLANE:31:plane-0] hw_done timed out <3>[drm: 0xffff00000090f1e4] *ERROR* [PLANE:31:plane-0] flip_done timed out <3>[drm: 0xffff00000090f1b8] *ERROR* [PLANE:32:plane-1] hw_done timed out <3>[drm: 0xffff00000090f1e4] *ERROR* [PLANE:32:plane-1] flip_done timed out [CRTC:33:crtc-0] vblank wait timed out Is there any suggetions ? Best regards [1] https://github.com/jsm222/drm-subtree --- Kazuhiko Kiriyama <kiri@truefc.org>