Linux Documentation
 help / color / mirror / Atom feed
From: Randy Dunlap <rdunlap@infradead.org>
To: Kishore Batta <kishore.batta@oss.qualcomm.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Shuah Khan <skhan@linuxfoundation.org>,
	Jeff Hugo <jeff.hugo@oss.qualcomm.com>,
	Carl Vanderlip <carl.vanderlip@oss.qualcomm.com>,
	Oded Gabbay <ogabbay@kernel.org>,
	Manivannan Sadhasivam <mani@kernel.org>
Cc: linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org,
	mhi@lists.linux.dev
Subject: Re: [PATCH v6 1/7] Add documentation for Sahara protocol
Date: Tue, 7 Jul 2026 21:46:10 -0700	[thread overview]
Message-ID: <699644e7-2fc2-41b5-9e02-7f4dbc2aa3a7@infradead.org> (raw)
In-Reply-To: <20260701-sahara_protocol_new_v2-v6-1-3a78362c4741@oss.qualcomm.com>


On 7/1/26 3:37 AM, Kishore Batta wrote:
> +The packet flow sequence is as follows :
> +
> +1. The target sends the hello packet to the host to initiate the protocol
> +   with the mode set to image transfer pending.
> +
> +2. The host sends a hello response packet with a success status and sets the
> +   mode to image transfer pending after it receives the hello packet and
> +   validates the protocol version running on the target.
> +
> +3. After the target receives the hello response, it initiates the data
> +   transfer by requesting the size of DDR training/calibration data.
> +
> +4. The host sends back the DDR training/calibration data to the target.
> +
> +5. The target decodes the training data and does not find valid DDR
> +   calibration data, target sends END_IMAGE_TX to interrupt the transfer.
> +
> +6. The host sends DONE after receives END_IMAGE_TX.
> +
> +7. The target sends DONE_RESP with mode = IMAGE_TX_PENDING because it has
> +   not received all images.
> +
> +8. The target executes DDR training process to generate valid DDR calibration
> +   data and prepares to push back to host.
> +
> +9. The target initiates protocol by sending a hello packet with COMMAND_MODE
> +   to the host.
> +
> +10. The host sends a hello response packet with a success status and sets the
> +    mode to COMMAND_MODE.
> +
> +11. The target sends CMD_READY to the host.
> +
> +12. The host receives CMD_READY and starts to get command IDs to be executed.
> +
> +13. The target sends CMD_ID = 9 to push DDR calibration data to host.
> +
> +14. The host executes CMD_ID = 9 to get DDR calibration data from the target.
> +
> +15. The target sends RAW_DATA with the payload which contains DDR calibration
> +    data to host.
> +
> +16. The host saves training data in the kernel buffer and exposes to userspace
> +    via the sysfs entry. The host sends CMD_SWITCH_MODE with the mode set to
> +    IMAGE_TX_PENDING to continue booting.
> +
> +17. After the target receives the CMD_SWITCH_MODE command, it sends HELLO to
> +    the host with the mode set to IMAGE_TX_PENDING. The target and the host
> +    repeat the packet flow for image transfer to get all booting-required
> +    images.
> +
> +18. Upon successful transfer of all images, the target sends an END_IMAGE_TX
> +    packet with a success status to the host.
> +
> +19. The host sends DONE after it receives END_IMAGE_TX.
> +
> +20. The target sends DONE_RESP with the mode set to IMAGE_TX_COMPLETE because
> +    it has received all images. The process has been completed after the host
> +    receives DONE_RESP with the mode set to IMAGE_TX_COMPLETE.
> +
> +Subsequent boot scenario with valid DDR calibration data
> +--------------------------------------------------------
> +
> +The below firgure shows the subsequent boot scenario with valid DDR calibration
> +data process being loaded from host to target.
> +
> +.. code-block:: text
> +
> +                        Host                       Target
> +                          |          HELLO            |
> +                          |   (mode = image transfer) |
> +                          |<--------------------------|
> +                          |                           |
> +                          |         HELLO RESP        |
> +                          |   (mode = image transfer) |
> +                          |-------------------------->|
> +                          |                           |
> +                          |         READ_DATA         |
> +                          |   (img ID:34, 0, offset,  |
> +                          | size of DDR training data)|
> +                          |<--------------------------|
> +                          |                           |
> +                          |         RAW_DATA          |
> +                          |(size of DDR training data)|
> +                          |-------------------------->|
> +                          |                           |
> +                          |                           |
> +                          |       END_IMAGE_TX        |
> +                          |<--------------------------|
> +                          |                           |
> +                          |                           |
> +                          |          DONE             |
> +                          |-------------------------->|
> +                          |                           |
> +                          |                           |
> +                          |         DONE_RESP         |
> +                          | (mode = IMAGE_TX_PENDING) |
> +                          |<--------------------------|
> +                          |                           |
> +                          | Subsequent boot scenario  |
> +                          | (valid calibration data)  |
> +                          | DDR driver configures DDR |
> +                          | using valid calibration   |
> +                          | data                      |
> +                          |                           |
> +                          |                           |
> +                          |          HELLO            |
> +                          | (mode = IMAGE_TX_PENDING) |
> +                          |<--------------------------|
> +                          |                           |
> +                          |         HELLO RESP        |
> +                          | (mode = IMAGE_TX_PENDING) |
> +                          |-------------------------->|
> +                          |                           |
> +                          | Boot/Load rest of the     |
> +                          |    images....             |
> +                          |                           |
> +                          |       END_IMAGE_TX        |
> +                          |<--------------------------|
> +                          |                           |
> +                          |                           |
> +                          |          DONE             |
> +                          |-------------------------->|
> +                          |                           |
> +                          |                           |
> +                          |         DONE_RESP         |
> +                          |(mode = IMAGE_TX_COMPLETE) |
> +                          |<--------------------------|
> +                          |                           |
> +
> +The packet flow is as follows :
> +

