platform/kernel/u-boot.git
2 years agosandbox: Generalise SPL booting
Simon Glass [Fri, 21 Oct 2022 00:23:01 +0000 (18:23 -0600)]
sandbox: Generalise SPL booting

At present sandbox only supports jumping to a file, to get to the next
U-Boot phase. We want to support other methods, so update the code to
use an enum for the method. Also use the

Use board_boot_order() to set the order, so we can add more options.
Also add the MMC methods into the BOOT_DEVICE enum so that booting
from MMC can be supported.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agoimage: Move comment for fit_conf_find_compat()
Simon Glass [Fri, 21 Oct 2022 00:23:00 +0000 (18:23 -0600)]
image: Move comment for fit_conf_find_compat()

Move this comment to the header file, where the APIs should be defined.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agosandbox: Drop message about writing sandbox state
Simon Glass [Fri, 21 Oct 2022 00:22:59 +0000 (18:22 -0600)]
sandbox: Drop message about writing sandbox state

This happens every time sandbox moves to the next phase so is not very
interesting. Display the message only when debugging.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
2 years agodm: mmc: Allow sandbox emulator to build without writes
Simon Glass [Fri, 21 Oct 2022 00:22:58 +0000 (18:22 -0600)]
dm: mmc: Allow sandbox emulator to build without writes

When MMC_WRITE is disabled this driver produced a build error. Fix this.

Also update a comment while we are here.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
2 years agodm: blk: mmc: Tidy up some Makefile rules for SPL
Simon Glass [Fri, 21 Oct 2022 00:22:57 +0000 (18:22 -0600)]
dm: blk: mmc: Tidy up some Makefile rules for SPL

Use the correct SPL_TPL_ variable so that these features can be enabled in
TPL and VPL as needed.

Disable it by default in TPL to avoid any code-size increase. No boards
are actually using it since the Makefile rules don't allow including
drivers/block/ with TPL_DM enabled. It can be manually enabled as needed.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
2 years agobloblist: Drop debugging
Simon Glass [Fri, 21 Oct 2022 00:22:56 +0000 (18:22 -0600)]
bloblist: Drop debugging

Disable debugging by default since this implementation is stable now.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agousb: Update the test to cover reading and writing
Simon Glass [Fri, 21 Oct 2022 00:22:55 +0000 (18:22 -0600)]
usb: Update the test to cover reading and writing

Add test coverage for blk_write() as well.

The blk_erase() is not tested for now as the USB stor interface does not
support erase.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agodm: blk: Add udevice functions
Simon Glass [Fri, 21 Oct 2022 00:22:54 +0000 (18:22 -0600)]
dm: blk: Add udevice functions

At present we have functions called blk_dread(), etc., which take a
struct blk_desc * to refer to the block device. Add some functions which
use udevice instead, since this is more in keeping with how driver model
is supposed to work.

Update one of the tests to use this.

Note that it would be nice to update the functions in disk-uclass.c to use
these new functions. However they are not quite the same. For example,
disk_blk_read() adds the partition offset to 'start' when calling the
cache read/fill functions, but does not with part_blk_read(), which does
the addition itself. So as designed the code is duplicated.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agodisk: Rename block_dev to desc
Simon Glass [Fri, 21 Oct 2022 00:22:53 +0000 (18:22 -0600)]
disk: Rename block_dev to desc

The use of 'block_dev' in this context is confusing, since it is not a
pointer to a device, just to some information about it. Rename this to
'desc', as is more commonly used, since it is a block descriptor.

Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: Heinrich Schuchardt <xypron.glplk@gmx.de>
2 years agodisk: Rename block functions
Simon Glass [Fri, 21 Oct 2022 00:22:52 +0000 (18:22 -0600)]
disk: Rename block functions

Use the uclass type as the first part of the function name, to be
consistent with the methods in other block drivers.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agobootstd: Add a way to set up a bootflow
Simon Glass [Fri, 21 Oct 2022 00:22:51 +0000 (18:22 -0600)]
bootstd: Add a way to set up a bootflow

Add a function to init a bootflow, to reduce code duplication.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agotest: Support tests which can only be run manually
Simon Glass [Fri, 21 Oct 2022 00:22:50 +0000 (18:22 -0600)]
test: Support tests which can only be run manually

At present we normally write tests either in Python or in C. But most
Python tests end up doing a lot of checks which would be better done in C.
Checks done in C are orders of magnitude faster and it is possible to get
full access to U-Boot's internal workings, rather than just relying on
the command line.

The model is to have a Python test set up some things and then use C code
(in a unit test) to check that they were done correctly. But we don't want
those checks to happen as part of normal test running, since each C unit
tests is dependent on the associate Python tests, so cannot run without
it.

To acheive this, add a new UT_TESTF_MANUAL flag to use with the C 'check'
tests, so that they can be skipped by default when the 'ut' command is
used. Require that tests have a name ending with '_norun', so that pytest
knows to skip them.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agotest: Update tests to use the skip feature
Simon Glass [Fri, 21 Oct 2022 00:22:49 +0000 (18:22 -0600)]
test: Update tests to use the skip feature

Some tests currently return 0 when they want to be skipped. Update them to
return -EAGAIN instead, so they are counted as skipped.

A few tests are in two parts, with the latter part being skipped in
certain situations. Split these into two and use the correct condition for
the second part.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agotest: Report skippped tests
Simon Glass [Fri, 21 Oct 2022 00:22:48 +0000 (18:22 -0600)]
test: Report skippped tests

At present it is possible for a test to skip itself by returning -EAGAIN
but this is not recorded. An existing example is in test_pre_run() with
the "Console recording disabled" check.

