summaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
Diffstat (limited to 'cmd')
-rw-r--r--cmd/2048.c2
-rw-r--r--cmd/Kconfig93
-rw-r--r--cmd/Makefile1
-rw-r--r--cmd/ab_select.c2
-rw-r--r--cmd/abootimg.c37
-rw-r--r--cmd/acpi.c2
-rw-r--r--cmd/adc.c5
-rw-r--r--cmd/addrmap.c1
-rw-r--r--cmd/adtimg.c2
-rw-r--r--cmd/aes.c2
-rw-r--r--cmd/arm/exception.c5
-rw-r--r--cmd/arm/exception64.c6
-rw-r--r--cmd/armffa.c1
-rw-r--r--cmd/armflash.c2
-rw-r--r--cmd/axi.c1
-rw-r--r--cmd/bcb.c6
-rw-r--r--cmd/bdinfo.c8
-rw-r--r--cmd/bind.c47
-rw-r--r--cmd/binop.c2
-rw-r--r--cmd/blk_common.c2
-rw-r--r--cmd/blkcache.c2
-rw-r--r--cmd/blkmap.c1
-rw-r--r--cmd/blob.c6
-rw-r--r--cmd/bloblist.c1
-rw-r--r--cmd/bmp.c1
-rw-r--r--cmd/boot.c2
-rw-r--r--cmd/bootcount.c1
-rw-r--r--cmd/bootdev.c1
-rw-r--r--cmd/bootflow.c1
-rw-r--r--cmd/booti.c3
-rw-r--r--cmd/bootm.c3
-rw-r--r--cmd/bootmenu.c1
-rw-r--r--cmd/bootmeth.c1
-rw-r--r--cmd/bootstage.c11
-rw-r--r--cmd/bootz.c3
-rw-r--r--cmd/broadcom/chimp_boot.c1
-rw-r--r--cmd/broadcom/chimp_handshake.c1
-rw-r--r--cmd/broadcom/nitro_image_load.c2
-rw-r--r--cmd/btrfs.c1
-rw-r--r--cmd/button.c1
-rw-r--r--cmd/cache.c20
-rw-r--r--cmd/cat.c1
-rw-r--r--cmd/cbfs.c2
-rw-r--r--cmd/cedit.c1
-rw-r--r--cmd/cli.c9
-rw-r--r--cmd/clk.c1
-rw-r--r--cmd/clone.c2
-rw-r--r--cmd/cls.c1
-rw-r--r--cmd/config.c1
-rw-r--r--cmd/conitrace.c1
-rw-r--r--cmd/console.c2
-rw-r--r--cmd/cpu.c45
-rw-r--r--cmd/cramfs.c3
-rw-r--r--cmd/cros_ec.c1
-rw-r--r--cmd/cyclic.c15
-rw-r--r--cmd/date.c33
-rw-r--r--cmd/demo.c1
-rw-r--r--cmd/dfu.c1
-rw-r--r--cmd/diag.c1
-rw-r--r--cmd/disk.c1
-rw-r--r--cmd/dm.c1
-rw-r--r--cmd/echo.c1
-rw-r--r--cmd/eeprom.c307
-rw-r--r--cmd/efi.c1
-rw-r--r--cmd/efi_common.c1
-rw-r--r--cmd/eficonfig.c84
-rw-r--r--cmd/eficonfig_sbkey.c1
-rw-r--r--cmd/efidebug.c130
-rw-r--r--cmd/elf.c63
-rw-r--r--cmd/ethsw.c2
-rw-r--r--cmd/event.c1
-rw-r--r--cmd/exit.c2
-rw-r--r--cmd/ext2.c1
-rw-r--r--cmd/ext4.c1
-rw-r--r--cmd/extension_board.c2
-rw-r--r--cmd/fastboot.c1
-rw-r--r--cmd/fat.c2
-rw-r--r--cmd/fdt.c1
-rw-r--r--cmd/flash.c2
-rw-r--r--cmd/font.c2
-rw-r--r--cmd/fpga.c1
-rw-r--r--cmd/fpgad.c2
-rw-r--r--cmd/fs.c1
-rw-r--r--cmd/fs_uuid.c1
-rw-r--r--cmd/fuse.c2
-rw-r--r--cmd/fwu_mdata.c40
-rw-r--r--cmd/gettime.c2
-rw-r--r--cmd/gpio.c1
-rw-r--r--cmd/gpt.c6
-rw-r--r--cmd/hash.c1
-rw-r--r--cmd/help.c1
-rw-r--r--cmd/history.c1
-rw-r--r--cmd/host.c1
-rw-r--r--cmd/i2c.c24
-rw-r--r--cmd/ide.c1
-rw-r--r--cmd/ini.c2
-rw-r--r--cmd/io.c2
-rw-r--r--cmd/iotrace.c2
-rw-r--r--cmd/irq.c1
-rw-r--r--cmd/itest.c2
-rw-r--r--cmd/jffs2.c1
-rw-r--r--cmd/kaslrseed.c52
-rw-r--r--cmd/led.c11
-rw-r--r--cmd/legacy-mtd-utils.c1
-rw-r--r--cmd/legacy_led.c3
-rw-r--r--cmd/license.c1
-rw-r--r--cmd/load.c16
-rw-r--r--cmd/log.c1
-rw-r--r--cmd/lsblk.c1
-rw-r--r--cmd/lzmadec.c2
-rw-r--r--cmd/mbr.c2
-rw-r--r--cmd/mdio.c1
-rw-r--r--cmd/mem.c4
-rw-r--r--cmd/meson/sm.c2
-rw-r--r--cmd/mii.c1
-rw-r--r--cmd/misc.c1
-rw-r--r--cmd/mmc.c14
-rw-r--r--cmd/mp.c3
-rw-r--r--cmd/mtd.c1
-rw-r--r--cmd/mtdparts.c5
-rw-r--r--cmd/mux.c1
-rw-r--r--cmd/mvebu/bubt.c1
-rw-r--r--cmd/mvebu/comphy_rx_training.c1
-rw-r--r--cmd/nand.c1
-rw-r--r--cmd/net.c2
-rw-r--r--cmd/nvedit.c2
-rw-r--r--cmd/nvedit_efi.c1
-rw-r--r--cmd/nvme.c1
-rw-r--r--cmd/onenand.c1
-rw-r--r--cmd/optee_rpmb.c1
-rw-r--r--cmd/osd.c1
-rw-r--r--cmd/panic.c2
-rw-r--r--cmd/part.c2
-rw-r--r--cmd/pcap.c2
-rw-r--r--cmd/pci.c1
-rw-r--r--cmd/pci_mps.c1
-rw-r--r--cmd/pinmux.c1
-rw-r--r--cmd/pmc.c1
-rw-r--r--cmd/pmic.c1
-rw-r--r--cmd/printf.c2
-rw-r--r--cmd/pvblock.c1
-rw-r--r--cmd/pxe.c2
-rw-r--r--cmd/qfw.c1
-rw-r--r--cmd/read.c2
-rw-r--r--cmd/reginfo.c1
-rw-r--r--cmd/regulator.c1
-rw-r--r--cmd/remoteproc.c1
-rw-r--r--cmd/riscv/exception.c5
-rw-r--r--cmd/riscv/sbi.c1
-rw-r--r--cmd/rkmtd.c1
-rw-r--r--cmd/rng.c1
-rw-r--r--cmd/rockusb.c1
-rw-r--r--cmd/rtc.c1
-rw-r--r--cmd/sata.c1
-rw-r--r--cmd/sb.c7
-rw-r--r--cmd/scmi.c5
-rw-r--r--cmd/scp03.c1
-rw-r--r--cmd/scsi.c1
-rw-r--r--cmd/seama.c1
-rw-r--r--cmd/setexpr.c3
-rw-r--r--cmd/sf.c2
-rw-r--r--cmd/sha1sum.c1
-rw-r--r--cmd/sleep.c3
-rw-r--r--cmd/smccc.c2
-rw-r--r--cmd/sound.c3
-rw-r--r--cmd/source.c1
-rw-r--r--cmd/spi.c1
-rw-r--r--cmd/spl.c2
-rw-r--r--cmd/stackprot_test.c1
-rw-r--r--cmd/strings.c2
-rw-r--r--cmd/sysboot.c2
-rw-r--r--cmd/temperature.c1
-rw-r--r--cmd/terminal.c2
-rw-r--r--cmd/test.c2
-rw-r--r--cmd/thordown.c1
-rw-r--r--cmd/ti/ddr3.c1
-rw-r--r--cmd/ti/pd.c1
-rw-r--r--cmd/time.c1
-rw-r--r--cmd/timer.c2
-rw-r--r--cmd/tlv_eeprom.c1
-rw-r--r--cmd/tpm-common.c1
-rw-r--r--cmd/tpm-v1.c2
-rw-r--r--cmd/tpm-v2.c50
-rw-r--r--cmd/tpm_test.c3
-rw-r--r--cmd/trace.c2
-rw-r--r--cmd/tsi148.c2
-rw-r--r--cmd/ubi.c100
-rw-r--r--cmd/ubifs.c3
-rw-r--r--cmd/ufs.c2
-rw-r--r--cmd/universe.c8
-rw-r--r--cmd/unlz4.c6
-rw-r--r--cmd/unzip.c2
-rw-r--r--cmd/upl.c118
-rw-r--r--cmd/usb.c6
-rw-r--r--cmd/usb_gadget_sdp.c1
-rw-r--r--cmd/usb_mass_storage.c1
-rw-r--r--cmd/vbe.c1
-rw-r--r--cmd/version.c1
-rw-r--r--cmd/video.c1
-rw-r--r--cmd/virtio.c1
-rw-r--r--cmd/w1.c1
-rw-r--r--cmd/wdt.c1
-rw-r--r--cmd/wol.c2
-rw-r--r--cmd/x86/cbsysinfo.c1
-rw-r--r--cmd/x86/exception.c5
-rw-r--r--cmd/x86/fsp.c1
-rw-r--r--cmd/x86/hob.c1
-rw-r--r--cmd/x86/mtrr.c2
-rw-r--r--cmd/x86/zboot.c23
-rw-r--r--cmd/ximg.c25
-rw-r--r--cmd/xxd.c1
-rw-r--r--cmd/yaffs2.c2
-rw-r--r--cmd/zfs.c4
-rw-r--r--cmd/zip.c2
214 files changed, 984 insertions, 730 deletions
diff --git a/cmd/2048.c b/cmd/2048.c
index fa60aa94aad..42cd171b0e4 100644
--- a/cmd/2048.c
+++ b/cmd/2048.c
@@ -3,10 +3,10 @@
/* Console version of the game "2048" for GNU/Linux */
-#include <common.h>
#include <cli.h>
#include <command.h>
#include <rand.h>
+#include <vsprintf.h>
#include <linux/delay.h>
#define SIZE 4
diff --git a/cmd/Kconfig b/cmd/Kconfig
index b026439c773..43f78a5aeb1 100644
--- a/cmd/Kconfig
+++ b/cmd/Kconfig
@@ -271,7 +271,7 @@ config CMD_BOOTM_PRE_LOAD
depends on CMD_BOOTM
depends on IMAGE_PRE_LOAD
help
- Enable support of stage pre-load for the bootm command.
+ Enable support of stage pre-load for the bootm command.
This stage allow to check or modify the image provided
to the bootm command.
@@ -308,7 +308,7 @@ config CMD_BOOTMETH
depends on BOOTSTD
default y if BOOTSTD_FULL
help
- Support listing available bootmethds (methods used to boot an
+ Support listing available bootmeths (methods used to boot an
Operating System), as well as selecting the order that the bootmeths
are used.
@@ -321,6 +321,13 @@ config BOOTM_EFI
help
Support booting UEFI FIT images via the bootm command.
+config BOOTM_ELF
+ bool "Support booting ELF images"
+ depends on CMD_BOOTM && LIB_ELF
+ default y if LIB_ELF
+ help
+ Support booting ELF images via the bootm command.
+
config CMD_BOOTZ
bool "bootz"
help
@@ -381,6 +388,13 @@ config CMD_SEAMA
help
Support reading NAND Seattle Image (SEAMA) images.
+config CMD_UPL
+ bool "upl - Universal Payload Specification"
+ help
+ Provides commands to deal with UPL payloads and handoff information.
+ U-Boot supports generating and accepting handoff information. The
+ mkimage tool will eventually support creating payloads.
+
config CMD_VBE
bool "vbe - Verified Boot for Embedded"
depends on BOOTMETH_VBE
@@ -493,8 +507,7 @@ config CMD_ELF
config CMD_ELF_FDT_SETUP
bool "Flattened Device Tree setup in bootelf cmd"
depends on CMD_ELF
- select LIB_LIBFDT
- select LMB
+ select OF_LIBFDT
help
Do FDT setup in bootelf command optionally by param -d, which
allows to bring additional system info (e.g. /memory node) to
@@ -539,6 +552,7 @@ config CMD_IMI
config CMD_IMLS
bool "imls"
+ depends on MTD_NOR_FLASH || FLASH_CFI_DRIVER
help
List all images found in flash
@@ -621,7 +635,7 @@ config CMD_ZBOOT
Consider using FIT in preference to this since it supports directly
booting both 32- and 64-bit kernels, as well as secure boot.
- Documentation is available in doc/uImage.FIT/x86-fit-boot.txt
+ Documentation is available in doc/usage/fit/x86-fit-boot.rst.
endmenu
@@ -803,9 +817,16 @@ config CMD_EEPROM_LAYOUT
types of eeprom fields. Can be used for defining
custom layouts.
+config EEPROM_LAYOUT_VERSIONS
+ bool "Support specifying eeprom layout version"
+ depends on CMD_EEPROM_LAYOUT
+ help
+ Support specifying eeprom layout version in the 'eeprom' command
+ via the -l option.
+
config EEPROM_LAYOUT_HELP_STRING
string "Tells user what layout names are supported"
- depends on CMD_EEPROM_LAYOUT
+ depends on EEPROM_LAYOUT_VERSIONS
default "<not defined>"
help
Help printed with the LAYOUT VERSIONS part of the 'eeprom'
@@ -831,7 +852,7 @@ config SYS_EEPROM_SIZE
config SYS_EEPROM_PAGE_WRITE_BITS
int "Number of bits used to address bytes in a single page"
- depends on CMD_EEPROM
+ depends on CMD_EEPROM || ENV_IS_IN_EEPROM
default 8
help
The EEPROM page size is 2^SYS_EEPROM_PAGE_WRITE_BITS.
@@ -897,9 +918,9 @@ config CMD_MX_CYCLIC
bool "Enable cyclic md/mw commands"
depends on CMD_MEMORY
help
- Add the "mdc" and "mwc" memory commands. These are cyclic
- "md/mw" commands.
- Examples:
+ Add the "mdc" and "mwc" memory commands. These are cyclic
+ "md/mw" commands.
+ Examples:
=> mdc.b 10 4 500
This command will print 4 bytes (10,11,12,13) each 500 ms.
@@ -1023,8 +1044,8 @@ config CMD_ARMFFA
- Displaying the arm_ffa device info
config CMD_ARMFLASH
- #depends on FLASH_CFI_DRIVER
bool "armflash"
+ depends on FLASH_CFI_DRIVER
help
ARM Ltd reference designs flash partition access
@@ -1167,6 +1188,7 @@ config CMD_FPGA_LOAD_SECURE
config CMD_FPGAD
bool "fpgad - dump FPGA registers"
+ depends on GDSYS_LEGACY_DRIVERS
help
(legacy, needs conversion to driver model)
Provides a way to dump FPGA registers by calling the board-specific
@@ -1602,6 +1624,7 @@ config CMD_TEMPERATURE
config CMD_TSI148
bool "tsi148 - Command to access tsi148 device"
+ depends on DM_PCI_COMPAT
help
This provides various sub-commands to initialise and configure the
Turndra tsi148 device. See the command help for full details.
@@ -1615,6 +1638,7 @@ config CMD_UFS
config CMD_UNIVERSE
bool "universe - Command to set up the Turndra Universe controller"
+ depends on DM_PCI_COMPAT
help
This allows setting up the VMEbus provided by this controller.
See the command help for full details.
@@ -1792,6 +1816,23 @@ config CMD_DHCP6
Will perform 4-message exchange with DHCPv6 server, requesting
the minimum required options to TFTP boot. Complies with RFC 8415.
+if CMD_DHCP6
+
+config DHCP6_PXE_CLIENTARCH
+ hex
+ default 0x16 if ARM64
+ default 0x15 if ARM
+ default 0xFF
+
+config DHCP6_PXE_DHCP_OPTION
+ bool "Request & store 'pxe_configfile' from DHCP6 server"
+
+config DHCP6_ENTERPRISE_ID
+ int "Enterprise ID to send in DHCPv6 Vendor Class Option"
+ default 0
+
+endif
+
config BOOTP_MAY_FAIL
bool "Allow for the BOOTP/DHCP server to not be found"
depends on CMD_BOOTP
@@ -1909,23 +1950,6 @@ config BOOTP_VCI_STRING
default "U-Boot.arm" if ARM
default "U-Boot"
-if CMD_DHCP6
-
-config DHCP6_PXE_CLIENTARCH
- hex
- default 0x16 if ARM64
- default 0x15 if ARM
- default 0xFF
-
-config DHCP6_PXE_DHCP_OPTION
- bool "Request & store 'pxe_configfile' from DHCP6 server"
-
-config DHCP6_ENTERPRISE_ID
- int "Enterprise ID to send in DHCPv6 Vendor Class Option"
- default 0
-
-endif
-
config CMD_TFTPBOOT
bool "tftpboot"
default y
@@ -1986,6 +2010,7 @@ config SYS_DISABLE_AUTOLOAD
config CMD_WGET
bool "wget"
select PROT_TCP
+ default y if SANDBOX
help
wget is a simple command to download kernel, or other files,
from a http server over TCP.
@@ -2150,12 +2175,12 @@ config CMD_BLKMAP
Example use-cases:
- Treat a region of RAM as a block device, i.e. a RAM disk. This let's
- you extract files from filesystem images stored in RAM (perhaps as a
- result of a TFTP transfer).
+ you extract files from filesystem images stored in RAM (perhaps as a
+ result of a TFTP transfer).
- Create a virtual partition on an existing device. This let's you
- access filesystems that aren't stored at an exact partition
- boundary. A common example is a filesystem image embedded in an FIT
- image.
+ access filesystems that aren't stored at an exact partition
+ boundary. A common example is a filesystem image embedded in an FIT
+ image.
config CMD_BUTTON
bool "button"
@@ -2934,7 +2959,7 @@ config CMD_UBI_RENAME
bool "Enable rename"
depends on CMD_UBI
help
- Enable a "ubi" command to rename ubi volume:
+ Enable a "ubi" command to rename ubi volume:
ubi rename <oldname> <newname>
config CMD_UBIFS
diff --git a/cmd/Makefile b/cmd/Makefile
index 87133cc27a8..91227f1249c 100644
--- a/cmd/Makefile
+++ b/cmd/Makefile
@@ -189,6 +189,7 @@ obj-$(CONFIG_CMD_UBIFS) += ubifs.o
obj-$(CONFIG_CMD_UNIVERSE) += universe.o
obj-$(CONFIG_CMD_UNLZ4) += unlz4.o
obj-$(CONFIG_CMD_UNZIP) += unzip.o
+obj-$(CONFIG_CMD_UPL) += upl.o
obj-$(CONFIG_CMD_VIRTIO) += virtio.o
obj-$(CONFIG_CMD_WDT) += wdt.o
obj-$(CONFIG_CMD_LZMADEC) += lzmadec.o
diff --git a/cmd/ab_select.c b/cmd/ab_select.c
index bfb67b8236b..7c178c728ca 100644
--- a/cmd/ab_select.c
+++ b/cmd/ab_select.c
@@ -3,7 +3,6 @@
* Copyright (C) 2017 The Android Open Source Project
*/
-#include <common.h>
#include <android_ab.h>
#include <command.h>
#include <env.h>
@@ -36,7 +35,6 @@ static int do_ab_select(struct cmd_tbl *cmdtp, int flag, int argc,
return CMD_RET_FAILURE;
}
-
ret = ab_select_slot(dev_desc, &part_info, dec_tries);
if (ret < 0) {
printf("Android boot failed, error %d.\n", ret);
diff --git a/cmd/abootimg.c b/cmd/abootimg.c
index 2653b555b10..ae7a1a7c83b 100644
--- a/cmd/abootimg.c
+++ b/cmd/abootimg.c
@@ -5,7 +5,6 @@
*/
#include <android_image.h>
-#include <common.h>
#include <command.h>
#include <image.h>
#include <mapmem.h>
@@ -15,6 +14,7 @@
/* Please use abootimg_addr() macro to obtain the boot image address */
static ulong _abootimg_addr = -1;
+static ulong _ainit_bootimg_addr = -1;
static ulong _avendor_bootimg_addr = -1;
ulong get_abootimg_addr(void)
@@ -22,11 +22,26 @@ ulong get_abootimg_addr(void)
return (_abootimg_addr == -1 ? image_load_addr : _abootimg_addr);
}
+void set_abootimg_addr(ulong addr)
+{
+ _abootimg_addr = addr;
+}
+
+ulong get_ainit_bootimg_addr(void)
+{
+ return _ainit_bootimg_addr;
+}
+
ulong get_avendor_bootimg_addr(void)
{
return _avendor_bootimg_addr;
}
+void set_avendor_bootimg_addr(ulong addr)
+{
+ _avendor_bootimg_addr = addr;
+}
+
static int abootimg_get_ver(int argc, char *const argv[])
{
const struct andr_boot_img_hdr_v0 *hdr;
@@ -180,7 +195,7 @@ static int do_abootimg_addr(struct cmd_tbl *cmdtp, int flag, int argc,
char *endp;
ulong img_addr;
- if (argc < 2 || argc > 3)
+ if (argc < 2 || argc > 4)
return CMD_RET_USAGE;
img_addr = hextoul(argv[1], &endp);
@@ -191,16 +206,26 @@ static int do_abootimg_addr(struct cmd_tbl *cmdtp, int flag, int argc,
_abootimg_addr = img_addr;
- if (argc == 3) {
+ if (argc > 2) {
img_addr = simple_strtoul(argv[2], &endp, 16);
if (*endp != '\0') {
- printf("Error: Wrong vendor image address\n");
+ printf("Error: Wrong vendor_boot image address\n");
return CMD_RET_FAILURE;
}
_avendor_bootimg_addr = img_addr;
}
+ if (argc == 4) {
+ img_addr = simple_strtoul(argv[3], &endp, 16);
+ if (*endp != '\0') {
+ printf("Error: Wrong init_boot image address\n");
+ return CMD_RET_FAILURE;
+ }
+
+ _ainit_bootimg_addr = img_addr;
+ }
+
return CMD_RET_SUCCESS;
}
@@ -244,7 +269,7 @@ static int do_abootimg_dump(struct cmd_tbl *cmdtp, int flag, int argc,
}
static struct cmd_tbl cmd_abootimg_sub[] = {
- U_BOOT_CMD_MKENT(addr, 3, 1, do_abootimg_addr, "", ""),
+ U_BOOT_CMD_MKENT(addr, 4, 1, do_abootimg_addr, "", ""),
U_BOOT_CMD_MKENT(dump, 2, 1, do_abootimg_dump, "", ""),
U_BOOT_CMD_MKENT(get, 5, 1, do_abootimg_get, "", ""),
};
@@ -272,7 +297,7 @@ static int do_abootimg(struct cmd_tbl *cmdtp, int flag, int argc,
U_BOOT_CMD(
abootimg, CONFIG_SYS_MAXARGS, 0, do_abootimg,
"manipulate Android Boot Image",
- "addr <boot_img_addr> [<vendor_boot_img_addr>]>\n"
+ "addr <boot_img_addr> [<vendor_boot_img_addr> [<init_boot_img_addr>]]\n"
" - set the address in RAM where boot image is located\n"
" ($loadaddr is used by default)\n"
"abootimg dump dtb\n"
diff --git a/cmd/acpi.c b/cmd/acpi.c
index 928e5dc525e..094d9d4e858 100644
--- a/cmd/acpi.c
+++ b/cmd/acpi.c
@@ -3,7 +3,6 @@
* Copyright 2019 Google LLC
* Written by Simon Glass <sjg@chromium.org>
*/
-#include <common.h>
#include <command.h>
#include <display_options.h>
#include <log.h>
@@ -11,6 +10,7 @@
#include <acpi/acpi_table.h>
#include <asm/acpi_table.h>
#include <asm/global_data.h>
+#include <linux/errno.h>
#include <dm/acpi.h>
DECLARE_GLOBAL_DATA_PTR;
diff --git a/cmd/adc.c b/cmd/adc.c
index 4cb18b66d4a..4d3b5b61f6f 100644
--- a/cmd/adc.c
+++ b/cmd/adc.c
@@ -3,7 +3,6 @@
* Copyright (C) 2018 BayLibre, SAS
* Author: Neil Armstrong <narmstrong@baylibre.com>
*/
-#include <common.h>
#include <command.h>
#include <dm.h>
#include <adc.h>
@@ -153,11 +152,11 @@ static int do_adc_scan(struct cmd_tbl *cmdtp, int flag, int argc,
return CMD_RET_SUCCESS;
}
-static char adc_help_text[] =
+U_BOOT_LONGHELP(adc,
"list - list ADC devices\n"
"adc info <name> - Get ADC device info\n"
"adc single <name> <channel> [varname] - Get Single data of ADC device channel\n"
- "adc scan <name> [channel mask] - Scan all [or masked] ADC channels";
+ "adc scan <name> [channel mask] - Scan all [or masked] ADC channels\n");
U_BOOT_CMD_WITH_SUBCMDS(adc, "ADC sub-system", adc_help_text,
U_BOOT_SUBCMD_MKENT(list, 1, 1, do_adc_list),
diff --git a/cmd/addrmap.c b/cmd/addrmap.c
index bd23549f3a5..f7e4d9206de 100644
--- a/cmd/addrmap.c
+++ b/cmd/addrmap.c
@@ -3,7 +3,6 @@
* Copyright (C) 2021, Bin Meng <bmeng.cn@gmail.com>
*/
-#include <common.h>
#include <command.h>
#include <addr_map.h>
diff --git a/cmd/adtimg.c b/cmd/adtimg.c
index f4b5cbf35b9..53f33764fbe 100644
--- a/cmd/adtimg.c
+++ b/cmd/adtimg.c
@@ -7,8 +7,8 @@
#include <command.h>
#include <env.h>
+#include <vsprintf.h>
#include <image-android-dt.h>
-#include <common.h>
#define OPT_INDEX "--index"
diff --git a/cmd/aes.c b/cmd/aes.c
index 1264675aa01..87ad1ab82b9 100644
--- a/cmd/aes.c
+++ b/cmd/aes.c
@@ -5,13 +5,13 @@
* Command for en/de-crypting block of memory with AES-[128/192/256]-CBC cipher.
*/
-#include <common.h>
#include <command.h>
#include <uboot_aes.h>
#include <malloc.h>
#include <asm/byteorder.h>
#include <linux/compiler.h>
#include <mapmem.h>
+#include <vsprintf.h>
u32 aes_get_key_len(char *command)
{
diff --git a/cmd/arm/exception.c b/cmd/arm/exception.c
index 98a9795b68c..8857f121604 100644
--- a/cmd/arm/exception.c
+++ b/cmd/arm/exception.c
@@ -49,12 +49,11 @@ static struct cmd_tbl cmd_sub[] = {
"", ""),
};
-static char exception_help_text[] =
+U_BOOT_LONGHELP(exception,
"<ex>\n"
" The following exceptions are available:\n"
" breakpoint - prefetch abort\n"
" unaligned - data abort\n"
- " undefined - undefined instruction\n"
- ;
+ " undefined - undefined instruction\n");
#include <exception.h>
diff --git a/cmd/arm/exception64.c b/cmd/arm/exception64.c
index 589a23115b0..4c5b953168c 100644
--- a/cmd/arm/exception64.c
+++ b/cmd/arm/exception64.c
@@ -5,7 +5,6 @@
* Copyright (c) 2018, Heinrich Schuchardt <xypron.glpk@gmx.de>
*/
-#include <common.h>
#include <command.h>
#include <linux/bitops.h>
@@ -78,12 +77,11 @@ static struct cmd_tbl cmd_sub[] = {
"", ""),
};
-static char exception_help_text[] =
+U_BOOT_LONGHELP(exception,
"<ex>\n"
" The following exceptions are available:\n"
" breakpoint - breakpoint instruction exception\n"
" unaligned - unaligned LDAR data abort\n"
- " undefined - undefined instruction exception\n"
- ;
+ " undefined - undefined instruction exception\n");
#include <exception.h>
diff --git a/cmd/armffa.c b/cmd/armffa.c
index 9585150b962..181e31bc49a 100644
--- a/cmd/armffa.c
+++ b/cmd/armffa.c
@@ -5,7 +5,6 @@
* Authors:
* Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
*/
-#include <common.h>
#include <arm_ffa.h>
#include <command.h>
#include <dm.h>
diff --git a/cmd/armflash.c b/cmd/armflash.c
index fdaea5ad811..e292cf85c45 100644
--- a/cmd/armflash.c
+++ b/cmd/armflash.c
@@ -5,10 +5,10 @@
*
* Support for ARM Flash Partitions
*/
-#include <common.h>
#include <command.h>
#include <console.h>
#include <flash.h>
+#include <vsprintf.h>
#include <asm/io.h>
#define MAX_REGIONS 4
diff --git a/cmd/axi.c b/cmd/axi.c
index 5620891db28..3dbea0499de 100644
--- a/cmd/axi.c
+++ b/cmd/axi.c
@@ -9,7 +9,6 @@
* SPDX-License-Identifier: GPL-2.0+
*/
-#include <common.h>
#include <axi.h>
#include <command.h>
#include <console.h>
diff --git a/cmd/bcb.c b/cmd/bcb.c
index f3b92564d10..97a96c00964 100644
--- a/cmd/bcb.c
+++ b/cmd/bcb.c
@@ -8,12 +8,12 @@
#include <android_bootloader_message.h>
#include <bcb.h>
#include <command.h>
-#include <common.h>
#include <display_options.h>
#include <log.h>
#include <part.h>
#include <malloc.h>
#include <memalign.h>
+#include <vsprintf.h>
#include <linux/err.h>
enum bcb_cmd {
@@ -172,8 +172,8 @@ static int __bcb_initialize(const char *iface, int devnum, const char *partp)
return CMD_RET_SUCCESS;
err_read_fail:
- printf("Error: %d %d:%s read failed (%d)\n", block->uclass_id,
- block->devnum, partition->name, ret);
+ printf("Error: %s %d:%s read failed (%d)\n", iface, devnum,
+ partition->name, ret);
__bcb_reset();
return CMD_RET_FAILURE;
}
diff --git a/cmd/bdinfo.c b/cmd/bdinfo.c
index 79106caeec2..f6e534dd5bb 100644
--- a/cmd/bdinfo.c
+++ b/cmd/bdinfo.c
@@ -6,7 +6,6 @@
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
*/
-#include <common.h>
#include <command.h>
#include <dm.h>
#include <env.h>
@@ -155,18 +154,13 @@ static int bdinfo_print_all(struct bd_info *bd)
if (IS_ENABLED(CONFIG_CMD_NET))
print_eth();
bdinfo_print_num_l("fdt_blob", (ulong)map_to_sysmem(gd->fdt_blob));
- bdinfo_print_num_l("new_fdt", (ulong)map_to_sysmem(gd->new_fdt));
- bdinfo_print_num_l("fdt_size", (ulong)gd->fdt_size);
if (IS_ENABLED(CONFIG_VIDEO))
show_video_info();
#if CONFIG_IS_ENABLED(MULTI_DTB_FIT)
bdinfo_print_num_l("multi_dtb_fit", (ulong)gd->multi_dtb_fit);
#endif
if (IS_ENABLED(CONFIG_LMB) && gd->fdt_blob) {
- struct lmb lmb;
-
- lmb_init_and_reserve(&lmb, gd->bd, (void *)gd->fdt_blob);
- lmb_dump_all_force(&lmb);
+ lmb_dump_all_force();
if (IS_ENABLED(CONFIG_OF_REAL))
printf("devicetree = %s\n", fdtdec_get_srcname());
}
diff --git a/cmd/bind.c b/cmd/bind.c
index be0d4d2a711..c0d31f5eb16 100644
--- a/cmd/bind.c
+++ b/cmd/bind.c
@@ -3,7 +3,6 @@
* Copyright (c) 2018 JJ Hiblot <jjhiblot@ti.com>
*/
-#include <common.h>
#include <command.h>
#include <dm.h>
#include <dm/device-internal.h>
@@ -11,8 +10,8 @@
#include <dm/root.h>
#include <dm/uclass-internal.h>
-static int bind_by_class_index(const char *uclass, int index,
- const char *drv_name)
+static int bind_by_class_seq(const char *uclass, int seq,
+ const char *drv_name)
{
static enum uclass_id uclass_id;
struct udevice *dev;
@@ -32,9 +31,9 @@ static int bind_by_class_index(const char *uclass, int index,
return -EINVAL;
}
- ret = uclass_find_device(uclass_id, index, &parent);
+ ret = uclass_find_device_by_seq(uclass_id, seq, &parent);
if (!parent || ret) {
- printf("Cannot find device %d of class %s\n", index, uclass);
+ printf("Cannot find device %d of class %s\n", seq, uclass);
return ret;
}
@@ -48,7 +47,7 @@ static int bind_by_class_index(const char *uclass, int index,
return 0;
}
-static int find_dev(const char *uclass, int index, struct udevice **devp)
+static int find_dev(const char *uclass, int seq, struct udevice **devp)
{
static enum uclass_id uclass_id;
int rc;
@@ -59,21 +58,21 @@ static int find_dev(const char *uclass, int index, struct udevice **devp)
return -EINVAL;
}
- rc = uclass_find_device(uclass_id, index, devp);
+ rc = uclass_find_device_by_seq(uclass_id, seq, devp);
if (!*devp || rc) {
- printf("Cannot find device %d of class %s\n", index, uclass);
+ printf("Cannot find device %d of class %s\n", seq, uclass);
return rc;
}
return 0;
}
-static int unbind_by_class_index(const char *uclass, int index)
+static int unbind_by_class_seq(const char *uclass, int seq)
{
int ret;
struct udevice *dev;
- ret = find_dev(uclass, index, &dev);
+ ret = find_dev(uclass, seq, &dev);
if (ret)
return ret;
@@ -92,8 +91,8 @@ static int unbind_by_class_index(const char *uclass, int index)
return 0;
}
-static int unbind_child_by_class_index(const char *uclass, int index,
- const char *drv_name)
+static int unbind_child_by_class_seq(const char *uclass, int seq,
+ const char *drv_name)
{
struct udevice *parent;
int ret;
@@ -105,7 +104,7 @@ static int unbind_child_by_class_index(const char *uclass, int index,
return -ENOENT;
}
- ret = find_dev(uclass, index, &parent);
+ ret = find_dev(uclass, seq, &parent);
if (ret)
return ret;
@@ -218,19 +217,19 @@ static int do_bind_unbind(struct cmd_tbl *cmdtp, int flag, int argc,
return CMD_RET_USAGE;
ret = unbind_by_node_path(argv[1]);
} else if (!by_node && bind) {
- int index = (argc > 2) ? dectoul(argv[2], NULL) : 0;
+ int seq = (argc > 2) ? dectoul(argv[2], NULL) : 0;
if (argc != 4)
return CMD_RET_USAGE;
- ret = bind_by_class_index(argv[1], index, argv[3]);
+ ret = bind_by_class_seq(argv[1], seq, argv[3]);
} else if (!by_node && !bind) {
- int index = (argc > 2) ? dectoul(argv[2], NULL) : 0;
+ int seq = (argc > 2) ? dectoul(argv[2], NULL) : 0;
if (argc == 3)
- ret = unbind_by_class_index(argv[1], index);
+ ret = unbind_by_class_seq(argv[1], seq);
else if (argc == 4)
- ret = unbind_child_by_class_index(argv[1], index,
- argv[3]);
+ ret = unbind_child_by_class_seq(argv[1], seq,
+ argv[3]);
else
return CMD_RET_USAGE;
}
@@ -245,17 +244,17 @@ U_BOOT_CMD(
bind, 4, 0, do_bind_unbind,
"Bind a device to a driver",
"<node path> <driver>\n"
- "bind <class> <index> <driver>\n"
+ "bind <class> <seq> <driver>\n"
"Use 'dm tree' to list all devices registered in the driver model,\n"
- "their path, class, index and current driver.\n"
+ "their path, class, sequence and current driver.\n"
);
U_BOOT_CMD(
unbind, 4, 0, do_bind_unbind,
"Unbind a device from a driver",
"<node path>\n"
- "unbind <class> <index>\n"
- "unbind <class> <index> <driver>\n"
+ "unbind <class> <seq>\n"
+ "unbind <class> <seq> <driver>\n"
"Use 'dm tree' to list all devices registered in the driver model,\n"
- "their path, class, index and current driver.\n"
+ "their path, class, sequence and current driver.\n"
);
diff --git a/cmd/binop.c b/cmd/binop.c
index 592e9146901..10d91b5dbf2 100644
--- a/cmd/binop.c
+++ b/cmd/binop.c
@@ -1,11 +1,11 @@
// SPDX-License-Identifier: GPL-2.0+
-#include <common.h>
#include <command.h>
#include <env.h>
#include <hexdump.h>
#include <malloc.h>
#include <mapmem.h>
+#include <vsprintf.h>
#include <linux/ctype.h>
enum {
diff --git a/cmd/blk_common.c b/cmd/blk_common.c
index 02ac92837b6..4c05a4e0610 100644
--- a/cmd/blk_common.c
+++ b/cmd/blk_common.c
@@ -8,10 +8,10 @@
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
*/
-#include <common.h>
#include <blk.h>
#include <command.h>
#include <mapmem.h>
+#include <vsprintf.h>
int blk_common_cmd(int argc, char *const argv[], enum uclass_id uclass_id,
int *cur_devnump)
diff --git a/cmd/blkcache.c b/cmd/blkcache.c
index 1456654df6f..dbd03df14dc 100644
--- a/cmd/blkcache.c
+++ b/cmd/blkcache.c
@@ -6,9 +6,9 @@
*/
#include <command.h>
#include <config.h>
-#include <common.h>
#include <malloc.h>
#include <part.h>
+#include <vsprintf.h>
static int blkc_show(struct cmd_tbl *cmdtp, int flag,
int argc, char *const argv[])
diff --git a/cmd/blkmap.c b/cmd/blkmap.c
index ef74ebc0036..164f80f1387 100644
--- a/cmd/blkmap.c
+++ b/cmd/blkmap.c
@@ -6,7 +6,6 @@
#include <blk.h>
#include <blkmap.h>
-#include <common.h>
#include <command.h>
#include <malloc.h>
#include <dm/device.h>
diff --git a/cmd/blob.c b/cmd/blob.c
index 7c77c410d52..b1c72e3f440 100644
--- a/cmd/blob.c
+++ b/cmd/blob.c
@@ -4,9 +4,9 @@
* Command for encapsulating/decapsulating blob of memory.
*/
-#include <common.h>
#include <command.h>
#include <malloc.h>
+#include <vsprintf.h>
#include <asm/byteorder.h>
#include <linux/compiler.h>
#if defined(CONFIG_ARCH_MX6) || defined(CONFIG_ARCH_MX7) || \
@@ -99,7 +99,7 @@ static int do_blob(struct cmd_tbl *cmdtp, int flag, int argc,
}
/***************************************************/
-static char blob_help_text[] =
+U_BOOT_LONGHELP(blob,
"enc src dst len km - Encapsulate and create blob of data\n"
" $len bytes long at address $src and\n"
" store the result at address $dst.\n"
@@ -115,7 +115,7 @@ static char blob_help_text[] =
" modifier is stored.\n"
" The modifier is required for generation\n"
" /use as key for cryptographic operation.\n"
- " Key modifier should be 16 byte long.\n";
+ " Key modifier should be 16 byte long.\n");
U_BOOT_CMD(
blob, 6, 1, do_blob,
diff --git a/cmd/bloblist.c b/cmd/bloblist.c
index 26548ecf847..333ae558142 100644
--- a/cmd/bloblist.c
+++ b/cmd/bloblist.c
@@ -6,7 +6,6 @@
* Written by Simon Glass <sjg@chromium.org>
*/
-#include <common.h>
#include <bloblist.h>
#include <command.h>
#include <asm/global_data.h>
diff --git a/cmd/bmp.c b/cmd/bmp.c
index 8f43a40dafd..3b618448624 100644
--- a/cmd/bmp.c
+++ b/cmd/bmp.c
@@ -8,7 +8,6 @@
* BMP handling routines
*/
-#include <common.h>
#include <command.h>
#include <image.h>
#include <mapmem.h>
diff --git a/cmd/boot.c b/cmd/boot.c
index 14839c1cedc..23496cafdf5 100644
--- a/cmd/boot.c
+++ b/cmd/boot.c
@@ -7,9 +7,9 @@
/*
* Misc boot support
*/
-#include <common.h>
#include <command.h>
#include <net.h>
+#include <vsprintf.h>
#ifdef CONFIG_CMD_GO
diff --git a/cmd/bootcount.c b/cmd/bootcount.c
index 30ce5dba30d..5e3b66e676b 100644
--- a/cmd/bootcount.c
+++ b/cmd/bootcount.c
@@ -1,6 +1,5 @@
// SPDX-License-Identifier: GPL-2.0+
-#include <common.h>
#include <command.h>
#include <bootcount.h>
diff --git a/cmd/bootdev.c b/cmd/bootdev.c
index 471189cda48..fa7285ba25e 100644
--- a/cmd/bootdev.c
+++ b/cmd/bootdev.c
@@ -6,7 +6,6 @@
* Written by Simon Glass <sjg@chromium.org>
*/
-#include <common.h>
#include <bootdev.h>
#include <bootflow.h>
#include <bootstd.h>
diff --git a/cmd/bootflow.c b/cmd/bootflow.c
index be5d7d8e743..1588f277a4a 100644
--- a/cmd/bootflow.c
+++ b/cmd/bootflow.c
@@ -6,7 +6,6 @@
* Written by Simon Glass <sjg@chromium.org>
*/
-#include <common.h>
#include <bootdev.h>
#include <bootflow.h>
#include <bootm.h>
diff --git a/cmd/booti.c b/cmd/booti.c
index b9637b3ec3d..6018cbacf0a 100644
--- a/cmd/booti.c
+++ b/cmd/booti.c
@@ -4,7 +4,6 @@
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
*/
-#include <common.h>
#include <bootm.h>
#include <command.h>
#include <image.h>
@@ -88,7 +87,7 @@ static int booti_start(struct bootm_info *bmi)
images->os.start = relocated_addr;
images->os.end = relocated_addr + image_size;
- lmb_reserve(&images->lmb, images->ep, le32_to_cpu(image_size));
+ lmb_reserve(images->ep, le32_to_cpu(image_size));
/*
* Handle the BOOTM_STATE_FINDOTHER state ourselves as we do not
diff --git a/cmd/bootm.c b/cmd/bootm.c
index 9737a2d28c0..bee683d0580 100644
--- a/cmd/bootm.c
+++ b/cmd/bootm.c
@@ -7,7 +7,6 @@
/*
* Boot support
*/
-#include <common.h>
#include <bootm.h>
#include <command.h>
#include <env.h>
@@ -257,7 +256,6 @@ U_BOOT_CMD(
#endif
-
/*******************************************************************/
/* iminfo - print header info for a requested image */
/*******************************************************************/
@@ -362,7 +360,6 @@ U_BOOT_CMD(
);
#endif
-
/*******************************************************************/
/* imls - list all images found in flash */
/*******************************************************************/
diff --git a/cmd/bootmenu.c b/cmd/bootmenu.c
index 78184fccab2..977a04b7d76 100644
--- a/cmd/bootmenu.c
+++ b/cmd/bootmenu.c
@@ -5,7 +5,6 @@
#include <charset.h>
#include <cli.h>
-#include <common.h>
#include <command.h>
#include <ansi.h>
#include <efi_config.h>
diff --git a/cmd/bootmeth.c b/cmd/bootmeth.c
index f5b01343c48..ebf8b7e2530 100644
--- a/cmd/bootmeth.c
+++ b/cmd/bootmeth.c
@@ -6,7 +6,6 @@
* Written by Simon Glass <sjg@chromium.org>
*/
-#include <common.h>
#include <bootdev.h>
#include <bootmeth.h>
#include <bootstd.h>
diff --git a/cmd/bootstage.c b/cmd/bootstage.c
index 77a4bc66ff4..8248c41ca82 100644
--- a/cmd/bootstage.c
+++ b/cmd/bootstage.c
@@ -3,9 +3,9 @@
* Copyright (c) 2012, Google Inc. All rights reserved.
*/
-#include <common.h>
#include <bootstage.h>
#include <command.h>
+#include <vsprintf.h>
static int do_bootstage_report(struct cmd_tbl *cmdtp, int flag, int argc,
char *const argv[])
@@ -15,6 +15,7 @@ static int do_bootstage_report(struct cmd_tbl *cmdtp, int flag, int argc,
return 0;
}
+#if IS_ENABLED(CONFIG_BOOTSTAGE_STASH)
static int get_base_size(int argc, char *const argv[], ulong *basep,
ulong *sizep)
{
@@ -58,11 +59,14 @@ static int do_bootstage_stash(struct cmd_tbl *cmdtp, int flag, int argc,
return 0;
}
+#endif
static struct cmd_tbl cmd_bootstage_sub[] = {
U_BOOT_CMD_MKENT(report, 2, 1, do_bootstage_report, "", ""),
+#if IS_ENABLED(CONFIG_BOOTSTAGE_STASH)
U_BOOT_CMD_MKENT(stash, 4, 0, do_bootstage_stash, "", ""),
U_BOOT_CMD_MKENT(unstash, 4, 0, do_bootstage_stash, "", ""),
+#endif
};
/*
@@ -86,11 +90,12 @@ static int do_boostage(struct cmd_tbl *cmdtp, int flag, int argc,
return CMD_RET_USAGE;
}
-
U_BOOT_CMD(bootstage, 4, 1, do_boostage,
"Boot stage command",
" - check boot progress and timing\n"
"report - Print a report\n"
+#if IS_ENABLED(CONFIG_BOOTSTAGE_STASH)
"stash [<start> [<size>]] - Stash data into memory\n"
- "unstash [<start> [<size>]] - Unstash data from memory"
+ "unstash [<start> [<size>]] - Unstash data from memory\n"
+#endif
);
diff --git a/cmd/bootz.c b/cmd/bootz.c
index b6bb4aae72d..787203f5bd7 100644
--- a/cmd/bootz.c
+++ b/cmd/bootz.c
@@ -4,7 +4,6 @@
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
*/
-#include <common.h>
#include <bootm.h>
#include <command.h>
#include <image.h>
@@ -57,7 +56,7 @@ static int bootz_start(struct cmd_tbl *cmdtp, int flag, int argc,
if (ret != 0)
return 1;
- lmb_reserve(&images->lmb, images->ep, zi_end - zi_start);
+ lmb_reserve(images->ep, zi_end - zi_start);
/*
* Handle the BOOTM_STATE_FINDOTHER state ourselves as we do not
diff --git a/cmd/broadcom/chimp_boot.c b/cmd/broadcom/chimp_boot.c
index 16f2b612c4d..ae0a81179d0 100644
--- a/cmd/broadcom/chimp_boot.c
+++ b/cmd/broadcom/chimp_boot.c
@@ -3,7 +3,6 @@
* Copyright 2020 Broadcom
*/
-#include <common.h>
#include <command.h>
#include <broadcom/chimp.h>
diff --git a/cmd/broadcom/chimp_handshake.c b/cmd/broadcom/chimp_handshake.c
index a90a73a6d74..e2742671963 100644
--- a/cmd/broadcom/chimp_handshake.c
+++ b/cmd/broadcom/chimp_handshake.c
@@ -3,7 +3,6 @@
* Copyright 2020 Broadcom
*/
-#include <common.h>
#include <command.h>
#include <broadcom/chimp.h>
diff --git a/cmd/broadcom/nitro_image_load.c b/cmd/broadcom/nitro_image_load.c
index 93b5cb4cebe..289b184e9af 100644
--- a/cmd/broadcom/nitro_image_load.c
+++ b/cmd/broadcom/nitro_image_load.c
@@ -3,8 +3,8 @@
* Copyright 2020 Broadcom
*/
-#include <common.h>
#include <command.h>
+#include <vsprintf.h>
#define FW_IMAGE_SIG 0xff123456
#define CFG_IMAGE_SIG 0xcf54321a
diff --git a/cmd/btrfs.c b/cmd/btrfs.c
index 2843835d08b..69d1b1f830d 100644
--- a/cmd/btrfs.c
+++ b/cmd/btrfs.c
@@ -3,7 +3,6 @@
* 2017 by Marek Behún <kabel@kernel.org>
*/
-#include <common.h>
#include <command.h>
#include <btrfs.h>
#include <fs.h>
diff --git a/cmd/button.c b/cmd/button.c
index 1b45d0a2a03..3e6db3f5b8e 100644
--- a/cmd/button.c
+++ b/cmd/button.c
@@ -5,7 +5,6 @@
* Based on led.c
*/
-#include <common.h>
#include <command.h>
#include <dm.h>
#include <button.h>
diff --git a/cmd/cache.c b/cmd/cache.c
index b68d45b98bf..3049f5c305f 100644
--- a/cmd/cache.c
+++ b/cmd/cache.c
@@ -7,23 +7,12 @@
/*
* Cache support: switch on or off, get status
*/
-#include <common.h>
#include <command.h>
#include <cpu_func.h>
#include <linux/compiler.h>
static int parse_argv(const char *);
-void __weak invalidate_icache_all(void)
-{
- /* please define arch specific invalidate_icache_all */
- puts("No arch specific invalidate_icache_all available!\n");
-}
-
-__weak void noncached_set_region(void)
-{
-}
-
static int do_icache(struct cmd_tbl *cmdtp, int flag, int argc,
char *const argv[])
{
@@ -53,12 +42,6 @@ static int do_icache(struct cmd_tbl *cmdtp, int flag, int argc,
return 0;
}
-void __weak flush_dcache_all(void)
-{
- puts("No arch specific flush_dcache_all available!\n");
- /* please define arch specific flush_dcache_all */
-}
-
static int do_dcache(struct cmd_tbl *cmdtp, int flag, int argc,
char *const argv[])
{
@@ -70,7 +53,9 @@ static int do_dcache(struct cmd_tbl *cmdtp, int flag, int argc,
break;
case 1:
dcache_enable();
+#ifdef CONFIG_SYS_NONCACHED_MEMORY
noncached_set_region();
+#endif
break;
case 2:
flush_dcache_all();
@@ -101,7 +86,6 @@ static int parse_argv(const char *s)
return -1;
}
-
U_BOOT_CMD(
icache, 2, 1, do_icache,
"enable or disable instruction cache",
diff --git a/cmd/cat.c b/cmd/cat.c
index 18aa6ca7aa6..6828b7b364e 100644
--- a/cmd/cat.c
+++ b/cmd/cat.c
@@ -4,7 +4,6 @@
* Roger Knecht <rknecht@pm.de>
*/
-#include <common.h>
#include <command.h>
#include <fs.h>
#include <malloc.h>
diff --git a/cmd/cbfs.c b/cmd/cbfs.c
index 3cfc9eb2727..c1035461df1 100644
--- a/cmd/cbfs.c
+++ b/cmd/cbfs.c
@@ -6,10 +6,10 @@
/*
* CBFS commands
*/
-#include <common.h>
#include <command.h>
#include <env.h>
#include <cbfs.h>
+#include <vsprintf.h>
static int do_cbfs_init(struct cmd_tbl *cmdtp, int flag, int argc,
char *const argv[])
diff --git a/cmd/cedit.c b/cmd/cedit.c
index 6352e6369d1..fec67a8e334 100644
--- a/cmd/cedit.c
+++ b/cmd/cedit.c
@@ -6,7 +6,6 @@
* Written by Simon Glass <sjg@chromium.org>
*/
-#include <common.h>
#include <abuf.h>
#include <cedit.h>
#include <command.h>
diff --git a/cmd/cli.c b/cmd/cli.c
index be3bf7dfe20..e0ddd0a43d0 100644
--- a/cmd/cli.c
+++ b/cmd/cli.c
@@ -118,16 +118,11 @@ static int do_cli(struct cmd_tbl *cmdtp, int flag, int argc,
return CMD_RET_USAGE;
}
-#if CONFIG_IS_ENABLED(SYS_LONGHELP)
-static char cli_help_text[] =
+U_BOOT_LONGHELP(cli,
"get - print current cli\n"
- "set - set the current cli, possible value are: old, modern"
- ;
-#endif
+ "set - set the current cli, possible value are: old, modern\n");
U_BOOT_CMD(cli, 3, 1, do_cli,
"cli",
-#if CONFIG_IS_ENABLED(SYS_LONGHELP)
cli_help_text
-#endif
);
diff --git a/cmd/clk.c b/cmd/clk.c
index 7bbcbfeda33..6fda6efb1ce 100644
--- a/cmd/clk.c
+++ b/cmd/clk.c
@@ -2,7 +2,6 @@
/*
* Copyright (C) 2013 Xilinx, Inc.
*/
-#include <common.h>
#include <command.h>
#include <clk.h>
#if defined(CONFIG_DM) && defined(CONFIG_CLK)
diff --git a/cmd/clone.c b/cmd/clone.c
index a9062077571..1f3cff1836d 100644
--- a/cmd/clone.c
+++ b/cmd/clone.c
@@ -4,11 +4,11 @@
*
*/
-#include <common.h>
#include <command.h>
#include <malloc.h>
#include <part.h>
#include <blk.h>
+#include <time.h>
#include <vsprintf.h>
#define BUFSIZE (1 * 1024 * 1024)
diff --git a/cmd/cls.c b/cmd/cls.c
index 80d0558d467..4bee8a18305 100644
--- a/cmd/cls.c
+++ b/cmd/cls.c
@@ -5,7 +5,6 @@
*
* cls - clear screen command
*/
-#include <common.h>
#include <command.h>
#include <console.h>
#include <dm.h>
diff --git a/cmd/config.c b/cmd/config.c
index cf30841a359..f0d2033c61f 100644
--- a/cmd/config.c
+++ b/cmd/config.c
@@ -3,7 +3,6 @@
* Copyright (C) 2017 Masahiro Yamada <yamada.masahiro@socionext.com>
*/
-#include <common.h>
#include <command.h>
#include <gzip.h>
#include <malloc.h>
diff --git a/cmd/conitrace.c b/cmd/conitrace.c
index 9a1bc351848..6cc113328eb 100644
--- a/cmd/conitrace.c
+++ b/cmd/conitrace.c
@@ -5,7 +5,6 @@
*
* Copyright (c) 2018, Heinrich Schuchardt <xypron.glpk@gmx.de>
*/
-#include <common.h>
#include <command.h>
#include <linux/delay.h>
diff --git a/cmd/console.c b/cmd/console.c
index 58c2cf1c894..a8133ee3fa3 100644
--- a/cmd/console.c
+++ b/cmd/console.c
@@ -7,7 +7,6 @@
/*
* Boot support
*/
-#include <common.h>
#include <command.h>
#include <iomux.h>
#include <stdio_dev.h>
@@ -48,7 +47,6 @@ static int do_coninfo(struct cmd_tbl *cmd, int flag, int argc,
return 0;
}
-
/***************************************************/
U_BOOT_CMD(
diff --git a/cmd/cpu.c b/cmd/cpu.c
index 245a82fa3eb..27552507564 100644
--- a/cmd/cpu.c
+++ b/cmd/cpu.c
@@ -3,9 +3,9 @@
* Copyright (c) 2015 Google, Inc
* Written by Simon Glass <sjg@chromium.org>
* Copyright (c) 2017 Álvaro Fernández Rojas <noltari@gmail.com>
+ * Copyright 2024 NXP
*/
-#include <common.h>
#include <command.h>
#include <cpu.h>
#include <display_options.h>
@@ -19,6 +19,19 @@ static const char *cpu_feature_name[CPU_FEAT_COUNT] = {
"Device ID",
};
+static struct udevice *cpu_find_device(unsigned long cpu_id)
+{
+ struct udevice *dev;
+
+ for (uclass_first_device(UCLASS_CPU, &dev); dev;
+ uclass_next_device(&dev)) {
+ if (cpu_id == dev_seq(dev))
+ return dev;
+ }
+
+ return NULL;
+}
+
static int print_cpu_list(bool detail)
{
struct udevice *dev;
@@ -83,10 +96,36 @@ static int do_cpu_detail(struct cmd_tbl *cmdtp, int flag, int argc,
return 0;
}
+static int do_cpu_release(struct cmd_tbl *cmdtp, int flag, int argc,
+ char *const argv[])
+{
+ struct udevice *dev;
+ unsigned long cpu_id;
+ unsigned long long boot_addr;
+
+ if (argc != 3)
+ return CMD_RET_USAGE;
+
+ cpu_id = dectoul(argv[1], NULL);
+ dev = cpu_find_device(cpu_id);
+ if (!dev)
+ return CMD_RET_FAILURE;
+
+ boot_addr = simple_strtoull(argv[2], NULL, 16);
+
+ if (cpu_release_core(dev, boot_addr))
+ return CMD_RET_FAILURE;
+
+ return 0;
+}
+
U_BOOT_LONGHELP(cpu,
"list - list available CPUs\n"
- "cpu detail - show CPU detail");
+ "cpu detail - show CPU detail\n"
+ "cpu release <core ID> <addr> - Release CPU <core ID> at <addr>\n"
+ " <core ID>: the sequence number in list subcommand outputs");
U_BOOT_CMD_WITH_SUBCMDS(cpu, "display information about CPUs", cpu_help_text,
U_BOOT_SUBCMD_MKENT(list, 1, 1, do_cpu_list),
- U_BOOT_SUBCMD_MKENT(detail, 1, 0, do_cpu_detail));
+ U_BOOT_SUBCMD_MKENT(detail, 1, 0, do_cpu_detail),
+ U_BOOT_SUBCMD_MKENT(release, 3, 0, do_cpu_release));
diff --git a/cmd/cramfs.c b/cmd/cramfs.c
index 57e2afa2472..baff50d1bd6 100644
--- a/cmd/cramfs.c
+++ b/cmd/cramfs.c
@@ -6,11 +6,9 @@
* Add support for a CRAMFS located in RAM
*/
-
/*
* CRAMFS support
*/
-#include <common.h>
#include <command.h>
#include <env.h>
#include <image.h>
@@ -33,7 +31,6 @@
# define DEBUGF(fmt, args...)
#endif
-
#ifndef CONFIG_MTD_NOR_FLASH
# define OFFSET_ADJUSTMENT 0
#else
diff --git a/cmd/cros_ec.c b/cmd/cros_ec.c
index 90921cecf60..7b60e415b6c 100644
--- a/cmd/cros_ec.c
+++ b/cmd/cros_ec.c
@@ -6,7 +6,6 @@
* Copyright (c) 2016 National Instruments Corp
*/
-#include <common.h>
#include <command.h>
#include <cros_ec.h>
#include <dm.h>
diff --git a/cmd/cyclic.c b/cmd/cyclic.c
index ad7fc3b975e..339dd4a7bce 100644
--- a/cmd/cyclic.c
+++ b/cmd/cyclic.c
@@ -8,20 +8,23 @@
* Copyright (C) 2022 Stefan Roese <sr@denx.de>
*/
-#include <common.h>
#include <command.h>
#include <cyclic.h>
#include <div64.h>
#include <malloc.h>
+#include <time.h>
+#include <vsprintf.h>
#include <linux/delay.h>
+#include <linux/kernel.h>
struct cyclic_demo_info {
+ struct cyclic_info cyclic;
uint delay_us;
};
-static void cyclic_demo(void *ctx)
+static void cyclic_demo(struct cyclic_info *c)
{
- struct cyclic_demo_info *info = ctx;
+ struct cyclic_demo_info *info = container_of(c, struct cyclic_demo_info, cyclic);
/* Just a small dummy delay here */
udelay(info->delay_us);
@@ -31,7 +34,6 @@ static int do_cyclic_demo(struct cmd_tbl *cmdtp, int flag, int argc,
char *const argv[])
{
struct cyclic_demo_info *info;
- struct cyclic_info *cyclic;
uint time_ms;
if (argc < 3)
@@ -47,10 +49,7 @@ static int do_cyclic_demo(struct cmd_tbl *cmdtp, int flag, int argc,
info->delay_us = simple_strtoul(argv[2], NULL, 0);
/* Register demo cyclic function */
- cyclic = cyclic_register(cyclic_demo, time_ms * 1000, "cyclic_demo",
- info);
- if (!cyclic)
- printf("Registering of cyclic_demo failed\n");
+ cyclic_register(&info->cyclic, cyclic_demo, time_ms * 1000, "cyclic_demo");
printf("Registered function \"%s\" to be executed all %dms\n",
"cyclic_demo", time_ms);
diff --git a/cmd/date.c b/cmd/date.c
index 4f98b470ca2..8614f022761 100644
--- a/cmd/date.c
+++ b/cmd/date.c
@@ -7,7 +7,6 @@
/*
* RTC, Date & Time support: get and set date & time
*/
-#include <common.h>
#include <command.h>
#include <dm.h>
#include <rtc.h>
@@ -32,7 +31,6 @@ static int do_date(struct cmd_tbl *cmdtp, int flag, int argc,
int old_bus __maybe_unused;
/* switch to correct I2C bus */
-#ifdef CONFIG_DM_RTC
struct udevice *dev;
rcode = uclass_get_device_by_seq(UCLASS_RTC, 0, &dev);
@@ -43,35 +41,19 @@ static int do_date(struct cmd_tbl *cmdtp, int flag, int argc,
return CMD_RET_FAILURE;
}
}
-#elif CONFIG_IS_ENABLED(SYS_I2C_LEGACY)
- old_bus = i2c_get_bus_num();
- i2c_set_bus_num(CFG_SYS_RTC_BUS_NUM);
-#else
- old_bus = I2C_GET_BUS();
- I2C_SET_BUS(CFG_SYS_RTC_BUS_NUM);
-#endif
switch (argc) {
case 2: /* set date & time */
if (strcmp(argv[1],"reset") == 0) {
puts ("Reset RTC...\n");
-#ifdef CONFIG_DM_RTC
rcode = dm_rtc_reset(dev);
if (!rcode)
rcode = dm_rtc_set(dev, &default_tm);
-#else
- rtc_reset();
- rcode = rtc_set(&default_tm);
-#endif
if (rcode)
puts("## Failed to set date after RTC reset\n");
} else {
/* initialize tm with current time */
-#ifdef CONFIG_DM_RTC
rcode = dm_rtc_get(dev, &tm);
-#else
- rcode = rtc_get(&tm);
-#endif
if (!rcode) {
/* insert new date & time */
if (mk_date(argv[1], &tm) != 0) {
@@ -79,11 +61,7 @@ static int do_date(struct cmd_tbl *cmdtp, int flag, int argc,
break;
}
/* and write to RTC */
-#ifdef CONFIG_DM_RTC
rcode = dm_rtc_set(dev, &tm);
-#else
- rcode = rtc_set(&tm);
-#endif
if (rcode) {
printf("## Set date failed: err=%d\n",
rcode);
@@ -94,11 +72,7 @@ static int do_date(struct cmd_tbl *cmdtp, int flag, int argc,
}
fallthrough;
case 1: /* get date & time */
-#ifdef CONFIG_DM_RTC
rcode = dm_rtc_get(dev, &tm);
-#else
- rcode = rtc_get(&tm);
-#endif
if (rcode) {
puts("## Get date failed\n");
break;
@@ -115,13 +89,6 @@ static int do_date(struct cmd_tbl *cmdtp, int flag, int argc,
rcode = CMD_RET_USAGE;
}
- /* switch back to original I2C bus */
-#if CONFIG_IS_ENABLED(SYS_I2C_LEGACY)
- i2c_set_bus_num(old_bus);
-#elif !defined(CONFIG_DM_RTC)
- I2C_SET_BUS(old_bus);
-#endif
-
return rcode ? CMD_RET_FAILURE : 0;
}
diff --git a/cmd/demo.c b/cmd/demo.c
index ebd5a241c36..5c422ac165b 100644
--- a/cmd/demo.c
+++ b/cmd/demo.c
@@ -6,7 +6,6 @@
* Pavel Herrmann <morpheus.ibis@gmail.com>
*/
-#include <common.h>
#include <command.h>
#include <dm.h>
#include <dm-demo.h>
diff --git a/cmd/dfu.c b/cmd/dfu.c
index d7bfb535dc6..46f0190588e 100644
--- a/cmd/dfu.c
+++ b/cmd/dfu.c
@@ -10,7 +10,6 @@
* Lukasz Majewski <l.majewski@samsung.com>
*/
-#include <common.h>
#include <command.h>
#include <watchdog.h>
#include <dfu.h>
diff --git a/cmd/diag.c b/cmd/diag.c
index f51536dbfaa..c6da5aae3fc 100644
--- a/cmd/diag.c
+++ b/cmd/diag.c
@@ -7,7 +7,6 @@
/*
* Diagnostics support
*/
-#include <common.h>
#include <command.h>
#include <post.h>
diff --git a/cmd/disk.c b/cmd/disk.c
index 92eaa02f4a1..2efc3ca4b1a 100644
--- a/cmd/disk.c
+++ b/cmd/disk.c
@@ -3,7 +3,6 @@
* (C) Copyright 2000-2011
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
*/
-#include <common.h>
#include <bootstage.h>
#include <command.h>
#include <cpu_func.h>
diff --git a/cmd/dm.c b/cmd/dm.c
index fb605c2da1a..ec9cfd85376 100644
--- a/cmd/dm.c
+++ b/cmd/dm.c
@@ -6,7 +6,6 @@
* Marek Vasut <marex@denx.de>
*/
-#include <common.h>
#include <command.h>
#include <dm/root.h>
#include <dm/util.h>
diff --git a/cmd/echo.c b/cmd/echo.c
index fda844ee9d3..973213a03a6 100644
--- a/cmd/echo.c
+++ b/cmd/echo.c
@@ -4,7 +4,6 @@
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
*/
-#include <common.h>
#include <command.h>
static int do_echo(struct cmd_tbl *cmdtp, int flag, int argc,
diff --git a/cmd/eeprom.c b/cmd/eeprom.c
index 322765ad02a..cf89cfce3e4 100644
--- a/cmd/eeprom.c
+++ b/cmd/eeprom.c
@@ -19,12 +19,14 @@
*
*/
-#include <common.h>
#include <config.h>
#include <command.h>
+#include <dm.h>
#include <eeprom.h>
#include <i2c.h>
+#include <i2c_eeprom.h>
#include <eeprom_layout.h>
+#include <vsprintf.h>
#include <linux/delay.h>
#ifndef I2C_RXTX_LEN
@@ -208,41 +210,95 @@ static long parse_numeric_param(char *str)
return (*endptr != '\0') ? -1 : value;
}
+struct eeprom_dev_spec {
+#if CONFIG_IS_ENABLED(I2C_EEPROM)
+ struct udevice *dev;
+#endif
+ int i2c_bus;
+ ulong i2c_addr;
+};
+
+static void eeprom_dev_spec_init(struct eeprom_dev_spec *dev)
+{
+#if CONFIG_IS_ENABLED(I2C_EEPROM)
+ if (!dev->dev)
+#endif
+ eeprom_init(dev->i2c_bus);
+}
+
+static int eeprom_dev_spec_read(struct eeprom_dev_spec *dev,
+ unsigned offset, uchar *buffer, unsigned cnt)
+{
+#if CONFIG_IS_ENABLED(I2C_EEPROM)
+ if (dev->dev)
+ return i2c_eeprom_read(dev->dev, offset, buffer, cnt);
+#endif
+ return eeprom_read(dev->i2c_addr, offset, buffer, cnt);
+}
+
+static int eeprom_dev_spec_write(struct eeprom_dev_spec *dev,
+ unsigned offset, uchar *buffer, unsigned cnt)
+{
+#if CONFIG_IS_ENABLED(I2C_EEPROM)
+ if (dev->dev)
+ return i2c_eeprom_write(dev->dev, offset, buffer, cnt);
+#endif
+ return eeprom_write(dev->i2c_addr, offset, buffer, cnt);
+}
+
/**
- * parse_i2c_bus_addr - parse the i2c bus and i2c devaddr parameters
+ * parse_eeprom_dev_spec - parse the eeprom device specifier
*
- * @i2c_bus: address to store the i2c bus
- * @i2c_addr: address to store the device i2c address
- * @argc: count of command line arguments left to parse
+ * @dev: pointer to eeprom device specifier
+ * @argc: count of command line arguments that can be used to parse
+ * the device specifier
* @argv: command line arguments left to parse
- * @argc_no_bus_addr: argc value we expect to see when bus & addr aren't given
*
* @returns: number of arguments parsed or CMD_RET_USAGE if error
*/
-static int parse_i2c_bus_addr(int *i2c_bus, ulong *i2c_addr, int argc,
- char *const argv[], int argc_no_bus_addr)
+static int parse_eeprom_dev_spec(struct eeprom_dev_spec *dev, int argc,
+ char *const argv[])
{
- int argc_no_bus = argc_no_bus_addr + 1;
- int argc_bus_addr = argc_no_bus_addr + 2;
+#if CONFIG_IS_ENABLED(I2C_EEPROM)
+ if (argc == 0) {
+ if (!uclass_first_device_err(UCLASS_I2C_EEPROM, &dev->dev))
+ return 0;
+ }
+
+ if (argc == 1) {
+ if (!uclass_get_device_by_name(UCLASS_I2C_EEPROM, argv[0],
+ &dev->dev))
+ return 1;
+
+ /*
+ * If we could not find the device by name and the parameter is
+ * not numeric (and so won't be handled later), fail.
+ */
+ if (parse_numeric_param(argv[0]) == -1) {
+ printf("Can't get eeprom device: %s\n", argv[0]);
+ return CMD_RET_USAGE;
+ }
+ }
+#endif
#ifdef CONFIG_SYS_I2C_EEPROM_ADDR
- if (argc == argc_no_bus_addr) {
- *i2c_bus = -1;
- *i2c_addr = CONFIG_SYS_I2C_EEPROM_ADDR;
+ if (argc == 0) {
+ dev->i2c_bus = -1;
+ dev->i2c_addr = CONFIG_SYS_I2C_EEPROM_ADDR;
return 0;
}
#endif
- if (argc == argc_no_bus) {
- *i2c_bus = -1;
- *i2c_addr = parse_numeric_param(argv[0]);
+ if (argc == 1) {
+ dev->i2c_bus = -1;
+ dev->i2c_addr = parse_numeric_param(argv[0]);
return 1;
}
- if (argc == argc_bus_addr) {
- *i2c_bus = parse_numeric_param(argv[0]);
- *i2c_addr = parse_numeric_param(argv[1]);
+ if (argc == 2) {
+ dev->i2c_bus = parse_numeric_param(argv[0]);
+ dev->i2c_addr = parse_numeric_param(argv[1]);
return 2;
}
@@ -252,16 +308,19 @@ static int parse_i2c_bus_addr(int *i2c_bus, ulong *i2c_addr, int argc,
#ifdef CONFIG_CMD_EEPROM_LAYOUT
+#ifdef CONFIG_EEPROM_LAYOUT_VERSIONS
__weak int eeprom_parse_layout_version(char *str)
{
return LAYOUT_VERSION_UNRECOGNIZED;
}
+#endif
static unsigned char eeprom_buf[CONFIG_SYS_EEPROM_SIZE];
#endif
enum eeprom_action {
+ EEPROM_LIST,
EEPROM_READ,
EEPROM_WRITE,
EEPROM_PRINT,
@@ -271,6 +330,10 @@ enum eeprom_action {
static enum eeprom_action parse_action(char *cmd)
{
+#if CONFIG_IS_ENABLED(I2C_EEPROM)
+ if (!strncmp(cmd, "list", 4))
+ return EEPROM_LIST;
+#endif
if (!strncmp(cmd, "read", 4))
return EEPROM_READ;
if (!strncmp(cmd, "write", 5))
@@ -285,68 +348,115 @@ static enum eeprom_action parse_action(char *cmd)
return EEPROM_ACTION_INVALID;
}
-static int eeprom_execute_command(enum eeprom_action action, int i2c_bus,
- ulong i2c_addr, int layout_ver, char *key,
- char *value, ulong addr, ulong off, ulong cnt)
+#if CONFIG_IS_ENABLED(I2C_EEPROM)
+static int do_eeprom_list(void)
+{
+ struct udevice *dev;
+ struct uclass *uc;
+ int err;
+
+ err = uclass_get(UCLASS_I2C_EEPROM, &uc);
+ if (err)
+ return CMD_RET_FAILURE;
+
+ uclass_foreach_dev(dev, uc)
+ printf("%s (%s)\n", dev->name, dev->driver->name);
+
+ return CMD_RET_SUCCESS;
+}
+#endif
+
+static int do_eeprom_rw(struct eeprom_dev_spec *dev, bool read,
+ ulong addr, ulong off, ulong cnt)
{
- int rcode = 0;
const char *const fmt =
"\nEEPROM @0x%lX %s: addr 0x%08lx off 0x%04lx count %ld ... ";
+ uchar *memloc = (uchar *)addr;
+ int ret;
+
+ printf(fmt, dev->i2c_addr, read ? "read" : "write", addr, off, cnt);
+ if (read)
+ ret = eeprom_dev_spec_read(dev, off, memloc, cnt);
+ else
+ ret = eeprom_dev_spec_write(dev, off, memloc, cnt);
+ puts("done\n");
+
+ return ret;
+}
+
#ifdef CONFIG_CMD_EEPROM_LAYOUT
- struct eeprom_layout layout;
-#endif
- if (action == EEPROM_ACTION_INVALID)
- return CMD_RET_USAGE;
+static int do_eeprom_layout(struct eeprom_dev_spec *dev, int layout_ver,
+ struct eeprom_layout *layout)
+{
+ eeprom_layout_setup(layout, eeprom_buf, CONFIG_SYS_EEPROM_SIZE,
+ layout_ver);
- eeprom_init(i2c_bus);
- if (action == EEPROM_READ) {
- printf(fmt, i2c_addr, "read", addr, off, cnt);
+ return eeprom_dev_spec_read(dev, 0, eeprom_buf, layout->data_size);
+}
- rcode = eeprom_read(i2c_addr, off, (uchar *)addr, cnt);
+static int do_eeprom_print(struct eeprom_dev_spec *dev, int layout_ver)
+{
+ struct eeprom_layout layout;
+ int ret;
- puts("done\n");
- return rcode;
- } else if (action == EEPROM_WRITE) {
- printf(fmt, i2c_addr, "write", addr, off, cnt);
+ ret = do_eeprom_layout(dev, layout_ver, &layout);
+ if (ret)
+ return ret;
- rcode = eeprom_write(i2c_addr, off, (uchar *)addr, cnt);
+ layout.print(&layout);
- puts("done\n");
- return rcode;
- }
+ return 0;
+}
-#ifdef CONFIG_CMD_EEPROM_LAYOUT
- rcode = eeprom_read(i2c_addr, 0, eeprom_buf, CONFIG_SYS_EEPROM_SIZE);
- if (rcode < 0)
- return rcode;
+static int do_eeprom_update(struct eeprom_dev_spec *dev, int layout_ver,
+ char *key, char *value)
+{
+ struct eeprom_layout layout;
+ int ret;
- eeprom_layout_setup(&layout, eeprom_buf, CONFIG_SYS_EEPROM_SIZE,
- layout_ver);
+ ret = do_eeprom_layout(dev, layout_ver, &layout);
+ if (ret)
+ return ret;
- if (action == EEPROM_PRINT) {
- layout.print(&layout);
- return 0;
- }
+ ret = layout.update(&layout, key, value);
+ if (ret)
+ return CMD_RET_FAILURE;
- layout.update(&layout, key, value);
+ return eeprom_dev_spec_write(dev, 0, layout.data, layout.data_size);
+}
- rcode = eeprom_write(i2c_addr, 0, layout.data, CONFIG_SYS_EEPROM_SIZE);
#endif
- return rcode;
+static int eeprom_action_expected_argc(enum eeprom_action action)
+{
+ switch (action) {
+ case EEPROM_LIST:
+ return 0;
+ case EEPROM_READ:
+ case EEPROM_WRITE:
+ return 3;
+ case EEPROM_PRINT:
+ return 0;
+ case EEPROM_UPDATE:
+ return 2;
+ default:
+ return CMD_RET_USAGE;
+ }
}
#define NEXT_PARAM(argc, index) { (argc)--; (index)++; }
int do_eeprom(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
{
- int layout_ver = LAYOUT_VERSION_AUTODETECT;
enum eeprom_action action = EEPROM_ACTION_INVALID;
- int i2c_bus = -1, index = 0;
- ulong i2c_addr = -1, addr = 0, cnt = 0, off = 0;
- int ret;
+ struct eeprom_dev_spec dev;
+ ulong addr = 0, cnt = 0, off = 0;
+ int ret, index = 0;
+#ifdef CONFIG_CMD_EEPROM_LAYOUT
char *field_name = "";
char *field_value = "";
+ int layout_ver = LAYOUT_VERSION_AUTODETECT;
+#endif
if (argc <= 1)
return CMD_RET_USAGE;
@@ -359,7 +469,12 @@ int do_eeprom(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
if (action == EEPROM_ACTION_INVALID)
return CMD_RET_USAGE;
-#ifdef CONFIG_CMD_EEPROM_LAYOUT
+#if CONFIG_IS_ENABLED(I2C_EEPROM)
+ if (action == EEPROM_LIST)
+ return do_eeprom_list();
+#endif
+
+#ifdef CONFIG_EEPROM_LAYOUT_VERSIONS
if (action == EEPROM_PRINT || action == EEPROM_UPDATE) {
if (!strcmp(argv[index], "-l")) {
NEXT_PARAM(argc, index);
@@ -369,25 +484,9 @@ int do_eeprom(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
}
#endif
- switch (action) {
- case EEPROM_READ:
- case EEPROM_WRITE:
- ret = parse_i2c_bus_addr(&i2c_bus, &i2c_addr, argc,
- argv + index, 3);
- break;
- case EEPROM_PRINT:
- ret = parse_i2c_bus_addr(&i2c_bus, &i2c_addr, argc,
- argv + index, 0);
- break;
- case EEPROM_UPDATE:
- ret = parse_i2c_bus_addr(&i2c_bus, &i2c_addr, argc,
- argv + index, 2);
- break;
- default:
- /* Get compiler to stop whining */
- return CMD_RET_USAGE;
- }
-
+ ret = parse_eeprom_dev_spec(&dev,
+ argc - eeprom_action_expected_argc(action),
+ argv + index);
if (ret == CMD_RET_USAGE)
return ret;
@@ -411,24 +510,64 @@ int do_eeprom(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
}
#endif
- return eeprom_execute_command(action, i2c_bus, i2c_addr, layout_ver,
- field_name, field_value, addr, off, cnt);
+ eeprom_dev_spec_init(&dev);
+
+ switch (action) {
+ case EEPROM_READ:
+ case EEPROM_WRITE:
+ return do_eeprom_rw(&dev, action == EEPROM_READ,
+ addr, off, cnt);
+#ifdef CONFIG_CMD_EEPROM_LAYOUT
+ case EEPROM_PRINT:
+ return do_eeprom_print(&dev, layout_ver);
+ case EEPROM_UPDATE:
+ return do_eeprom_update(&dev, layout_ver,
+ field_name, field_value);
+#endif
+ default:
+ return CMD_RET_USAGE;
+ }
}
+#ifdef CONFIG_EEPROM_LAYOUT_VERSIONS
+#define EEPROM_LAYOUT_SPEC "[-l <layout_version>] "
+#else
+#define EEPROM_LAYOUT_SPEC ""
+#endif
+
+#if CONFIG_IS_ENABLED(I2C_EEPROM)
+# define EEPROM_DEV_SPEC "[device_specifier]"
+#else
+# define EEPROM_DEV_SPEC "[[bus] devaddr]"
+#endif
+
U_BOOT_CMD(
eeprom, 8, 1, do_eeprom,
"EEPROM sub-system",
- "read <bus> <devaddr> addr off cnt\n"
- "eeprom write <bus> <devaddr> addr off cnt\n"
+#if CONFIG_IS_ENABLED(I2C_EEPROM)
+ "list\n"
+ "eeprom "
+#endif
+ "read " EEPROM_DEV_SPEC " addr off cnt\n"
+ "eeprom write " EEPROM_DEV_SPEC " addr off cnt\n"
" - read/write `cnt' bytes from `devaddr` EEPROM at offset `off'"
#ifdef CONFIG_CMD_EEPROM_LAYOUT
"\n"
- "eeprom print [-l <layout_version>] <bus> <devaddr>\n"
+ "eeprom print " EEPROM_LAYOUT_SPEC EEPROM_DEV_SPEC "\n"
" - Print layout fields and their data in human readable format\n"
- "eeprom update [-l <layout_version>] <bus> <devaddr> field_name field_value\n"
+ "eeprom update " EEPROM_LAYOUT_SPEC EEPROM_DEV_SPEC " field_name field_value\n"
" - Update a specific eeprom field with new data.\n"
- " The new data must be written in the same human readable format as shown by the print command.\n"
- "\n"
+ " The new data must be written in the same human readable format as shown by the print command."
+#endif
+#if CONFIG_IS_ENABLED(I2C_EEPROM)
+ "\n\n"
+ "DEVICE SPECIFIER - the eeprom device can be specified\n"
+ " [dev_name] - by device name (devices can listed with the eeprom list command)\n"
+ " [[bus] devaddr] - or by I2C bus and I2C device address\n"
+ "If no device specifier is given, the first driver-model found device is used."
+#endif
+#ifdef CONFIG_EEPROM_LAYOUT_VERSIONS
+ "\n\n"
"LAYOUT VERSIONS\n"
"The -l option can be used to force the command to interpret the EEPROM data using the chosen layout.\n"
"If the -l option is omitted, the command will auto detect the layout based on the data in the EEPROM.\n"
diff --git a/cmd/efi.c b/cmd/efi.c
index 6cd5361aca5..6bed2d743ba 100644
--- a/cmd/efi.c
+++ b/cmd/efi.c
@@ -4,7 +4,6 @@
* Written by Simon Glass <sjg@chromium.org>
*/
-#include <common.h>
#include <command.h>
#include <efi.h>
#include <efi_api.h>
diff --git a/cmd/efi_common.c b/cmd/efi_common.c
index 1aa2351fcdf..c46764e6eea 100644
--- a/cmd/efi_common.c
+++ b/cmd/efi_common.c
@@ -6,7 +6,6 @@
* Written by Simon Glass <sjg@chromium.org>
*/
-#include <common.h>
#include <efi.h>
#include <efi_api.h>
#include <uuid.h>
diff --git a/cmd/eficonfig.c b/cmd/eficonfig.c
index 0ba92c60e03..bea09e4ecc7 100644
--- a/cmd/eficonfig.c
+++ b/cmd/eficonfig.c
@@ -7,7 +7,6 @@
#include <ansi.h>
#include <cli.h>
-#include <common.h>
#include <charset.h>
#include <efi_loader.h>
#include <efi_load_initrd.h>
@@ -62,6 +61,7 @@ struct eficonfig_filepath_info {
struct eficonfig_boot_option {
struct eficonfig_select_file_info file_info;
struct eficonfig_select_file_info initrd_info;
+ struct eficonfig_select_file_info fdt_info;
unsigned int boot_index;
u16 *description;
u16 *optional_data;
@@ -531,7 +531,7 @@ struct efi_device_path *eficonfig_create_device_path(struct efi_device_path *dp_
dp = efi_dp_shorten(dp_volume);
if (!dp)
dp = dp_volume;
- dp = efi_dp_concat(dp, &fp->dp, false);
+ dp = efi_dp_concat(dp, &fp->dp, 0);
free(buf);
return dp;
@@ -1308,6 +1308,10 @@ static efi_status_t eficonfig_show_boot_option(struct eficonfig_boot_option *bo,
if (ret != EFI_SUCCESS)
goto out;
+ ret = prepare_file_selection_entry(efi_menu, "Fdt File: ", &bo->fdt_info);
+ if (ret != EFI_SUCCESS)
+ goto out;
+
ret = create_boot_option_entry(efi_menu, "Optional Data: ", bo->optional_data,
eficonfig_boot_add_optional_data, bo);
if (ret != EFI_SUCCESS)
@@ -1388,27 +1392,44 @@ static efi_status_t eficonfig_edit_boot_option(u16 *varname, struct eficonfig_bo
efi_status_t ret;
char *tmp = NULL, *p;
struct efi_load_option lo = {0};
- efi_uintn_t final_dp_size;
+ efi_uintn_t dp_size;
struct efi_device_path *dp = NULL;
efi_uintn_t size = load_option_size;
- struct efi_device_path *final_dp = NULL;
struct efi_device_path *device_dp = NULL;
struct efi_device_path *initrd_dp = NULL;
+ struct efi_device_path *fdt_dp = NULL;
struct efi_device_path *initrd_device_dp = NULL;
+ struct efi_device_path *fdt_device_dp = NULL;
- const struct efi_initrd_dp id_dp = {
+ const struct efi_lo_dp_prefix initrd_prefix = {
.vendor = {
{
DEVICE_PATH_TYPE_MEDIA_DEVICE,
DEVICE_PATH_SUB_TYPE_VENDOR_PATH,
- sizeof(id_dp.vendor),
+ sizeof(initrd_prefix.vendor),
},
EFI_INITRD_MEDIA_GUID,
},
.end = {
DEVICE_PATH_TYPE_END,
DEVICE_PATH_SUB_TYPE_END,
- sizeof(id_dp.end),
+ sizeof(initrd_prefix.end),
+ }
+ };
+
+ const struct efi_lo_dp_prefix fdt_prefix = {
+ .vendor = {
+ {
+ DEVICE_PATH_TYPE_MEDIA_DEVICE,
+ DEVICE_PATH_SUB_TYPE_VENDOR_PATH,
+ sizeof(fdt_prefix.vendor),
+ },
+ EFI_FDT_GUID,
+ },
+ .end = {
+ DEVICE_PATH_TYPE_END,
+ DEVICE_PATH_SUB_TYPE_END,
+ sizeof(initrd_prefix.end),
}
};
@@ -1424,6 +1445,12 @@ static efi_status_t eficonfig_edit_boot_option(u16 *varname, struct eficonfig_bo
goto out;
}
+ bo->fdt_info.current_path = calloc(1, EFICONFIG_FILE_PATH_BUF_SIZE);
+ if (!bo->fdt_info.current_path) {
+ ret = EFI_OUT_OF_RESOURCES;
+ goto out;
+ }
+
bo->description = calloc(1, EFICONFIG_DESCRIPTION_MAX * sizeof(u16));
if (!bo->description) {
ret = EFI_OUT_OF_RESOURCES;
@@ -1456,13 +1483,20 @@ static efi_status_t eficonfig_edit_boot_option(u16 *varname, struct eficonfig_bo
if (lo.file_path)
fill_file_info(lo.file_path, &bo->file_info, device_dp);
- /* Initrd file path(optional) is placed at second instance. */
+ /* Initrd file path (optional) is placed at second instance. */
initrd_dp = efi_dp_from_lo(&lo, &efi_lf2_initrd_guid);
if (initrd_dp) {
fill_file_info(initrd_dp, &bo->initrd_info, initrd_device_dp);
efi_free_pool(initrd_dp);
}
+ /* Fdt file path (optional) is placed as third instance. */
+ fdt_dp = efi_dp_from_lo(&lo, &efi_guid_fdt);
+ if (fdt_dp) {
+ fill_file_info(fdt_dp, &bo->fdt_info, fdt_device_dp);
+ efi_free_pool(fdt_dp);
+ }
+
if (size > 0)
memcpy(bo->optional_data, lo.optional_data, size);
}
@@ -1484,8 +1518,20 @@ static efi_status_t eficonfig_edit_boot_option(u16 *varname, struct eficonfig_bo
ret = EFI_OUT_OF_RESOURCES;
goto out;
}
- initrd_dp = efi_dp_concat((const struct efi_device_path *)&id_dp,
- dp, false);
+ initrd_dp = efi_dp_concat((const struct efi_device_path *)&initrd_prefix,
+ dp, 0);
+ efi_free_pool(dp);
+ }
+
+ if (bo->fdt_info.dp_volume) {
+ dp = eficonfig_create_device_path(bo->fdt_info.dp_volume,
+ bo->fdt_info.current_path);
+ if (!dp) {
+ ret = EFI_OUT_OF_RESOURCES;
+ goto out;
+ }
+ fdt_dp = efi_dp_concat((const struct efi_device_path *)&fdt_prefix,
+ dp, 0);
efi_free_pool(dp);
}
@@ -1494,16 +1540,9 @@ static efi_status_t eficonfig_edit_boot_option(u16 *varname, struct eficonfig_bo
ret = EFI_OUT_OF_RESOURCES;
goto out;
}
- final_dp_size = efi_dp_size(dp) + sizeof(END);
- if (initrd_dp) {
- final_dp = efi_dp_concat(dp, initrd_dp, true);
- final_dp_size += efi_dp_size(initrd_dp) + sizeof(END);
- } else {
- final_dp = efi_dp_dup(dp);
- }
- efi_free_pool(dp);
- if (!final_dp)
+ ret = efi_load_option_dp_join(&dp, &dp_size, initrd_dp, fdt_dp);
+ if (ret != EFI_SUCCESS)
goto out;
if (utf16_utf8_strlen(bo->optional_data)) {
@@ -1515,17 +1554,20 @@ static efi_status_t eficonfig_edit_boot_option(u16 *varname, struct eficonfig_bo
utf16_utf8_strncpy(&p, bo->optional_data, u16_strlen(bo->optional_data));
}
- ret = eficonfig_set_boot_option(varname, final_dp, final_dp_size, bo->description, tmp);
+ ret = eficonfig_set_boot_option(varname, dp, dp_size, bo->description, tmp);
out:
free(tmp);
free(bo->optional_data);
free(bo->description);
free(bo->file_info.current_path);
free(bo->initrd_info.current_path);
+ free(bo->fdt_info.current_path);
efi_free_pool(device_dp);
efi_free_pool(initrd_device_dp);
efi_free_pool(initrd_dp);
- efi_free_pool(final_dp);
+ efi_free_pool(fdt_device_dp);
+ efi_free_pool(fdt_dp);
+ efi_free_pool(dp);
return ret;
}
diff --git a/cmd/eficonfig_sbkey.c b/cmd/eficonfig_sbkey.c
index caca27495e0..b3325a540f9 100644
--- a/cmd/eficonfig_sbkey.c
+++ b/cmd/eficonfig_sbkey.c
@@ -6,7 +6,6 @@
*/
#include <ansi.h>
-#include <common.h>
#include <charset.h>
#include <hexdump.h>
#include <log.h>
diff --git a/cmd/efidebug.c b/cmd/efidebug.c
index c2c525f2351..1a191eb9994 100644
--- a/cmd/efidebug.c
+++ b/cmd/efidebug.c
@@ -6,7 +6,6 @@
*/
#include <charset.h>
-#include <common.h>
#include <command.h>
#include <dm/device.h>
#include <efi_dt_fixup.h>
@@ -654,38 +653,80 @@ static int do_efi_show_tables(struct cmd_tbl *cmdtp, int flag,
}
/**
- * create_initrd_dp() - create a special device for our Boot### option
+ * enum efi_lo_dp_part - part of device path in load option
+ */
+enum efi_lo_dp_part {
+ /** @EFI_LO_DP_PART_BINARY: binary */
+ EFI_LO_DP_PART_BINARY,
+ /** @EFI_LO_DP_PART_INITRD: initial RAM disk */
+ EFI_LO_DP_PART_INITRD,
+ /** @EFI_LP_DP_PART_FDT: device-tree */
+ EFI_LP_DP_PART_FDT,
+};
+
+/**
+ * create_lo_dp() - create a special device path for our Boot### option
*
* @dev: device
* @part: disk partition
* @file: filename
* @shortform: create short form device path
+ * @type: part of device path to be created
* Return: pointer to the device path or ERR_PTR
*/
static
-struct efi_device_path *create_initrd_dp(const char *dev, const char *part,
- const char *file, int shortform)
+struct efi_device_path *create_lo_dp_part(const char *dev, const char *part,
+ const char *file, bool shortform,
+ enum efi_lo_dp_part type)
{
struct efi_device_path *tmp_dp = NULL, *tmp_fp = NULL, *short_fp = NULL;
- struct efi_device_path *initrd_dp = NULL;
+ struct efi_device_path *dp = NULL;
+ const struct efi_device_path *dp_prefix;
efi_status_t ret;
- const struct efi_initrd_dp id_dp = {
+ const struct efi_lo_dp_prefix fdt_dp = {
.vendor = {
{
DEVICE_PATH_TYPE_MEDIA_DEVICE,
DEVICE_PATH_SUB_TYPE_VENDOR_PATH,
- sizeof(id_dp.vendor),
+ sizeof(fdt_dp.vendor),
+ },
+ EFI_FDT_GUID,
+ },
+ .end = {
+ DEVICE_PATH_TYPE_END,
+ DEVICE_PATH_SUB_TYPE_END,
+ sizeof(fdt_dp.end),
+ }
+ };
+ const struct efi_lo_dp_prefix initrd_dp = {
+ .vendor = {
+ {
+ DEVICE_PATH_TYPE_MEDIA_DEVICE,
+ DEVICE_PATH_SUB_TYPE_VENDOR_PATH,
+ sizeof(initrd_dp.vendor),
},
EFI_INITRD_MEDIA_GUID,
},
.end = {
DEVICE_PATH_TYPE_END,
DEVICE_PATH_SUB_TYPE_END,
- sizeof(id_dp.end),
+ sizeof(initrd_dp.end),
}
};
+ switch (type) {
+ case EFI_LO_DP_PART_INITRD:
+ dp_prefix = &initrd_dp.vendor.dp;
+ break;
+ case EFI_LP_DP_PART_FDT:
+ dp_prefix = &fdt_dp.vendor.dp;
+ break;
+ default:
+ dp_prefix = NULL;
+ break;
+ }
+
ret = efi_dp_from_name(dev, part, file, &tmp_dp, &tmp_fp);
if (ret != EFI_SUCCESS) {
printf("Cannot create device path for \"%s %s\"\n", part, file);
@@ -696,13 +737,12 @@ struct efi_device_path *create_initrd_dp(const char *dev, const char *part,
if (!short_fp)
short_fp = tmp_fp;
- initrd_dp = efi_dp_concat((const struct efi_device_path *)&id_dp,
- short_fp, false);
+ dp = efi_dp_concat(dp_prefix, short_fp, 0);
out:
efi_free_pool(tmp_dp);
efi_free_pool(tmp_fp);
- return initrd_dp;
+ return dp;
}
/**
@@ -793,9 +833,8 @@ static int do_efi_boot_add(struct cmd_tbl *cmdtp, int flag,
efi_guid_t guid;
u16 *label;
struct efi_device_path *file_path = NULL;
- struct efi_device_path *fp_free = NULL;
- struct efi_device_path *final_fp = NULL;
struct efi_device_path *initrd_dp = NULL;
+ struct efi_device_path *fdt_dp = NULL;
struct efi_load_option lo;
void *data = NULL;
efi_uintn_t size;
@@ -843,22 +882,31 @@ static int do_efi_boot_add(struct cmd_tbl *cmdtp, int flag,
lo.label = label; /* label will be changed below */
/* file path */
- ret = efi_dp_from_name(argv[3], argv[4], argv[5],
- NULL, &fp_free);
- if (ret != EFI_SUCCESS) {
- printf("Cannot create device path for \"%s %s\"\n",
- argv[3], argv[4]);
+ file_path = create_lo_dp_part(argv[3], argv[4], argv[5],
+ shortform,
+ EFI_LO_DP_PART_BINARY);
+ argc -= 5;
+ argv += 5;
+ break;
+ case 'd':
+ shortform = 1;
+ fallthrough;
+ case 'D':
+ if (argc < 3 || fdt_dp) {
+ r = CMD_RET_USAGE;
+ goto out;
+ }
+
+ fdt_dp = create_lo_dp_part(argv[1], argv[2], argv[3],
+ shortform,
+ EFI_LP_DP_PART_FDT);
+ if (!fdt_dp) {
+ printf("Cannot add a device-tree\n");
r = CMD_RET_FAILURE;
goto out;
}
- if (shortform)
- file_path = efi_dp_shorten(fp_free);
- if (!file_path)
- file_path = fp_free;
- fp_size += efi_dp_size(file_path) +
- sizeof(struct efi_device_path);
- argc -= 5;
- argv += 5;
+ argc -= 3;
+ argv += 3;
break;
case 'i':
shortform = 1;
@@ -869,8 +917,9 @@ static int do_efi_boot_add(struct cmd_tbl *cmdtp, int flag,
goto out;
}
- initrd_dp = create_initrd_dp(argv[1], argv[2], argv[3],
- shortform);
+ initrd_dp = create_lo_dp_part(argv[1], argv[2], argv[3],
+ shortform,
+ EFI_LO_DP_PART_INITRD);
if (!initrd_dp) {
printf("Cannot add an initrd\n");
r = CMD_RET_FAILURE;
@@ -878,8 +927,6 @@ static int do_efi_boot_add(struct cmd_tbl *cmdtp, int flag,
}
argc -= 3;
argv += 3;
- fp_size += efi_dp_size(initrd_dp) +
- sizeof(struct efi_device_path);
break;
case 's':
if (argc < 1 || lo.optional_data) {
@@ -897,7 +944,6 @@ static int do_efi_boot_add(struct cmd_tbl *cmdtp, int flag,
&file_path, &fp_size);
if (r != CMD_RET_SUCCESS)
goto out;
- fp_free = file_path;
argc -= 3;
argv += 3;
} else{
@@ -917,14 +963,14 @@ static int do_efi_boot_add(struct cmd_tbl *cmdtp, int flag,
goto out;
}
- final_fp = efi_dp_concat(file_path, initrd_dp, true);
- if (!final_fp) {
+ ret = efi_load_option_dp_join(&file_path, &fp_size, initrd_dp, fdt_dp);
+ if (ret != EFI_SUCCESS) {
printf("Cannot create final device path\n");
r = CMD_RET_FAILURE;
goto out;
}
- lo.file_path = final_fp;
+ lo.file_path = file_path;
lo.file_path_length = fp_size;
size = efi_serialize_load_option(&lo, (u8 **)&data);
@@ -945,9 +991,9 @@ static int do_efi_boot_add(struct cmd_tbl *cmdtp, int flag,
out:
free(data);
- efi_free_pool(final_fp);
efi_free_pool(initrd_dp);
- efi_free_pool(fp_free);
+ efi_free_pool(fdt_dp);
+ efi_free_pool(file_path);
free(lo.label);
return r;
@@ -1009,7 +1055,8 @@ static int do_efi_boot_rm(struct cmd_tbl *cmdtp, int flag,
*/
static void show_efi_boot_opt_data(u16 *varname16, void *data, size_t *size)
{
- struct efi_device_path *initrd_path = NULL;
+ struct efi_device_path *fdt_path;
+ struct efi_device_path *initrd_path;
struct efi_load_option lo;
efi_status_t ret;
@@ -1038,6 +1085,12 @@ static void show_efi_boot_opt_data(u16 *varname16, void *data, size_t *size)
efi_free_pool(initrd_path);
}
+ fdt_path = efi_dp_from_lo(&lo, &efi_guid_fdt);
+ if (fdt_path) {
+ printf(" device-tree path: %pD\n", fdt_path);
+ efi_free_pool(fdt_path);
+ }
+
printf(" data:\n");
print_hex_dump(" ", DUMP_PREFIX_OFFSET, 16, 1,
lo.optional_data, *size, true);
@@ -1565,8 +1618,9 @@ U_BOOT_LONGHELP(efidebug,
"\n"
"efidebug boot add - set UEFI BootXXXX variable\n"
" -b|-B <bootid> <label> <interface> <devnum>[:<part>] <file path>\n"
+ " -d|-D <interface> <devnum>[:<part>] <device-tree file path>\n"
" -i|-I <interface> <devnum>[:<part>] <initrd file path>\n"
- " (-b, -i for short form device path)\n"
+ " (-b, -d, -i for short form device path)\n"
#if (IS_ENABLED(CONFIG_EFI_HTTP_BOOT))
" -u <bootid> <label> <uri>\n"
#endif
diff --git a/cmd/elf.c b/cmd/elf.c
index df4354d3742..f07e344a596 100644
--- a/cmd/elf.c
+++ b/cmd/elf.c
@@ -4,7 +4,6 @@
* All rights reserved.
*/
-#include <common.h>
#include <command.h>
#include <cpu_func.h>
#include <elf.h>
@@ -20,21 +19,6 @@
#include <linux/linkage.h>
#endif
-/* Allow ports to override the default behavior */
-static unsigned long do_bootelf_exec(ulong (*entry)(int, char * const[]),
- int argc, char *const argv[])
-{
- unsigned long ret;
-
- /*
- * pass address parameter as argv[0] (aka command name),
- * and all remaining args
- */
- ret = entry(argc, argv);
-
- return ret;
-}
-
/* Interpreter command to boot an arbitrary ELF image from memory */
int do_bootelf(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
{
@@ -44,8 +28,8 @@ int do_bootelf(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
#endif
unsigned long addr; /* Address of the ELF image */
unsigned long rc; /* Return value from user code */
- char *sload = NULL;
- int rcode = 0;
+ int rcode = CMD_RET_SUCCESS;
+ Bootelf_flags flags = {0};
/* Consume 'bootelf' */
argc--; argv++;
@@ -53,7 +37,10 @@ int do_bootelf(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
/* Check for [-p|-s] flag. */
if (argc >= 1 && (argv[0][0] == '-' && \
(argv[0][1] == 'p' || argv[0][1] == 's'))) {
- sload = argv[0];
+ if (argv[0][1] == 'p')
+ flags.phdr = 1;
+ log_debug("Using ELF header format %s\n",
+ flags.phdr ? "phdr" : "shdr");
/* Consume flag. */
argc--; argv++;
}
@@ -76,39 +63,39 @@ int do_bootelf(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
} else
addr = image_load_addr;
- if (!valid_elf_image(addr))
- return 1;
-
- if (sload && sload[1] == 'p')
- addr = load_elf_image_phdr(addr);
- else
- addr = load_elf_image_shdr(addr);
-
#if CONFIG_IS_ENABLED(CMD_ELF_FDT_SETUP)
if (fdt_addr) {
- printf("## Setting up FDT at 0x%08lx ...\n", fdt_addr);
+ log_debug("Setting up FDT at 0x%08lx ...\n", fdt_addr);
flush();
- if (image_setup_libfdt(&img, (void *)fdt_addr, NULL))
+ fdt_set_totalsize((void *)fdt_addr,
+ fdt_totalsize(fdt_addr) + CONFIG_SYS_FDT_PAD);
+ if (image_setup_libfdt(&img, (void *)fdt_addr, false))
return 1;
}
#endif
- if (!env_get_autostart())
- return rcode;
-
- printf("## Starting application at 0x%08lx ...\n", addr);
- flush();
+ if (env_get_autostart()) {
+ flags.autostart = 1;
+ log_debug("Starting application at 0x%08lx ...\n", addr);
+ flush();
+ }
/*
* pass address parameter as argv[0] (aka command name),
- * and all remaining args
+ * and all remaining arguments
*/
- rc = do_bootelf_exec((void *)addr, argc, argv);
+ rc = bootelf(addr, flags, argc, argv);
if (rc != 0)
- rcode = 1;
+ rcode = CMD_RET_FAILURE;
- printf("## Application terminated, rc = 0x%lx\n", rc);
+ if (flags.autostart)
+ {
+ if (ENOEXEC == errno)
+ log_err("Invalid ELF image\n");
+ else
+ log_debug("## Application terminated, rc = 0x%lx\n", rc);
+ }
return rcode;
}
diff --git a/cmd/ethsw.c b/cmd/ethsw.c
index f8b8a798bf6..4bf49ac598f 100644
--- a/cmd/ethsw.c
+++ b/cmd/ethsw.c
@@ -5,13 +5,13 @@
* Ethernet Switch commands
*/
-#include <common.h>
#include <command.h>
#include <env.h>
#include <errno.h>
#include <env_flags.h>
#include <ethsw.h>
#include <net.h>
+#include <vsprintf.h>
static const char *ethsw_name;
diff --git a/cmd/event.c b/cmd/event.c
index f6cdb55fc91..00c828757ca 100644
--- a/cmd/event.c
+++ b/cmd/event.c
@@ -6,7 +6,6 @@
* Written by Simon Glass <sjg@chromium.org>
*/
-#include <common.h>
#include <command.h>
#include <event.h>
diff --git a/cmd/exit.c b/cmd/exit.c
index 7bf241ec732..d125ec1e31f 100644
--- a/cmd/exit.c
+++ b/cmd/exit.c
@@ -4,8 +4,8 @@
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
*/
-#include <common.h>
#include <command.h>
+#include <vsprintf.h>
static int do_exit(struct cmd_tbl *cmdtp, int flag, int argc,
char *const argv[])
diff --git a/cmd/ext2.c b/cmd/ext2.c
index a0ce0cf5796..45c8b353b58 100644
--- a/cmd/ext2.c
+++ b/cmd/ext2.c
@@ -19,7 +19,6 @@
/*
* Ext2fs support
*/
-#include <common.h>
#include <command.h>
#include <fs.h>
diff --git a/cmd/ext4.c b/cmd/ext4.c
index 4791b69fd96..40d1fe30d5e 100644
--- a/cmd/ext4.c
+++ b/cmd/ext4.c
@@ -25,7 +25,6 @@
* file in uboot. Added ext4fs ls load and write support.
*/
-#include <common.h>
#include <part.h>
#include <config.h>
#include <command.h>
diff --git a/cmd/extension_board.c b/cmd/extension_board.c
index 2b672d888c6..6c14d0ddebd 100644
--- a/cmd/extension_board.c
+++ b/cmd/extension_board.c
@@ -4,7 +4,6 @@
* Köry Maincent, Bootlin, <kory.maincent@bootlin.com>
*/
-#include <common.h>
#include <bootdev.h>
#include <command.h>
#include <dm.h>
@@ -99,7 +98,6 @@ static int extension_scan(bool show)
return extension_num;
}
-
static int do_extension_scan(struct cmd_tbl *cmdtp, int flag,
int argc, char *const argv[])
{
diff --git a/cmd/fastboot.c b/cmd/fastboot.c
index c3c19231c98..d4cfc0c7a28 100644
--- a/cmd/fastboot.c
+++ b/cmd/fastboot.c
@@ -6,7 +6,6 @@
* (C) Copyright 2014 Linaro, Ltd.
* Rob Herring <robh@kernel.org>
*/
-#include <common.h>
#include <command.h>
#include <console.h>
#include <g_dnl.h>
diff --git a/cmd/fat.c b/cmd/fat.c
index 69ce1fa5300..1655e80e945 100644
--- a/cmd/fat.c
+++ b/cmd/fat.c
@@ -7,7 +7,6 @@
/*
* Boot support
*/
-#include <common.h>
#include <command.h>
#include <mapmem.h>
#include <fat.h>
@@ -33,7 +32,6 @@ int do_fat_fsload(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
return do_load(cmdtp, flag, argc, argv, FS_TYPE_FAT);
}
-
U_BOOT_CMD(
fatload, 7, 0, do_fat_fsload,
"load binary file from a dos filesystem",
diff --git a/cmd/fdt.c b/cmd/fdt.c
index 331564c13be..d16b141ce32 100644
--- a/cmd/fdt.c
+++ b/cmd/fdt.c
@@ -7,7 +7,6 @@
* Matthew McClintock <msm@freescale.com>
*/
-#include <common.h>
#include <command.h>
#include <env.h>
#include <image.h>
diff --git a/cmd/flash.c b/cmd/flash.c
index f4f85ecc7a8..de0e04f09cf 100644
--- a/cmd/flash.c
+++ b/cmd/flash.c
@@ -7,9 +7,9 @@
/*
* FLASH support
*/
-#include <common.h>
#include <command.h>
#include <log.h>
+#include <vsprintf.h>
#include <uuid.h>
#if defined(CONFIG_CMD_MTDPARTS)
diff --git a/cmd/font.c b/cmd/font.c
index cb39c88063f..eb13fb12f79 100644
--- a/cmd/font.c
+++ b/cmd/font.c
@@ -6,7 +6,6 @@
* Written by Simon Glass <sjg@chromium.org>
*/
-#include <common.h>
#include <command.h>
#include <dm.h>
#include <video.h>
@@ -78,7 +77,6 @@ static int do_font_size(struct cmd_tbl *cmdtp, int flag, int argc,
return 0;
}
-
U_BOOT_LONGHELP(font,
"list - list available fonts\n"
"font select <name> [<size>] - select font to use\n"
diff --git a/cmd/fpga.c b/cmd/fpga.c
index 8c64e957db0..93f14098ccb 100644
--- a/cmd/fpga.c
+++ b/cmd/fpga.c
@@ -7,7 +7,6 @@
/*
* FPGA support
*/
-#include <common.h>
#include <command.h>
#include <env.h>
#include <fpga.h>
diff --git a/cmd/fpgad.c b/cmd/fpgad.c
index dfc6220b5e0..b4bfaa12165 100644
--- a/cmd/fpgad.c
+++ b/cmd/fpgad.c
@@ -8,10 +8,10 @@
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
*/
-#include <common.h>
#include <command.h>
#include <console.h>
#include <display_options.h>
+#include <vsprintf.h>
#include <gdsys_fpga.h>
diff --git a/cmd/fs.c b/cmd/fs.c
index 46cb43dcdb5..3d7e06d6f1e 100644
--- a/cmd/fs.c
+++ b/cmd/fs.c
@@ -5,7 +5,6 @@
* Inspired by cmd_ext_common.c, cmd_fat.c.
*/
-#include <common.h>
#include <command.h>
#include <fs.h>
diff --git a/cmd/fs_uuid.c b/cmd/fs_uuid.c
index 5dc94aa6408..5f7770d09ac 100644
--- a/cmd/fs_uuid.c
+++ b/cmd/fs_uuid.c
@@ -5,7 +5,6 @@
* Copyright (C) 2014, Bachmann electronic GmbH
*/
-#include <common.h>
#include <command.h>
#include <fs.h>
diff --git a/cmd/fuse.c b/cmd/fuse.c
index f884c894fb0..598ef496a43 100644
--- a/cmd/fuse.c
+++ b/cmd/fuse.c
@@ -8,11 +8,11 @@
* Martha Marx <mmarx@silicontkx.com>
*/
-#include <common.h>
#include <command.h>
#include <console.h>
#include <fuse.h>
#include <mapmem.h>
+#include <vsprintf.h>
#include <linux/errno.h>
static int strtou32(const char *str, unsigned int base, u32 *result)
diff --git a/cmd/fwu_mdata.c b/cmd/fwu_mdata.c
index 5ecda455df6..9c048d69a13 100644
--- a/cmd/fwu_mdata.c
+++ b/cmd/fwu_mdata.c
@@ -13,27 +13,34 @@
#include <linux/types.h>
-static void print_mdata(struct fwu_mdata *mdata)
+static void print_mdata(struct fwu_data *data)
{
int i, j;
struct fwu_image_entry *img_entry;
struct fwu_image_bank_info *img_info;
printf("\tFWU Metadata\n");
- printf("crc32: %#x\n", mdata->crc32);
- printf("version: %#x\n", mdata->version);
- printf("active_index: %#x\n", mdata->active_index);
- printf("previous_active_index: %#x\n", mdata->previous_active_index);
+ printf("crc32: %#x\n", data->crc32);
+ printf("version: %#x\n", data->version);
+ printf("size: %#x\n", data->metadata_size);
+ printf("active_index: %#x\n", data->active_index);
+ printf("previous_active_index: %#x\n", data->previous_active_index);
+
+ if (data->version == 2) {
+ for (i = 0; i < 4; i++)
+ printf("bank_state[%d]: %#x\n",
+ i, data->bank_state[i]);
+ }
printf("\tImage Info\n");
for (i = 0; i < CONFIG_FWU_NUM_IMAGES_PER_BANK; i++) {
- img_entry = &mdata->img_entry[i];
+ img_entry = &data->fwu_images[i];
printf("\nImage Type Guid: %pUL\n",
- &img_entry->image_type_uuid);
- printf("Location Guid: %pUL\n", &img_entry->location_uuid);
+ &img_entry->image_type_guid);
+ printf("Location Guid: %pUL\n", &img_entry->location_guid);
for (j = 0; j < CONFIG_FWU_NUM_BANKS; j++) {
img_info = &img_entry->img_bank_info[j];
- printf("Image Guid: %pUL\n", &img_info->image_uuid);
+ printf("Image Guid: %pUL\n", &img_info->image_guid);
printf("Image Acceptance: %s\n",
img_info->accepted == 0x1 ? "yes" : "no");
}
@@ -43,20 +50,11 @@ static void print_mdata(struct fwu_mdata *mdata)
int do_fwu_mdata_read(struct cmd_tbl *cmdtp, int flag,
int argc, char * const argv[])
{
- int ret = CMD_RET_SUCCESS, res;
- struct fwu_mdata mdata;
-
- res = fwu_get_mdata(&mdata);
- if (res < 0) {
- log_err("Unable to get valid FWU metadata\n");
- ret = CMD_RET_FAILURE;
- goto out;
- }
+ struct fwu_data *data = fwu_get_data();
- print_mdata(&mdata);
+ print_mdata(data);
-out:
- return ret;
+ return CMD_RET_SUCCESS;
}
U_BOOT_CMD(
diff --git a/cmd/gettime.c b/cmd/gettime.c
index 2e74e02b499..fc307efce8c 100644
--- a/cmd/gettime.c
+++ b/cmd/gettime.c
@@ -11,8 +11,8 @@
/*
* Get Timer overflows after 2^32 / CONFIG_SYS_HZ (32Khz) = 131072 sec
*/
-#include <common.h>
#include <command.h>
+#include <time.h>
static int do_gettime(struct cmd_tbl *cmdtp, int flag, int argc,
char *const argv[])
diff --git a/cmd/gpio.c b/cmd/gpio.c
index dab6f7097ae..7a43dc6ab18 100644
--- a/cmd/gpio.c
+++ b/cmd/gpio.c
@@ -6,7 +6,6 @@
* Licensed under the GPL-2 or later.
*/
-#include <common.h>
#include <command.h>
#include <errno.h>
#include <dm.h>
diff --git a/cmd/gpt.c b/cmd/gpt.c
index 7aaf1889a5a..86b7701886a 100644
--- a/cmd/gpt.c
+++ b/cmd/gpt.c
@@ -10,7 +10,6 @@
* author: Piotr Wilczek <p.wilczek@samsung.com>
*/
-#include <common.h>
#include <blk.h>
#include <env.h>
#include <log.h>
@@ -117,6 +116,7 @@ static char *extract_val(const char *str, const char *key)
k = strsep(&v, "=");
if (!k)
break;
+ k += strspn(k, " \t");
if (strcmp(k, key) == 0) {
new = strdup(v);
break;
@@ -151,6 +151,7 @@ static bool found_key(const char *str, const char *key)
k = strsep(&s, ",");
if (!k)
break;
+ k += strspn(k, " \t");
if (strcmp(k, key) == 0) {
result = true;
break;
@@ -683,7 +684,8 @@ static int gpt_verify(struct blk_desc *blk_dev_desc, const char *str_part)
free(str_disk_guid);
free(partitions);
out:
- free(gpt_pte);
+ if (!ret)
+ free(gpt_pte);
return ret;
}
diff --git a/cmd/hash.c b/cmd/hash.c
index 5534a735fa7..60d482b7f87 100644
--- a/cmd/hash.c
+++ b/cmd/hash.c
@@ -9,7 +9,6 @@
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
*/
-#include <common.h>
#include <command.h>
#include <hash.h>
#include <linux/ctype.h>
diff --git a/cmd/help.c b/cmd/help.c
index 9f8393eefd8..56579e28d31 100644
--- a/cmd/help.c
+++ b/cmd/help.c
@@ -4,7 +4,6 @@
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
*/
-#include <common.h>
#include <command.h>
static int do_help(struct cmd_tbl *cmdtp, int flag, int argc,
diff --git a/cmd/history.c b/cmd/history.c
index b6bf4670b1c..8972986ca9d 100644
--- a/cmd/history.c
+++ b/cmd/history.c
@@ -4,7 +4,6 @@
* Written by Simon Glass <sjg@chromium.org>
*/
-#include <common.h>
#include <command.h>
#include <cli.h>
diff --git a/cmd/host.c b/cmd/host.c
index c33c2a9787e..e03576b4d2d 100644
--- a/cmd/host.c
+++ b/cmd/host.c
@@ -3,7 +3,6 @@
* Copyright (c) 2012, Google Inc.
*/
-#include <common.h>
#include <command.h>
#include <dm.h>
#include <fs.h>
diff --git a/cmd/i2c.c b/cmd/i2c.c
index 80831561c67..7246c4fa3e7 100644
--- a/cmd/i2c.c
+++ b/cmd/i2c.c
@@ -64,7 +64,6 @@
* Adapted from cmd_mem.c which is copyright Wolfgang Denk (wd@denx.de).
*/
-#include <common.h>
#include <bootretry.h>
#include <cli.h>
#include <command.h>
@@ -1699,18 +1698,6 @@ static int do_i2c_show_bus(struct cmd_tbl *cmdtp, int flag, int argc,
for (i = 0; i < CFG_SYS_NUM_I2C_BUSES; i++) {
printf("Bus %d:\t%s", i, I2C_ADAP_NR(i)->name);
-#ifndef CFG_SYS_I2C_DIRECT_BUS
- int j;
-
- for (j = 0; j < CFG_SYS_I2C_MAX_HOPS; j++) {
- if (i2c_bus[i].next_hop[j].chip == 0)
- break;
- printf("->%s@0x%2x:%d",
- i2c_bus[i].next_hop[j].mux.name,
- i2c_bus[i].next_hop[j].chip,
- i2c_bus[i].next_hop[j].channel);
- }
-#endif
printf("\n");
}
#endif
@@ -1735,17 +1722,6 @@ static int do_i2c_show_bus(struct cmd_tbl *cmdtp, int flag, int argc,
return -1;
}
printf("Bus %d:\t%s", i, I2C_ADAP_NR(i)->name);
-#ifndef CFG_SYS_I2C_DIRECT_BUS
- int j;
- for (j = 0; j < CFG_SYS_I2C_MAX_HOPS; j++) {
- if (i2c_bus[i].next_hop[j].chip == 0)
- break;
- printf("->%s@0x%2x:%d",
- i2c_bus[i].next_hop[j].mux.name,
- i2c_bus[i].next_hop[j].chip,
- i2c_bus[i].next_hop[j].channel);
- }
-#endif
printf("\n");
#endif
}
diff --git a/cmd/ide.c b/cmd/ide.c
index ddc87d3a0bb..036489fda97 100644
--- a/cmd/ide.c
+++ b/cmd/ide.c
@@ -8,7 +8,6 @@
* IDE support
*/
-#include <common.h>
#include <blk.h>
#include <dm.h>
#include <config.h>
diff --git a/cmd/ini.c b/cmd/ini.c
index 35de2373e60..96399017691 100644
--- a/cmd/ini.c
+++ b/cmd/ini.c
@@ -11,9 +11,9 @@
* http://code.google.com/p/inih/
*/
-#include <common.h>
#include <command.h>
#include <env.h>
+#include <vsprintf.h>
#include <linux/ctype.h>
#include <linux/string.h>
diff --git a/cmd/io.c b/cmd/io.c
index 2de1111998f..617373d3cb7 100644
--- a/cmd/io.c
+++ b/cmd/io.c
@@ -7,9 +7,9 @@
* IO space access commands.
*/
-#include <common.h>
#include <command.h>
#include <display_options.h>
+#include <vsprintf.h>
#include <asm/io.h>
/* Display values from last command */
diff --git a/cmd/iotrace.c b/cmd/iotrace.c
index f28359e2875..0a041ed8652 100644
--- a/cmd/iotrace.c
+++ b/cmd/iotrace.c
@@ -3,9 +3,9 @@
* Copyright (c) 2014 Google, Inc
*/
-#include <common.h>
#include <command.h>
#include <iotrace.h>
+#include <vsprintf.h>
static void do_print_stats(void)
{
diff --git a/cmd/irq.c b/cmd/irq.c
index 1d3e28cb3ce..655aba576a8 100644
--- a/cmd/irq.c
+++ b/cmd/irq.c
@@ -3,7 +3,6 @@
* Copyright 2008 Freescale Semiconductor, Inc.
*/
-#include <common.h>
#include <config.h>
#include <command.h>
#include <irq_func.h>
diff --git a/cmd/itest.c b/cmd/itest.c
index 74414cbdc4c..b79512a505d 100644
--- a/cmd/itest.c
+++ b/cmd/itest.c
@@ -11,11 +11,11 @@
* A few parts were lifted from bash 'test' command
*/
-#include <common.h>
#include <config.h>
#include <command.h>
#include <env.h>
#include <mapmem.h>
+#include <vsprintf.h>
#include <asm/io.h>
diff --git a/cmd/jffs2.c b/cmd/jffs2.c
index e00fcc20226..89d336f5958 100644
--- a/cmd/jffs2.c
+++ b/cmd/jffs2.c
@@ -70,7 +70,6 @@
/*
* JFFS2/CRAMFS support
*/
-#include <common.h>
#include <command.h>
#include <env.h>
#if defined(CONFIG_CMD_FLASH)
diff --git a/cmd/kaslrseed.c b/cmd/kaslrseed.c
index 9acb8e16386..2ad983a11f9 100644
--- a/cmd/kaslrseed.c
+++ b/cmd/kaslrseed.c
@@ -6,7 +6,6 @@
* Copyright (c) 2021, Chris Morgan <macromorgan@hotmail.com>
*/
-#include <common.h>
#include <command.h>
#include <dm.h>
#include <hexdump.h>
@@ -16,60 +15,25 @@
static int do_kaslr_seed(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
{
- size_t n = 0x8;
- struct udevice *dev;
- u64 *buf;
- int nodeoffset;
- int ret = CMD_RET_SUCCESS;
+ int err = CMD_RET_SUCCESS;
- if (uclass_get_device(UCLASS_RNG, 0, &dev) || !dev) {
- printf("No RNG device\n");
- return CMD_RET_FAILURE;
- }
-
- buf = malloc(n);
- if (!buf) {
- printf("Out of memory\n");
- return CMD_RET_FAILURE;
- }
-
- if (dm_rng_read(dev, buf, n)) {
- printf("Reading RNG failed\n");
- return CMD_RET_FAILURE;
- }
+ printf("Notice: a /chosen/kaslr-seed is automatically added to the device-tree when booted via booti/bootm/bootz therefore using this command is likely no longer needed\n");
if (!working_fdt) {
printf("No FDT memory address configured. Please configure\n"
"the FDT address via \"fdt addr <address>\" command.\n"
"Aborting!\n");
- return CMD_RET_FAILURE;
- }
-
- ret = fdt_check_header(working_fdt);
- if (ret < 0) {
- printf("fdt_chosen: %s\n", fdt_strerror(ret));
- return CMD_RET_FAILURE;
- }
-
- nodeoffset = fdt_find_or_add_subnode(working_fdt, 0, "chosen");
- if (nodeoffset < 0) {
- printf("Reading chosen node failed\n");
- return CMD_RET_FAILURE;
+ err = CMD_RET_FAILURE;
+ } else {
+ if (fdt_kaslrseed(working_fdt, true) < 0)
+ err = CMD_RET_FAILURE;
}
- ret = fdt_setprop(working_fdt, nodeoffset, "kaslr-seed", buf, sizeof(buf));
- if (ret < 0) {
- printf("Unable to set kaslr-seed on chosen node: %s\n", fdt_strerror(ret));
- return CMD_RET_FAILURE;
- }
-
- free(buf);
-
- return ret;
+ return cmd_process_error(cmdtp, err);
}
U_BOOT_LONGHELP(kaslrseed,
- "[n]\n"
+ "\n"
" - append random bytes to chosen kaslr-seed node\n");
U_BOOT_CMD(
diff --git a/cmd/led.c b/cmd/led.c
index 48a02baf509..91fb856ee59 100644
--- a/cmd/led.c
+++ b/cmd/led.c
@@ -4,7 +4,6 @@
* Written by Simon Glass <sjg@chromium.org>
*/
-#include <common.h>
#include <command.h>
#include <dm.h>
#include <led.h>
@@ -16,9 +15,7 @@ static const char *const state_label[] = {
[LEDST_OFF] = "off",
[LEDST_ON] = "on",
[LEDST_TOGGLE] = "toggle",
-#ifdef CONFIG_LED_BLINK
[LEDST_BLINK] = "blink",
-#endif
};
enum led_state_t get_led_cmd(char *var)
@@ -76,9 +73,7 @@ int do_led(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
enum led_state_t cmd;
const char *led_label;
struct udevice *dev;
-#ifdef CONFIG_LED_BLINK
int freq_ms = 0;
-#endif
int ret;
/* Validate arguments */
@@ -89,13 +84,11 @@ int do_led(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
return list_leds();
cmd = argc > 2 ? get_led_cmd(argv[2]) : LEDST_COUNT;
-#ifdef CONFIG_LED_BLINK
if (cmd == LEDST_BLINK) {
if (argc < 4)
return CMD_RET_USAGE;
freq_ms = dectoul(argv[3], NULL);
}
-#endif
ret = led_get_by_label(led_label, &dev);
if (ret) {
printf("LED '%s' not found (err=%d)\n", led_label, ret);
@@ -107,13 +100,11 @@ int do_led(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
case LEDST_TOGGLE:
ret = led_set_state(dev, cmd);
break;
-#ifdef CONFIG_LED_BLINK
case LEDST_BLINK:
ret = led_set_period(dev, freq_ms);
if (!ret)
ret = led_set_state(dev, LEDST_BLINK);
break;
-#endif
case LEDST_COUNT:
printf("LED '%s': ", led_label);
ret = show_led_state(dev);
@@ -127,7 +118,7 @@ int do_led(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
return 0;
}
-#ifdef CONFIG_LED_BLINK
+#if defined(CONFIG_LED_BLINK) || defined(CONFIG_LED_SW_BLINK)
#define BLINK "|blink [blink-freq in ms]"
#else
#define BLINK ""
diff --git a/cmd/legacy-mtd-utils.c b/cmd/legacy-mtd-utils.c
index 5903a90fe53..1a5271000bf 100644
--- a/cmd/legacy-mtd-utils.c
+++ b/cmd/legacy-mtd-utils.c
@@ -1,6 +1,5 @@
// SPDX-License-Identifier: GPL-2.0+
-#include <common.h>
#include <jffs2/jffs2.h>
#include <linux/mtd/mtd.h>
#include <linux/mtd/partitions.h>
diff --git a/cmd/legacy_led.c b/cmd/legacy_led.c
index 5256255f052..50de7e89d8f 100644
--- a/cmd/legacy_led.c
+++ b/cmd/legacy_led.c
@@ -9,10 +9,9 @@
* Ulf Samuelsson <ulf.samuelsson@atmel.com>
*/
-#include <common.h>
-#include <config.h>
#include <command.h>
#include <status_led.h>
+#include <vsprintf.h>
struct led_tbl_s {
char *string; /* String for use in the command */
diff --git a/cmd/license.c b/cmd/license.c
index 15411b5a92d..161663ff29c 100644
--- a/cmd/license.c
+++ b/cmd/license.c
@@ -4,7 +4,6 @@
* Author: Harald Welte <laforge@openmoko.org>
*/
-#include <common.h>
#include <command.h>
#include <gzip.h>
#include <malloc.h>
diff --git a/cmd/load.c b/cmd/load.c
index 540361b43f0..20d802502ae 100644
--- a/cmd/load.c
+++ b/cmd/load.c
@@ -7,7 +7,6 @@
/*
* Serial up- and download support
*/
-#include <common.h>
#include <command.h>
#include <console.h>
#include <cpu_func.h>
@@ -142,7 +141,6 @@ static int do_load_serial(struct cmd_tbl *cmdtp, int flag, int argc,
static ulong load_serial(long offset)
{
- struct lmb lmb;
char record[SREC_MAXRECLEN + 1]; /* buffer for one S-Record */
char binbuf[SREC_MAXBINLEN]; /* buffer for binary data */
int binlen; /* no. of data bytes in S-Rec. */
@@ -155,8 +153,6 @@ static ulong load_serial(long offset)
int line_count = 0;
long ret;
- lmb_init_and_reserve(&lmb, gd->bd, (void *)gd->fdt_blob);
-
while (read_record(record, SREC_MAXRECLEN + 1) >= 0) {
type = srec_decode(record, &binlen, &addr, binbuf);
@@ -183,7 +179,7 @@ static ulong load_serial(long offset)
{
void *dst;
- ret = lmb_reserve(&lmb, store_addr, binlen);
+ ret = lmb_reserve(store_addr, binlen);
if (ret) {
printf("\nCannot overwrite reserved area (%08lx..%08lx)\n",
store_addr, store_addr + binlen);
@@ -192,7 +188,7 @@ static ulong load_serial(long offset)
dst = map_sysmem(store_addr, binlen);
memcpy(dst, binbuf, binlen);
unmap_sysmem(dst);
- lmb_free(&lmb, store_addr, binlen);
+ lmb_free(store_addr, binlen);
}
if ((store_addr) < start_addr)
start_addr = store_addr;
@@ -418,7 +414,6 @@ static int write_record(char *buf)
#endif
-
#if defined(CONFIG_CMD_LOADB)
/*
* loadb command (load binary) included
@@ -442,7 +437,6 @@ static void set_kerm_bin_mode(unsigned long *);
static int k_recv(void);
static ulong load_serial_bin(ulong offset);
-
static char his_eol; /* character he needs at end of packet */
static int his_pad_count; /* number of pad chars he needs */
static char his_pad_char; /* pad chars he needs */
@@ -558,7 +552,6 @@ static int do_load_serial_bin(struct cmd_tbl *cmdtp, int flag, int argc,
return rcode;
}
-
static ulong load_serial_bin(ulong offset)
{
int size, i;
@@ -653,7 +646,6 @@ static void send_nack(int n)
s1_sendpacket(a_b);
}
-
static void (*os_data_init)(void);
static void (*os_data_char)(char new_char);
static int os_data_state, os_data_state_saved;
@@ -694,7 +686,6 @@ static void set_kerm_bin_mode(unsigned long *addr)
os_data_char = bin_data_char;
}
-
/* k_data_* simply handles the kermit escape translations */
static int k_data_escape, k_data_escape_saved;
static void k_data_init(void)
@@ -1067,7 +1058,6 @@ static ulong load_serial_ymodem(ulong offset, int mode)
xyzModem_stream_terminate(false, &getcxmodem);
xyzModem_stream_close(&err);
-
flush_cache(offset, ALIGN(size, ARCH_DMA_MINALIGN));
printf("## Total Size = 0x%08x = %d Bytes\n", size, size);
@@ -1142,7 +1132,6 @@ U_BOOT_CMD(
* SAVES always requires LOADS support, but not vice versa
*/
-
#if defined(CONFIG_CMD_SAVES)
#ifdef CONFIG_SYS_LOADS_BAUD_CHANGE
U_BOOT_CMD(
@@ -1163,7 +1152,6 @@ U_BOOT_CMD(
#endif /* CONFIG_CMD_SAVES */
#endif /* CONFIG_CMD_LOADS */
-
#if defined(CONFIG_CMD_LOADB)
U_BOOT_CMD(
loadb, 3, 0, do_load_serial_bin,
diff --git a/cmd/log.c b/cmd/log.c
index c9a23e4ae0d..519ec76f3b5 100644
--- a/cmd/log.c
+++ b/cmd/log.c
@@ -4,7 +4,6 @@
* Written by Simon Glass <sjg@chromium.org>
*/
-#include <common.h>
#include <command.h>
#include <dm.h>
#include <getopt.h>
diff --git a/cmd/lsblk.c b/cmd/lsblk.c
index d214dafc3be..7c00bfdc7a0 100644
--- a/cmd/lsblk.c
+++ b/cmd/lsblk.c
@@ -4,7 +4,6 @@
* Niel Fourie, DENX Software Engineering, lusus@denx.de.
*/
-#include <common.h>
#include <blk.h>
#include <command.h>
#include <dm.h>
diff --git a/cmd/lzmadec.c b/cmd/lzmadec.c
index 81924da4618..c40b96941b4 100644
--- a/cmd/lzmadec.c
+++ b/cmd/lzmadec.c
@@ -9,10 +9,10 @@
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
*/
-#include <common.h>
#include <command.h>
#include <env.h>
#include <mapmem.h>
+#include <vsprintf.h>
#include <asm/io.h>
#include <lzma/LzmaTools.h>
diff --git a/cmd/mbr.c b/cmd/mbr.c
index ec99b662834..7e1f92a13bb 100644
--- a/cmd/mbr.c
+++ b/cmd/mbr.c
@@ -8,11 +8,11 @@
* based on the gpt command.
*/
-#include <common.h>
#include <blk.h>
#include <command.h>
#include <malloc.h>
#include <part.h>
+#include <vsprintf.h>
/**
* extract_val() - Extract a value from the key=value pair list
diff --git a/cmd/mdio.c b/cmd/mdio.c
index 3c74326161e..c0a87087d31 100644
--- a/cmd/mdio.c
+++ b/cmd/mdio.c
@@ -8,7 +8,6 @@
* MDIO Commands
*/
-#include <common.h>
#include <command.h>
#include <dm.h>
#include <miiphy.h>
diff --git a/cmd/mem.c b/cmd/mem.c
index 768057e4d3f..274348068c2 100644
--- a/cmd/mem.c
+++ b/cmd/mem.c
@@ -10,7 +10,6 @@
* Copied from FADS ROM, Dan Malek (dmalek@jlc.net)
*/
-#include <common.h>
#include <console.h>
#include <bootretry.h>
#include <cli.h>
@@ -24,6 +23,7 @@
#include <log.h>
#include <mapmem.h>
#include <rand.h>
+#include <time.h>
#include <watchdog.h>
#include <asm/global_data.h>
#include <asm/io.h>
@@ -1316,14 +1316,12 @@ U_BOOT_CMD(
"[.b, .w, .l" HELP_Q "] address [# of objects]"
);
-
U_BOOT_CMD(
mm, 2, 1, do_mem_mm,
"memory modify (auto-incrementing address)",
"[.b, .w, .l" HELP_Q "] address"
);
-
U_BOOT_CMD(
nm, 2, 1, do_mem_nm,
"memory modify (constant address)",
diff --git a/cmd/meson/sm.c b/cmd/meson/sm.c
index de9a242e17f..b69f8123ee2 100644
--- a/cmd/meson/sm.c
+++ b/cmd/meson/sm.c
@@ -9,11 +9,11 @@
*/
#include <command.h>
-#include <common.h>
#include <env.h>
#include <asm/arch/sm.h>
#include <stdlib.h>
#include <display_options.h>
+#include <vsprintf.h>
static int do_sm_serial(struct cmd_tbl *cmdtp, int flag, int argc,
char *const argv[])
diff --git a/cmd/mii.c b/cmd/mii.c
index fab420ee29e..ce372489692 100644
--- a/cmd/mii.c
+++ b/cmd/mii.c
@@ -8,7 +8,6 @@
* MII Utilities
*/
-#include <common.h>
#include <command.h>
#include <dm.h>
#include <miiphy.h>
diff --git a/cmd/misc.c b/cmd/misc.c
index ec32b41ed1e..792d9723c75 100644
--- a/cmd/misc.c
+++ b/cmd/misc.c
@@ -8,7 +8,6 @@
* A command interface to access misc devices with MISC uclass driver APIs.
*/
-#include <common.h>
#include <command.h>
#include <dm.h>
#include <errno.h>
diff --git a/cmd/mmc.c b/cmd/mmc.c
index 02316796ba4..9a841c25d3d 100644
--- a/cmd/mmc.c
+++ b/cmd/mmc.c
@@ -4,7 +4,6 @@
* Kyle Harris, kharris@nexus-tech.net
*/
-#include <common.h>
#include <blk.h>
#include <command.h>
#include <console.h>
@@ -14,6 +13,7 @@
#include <part.h>
#include <sparse_format.h>
#include <image-sparse.h>
+#include <vsprintf.h>
#include <linux/ctype.h>
static int curr_device = -1;
@@ -239,7 +239,7 @@ static int do_mmcrpmb_read(struct cmd_tbl *cmdtp, int flag,
if (argc == 5)
key_addr = (void *)hextoul(argv[4], NULL);
- printf("\nMMC RPMB read: dev # %d, block # %d, count %d ... ",
+ printf("MMC RPMB read: dev # %d, block # %d, count %d ... ",
curr_device, blk, cnt);
n = mmc_rpmb_read(mmc, addr, blk, cnt, key_addr);
@@ -266,7 +266,7 @@ static int do_mmcrpmb_write(struct cmd_tbl *cmdtp, int flag,
cnt = hextoul(argv[3], NULL);
key_addr = (void *)hextoul(argv[4], NULL);
- printf("\nMMC RPMB write: dev # %d, block # %d, count %d ... ",
+ printf("MMC RPMB write: dev # %d, block # %d, count %d ... ",
curr_device, blk, cnt);
n = mmc_rpmb_write(mmc, addr, blk, cnt, key_addr);
@@ -363,7 +363,7 @@ static int do_mmc_read(struct cmd_tbl *cmdtp, int flag,
if (!mmc)
return CMD_RET_FAILURE;
- printf("\nMMC read: dev # %d, block # %d, count %d ... ",
+ printf("MMC read: dev # %d, block # %d, count %d ... ",
curr_device, blk, cnt);
n = blk_dread(mmc_get_blk_desc(mmc), blk, cnt, addr);
@@ -412,7 +412,7 @@ static int do_mmc_sparse_write(struct cmd_tbl *cmdtp, int flag,
if (!mmc)
return CMD_RET_FAILURE;
- printf("\nMMC Sparse write: dev # %d, block # %d ... ",
+ printf("MMC Sparse write: dev # %d, block # %d ... ",
curr_device, blk);
if (mmc_getwp(mmc) == 1) {
@@ -456,7 +456,7 @@ static int do_mmc_write(struct cmd_tbl *cmdtp, int flag,
if (!mmc)
return CMD_RET_FAILURE;
- printf("\nMMC write: dev # %d, block # %d, count %d ... ",
+ printf("MMC write: dev # %d, block # %d, count %d ... ",
curr_device, blk, cnt);
if (mmc_getwp(mmc) == 1) {
@@ -485,7 +485,7 @@ static int do_mmc_erase(struct cmd_tbl *cmdtp, int flag,
if (!mmc)
return CMD_RET_FAILURE;
- printf("\nMMC erase: dev # %d, block # %d, count %d ... ",
+ printf("MMC erase: dev # %d, block # %d, count %d ... ",
curr_device, blk, cnt);
if (mmc_getwp(mmc) == 1) {
diff --git a/cmd/mp.c b/cmd/mp.c
index 1b4373f2587..261bb8a07d4 100644
--- a/cmd/mp.c
+++ b/cmd/mp.c
@@ -3,9 +3,9 @@
* Copyright 2008-2009 Freescale Semiconductor, Inc.
*/
-#include <common.h>
#include <command.h>
#include <cpu_func.h>
+#include <vsprintf.h>
static int cpu_status_all(void)
{
@@ -42,7 +42,6 @@ cpu_cmd(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
return 1;
}
-
if (argc == 3) {
if (strncmp(argv[2], "reset", 5) == 0)
cpu_reset(cpuid);
diff --git a/cmd/mtd.c b/cmd/mtd.c
index 9189f45cabd..795aaa2b37d 100644
--- a/cmd/mtd.c
+++ b/cmd/mtd.c
@@ -9,7 +9,6 @@
*/
#include <command.h>
-#include <common.h>
#include <console.h>
#if CONFIG_IS_ENABLED(CMD_MTD_OTP)
#include <hexdump.h>
diff --git a/cmd/mtdparts.c b/cmd/mtdparts.c
index b31db73ebfc..a021b2d198d 100644
--- a/cmd/mtdparts.c
+++ b/cmd/mtdparts.c
@@ -70,7 +70,6 @@
*
*/
-#include <common.h>
#include <command.h>
#include <env.h>
#include <log.h>
@@ -292,7 +291,6 @@ static void current_save(void)
index_partitions();
}
-
/**
* Produce a mtd_info given a type and num.
*
@@ -402,7 +400,6 @@ static int part_validate_eraseblock(struct mtdids *id, struct part_info *part)
return 0;
}
-
/**
* Performs sanity check for supplied partition. Offset and size are
* verified to be within valid range. Partition type is checked and
@@ -1129,7 +1126,6 @@ static int generate_mtdparts(char *buf, u32 buflen)
p += len;
maxlen -= len;
-
/* add offset only when there is a gap between
* partitions */
if ((!prev_part && (offset != 0)) ||
@@ -1710,7 +1706,6 @@ static int parse_mtdids(const char *const ids)
return 0;
}
-
/**
* Parse and initialize global mtdids mapping and create global
* device/partition list.
diff --git a/cmd/mux.c b/cmd/mux.c
index 388fb0878a8..2f6c08b8b07 100644
--- a/cmd/mux.c
+++ b/cmd/mux.c
@@ -6,7 +6,6 @@
* Author: Pratyush Yadav <p.yadav@ti.com>
*/
-#include <common.h>
#include <command.h>
#include <errno.h>
#include <dm.h>
diff --git a/cmd/mvebu/bubt.c b/cmd/mvebu/bubt.c
index 1e3f5bf7add..5e4ffc40d72 100644
--- a/cmd/mvebu/bubt.c
+++ b/cmd/mvebu/bubt.c
@@ -5,7 +5,6 @@
*/
#include <config.h>
-#include <common.h>
#include <command.h>
#include <env.h>
#include <image.h>
diff --git a/cmd/mvebu/comphy_rx_training.c b/cmd/mvebu/comphy_rx_training.c
index 4ee8f54ea9c..5653877cd4a 100644
--- a/cmd/mvebu/comphy_rx_training.c
+++ b/cmd/mvebu/comphy_rx_training.c
@@ -5,7 +5,6 @@
* SPDX-License-Identifier: GPL-2.0
*/
-#include <common.h>
#include <command.h>
#include <console.h>
#include <dm.h>
diff --git a/cmd/nand.c b/cmd/nand.c
index fe834c4ac5c..5a328e0acdd 100644
--- a/cmd/nand.c
+++ b/cmd/nand.c
@@ -23,7 +23,6 @@
* only
*/
-#include <common.h>
#include <bootstage.h>
#include <image.h>
#include <asm/cache.h>
diff --git a/cmd/net.c b/cmd/net.c
index d407d8320a3..53ce2bc5d0c 100644
--- a/cmd/net.c
+++ b/cmd/net.c
@@ -9,7 +9,6 @@
/*
* Boot support
*/
-#include <common.h>
#include <bootstage.h>
#include <command.h>
#include <dm.h>
@@ -98,7 +97,6 @@ U_BOOT_CMD(
);
#endif
-
#ifdef CONFIG_CMD_RARP
int do_rarpb(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
{
diff --git a/cmd/nvedit.c b/cmd/nvedit.c
index e77338f8139..98a687bcabb 100644
--- a/cmd/nvedit.c
+++ b/cmd/nvedit.c
@@ -23,7 +23,7 @@
* environment. After that, we use a hash table.
*/
-#include <common.h>
+#include <config.h>
#include <cli.h>
#include <command.h>
#include <console.h>
diff --git a/cmd/nvedit_efi.c b/cmd/nvedit_efi.c
index 7a30b5cc8f8..64ae2ad2ce2 100644
--- a/cmd/nvedit_efi.c
+++ b/cmd/nvedit_efi.c
@@ -6,7 +6,6 @@
*/
#include <charset.h>
-#include <common.h>
#include <command.h>
#include <efi_loader.h>
#include <efi_variable.h>
diff --git a/cmd/nvme.c b/cmd/nvme.c
index 09d5f438fb1..f2c9acba5c3 100644
--- a/cmd/nvme.c
+++ b/cmd/nvme.c
@@ -4,7 +4,6 @@
* Copyright (C) 2017 Bin Meng <bmeng.cn@gmail.com>
*/
-#include <common.h>
#include <blk.h>
#include <command.h>
#include <dm.h>
diff --git a/cmd/onenand.c b/cmd/onenand.c
index fad781583a3..6e808ce3fce 100644
--- a/cmd/onenand.c
+++ b/cmd/onenand.c
@@ -9,7 +9,6 @@
* published by the Free Software Foundation.
*/
-#include <common.h>
#include <command.h>
#include <malloc.h>
#include <linux/printk.h>
diff --git a/cmd/optee_rpmb.c b/cmd/optee_rpmb.c
index b3cafd92410..b155278ee2a 100644
--- a/cmd/optee_rpmb.c
+++ b/cmd/optee_rpmb.c
@@ -4,7 +4,6 @@
*/
#include <command.h>
-#include <common.h>
#include <env.h>
#include <errno.h>
#include <image.h>
diff --git a/cmd/osd.c b/cmd/osd.c
index 210bc5d4c23..5671338d9e7 100644
--- a/cmd/osd.c
+++ b/cmd/osd.c
@@ -9,7 +9,6 @@
* Dirk Eibach, Guntermann & Drunck GmbH, eibach@gdsys.de
*/
-#include <common.h>
#include <command.h>
#include <dm.h>
#include <hexdump.h>
diff --git a/cmd/panic.c b/cmd/panic.c
index f13b3f094fa..7c0affa5eb5 100644
--- a/cmd/panic.c
+++ b/cmd/panic.c
@@ -3,7 +3,7 @@
* Copyright (c) 2020 Theobroma Systems Design und Consulting GmbH
*/
-#include <common.h>
+#include <vsprintf.h>
#include <command.h>
static int do_panic(struct cmd_tbl *cmdtp, int flag, int argc,
diff --git a/cmd/part.c b/cmd/part.c
index c75f85acd52..db7bc5819c0 100644
--- a/cmd/part.c
+++ b/cmd/part.c
@@ -15,11 +15,11 @@
* Pavel Bartusek <pba@sysgo.com>
*/
-#include <common.h>
#include <config.h>
#include <command.h>
#include <env.h>
#include <part.h>
+#include <stdio.h>
#include <vsprintf.h>
enum cmd_part_info {
diff --git a/cmd/pcap.c b/cmd/pcap.c
index a0149203fad..8d610966c13 100644
--- a/cmd/pcap.c
+++ b/cmd/pcap.c
@@ -4,8 +4,8 @@
* Ramon Fried <rfried.dev@gmail.com>
*/
-#include <common.h>
#include <command.h>
+#include <vsprintf.h>
#include <net.h>
#include <net/pcap.h>
diff --git a/cmd/pci.c b/cmd/pci.c
index d89e71c16a0..3c0aed50cae 100644
--- a/cmd/pci.c
+++ b/cmd/pci.c
@@ -12,7 +12,6 @@
* PCI routines
*/
-#include <common.h>
#include <bootretry.h>
#include <cli.h>
#include <command.h>
diff --git a/cmd/pci_mps.c b/cmd/pci_mps.c
index 98161da93a0..19e71db8cbd 100644
--- a/cmd/pci_mps.c
+++ b/cmd/pci_mps.c
@@ -6,7 +6,6 @@
* PCI Express Maximum Packet Size (MPS) configuration
*/
-#include <common.h>
#include <bootretry.h>
#include <cli.h>
#include <command.h>
diff --git a/cmd/pinmux.c b/cmd/pinmux.c
index 105f01eaaff..01f3e4af6ce 100644
--- a/cmd/pinmux.c
+++ b/cmd/pinmux.c
@@ -3,7 +3,6 @@
* Copyright (C) 2018, STMicroelectronics - All Rights Reserved
*/
-#include <common.h>
#include <command.h>
#include <dm.h>
#include <errno.h>
diff --git a/cmd/pmc.c b/cmd/pmc.c
index 9a3ba2bffc5..1a3416fb2a9 100644
--- a/cmd/pmc.c
+++ b/cmd/pmc.c
@@ -5,7 +5,6 @@
* Copyright 2019 Google LLC
*/
-#include <common.h>
#include <command.h>
#include <dm.h>
#include <power/acpi_pmc.h>
diff --git a/cmd/pmic.c b/cmd/pmic.c
index c9e9730adf9..3ad1b8aa375 100644
--- a/cmd/pmic.c
+++ b/cmd/pmic.c
@@ -3,7 +3,6 @@
* Copyright (C) 2014-2015 Samsung Electronics
* Przemyslaw Marczak <p.marczak@samsung.com>
*/
-#include <common.h>
#include <command.h>
#include <errno.h>
#include <dm.h>
diff --git a/cmd/printf.c b/cmd/printf.c
index 0c6887e0d6e..a1727ac15a2 100644
--- a/cmd/printf.c
+++ b/cmd/printf.c
@@ -84,12 +84,12 @@
* We try to be compatible.
*/
-#include <common.h>
#include <ctype.h>
#include <errno.h>
#include <stddef.h>
#include <stdio.h>
#include <stdlib.h>
+#include <vsprintf.h>
#define WANT_HEX_ESCAPES 0
#define PRINT_CONVERSION_ERROR 1
diff --git a/cmd/pvblock.c b/cmd/pvblock.c
index 1b604c37373..3a83ac9cd92 100644
--- a/cmd/pvblock.c
+++ b/cmd/pvblock.c
@@ -6,7 +6,6 @@
*/
#include <blk.h>
-#include <common.h>
#include <command.h>
/* Current I/O Device */
diff --git a/cmd/pxe.c b/cmd/pxe.c
index 21134eb7a30..ae02c28c075 100644
--- a/cmd/pxe.c
+++ b/cmd/pxe.c
@@ -4,12 +4,12 @@
* Copyright (c) 2014, NVIDIA CORPORATION. All rights reserved.
*/
-#include <common.h>
#include <command.h>
#include <fs.h>
#include <net.h>
#include <net6.h>
#include <malloc.h>
+#include <vsprintf.h>
#include "pxe_utils.h"
diff --git a/cmd/qfw.c b/cmd/qfw.c
index 1b8c775ebf5..1b108118658 100644
--- a/cmd/qfw.c
+++ b/cmd/qfw.c
@@ -3,7 +3,6 @@
* (C) Copyright 2015 Miao Yan <yanmiaobest@gmail.com>
*/
-#include <common.h>
#include <command.h>
#include <env.h>
#include <errno.h>
diff --git a/cmd/read.c b/cmd/read.c
index 1218e7acfd0..af54bd17654 100644
--- a/cmd/read.c
+++ b/cmd/read.c
@@ -8,10 +8,10 @@
* Software Foundation.
*/
-#include <common.h>
#include <command.h>
#include <mapmem.h>
#include <part.h>
+#include <vsprintf.h>
static int
do_rw(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
diff --git a/cmd/reginfo.c b/cmd/reginfo.c
index c8a04b1754e..53b8bc41bfe 100644
--- a/cmd/reginfo.c
+++ b/cmd/reginfo.c
@@ -4,7 +4,6 @@
* Subodh Nijsure, SkyStream Networks, snijsure@skystream.com
*/
-#include <common.h>
#include <command.h>
#include <asm/ppc.h>
diff --git a/cmd/regulator.c b/cmd/regulator.c
index 635a9add585..da298090bb7 100644
--- a/cmd/regulator.c
+++ b/cmd/regulator.c
@@ -3,7 +3,6 @@
* Copyright (C) 2014-2015 Samsung Electronics
* Przemyslaw Marczak <p.marczak@samsung.com>
*/
-#include <common.h>
#include <command.h>
#include <errno.h>
#include <dm.h>
diff --git a/cmd/remoteproc.c b/cmd/remoteproc.c
index ea8724a187d..3c5b6a05b1a 100644
--- a/cmd/remoteproc.c
+++ b/cmd/remoteproc.c
@@ -3,7 +3,6 @@
* (C) Copyright 2015
* Texas Instruments Incorporated - https://www.ti.com/
*/
-#include <common.h>
#include <command.h>
#include <dm.h>
#include <errno.h>
diff --git a/cmd/riscv/exception.c b/cmd/riscv/exception.c
index 14ad6c440a5..2b58b1c449c 100644
--- a/cmd/riscv/exception.c
+++ b/cmd/riscv/exception.c
@@ -68,14 +68,13 @@ static struct cmd_tbl cmd_sub[] = {
"", ""),
};
-static char exception_help_text[] =
+U_BOOT_LONGHELP(exception,
"<ex>\n"
" The following exceptions are available:\n"
" compressed - compressed instruction\n"
" ebreak - breakpoint\n"
" ialign16 - 16 bit aligned instruction\n"
" undefined - illegal instruction\n"
- " unaligned - load address misaligned\n"
- ;
+ " unaligned - load address misaligned\n");
#include <exception.h>
diff --git a/cmd/riscv/sbi.c b/cmd/riscv/sbi.c
index 2d8ee7e5bbb..a231604e492 100644
--- a/cmd/riscv/sbi.c
+++ b/cmd/riscv/sbi.c
@@ -5,7 +5,6 @@
* Copyright (c) 2020, Heinrich Schuchardt <xypron.glpk@gmx.de>
*/
-#include <common.h>
#include <command.h>
#include <asm/sbi.h>
diff --git a/cmd/rkmtd.c b/cmd/rkmtd.c
index 5b80427cb94..a870c119110 100644
--- a/cmd/rkmtd.c
+++ b/cmd/rkmtd.c
@@ -8,7 +8,6 @@
* Copyright (C) 2023 Johan Jonker <jbx6244@gmail.com>
*/
-#include <common.h>
#include <blk.h>
#include <command.h>
#include <dm.h>
diff --git a/cmd/rng.c b/cmd/rng.c
index e5ab8681122..2fb7202303a 100644
--- a/cmd/rng.c
+++ b/cmd/rng.c
@@ -4,7 +4,6 @@
*
* Copyright (c) 2019, Heinrich Schuchardt <xypron.glpk@gmx.de>
*/
-#include <common.h>
#include <command.h>
#include <dm.h>
#include <hexdump.h>
diff --git a/cmd/rockusb.c b/cmd/rockusb.c
index 07088564a10..48497aa8764 100644
--- a/cmd/rockusb.c
+++ b/cmd/rockusb.c
@@ -3,7 +3,6 @@
* Copyright (C) 2017 Eddie Cai <eddie.cai.linux@gmail.com>
*/
-#include <common.h>
#include <command.h>
#include <console.h>
#include <g_dnl.h>
diff --git a/cmd/rtc.c b/cmd/rtc.c
index a344cfa76b1..a931fd9d54f 100644
--- a/cmd/rtc.c
+++ b/cmd/rtc.c
@@ -1,6 +1,5 @@
// SPDX-License-Identifier: GPL-2.0+
-#include <common.h>
#include <command.h>
#include <display_options.h>
#include <dm.h>
diff --git a/cmd/sata.c b/cmd/sata.c
index 9c9fe111d12..8b923f9378b 100644
--- a/cmd/sata.c
+++ b/cmd/sata.c
@@ -9,7 +9,6 @@
* Dave Liu <daveliu@freescale.com>
*/
-#include <common.h>
#include <ahci.h>
#include <blk.h>
#include <dm.h>
diff --git a/cmd/sb.c b/cmd/sb.c
index 0d55818e3c6..db485fddfca 100644
--- a/cmd/sb.c
+++ b/cmd/sb.c
@@ -4,7 +4,6 @@
* Written by Simon Glass <sjg@chromium.org>
*/
-#include <common.h>
#include <command.h>
#include <dm.h>
#include <spl.h>
@@ -15,8 +14,10 @@ static int do_sb_handoff(struct cmd_tbl *cmdtp, int flag, int argc,
char *const argv[])
{
#if CONFIG_IS_ENABLED(HANDOFF)
- if (gd->spl_handoff)
- printf("SPL handoff magic %lx\n", gd->spl_handoff->arch.magic);
+ struct spl_handoff *handoff = handoff_get();
+
+ if (handoff)
+ printf("SPL handoff magic %lx\n", handoff->arch.magic);
else
printf("SPL handoff info not received\n");
diff --git a/cmd/scmi.c b/cmd/scmi.c
index 664062c4eff..cfbca63e164 100644
--- a/cmd/scmi.c
+++ b/cmd/scmi.c
@@ -369,7 +369,7 @@ static int do_scmi(struct cmd_tbl *cmdtp, int flag,
return cp->cmd(cmdtp, flag, argc, argv);
}
-static char scmi_help_text[] =
+U_BOOT_LONGHELP(scmi,
" - SCMI utility\n"
" info - get the info of SCMI services\n"
" perm_dev <agent-id in hex> <device-id in hex> <flags in hex>\n"
@@ -377,8 +377,7 @@ static char scmi_help_text[] =
" perm_proto <agent-id in hex> <device-id in hex> <protocol-id in hex> <flags in hex>\n"
" - set protocol permission to device\n"
" reset <agent-id in hex> <flags in hex>\n"
- " - reset platform resource settings\n"
- "";
+ " - reset platform resource settings\n");
U_BOOT_CMD(scmi, CONFIG_SYS_MAXARGS, 0, do_scmi, "SCMI utility",
scmi_help_text);
diff --git a/cmd/scp03.c b/cmd/scp03.c
index 2b8d5aecf34..9c749d19af8 100644
--- a/cmd/scp03.c
+++ b/cmd/scp03.c
@@ -4,7 +4,6 @@
*
*/
-#include <common.h>
#include <command.h>
#include <env.h>
#include <scp03.h>
diff --git a/cmd/scsi.c b/cmd/scsi.c
index c501d7f456d..c286bdc0726 100644
--- a/cmd/scsi.c
+++ b/cmd/scsi.c
@@ -7,7 +7,6 @@
/*
* SCSI support.
*/
-#include <common.h>
#include <blk.h>
#include <command.h>
#include <scsi.h>
diff --git a/cmd/seama.c b/cmd/seama.c
index 3aafb43c48a..3c8e8199234 100644
--- a/cmd/seama.c
+++ b/cmd/seama.c
@@ -4,7 +4,6 @@
* Support for the "SEAttle iMAge" SEAMA NAND image format
*/
-#include <common.h>
#include <command.h>
#include <nand.h>
diff --git a/cmd/setexpr.c b/cmd/setexpr.c
index ab76824a32b..e111b8ba98a 100644
--- a/cmd/setexpr.c
+++ b/cmd/setexpr.c
@@ -8,7 +8,6 @@
* This file provides a shell like 'expr' function to return.
*/
-#include <common.h>
#include <config.h>
#include <command.h>
#include <ctype.h>
@@ -16,6 +15,8 @@
#include <log.h>
#include <malloc.h>
#include <mapmem.h>
+#include <vsprintf.h>
+#include <linux/errno.h>
#include <linux/sizes.h>
#include "printf.h"
diff --git a/cmd/sf.c b/cmd/sf.c
index e3866899f6c..f43a2e08b31 100644
--- a/cmd/sf.c
+++ b/cmd/sf.c
@@ -5,7 +5,6 @@
* Copyright (C) 2008 Atmel Corporation
*/
-#include <common.h>
#include <command.h>
#include <display_options.h>
#include <div64.h>
@@ -14,6 +13,7 @@
#include <malloc.h>
#include <mapmem.h>
#include <spi.h>
+#include <time.h>
#include <spi_flash.h>
#include <asm/cache.h>
#include <jffs2/jffs2.h>
diff --git a/cmd/sha1sum.c b/cmd/sha1sum.c
index bcc665a5a6c..52aa26c78d2 100644
--- a/cmd/sha1sum.c
+++ b/cmd/sha1sum.c
@@ -7,7 +7,6 @@
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
*/
-#include <common.h>
#include <command.h>
#include <hash.h>
#include <u-boot/sha1.h>
diff --git a/cmd/sleep.c b/cmd/sleep.c
index c741b4aa029..7616fed7556 100644
--- a/cmd/sleep.c
+++ b/cmd/sleep.c
@@ -4,9 +4,10 @@
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
*/
-#include <common.h>
#include <command.h>
#include <console.h>
+#include <time.h>
+#include <vsprintf.h>
#include <linux/delay.h>
static int do_sleep(struct cmd_tbl *cmdtp, int flag, int argc,
diff --git a/cmd/smccc.c b/cmd/smccc.c
index fb80431ad1d..3a4d885e37e 100644
--- a/cmd/smccc.c
+++ b/cmd/smccc.c
@@ -4,8 +4,8 @@
* Michalis Pappas <mpappas@fastmail.fm>
*/
#include <asm/psci.h>
-#include <common.h>
#include <command.h>
+#include <vsprintf.h>
#include <linux/arm-smccc.h>
#include <linux/compiler.h>
#include <linux/psci.h>
diff --git a/cmd/sound.c b/cmd/sound.c
index 0b7f9599716..8f67cbd96e1 100644
--- a/cmd/sound.c
+++ b/cmd/sound.c
@@ -4,7 +4,6 @@
* Rajeshwari Shinde <rajeshwari.s@samsung.com>
*/
-#include <common.h>
#include <command.h>
#include <dm.h>
#include <fdtdec.h>
@@ -99,7 +98,7 @@ U_BOOT_CMD(
sound, INT_MAX, 1, do_sound,
"sound sub-system",
"init - initialise the sound driver\n"
- "sound play [[[-q|-s] len [freq]] ...] - play sounds\n"
+ "sound play [len [freq [len [freq ...]]]] - play sounds\n"
" len - duration in ms\n"
" freq - frequency in Hz\n"
);
diff --git a/cmd/source.c b/cmd/source.c
index 0ba9736b1ab..c9b5f8e400a 100644
--- a/cmd/source.c
+++ b/cmd/source.c
@@ -14,7 +14,6 @@
/* #define DEBUG */
-#include <common.h>
#include <command.h>
#include <env.h>
#include <image.h>
diff --git a/cmd/spi.c b/cmd/spi.c
index f30018f33be..ea30c854c21 100644
--- a/cmd/spi.c
+++ b/cmd/spi.c
@@ -8,7 +8,6 @@
* SPI Read/Write Utilities
*/
-#include <common.h>
#include <command.h>
#include <dm.h>
#include <errno.h>
diff --git a/cmd/spl.c b/cmd/spl.c
index 8a2ded72be9..76fe33762df 100644
--- a/cmd/spl.c
+++ b/cmd/spl.c
@@ -4,7 +4,6 @@
* Corscience GmbH & Co. KG - Simon Schwarz <schwarz@corscience.de>
*/
-#include <common.h>
#include <command.h>
#include <cmd_spl.h>
#include <env.h>
@@ -67,7 +66,6 @@ static int call_bootm(int argc, char *const argv[], const char *subcommand[])
bootm_argv[2] = argv[0]; /* kernel addr */
}
-
/*
* - do the work -
* exec subcommands of do_bootm to init the images
diff --git a/cmd/stackprot_test.c b/cmd/stackprot_test.c
index f3470288fac..e7ff4a06158 100644
--- a/cmd/stackprot_test.c
+++ b/cmd/stackprot_test.c
@@ -3,7 +3,6 @@
* Copyright 2021 Broadcom
*/
-#include <common.h>
#include <command.h>
static int do_test_stackprot_fail(struct cmd_tbl *cmdtp, int flag, int argc,
diff --git a/cmd/strings.c b/cmd/strings.c
index bf348afce81..5bcb0f2b567 100644
--- a/cmd/strings.c
+++ b/cmd/strings.c
@@ -7,8 +7,8 @@
*/
#include <config.h>
-#include <common.h>
#include <command.h>
+#include <vsprintf.h>
static char *start_addr, *last_addr;
diff --git a/cmd/sysboot.c b/cmd/sysboot.c
index d14c570d96a..0ea08fd7b53 100644
--- a/cmd/sysboot.c
+++ b/cmd/sysboot.c
@@ -1,10 +1,10 @@
// SPDX-License-Identifier: GPL-2.0+
-#include <common.h>
#include <command.h>
#include <env.h>
#include <fs.h>
#include <pxe_utils.h>
+#include <vsprintf.h>
/**
* struct sysboot_info - useful information for sysboot helpers
diff --git a/cmd/temperature.c b/cmd/temperature.c
index 420965de143..41e422fc937 100644
--- a/cmd/temperature.c
+++ b/cmd/temperature.c
@@ -5,7 +5,6 @@
* Written by Robert Marko <robert.marko@sartura.hr>
*/
-#include <common.h>
#include <command.h>
#include <dm.h>
#include <thermal.h>
diff --git a/cmd/terminal.c b/cmd/terminal.c
index 9e32a4191e1..d803bc6c896 100644
--- a/cmd/terminal.c
+++ b/cmd/terminal.c
@@ -7,7 +7,6 @@
/*
* Boot support
*/
-#include <common.h>
#include <command.h>
#include <stdio_dev.h>
#include <serial.h>
@@ -67,7 +66,6 @@ int do_terminal(struct cmd_tbl *cmd, int flag, int argc, char *const argv[])
return 0;
}
-
/***************************************************/
U_BOOT_CMD(
diff --git a/cmd/test.c b/cmd/test.c
index fa7c48fb9f1..b4c3eabf9f6 100644
--- a/cmd/test.c
+++ b/cmd/test.c
@@ -4,10 +4,10 @@
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
*/
-#include <common.h>
#include <command.h>
#include <fs.h>
#include <log.h>
+#include <vsprintf.h>
#define OP_INVALID 0
#define OP_NOT 1
diff --git a/cmd/thordown.c b/cmd/thordown.c
index 48e22b31d02..70061bf8d4c 100644
--- a/cmd/thordown.c
+++ b/cmd/thordown.c
@@ -6,7 +6,6 @@
* All rights reserved.
*/
-#include <common.h>
#include <command.h>
#include <thor.h>
#include <dfu.h>
diff --git a/cmd/ti/ddr3.c b/cmd/ti/ddr3.c
index bbd406fc66e..70ce53d01e8 100644
--- a/cmd/ti/ddr3.c
+++ b/cmd/ti/ddr3.c
@@ -12,7 +12,6 @@
#include <asm/arch/hardware.h>
#include <asm/cache.h>
#include <asm/emif.h>
-#include <common.h>
#include <command.h>
#include <asm/global_data.h>
diff --git a/cmd/ti/pd.c b/cmd/ti/pd.c
index a0492a5fdee..305023af1e7 100644
--- a/cmd/ti/pd.c
+++ b/cmd/ti/pd.c
@@ -5,7 +5,6 @@
* Copyright (C) 2020 Texas Instruments Incorporated, <www.ti.com>
*/
-#include <common.h>
#include <command.h>
#include <dm.h>
#include <k3-dev.h>
diff --git a/cmd/time.c b/cmd/time.c
index db8c1892df4..eee6084e968 100644
--- a/cmd/time.c
+++ b/cmd/time.c
@@ -3,7 +3,6 @@
* Copyright (c) 2011 The Chromium OS Authors.
*/
-#include <common.h>
#include <command.h>
static void report_time(ulong cycles)
diff --git a/cmd/timer.c b/cmd/timer.c
index 551be5dd54e..04fcd84ac6a 100644
--- a/cmd/timer.c
+++ b/cmd/timer.c
@@ -4,8 +4,8 @@
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
*/
-#include <common.h>
#include <command.h>
+#include <time.h>
static int do_timer(struct cmd_tbl *cmdtp, int flag, int argc,
char *const argv[])
diff --git a/cmd/tlv_eeprom.c b/cmd/tlv_eeprom.c
index 57cfd355df1..0aec7521770 100644
--- a/cmd/tlv_eeprom.c
+++ b/cmd/tlv_eeprom.c
@@ -9,7 +9,6 @@
* Copyright (C) 2014,2016 david_yang <david_yang@accton.com>
*/
-#include <common.h>
#include <command.h>
#include <dm.h>
#include <i2c.h>
diff --git a/cmd/tpm-common.c b/cmd/tpm-common.c
index a7dc23d85d5..1cd57f901b6 100644
--- a/cmd/tpm-common.c
+++ b/cmd/tpm-common.c
@@ -3,7 +3,6 @@
* Copyright (c) 2013 The Chromium OS Authors.
*/
-#include <common.h>
#include <command.h>
#include <dm.h>
#include <env.h>
diff --git a/cmd/tpm-v1.c b/cmd/tpm-v1.c
index 1b1efcd204d..6e019d1c729 100644
--- a/cmd/tpm-v1.c
+++ b/cmd/tpm-v1.c
@@ -3,10 +3,10 @@
* Copyright (c) 2013 The Chromium OS Authors.
*/
-#include <common.h>
#include <command.h>
#include <env.h>
#include <malloc.h>
+#include <vsprintf.h>
#include <asm/unaligned.h>
#include <tpm-common.h>
#include <tpm-v1.h>
diff --git a/cmd/tpm-v2.c b/cmd/tpm-v2.c
index 7e479b9dfe3..8517833f861 100644
--- a/cmd/tpm-v2.c
+++ b/cmd/tpm-v2.c
@@ -4,7 +4,6 @@
* Author: Miquel Raynal <miquel.raynal@bootlin.com>
*/
-#include <common.h>
#include <command.h>
#include <dm.h>
#include <log.h>
@@ -99,11 +98,19 @@ static int do_tpm2_pcr_extend(struct cmd_tbl *cmdtp, int flag, int argc,
struct tpm_chip_priv *priv;
u32 index = simple_strtoul(argv[1], NULL, 0);
void *digest = map_sysmem(simple_strtoul(argv[2], NULL, 0), 0);
+ int algo = TPM2_ALG_SHA256;
+ int algo_len;
int ret;
u32 rc;
- if (argc != 3)
+ if (argc < 3 || argc > 4)
return CMD_RET_USAGE;
+ if (argc == 4) {
+ algo = tpm2_name_to_algorithm(argv[3]);
+ if (algo < 0)
+ return CMD_RET_FAILURE;
+ }
+ algo_len = tpm2_algorithm_to_len(algo);
ret = get_tpm(&dev);
if (ret)
@@ -116,8 +123,12 @@ static int do_tpm2_pcr_extend(struct cmd_tbl *cmdtp, int flag, int argc,
if (index >= priv->pcr_count)
return -EINVAL;
- rc = tpm2_pcr_extend(dev, index, TPM2_ALG_SHA256, digest,
- TPM2_DIGEST_LEN);
+ rc = tpm2_pcr_extend(dev, index, algo, digest, algo_len);
+ if (!rc) {
+ printf("PCR #%u extended with %d byte %s digest\n", index,
+ algo_len, tpm2_algorithm_name(algo));
+ print_byte_string(digest, algo_len);
+ }
unmap_sysmem(digest);
@@ -127,15 +138,23 @@ static int do_tpm2_pcr_extend(struct cmd_tbl *cmdtp, int flag, int argc,
static int do_tpm_pcr_read(struct cmd_tbl *cmdtp, int flag, int argc,
char *const argv[])
{
+ enum tpm2_algorithms algo = TPM2_ALG_SHA256;
struct udevice *dev;
struct tpm_chip_priv *priv;
u32 index, rc;
+ int algo_len;
unsigned int updates;
void *data;
int ret;
- if (argc != 3)
+ if (argc < 3 || argc > 4)
return CMD_RET_USAGE;
+ if (argc == 4) {
+ algo = tpm2_name_to_algorithm(argv[3]);
+ if (algo < 0)
+ return CMD_RET_FAILURE;
+ }
+ algo_len = tpm2_algorithm_to_len(algo);
ret = get_tpm(&dev);
if (ret)
@@ -151,11 +170,12 @@ static int do_tpm_pcr_read(struct cmd_tbl *cmdtp, int flag, int argc,
data = map_sysmem(simple_strtoul(argv[2], NULL, 0), 0);
- rc = tpm2_pcr_read(dev, index, priv->pcr_select_min, TPM2_ALG_SHA256,
- data, TPM2_DIGEST_LEN, &updates);
+ rc = tpm2_pcr_read(dev, index, priv->pcr_select_min, algo,
+ data, algo_len, &updates);
if (!rc) {
- printf("PCR #%u content (%u known updates):\n", index, updates);
- print_byte_string(data, TPM2_DIGEST_LEN);
+ printf("PCR #%u %s %d byte content (%u known updates):\n", index,
+ tpm2_algorithm_name(algo), algo_len, updates);
+ print_byte_string(data, algo_len);
}
unmap_sysmem(data);
@@ -415,14 +435,14 @@ U_BOOT_CMD(tpm2, CONFIG_SYS_MAXARGS, 1, do_tpm, "Issue a TPMv2.x command",
" <hierarchy> is one of:\n"
" * TPM2_RH_LOCKOUT\n"
" * TPM2_RH_PLATFORM\n"
-"pcr_extend <pcr> <digest_addr>\n"
-" Extend PCR #<pcr> with digest at <digest_addr>.\n"
+"pcr_extend <pcr> <digest_addr> [<digest_algo>]\n"
+" Extend PCR #<pcr> with digest at <digest_addr> with digest_algo.\n"
" <pcr>: index of the PCR\n"
-" <digest_addr>: address of a 32-byte SHA256 digest\n"
-"pcr_read <pcr> <digest_addr>\n"
-" Read PCR #<pcr> to memory address <digest_addr>.\n"
+" <digest_addr>: address of digest of digest_algo type (defaults to SHA256)\n"
+"pcr_read <pcr> <digest_addr> [<digest_algo>]\n"
+" Read PCR #<pcr> to memory address <digest_addr> with <digest_algo>.\n"
" <pcr>: index of the PCR\n"
-" <digest_addr>: address to store the a 32-byte SHA256 digest\n"
+" <digest_addr>: address of digest of digest_algo type (defaults to SHA256)\n"
"get_capability <capability> <property> <addr> <count>\n"
" Read and display <count> entries indexed by <capability>/<property>.\n"
" Values are 4 bytes long and are written at <addr>.\n"
diff --git a/cmd/tpm_test.c b/cmd/tpm_test.c
index c7fa6e775f5..af83d78c3fe 100644
--- a/cmd/tpm_test.c
+++ b/cmd/tpm_test.c
@@ -3,10 +3,10 @@
* Copyright (c) 2015 Google, Inc
*/
-#include <common.h>
#include <command.h>
#include <cpu_func.h>
#include <log.h>
+#include <time.h>
#include <tpm-v1.h>
#include <linux/printk.h>
#include "tpm-user-utils.h"
@@ -424,7 +424,6 @@ static int test_startup(struct udevice *dev)
} \
} while (0)
-
static int test_timing(struct udevice *dev)
{
uint8_t in[20], out[20];
diff --git a/cmd/trace.c b/cmd/trace.c
index 2e3ee1d3ba2..937e6a682ad 100644
--- a/cmd/trace.c
+++ b/cmd/trace.c
@@ -3,11 +3,11 @@
* Copyright (c) 2011 The Chromium OS Authors.
*/
-#include <common.h>
#include <command.h>
#include <env.h>
#include <mapmem.h>
#include <trace.h>
+#include <vsprintf.h>
#include <asm/io.h>
static int get_args(int argc, char *const argv[], char **buff,
diff --git a/cmd/tsi148.c b/cmd/tsi148.c
index 0d849d9979e..113b4e67330 100644
--- a/cmd/tsi148.c
+++ b/cmd/tsi148.c
@@ -7,10 +7,10 @@
* (C) Copyright 2003 Stefan Roese, stefan.roese@esd-electronics.com
*/
-#include <common.h>
#include <command.h>
#include <log.h>
#include <malloc.h>
+#include <vsprintf.h>
#include <asm/io.h>
#include <pci.h>
diff --git a/cmd/ubi.c b/cmd/ubi.c
index 0a6a80bdd10..0e62e449327 100644
--- a/cmd/ubi.c
+++ b/cmd/ubi.c
@@ -11,7 +11,6 @@
* published by the Free Software Foundation.
*/
-#include <common.h>
#include <command.h>
#include <env.h>
#include <exports.h>
@@ -249,7 +248,7 @@ static int ubi_create_vol(char *volume, int64_t size, int dynamic, int vol_id,
static struct ubi_volume *ubi_find_volume(char *volume)
{
- struct ubi_volume *vol = NULL;
+ struct ubi_volume *vol;
int i;
for (i = 0; i < ubi->vtbl_slots; i++) {
@@ -356,13 +355,18 @@ static int ubi_rename_vol(char *oldname, char *newname)
static int ubi_volume_continue_write(char *volume, void *buf, size_t size)
{
- int err = 1;
+ int err;
struct ubi_volume *vol;
vol = ubi_find_volume(volume);
if (vol == NULL)
return ENODEV;
+ if (!vol->updating) {
+ printf("UBI volume update was not initiated\n");
+ return EINVAL;
+ }
+
err = ubi_more_update_data(ubi, vol, buf, size);
if (err < 0) {
printf("Couldnt or partially wrote data\n");
@@ -392,8 +396,8 @@ static int ubi_volume_continue_write(char *volume, void *buf, size_t size)
int ubi_volume_begin_write(char *volume, void *buf, size_t size,
size_t full_size)
{
- int err = 1;
- int rsvd_bytes = 0;
+ int err;
+ int rsvd_bytes;
struct ubi_volume *vol;
vol = ubi_find_volume(volume);
@@ -412,21 +416,91 @@ int ubi_volume_begin_write(char *volume, void *buf, size_t size,
return -err;
}
+ /* The volume is just wiped out */
+ if (!full_size)
+ return 0;
+
return ubi_volume_continue_write(volume, buf, size);
}
-int ubi_volume_write(char *volume, void *buf, size_t size)
+static int ubi_volume_offset_write(char *volume, void *buf, loff_t offset,
+ size_t size)
+{
+ int len, tbuf_size, ret;
+ u64 lnum;
+ struct ubi_volume *vol;
+ loff_t off = offset;
+ void *tbuf;
+
+ vol = ubi_find_volume(volume);
+ if (!vol)
+ return -ENODEV;
+
+ if (size > vol->reserved_pebs * (ubi->leb_size - vol->data_pad))
+ return -EINVAL;
+
+ tbuf_size = vol->usable_leb_size;
+ tbuf = malloc_cache_aligned(tbuf_size);
+ if (!tbuf)
+ return -ENOMEM;
+
+ lnum = off;
+ off = do_div(lnum, vol->usable_leb_size);
+
+ do {
+ struct ubi_volume_desc desc = {
+ .vol = vol,
+ .mode = UBI_READWRITE,
+ };
+
+ len = size > tbuf_size ? tbuf_size : size;
+ if (off + len >= vol->usable_leb_size)
+ len = vol->usable_leb_size - off;
+
+ ret = ubi_read(&desc, (int)lnum, tbuf, 0, tbuf_size);
+ if (ret) {
+ pr_err("Failed to read leb %lld (%d)\n", lnum, ret);
+ goto exit;
+ }
+
+ memcpy(tbuf + off, buf, len);
+
+ ret = ubi_leb_change(&desc, (int)lnum, tbuf, tbuf_size);
+ if (ret) {
+ pr_err("Failed to write leb %lld (%d)\n", lnum, ret);
+ goto exit;
+ }
+
+ off += len;
+ if (off >= vol->usable_leb_size) {
+ lnum++;
+ off -= vol->usable_leb_size;
+ }
+
+ buf += len;
+ size -= len;
+ } while (size);
+
+exit:
+ free(tbuf);
+ return ret;
+}
+
+int ubi_volume_write(char *volume, void *buf, loff_t offset, size_t size)
{
- return ubi_volume_begin_write(volume, buf, size, size);
+ if (!offset)
+ return ubi_volume_begin_write(volume, buf, size, size);
+
+ return ubi_volume_offset_write(volume, buf, offset, size);
}
-int ubi_volume_read(char *volume, char *buf, size_t size)
+int ubi_volume_read(char *volume, char *buf, loff_t offset, size_t size)
{
int err, lnum, off, len, tbuf_size;
void *tbuf;
unsigned long long tmp;
struct ubi_volume *vol;
- loff_t offp = 0;
+ loff_t offp = offset;
size_t len_read;
vol = ubi_find_volume(volume);
@@ -574,7 +648,7 @@ static int ubi_detach(void)
int ubi_part(char *part_name, const char *vid_header_offset)
{
struct mtd_info *mtd;
- int err = 0;
+ int err;
if (ubi && ubi->mtd && !strcmp(ubi->mtd->name, part_name)) {
printf("UBI partition '%s' already selected\n", part_name);
@@ -605,7 +679,7 @@ int ubi_part(char *part_name, const char *vid_header_offset)
static int do_ubi(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
{
- int64_t size = 0;
+ int64_t size;
ulong addr = 0;
bool skipcheck = false;
@@ -761,7 +835,7 @@ static int do_ubi(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
(void *)addr, size, full_size);
}
} else {
- ret = ubi_volume_write(argv[3], (void *)addr, size);
+ ret = ubi_volume_write(argv[3], (void *)addr, 0, size);
}
if (!ret) {
printf("%lld bytes written to volume %s\n", size,
@@ -787,7 +861,7 @@ static int do_ubi(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
}
if (argc == 3) {
- return ubi_volume_read(argv[3], (char *)addr, size);
+ return ubi_volume_read(argv[3], (char *)addr, 0, size);
}
}
diff --git a/cmd/ubifs.c b/cmd/ubifs.c
index 2a035bc7ae6..22e95db8ca5 100644
--- a/cmd/ubifs.c
+++ b/cmd/ubifs.c
@@ -4,18 +4,17 @@
* Stefan Roese, DENX Software Engineering, sr@denx.de.
*/
-
/*
* UBIFS command support
*/
#undef DEBUG
-#include <common.h>
#include <config.h>
#include <command.h>
#include <log.h>
#include <ubifs_uboot.h>
+#include <vsprintf.h>
static int ubifs_initialized;
static int ubifs_mounted;
diff --git a/cmd/ufs.c b/cmd/ufs.c
index 536bd85b75d..6e21fbb1685 100644
--- a/cmd/ufs.c
+++ b/cmd/ufs.c
@@ -5,9 +5,9 @@
* Copyright (C) 2019 Texas Instruments Incorporated - https://www.ti.com
*
*/
-#include <common.h>
#include <command.h>
#include <ufs.h>
+#include <vsprintf.h>
static int do_ufs(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
{
diff --git a/cmd/universe.c b/cmd/universe.c
index fb3a32d4d5a..1445d5301f2 100644
--- a/cmd/universe.c
+++ b/cmd/universe.c
@@ -3,9 +3,9 @@
* (C) Copyright 2003 Stefan Roese, stefan.roese@esd-electronics.com
*/
-#include <common.h>
#include <command.h>
#include <malloc.h>
+#include <vsprintf.h>
#include <asm/io.h>
#include <pci.h>
@@ -14,7 +14,6 @@
#define PCI_VENDOR PCI_VENDOR_ID_TUNDRA
#define PCI_DEVICE PCI_DEVICE_ID_TUNDRA_CA91C042
-
typedef struct _UNI_DEV UNI_DEV;
struct _UNI_DEV {
@@ -26,7 +25,6 @@ struct _UNI_DEV {
static UNI_DEV *dev;
-
int universe_init(void)
{
int j, result;
@@ -112,7 +110,6 @@ int universe_init(void)
return result;
}
-
/*
* Create pci slave window (access: pci -> vme)
*/
@@ -209,7 +206,6 @@ int universe_pci_slave_window(unsigned int pciAddr, unsigned int vmeAddr, int si
return -result;
}
-
/*
* Create vme slave window (access: vme -> pci)
*/
@@ -294,7 +290,6 @@ int universe_vme_slave_window(unsigned int vmeAddr, unsigned int pciAddr, int si
return -result;
}
-
/*
* Tundra Universe configuration
*/
@@ -342,7 +337,6 @@ int do_universe(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
return 0;
}
-
U_BOOT_CMD(
universe, 8, 1, do_universe,
"initialize and configure Turndra Universe",
diff --git a/cmd/unlz4.c b/cmd/unlz4.c
index 5f20838e899..2eadc753e6c 100644
--- a/cmd/unlz4.c
+++ b/cmd/unlz4.c
@@ -4,9 +4,10 @@
* FUJITSU COMPUTERTECHNOLOGIES LIMITED. All rights reserved.
*/
-#include <common.h>
#include <command.h>
#include <env.h>
+#include <mapmem.h>
+#include <vsprintf.h>
#include <u-boot/lz4.h>
static int do_unlz4(struct cmd_tbl *cmdtp, int flag, int argc,
@@ -26,7 +27,8 @@ static int do_unlz4(struct cmd_tbl *cmdtp, int flag, int argc,
return CMD_RET_USAGE;
}
- ret = ulz4fn((void *)src, src_len, (void *)dst, &dst_len);
+ ret = ulz4fn(map_sysmem(src, 0), src_len, map_sysmem(dst, dst_len),
+ &dst_len);
if (ret) {
printf("Uncompressed err :%d\n", ret);
return 1;
diff --git a/cmd/unzip.c b/cmd/unzip.c
index bc6cee06043..e7a3f9808b2 100644
--- a/cmd/unzip.c
+++ b/cmd/unzip.c
@@ -4,12 +4,12 @@
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
*/
-#include <common.h>
#include <command.h>
#include <env.h>
#include <gzip.h>
#include <mapmem.h>
#include <part.h>
+#include <vsprintf.h>
static int do_unzip(struct cmd_tbl *cmdtp, int flag, int argc,
char *const argv[])
diff --git a/cmd/upl.c b/cmd/upl.c
new file mode 100644
index 00000000000..c9745886507
--- /dev/null
+++ b/cmd/upl.c
@@ -0,0 +1,118 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Commands for UPL handoff generation
+ *
+ * Copyright 2024 Google LLC
+ * Written by Simon Glass <sjg@chromium.org>
+ */
+
+#define LOG_CATEGORY UCLASS_BOOTSTD
+
+#include <abuf.h>
+#include <alist.h>
+#include <command.h>
+#include <display_options.h>
+#include <mapmem.h>
+#include <string.h>
+#include <upl.h>
+#include <dm/ofnode.h>
+#include <test/ut.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+static int do_upl_info(struct cmd_tbl *cmdtp, int flag, int argc,
+ char *const argv[])
+{
+ const struct upl *upl = gd_upl();
+
+ printf("UPL state: %sactive\n", upl ? "" : "in");
+ if (!upl)
+ return 0;
+ if (argc > 1 && !strcmp("-v", argv[1])) {
+ int i;
+
+ printf("fit %lx\n", upl->fit);
+ printf("conf_offset %x\n", upl->conf_offset);
+ for (i = 0; i < upl->image.count; i++) {
+ const struct upl_image *img =
+ alist_get(&upl->image, i, struct upl_image);
+
+ printf("image %d: load %lx size %lx offset %x: %s\n", i,
+ img->load, img->size, img->offset,
+ img->description);
+ }
+ }
+
+ return 0;
+}
+
+static int do_upl_write(struct cmd_tbl *cmdtp, int flag, int argc,
+ char *const argv[])
+{
+ struct upl s_upl, *upl = &s_upl;
+ struct unit_test_state uts;
+ struct abuf buf;
+ oftree tree;
+ ulong addr;
+ int ret;
+
+ upl_get_test_data(&uts, upl);
+
+ log_debug("Writing UPL\n");
+ ret = upl_create_handoff_tree(upl, &tree);
+ if (ret) {
+ log_err("Failed to write (err=%dE)\n", ret);
+ return CMD_RET_FAILURE;
+ }
+
+ log_debug("Flattening\n");
+ ret = oftree_to_fdt(tree, &buf);
+ if (ret) {
+ log_err("Failed to write (err=%dE)\n", ret);
+ return CMD_RET_FAILURE;
+ }
+ addr = map_to_sysmem(abuf_data(&buf));
+ printf("UPL handoff written to %lx size %lx\n", addr, abuf_size(&buf));
+ if (env_set_hex("upladdr", addr) ||
+ env_set_hex("uplsize", abuf_size(&buf))) {
+ printf("Cannot set env var\n");
+ return CMD_RET_FAILURE;
+ }
+
+ log_debug("done\n");
+
+ return 0;
+}
+
+static int do_upl_read(struct cmd_tbl *cmdtp, int flag, int argc,
+ char *const argv[])
+{
+ struct upl s_upl, *upl = &s_upl;
+ oftree tree;
+ ulong addr;
+ int ret;
+
+ if (argc < 1)
+ return CMD_RET_USAGE;
+ addr = hextoul(argv[1], NULL);
+
+ printf("Reading UPL at %lx\n", addr);
+ tree = oftree_from_fdt(map_sysmem(addr, 0));
+ ret = upl_read_handoff(upl, tree);
+ if (ret) {
+ log_err("Failed to read (err=%dE)\n", ret);
+ return CMD_RET_FAILURE;
+ }
+
+ return 0;
+}
+
+U_BOOT_LONGHELP(upl,
+ "info [-v] - Check UPL status\n"
+ "upl read <addr> - Read handoff information\n"
+ "upl write - Write handoff information");
+
+U_BOOT_CMD_WITH_SUBCMDS(upl, "Universal Payload support", upl_help_text,
+ U_BOOT_SUBCMD_MKENT(info, 2, 1, do_upl_info),
+ U_BOOT_SUBCMD_MKENT(read, 2, 1, do_upl_read),
+ U_BOOT_SUBCMD_MKENT(write, 1, 1, do_upl_write));
diff --git a/cmd/usb.c b/cmd/usb.c
index 23253f22231..16c081bf128 100644
--- a/cmd/usb.c
+++ b/cmd/usb.c
@@ -10,7 +10,6 @@
* project.
*/
-#include <common.h>
#include <blk.h>
#include <bootstage.h>
#include <command.h>
@@ -26,9 +25,6 @@
#ifdef CONFIG_USB_STORAGE
static int usb_stor_curr_dev = -1; /* current device */
#endif
-#if defined(CONFIG_USB_HOST_ETHER) && !defined(CONFIG_DM_ETH)
-static int __maybe_unused usb_ether_curr_dev = -1; /* current ethernet device */
-#endif
/* some display routines (info command) */
static char *usb_get_class_desc(unsigned char dclass)
@@ -553,7 +549,6 @@ static int usb_test(struct usb_device *dev, int port, char* arg)
}
}
-
/******************************************************************************
* usb boot command intepreter. Derived from diskboot
*/
@@ -741,7 +736,6 @@ U_BOOT_CMD(
#endif /* CONFIG_USB_STORAGE */
);
-
#ifdef CONFIG_USB_STORAGE
U_BOOT_CMD(
usbboot, 3, 1, do_usbboot,
diff --git a/cmd/usb_gadget_sdp.c b/cmd/usb_gadget_sdp.c
index cbdda733533..39259a3b092 100644
--- a/cmd/usb_gadget_sdp.c
+++ b/cmd/usb_gadget_sdp.c
@@ -6,7 +6,6 @@
* Author: Stefan Agner <stefan.agner@toradex.com>
*/
-#include <common.h>
#include <command.h>
#include <g_dnl.h>
#include <sdp.h>
diff --git a/cmd/usb_mass_storage.c b/cmd/usb_mass_storage.c
index 751701fe73a..47e8b70cd10 100644
--- a/cmd/usb_mass_storage.c
+++ b/cmd/usb_mass_storage.c
@@ -6,7 +6,6 @@
* Copyright (c) 2015, NVIDIA CORPORATION. All rights reserved.
*/
-#include <common.h>
#include <blk.h>
#include <command.h>
#include <console.h>
diff --git a/cmd/vbe.c b/cmd/vbe.c
index 0e84b0e97aa..423d9e5f8f0 100644
--- a/cmd/vbe.c
+++ b/cmd/vbe.c
@@ -6,7 +6,6 @@
* Written by Simon Glass <sjg@chromium.org>
*/
-#include <common.h>
#include <bloblist.h>
#include <bootmeth.h>
#include <bootstd.h>
diff --git a/cmd/version.c b/cmd/version.c
index d99a44f19fb..53db1a0b6bd 100644
--- a/cmd/version.c
+++ b/cmd/version.c
@@ -4,7 +4,6 @@
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
*/
-#include <common.h>
#include <command.h>
#include <display_options.h>
#include <version_string.h>
diff --git a/cmd/video.c b/cmd/video.c
index 942f81c1633..91bd6de14dc 100644
--- a/cmd/video.c
+++ b/cmd/video.c
@@ -6,7 +6,6 @@
* Written by Simon Glass <sjg@chromium.org>
*/
-#include <common.h>
#include <command.h>
#include <dm.h>
#include <video.h>
diff --git a/cmd/virtio.c b/cmd/virtio.c
index 019e317e755..a42a563ab72 100644
--- a/cmd/virtio.c
+++ b/cmd/virtio.c
@@ -4,7 +4,6 @@
* Copyright (C) 2018, Bin Meng <bmeng.cn@gmail.com>
*/
-#include <common.h>
#include <blk.h>
#include <command.h>
#include <dm.h>
diff --git a/cmd/w1.c b/cmd/w1.c
index 3209e65f377..e462e786a96 100644
--- a/cmd/w1.c
+++ b/cmd/w1.c
@@ -4,7 +4,6 @@
* Microchip Technology, Inc.
* Eugen Hristev <eugen.hristev@microchip.com>
*/
-#include <common.h>
#include <command.h>
#include <dm.h>
#include <w1.h>
diff --git a/cmd/wdt.c b/cmd/wdt.c
index b9fdf7ad155..c7a06cca181 100644
--- a/cmd/wdt.c
+++ b/cmd/wdt.c
@@ -5,7 +5,6 @@
* Copyright (c) 2019 Michael Walle <michael@walle.cc>
*/
-#include <common.h>
#include <command.h>
#include <dm.h>
#include <wdt.h>
diff --git a/cmd/wol.c b/cmd/wol.c
index f0d63432272..45d4ae3f719 100644
--- a/cmd/wol.c
+++ b/cmd/wol.c
@@ -7,9 +7,9 @@
/*
* Wake-on-LAN support
*/
-#include <common.h>
#include <command.h>
#include <net.h>
+#include <vsprintf.h>
#if defined(CONFIG_CMD_WOL)
void wol_set_timeout(ulong);
diff --git a/cmd/x86/cbsysinfo.c b/cmd/x86/cbsysinfo.c
index 84822a3e321..7ca2e13ae2f 100644
--- a/cmd/x86/cbsysinfo.c
+++ b/cmd/x86/cbsysinfo.c
@@ -4,7 +4,6 @@
* Written by Simon Glass <sjg@chromium.org>
*/
-#include <common.h>
#include <asm/cb_sysinfo.h>
#include <command.h>
#include <console.h>
diff --git a/cmd/x86/exception.c b/cmd/x86/exception.c
index 14b6bd6f493..02735494a3c 100644
--- a/cmd/x86/exception.c
+++ b/cmd/x86/exception.c
@@ -19,10 +19,9 @@ static struct cmd_tbl cmd_sub[] = {
"", ""),
};
-static char exception_help_text[] =
+U_BOOT_LONGHELP(exception,
"<ex>\n"
" The following exceptions are available:\n"
- " undefined - undefined instruction\n"
- ;
+ " undefined - undefined instruction\n");
#include <exception.h>
diff --git a/cmd/x86/fsp.c b/cmd/x86/fsp.c
index 82e4415b16e..2620ab8ee02 100644
--- a/cmd/x86/fsp.c
+++ b/cmd/x86/fsp.c
@@ -3,7 +3,6 @@
* Copyright (C) 2014-2015, Bin Meng <bmeng.cn@gmail.com>
*/
-#include <common.h>
#include <command.h>
#include <asm/fsp/fsp_support.h>
#include <asm/global_data.h>
diff --git a/cmd/x86/hob.c b/cmd/x86/hob.c
index 04d092dbe7e..2dd30808bd1 100644
--- a/cmd/x86/hob.c
+++ b/cmd/x86/hob.c
@@ -3,7 +3,6 @@
* Copyright (C) 2014-2015, Bin Meng <bmeng.cn@gmail.com>
*/
-#include <common.h>
#include <command.h>
#include <efi.h>
#include <uuid.h>
diff --git a/cmd/x86/mtrr.c b/cmd/x86/mtrr.c
index 6ad7a123a44..b2afb598c73 100644
--- a/cmd/x86/mtrr.c
+++ b/cmd/x86/mtrr.c
@@ -3,9 +3,9 @@
* (C) Copyright 2014 Google, Inc
*/
-#include <common.h>
#include <command.h>
#include <log.h>
+#include <vsprintf.h>
#include <asm/msr.h>
#include <asm/mp.h>
#include <asm/mtrr.h>
diff --git a/cmd/x86/zboot.c b/cmd/x86/zboot.c
index addf28cb4aa..94e602b8a5b 100644
--- a/cmd/x86/zboot.c
+++ b/cmd/x86/zboot.c
@@ -5,6 +5,8 @@
* Daniel Engström, Omicron Ceti AB, <daniel@omicron.se>
*/
+#define LOG_CATEGORY LOGC_BOOT
+
#include <command.h>
#include <mapmem.h>
#include <vsprintf.h>
@@ -14,8 +16,14 @@ static int do_zboot_start(struct cmd_tbl *cmdtp, int flag, int argc,
char *const argv[])
{
ulong bzimage_addr = 0, bzimage_size, initrd_addr, initrd_size;
- ulong base_addr;
const char *s, *cmdline;
+ ulong base_addr;
+ int i;
+
+ log_debug("argc %d:", argc);
+ for (i = 0; i < argc; i++)
+ log_debug(" %s", argv[i]);
+ log_debug("\n");
/* argv[1] holds the address of the bzImage */
s = cmd_arg1(argc, argv) ? : env_get("fileaddr");
@@ -114,17 +122,18 @@ U_BOOT_SUBCMDS(zboot,
int do_zboot_states(struct cmd_tbl *cmdtp, int flag, int argc,
char *const argv[], int state_mask)
{
- int ret;
+ int ret = 0;
- if (flag & ZBOOT_STATE_START)
+ log_debug("state_mask %x\n", state_mask);
+ if (state_mask & ZBOOT_STATE_START)
ret = do_zboot_start(cmdtp, flag, argc, argv);
- if (!ret && (flag & ZBOOT_STATE_LOAD))
+ if (!ret && (state_mask & ZBOOT_STATE_LOAD))
ret = do_zboot_load(cmdtp, flag, argc, argv);
- if (!ret && (flag & ZBOOT_STATE_SETUP))
+ if (!ret && (state_mask & ZBOOT_STATE_SETUP))
ret = do_zboot_setup(cmdtp, flag, argc, argv);
- if (!ret && (flag & ZBOOT_STATE_INFO))
+ if (!ret && (state_mask & ZBOOT_STATE_INFO))
ret = do_zboot_info(cmdtp, flag, argc, argv);
- if (!ret && (flag & ZBOOT_STATE_GO))
+ if (!ret && (state_mask & ZBOOT_STATE_GO))
ret = do_zboot_go(cmdtp, flag, argc, argv);
if (ret)
return ret;
diff --git a/cmd/ximg.c b/cmd/ximg.c
index 0e7eead8d19..1c96f5a0a1f 100644
--- a/cmd/ximg.c
+++ b/cmd/ximg.c
@@ -7,15 +7,16 @@
* Kai-Uwe Bloem, Auerswald GmbH & Co KG, <linux-development@auerswald.de>
*/
-
/*
* Multi Image extract
*/
-#include <common.h>
#include <command.h>
#include <cpu_func.h>
#include <env.h>
#include <gzip.h>
+#if IS_ENABLED(CONFIG_ZSTD)
+#include <linux/zstd.h>
+#endif
#include <image.h>
#include <malloc.h>
#include <mapmem.h>
@@ -238,6 +239,26 @@ do_imgextract(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
}
break;
#endif /* CONFIG_BZIP2 */
+#if IS_ENABLED(CONFIG_ZSTD)
+ case IH_COMP_ZSTD:
+ {
+ int ret;
+ struct abuf in, out;
+
+ printf(" Uncompressing part %d ... ", part);
+
+ abuf_init_set(&in, (void *)data, len);
+ abuf_init_set(&out, (void *)dest, unc_len);
+ ret = zstd_decompress(&in, &out);
+ if (ret < 0) {
+ printf("ZSTD ERROR %d - "
+ "image not loaded\n", ret);
+ return 1;
+ }
+ len = ret;
+ }
+ break;
+#endif
default:
printf("Unimplemented compression type %d\n", comp);
return 1;
diff --git a/cmd/xxd.c b/cmd/xxd.c
index 446ac1915ef..8ae05f910cb 100644
--- a/cmd/xxd.c
+++ b/cmd/xxd.c
@@ -4,7 +4,6 @@
* Roger Knecht <rknecht@pm.de>
*/
-#include <common.h>
#include <command.h>
#include <display_options.h>
#include <fs.h>
diff --git a/cmd/yaffs2.c b/cmd/yaffs2.c
index 27fbd1be8f7..daa44abeb72 100644
--- a/cmd/yaffs2.c
+++ b/cmd/yaffs2.c
@@ -13,8 +13,6 @@
* ...
*/
-#include <common.h>
-
#include <config.h>
#include <command.h>
diff --git a/cmd/zfs.c b/cmd/zfs.c
index 6ef1b56ab10..471c63f2150 100644
--- a/cmd/zfs.c
+++ b/cmd/zfs.c
@@ -8,7 +8,6 @@
* made from existing GRUB Sources by Sun, GNU and others.
*/
-#include <common.h>
#include <part.h>
#include <config.h>
#include <command.h>
@@ -120,7 +119,6 @@ static int do_zfs_load(struct cmd_tbl *cmdtp, int flag, int argc,
return 0;
}
-
int zfs_print(const char *entry, const struct zfs_dirhook_info *data)
{
printf("%s %s\n",
@@ -129,7 +127,6 @@ int zfs_print(const char *entry, const struct zfs_dirhook_info *data)
return 0; /* 0 continue, 1 stop */
}
-
static int do_zfs_ls(struct cmd_tbl *cmdtp, int flag, int argc,
char *const argv[])
{
@@ -158,7 +155,6 @@ static int do_zfs_ls(struct cmd_tbl *cmdtp, int flag, int argc,
return 0;
}
-
U_BOOT_CMD(zfsls, 4, 1, do_zfs_ls,
"list files in a directory (default /)",
"<interface> <dev[:part]> [directory]\n"
diff --git a/cmd/zip.c b/cmd/zip.c
index 08afd62b973..2d255428822 100644
--- a/cmd/zip.c
+++ b/cmd/zip.c
@@ -4,10 +4,10 @@
* Lei Wen <leiwen@marvell.com>, Marvell Inc.
*/
-#include <common.h>
#include <command.h>
#include <env.h>
#include <gzip.h>
+#include <vsprintf.h>
static int do_zip(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
{