This blog is an update of one I wrote a couple of years ago, referencing the latest FVP models provided with DS-5 (v5.24 at time of writing) and the latest pre-built Linaro distributions. It is intended for users new to DS-5 and/or users on Windows platforms, as the Linaro distributions assume a Linux host. Note that the pre-built images do not contain kernel debug information. If you wish to enable kernel awareness, you will need to rebuild appropriately. Application debug and other Linux aware features do not require this.
You should first download the appropriate pre-built software stack and file system to match your needs. For the below I downloaded fvp-latest-oe-uboot.zip and the OpenEmbedded LAMP filesystem. Unzip these files to your host machine.
Open the DS-5 Eclipse GUI, and select Run → Debug Configurations, to set up the debug session. Select DS-5 Debugger from the list on the left hand side, and click on New launch configuration. You can name this configuration to anything suitable. Locate the Base_AEMv8Ax1 (or Base_AEMv8x4) FVP (use Filter platforms text box to help), and drill down to the Debug ARMAEMv8-A level. If you have kernel debug symbols available I recommend selecting from the Linux Kernel and/or Device Driver Debug branch (more on this later).
We now need to use the Model parameters to instantiate the model appropriately for the Linaro images. Within the packages you downloaded above, you will find a run_model.sh script which is a Linux host script for launching this model stand alone with these files. We will use this as the basis for the parameters that DS-5 will pass. You can simply copy and paste the below to a text editor, fix the paths to the appropriate files to match their location on your host, to then paste to the Model parameters field. For more information on these options, see the FVP documentation.
--parameter bp.secure_memory=0
--parameter cluster0.NUM_CORES=1
--parameter cache_state_modelled=0
--parameter bp.pl011_uart0.untimed_fifos=1
--parameter bp.secureflashloader.fname="\\path\to\bl1.bin"
--parameter bp.flashloader0.fname="\\path\to\\fip.bin"
--data cluster0.cpu0="\\path\to\\Image"@0x80080000
--data cluster0.cpu0="\\path\to\\fvp-base-gicv2-psci.dtb"@0x83000000
--data cluster0.cpu0="\\path\to\\ramdisk.img"@0x84000000
--parameter bp.ve_sysregs.mmbSiteDefault=0
--parameter bp.virtioblockdevice.image_path="\\path\to\\<filesystem>.img"
--parameter bp.smsc_91c111.enabled=true
--parameter bp.hostbridge.userNetworking=true
--parameter bp.hostbridge.userNetPorts="5555=5555,8080=8080,22=22"
Go to the Debugger tab, and select Connect Only. If you have debug symbols available for the image, I recommend loading the symbols via the Execute Debugger Commands panel. Note that the kernel runs at Exception Level EL1, and so the symbols need to be loaded to this level. To do this, use the command:
add-symbol-file "\\path\to\vmlinux" EL1N:0
You should now be able to launch the model (by clicking on Debug). Click the run button, and the model should boot directly into Linux.
Features such as Kernel Awareness (if kernel symbols loaded), Remote System Explorer (RSE) View, and Application Debug will be available, just as per my previous blog. I would also highlight some general improvements we have made to the GUI since that blog was written. Note for using RSE, you need to first set a password for root ("passwd root" on the Linux command line), then create an RSE Linux connection to "localhost", configured for ssh files.