]> git.dujemihanovic.xyz Git - u-boot.git/log
u-boot.git
14 months agotools: mkeficapsule: Add support to print capsule headers
Sughosh Ganu [Tue, 10 Oct 2023 09:10:54 +0000 (14:40 +0530)]
tools: mkeficapsule: Add support to print capsule headers

Add support to dump the contents of capsule headers. This is useful as
a debug feature for checking the contents of the capsule headers, and
can also be used in capsule verification.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
14 months agotreewide: use dev_read_addr_*_ptr() where appropriate
Matthias Schiffer [Wed, 27 Sep 2023 13:33:34 +0000 (15:33 +0200)]
treewide: use dev_read_addr_*_ptr() where appropriate

A follow-up to commit 842fb5de424e
("drivers: use devfdt_get_addr_size_index_ptr when cast to pointer")
and commit 320a1938b6f7
("drivers: use devfdt_get_addr_index_ptr when cast to pointer").

In addition to using the *_ptr variants of these functions where the
address is cast to a pointer, this also changes devfdt_get_addr_*() to
dev_read_addr_*() in a few places. Some variable and field types are
changed from fdt_addr_t or phys_addr_t to void* where the cast was
happening later.

This patch fixes a number of compile warnings when building a 32bit
U-Boot with CONFIG_PHYS_64BIT=y. In some places, it also fixes error
handling where the return value of dev_read_addr() etc. was checked for
NULL instead of FDT_ADDR_T_NONE.

Signed-off-by: Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
14 months agopinctrl: single: fix compile warnings with PHYS_64BIT on 32bit
Matthias Schiffer [Wed, 27 Sep 2023 13:33:33 +0000 (15:33 +0200)]
pinctrl: single: fix compile warnings with PHYS_64BIT on 32bit

pinctrl-single uses fdt_addr_t and phys_addr_t inconsistently, but both
are wrong to be passed to readb() etc., which expect a pointer or
pointer-sized integer. Change the driver to use
dev_read_addr_size_index_ptr(), so we consistently deal with void*
(except for the sandbox case and single_get_pin_muxing()).

Signed-off-by: Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Add missing mapmem.h header:
Signed-off-by: Simon Glass <sjg@chromium.org>
14 months agocore: introduce dev_read_addr_name[_size]_ptr() functions
Matthias Schiffer [Wed, 27 Sep 2023 13:33:32 +0000 (15:33 +0200)]
core: introduce dev_read_addr_name[_size]_ptr() functions

Same as dev_read_addr_name[_size](), but returns a pointer, cast
through map_sysmem().

Signed-off-by: Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
14 months agocore: return FDT_ADDR_T_NONE from devfdt_get_addr_[size_]name() on errors
Matthias Schiffer [Wed, 27 Sep 2023 13:33:31 +0000 (15:33 +0200)]
core: return FDT_ADDR_T_NONE from devfdt_get_addr_[size_]name() on errors

Checking for the error cast to fdt_addr_t is rather awkward - IS_ERR()
can be used, but it's not really made to be used on fdt_addr_t, which
may not even be the same size as a native pointer.

Most places in U-Boot only check for FDT_ADDR_T_NONE; let's adjust the
error return to match the expectation.

Signed-off-by: Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
14 months agocore: fix doc comments of dev_read_addr*() and related functions
Matthias Schiffer [Wed, 27 Sep 2023 13:33:30 +0000 (15:33 +0200)]
core: fix doc comments of dev_read_addr*() and related functions

- The dev_read_addr_name*() family of functions has no "index" argument,
  doc comments should refer to "name"
- Specify the error return for several devfdt_get_addr*() functions

Signed-off-by: Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
14 months agobinman: bintool: Change make target arg type from string to list
Lukas Funke [Wed, 4 Oct 2023 08:56:35 +0000 (10:56 +0200)]
binman: bintool: Change make target arg type from string to list

The argument type of `build_from_git` was changed from string to list
in d71e7116997f14097735f04cc7847f0a68dbc485.

This commit adapts the argument type of all bintools using this
function.

Signed-off-by: Lukas Funke <lukas.funke@weidmueller.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
14 months agosandbox: fix spl_board_init
Heinrich Schuchardt [Tue, 3 Oct 2023 00:59:46 +0000 (02:59 +0200)]
sandbox: fix spl_board_init

sandbox_spl_defconfig with CONFIG_SPL_UNIT_TEST=n fails to build.

    in function `spl_board_init':
    arch/sandbox/cpu/spl.c:134:(.text.spl_board_init+0x4a):
    undefined reference to `ut_run_list'

Add the missing configuration check.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
14 months agobootstd: Scan all bootdevs in a boot_targets entry
Simon Glass [Sat, 23 Sep 2023 20:50:15 +0000 (14:50 -0600)]
bootstd: Scan all bootdevs in a boot_targets entry

When the boot_targets environment variable is used with the distro-boot
scripts, each device is included individually. For example, if there
are three mmc devices, then we will have something like:

   boot_targets="mmc0 mmc1 mmc2"

In contrast, standard boot supports specifying just the uclass, i.e.:

   boot_targets="mmc"

The intention is that this should scan all MMC devices, but in fact it
currently only scans the first.

Update the logic to handle this case, without required BOOTSTD_FULL to
be enabled.

I believe at least three people reported this, but I found two.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reported-by: Date Huang <tjjh89017@hotmail.com>
Reported-by: Vincent Stehlé <vincent.stehle@arm.com>
14 months agoMerge tag 'efi-2024-01-rc1' of https://source.denx.de/u-boot/custodians/u-boot-efi
Tom Rini [Fri, 13 Oct 2023 15:08:10 +0000 (11:08 -0400)]
Merge tag 'efi-2024-01-rc1' of https://source.denx.de/u-boot/custodians/u-boot-efi

Pull request efi-2024-01-rc1

Documentation:

* Bump urllib3 version
* Migrate Renesas board docs to rst
* Link an introduction video

UEFI

* Use same GUID as EDK II for auto-created boot options
* Clean up BitBlt test

14 months agoMerge tag 'xilinx-for-v2024.01-rc1-v3' of https://source.denx.de/u-boot/custodians...
Tom Rini [Fri, 13 Oct 2023 12:45:55 +0000 (08:45 -0400)]
Merge tag 'xilinx-for-v2024.01-rc1-v3' of https://source.denx.de/u-boot/custodians/u-boot-microblaze

Xilinx changes for v2024.01-rc1 v3

clk:
- remove additional compatible strings for Versal NET

net:
- zynq_gem: Fix clock calculation for MDC for higher frequencies

pinctrl:
- core: Extend pinmux status buffere size
- zynqmp driver: Show also tristate configuration

test:
- add test case for pxe get

Xilinx:
- describe SelectMAP boot mode

Zynq:
- Fix nand description in DT

ZynqMP:
- DTS sync patches with kernel and also W=1 related fixes
- Add support for KD240, zcu670, e-a2197 with x-prc cards, SC revB/C with i2c
  description for other SC based boards
- k24 psu_init cleanup

14 months agoMerge tag 'u-boot-nand-20231013' of https://source.denx.de/u-boot/custodians/u-boot...
Tom Rini [Fri, 13 Oct 2023 12:44:22 +0000 (08:44 -0400)]
Merge tag 'u-boot-nand-20231013' of https://source.denx.de/u-boot/custodians/u-boot-nand-flash

