View Issue Details

IDProjectCategoryView StatusLast Update
0004875UBootU-Bootpublic2021-10-05 10:46
Reporterderksen Assigned To 
PrioritynormalSeverityminorReproducibilityhave not tried
Status resolvedResolutionfixed 
Target Versionfsimx8mm-Y2021.04Fixed in Versionfsimx8mm-Y2021.04 
Summary0004875: Add streaming option to SDP protocol
DescriptionAdd streaming option to SDP protocol

When SDP (Serial Download Protocol) was started in SPL, this never
returned. It was assumed that an executable image, e.g. U-Boot with
ATF, was loaded and an appropriate jump command also started the code.
For this, SDP stayed in an endless loop to handle all incoming SDP
commands.
    
On F&S boards, we have two stages in SPL. First we need to load
a board configuration, DRAM timings and similar things. Later we want
to load a U-Boot image as before. Therefore add a feature to return
from SDP after one single file and also add an option to resume the
SDP protocol later again.
    
When downloading the first stage with board configuration, DRAM
timings and other data, we only have OCRAM and TCM available on
i.MX CPUs. But the whole image is too big to fit into any of these.
So we actually need to react to the data as it comes in and load
different parts to different addresses. So we can not load the
image in one big part, we have to process the data from time to time.
    
Add callback functions new_file() and rx_data() that are called when
a new file starts (i.e. the length is known) and every time when a
block of data was successfully received. These functions can be used
to process the incoming data. This is the so-called streaming mode.
    
Add struct sdp_stream_ops to define these two callback functions.
Add new function spl_sdp_stream_image() that accepts these ops
and starts SDP in stream mode. Also add a new function
spl_sdp_stream_continue() that starts then next SDP transfer
in stream mode without re-initializing USB. Here the same or
different callback functions may be passed.
Forum Link

Activities

There are no notes attached to this issue.