]> git.dujemihanovic.xyz Git - u-boot.git/log
u-boot.git
15 months agoReland "x86: Move FACP table into separate functions""
Simon Glass [Fri, 1 Sep 2023 17:27:09 +0000 (11:27 -0600)]
Reland "x86: Move FACP table into separate functions""

Each board has its own way of creating this table. Rather than calling the
acpi_create_fadt() function for each one from a common acpi_write_fadt()
function, just move the writer into the board-specific code.

Co-developed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Simon Glass <sjg@chromium.org>
Tested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
15 months agox86: coreboot: Avoid a declaration after a label
Simon Glass [Thu, 31 Aug 2023 17:20:53 +0000 (11:20 -0600)]
x86: coreboot: Avoid a declaration after a label

Declare the global_data pointer at the top of the file, to avoid an
error:

   arch/x86/include/asm/global_data.h:143:35: error: a label can
      only be part of a statement and a declaration is not a statement
   board/coreboot/coreboot/coreboot.c:60:2: note: in expansion of macro
      ‘DECLARE_GLOBAL_DATA_PTR’

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
15 months agoAllow Python packages to be dropped
Simon Glass [Thu, 31 Aug 2023 17:20:52 +0000 (11:20 -0600)]
Allow Python packages to be dropped

When building in a portage chroot, we do not have the environment needed
to build pylibfdt. It is instead build as a separate package.

Provide a build option to tell U-Boot to skip this part of the build. We
still need it to use binman, etc. but don't need it to build its
dependencies.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
[s/build bytes/builds bytes in tools.rst]
Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
15 months agox86: pxeboot: bugfix: Set variable for size of initrd
Thomas Mittelstaedt [Thu, 4 May 2023 13:42:55 +0000 (13:42 +0000)]
x86: pxeboot: bugfix: Set variable for size of initrd

The problem was, that zboot() didn't work because of missing
ramdisc size.

Signed-off-by: Thomas Mittelstaedt <thomas.mittelstaedt@de.bosch.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
15 months agox86: efi-payload64: Add bootstd support
Thomas Mittelstaedt [Thu, 4 May 2023 13:42:54 +0000 (13:42 +0000)]
x86: efi-payload64: Add bootstd support

Enable bootstd support for U-Boot at VirtualBox described at
https://source.denx.de/u-boot/u-boot/-/blob/master/doc/develop/bootstd.rst

This is used to boot system images at Virtualbox via
- distroboot (extlinux.conf)
- boot script

Signed-off-by: Thomas Mittelstaedt <thomas.mittelstaedt@bosch.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
[Added 'efi-payload64' tag]
Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
15 months agox86: efi-payload64: Add support for SCSI devices
Thomas Mittelstaedt [Thu, 4 May 2023 13:42:53 +0000 (13:42 +0000)]
x86: efi-payload64: Add support for SCSI devices

U-Boot at VirtualBox must load Linux and boot configuration from disk devices.
Here the discs at AHCI (scsi) bus are used to load the needed boot data.

Signed-off-by: Thomas Mittelstaedt <thomas.mittelstaedt@de.bosch.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
[Added 'efi-payload64' tag and rebased on top of u-boot/master]
Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
15 months agox86: cpu: i386: cpu: only set pci_ram_top if CONFIG_IS_ENABLED(PCI)
Troy Kisky [Mon, 13 Mar 2023 21:31:43 +0000 (14:31 -0700)]
x86: cpu: i386: cpu: only set pci_ram_top if CONFIG_IS_ENABLED(PCI)

This avoids an error when ifdef CONFIG_PCI is changed to
if CONFIG_IS_ENABLED(PCI)

Signed-off-by: Troy Kisky <troykiskyboundary@gmail.com>
[Rebased on top of u-boot/master]
Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
15 months agoMerge tag 'xilinx-for-v2024.01-rc1-v2' of https://source.denx.de/u-boot/custodians...
Tom Rini [Thu, 21 Sep 2023 14:51:58 +0000 (10:51 -0400)]
Merge tag 'xilinx-for-v2024.01-rc1-v2' of https://source.denx.de/u-boot/custodians/u-boot-microblaze into next

Xilinx changes for v2024.01-rc1

clk:
- Dont return error when assigned-clocks is empty or missing

dm:
- Support reading a single indexed u64 value
- Add support for reading bootscript address/flash address from DT

cmd:
- Fix flash_is_unlocked API

fpga:
- Define fpga_load() for debug build

global:
- U-Boot project name cleanup (next2)

net:
- zynq_gem: Use generic_phy_valid() helper
- axienet: Convert to ofnode functions
- gmii2rgmii: Read bridge address from DT

pytest:
- skip tpm2_startup when env__tpm_device_test_skip=True

spi-nor:
- Add mx25u25635f support
- zynqmp_qspi: Tune cache behavior

trace:
- Fix flyrecord alignment issue

xilinx:
- Move scriptaddr to DT as bootscr-address
- Pick script_offset_f/script_size_f from DT as bootscr-flash-offset/size
- Do not generate distro boot variables if disabled

versal:
- Extend memory ranges to cover HBM
- Enable TPM, sha1sum and KASLRSEED
- Fix distroboot prioritization in connection to available devices
- Clean mini targets bootcommand
- Fix clock driver

versal-net:
- Enable TPM, sha1sum and KASLRSEED
- Fix distroboot prioritization in connection to available devices

zynqmp;
- Allow AES to run from SPL
- Enable CMD_KASLRSEED
- Add proper dependencies for USB and remove ZYNQMP_USB
- Fix user si570 default frequency for zcu* boards
- Cover SOM rev2 revision
- Various DT changes
- Add firmware and pinctrl support for tristate configuration
  (high impedance/output enable)
- Add output-enable pins to SOMs
- Fix distroboot prioritization in connection to available devices
- Read bootscript address/flash address from DT
- Fix pcap_prog address

15 months agoMerge branch 'next' of https://source.denx.de/u-boot/custodians/u-boot-riscv into...
Tom Rini [Thu, 21 Sep 2023 14:51:15 +0000 (10:51 -0400)]
Merge branch 'next' of https://source.denx.de/u-boot/custodians/u-boot-riscv into next

+ Add NVMe & USB boot devices for VisionFive2
+ Add StarFive SPL image support in mkimage tool

15 months agospi: zynqmp_qspi: Workaround for small data cache issue
Venkatesh Yadav Abbarapu [Fri, 15 Sep 2023 03:17:59 +0000 (08:47 +0530)]
spi: zynqmp_qspi: Workaround for small data cache issue

Cache related issues are seen with small sized data reads.
Due to this, proper data is not read. Also some times sf probe
fails randomly. To workaround this issue, invalidate dcache after read DMA
is triggered.

Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma@amd.com>
Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Link: https://lore.kernel.org/r/20230915031759.28889-3-venkatesh.abbarapu@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
15 months agospi: zynqmp_qspi: Change flush cache to invalidate cache
Ashok Reddy Soma [Fri, 15 Sep 2023 03:17:58 +0000 (08:47 +0530)]
spi: zynqmp_qspi: Change flush cache to invalidate cache

Before DMA read, ideally cache should be invalidated, so that data from
memory will be updated to cache after DMA is completed. But
flush_dcache_range is being used which is incorrect. Change
flush_dcache_range to invalidate_dcache_range.

Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma@amd.com>
Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Link: https://lore.kernel.org/r/20230915031759.28889-2-venkatesh.abbarapu@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
15 months agotrace: Fix alignment logic in flyrecord header
Michal Simek [Fri, 15 Sep 2023 12:12:05 +0000 (14:12 +0200)]
trace: Fix alignment logic in flyrecord header

