X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=BaseTools%2FSource%2FPython%2FCapsule%2FGenerateCapsule.py;h=3c641bdca79bbd1243badd5e311d91629457825e;hp=4018dc0420d492dce192a9d6067500c62132030e;hb=f33d5d68abc02727dc828c1079e72ab65e1d63af;hpb=8b63877aca1e5a3576b7275439c494a6d40ed1b5 diff --git a/BaseTools/Source/Python/Capsule/GenerateCapsule.py b/BaseTools/Source/Python/Capsule/GenerateCapsule.py index 4018dc0420..3c641bdca7 100644 --- a/BaseTools/Source/Python/Capsule/GenerateCapsule.py +++ b/BaseTools/Source/Python/Capsule/GenerateCapsule.py @@ -239,8 +239,8 @@ if __name__ == '__main__': # Add optional arguments for this command # parser.add_argument ("--capflag", dest = 'CapsuleFlag', action='append', default = [], - choices=['PersistAcrossReset', 'PopulateSystemTable', 'InitiateReset'], - help = "Capsule flag can be PersistAcrossReset, or PopulateSystemTable or InitiateReset or not set") + choices=['PersistAcrossReset', 'InitiateReset'], + help = "Capsule flag can be PersistAcrossReset or InitiateReset or not set") parser.add_argument ("--capoemflag", dest = 'CapsuleOemFlag', type = ValidateUnsignedInteger, default = 0x0000, help = "Capsule OEM Flag is an integer between 0x0000 and 0xffff.") @@ -294,10 +294,14 @@ if __name__ == '__main__': if args.Guid is None: parser.error ('the following option is required: --guid') if 'PersistAcrossReset' not in args.CapsuleFlag: - if 'PopulateSystemTable' in args.CapsuleFlag: - parser.error ('--capflag PopulateSystemTable also requires --capflag PersistAcrossReset') if 'InitiateReset' in args.CapsuleFlag: parser.error ('--capflag InitiateReset also requires --capflag PersistAcrossReset') + if args.CapsuleOemFlag > 0xFFFF: + parser.error ('--capoemflag must be an integer between 0x0000 and 0xffff') + if args.HardwareInstance > 0xFFFFFFFFFFFFFFFF: + parser.error ('--hardware-instance must be an integer in range 0x0..0xffffffffffffffff') + if args.MonotonicCount > 0xFFFFFFFFFFFFFFFF: + parser.error ('--monotonic-count must be an integer in range 0x0..0xffffffffffffffff') UseSignTool = args.SignToolPfxFile is not None UseOpenSsl = (args.OpenSslSignerPrivateCertFile is not None and @@ -319,6 +323,10 @@ if __name__ == '__main__': if args.Encode and (UseSignTool or UseOpenSsl): if args.FwVersion is None or args.LowestSupportedVersion is None: parser.error ('the following options are required: --fw-version, --lsv') + if args.FwVersion > 0xFFFFFFFF: + parser.error ('--fw-version must be an integer in range 0x0..0xffffffff') + if args.LowestSupportedVersion > 0xFFFFFFFF: + parser.error ('--lsv must be an integer in range 0x0..0xffffffff') if UseSignTool: args.SignToolPfxFile.close() @@ -331,6 +339,10 @@ if __name__ == '__main__': args.OpenSslOtherPublicCertFile = args.OpenSslOtherPublicCertFile.name args.OpenSslTrustedPublicCertFile = args.OpenSslTrustedPublicCertFile.name + if args.DumpInfo: + if args.OutputFile is not None: + parser.error ('the following option is not supported for dumpinfo operations: --output') + # # Read binary input file # @@ -411,7 +423,7 @@ if __name__ == '__main__': try: UefiCapsuleHeader.OemFlags = args.CapsuleOemFlag UefiCapsuleHeader.PersistAcrossReset = 'PersistAcrossReset' in args.CapsuleFlag - UefiCapsuleHeader.PopulateSystemTable = 'PopulateSystemTable' in args.CapsuleFlag + UefiCapsuleHeader.PopulateSystemTable = False UefiCapsuleHeader.InitiateReset = 'InitiateReset' in args.CapsuleFlag UefiCapsuleHeader.Payload = Result Result = UefiCapsuleHeader.Encode ()