Keep a track of skipped tests and report the total at the end.

Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
2 years agobinman: Support writing symbols into ELF files
Simon Glass [Fri, 21 Oct 2022 00:22:47 +0000 (18:22 -0600)]
binman: Support writing symbols into ELF files

In some cases the ELF version of SPL builds may be packaged, rather
than a binary .bin file. Add support for this.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agobinman: Handle writing ELF symbols in the Entry class
Simon Glass [Fri, 21 Oct 2022 00:22:46 +0000 (18:22 -0600)]
binman: Handle writing ELF symbols in the Entry class

This feature is used by several etypes and we plan to add more that use
it. Make symbol writing a feature of the base class to reduce the code
duplication.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agobinman: Split out looking up a symbol into a function
Simon Glass [Fri, 21 Oct 2022 00:22:45 +0000 (18:22 -0600)]
binman: Split out looking up a symbol into a function

Move this code into its own function so it can be used from tests.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agobinman: Allow obtaining a symbol value
Simon Glass [Fri, 21 Oct 2022 00:22:44 +0000 (18:22 -0600)]
binman: Allow obtaining a symbol value

Provide a function to obtain the integer value of an ELF symbol. This will
be used

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agospl: Add a separate silence option for SPL
Simon Glass [Fri, 21 Oct 2022 00:22:43 +0000 (18:22 -0600)]
spl: Add a separate silence option for SPL

Add an option to allow silent console to be controlled separately in SPL,
so that boot progress can be shown. Disable it by default for sandbox
since it is useful to see what is going on there.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agospl: Refactor controls for console output
Simon Glass [Fri, 21 Oct 2022 00:22:42 +0000 (18:22 -0600)]
spl: Refactor controls for console output

The expression in boot_from_devices() is fairly long and appears to be an
artefact from before we could easily call printf(...) and have the call be
nop'd out. So update it to just check CONFIG_SILENT_CONSOLE.

Signed-off-by: Simon Glass <sjg@chromium.org>
Suggested-by: Tom Rini <trini@konsulko.com>
2 years agospl: Use binman suffix allow symbols of any SPL etype
Simon Glass [Fri, 21 Oct 2022 00:22:41 +0000 (18:22 -0600)]
spl: Use binman suffix allow symbols of any SPL etype

At present we use symbols for the u-boot-spl entry, but this is not always
what we want. For example, sandbox actually jumps to a u-boot-spl-elf
entry, since sandbox executables are ELF files.

We already handle this with U-Boot by using the '-any' suffix. Add it for
SPL as well.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agodisk: Drop debug messages in part_efi
Simon Glass [Fri, 21 Oct 2022 00:22:40 +0000 (18:22 -0600)]
disk: Drop debug messages in part_efi

This is monstrously verbose when something goes wrong. It should work by
recording the problem and reporting it (once) at the command level. At
present it sometimes outputs hundreds of lines of CRC mismatches.

For now, just silence it all.

  GUID Partition Table Entry Array CRC is wrong: 0xaebfebf2 != 0xc916f712
  find_valid_gpt: *** ERROR: Invalid GPT ***
  find_valid_gpt: ***        Using Backup GPT ***
  GUID Partition Table Entry Array CRC is wrong: 0xaebfebf2 != 0xc916f712
  find_valid_gpt: *** ERROR: Invalid GPT ***
  find_valid_gpt: ***        Using Backup GPT ***
  ...

While we are error, remove the '*** ERROR: ' text as it is already clear
that this is unexpected

Signed-off-by: Simon Glass <sjg@chromium.org>
Suggested-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
2 years agoRename CONFIG_SYS_TEXT_BASE to CONFIG_TEXT_BASE
Simon Glass [Fri, 21 Oct 2022 00:22:39 +0000 (18:22 -0600)]
Rename CONFIG_SYS_TEXT_BASE to CONFIG_TEXT_BASE

The current name is inconsistent with SPL which uses CONFIG_SPL_TEXT_BASE
and this makes it imposible to use CONFIG_VAL().

Rename it to resolve this problem.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agoMerge branch '2022-10-31-broadcom-updates'
Tom Rini [Mon, 31 Oct 2022 14:40:31 +0000 (10:40 -0400)]
Merge branch '2022-10-31-broadcom-updates'

- Update / add a large number of Broadcom BCA SoCs.

2 years agotimer: bcmbca: use arm global timer for bcm63138 SoC
William Zhang [Wed, 24 Aug 2022 04:44:33 +0000 (21:44 -0700)]
timer: bcmbca: use arm global timer for bcm63138 SoC

As STI timer is renamed to ARM A9 global timer, change BCM63138 to use
the new global timer config symbol name.

This patch applies on top of the my previous patch [1].

[1]: https://lists.denx.de/pipermail/u-boot/2022-August/491060.html

Signed-off-by: William Zhang <william.zhang@broadcom.com>
2 years agotimer: sti: convert sti-timer to arm a9 global timer
William Zhang [Wed, 24 Aug 2022 04:44:32 +0000 (21:44 -0700)]
timer: sti: convert sti-timer to arm a9 global timer

STI timer is actually ARM Cortex A9 global timer. Convert the driver to
use generic global timer name and make it consistent with Linux kernel
global timer driver. This also allows any A9 based device to use this
driver.

Signed-off-by: William Zhang <william.zhang@broadcom.com>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
Tested-by: Patrice Chotard <patrice.chotard@foss.st.com>
2 years agoarm: bcmbca: replace ARCH_BCM6753 symbols in Kconfig with BCM6855
William Zhang [Mon, 22 Aug 2022 18:49:08 +0000 (11:49 -0700)]
arm: bcmbca: replace ARCH_BCM6753 symbols in Kconfig with BCM6855

