]> git.dujemihanovic.xyz Git - u-boot.git/log
u-boot.git
10 months agoMerge tag 'fsl-qoriq-2024-2-8' of https://source.denx.de/u-boot/custodians/u-boot...
Tom Rini [Thu, 8 Feb 2024 14:10:41 +0000 (09:10 -0500)]
Merge tag 'fsl-qoriq-2024-2-8' of https://source.denx.de/u-boot/custodians/u-boot-fsl-qoriq

Add TJA1120 driver support
fsl-layerscape/soc.c: do not destroy bootcmd environment

10 months agofsl-layerscape/soc.c: do not destroy bootcmd environment
Mike Looijmans [Tue, 30 Jan 2024 14:26:56 +0000 (15:26 +0100)]
fsl-layerscape/soc.c: do not destroy bootcmd environment

When an XXX_BOOTCOMMAND isn't defined, the result is that bootcmd is set
to some random memory content. Fix it so that the function does nothing
in that case and leaves the bootcmd environment unmodified.

Signed-off-by: Mike Looijmans <mike.looijmans@topic.nl>
Reviewed-by: Dan Carpenter <dan.carpenter@linaro.org>
10 months agonet: phy: nxp-c45-tja11xx: add tja1120 support
Radu Pirea (NXP OSS) [Wed, 13 Dec 2023 16:14:23 +0000 (18:14 +0200)]
net: phy: nxp-c45-tja11xx: add tja1120 support

Add TJA1120 driver structure and report 1G speed.

Signed-off-by: "Radu Pirea (NXP OSS)" <radu-nicolae.pirea@oss.nxp.com>
10 months agonet: phy: nxp-c45-tja11xx: rename nxp_c45_tja11xx structure
Radu Pirea (NXP OSS) [Wed, 13 Dec 2023 16:14:22 +0000 (18:14 +0200)]
net: phy: nxp-c45-tja11xx: rename nxp_c45_tja11xx structure

Rename nxp_c45_tja11xx structure to nxp_c45_tja1103. The driver will
support more PHYs and nxp_c45_tja11xx is too generic.

Signed-off-by: "Radu Pirea (NXP OSS)" <radu-nicolae.pirea@oss.nxp.com>
10 months agonet: phy: nxp-c45-tja11xx: read PHY the speed from hardware
Radu Pirea (NXP OSS) [Wed, 13 Dec 2023 16:14:21 +0000 (18:14 +0200)]
net: phy: nxp-c45-tja11xx: read PHY the speed from hardware

Read PHY speed from hardware instead of assuming 100Mbps by default.
The TJA1103 works only at 100Mbps, but the driver will support more PHYs.

Signed-off-by: "Radu Pirea (NXP OSS)" <radu-nicolae.pirea@oss.nxp.com>
10 months agonet: phy: nxp-c45-tja11xx: use local definion of features
Radu Pirea (NXP OSS) [Wed, 13 Dec 2023 16:14:20 +0000 (18:14 +0200)]
net: phy: nxp-c45-tja11xx: use local definion of features

Use a local definition for the PHY features. PHY_100BT1_FEATURES are
not defined using the 100BaseT1 bit, so keep this workaround in the driver.

Signed-off-by: "Radu Pirea (NXP OSS)" <radu-nicolae.pirea@oss.nxp.com>
10 months agoMerge branch '2024-02-06-assorted-fixes'
Tom Rini [Wed, 7 Feb 2024 14:47:47 +0000 (09:47 -0500)]
Merge branch '2024-02-06-assorted-fixes'

A number of assorted fixes

10 months agoMerge tag 'u-boot-rockchip-20240207' of https://source.denx.de/u-boot/custodians...
Tom Rini [Wed, 7 Feb 2024 13:33:47 +0000 (08:33 -0500)]
Merge tag 'u-boot-rockchip-20240207' of https://source.denx.de/u-boot/custodians/u-boot-rockchip

- Add board: rv1126 Sonoff iHost board
- rv1126 ddr4 support;
- Enable BOOTSTD_FULL for RK3399 and RK3588;
- rk3036 spl stack addr fix;
- dts sync from linux v6.8-rc1 for rk356x, rk3588, rv1126;
- Enable eMMC HS200 mode by default for rk3568 and rk3588;

10 months agoarm: dts: rockpro64: Add RockPro64 smbios
Shantur Rathore [Mon, 13 Nov 2023 11:23:09 +0000 (11:23 +0000)]
arm: dts: rockpro64: Add RockPro64 smbios

Add smbios information for Pine64 RockPro64 board and enable in
config

Signed-off-by: Shantur Rathore <i@shantur.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
10 months agoblk: host_dev: Fix error code in host_sb_attach_file()
Dan Carpenter [Wed, 31 Jan 2024 07:09:52 +0000 (10:09 +0300)]
blk: host_dev: Fix error code in host_sb_attach_file()

This error path should return -EINVAL instead of success.

Fixes: e261fbf34785 ("blk: host_dev: Sanity check on the size of host backing file")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
10 months agofirmware: ti_sci: Add comment explaining the is_secure code
Dhruva Gole [Tue, 30 Jan 2024 15:00:00 +0000 (20:30 +0530)]
firmware: ti_sci: Add comment explaining the is_secure code

Add a comment to explain the code under is_secure condition of
ti_sci_do_xfer. This will help avoid confusion amongst people who may in
future touch upon this code.

Reviewed-by: Nishanth Menon <nm@ti.com>
Signed-off-by: Dhruva Gole <d-gole@ti.com>
10 months agofirmware: ti_sci: fix the secure_hdr in do_xfer
Dhruva Gole [Tue, 30 Jan 2024 14:59:59 +0000 (20:29 +0530)]
firmware: ti_sci: fix the secure_hdr in do_xfer

The ti_sci driver in U-Boot has support for secure_msg as part of it's
do_xfer function. This let's U-boot send secure messages during boot up.

The protocol to send such secure messages is described as part of the
struct ti_sci_secure_msg_hdr. As part of this, there are 2 fields for
checksum and reserved that occupy the first 4 bytes of any secure
message. This is called as the secure_hdr.

As of now, the secure_hdr needs to be 0 init-ed before sending secure
messages. However the existing code was never putting the zero-inited vars
into the secure_buf, leading to possibility of the first 4 bytes of
secure_buf being possibly garbage.

Fix this by initialising the secure_hdr itself to the secure_buf
location, thus when we make secure_hdr members 0, it automatically ensures
the first 4 bytes of secure_buf are 0.

Fixes: 32cd25128bd849 ("firmware: Add basic support for TI System Control Interface (TI SCI)")
Reviewed-by: Nishanth Menon <nm@ti.com>
Signed-off-by: Dhruva Gole <d-gole@ti.com>
10 months agoarm: mach-k3: j721s2_init: Support less than max DDR controllers
Neha Malcom Francis [Tue, 30 Jan 2024 10:23:56 +0000 (15:53 +0530)]
arm: mach-k3: j721s2_init: Support less than max DDR controllers