Pull request for u-boot-nand-20231013

The first 5 patches are from Mikhail Kshevetskiy, aligning the mtd spinand
core with kernel version 5.15.43, fixing a bug on Winbond, and adding
support for Winbond W25NO2KV.

The other 2 patches are from Patrick Delaunay and they fix a bug and mark
bad the MTD block on erase error.

14 months agodfu: mtd: mark bad the MTD block on erase error
Patrick Delaunay [Mon, 5 Jun 2023 07:52:08 +0000 (09:52 +0200)]
dfu: mtd: mark bad the MTD block on erase error

In the MTD DFU backend, it is needed to mark the NAND block bad when the
erase failed with the -EIO error, as it is done in UBI and JFFS2 code.

This operation is not done in the MTD framework, but the bad block
tag (in BBM or in BBT) is required to avoid to write data on this block
in the next DFU_OP_WRITE loop in mtd_block_op(): the code skip the bad
blocks, tested by mtd_block_isbad().

Without this patch, when the NAND block become bad on DFU write operation
- low probability on new NAND - the DFU write operation will always failed
because the failing block is never marked bad.

This patch also adds a test to avoid to request an erase operation on a
block already marked bad; this test is not performed in MTD framework
in mtd_erase().

Reviewed-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
14 months agodfu: mtd: fix the trace when limit is reached
Patrick Delaunay [Mon, 5 Jun 2023 07:52:07 +0000 (09:52 +0200)]
dfu: mtd: fix the trace when limit is reached

The offset variable = 'off' used in the error trace when limit is reach
on erase operation is incorect as 'erase_op.addr' is used in the loop.
This patch corrects the copy paste issue between the erase loop and
the write loop.

This patch also adds the 'remaining' information to allow to debug of
limit issues.

Fixes: 6015af28ee6d ("dfu: add backend for MTD device")
Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
14 months agomtd: spinand: winbond: add Winbond W25N02KV flash support
Mikhail Kshevetskiy [Tue, 10 Jan 2023 11:58:42 +0000 (12:58 +0100)]
mtd: spinand: winbond: add Winbond W25N02KV flash support

Add support of Winbond W25N02KV flash

Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
Reviewed-by: Frieder Schrempf <frieder.schrempf@kontron.de>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/20221010105110.446674-2-mikhail.kshevetskiy@iopsys.eu
Signed-off-by: Frieder Schrempf <frieder.schrempf@kontron.de> (U-Boot port)
Link: https://lore.kernel.org/all/20230110115843.391630-5-frieder@fris.de
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
14 months agomtd: spinand: winbond: fix flash identification
Mikhail Kshevetskiy [Tue, 10 Jan 2023 11:58:41 +0000 (12:58 +0100)]
mtd: spinand: winbond: fix flash identification

Winbond uses 3 bytes to identify flash: vendor_id, dev_id_0, dev_id_1,
but current driver uses only first 2 bytes of it for devices
identification. As result Winbond W25N02KV flash (id_bytes: EF, AA, 22)
is identified as W25N01GV (id_bytes: EF, AA, 21).

Fix this by adding missed identification bytes.

Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
Reviewed-by: Frieder Schrempf <frieder.schrempf@kontron.de>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/20221010105110.446674-1-mikhail.kshevetskiy@iopsys.eu
Signed-off-by: Frieder Schrempf <frieder.schrempf@kontron.de> (U-Boot port)
Link: https://lore.kernel.org/all/20230110115843.391630-4-frieder@fris.de
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
14 months agomtd/spinand: sync supported devices with linux-5.15.43
Mikhail Kshevetskiy [Tue, 10 Jan 2023 11:58:40 +0000 (12:58 +0100)]
mtd/spinand: sync supported devices with linux-5.15.43

This adds more supported spinand devices from the Linux kernel
implementation.

This does not include the latest kernel implementation as this would
require a substantial amount of extra work due to the missing
ECC engine abstraction layer in U-Boot.

Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
Signed-off-by: Frieder Schrempf <frieder.schrempf@kontron.de> (commit message)
Link: https://lore.kernel.org/all/20230110115843.391630-3-frieder@fris.de
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
14 months agomtd/spinand: sync core spinand code with linux-5.10.118
Mikhail Kshevetskiy [Tue, 10 Jan 2023 11:58:39 +0000 (12:58 +0100)]
mtd/spinand: sync core spinand code with linux-5.10.118

This brings us closer to the current Linux kernel implementation of
the spinand core and makes backporting features and fixes easier.

This does not include the latest kernel implementation as this would
require a substantial amount of extra work due to the missing
ECC engine abstraction layer in U-Boot.

Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
Signed-off-by: Frieder Schrempf <frieder.schrempf@kontron.de> (add commit message)
Link: https://lore.kernel.org/all/20230110115843.391630-2-frieder@fris.de
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
14 months agomtd/spinand: rework detect procedure for different READ_ID operation
Mikhail Kshevetskiy [Tue, 10 Jan 2023 11:58:38 +0000 (12:58 +0100)]
mtd/spinand: rework detect procedure for different READ_ID operation

Currently there are 3 different variants of read_id implementation:
1. opcode only. Found in GD5FxGQ4xF.
2. opcode + 1 addr byte. Found in GD5GxGQ4xA/E
3. opcode + 1 dummy byte. Found in other currently supported chips.

Original implementation was for variant 1 and let detect function
of chips with variant 2 and 3 to ignore the first byte. This isn't
robust:

1. For chips of variant 2, if SPI master doesn't keep MOSI low
during read, chip will get a random id offset, and the entire id
buffer will shift by that offset, causing detect failure.

2. For chips of variant 1, if it happens to get a devid that equals
to manufacture id of variant 2 or 3 chips, it'll get incorrectly
detected.

This patch reworks detect procedure to address problems above. New
logic do detection for all variants separatedly, in 1-2-3 order.
Since all current detect methods do exactly the same id matching
procedure, unify them into core.c and remove detect method from
manufacture_ops.

This is a rework of Chuanhong Guo <gch981213@gmail.com> patch
submitted to linux kernel

Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
Signed-off-by: Frieder Schrempf <frieder.schrempf@kontron.de>
Link: https://lore.kernel.org/all/20230110115843.391630-1-frieder@fris.de
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
14 months agoMerge branch '2023-10-12-assorted-TI-platform-updates'
Tom Rini [Thu, 12 Oct 2023 21:02:51 +0000 (17:02 -0400)]
Merge branch '2023-10-12-assorted-TI-platform-updates'

- A few more updates for various TI platforms

14 months agoarm: mach-k3: j721s2_init: Enable memory with CONFIG_K3_J721E_DDRSS
Dominik Haller [Fri, 11 Aug 2023 10:04:44 +0000 (12:04 +0200)]
arm: mach-k3: j721s2_init: Enable memory with CONFIG_K3_J721E_DDRSS

Make that condition more generic by checking if the memory controller
driver is enabled instead of using the EVM's config.

Signed-off-by: Dominik Haller <d.haller@phytec.de>
14 months agoboard: ti: j721s2: MAINTAINERS: Update the MAINTAINERS File.
Manorit Chawdhry [Fri, 6 Oct 2023 04:46:01 +0000 (10:16 +0530)]
board: ti: j721s2: MAINTAINERS: Update the MAINTAINERS File.

