Open main menu

DAVE Developer's Wiki β

Changes

Inter-world communication
perché abbiamo scelto RPMsg
 
===System memory partitioning===
System memory partitioning is shown by the following picture.
[[File:TBD.png|thumb|center|400px|caption]]
 
===Boot process===
The boot process is composed by several stages that are detailed by the following list.
# <code>BootROM</code>: this is the first piece of code executed by the processor. Depending on bootstrap configuration pins, <code>FSBL</code> image is retrieved by <code>BootROM</code> and stored into on-chip memory (OCM).
# <code>FSBL</code>: <code>FSBL</code> performs basic hardware initializations (including SDRAM subsystem) and retrieves <code>U-Boot</code> bootloader image
# <code>U-Boot</code>: <code>U-Boot</code>
#* completes hardware initializations
#* retrieves the following binary images and store them into SDRAM:
#** monitor
#** trusted code (FreeRTOS image in our case)
#** non-trusted code (linux kernel image and Device Tree Blob in our case).
#* gives monitor the control.
# monitor initializes TrustZone subsystem and gives trusted code the control of the machine.
# FreeRTOS kernel is initialized and real-time tasks are started. Under the control of the tasks running on top of the RTOS kernel, the non-trusted (NT for short) code is started. Please note that this is done via a Secure Monitor Call (SMC for short) that is handled by the monitor.
===L2 cache management===
4,650
edits