As CONFIG_ARCH_BCM6753 is replaced with CONFIG_BCM6855, update the
driver Kconfig to use the new config symbol.

Signed-off-by: William Zhang <william.zhang@broadcom.com>
Reviewed-by: Philippe Reynes <philippe.reynes@softathome.com>
2 years agoarm: bcmbca: remove bcm6753 support under CONFIG_ARCH_BCM6753
William Zhang [Mon, 22 Aug 2022 18:49:07 +0000 (11:49 -0700)]
arm: bcmbca: remove bcm6753 support under CONFIG_ARCH_BCM6753

BCM6753 is essentially same as the main chip BCM6855 but with different
SKU number. Now that BCM6855 is supported under CONFIG_ARCH_BCMBCA and
CONFIG_BCM6855, remove the original ARCH_BCM6753 support and migrate its
configuration and dts settings. This includes:
- Remove the bcm96753ref board folder. It is replaced by the
generic bcmbca board folder.
- Merge the 6753.dtsi setting to the new 6855.dtsi file. Update
96753ref board dts with the new compatible string.
- Delete broadcom_bcm96763ref.h and merge its setting to the new
bcm96855.h file.
- Delete bcm96753ref_ram_defconfig and use a basic config version of
bcm96855_defconfig

Signed-off-by: William Zhang <william.zhang@broadcom.com>
Reviewed-by: Philippe Reynes <philippe.reynes@softathome.com>
2 years agoarm: bcmbca: add bcm6855 SoC support under CONFIG_ARCH_BCMBCA
William Zhang [Mon, 22 Aug 2022 18:49:06 +0000 (11:49 -0700)]
arm: bcmbca: add bcm6855 SoC support under CONFIG_ARCH_BCMBCA

BCM6855 is a Broadcom ARM A7 based PON Gateway SoC. It is part of the
BCA (Broadband Carrier Access origin) chipset family. Like other
broadband SoC, this patch adds it under CONFIG_BCM6855 chip config and
CONFIG_ARCH_BCMBCA platform config.

This initial support includes a bare-bone implementation and dts with
CPU subsystem, memory and ARM PL101 uart. This SoC is supported in the
linux-next git repository so the dts and dtsi files are copied from linux.

The u-boot image can be loaded from flash or network to the entry point
address in the memory and boot from there to the console.

Signed-off-by: William Zhang <william.zhang@broadcom.com>
Reviewed-by: Philippe Reynes <philippe.reynes@softathome.com>
2 years agoarm: bcmbca: replace ARCH_BCM6858 symbols in Kconfig with BCM6858
William Zhang [Mon, 22 Aug 2022 18:39:45 +0000 (11:39 -0700)]
arm: bcmbca: replace ARCH_BCM6858 symbols in Kconfig with BCM6858

As CONFIG_ARCH_BCM6858 is replaced with CONFIG_BCM6858, update the
driver Kconfig to use the new config symbol.

Signed-off-by: William Zhang <william.zhang@broadcom.com>
Reviewed-by: Philippe Reynes <philippe.reynes@softathome.com>
2 years agoarm: bcmbca: remove bcm6858 support under CONFIG_ARCH_BCM6858
William Zhang [Mon, 22 Aug 2022 18:39:44 +0000 (11:39 -0700)]
arm: bcmbca: remove bcm6858 support under CONFIG_ARCH_BCM6858

Now that BCM6858 is supported under CONFIG_ARCH_BCMBCA and
CONFIG_BCM6858, remove the original ARCH_BCM6858 support and migrate its
configuration and dts settings. This includes:
- Remove the bcm968580xref board folder. It is replaced by the generic
bcmbca board folder.
- Update bcm968580xref board dts with the new compatible string.
- Delete broadcom_bcm968580xref.h and merge its setting to the new
bcm96858.h file.
- Remove bcm968580xref_ram_defconfig as a basic config version of
bcm96858_defconfig is now added.

Signed-off-by: William Zhang <william.zhang@broadcom.com>
Reviewed-by: Philippe Reynes <philippe.reynes@softathome.com>
2 years agoarm: bcmbca: add bcm6858 SoC support under CONFIG_ARCH_BCMBCA
William Zhang [Mon, 22 Aug 2022 18:39:43 +0000 (11:39 -0700)]
arm: bcmbca: add bcm6858 SoC support under CONFIG_ARCH_BCMBCA

BCM6858 is a Broadcom B53 based PON Gateway SoC. It is part of the BCA
(Broadband Carrier Access origin) chipset family. Like other broadband
SoC, this patch adds it under CONFIG_BCM6858 chip config and
CONFIG_ARCH_BCMBCA platform config.

This initial support includes a bare-bone implementation and the
original dts is updated with the one from linux next git repository.

The u-boot image can be loaded from flash or network to the entry point
address in the memory and boot from there to the console.

Signed-off-by: William Zhang <william.zhang@broadcom.com>
Reviewed-by: Philippe Reynes <philippe.reynes@softathome.com>
2 years agoarm: bcmbca: replace ARCH_BCM68360 symbols in Kconfig with BCM6856
William Zhang [Mon, 22 Aug 2022 18:31:43 +0000 (11:31 -0700)]
arm: bcmbca: replace ARCH_BCM68360 symbols in Kconfig with BCM6856

As CONFIG_ARCH_BCM68360 is replaced with CONFIG_BCM6856, update the
driver Kconfig to use the new config symbol.

