diff --git a/docs/user-guide.md b/docs/user-guide.md index f91af7c..94db701 100644 --- a/docs/user-guide.md +++ b/docs/user-guide.md @@ -690,31 +690,51 @@ ### Notes regarding Base FVP configuration options -1. The `-C bp.flashloader0.fname` parameter is used to load a Firmware Image -Package at the start of NOR FLASH0 (see the "Building the Trusted Firmware" -section above). +Please refer to these notes in the subsequent "Running on the Base FVP" +sections. -2. Using `cache_state_modelled=1` makes booting very slow. The software will -still work (and run much faster) without this option but this will hide any -cache maintenance defects in the software. +1. The `-C bp.flashloader0.fname` parameter is used to load a Firmware Image + Package at the start of NOR FLASH0 (see the "Building the Trusted Firmware" + section above). -3. Using the `-C bp.virtioblockdevice.image_path` parameter is not necessary -if a Linux RAM-disk file-system is used (see the "Obtaining a root file-system" -section above). +2. Using `cache_state_modelled=1` makes booting very slow. The software will + still work (and run much faster) without this option but this will hide any + cache maintenance defects in the software. -4. Setting the `-C bp.secure_memory` parameter to `1` is only supported on -Base FVP versions 5.4 and newer. Setting this parameter to `0` is also -supported. The `-C bp.tzc_400.diagnostics=1` parameter is optional. It -instructs the FVP to provide some helpful information if a secure memory -violation occurs. +3. Using the `-C bp.virtioblockdevice.image_path` parameter is not necessary + if a Linux RAM-disk file-system is used (see the "Obtaining a root + file-system" section above). -5. The `--data=""@base address of binaries` -parameter is used to load bootloader images in the Base FVP memory (see the -"Building the Trusted Firmware" section above). The base address used to -load the binaries with --data should match the image base addresses in -platform_def.h used while linking the images. -BL3-2 image is only needed if BL3-1 has been built to expect a secure-EL1 -payload. +4. Setting the `-C bp.secure_memory` parameter to `1` is only supported on + Base FVP versions 5.4 and newer. Setting this parameter to `0` is also + supported. The `-C bp.tzc_400.diagnostics=1` parameter is optional. It + instructs the FVP to provide some helpful information if a secure memory + violation occurs. + +5. This and the following notes only apply when the firmware is built with + the `RESET_TO_BL31` option. + + The `--data=""@` + parameter is used to load bootloader images into Base FVP memory (see the + "Building the Trusted Firmware" section above). The base addresses used + should match the image base addresses in `platform_def.h` used while linking + the images. The BL3-2 image is only needed if BL3-1 has been built to expect + a Secure-EL1 Payload. + +6. The `-C cluster.cpu.RVBAR=@` parameter, where + X and Y are the cluster and CPU numbers respectively, is used to set the + reset vector for each core. + +7. Changing the default value of `FVP_SHARED_DATA_LOCATION` will also require + changing the value of + `--data=""@` and + `-C cluster.cpu.RVBAR=@`, to the new value of + `BL31_BASE` in `platform_def.h`. + +8. Changing the default value of `FVP_TSP_RAM_LOCATION` will also require + changing the value of + `--data=""@` to the new value of + `BL32_BASE` in `platform_def.h`. ### Running on the AEMv8 Base FVP with reset to BL1 entrypoint @@ -763,10 +783,6 @@ The following `FVP_Base_AEMv8A-AEMv8A` parameters should be used to boot Linux with 8 CPUs using the ARM Trusted Firmware. -NOTE: Uses the `-c clusterX.cpuX.RVBAR=@base address of BL3-1` where X is -the cluster number in clusterX and cpu number in cpuX is used to set the reset -vector for each core. - /FVP_Base_AEMv8A-AEMv8A \ -C pctl.startup=0.0.0.0 \ -C bp.secure_memory=1 \ @@ -775,15 +791,15 @@ -C cluster1.NUM_CORES=4 \ -C cache_state_modelled=1 \ -C bp.pl011_uart0.untimed_fifos=1 \ - -C cluster0.cpu0.RVBAR=0x04023000 \ - -C cluster0.cpu1.RVBAR=0x04023000 \ - -C cluster0.cpu2.RVBAR=0x04023000 \ - -C cluster0.cpu3.RVBAR=0x04023000 \ - -C cluster1.cpu0.RVBAR=0x04023000 \ - -C cluster1.cpu1.RVBAR=0x04023000 \ - -C cluster1.cpu2.RVBAR=0x04023000 \ - -C cluster1.cpu3.RVBAR=0x04023000 \ - --data cluster0.cpu0="/"@0x04023000 \ + -C cluster0.cpu0.RVBAR=0x04022000 \ + -C cluster0.cpu1.RVBAR=0x04022000 \ + -C cluster0.cpu2.RVBAR=0x04022000 \ + -C cluster0.cpu3.RVBAR=0x04022000 \ + -C cluster1.cpu0.RVBAR=0x04022000 \ + -C cluster1.cpu1.RVBAR=0x04022000 \ + -C cluster1.cpu2.RVBAR=0x04022000 \ + -C cluster1.cpu3.RVBAR=0x04022000 \ + --data cluster0.cpu0="/"@0x04022000 \ --data cluster0.cpu0="/"@0x04000000 \ --data cluster0.cpu0="/"@0x88000000 \ -C bp.virtioblockdevice.image_path="/" @@ -796,25 +812,21 @@ The following `FVP_Base_Cortex-A57x4-A53x4` model parameters should be used to boot Linux with 8 CPUs using the ARM Trusted Firmware. -NOTE: Uses the `-c clusterX.cpuX.RVBARADDR=@base address of BL3-1` where X is -the cluster number in clusterX and cpu number in cpuX is used to set the reset -vector for each core. - /FVP_Base_Cortex-A57x4-A53x4 \ -C pctl.startup=0.0.0.0 \ -C bp.secure_memory=1 \ -C bp.tzc_400.diagnostics=1 \ -C cache_state_modelled=1 \ -C bp.pl011_uart0.untimed_fifos=1 \ - -C cluster0.cpu0.RVBARADDR=0x04023000 \ - -C cluster0.cpu1.RVBARADDR=0x04023000 \ - -C cluster0.cpu2.RVBARADDR=0x04023000 \ - -C cluster0.cpu3.RVBARADDR=0x04023000 \ - -C cluster1.cpu0.RVBARADDR=0x04023000 \ - -C cluster1.cpu1.RVBARADDR=0x04023000 \ - -C cluster1.cpu2.RVBARADDR=0x04023000 \ - -C cluster1.cpu3.RVBARADDR=0x04023000 \ - --data cluster0.cpu0="/"@0x04023000 \ + -C cluster0.cpu0.RVBARADDR=0x04022000 \ + -C cluster0.cpu1.RVBARADDR=0x04022000 \ + -C cluster0.cpu2.RVBARADDR=0x04022000 \ + -C cluster0.cpu3.RVBARADDR=0x04022000 \ + -C cluster1.cpu0.RVBARADDR=0x04022000 \ + -C cluster1.cpu1.RVBARADDR=0x04022000 \ + -C cluster1.cpu2.RVBARADDR=0x04022000 \ + -C cluster1.cpu3.RVBARADDR=0x04022000 \ + --data cluster0.cpu0="/"@0x04022000 \ --data cluster0.cpu0="/"@0x04000000 \ --data cluster0.cpu0="/"@0x88000000 \ -C bp.virtioblockdevice.image_path="/"