Update the MAINTAINERS file and propose a new MAINTAINER for j721s2 due
to the previous MAINTAINER not being associated with TI.

Reviewed-by: Nishanth Menon <nm@ti.com>
Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
14 months agodocs: board: ti: Add j721s2_evm documentation
Manorit Chawdhry [Fri, 6 Oct 2023 04:46:00 +0000 (10:16 +0530)]
docs: board: ti: Add j721s2_evm documentation

Add the documentation for J721S2-EVM and SK-AM68

TRM for J721S2/AM68: https://www.ti.com/lit/pdf/spruj28
Product Page for J721S2: https://www.ti.com/tool/J721S2XSOMXEVM
Product Page for AM68: https://www.ti.com/tool/SK-AM68

Reviewed-by: Neha Malcom Francis <n-francis@ti.com>
Reviewed-by: Nishanth Menon <nm@ti.com>
Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
14 months agoarm: dts: k3-am68: Sync from Linux tag v6.6-rc1
Manorit Chawdhry [Fri, 6 Oct 2023 04:45:59 +0000 (10:15 +0530)]
arm: dts: k3-am68: Sync from Linux tag v6.6-rc1

The following commit syncs the device tree from Linux tag
v6.6-rc1 to U-boot and fixes the following to be compatible with
the future syncs -

- Include k3-am68-sk-base-board.dts file

    Remove the duplicated pinmuxes from r5 and -u-boot.dtsi files and
    include k3-am68-sk-base-board.dts for Linux fixes to propagate
    to U-boot.

- Fixing the mcu_timer0

    Remove timer0 and use the mcu_timer0 defined in mcu-wakeup.dtsi

- Fixing secure proxy nodes

    Linux DT now have these nodes defined so remove them and rename to
    use the Linux DT ones.

- Remove cpsw node

    The compatible is now fixed and the node is not required in
    -u-boot specifically

- Remove aliases and chosen node

    Use these from Linux and don't override when not required.

- Remove /delete-property/ from sdhci nodes

    We have the necessary clock and dev data so remove these.

- Remove dummy_clocks and fs_loader0

    These weren't being used anywhere so remove it.

- Remove mcu_ringacc override

All these have been put in a single commit to not break the
bisectability.

Reviewed-by: Neha Malcom Francis <n-francis@ti.com>
Reviewed-by: Nishanth Menon <nm@ti.com>
Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
14 months agoarm: dts: k3-j721s2: Sync from Linux tag v6.6-rc1
Manorit Chawdhry [Fri, 6 Oct 2023 04:45:58 +0000 (10:15 +0530)]
arm: dts: k3-j721s2: Sync from Linux tag v6.6-rc1

The following commit syncs the device tree from Linux tag
v6.6-rc1 to U-boot and fixes the following to be compatible with
the future syncs -

- Include k3-j721s2-common-proc-board.dts file

    Remove the duplicated pinmuxes from r5 and -u-boot.dtsi files and
    include k3-j721s2-common-proc-board.dts for Linux fixes to propagate
    to U-boot.

- Fixing the mcu_timer0

    Remove timer0 and use the mcu_timer0 defined in mcu-wakeup.dtsi

- Fixing secure proxy nodes

    Linux DT now have these nodes defined so remove them and rename to
    use the Linux DT ones.

- Remove cpsw node

    The compatible is now fixed and the node is not required in
    -u-boot specifically

- Remove aliases and chosen node

    Use these from Linux and don't override when not required.

- Remove /delete-property/ from sdhci nodes

    We have the necessary clock and dev data so remove these.

- Remove dummy_clocks and fs_loader0

    These weren't being used anywhere so remove it.

- Remove mcu_ringacc override

All these have been put in a single commit to not break the
bisectability.

Reviewed-by: Neha Malcom Francis <n-francis@ti.com>
Reviewed-by: Nishanth Menon <nm@ti.com>
Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
14 months agoarm: mach-k3: j721s2: Add mcu_timer0 id to the dev list
Manorit Chawdhry [Fri, 6 Oct 2023 04:45:57 +0000 (10:15 +0530)]
arm: mach-k3: j721s2: Add mcu_timer0 id to the dev list

mcu_timer0 is used by u-boot as the tick-timer. Add it to the soc
devices lsit so it an be enabled via the k3 power controller.

Reviewed-by: Neha Malcom Francis <n-francis@ti.com>
Reviewed-by: Nishanth Menon <nm@ti.com>
Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
14 months agoRevert "arm: dts: k3-j7*: ddr: Update to 0.10 version of DDR config tool"
Manorit Chawdhry [Fri, 6 Oct 2023 04:45:56 +0000 (10:15 +0530)]
Revert "arm: dts: k3-j7*: ddr: Update to 0.10 version of DDR config tool"

The update causes instability in am68-sk boards so revert the patch in
the meantime till fix is available.

This reverts commit f1edf4bb6aa19732574ac23ca90cb9a0ba395ec1.

Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
Reviewed-by: Nishanth Menon <nm@ti.com>
14 months agoconfigs: j721s2_evm_r5_defconfig: Increase malloc pool size in DRAM
Udit Kumar [Fri, 6 Oct 2023 04:45:55 +0000 (10:15 +0530)]
configs: j721s2_evm_r5_defconfig: Increase malloc pool size in DRAM

The malloc capacity in DRAM at R5 SPL is set to 1MB which isn't
sufficient to load the new tispl.bin to
enable loading of tispl.bin the size is increased by 256KB to 1.25MB.

Cc: Nikhil M Jain <n-jain1@ti.com>
Signed-off-by: Udit Kumar <u-kumar1@ti.com>
Reviewed-by: Nishanth Menon <nm@ti.com>
Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
Reviewed-by: Nikhil M Jain <n-jain1@ti.com>
14 months agoarm: dts: j7200: dts sync with Linux 6.6-rc1
Reid Tonking [Thu, 5 Oct 2023 18:12:58 +0000 (13:12 -0500)]
arm: dts: j7200: dts sync with Linux 6.6-rc1

Sync j7200 dts with Linux 6.6-rc1

- k3-j7200-r5-common-proc-board.dts now inherits from
  k3-j7200-common-proc-board.dts instead of k3-j7200-som-p0.dtsi. This
  allows us to trim down the r5 file considerably by using existing
  properties

- remove pimux nodes from r5 file

- remove duplicate nodes & node properties from r5/u-boot files

- mcu_timer0 now used instead of timer1

  mcu_timer0 device id added to dev-data.c file in order to work

- remove cpsw node

  This node is no longer required since the compatible is now fixed

- remove dummy_clock_19_2_mhz

  This node wasn't being used anyhere, so it was removed

- remove dummy_clock_200mhz

  main_sdhci0 & main_sdhci1 no longer need dummy clock for eMMC/SD

- fix secure proxy node

  mcu_secproxy changed to used secure_prxy_mcu which is already
  defined in k3-j7200-mcu-wakeup.dtsi

- removed &mcu_ringacc property override since they're present in
  v6.6-rc1

Signed-off-by: Reid Tonking <reidt@ti.com>
Reviewed-by: Nishanth Menon <nm@ti.com>
14 months agoarm: mach-k3: j7200: Add mcu_timer0 id to the dev list
Reid Tonking [Thu, 5 Oct 2023 18:12:57 +0000 (13:12 -0500)]
arm: mach-k3: j7200: Add mcu_timer0 id to the dev list