Signed-off-by: William Zhang <william.zhang@broadcom.com>
Reviewed-by: Philippe Reynes <philippe.reynes@softathome.com>
2 years agoarm: bcmbca: remove bcm68360 support under CONFIG_ARCH_BCM68360
William Zhang [Mon, 22 Aug 2022 18:31:42 +0000 (11:31 -0700)]
arm: bcmbca: remove bcm68360 support under CONFIG_ARCH_BCM68360

BCM68360 is a variant within the BCM6856 chip family. Now that BCM6856
is supported under CONFIG_ARCH_BCMBCA and CONFIG_BCM6856, remove the
original ARCH_BCM68360 support and migrate its configuration and dts
settings. This includes:
  - Remove the bcm968360bg board folder. It is replaced by the generic
    bcmbca board folder.
  - Merge the 68360.dtsi setting to the new 6856.dtsi file. Update board
    dts with the new compatible string.
  - Merge broadcom_bcm968360bg.h setting to the new bcm96856.h file.
  - Remove bcm968360bg_ram_defconfig as a basic config version of
    bcm96856_defconfig is now added.

Signed-off-by: William Zhang <william.zhang@broadcom.com>
Reviewed-by: Philippe Reynes <philippe.reynes@softathome.com>
2 years agoarm: bcmbca: add bcm6856 SoC support under CONFIG_ARCH_BCMBCA
William Zhang [Mon, 22 Aug 2022 18:31:41 +0000 (11:31 -0700)]
arm: bcmbca: add bcm6856 SoC support under CONFIG_ARCH_BCMBCA

BCM6856 is a Broadcom B53 based PON Gateway SoC. It is part of the BCA
(Broadband Carrier Access origin) chipset family. Like other Broadband
SoC, this patch adds it under CONFIG_BCM6856 chip config and
CONFIG_ARCH_BCMBCA platform config.

This initial support includes a bare-bone implementation and dts with
CPU subsystem, memory and Broadcom uart. This SoC is supported in the
linux-next git repository so the dts and dtsi files are copied from
linux.

The u-boot image can be loaded from flash or network to the entry point
address in the memory and boot from there to the console.

Signed-off-by: William Zhang <william.zhang@broadcom.com>
Reviewed-by: Philippe Reynes <philippe.reynes@softathome.com>
2 years agoarm: bcmbca: make reset_cpu function weak
William Zhang [Mon, 22 Aug 2022 18:19:48 +0000 (11:19 -0700)]
arm: bcmbca: make reset_cpu function weak

BCM63158 carries the CONFIG_SYSRESET from the original configuration. It
provide reset_cpu function already so need to define weak version of the
dummy reset_cpu for other BCMBCA SoCs to avoid linking error.

Signed-off-by: William Zhang <william.zhang@broadcom.com>
Reviewed-by: Philippe Reynes <philippe.reynes@softathome.com>
2 years agoMAINTAINERS: Add BCM63158 maintainer to BCMBCA entry
William Zhang [Mon, 22 Aug 2022 18:19:47 +0000 (11:19 -0700)]
MAINTAINERS: Add BCM63158 maintainer to BCMBCA entry

Since ARCH_BCM63158 SoC support is merged into ARCH_BCMBCA, add BCM63158
maintainer Philippe to bcmbca maintainer list.

Signed-off-by: William Zhang <william.zhang@broadcom.com>
Reviewed-by: Philippe Reynes <philippe.reynes@softathome.com>
2 years agoarm: bcmbca: replace ARCH_BCM63158 symbols in Kconfig with BCM63158
William Zhang [Mon, 22 Aug 2022 18:19:46 +0000 (11:19 -0700)]
arm: bcmbca: replace ARCH_BCM63158 symbols in Kconfig with BCM63158

As CONFIG_ARCH_BCM63158 is replaced with CONFIG_BCM63158, update the
Kconfig to use the new config symbol.

Signed-off-by: William Zhang <william.zhang@broadcom.com>
Reviewed-by: Philippe Reynes <philippe.reynes@softathome.com>
2 years agoarm: bcmbca: remove bcm63158 support under CONFIG_ARCH_BCM63158
William Zhang [Mon, 22 Aug 2022 18:19:45 +0000 (11:19 -0700)]
arm: bcmbca: remove bcm63158 support under CONFIG_ARCH_BCM63158

Now that BCM63158 is supported under CONFIG_ARCH_BCMBCA and
CONFIG_BCM63158, remove the original ARCH_BCM63158 support and migrate
configuration settings.

Signed-off-by: William Zhang <william.zhang@broadcom.com>
Reviewed-by: Philippe Reynes <philippe.reynes@softathome.com>
2 years agoarm: bcmbca: add bcm63158 SoC support under CONFIG_ARCH_BCMBCA
William Zhang [Mon, 22 Aug 2022 18:19:44 +0000 (11:19 -0700)]
arm: bcmbca: add bcm63158 SoC support under CONFIG_ARCH_BCMBCA

BCM63158 is a Broadcom B53 based DSL Gateway SoC. It is part of the
BCA (Broadband Carrier Access origin) chipset family. Like other
Broadband SoC, this patch adds it under CONFIG_BCM63158 chip
config and CONFIG_ARCH_BCMBCA platform config.

This initial support includes a bare-bone implementation and dts with
CPU subsystem, memory and ARM PL011 uart. This SoC is supported in the
linux-next git repository so the dts and dtsi files are copied from
linux.

The u-boot image can be loaded from flash or network to the entry
point address in the memory and boot from there to the console.

Signed-off-by: William Zhang <william.zhang@broadcom.com>
Reviewed-by: Philippe Reynes <philippe.reynes@softathome.com>
2 years agoarm: bcmbca: add bcm4908 SoC support
William Zhang [Sat, 6 Aug 2022 01:34:03 +0000 (18:34 -0700)]
arm: bcmbca: add bcm4908 SoC support

