Hello All,

 

I thought this is worth sharing.

 

As part of testing current release of trusted firmware, I had been using LAVA to do a subset of tests which are supported, as there were some configs not yet supported.

 

As part of that I gave a go at trying to run some baremetal tests with an interesting outcome.

 

The various binary blobs involved::

Till now we had separate set of bootloader images for trusted firmware like bl1.bin, bl2.bin, bl31.bin. So we used to specify the following fastmodel arguments

 

-C bp.flashloader0.fname=<path_to_uefi> -C bp.secureflashloader.fname=<path_to_bl1>

 

and the rest of the bl images located by fastmodel using the semihosting cwd flag => -C cluster0.cpu0.semihosting-cwd=<semihosting_dir_path>

 

However with this  latest release trusted firmware introduced a single binary package called Firmware Image Package (fip) which is a bundle of bl2 and various bl3 images.

With this change we specify the below flag as

-C bp.flashloader0.fname=<path_to_fip>

 

which has all the needed firmware images. There is a fip tool that allows one to replace any of the individual packaged binaries with a new one.

 

How baremetal test fips are generated?

 

Using the above mentioned fip tool we replace the uefi image in the fip image which is one of the BL3 images, with our baremetal test binary.

 

With this recreated fip if I launch a job with LAVA, it actually executes the test.

 

Few glitches

 

I still specify that the boot loader is uefi. But LAVA executes it irrespective of this and ends up timing out and obviously retries 2 more times as usual. (It is just stress testing for the component because some of my tests do run for ever, so having the test run over an hour doing repeated suspend or powerdown calls and having to repeat it 3 times overall in a single run sound a really good side-effect of this ‘problem’!)

 

My overall test run shows an ‘Incomplete’ status understandably!

 

 

Please note that our current baremetal tests are bit primitive in the sense they do not have a test framework or harness but each test is a self contained test code implementing a test case. In future we will have a decent shaped baremetal test harness / framework. This would mean I may not ‘get lucky’ like this time. The complexity would be different so don’t want to leave any wrong impression that this could serve my needs even in future.

 

Thanks

Basil Eljuse…


-- IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.

ARM Limited, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, Registered in England & Wales, Company No: 2557590
ARM Holdings plc, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, Registered in England & Wales, Company No: 2548782