Current alignment which is using 16 bytes is not correct in connection to
trace_clocks description and it's length.
That's why use start_addr variable and record proper size based on used
entries.

Fixes: be16fc81b2ed ("trace: Update proftool to use new binary format").
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/691dad64df80993ca4cfb6d0e33964ed26f50bee.1694779918.git.michal.simek@amd.com
15 months agotrace: Move trace_clocks description above record offset calculation
Michal Simek [Fri, 15 Sep 2023 12:12:04 +0000 (14:12 +0200)]
trace: Move trace_clocks description above record offset calculation

Flyrecord tracing data are page aligned that's why it is necessary to
calculate alignment properly. Because trace_clocks description is the part
of record length it is necessary to have information about length earlier.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/d3853d91b6fa7e3a1e5c24dd3c17335cf0041b5b.1694779918.git.michal.simek@amd.com
15 months agotrace: Use 64bit variable for start and len
Michal Simek [Fri, 15 Sep 2023 12:12:03 +0000 (14:12 +0200)]
trace: Use 64bit variable for start and len

tputq() requires variables to have 64bit width that's why make them 64bit
to clean alignment requirement.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/6edb34ef1f10010d2380f964fb6b4fb3dc257799.1694779918.git.michal.simek@amd.com
15 months agocmd: sf: Fix the flash_is_unlocked api size parameter
Venkatesh Yadav Abbarapu [Wed, 20 Sep 2023 02:54:50 +0000 (08:24 +0530)]
cmd: sf: Fix the flash_is_unlocked api size parameter

When flash erase is called with size parameter, code is checking
if sectors are locked or not. But for checking, the whole device
length minus offset is used instead of actual size which should
be erased. That's why when only some sectors are locked it is
not possible to erase unlocked sectors.

The length is calculated as "length = max_chipsize - offset",
flash_is_unlocked() api is getting updated with length which is
incorrect. Fix this flash_is_unlocked() api by passing the size
parameter.

ZynqMP> sf erase 0 100000
len=0x8000000 which is flash size
size=0x100000

We need to update the size in the flash_is_unlocked() api and not
the length.

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Link: https://lore.kernel.org/r/20230920025450.6281-1-venkatesh.abbarapu@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
15 months agozynqmp: config: Add proper dependencies for USB
Venkatesh Yadav Abbarapu [Mon, 4 Sep 2023 03:15:28 +0000 (08:45 +0530)]
zynqmp: config: Add proper dependencies for USB

When CONFIG_CMD_USB and CONFIG_USB are disabled, still some compilation
errors are seen as below.

In file included from include/configs/xilinx_zynqmp.h:173,
                 from include/config.h:3,
                 from include/common.h:16,
                 from env/common.c:10:
include/config_distro_bootcmd.h:302:9: error: expected '}' before 'BOOT_TARGET_DEVICES_references_USB_without_CONFIG_CMD_USB'
  302 |         BOOT_TARGET_DEVICES_references_USB_without_CONFIG_CMD_USB
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/config_distro_bootcmd.h:302:9: note: in definition of macro
'BOOTENV_DEV_NAME_USB'
  302 |         BOOT_TARGET_DEVICES_references_USB_without_CONFIG_CMD_USB
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/configs/xilinx_zynqmp.h:77:41: note: in expansion of macro
'BOOTENV_DEV_NAME'
   77 | # define BOOT_TARGET_DEVICES_USB(func)  func(USB, usb, 0)
   func(USB, usb, 1)
      |                                         ^~~~
include/configs/xilinx_zynqmp.h:168:9: note: in expansion of macro
'BOOT_TARGET_DEVICES_USB'
  168 |         BOOT_TARGET_DEVICES_USB(func) \
      |         ^~~~~~~~~~~~~~~~~~~~~~~
include/config_distro_bootcmd.h:454:25: note: in expansion of macro
'BOOT_TARGET_DEVICES'
  454 |         "boot_targets=" BOOT_TARGET_DEVICES(BOOTENV_DEV_NAME) "\0"
      |                         ^~~~~~~~~~~~~~~~~~~
include/config_distro_bootcmd.h:474:9: note: in expansion of macro
'BOOTENV_BOOT_TARGETS'
  474 |         BOOTENV_BOOT_TARGETS \
      |         ^~~~~~~~~~~~~~~~~~~~
include/configs/xilinx_zynqmp.h:179:9: note: in expansion of macro
'BOOTENV'
  179 |         BOOTENV
      |         ^~~~~~~
include/env_default.h:120:9: note: in expansion of macro
'CFG_EXTRA_ENV_SETTINGS'
  120 |         CFG_EXTRA_ENV_SETTINGS
      |         ^~~~~~~~~~~~~~~~~~~~~~
