ARM-Trusted-Firmware-FIQ/
contains the custom (and required) ARM ATF versionPetalinux-v2018.3/
contains the patched sources of the Linux kernel usedjailhouse-rt/
contains the custom jailhouse-rt imagesdoc/
isolate pieces of documentationsboot/
pre-built version of Linux and bitstreamrootfs/
pre-compiled version of the home directory required for the experimentsinit_submodules.sh
script in charge of recursively clone the sub-repositoriesquick_deploy.sh
script to ease the deployment. Currently copy around the programs from demo here
- A Xilinx ZCU102
- Petalinux 2018.3
- ZCU102 BSP version 2018.3
- SD card with a boot partition of at least 1GB and and a root partition
Run the following line in order to setup your local repository
./init_submodules.sh
- Create a petalinux project
- Configure the petalinux project such that it considers our custom ATF and petalinux kernel
petalinux-config
- Configure the kernel such that
OVERLAYS
andKALLSYMS
flags are set. The exact path to activate the former is
General setup --->
Configure standard kernel feature (expert users) --->
Load all symbols for debbuging/ksymoops
while the former is
Device Drivers --->
Device Tree and Open Firmware support --->
Device Tree overlays
-
Modify the
deploy.config
file to suit your local configuration. -
Source Petalinux manually
source path/to/petalinux/settings.sh
Remark: this is only required when using the petalinux
option of the quick_deploy
script.
-
Make sure to be at the root folder of the project.
-
Build the complete project and copy it to the SD-card with the following command
./quick_deploy.sh --petalinux build,package,copy --programs clean,build,copy --jailhouse clean,build,copy
Remark: the quick_deploy.sh
can be used later on to independently build, clean or copy parts of the projects. Further information can be found here.
setenv bootargs "earlycon clk_ignore_unused earlyprintk mem=512M root=/dev/mmcblk0p2 rw rootwait"
setenv uenvcmd "fatload mmc 0 0x3000000 Image && fatload mmc 0 0x2A00000 system.dtb && booti 0x3000000 - 0x2A00000"
setenv bootcmd "run uenvcmd"
saveenv
boot
setenv bootargs "console=ttyPS0,115200n8 earlycon clk_ignore_unused cpuidle.off=1 earlyprintk mem=1024M root=/dev/mmcblk0p2 rw rootwait"
setenv uenvcmd "fatload mmc 0 0x3000000 Image && fatload mmc 0 0x2A00000 system.dtb && booti 0x3000000 - 0x2A00000"
setenv bootcmd "run uenvcmd"
saveenv
boot
With MemorEDF on the way
setenv bootargs "console=ttyPS0,115200n8 earlycon clk_ignore_unused cpuidle.off=1 earlyprintk mem=1024M rw rootwait"
setenv uenvcmd "fatload mmc 0 0x3000000 Image && fatload mmc 0 0x2A00000 system.dtb && booti 0x3000000 - 0x2A00000"
setenv bootcmd "run uenvcmd"
saveenv
boot
To main memory through the main route
setenv bootargs "console=ttyPS0,115200n8 earlycon clk_ignore_unused cpuidle.off=1 earlyprintk mem=512M rw rootwait"
setenv uenvcmd "fatload mmc 0 0x3000000 Image && fatload mmc 0 0x2A00000 system.dtb && booti 0x3000000 - 0x2A00000"
setenv bootcmd "run uenvcmd"
saveenv
boot
Make sure to have successfully completed all the steps listed in the Petalinux section.
Interrupt the u-boot sequence before the count of 4 seconds by pressing any key and enter the following commands on the u-boot console.
setenv bootargs "earlycon clk_ignore_unused earlyprintk mem=512M root=/dev/mmcblk0p2 rw rootwait"
setenv uenvcmd "fatload mmc 0 0x3000000 Image && fatload mmc 0 0x2A00000 system.dtb && booti 0x3000000 - 0x2A00000"
setenv bootcmd "run uenvcmd"
saveenv
boot
Note: this manipulation only has to be done once. Once logged in, type the following command:
~/brainfreeze/launch_fence_blast.sh
This script is in charge of starting jailhouse, recoloring the root-cell and starting the memory-bomb inmate.
After this, the experiments will be automatically launched.
The execution time of each benchmark instance will be displayed on the terminal and stored in a file on the SD-card.
The results can be found in ~/benchmarks/results
under the names bench_ts_<mit>.csv
(where mit
is 1024
, 32768
, 131072
, 524288
).
Remark: Unless the script has been altered, generating the results takes around 4 hours on the ZCU102!
Retrieve the raw-data files located in <sd-card>/home/root/benchmarks/results/
and copy them in <this-repo>/script/brainfreeze/SchIM/
.
Once done, let us move to the script and launch it
cd <this-repo>/script/brainfreeze/SchIM/
python3 brainfreeze_effects.py
The generated plot will be located in the same directory under the name cpu-brainfreeze-interference.pdf
.
Usage: quick_deploy.sh [OPTION [ACTION,...]]
Options:
--programs [ACTION,...] Indicates what actions to perform regarding
the programs located in demo/
--petalinux [ACTION,...] Indicates what actions to perform regarding
the petalinux project
--jailhouse [ACTION,...] Indicates what actions to perform regarding
the jailhouse-rt project
--petalinux-path Indicates the path to the Petalinux project
in use (Note: if not specified, default path
is taken from deploy.config)
--boot-path Indicates the path to the SD card boot
partition (Note: if not specified, default
path is taken from deploy.config)
--root-path Indicates the path to the SD card root FS
partition (Note: if not specified, default
path is taken from deploy.config)
Actions:
clean Clean the targeted project (Note: always
performed first when called alongside other
actions)
build Build the targeted project (Note: always
performed after a clean and before a copy if
any)
copy Copy the outcome of the targeted project to
the relevant path
package Petalinux only