From: Rob Herring <robh@kernel.org>
To: Chanho Park <chanho61.park@samsung.com>
Cc: linux-scsi@vger.kernel.org, linux-samsung-soc@vger.kernel.org,
Jaehoon Chung <jh80.chung@samsung.com>,
Bart Van Assche <bvanassche@acm.org>,
"Martin K . Petersen" <martin.petersen@oracle.com>,
"James E . J . Bottomley" <jejb@linux.ibm.com>,
Can Guo <cang@codeaurora.org>,
Christoph Hellwig <hch@infradead.org>,
Alim Akhtar <alim.akhtar@samsung.com>,
Bean Huo <beanhuo@micron.com>,
Gyunghoon Kwon <goodjob.kwon@samsung.com>,
Sowon Na <sowon.na@samsung.com>, Jaegeuk Kim <jaegeuk@kernel.org>,
Avri Altman <avri.altman@wdc.com>,
Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
Adrian Hunter <adrian.hunter@intel.com>
Subject: Re: [PATCH v5 00/15] introduce exynosauto v9 ufs driver
Date: Thu, 28 Oct 2021 08:26:20 -0500 [thread overview]
Message-ID: <YXqk/DgEYh0y4YEm@robh.at.kernel.org> (raw)
In-Reply-To: <20211018124216.153072-1-chanho61.park@samsung.com>
On Mon, 18 Oct 2021 21:42:01 +0900, Chanho Park wrote:
> In ExynosAuto(variant of the Exynos for automotive), the UFS Storage needs
> to be accessed from multiple VMs. Traditional virtualization solution
> provides para-virtualized block driver such as virtio-blk. However, they
> can be highly depends on the Dom0 where the backend of the PV is
> located. When the system gets high cpu pressure, the performance of
> guest VMs are also affected. To overcome this, the SoC implements the
> virtualization concept as the H/W controller level.
>
> Below figure is a conceptual design of the UFS Multi Host architecture.
>
> +------+ +------+
> | OS#1 | | OS#2 |
> +------+ +------+
> | |
> +------------+ +------------+
> | Physical | | Virtual |
> | Host | | Host |
> +------------+ +------------+
> | | | <-- UTP_CMD_SAP, UTP_TM_SAP
> | +-------------------------+
> | | Function Arbiter |
> | +-------------------------+
> +-------------------------------+
> | UTP Layer |
> +-------------------------------+
> +-------------------------------+
> | UIC Layer |
> +-------------------------------+
>
> There are two types of host controllers of the UFS host controller
> that we designed. The controller has a Function Arbiter that arranges
> commands of each hosts. It will arrange the doorbells among the PH and
> VHs as Round-Robin. When each host transmits a command to the Arbiter,
> the Arbiter transmits it to the UTP layer. Physical Host(PH) support all
> UFSHCI functions(all SAPs) same as conventional UFSHCI.
> Virtual Hosts(VHs) support only data transfer function(UTP_CMD_SAP and
> UTP_TM_SAP).
>
> In an environment where multiple VMs are used, the OS that has the
> leadership of the system is called System OS(Dom0). This system OS will
> own the PH and has a responsibility to handle UIC errors.
>
> VHs can only supports data transfer functions compared with the PH,
> they're necessary to send a request to the PH for error handling of VHs.
> To interface among the PH and VHs, the UFSHCI controller supports mailbox.
> The mailbox register has 8 bit fields and they can be used as
> arguments of the mailbox protocol. In this initial patchset, the PH
> ready message is supported and they will be implemented to the next
> steps.
>
> To support this virtual host type controller which only supports data
> transfer function (TP_CMD_SAP and UTP_TM_SAP), we need to add below two
> quirks.
> - UFSHCD_QUIRK_BROKEN_UIC_CMD
> - UFSHCD_QUIRK_SKIP_PH_CONFIGURATION
>
> First two patches, I picked them up from Jonmin's patchset[1] and the third
> patch has been dropped because it's not necessary anymore.
>
> [1]: https://lore.kernel.org/linux-scsi/20210527030901.88403-1-jjmin.jeong@samsung.com/
>
> Patch 0003 ~ 0010, they are changes of exynos7 ufs driver to apply
> exynosauto v9 variant and PH/VH capabilities.
> Patch 0011 ~ 0015, the patches introduce the exynosauto v9 ufs MHCI which
> includes the PH and VHs.
>
> Changes from v4:
> - s/Arbitor/Arbiter/g of cover-letter.
> - Rephrase descriptions of cover letter from original patchset.
> - Except 0007-scsi-ufs-ufs-exynos-correct-timeout-value-setting-re.patch
> from this patchset and sent it independently
> - Patch11/12: Consolidate sysreg and samsung,ufs-shareability-reg-offset
> property.
> - Patch14:
> Drop wlun_dev_clr_ua configuration
> Add TODO: tag for further implementations
>
> Changes from v3:
> - Drop "[PATCH v3 06/17] scsi: ufs: ufs-exynos: get sysreg regmap for
> io-coherency" and squash it to Patch12
> - Patch12: Use macro to avoid raw value usage and describe the value of M-Phy setting
> - Patch13: Add dma-coherent property
> - Patch14: Use macro to avoid raw value and describe the value of HCI_MH_ALLOWABLE_TRAN_OF_VH
>
> Changes from v2:
> - Separate dt-binding patches on top of
> https://lore.kernel.org/linux-devicetree/YUNdqnZ2kYefxFUC@robh.at.kernel.org/
>
> Changes from v1:
> - Change quirk name from UFSHCD_QUIRK_SKIP_INTERFACE_CONFIGURATION to
> UFSHCD_QUIRK_SKIP_PH_CONFIGURATION
> - Add compatibles to Documentation/devicetree/bindings/ufs/samsung,exynos-ufs.yaml
> on top of https://lore.kernel.org/linux-scsi/20200613024706.27975-9-alim.akhtar@samsung.com/
>
> Chanho Park (13):
> scsi: ufs: ufs-exynos: change pclk available max value
> scsi: ufs: ufs-exynos: simplify drv_data retrieval
> scsi: ufs: ufs-exynos: add refclkout_stop control
> scsi: ufs: ufs-exynos: add setup_clocks callback
> scsi: ufs: ufs-exynos: support custom version of ufs_hba_variant_ops
> scsi: ufs: ufs-exynos: add EXYNOS_UFS_OPT_SKIP_CONFIG_PHY_ATTR option
> scsi: ufs: ufs-exynos: factor out priv data init
> scsi: ufs: ufs-exynos: add pre/post_hce_enable drv callbacks
> scsi: ufs: ufs-exynos: support exynosauto v9 ufs driver
> dt-bindings: ufs: exynos-ufs: add io-coherency property
> scsi: ufs: ufs-exynos: multi-host configuration for exynosauto
> scsi: ufs: ufs-exynos: introduce exynosauto v9 virtual host
> dt-bindings: ufs: exynos-ufs: add exynosautov9 compatible
>
> jongmin jeong (2):
> scsi: ufs: add quirk to handle broken UIC command
> scsi: ufs: add quirk to enable host controller without ph
> configuration
>
> .../bindings/ufs/samsung,exynos-ufs.yaml | 10 +
> drivers/scsi/ufs/ufs-exynos.c | 354 +++++++++++++++++-
> drivers/scsi/ufs/ufs-exynos.h | 27 +-
> drivers/scsi/ufs/ufshcd.c | 6 +
> drivers/scsi/ufs/ufshcd.h | 12 +
> 5 files changed, 386 insertions(+), 23 deletions(-)
>
> --
> 2.33.0
>
>
>
>
Applied patches 12 and 15, thanks!
prev parent reply other threads:[~2021-10-28 13:26 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CGME20211018124505epcas2p31437a0fae6711edeb9db5b49eb420e56@epcas2p3.samsung.com>
2021-10-18 12:42 ` [PATCH v5 00/15] introduce exynosauto v9 ufs driver Chanho Park
[not found] ` <CGME20211018124505epcas2p2d149a4f26d3475830a36c47049591bb2@epcas2p2.samsung.com>
2021-10-18 12:42 ` [PATCH v5 01/15] scsi: ufs: add quirk to handle broken UIC command Chanho Park
2021-10-28 3:18 ` Martin K. Petersen
2021-10-28 4:32 ` Chanho Park
[not found] ` <CGME20211018124505epcas2p143bb8374e3399e2670ced625862a8653@epcas2p1.samsung.com>
2021-10-18 12:42 ` [PATCH v5 02/15] scsi: ufs: add quirk to enable host controller without ph configuration Chanho Park
[not found] ` <CGME20211018124505epcas2p4f96cd4d9ea01a030d07fdf25c5a3d163@epcas2p4.samsung.com>
2021-10-18 12:42 ` [PATCH v5 03/15] scsi: ufs: ufs-exynos: change pclk available max value Chanho Park
[not found] ` <CGME20211018124505epcas2p22a463738c9ee028274be7ad06ed97a0d@epcas2p2.samsung.com>
2021-10-18 12:42 ` [PATCH v5 04/15] scsi: ufs: ufs-exynos: simplify drv_data retrieval Chanho Park
[not found] ` <CGME20211018124505epcas2p32c65e409d95954c4995f8a1c22842509@epcas2p3.samsung.com>
2021-10-18 12:42 ` [PATCH v5 05/15] scsi: ufs: ufs-exynos: add refclkout_stop control Chanho Park
[not found] ` <CGME20211018124505epcas2p1d58eebe57563823e4768962342477a35@epcas2p1.samsung.com>
2021-10-18 12:42 ` [PATCH v5 06/15] scsi: ufs: ufs-exynos: add setup_clocks callback Chanho Park
[not found] ` <CGME20211018124505epcas2p2c68234b4e04cd3149eb21c987d474755@epcas2p2.samsung.com>
2021-10-18 12:42 ` [PATCH v5 07/15] scsi: ufs: ufs-exynos: support custom version of ufs_hba_variant_ops Chanho Park
[not found] ` <CGME20211018124505epcas2p4bf7f7fe8419a03d5510c9adf67aee5ab@epcas2p4.samsung.com>
2021-10-18 12:42 ` [PATCH v5 08/15] scsi: ufs: ufs-exynos: add EXYNOS_UFS_OPT_SKIP_CONFIG_PHY_ATTR option Chanho Park
[not found] ` <CGME20211018124505epcas2p38f13fa432c4f6e5ca4898a8f41c2b041@epcas2p3.samsung.com>
2021-10-18 12:42 ` [PATCH v5 09/15] scsi: ufs: ufs-exynos: factor out priv data init Chanho Park
[not found] ` <CGME20211018124505epcas2p37bd15e319f80e82d321f85565afd7712@epcas2p3.samsung.com>
2021-10-18 12:42 ` [PATCH v5 10/15] scsi: ufs: ufs-exynos: add pre/post_hce_enable drv callbacks Chanho Park
[not found] ` <CGME20211018124506epcas2p27ae65b5e8ee4919cde0d989708c24ca6@epcas2p2.samsung.com>
2021-10-18 12:42 ` [PATCH v5 11/15] scsi: ufs: ufs-exynos: support exynosauto v9 ufs driver Chanho Park
[not found] ` <CGME20211018124506epcas2p25100e2163029de4ee8b8b87e7ff0f2a3@epcas2p2.samsung.com>
2021-10-18 12:42 ` [PATCH v5 12/15] dt-bindings: ufs: exynos-ufs: add io-coherency property Chanho Park
2021-10-18 17:54 ` Rob Herring
[not found] ` <CGME20211018124506epcas2p4cadea8f87fde299c22317496a2d29f14@epcas2p4.samsung.com>
2021-10-18 12:42 ` [PATCH v5 13/15] scsi: ufs: ufs-exynos: multi-host configuration for exynosauto Chanho Park
[not found] ` <CGME20211018124506epcas2p3a014f68fb3d6cdfa43a3562c74bb6895@epcas2p3.samsung.com>
2021-10-18 12:42 ` [PATCH v5 14/15] scsi: ufs: ufs-exynos: introduce exynosauto v9 virtual host Chanho Park
[not found] ` <CGME20211018124506epcas2p190b89643fbb14d99d7ab52f5ab97bf38@epcas2p1.samsung.com>
2021-10-18 12:42 ` [PATCH v5 15/15] dt-bindings: ufs: exynos-ufs: add exynosautov9 compatible Chanho Park
2021-10-28 13:26 ` Rob Herring [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YXqk/DgEYh0y4YEm@robh.at.kernel.org \
--to=robh@kernel.org \
--cc=adrian.hunter@intel.com \
--cc=alim.akhtar@samsung.com \
--cc=avri.altman@wdc.com \
--cc=beanhuo@micron.com \
--cc=bvanassche@acm.org \
--cc=cang@codeaurora.org \
--cc=chanho61.park@samsung.com \
--cc=goodjob.kwon@samsung.com \
--cc=hch@infradead.org \
--cc=jaegeuk@kernel.org \
--cc=jejb@linux.ibm.com \
--cc=jh80.chung@samsung.com \
--cc=krzysztof.kozlowski@canonical.com \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=martin.petersen@oracle.com \
--cc=sowon.na@samsung.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).