Hi Tomas, Thanks for the contribution. I agree we need this feature. We have been working on updates to GenerateCapsule that add support for one or more embedded drivers and multiple payloads and the option to provide all the configuration information in a JSON file. It also extends decode and dumpinfo to show the embedded drivers. We will post patch with all those features very soon.
Thanks, Mike > -----Original Message----- > From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] > On Behalf Of Tomas Pilar (tpilar) > Sent: Wednesday, March 20, 2019 10:18 AM > To: edk2-devel@lists.01.org > Subject: [edk2] [PATCH] BaseTools: Add embedded driver > support to GenerateCapsule.py > > Contributed-under: TianoCore Contribution Agreement 1.1 > Signed-off-by: Tomas Pilar <tpi...@solarflare.com> > --- > .../Source/Python/Capsule/GenerateCapsule.py | 25 > ++++++++++++++++--- > 1 file changed, 22 insertions(+), 3 deletions(-) > > diff --git > a/BaseTools/Source/Python/Capsule/GenerateCapsule.py > b/BaseTools/Source/Python/Capsule/GenerateCapsule.py > index 7b08918857..4b275b092b 100644 > --- a/BaseTools/Source/Python/Capsule/GenerateCapsule.py > +++ b/BaseTools/Source/Python/Capsule/GenerateCapsule.py > @@ -9,8 +9,7 @@ > # system firmware or device firmware for integrated > devices. In order to > # keep the tool as simple as possible, it has the > following limitations: > # * Do not support multiple payloads in a capsule. > -# * Do not support optional drivers in a capsule. > -# * Do not support vendor code bytes in a capsule. > +# * Support at most one optional driver in a capsule. > # > # Copyright (c) 2018, Intel Corporation. All rights > reserved.<BR> > # This program and the accompanying materials > @@ -236,6 +235,12 @@ if __name__ == '__main__': > help = "Input binary payload > filename.") > parser.add_argument("-o", "--output", dest = > 'OutputFile', type = argparse.FileType('wb'), > help = "Output filename.") > + > + # > + # Add optional embedded driver and vendor code > arguments > + # > + parser.add_argument("--driver", dest = 'Driver', > type = argparse.FileType('rb'), > + help = "Input binary embedded > driver to package alongside the image") > # > # Add group for -e and -d flags that are mutually > exclusive and required > # > @@ -355,7 +360,7 @@ if __name__ == '__main__': > parser.error ('the following option is not > supported for dumpinfo operations: --output') > > # > - # Read binary input file > + # Read binary input files > # > try: > if args.Verbose: > @@ -366,6 +371,17 @@ if __name__ == '__main__': > print ('GenerateCapsule: error: can not read > binary input file {File}'.format (File = > args.InputFile.name)) > sys.exit (1) > > + DriverBuffer = b'' > + if args.Driver: > + try: > + if args.Verbose: > + print ('Read binary embedded driver > {File}'.format (File = args.Driver.name)) > + DriverBuffer = args.Driver.read () > + args.Driver.close () > + except: > + print ('GenerateCapsule: error: can not read > supplied binary embedded driver file {File}'.format (File > = args.Driver.name)) > + sys.exit (1) > + > # > # Create objects > # > @@ -423,6 +439,9 @@ if __name__ == '__main__': > > try: > FmpCapsuleHeader.AddPayload (args.Guid, > Result, HardwareInstance = args.HardwareInstance) > + if args.Driver: > + > FmpCapsuleHeader.AddEmbeddedDriver(DriverBuffer) > + > Result = FmpCapsuleHeader.Encode () > if args.Verbose: > FmpCapsuleHeader.DumpInfo () > -- > 2.17.2 > > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel