[U-Boot] ARM64 Allwinner Binary Size

Mark Kettenis
2017-12-20T07:42:22Z

> Date: Wed, 20 Dec 2017 08:15:46 +0100
> From: Maxime Ripard <maxime.ripard@free-electrons.com>
>
> On Wed, Dec 20, 2017 at 01:55:51AM +0000, Andr=E9 Przywara wrote:
> > On 19/12/17 15:24, Maxime Ripard wrote:
> > > On Tue, Dec 19, 2017 at 02:41:17PM +0100, Mark Kettenis wrote:
> > >>> Date: Tue, 19 Dec 2017 14:12:02 +0100
> > >>> From: Maxime Ripard <maxime.ripard@free-electrons.com>
> > >>>
> > >>> On Tue, Dec 05, 2017 at 10:28:20AM +0000, Andre Przywara wrote:
> > >>>> So even though the actual u-boot.bin for 64-bit boards is still some=
> what
> > >>>> below the limit (~480KB), adding the ATF image (~32KB) pushes it over
> > >>>> the edge. So since v2017.11 u-boot.itb is already too big for the
> > >>>> traditional MMC env location.
> > >>>
> > >>> So I've had a quick look about what could go possibly go away in our
> > >>> current armv8 config (using the pine64+ defconfig). Let me know if
> > >>> some are actually vitals:
> > >>>
> > >>> - FIT_ENABLE_SHA256_SUPPORT
> > >>> - CONSOLE_MUX
> > >>> - CMD_CRC32
> > >>> - CMD_LZMADEC
> > >>> - CMD_UNZIP
> > >>> - CMD_LOADB
> > >>> - CMD_LOADS
> > >>> - CMD_MISC (actually implementing the command sleep)
> > >>> - ISO_PARTITION (yes. For CDROMs.)
> > >>> - VIDEO_BPP8, VIDEO_BPP16
> > >>> - VIDEO_ANSI
> > >>> - SHA256
> > >>> - LZMA
> > >>>
> > >>> Removing those options make the u-boot.itb binary size going from
> > >>> 516kB to 478kB, making it functional again *and* allowing us to enable
> > >>> the DT overlays that seem way more important than any feature
> > >>> mentionned above (and bumps the size to 483kB).
> > >>
> > >> So without CONFIG_CONSOLE_MUX, what is the behaviour when both serial
> > >> console and usb keyboard are present? Is the usb keyboard used when
> > >> it is plugged in but serial otherwise?
> > >=20
> > > That's actually a very good question, and I don't know, I never used a
> > > USB keyboard with U-Boot.
> > >=20
> > > This is enabled on 7 Allwinner boards, and no one complained so far,
> > > so I would expect to work without that option activated. However, it
> > > doesn't take that much space either, so it's not like we really need
> > > to disable it either.
> >=20
> > Just tested it: without CONSOLE_MUX we don't use video and USB keyboard
> > automatically. It seems to default to serial, "setenv stdout vidconsole"
> > switches over (immediately). This is quite weird behaviour, and probably
> > quite unpleasant for the casual user.
> > With CONSOLE_MUX defined we get what we want: always serial console,
> > plus USB keyboard and HDMI, if connected. Output appears on both, input
> > is accepted from both.
> > So I would very much like to keep it in.
>
> Sounds like we should even enable it for everyone then.

common/Kconfig has:

config CONSOLE_MUX
bool "Enable console multiplexing"
default y if DM_VIDEO || VIDEO || LCD

so it is already enabled in the cases where it matters.