* [PATCH 2/8] RISC-V: virt: riscvemu: set better hostname/model
2025-08-14 20:27 [PATCH 1/8] common: fix outdated barebox_set_hostname comment Ahmad Fatoum
@ 2025-08-14 20:27 ` Ahmad Fatoum
2025-08-14 20:28 ` [PATCH 3/8] netconsole: bump down ip/port not set messages to info Ahmad Fatoum
` (5 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Ahmad Fatoum @ 2025-08-14 20:27 UTC (permalink / raw)
To: barebox; +Cc: Ahmad Fatoum
The hostname and model currently come from the device tree:
"riscvemu-bar_dev" and "ucbbar,riscvemu-bare", respectively.
The former is now warned about, because it contains an underscore and
the latter is not that descriptive.
As the device tree is supplied by the emulator, add an override to board
code. We differntiate between riscv32 and riscv64 in the hostname string
as that information can be relevant for choosing the correct kernel.
Signed-off-by: Ahmad Fatoum <a.fatoum@barebox.org>
---
arch/riscv/boards/riscvemu/board.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/arch/riscv/boards/riscvemu/board.c b/arch/riscv/boards/riscvemu/board.c
index bf5a05dd6a4d..be1d0c162961 100644
--- a/arch/riscv/boards/riscvemu/board.c
+++ b/arch/riscv/boards/riscvemu/board.c
@@ -42,6 +42,13 @@ static int riscvemu_probe(struct device *dev)
struct riscvemu_priv *priv;
u64 start;
+ if (IS_ENABLED(CONFIG_ARCH_RV32I))
+ barebox_set_hostname("riscvemu32");
+ else
+ barebox_set_hostname("riscvemu64");
+
+ barebox_set_model("RISC-V Emulator");
+
of_overlay_apply_dtbo(dev->of_node, __dtbo_riscvemu_sram_start);
/* of_probe() will happen later at of_populate_initcall */
--
2.39.5
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 3/8] netconsole: bump down ip/port not set messages to info
2025-08-14 20:27 [PATCH 1/8] common: fix outdated barebox_set_hostname comment Ahmad Fatoum
2025-08-14 20:27 ` [PATCH 2/8] RISC-V: virt: riscvemu: set better hostname/model Ahmad Fatoum
@ 2025-08-14 20:28 ` Ahmad Fatoum
2025-08-14 20:28 ` [PATCH 4/8] RISC-V: cpuinfo: enable structured I/O Ahmad Fatoum
` (4 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Ahmad Fatoum @ 2025-08-14 20:28 UTC (permalink / raw)
To: barebox; +Cc: Ahmad Fatoum
Net consoles may be opened automatically depending on console activation
options and it's annoying for them to yield an error message.
Bump the message down to info instead.
Signed-off-by: Ahmad Fatoum <a.fatoum@barebox.org>
---
net/netconsole.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/net/netconsole.c b/net/netconsole.c
index c93a6cc5c7be..28fd0e98ec41 100644
--- a/net/netconsole.c
+++ b/net/netconsole.c
@@ -97,12 +97,12 @@ static int nc_open(struct console_device *cdev)
struct nc_priv, cdev);
if (!priv->port) {
- pr_err("port not set\n");
+ pr_info("port not set\n");
return -EINVAL;
}
if (!priv->ip) {
- pr_err("ip not set\n");
+ pr_info("ip not set\n");
return -EINVAL;
}
--
2.39.5
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 4/8] RISC-V: cpuinfo: enable structured I/O
2025-08-14 20:27 [PATCH 1/8] common: fix outdated barebox_set_hostname comment Ahmad Fatoum
2025-08-14 20:27 ` [PATCH 2/8] RISC-V: virt: riscvemu: set better hostname/model Ahmad Fatoum
2025-08-14 20:28 ` [PATCH 3/8] netconsole: bump down ip/port not set messages to info Ahmad Fatoum
@ 2025-08-14 20:28 ` Ahmad Fatoum
2025-08-14 20:28 ` [PATCH 5/8] commands: bfetch: add RISC-V cpu/firmware info Ahmad Fatoum
` (3 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Ahmad Fatoum @ 2025-08-14 20:28 UTC (permalink / raw)
To: barebox; +Cc: Ahmad Fatoum
This will allow us to easily consume the information in the bfetch
command.
Signed-off-by: Ahmad Fatoum <a.fatoum@barebox.org>
---
arch/riscv/lib/cpuinfo.c | 43 ++++++++++++++++++++++++----------------
1 file changed, 26 insertions(+), 17 deletions(-)
diff --git a/arch/riscv/lib/cpuinfo.c b/arch/riscv/lib/cpuinfo.c
index 2d9cee2a6270..f984fd68a9e8 100644
--- a/arch/riscv/lib/cpuinfo.c
+++ b/arch/riscv/lib/cpuinfo.c
@@ -3,14 +3,15 @@
#include <command.h>
#include <asm/sbi.h>
#include <asm/system.h>
+#include <structio.h>
static const char *implementations[] = {
- [0] = "\"Berkeley Boot Loader (BBL)\" ",
- [1] = "\"OpenSBI\" ",
- [2] = "\"Xvisor\" ",
- [3] = "\"KVM\" ",
- [4] = "\"RustSBI\" ",
- [5] = "\"Diosix\" ",
+ [0] = "Berkeley Boot Loader (BBL)",
+ [1] = "OpenSBI",
+ [2] = "Xvisor",
+ [3] = "KVM",
+ [4] = "RustSBI",
+ [5] = "Diosix",
};
static const char *modes[] = {
@@ -22,22 +23,22 @@ static const char *modes[] = {
static int do_cpuinfo(int argc, char *argv[])
{
- const char *implementation = "";
+ const char *implementation = NULL;
enum riscv_mode mode;
unsigned long impid;
mode = riscv_mode() & RISCV_MODE_MASK;
- printf("%s barebox for %s-Mode\n",
- IS_ENABLED(CONFIG_ARCH_RV64I) ? "RV64I" : "RV32I",
- modes[mode]);
+ stprintf("Architecture", "%s",
+ IS_ENABLED(CONFIG_ARCH_RV64I) ? "RV64I" : "RV32I");
+ stprintf("Mode", "%s", modes[mode]);
switch (mode) {
case RISCV_S_MODE:
- printf("Hart ID=%lu\n", riscv_hartid());
+ stprintf("Hart ID", "%lu", riscv_hartid());
if (!IS_ENABLED(CONFIG_RISCV_SBI))
break;
- printf("SBI specification v%lu.%lu detected\n",
+ stprintf("SBI version", "v%lu.%lu",
sbi_major_version(), sbi_minor_version());
if (sbi_spec_is_0_1())
@@ -47,12 +48,20 @@ static int do_cpuinfo(int argc, char *argv[])
if (impid < ARRAY_SIZE(implementations))
implementation = implementations[impid];
- printf("SBI implementation ID=0x%lx %sVersion=0x%lx\n",
- impid, implementation, __sbi_base_ecall(SBI_EXT_BASE_GET_IMP_VERSION));
+ stprintf("SBI implementation ID", "0x%lx", impid);
+ if (implementation)
+ stprintf("SBI implementation name", "%s", implementation);
- printf("SBI Machine VENDORID=0x%lx ARCHID=0x%lx MIMPID=0x%lx\n",
- __sbi_base_ecall(SBI_EXT_BASE_GET_MVENDORID),
- __sbi_base_ecall(SBI_EXT_BASE_GET_MARCHID),
+ stprintf("SBI implementation version", "0x%lx",
+ __sbi_base_ecall(SBI_EXT_BASE_GET_IMP_VERSION));
+
+ stprintf("SBI machine VENDORID", "0x%lx",
+ __sbi_base_ecall(SBI_EXT_BASE_GET_MVENDORID));
+
+ stprintf("SBI machine ARCHID", "0x%lx",
+ __sbi_base_ecall(SBI_EXT_BASE_GET_MARCHID));
+
+ stprintf("SBI machine MIMPID", "0x%lx",
__sbi_base_ecall(SBI_EXT_BASE_GET_MIMPID));
break;
default:
--
2.39.5
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 5/8] commands: bfetch: add RISC-V cpu/firmware info
2025-08-14 20:27 [PATCH 1/8] common: fix outdated barebox_set_hostname comment Ahmad Fatoum
` (2 preceding siblings ...)
2025-08-14 20:28 ` [PATCH 4/8] RISC-V: cpuinfo: enable structured I/O Ahmad Fatoum
@ 2025-08-14 20:28 ` Ahmad Fatoum
2025-08-14 20:28 ` [PATCH 6/8] RISC-V: riscvemu: update configs for web demo Ahmad Fatoum
` (2 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Ahmad Fatoum @ 2025-08-14 20:28 UTC (permalink / raw)
To: barebox; +Cc: Ahmad Fatoum
The RISC-V cpuinfo command has been switch to support structured I/O.
Use that to print CPU and SBI (RISC-V equivalent to ARM secure monitor)
version information.
Signed-off-by: Ahmad Fatoum <a.fatoum@barebox.org>
---
commands/bfetch.c | 45 +++++++++++++++++++++++++++++++++++----------
1 file changed, 35 insertions(+), 10 deletions(-)
diff --git a/commands/bfetch.c b/commands/bfetch.c
index c201c66b09ea..a44d5a000667 100644
--- a/commands/bfetch.c
+++ b/commands/bfetch.c
@@ -232,9 +232,9 @@ static void print_barebox_info(unsigned *line)
print_line("Architecture", "%s", CONFIG_ARCH_LINUX_NAME);
}
-static void print_cpu_mem_info(unsigned *line)
+static struct bobject *print_cpu_mem_info(unsigned *line)
{
- struct bobject *bret;
+ struct bobject *bret = NULL;
struct memory_bank *mem;
unsigned long memsize = 0;
int nbanks = 0;
@@ -250,8 +250,13 @@ static void print_cpu_mem_info(unsigned *line)
bobject_get_param(bret, "exception_level"));
else if (IS_ENABLED(CONFIG_ARM32))
print_line("CPU", "%s", bobject_get_param(bret, "core"));
-
- bobject_free(bret);
+ }
+ } else if (IS_ENABLED(CONFIG_RISCV)) {
+ ret = structio_run_command(&bret, "cpuinfo");
+ if (!ret) {
+ print_line("CPU", "%s in %s-Mode",
+ bobject_get_param(bret, "Architecture"),
+ bobject_get_param(bret, "Mode"));
}
} else if (IS_ENABLED(CONFIG_GLOBALVAR)) {
print_line("CPU", "%s-endian", globalvar_get("endianness"));
@@ -268,6 +273,8 @@ static void print_cpu_mem_info(unsigned *line)
else if (nbanks == 1)
print_line("Memory", "%s",
size_human_readable(memsize));
+
+ return bret;
}
static void print_shell_console(unsigned *line)
@@ -635,11 +642,12 @@ static int tee_devinfo(struct bobject **bret)
return -ENODEV;
}
-static void print_firmware(unsigned *line)
+static void print_firmware(unsigned *line, struct bobject *cpuinfo)
{
const char *psci_version;
struct bobject *bret;
bool have_scmi = false, have_tee = false;
+ const char *sbi_version = NULL;
psci_version = getenv("psci.version");
@@ -647,8 +655,11 @@ static void print_firmware(unsigned *line)
have_scmi = true;
if (tee_devinfo(&bret) == 0)
have_tee = true;
+ if (IS_ENABLED(CONFIG_RISCV_SBI))
+ sbi_version = bobject_get_param(cpuinfo, "SBI version");
- if (!psci_version && !have_scmi && !have_tee && !efi_is_payload())
+ if (!psci_version && !have_scmi && !have_tee && !efi_is_payload() &&
+ !sbi_version)
return;
print_line("Firmware", "");
@@ -660,7 +671,19 @@ static void print_firmware(unsigned *line)
if (have_scmi)
print_line(" SCMI", "yes");
- /* TODO: RISC-V SBI version */
+ if (sbi_version) {
+ const char *imp = bobject_get_param(cpuinfo, "SBI implementation name");
+
+ if (!imp)
+ imp = bobject_get_param(cpuinfo, "SBI implementation ID");
+
+ if (imp) {
+ print_line(" SBI", "%s by %s %s", sbi_version, imp,
+ bobject_get_param(cpuinfo, "SBI implementation version") ?: "");
+ } else {
+ print_line(" SBI", "%s", sbi_version);
+ }
+ }
if (have_tee) {
const char *name = bobject_get_param(bret, "impl.name");
@@ -680,11 +703,13 @@ static void print_firmware(unsigned *line)
dev_get_param(&efi_bus.dev, "fw_vendor"),
dev_get_param(&efi_bus.dev, "fw_revision"));
}
+
+ bobject_free(cpuinfo);
}
static int do_bfetch(int argc, char *argv[])
{
- struct bobject *bret;
+ struct bobject *bret, *cpuinfo;
unsigned _line, *line = &_line;
int opt;
int ret;
@@ -703,7 +728,7 @@ static int do_bfetch(int argc, char *argv[])
print_header(line);
print_barebox_info(line);
- print_cpu_mem_info(line);
+ cpuinfo = print_cpu_mem_info(line);
ret = structio_run_command(&bret, "uptime");
if (!ret) {
@@ -725,7 +750,7 @@ static int do_bfetch(int argc, char *argv[])
print_devices_drivers(line);
print_storage(line);
print_env(line);
- print_firmware(line);
+ print_firmware(line, cpuinfo);
while (logo(line))
putchar('\n');
--
2.39.5
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 6/8] RISC-V: riscvemu: update configs for web demo
2025-08-14 20:27 [PATCH 1/8] common: fix outdated barebox_set_hostname comment Ahmad Fatoum
` (3 preceding siblings ...)
2025-08-14 20:28 ` [PATCH 5/8] commands: bfetch: add RISC-V cpu/firmware info Ahmad Fatoum
@ 2025-08-14 20:28 ` Ahmad Fatoum
2025-08-14 20:28 ` [PATCH 7/8] RISC-V: rv64i_defconfig: enable Virt I/O Ahmad Fatoum
2025-08-14 20:28 ` [PATCH 8/8] poller: allow suppressing overtime warnings Ahmad Fatoum
6 siblings, 0 replies; 8+ messages in thread
From: Ahmad Fatoum @ 2025-08-14 20:28 UTC (permalink / raw)
To: barebox; +Cc: Ahmad Fatoum
For showing off barebox functionality, enable a number of extra options,
most of them added after the last time these configs were updated.
Signed-off-by: Ahmad Fatoum <a.fatoum@barebox.org>
---
arch/riscv/configs/rv64i_defconfig | 72 ++++++++++++++++-------------
arch/riscv/configs/virt32_defconfig | 37 ++++++++++++---
2 files changed, 72 insertions(+), 37 deletions(-)
diff --git a/arch/riscv/configs/rv64i_defconfig b/arch/riscv/configs/rv64i_defconfig
index 12ced940c5c4..f08c60766a77 100644
--- a/arch/riscv/configs/rv64i_defconfig
+++ b/arch/riscv/configs/rv64i_defconfig
@@ -1,20 +1,18 @@
CONFIG_ARCH_RV64I=y
-CONFIG_SOC_ALLWINNER_SUN20I=y
-CONFIG_SOC_SIFIVE=y
-CONFIG_SOC_STARFIVE=y
CONFIG_SOC_VIRT=y
-CONFIG_BOARD_ALLWINNER_D1=y
+CONFIG_SOC_SIFIVE=y
+CONFIG_BOARD_HIFIVE=y
+CONFIG_SOC_STARFIVE=y
CONFIG_BOARD_BEAGLEV=y
CONFIG_BOARD_BEAGLEV_BETA=y
-CONFIG_BOARD_HIFIVE=y
-CONFIG_BOARD_GENERIC_DT=y
+CONFIG_SOC_ALLWINNER_SUN20I=y
CONFIG_RISCV_OPTIMZED_STRING_FUNCTIONS=y
+CONFIG_RISCV_UNWIND=y
+CONFIG_NAME="rv64i_defconfig"
CONFIG_STACK_SIZE=0x20000
CONFIG_MALLOC_SIZE=0x0
-CONFIG_MALLOC_TLSF=y
CONFIG_KALLSYMS=y
CONFIG_RELOCATABLE=y
-CONFIG_NAME="rv64i_defconfig"
CONFIG_PANIC_HANG=y
CONFIG_HUSH_FANCY_PROMPT=y
CONFIG_CMDLINE_EDITING=y
@@ -22,31 +20,44 @@ CONFIG_AUTO_COMPLETE=y
CONFIG_MENU=y
CONFIG_BOOTM_VERBOSE=y
CONFIG_BOOTM_INITRD=y
-CONFIG_SYSTEM_PARTITIONS=y
CONFIG_BLSPEC=y
+CONFIG_SYSTEM_PARTITIONS=y
CONFIG_CONSOLE_ACTIVATE_ALL=y
CONFIG_CONSOLE_ALLOW_COLOR=y
CONFIG_PBL_CONSOLE=y
CONFIG_PARTITION_DISK_EFI=y
CONFIG_DEFAULT_ENVIRONMENT_GENERIC_NEW=y
CONFIG_DEFAULT_ENVIRONMENT_GENERIC_NEW_IKCONFIG=y
+# CONFIG_BTHREAD is not set
CONFIG_STATE=y
CONFIG_STATE_CRYPTO=y
CONFIG_BOOTCHOOSER=y
CONFIG_RESET_SOURCE=y
CONFIG_MACHINE_ID=y
+CONFIG_CMD_TUTORIAL=y
+CONFIG_CMD_CLASS=y
+CONFIG_CMD_DEVLOOKUP=y
+CONFIG_CMD_DEVUNBIND=y
CONFIG_CMD_DMESG=y
CONFIG_LONGHELP=y
CONFIG_CMD_IOMEM=y
CONFIG_CMD_IMD=y
CONFIG_CMD_MEMINFO=y
+CONFIG_CMD_BLKSTATS=y
+CONFIG_CMD_NVMEM=y
CONFIG_CMD_BFETCH=y
+CONFIG_CMD_MMC=y
+CONFIG_CMD_MMC_EXTCSD=y
CONFIG_CMD_POLLER=y
CONFIG_CMD_SLICE=y
CONFIG_CMD_GO=y
CONFIG_CMD_LOADY=y
CONFIG_CMD_RESET=y
CONFIG_CMD_BOOTCHOOSER=y
+CONFIG_CMD_PARTITION=y
+CONFIG_CMD_FINDMNT=y
+CONFIG_CMD_PARTED=y
+CONFIG_CMD_CREATENV=y
CONFIG_CMD_EXPORT=y
CONFIG_CMD_PRINTENV=y
CONFIG_CMD_MAGICVAR=y
@@ -59,21 +70,31 @@ CONFIG_CMD_MD5SUM=y
CONFIG_CMD_SHA1SUM=y
CONFIG_CMD_SHA256SUM=y
CONFIG_CMD_UNCOMPRESS=y
+CONFIG_CMD_LET=y
CONFIG_CMD_MSLEEP=y
+CONFIG_CMD_READF=y
CONFIG_CMD_SLEEP=y
CONFIG_CMD_DHCP=y
CONFIG_CMD_MIITOOL=y
CONFIG_CMD_PING=y
+CONFIG_CMD_IP=y
+CONFIG_CMD_ETHLOG=y
CONFIG_CMD_ECHO_E=y
CONFIG_CMD_EDIT=y
+CONFIG_CMD_MENU=y
+CONFIG_CMD_MENU_MANAGEMENT=y
+CONFIG_CMD_MENUTREE=y
CONFIG_CMD_SPLASH=y
CONFIG_CMD_FBTEST=y
CONFIG_CMD_READLINE=y
CONFIG_CMD_TIMEOUT=y
CONFIG_CMD_MEMTEST=y
+CONFIG_CMD_MEMTESTER=y
CONFIG_CMD_MM=y
CONFIG_CMD_CLK=y
CONFIG_CMD_DETECT=y
+CONFIG_CMD_TRUNCATE=y
+CONFIG_CMD_SYNC=y
CONFIG_CMD_FLASH=y
CONFIG_CMD_GPIO=y
CONFIG_CMD_I2C=y
@@ -82,6 +103,8 @@ CONFIG_CMD_SPI=y
CONFIG_CMD_WD=y
CONFIG_CMD_2048=y
CONFIG_CMD_BAREBOX_UPDATE=y
+CONFIG_CMD_KALLSYMS=y
+CONFIG_CMD_OF_COMPATIBLE=y
CONFIG_CMD_OF_DIFF=y
CONFIG_CMD_OF_NODE=y
CONFIG_CMD_OF_PROPERTY=y
@@ -90,25 +113,21 @@ CONFIG_CMD_OF_FIXUP_STATUS=y
CONFIG_CMD_OF_OVERLAY=y
CONFIG_CMD_OFTREE=y
CONFIG_CMD_TIME=y
-CONFIG_CMD_STATE=y
+CONFIG_CMD_WATCH=y
CONFIG_CMD_DHRYSTONE=y
+CONFIG_CMD_SEED=y
CONFIG_NET=y
CONFIG_NET_NETCONSOLE=y
CONFIG_NET_FASTBOOT=y
CONFIG_NET_9P=y
-CONFIG_NET_9P_VIRTIO=y
CONFIG_OF_BAREBOX_DRIVERS=y
CONFIG_OF_BAREBOX_ENV_IN_FS=y
CONFIG_DRIVER_SERIAL_NS16550=y
-CONFIG_VIRTIO_CONSOLE=y
CONFIG_SERIAL_SIFIVE=y
-CONFIG_DRIVER_NET_MACB=y
-CONFIG_DRIVER_NET_DESIGNWARE=y
CONFIG_DRIVER_NET_DESIGNWARE_GENERIC=y
CONFIG_DRIVER_NET_DESIGNWARE_STARFIVE=y
-CONFIG_DRIVER_NET_VIRTIO=y
+CONFIG_DRIVER_NET_MACB=y
CONFIG_MICREL_PHY=y
-CONFIG_SPI_MEM=y
CONFIG_DRIVER_SPI_GPIO=y
CONFIG_SPI_SIFIVE=y
CONFIG_I2C=y
@@ -121,36 +140,30 @@ CONFIG_MTD_M25P80=y
CONFIG_MTD_MTDRAM=y
CONFIG_DRIVER_CFI=y
CONFIG_DRIVER_CFI_BANK_WIDTH_8=y
-CONFIG_DISK=y
-CONFIG_DISK_WRITE=y
-CONFIG_VIRTIO_BLK=y
CONFIG_VIDEO=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_DRIVER_VIDEO_BOCHS_PCI=y
CONFIG_DRIVER_VIDEO_SIMPLEFB_CLIENT=y
+# CONFIG_SOUND is not set
CONFIG_MCI=y
-CONFIG_MCI_SPI=y
CONFIG_MCI_DW=y
+CONFIG_MCI_SPI=y
CONFIG_CLOCKSOURCE_DUMMY_RATE=60000
-CONFIG_STATE_DRV=y
-CONFIG_EEPROM_AT24=y
-CONFIG_VIRTIO_INPUT=y
CONFIG_SRAM=y
CONFIG_STARFIVE_PWRSEQ=y
CONFIG_LED=y
CONFIG_LED_GPIO=y
CONFIG_LED_GPIO_OF=y
CONFIG_LED_TRIGGERS=y
+CONFIG_EEPROM_AT24=y
CONFIG_WATCHDOG=y
CONFIG_STARFIVE_WDT=y
CONFIG_HWRNG=y
-CONFIG_HW_RANDOM_VIRTIO=y
-CONFIG_GPIO_SIFIVE=y
CONFIG_HW_RANDOM_STARFIVE=y
CONFIG_GPIO_GENERIC_PLATFORM=y
+CONFIG_GPIO_SIFIVE=y
CONFIG_GPIO_STARFIVE=y
CONFIG_PINCTRL_SINGLE=y
-CONFIG_NVMEM=y
CONFIG_NVMEM_RMEM=y
CONFIG_STARFIVE_OTP=y
CONFIG_PCI_ECAM_GENERIC=y
@@ -159,10 +172,9 @@ CONFIG_SYSCON_REBOOT_MODE=y
CONFIG_NVMEM_REBOOT_MODE=y
CONFIG_POWER_RESET_SYSCON=y
CONFIG_POWER_RESET_SYSCON_POWEROFF=y
-CONFIG_POWER_RESET_HTIF_POWEROFF=y
CONFIG_POWER_RESET_GPIO=y
CONFIG_POWER_RESET_GPIO_RESTART=y
-CONFIG_VIRTIO_MMIO=y
+CONFIG_POWER_RESET_HTIF_POWEROFF=y
# CONFIG_VIRTIO_MENU is not set
CONFIG_FS_EXT4=y
CONFIG_FS_TFTP=y
@@ -171,18 +183,16 @@ CONFIG_9P_FS=y
CONFIG_9P_FS_WRITE=y
CONFIG_FS_FAT=y
CONFIG_FS_FAT_WRITE=y
-CONFIG_FS_FAT_LFN=y
CONFIG_FS_UIMAGEFS=y
CONFIG_FS_PSTORE=y
CONFIG_FS_SQUASHFS=y
+CONFIG_DIGEST_CRC32_GENERIC=y
CONFIG_ZLIB=y
CONFIG_BZLIB=y
-CONFIG_LZ4_DECOMPRESS=y
CONFIG_ZSTD_DECOMPRESS=y
CONFIG_XZ_DECOMPRESS=y
CONFIG_BASE64=y
CONFIG_LZO_DECOMPRESS=y
-CONFIG_DIGEST_CRC32_GENERIC=y
CONFIG_IMD_TARGET=y
CONFIG_BAREBOXENV_TARGET=y
CONFIG_BAREBOXCRC32_TARGET=y
diff --git a/arch/riscv/configs/virt32_defconfig b/arch/riscv/configs/virt32_defconfig
index ac2eb1c94305..982704df6837 100644
--- a/arch/riscv/configs/virt32_defconfig
+++ b/arch/riscv/configs/virt32_defconfig
@@ -1,12 +1,12 @@
CONFIG_SOC_VIRT=y
CONFIG_RISCV_OPTIMZED_STRING_FUNCTIONS=y
+CONFIG_RISCV_UNWIND=y
+CONFIG_NAME="virt32_defconfig"
CONFIG_STACK_SIZE=0x20000
CONFIG_MALLOC_SIZE=0x0
-CONFIG_MALLOC_TLSF=y
CONFIG_KALLSYMS=y
CONFIG_RELOCATABLE=y
CONFIG_PANIC_HANG=y
-CONFIG_NAME="virt32_defconfig"
CONFIG_HUSH_FANCY_PROMPT=y
CONFIG_CMDLINE_EDITING=y
CONFIG_AUTO_COMPLETE=y
@@ -20,16 +20,24 @@ CONFIG_PBL_CONSOLE=y
CONFIG_PARTITION_DISK_EFI=y
CONFIG_DEFAULT_ENVIRONMENT_GENERIC_NEW=y
CONFIG_DEFAULT_ENVIRONMENT_GENERIC_NEW_IKCONFIG=y
+# CONFIG_BTHREAD is not set
CONFIG_STATE=y
CONFIG_STATE_CRYPTO=y
CONFIG_BOOTCHOOSER=y
CONFIG_RESET_SOURCE=y
CONFIG_MACHINE_ID=y
+CONFIG_CMD_TUTORIAL=y
+CONFIG_CMD_CLASS=y
+CONFIG_CMD_DEVLOOKUP=y
+CONFIG_CMD_DEVUNBIND=y
CONFIG_CMD_DMESG=y
CONFIG_LONGHELP=y
CONFIG_CMD_IOMEM=y
CONFIG_CMD_IMD=y
CONFIG_CMD_MEMINFO=y
+CONFIG_CMD_BLKSTATS=y
+CONFIG_CMD_NVMEM=y
+CONFIG_CMD_VARINFO=y
CONFIG_CMD_BFETCH=y
CONFIG_CMD_POLLER=y
CONFIG_CMD_SLICE=y
@@ -37,6 +45,9 @@ CONFIG_CMD_GO=y
CONFIG_CMD_LOADY=y
CONFIG_CMD_RESET=y
CONFIG_CMD_BOOTCHOOSER=y
+CONFIG_CMD_PARTITION=y
+CONFIG_CMD_FINDMNT=y
+CONFIG_CMD_PARTED=y
CONFIG_CMD_EXPORT=y
CONFIG_CMD_PRINTENV=y
CONFIG_CMD_MAGICVAR=y
@@ -45,23 +56,34 @@ CONFIG_CMD_SAVEENV=y
CONFIG_CMD_CMP=y
CONFIG_CMD_FILETYPE=y
CONFIG_CMD_LN=y
+CONFIG_CMD_STAT=y
CONFIG_CMD_MD5SUM=y
CONFIG_CMD_SHA1SUM=y
CONFIG_CMD_SHA256SUM=y
+CONFIG_CMD_LET=y
CONFIG_CMD_MSLEEP=y
+CONFIG_CMD_READF=y
CONFIG_CMD_SLEEP=y
CONFIG_CMD_DHCP=y
CONFIG_CMD_PING=y
+CONFIG_CMD_IP=y
+CONFIG_CMD_ETHLOG=y
CONFIG_CMD_ECHO_E=y
CONFIG_CMD_EDIT=y
+CONFIG_CMD_MENU=y
+CONFIG_CMD_MENU_MANAGEMENT=y
+CONFIG_CMD_MENUTREE=y
CONFIG_CMD_SPLASH=y
CONFIG_CMD_FBTEST=y
CONFIG_CMD_READLINE=y
CONFIG_CMD_TIMEOUT=y
CONFIG_CMD_MEMTEST=y
+CONFIG_CMD_MEMTESTER=y
CONFIG_CMD_MM=y
CONFIG_CMD_CLK=y
CONFIG_CMD_DETECT=y
+CONFIG_CMD_TRUNCATE=y
+CONFIG_CMD_SYNC=y
CONFIG_CMD_FLASH=y
CONFIG_CMD_GPIO=y
CONFIG_CMD_I2C=y
@@ -69,16 +91,20 @@ CONFIG_CMD_POWEROFF=y
CONFIG_CMD_SPI=y
CONFIG_CMD_2048=y
CONFIG_CMD_BAREBOX_UPDATE=y
+CONFIG_CMD_KALLSYMS=y
+CONFIG_CMD_OF_COMPATIBLE=y
CONFIG_CMD_OF_DIFF=y
CONFIG_CMD_OF_NODE=y
CONFIG_CMD_OF_PROPERTY=y
CONFIG_CMD_OF_DISPLAY_TIMINGS=y
+CONFIG_CMD_OF_FIXUP=y
CONFIG_CMD_OF_FIXUP_STATUS=y
CONFIG_CMD_OF_OVERLAY=y
CONFIG_CMD_OFTREE=y
CONFIG_CMD_TIME=y
-CONFIG_CMD_STATE=y
+CONFIG_CMD_WATCH=y
CONFIG_CMD_DHRYSTONE=y
+CONFIG_CMD_SEED=y
CONFIG_NET=y
CONFIG_NET_NETCONSOLE=y
CONFIG_NET_FASTBOOT=y
@@ -106,8 +132,8 @@ CONFIG_VIDEO=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_DRIVER_VIDEO_BOCHS_PCI=y
CONFIG_DRIVER_VIDEO_SIMPLEFB_CLIENT=y
+# CONFIG_SOUND is not set
CONFIG_CLOCKSOURCE_DUMMY_RATE=60000
-CONFIG_STATE_DRV=y
CONFIG_EEPROM_AT24=y
CONFIG_VIRTIO_INPUT=y
CONFIG_HWRNG=y
@@ -128,10 +154,10 @@ CONFIG_9P_FS=y
CONFIG_9P_FS_WRITE=y
CONFIG_FS_FAT=y
CONFIG_FS_FAT_WRITE=y
-CONFIG_FS_FAT_LFN=y
CONFIG_FS_UIMAGEFS=y
CONFIG_FS_PSTORE=y
CONFIG_FS_SQUASHFS=y
+CONFIG_DIGEST_CRC32_GENERIC=y
CONFIG_ZLIB=y
CONFIG_BZLIB=y
CONFIG_LZ4_DECOMPRESS=y
@@ -139,7 +165,6 @@ CONFIG_ZSTD_DECOMPRESS=y
CONFIG_XZ_DECOMPRESS=y
CONFIG_BASE64=y
CONFIG_LZO_DECOMPRESS=y
-CONFIG_DIGEST_CRC32_GENERIC=y
CONFIG_IMD_TARGET=y
CONFIG_BAREBOXENV_TARGET=y
CONFIG_BAREBOXCRC32_TARGET=y
--
2.39.5
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 7/8] RISC-V: rv64i_defconfig: enable Virt I/O
2025-08-14 20:27 [PATCH 1/8] common: fix outdated barebox_set_hostname comment Ahmad Fatoum
` (4 preceding siblings ...)
2025-08-14 20:28 ` [PATCH 6/8] RISC-V: riscvemu: update configs for web demo Ahmad Fatoum
@ 2025-08-14 20:28 ` Ahmad Fatoum
2025-08-14 20:28 ` [PATCH 8/8] poller: allow suppressing overtime warnings Ahmad Fatoum
6 siblings, 0 replies; 8+ messages in thread
From: Ahmad Fatoum @ 2025-08-14 20:28 UTC (permalink / raw)
To: barebox; +Cc: Ahmad Fatoum
This simplifies testing with QEMU and makes the config suitable for the
web demo as well.
Signed-off-by: Ahmad Fatoum <a.fatoum@barebox.org>
---
arch/riscv/configs/rv64i_defconfig | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/arch/riscv/configs/rv64i_defconfig b/arch/riscv/configs/rv64i_defconfig
index f08c60766a77..89960dd317e0 100644
--- a/arch/riscv/configs/rv64i_defconfig
+++ b/arch/riscv/configs/rv64i_defconfig
@@ -120,13 +120,16 @@ CONFIG_NET=y
CONFIG_NET_NETCONSOLE=y
CONFIG_NET_FASTBOOT=y
CONFIG_NET_9P=y
+CONFIG_NET_9P_VIRTIO=y
CONFIG_OF_BAREBOX_DRIVERS=y
CONFIG_OF_BAREBOX_ENV_IN_FS=y
CONFIG_DRIVER_SERIAL_NS16550=y
+CONFIG_VIRTIO_CONSOLE=y
CONFIG_SERIAL_SIFIVE=y
CONFIG_DRIVER_NET_DESIGNWARE_GENERIC=y
CONFIG_DRIVER_NET_DESIGNWARE_STARFIVE=y
CONFIG_DRIVER_NET_MACB=y
+CONFIG_DRIVER_NET_VIRTIO=y
CONFIG_MICREL_PHY=y
CONFIG_DRIVER_SPI_GPIO=y
CONFIG_SPI_SIFIVE=y
@@ -140,6 +143,7 @@ CONFIG_MTD_M25P80=y
CONFIG_MTD_MTDRAM=y
CONFIG_DRIVER_CFI=y
CONFIG_DRIVER_CFI_BANK_WIDTH_8=y
+CONFIG_VIRTIO_BLK=y
CONFIG_VIDEO=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_DRIVER_VIDEO_BOCHS_PCI=y
@@ -156,9 +160,11 @@ CONFIG_LED_GPIO=y
CONFIG_LED_GPIO_OF=y
CONFIG_LED_TRIGGERS=y
CONFIG_EEPROM_AT24=y
+CONFIG_VIRTIO_INPUT=y
CONFIG_WATCHDOG=y
CONFIG_STARFIVE_WDT=y
CONFIG_HWRNG=y
+CONFIG_HW_RANDOM_VIRTIO=y
CONFIG_HW_RANDOM_STARFIVE=y
CONFIG_GPIO_GENERIC_PLATFORM=y
CONFIG_GPIO_SIFIVE=y
@@ -175,7 +181,7 @@ CONFIG_POWER_RESET_SYSCON_POWEROFF=y
CONFIG_POWER_RESET_GPIO=y
CONFIG_POWER_RESET_GPIO_RESTART=y
CONFIG_POWER_RESET_HTIF_POWEROFF=y
-# CONFIG_VIRTIO_MENU is not set
+CONFIG_VIRTIO_MMIO=y
CONFIG_FS_EXT4=y
CONFIG_FS_TFTP=y
CONFIG_FS_NFS=y
--
2.39.5
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 8/8] poller: allow suppressing overtime warnings
2025-08-14 20:27 [PATCH 1/8] common: fix outdated barebox_set_hostname comment Ahmad Fatoum
` (5 preceding siblings ...)
2025-08-14 20:28 ` [PATCH 7/8] RISC-V: rv64i_defconfig: enable Virt I/O Ahmad Fatoum
@ 2025-08-14 20:28 ` Ahmad Fatoum
6 siblings, 0 replies; 8+ messages in thread
From: Ahmad Fatoum @ 2025-08-14 20:28 UTC (permalink / raw)
To: barebox; +Cc: Ahmad Fatoum
In emulation and especially the web demo, pollers may be delayed because
the virtual machine does not have exclusive usage of the CPU.
Warning about delayed pollers in that case is not useful, so allow
disabling the warning. The poller command can still be used to check
overtime.
Signed-off-by: Ahmad Fatoum <a.fatoum@barebox.org>
---
The irony of me sending this out after hours is not lost on me.
---
common/Kconfig | 9 +++++++++
common/poller.c | 3 ++-
2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/common/Kconfig b/common/Kconfig
index b32a7cb2960b..ad211d1fa519 100644
--- a/common/Kconfig
+++ b/common/Kconfig
@@ -1115,6 +1115,15 @@ config POLLER
bool "generic polling infrastructure"
select HAS_SCHED
+config POLLER_WARN_OVERTIME
+ bool "warn on poller overtime"
+ depends on POLLER
+ default y
+ help
+ Pollers are meant to poll and quickly execute actions.
+ exceeding the maximum runtime of POLLER_MAX_RUNTIME_MS
+ will trigger a one-time warning.
+
config BTHREAD
bool "barebox co-operative (green) thread infrastructure"
select HAS_SCHED
diff --git a/common/poller.c b/common/poller.c
index 18bd9c80f4b3..5dc2be97211d 100644
--- a/common/poller.c
+++ b/common/poller.c
@@ -134,7 +134,8 @@ void poller_call(void)
duration_ms = ktime_ms_delta(ktime_get(), start);
if (duration_ms > POLLER_MAX_RUNTIME_MS) {
- if (!poller->overtime)
+ if (IS_ENABLED(CONFIG_POLLER_WARN_OVERTIME) &&
+ !poller->overtime)
pr_warn("'%s' took unexpectedly long: %llums\n",
poller->name, duration_ms);
--
2.39.5
^ permalink raw reply [flat|nested] 8+ messages in thread