[PATCH v2 1/1] travis-ci: provide env__efi_fit_tftp_file

Cristian Ciocaltea cristian.ciocaltea at gmail.com
Tue Dec 31 11:42:36 CET 2019


On Mon, Dec 30, 2019 at 09:03:38PM +0100, Heinrich Schuchardt wrote:
> On 12/30/19 8:32 PM, Stephen Warren wrote:
> > On 12/30/19 12:05 PM, Heinrich Schuchardt wrote:
> > > On 12/30/19 5:38 PM, Stephen Warren wrote:
> > > > On 12/30/19 3:52 AM, Heinrich Schuchardt wrote:
> > > > > Provide dictionary env__efi_fit_tftp_file describing the file used for
> > > > > the
> > > > > UEFI FIT image test.
> > > > 
> > > > > diff --git a/py/travis-ci/travis_tftp.py b/py/travis-ci/travis_tftp.py
> > > > 
> > > > > +def efifit2env(addr=None):
> > > > > +    """Create dictionary describing file for EFI fit image test
> > > > > +
> > > > > +    @addr:      address used for loading the file as int (e.g.
> > > > > 0x40400000)
> > > > > +    Return:     dictionary describing the file with entries
> > > > > +                * fn    - filename
> > > > > +                * addr  - loading address, optional
> > > > > +                * dn    - tftp directory
> > > > > +    """
> > > > > +    tftp_dir = os.environ['UBOOT_TRAVIS_BUILD_DIR']
> > > > > +
> > > > > +    ret = {
> > > > > +        "fn": "test-efi-fit.img",
> > > > 
> > > > If this function were to exist, then the filename shouldn't be
> > > > hard-coded; it should be a parameter.
> > > > 
> > > 
> > > Hello Stephen,
> > > 
> > > thanks for reviewing.
> > > 
> > > This is the name of a generated file. It does not depend on the board.
> > 
> > What generates the file and when/why?
> > 
> > Generated files should generally be put into
> > u_boot_console.config.persistent_data_dir, and presumably the name
> > hard-coded into the test that uses it.
> > 
> 
> Hello Stephen,
> 
> this is the test case:
> 
> https://lists.denx.de/pipermail/u-boot/2019-December/394957.html
> test/py: Create a test for launching UEFI binaries from FIT images
> 
> The test can be run in different styles:
> 
> * A complete FIT image can be supplied. In this case the dictionary
>   must contain a "size" entry.
> * The test can generate a FIT image from lib/efi_loader/helloworld.efi.
>   In this case no "size" entry shall be supplied. The "fn" field
>   provides the name of the generated file. The file is generated in
>   cons.config.build_dir. The "dn" field" describes the tFTP root
>   directory to which the generated file is copied.

A small correction here: if the "size" entry is not provided in the
dictionary, the test generates a FIT image using a hardcoded file
name (test-efi-fit-helloworld.fit), so any "fn" entry provided in the
dictionary is ignored in this case.
 
> The tFTP directory "dn" is only known in uboot-test-hooks.git.

Yes, and this is actually the only mandatory information to be
provided in the dictionary when the test is supposed to generate the
FIT image. We could get rid of this, too, if we make the assumption
that the tFTP root directory is u_boot_console.config.build_dir by
default.

> test/py/README.md says --persistent-data-dir is used for data that may
> be re-used across test runs. Currently the FIT file is generated in
> every run. In principal it could be reused. So Christian could consider
> adjusting his patch.

Actually the FIT image file can be generated multiple times per test
run, with different content, which is determined by various combinations
of flags. E.g. for sandbox we have: enable/disable GZIP compression,
enable/disable FDT usage. Each combination is used in a subtest, that
(re)generates the corresponding FIT image.

To re-use the generated data we need to introduce additional complexity
to handle FIT image identification for each subtest and to invalidate
those images when they become out of sync with the parametrized input 
data samples (ITS, FDT) used to generate their content.

> Best regards
> 
> Heinrich


More information about the U-Boot mailing list