@ -1199,16 +1199,12 @@ sections must not overstep. The platform code must provide those.
The following list describes the memory layout on the FVP:
The following list describes the memory layout on the FVP:
* A 4KB page of shared memory is used to store the entrypoint mailboxes
* A 4KB page of shared memory is used to store the entrypoint mailboxes
and the parameters passed between bootloaders. The shared memory can be
and the parameters passed between bootloaders. The shared memory is located
allocated either at the top of Trusted SRAM or at the base of Trusted
at the base of the Trusted SRAM. The amount of Trusted SRAM available to
DRAM at build time. When allocated in Trusted SRAM, the amount of Trusted
load the bootloader images will be reduced by the size of the shared memory.
SRAM available to load the bootloader images will be reduced by the size
of the shared memory.
* BL1 is originally sitting in the Trusted ROM at address `0x0` . Its
* BL1 is originally sitting in the Trusted ROM at address `0x0` . Its
read-write data are relocated at the top of the Trusted SRAM at runtime.
read-write data are relocated at the top of the Trusted SRAM at runtime.
If the shared memory is allocated in Trusted SRAM, the BL1 read-write data
is relocated just below the shared memory.
* BL3-1 is loaded at the top of the Trusted SRAM, such that its NOBITS
* BL3-1 is loaded at the top of the Trusted SRAM, such that its NOBITS
sections will overwrite BL1 R/W data.
sections will overwrite BL1 R/W data.
@ -1217,21 +1213,17 @@ The following list describes the memory layout on the FVP:
* The TSP is loaded as the BL3-2 image at the base of either the Trusted
* The TSP is loaded as the BL3-2 image at the base of either the Trusted
SRAM or Trusted DRAM. When loaded into Trusted SRAM, its NOBITS sections
SRAM or Trusted DRAM. When loaded into Trusted SRAM, its NOBITS sections
are allowed to overlay BL2. When loaded into Trusted DRAM, an offset
are allowed to overlay BL2.
corresponding to the size of the shared memory is applied to avoid
overlap.
This memory layout is designed to give the BL3-2 image as much memory as
This memory layout is designed to give the BL3-2 image as much memory as
possible when it is loaded into Trusted SRAM. Depending on the location of the
possible when it is loaded into Trusted SRAM. Depending on the location of the
shared memory page and the TSP, it will result in different memory maps,
TSP, it will result in different memory maps, illustrated by the following
illustrated by the following diagrams.
diagrams.
**Shared data & TSP in Trusted SRAM (default option):**
**TSP in Trusted SRAM (default option):**
Trusted SRAM
Trusted SRAM
0x04040000 +----------+
0x04040000 +----------+ loaded by BL2 ------------------
| Shared |
0x0403F000 +----------+ loaded by BL2 ------------------
| BL1 (rw) | < < < < < < < < < < < < < | BL3-1 NOBITS |
| BL1 (rw) | < < < < < < < < < < < < < | BL3-1 NOBITS |
|----------| < < < < < < < < < < < < < |----------------|
|----------| < < < < < < < < < < < < < |----------------|
| | < < < < < < < < < < < < < | BL3-1 PROGBITS |
| | < < < < < < < < < < < < < | BL3-1 PROGBITS |
@ -1239,7 +1231,9 @@ illustrated by the following diagrams.
| BL2 | < < < < < < < < < < < < < | BL3-2 NOBITS |
| BL2 | < < < < < < < < < < < < < | BL3-2 NOBITS |
|----------| < < < < < < < < < < < < < |----------------|
|----------| < < < < < < < < < < < < < |----------------|
| | < < < < < < < < < < < < < | BL3-2 PROGBITS |
| | < < < < < < < < < < < < < | BL3-2 PROGBITS |
0x04000000 +----------+ ------------------
0x04001000 +----------+ ------------------
| Shared |
0x04000000 +----------+
Trusted ROM
Trusted ROM
0x04000000 +----------+
0x04000000 +----------+
@ -1247,15 +1241,11 @@ illustrated by the following diagrams.
0x00000000 +----------+
0x00000000 +----------+
**Shared data & TSP in Trusted DRAM:**
**TSP in Trusted DRAM:**
Trusted DRAM
Trusted DRAM
0x08000000 +----------+
0x08000000 +----------+
| |
| BL3-2 |
| BL3-2 |
| |
0x06001000 |----------|
| Shared |
0x06000000 +----------+
0x06000000 +----------+
Trusted SRAM
Trusted SRAM
@ -1267,34 +1257,9 @@ illustrated by the following diagrams.
| BL2 |
| BL2 |
|----------|
|----------|
| |
| |
0x04000000 +----------+
0x04001000 +----------+
Trusted ROM
0x04000000 +----------+
| BL1 (ro) |
0x00000000 +----------+
**Shared data in Trusted DRAM, TSP in Trusted SRAM:**
Trusted DRAM
0x08000000 +----------+
| |
| |
| |
0x06001000 |----------|
| Shared |
| Shared |
0x06000000 +----------+
0x04000000 +----------+
Trusted SRAM
0x04040000 +----------+ loaded by BL2 ------------------
| BL1 (rw) | < < < < < < < < < < < < < | BL3-1 NOBITS |
|----------| < < < < < < < < < < < < < |----------------|
| | < < < < < < < < < < < < < | BL3-1 PROGBITS |
|----------| ------------------
| BL2 | < < < < < < < < < < < < < | BL3-2 NOBITS |
|----------| < < < < < < < < < < < < < |----------------|
| | < < < < < < < < < < < < < | BL3-2 PROGBITS |
0x04000000 +----------+ ------------------
Trusted ROM
Trusted ROM
0x04000000 +----------+
0x04000000 +----------+