The number of DDR controllers to be initialised and used should depend
on the device tree with the constraint of the maximum number of
controllers the device supports. Since J721S2 has multiple (2)
controllers, instead of hardcoding the number of probes, move to
depending on the device tree UCLASS_RAM nodes present.

Signed-off-by: Neha Malcom Francis <n-francis@ti.com>
Reviewed-by: Manorit Chawdhry <m-chawdhry@ti.com>
10 months agodma: ti: k3-udma: Use ring_idx to pair k3 nav rings
MD Danish Anwar [Tue, 30 Jan 2024 06:18:04 +0000 (11:48 +0530)]
dma: ti: k3-udma: Use ring_idx to pair k3 nav rings

Use ring_idx to pair rings. ring_idx will be same as tx flow_id for all
non-negative flow_ids. For negative flow_ids, ring_idx will be tchan->id
added with bchan_cnt.

Link: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/dma/ti/k3-udma.c?h=v6.8-rc2#n1686
Signed-off-by: MD Danish Anwar <danishanwar@ti.com>
Reviewed-by: Ravi Gunasekaran <r-gunasekaran@ti.com>
10 months agovexpress_ca9x4: Enable DM_SERIAL
Ole P. Orhagen [Fri, 26 Jan 2024 12:47:50 +0000 (13:47 +0100)]
vexpress_ca9x4: Enable DM_SERIAL

This commit enables support for DM_SERIAL in the vexpress_ca9x4 boards.

When running the board with the DM_SERIAL driver, the board ran out of
memory in SPL when initialising the DM serial driver.

Thus this required an increase in the pre-allocated SRAM memory. I did
increase it to 0x800, and it now works graciously.

It could probably be set lower, but I do not see any reason not to use the
available SRAM at this point.

Also adds stdout-path to the 'chosen' node in the device tree.

Signed-off-by: Ole P. Orhagen <ole.orhagen@northern.tech>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
10 months agocommon: event: check event_type_name() argument
Heinrich Schuchardt [Sun, 28 Jan 2024 07:58:55 +0000 (08:58 +0100)]
common: event: check event_type_name() argument

In event_type_name() we should avoid possible buffer overruns by checking
the type argument.

Addresses-Coverity-ID: 478862 Out-of-bounds access
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
10 months agoarm: dts: nuvoton: modify npcm8xx reset property
Jim Liu [Wed, 24 Jan 2024 01:54:51 +0000 (09:54 +0800)]
arm: dts: nuvoton: modify npcm8xx reset property

Change reset method from generic to reset driver

Signed-off-by: Jim Liu <JJLIU0@nuvoton.com>
10 months agoscripts/gen_compile_commands: update to Linux v6.7
Brandon Maier [Mon, 22 Jan 2024 18:45:50 +0000 (18:45 +0000)]
scripts/gen_compile_commands: update to Linux v6.7