BCM4908 is a Broadcom B53 based WLAN AP router SoC. It is part of the
BCA (Broadband Carrier Access origin) chipset family so it's added
under ARCH_BCMBCA platform. This initial support includes a bare-bone
implementation and dts with CPU subsystem, memory and Broadcom uart.

This SoC is supported in the linux git repository so the dts and dtsi
files are stripped down version of linux copies with mininum blocks
needed by u-boot.

The u-boot image can be loaded from flash or network to the entry point
address in the memory and boot from there to the console.

Signed-off-by: William Zhang <william.zhang@broadcom.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
2 years agoarm: bcmbca: add bcm6813 SoC support
William Zhang [Sat, 6 Aug 2022 01:34:02 +0000 (18:34 -0700)]
arm: bcmbca: add bcm6813 SoC support

BCM6813 is a Broadcom B53 based PON and WLAN AP router SoC. It is part
of the BCA (Broadband Carrier Access origin) chipset family so it's
added under ARCH_BCMBCA platform. This initial support includes a
bare-bone implementation and dts with CPU subsystem, memory and ARM
PL011 uart.

This SoC is supported in the linux-next git repository so the dts and
dtsi files are copied from linux.

The u-boot image can be loaded from flash or network to the entry point
address in the memory and boot from there to the console.

Signed-off-by: William Zhang <william.zhang@broadcom.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
2 years agoarm: bcmbca: add bcm4912 SoC support
William Zhang [Sat, 6 Aug 2022 01:34:01 +0000 (18:34 -0700)]
arm: bcmbca: add bcm4912 SoC support

BCM4912 is a Broadcom B53 based WLAN AP router SoC. It is part of the
BCA (Broadband Carrier Access origin) chipset family so it's added under
ARCH_BCMBCA platform. This initial support includes a bare-bone
implementation and dts with CPU subsystem, memory and ARM PL011 uart.

This SoC is supported in the linux-next git repository so the dts
and dtsi files are copied from linux.

The u-boot image can be loaded from flash or network to the entry
point address in the memory and boot from there to the console.

Signed-off-by: William Zhang <william.zhang@broadcom.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
2 years agoarm: bcmbca: add bcm63146 SoC support
William Zhang [Sat, 6 Aug 2022 01:34:00 +0000 (18:34 -0700)]
arm: bcmbca: add bcm63146 SoC support

BCM63146 is a Broadcom B53 based DSL Broadband SoC. It is part of the
BCA (Broadband Carrier Access origin) chipset family so it's added under
ARCH_BCMBCA platform. This initial support includes a bare-bone
implementation and dts with CPU subsystem, memory and ARM PL011 uart.

This SoC is supported in the linux-next git repository so the dts and
dtsi files are copied from linux.

The u-boot image can be loaded from flash or network to the entry point
address in the memory and boot from there to the console.

Signed-off-by: William Zhang <william.zhang@broadcom.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
2 years agoarm: bcmbca: add bcm63138 SoC support
William Zhang [Sat, 6 Aug 2022 01:25:13 +0000 (18:25 -0700)]
arm: bcmbca: add bcm63138 SoC support

BCM63138 is an ARM A9 based DSL Broadband SoC. It is part of the BCA
(Broadband Carrier Access origin) chipset family so it's added under
ARCH_BCMBCA platform. This initial support includes a bare-bone
implementation and dts with CPU subsystem, memory, ARM A9 global timer
and Broadcom uart.

This SoC is supported in the linux-next git repository so the dts and
dtsi files are stripped down version of linux copies with mininum blocks
needed by u-boot.

The u-boot image can be loaded from flash or network to the entry point
address in the memory and boot from there to the console.

This patch applies on top of the my previous patch [1].

[1] https://lists.denx.de/pipermail/u-boot/2022-August/490570.html

Signed-off-by: William Zhang <william.zhang@broadcom.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Reviewed-by: Philippe Reynes <philippe.reynes@softathome.com>
2 years agoarm: bcmbca: add bcm63148 SoC support
William Zhang [Mon, 1 Aug 2022 18:39:25 +0000 (11:39 -0700)]
arm: bcmbca: add bcm63148 SoC support

BCM63148 is an Broadcom B15 based DSL Broadband SoC. It is part of the
BCA (Broadband Carrier Access origin) chipset family so it's added under
ARCH_BCMBCA platform. This initial support includes a bare-bone
implementation and dts with CPU subsystem, memory and Broadcom uart.

This SoC is supported in the linux-next git repository so the dts and
dtsi files are copied from linux.

The u-boot image can be loaded from flash or network to the entry point
address in the memory and boot from there.

Signed-off-by: William Zhang <william.zhang@broadcom.com>
2 years agoarm: bcmbca: add bcm6756 SoC support
William Zhang [Mon, 1 Aug 2022 18:39:24 +0000 (11:39 -0700)]
arm: bcmbca: add bcm6756 SoC support

BCM6756 is an ARM A7 based WLAN Gateway and Access Point Broadband SoC.
It is part of the BCA(Broadband Carrier Access origin) chipset family so
it's added under ARCH_BCMBCA platform. This initial support includes a
bare-bone implementation and dts with CPU subsystem, memory and ARM
PL011 uart.

This SoC is supported in the linux-next git repository so the dts and
dtsi files are copied from linux.

The u-boot image can be loaded from flash or network to the entry
point address in the memory and boot from there.

Signed-off-by: William Zhang <william.zhang@broadcom.com>
2 years agoarm: bcmbca: add bcm6878 SoC support
William Zhang [Mon, 1 Aug 2022 18:39:23 +0000 (11:39 -0700)]
arm: bcmbca: add bcm6878 SoC support

