提交 c99e87f8 编写于 作者: T Tom Rini

Merge branch '2020-10-23-misc-changes'

Highlights:
- Fix a problem with the bootm overlap tests
- Remove duplicated code in fatwrite
- Cleanup our current "misc" command code and add a new one for misc
  class devices.
- Various GPIO fixes
......@@ -885,7 +885,7 @@ cmd_static_rela = \
tools/relocate-rela $(3) $(4) $$start $$end
else
quiet_cmd_static_rela =
cmd_static_rela =
cmd_static_rela = true
endif
# Always append INPUTS so that arch config.mk's can add custom ones
......@@ -1309,9 +1309,13 @@ init_sp_bss_offset_check: u-boot.dtb FORCE
fi
endif
shell_cmd = { $(echo-cmd) $(cmd_$(1)); }
quiet_cmd_objcopy_uboot = OBJCOPY $@
cmd_objcopy_uboot = $(cmd_objcopy) && $(call shell_cmd,static_rela,$<,$@,$(CONFIG_SYS_TEXT_BASE)) || rm -f $@
u-boot-nodtb.bin: u-boot FORCE
$(call if_changed,objcopy)
$(call cmd,static_rela,$<,$@,$(CONFIG_SYS_TEXT_BASE))
$(call if_changed,objcopy_uboot)
$(BOARD_SIZE_CHECK)
u-boot.ldr: u-boot
......
......@@ -1025,6 +1025,14 @@ config CMD_LSBLK
Print list of available block device drivers, and for each, the list
of known block devices.
config CMD_MISC
bool "misc"
depends on MISC
help
Enable the command "misc" for accessing miscellaneous devices with
a MISC uclass driver. The command provides listing all MISC devices
as well as read and write functionalities via their drivers.
config CMD_MMC
bool "mmc"
help
......@@ -1708,8 +1716,7 @@ config CMD_RNG
help
Print bytes from the hardware random number generator.
# TODO: rename to CMD_SLEEP
config CMD_MISC
config CMD_SLEEP
bool "sleep"
default y
help
......
......@@ -94,8 +94,9 @@ obj-$(CONFIG_CMD_MEMORY) += mem.o
obj-$(CONFIG_CMD_IO) += io.o
obj-$(CONFIG_CMD_MFSL) += mfsl.o
obj-$(CONFIG_CMD_MII) += mii.o
obj-$(CONFIG_CMD_MDIO) += mdio.o
obj-$(CONFIG_CMD_MISC) += misc.o
obj-$(CONFIG_CMD_MDIO) += mdio.o
obj-$(CONFIG_CMD_SLEEP) += sleep.o
obj-$(CONFIG_CMD_MMC) += mmc.o
obj-$(CONFIG_MP) += mp.o
obj-$(CONFIG_CMD_MTD) += mtd.o
......@@ -141,6 +142,7 @@ obj-$(CONFIG_CMD_SMC) += smccc.o
obj-$(CONFIG_CMD_SYSBOOT) += sysboot.o pxe_utils.o
obj-$(CONFIG_CMD_TERMINAL) += terminal.o
obj-$(CONFIG_CMD_TIME) += time.o
obj-$(CONFIG_CMD_TIMER) += timer.o
obj-$(CONFIG_CMD_TRACE) += trace.o
obj-$(CONFIG_HUSH_PARSER) += test.o
obj-$(CONFIG_CMD_TPM) += tpm-common.o
......
......@@ -98,48 +98,7 @@ U_BOOT_CMD(
static int do_fat_fswrite(struct cmd_tbl *cmdtp, int flag, int argc,
char *const argv[])
{
loff_t size;
int ret;
unsigned long addr;
unsigned long count;
long offset;
struct blk_desc *dev_desc = NULL;
struct disk_partition info;
int dev = 0;
int part = 1;
void *buf;
if (argc < 5)
return cmd_usage(cmdtp);
part = blk_get_device_part_str(argv[1], argv[2], &dev_desc, &info, 1);
if (part < 0)
return 1;
dev = dev_desc->devnum;
if (fat_set_blk_dev(dev_desc, &info) != 0) {
printf("\n** Unable to use %s %d:%d for fatwrite **\n",
argv[1], dev, part);
return 1;
}
addr = simple_strtoul(argv[3], NULL, 16);
count = (argc <= 5) ? 0 : simple_strtoul(argv[5], NULL, 16);
/* offset should be a hex, but "-1" is allowed */
offset = (argc <= 6) ? 0 : simple_strtol(argv[6], NULL, 16);
buf = map_sysmem(addr, count);
ret = file_fat_write(argv[4], buf, offset, count, &size);
unmap_sysmem(buf);
if (ret < 0) {
printf("\n** Unable to write \"%s\" from %s %d:%d **\n",
argv[4], argv[1], dev, part);
return 1;
}
printf("%llu bytes written\n", size);
return 0;
return do_save(cmdtp, flag, argc, argv, FS_TYPE_FAT);
}
U_BOOT_CMD(
......
// SPDX-License-Identifier: GPL-2.0+
/*
* (C) Copyright 2001
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
* Copyright (c) 2020 Wind River Systems, Inc.
*
* Author:
* Bin Meng <bin.meng@windriver.com>
*
* A command interface to access misc devices with MISC uclass driver APIs.
*/
/*
* Misc functions
*/
#include <common.h>
#include <command.h>
#include <console.h>
#include <linux/delay.h>
static int do_sleep(struct cmd_tbl *cmdtp, int flag, int argc,
char *const argv[])
#include <dm.h>
#include <errno.h>
#include <misc.h>
enum misc_op {
MISC_OP_READ,
MISC_OP_WRITE
};
static char *misc_op_str[] = {
"read",
"write"
};
static int do_misc_list(struct cmd_tbl *cmdtp, int flag,
int argc, char *const argv[])
{
ulong start = get_timer(0);
ulong mdelay = 0;
ulong delay;
char *frpart;
if (argc != 2)
return CMD_RET_USAGE;
struct udevice *dev;
printf("Device Index Driver\n");
printf("-------------------------------------\n");
for (uclass_first_device(UCLASS_MISC, &dev);
dev;
uclass_next_device(&dev)) {
printf("%-20s %5d %10s\n", dev->name, dev->seq,
dev->driver->name);
}
delay = simple_strtoul(argv[1], NULL, 10) * CONFIG_SYS_HZ;
return 0;
}
frpart = strchr(argv[1], '.');
static int do_misc_op(struct cmd_tbl *cmdtp, int flag,
int argc, char *const argv[], enum misc_op op)
{
int (*misc_op)(struct udevice *, int, void *, int);
struct udevice *dev;
int offset;
void *buf;
int size;
int ret;
ret = uclass_get_device_by_name(UCLASS_MISC, argv[0], &dev);
if (ret) {
printf("Unable to find device %s\n", argv[0]);
return ret;
}
if (frpart) {
uint mult = CONFIG_SYS_HZ / 10;
for (frpart++; *frpart != '\0' && mult > 0; frpart++) {
if (*frpart < '0' || *frpart > '9') {
mdelay = 0;
break;
}
mdelay += (*frpart - '0') * mult;
mult /= 10;
offset = simple_strtoul(argv[1], NULL, 16);
buf = (void *)simple_strtoul(argv[2], NULL, 16);
size = simple_strtoul(argv[3], NULL, 16);
if (op == MISC_OP_READ)
misc_op = misc_read;
else
misc_op = misc_write;
ret = misc_op(dev, offset, buf, size);
if (ret < 0) {
if (ret == -ENOSYS) {
printf("The device does not support %s\n",
misc_op_str[op]);
ret = 0;
}
} else {
if (ret == size)
ret = 0;
else
printf("Partially %s %d bytes\n", misc_op_str[op], ret);
}
delay += mdelay;
while (get_timer(start) < delay) {
if (ctrlc())
return (-1);
return ret;
}
udelay(100);
}
static int do_misc_read(struct cmd_tbl *cmdtp, int flag,
int argc, char *const argv[])
{
return do_misc_op(cmdtp, flag, argc, argv, MISC_OP_READ);
}
return 0;
static int do_misc_write(struct cmd_tbl *cmdtp, int flag,
int argc, char *const argv[])
{
return do_misc_op(cmdtp, flag, argc, argv, MISC_OP_WRITE);
}
U_BOOT_CMD(
sleep , 2, 1, do_sleep,
"delay execution for some time",
"N\n"
" - delay execution for N seconds (N is _decimal_ and can be\n"
" fractional)"
);
static struct cmd_tbl misc_commands[] = {
U_BOOT_CMD_MKENT(list, 0, 1, do_misc_list, "", ""),
U_BOOT_CMD_MKENT(read, 4, 1, do_misc_read, "", ""),
U_BOOT_CMD_MKENT(write, 4, 1, do_misc_write, "", ""),
};
#ifdef CONFIG_CMD_TIMER
static int do_timer(struct cmd_tbl *cmdtp, int flag, int argc,
char *const argv[])
static int do_misc(struct cmd_tbl *cmdtp, int flag,
int argc, char *const argv[])
{
static ulong start;
struct cmd_tbl *misc_cmd;
int ret;
if (argc != 2)
if (argc < 2)
return CMD_RET_USAGE;
misc_cmd = find_cmd_tbl(argv[1], misc_commands,
ARRAY_SIZE(misc_commands));
argc -= 2;
argv += 2;
if (!misc_cmd || argc != misc_cmd->maxargs)
return CMD_RET_USAGE;
if (!strcmp(argv[1], "start"))
start = get_timer(0);
ret = misc_cmd->cmd(misc_cmd, flag, argc, argv);
if (!strcmp(argv[1], "get")) {
ulong msecs = get_timer(start) * 1000 / CONFIG_SYS_HZ;
printf("%ld.%03d\n", msecs / 1000, (int)(msecs % 1000));
}
return 0;
return cmd_process_error(misc_cmd, ret);
}
U_BOOT_CMD(
timer, 2, 1, do_timer,
"access the system timer",
"start - Reset the timer reference.\n"
"timer get - Print the time since 'start'."
misc, 6, 1, do_misc,
"Access miscellaneous devices with MISC uclass driver APIs",
"list - list all miscellaneous devices\n"
"misc read name offset addr len - read `len' bytes starting at\n"
" `offset' of device `name'\n"
" to memory at `addr'\n"
"misc write name offset addr len - write `len' bytes starting at\n"
" `offset' of device `name'\n"
" from memory at `addr'"
);
#endif
// SPDX-License-Identifier: GPL-2.0+
/*
* (C) Copyright 2001
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
*/
#include <common.h>
#include <command.h>
#include <console.h>
#include <linux/delay.h>
static int do_sleep(struct cmd_tbl *cmdtp, int flag, int argc,
char *const argv[])
{
ulong start = get_timer(0);
ulong mdelay = 0;
ulong delay;
char *frpart;
if (argc != 2)
return CMD_RET_USAGE;
delay = simple_strtoul(argv[1], NULL, 10) * CONFIG_SYS_HZ;
frpart = strchr(argv[1], '.');
if (frpart) {
uint mult = CONFIG_SYS_HZ / 10;
for (frpart++; *frpart != '\0' && mult > 0; frpart++) {
if (*frpart < '0' || *frpart > '9') {
mdelay = 0;
break;
}
mdelay += (*frpart - '0') * mult;
mult /= 10;
}
}
delay += mdelay;
while (get_timer(start) < delay) {
if (ctrlc())
return (-1);
udelay(100);
}
return 0;
}
U_BOOT_CMD(
sleep , 2, 1, do_sleep,
"delay execution for some time",
"N\n"
" - delay execution for N seconds (N is _decimal_ and can be\n"
" fractional)"
);
// SPDX-License-Identifier: GPL-2.0+
/*
* (C) Copyright 2001
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
*/
#include <common.h>
#include <command.h>
static int do_timer(struct cmd_tbl *cmdtp, int flag, int argc,
char *const argv[])
{
static ulong start;
if (argc != 2)
return CMD_RET_USAGE;
if (!strcmp(argv[1], "start"))
start = get_timer(0);
if (!strcmp(argv[1], "get")) {
ulong msecs = get_timer(start) * 1000 / CONFIG_SYS_HZ;
printf("%ld.%03d\n", msecs / 1000, (int)(msecs % 1000));
}
return 0;
}
U_BOOT_CMD(
timer, 2, 1, do_timer,
"access the system timer",
"start - Reset the timer reference.\n"
"timer get - Print the time since 'start'."
);
......@@ -256,9 +256,11 @@ int bootm_find_images(int flag, int argc, char *const argv[], ulong start,
/* check if ramdisk overlaps OS image */
if (images.rd_start && (((ulong)images.rd_start >= start &&
(ulong)images.rd_start <= start + size) ||
((ulong)images.rd_end >= start &&
(ulong)images.rd_end <= start + size))) {
(ulong)images.rd_start < start + size) ||
((ulong)images.rd_end > start &&
(ulong)images.rd_end <= start + size) ||
((ulong)images.rd_start < start &&
(ulong)images.rd_end >= start + size))) {
printf("ERROR: RD image overlaps OS image (OS=0x%lx..0x%lx)\n",
start, start + size);
return 1;
......
......@@ -66,7 +66,7 @@ CONFIG_CMD_NAND=y
CONFIG_CMD_DHCP=y
CONFIG_CMD_MII=y
CONFIG_CMD_PING=y
# CONFIG_CMD_MISC is not set
# CONFIG_CMD_SLEEP is not set
CONFIG_OF_CONTROL=y
CONFIG_ENV_OVERWRITE=y
CONFIG_ENV_IS_IN_FLASH=y
......
......@@ -22,7 +22,7 @@ CONFIG_CMD_SDRAM=y
# CONFIG_CMD_SOURCE is not set
# CONFIG_CMD_SETEXPR is not set
CONFIG_CMD_PING=y
# CONFIG_CMD_MISC is not set
# CONFIG_CMD_SLEEP is not set
CONFIG_ENV_OVERWRITE=y
CONFIG_ENV_IS_IN_FLASH=y
CONFIG_ENV_ADDR=0xA0020000
......
......@@ -31,7 +31,7 @@ CONFIG_CMD_SDRAM=y
CONFIG_CMD_DHCP=y
CONFIG_CMD_MII=y
CONFIG_CMD_PING=y
# CONFIG_CMD_MISC is not set
# CONFIG_CMD_SLEEP is not set
CONFIG_ENV_OVERWRITE=y
CONFIG_ENV_IS_IN_FLASH=y
CONFIG_ENV_ADDR=0x40000
......
......@@ -30,7 +30,7 @@ CONFIG_CMD_MEMINFO=y
CONFIG_CMD_GPIO=y
# CONFIG_CMD_LOADS is not set
CONFIG_CMD_NAND=y
# CONFIG_CMD_MISC is not set
# CONFIG_CMD_SLEEP is not set
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
# CONFIG_NET is not set
# CONFIG_DM_DEVICE_REMOVE is not set
......
......@@ -32,7 +32,7 @@ CONFIG_CMD_SPI=y
CONFIG_CMD_USB=y
CONFIG_CMD_MII=y
CONFIG_CMD_PING=y
# CONFIG_CMD_MISC is not set
# CONFIG_CMD_SLEEP is not set
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_NET_RANDOM_ETHADDR=y
# CONFIG_DM_DEVICE_REMOVE is not set
......
......@@ -32,7 +32,7 @@ CONFIG_CMD_SPI=y
CONFIG_CMD_USB=y
CONFIG_CMD_MII=y
CONFIG_CMD_PING=y
# CONFIG_CMD_MISC is not set
# CONFIG_CMD_SLEEP is not set
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_NET_RANDOM_ETHADDR=y
# CONFIG_DM_DEVICE_REMOVE is not set
......
......@@ -30,7 +30,7 @@ CONFIG_CMD_MEMINFO=y
CONFIG_CMD_USB=y
CONFIG_CMD_MII=y
CONFIG_CMD_PING=y
# CONFIG_CMD_MISC is not set
# CONFIG_CMD_SLEEP is not set
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_NET_RANDOM_ETHADDR=y
# CONFIG_DM_DEVICE_REMOVE is not set
......
......@@ -32,7 +32,7 @@ CONFIG_CMD_NAND=y
CONFIG_CMD_USB=y
CONFIG_CMD_MII=y
CONFIG_CMD_PING=y
# CONFIG_CMD_MISC is not set
# CONFIG_CMD_SLEEP is not set
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_NET_RANDOM_ETHADDR=y
# CONFIG_DM_DEVICE_REMOVE is not set
......
......@@ -30,7 +30,7 @@ CONFIG_CMD_MEMINFO=y
CONFIG_CMD_USB=y
CONFIG_CMD_MII=y
CONFIG_CMD_PING=y
# CONFIG_CMD_MISC is not set
# CONFIG_CMD_SLEEP is not set
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_NET_RANDOM_ETHADDR=y
# CONFIG_DM_DEVICE_REMOVE is not set
......
......@@ -46,7 +46,7 @@ CONFIG_CMD_USB=y
CONFIG_CMD_USB_MASS_STORAGE=y
# CONFIG_CMD_ITEST is not set
# CONFIG_CMD_SETEXPR is not set
# CONFIG_CMD_MISC is not set
# CONFIG_CMD_SLEEP is not set
# CONFIG_SPL_DOS_PARTITION is not set
# CONFIG_ISO_PARTITION is not set
CONFIG_EFI_PARTITION_ENTRIES_NUMBERS=64
......
......@@ -33,7 +33,7 @@ CONFIG_CMD_USB=y
CONFIG_CMD_USB_MASS_STORAGE=y
# CONFIG_CMD_ITEST is not set
# CONFIG_CMD_SETEXPR is not set
# CONFIG_CMD_MISC is not set
# CONFIG_CMD_SLEEP is not set
# CONFIG_DOS_PARTITION is not set
# CONFIG_ISO_PARTITION is not set
CONFIG_EFI_PARTITION_ENTRIES_NUMBERS=64
......
......@@ -47,7 +47,7 @@ CONFIG_CMD_USB=y
CONFIG_CMD_USB_MASS_STORAGE=y
# CONFIG_CMD_ITEST is not set
# CONFIG_CMD_SETEXPR is not set
# CONFIG_CMD_MISC is not set
# CONFIG_CMD_SLEEP is not set
# CONFIG_SPL_DOS_PARTITION is not set
# CONFIG_ISO_PARTITION is not set
CONFIG_EFI_PARTITION_ENTRIES_NUMBERS=64
......
......@@ -30,7 +30,7 @@ CONFIG_CMD_MEMINFO=y
CONFIG_CMD_USB=y
CONFIG_CMD_MII=y
CONFIG_CMD_PING=y
# CONFIG_CMD_MISC is not set
# CONFIG_CMD_SLEEP is not set
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_NET_RANDOM_ETHADDR=y
# CONFIG_DM_DEVICE_REMOVE is not set
......
......@@ -24,7 +24,7 @@ CONFIG_CMD_I2C=y
# CONFIG_CMD_SETEXPR is not set
# CONFIG_CMD_NFS is not set
CONFIG_CMD_CACHE=y
# CONFIG_CMD_MISC is not set
# CONFIG_CMD_SLEEP is not set
CONFIG_MP=y
# CONFIG_DOS_PARTITION is not set
# CONFIG_ISO_PARTITION is not set
......
......@@ -26,7 +26,7 @@ CONFIG_CMD_NAND=y
# CONFIG_CMD_SETEXPR is not set
# CONFIG_CMD_NFS is not set
CONFIG_CMD_CACHE=y
# CONFIG_CMD_MISC is not set
# CONFIG_CMD_SLEEP is not set
CONFIG_MP=y
# CONFIG_ISO_PARTITION is not set
# CONFIG_EFI_PARTITION is not set
......
......@@ -28,7 +28,7 @@ CONFIG_CMD_MEMINFO=y
# CONFIG_CMD_FLASH is not set
# CONFIG_CMD_LOADS is not set
CONFIG_CMD_SPI=y
# CONFIG_CMD_MISC is not set
# CONFIG_CMD_SLEEP is not set
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
# CONFIG_NET is not set
# CONFIG_DM_DEVICE_REMOVE is not set
......
......@@ -31,7 +31,7 @@ CONFIG_CMD_MEMINFO=y
CONFIG_CMD_USB=y
CONFIG_CMD_MII=y
CONFIG_CMD_PING=y
# CONFIG_CMD_MISC is not set
# CONFIG_CMD_SLEEP is not set
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_NET_RANDOM_ETHADDR=y
# CONFIG_DM_DEVICE_REMOVE is not set
......
......@@ -52,7 +52,7 @@ CONFIG_CMD_MMC=y
CONFIG_CMD_USB=y
CONFIG_CMD_USB_MASS_STORAGE=y
# CONFIG_CMD_ITEST is not set
# CONFIG_CMD_MISC is not set
# CONFIG_CMD_SLEEP is not set
# CONFIG_SPL_DOS_PARTITION is not set
# CONFIG_ISO_PARTITION is not set
CONFIG_EFI_PARTITION_ENTRIES_NUMBERS=64
......
......@@ -32,7 +32,7 @@ CONFIG_CMD_USB=y
CONFIG_CMD_USB_MASS_STORAGE=y
# CONFIG_CMD_NFS is not set
CONFIG_CMD_CACHE=y
# CONFIG_CMD_MISC is not set
# CONFIG_CMD_SLEEP is not set
CONFIG_CMD_PMIC=y
CONFIG_CMD_REGULATOR=y
CONFIG_CMD_EXT4_WRITE=y
......
......@@ -25,7 +25,7 @@ CONFIG_CMD_MMC=y
CONFIG_CMD_USB_MASS_STORAGE=y
# CONFIG_CMD_NET is not set
CONFIG_CMD_CACHE=y
# CONFIG_CMD_MISC is not set
# CONFIG_CMD_SLEEP is not set
CONFIG_CMD_EXT4_WRITE=y
CONFIG_OF_CONTROL=y
CONFIG_ENV_OVERWRITE=y
......
......@@ -42,7 +42,7 @@ CONFIG_CMD_PART=y
# CONFIG_CMD_SOURCE is not set
# CONFIG_CMD_SETEXPR is not set
# CONFIG_CMD_BLOCK_CACHE is not set
# CONFIG_CMD_MISC is not set
# CONFIG_CMD_SLEEP is not set
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
# CONFIG_NET is not set
......
......@@ -26,7 +26,7 @@ CONFIG_CMD_SDRAM=y
# CONFIG_CMD_SOURCE is not set
# CONFIG_CMD_SETEXPR is not set
CONFIG_CMD_PING=y
# CONFIG_CMD_MISC is not set
# CONFIG_CMD_SLEEP is not set
CONFIG_CMD_EXT2=y
CONFIG_DOS_PARTITION=y
CONFIG_ENV_OVERWRITE=y
......
......@@ -33,7 +33,7 @@ CONFIG_CMD_USB=y
CONFIG_CMD_USB_MASS_STORAGE=y
# CONFIG_CMD_ITEST is not set
# CONFIG_CMD_SETEXPR is not set
# CONFIG_CMD_MISC is not set
# CONFIG_CMD_SLEEP is not set
# CONFIG_DOS_PARTITION is not set
# CONFIG_ISO_PARTITION is not set
CONFIG_EFI_PARTITION_ENTRIES_NUMBERS=64
......
......@@ -26,7 +26,7 @@ CONFIG_CMD_ONENAND=y
CONFIG_CMD_USB_MASS_STORAGE=y
# CONFIG_CMD_SETEXPR is not set
CONFIG_CMD_CACHE=y
# CONFIG_CMD_MISC is not set
# CONFIG_CMD_SLEEP is not set
CONFIG_CMD_EXT4=y
CONFIG_CMD_EXT4_WRITE=y
CONFIG_CMD_FAT=y
......
......@@ -25,7 +25,7 @@ CONFIG_CMD_MMC=y
CONFIG_CMD_USB_MASS_STORAGE=y
# CONFIG_CMD_NET is not set
CONFIG_CMD_CACHE=y
# CONFIG_CMD_MISC is not set
# CONFIG_CMD_SLEEP is not set
CONFIG_CMD_EXT4_WRITE=y
CONFIG_MTDPARTS_DEFAULT="mtdparts=samsung-onenand:128k(s-boot),896k(bootloader),256k(params),2816k(config),8m(csa),7m(kernel),1m(log),12m(modem),60m(qboot),-(UBI)"
CONFIG_OF_CONTROL=y
......
......@@ -31,7 +31,7 @@ CONFIG_CMD_MEMINFO=y
CONFIG_CMD_SPI=y
CONFIG_CMD_MII=y
CONFIG_CMD_PING=y
# CONFIG_CMD_MISC is not set
# CONFIG_CMD_SLEEP is not set
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_NET_RANDOM_ETHADDR=y
# CONFIG_DM_DEVICE_REMOVE is not set
......
......@@ -31,7 +31,7 @@ CONFIG_CMD_MEMINFO=y
CONFIG_CMD_USB=y
CONFIG_CMD_MII=y
CONFIG_CMD_PING=y
# CONFIG_CMD_MISC is not set
# CONFIG_CMD_SLEEP is not set
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_NET_RANDOM_ETHADDR=y
# CONFIG_DM_DEVICE_REMOVE is not set
......
......@@ -23,7 +23,7 @@ CONFIG_CMD_SDRAM=y
# CONFIG_CMD_SETEXPR is not set
CONFIG_CMD_MII=y
CONFIG_CMD_PING=y
# CONFIG_CMD_MISC is not set
# CONFIG_CMD_SLEEP is not set
CONFIG_CMD_EXT2=y
CONFIG_MAC_PARTITION=y
CONFIG_DOS_PARTITION=y
......
......@@ -22,7 +22,7 @@ CONFIG_CMD_SDRAM=y
# CONFIG_CMD_SETEXPR is not set
CONFIG_CMD_MII=y
CONFIG_CMD_PING=y
# CONFIG_CMD_MISC is not set
# CONFIG_CMD_SLEEP is not set
CONFIG_CMD_EXT2=y
CONFIG_MAC_PARTITION=y
CONFIG_DOS_PARTITION=y
......
......@@ -25,7 +25,7 @@ CONFIG_CMD_SDRAM=y
# CONFIG_CMD_SETEXPR is not set
CONFIG_CMD_MII=y
CONFIG_CMD_PING=y
# CONFIG_CMD_MISC is not set
# CONFIG_CMD_SLEEP is not set
CONFIG_CMD_EXT2=y
CONFIG_MAC_PARTITION=y
CONFIG_DOS_PARTITION=y
......
......@@ -25,7 +25,7 @@ CONFIG_CMD_SDRAM=y
# CONFIG_CMD_SETEXPR is not set
CONFIG_CMD_MII=y
CONFIG_CMD_PING=y
# CONFIG_CMD_MISC is not set
# CONFIG_CMD_SLEEP is not set
CONFIG_CMD_JFFS2=y
CONFIG_ENV_OVERWRITE=y
CONFIG_ENV_IS_IN_FLASH=y
......
......@@ -18,7 +18,7 @@ CONFIG_CMD_GPT=y
CONFIG_CMD_MMC=y
# CONFIG_CMD_NFS is not set
CONFIG_CMD_CACHE=y
# CONFIG_CMD_MISC is not set
# CONFIG_CMD_SLEEP is not set
CONFIG_CMD_EXT4_WRITE=y
CONFIG_ENV_OVERWRITE=y
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
......
......@@ -34,7 +34,7 @@ CONFIG_CMD_MMC=y
# CONFIG_CMD_ITEST is not set
# CONFIG_CMD_SETEXPR is not set
CONFIG_CMD_CACHE=y
# CONFIG_CMD_MISC is not set
# CONFIG_CMD_SLEEP is not set
CONFIG_CMD_AVB=y
CONFIG_CMD_UBI=y
# CONFIG_ISO_PARTITION is not set
......
......@@ -27,7 +27,7 @@ CONFIG_CMD_MMC=y
CONFIG_CMD_USB_MASS_STORAGE=y
# CONFIG_CMD_NET is not set
CONFIG_CMD_CACHE=y
# CONFIG_CMD_MISC is not set
# CONFIG_CMD_SLEEP is not set
CONFIG_CMD_EXT4_WRITE=y
CONFIG_OF_CONTROL=y
CONFIG_ENV_OVERWRITE=y
......
......@@ -26,7 +26,7 @@ CONFIG_CMD_MMC=y
CONFIG_CMD_USB_MASS_STORAGE=y
# CONFIG_CMD_NET is not set
CONFIG_CMD_CACHE=y
# CONFIG_CMD_MISC is not set
# CONFIG_CMD_SLEEP is not set
CONFIG_CMD_EXT4_WRITE=y
CONFIG_OF_CONTROL=y
CONFIG_ENV_OVERWRITE=y
......
......@@ -27,7 +27,7 @@ CONFIG_CMD_USB=y
CONFIG_CMD_TFTPPUT=y
CONFIG_CMD_CACHE=y
CONFIG_CMD_TIME=y
# CONFIG_CMD_MISC is not set
# CONFIG_CMD_SLEEP is not set
CONFIG_CMD_MTDPARTS=y
CONFIG_MTDIDS_DEFAULT="nand0=uniphier-nand.0"
CONFIG_MTDPARTS_DEFAULT="mtdparts=uniphier-nand.0:1m(firmware),-(UBI)"
......
......@@ -28,7 +28,7 @@ CONFIG_CMD_USB=y
CONFIG_CMD_TFTPPUT=y
CONFIG_CMD_CACHE=y
CONFIG_CMD_TIME=y
# CONFIG_CMD_MISC is not set
# CONFIG_CMD_SLEEP is not set
CONFIG_CMD_MTDPARTS=y
CONFIG_MTDIDS_DEFAULT="nand0=uniphier-nand.0"
CONFIG_MTDPARTS_DEFAULT="mtdparts=uniphier-nand.0:1m(firmware),-(UBI)"
......
......@@ -25,7 +25,7 @@ CONFIG_CMD_USB=y
CONFIG_CMD_TFTPPUT=y
CONFIG_CMD_CACHE=y
CONFIG_CMD_TIME=y
# CONFIG_CMD_MISC is not set
# CONFIG_CMD_SLEEP is not set
CONFIG_CMD_MTDPARTS=y
CONFIG_MTDIDS_DEFAULT="nand0=uniphier-nand.0"
CONFIG_MTDPARTS_DEFAULT="mtdparts=uniphier-nand.0:1m(firmware),-(UBI)"
......
......@@ -29,7 +29,7 @@ CONFIG_CMD_USB=y
# CONFIG_CMD_SETEXPR is not set
# CONFIG_CMD_NFS is not set
CONFIG_CMD_CACHE=y
# CONFIG_CMD_MISC is not set
# CONFIG_CMD_SLEEP is not set
CONFIG_CMD_UBI=y
CONFIG_OF_BOARD=y
CONFIG_ENV_IS_IN_FLASH=y
......
......@@ -28,7 +28,7 @@ CONFIG_CMD_ARMFLASH=y
# CONFIG_CMD_SETEXPR is not set
# CONFIG_CMD_NFS is not set
CONFIG_CMD_CACHE=y
# CONFIG_CMD_MISC is not set
# CONFIG_CMD_SLEEP is not set
CONFIG_CMD_UBI=y
# CONFIG_ISO_PARTITION is not set
# CONFIG_EFI_PARTITION is not set
......
......@@ -19,7 +19,7 @@ CONFIG_CMD_MMC=y
# CONFIG_CMD_ITEST is not set
# CONFIG_CMD_SETEXPR is not set
# CONFIG_CMD_NFS is not set
# CONFIG_CMD_MISC is not set
# CONFIG_CMD_SLEEP is not set
CONFIG_CMD_UBI=y
CONFIG_ENV_OVERWRITE=y
CONFIG_ENV_IS_IN_FLASH=y
......
......@@ -18,7 +18,7 @@ CONFIG_CMD_MMC=y
# CONFIG_CMD_ITEST is not set
# CONFIG_CMD_SETEXPR is not set
# CONFIG_CMD_NFS is not set
# CONFIG_CMD_MISC is not set
# CONFIG_CMD_SLEEP is not set
CONFIG_CMD_UBI=y
CONFIG_ENV_OVERWRITE=y
CONFIG_ENV_IS_IN_FLASH=y
......
......@@ -19,7 +19,7 @@ CONFIG_CMD_MMC=y
# CONFIG_CMD_ITEST is not set
# CONFIG_CMD_SETEXPR is not set
# CONFIG_CMD_NFS is not set
# CONFIG_CMD_MISC is not set
# CONFIG_CMD_SLEEP is not set
CONFIG_CMD_UBI=y
CONFIG_ENV_OVERWRITE=y
CONFIG_ENV_IS_IN_FLASH=y
......
......@@ -28,7 +28,7 @@ CONFIG_CMD_PVBLOCK=y
# CONFIG_CMD_SOURCE is not set
# CONFIG_CMD_SETEXPR is not set
# CONFIG_CMD_NET is not set
# CONFIG_CMD_MISC is not set
# CONFIG_CMD_SLEEP is not set
CONFIG_CMD_EXT4=y
CONFIG_CMD_FAT=y
CONFIG_OF_BOARD=y
......
......@@ -47,7 +47,7 @@ CONFIG_SYS_MEMTEST_END=0x00001000
# CONFIG_CMD_ITEST is not set
# CONFIG_CMD_SOURCE is not set
# CONFIG_CMD_SETEXPR is not set
# CONFIG_CMD_MISC is not set
# CONFIG_CMD_SLEEP is not set
# CONFIG_PARTITIONS is not set
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
# CONFIG_NET is not set
......
......@@ -45,7 +45,7 @@ CONFIG_SYS_MEMTEST_END=0x00001000
# CONFIG_CMD_SOURCE is not set
# CONFIG_CMD_SETEXPR is not set
CONFIG_CMD_CACHE=y
# CONFIG_CMD_MISC is not set
# CONFIG_CMD_SLEEP is not set
# CONFIG_PARTITIONS is not set
CONFIG_OF_EMBED=y
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
......
......@@ -44,7 +44,7 @@ CONFIG_BOARD_EARLY_INIT_F=y
# CONFIG_CMD_ITEST is not set
# CONFIG_CMD_SOURCE is not set
# CONFIG_CMD_SETEXPR is not set
# CONFIG_CMD_MISC is not set
# CONFIG_CMD_SLEEP is not set
CONFIG_SPL_OF_CONTROL=y
CONFIG_OF_EMBED=y
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
......
......@@ -45,7 +45,7 @@ CONFIG_SPL_STACK_R=y
# CONFIG_CMD_ITEST is not set
# CONFIG_CMD_SOURCE is not set
# CONFIG_CMD_SETEXPR is not set
# CONFIG_CMD_MISC is not set
# CONFIG_CMD_SLEEP is not set
CONFIG_OF_EMBED=y
CONFIG_ENV_OVERWRITE=y
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
......
......@@ -44,7 +44,7 @@ CONFIG_SPL_STACK_R=y
# CONFIG_CMD_ITEST is not set
# CONFIG_CMD_SOURCE is not set
# CONFIG_CMD_SETEXPR is not set
# CONFIG_CMD_MISC is not set
# CONFIG_CMD_SLEEP is not set
CONFIG_OF_EMBED=y
CONFIG_ENV_OVERWRITE=y
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
......
......@@ -53,7 +53,7 @@ CONFIG_SPL_SPI_LOAD=y
# CONFIG_CMD_ITEST is not set
# CONFIG_CMD_SOURCE is not set
# CONFIG_CMD_SETEXPR is not set
# CONFIG_CMD_MISC is not set
# CONFIG_CMD_SLEEP is not set
CONFIG_OF_EMBED=y
CONFIG_ENV_OVERWRITE=y
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
......
......@@ -18,8 +18,6 @@
#define I2C_ACK 0
#define I2C_NOACK 1
DECLARE_GLOBAL_DATA_PTR;
enum {
PIN_SDA = 0,
PIN_SCL,
......@@ -334,8 +332,6 @@ static int i2c_gpio_drv_probe(struct udevice *dev)
static int i2c_gpio_ofdata_to_platdata(struct udevice *dev)
{
struct i2c_gpio_bus *bus = dev_get_priv(dev);
const void *blob = gd->fdt_blob;
int node = dev_of_offset(dev);
int ret;
ret = gpio_request_list_by_name(dev, "gpios", bus->gpios,
......@@ -343,12 +339,12 @@ static int i2c_gpio_ofdata_to_platdata(struct udevice *dev)
if (ret < 0)
goto error;
bus->udelay = fdtdec_get_int(blob, node, "i2c-gpio,delay-us",
DEFAULT_UDELAY);
bus->udelay = dev_read_u32_default(dev, "i2c-gpio,delay-us",
DEFAULT_UDELAY);
bus->get_sda = i2c_gpio_sda_get;
bus->set_sda = i2c_gpio_sda_set;
if (fdtdec_get_bool(blob, node, "i2c-gpio,scl-output-only"))
if (dev_read_bool(dev, "i2c-gpio,scl-output-only"))
bus->set_scl = i2c_gpio_scl_set_output_only;
else
bus->set_scl = i2c_gpio_scl_set;
......
......@@ -4,17 +4,50 @@
* Written by Jean-Jacques Hiblot <jjhiblot@ti.com>
*/
#include <clk.h>
#include <common.h>
#include <dm.h>
#include <dm/device.h>
#include <dm/device_compat.h>
#include <generic-phy.h>
struct nop_phy_priv {
struct clk_bulk bulk;
};
static int nop_phy_init(struct phy *phy)
{
struct nop_phy_priv *priv = dev_get_priv(phy->dev);
if (CONFIG_IS_ENABLED(CLK))
return clk_enable_bulk(&priv->bulk);
return 0;
}
static int nop_phy_probe(struct udevice *dev)
{
struct nop_phy_priv *priv = dev_get_priv(dev);
int ret;
if (CONFIG_IS_ENABLED(CLK)) {
ret = clk_get_bulk(dev, &priv->bulk);
if (ret < 0) {
dev_err(dev, "Failed to get clk: %d\n", ret);
return ret;
}
}
return 0;
}
static const struct udevice_id nop_phy_ids[] = {
{ .compatible = "nop-phy" },
{ }
};
static struct phy_ops nop_phy_ops = {
.init = nop_phy_init,
};
U_BOOT_DRIVER(nop_phy) = {
......@@ -22,4 +55,6 @@ U_BOOT_DRIVER(nop_phy) = {
.id = UCLASS_PHY,
.of_match = nop_phy_ids,
.ops = &nop_phy_ops,
.probe = nop_phy_probe,
.priv_auto_alloc_size = sizeof(struct nop_phy_priv),
};
......@@ -18,8 +18,6 @@
#define GPIO_REGULATOR_MAX_STATES 2
DECLARE_GLOBAL_DATA_PTR;
struct gpio_regulator_platdata {
struct regulator_common_platdata common;
struct gpio_desc gpio; /* GPIO for regulator voltage control */
......@@ -32,10 +30,8 @@ static int gpio_regulator_ofdata_to_platdata(struct udevice *dev)
struct dm_regulator_uclass_platdata *uc_pdata;
struct gpio_regulator_platdata *dev_pdata;
struct gpio_desc *gpio;
const void *blob = gd->fdt_blob;
int node = dev_of_offset(dev);
int ret, count, i, j;
u32 states_array[8];
u32 states_array[GPIO_REGULATOR_MAX_STATES * 2];
dev_pdata = dev_get_platdata(dev);
uc_pdata = dev_get_uclass_platdata(dev);
......@@ -57,11 +53,20 @@ static int gpio_regulator_ofdata_to_platdata(struct udevice *dev)
if (ret)
debug("regulator gpio - not found! Error: %d", ret);
count = fdtdec_get_int_array_count(blob, node, "states",
states_array, 8);
ret = dev_read_size(dev, "states");
if (ret < 0)
return ret;
if (!count)
return -EINVAL;
count = ret / sizeof(states_array[0]);
if (count > ARRAY_SIZE(states_array)) {
debug("regulator gpio - to many states (%d > %d)",
count / 2, GPIO_REGULATOR_MAX_STATES);
count = ARRAY_SIZE(states_array);
}
ret = dev_read_u32_array(dev, "states", states_array, count);
if (ret < 0)
return ret;
for (i = 0, j = 0; i < count; i += 2) {
dev_pdata->voltages[j] = states_array[i];
......
......@@ -264,6 +264,7 @@ struct dm_regulator_ops {
int (*set_mode)(struct udevice *dev, int mode_id);
};
#if CONFIG_IS_ENABLED(DM_REGULATOR)
/**
* regulator_mode: returns a pointer to the array of regulator mode info
*
......@@ -524,5 +525,118 @@ int regulator_get_by_platname(const char *platname, struct udevice **devp);
*/
int device_get_supply_regulator(struct udevice *dev, const char *supply_name,
struct udevice **devp);
#else
static inline int regulator_mode(struct udevice *dev, struct dm_regulator_mode **modep)
{
return -ENOSYS;
}
static inline int regulator_get_value(struct udevice *dev)
{
return -ENOSYS;
}
static inline int regulator_set_value(struct udevice *dev, int uV)
{
return -ENOSYS;
}
static inline int regulator_set_suspend_value(struct udevice *dev, int uV)
{
return -ENOSYS;
}
static inline int regulator_get_suspend_value(struct udevice *dev)
{
return -ENOSYS;
}
static inline int regulator_set_value_force(struct udevice *dev, int uV)
{
return -ENOSYS;
}
static inline int regulator_get_current(struct udevice *dev)
{
return -ENOSYS;
}
static inline int regulator_set_current(struct udevice *dev, int uA)
{
return -ENOSYS;
}
static inline int regulator_get_enable(struct udevice *dev)
{
return -ENOSYS;
}
static inline int regulator_set_enable(struct udevice *dev, bool enable)
{
return -ENOSYS;
}
static inline int regulator_set_enable_if_allowed(struct udevice *dev, bool enable)
{
return -ENOSYS;
}
static inline int regulator_set_suspend_enable(struct udevice *dev, bool enable)
{
return -ENOSYS;
}
static inline int regulator_get_suspend_enable(struct udevice *dev)
{
return -ENOSYS;
}
static inline int regulator_get_mode(struct udevice *dev)
{
return -ENOSYS;
}
static inline int regulator_set_mode(struct udevice *dev, int mode_id)
{
return -ENOSYS;
}
static inline int regulators_enable_boot_on(bool verbose)
{
return -ENOSYS;
}
static inline int regulator_autoset(struct udevice *dev)
{
return -ENOSYS;
}
static inline int regulator_autoset_by_name(const char *platname, struct udevice **devp)
{
return -ENOSYS;
}
static inline int regulator_list_autoset(const char *list_platname[], struct udevice *list_devp[],
bool verbose)
{
return -ENOSYS;
}
static inline int regulator_get_by_devname(const char *devname, struct udevice **devp)
{
return -ENOSYS;
}
static inline int regulator_get_by_platname(const char *platname, struct udevice **devp)
{
return -ENOSYS;
}
static inline int device_get_supply_regulator(struct udevice *dev, const char *supply_name,
struct udevice **devp)
{
return -ENOSYS;
}
#endif
#endif /* _INCLUDE_REGULATOR_H_ */
......@@ -189,7 +189,7 @@ static void post_get_env_flags(int *test_flags)
last = 0;
name = list;
while (!last) {
while (*name && *name == ' ')
while (*name == ' ')
name++;
if (*name == 0)
break;
......
......@@ -7,6 +7,7 @@ obj-$(CONFIG_EFI_LOADER) += efi_device_path.o
obj-$(CONFIG_EFI_SECURE_BOOT) += efi_image_region.o
obj-y += hexdump.o
obj-y += lmb.o
obj-y += test_print.o
obj-$(CONFIG_SSCANF) += sscanf.o
obj-y += string.o
obj-$(CONFIG_ERRNO_STR) += test_errno_str.o
......
// SPDX-License-Identifier: GPL-2.0+
/*
* Tests for print functions
*
* Copyright 2020, Heinrich Schuchadt <xypron.glpk@gmx.de>
*/
#include <common.h>
#include <command.h>
#include <display_options.h>
#include <test/lib.h>
#include <test/test.h>
#include <test/ut.h>
DECLARE_GLOBAL_DATA_PTR;
static int test_print_freq(struct unit_test_state *uts,
uint64_t freq, char *expected)
{
console_record_reset_enable();
print_freq(freq, ";\n");
gd->flags &= ~GD_FLG_RECORD;
console_record_readline(uts->actual_str, sizeof(uts->actual_str));
ut_asserteq_str(expected, uts->actual_str);
ut_assertok(ut_check_console_end(uts));
return 0;
}
static int lib_test_print_freq(struct unit_test_state *uts)
{
ut_assertok(test_print_freq(uts, 321, "321 Hz;"));
ut_assertok(test_print_freq(uts, 4321, "4.32 kHz;"));
ut_assertok(test_print_freq(uts, 54321, "54.32 kHz;"));
ut_assertok(test_print_freq(uts, 654321, "654.32 kHz;"));
ut_assertok(test_print_freq(uts, 7654321, "7.66 MHz;"));
ut_assertok(test_print_freq(uts, 87654321, "87.66 MHz;"));
ut_assertok(test_print_freq(uts, 987654321, "987.66 MHz;"));
ut_assertok(test_print_freq(uts, 1987654321, "1.99 GHz;"));
ut_assertok(test_print_freq(uts, 54321987654321, "54321.99 GHz;"));
return 0;
}
LIB_TEST(lib_test_print_freq, 0);
static int test_print_size(struct unit_test_state *uts,
uint64_t freq, char *expected)
{
console_record_reset_enable();
print_size(freq, ";\n");
gd->flags &= ~GD_FLG_RECORD;
console_record_readline(uts->actual_str, sizeof(uts->actual_str));
ut_asserteq_str(expected, uts->actual_str);
ut_assertok(ut_check_console_end(uts));
return 0;
}
static int lib_test_print_size(struct unit_test_state *uts)
{
ut_assertok(test_print_size(uts, 321, "321 Bytes;"));
ut_assertok(test_print_size(uts, 4321, "4.2 KiB;"));
ut_assertok(test_print_size(uts, 54321, "53 KiB;"));
ut_assertok(test_print_size(uts, 654321, "639 KiB;"));
ut_assertok(test_print_size(uts, 7654321, "7.3 MiB;"));
ut_assertok(test_print_size(uts, 87654321, "83.6 MiB;"));
ut_assertok(test_print_size(uts, 987654321, "941.9 MiB;"));
ut_assertok(test_print_size(uts, 1987654321, "1.9 GiB;"));
ut_assertok(test_print_size(uts, 54321987654321, "49.4 TiB;"));
return 0;
}
LIB_TEST(lib_test_print_size, 0);
......@@ -74,7 +74,7 @@ class TestFsExt(object):
'%sload host 0:0 %x /%s' % (fs_type, ADDR, MIN_FILE),
'%swrite host 0:0 %x /dir1/none/%s.w3 $filesize'
% (fs_type, ADDR, MIN_FILE)])
assert('Unable to write "/dir1/none/' in ''.join(output))
assert('Unable to write file /dir1/none/' in ''.join(output))
assert_fs_integrity(fs_type, fs_img)
def test_fs_ext4(self, u_boot_console, fs_obj_ext):
......@@ -216,7 +216,7 @@ class TestFsExt(object):
output = u_boot_console.run_command(
'%swrite host 0:0 %x /dir1/%s.w8 0x1400 %x'
% (fs_type, ADDR, MIN_FILE, 0x100000 + 0x1400))
assert('Unable to write "/dir1' in output)
assert('Unable to write file /dir1' in output)
assert_fs_integrity(fs_type, fs_img)
def test_fs_ext9(self, u_boot_console, fs_obj_ext):
......@@ -231,7 +231,7 @@ class TestFsExt(object):
'%sload host 0:0 %x /%s' % (fs_type, ADDR, MIN_FILE),
'%swrite host 0:0 %x /dir1/%s.w9 0x1400 0x1400'
% (fs_type, ADDR, MIN_FILE)])
assert('Unable to write "/dir1' in ''.join(output))
assert('Unable to write file /dir1' in ''.join(output))
assert_fs_integrity(fs_type, fs_img)
def test_fs_ext10(self, u_boot_console, fs_obj_ext):
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册