Concepts of Automotive Bootloader
Concepts of Automotive Bootloader
Bootloader
From Tech Agile
Purpose of Bootloader
Update the Application
• Add new Features
• Remove Bugs
Update Bootloader
• Add new Features
• Remove Bugs
• Many of Controller will not support Flash to Flash erase and Programming, in
such condition, Two Level Bootloader is necessary
• Special SBL will be capable to updating PBL as well using which we can resolve
bug of PBL as well.
Where does Bootloader Reside ?
Memory
ECU
Application
SBL
PBL
Flash Memory
• PBL can contain multiple block of Flash Memory. Each Block is required to be
flashed correctly.
• SBL can also have multiple blocks. Each Block is required to be flashed
correctly.
• Application can also have multiple blocks. In most cases, definitely app will
have more numbers of block. Each Block is required to validated before
Flashing into memory. Unlock of ECU, CRC Check and ECU specific Application
Validated is required.
Where does Bootloader Reside ?
Memory
Application
Application
ECU
Application
Application
SBL
SBL
SBL
PBL
PBL
Memory Alignment
• You always need to Erase the Complete block of Memory, controller doesn’t
support erase of only specific bytes in most cases.
• Read and write of only specific bytes is possible, However it will depends on
controller alignment for read and write operation.
Flash Memory
• Signal Database: Generally there will be separate block for Signal Database,
where all the CAN, LIN Signal will be stored.
• Fault Memory: DTS Information and Snapshot Record will be stored in Flash
Memory at specified address.
Communication Bootloader <-> APP
• Bootloader need to give controller to Application once Validation Application
is successful.
Bootloader Application
Flag Set/Clear
Download Sequence
Programming or Security OEM Specific Erase Request Programming OEM ECU Reset
Reprogramming Access to Read Data By using Routine Request Specific
Session Request Unlock the ECU Identified or Control or Application
: 10 02 other other Validation
/ 10 80 diagnostic diagnostic Download Request :
request service 0x34
Data Transfer :
0x36
Transfer Exit :
0x37
Download Sequence
Prog Session Req
Security Access
PBL
SBL
Erase
Application
Program
Application
ECU Reset
Startup Sequence
Power on Self Test
PBL