0% found this document useful (0 votes)
10 views16 pages

Concepts of Automotive Bootloader

Automotive basics

Uploaded by

Kshitij Singh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views16 pages

Concepts of Automotive Bootloader

Automotive basics

Uploaded by

Kshitij Singh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 16

Automotive

Bootloader
From Tech Agile
Purpose of Bootloader
Update the Application
• Add new Features
• Remove Bugs

Update Bootloader
• Add new Features
• Remove Bugs

Exchange of Information with Application


Type of Bootloader
Single Level Bootloader
• Primary Bootloader, There is not Secondary Bootloader (PBL)
• Primary Bootloader will be placed in Flash Memory, which is required to be
flashed using debugger.

Two Level Bootloader


• Primary and Secondary Bootloader both are available (SBL)
• PBL is required to be flashed using Debugger, It will be placed in Flash
Memory of the controller
• SBL can be loaded into RAM Area using PBL.
Type of Bootloader
1. Download Over CAN, LIN, FlexRay, Ethernet (DOIP)
❑ We use UDS services to Transfer the data over the bus
2. Download Over Serial Bus
Single Level Bootloader
ISystem - WinIDEA Debugger
Two Level Bootloader
Advantage of Two Level Bootloader
• SBL will be loaded into RAM Memory, which will not be accessing after
successful Application, which make is more secure.

• Many of Controller will not support Flash to Flash erase and Programming, in
such condition, Two Level Bootloader is necessary

• Assume there is bug in Bootloader, and because of which we can’t


download/update the applicable which make the ECU non usable.

• 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.

• Application need to communication with Bootloader in case of Application


update is require, while valid application is running.
❑ This is case of Reprogramming

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

Startup Code No Valid App Present

PBL

• Stack Pointer Valid App Present


Initialization
• RAM Initialization Application
• Jump to PBL

You might also like