BCM6878 is an ARM A7 based PON Broadband SoC. It is part of the BCA
(Broadband Carrier Access origin) chipset family so it's added under
ARCH_BCMBCA platform. This initial support includes a bare-bone
implementation and dts with CPU subsystem, memory and ARM PL011
uart.

This SoC is supported in the linux-next git repository so the dts and
dtsi files are copied from linux with minor fix-up that needs to be
upstreamed to linux as well.

The u-boot image can be loaded from flash or network to the entry point
address in the memory and boot from there.

Signed-off-by: William Zhang <william.zhang@broadcom.com>
2 years agoarm: bcmbca: add bcm6846 SoC support
William Zhang [Mon, 1 Aug 2022 18:39:22 +0000 (11:39 -0700)]
arm: bcmbca: add bcm6846 SoC support

BCM6846 is an ARM A7 based PON Broadband SoC. It is part of the BCA
(Broadband Carrier Access origin) chipset family so it's added under
ARCH_BCMBCA platform. This initial support includes a bare-bone
implementation and dts with CPU subsystem, memory and Broadcom uart.

This SoC is supported in the linux-next git repository so the dts and
dtsi files are copied from linux with minor fix-up that needs to be
upstreamed to linux as well.

The u-boot image can be loaded from flash or network to the entry point
address in the memory and boot from there.

Signed-off-by: William Zhang <william.zhang@broadcom.com>
2 years agoarm: bcmbca: add bcm63178 SoC support
William Zhang [Mon, 1 Aug 2022 18:39:21 +0000 (11:39 -0700)]
arm: bcmbca: add bcm63178 SoC support

BCM63178 is an ARM A7 based DSL Broadband SoC. It is part of the BCA
(Broadband Carrier Access origin) chipset family so it's added under
ARCH_BCMBCA platform. This initial support includes a bare-bone
implementation and dts with CPU subsystem, memory and ARM PL011 uart.

This SoC is supported in the linux-next git repository so the dts and
dtsi files are copied from linux with minor fix-up that needs to be
upstreamed to linux as well.

The u-boot image can be loaded from flash or network to the entry
point address in the memory and boot from there.

Signed-off-by: William Zhang <william.zhang@broadcom.com>
2 years agobuildman: Handle the MAINTAINERS 'N' tag
Simon Glass [Tue, 11 Oct 2022 14:15:37 +0000 (08:15 -0600)]
buildman: Handle the MAINTAINERS 'N' tag

This is needed for some soon-to-be-applied patches. Scan the configs/
directory to see if any of the files match.

Signed-off-by: Simon Glass <sjg@chromium.org>
Tested-by: Tom Rini <trini@konsulko.com>
Suggested-by: Tom Rini <trini@konsulko.com>
2 years agoMerge tag 'video-20221030' of https://source.denx.de/u-boot/custodians/u-boot-video
Tom Rini [Sun, 30 Oct 2022 21:16:35 +0000 (17:16 -0400)]
Merge tag 'video-20221030' of https://source.denx.de/u-boot/custodians/u-boot-video

 - fix [hv]sync active vs back porch in dw_mipi_dsi
 - simplefb rotation support
 - support splash as raw image from MMC
 - enhancements to Truetype console (multiple fonts and sizes)
 - drop old LCD support

2 years agovideo: Rename CONFIG_DM_VIDEO to CONFIG_VIDEO
Simon Glass [Tue, 18 Oct 2022 13:46:31 +0000 (07:46 -0600)]
video: Rename CONFIG_DM_VIDEO to CONFIG_VIDEO

Now that all the old code is gone, rename this option. Driver model
migration is now complete.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agopci: Drop test for DM_VIDEO
Simon Glass [Tue, 18 Oct 2022 13:58:16 +0000 (07:58 -0600)]
pci: Drop test for DM_VIDEO

This is not needed anymore, since there is no other option.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agovideo: Make all video options depend on DM_VIDEO
Simon Glass [Tue, 18 Oct 2022 13:35:17 +0000 (07:35 -0600)]
video: Make all video options depend on DM_VIDEO

Rather than sprinkly this file with 'depends' statements, make all options
depend on DM_VIDEO.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agovideo: Drop SPLASHIMAGE_CALLBACK
Simon Glass [Tue, 18 Oct 2022 13:30:25 +0000 (07:30 -0600)]
video: Drop SPLASHIMAGE_CALLBACK

This is not used anymore. Drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agovideo: Drop common LCD implementation
Simon Glass [Sun, 16 Oct 2022 21:25:26 +0000 (15:25 -0600)]
video: Drop common LCD implementation

This code is no-longer used. Drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agovideo: Drop use of the lcd header file
Simon Glass [Tue, 18 Oct 2022 13:10:26 +0000 (07:10 -0600)]
video: Drop use of the lcd header file

This file is being removed so drop remaining references to it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agovideo: Drop CONFIG_LCD
Simon Glass [Tue, 18 Oct 2022 13:19:42 +0000 (07:19 -0600)]
video: Drop CONFIG_LCD

This option is not used anymore. Drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agovideo: Drop CONFIG_VIDEO
Simon Glass [Tue, 18 Oct 2022 13:24:15 +0000 (07:24 -0600)]
video: Drop CONFIG_VIDEO

This option is not used anymore. Drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agovideo: Drop CONFIG_VIDEO
Simon Glass [Tue, 18 Oct 2022 13:20:56 +0000 (07:20 -0600)]
video: Drop CONFIG_VIDEO

This option is not used anymore. Drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agovideo: Drop LCD_BPP
Simon Glass [Tue, 18 Oct 2022 12:55:49 +0000 (06:55 -0600)]
video: Drop LCD_BPP

This is used by the old LCD implementation which is to be removed.
Drop it and LCD_OUTPUT_BPP also.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agofdt: Drop support for LCD fixup in simplefb
Simon Glass [Tue, 18 Oct 2022 12:54:26 +0000 (06:54 -0600)]
fdt: Drop support for LCD fixup in simplefb

This relies on the old LCD implementation which is to be removed. Drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agovideo: Drop remaining references to CONFIG_LCD
Simon Glass [Sun, 16 Oct 2022 21:59:22 +0000 (15:59 -0600)]
video: Drop remaining references to CONFIG_LCD

These rely on the old LCD implementation which is to be removed. Drop it
all.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agoefi: Drop old LCD code
Simon Glass [Sun, 16 Oct 2022 21:58:34 +0000 (15:58 -0600)]
efi: Drop old LCD code

This relies on the old LCD implementation which is to be removed. Drop the
existing #ifdef and convert it to C code.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agovideo: cmd: Drop old LCD code
Simon Glass [Sun, 16 Oct 2022 21:57:41 +0000 (15:57 -0600)]
video: cmd: Drop old LCD code

This relies on the old LCD implementation which is to be removed. Drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agoBuR: ronetix: siemens: Drop old LCD code
Simon Glass [Sun, 16 Oct 2022 21:56:56 +0000 (15:56 -0600)]
BuR: ronetix: siemens: Drop old LCD code

This relies on the old LCD implementation which is to be removed. Drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agotegra: Drop old LCD code
Simon Glass [Tue, 18 Oct 2022 12:10:04 +0000 (06:10 -0600)]
tegra: Drop old LCD code

This relies on the old LCD implementation which is to be removed. Drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agocompulab: Drop old LCD code
Simon Glass [Sun, 16 Oct 2022 21:56:14 +0000 (15:56 -0600)]
compulab: Drop old LCD code

This relies on the old LCD implementation which is to be removed. Drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agonexell: Drop old LCD code
Simon Glass [Sun, 16 Oct 2022 21:55:16 +0000 (15:55 -0600)]
nexell: Drop old LCD code

This relies on the old LCD implementation which is to be removed. Drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agovideo: samsung: Drop old LCD code
Simon Glass [Sun, 16 Oct 2022 21:54:35 +0000 (15:54 -0600)]
video: samsung: Drop old LCD code

This relies on the old LCD implementation which is to be removed. Drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agovideo: Drop atmel LCD code
Simon Glass [Sun, 16 Oct 2022 21:53:35 +0000 (15:53 -0600)]
video: Drop atmel LCD code

This has not been migrated to DM_VIDEO since 2019. Drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agotreewide: Stop enabling CONFIG_LCD
Simon Glass [Sun, 16 Oct 2022 21:52:26 +0000 (15:52 -0600)]
treewide: Stop enabling CONFIG_LCD

This option is not used anymore since the LCD implementation is being
removed. Stop enabling it on various boards.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agovideo: atmel: Drop CONFIG_LCD_IN_PSRAM
Simon Glass [Sun, 16 Oct 2022 21:49:00 +0000 (15:49 -0600)]
video: atmel: Drop CONFIG_LCD_IN_PSRAM

This relies on the old LCD implementation which is to be removed. Drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agovideo: Drop ld9040 driver
Simon Glass [Sun, 16 Oct 2022 21:46:15 +0000 (15:46 -0600)]
video: Drop ld9040 driver

This is not used anymore. Drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agovideo: atmel: Drop pre-DM parts of video driver
Simon Glass [Sun, 16 Oct 2022 21:38:01 +0000 (15:38 -0600)]
video: atmel: Drop pre-DM parts of video driver

This relies on the old LCD implementation which is to be removed. Drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agovideo: Drop CONFIG_AM335X_LCD
Simon Glass [Sun, 16 Oct 2022 21:31:47 +0000 (15:31 -0600)]
video: Drop CONFIG_AM335X_LCD

This relies on the old LCD implementation which is to be removed. Drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agoBuR: Drop old LCD code
Simon Glass [Tue, 18 Oct 2022 12:13:24 +0000 (06:13 -0600)]
BuR: Drop old LCD code

This relies on the old LCD implementation which is to be removed. Drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agovideo: Drop VCXK video controller
Simon Glass [Sun, 16 Oct 2022 21:26:52 +0000 (15:26 -0600)]
video: Drop VCXK video controller

This relies on the old LCD implementation which is to be removed. Drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agoDrop CONFIG_LCD_LOGO
Simon Glass [Sun, 16 Oct 2022 21:19:04 +0000 (15:19 -0600)]
Drop CONFIG_LCD_LOGO

This relies on the old LCD implementation which is to be removed. Drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agoapi: Drop LCD implementation
Simon Glass [Sun, 16 Oct 2022 21:16:43 +0000 (15:16 -0600)]
api: Drop LCD implementation

This relies on the old LCD implementation which is to be removed. Drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agovideo: Move bmp_display() prototype to video.h
Simon Glass [Tue, 18 Oct 2022 13:41:14 +0000 (07:41 -0600)]
video: Move bmp_display() prototype to video.h

The lcd.h header is about to be deleted, so move this prototype.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agovideo: Drop CONFIG_LCD_INFO
Simon Glass [Sun, 16 Oct 2022 21:11:32 +0000 (15:11 -0600)]
video: Drop CONFIG_LCD_INFO

This option is not used anymore since the LCD implementation is being
removed. Drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agovideo: Drop CONFIG_LCD_INFO_BELOW_LOGO
Simon Glass [Sun, 16 Oct 2022 21:08:59 +0000 (15:08 -0600)]
video: Drop CONFIG_LCD_INFO_BELOW_LOGO