mcu_timer0 is now used as the tick timer in u-boot, so this adds the
timer to the soc device list so it can be enabled via the k3 power
controller.

Reviewed-by: Nishanth Menon <nm@ti.com>
Signed-off-by: Reid Tonking <reidt@ti.com>
14 months agoboard: ti: am64x: Switch to standard boot flow
Roger Quadros [Thu, 5 Oct 2023 13:06:42 +0000 (16:06 +0300)]
board: ti: am64x: Switch to standard boot flow

Switch to using bootstd. Note with this change, we will stop using
distro_bootcmd and instead depend entirely on bootflow method of
starting the system up.

Drop header files that are no longer needed in am64x_evm.h.
k3_dfu.h is available via k3_dfu.env in am64x.env.

Drop unused macro CFG_SYS_SDRAM_BASE1.

Signed-off-by: Roger Quadros <rogerq@kernel.org>
Reviewed-by: Nishanth Menon <nm@ti.com>
14 months agoboard: ti: am62x: am62x.env: Fix boot_targets
Roger Quadros [Thu, 5 Oct 2023 13:06:41 +0000 (16:06 +0300)]
board: ti: am62x: am62x.env: Fix boot_targets

ti_mmc is not a valid boot_target for standard boot flow so
remove it. Prefer mmc1 (sd-card) over mmc0 (emmc).

Signed-off-by: Roger Quadros <rogerq@kernel.org>
Reviewed-by: Nishanth Menon <nm@ti.com>
14 months agoclk: ti: clk-sci: Notify AVS driver based upon clock rate
Udit Kumar [Thu, 21 Sep 2023 17:03:43 +0000 (22:33 +0530)]
clk: ti: clk-sci: Notify AVS driver based upon clock rate

AVS driver needs to be notified before or after clock change,
depending upon new rate is greater or less than current clock rate.

Fixes: 1e0aa873bc7cd ("clk: clk-ti-sci: Notify AVS driver upon setting clock rate")
Cc: Keerthy <j-keerthy@ti.com>
Signed-off-by: Udit Kumar <u-kumar1@ti.com>
14 months agoclk: ti: clk-k3: Notify AVS driver upon setting clock rate
Udit Kumar [Thu, 21 Sep 2023 17:00:38 +0000 (22:30 +0530)]
clk: ti: clk-k3: Notify AVS driver upon setting clock rate

AVS is enabled at R5 SPL stage, on few platforms like J721E
and J7200 clk-k3 is used instead if clk-sci driver.

Add support in clk-k3 driver as well to notify AVS driver
on setting clock rate so that voltage is changed accordingly.

Cc: Keerthy <j-keerthy@ti.com>
Signed-off-by: Udit Kumar <u-kumar1@ti.com>
14 months agoMerge branch '2023-10-12-expo-add-support-for-edting-lines-of-text'
Tom Rini [Thu, 12 Oct 2023 12:15:31 +0000 (08:15 -0400)]
Merge branch '2023-10-12-expo-add-support-for-edting-lines-of-text'

To quote the author:
So far expo only supports menus. These are quite flexible for various
kinds of settings, but cannot deal with free-form input, such as a
serial number or a machine name.

This series adds support for a textline object, which is a single line
of text. It has a maximum length and its value is stored within the expo
structure.

U-Boot already has a command-line editor which provides most of the
features needed by expo. But the code runs in its own loop and only
returns when the line is finished. This is not suitable for expo, which
must handle a keypress at a time, returning to its caller after each
one.

In order to use the CLI code, some significant refactoring is included
here. This mostly involves moving the internal loop of the CLI to a
separate function and recording its state in a struct, just as was done
for single keypresses some time back. A minor addition is support for
Ctrl-W to delete a word, since strangely this is currently only present
in the simple version.

The video-console system provides most of the features needed by
testline, but a few things are missing. This series provides:

- primitive cursor support so the user can see where he is typing
- saving and restoring of the text-entry context, so that expo can allow
  the user to continue where he left off, including deleting previously
  entered characters correctly (for Truetype)
- obtaining the nominal width of a string of n characters, so that a
  suitable width can be chosen for the textline object

Note that no support is provided for clearing the cursor. This was
addressed in a previous series[1] which could perhaps be rebased. For
this implementation, the cursor is therefore not enabled for the normal
command line, only for expo.

Reading and writing textline objects is supported for FDT and
environment, but not for CMOS RAM, since it would likely use too much
RAM to store a string.

In terms of code size, the overall size increase is 180 bytes for
Thumb02 boards, 160 of whcih is the addition of Ctrl-W to delete a word.

[1] https://patchwork.ozlabs.org/project/uboot/list/?series=280178&state=*

14 months agoefi_loader: use well-known guid for auto-created boot option
Masahisa Kojima [Thu, 12 Oct 2023 05:31:59 +0000 (14:31 +0900)]
efi_loader: use well-known guid for auto-created boot option

The boot option automatically created by efibootmgr is identified
by the special guid appended in the optional data of boot option.
The same mechanism is implemented in the EDK II reference
implementation, it uses the different guid from the one currently
U-Boot uses.
The guid indicating auto-created boot option is not defined in the
UEFI specification, but some userspace tools such as 'efivar' package
are aware of the guid used in EDK II as auto-created boot option.

So let's use the same guid as EDK II reference implementation.

Signed-off-by: Masahisa Kojima <masahisa.kojima@linaro.org>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
14 months agoefi_selftest: BitBlt test
Heinrich Schuchardt [Sun, 24 Sep 2023 20:30:59 +0000 (22:30 +0200)]
efi_selftest: BitBlt test

The BitBlt test leaves the serial console output in disarray.

* Call ClearScreen() where needed.
* Test CheckEvent() for EFI_SIMPLE_TEXT_INPUT_PROTOCOL.WaitForKey
  via adding navigation keys
* Correct timer comment

For testing on the sandbox:

    CONFIG_CMD_BOOTEFI_SELFTEST=y
    CONFIG_CONSOLE_TRUETYPE=n
    $ ./u-boot -T -l
    => setenv efi_selftest block image transfer
    => bootefi selftest

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
14 months agodoc: Migrate Renesas board docs to rst
Paul Barker [Mon, 9 Oct 2023 11:11:36 +0000 (12:11 +0100)]
doc: Migrate Renesas board docs to rst

Some of the information in README.rmobile is obsolete, references
defconfigs which no longer exist in u-boot or has broken links. The
information which is still relevant is moved into the reStructuredText
documentation under `doc/board/renesas`, and `doc/README.rmobile` is
dropped.

The list of boards in `doc/board/renesas` is converted into a table so
it's easier to see which defconfig to use. The list is expanded based on
reviewing the current u-boot code and the contents of the eLinux wiki
[1] [2].

[1]: https://elinux.org/R-Car
[2]: https://elinux.org/RZ-G

Signed-off-by: Paul Barker <paul.barker.ct@bp.renesas.com>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
14 months agodoc: Add a short intro video
Simon Glass [Sun, 8 Oct 2023 21:35:56 +0000 (15:35 -0600)]
doc: Add a short intro video

This video covers the basics in a short time, so add a link to it.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Paul Barker <paul.barker.ct@bp.renesas.com>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
14 months agocyclic: doc: Update documentation for CONFIG_CYCLIC_MAX_CPU_TIME_US
Weizhao Ouyang [Sat, 7 Oct 2023 10:52:36 +0000 (10:52 +0000)]
cyclic: doc: Update documentation for CONFIG_CYCLIC_MAX_CPU_TIME_US

Cyclic now just print a warning once instead of disabling the cyclic
function when the cyclic function upon exceeding CPU time usage.

Fixes: ddc8d36a7455 ("cyclic: Don't disable cylic function upon exceeding CPU time")
Signed-off-by: Weizhao Ouyang <o451686892@gmail.com>
Rephrase the paragraph.
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
14 months agosphinx: Bump urllib3 version
Tom Rini [Thu, 5 Oct 2023 16:27:38 +0000 (12:27 -0400)]
sphinx: Bump urllib3 version

While not a direct issue for us, urllib3 before 1.26.17 is vulnerable to
CVE-2023-43804 to bump our version up.

Reported-by: GitHub dependabot
Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Use urllib3 2.0.6
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
14 months agoexpo: Update documentation to include textline
Simon Glass [Mon, 2 Oct 2023 01:13:40 +0000 (19:13 -0600)]
expo: Update documentation to include textline

Update the expo documentation to include mention of this new object
type.

Signed-off-by: Simon Glass <sjg@chromium.org>
14 months agoexpo: Update tests to include textline
Simon Glass [Mon, 2 Oct 2023 01:13:39 +0000 (19:13 -0600)]
expo: Update tests to include textline

Provide test coverage for the new expo object type, including building
and reading/writing settings.

Signed-off-by: Simon Glass <sjg@chromium.org>
14 months agoexpo: Support building an expo with a textline
Simon Glass [Mon, 2 Oct 2023 01:13:38 +0000 (19:13 -0600)]
expo: Support building an expo with a textline

Add textline to the list of objects which tthe expo builder can build.
This allows them to be provided in the description.

Signed-off-by: Simon Glass <sjg@chromium.org>
14 months agoexpo: Plumb in textline to cedit
Simon Glass [Mon, 2 Oct 2023 01:13:37 +0000 (19:13 -0600)]
expo: Plumb in textline to cedit

Support textlines in the configuration editor.

Signed-off-by: Simon Glass <sjg@chromium.org>
14 months agoexpo: Support handling any key in cedit
Simon Glass [Mon, 2 Oct 2023 01:13:36 +0000 (19:13 -0600)]
expo: Support handling any key in cedit

At present cedit only supports menu keys. For textline objects we need
to insert normal ASCII characters.

We also need to handle backspace, which is ASCII 9.

In fact, expo does not make use of all the menu keys, so partition
them accordingly and update the logic to support normal ASCII
characters, too.

Signed-off-by: Simon Glass <sjg@chromium.org>
14 months agovideo: Mark truetype_measure() static
Simon Glass [Mon, 2 Oct 2023 01:13:35 +0000 (19:13 -0600)]
video: Mark truetype_measure() static

This function is not used outside this file, so mark it static.

Signed-off-by: Simon Glass <sjg@chromium.org>
14 months agoexpo: Plumb in textlines to a scene
Simon Glass [Mon, 2 Oct 2023 01:13:34 +0000 (19:13 -0600)]
expo: Plumb in textlines to a scene

Provide an implementation for textlines in the scene code, so that they
are displayed correctly. Provide a way to have a border around the
textline, with the internal part being the same colour as the
background. This looks more natural.

Signed-off-by: Simon Glass <sjg@chromium.org>
14 months agoexpo: Support opening a textline
Simon Glass [Mon, 2 Oct 2023 01:13:33 +0000 (19:13 -0600)]
expo: Support opening a textline

This object needs special handling when it is opened, to set up the CLI
and the vidconsole context. Add special support for this.

Signed-off-by: Simon Glass <sjg@chromium.org>
14 months agoexpo: Add basic support for textline objects
Simon Glass [Mon, 2 Oct 2023 01:13:32 +0000 (19:13 -0600)]
expo: Add basic support for textline objects

A textline is a line of text which can be edited by the user. It has a
maximum length (in chracters) but otherwise there are no restrictions.

Signed-off-by: Simon Glass <sjg@chromium.org>
14 months agoexpo: Add some scene fields needed for text entry
Simon Glass [Mon, 2 Oct 2023 01:13:31 +0000 (19:13 -0600)]
expo: Add some scene fields needed for text entry

Add the CLI state, a buffer to hold the old value of the text being
edited and a place to save vidconsole entry context. These will be use
by the textline object.

Set an upper limit on the maximum number of characters in a textline
object supported by expo, at least for now.

Signed-off-by: Simon Glass <sjg@chromium.org>
14 months agoexpo: Allow rendering the background of any object
Simon Glass [Mon, 2 Oct 2023 01:13:30 +0000 (19:13 -0600)]
expo: Allow rendering the background of any object

So far only menus have a background. When other object types are
rendered, they may have a background too. Make this code more generic
so it will be usable by new object types.

Signed-off-by: Simon Glass <sjg@chromium.org>
14 months agoexpo: Make calculation of an object bounding box generic
Simon Glass [Mon, 2 Oct 2023 01:13:29 +0000 (19:13 -0600)]
expo: Make calculation of an object bounding box generic

We want to support this for any object, not just menus. Move the code
around to allow this.

Signed-off-by: Simon Glass <sjg@chromium.org>
14 months agoexpo: Add a function to write a property to a devicetree
Simon Glass [Mon, 2 Oct 2023 01:13:28 +0000 (19:13 -0600)]
expo: Add a function to write a property to a devicetree

When the devicetree is too small for the property being written, we need
to expand the devicetree and retry the write.

Put this logic into a function so it can be reused.

Signed-off-by: Simon Glass <sjg@chromium.org>
14 months agoexpo: Allow highlighting other scene-object types
Simon Glass [Mon, 2 Oct 2023 01:13:27 +0000 (19:13 -0600)]
expo: Allow highlighting other scene-object types

So far only menus can be highlighted. With the coming addition of
text lines we need to be able to highlight other objects. Add a function
to determine whether an object can be highlighted.

Signed-off-by: Simon Glass <sjg@chromium.org>
14 months agoexpo: Correct the logic for duplicate-ID detection
Simon Glass [Mon, 2 Oct 2023 01:13:26 +0000 (19:13 -0600)]
expo: Correct the logic for duplicate-ID detection

Update scene_txt_str() to account for the possibility that the passed-in
str_id may be 0

Signed-off-by: Simon Glass <sjg@chromium.org>
14 months agoexpo: Correct some swallowed errors in scene
Simon Glass [Mon, 2 Oct 2023 01:13:25 +0000 (19:13 -0600)]
expo: Correct some swallowed errors in scene

Return the reported error, rather than assuming it is -ENOMEM

Signed-off-by: Simon Glass <sjg@chromium.org>
14 months agoexpo: Use switch statements more for object types
Simon Glass [Mon, 2 Oct 2023 01:13:24 +0000 (19:13 -0600)]
expo: Use switch statements more for object types

In a lot of cases menus are the only objects which are have their own
behaviour in the cedit, e.g. to move between menus. With expo expanding
to support text, this is no-longer true.

Use a switch() statement so that we can simply insert a new 'case' for
the new object types.

Signed-off-by: Simon Glass <sjg@chromium.org>
14 months agoexpo: Fix up comments for get_cur_menuitem_text() et al
Simon Glass [Mon, 2 Oct 2023 01:13:23 +0000 (19:13 -0600)]
expo: Fix up comments for get_cur_menuitem_text() et al

This internal function could use a comment. Add one.

Also tidy up a few other comments.

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

14 months agoexpo: Add better error reporting
Simon Glass [Mon, 2 Oct 2023 01:13:22 +0000 (19:13 -0600)]
expo: Add better error reporting

When building an expo fails, show some information about which node
caused the problem. Use -ENOENT consistently when the ID is missing.
This makes it easier for the user to debug things.

Signed-off-by: Simon Glass <sjg@chromium.org>
14 months agovideo: Support showing a cursor
Simon Glass [Mon, 2 Oct 2023 01:13:21 +0000 (19:13 -0600)]
video: Support showing a cursor

Add rudimentary support for displaying a cursor on a vidconsole. This
helps the user to see where text is being entered.

The implementation so far is very simple: the cursor is just a vertical
bar of fixed width and cannot be erased. To erase the cursor, the text
must be redrawn over it.

This is good enough for expo but will need enhancement to be useful for
the command-line console. For example, it could save and restore the
area behind the cursor.

For now, enable this only for expo, to reduce code size.

Signed-off-by: Simon Glass <sjg@chromium.org>
14 months agovideo: Export vidconsole_entry_start()
Simon Glass [Mon, 2 Oct 2023 01:13:20 +0000 (19:13 -0600)]
video: Export vidconsole_entry_start()

At present this is called only when a newline is detected, since this
indicates the start of a line of text being entered.

Export this function so it can be used by expo, which may start a new
text line itself, without first writing out a newline.

Signed-off-by: Simon Glass <sjg@chromium.org>
14 months agovideo: Allow saving and restoring text-entry state
Simon Glass [Mon, 2 Oct 2023 01:13:19 +0000 (19:13 -0600)]
video: Allow saving and restoring text-entry state

Text entry operates within a context which includes quite a bit of
information. For example, with Truetype fonts, each character in the
text string has a position stored, so that it is possible to
backspace to that character. This information is built up as strings
are drawn on the display.

For the command line, there is just a single context. It is created
when command-line entry starts and it is destroyed (or at least not
needed anymore) when the user presses <enter> to enter the command.

By contrast, expo needs to be able to switch in and out of a text-entry
context, since it is also displaying other objects in the scene.

Add a way to save and restore the entry context for a vidconsole. This
is only needed for the truetype vidconsole, so add a method for that,
storing the information in an abuf struct.

Signed-off-by: Simon Glass <sjg@chromium.org>
14 months agovideo: Allow obtaining the nominal size of a string size
Simon Glass [Mon, 2 Oct 2023 01:13:18 +0000 (19:13 -0600)]
video: Allow obtaining the nominal size of a string size

At present there is a method for measuring text, but if the actual text
string is not known, it cannot be used.

For text editor we want to set the size of the entry box to cover the
expected text size. Add the concept of a 'norminal' size with a method
to calculate that for the vidconsole.

If the method is not implemented, fall back to using the font size,
which is sufficient for fixed-width fonts.

Signed-off-by: Simon Glass <sjg@chromium.org>
14 months agocli: Add a function to set up a new cread
Simon Glass [Mon, 2 Oct 2023 01:13:17 +0000 (19:13 -0600)]
cli: Add a function to set up a new cread

Create a init function so that it is easy to use command-line reading.

Signed-off-by: Simon Glass <sjg@chromium.org>
14 months agocli: Allow command completion to be disabled
Simon Glass [Mon, 2 Oct 2023 01:13:16 +0000 (19:13 -0600)]
cli: Allow command completion to be disabled

When inputting text outside the command line we don't want to use tab
for command completion. Add an option to control this.

Signed-off-by: Simon Glass <sjg@chromium.org>
14 months agocli: Allow history to be disabled
Simon Glass [Mon, 2 Oct 2023 01:13:15 +0000 (19:13 -0600)]
cli: Allow history to be disabled

When inputting text outside the command line we don't want history to be
accessible. Add an option to control this.

Signed-off-by: Simon Glass <sjg@chromium.org>
14 months agocli: Terminate the string in cread_line_process_ch()
Simon Glass [Mon, 2 Oct 2023 01:13:14 +0000 (19:13 -0600)]
cli: Terminate the string in cread_line_process_ch()

Rather than relying on the caller, terminate the string inside this
function. Do this each time we return, whether input is finished or
not. It is not needed when the input is aborted, since the string will
be discarded in that case.

Signed-off-by: Simon Glass <sjg@chromium.org>
14 months agocli: Create a function to process characters
Simon Glass [Mon, 2 Oct 2023 01:13:13 +0000 (19:13 -0600)]
cli: Create a function to process characters

Move most of the inner loop from cread_line() into a new function. This
will allow using it from other code.

This involves adding a few more members to the state struct.

Signed-off-by: Simon Glass <sjg@chromium.org>
14 months agocli: Unindent some code in cread_line()
Simon Glass [Mon, 2 Oct 2023 01:13:12 +0000 (19:13 -0600)]
cli: Unindent some code in cread_line()

Reduce the indentation level of this code so it is easier to review the
next patch, which moves it into a function.

Signed-off-by: Simon Glass <sjg@chromium.org>
14 months agocli: Convert cread_line() to use a struct for the main vars
Simon Glass [Mon, 2 Oct 2023 01:13:11 +0000 (19:13 -0600)]
cli: Convert cread_line() to use a struct for the main vars

We want to reuse the editing code elsewhere. As a first step, move the
common variables into a struct. This will allow us to eventually put the
contents of the inner loop in a function, so it can be called from
elsewhere.

Signed-off-by: Simon Glass <sjg@chromium.org>
14 months agocli: Use unsigned int instead of unsigned long
Simon Glass [Mon, 2 Oct 2023 01:13:10 +0000 (19:13 -0600)]
cli: Use unsigned int instead of unsigned long

The index values are not very large so it makes no sense to use a long
integer. Change these to uint instead.

Signed-off-by: Simon Glass <sjg@chromium.org>
14 months agocli: Implement delete-word in cread_line()
Simon Glass [Mon, 2 Oct 2023 01:13:09 +0000 (19:13 -0600)]
cli: Implement delete-word in cread_line()

The Ctrl-W option is implemented in the cread_line_simple() but not in
the full version. This seems odd, so add an implementation.

Signed-off-by: Simon Glass <sjg@chromium.org>
14 months agocli: Drop #ifdefs for CONFIG_AUTO_COMPLETE in cli_readline
Simon Glass [Mon, 2 Oct 2023 01:13:08 +0000 (19:13 -0600)]
cli: Drop #ifdefs for CONFIG_AUTO_COMPLETE in cli_readline

Use a static inline and adjust the logic to avoid the need for #ifdefs in
cli_readline_into_buffer()

Signed-off-by: Simon Glass <sjg@chromium.org>
14 months agocli: Drop some #ifdefs in cli_readline
Simon Glass [Mon, 2 Oct 2023 01:13:07 +0000 (19:13 -0600)]
cli: Drop some #ifdefs in cli_readline

Add a few static inlines to avoid the need for #ifdefs in
cli_readline_into_buffer()

Signed-off-by: Simon Glass <sjg@chromium.org>
14 months agocli: Add a command to show cmdline history
Simon Glass [Mon, 2 Oct 2023 01:13:06 +0000 (19:13 -0600)]
cli: Add a command to show cmdline history

There is a function for this but it is never used. Showing the history is
a useful feature, so add a new 'history' command.

Signed-off-by: Simon Glass <sjg@chromium.org>
14 months agocli: Move simple readline into a function
Simon Glass [Mon, 2 Oct 2023 01:13:05 +0000 (19:13 -0600)]
cli: Move simple readline into a function

Move this code into its own function since it is a separate
implementation from the full version.

Signed-off-by: Simon Glass <sjg@chromium.org>
14 months agoRevert "mkimage: update man page and -h output"
Tom Rini [Wed, 11 Oct 2023 19:32:39 +0000 (15:32 -0400)]
Revert "mkimage: update man page and -h output"

This is part of a longer series, which isn't quite ready.  Revert this
for now at least.

This reverts commit 4cb6c8e5f0de3c4c5f9eba51c6a1610934a8cf77.

Signed-off-by: Tom Rini <trini@konsulko.com>
14 months agoMerge branch '2023-10-11-port-gen_compile_commands_py'
Tom Rini [Wed, 11 Oct 2023 17:25:01 +0000 (13:25 -0400)]
Merge branch '2023-10-11-port-gen_compile_commands_py'

To quote the author:
I'm submitting a patch series that ports the gen_compile_commands.py
script from the Linux kernel's sources to U-Boot. This script,
originally located in scripts/clang-tools/gen_compile_commands.py,
enables the generation of compile_commands.json file for improved code
navigation and analysis. The series consists of the initial script
import, the necessary modifications for U-Boot compatibility, and
finally some documentation.

14 months agoscripts/gen_compile_commands: fix usage message
Joao Marcos Costa [Sun, 1 Oct 2023 10:00:36 +0000 (12:00 +0200)]
scripts/gen_compile_commands: fix usage message

Replace mentions to 'kernel' by 'U-Boot' to avoid confusion.

Signed-off-by: Joao Marcos Costa <jmcosta944@gmail.com>
Tested-by: Joao Paulo Goncalves <joao.goncalves@toradex.com>
14 months agodoc: add ide_integration.rst to doc/develop
Joao Marcos Costa [Sun, 1 Oct 2023 10:00:35 +0000 (12:00 +0200)]
doc: add ide_integration.rst to doc/develop

Add 'Integration with IDEs' chapter.

For now, this chapter is mostly a reference to the documentation of
gen_compile_commands, in doc/build, but it can be futurely used as
a guide for other IDE-friendly features.

Signed-off-by: Joao Marcos Costa <jmcosta944@gmail.com>
Tested-by: Joao Paulo Goncalves <joao.goncalves@toradex.com>
14 months agodoc: add documentation for gen_compile_commands.py
Joao Marcos Costa [Sun, 1 Oct 2023 10:00:34 +0000 (12:00 +0200)]
doc: add documentation for gen_compile_commands.py

This documentation briefly explains what is a compilation database,
and how to use the script to generate one.

This is not a portage, as there was no original documentation in the
Linux sources.

Acknowledge the documentation in the script's header and in doc/build
index.

Signed-off-by: Joao Marcos Costa <jmcosta944@gmail.com>
Tested-by: Joao Paulo Goncalves <joao.goncalves@toradex.com>
14 months ago.gitignore: add compile_commands.json
Joao Marcos Costa [Sun, 1 Oct 2023 10:00:33 +0000 (12:00 +0200)]
.gitignore: add compile_commands.json

Add Clang's compilation database file (i.e. compile_commands.json) to
.gitignore, at the root of the repository.

Signed-off-by: Joao Marcos Costa <jmcosta944@gmail.com>
Tested-by: Joao Paulo Goncalves <joao.goncalves@toradex.com>
14 months agoscripts/gen_compile_commands.py: add acknowledgments
Joao Marcos Costa [Sun, 1 Oct 2023 10:00:32 +0000 (12:00 +0200)]
scripts/gen_compile_commands.py: add acknowledgments

Add acknowledgments for porting and modifying the script. Of course, the
license, author, and copyright notice remain the same as in the original
script.

Signed-off-by: Joao Marcos Costa <jmcosta944@gmail.com>
Tested-by: Joao Paulo Goncalves <joao.goncalves@toradex.com>
14 months agoscripts/gen_compile_commands.py: fix docstring
Joao Marcos Costa [Sun, 1 Oct 2023 10:00:31 +0000 (12:00 +0200)]
scripts/gen_compile_commands.py: fix docstring

The referred tool is now in U-Boot. Replace "the Linux kernel" by
"U-Boot" to make the docstring coherent.

Signed-off-by: Joao Marcos Costa <jmcosta944@gmail.com>
Tested-by: Joao Paulo Goncalves <joao.goncalves@toradex.com>
14 months agoscripts/gen_compile_commands.py: adapt _LINE_PATTERN
Joao Marcos Costa [Sun, 1 Oct 2023 10:00:30 +0000 (12:00 +0200)]
scripts/gen_compile_commands.py: adapt _LINE_PATTERN

For U-Boot's context, the regular expression defined by _LINE_PATTERN
should be adapted. Replace 'savedcmd' by 'cmd'.

Signed-off-by: Joao Marcos Costa <jmcosta944@gmail.com>
Tested-by: Joao Paulo Goncalves <joao.goncalves@toradex.com>
14 months agoscripts: Port Linux's gen_compile_commands.py to U-Boot
Joao Marcos Costa [Sun, 1 Oct 2023 10:00:29 +0000 (12:00 +0200)]
scripts: Port Linux's gen_compile_commands.py to U-Boot

This script generates a database of compiler flags, namely
compile_commands.json. It is quite useful for text editors that use
clangd LSP (e.g. Vim, Neovim).

It was ported from Linux's sources:
- tag: v6.4
- revision 6995e2de6891c724bfeb2db33d7b87775f913ad1

Modifications for U-Boot compatibility will be added in a follow-up
commit.

Signed-off-by: Joao Marcos Costa <jmcosta944@gmail.com>
Tested-by: Joao Paulo Goncalves <joao.goncalves@toradex.com>
14 months agoconfigs: Resync with savedefconfig
Tom Rini [Wed, 11 Oct 2023 16:01:17 +0000 (12:01 -0400)]
configs: Resync with savedefconfig

Rsync all defconfig files using moveconfig.py

Signed-off-by: Tom Rini <trini@konsulko.com>
14 months agoMerge branch '2023-10-11-assorted-fixes-and-updates'
Tom Rini [Wed, 11 Oct 2023 15:53:58 +0000 (11:53 -0400)]
Merge branch '2023-10-11-assorted-fixes-and-updates'

- Assorted TI K3 updates, use ".dtso" for device tree overlays to match
  general usage, mkimage fixes/improvements, assorted platform
  updates/fixes, other assorted driver/platform fixes.

