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