s/as follows :/as follows:/
in 2 places.

> +1. The target sends the hello packet to the host to initiate the protocol
> +   with the mode set to image transfer pending.

-- 
~Randy


  reply	other threads:[~2026-07-08  4:46 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-01 10:37 [PATCH v6 0/7] Qualcomm Sahara protocol enhancements Kishore Batta
2026-07-01 10:37 ` [PATCH v6 1/7] Add documentation for Sahara protocol Kishore Batta
2026-07-08  4:46   ` Randy Dunlap [this message]
2026-07-01 10:37 ` [PATCH v6 2/7] bus: mhi: Move Sahara protocol driver under MHI host client drivers Kishore Batta
2026-07-01 10:37 ` [PATCH v6 3/7] bus: mhi: Centralize Sahara firmware image table selection at probe time Kishore Batta
2026-07-01 10:37 ` [PATCH v6 4/7] bus: mhi: Add QDU100 Sahara variant and firmware fallback Kishore Batta
2026-07-09  6:19   ` Manivannan Sadhasivam
2026-07-01 10:37 ` [PATCH v6 5/7] bus: mhi: Load DDR training data using device serial number Kishore Batta
2026-07-09  6:21   ` Manivannan Sadhasivam
2026-07-01 10:37 ` [PATCH v6 6/7] bus: mhi: Capture DDR training data via command mode Kishore Batta
2026-07-01 10:37 ` [PATCH v6 7/7] bus: mhi: Expose DDR training data via controller sysfs Kishore Batta
2026-07-09  6:57   ` Manivannan Sadhasivam

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=699644e7-2fc2-41b5-9e02-7f4dbc2aa3a7@infradead.org \
    --to=rdunlap@infradead.org \
    --cc=carl.vanderlip@oss.qualcomm.com \
    --cc=corbet@lwn.net \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=jeff.hugo@oss.qualcomm.com \
    --cc=kishore.batta@oss.qualcomm.com \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mani@kernel.org \
    --cc=mhi@lists.linux.dev \
    --cc=ogabbay@kernel.org \
    --cc=skhan@linuxfoundation.org \
    /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