diff options
Diffstat (limited to 'cmd')
-rw-r--r-- | cmd/Kconfig | 9 | ||||
-rw-r--r-- | cmd/Makefile | 1 | ||||
-rw-r--r-- | cmd/ab_select.c | 3 | ||||
-rw-r--r-- | cmd/addrmap.c | 35 | ||||
-rw-r--r-- | cmd/efidebug.c | 6 | ||||
-rw-r--r-- | cmd/pwm.c | 41 | ||||
-rw-r--r-- | cmd/riscv/sbi.c | 1 | ||||
-rw-r--r-- | cmd/sf.c | 29 |
8 files changed, 90 insertions, 35 deletions
diff --git a/cmd/Kconfig b/cmd/Kconfig index 928a2a0a2d..eff238cb38 100644 --- a/cmd/Kconfig +++ b/cmd/Kconfig @@ -97,6 +97,13 @@ config CMD_ACPI between the firmware and OS, and is particularly useful when you want to make hardware changes without the OS needing to be adjusted. +config CMD_ADDRMAP + bool "addrmap" + depends on ADDR_MAP + default y + help + List non-identity virtual-physical memory mappings for 32-bit CPUs. + config CMD_BDI bool "bdinfo" default y @@ -1188,6 +1195,7 @@ config CMD_PCI config CMD_PINMUX bool "pinmux - show pins muxing" + depends on PINCTRL default y if PINCTRL help Parse all available pin-controllers and show pins muxing. This @@ -1337,6 +1345,7 @@ config CMD_PVBLOCK config CMD_VIRTIO bool "virtio" depends on VIRTIO + depends on HAVE_BLOCK_DEVICE default y if VIRTIO help VirtIO block device support diff --git a/cmd/Makefile b/cmd/Makefile index 176bf925fd..567e2b79d2 100644 --- a/cmd/Makefile +++ b/cmd/Makefile @@ -13,6 +13,7 @@ obj-y += version.o # command obj-$(CONFIG_CMD_ACPI) += acpi.o +obj-$(CONFIG_CMD_ADDRMAP) += addrmap.o obj-$(CONFIG_CMD_AES) += aes.o obj-$(CONFIG_CMD_AB_SELECT) += ab_select.o obj-$(CONFIG_CMD_ADC) += adc.o diff --git a/cmd/ab_select.c b/cmd/ab_select.c index 6298fcfb60..3e46663d6e 100644 --- a/cmd/ab_select.c +++ b/cmd/ab_select.c @@ -22,7 +22,8 @@ static int do_ab_select(struct cmd_tbl *cmdtp, int flag, int argc, /* Lookup the "misc" partition from argv[2] and argv[3] */ if (part_get_info_by_dev_and_name_or_num(argv[2], argv[3], - &dev_desc, &part_info) < 0) { + &dev_desc, &part_info, + false) < 0) { return CMD_RET_FAILURE; } diff --git a/cmd/addrmap.c b/cmd/addrmap.c new file mode 100644 index 0000000000..bd23549f3a --- /dev/null +++ b/cmd/addrmap.c @@ -0,0 +1,35 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (C) 2021, Bin Meng <bmeng.cn@gmail.com> + */ + +#include <common.h> +#include <command.h> +#include <addr_map.h> + +static int do_addrmap(struct cmd_tbl *cmdtp, int flag, int argc, + char *const argv[]) +{ + int i; + + printf(" vaddr paddr size\n"); + printf("================ ================ ================\n"); + + for (i = 0; i < CONFIG_SYS_NUM_ADDR_MAP; i++) { + if (address_map[i].size == 0) + continue; + + printf("%16.8lx %16.8llx %16.8llx\n", + address_map[i].vaddr, + (unsigned long long)address_map[i].paddr, + (unsigned long long)address_map[i].size); + } + + return 0; +} + +U_BOOT_CMD( + addrmap, 1, 1, do_addrmap, + "List non-identity virtual-physical memory mappings for 32-bit CPUs", + "" +); diff --git a/cmd/efidebug.c b/cmd/efidebug.c index bbbcb0a546..55c7abe3d0 100644 --- a/cmd/efidebug.c +++ b/cmd/efidebug.c @@ -72,7 +72,7 @@ static int do_efi_capsule_update(struct cmd_tbl *cmdtp, int flag, capsule->capsule_image_size); } - ret = EFI_CALL(RT->update_capsule(&capsule, 1, (u64)NULL)); + ret = EFI_CALL(RT->update_capsule(&capsule, 1, 0)); if (ret) { printf("Cannot handle a capsule at %p", capsule); return CMD_RET_FAILURE; @@ -507,6 +507,10 @@ static const struct { "System Partition", PARTITION_SYSTEM_GUID }, + { + "Firmware Management", + EFI_FIRMWARE_MANAGEMENT_PROTOCOL_GUID + }, /* Configuration table GUIDs */ { "ACPI table", @@ -34,11 +34,9 @@ static int do_pwm(struct cmd_tbl *cmdtp, int flag, int argc, argc -= 2; argv += 2; - if (argc > 0) { - str_pwm = *argv; - argc--; - argv++; - } + str_pwm = *argv; + argc--; + argv++; if (!str_pwm) return CMD_RET_USAGE; @@ -46,15 +44,23 @@ static int do_pwm(struct cmd_tbl *cmdtp, int flag, int argc, switch (*str_cmd) { case 'i': sub_cmd = PWM_SET_INVERT; + if (argc != 2) + return CMD_RET_USAGE; break; case 'c': sub_cmd = PWM_SET_CONFIG; + if (argc != 3) + return CMD_RET_USAGE; break; case 'e': sub_cmd = PWM_SET_ENABLE; + if (argc != 1) + return CMD_RET_USAGE; break; case 'd': sub_cmd = PWM_SET_DISABLE; + if (argc != 1) + return CMD_RET_USAGE; break; default: return CMD_RET_USAGE; @@ -67,38 +73,29 @@ static int do_pwm(struct cmd_tbl *cmdtp, int flag, int argc, return cmd_process_error(cmdtp, ret); } - if (argc > 0) { - str_channel = *argv; - channel = simple_strtoul(str_channel, NULL, 10); - argc--; - argv++; - } else { - return CMD_RET_USAGE; - } + str_channel = *argv; + channel = simple_strtoul(str_channel, NULL, 10); + argc--; + argv++; - if (sub_cmd == PWM_SET_INVERT && argc > 0) { + if (sub_cmd == PWM_SET_INVERT) { str_enable = *argv; pwm_enable = simple_strtoul(str_enable, NULL, 10); ret = pwm_set_invert(dev, channel, pwm_enable); - } else if (sub_cmd == PWM_SET_CONFIG && argc == 2) { + } else if (sub_cmd == PWM_SET_CONFIG) { str_period = *argv; argc--; argv++; period_ns = simple_strtoul(str_period, NULL, 10); - if (argc > 0) { - str_duty = *argv; - duty_ns = simple_strtoul(str_duty, NULL, 10); - } + str_duty = *argv; + duty_ns = simple_strtoul(str_duty, NULL, 10); ret = pwm_set_config(dev, channel, period_ns, duty_ns); } else if (sub_cmd == PWM_SET_ENABLE) { ret = pwm_set_enable(dev, channel, 1); } else if (sub_cmd == PWM_SET_DISABLE) { ret = pwm_set_enable(dev, channel, 0); - } else { - printf("PWM arguments missing\n"); - return CMD_RET_FAILURE; } if (ret) { diff --git a/cmd/riscv/sbi.c b/cmd/riscv/sbi.c index 2c905f1f8f..90c0811e14 100644 --- a/cmd/riscv/sbi.c +++ b/cmd/riscv/sbi.c @@ -43,6 +43,7 @@ static struct sbi_ext extensions[] = { { 0x00735049, "IPI Extension" }, { 0x52464E43, "RFENCE Extension" }, { 0x0048534D, "Hart State Management Extension" }, + { 0x53525354, "System Reset Extension" }, }; static int do_sbi(struct cmd_tbl *cmdtp, int flag, int argc, @@ -344,8 +344,11 @@ static int do_spi_flash_erase(int argc, char *const argv[]) } ret = spi_flash_erase(flash, offset, size); - printf("SF: %zu bytes @ %#x Erased: %s\n", (size_t)size, (u32)offset, - ret ? "ERROR" : "OK"); + printf("SF: %zu bytes @ %#x Erased: ", (size_t)size, (u32)offset); + if (ret) + printf("ERROR %d\n", ret); + else + printf("OK\n"); return ret == 0 ? 0 : 1; } @@ -442,20 +445,22 @@ static int spi_flash_test(struct spi_flash *flash, uint8_t *buf, ulong len, ulong offset, uint8_t *vbuf) { struct test_info test; - int i; + int err, i; printf("SPI flash test:\n"); memset(&test, '\0', sizeof(test)); test.base_ms = get_timer(0); test.bytes = len; - if (spi_flash_erase(flash, offset, len)) { - printf("Erase failed\n"); + err = spi_flash_erase(flash, offset, len); + if (err) { + printf("Erase failed (err = %d)\n", err); return -1; } spi_test_next_stage(&test); - if (spi_flash_read(flash, offset, len, vbuf)) { - printf("Check read failed\n"); + err = spi_flash_read(flash, offset, len, vbuf); + if (err) { + printf("Check read failed (err = %d)\n", err); return -1; } for (i = 0; i < len; i++) { @@ -468,15 +473,17 @@ static int spi_flash_test(struct spi_flash *flash, uint8_t *buf, ulong len, } spi_test_next_stage(&test); - if (spi_flash_write(flash, offset, len, buf)) { - printf("Write failed\n"); + err = spi_flash_write(flash, offset, len, buf); + if (err) { + printf("Write failed (err = %d)\n", err); return -1; } memset(vbuf, '\0', len); spi_test_next_stage(&test); - if (spi_flash_read(flash, offset, len, vbuf)) { - printf("Read failed\n"); + err = spi_flash_read(flash, offset, len, vbuf); + if (err) { + printf("Read failed (ret = %d)\n", err); return -1; } spi_test_next_stage(&test); |