This option is not used anymore since the LCD implementation is being
removed. Drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agovideo: Drop CONFIG_LCD_MENU
Simon Glass [Sun, 16 Oct 2022 21:06:52 +0000 (15:06 -0600)]
video: Drop CONFIG_LCD_MENU

This relies on the old LCD implementation which is to be removed. Drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agovideo: Drop CONFIG_LCD_ALIGNMENT
Simon Glass [Sun, 16 Oct 2022 21:02:58 +0000 (15:02 -0600)]
video: Drop CONFIG_LCD_ALIGNMENT

This option is not needed now that the LCD implementation is being
removed. Drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agovideo: lcd: Drop console rotation
Simon Glass [Sun, 16 Oct 2022 21:00:37 +0000 (15:00 -0600)]
video: lcd: Drop console rotation

This option is not used in U-Boot anymore. Drop it option and the
associated implementation.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agoConvert CONFIG_VIDEO_LOGO_MAX_SIZE to Kconfig
Simon Glass [Tue, 18 Oct 2022 12:49:18 +0000 (06:49 -0600)]
Convert CONFIG_VIDEO_LOGO_MAX_SIZE to Kconfig

This converts the following to Kconfig:
   CONFIG_VIDEO_LOGO_MAX_SIZE

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agovideo: Rename CONFIG_SYS_VIDEO_LOGO_MAX_SIZE
Simon Glass [Tue, 18 Oct 2022 12:46:08 +0000 (06:46 -0600)]
video: Rename CONFIG_SYS_VIDEO_LOGO_MAX_SIZE

This option should not have the SYS_ in it. Drop it so it fits in with the
other video options.

Also simplify the alignment code in gunzip_bmp(), since malloc() always
returns a 32-bit-aligned pointer.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agoConvert CONFIG_HIDE_LOGO_VERSION to Kconfig
Simon Glass [Tue, 18 Oct 2022 12:30:56 +0000 (06:30 -0600)]
Convert CONFIG_HIDE_LOGO_VERSION to Kconfig

This converts the following to Kconfig:
   CONFIG_HIDE_LOGO_VERSION

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agovideo: Split SPLASH_SCREEN_ALIGN from bmp command
Simon Glass [Tue, 18 Oct 2022 12:24:16 +0000 (06:24 -0600)]
video: Split SPLASH_SCREEN_ALIGN from bmp command

The bmp command already has a way to centre the image. Using this CONFIG
option to also centre it makes it impossible to control where images are
placed on the screen. Drop the extra check.

Simplify the Kconfig file we are here.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agosplash: get devpart from environment variable
Julien Masson [Mon, 17 Oct 2022 08:33:22 +0000 (10:33 +0200)]
splash: get devpart from environment variable

By default several types of splash locations are supported and the
user can select one of them through environment var (splashsource).

However the devpart is still hardcoded and we cannot change it from
the environment.

This patch add the support of "splashdevpart" which allow the user to
set the devpart though this environment variable.

Example: image located in splashscreen partition (MMC as raw)
```
splashsource=mmc_raw
splashdevpart=0#splashscreen
```

Signed-off-by: Julien Masson <jmasson@baylibre.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2 years agosplash: support raw image from MMC
Julien Masson [Mon, 17 Oct 2022 08:33:21 +0000 (10:33 +0200)]
splash: support raw image from MMC

The user has now the choice to specify the splash location in the MMC
as a raw storage.

Signed-off-by: Julien Masson <jmasson@baylibre.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2 years agovideo: Add a way to get the default font height
Simon Glass [Thu, 6 Oct 2022 14:36:18 +0000 (08:36 -0600)]
video: Add a way to get the default font height

This is not as simple as it seems. Add a function to provide it so that
the upcoming menu feature can space lines out correctly.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agovideo: Add a function to get the dimensions of a BMP image
Simon Glass [Thu, 6 Oct 2022 14:36:17 +0000 (08:36 -0600)]
video: Add a function to get the dimensions of a BMP image

This is useful for some other users, so break this out into a function.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agovideo: Add commands to list and change fonts
Simon Glass [Thu, 6 Oct 2022 14:36:16 +0000 (08:36 -0600)]
video: Add commands to list and change fonts

Add a new 'font' command which allows the fonts to be listed as well as
selecting a different font and size.

Allow the test to run on sandbox, where multiple font/size combinations
are supported, as well as sandbox_flattree, where they are not.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agovideo: Enable the cls command by default
Simon Glass [Thu, 6 Oct 2022 14:36:15 +0000 (08:36 -0600)]
video: Enable the cls command by default

This is enabled for LCD but not for VIDEO. Enable it since it is useful
to be able to clear the screen and adds very little code.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agovideo: Add a way to change the font name and size
Simon Glass [Thu, 6 Oct 2022 14:36:14 +0000 (08:36 -0600)]
video: Add a way to change the font name and size

It is useful to be able to support multiple fonts. Add a function to
handle this as well as one to list the available fonts.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agovideo: Add a function to select the truetype metrics
Simon Glass [Thu, 6 Oct 2022 14:36:13 +0000 (08:36 -0600)]
video: Add a function to select the truetype metrics

Move this code into a function so we can call it later when we want to
change the font.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agovideo: Record the truetype font name
Simon Glass [Thu, 6 Oct 2022 14:36:12 +0000 (08:36 -0600)]
video: Record the truetype font name

Add this to the metrics so we can later adjust the font size without
changing the font itself.

Signed-off-by: Simon Glass <sjg@chromium.org>