From nobody Sun Feb 27 19:48:25 2022 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 9FAC019E841D; Sun, 27 Feb 2022 19:48:35 +0000 (UTC) (envelope-from br@bsdpad.com) Received: from mail.bsdpad.com (mail.bsdpad.com [116.202.106.248]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4K6Db64Rf5z3pmF; Sun, 27 Feb 2022 19:48:34 +0000 (UTC) (envelope-from br@bsdpad.com) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=bsdpad.com; s=20201212; h=Subject:To:From; bh=3nz+u4JqUa1hEbKMMgDJiaMvLD62QC0KLb5ML0y9QjM=; b=CPNcM5Qzrcd8LvxGCF683N+G6H Agu6Rlrh5sDkduPx8aE54LMKxNq9O30bmd++PwbDd+nVWJUI8nqJReAvZlZsdGX3KTXCbbADIopIv 83FBjqUIuM3MoAnTe4PK+Mn3azzSc98dElHfDVyFrYuWzjykTjmFB0ewOjTUiQY/sgQPYsgVmHg5a QqHm0XROerK90qfMzTC/SbXahP6uUyuHEQdSVzi++WEB66iAGxZDtmItjNf7uR4x8IMF6E78UwXXA IIpTfuFFjYjNt1AbC0Z563Gj2d0EqYEokvbw6Jtazv0+teu71bi8l8H8vlBgbHCrxPMp6Ph/rQ856 i0hTMNBw==; Received: from localhost ([127.0.0.1] helo=bsdpad.com) by mail.bsdpad.com with smtp (Exim 4.94 (FreeBSD)) (envelope-from ) id 1nOPWr-0002mc-KL; Sun, 27 Feb 2022 19:48:25 +0000 Received: by bsdpad.com (nbSMTP-1.00) for uid 1001 br@bsdpad.com; Sun, 27 Feb 2022 19:48:25 +0000 (GMT) Date: Sun, 27 Feb 2022 19:48:25 +0000 From: Ruslan Bukin To: Hans Petter Selasky Cc: src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Subject: Re: git: 7520b88860d7 - main - usb(4): Automagically apply all quirks for USB mass storage devices. Message-ID: References: <202202240930.21O9UFKS055179@gitrepo.freebsd.org> List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="VfbHpm+RB/lXMlzQ" Content-Disposition: inline In-Reply-To: <202202240930.21O9UFKS055179@gitrepo.freebsd.org> X-Rspamd-Queue-Id: 4K6Db64Rf5z3pmF X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=bsdpad.com header.s=20201212 header.b=CPNcM5Qz; dmarc=none; spf=pass (mx1.freebsd.org: domain of br@bsdpad.com designates 116.202.106.248 as permitted sender) smtp.mailfrom=br@bsdpad.com X-Spamd-Result: default: False [-2.20 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; R_DKIM_ALLOW(-0.20)[bsdpad.com:s=20201212]; FREEFALL_USER(0.00)[br]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; TO_DN_SOME(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[multipart/mixed,text/plain]; HAS_ATTACHMENT(0.00)[]; DMARC_NA(0.00)[freebsd.org]; R_SPF_ALLOW(-0.20)[+mx]; NEURAL_HAM_LONG(-1.00)[-1.000]; DKIM_TRACE(0.00)[bsdpad.com:+]; CTYPE_MIXED_BOGUS(1.00)[]; NEURAL_HAM_SHORT(-1.00)[-1.000]; MLMMJ_DEST(0.00)[dev-commits-src-all,dev-commits-src-main]; FORGED_SENDER(0.30)[br@freebsd.org,br@bsdpad.com]; MIME_TRACE(0.00)[0:+,1:+,2:+]; RCVD_TLS_LAST(0.00)[]; ASN(0.00)[asn:24940, ipnet:116.202.0.0/16, country:DE]; FROM_NEQ_ENVFROM(0.00)[br@freebsd.org,br@bsdpad.com]; RCVD_COUNT_TWO(0.00)[2] X-ThisMailContainsUnwantedMimeParts: N --VfbHpm+RB/lXMlzQ Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Hi, I've an xhci issue with this change on my ARM Morello Board. I've attached boot log. Can you look? Thanks. Ruslan On Thu, Feb 24, 2022 at 09:30:15AM +0000, Hans Petter Selasky wrote: > The branch main has been updated by hselasky: > > URL: https://cgit.FreeBSD.org/src/commit/?id=7520b88860d7a79432e12ffcc47056844518bb62 > > commit 7520b88860d7a79432e12ffcc47056844518bb62 > Author: Hans Petter Selasky > AuthorDate: 2022-02-21 08:24:28 +0000 > Commit: Hans Petter Selasky > CommitDate: 2022-02-24 09:28:55 +0000 > > usb(4): Automagically apply all quirks for USB mass storage devices. > > Currently there are five quirks the USB stack tries to automagically detect: > - UQ_MSC_NO_PREVENT_ALLOW > - UQ_MSC_NO_SYNC_CACHE > - UQ_MSC_NO_TEST_UNIT_READY > - UQ_MSC_NO_GETMAXLUN > - UQ_MSC_NO_START_STOP > > If any of the quirks above are set, no further quirks will be probed. > > If any of the USB mass storage tests fail, the USB device is > re-enumerated as a last resort to clear any error states from the > device. Then the USB stack will try to probe and attach the umass > device passing the detected quirks. > > While at it give more details in dmesg about what is going on. > > Tested by: several > Submitted by: Idwer Vollering > Differential Revision: https://reviews.freebsd.org/D30919 > MFC after: 1 week > Sponsored by: NVIDIA Networking > --- > sys/dev/usb/storage/umass.c | 7 +++ > sys/dev/usb/usb_device.c | 5 +- > sys/dev/usb/usb_msctest.c | 133 +++++++++++++++++++++++++++----------------- > sys/dev/usb/usb_msctest.h | 4 +- > 4 files changed, 96 insertions(+), 53 deletions(-) > > diff --git a/sys/dev/usb/storage/umass.c b/sys/dev/usb/storage/umass.c > index 65c72b06e244..674c12186f86 100644 > --- a/sys/dev/usb/storage/umass.c > +++ b/sys/dev/usb/storage/umass.c > @@ -2294,6 +2294,13 @@ umass_cam_action(struct cam_sim *sim, union ccb *ccb) > xpt_done(ccb); > goto done; > } > + } else if (sc->sc_transfer.cmd_data[0] == START_STOP_UNIT) { > + if (sc->sc_quirks & NO_START_STOP) { > + ccb->csio.scsi_status = SCSI_STATUS_OK; > + ccb->ccb_h.status = CAM_REQ_CMP; > + xpt_done(ccb); > + goto done; > + } > } > umass_command_start(sc, dir, ccb->csio.data_ptr, > ccb->csio.dxfer_len, > diff --git a/sys/dev/usb/usb_device.c b/sys/dev/usb/usb_device.c > index 634507fc65ca..6564182a97b0 100644 > --- a/sys/dev/usb/usb_device.c > +++ b/sys/dev/usb/usb_device.c > @@ -2047,13 +2047,16 @@ repeat_set_config: > } > #if USB_HAVE_MSCTEST > if (set_config_failed == 0 && config_index == 0 && > + usb_test_quirk(&uaa, UQ_MSC_NO_START_STOP) == 0 && > + usb_test_quirk(&uaa, UQ_MSC_NO_PREVENT_ALLOW) == 0 && > usb_test_quirk(&uaa, UQ_MSC_NO_SYNC_CACHE) == 0 && > + usb_test_quirk(&uaa, UQ_MSC_NO_TEST_UNIT_READY) == 0 && > usb_test_quirk(&uaa, UQ_MSC_NO_GETMAXLUN) == 0) { > /* > * Try to figure out if there are any MSC quirks we > * should apply automatically: > */ > - err = usb_msc_auto_quirk(udev, 0); > + err = usb_msc_auto_quirk(udev, 0, &uaa); > > if (err != 0) { > set_config_failed = 1; > diff --git a/sys/dev/usb/usb_msctest.c b/sys/dev/usb/usb_msctest.c > index 0fffd99a73c4..5dcf8d151119 100644 > --- a/sys/dev/usb/usb_msctest.c > +++ b/sys/dev/usb/usb_msctest.c > @@ -2,7 +2,8 @@ > /*- > * SPDX-License-Identifier: BSD-2-Clause-FreeBSD > * > - * Copyright (c) 2008,2011 Hans Petter Selasky. All rights reserved. > + * Copyright (c) 2008-2022 Hans Petter Selasky. > + * Copyright (c) 2021-2022 Idwer Vollering. > * > * Redistribution and use in source and binary forms, with or without > * modification, are permitted provided that the following conditions > @@ -29,9 +30,6 @@ > /* > * The following file contains code that will detect USB autoinstall > * disks. > - * > - * TODO: Potentially we could add code to automatically detect USB > - * mass storage quirks for not supported SCSI commands! > */ > > #ifdef USB_GLOBAL_INCLUDE_FILE > @@ -97,7 +95,8 @@ enum { > static uint8_t scsi_test_unit_ready[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; > static uint8_t scsi_inquiry[] = { 0x12, 0x00, 0x00, 0x00, SCSI_INQ_LEN, 0x00 }; > static uint8_t scsi_rezero_init[] = { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 }; > -static uint8_t scsi_start_stop_unit[] = { 0x1b, 0x00, 0x00, 0x00, 0x02, 0x00 }; > +static uint8_t scsi_start_unit[] = { 0x1b, 0x00, 0x00, 0x00, 0x01, 0x00 }; > +static uint8_t scsi_stop_unit[] = { 0x1b, 0x00, 0x00, 0x00, 0x02, 0x00 }; > static uint8_t scsi_ztestor_eject[] = { 0x85, 0x01, 0x01, 0x01, 0x18, 0x01, > 0x01, 0x01, 0x01, 0x01, 0x00, 0x00 }; > static uint8_t scsi_cmotech_eject[] = { 0xff, 0x52, 0x44, 0x45, 0x56, 0x43, > @@ -759,28 +758,49 @@ usb_msc_get_max_lun(struct usb_device *udev, uint8_t iface_index) > return (buf); > } > > +#define USB_ADD_QUIRK(udev, any, which) do { \ > + if (usb_get_manufacturer(udev) != NULL && usb_get_product(udev) != NULL) { \ > + DPRINTFN(0, #which " set for USB mass storage device %s %s (0x%04x:0x%04x)\n", \ > + usb_get_manufacturer(udev), \ > + usb_get_product(udev), \ > + UGETW(udev->ddesc.idVendor), \ > + UGETW(udev->ddesc.idProduct)); \ > + } else { \ > + DPRINTFN(0, #which " set for USB mass storage device, 0x%04x:0x%04x\n", \ > + UGETW(udev->ddesc.idVendor), \ > + UGETW(udev->ddesc.idProduct)); \ > + } \ > + usbd_add_dynamic_quirk(udev, which); \ > + any = 1; \ > +} while (0) > + > usb_error_t > -usb_msc_auto_quirk(struct usb_device *udev, uint8_t iface_index) > +usb_msc_auto_quirk(struct usb_device *udev, uint8_t iface_index, > + const struct usb_attach_arg *uaa) > { > struct bbb_transfer *sc; > uint8_t timeout; > uint8_t is_no_direct; > uint8_t sid_type; > + uint8_t any_quirk; > int err; > > sc = bbb_attach(udev, iface_index, UICLASS_MASS); > if (sc == NULL) > return (0); > > + any_quirk = 0; > + > /* > * Some devices need a delay after that the configuration > * value is set to function properly: > */ > usb_pause_mtx(NULL, hz); > > - if (usb_msc_get_max_lun(udev, iface_index) == 0) { > + if (usb_test_quirk(uaa, UQ_MSC_NO_GETMAXLUN) == 0 && > + usb_msc_get_max_lun(udev, iface_index) == 0) { > DPRINTF("Device has only got one LUN.\n"); > - usbd_add_dynamic_quirk(udev, UQ_MSC_NO_GETMAXLUN); > + USB_ADD_QUIRK(udev, any_quirk, UQ_MSC_NO_GETMAXLUN); > } > > is_no_direct = 1; > @@ -807,37 +827,40 @@ usb_msc_auto_quirk(struct usb_device *udev, uint8_t iface_index) > goto done; > } > > - err = bbb_command_start(sc, DIR_IN, 0, NULL, 0, > - &scsi_test_unit_ready, sizeof(scsi_test_unit_ready), > - USB_MS_HZ); > + if (usb_test_quirk(uaa, UQ_MSC_NO_TEST_UNIT_READY) == 0) { > + err = bbb_command_start(sc, DIR_NONE, 0, NULL, 0, > + &scsi_test_unit_ready, sizeof(scsi_test_unit_ready), > + USB_MS_HZ); > > - if (err != 0) { > - if (err != ERR_CSW_FAILED) > - goto error; > - DPRINTF("Test unit ready failed\n"); > + if (err != 0) { > + if (err != ERR_CSW_FAILED) > + goto error; > + USB_ADD_QUIRK(udev, any_quirk, UQ_MSC_NO_TEST_UNIT_READY); > + } > } > > - err = bbb_command_start(sc, DIR_OUT, 0, NULL, 0, > - &scsi_prevent_removal, sizeof(scsi_prevent_removal), > - USB_MS_HZ); > - > - if (err == 0) { > - err = bbb_command_start(sc, DIR_OUT, 0, NULL, 0, > - &scsi_allow_removal, sizeof(scsi_allow_removal), > + if (usb_test_quirk(uaa, UQ_MSC_NO_PREVENT_ALLOW) == 0) { > + err = bbb_command_start(sc, DIR_NONE, 0, NULL, 0, > + &scsi_prevent_removal, sizeof(scsi_prevent_removal), > USB_MS_HZ); > - } > > - if (err != 0) { > - if (err != ERR_CSW_FAILED) > - goto error; > - DPRINTF("Device doesn't handle prevent and allow removal\n"); > - usbd_add_dynamic_quirk(udev, UQ_MSC_NO_PREVENT_ALLOW); > + if (err == 0) { > + err = bbb_command_start(sc, DIR_NONE, 0, NULL, 0, > + &scsi_allow_removal, sizeof(scsi_allow_removal), > + USB_MS_HZ); > + } > + > + if (err != 0) { > + if (err != ERR_CSW_FAILED) > + goto error; > + USB_ADD_QUIRK(udev, any_quirk, UQ_MSC_NO_PREVENT_ALLOW); > + } > } > > timeout = 1; > > retry_sync_cache: > - err = bbb_command_start(sc, DIR_IN, 0, NULL, 0, > + err = bbb_command_start(sc, DIR_NONE, 0, NULL, 0, > &scsi_sync_cache, sizeof(scsi_sync_cache), > USB_MS_HZ); > > @@ -845,9 +868,7 @@ retry_sync_cache: > if (err != ERR_CSW_FAILED) > goto error; > > - DPRINTF("Device doesn't handle synchronize cache\n"); > - > - usbd_add_dynamic_quirk(udev, UQ_MSC_NO_SYNC_CACHE); > + USB_ADD_QUIRK(udev, any_quirk, UQ_MSC_NO_SYNC_CACHE); > } else { > /* > * Certain Kingston memory sticks fail the first > @@ -872,11 +893,7 @@ retry_sync_cache: > if (timeout--) > goto retry_sync_cache; > > - DPRINTF("Device most likely doesn't " > - "handle synchronize cache\n"); > - > - usbd_add_dynamic_quirk(udev, > - UQ_MSC_NO_SYNC_CACHE); > + USB_ADD_QUIRK(udev, any_quirk, UQ_MSC_NO_SYNC_CACHE); > } else { > if (err != ERR_CSW_FAILED) > goto error; > @@ -884,6 +901,18 @@ retry_sync_cache: > } > } > > + if (usb_test_quirk(uaa, UQ_MSC_NO_START_STOP) == 0) { > + err = bbb_command_start(sc, DIR_NONE, 0, NULL, 0, > + &scsi_start_unit, sizeof(scsi_start_unit), > + USB_MS_HZ); > + > + if (err != 0) { > + if (err != ERR_CSW_FAILED) > + goto error; > + USB_ADD_QUIRK(udev, any_quirk, UQ_MSC_NO_START_STOP); > + } > + } > + > /* clear sense status of any failed commands on the device */ > > err = bbb_command_start(sc, DIR_IN, 0, sc->buffer, > @@ -907,24 +936,28 @@ retry_sync_cache: > if (err != ERR_CSW_FAILED) > goto error; > } > + goto done; > > +error: > + /* Apply most quirks */ > + USB_ADD_QUIRK(udev, any_quirk, UQ_MSC_NO_SYNC_CACHE); > + USB_ADD_QUIRK(udev, any_quirk, UQ_MSC_NO_PREVENT_ALLOW); > + USB_ADD_QUIRK(udev, any_quirk, UQ_MSC_NO_TEST_UNIT_READY); > + USB_ADD_QUIRK(udev, any_quirk, UQ_MSC_NO_START_STOP); > done: > bbb_detach(sc); > - return (0); > > -error: > - bbb_detach(sc); > - > - DPRINTF("Device did not respond, enabling all quirks\n"); > - > - usbd_add_dynamic_quirk(udev, UQ_MSC_NO_SYNC_CACHE); > - usbd_add_dynamic_quirk(udev, UQ_MSC_NO_PREVENT_ALLOW); > - usbd_add_dynamic_quirk(udev, UQ_MSC_NO_TEST_UNIT_READY); > + if (any_quirk) { > + /* Unconfigure device, to clear software data toggle. */ > + usbd_set_config_index(udev, USB_UNCONFIG_INDEX); > > - /* Need to re-enumerate the device */ > - usbd_req_re_enumerate(udev, NULL); > + /* Need to re-enumerate the device to clear its state. */ > + usbd_req_re_enumerate(udev, NULL); > + return (USB_ERR_STALLED); > + } > > - return (USB_ERR_STALLED); > + /* No quirks were added, continue as usual. */ > + return (0); > } > > usb_error_t > @@ -944,7 +977,7 @@ usb_msc_eject(struct usb_device *udev, uint8_t iface_index, int method) > USB_MS_HZ); > DPRINTF("Test unit ready status: %s\n", usbd_errstr(err)); > err = bbb_command_start(sc, DIR_IN, 0, NULL, 0, > - &scsi_start_stop_unit, sizeof(scsi_start_stop_unit), > + &scsi_stop_unit, sizeof(scsi_stop_unit), > USB_MS_HZ); > break; > case MSC_EJECT_REZERO: > diff --git a/sys/dev/usb/usb_msctest.h b/sys/dev/usb/usb_msctest.h > index 6b5d3283738b..ba4e094bab60 100644 > --- a/sys/dev/usb/usb_msctest.h > +++ b/sys/dev/usb/usb_msctest.h > @@ -2,7 +2,7 @@ > /*- > * SPDX-License-Identifier: BSD-2-Clause-FreeBSD > * > - * Copyright (c) 2008 Hans Petter Selasky. All rights reserved. > + * Copyright (c) 2008-2022 Hans Petter Selasky. > * > * Redistribution and use in source and binary forms, with or without > * modification, are permitted provided that the following conditions > @@ -44,7 +44,7 @@ int usb_iface_is_cdrom(struct usb_device *udev, > usb_error_t usb_msc_eject(struct usb_device *udev, > uint8_t iface_index, int method); > usb_error_t usb_msc_auto_quirk(struct usb_device *udev, > - uint8_t iface_index); > + uint8_t iface_index, const struct usb_attach_arg *uaa); > usb_error_t usb_msc_read_10(struct usb_device *udev, > uint8_t iface_index, uint32_t lba, uint32_t blocks, > void *buffer); --VfbHpm+RB/lXMlzQ Content-Type: text/plain; charset=utf-8 Content-Disposition: attachment; filename="usb_issue.txt" UEFI Interactive Shell v2.2 EDK II UEFI v2.70 (EDK II, 0x00010000) Mapping table FS1: Alias(s):F2: MemoryMapped(0xB,0xFEA32008,0xFEFBC247) FS0: Alias(s):F1: Consoles: EFI console Reading loader env vars from /efi/freebsd/loader.env FreeBSD/arm64 EFI loader, Revision 1.1 (Tue Dec 28 17:31:48 GMT 2021 br@pooh.bsdpad.com) Command line arguments: loader.efi Image base: 0xf8fbe000 EFI version: 2.70 EFI Firmware: EDK II (rev 1.00) Console: efi (0x1000) Load Path: loader.efi Load Device: PcieRoot(0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x13,0x0)/Pci(0x0,0x 0)/MAC(0002F70094CA,0x1) BootCurrent: 0001 BootOrder: 0000 0001[*] 0002 0003 0004 0005 0006 ERROR: cannot open /boot/lua/loader.lua: no such file or directory. Type '?' for a list of commands, 'help' for more detailed help. OK boot ./kernel text=0x2a8 text=0x6ff560 text=0x1e4364 data=0x17d608 data=0x0+0x409000 syms=[0x8+0xf6dc8+0x8+0x11ab1c] Using DTB compiled into kernel. EFI framebuffer information: addr, size 0x0, 0x0 dimensions 0 x 0 stride 0 masks 0x00000000, 0x00000000, 0x00000000, 0x00000000 ---<>--- GDB: debug ports: uart GDB: current port: uart KDB: debugger backends: ddb gdb KDB: current backend: ddb 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 #872 drm_base-n243476-6e2288e1ceee: Sun Feb 27 19:34:28 GMT 2022 br@pooh.bsdpad.com:/mnt/obj/usr/home/br/dev/freebsd-head/arm64.aarch64/sys/MORELLO arm64 FreeBSD clang version 13.0.0 (git@github.com:llvm/llvm-project.git llvmorg-13.0.0-0-gd7b669b3a303) WARNING: WITNESS option enabled, expect reduced performance. VT: init without driver. real memory = 17160749056 (16365 MB) avail memory = 16707280896 (15933 MB) Starting CPU 1 (100) Starting CPU 2 (10000) Starting CPU 3 (10100) FreeBSD/SMP: Multiprocessor System Detected: 4 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 f9270000 mode 2 pages 128 MAP f9560000 mode 2 pages 80 MAP f95b0000 mode 2 pages 80 MAP f9600000 mode 2 pages 80 MAP f9650000 mode 2 pages 80 MAP f96a0000 mode 2 pages 80 MAP f96f0000 mode 2 pages 80 MAP f9750000 mode 2 pages 80 MAP f97a0000 mode 2 pages 96 MAP f9800000 mode 2 pages 80 MAP f9850000 mode 2 pages 80 MAP f98a0000 mode 2 pages 80 MAP f98f0000 mode 2 pages 80 MAP fe960000 mode 2 pages 80 MAP 1c100000 mode 0 pages 1 kbd0 at kbdmux0 ofwbus0: clk_fixed0: on ofwbus0 clk_fixed1: on ofwbus0 clk_fixed2: on ofwbus0 psci0: on ofwbus0 gic0: mem 0x30000000-0x3000ffff,0x300c0000-0x3013ffff irq 0 on ofwbus0 its0: mem 0x30040000-0x3005ffff on gic0 its1: mem 0x30060000-0x3007ffff on gic0 its2: mem 0x30080000-0x3009ffff on gic0 its3: mem 0x300a0000-0x300bffff on gic0 cdns_i2c0: mem 0x1c0f0000-0x1c0f0fff irq 25 on ofwbus0 cdns_i2c_attach: original CR 150e cdns_i2c_attach: new CR 950e iicbus0: on cdns_i2c0 cdns_i2c_reset tda0 at addr 0xe0 on iicbus0 tda0: TDA19988 komeda_drm0: mem 0x2cc00000-0x2cc1ffff irq 21 on ofwbus0 komeda_drm0: Mali arch_id reg 44501000 komeda_drm0: ARM Mali D 32 r0p0 detected komeda_drm0: Mali core_info reg 127 komeda_drm0: num blocks 39, num pipelines 1 komeda_drm0: Max line size 2048, max num lines 8192, num rich layers 2 komeda_drm0: dual link supp 0, tbu 1 panfrost0: mem 0x2d000000-0x2d003fff irq 22,23,24 on ofwbus0 panfrost0: Mali GPU clock is unknown generic_timer0: irq 3,4,5,6 on ofwbus0 Timecounter "ARM MPCore Timecounter" frequency 50000000 Hz quality 1000 Event timer "ARM MPCore Eventtimer" frequency 50000000 Hz quality 1000 efirtc0: efirtc0: registered as a time-of-day clock, resolution 1.000000s pmu0: irq 1 on ofwbus0 uart0: mem 0x2a400000-0x2a400fff irq 9 on ofwbus0 uart0: console (115200,n,8,1) cpulist0: on ofwbus0 cpu0: on cpulist0 cpu1: on cpulist0 cpu2: on cpulist0 cpu3: on cpulist0 pcib0: mem 0x28c0000000-0x28cfffffff on ofwbus0 pci0: on pcib0 pcib1: at device 0.0 on pci0 pci1: on pcib1 pcib2: mem 0x60300000-0x6033ffff at device 0.0 on pci1 pci2: on pcib2 pcib3: at device 8.0 on pci2 pcib4: at device 16.0 on pci2 pci3: on pcib4 pcib5: at device 17.0 on pci2 pcib6: at device 18.0 on pci2 pci4: on pcib6 ahci0: port 0x1018-0x101f,0x1024-0x1027,0x1010-0x1017,0x1020-0x1023,0x1000-0x100f mem 0x60200000-0x602001ff at device 0.0 on pci4 ahci0: AHCI v1.00 with 2 6Gbps ports, Port Multiplier supported with FBS ahci0: quirks=0x1000000 ahcich0: at channel 0 on ahci0 ahcich1: at channel 1 on ahci0 pcib7: at device 19.0 on pci2 pci5: on pcib7 re0: mem 0x60100000-0x60100fff,0x900000000-0x900003fff at device 0.0 on pci5 re0: Using 1 MSI-X message re0: turning off MSI enable bit. re0: Chip rev. 0x4c000000 re0: MAC rev. 0x00000000 miibus0: on re0 rgephy0: PHY 1 on miibus0 rgephy0: none, 10baseT, 10baseT-FDX, 10baseT-FDX-flow, 100baseTX, 100baseTX-FDX, 100baseTX-FDX-flow, 1000baseT-FDX, 1000baseT-FDX-master, 1000baseT-FDX-flow, 1000baseT-FDX-flow-master, auto, auto-flow re0: Using defaults for TSO: 65518/35/2048 re0: Ethernet address: 00:02:f7:00:94:ca pcib8: at device 20.0 on pci2 pci6: on pcib8 xhci0: mem 0x60000000-0x6000ffff,0x60010000-0x60011fff at device 0.0 on pci6 xhci0: 64 bytes context size, 64-bit DMA usbus0 on xhci0 pcib9: mem 0x4fc0000000-0x4fcfffffff on ofwbus0 pci7: on pcib9 iic0: on iicbus0 armv8crypto0: Timecounters tick every 1.000 msec komeda_drm_irq_hook: pipeline found, reg 0 <6>[drm] Connector HDMI-A-1: get mode from tunables: <6>[drm] - kern.vt.fb.modes.HDMI-A-1 <6>[drm] - kern.vt.fb.default_mode komeda_drm_fb_preinit <6>[drm] Supports vblank timestamp caching Rev 2 (21.10.2013). usbus0: 5.0Gbps Super Speed USB v3.0 ugen0.1: <(0x104c) XHCI root HUB> at usbus0 uhub0 on usbus0 uhub0: <(0x104c) XHCI root HUB, class 9/0, rev 3.00/1.00, addr 1> on usbus0 WARNING: Device "fb" is Giant locked and may be deleted before FreeBSD 14.0. VT: initialize with new VT driver "fb". <6>[drm] Initialized mali-dp 1.0.0 20220114 for komeda_drm on minor 0 panfrost0: GPU revision 0, id 7211 panfrost0: Mali 7211, major 0, minor 0, status 0 panfrost0: Features: L2 7120206, Shader 0, Tiler 809, Mem 101, MMU 2830, AS ff, JS 7 panfrost0: panfrost_gpu_intr: pending 600 panfrost0: panfrost_gpu_intr: pending 600 panfrost0: panfrost_gpu_intr: pending 600 panfrost0: GPU is powered on panfrost0: panfrost_gpu_intr: pending 20000 Bad malloc flags: 0 KDB: stack backtrace: db_trace_self() at db_trace_self db_trace_self_wrapper() at db_trace_self_wrapper+0x30 malloc_dbg() at malloc_dbg+0x70 malloc() at malloc+0x2c drm_sched_init() at drm_sched_init+0x1ac panfrost_job_init() at panfrost_job_init+0xfc panfrost_irq_hook() at panfrost_irq_hook+0x68 config_intrhook_oneshot_func() at config_intrhook_oneshot_func+0x14 run_interrupt_driven_config_hooks() at run_interrupt_driven_config_hooks+0x90 boot_run_interrupt_driven_config_hooks() at boot_run_interrupt_driven_config_hooks+0x2c mi_startup() at mi_startup+0x130 virtdone() at virtdone+0x7c <6>[drm] Initialized panfrost 1.2.0 20201124 for panfrost on minor 1 CPU 0: Unknown Implementer (midr: 3f0f4120) affinity: 0 0 0 Cache Type = <64 byte D-cacheline,64 byte I-cacheline,PIPT ICache,64 byte ERG,64 byte CWG,IDC,DIC> Instruction Set Attributes 0 = Instruction Set Attributes 1 = Processor Features 0 = Processor Features 1 = Memory Model Features 0 = Memory Model Features 1 = Memory Model Features 2 = Debug Features 0 = Debug Features 1 = <> Auxiliary Features 0 = <> Auxiliary Features 1 = <> AArch32 Instruction Set Attributes 5 = <> AArch32 Media and VFP Features 0 = <> AArch32 Media and VFP Features 1 = <> CPU 1: Unknown Implementer (midr: 3f0f4120) affinity: 0 1 0 CPU 2: Unknown Implementer (midr: 3f0f4120) affinity: 1 0 0 CPU 3: Unknown Implementer (midr: 3f0f4120) affinity: 1 1 0 Release APs...Trying to mount root from ufs:/dev/ada0 []... done WARNING: WITNESS option enabled, expect reduced performance. gcu_intr: reg 10 ada0 at ahcich0 bus 0 scbus0 target 0 lun 0 ada0: ACS-4 ATA SATA 3.x device ada0: Serial Number S6BCNJ0RA04151P ada0: 600.000MB/s transfers (SATA 3.x, UDMA6, PIO 512bytes) ada0: Command Queueing enabled ada0: 3815447MB (7814037168 512 byte sectors) uhub0: 8 ports with 8 removable, self powered ugen0.2: at usbus0 ums0 on uhub0 ums0: on usbus0 ums0: 3 buttons and [XYZ] coordinates ID=1 Root mount waiting for: usbus0 ugen0.3: at usbus0 ukbd0 on uhub0 ukbd0: on usbus0 kbd1 at ukbd0 Root mount waiting for: usbus0 usb_msc_auto_quirk: UQ_MSC_NO_GETMAXLUN set for USB mass storage device SanDisk Extreme (0x0781:0x5580) xhci0: Resetting controller Root mount waiting for: usbus0 Root mount waiting for: usbus0 usbd_req_re_enumerate: addr=3, set address failed! (USB_ERR_TIMEOUT, ignored) Root mount waiting for: usbus0 Root mount waiting for: usbus0 Root mount waiting for: usbus0 Root mount waiting for: usbus0 Root mount waiting for: usbus0 Root mount waiting for: usbus0 Root mount waiting for: usbus0 Root mount waiting for: usbus0 Root mount waiting for: usbus0 Root mount waiting for: usbus0 Root mount waiting for: usbus0 Root mount waiting for: usbus0 Root mount waiting for: usbus0 Root mount waiting for: usbus0 Root mount waiting for: usbus0 Root mount waiting for: usbus0 Root mount waiting for: usbus0 usbd_setup_device_desc: getting device descriptor at addr 3 failed, USB_ERR_TIMEOUT Root mount waiting for: usbus0 usbd_req_re_enumerate: addr=3, set address failed! (USB_ERR_TIMEOUT, ignored) Root mount waiting for: usbus0 Root mount waiting for: usbus0 Root mount waiting for: usbus0 Root mount waiting for: usbus0 Root mount waiting for: usbus0 Root mount waiting for: usbus0 Root mount waiting for: usbus0 Root mount waiting for: usbus0 Root mount waiting for: usbus0 Root mount waiting for: usbus0 Root mount waiting for: usbus0 Root mount waiting for: usbus0 Root mount waiting for: usbus0 Root mount waiting for: usbus0 Root mount waiting for: usbus0 --VfbHpm+RB/lXMlzQ--