14 months agoconfigs: Make TI_SECURE_DEVICE default for K3
Andrew Davis [Thu, 3 Aug 2023 14:54:41 +0000 (09:54 -0500)]
configs: Make TI_SECURE_DEVICE default for K3

All K3 boards now are secure by default, instead of setting this in each
defconfig, make it implied by the ARCH config.

The only exception is IOT2050, which I do not believe will have any
problems with being a TI_SECURE_DEVICE, but for now turn it off to keep
its config the same.

Signed-off-by: Andrew Davis <afd@ti.com>
Tested-by: Tom Rini <trini@konsulko.com>
14 months agoconfigs: am65x: Merge the HS and non-HS defconfigs
Andrew Davis [Thu, 3 Aug 2023 14:54:40 +0000 (09:54 -0500)]
configs: am65x: Merge the HS and non-HS defconfigs

K3 devices have runtime type board detection. Make the default defconfig
include the secure configuration. Then remove the HS specific config.

Non-HS devices will continue to boot due to runtime device type detection.

Signed-off-by: Andrew Davis <afd@ti.com>
Tested-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Manorit Chawdhry <m-chawdhry@ti.com>
14 months agoARM: psci: move GIC address override to Kconfig
Andre Przywara [Sun, 1 Oct 2023 22:52:12 +0000 (23:52 +0100)]
ARM: psci: move GIC address override to Kconfig

As the code to switch an ARM core from secure to the non-secure state
needs to know the base address of the Generic Interrupt Controller
(GIC), we read an Arm Cortex defined system register that is supposed to
hold that base address. However there are SoCs out there that get this
wrong, and this CBAR register either reads as 0 or points to the wrong
address. To accommodate those systems, so far we use a macro defined in
some platform specific header files, for affected boards.

To simplify future extensions, replace that macro with a Kconfig variable
that holds this override address, and define a default value for SoCs
that need it.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Sam Edwards <CFSworks@gmail.com>
14 months agomisc: fs_loader: Fix alignment of fs_loader driver
Sean Anderson [Sat, 30 Sep 2023 20:45:46 +0000 (16:45 -0400)]
misc: fs_loader: Fix alignment of fs_loader driver

DM_DRIVER_GET will redeclare the fs_loader driver without the correct
alignment. This causes GCC to use the default section alignment of 32
bytes. This in turn creates a gap in the linker list due to the padding
required to achieve the correct alignment, corrupting all further entries.
Use DM_DRIVER_REF instead, which doesn't redeclare anything.

Fixes: 0998a20cfc6 ("misc: fs_loader: Add function to get the chosen loader")
Signed-off-by: Sean Anderson <seanga2@gmail.com>
14 months agomkimage: update man page and -h output
Rasmus Villemoes [Thu, 28 Sep 2023 08:02:57 +0000 (10:02 +0200)]
mkimage: update man page and -h output

The man page correctly said that -B was ignored without -E, while the
`mkimage -h` output suggested otherwise. Now that -B can actually be
used by itself, update the man page.

While at it, also amend the `mkimage -h` line to mention the
connection with -E.

The FDT header is a fixed 40 bytes, so its size cannot (and is not)
modified, while its alignment is a property of the address in RAM one
loads the FIT to, so not something mkimage can affect in any way. (In
the file itself, the header is of course at offset 0, which has all
possible alignments already.)

Reported-by: Sean Anderson <seanga2@gmail.com>
Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
Reviewed-by: Simon Glass <sjg@chromium.org>
14 months agodoc: use .dtso as extension for device tree overlay sources
Rasmus Villemoes [Mon, 25 Sep 2023 08:09:09 +0000 (10:09 +0200)]
doc: use .dtso as extension for device tree overlay sources

Moving towards using .dtso for overlay sources, update the
documentation examples to follow that pattern.

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
Reviewed-by: Simon Glass <sjg@chromium.org>
14 months agosandbox: rename overlay sources to .dtso
Rasmus Villemoes [Mon, 25 Sep 2023 08:09:08 +0000 (10:09 +0200)]
sandbox: rename overlay sources to .dtso

Distinguish more clearly between source files meant for producing .dtb
from those meant for producing .dtbo. No functional change, as we
currently have rules for producing a foo.dtbo from either foo.dts or
foo.dtso.

Note that in the linux tree, all device tree overlay sources have been
renamed to .dtso, and the .dts->.dtbo rule is gone since v6.5 (commit
81d362732bac). So this is also a step towards staying closer to linux
with respect to both Kbuild and device tree sources.

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
Reviewed-by: Simon Glass <sjg@chromium.org>
14 months agoarm64: zynqmp: rename overlay sources to .dtso
Rasmus Villemoes [Mon, 25 Sep 2023 08:09:07 +0000 (10:09 +0200)]
arm64: zynqmp: rename overlay sources to .dtso

Distinguish more clearly between source files meant for producing .dtb
from those meant for producing .dtbo. No functional change, as we
currently have rules for producing a foo.dtbo from either foo.dts or
foo.dtso.

Note that in the linux tree, all device tree overlay sources have been
renamed to .dtso, and the .dts->.dtbo rule is gone since v6.5 (commit
81d362732bac). So this is also a step towards staying closer to linux
with respect to both Kbuild and device tree sources.

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
14 months agoiot2050: rename overlay sources to .dtso
Rasmus Villemoes [Mon, 25 Sep 2023 08:09:06 +0000 (10:09 +0200)]
iot2050: rename overlay sources to .dtso

Distinguish more clearly between source files meant for producing .dtb
from those meant for producing .dtbo. No functional change, as we
currently have rules for producing a foo.dtbo from either foo.dts or
foo.dtso.

Note that in the linux tree, all device tree overlay sources have been
renamed to .dtso, and the .dts->.dtbo rule is gone since v6.5 (commit
81d362732bac). So this is also a step towards staying closer to linux
with respect to both Kbuild and device tree sources.

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
Reviewed-by: Jan Kiszka <jan.kiszka@siemens.com>
14 months agoarm: dts: imx8mm-cl-iot-gate: rename overlay sources to .dtso
Rasmus Villemoes [Mon, 25 Sep 2023 08:09:05 +0000 (10:09 +0200)]
arm: dts: imx8mm-cl-iot-gate: rename overlay sources to .dtso

Distinguish more clearly between source files meant for producing .dtb
from those meant for producing .dtbo. No functional change, as we
currently have rules for producing a foo.dtbo from either foo.dts or
foo.dtso.

Note that in the linux tree, all device tree overlay sources have been
renamed to .dtso, and the .dts->.dtbo rule is gone since v6.5 (commit
81d362732bac). So this is also a step towards staying closer to linux
with respect to both Kbuild and device tree sources.

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
14 months agoarm: apple: Add initial Apple M2 Ultra support
Janne Grunau [Wed, 6 Sep 2023 21:50:34 +0000 (23:50 +0200)]
arm: apple: Add initial Apple M2 Ultra support

Apple's M2 Ultra SoC are somewhat similar to the M1 Ultra but needs
a tweaked memory map as the M2 Pro/Max SoCs.  USB, NVMe, UART, WDT
and PCIe are working with the existing drivers.

Signed-off-by: Janne Grunau <j@jannau.net>
Reviewed-by: Mark Kettenis <kettenis@openbsd.org>