tree b3dcdd6be9ba9b8ceabaa8561a45375ea3968b15
parent 2c7c90c34717dde57eeb01606f4aae9ccafaaddf
parent da909648e13fdfb5306123f4bc2a89bf2cbf682e
author Tom Rini <trini@konsulko.com> 1721053306 -0600
committer Tom Rini <trini@konsulko.com> 1721053306 -0600
mergetag object da909648e13fdfb5306123f4bc2a89bf2cbf682e
 type commit
 tag efi-2024-10-rc1-2
 tagger Heinrich Schuchardt <heinrich.schuchardt@canonical.com> 1720953654 +0200
 
 Pull request efi-2024-10-rc1-2
 
 Documentation:
 
 * use current versions of certifi and urllib3 for building documentation
 * add bootelf command documentation
 * correct the description of the Goldfish RTC driver
 * correct heading level of itest examples
 
 UEFI:
 
 * print device-tree in dtbdump.efi
 * consider CONFIG_EFI_IGNORE_OSINDICATIONS in TestEfiCapsuleFirmwareRaw
 * correct cmd_capsule_esl_gen invocation in scripts/Makefile.lib
 * use capsule CRT instead of ESL file when building capsules
 
 Others:
 
 * let ENV_IS_IN_EXT4 enable SYS_MMC_ENV_DEV
 * check if CONFIG_SYS_MMC_ENV_DEV is defined in mmc_get_env_dev
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEK7wKXt3/btL6/yA+hO4vgnE3U0sFAmaTrUYACgkQhO4vgnE3
 U0uMQA/8CfOBbJIROwz6EScjAFfY720+yBg1VtvE9fDy7XpHAUXNBcM62A/6g+tq
 7r+0Fs/fhVwyo/IDodBsM8DtDeUk/C3j/ZxYIyHlikHDEsg1sp7RdeMU+Dn4Vomi
 PXSb6dAAPryUPeWFjmdNRwdsDd17mAzBD/J0HemEOLdECkOdgbndiXI1jFFX+HZL
 sTkdUmugQRPob/ex3T7qqbI3Mz1gvmDGwu7udUnCV+y4giFm1BjLJEGM1Mk6WQpb
 AKajHT0g+2tsPGTaCiIa+8erXaWovNBM6CvG7jqiG6zJSVsoE7qOU6k3/CVWMLUY
 KW8BXZBfZ/J/AzcifE89GMLAykZHz3ZGfO60Fff++r7YldmWpNHQ+4iIsamZ4UN0
 lfMCdgPPc71FnWPb5P5I3afhp1EUmtR/IOPPRavgfqlvsbDiMZghgIrDLo813d8z
 yi1XGu4VQ9QwD5G10P1ldhhW6aS2GH0iixUFi8XydyymvtfFJS+9clqyURwLZbdT
 hf8q2AZtOiLZMc5Jl1cYupDOFUvx/+Q9Ug1imJNfj7vxhuTbTHxgjzjlxu1BkO7V
 QyBLPuPTqV9k4m9gCK9Zyz5KJ24xFIFew3KkKiJeLZGTOSwMioOVZjxYjb4clzfY
 QSdgfC8OeOfho1kVpuY69Aav0Oeow6BQ1V7eGUxi9hks6IRm2Fw=
 =A4Qj
 -----END PGP SIGNATURE-----

Merge tag 'efi-2024-10-rc1-2' of https://source.denx.de/u-boot/custodians/u-boot-efi

Pull request efi-2024-10-rc1-2

Documentation:

* use current versions of certifi and urllib3 for building documentation
* add bootelf command documentation
* correct the description of the Goldfish RTC driver
* correct heading level of itest examples

UEFI:

* print device-tree in dtbdump.efi
* consider CONFIG_EFI_IGNORE_OSINDICATIONS in TestEfiCapsuleFirmwareRaw
* correct cmd_capsule_esl_gen invocation in scripts/Makefile.lib
* use capsule CRT instead of ESL file when building capsules

Others:

* let ENV_IS_IN_EXT4 enable SYS_MMC_ENV_DEV
* check if CONFIG_SYS_MMC_ENV_DEV is defined in mmc_get_env_dev