In file included from env/common.c:32:
include/env_default.h:27:36: note: to match this '{'
   27 | const char default_environment[] = {
      |                                    ^
scripts/Makefile.build:256: recipe for target 'env/common.o' failed
make[1]: *** [env/common.o] Error 1
Makefile:1853: recipe for target 'env' failed
make: *** [env] Error 2
make: *** Waiting for unfinished jobs....

Add CONFIG_USB_STORAGE as dependency for USB related macro's such as
BOOT_TARGET_DEVICES_USB() and DFU_DEFAULT_POLL_TIMEOUT and
CONFIG_THOR_RESET_OFF.

Remove CONFIG_ZYNQMP_USB from Kconfig and also from defconfig since it
is not used anywhere else.

Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma@amd.com>
Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Link: https://lore.kernel.org/r/20230904031528.11817-3-venkatesh.abbarapu@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
15 months agocmd: thordown: Add proper dependency for CMD_THOR_DOWNLOAD
Venkatesh Yadav Abbarapu [Mon, 4 Sep 2023 03:15:27 +0000 (08:45 +0530)]
cmd: thordown: Add proper dependency for CMD_THOR_DOWNLOAD

When CONFIG_CMD_USB and CONFIG_USB are disabled some compilation errors are seen as below.

cmd/thordown.o: in function `usb_gadget_initialize':
include/linux/usb/gadget.h:981: undefined reference to `board_usb_init'
cmd/thordown.o: in function `do_thor_down':
cmd/thordown.c:68: undefined reference to `g_dnl_unregister'
cmd/thordown.o: in function `usb_gadget_release':
include/linux/usb/gadget.h:986: undefined reference to `board_usb_cleanup'
cmd/thordown.o: in function `do_thor_down':
cmd/thordown.c:41: undefined reference to `g_dnl_register'
cmd/thordown.c:48: undefined reference to `thor_init'
cmd/thordown.c:56: undefined reference to `thor_handle'
gnu/aarch64/lin/aarch64-linux/bin/aarch64-linux-gnu-ld.bfd: line 4:  8485
Segmentation fault      (core dumped) $CC --sysroot=$LIBC
--no-warn-rwx-segment "$@"
Makefile:1779: recipe for target 'u-boot' failed
make: *** [u-boot] Error 139
make: *** Deleting file 'u-boot'

Add dependency of USB_GADGET_DOWNLOAD for CONFIG_CMD_THOR_DOWNLOAD to fix the errors.

Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma@amd.com>
Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Link: https://lore.kernel.org/r/20230904031528.11817-2-venkatesh.abbarapu@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
15 months agoclk: versal: Fix the function versal_clock_ref
Venkatesh Yadav Abbarapu [Tue, 12 Sep 2023 03:30:55 +0000 (09:00 +0530)]
clk: versal: Fix the function versal_clock_ref

For reference clocks, PM_CLK_GET_PARENT call is not allowed.
PM_CLK_GET_PARENT only allowed for MUX clocks. Rename the
versal_clock_ref() with versal_clock_get_ref_rate() for better
readability. Fix the versal_clock_get_ref_rate function by
passing the parent_id, and check whether the parent_id
belongs to ref_clk or pl_alt_ref_clk.
Also adding the function versal_clock_get_fixed_factor_rate()
if the clk_id belongs to the fixed factor clock.

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Link: https://lore.kernel.org/r/20230912033055.2549-1-venkatesh.abbarapu@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
15 months agoarm64: zynqmp: Update ECAM size to discover up to 256 buses
Thippeswamy Havalige [Mon, 11 Sep 2023 14:10:50 +0000 (16:10 +0200)]
arm64: zynqmp: Update ECAM size to discover up to 256 buses

Update ECAM size to discover up to 256 buses

Signed-off-by: Thippeswamy Havalige <thippeswamy.havalige@amd.com>
Acked-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/087391c3e1f60b0a765fca081d47ce632fda8f06.1694441445.git.michal.simek@amd.com
15 months agoarm64: zynqmp: Add resets property for CAN nodes
Srinivas Neeli [Mon, 11 Sep 2023 14:10:49 +0000 (16:10 +0200)]
arm64: zynqmp: Add resets property for CAN nodes

Added resets property for CAN nodes.

Signed-off-by: Srinivas Neeli <srinivas.neeli@amd.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/c4efb7ac361eec591a2f775e161ec446c4dc04c1.1694441445.git.michal.simek@amd.com
15 months agoarm64: zynqmp: Fix i2c address for si570_user1 clock
Saeed Nowshadi [Mon, 11 Sep 2023 14:10:48 +0000 (16:10 +0200)]
arm64: zynqmp: Fix i2c address for si570_user1 clock

Correct the i2c address for si570 oscillator that generates the si570_user1
clock. i2c address was changed by commit b6a8c603d680 ("arm64: zynqmp: Fix
i2c addresses for vck190 SC") because address in node name wasn't aligned
with reg property. But actual 0x5f address is correct which is quite rare
because all other si570s are at 0x5d.

Signed-off-by: Saeed Nowshadi <saeed.nowshadi@amd.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/6f31881b0e2dd657f0d4ff0869c009c2e1224f22.1694441445.git.michal.simek@amd.com
15 months agoarm64: versal: Add no-wp DT property in OSPI flash node
Amit Kumar Mahapatra [Mon, 11 Sep 2023 14:10:47 +0000 (16:10 +0200)]
arm64: versal: Add no-wp DT property in OSPI flash node

Added no-wp DT property in OSPI flash node for all board dts & dtsi files
on which the WP# signal of the OSPI flash device is not connected. If this
property is set, then the software will avoid setting the status register
write disable (SRWD) bit in status register during status register
write operation.

Signed-off-by: Amit Kumar Mahapatra <amit.kumar-mahapatra@amd.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/7e88dd7b9306bdf0738b2248bf9017e1997d25dc.1694441445.git.michal.simek@amd.com
15 months agoarm64: zynqmp: Rename xlnx, mio_bank to xlnx, mio-bank for DLC21
Michal Simek [Mon, 11 Sep 2023 14:10:46 +0000 (16:10 +0200)]
arm64: zynqmp: Rename xlnx, mio_bank to xlnx, mio-bank for DLC21

xlnx,mio_bank was used in past but it was renamed to xlnx,mio-bank because
'_' in property shoudln't be used. There is no impact on the platform
because if the properly is not defined bank 0 is default. Bank 0 and 1 have
the same configuration that's why there shouldn't be any issue.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/ace68d4b7701d1606a85cb18242409fce941b363.1694441445.git.michal.simek@amd.com
15 months agodm: core: ofnode: Fix error message in ofnode_read_bootscript_address/flash()
Michal Simek [Mon, 11 Sep 2023 13:30:01 +0000 (15:30 +0200)]
dm: core: ofnode: Fix error message in ofnode_read_bootscript_address/flash()

Missing u-boot node shouldn't be visible in bootlog without debug enabled
that's why change message from printf to debug.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/ff62e980237ab271cf05facfbc306e85914a8c6e.1694438999.git.michal.simek@amd.com
15 months agonet: phy: xilinx-gmii2rgmii: Removed hardcoded phy address 0 for bridge
Tejas Bhumkar [Fri, 15 Sep 2023 04:50:43 +0000 (10:20 +0530)]
net: phy: xilinx-gmii2rgmii: Removed hardcoded phy address 0 for bridge

Current code expects bridge phy address at 0 which is not correct
expectation because bridge phy address is configurable.
That's why update the code to read reg property to figure it out
where bridge is and use it in phy creation code.

Signed-off-by: Tejas Bhumkar <tejas.arvind.bhumkar@amd.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/20230915045043.4167628-1-tejas.arvind.bhumkar@amd.com
15 months agoarm64: zynqmp: Corrected pcap_prog register address
Lukas Funke [Fri, 15 Sep 2023 09:39:01 +0000 (11:39 +0200)]
arm64: zynqmp: Corrected pcap_prog register address

Currently the pcap_prog struct variable is pointing to 0x3004 which is
incorrect according to [1]. The variable should point to 0x3000.

[1] https://www.xilinx.com/htmldocs/registers/ug1087/ug1087-zynq-ultrascale-registers.html#csu___pcap_prog.html

Signed-off-by: Lukas Funke <lukas.funke@weidmueller.com>
Link: https://lore.kernel.org/r/20230915093901.1062825-1-lukas.funke-oss@weidmueller.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
15 months agoglobal: Use proper project name U-Boot (next2)
Michal Simek [Fri, 8 Sep 2023 07:11:31 +0000 (09:11 +0200)]
global: Use proper project name U-Boot (next2)

Use proper project name in README, rst and comment.
Done in connection to commit bb922ca3eb4b ("global: Use proper project name
U-Boot (next)").

Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Alexander Graf <graf@csgraf.de> (ppce500)
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/536af05e7061982f15b668e87f941cdabfa25392.1694157084.git.michal.simek@amd.com
15 months agonet: axi_emac: Convert to ofnode functions
Maxim Kochetkov [Fri, 11 Aug 2023 07:43:51 +0000 (10:43 +0300)]
net: axi_emac: Convert to ofnode functions

FDT functions is not working when OF_LIVE is enabled.
Convert fdt parsing functions to ofnode parsing functions.

Signed-off-by: Maxim Kochetkov <fido_max@inbox.ru>
Link: https://lore.kernel.org/r/20230811074351.26916-1-fido_max@inbox.ru
15 months agoarm64: xilinx: Guard distro boot variable generation
Michal Simek [Tue, 5 Sep 2023 11:30:07 +0000 (13:30 +0200)]
arm64: xilinx: Guard distro boot variable generation

When distro boot is disabled there is no reason to generate variables for
it. Also do not update boot_targets variable because it would be unused.

It is useful for example when standard boot is enabled and distro boot
is disabled.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/570c51435da59831ec245cddceda078afa58a550.1693913398.git.michal.simek@amd.com
15 months agoarm64: versal: Do not define boot command for mini configurations
Michal Simek [Tue, 5 Sep 2023 08:23:36 +0000 (10:23 +0200)]
arm64: versal: Do not define boot command for mini configurations

Mini configuration is not design to boot anything that's why there is no
reason to setup boot command. CONFIG_DISTRO_DEFAULTS is disabled anyway.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/41ac52d946ac53d162c407094dc215e6a932af92.1693902205.git.michal.simek@amd.com
15 months agoxilinx: zynqmp: Do not setup boot_targets if driver is not enabled
Venkatesh Yadav Abbarapu [Mon, 4 Sep 2023 03:20:35 +0000 (08:50 +0530)]
xilinx: zynqmp: Do not setup boot_targets if driver is not enabled

SOC can boot in the device which is not accessible from APU and running
this is detected as error which ends up in stopping boot process.
Boot mode detection and logic around is present to setup priority on boot
devices that SOC boot device is likely also used for booting OS.
Change logic to detect this case with showing message about it but don't fail
in boot process and don't prioritize boot device in this case.

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/20230904032035.11926-4-venkatesh.abbarapu@amd.com
15 months agoxilinx: versal: Do not setup boot_targets if driver is not enabled
Venkatesh Yadav Abbarapu [Mon, 4 Sep 2023 03:20:34 +0000 (08:50 +0530)]
xilinx: versal: Do not setup boot_targets if driver is not enabled

SOC can boot in the device which is not accessible from APU and running
this is detected as error which ends up in stopping boot process.
Boot mode detection and logic around is present to setup priority on boot
devices that SOC boot device is likely also used for booting OS.
Change logic to detect this case with showing message about it but don't fail
in boot process and don't prioritize boot device in this case.

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/20230904032035.11926-3-venkatesh.abbarapu@amd.com
15 months agoxilinx: versal-net: Do not setup boot_targets if driver is not enabled
Venkatesh Yadav Abbarapu [Mon, 4 Sep 2023 03:20:33 +0000 (08:50 +0530)]
xilinx: versal-net: Do not setup boot_targets if driver is not enabled

SOC can boot in the device which is not accessible from APU and running
this is detected as error which ends up in stopping boot process.
Boot mode detection and logic around is present to setup priority
on boot devices that SOC boot device is likely also used for booting OS.
Change logic to detect this case with showing message about it but don't
fail in boot process and don't prioritize boot device in this case.

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/20230904032035.11926-2-venkatesh.abbarapu@amd.com
15 months agoxilinx: board: Add support to pick bootscr flash offset/size from DT
Michal Simek [Thu, 31 Aug 2023 07:04:28 +0000 (09:04 +0200)]
xilinx: board: Add support to pick bootscr flash offset/size from DT

Location of bootscript in flash can be specified via /options/u-boot DT
node by using bootscr-flash-offset and bootscr-flash-size properties.
Values should be saved to script_offset_f and script_size_f variables.
Variables are described in doc/develop/bootstd.rst as:
script_offset_f
    SPI flash offset from which to load the U-Boot script, e.g. 0xffe000

script_size_f
    Size of the script to load, e.g. 0x2000

Both of them are used by sf_get_bootflow() in drivers/mtd/spi/sf_bootdev.c
to identify bootscript location inside flash.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/60a84405f3fefabb8b48a4e1ce84431483a729f3.1693465465.git.michal.simek@amd.com
15 months agodm: core: ofnode: Add ofnode_read_bootscript_flash()
Michal Simek [Thu, 31 Aug 2023 07:04:27 +0000 (09:04 +0200)]
dm: core: ofnode: Add ofnode_read_bootscript_flash()

ofnode_read_bootscript_flash() reads bootscript address from
/options/u-boot DT node. bootscr-flash-offset and bootscr-flash-size
properties are read and values are filled. When bootscr-flash-size is not
defined, bootscr-flash-offset property is unusable that's why cleaned.
Both of these properties should be defined to function properly.

Also add test to cover this new function.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/08a3e6c09cce13287c69ad370e409e7f1766b406.1693465465.git.michal.simek@amd.com
15 months agoarm64: zynqmp: Add output-enable pins to SOMs
Neal Frager [Thu, 31 Aug 2023 14:27:53 +0000 (16:27 +0200)]
arm64: zynqmp: Add output-enable pins to SOMs

Now that the zynqmp pinctrl driver supports the tri-state registers, make
sure that the pins requiring output-enable are configured appropriately for
SOMs.

Without it, all tristate setting for MIOs, which are not related to SOM
itself, are using default configuration which is not correct setting.
It means SDs, USBs, ethernet, etc. are not working properly.

In past it was fixed through calling tristate configuration via bootcmd:
usb_init=mw 0xFF180208 2020
kv260_gem3=mw 0xFF18020C 0xFC0 && gpio toggle gpio@ff0a000038 && \
  gpio toggle gpio@ff0a000038

Signed-off-by: Neal Frager <neal.frager@amd.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/7ecd98b2a302c5c6628e0234482f23c38e721fd6.1693492064.git.michal.simek@amd.com
15 months agoxilinx: board: Add support to pick bootscr address from DT
Algapally Santosh Sagar [Thu, 31 Aug 2023 06:59:06 +0000 (08:59 +0200)]
xilinx: board: Add support to pick bootscr address from DT

The bootscript is expected at a default address specific to each
platform.
When high speed memory like Programmable Logic Double Data Rate RAM
(PL DDR RAM) or Higher Bandwidth Memory RAM (HBM) is used the boot.scr
may be loaded at a different offset. The offset needs to be set through
setenv. Due to the default values in some cases the boot.scr is falling
in between the kernel partition.

The bootscript address or the bootscript offset is fetched directly from
the DT and updated in the environment making it easier for automated
flows.

Signed-off-by: Algapally Santosh Sagar <santoshsagar.algapally@amd.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/fac7020b31e1f150b021d666f0d588579ea671ad.1693465140.git.michal.simek@amd.com
15 months agodm: core: ofnode: Add ofnode_read_bootscript_address()
Michal Simek [Thu, 31 Aug 2023 06:59:05 +0000 (08:59 +0200)]
dm: core: ofnode: Add ofnode_read_bootscript_address()

ofnode_read_bootscript_address() reads bootscript address from
/options/u-boot DT node. bootscr-address or bootscr-ram-offset properties
are read and values are filled. bootscr-address has higher priority than
bootscr-ram-offset and the only one should be described in DT.

Also add test to cover this new function.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/23be3838502efef61803c90ef6e8b32bbd6ede41.1693465140.git.michal.simek@amd.com
15 months agoclk: Dont return error when assigned-clocks is empty or missing
Ashok Reddy Soma [Wed, 30 Aug 2023 08:31:42 +0000 (10:31 +0200)]
clk: Dont return error when assigned-clocks is empty or missing

There is a chance that assigned-clock-rates is given and assigned-clocks
could be empty. Dont return error in that case, because the probe of the
corresponding driver will not be called at all if this fails.
Better to continue to look for it and return 0.

Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma@amd.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/a9a9d853e0ac396cd9b3577cce26279a75765711.1693384296.git.michal.simek@amd.com
15 months agoarm64: versal-net: Enable the config CMD_KASLRSEED
Venkatesh Yadav Abbarapu [Thu, 31 Aug 2023 03:16:58 +0000 (08:46 +0530)]
arm64: versal-net: Enable the config CMD_KASLRSEED

Kernel Address Space Layout Randomization (KASLR) is a hardening
feature that aims to make it more difficult to take advantage
of known exploits in the kernel, by placing kernel data
structures at a random address at each boot.The bootloader
supports randomizing the virtual address at which the kernel image
is loaded. The bootloader must provide entropy by passing a random
u64 value in the /chosen/kaslr-seed device tree node.
When we run "kaslrseed" command from U-Boot, the bootloader will
genarate the kaslr-seed and update the /chosen/kaslr-seed DT property.

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Link: https://lore.kernel.org/r/20230831031658.2203-4-venkatesh.abbarapu@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
15 months agoarm64: versal-net: Enable sha1sum command
Venkatesh Yadav Abbarapu [Thu, 31 Aug 2023 03:16:57 +0000 (08:46 +0530)]
arm64: versal-net: Enable sha1sum command

Enable it for TPM usage.

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Link: https://lore.kernel.org/r/20230831031658.2203-3-venkatesh.abbarapu@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
15 months agoarm64: versal-net: Enable TPM for xilinx platforms
Venkatesh Yadav Abbarapu [Thu, 31 Aug 2023 03:16:56 +0000 (08:46 +0530)]
arm64: versal-net: Enable TPM for xilinx platforms

TPMs are becoming popular that's why enable drivers and command for it.

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Link: https://lore.kernel.org/r/20230831031658.2203-2-venkatesh.abbarapu@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
15 months agoarm64: versal: Enable the config CMD_KASLRSEED
Venkatesh Yadav Abbarapu [Thu, 31 Aug 2023 03:26:12 +0000 (08:56 +0530)]
arm64: versal: Enable the config CMD_KASLRSEED

Kernel Address Space Layout Randomization (KASLR) is a hardening
feature that aims to make it more difficult to take advantage
of known exploits in the kernel, by placing kernel data structures
at a random address at each boot.The bootloader supports randomizing
the virtual address at which the kernel image is loaded.
The bootloader must provide entropy by passing a random u64 value
in the /chosen/kaslr-seed device tree node.
When we run "kaslrseed" command from U-Boot, the bootloader will
genarate the kaslr-seed and update the /chosen/kaslr-seed DT property.

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Link: https://lore.kernel.org/r/20230831032612.2729-4-venkatesh.abbarapu@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
15 months agoarm64: versal: Enable sha1sum command
Venkatesh Yadav Abbarapu [Thu, 31 Aug 2023 03:26:11 +0000 (08:56 +0530)]
arm64: versal: Enable sha1sum command

Enable it for TPM usage.

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Link: https://lore.kernel.org/r/20230831032612.2729-3-venkatesh.abbarapu@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
15 months agoarm64: versal: Enable TPM for xilinx platforms
Venkatesh Yadav Abbarapu [Thu, 31 Aug 2023 03:26:10 +0000 (08:56 +0530)]
arm64: versal: Enable TPM for xilinx platforms

TPMs are becoming popular that's why enable drivers
and command for it.

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Link: https://lore.kernel.org/r/20230831032612.2729-2-venkatesh.abbarapu@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
15 months agotest/py: tpm2: skip tpm2_startup when env__tpm_device_test_skip=True
Michal Simek [Wed, 30 Aug 2023 16:36:23 +0000 (18:36 +0200)]
test/py: tpm2: skip tpm2_startup when env__tpm_device_test_skip=True

All tpm2 tests should be possible to skip when
env__tpm_device_test_skip=True but test_tpm2_startup is missing it.

Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/41f932e52bdd206b1b68d5ff313fc29b794a70e7.1693413381.git.michal.simek@amd.com
15 months agofpga: define dummy fpga_load function for debug build
Chanho Park [Thu, 31 Aug 2023 07:52:47 +0000 (16:52 +0900)]
fpga: define dummy fpga_load function for debug build

This fixes below build error when CC_OPTIMIZE_FOR_DEBUG is enabled and
CONFIG_FPGA or CONFIG_SPL_FPGA are not enabled.
When CC_OPTIMIZE_FOR_DEBUG is enabled, unused code will not be optimized
out. Hence, fpga_load function must have a dummy implementation to avoid
the build error.

../common/spl/spl_fit.c:591: undefined reference to `fpga_load'
collect2: error: ld returned 1 exit status

Signed-off-by: Chanho Park <chanho61.park@samsung.com>
Link: https://lore.kernel.org/r/20230831075247.137501-1-chanho61.park@samsung.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
15 months agopinctrl: zynqmp: Add support for output-enable and bias-high-impedance
Ashok Reddy Soma [Fri, 11 Aug 2023 05:48:29 +0000 (23:48 -0600)]
pinctrl: zynqmp: Add support for output-enable and bias-high-impedance

Add support to handle 'output-enable' and 'bias-high-impedance'
configurations in pinctrl driver.

Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma@amd.com>
Link: https://lore.kernel.org/r/20230811054829.13162-4-ashok.reddy.soma@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
15 months agopinctrl: zynqmp: Add version check for TRISTATE configuration
Ashok Reddy Soma [Fri, 11 Aug 2023 05:48:28 +0000 (23:48 -0600)]
pinctrl: zynqmp: Add version check for TRISTATE configuration

Support for configuring TRISTATE parameter is added in ZYNQMP PMUFW(Xilinx
ZynqMP Platform Management Firmware) Configuration Param Set version 2.0.
If the requested configuration is TRISTATE then check the version before
requesting Xilinx firmware to set the configuration.

Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma@amd.com>
Link: https://lore.kernel.org/r/20230811054829.13162-3-ashok.reddy.soma@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
15 months agofirmware: zynqmp: Add support to check feature
Ashok Reddy Soma [Fri, 11 Aug 2023 05:48:27 +0000 (23:48 -0600)]
firmware: zynqmp: Add support to check feature

Add firmware API to check if given feature is supported.

Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma@amd.com>
Link: https://lore.kernel.org/r/20230811054829.13162-2-ashok.reddy.soma@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
15 months agodm: core: support reading a single indexed u64 value
Michal Simek [Fri, 25 Aug 2023 09:37:46 +0000 (11:37 +0200)]
dm: core: support reading a single indexed u64 value

Add helper function to allow reading a single indexed u64 value from a
device-tree property containing multiple u64 values, that is an array of
u64's.

Co-developed-by: Ashok Reddy Soma <ashok.reddy.soma@amd.com>
Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma@amd.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/08043c8d204d0068f04c27de86afe78c75c50b69.1692956263.git.michal.simek@amd.com
15 months agoarm64: zynqmp: Add support for K26 rev2 boards
Michal Simek [Fri, 25 Aug 2023 08:10:07 +0000 (10:10 +0200)]
arm64: zynqmp: Add support for K26 rev2 boards

Revision 2 is SW compatible with revision 1 but it is necessary to reflect
it in model and compatible properties which are parsed by user space.
Rev 2 has improved a power on boot reset and MIO34 shutdown glich
improvement done via an additional filter in the GreenPak chip.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/6b9e68ebfb436da391daeb147f2a9985ac984c0c.1692951005.git.michal.simek@amd.com
15 months agoarm64: zynqmp: Setup default si570 frequency to 156.25MHz
Michal Simek [Fri, 25 Aug 2023 07:11:29 +0000 (09:11 +0200)]
arm64: zynqmp: Setup default si570 frequency to 156.25MHz

All si570 mgt chips have factory default 156.25MHz but DT changed it to
148.5MHz. After tracking it is pretty much c&p fault taken from Zynq
zc702/zc706 boards where 148.5MHz was setup as default because it was
requirement for AD7511 chip available on these boards.
ZynqMP board don't contain this chip that's why factory default frequency
can be used.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/c052ddf39e392e97f87f1c57ea06f3508733c672.1692947486.git.michal.simek@amd.com
15 months agodrivers/mtd/spi/spi-nor-ids.c: add mx25u25635f support
Neal Frager [Mon, 21 Aug 2023 12:45:02 +0000 (13:45 +0100)]
drivers/mtd/spi/spi-nor-ids.c: add mx25u25635f support

This patch adds support for the MX25U25635F QSPI Flash Memory.

Signed-off-by: Neal Frager <neal.frager@amd.com>
Link: https://lore.kernel.org/r/20230821124502.3308208-1-neal.frager@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
15 months agoarm64: zynqmp: Enable the config CMD_KASLRSEED
Venkatesh Yadav Abbarapu [Thu, 24 Aug 2023 03:27:12 +0000 (08:57 +0530)]
arm64: zynqmp: Enable the config CMD_KASLRSEED

Kernel Address Space Layout Randomization (KASLR) is a hardening
feature that aims to make it more difficult to take advantage
of known exploits in the kernel, by placing kernel data structures
at a random address at each boot.The bootloader supports randomizing
the virtual address at which the kernel image is loaded.
The bootloader must provide entropy by passing a random u64 value
in the /chosen/kaslr-seed device tree node.
When we run "kaslrseed" command from U-Boot, the bootloader will
genarate the kaslr-seed and update the /chosen/kaslr-seed DT property.

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Link: https://lore.kernel.org/r/20230824032712.13399-1-venkatesh.abbarapu@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
15 months agoxilinx: Remove scriptaddr from config files and move it to DT
Michal Simek [Thu, 3 Aug 2023 12:51:53 +0000 (14:51 +0200)]
xilinx: Remove scriptaddr from config files and move it to DT

Define bootscript address in RAM via DT property and remove it from config
file. Adding default value to common DTSI. Platform DT description can
remove this property or rewrite it.

In Zynq case scriptaddr property was defined twice for no reason.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/d36ffeb00ed8f0ca4bb67d4983d1852d01ade637.1691067102.git.michal.simek@amd.com
15 months agoarm64: versal: Increase the number of DRAM banks to 36
Venkatesh Yadav Abbarapu [Wed, 2 Aug 2023 06:35:05 +0000 (08:35 +0200)]
arm64: versal: Increase the number of DRAM banks to 36

HBM stands for high bandwidth memory and is a type of memory interface used
in 3D-stacked DRAM (dynamic random access memory) in some AMD GPUs (aka
graphics cards), as well as the server, high-performance computing (HPC)
and networking and client space. High Bandwidth Memory(HBM) has total 16
channels, one channel is divided into two pseudo channels which makes its
32 banks each with some amount of memory.
And then we have DDR_LOW PS low, DDR_HIGH0 PS high, DDR_HIGH1 PS very high
and pretty much there should be also place for PL DDR. So maximum number of
memory banks will be 36, updating the CONFIG_NR_DRAM_BANKS to 36.

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Signed-off-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/ed9eaf5c20501ee691d7d28a173511cd9a87f161.1690958095.git.michal.simek@amd.com
15 months agoxilinx: zynqmp: Extract aes operation into new file
Christian Taedcke [Tue, 25 Jul 2023 07:26:58 +0000 (09:26 +0200)]
xilinx: zynqmp: Extract aes operation into new file

This moves the aes operation that is performed by the pmu into a
separate file. This way it can be called not just from the shell
command, but also e.g. from board initialization code.

Signed-off-by: Christian Taedcke <christian.taedcke@weidmueller.com>
Link: https://lore.kernel.org/r/20230725072658.16341-1-christian.taedcke-oss@weidmueller.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
15 months agoriscv: dts: starfive: generate u-boot-spl.bin.normal.out
Heinrich Schuchardt [Sun, 17 Sep 2023 11:47:31 +0000 (13:47 +0200)]
riscv: dts: starfive: generate u-boot-spl.bin.normal.out

The StarFive VisionFive 2 board cannot load spl/u-boot-spl.bin but needs a
prefixed header. We have referring to a vendor tool (spl_tool) for this
task. 'mkimage -T sfspl' can generate the prefixed file.

Use binman to invoke mkimage for the generation of file
spl/u-boot-spl.bin.normal.out.

Update the documentation.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Tested-by: Milan P. Stanić <mps@arvanta.net>
15 months agotools: mkimage: Add StarFive SPL image support
Heinrich Schuchardt [Sun, 17 Sep 2023 11:47:30 +0000 (13:47 +0200)]
tools: mkimage: Add StarFive SPL image support

The StarFive JH7110 base boards require a header to be prefixed to the SPL
binary image. This has previously done with a vendor tool 'spl_tool'
published under a GPL-2-or-later license. Integrate this capability into
mkimage.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Tested-by: Chanho Park <chanho61.park@samsung.com>
Tested-by: Milan P. Stanić <mps@arvanta.net>
15 months agostarfive: visionfive2: add mmc0 and nvme boot targets
Milan P. Stanić [Mon, 18 Sep 2023 08:32:29 +0000 (10:32 +0200)]
starfive: visionfive2: add mmc0 and nvme boot targets

boot from SDIO3.0 (mmc sdcard) first if it is plugged.
If mmc is not plugged try to boot from emmc if it is plugged.
If emmc is not plugged then try to boot from nvme.

Signed-off-by: Milan P. Stanić <mps@arvanta.net>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
15 months agoconfigs: NVMe/USB target boot devices on VisionFive 2
Heinrich Schuchardt [Thu, 7 Sep 2023 13:53:36 +0000 (15:53 +0200)]
configs: NVMe/USB target boot devices on VisionFive 2

Make NVMe and USB target boot devices on the StarFive VisionFive 2 board.
The boot devices are sorted by decreasing device speed.

CONFIG_PCI_INIT_R=y is set via [1]. 'start usb' is added to CONFIG_PREBOOT
by the same patch.

[1] [PATCH v1 1/2] configs: starfive: Enable PCIE auto enum and NVME/USB stuff for Starfive Visionfive 2
    https://lore.kernel.org/u-boot/TY3P286MB2611C9AD6E5BB3756A959E89981FA@TY3P286MB2611.JPNP286.PROD.OUTLOOK.COM/

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
15 months agoriscv: set fdtfile on VisionFive 2
Heinrich Schuchardt [Thu, 7 Sep 2023 11:21:28 +0000 (13:21 +0200)]
riscv: set fdtfile on VisionFive 2

Multiple revisions of the StarFive VisionFive 2 board exist. They can be
identified by reading their EEPROM.

Linux uses two differently named device-tree files. To load the correct
device-tree we need to set $fdtfile to the device-tree file name that
matches the board revision.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
15 months agoMerge branch '2023-09-19-tidy-up-some-kconfig-options' into next
Tom Rini [Tue, 19 Sep 2023 21:44:18 +0000 (17:44 -0400)]
Merge branch '2023-09-19-tidy-up-some-kconfig-options' into next

- Re-organize and tidy up some of our Kconfig options

15 months agoboot: Join ARCH_FIXUP_FDT_MEMORY with related options
Simon Glass [Thu, 14 Sep 2023 16:55:59 +0000 (10:55 -0600)]
boot: Join ARCH_FIXUP_FDT_MEMORY with related options

Move this to be with the other devicetree-fixup options.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
15 months agoboot: Drop CMD_MTDPARTS condition for FDT_FIXUP_PARTITIONS
Simon Glass [Thu, 14 Sep 2023 16:55:58 +0000 (10:55 -0600)]
boot: Drop CMD_MTDPARTS condition for FDT_FIXUP_PARTITIONS

This is not needed, so drop it. Also use a capital 'O' for the option,
while we are here.

Signed-off-by: Simon Glass <sjg@chromium.org>
Suggested-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
15 months agoboot: Join FDT_FIXUP_PARTITIONS with related options
Simon Glass [Thu, 14 Sep 2023 16:55:57 +0000 (10:55 -0600)]
boot: Join FDT_FIXUP_PARTITIONS with related options

Move this to be with the other devicetree-fixup options.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
15 months agoMake ARCH_FIXUP_FDT_MEMORY depend on OF_LIBFDT
Simon Glass [Thu, 14 Sep 2023 16:55:56 +0000 (10:55 -0600)]
Make ARCH_FIXUP_FDT_MEMORY depend on OF_LIBFDT

We need CONFIG_OF_LIBFDT to be able to do fdt fixups, so add that
condition.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
15 months agoMark DISTRO_DEFAULTS as deprecated
Simon Glass [Thu, 14 Sep 2023 16:55:55 +0000 (10:55 -0600)]
Mark DISTRO_DEFAULTS as deprecated

Standard boot has been in place for a while now. Quite a few problems
have been found and fixed. It seems like a good time to mark the
script-based approach as deprecated and encourage people to use standard
boot.

Update the DISTRO_DEFAULTS Kconfig to encourage people to move to
standard boot, which is able to boot Linux distributions automatically.

Add a short migration guide to make this easier.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
15 months agoKconfig: Move TEXT_BASE et al under general setup
Simon Glass [Thu, 14 Sep 2023 16:55:54 +0000 (10:55 -0600)]
Kconfig: Move TEXT_BASE et al under general setup

These don't relate to booting. Move them out of there and into the same
place as the other related settings.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
15 months agoboot: Make standard boot a menu
Simon Glass [Thu, 14 Sep 2023 16:55:53 +0000 (10:55 -0600)]
boot: Make standard boot a menu

Collect these options into a menu for easier viewing.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
15 months agoKconfig: Move SPL_FIT under FIT
Simon Glass [Thu, 14 Sep 2023 16:55:52 +0000 (10:55 -0600)]
Kconfig: Move SPL_FIT under FIT

This option already depends on FIT, so put it under the same umbrella, so
that it appears in the FIT menu.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
15 months agospl: Drop SPL/TPL_RAM_SUPPORT option for SPL_LOAD_FIT_ADDRESS
Simon Glass [Thu, 14 Sep 2023 16:55:51 +0000 (10:55 -0600)]
spl: Drop SPL/TPL_RAM_SUPPORT option for SPL_LOAD_FIT_ADDRESS

All boards which actually define this address enable SPL_LOAD_FIT, or at
least just rely on the default value of 0. So drop the dependency.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
15 months agospl: Tidy up load address in spl_ram
Simon Glass [Thu, 14 Sep 2023 16:55:50 +0000 (10:55 -0600)]
spl: Tidy up load address in spl_ram

This CONFIG is used but is not given a value by some boards. Use
a default value of 0 explicitly, rather than relying on the 0 value
provided by CONFIG_SPL_LOAD_FIT_ADDRESS

This will allow us to make SPL_LOAD_FIT_ADDRESS depend on SPL_LOAD_FIT
as it should.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
15 months agoKconfig: Create a menu for FIT
Simon Glass [Thu, 14 Sep 2023 16:55:49 +0000 (10:55 -0600)]
Kconfig: Create a menu for FIT

This is a major feature with a lot of options. Give it its own menu to
tidy up the 'make menuconfig' display. Drop the 'depends on FIT' pieces
which are now unnecessary, since they are now bracketed by an 'if FIT'.

Leave CONFIG_TIMESTAMP out since it affects legacy images too.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
15 months agoboot: Rename Android-boot text
Simon Glass [Thu, 14 Sep 2023 16:55:48 +0000 (10:55 -0600)]
boot: Rename Android-boot text

Phrases like 'Enable support for' are pointless since this is an option
which enables things. Drop that part so it is easier to follow.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
15 months agoboot: Move some other fdt-fixup options to the same menu
Simon Glass [Thu, 14 Sep 2023 16:55:47 +0000 (10:55 -0600)]
boot: Move some other fdt-fixup options to the same menu

Move more options relating to fixing up a device tree into the new
devicetree-fixup menu.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
15 months agoMove fdt_simplefb to boot/
Simon Glass [Thu, 14 Sep 2023 16:55:46 +0000 (10:55 -0600)]
Move fdt_simplefb to boot/

This relates to booting, so move it there. Create a new Kconfig menu for
things related to devicetree fixup.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
15 months agoboot: Move fdt_support to boot/
Simon Glass [Thu, 14 Sep 2023 16:55:45 +0000 (10:55 -0600)]
boot: Move fdt_support to boot/

This relates to booting since it fixes up the devicetree for the OS. Move
it into the boot/ directory.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
15 months agotest: Move POST under a renamed Testing section
Simon Glass [Thu, 14 Sep 2023 16:55:44 +0000 (10:55 -0600)]
test: Move POST under a renamed Testing section

Rename Unit tests to Testing, since it is a stretch to describe some of
the tests as unit tests. Move POST there as well, so it doesn't show up
by itself in the top-level menu.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
15 months agoFWU: Avoid showing an unselectable menu option
Simon Glass [Thu, 14 Sep 2023 16:55:43 +0000 (10:55 -0600)]
FWU: Avoid showing an unselectable menu option

Use a menuconfig to avoid showing a menu which cannot be selected in many
cases.

Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
15 months agovideo: Move the BMP options
Simon Glass [Thu, 14 Sep 2023 16:55:42 +0000 (10:55 -0600)]
video: Move the BMP options

These appear prominently in the main menu at present. Move them to the
video Kconfig where they belong.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
15 months agovideo: Move bmp code to drivers/video
Simon Glass [Thu, 14 Sep 2023 16:55:41 +0000 (10:55 -0600)]
video: Move bmp code to drivers/video

This relates to graphics which is only active when CONFIG_VIDEO is
enabled. Move it into that directory.

For most boards there is no harm in compiling it always, since it if not
used it will be dropped by the linker. But for the EFI app this is not
the case, so retain use of the BMP Kconfig.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
15 months agoKconfig: Move API into general setup
Simon Glass [Thu, 14 Sep 2023 16:55:40 +0000 (10:55 -0600)]
Kconfig: Move API into general setup

This is perhaps not a commonly used feature so should not have its own
option in the main menu. Move it under general setup.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
15 months agolib: rational: Move the Kconfigs into the correct place
Simon Glass [Thu, 14 Sep 2023 16:55:39 +0000 (10:55 -0600)]
lib: rational: Move the Kconfigs into the correct place

These should not be part of the 'system tables' menu. Move them outside
on their own.

Signed-off-by: Simon Glass <sjg@chromium.org>
Fixes: 7d0f3fbb93c ("lib: rational: copy the rational fraction lib...")
Reviewed-by: Tom Rini <trini@konsulko.com>
15 months agoMerge branch '2023-09-18-assorted-TI-platform-updates' into next
Tom Rini [Tue, 19 Sep 2023 15:14:03 +0000 (11:14 -0400)]
Merge branch '2023-09-18-assorted-TI-platform-updates' into next

- A few assorted DT updates and minor fixes for TI platforms

15 months agoarm: dts: k3-am642: Sync with kernel v6.6-rc1
Nishanth Menon [Mon, 11 Sep 2023 14:44:01 +0000 (09:44 -0500)]
arm: dts: k3-am642: Sync with kernel v6.6-rc1

Sync device tree with v6.6-rc1

Signed-off-by: Nishanth Menon <nm@ti.com>
15 months agodt-bindings: ti-serdes: Deprecate header with constants with v6.6-rc1
Nishanth Menon [Mon, 11 Sep 2023 14:44:00 +0000 (09:44 -0500)]
dt-bindings: ti-serdes: Deprecate header with constants with v6.6-rc1

The constants to define the idle state of SERDES MUX were defined in
bindings header. They are used only in DTS and driver uses the dt property
to set the idle state making it unsuitable for bindings.
The constants are moved to header next to DTS ("arch/arm/boot/dts/")
and all the references to bindings header are removed.
So add a warning to mark this bindings header as deprecated.

We could probably drop this header, but let us wait for kernel to
cleanup.

Signed-off-by: Nishanth Menon <nm@ti.com>
15 months agoarm: dts: k3*: Use local header for SERDES MUX idle-state values
Nishanth Menon [Mon, 11 Sep 2023 14:43:59 +0000 (09:43 -0500)]
arm: dts: k3*: Use local header for SERDES MUX idle-state values

The DTS uses constants for SERDES MUX idle state values which were earlier
provided as bindings header. But they are unsuitable for bindings.
So move these constants in a header next to DTS.

NOTE: sync with v6.6-rc1 will bring in this change naturally.

Signed-off-by: Nishanth Menon <nm@ti.com>
15 months agoarm: dts: Introduce k3-serdes.h from v6.6-rc1
Nishanth Menon [Mon, 11 Sep 2023 14:43:58 +0000 (09:43 -0500)]
arm: dts: Introduce k3-serdes.h from v6.6-rc1

Introduce the new serdes header from kernel v6.6-rc1

The DTS uses constants for SERDES MUX idle state values which were earlier
provided as bindings header. But they are unsuitable for bindings.
So move these constants in a header next to DTS.

Signed-off-by: Nishanth Menon <nm@ti.com>
15 months agoarm: dts: k3-am625: Sync with kernel v6.6-rc1
Nishanth Menon [Mon, 11 Sep 2023 14:02:56 +0000 (09:02 -0500)]
arm: dts: k3-am625: Sync with kernel v6.6-rc1

Sync device tree with v6.6-rc1

Signed-off-by: Nishanth Menon <nm@ti.com>
Reviewed-by: Dhruva Gole <d-gole@ti.com>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
15 months agoarm: dts: k3-pinctrl: Sync with kernel v6.6-rc1
Nishanth Menon [Mon, 11 Sep 2023 14:02:55 +0000 (09:02 -0500)]
arm: dts: k3-pinctrl: Sync with kernel v6.6-rc1

Sync pinctrl header with v6.6-rc1

Signed-off-by: Nishanth Menon <nm@ti.com>
Reviewed-by: Dhruva Gole <d-gole@ti.com>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
15 months agodrivers: misc: k3_avs: Add Linux compatibles to maintain sync
Reid Tonking [Thu, 7 Sep 2023 18:06:35 +0000 (13:06 -0500)]
drivers: misc: k3_avs: Add Linux compatibles to maintain sync

The ti,j7200-vtm and ti,j721e-vtm compatibles are used for voltage
and thermal monitoring (VTM) by (drivers/thermal/k3_j72xx_bandgap.c)
in Linux, but the same hardware is used for adaptive voltage scaling
(AVS) in u-boot, This brings both drivers in line with the same
compatibles.

Since the j7200 uses the config as the j721e, the data is inherited
from j721e vs creating a duplicate

Signed-off-by: Neha Francis <n-francis@ti.com>
Signed-off-by: Reid Tonking <reidt@ti.com>
Reviewed-by: Nishanth Menon <nm@ti.com>
15 months agotools: logos: Rename TI logo files
Nikhil M Jain [Fri, 1 Sep 2023 10:39:13 +0000 (16:09 +0530)]
tools: logos: Rename TI logo files

Change the file name from ti.gz and ti.bmp to ti_logos_414x97_32bpp to
help user understand the resolution and identify the logo files when
placed in the boot partition and update the splashfile name with the
same in .env file.

Signed-off-by: Nikhil M Jain <n-jain1@ti.com>
Reviewed-by: Devarsh Thakkar <devarsht@ti.com>
15 months agoam33xx: ignore return value from usb_ether_init()
Trevor Woerner [Thu, 31 Aug 2023 02:49:50 +0000 (22:49 -0400)]
am33xx: ignore return value from usb_ether_init()

In 2cb43ef1c223 ("usb: ether: Fix error handling in usb_ether_init") the error
handling of usb_ether_init() was changed. Not a single other call site of this
function checks its return value, therefore follow suit in the am33xx code.

Do not cause the boot to halt if the usb gadget ethernet initialization fails:

initcall sequence 9ffdbd84 failed at call 808024b9 (err=-19)
### ERROR ### Please RESET the board ###

Signed-off-by: Trevor Woerner <twoerner@gmail.com>
Reviewed-by: Michal Suchánek <msuchanek@suse.de>
15 months agoMerge branch 'next' of git://source.denx.de/u-boot-usb into next
Tom Rini [Sat, 16 Sep 2023 16:14:08 +0000 (12:14 -0400)]
Merge branch 'next' of git://source.denx.de/u-boot-usb into next

- Rework gadget device handling

15 months agoboard: usb: Replace legacy usb_gadget_handle_interrupts()
Marek Vasut [Fri, 1 Sep 2023 09:50:03 +0000 (11:50 +0200)]
board: usb: Replace legacy usb_gadget_handle_interrupts()

The usb_gadget_handle_interrupts() is no longer used anywhere,
replace the remaining uses with dm_usb_gadget_handle_interrupts()
which takes udevice as a parameter.

Some of the UDC drivers currently ignore the index parameter altogether,
those also ignore the udevice and have to be reworked. Other like the
dwc3_uboot_handle_interrupt() had to be switched from index to udevice
look up to avoid breakage.

Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Tested-by: Mattijs Korpershoek <mkorpershoek@baylibre.com> # on khadas vim3
Signed-off-by: Marek Vasut <marex@denx.de>
15 months agodm: usb: udc: Drop legacy udevice handler functions
Marek Vasut [Fri, 1 Sep 2023 09:50:02 +0000 (11:50 +0200)]
dm: usb: udc: Drop legacy udevice handler functions

Remove legacy functions limited by the dev_array array,
those are no longer used anywhere, all the code uses
plain udevice based access now.

The usb_gadget_handle_interrupts() is doing udevice look up
until all call sites use dm_usb_gadget_handle_interrupts().

Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Signed-off-by: Marek Vasut <marex@denx.de>
15 months agousb: gadget: ether: Use plain udevice for UDC controller interaction
Marek Vasut [Fri, 1 Sep 2023 09:50:01 +0000 (11:50 +0200)]
usb: gadget: ether: Use plain udevice for UDC controller interaction

Convert to plain udevice interaction with UDC controller
device, avoid the use of UDC uclass dev_array .

Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
15 months agousb: gadget: acm: Use plain udevice for UDC controller interaction
Marek Vasut [Fri, 1 Sep 2023 09:50:00 +0000 (11:50 +0200)]
usb: gadget: acm: Use plain udevice for UDC controller interaction

Convert to plain udevice interaction with UDC controller
device, avoid the use of UDC uclass dev_array .

Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>