Adds support for assembly files and updates the LINE_PATTERN so it
supports both "cmd" and "savedcmd", which allows reverting the U-Boot
modification in commit 97fbb2eb016b ("scripts/gen_compile_commands.py:
adapt _LINE_PATTERN").

Upstream commits:

880946158b011 gen_compile_commands.py: fix path resolve with symlinks in it
9e56d3be4bfd2 gen_compile_commands: Sort output compile commands by file name
52c15e7e79285 gen_compile_commands: Allow the line prefix to still be cmd_
1c67921444bf6 gen_compile_commands: add assembly files to compilation database

Signed-off-by: Brandon Maier <brandon.maier@collins.com>
Cc: Joao Marcos Costa <jmcosta944@gmail.com>
10 months agoMerge patch series "board: siemens: clean up subfolders"
Tom Rini [Mon, 5 Feb 2024 18:33:01 +0000 (13:33 -0500)]
Merge patch series "board: siemens: clean up subfolders"

Enrico Leto <enrico.leto@siemens.com> says:

    The common folder was initialially created for the common parts of
    the products based on draco-am355x board family. We have the
    product lines 'pxm2', 'rut' and the base line unfortunately named
    'draco'! Adding the new capricorn-imx8 board family, the files
    were enhanced without cleanup.

    Simplify first EEPROM probe and access that implements both i2c
    with & without driver model. Use abstraction functions for this.

    Move all am355x specifics to a new file 'board_am335x'.

    Clean-up includes, config checks, maintainer.

10 months agosiemens: factoryset: use correct config for soc specific implementation
Enrico Leto [Wed, 24 Jan 2024 14:43:55 +0000 (15:43 +0100)]
siemens: factoryset: use correct config for soc specific implementation

Adding the capricorn board family some parts diverge from draco family.
The switches used were not pertinent and need to be enhanced for each new
board of the capricorn family. Replace them through the SOC name 'AM33XX'
and 'IMX8'.

Signed-off-by: Enrico Leto <enrico.leto@siemens.com>
10 months agosiemens: board: clean up includes
Enrico Leto [Wed, 24 Jan 2024 14:43:54 +0000 (15:43 +0100)]
siemens: board: clean up includes

Many includes were not removed when code parts were moved or removed.

Signed-off-by: Enrico Leto <enrico.leto@siemens.com>
10 months agosiemens: board: clean up products folders vs common
Enrico Leto [Wed, 24 Jan 2024 14:43:53 +0000 (15:43 +0100)]
siemens: board: clean up products folders vs common

The common folder was initialially created for the common parts of the
products based on draco-am355x board family. These are the product lines
'pxm2', 'rut' and the base line named 'draco'!

Adding the new capricorn-imx8 board family, common was enhanced without
cleanup.
- rename 'common/board.c' to 'common/board_am335x.c'
- add 'common/board_am335x.h' for export to the product lines

Reviewed-by: Alexander Sverdlin <alexander.sverdlin@siemens.com>
Signed-off-by: Enrico Leto <enrico.leto@siemens.com>
10 months agosiemens: board: etamin: remove deprecated nand config
Enrico Leto [Wed, 24 Jan 2024 14:43:52 +0000 (15:43 +0100)]
siemens: board: etamin: remove deprecated nand config

NAND was used in the early development phase of etamin. The board runs now
on MMC. This setting is no more used -> remove to simplify the board file.

Further clean-up of etamin should remove all NAND settings. Complete clean-
up of etamin board will take place in a separate patch serie.

Signed-off-by: Enrico Leto <enrico.leto@siemens.com>
10 months agosiemens draco: i2c: use driver model for u-boot
Enrico Leto [Wed, 24 Jan 2024 14:43:51 +0000 (15:43 +0100)]
siemens draco: i2c: use driver model for u-boot

Add support for driver model where EEPROM data are read in draco board.

Reviewed-by: Alexander Sverdlin <alexander.sverdlin@siemens.com>
Signed-off-by: Enrico Leto <enrico.leto@siemens.com>
10 months agosiemens: eeprom: simplify setup & read
Enrico Leto [Wed, 24 Jan 2024 14:43:50 +0000 (15:43 +0100)]
siemens: eeprom: simplify setup & read

Since we have boards using the driver model or not for i2c, use abstraction
function to probe the i2c, check the EEPROM and read from EEPROM.

Signed-off-by: Enrico Leto <enrico.leto@siemens.com>
10 months agosiemens: eeprom: clean up definitions
Enrico Leto [Wed, 24 Jan 2024 14:43:49 +0000 (15:43 +0100)]
siemens: eeprom: clean up definitions

Move the I2C and EEPROM address definitions in common board header.

Reviewed-by: Alexander Sverdlin <alexander.sverdlin@siemens.com>
Signed-off-by: Enrico Leto <enrico.leto@siemens.com>
10 months agoMerge tag 'rpi-next-2024.04' of https://source.denx.de/u-boot/custodians/u-boot-raspb...
Tom Rini [Mon, 5 Feb 2024 14:31:48 +0000 (09:31 -0500)]
Merge tag 'rpi-next-2024.04' of https://source.denx.de/u-boot/custodians/u-boot-raspberrypi

Add RaspberryPi5 basic support.

Acked-by: Peter Robinson <pbrobinson@gmail.com>
10 months agorockchip: rk3568-generic: Enable eMMC HS200 mode
Jonas Karlman [Wed, 31 Jan 2024 22:07:14 +0000 (22:07 +0000)]
rockchip: rk3568-generic: Enable eMMC HS200 mode

Writing to eMMC using HS200 mode work more reliably then other modes on
RK356x boards.

Add device tree props and enable Kconfig options for eMMC HS200 mode on
the generic RK3566/RK3568 board. Also enable the pinctrl driver in SPL
and add missing rk3568-generic.dtb to Makefile.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
10 months agorockchip: rk3588-evb: Enable USB support
Andy Yan [Sat, 3 Feb 2024 11:31:07 +0000 (19:31 +0800)]
rockchip: rk3588-evb: Enable USB support

Enable USB releated config to support
boot from usb.

Signed-off-by: Andy Yan <andy.yan@rock-chips.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
10 months agommc: rockchip_sdhci: Fix HS400 mode write on RK3568
Jonas Karlman [Sun, 4 Feb 2024 20:53:07 +0000 (20:53 +0000)]
mmc: rockchip_sdhci: Fix HS400 mode write on RK3568

Testing has shown that writing to eMMC using HS400 modes on RK3568
result in an ERROR.

Change the tap number for transmit clock to fix this.

Also stop DLL when config_dll() is called to disable DLL.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
10 months agorockchip: rk35xx: Enable eMMC HS200 mode by default
Jonas Karlman [Sun, 4 Feb 2024 20:53:06 +0000 (20:53 +0000)]
rockchip: rk35xx: Enable eMMC HS200 mode by default

Testing has shown that writing to eMMC using a slower mode then HS200
typically generate an ERROR on first attempt on RK3588.

  # Rescan using MMC legacy mode
  => mmc rescan 0

  # Write a single block to sector 0x4000 fails with ERROR
  => mmc write 20000000 4000 1

  # Write a single block to sector 0x4000 now works
  => mmc write 20000000 4000 1

With the MMC_SPEED_MODE_SET Kconfig option enabled.

Writing to eMMC using HS200 mode work more reliably than slower modes on
RK35xx boards. Enable MMC_HS200_SUPPORT Kconfig option by default to
prefer use of HS200 mode on RK356x and RK3588.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
10 months agorockchip: rk35xx: Remove use of eMMC DDR52 mode
Jonas Karlman [Sun, 4 Feb 2024 20:53:05 +0000 (20:53 +0000)]
rockchip: rk35xx: Remove use of eMMC DDR52 mode

Testing has shown that writing to eMMC using DDR52 mode does not seem to
work on RK356x and RK3588 boards.

A simple test of writing a single block to e.g. sector 0x4000 fails:

  # Rescan using DDR52 mode
  => mmc rescan 4

  # Write a single block to sector 0x4000 fails with ERROR
  => mmc write 20000000 4000 1

With the MMC_SPEED_MODE_SET Kconfig option enabled.

Fix this by removing the mmc-ddr-1_8v prop from sdhci nodes in affected
board u-boot.dtsi files.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
10 months agorockchip: rk3588-quartzpro64: Enable AHCI, PCI and USB
Jonas Karlman [Fri, 26 Jan 2024 23:39:05 +0000 (23:39 +0000)]
rockchip: rk3588-quartzpro64: Enable AHCI, PCI and USB

Enable Kconfig options to support AHCI, PCI and USB features. This help
keep rk3588-quartzpro64 in sync with other RK3588 boards.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
10 months agorockchip: rk3588: Enable eMMC HS200 mode
Jonas Karlman [Fri, 26 Jan 2024 23:26:09 +0000 (23:26 +0000)]
rockchip: rk3588: Enable eMMC HS200 mode

Writing to eMMC using HS200 mode work more reliably then other modes on
RK3588 boards.

Enable MMC_HS200_SUPPORT Kconfig option to prefer use of HS200 mode.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
Reviewed-by: Weizhao Ouyang <o451686892@gmail.com>
10 months agorockchip: rk35xx: Remove unnecessary status props
Jonas Karlman [Fri, 26 Jan 2024 22:14:55 +0000 (22:14 +0000)]
rockchip: rk35xx: Remove unnecessary status props

Remove unnecessary status props from rk35xx u-boot.dtsi files, regular
device tree files or default value already enable the affected nodes.

Also reorder bootph-pre-ram and clock-frequency props alphabetically in
rk3588s-u-boot.dtsi uart2 node.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
10 months agorockchip: rk3588: Add default u-boot,spl-boot-order prop
Jonas Karlman [Fri, 26 Jan 2024 22:14:54 +0000 (22:14 +0000)]
rockchip: rk3588: Add default u-boot,spl-boot-order prop

Add a default u-boot,spl-boot-order prop to rk3588s-u-boot.dtsi and
remove the prop from board u-boot.dtsi files using the default value.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Eugen Hristev <eugen.hristev@collabora.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
10 months agorockchip: rk3588: Sync device tree from linux v6.8-rc1
Jonas Karlman [Fri, 26 Jan 2024 22:14:53 +0000 (22:14 +0000)]
rockchip: rk3588: Sync device tree from linux v6.8-rc1

Sync rk3588 device tree from linux v6.8-rc1.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
10 months agorockchip: rk3588: Sync device tree with linux v6.7
Jonas Karlman [Fri, 26 Jan 2024 22:14:52 +0000 (22:14 +0000)]
rockchip: rk3588: Sync device tree with linux v6.7

Sync rk3588 device tree from linux v6.7.

Also drop the rockchip,rk3568-dwc3 compatible now that dwc3-generic
driver support the rockchip,rk3588-dwc3 compatible.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
10 months agorockchip: rk356x: Move common uart2 props to rk356x-u-boot.dtsi
Jonas Karlman [Fri, 26 Jan 2024 22:14:51 +0000 (22:14 +0000)]
rockchip: rk356x: Move common uart2 props to rk356x-u-boot.dtsi

Move uart2 bootph-pre-ram and clock-frequency props from board to SoC
u-boot.dtsi. Regular board device tree already enables the uart2 node,
so status prop is dropped from u-boot.dtsi file.

Also remove unnecessary stdout-path = &uart2, regular board device tree
already provide a stdout-path = "serial2:" value.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
10 months agorockchip: rk356x: Sync device tree from linux v6.8-rc1
Jonas Karlman [Fri, 26 Jan 2024 22:14:50 +0000 (22:14 +0000)]
rockchip: rk356x: Sync device tree from linux v6.8-rc1

Sync rk356x device tree from linux v6.8-rc1.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
10 months agorockchip: rk356x: Sync device tree from linux v6.7
Jonas Karlman [Fri, 26 Jan 2024 22:14:49 +0000 (22:14 +0000)]
rockchip: rk356x: Sync device tree from linux v6.7

Sync rk356x device tree from linux v6.7.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
10 months agoarch: arm: mach-rockchip: Kconfig: Enable BOOTSTD_FULL for RK3399 and RK3588
Shantur Rathore [Sun, 21 Jan 2024 22:04:47 +0000 (22:04 +0000)]
arch: arm: mach-rockchip: Kconfig: Enable BOOTSTD_FULL for RK3399 and RK3588

Rockchip RK3399 and RK3588 SoCs can support wide range of bootflows.
Without full bootflow commands, it can be difficult to
figure out issues if any, hence enable by default.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Shantur Rathore <i@shantur.com>
10 months agorockchip: rv1126: Move RAM disk address
Tim Lunn [Wed, 24 Jan 2024 03:26:02 +0000 (14:26 +1100)]
rockchip: rv1126: Move RAM disk address

OPTEE gets loaded into a memory region overlapping with the ram disk.

Fix the ramdisk address so it doesn't overlap with the OPTEE memory
region.

Signed-off-by: Tim Lunn <tim@feathertop.org>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
10 months agorockchip: rv1126: select SPL_OPTEE_IMAGE
Tim Lunn [Wed, 24 Jan 2024 03:26:01 +0000 (14:26 +1100)]
rockchip: rv1126: select SPL_OPTEE_IMAGE

rv1126 requires OPTEE as it provides pcsi support. Mainline Linux
kernel will fail to boot without this.

Select SPL_OPTEE_IMAGE when building FIT image. TEE must be provided
when building.

Signed-off-by: Tim Lunn <tim@feathertop.org>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
10 months agoboard: rockchip: Add Sonoff iHost board
Tim Lunn [Wed, 24 Jan 2024 03:26:00 +0000 (14:26 +1100)]
board: rockchip: Add Sonoff iHost board

Sonoff iHost is gateway device designed to provide a Smart Home Hub,
it is based on Rockchip RV1126. There is also a version with 2GB RAM
based off the RV1109 dual core SoC however this works with the same
config as the RV1126 for uboot purposes.

Features:
- Rockchip RV1126
- 4GB DDR4
- 8GB eMMC
- microSD slot
- RMII Ethernet PHY
- 1x USB 2.0 Host
- 1x USB 2.0 OTG
- Realtek RTL8723DS WiFi/BT
- EFR32MG21 Silabs Zigbee radio
- Speaker/Microphone

Signed-off-by: Tim Lunn <tim@feathertop.org>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
10 months agorockchip: Convert rv1126 to standard boot
Tim Lunn [Wed, 24 Jan 2024 03:25:59 +0000 (14:25 +1100)]
rockchip: Convert rv1126 to standard boot

RV1126 soc appears to have been missed with the conversion of
rockchip socs to standard boot.

Remove remnants of distro boot for rv1126 common and the one
existing board.

Signed-off-by: Tim Lunn <tim@feathertop.org>
Link: https://lore.kernel.org/all/20230407223645.v8.8.I4cf7708a1ba953b9abd81375d93af34665c7b251@changeid/
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
10 months agoram: rockchip: Add rv1126 ddr4 support
Tim Lunn [Wed, 24 Jan 2024 03:25:58 +0000 (14:25 +1100)]
ram: rockchip: Add rv1126 ddr4 support

Add support for ddr4 on rv1126. Timing detection files are imported
from downstream Rockchip BSP u-boot. Allow selecting ddr4 ram with
define CONFIG_RAM_ROCKCHIP_DDR4.

Signed-off-by: Tim Lunn <tim@feathertop.org>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
10 months agoarm: dts: rockchip: Sync rv1126 dts from linux 6.8-rc1
Tim Lunn [Wed, 24 Jan 2024 03:25:57 +0000 (14:25 +1100)]
arm: dts: rockchip: Sync rv1126 dts from linux 6.8-rc1

Sync linux dts files for rv1126 boards from linux v6.8-rc1 tag. Includes
the newly added dts for Sonoff iHost.

Signed-off-by: Tim Lunn <tim@feathertop.org>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
10 months agorockchip: rk3328-rock-pi-e: Enable DM_ETH_PHY and PHY_REALTEK
Jonas Karlman [Thu, 18 Jan 2024 07:19:46 +0000 (07:19 +0000)]
rockchip: rk3328-rock-pi-e: Enable DM_ETH_PHY and PHY_REALTEK

Enable the DM_ETH_PHY and PHY_REALTEK now that the designware ethernet
driver call eth_phy_set_mdio_bus() to assist with resetting the eth PHY
during probe.

Fixes ethernet on the v1.21 hw revision of Radxa ROCK Pi E:

  => mdio list
  ethernet@ff540000:
  1 - RealTek RTL8211F <--> ethernet@ff540000
  => net list
  eth0 : ethernet@ff540000 86:e0:c0:ea:fa:a9 active
  eth1 : ethernet@ff550000 86:e0:c0:ea:fa:a8
  => dhcp
  Speed: 1000, full duplex
  BOOTP broadcast 1
  BOOTP broadcast 2
  BOOTP broadcast 3
  DHCP client bound to address 192.168.1.114 (1004 ms)

Reported-by: Trevor Woerner <twoerner@gmail.com>
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
10 months agonet: designware: Reset eth phy before phy connect
Jonas Karlman [Thu, 18 Jan 2024 07:19:45 +0000 (07:19 +0000)]
net: designware: Reset eth phy before phy connect

Some ethernet PHY require being reset before a phy-id can be read back
on the MDIO bus. This can result in the following message being show
on e.g. a Radxa ROCK Pi E v1.21 with a RTL8211F ethernet PHY.

  Could not get PHY for ethernet@ff540000: addr -1

Add support to designware ethernet driver to reset eth phy by calling
the eth phy uclass function eth_phy_set_mdio_bus(). The call use NULL
as bus parameter to not set a shared mdio bus reference that would be
freed when probe fails. Also add a eth_phy_get_addr() call to try and
get the phy addr from DT when DM_MDIO is disabled.

This help fix ethernet on Radxa ROCK Pi E v1.21:

  => mdio list
  ethernet@ff540000:
  1 - RealTek RTL8211F <--> ethernet@ff540000

Reported-by: Trevor Woerner <twoerner@gmail.com>
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
10 months agoconfigs: rockchip: rk3036: Fix CONFIG_SPL_STACK define
Kever Yang [Wed, 24 Jan 2024 07:51:10 +0000 (15:51 +0800)]
configs: rockchip: rk3036: Fix CONFIG_SPL_STACK define

The CONFIG_SPL_STACK for rk3036 is removed in below patch, need to add
it back.

Fixes: f113d7d3034 ("Convert CONFIG_SPL_STACK to Kconfig")
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
10 months agospl: Make SPL_STACK available for ROCKCHIP_RK3036 without spl framework
Kever Yang [Wed, 24 Jan 2024 07:42:04 +0000 (15:42 +0800)]
spl: Make SPL_STACK available for ROCKCHIP_RK3036 without spl framework

rk3036 soc has limit internal sram, and not able to support spl
framework.

Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
10 months agorockchip: sdram: fix LPDDR5 bank info for sys_reg version 3
YouMin Chen [Tue, 12 Dec 2023 07:56:41 +0000 (15:56 +0800)]
rockchip: sdram: fix LPDDR5 bank info for sys_reg version 3

This patch add support for additional bank info used by LPDDR5.

Series-version: 2

Signed-off-by: YouMin Chen <cym@rock-chips.com>
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
10 months agoMerge tag 'smbios-2024-04-rc2' of https://source.denx.de/u-boot/custodians/u-boot-efi
Tom Rini [Sat, 3 Feb 2024 14:11:25 +0000 (09:11 -0500)]
Merge tag 'smbios-2024-04-rc2' of https://source.denx.de/u-boot/custodians/u-boot-efi

Pull request smbios-2024-04-rc2

* In smbios command
  - write 'Not Specified' for missing strings
  - show correct table size for SMBIOS2.1 entry point
  - adjust formatting of handle numbers
  - add missing colon after UUID
* In generated SMBIOS table
  - avoid introducing 'Unknown' string for missing properties
  - provide RISC-V vendor ID in the type 4 structure
  - provide the correct chassis handle in structure type 2
* Rename Structure Table Maximum Size field in SMBIOS 3 entry point

10 months agosmbios: correctly name Structure Table Maximum Size field
Heinrich Schuchardt [Wed, 31 Jan 2024 22:49:34 +0000 (23:49 +0100)]
smbios: correctly name Structure Table Maximum Size field

In the SMBIOS 3 entry point the Structure Table Maximum Size field was
incorrectly named max_struct_size. A Maximum Structure Size field only
exists in the SMBIOS 2.1 entry point and has a different meaning.

Call the Structure Table Length field table_maximum_size.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
10 months agosmbios: do not determine maximum structure size
Heinrich Schuchardt [Wed, 31 Jan 2024 22:42:35 +0000 (23:42 +0100)]
smbios: do not determine maximum structure size

Only the SMBIOS 2.1 entry point has a field for the maximum structure size.
As we have switched to an SMBIOS 3 entry point remove the superfluous
calculation.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
10 months agocmd: smbios: show correct table size for SMBIOS2.1 entry point
Heinrich Schuchardt [Wed, 31 Jan 2024 22:34:46 +0000 (23:34 +0100)]
cmd: smbios: show correct table size for SMBIOS2.1 entry point

The SMBIOS table size for SMBIOS2.1 entry points is in field 'Structure
Table Length' (offset 0x16) and not in field 'Maximum Structure Size'
(offset 0x08).

Rename the receiving variable max_struct_size to table_maximum_size
to avoid future confusion.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
10 months agosmbios: correctly fill chassis handle
Heinrich Schuchardt [Mon, 29 Jan 2024 17:32:58 +0000 (18:32 +0100)]
smbios: correctly fill chassis handle

The chassis handle field in the type 2 structure must point to the handle
of the type 3 structure.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
10 months agosmbios: provide type 4 RISC-V SMBIOS Processor ID
Heinrich Schuchardt [Mon, 29 Jan 2024 11:46:05 +0000 (12:46 +0100)]
smbios: provide type 4 RISC-V SMBIOS Processor ID

For RISC-V CPUs the SMBIOS Processor ID field contains
the Machine Vendor ID from CSR mvendorid.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
10 months agosmbios: if a string value is unknown, use string number 0
Heinrich Schuchardt [Mon, 29 Jan 2024 13:09:36 +0000 (14:09 +0100)]
smbios: if a string value is unknown, use string number 0

The SMBIOS specification describes: "If a string field references no string,
a null (0) is placed in that string field."

Accordingly we should avoid writing a string "Unknown" to the SMBIOS table.

dmidecode displays 'Not Specified' if the string number is 0.

Commit 00a871d34e2f ("smbios: empty strings in smbios_add_string()")
correctly identified that strings may not have length 0 as two
consecutive NULs indentify the end of the string list. But the suggested
solution did not match the intent of the SMBIOS specification.

Fixes: 00a871d34e2f ("smbios: empty strings in smbios_add_string()")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
10 months agosmbios: Fix table when no string is present
Matthias Brugger [Tue, 6 Apr 2021 09:04:35 +0000 (11:04 +0200)]
smbios: Fix table when no string is present

When no string is present in a table, next_ptr points to the same
location as eos. When calculating the string table length, we would only
reserve one \0. By spec a SMBIOS table has to end with two \0\0 when no
strings a present.

Signed-off-by: Matthias Brugger <mbrugger@suse.com>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
10 months agocmd: smbios: replace missing string by 'Not Specified'
Heinrich Schuchardt [Mon, 29 Jan 2024 17:01:27 +0000 (18:01 +0100)]
cmd: smbios: replace missing string by 'Not Specified'

A missing string value is indicated by a string index of 0. In this case
print 'Not Specified' like the Linux dmidecode command does.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
10 months agocmd: smbios: add missing colon after UUID
Heinrich Schuchardt [Mon, 29 Jan 2024 17:51:24 +0000 (18:51 +0100)]
cmd: smbios: add missing colon after UUID

For consistent formatting add a colon ':' after the UUID label.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
10 months agocmd: smbios: always use '0x%04x' for printing handles
Heinrich Schuchardt [Mon, 29 Jan 2024 17:09:50 +0000 (18:09 +0100)]
cmd: smbios: always use '0x%04x' for printing handles

Handles are u16 numbers. Consistently use '0x%04x' to print them.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
10 months agosmbios: get_str_from_dt() - add sysinfo_id description
Heinrich Schuchardt [Mon, 29 Jan 2024 12:58:18 +0000 (13:58 +0100)]
smbios: get_str_from_dt() - add sysinfo_id description

Add description for parameter sysinfo_id of function get_str_from_dt().

Fixes: 07c9e683a484 ("smbios: Allow a few values to come from sysinfo")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
10 months agolib: smbios_entr() use logical or for booleans
Heinrich Schuchardt [Sun, 28 Jan 2024 10:24:21 +0000 (11:24 +0100)]
lib: smbios_entr() use logical or for booleans

As a matter of programming style use logical or to combine two boolean
results.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
10 months agoMerge tag 'u-boot-amlogic-fixes-20240201' of https://source.denx.de/u-boot/custodians...
Tom Rini [Thu, 1 Feb 2024 14:59:53 +0000 (09:59 -0500)]
Merge tag 'u-boot-amlogic-fixes-20240201' of https://source.denx.de/u-boot/custodians/u-boot-amlogic

- stop printing board model twice after sysinfo update

10 months agoMerge https://source.denx.de/u-boot/custodians/u-boot-watchdog
Tom Rini [Thu, 1 Feb 2024 14:59:09 +0000 (09:59 -0500)]
Merge https://source.denx.de/u-boot/custodians/u-boot-watchdog

- add andes atcwdt200 support (Randolph)

10 months agoconfigs: andes: add watchdog support fot andes ae350
Randolph [Wed, 24 Jan 2024 06:21:33 +0000 (14:21 +0800)]
configs: andes: add watchdog support fot andes ae350

It adds the ATCWDT200 support for Andes AE350 platform.
It also enables wdt command support.

Signed-off-by: CL Wang <cl634@andestech.com>
Signed-off-by: Randolph <randolph@andestech.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
10 months agodrivers: watchdog: add andes atcwdt200 support
Randolph [Wed, 24 Jan 2024 06:21:32 +0000 (14:21 +0800)]
drivers: watchdog: add andes atcwdt200 support

This patch adds an implementation of the Andes watchdog ATCWDT200 driver.

Signed-off-by: CL Wang <cl634@andestech.com>
Signed-off-by: Randolph <randolph@andestech.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
10 months agoMerge tag 'u-boot-at91-2024.04-a' of https://source.denx.de/u-boot/custodians/u-boot...
Tom Rini [Wed, 31 Jan 2024 15:44:33 +0000 (10:44 -0500)]
Merge tag 'u-boot-at91-2024.04-a' of https://source.denx.de/u-boot/custodians/u-boot-at91

First set of u-boot-at91 features for the 2024.04 cycle:

This set includes some DT alignments and solves a compile issue for
custom nand defconfigs.

10 months agoMerge https://source.denx.de/u-boot/custodians/u-boot-riscv
Tom Rini [Wed, 31 Jan 2024 13:49:35 +0000 (08:49 -0500)]
Merge https://source.denx.de/u-boot/custodians/u-boot-riscv

* Add RISC-V falcon mode documentation
* Add Clang build support
* Add cmd to detect Debug Trigger Extension support

* Add PWM setting for Unmatched board
* Add Milk-V Duo board support
* Add new device node and enable new config option for VisionFive2 board
* Add second virtio device for RISC-V QEMU

10 months agoriscv: dts: starfive: add regulator device
Nam Cao [Mon, 29 Jan 2024 08:43:09 +0000 (09:43 +0100)]
riscv: dts: starfive: add regulator device

Add the axp15060 regulator device. OpenSBI uses this device to perform
board reset and shutdown.

Signed-off-by: Nam Cao <namcao@linutronix.de>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
10 months agoriscv: dts: jh7110: add power management unit controller node
Nam Cao [Mon, 29 Jan 2024 08:43:08 +0000 (09:43 +0100)]
riscv: dts: jh7110: add power management unit controller node

JH7110 has a power management unit controller node. Add this node.

This device is used by OpenSBI during board reset/shutdown.

Signed-off-by: Nam Cao <namcao@linutronix.de>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
10 months agoboard: visionfive2: configure PHY pad drive strength
Lukasz Tekieli [Sun, 28 Jan 2024 19:22:48 +0000 (20:22 +0100)]
board: visionfive2: configure PHY pad drive strength

Configure the pad drive strength register for both PHYs.
The values correspond to what can be found in the Linux DTS
for VisionFive2 v1.3b.

Pad drive strength configuration is required for the phy0 to work correctly
with 100Mbit links.

Signed-off-by: Lukasz Tekieli <tekieli.lukasz@gmail.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
10 months agonet: phy: motorcomm: configure pad drive strength register
Lukasz Tekieli [Sun, 28 Jan 2024 19:22:47 +0000 (20:22 +0100)]
net: phy: motorcomm: configure pad drive strength register

This ports the pad drive strength register configuration which can be
already found in the Linux driver for this PHY.

Signed-off-by: Lukasz Tekieli <tekieli.lukasz@gmail.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
10 months agodoc: sophgo: milkv_duo: document Milk-V Duo board
Kongyang Liu [Sun, 28 Jan 2024 07:05:26 +0000 (15:05 +0800)]
doc: sophgo: milkv_duo: document Milk-V Duo board

Add document for Milk-V Duo board which based on Sophgo's CV1800B SoC.

Signed-off-by: Kongyang Liu <seashell11234455@gmail.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
10 months agoriscv: sophgo: milkv_duo: initial support added
Kongyang Liu [Sun, 28 Jan 2024 07:05:25 +0000 (15:05 +0800)]
riscv: sophgo: milkv_duo: initial support added

Add support for Sophgo's Milk-V Duo board, only minimal device tree and
serial console are enabled, and it can boot via vendor first stage
bootloader.

Signed-off-by: Kongyang Liu <seashell11234455@gmail.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
10 months agoriscv: dts: sophgo: add basic device tree for Milk-V Duo board
Kongyang Liu [Sun, 28 Jan 2024 07:05:24 +0000 (15:05 +0800)]
riscv: dts: sophgo: add basic device tree for Milk-V Duo board

Import device tree from Linux kernel to add basic support for CPU, PLIC,
UART and Timer. The name cv1800b in the filename represent the chip used
on Milk-V Duo board.

Signed-off-by: Kongyang Liu <seashell11234455@gmail.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
10 months agoconfigs: visionfive2: Disable ENV_IS_NOWHERE
Aurelien Jarno [Sat, 27 Jan 2024 13:48:45 +0000 (14:48 +0100)]
configs: visionfive2: Disable ENV_IS_NOWHERE

The VisionFive 2 board supports saving the u-boot environment settings
are saved to on-board SPI flash. However the defconfig enables both
ENV_IS_NOWHERE and ENV_IS_IN_SPI_FLASH, preventing the "saveenv" command
to work. Fix that by disabling ENV_IS_NOWHERE.

Fixes: 7d79bed00c9e ("configs: starfive: Enable environment in SPI flash support")
Reported-by: E Shattow <lucent@gmail.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
10 months agoriscv: Support building with Clang
kleines Filmröllchen [Thu, 25 Jan 2024 14:06:59 +0000 (15:06 +0100)]
riscv: Support building with Clang

The -ffixed-gp option of GCC has an exact equivalent of -ffixed-x3 in
Clang.

Signed-off-by: kleines Filmröllchen <filmroellchen@serenityos.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
10 months agocmd: sbi: add support for Debug Trigger Extension
Heinrich Schuchardt [Wed, 17 Jan 2024 16:46:52 +0000 (17:46 +0100)]
cmd: sbi: add support for Debug Trigger Extension

Detect and show if the SBI implements the Debug Trigger Extension.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
10 months agoboard: sifive: spl: Initialized the PWM setting in the SPL stage
Vincent Chen [Tue, 16 Jan 2024 06:35:57 +0000 (14:35 +0800)]
board: sifive: spl: Initialized the PWM setting in the SPL stage

LEDs and multiple fans can be controlled by SPL. This patch ensures
that all fans have been enabled in the SPL stage. In addition, the
LED's color will be set to yellow.

Signed-off-by: Vincent Chen <vincent.chen@sifive.com>
Co-developed-by: Nylon Chen <nylon.chen@sifive.com>
Signed-off-by: Nylon Chen <nylon.chen@sifive.com>
Co-developed-by: Zong Li <zong.li@sifve.com>
Signed-off-by: Zong Li <zong.li@sifve.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
10 months agoriscv: qemu: enable booting on a second virtio device
Aurelien Jarno [Wed, 10 Jan 2024 20:26:53 +0000 (21:26 +0100)]
riscv: qemu: enable booting on a second virtio device

QEMU RISC-V supports multiple virtio devices, but only tries to boot to
the first one. Enable support for a second virtio device, that is useful
for instance to boot on a disk image + an installer. Ideally that should
be made dynamic, but that's a first step.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
10 months agoboard: starfive: handle compatible property in dynamic DT configuration
Aurelien Jarno [Wed, 10 Jan 2024 20:17:44 +0000 (21:17 +0100)]
board: starfive: handle compatible property in dynamic DT configuration

The difference between the StarFive VisionFive 2 1.2A and 1.3B boards is
handled dynamically by looking at the PCB version in the EEPROM in order
to have a single u-boot version for both versions of the board. While
the "model" property is correctly handled, the "compatible" one is
always the the one of version 1.3b.

This patch add support for dynamically configuring that property.

Fixes: 9b7060bd15e7 ("riscv: dts: jh7110: Combine the board device tree files of 1.2A and 1.3B")
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
10 months agoconfigs: andes: add the fdt blob copy address for SPL
Randolph [Fri, 29 Dec 2023 08:32:23 +0000 (16:32 +0800)]
configs: andes: add the fdt blob copy address for SPL

Add the address to which the FDT blob is to be moved.

Signed-off-by: Randolph <randolph@andestech.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
10 months agospl: riscv: falcon: move fdt blob to specified address
Randolph [Fri, 29 Dec 2023 08:32:22 +0000 (16:32 +0800)]
spl: riscv: falcon: move fdt blob to specified address

In Falcon Boot mode, the fdt blob should be move to the RAM from
kernel BSS section. To avoid being cleared by BSS initialisation.
SPL_PAYLOAD_ARGS_ADDR is the address where SPL copies.

Signed-off-by: Randolph <randolph@andestech.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
10 months agodoc: falcon: riscv: Falcon Mode boot on RISC-V
Randolph [Fri, 29 Dec 2023 08:32:21 +0000 (16:32 +0800)]
doc: falcon: riscv: Falcon Mode boot on RISC-V

Add documentation to introduce the Falcon Mode on RISC-V.
In this mode, the boot sequence is SPL -> OpenSBI -> Linux kernel.

Signed-off-by: Randolph <randolph@andestech.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
11 months agoconfigs: rpi_arm64: build position independent code
Ivan T. Ivanov [Tue, 23 Jan 2024 08:07:59 +0000 (10:07 +0200)]
configs: rpi_arm64: build position independent code

Latest RPi5 EEPROM firmware versions after "DATE: 2023/10/30", has changed
kernel load address from 0x80000 to 0x200000 which break boot process.
Switch to position independent code to be able to boot the same binary
on top of different EEPROM firmware versions.

Tested on:
Raspberry Pi 5 Model B Rev 1.0
Raspberry Pi 4 Model B Rev 1.1
Raspberry Pi 3 Model B Plus Rev 1.3
Raspberry Pi Zero 2 W Rev 1.0
Raspberry Pi 2 Model B Rev 1.2
Raspberry Pi Compute Module 4 Rev 1.0
Raspberry Pi Compute Module 3 Rev 1.0

Tested-by: Jens Maus <mail@jens-maus.de>
Tested-by: Darko Alavanja <darko.alavanja@konsulko.com>
Signed-off-by: Ivan T. Ivanov <iivanov@suse.de>
Signed-off-by: Matthias Brugger <mbrugger@suse.com>
11 months agoconfigs: rpi_arm64: enable SDHCI BCMSTB driver
Ivan T. Ivanov [Tue, 23 Jan 2024 08:07:58 +0000 (10:07 +0200)]
configs: rpi_arm64: enable SDHCI BCMSTB driver

RPi5 have "brcm,bcm2712-sdhci" controller which is
handled by "sdhci-bcmstb" driver, so enable it.

Tested-by: Jens Maus <mail@jens-maus.de>
Tested-by: Darko Alavanja <darko.alavanja@konsulko.com>
Signed-off-by: Ivan T. Ivanov <iivanov@suse.de>
Signed-off-by: Matthias Brugger <mbrugger@suse.com>
11 months agommc: bcmstb: Add support for bcm2712 SD controller
Ivan T. Ivanov [Tue, 23 Jan 2024 08:07:57 +0000 (10:07 +0200)]
mmc: bcmstb: Add support for bcm2712 SD controller

Make sure that core SDHCI accessors are used and add
device specific card detection initialization, which
is borrowed from vendor Linux driver code.

Tested-by: Jens Maus <mail@jens-maus.de>
Tested-by: Darko Alavanja <darko.alavanja@konsulko.com>
Signed-off-by: Ivan T. Ivanov <iivanov@suse.de>
Signed-off-by: Matthias Brugger <mbrugger@suse.com>
11 months agobcm2835: Dynamically calculate bytes per pixel parameter
Ivan T. Ivanov [Tue, 23 Jan 2024 08:07:56 +0000 (10:07 +0200)]
bcm2835: Dynamically calculate bytes per pixel parameter

brcm,bcm2708-fb device provided by firmware on RPi5 uses
16 bits per pixel, so lets calculate framebuffer bytes
per pixel dynamically based on queried information.

Tested to work for RPi2b v1.2, RPi3b v1.3, RPi4b v1.1,
RPi2 Zero W, RPi5b v1.0.

Reviewed-by: Matthias Brugger <mbrugger@suse.com>
Tested-by: Jens Maus <mail@jens-maus.de>
Tested-by: Darko Alavanja <darko.alavanja@konsulko.com>
Signed-off-by: Ivan T. Ivanov <iivanov@suse.de>
Signed-off-by: Matthias Brugger <mbrugger@suse.com>
11 months agorpi5: Use devicetree to retrieve board revision
Ivan T. Ivanov [Tue, 23 Jan 2024 08:07:55 +0000 (10:07 +0200)]
rpi5: Use devicetree to retrieve board revision

Firmware on RPi5 return error on board revision query
through firmware interface, but on the other hand it fills
"linux,revision" in "system" node, so use it to detect board
revision.

system {
linux,revision = <0xc04170>;
linux,serial = <0x6cf44e80 0x3c533ede>;
};

Reviewed-by: Matthias Brugger <mbrugger@suse.com>
Tested-by: Jens Maus <mail@jens-maus.de>
Tested-by: Darko Alavanja <darko.alavanja@konsulko.com>
Signed-off-by: Ivan T. Ivanov <iivanov@suse.de>
Signed-off-by: Matthias Brugger <mbrugger@suse.com>
11 months agorpi5: Use devicetree as alternative way to read IO base addresses
Dmitry Malkin [Tue, 23 Jan 2024 08:07:54 +0000 (10:07 +0200)]
rpi5: Use devicetree as alternative way to read IO base addresses

MBOX and Watchdog on RPi5/bcm2712 have a different base IO offsets.
Find them via devicetree blob passed by bootloader.

Signed-off-by: Dmitry Malkin <dmitry@bedrocksystems.com>
Reviewed-by: Matthias Brugger <mbrugger@suse.com>
Tested-by: Jens Maus <mail@jens-maus.de>
Tested-by: Darko Alavanja <darko.alavanja@konsulko.com>
Signed-off-by: Ivan T. Ivanov <iivanov@suse.de>
Signed-off-by: Matthias Brugger <mbrugger@suse.com>
11 months agorpi5: add initial memory map for bcm2712
Dmitry Malkin [Tue, 23 Jan 2024 08:07:53 +0000 (10:07 +0200)]
rpi5: add initial memory map for bcm2712

This includes:
* 1GB of RAM (from 4GB or 8GB total)
* AXI ranges (main peripherals)

When HDMI cable is plugged in at boot time firmware will
insert "simple-framebuffer" device into devicetree and will
shrink first memory region to 0x3f800000UL. Board setup then
will properly reserve framebuffer region.

When no HDMI cable is plugged in the size of the region will
be 0x3fc00000UL.

Signed-off-by: Dmitry Malkin <dmitry@bedrocksystems.com>
Tested-by: Jens Maus <mail@jens-maus.de>
Tested-by: Darko Alavanja <darko.alavanja@konsulko.com>
Signed-off-by: Ivan T. Ivanov <iivanov@suse.de>
Signed-off-by: Matthias Brugger <mbrugger@suse.com>
11 months agoMerge tag 'clk-2024.04-rc2' of https://source.denx.de/u-boot/custodians/u-boot-clk
Tom Rini [Tue, 30 Jan 2024 12:54:28 +0000 (07:54 -0500)]
Merge tag 'clk-2024.04-rc2' of https://source.denx.de/u-boot/custodians/u-boot-clk

Clock changes for v2024.04

This pull has the usual fixes and new (clock-adjacent) drivers. It also has some
cleanups for the clock API; in particular removing the unused rfree callback.

CI: https://source.denx.de/u-boot/custodians/u-boot-clk/-/pipelines/19486

11 months agoARM: meson: stop printing board model after sysinfo update
Neil Armstrong [Wed, 24 Jan 2024 12:47:25 +0000 (13:47 +0100)]
ARM: meson: stop printing board model after sysinfo update

After the sysinfo update, Model is printed twice, remove
the now duplicate Model print from mach-meson/board-info.

Link: https://lore.kernel.org/r/20240124-u-boot-model-print-fix-v1-1-484960069623@linaro.org
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
11 months agoclk: clk-gpio: add actual gated clock
Svyatoslav Ryhel [Wed, 10 Jan 2024 16:09:56 +0000 (18:09 +0200)]
clk: clk-gpio: add actual gated clock

Existing gpio-gate-clock driver acts like a simple GPIO switch without any
effect on gated clock. Add actual clock actions into enable/disable ops and
implement get_rate op by passing gated clock if it is enabled.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
Reviewed-by: Sean Anderson <seanga2@gmail.com>
Link: https://lore.kernel.org/r/20240110160956.4476-2-clamor95@gmail.com
[ sorted includes ]
Signed-off-by: Sean Anderson <seanga2@gmail.com>
11 months agoclk: Document clk_ops return codes and behavior
Sean Anderson [Sat, 16 Dec 2023 19:38:43 +0000 (14:38 -0500)]
clk: Document clk_ops return codes and behavior

Currently, clock consumers cannot take any programmatic action based on the
return code of a clock function. This is because there is no
standardization, and generally no way of separating e.g. "there was a major
problem setting the rate for this clock" which usually should not be
recovered from, from "this clock doesn't support setting its rate" or "this
clock doesn't support *this* rate" which could be absolutely fine depending
on the driver.

This commit aims to standardize the acceptable codes which may be returned
from clock operations. In general,

- ENOSYS should be returned when an operation is not supported for a
  particular clock.
- ENOENT may be returned if the clock ID is invalid. However, it is
  encouraged to move any checks to request() to reduce code duplication.
- EINVAL should be returned for logical errors only (such as requesting an
  invalid rate).

Each function has had specific guidance added for when to return each error
code. This is just guidance for now; most of the clock subsystem does not
yet conform to this standard. However, it is expected that new clock
drivers return these error codes.

Additionally, this commit adds expected behavior for each of the clock
operations. I believe these should be mostly straightforward and correspond
to existing behavior. I remember not understanding what the expected
invariants were for several clock functions, so hopefully this should help
out new driver authors. In the future, some of these invariants could be
checked via an optional config option.

Signed-off-by: Sean Anderson <seanga2@gmail.com>
Link: https://lore.kernel.org/r/20231216193843.2463779-4-seanga2@gmail.com
11 months agotreewide: Remove clk_free
Sean Anderson [Sat, 16 Dec 2023 19:38:42 +0000 (14:38 -0500)]
treewide: Remove clk_free

This function is a no-op. Remove it.

Signed-off-by: Sean Anderson <seanga2@gmail.com>
Link: https://lore.kernel.org/r/20231216193843.2463779-3-seanga2@gmail.com