From nobody Mon Dec 1 06:23:23 2025 X-Original-To: dev-commits-src-main@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 4dKYkN1DKmz6JB54 for ; Mon, 01 Dec 2025 06:23:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (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-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4dKYkM70LZz3BmX for ; Mon, 01 Dec 2025 06:23:23 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1764570204; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NLFjAfiFBkBaHiNI/uzPS9OQE8X1S+GODG5il9EzpAg=; b=CogoZjqhmlwpQaMEcq41QJE+BPgPWnc/gRmM2leotcSQnwgrmpgxV+8ypdUf9sdkIfSqPM M8QVORFIWD6GR/DLt2IOKGfgva/tPij3pJqmctvO/bD3c8rIetUq6rrPybJ47SiixClqJY ZHovoaqKOe5jn77/OSMjg7PFRfTV0/q+GOM1qn914WO9xiZfcjSFEuvc3QwcbgQDrdMZU9 KkZw+RQ/GS8KRENcyo//oXUH0xzUtl5hsGzZNwvvq51ndeWmO2/8H+mwIeo1jNtaMK0prW Eryjms0NXq1TxQvDYVZOvgbEY4JKO6+pPFU/oraK8HNOte8O7leRaN4OdLm7KQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1764570204; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NLFjAfiFBkBaHiNI/uzPS9OQE8X1S+GODG5il9EzpAg=; b=N0sTjXmUzhqGuscWsqQUEu/MMrgAVcWTqLrVhOw1DOn4mb6BmwtF6ueHHUb56u4M/ZNOLj WCA6a1mBoUW13ttk473t+xpkBK3K1NWoX5H2aBB9zSB2iXcdzOxmak1wUhH4kRPRErzHGx cZpw2cyDt0svzkaX3UU6HRbIgYFBSd4JcU1hjcTvfriY2pY5ilDwSUITZug1EOZdgnUb1I 1pwPyJzJ8usUHKokNJXsLX2BH9poncgQYSBZOR8gLwg9sDzqW/vGJON1lz9BuL+uLs6G52 Czq0mjzEl5NcIK9Jwqc2K7yeERXoAPXvEg2LrFDFXxhXDv2XK6uGFvLjIiIRLw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1764570204; a=rsa-sha256; cv=none; b=Rc7NxSIyM3OjDX87GIvpeTh6BQzssJL/Nwwn0NqO1IvVo8fw8v+1ejCDvQGkBYFi/j2xHG 7SlJF1kEQ5hkbQjNtJ34E4+Lq/ITGSxxDauTH6vXLoLy+X8xiYcHEJPDxogExjFMyUEQhL Gq4R+KFOp93ANCbv6O4Hohem3fqgwfR04iR8fdRK9wSPvTYeTRoEN9QnR9jweIUAE3/pJM B5+kHQQrBrgmUMb1oWB6jLv8kyv2i6vDXtDyLSzBIB7j2YRAG0qRLjAW1KYhcz0f9EpO8S n4xVh49YFK0hhHhPN7/2NzGhtJPaLPwTrgXe+l5qX7P8j3i28TODqL3uNpL3ng== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4dKYkM6TCLz18Bs for ; Mon, 01 Dec 2025 06:23:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 220e1 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 01 Dec 2025 06:23:23 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Jaeyoon Choi Subject: git: 5e0d065b5b90 - main - ufshci: Enable WLUN scan List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jaeyoon X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 5e0d065b5b90d4f4264d8248f39f199f1a2576dc Auto-Submitted: auto-generated Date: Mon, 01 Dec 2025 06:23:23 +0000 Message-Id: <692d345b.220e1.448a51c@gitrepo.freebsd.org> The branch main has been updated by jaeyoon: URL: https://cgit.FreeBSD.org/src/commit/?id=5e0d065b5b90d4f4264d8248f39f199f1a2576dc commit 5e0d065b5b90d4f4264d8248f39f199f1a2576dc Author: Jaeyoon Choi AuthorDate: 2025-12-01 04:39:14 +0000 Commit: Jaeyoon Choi CommitDate: 2025-12-01 04:40:42 +0000 ufshci: Enable WLUN scan QEMU ufs device does not implement WLUN, so QUIRK is added. Reviewed by: imp (mentor) Sponsored by: Samsung Electronics Differential Revision: https://reviews.freebsd.org/D53921 --- sys/dev/ufshci/ufshci.h | 8 ++++++++ sys/dev/ufshci/ufshci_pci.c | 3 ++- sys/dev/ufshci/ufshci_private.h | 2 ++ sys/dev/ufshci/ufshci_sim.c | 6 +++++- 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/sys/dev/ufshci/ufshci.h b/sys/dev/ufshci/ufshci.h index 188f8c41def1..766d8de0535b 100644 --- a/sys/dev/ufshci/ufshci.h +++ b/sys/dev/ufshci/ufshci.h @@ -644,6 +644,14 @@ struct ufshci_completion { typedef void (*ufshci_cb_fn_t)(void *, const struct ufshci_completion *, bool); +/* UFS 4.1, section 10.8.5 "Well Known Logical Unit Defined in UFS" */ +enum ufshci_well_known_luns { + UFSHCI_WLUN_REPORT_LUNS = 0x81, + UFSHCI_WLUN_BOOT = 0xb0, + UFSHCI_WLUN_RPMB = 0xc4, + UFSHCI_WLUN_UFS_DEVICE = 0xd0, +}; + /* * UFS Spec 4.1, section 14.1 "UFS Descriptors" * All descriptors use big-endian byte ordering. diff --git a/sys/dev/ufshci/ufshci_pci.c b/sys/dev/ufshci/ufshci_pci.c index 992026fd4f4d..7f78e462db72 100644 --- a/sys/dev/ufshci/ufshci_pci.c +++ b/sys/dev/ufshci/ufshci_pci.c @@ -50,7 +50,8 @@ static struct _pcsid { uint32_t quirks; } pci_ids[] = { { 0x131b36, "QEMU UFS Host Controller", UFSHCI_REF_CLK_19_2MHz, UFSHCI_QUIRK_IGNORE_UIC_POWER_MODE | - UFSHCI_QUIRK_NOT_SUPPORT_ABORT_TASK }, + UFSHCI_QUIRK_NOT_SUPPORT_ABORT_TASK | + UFSHCI_QUIRK_SKIP_WELL_KNOWN_LUNS }, { 0x98fa8086, "Intel Lakefield UFS Host Controller", UFSHCI_REF_CLK_19_2MHz, UFSHCI_QUIRK_LONG_PEER_PA_TACTIVATE | diff --git a/sys/dev/ufshci/ufshci_private.h b/sys/dev/ufshci/ufshci_private.h index ec388c06e248..3cee021880a8 100644 --- a/sys/dev/ufshci/ufshci_private.h +++ b/sys/dev/ufshci/ufshci_private.h @@ -266,6 +266,8 @@ struct ufshci_controller { 8 /* Need to change the number of lanes before changing HS-GEAR. */ #define UFSHCI_QUIRK_NOT_SUPPORT_ABORT_TASK \ 16 /* QEMU does not support Task Management Request */ +#define UFSHCI_QUIRK_SKIP_WELL_KNOWN_LUNS \ + 32 /* QEMU does not support Well known logical units*/ uint32_t ref_clk; diff --git a/sys/dev/ufshci/ufshci_sim.c b/sys/dev/ufshci/ufshci_sim.c index 1b80df089a46..db2e194b699b 100644 --- a/sys/dev/ufshci/ufshci_sim.c +++ b/sys/dev/ufshci/ufshci_sim.c @@ -231,11 +231,15 @@ ufshci_cam_action(struct cam_sim *sim, union ccb *ccb) return; case XPT_PATH_INQ: { struct ccb_pathinq *cpi = &ccb->cpi; + uint32_t need_scan_wluns = 0; + + if (!(ctrlr->quirks & UFSHCI_QUIRK_SKIP_WELL_KNOWN_LUNS)) + need_scan_wluns = PIM_WLUNS; cpi->version_num = 1; cpi->hba_inquiry = PI_SDTR_ABLE | PI_TAG_ABLE; cpi->target_sprt = 0; - cpi->hba_misc = PIM_UNMAPPED | PIM_NO_6_BYTE; + cpi->hba_misc = need_scan_wluns | PIM_UNMAPPED | PIM_NO_6_BYTE; cpi->hba_eng_cnt = 0; cpi->max_target = 0; cpi->max_lun = ctrlr->max_lun_count;