* [U-Boot] Pull request for UEFI sub-system for v2019.07-rc2 (2) [not found] <302b84e3-4ac7-25ad-3eba-b624ad48eb23@gmx.de> @ 2019-05-08 17:50 ` Tom Rini 2019-05-08 22:03 ` Heinrich Schuchardt 0 siblings, 1 reply; 8+ messages in thread From: Tom Rini @ 2019-05-08 17:50 UTC (permalink / raw) To: u-boot On Wed, May 08, 2019 at 07:57:57AM +0200, Heinrich Schuchardt wrote: > The following changes since commit 44237e272f1eac3b026709e76333a07b2d3a3523: > > Merge branch 'master' of git://git.denx.de/u-boot-sh (2019-05-06 > 07:19:31 -0400) > > are available in the Git repository at: > > git://git.denx.de/u-boot-efi.git tags/efi-2019-07-rc2-2 > > for you to fetch changes up to b015ab57bf558daa1c768995a7a7f1df2d40191e: > > efi_loader: signature of ExitBootServices() (2019-05-07 21:10:04 +0200) > > Travis CI results are here: > https://travis-ci.org/xypron2/u-boot/builds/529448555 > > Primary key fingerprint: > 6DC4 F9C7 1F29 A6FA 06B7 6D33 C481 DBBC 2C05 1AC4 > Note that you may want to run ./scripts/checkpatch.pl --git origin/master.. or similar as: WARNING: 'follwing' may be misspelled - perhaps 'following'? which I left alone rather than mess up the tag. Applied to u-boot/master, thanks! And all of that said, looking over my before/after builds I see a lot of size growth, everywhere, due to EFI changes. I assume this is due to increasing overall functionality and support, which is good. But is there perhaps some way we can split things into a minimal "we have enough to support loading ${OS LOADER}" and then "we are aiming for large parts of spec compliance" ? Some days I start to wonder if "EFI_LOADER on by default" was a bad idea. -- Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: not available URL: <http://lists.denx.de/pipermail/u-boot/attachments/20190508/55327928/attachment.sig> ^ permalink raw reply [flat|nested] 8+ messages in thread
* [U-Boot] Pull request for UEFI sub-system for v2019.07-rc2 (2) 2019-05-08 17:50 ` [U-Boot] Pull request for UEFI sub-system for v2019.07-rc2 (2) Tom Rini @ 2019-05-08 22:03 ` Heinrich Schuchardt 2019-05-08 22:06 ` Tom Rini ` (2 more replies) 0 siblings, 3 replies; 8+ messages in thread From: Heinrich Schuchardt @ 2019-05-08 22:03 UTC (permalink / raw) To: u-boot On 5/8/19 7:50 PM, Tom Rini wrote: > On Wed, May 08, 2019 at 07:57:57AM +0200, Heinrich Schuchardt wrote: > >> The following changes since commit >> 44237e272f1eac3b026709e76333a07b2d3a3523: >> >> Merge branch 'master' of git://git.denx.de/u-boot-sh (2019-05-06 >> 07:19:31 -0400) >> >> are available in the Git repository at: >> >> git://git.denx.de/u-boot-efi.git tags/efi-2019-07-rc2-2 >> >> for you to fetch changes up to >> b015ab57bf558daa1c768995a7a7f1df2d40191e: >> >> efi_loader: signature of ExitBootServices() (2019-05-07 21:10:04 >> +0200) >> >> Travis CI results are here: >> https://travis-ci.org/xypron2/u-boot/builds/529448555 >> >> Primary key fingerprint: 6DC4 F9C7 1F29 A6FA 06B7 6D33 C481 DBBC >> 2C05 1AC4 >> > > Note that you may want to run ./scripts/checkpatch.pl --git > origin/master.. or similar as: WARNING: 'follwing' may be misspelled > - perhaps 'following'? > > which I left alone rather than mess up the tag. Sorry I missed that one. Typically I run checkpatch.pl. > > Applied to u-boot/master, thanks! > > And all of that said, looking over my before/after builds I see a lot > of size growth, everywhere, due to EFI changes. I assume this is due > to increasing overall functionality and support, which is good. But > is there perhaps some way we can split things into a minimal "we > have enough to support loading ${OS LOADER}" and then "we are aiming > for large parts of spec compliance" ? Some days I start to wonder > if "EFI_LOADER on by default" was a bad idea. > The following switches allow to reduce the size of the UEFI subsystem: CONFIG_CMD_BOOTEFI_HELLO, default N CONFIG_CMD_BOOTEFI_SELFTEST, default N except QEMU CONFIG_EFI_UNICODE_CAPITALIZATION, default Y CONFIG_EFI_LOADER_HII (The Makefile does not consider it yet correctly, patch submitted.) CONFIG_CMD_EFIDEBUG, default N CONFIG_CMD_NVEDIT_EFI In doc/README.uefi we describe that we target EBBR compatibility. We have implemented functionality that is not needed for EBBR compatibility but is needed to run the EFI Shell and the conformance tests or iPXE. Here we should think about making it customizable, e.g. lib/efi_loader/efi_bootmgr.c lib/efi_driver/* lib/efi_loader/efi_unicode_collation.c lib/efi_loader/efi_variable.c lib/efi_loader/device_path_to_text.c lib/efi_loader/device_path_utilities.c For the Unicode collation protocol I just sent a patch. Best regards Heinrich ^ permalink raw reply [flat|nested] 8+ messages in thread
* [U-Boot] Pull request for UEFI sub-system for v2019.07-rc2 (2) 2019-05-08 22:03 ` Heinrich Schuchardt @ 2019-05-08 22:06 ` Tom Rini 2019-05-08 22:15 ` Graf, Alexander 2019-05-09 14:16 ` Tom Rini 2 siblings, 0 replies; 8+ messages in thread From: Tom Rini @ 2019-05-08 22:06 UTC (permalink / raw) To: u-boot On Thu, May 09, 2019 at 12:03:38AM +0200, Heinrich Schuchardt wrote: > On 5/8/19 7:50 PM, Tom Rini wrote: > >On Wed, May 08, 2019 at 07:57:57AM +0200, Heinrich Schuchardt wrote: > > > >>The following changes since commit > >>44237e272f1eac3b026709e76333a07b2d3a3523: > >> > >>Merge branch 'master' of git://git.denx.de/u-boot-sh (2019-05-06 > >>07:19:31 -0400) > >> > >>are available in the Git repository at: > >> > >>git://git.denx.de/u-boot-efi.git tags/efi-2019-07-rc2-2 > >> > >>for you to fetch changes up to > >>b015ab57bf558daa1c768995a7a7f1df2d40191e: > >> > >>efi_loader: signature of ExitBootServices() (2019-05-07 21:10:04 > >>+0200) > >> > >>Travis CI results are here: > >>https://travis-ci.org/xypron2/u-boot/builds/529448555 > >> > >>Primary key fingerprint: 6DC4 F9C7 1F29 A6FA 06B7 6D33 C481 DBBC > >>2C05 1AC4 > >> > > > >Note that you may want to run ./scripts/checkpatch.pl --git > >origin/master.. or similar as: WARNING: 'follwing' may be misspelled > >- perhaps 'following'? > > > >which I left alone rather than mess up the tag. > > Sorry I missed that one. Typically I run checkpatch.pl. > > > > >Applied to u-boot/master, thanks! > > > >And all of that said, looking over my before/after builds I see a lot > >of size growth, everywhere, due to EFI changes. I assume this is due > >to increasing overall functionality and support, which is good. But > >is there perhaps some way we can split things into a minimal "we > >have enough to support loading ${OS LOADER}" and then "we are aiming > >for large parts of spec compliance" ? Some days I start to wonder > >if "EFI_LOADER on by default" was a bad idea. > > > > The following switches allow to reduce the size of the UEFI subsystem: > > CONFIG_CMD_BOOTEFI_HELLO, default N > CONFIG_CMD_BOOTEFI_SELFTEST, default N except QEMU > CONFIG_EFI_UNICODE_CAPITALIZATION, default Y > CONFIG_EFI_LOADER_HII > (The Makefile does not consider it yet correctly, patch submitted.) > CONFIG_CMD_EFIDEBUG, default N > CONFIG_CMD_NVEDIT_EFI > > In doc/README.uefi we describe that we target EBBR compatibility. Right. And I think we need to make the defaults reflect that, and then have some targets opt-in for more (such as QEMU where we're testing things). > We have implemented functionality that is not needed for EBBR > compatibility but is needed to run the EFI Shell and the conformance > tests or iPXE. Here we should think about making it customizable, e.g. > > lib/efi_loader/efi_bootmgr.c > lib/efi_driver/* > lib/efi_loader/efi_unicode_collation.c > lib/efi_loader/efi_variable.c > lib/efi_loader/device_path_to_text.c > lib/efi_loader/device_path_utilities.c > > For the Unicode collation protocol I just sent a patch. Adding more options to be able to remove stuff would be good, thanks! -- Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: not available URL: <http://lists.denx.de/pipermail/u-boot/attachments/20190508/b9bcc6d1/attachment.sig> ^ permalink raw reply [flat|nested] 8+ messages in thread
* [U-Boot] Pull request for UEFI sub-system for v2019.07-rc2 (2) 2019-05-08 22:03 ` Heinrich Schuchardt 2019-05-08 22:06 ` Tom Rini @ 2019-05-08 22:15 ` Graf, Alexander 2019-05-09 11:27 ` Tom Rini 2019-05-09 14:16 ` Tom Rini 2 siblings, 1 reply; 8+ messages in thread From: Graf, Alexander @ 2019-05-08 22:15 UTC (permalink / raw) To: u-boot On 09.05.19 00:03, Heinrich Schuchardt wrote: > On 5/8/19 7:50 PM, Tom Rini wrote: >> On Wed, May 08, 2019 at 07:57:57AM +0200, Heinrich Schuchardt wrote: >> >>> The following changes since commit >>> 44237e272f1eac3b026709e76333a07b2d3a3523: >>> >>> Merge branch 'master' of git://git.denx.de/u-boot-sh (2019-05-06 >>> 07:19:31 -0400) >>> >>> are available in the Git repository at: >>> >>> git://git.denx.de/u-boot-efi.git tags/efi-2019-07-rc2-2 >>> >>> for you to fetch changes up to >>> b015ab57bf558daa1c768995a7a7f1df2d40191e: >>> >>> efi_loader: signature of ExitBootServices() (2019-05-07 21:10:04 >>> +0200) >>> >>> Travis CI results are here: >>> https://travis-ci.org/xypron2/u-boot/builds/529448555 >>> >>> Primary key fingerprint: 6DC4 F9C7 1F29 A6FA 06B7 6D33 C481 DBBC >>> 2C05 1AC4 >>> >> >> Note that you may want to run ./scripts/checkpatch.pl --git >> origin/master.. or similar as: WARNING: 'follwing' may be misspelled >> - perhaps 'following'? >> >> which I left alone rather than mess up the tag. > > Sorry I missed that one. Typically I run checkpatch.pl. > >> >> Applied to u-boot/master, thanks! >> >> And all of that said, looking over my before/after builds I see a lot >> of size growth, everywhere, due to EFI changes. I assume this is due >> to increasing overall functionality and support, which is good. But >> is there perhaps some way we can split things into a minimal "we >> have enough to support loading ${OS LOADER}" and then "we are aiming >> for large parts of spec compliance" ? Some days I start to wonder >> if "EFI_LOADER on by default" was a bad idea. >> > > The following switches allow to reduce the size of the UEFI subsystem: > > CONFIG_CMD_BOOTEFI_HELLO, default N > CONFIG_CMD_BOOTEFI_SELFTEST, default N except QEMU > CONFIG_EFI_UNICODE_CAPITALIZATION, default Y > CONFIG_EFI_LOADER_HII > (The Makefile does not consider it yet correctly, patch submitted.) > CONFIG_CMD_EFIDEBUG, default N > CONFIG_CMD_NVEDIT_EFI > > In doc/README.uefi we describe that we target EBBR compatibility. > > We have implemented functionality that is not needed for EBBR > compatibility but is needed to run the EFI Shell and the conformance > tests or iPXE. Here we should think about making it customizable, e.g. > > lib/efi_loader/efi_bootmgr.c > lib/efi_driver/* > lib/efi_loader/efi_unicode_collation.c > lib/efi_loader/efi_variable.c > lib/efi_loader/device_path_to_text.c > lib/efi_loader/device_path_utilities.c > > For the Unicode collation protocol I just sent a patch. Do you have size estimates for how much each of those bits are? Where did we see the biggest growth? What eats up the most code/data space? I think we should aim to ideally incur less than 20kb overhead for an arm target. How far are we from that? We used to be at 10kb. Alex ^ permalink raw reply [flat|nested] 8+ messages in thread
* [U-Boot] Pull request for UEFI sub-system for v2019.07-rc2 (2) 2019-05-08 22:15 ` Graf, Alexander @ 2019-05-09 11:27 ` Tom Rini 0 siblings, 0 replies; 8+ messages in thread From: Tom Rini @ 2019-05-09 11:27 UTC (permalink / raw) To: u-boot On Thu, May 09, 2019 at 12:15:34AM +0200, Graf, Alexander wrote: > > On 09.05.19 00:03, Heinrich Schuchardt wrote: > >On 5/8/19 7:50 PM, Tom Rini wrote: > >>On Wed, May 08, 2019 at 07:57:57AM +0200, Heinrich Schuchardt wrote: > >> > >>>The following changes since commit > >>>44237e272f1eac3b026709e76333a07b2d3a3523: > >>> > >>>Merge branch 'master' of git://git.denx.de/u-boot-sh (2019-05-06 > >>>07:19:31 -0400) > >>> > >>>are available in the Git repository at: > >>> > >>>git://git.denx.de/u-boot-efi.git tags/efi-2019-07-rc2-2 > >>> > >>>for you to fetch changes up to > >>>b015ab57bf558daa1c768995a7a7f1df2d40191e: > >>> > >>>efi_loader: signature of ExitBootServices() (2019-05-07 21:10:04 > >>>+0200) > >>> > >>>Travis CI results are here: > >>>https://travis-ci.org/xypron2/u-boot/builds/529448555 > >>> > >>>Primary key fingerprint: 6DC4 F9C7 1F29 A6FA 06B7 6D33 C481 DBBC > >>>2C05 1AC4 > >>> > >> > >>Note that you may want to run ./scripts/checkpatch.pl --git > >>origin/master.. or similar as: WARNING: 'follwing' may be misspelled > >>- perhaps 'following'? > >> > >>which I left alone rather than mess up the tag. > > > >Sorry I missed that one. Typically I run checkpatch.pl. > > > >> > >>Applied to u-boot/master, thanks! > >> > >>And all of that said, looking over my before/after builds I see a lot > >>of size growth, everywhere, due to EFI changes. I assume this is due > >>to increasing overall functionality and support, which is good. But > >>is there perhaps some way we can split things into a minimal "we > >>have enough to support loading ${OS LOADER}" and then "we are aiming > >>for large parts of spec compliance" ? Some days I start to wonder > >>if "EFI_LOADER on by default" was a bad idea. > >> > > > >The following switches allow to reduce the size of the UEFI subsystem: > > > >CONFIG_CMD_BOOTEFI_HELLO, default N > >CONFIG_CMD_BOOTEFI_SELFTEST, default N except QEMU > >CONFIG_EFI_UNICODE_CAPITALIZATION, default Y > >CONFIG_EFI_LOADER_HII > >(The Makefile does not consider it yet correctly, patch submitted.) > >CONFIG_CMD_EFIDEBUG, default N > >CONFIG_CMD_NVEDIT_EFI > > > >In doc/README.uefi we describe that we target EBBR compatibility. > > > >We have implemented functionality that is not needed for EBBR > >compatibility but is needed to run the EFI Shell and the conformance > >tests or iPXE. Here we should think about making it customizable, e.g. > > > >lib/efi_loader/efi_bootmgr.c > >lib/efi_driver/* > >lib/efi_loader/efi_unicode_collation.c > >lib/efi_loader/efi_variable.c > >lib/efi_loader/device_path_to_text.c > >lib/efi_loader/device_path_utilities.c > > > >For the Unicode collation protocol I just sent a patch. > > > Do you have size estimates for how much each of those bits are? Where did we > see the biggest growth? What eats up the most code/data space? > > I think we should aim to ideally incur less than 20kb overhead for an arm > target. How far are we from that? We used to be at 10kb. On am335x_evm disabling CONFIG_EFI_LOADER saves 51kb and on pine64-lts disabling CONFIG_EFI_LOADER saves 75kb. -- Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: not available URL: <http://lists.denx.de/pipermail/u-boot/attachments/20190509/c6293d9c/attachment.sig> ^ permalink raw reply [flat|nested] 8+ messages in thread
* [U-Boot] Pull request for UEFI sub-system for v2019.07-rc2 (2) 2019-05-08 22:03 ` Heinrich Schuchardt 2019-05-08 22:06 ` Tom Rini 2019-05-08 22:15 ` Graf, Alexander @ 2019-05-09 14:16 ` Tom Rini 2019-05-09 16:05 ` Heinrich Schuchardt 2 siblings, 1 reply; 8+ messages in thread From: Tom Rini @ 2019-05-09 14:16 UTC (permalink / raw) To: u-boot On Thu, May 09, 2019 at 12:03:38AM +0200, Heinrich Schuchardt wrote: > On 5/8/19 7:50 PM, Tom Rini wrote: > >On Wed, May 08, 2019 at 07:57:57AM +0200, Heinrich Schuchardt wrote: > > > >>The following changes since commit > >>44237e272f1eac3b026709e76333a07b2d3a3523: > >> > >>Merge branch 'master' of git://git.denx.de/u-boot-sh (2019-05-06 > >>07:19:31 -0400) > >> > >>are available in the Git repository at: > >> > >>git://git.denx.de/u-boot-efi.git tags/efi-2019-07-rc2-2 > >> > >>for you to fetch changes up to > >>b015ab57bf558daa1c768995a7a7f1df2d40191e: > >> > >>efi_loader: signature of ExitBootServices() (2019-05-07 21:10:04 > >>+0200) > >> > >>Travis CI results are here: > >>https://travis-ci.org/xypron2/u-boot/builds/529448555 > >> > >>Primary key fingerprint: 6DC4 F9C7 1F29 A6FA 06B7 6D33 C481 DBBC > >>2C05 1AC4 > >> > > > >Note that you may want to run ./scripts/checkpatch.pl --git > >origin/master.. or similar as: WARNING: 'follwing' may be misspelled > >- perhaps 'following'? > > > >which I left alone rather than mess up the tag. > > Sorry I missed that one. Typically I run checkpatch.pl. > > > > >Applied to u-boot/master, thanks! > > > >And all of that said, looking over my before/after builds I see a lot > >of size growth, everywhere, due to EFI changes. I assume this is due > >to increasing overall functionality and support, which is good. But > >is there perhaps some way we can split things into a minimal "we > >have enough to support loading ${OS LOADER}" and then "we are aiming > >for large parts of spec compliance" ? Some days I start to wonder > >if "EFI_LOADER on by default" was a bad idea. > > > > The following switches allow to reduce the size of the UEFI subsystem: > > CONFIG_CMD_BOOTEFI_HELLO, default N > CONFIG_CMD_BOOTEFI_SELFTEST, default N except QEMU Note there's 2 non-QEMU platforms enabling it, can you please add a patch turning it off and cc'ing the maintainer as they probably didn't really mean to have that on? It's also not on for riscv QEMU nor sandbox but should be? > CONFIG_EFI_UNICODE_CAPITALIZATION, default Y > CONFIG_EFI_LOADER_HII > (The Makefile does not consider it yet correctly, patch submitted.) > CONFIG_CMD_EFIDEBUG, default N > CONFIG_CMD_NVEDIT_EFI Adding in: commit 7494b7764508332e37a3375fa0b6c328bc34637f Author: Tom Rini <trini@konsulko.com> Date: Thu May 9 10:06:40 2019 -0400 LOCAL: Disable some EFI stuff by default Signed-off-by: Tom Rini <trini@konsulko.com> diff --git a/cmd/Kconfig b/cmd/Kconfig index 4e11e0f404c8..4ebaf2f5bcb9 100644 --- a/cmd/Kconfig +++ b/cmd/Kconfig @@ -238,7 +238,6 @@ config CMD_BOOTEFI config CMD_BOOTEFI_HELLO_COMPILE bool "Compile a standard EFI hello world binary for testing" depends on CMD_BOOTEFI && !CPU_V7M && !SANDBOX - default y help This compiles a standard EFI hello world application with U-Boot so that it can be used with the test/py testing framework. This is useful @@ -434,7 +433,6 @@ config CMD_ENV_FLAGS config CMD_NVEDIT_EFI bool "env [set|print] -e - set/print UEFI variables" depends on EFI_LOADER - default y imply HEXDUMP help UEFI variables are encoded as some form of U-Boot variables. diff --git a/lib/efi_loader/Kconfig b/lib/efi_loader/Kconfig index 50b050159c37..bd8fb9be00bc 100644 --- a/lib/efi_loader/Kconfig +++ b/lib/efi_loader/Kconfig @@ -19,7 +19,6 @@ config EFI_LOADER config EFI_UNICODE_CAPITALIZATION bool "Support Unicode capitalization" depends on EFI_LOADER - default y help Select this option to enable correct handling of the capitalization of Unicode codepoints in the range 0x0000-0xffff. If this option is not @@ -48,7 +47,6 @@ config EFI_LOADER_BOUNCE_BUFFER config EFI_LOADER_HII bool "Expose HII protocols to EFI applications" depends on EFI_LOADER - default y help The Human Interface Infrastructure is a complicated framework that allows UEFI applications to draw fancy menus and hook strings using And note that with the bugfix to the Makefile for EFI_LOADER_HII added, there's either more to be done, or it was already being discarded at link time as applying that patch on top of this didn't result in any size savings. Doing the above saves about 10kb. Which helps, but with the numbers I mentioned earlier still puts us at about 40kb which Alex was hoping it should be closer to 20kb. Is there more we can do here? Thanks! -- Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: not available URL: <http://lists.denx.de/pipermail/u-boot/attachments/20190509/f3607188/attachment.sig> ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [U-Boot] Pull request for UEFI sub-system for v2019.07-rc2 (2) 2019-05-09 14:16 ` Tom Rini @ 2019-05-09 16:05 ` Heinrich Schuchardt 2019-05-09 16:10 ` Tom Rini 0 siblings, 1 reply; 8+ messages in thread From: Heinrich Schuchardt @ 2019-05-09 16:05 UTC (permalink / raw) To: u-boot On 5/9/19 4:16 PM, Tom Rini wrote: > On Thu, May 09, 2019 at 12:03:38AM +0200, Heinrich Schuchardt wrote: >> On 5/8/19 7:50 PM, Tom Rini wrote: >>> On Wed, May 08, 2019 at 07:57:57AM +0200, Heinrich Schuchardt wrote: >>> >>>> The following changes since commit >>>> 44237e272f1eac3b026709e76333a07b2d3a3523: >>>> >>>> Merge branch 'master' of git://git.denx.de/u-boot-sh (2019-05-06 >>>> 07:19:31 -0400) >>>> >>>> are available in the Git repository at: >>>> >>>> git://git.denx.de/u-boot-efi.git tags/efi-2019-07-rc2-2 >>>> >>>> for you to fetch changes up to >>>> b015ab57bf558daa1c768995a7a7f1df2d40191e: >>>> >>>> efi_loader: signature of ExitBootServices() (2019-05-07 21:10:04 >>>> +0200) >>>> >>>> Travis CI results are here: >>>> https://travis-ci.org/xypron2/u-boot/builds/529448555 >>>> >>>> Primary key fingerprint: 6DC4 F9C7 1F29 A6FA 06B7 6D33 C481 DBBC >>>> 2C05 1AC4 >>>> >>> >>> Note that you may want to run ./scripts/checkpatch.pl --git >>> origin/master.. or similar as: WARNING: 'follwing' may be misspelled >>> - perhaps 'following'? >>> >>> which I left alone rather than mess up the tag. >> >> Sorry I missed that one. Typically I run checkpatch.pl. >> >>> >>> Applied to u-boot/master, thanks! >>> >>> And all of that said, looking over my before/after builds I see a lot >>> of size growth, everywhere, due to EFI changes. I assume this is due >>> to increasing overall functionality and support, which is good. But >>> is there perhaps some way we can split things into a minimal "we >>> have enough to support loading ${OS LOADER}" and then "we are aiming >>> for large parts of spec compliance" ? Some days I start to wonder >>> if "EFI_LOADER on by default" was a bad idea. >>> >> >> The following switches allow to reduce the size of the UEFI subsystem: >> >> CONFIG_CMD_BOOTEFI_HELLO, default N >> CONFIG_CMD_BOOTEFI_SELFTEST, default N except QEMU > > Note there's 2 non-QEMU platforms enabling it, can you please add a > patch turning it off and cc'ing the maintainer as they probably didn't > really mean to have that on? It's also not on for riscv QEMU nor > sandbox but should be? > >> CONFIG_EFI_UNICODE_CAPITALIZATION, default Y >> CONFIG_EFI_LOADER_HII >> (The Makefile does not consider it yet correctly, patch submitted.) >> CONFIG_CMD_EFIDEBUG, default N >> CONFIG_CMD_NVEDIT_EFI > > Adding in: > commit 7494b7764508332e37a3375fa0b6c328bc34637f > Author: Tom Rini <trini@konsulko.com> > Date: Thu May 9 10:06:40 2019 -0400 > > LOCAL: Disable some EFI stuff by default > > Signed-off-by: Tom Rini <trini@konsulko.com> > > diff --git a/cmd/Kconfig b/cmd/Kconfig > index 4e11e0f404c8..4ebaf2f5bcb9 100644 > --- a/cmd/Kconfig > +++ b/cmd/Kconfig > @@ -238,7 +238,6 @@ config CMD_BOOTEFI > config CMD_BOOTEFI_HELLO_COMPILE > bool "Compile a standard EFI hello world binary for testing" > depends on CMD_BOOTEFI && !CPU_V7M && !SANDBOX > - default y > help > This compiles a standard EFI hello world application with U-Boot so > that it can be used with the test/py testing framework. This is useful > @@ -434,7 +433,6 @@ config CMD_ENV_FLAGS > config CMD_NVEDIT_EFI > bool "env [set|print] -e - set/print UEFI variables" > depends on EFI_LOADER > - default y > imply HEXDUMP > help > UEFI variables are encoded as some form of U-Boot variables. > diff --git a/lib/efi_loader/Kconfig b/lib/efi_loader/Kconfig > index 50b050159c37..bd8fb9be00bc 100644 > --- a/lib/efi_loader/Kconfig > +++ b/lib/efi_loader/Kconfig > @@ -19,7 +19,6 @@ config EFI_LOADER > config EFI_UNICODE_CAPITALIZATION > bool "Support Unicode capitalization" > depends on EFI_LOADER > - default y > help > Select this option to enable correct handling of the capitalization of > Unicode codepoints in the range 0x0000-0xffff. If this option is not > @@ -48,7 +47,6 @@ config EFI_LOADER_BOUNCE_BUFFER > config EFI_LOADER_HII > bool "Expose HII protocols to EFI applications" > depends on EFI_LOADER > - default y > help > The Human Interface Infrastructure is a complicated framework that > allows UEFI applications to draw fancy menus and hook strings using > > And note that with the bugfix to the Makefile for EFI_LOADER_HII added, > there's either more to be done, or it was already being discarded at > link time as applying that patch on top of this didn't result in any > size savings. Doing the above saves about 10kb. Which helps, but with > the numbers I mentioned earlier still puts us at about 40kb which Alex > was hoping it should be closer to 20kb. Is there more we can do here? > Thanks! > I already mentioned further areas that possibly can be made customizable in this thread. Alex numbers refer to a state where everything except starting GRUB would fail in the 1st half of 2017. Even the most simple conceivable UEFI binary doing nothing but `return EFI_SUCCESS;` resulted in a crash. My priority is on using the UEFI SCT to identify areas were our UEFI implementation is incorrect. Best regards Heinrich ^ permalink raw reply [flat|nested] 8+ messages in thread
* [U-Boot] Pull request for UEFI sub-system for v2019.07-rc2 (2) 2019-05-09 16:05 ` Heinrich Schuchardt @ 2019-05-09 16:10 ` Tom Rini 0 siblings, 0 replies; 8+ messages in thread From: Tom Rini @ 2019-05-09 16:10 UTC (permalink / raw) To: u-boot On Thu, May 09, 2019 at 06:05:57PM +0200, Heinrich Schuchardt wrote: > On 5/9/19 4:16 PM, Tom Rini wrote: > > On Thu, May 09, 2019 at 12:03:38AM +0200, Heinrich Schuchardt wrote: > >> On 5/8/19 7:50 PM, Tom Rini wrote: > >>> On Wed, May 08, 2019 at 07:57:57AM +0200, Heinrich Schuchardt wrote: > >>> > >>>> The following changes since commit > >>>> 44237e272f1eac3b026709e76333a07b2d3a3523: > >>>> > >>>> Merge branch 'master' of git://git.denx.de/u-boot-sh (2019-05-06 > >>>> 07:19:31 -0400) > >>>> > >>>> are available in the Git repository at: > >>>> > >>>> git://git.denx.de/u-boot-efi.git tags/efi-2019-07-rc2-2 > >>>> > >>>> for you to fetch changes up to > >>>> b015ab57bf558daa1c768995a7a7f1df2d40191e: > >>>> > >>>> efi_loader: signature of ExitBootServices() (2019-05-07 21:10:04 > >>>> +0200) > >>>> > >>>> Travis CI results are here: > >>>> https://travis-ci.org/xypron2/u-boot/builds/529448555 > >>>> > >>>> Primary key fingerprint: 6DC4 F9C7 1F29 A6FA 06B7 6D33 C481 DBBC > >>>> 2C05 1AC4 > >>>> > >>> > >>> Note that you may want to run ./scripts/checkpatch.pl --git > >>> origin/master.. or similar as: WARNING: 'follwing' may be misspelled > >>> - perhaps 'following'? > >>> > >>> which I left alone rather than mess up the tag. > >> > >> Sorry I missed that one. Typically I run checkpatch.pl. > >> > >>> > >>> Applied to u-boot/master, thanks! > >>> > >>> And all of that said, looking over my before/after builds I see a lot > >>> of size growth, everywhere, due to EFI changes. I assume this is due > >>> to increasing overall functionality and support, which is good. But > >>> is there perhaps some way we can split things into a minimal "we > >>> have enough to support loading ${OS LOADER}" and then "we are aiming > >>> for large parts of spec compliance" ? Some days I start to wonder > >>> if "EFI_LOADER on by default" was a bad idea. > >>> > >> > >> The following switches allow to reduce the size of the UEFI subsystem: > >> > >> CONFIG_CMD_BOOTEFI_HELLO, default N > >> CONFIG_CMD_BOOTEFI_SELFTEST, default N except QEMU > > > > Note there's 2 non-QEMU platforms enabling it, can you please add a > > patch turning it off and cc'ing the maintainer as they probably didn't > > really mean to have that on? It's also not on for riscv QEMU nor > > sandbox but should be? > > > >> CONFIG_EFI_UNICODE_CAPITALIZATION, default Y > >> CONFIG_EFI_LOADER_HII > >> (The Makefile does not consider it yet correctly, patch submitted.) > >> CONFIG_CMD_EFIDEBUG, default N > >> CONFIG_CMD_NVEDIT_EFI > > > > Adding in: > > commit 7494b7764508332e37a3375fa0b6c328bc34637f > > Author: Tom Rini <trini@konsulko.com> > > Date: Thu May 9 10:06:40 2019 -0400 > > > > LOCAL: Disable some EFI stuff by default > > > > Signed-off-by: Tom Rini <trini@konsulko.com> > > > > diff --git a/cmd/Kconfig b/cmd/Kconfig > > index 4e11e0f404c8..4ebaf2f5bcb9 100644 > > --- a/cmd/Kconfig > > +++ b/cmd/Kconfig > > @@ -238,7 +238,6 @@ config CMD_BOOTEFI > > config CMD_BOOTEFI_HELLO_COMPILE > > bool "Compile a standard EFI hello world binary for testing" > > depends on CMD_BOOTEFI && !CPU_V7M && !SANDBOX > > - default y > > help > > This compiles a standard EFI hello world application with U-Boot so > > that it can be used with the test/py testing framework. This is useful > > @@ -434,7 +433,6 @@ config CMD_ENV_FLAGS > > config CMD_NVEDIT_EFI > > bool "env [set|print] -e - set/print UEFI variables" > > depends on EFI_LOADER > > - default y > > imply HEXDUMP > > help > > UEFI variables are encoded as some form of U-Boot variables. > > diff --git a/lib/efi_loader/Kconfig b/lib/efi_loader/Kconfig > > index 50b050159c37..bd8fb9be00bc 100644 > > --- a/lib/efi_loader/Kconfig > > +++ b/lib/efi_loader/Kconfig > > @@ -19,7 +19,6 @@ config EFI_LOADER > > config EFI_UNICODE_CAPITALIZATION > > bool "Support Unicode capitalization" > > depends on EFI_LOADER > > - default y > > help > > Select this option to enable correct handling of the capitalization of > > Unicode codepoints in the range 0x0000-0xffff. If this option is not > > @@ -48,7 +47,6 @@ config EFI_LOADER_BOUNCE_BUFFER > > config EFI_LOADER_HII > > bool "Expose HII protocols to EFI applications" > > depends on EFI_LOADER > > - default y > > help > > The Human Interface Infrastructure is a complicated framework that > > allows UEFI applications to draw fancy menus and hook strings using > > > > And note that with the bugfix to the Makefile for EFI_LOADER_HII added, > > there's either more to be done, or it was already being discarded at > > link time as applying that patch on top of this didn't result in any > > size savings. Doing the above saves about 10kb. Which helps, but with > > the numbers I mentioned earlier still puts us at about 40kb which Alex > > was hoping it should be closer to 20kb. Is there more we can do here? > > Thanks! > > > > I already mentioned further areas that possibly can be made customizable > in this thread. OK, lets aim for those please. > Alex numbers refer to a state where everything except starting GRUB > would fail in the 1st half of 2017. Even the most simple conceivable > UEFI binary doing nothing but `return EFI_SUCCESS;` resulted in a crash. A good data-point too, yes. > My priority is on using the UEFI SCT to identify areas were our UEFI > implementation is incorrect. We need to be correct, yes. And we aim to be EBBR compliant (as that's quite a large point of this feature). But time and again other maintainers note that our binary size keeps growing without visibly useful features, either to them or to the end user. So being able to run SCT is helpful and good. But being able to run grub2 or the BSD loader or what-have-you is the end user visible feature. And if there's a big delta between that and what EBBR says we need to have, that's a good point and place to push back on EBBR (where we're both invited to the meetings and anyone else reading this and has concerns is too!). -- Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: not available URL: <http://lists.denx.de/pipermail/u-boot/attachments/20190509/6863f44e/attachment.sig> ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2019-05-09 16:10 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <302b84e3-4ac7-25ad-3eba-b624ad48eb23@gmx.de>
2019-05-08 17:50 ` [U-Boot] Pull request for UEFI sub-system for v2019.07-rc2 (2) Tom Rini
2019-05-08 22:03 ` Heinrich Schuchardt
2019-05-08 22:06 ` Tom Rini
2019-05-08 22:15 ` Graf, Alexander
2019-05-09 11:27 ` Tom Rini
2019-05-09 14:16 ` Tom Rini
2019-05-09 16:05 ` Heinrich Schuchardt
2019-05-09 16:10 ` Tom Rini
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox