[PATCH v4 01/13] board: Rename uclass to sysinfo
Bin Meng
bmeng.cn at gmail.com
Tue Nov 3 09:39:37 CET 2020
Hi Simon,
On Thu, Oct 22, 2020 at 10:22 PM Simon Glass <sjg at chromium.org> wrote:
>
> This uclass is intended to provide a way to obtain information about a
> U-Boot board. But the concept of a U-Boot 'board' is the whole system,
> not just one circuit board, meaning that 'board' is something of a
> misnomer for this uclass.
>
> In addition, the name 'board' is a bit overused in U-Boot and we want to
> use the same uclass to provide SMBIOS information.
>
> The obvious name is 'system' but that is so vague as to be meaningless.
> Use 'sysinfo' instead, since this uclass is aimed at providing information
> on the system.
>
> Rename everything accordingly.
>
> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
>
> (no changes since v1)
>
> arch/powerpc/dts/gdsys/gazerbeam-uboot.dtsi | 2 +-
> arch/sandbox/dts/test.dts | 8 +-
> board/gdsys/common/cmd_ioloop.c | 12 +--
> board/gdsys/mpc8308/gazerbeam.c | 47 ++++++-----
> board/google/chromebook_coral/coral.c | 2 +-
> common/spl/spl_fit.c | 15 ++--
> configs/chromebook_coral_defconfig | 2 +-
> configs/gazerbeam_defconfig | 4 +-
> configs/sandbox64_defconfig | 8 +-
> configs/sandbox_defconfig | 8 +-
> configs/sandbox_flattree_defconfig | 4 +-
> configs/sandbox_spl_defconfig | 4 +-
> .../gdsys,sysinfo_gazerbeam.txt} | 8 +-
> drivers/Kconfig | 4 +-
> drivers/Makefile | 2 +-
> drivers/board/board-uclass.c | 71 ----------------
Was rename operation done to drivers/board/board-uclass.c =>
drivers/sysinfo/sysinfo-uclass.c?
> drivers/{board => sysinfo}/Kconfig | 16 ++--
> drivers/{board => sysinfo}/Makefile | 6 +-
> drivers/{board => sysinfo}/gazerbeam.c | 74 ++++++++---------
> drivers/{board => sysinfo}/gazerbeam.h | 0
> drivers/{board => sysinfo}/sandbox.c | 50 ++++++------
> drivers/{board => sysinfo}/sandbox.h | 0
> drivers/sysinfo/sysinfo-uclass.c | 71 ++++++++++++++++
> drivers/timer/mpc83xx_timer.c | 10 +--
> include/dm/uclass-id.h | 2 +-
> include/{board.h => sysinfo.h} | 80 +++++++++----------
> test/dm/Makefile | 2 +-
> test/dm/board.c | 59 --------------
> test/dm/sysinfo.c | 59 ++++++++++++++
> 29 files changed, 318 insertions(+), 312 deletions(-)
> rename doc/device-tree-bindings/{board/gdsys,board_gazerbeam.txt => sysinfo/gdsys,sysinfo_gazerbeam.txt} (90%)
> delete mode 100644 drivers/board/board-uclass.c
> rename drivers/{board => sysinfo}/Kconfig (65%)
> rename drivers/{board => sysinfo}/Makefile (50%)
> rename drivers/{board => sysinfo}/gazerbeam.c (69%)
> rename drivers/{board => sysinfo}/gazerbeam.h (100%)
> rename drivers/{board => sysinfo}/sandbox.c (50%)
> rename drivers/{board => sysinfo}/sandbox.h (100%)
> create mode 100644 drivers/sysinfo/sysinfo-uclass.c
> rename include/{board.h => sysinfo.h} (65%)
> delete mode 100644 test/dm/board.c
> create mode 100644 test/dm/sysinfo.c
Was rename operation done to test/dm/board.c => test/dm/sysinfo.c?
>
> diff --git a/arch/powerpc/dts/gdsys/gazerbeam-uboot.dtsi b/arch/powerpc/dts/gdsys/gazerbeam-uboot.dtsi
> index 1c4977f20f3..3439737fa3f 100644
> --- a/arch/powerpc/dts/gdsys/gazerbeam-uboot.dtsi
> +++ b/arch/powerpc/dts/gdsys/gazerbeam-uboot.dtsi
> @@ -32,7 +32,7 @@
> };
>
> board {
> - compatible = "gdsys,board_gazerbeam";
> + compatible = "gdsys,sysinfo-gazerbeam";
> csb = <&board_soc>;
> serdes = <&SERDES>;
> rxaui0 = <&RXAUI0_0>;
> diff --git a/arch/sandbox/dts/test.dts b/arch/sandbox/dts/test.dts
> index fa84b2c10f3..0f0d69da50e 100644
> --- a/arch/sandbox/dts/test.dts
> +++ b/arch/sandbox/dts/test.dts
> @@ -1070,10 +1070,6 @@
> compatible = "sandbox,sandbox_osd";
> };
>
> - board {
> - compatible = "sandbox,board_sandbox";
> - };
> -
> sandbox_tee {
> compatible = "sandbox,tee";
> };
> @@ -1209,6 +1205,10 @@
> reset-names = "valid", "no_mask", "out_of_range";
> };
>
> + sysinfo {
> + compatible = "sandbox,sysinfo-sandbox";
> + };
> +
> some_regmapped-bus {
> #address-cells = <0x1>;
> #size-cells = <0x1>;
> diff --git a/board/gdsys/common/cmd_ioloop.c b/board/gdsys/common/cmd_ioloop.c
> index 3ea2bec8ebd..658756d9842 100644
> --- a/board/gdsys/common/cmd_ioloop.c
> +++ b/board/gdsys/common/cmd_ioloop.c
> @@ -16,7 +16,7 @@
> #include <dm.h>
> #include <misc.h>
> #include <regmap.h>
> -#include <board.h>
> +#include <sysinfo.h>
>
> #include "../../../drivers/misc/gdsys_soc.h"
> #include "../../../drivers/misc/gdsys_ioep.h"
> @@ -506,11 +506,11 @@ int do_ioloop(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
> int do_iodev(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
> {
> struct udevice *ioep = NULL;
> - struct udevice *board;
> + struct udevice *sysinfo;
> char name[8];
> int ret;
>
> - if (board_get(&board))
> + if (sysinfo_get(&sysinfo))
> return CMD_RET_FAILURE;
>
> if (argc > 1) {
> @@ -518,7 +518,8 @@ int do_iodev(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
>
> snprintf(name, sizeof(name), "ioep%d", i);
>
> - ret = uclass_get_device_by_phandle(UCLASS_MISC, board, name, &ioep);
> + ret = uclass_get_device_by_phandle(UCLASS_MISC, sysinfo, name,
> + &ioep);
>
> if (ret || !ioep) {
> printf("Invalid IOEP %d\n", i);
> @@ -532,7 +533,8 @@ int do_iodev(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
> while (1) {
> snprintf(name, sizeof(name), "ioep%d", i);
>
> - ret = uclass_get_device_by_phandle(UCLASS_MISC, board, name, &ioep);
> + ret = uclass_get_device_by_phandle(UCLASS_MISC, sysinfo,
> + name, &ioep);
>
> if (ret || !ioep)
> break;
> diff --git a/board/gdsys/mpc8308/gazerbeam.c b/board/gdsys/mpc8308/gazerbeam.c
> index c317260251e..0e7fa1e333e 100644
> --- a/board/gdsys/mpc8308/gazerbeam.c
> +++ b/board/gdsys/mpc8308/gazerbeam.c
> @@ -6,7 +6,6 @@
> */
>
> #include <common.h>
> -#include <board.h>
> #include <command.h>
> #include <dm.h>
> #include <env.h>
> @@ -15,11 +14,12 @@
> #include <init.h>
> #include <miiphy.h>
> #include <misc.h>
> +#include <sysinfo.h>
> #include <tpm-v1.h>
> #include <video_osd.h>
>
> #include "../common/ihs_mdio.h"
> -#include "../../../drivers/board/gazerbeam.h"
> +#include "../../../drivers/sysinfo/gazerbeam.h"
>
> DECLARE_GLOBAL_DATA_PTR;
>
> @@ -43,22 +43,22 @@ static int get_tpm(struct udevice **devp)
>
> int board_early_init_r(void)
> {
> - struct udevice *board;
> + struct udevice *sysinfo;
> struct udevice *serdes;
> int mc = 0;
> int con = 0;
>
> - if (board_get(&board))
> - puts("Could not find board information device.\n");
> + if (sysinfo_get(&sysinfo))
> + puts("Could not find sysinfo information device.\n");
>
> /* Initialize serdes */
> - uclass_get_device_by_phandle(UCLASS_MISC, board, "serdes", &serdes);
> + uclass_get_device_by_phandle(UCLASS_MISC, sysinfo, "serdes", &serdes);
>
> - if (board_detect(board))
> + if (sysinfo_detect(sysinfo))
> puts("Device information detection failed.\n");
>
> - board_get_int(board, BOARD_MULTICHANNEL, &mc);
> - board_get_int(board, BOARD_VARIANT, &con);
> + sysinfo_get_int(sysinfo, BOARD_MULTICHANNEL, &mc);
> + sysinfo_get_int(sysinfo, BOARD_VARIANT, &con);
>
> if (mc == 2 || mc == 1)
> dev_disable_by_path("/immr at e0000000/i2c at 3100/pca9698 at 22");
> @@ -84,18 +84,18 @@ int board_early_init_r(void)
> return 0;
> }
>
> -int checkboard(void)
> +int checksysinfo(void)
> {
> - struct udevice *board;
> + struct udevice *sysinfo;
> char *s = env_get("serial#");
> int mc = 0;
> int con = 0;
>
> - if (board_get(&board))
> - puts("Could not find board information device.\n");
> + if (sysinfo_get(&sysinfo))
> + puts("Could not find sysinfo information device.\n");
>
> - board_get_int(board, BOARD_MULTICHANNEL, &mc);
> - board_get_int(board, BOARD_VARIANT, &con);
> + sysinfo_get_int(sysinfo, BOARD_MULTICHANNEL, &mc);
> + sysinfo_get_int(sysinfo, BOARD_VARIANT, &con);
>
> puts("Board: Gazerbeam ");
> printf("%s ", mc == 4 ? "MC4" : mc == 2 ? "MC2" : "SC");
> @@ -123,20 +123,22 @@ int last_stage_init(void)
> {
> int fpga_hw_rev = 0;
> int i;
> - struct udevice *board;
> + struct udevice *sysinfo;
> struct udevice *osd;
> struct video_osd_info osd_info;
> struct udevice *tpm;
> int ret;
>
> - if (board_get(&board))
> - puts("Could not find board information device.\n");
> + if (sysinfo_get(&sysinfo))
> + puts("Could not find sysinfo information device.\n");
>
> - if (board) {
> - int res = board_get_int(board, BOARD_HWVERSION, &fpga_hw_rev);
> + if (sysinfo) {
> + int res = sysinfo_get_int(sysinfo, BOARD_HWVERSION,
> + &fpga_hw_rev);
>
> if (res)
> - printf("Could not determind FPGA HW revision (res = %d)\n", res);
> + printf("Could not determind FPGA HW revision (res = %d)\n",
> + res);
> }
>
> env_set_ulong("fpga_hw_rev", fpga_hw_rev);
> @@ -154,7 +156,8 @@ int last_stage_init(void)
>
> snprintf(name, sizeof(name), "rxaui%d", i);
> /* Disable RXAUI polarity inversion */
> - ret = uclass_get_device_by_phandle(UCLASS_MISC, board, name, &rxaui);
> + ret = uclass_get_device_by_phandle(UCLASS_MISC, sysinfo,
> + name, &rxaui);
> if (!ret)
> misc_set_enabled(rxaui, false);
> }
> diff --git a/board/google/chromebook_coral/coral.c b/board/google/chromebook_coral/coral.c
> index f5ae48290f4..b8b923c139e 100644
> --- a/board/google/chromebook_coral/coral.c
> +++ b/board/google/chromebook_coral/coral.c
> @@ -150,7 +150,7 @@ static const struct udevice_id coral_ids[] = {
>
> U_BOOT_DRIVER(coral_drv) = {
> .name = "coral",
> - .id = UCLASS_BOARD,
> + .id = UCLASS_SYSINFO,
> .of_match = coral_ids,
> ACPI_OPS_PTR(&coral_acpi_ops)
> };
> diff --git a/common/spl/spl_fit.c b/common/spl/spl_fit.c
> index a90d821c82e..f8f52771352 100644
> --- a/common/spl/spl_fit.c
> +++ b/common/spl/spl_fit.c
> @@ -6,13 +6,13 @@
>
> #include <common.h>
> #include <errno.h>
> -#include <board.h>
> #include <fpga.h>
> #include <gzip.h>
> #include <image.h>
> #include <log.h>
> #include <malloc.h>
> #include <spl.h>
> +#include <sysinfo.h>
> #include <asm/cache.h>
> #include <linux/libfdt.h>
>
> @@ -74,7 +74,7 @@ static int spl_fit_get_image_name(const void *fit, int images,
> const char *type, int index,
> const char **outname)
> {
> - struct udevice *board;
> + struct udevice *sysinfo;
> const char *name, *str;
> __maybe_unused int node;
> int conf_node;
> @@ -110,19 +110,20 @@ static int spl_fit_get_image_name(const void *fit, int images,
> }
> }
>
> - if (!found && !board_get(&board)) {
> + if (!found && CONFIG_IS_ENABLED(SYSINFO) && !sysinfo_get(&sysinfo)) {
> int rc;
> /*
> - * no string in the property for this index. Check if the board
> - * level code can supply one.
> + * no string in the property for this index. Check if the
> + * sysinfo-level code can supply one.
> */
> - rc = board_get_fit_loadable(board, index - i - 1, type, &str);
> + rc = sysinfo_get_fit_loadable(sysinfo, index - i - 1, type,
> + &str);
> if (rc && rc != -ENOENT)
> return rc;
>
> if (!rc) {
> /*
> - * The board provided a name for a loadable.
> + * The sysinfo provided a name for a loadable.
> * Try to match it against the description properties
> * first. If no matching node is found, use it as a
> * node name.
> diff --git a/configs/chromebook_coral_defconfig b/configs/chromebook_coral_defconfig
> index 0ec95af75e0..d934eeb8866 100644
> --- a/configs/chromebook_coral_defconfig
> +++ b/configs/chromebook_coral_defconfig
> @@ -77,7 +77,6 @@ CONFIG_SYSCON=y
> CONFIG_SPL_OF_TRANSLATE=y
> CONFIG_INTEL_ACPIGEN=y
> CONFIG_CPU=y
> -CONFIG_BOARD=y
> CONFIG_DM_I2C=y
> CONFIG_SYS_I2C_DW=y
> CONFIG_MISC=y
> @@ -98,6 +97,7 @@ CONFIG_SOUND_MAX98357A=y
> CONFIG_SOUND_RT5677=y
> CONFIG_SPI=y
> CONFIG_ICH_SPI=y
> +CONFIG_SYSINFO=y
> CONFIG_TPL_SYSRESET=y
> # CONFIG_TPM_V1 is not set
> CONFIG_TPM2_CR50_I2C=y
> diff --git a/configs/gazerbeam_defconfig b/configs/gazerbeam_defconfig
> index 36c2500bae1..5765ef456be 100644
> --- a/configs/gazerbeam_defconfig
> +++ b/configs/gazerbeam_defconfig
> @@ -157,8 +157,6 @@ CONFIG_CLK=y
> CONFIG_ICS8N3QV01=y
> CONFIG_CPU=y
> CONFIG_CPU_MPC83XX=y
> -CONFIG_BOARD=y
> -CONFIG_BOARD_GAZERBEAM=y
> CONFIG_DM_PCA953X=y
> CONFIG_MPC8XXX_GPIO=y
> CONFIG_DM_I2C=y
> @@ -197,6 +195,8 @@ CONFIG_MPC83XX_SDRAM=y
> CONFIG_DM_RESET=y
> CONFIG_DM_SERIAL=y
> CONFIG_SYS_NS16550=y
> +CONFIG_SYSINFO=y
> +CONFIG_SYSINFO_GAZERBEAM=y
> CONFIG_SYSRESET=y
> CONFIG_SYSRESET_MPC83XX=y
> CONFIG_TIMER=y
> diff --git a/configs/sandbox64_defconfig b/configs/sandbox64_defconfig
> index e9928d5fc2e..dc993cd13aa 100644
> --- a/configs/sandbox64_defconfig
> +++ b/configs/sandbox64_defconfig
> @@ -69,6 +69,8 @@ CONFIG_CMD_TIME=y
> CONFIG_CMD_TIMER=y
> CONFIG_CMD_SOUND=y
> CONFIG_CMD_QFW=y
> +CONFIG_CMD_PSTORE=y
> +CONFIG_CMD_PSTORE_MEM_ADDR=0x3000000
> CONFIG_CMD_BOOTSTAGE=y
> CONFIG_CMD_PMIC=y
> CONFIG_CMD_REGULATOR=y
> @@ -80,8 +82,6 @@ CONFIG_CMD_CBFS=y
> CONFIG_CMD_CRAMFS=y
> CONFIG_CMD_EXT4_WRITE=y
> CONFIG_CMD_MTDPARTS=y
> -CONFIG_CMD_PSTORE=y
> -CONFIG_CMD_PSTORE_MEM_ADDR=0x3000000
> CONFIG_MAC_PARTITION=y
> CONFIG_AMIGA_PARTITION=y
> CONFIG_OF_CONTROL=y
> @@ -109,8 +109,6 @@ CONFIG_CPU=y
> CONFIG_DM_DEMO=y
> CONFIG_DM_DEMO_SIMPLE=y
> CONFIG_DM_DEMO_SHAPE=y
> -CONFIG_BOARD=y
> -CONFIG_BOARD_SANDBOX=y
> CONFIG_GPIO_HOG=y
> CONFIG_DM_GPIO_LOOKUP_LABEL=y
> CONFIG_PM8916_GPIO=y
> @@ -201,6 +199,8 @@ CONFIG_SOC_DEVICE=y
> CONFIG_SANDBOX_SPI=y
> CONFIG_SPMI=y
> CONFIG_SPMI_SANDBOX=y
> +CONFIG_SYSINFO=y
> +CONFIG_SYSINFO_SANDBOX=y
> CONFIG_SYSRESET=y
> CONFIG_TIMER=y
> CONFIG_TIMER_EARLY=y
> diff --git a/configs/sandbox_defconfig b/configs/sandbox_defconfig
> index b15b1889e07..5b7cee7889a 100644
> --- a/configs/sandbox_defconfig
> +++ b/configs/sandbox_defconfig
> @@ -81,6 +81,8 @@ CONFIG_CMD_TIME=y
> CONFIG_CMD_TIMER=y
> CONFIG_CMD_SOUND=y
> CONFIG_CMD_QFW=y
> +CONFIG_CMD_PSTORE=y
> +CONFIG_CMD_PSTORE_MEM_ADDR=0x3000000
> CONFIG_CMD_BOOTSTAGE=y
> CONFIG_CMD_PMIC=y
> CONFIG_CMD_REGULATOR=y
> @@ -93,8 +95,6 @@ CONFIG_CMD_CRAMFS=y
> CONFIG_CMD_EXT4_WRITE=y
> CONFIG_CMD_SQUASHFS=y
> CONFIG_CMD_MTDPARTS=y
> -CONFIG_CMD_PSTORE=y
> -CONFIG_CMD_PSTORE_MEM_ADDR=0x3000000
> CONFIG_MAC_PARTITION=y
> CONFIG_AMIGA_PARTITION=y
> CONFIG_OF_CONTROL=y
> @@ -130,8 +130,6 @@ CONFIG_CPU=y
> CONFIG_DM_DEMO=y
> CONFIG_DM_DEMO_SIMPLE=y
> CONFIG_DM_DEMO_SHAPE=y
> -CONFIG_BOARD=y
> -CONFIG_BOARD_SANDBOX=y
> CONFIG_DMA=y
> CONFIG_DMA_CHANNELS=y
> CONFIG_SANDBOX_DMA=y
> @@ -235,6 +233,8 @@ CONFIG_SOC_DEVICE=y
> CONFIG_SANDBOX_SPI=y
> CONFIG_SPMI=y
> CONFIG_SPMI_SANDBOX=y
> +CONFIG_SYSINFO=y
> +CONFIG_SYSINFO_SANDBOX=y
> CONFIG_SYSRESET=y
> CONFIG_TIMER=y
> CONFIG_TIMER_EARLY=y
> diff --git a/configs/sandbox_flattree_defconfig b/configs/sandbox_flattree_defconfig
> index 6ee23c4a619..1f593eba8fd 100644
> --- a/configs/sandbox_flattree_defconfig
> +++ b/configs/sandbox_flattree_defconfig
> @@ -90,8 +90,6 @@ CONFIG_CPU=y
> CONFIG_DM_DEMO=y
> CONFIG_DM_DEMO_SIMPLE=y
> CONFIG_DM_DEMO_SHAPE=y
> -CONFIG_BOARD=y
> -CONFIG_BOARD_SANDBOX=y
> CONFIG_GPIO_HOG=y
> CONFIG_DM_GPIO_LOOKUP_LABEL=y
> CONFIG_PM8916_GPIO=y
> @@ -177,6 +175,8 @@ CONFIG_SOC_DEVICE=y
> CONFIG_SANDBOX_SPI=y
> CONFIG_SPMI=y
> CONFIG_SPMI_SANDBOX=y
> +CONFIG_SYSINFO=y
> +CONFIG_SYSINFO_SANDBOX=y
> CONFIG_SYSRESET=y
> CONFIG_TIMER=y
> CONFIG_TIMER_EARLY=y
> diff --git a/configs/sandbox_spl_defconfig b/configs/sandbox_spl_defconfig
> index 1d49e816393..9205f84b86e 100644
> --- a/configs/sandbox_spl_defconfig
> +++ b/configs/sandbox_spl_defconfig
> @@ -109,8 +109,6 @@ CONFIG_CPU=y
> CONFIG_DM_DEMO=y
> CONFIG_DM_DEMO_SIMPLE=y
> CONFIG_DM_DEMO_SHAPE=y
> -CONFIG_BOARD=y
> -CONFIG_BOARD_SANDBOX=y
> CONFIG_SPL_FIRMWARE=y
> CONFIG_GPIO_HOG=y
> CONFIG_PM8916_GPIO=y
> @@ -194,6 +192,8 @@ CONFIG_SOC_DEVICE=y
> CONFIG_SANDBOX_SPI=y
> CONFIG_SPMI=y
> CONFIG_SPMI_SANDBOX=y
> +CONFIG_SYSINFO=y
> +CONFIG_SYSINFO_SANDBOX=y
> CONFIG_SYSRESET=y
> CONFIG_SPL_SYSRESET=y
> CONFIG_TIMER=y
> diff --git a/doc/device-tree-bindings/board/gdsys,board_gazerbeam.txt b/doc/device-tree-bindings/sysinfo/gdsys,sysinfo_gazerbeam.txt
> similarity index 90%
> rename from doc/device-tree-bindings/board/gdsys,board_gazerbeam.txt
> rename to doc/device-tree-bindings/sysinfo/gdsys,sysinfo_gazerbeam.txt
> index 28c1080d904..f70652d3c48 100644
> --- a/doc/device-tree-bindings/board/gdsys,board_gazerbeam.txt
> +++ b/doc/device-tree-bindings/sysinfo/gdsys,sysinfo_gazerbeam.txt
> @@ -1,11 +1,11 @@
> -gdsys Gazerbeam board driver
> +gdsys Gazerbeam sysinfo driver
>
> This driver provides capabilities to access the gdsys Gazerbeam board's device
> information. Furthermore, phandles to some internal devices are provided for
> the board files.
>
> Required properties:
> -- compatible: should be "gdsys,board_gazerbeam"
> +- compatible: should be "gdsys,sysinfo-gazerbeam"
> - csb: phandle to the board's coherent system bus (CSB) device node
> - rxaui[0-3]: phandles to the rxaui control device nodes
> - fpga[0-1]: phandles to the board's gdsys FPGA device nodes
> @@ -17,8 +17,8 @@ Required properties:
> Example:
>
>
> -board {
> - compatible = "gdsys,board_gazerbeam";
> +sysinfo {
> + compatible = "gdsys,sysinfo-gazerbeam";
> csb = <&board_soc>;
> serdes = <&SERDES>;
> rxaui0 = <&RXAUI0>;
> diff --git a/drivers/Kconfig b/drivers/Kconfig
> index 613669cb381..37293e8da9d 100644
> --- a/drivers/Kconfig
> +++ b/drivers/Kconfig
> @@ -30,8 +30,6 @@ source "drivers/ddr/Kconfig"
>
> source "drivers/demo/Kconfig"
>
> -source "drivers/board/Kconfig"
> -
> source "drivers/ddr/fsl/Kconfig"
>
> source "drivers/dfu/Kconfig"
> @@ -112,6 +110,8 @@ source "drivers/spi/Kconfig"
>
> source "drivers/spmi/Kconfig"
>
> +source "drivers/sysinfo/Kconfig"
> +
> source "drivers/sysreset/Kconfig"
>
> source "drivers/tee/Kconfig"
> diff --git a/drivers/Makefile b/drivers/Makefile
> index 9eb51453e57..51eec712996 100644
> --- a/drivers/Makefile
> +++ b/drivers/Makefile
> @@ -26,9 +26,9 @@ obj-$(CONFIG_$(SPL_TPL_)TIMER) += timer/
> obj-$(CONFIG_$(SPL_TPL_)VIRTIO) += virtio/
> obj-$(CONFIG_$(SPL_)DM_MAILBOX) += mailbox/
> obj-$(CONFIG_$(SPL_)REMOTEPROC) += remoteproc/
> +obj-$(CONFIG_$(SPL_)SYSINFO) += sysinfo/
> obj-$(CONFIG_$(SPL_TPL_)TPM) += tpm/
> obj-$(CONFIG_$(SPL_TPL_)ACPI_PMC) += power/acpi_pmc/
> -obj-$(CONFIG_$(SPL_)BOARD) += board/
> obj-$(CONFIG_XEN) += xen/
> obj-$(CONFIG_$(SPL_)FPGA) += fpga/
>
> diff --git a/drivers/board/board-uclass.c b/drivers/board/board-uclass.c
> deleted file mode 100644
> index b5485e9895b..00000000000
> --- a/drivers/board/board-uclass.c
> +++ /dev/null
> @@ -1,71 +0,0 @@
> -// SPDX-License-Identifier: GPL-2.0+
> -/*
> - * (C) Copyright 2017
> - * Mario Six, Guntermann & Drunck GmbH, mario.six at gdsys.cc
> - */
> -
> -#include <common.h>
> -#include <dm.h>
> -#include <board.h>
> -
> -int board_get(struct udevice **devp)
> -{
> - return uclass_first_device_err(UCLASS_BOARD, devp);
> -}
> -
> -int board_detect(struct udevice *dev)
> -{
> - struct board_ops *ops = board_get_ops(dev);
> -
> - if (!ops->detect)
> - return -ENOSYS;
> -
> - return ops->detect(dev);
> -}
> -
> -int board_get_fit_loadable(struct udevice *dev, int index,
> - const char *type, const char **strp)
> -{
> - struct board_ops *ops = board_get_ops(dev);
> -
> - if (!ops->get_fit_loadable)
> - return -ENOSYS;
> -
> - return ops->get_fit_loadable(dev, index, type, strp);
> -}
> -
> -int board_get_bool(struct udevice *dev, int id, bool *val)
> -{
> - struct board_ops *ops = board_get_ops(dev);
> -
> - if (!ops->get_bool)
> - return -ENOSYS;
> -
> - return ops->get_bool(dev, id, val);
> -}
> -
> -int board_get_int(struct udevice *dev, int id, int *val)
> -{
> - struct board_ops *ops = board_get_ops(dev);
> -
> - if (!ops->get_int)
> - return -ENOSYS;
> -
> - return ops->get_int(dev, id, val);
> -}
> -
> -int board_get_str(struct udevice *dev, int id, size_t size, char *val)
> -{
> - struct board_ops *ops = board_get_ops(dev);
> -
> - if (!ops->get_str)
> - return -ENOSYS;
> -
> - return ops->get_str(dev, id, size, val);
> -}
> -
> -UCLASS_DRIVER(board) = {
> - .id = UCLASS_BOARD,
> - .name = "board",
> - .post_bind = dm_scan_fdt_dev,
> -};
> diff --git a/drivers/board/Kconfig b/drivers/sysinfo/Kconfig
> similarity index 65%
> rename from drivers/board/Kconfig
> rename to drivers/sysinfo/Kconfig
> index 254f657049d..39141500a05 100644
> --- a/drivers/board/Kconfig
> +++ b/drivers/sysinfo/Kconfig
> @@ -1,24 +1,24 @@
> -menuconfig BOARD
> - bool "Device Information"
> +menuconfig SYSINFO
> + bool "Device System Information"
> help
> Support methods to query hardware configurations from internal
> mechanisms (e.g. reading GPIO values, determining the presence of
> devices on busses, etc.). This enables the usage of U-Boot with
> modular board architectures.
>
> -if BOARD
> +if SYSINFO
>
> -config SPL_BOARD
> +config SPL_SYSINFO
> depends on SPL_DM
> bool "Enable board driver support in SPL"
>
> -config BOARD_GAZERBEAM
> - bool "Enable board driver for the Gazerbeam board"
> +config SYSINFO_GAZERBEAM
> + bool "Enable sysinfo driver for the Gazerbeam board"
> help
> Support querying device information for the gdsys Gazerbeam board.
>
> -config BOARD_SANDBOX
> - bool "Enable board driver for the Sandbox board"
> +config SYSINFO_SANDBOX
> + bool "Enable sysinfo driver for the Sandbox board"
> help
> Support querying device information for the Sandbox boards.
>
> diff --git a/drivers/board/Makefile b/drivers/sysinfo/Makefile
> similarity index 50%
> rename from drivers/board/Makefile
> rename to drivers/sysinfo/Makefile
> index cc16361755a..aecf0b0d47c 100644
> --- a/drivers/board/Makefile
> +++ b/drivers/sysinfo/Makefile
> @@ -2,6 +2,6 @@
> #
> # (C) Copyright 2017
> # Mario Six, Guntermann & Drunck GmbH, mario.six at gdsys.cc
> -obj-y += board-uclass.o
> -obj-$(CONFIG_BOARD_GAZERBEAM) += gazerbeam.o
> -obj-$(CONFIG_BOARD_SANDBOX) += sandbox.o
> +obj-y += sysinfo-uclass.o
> +obj-$(CONFIG_SYSINFO_GAZERBEAM) += gazerbeam.o
> +obj-$(CONFIG_SYSINFO_SANDBOX) += sandbox.o
> diff --git a/drivers/board/gazerbeam.c b/drivers/sysinfo/gazerbeam.c
> similarity index 69%
> rename from drivers/board/gazerbeam.c
> rename to drivers/sysinfo/gazerbeam.c
> index ed50fc530cb..58012d1dbaa 100644
> --- a/drivers/board/gazerbeam.c
> +++ b/drivers/sysinfo/gazerbeam.c
> @@ -6,7 +6,7 @@
>
> #include <common.h>
> #include <dm.h>
> -#include <board.h>
> +#include <sysinfo.h>
> #include <i2c.h>
> #include <log.h>
> #include <asm/gpio.h>
> @@ -27,16 +27,16 @@ static const int SC_GPIO_NO;
> static const int CON_GPIO_NO = 1;
>
> /**
> - * struct board_gazerbeam_priv - Private data structure for the gazerbeam board
> - * driver.
> - * @reset_gpios: GPIOs for the board's reset GPIOs.
> - * @var_gpios: GPIOs for the board's hardware variant GPIOs
> - * @ver_gpios: GPIOs for the board's hardware version GPIOs
> - * @variant: Container for the board's hardware variant (CON/CPU)
> - * @multichannel: Container for the board's multichannel variant (MC4/MC2/SC)
> - * @hwversion: Container for the board's hardware version
> + * struct sysinfo_gazerbeam_priv - Private data structure for the gazerbeam
> + * sysinfo driver
> + * @reset_gpios: GPIOs for the sysinfo's reset GPIOs.
> + * @var_gpios: GPIOs for the sysinfo's hardware variant GPIOs
> + * @ver_gpios: GPIOs for the sysinfo's hardware version GPIOs
> + * @variant: Container for the sysinfo's hardware variant (CON/CPU)
> + * @multichannel: Container for the sysinfo's multichannel variant (MC4/MC2/SC)
> + * @hwversion: Container for the sysinfo's hardware version
> */
> -struct board_gazerbeam_priv {
> +struct sysinfo_gazerbeam_priv {
> struct gpio_desc reset_gpios[2];
> struct gpio_desc var_gpios[2];
> struct gpio_desc ver_gpios[4];
> @@ -46,19 +46,19 @@ struct board_gazerbeam_priv {
> };
>
> /**
> - * _read_board_variant_data() - Read variant information from the hardware.
> - * @dev: The board device for which to determine the multichannel and device
> + * _read_sysinfo_variant_data() - Read variant information from the hardware.
> + * @dev: The sysinfo device for which to determine the multichannel and device
> * type information.
> *
> - * The data read from the board's hardware (mostly hard-wired GPIOs) is stored
> + * The data read from the sysinfo's hardware (mostly hard-wired GPIOs) is stored
> * in the private data structure of the driver to be used by other driver
> * methods.
> *
> * Return: 0 if OK, -ve on error.
> */
> -static int _read_board_variant_data(struct udevice *dev)
> +static int _read_sysinfo_variant_data(struct udevice *dev)
> {
> - struct board_gazerbeam_priv *priv = dev_get_priv(dev);
> + struct sysinfo_gazerbeam_priv *priv = dev_get_priv(dev);
> struct udevice *i2c_bus;
> struct udevice *dummy;
> char *listname;
> @@ -129,10 +129,10 @@ static int _read_board_variant_data(struct udevice *dev)
> }
>
> /**
> - * _read_hwversion() - Read the hardware version from the board.
> - * @dev: The board device for which to read the hardware version.
> + * _read_hwversion() - Read the hardware version from the sysinfo.
> + * @dev: The sysinfo device for which to read the hardware version.
> *
> - * The hardware version read from the board (from hard-wired GPIOs) is stored
> + * The hardware version read from the sysinfo (from hard-wired GPIOs) is stored
> * in the private data structure of the driver to be used by other driver
> * methods.
> *
> @@ -140,7 +140,7 @@ static int _read_board_variant_data(struct udevice *dev)
> */
> static int _read_hwversion(struct udevice *dev)
> {
> - struct board_gazerbeam_priv *priv = dev_get_priv(dev);
> + struct sysinfo_gazerbeam_priv *priv = dev_get_priv(dev);
> int res;
>
> res = gpio_request_list_by_name(dev, "ver-gpios", priv->ver_gpios,
> @@ -172,11 +172,11 @@ static int _read_hwversion(struct udevice *dev)
> return 0;
> }
>
> -static int board_gazerbeam_detect(struct udevice *dev)
> +static int sysinfo_gazerbeam_detect(struct udevice *dev)
> {
> int res;
>
> - res = _read_board_variant_data(dev);
> + res = _read_sysinfo_variant_data(dev);
> if (res) {
> debug("%s: Error reading multichannel variant (err = %d)\n",
> dev->name, res);
> @@ -193,9 +193,9 @@ static int board_gazerbeam_detect(struct udevice *dev)
> return 0;
> }
>
> -static int board_gazerbeam_get_int(struct udevice *dev, int id, int *val)
> +static int sysinfo_gazerbeam_get_int(struct udevice *dev, int id, int *val)
> {
> - struct board_gazerbeam_priv *priv = dev_get_priv(dev);
> + struct sysinfo_gazerbeam_priv *priv = dev_get_priv(dev);
>
> switch (id) {
> case BOARD_MULTICHANNEL:
> @@ -215,19 +215,19 @@ static int board_gazerbeam_get_int(struct udevice *dev, int id, int *val)
> return 0;
> }
>
> -static const struct udevice_id board_gazerbeam_ids[] = {
> - { .compatible = "gdsys,board_gazerbeam" },
> +static const struct udevice_id sysinfo_gazerbeam_ids[] = {
> + { .compatible = "gdsys,sysinfo_gazerbeam" },
This should be "gdsys,sysinfo-gazerbeam" according to the bindings
doc, and other users in this patch.
> { /* sentinel */ }
> };
>
> -static const struct board_ops board_gazerbeam_ops = {
> - .detect = board_gazerbeam_detect,
> - .get_int = board_gazerbeam_get_int,
> +static const struct sysinfo_ops sysinfo_gazerbeam_ops = {
> + .detect = sysinfo_gazerbeam_detect,
> + .get_int = sysinfo_gazerbeam_get_int,
> };
>
> -static int board_gazerbeam_probe(struct udevice *dev)
> +static int sysinfo_gazerbeam_probe(struct udevice *dev)
> {
> - struct board_gazerbeam_priv *priv = dev_get_priv(dev);
> + struct sysinfo_gazerbeam_priv *priv = dev_get_priv(dev);
> int gpio_num, i;
>
> gpio_num = gpio_request_list_by_name(dev, "reset-gpios",
> @@ -255,11 +255,11 @@ static int board_gazerbeam_probe(struct udevice *dev)
> return 0;
> }
>
> -U_BOOT_DRIVER(board_gazerbeam) = {
> - .name = "board_gazerbeam",
> - .id = UCLASS_BOARD,
> - .of_match = board_gazerbeam_ids,
> - .ops = &board_gazerbeam_ops,
> - .priv_auto_alloc_size = sizeof(struct board_gazerbeam_priv),
> - .probe = board_gazerbeam_probe,
> +U_BOOT_DRIVER(sysinfo_gazerbeam) = {
> + .name = "sysinfo_gazerbeam",
> + .id = UCLASS_SYSINFO,
> + .of_match = sysinfo_gazerbeam_ids,
> + .ops = &sysinfo_gazerbeam_ops,
> + .priv_auto_alloc_size = sizeof(struct sysinfo_gazerbeam_priv),
> + .probe = sysinfo_gazerbeam_probe,
> };
> diff --git a/drivers/board/gazerbeam.h b/drivers/sysinfo/gazerbeam.h
> similarity index 100%
> rename from drivers/board/gazerbeam.h
> rename to drivers/sysinfo/gazerbeam.h
> diff --git a/drivers/board/sandbox.c b/drivers/sysinfo/sandbox.c
> similarity index 50%
> rename from drivers/board/sandbox.c
> rename to drivers/sysinfo/sandbox.c
> index 50621e47a4f..62a1cb4ac65 100644
> --- a/drivers/board/sandbox.c
> +++ b/drivers/sysinfo/sandbox.c
> @@ -6,11 +6,11 @@
>
> #include <common.h>
> #include <dm.h>
> -#include <board.h>
> +#include <sysinfo.h>
>
> #include "sandbox.h"
>
> -struct board_sandbox_priv {
> +struct sysinfo_sandbox_priv {
> bool called_detect;
> int test_i1;
> int test_i2;
> @@ -19,9 +19,9 @@ struct board_sandbox_priv {
> char vacation_spots[][64] = {"R'lyeh", "Dreamlands", "Plateau of Leng",
> "Carcosa", "Yuggoth", "The Nameless City"};
>
> -int board_sandbox_detect(struct udevice *dev)
> +int sysinfo_sandbox_detect(struct udevice *dev)
> {
> - struct board_sandbox_priv *priv = dev_get_priv(dev);
> + struct sysinfo_sandbox_priv *priv = dev_get_priv(dev);
>
> priv->called_detect = true;
> priv->test_i2 = 100;
> @@ -29,9 +29,9 @@ int board_sandbox_detect(struct udevice *dev)
> return 0;
> }
>
> -int board_sandbox_get_bool(struct udevice *dev, int id, bool *val)
> +int sysinfo_sandbox_get_bool(struct udevice *dev, int id, bool *val)
> {
> - struct board_sandbox_priv *priv = dev_get_priv(dev);
> + struct sysinfo_sandbox_priv *priv = dev_get_priv(dev);
>
> switch (id) {
> case BOOL_CALLED_DETECT:
> @@ -43,9 +43,9 @@ int board_sandbox_get_bool(struct udevice *dev, int id, bool *val)
> return -ENOENT;
> }
>
> -int board_sandbox_get_int(struct udevice *dev, int id, int *val)
> +int sysinfo_sandbox_get_int(struct udevice *dev, int id, int *val)
> {
> - struct board_sandbox_priv *priv = dev_get_priv(dev);
> + struct sysinfo_sandbox_priv *priv = dev_get_priv(dev);
>
> switch (id) {
> case INT_TEST1:
> @@ -63,9 +63,9 @@ int board_sandbox_get_int(struct udevice *dev, int id, int *val)
> return -ENOENT;
> }
>
> -int board_sandbox_get_str(struct udevice *dev, int id, size_t size, char *val)
> +int sysinfo_sandbox_get_str(struct udevice *dev, int id, size_t size, char *val)
> {
> - struct board_sandbox_priv *priv = dev_get_priv(dev);
> + struct sysinfo_sandbox_priv *priv = dev_get_priv(dev);
> int i1 = priv->test_i1;
> int i2 = priv->test_i2;
> int index = (i1 * i2) % ARRAY_SIZE(vacation_spots);
> @@ -80,28 +80,28 @@ int board_sandbox_get_str(struct udevice *dev, int id, size_t size, char *val)
> return -ENOENT;
> }
>
> -static const struct udevice_id board_sandbox_ids[] = {
> - { .compatible = "sandbox,board_sandbox" },
> +static const struct udevice_id sysinfo_sandbox_ids[] = {
> + { .compatible = "sandbox,sysinfo-sandbox" },
> { /* sentinel */ }
> };
>
> -static const struct board_ops board_sandbox_ops = {
> - .detect = board_sandbox_detect,
> - .get_bool = board_sandbox_get_bool,
> - .get_int = board_sandbox_get_int,
> - .get_str = board_sandbox_get_str,
> +static const struct sysinfo_ops sysinfo_sandbox_ops = {
> + .detect = sysinfo_sandbox_detect,
> + .get_bool = sysinfo_sandbox_get_bool,
> + .get_int = sysinfo_sandbox_get_int,
> + .get_str = sysinfo_sandbox_get_str,
> };
>
> -int board_sandbox_probe(struct udevice *dev)
> +int sysinfo_sandbox_probe(struct udevice *dev)
> {
> return 0;
> }
>
> -U_BOOT_DRIVER(board_sandbox) = {
> - .name = "board_sandbox",
> - .id = UCLASS_BOARD,
> - .of_match = board_sandbox_ids,
> - .ops = &board_sandbox_ops,
> - .priv_auto_alloc_size = sizeof(struct board_sandbox_priv),
> - .probe = board_sandbox_probe,
> +U_BOOT_DRIVER(sysinfo_sandbox) = {
> + .name = "sysinfo_sandbox",
> + .id = UCLASS_SYSINFO,
> + .of_match = sysinfo_sandbox_ids,
> + .ops = &sysinfo_sandbox_ops,
> + .priv_auto_alloc_size = sizeof(struct sysinfo_sandbox_priv),
> + .probe = sysinfo_sandbox_probe,
> };
> diff --git a/drivers/board/sandbox.h b/drivers/sysinfo/sandbox.h
> similarity index 100%
> rename from drivers/board/sandbox.h
> rename to drivers/sysinfo/sandbox.h
> diff --git a/drivers/sysinfo/sysinfo-uclass.c b/drivers/sysinfo/sysinfo-uclass.c
> new file mode 100644
> index 00000000000..6df58fe160b
> --- /dev/null
> +++ b/drivers/sysinfo/sysinfo-uclass.c
> @@ -0,0 +1,71 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * (C) Copyright 2017
> + * Mario Six, Guntermann & Drunck GmbH, mario.six at gdsys.cc
> + */
> +
> +#include <common.h>
> +#include <dm.h>
> +#include <sysinfo.h>
> +
> +int sysinfo_get(struct udevice **devp)
> +{
> + return uclass_first_device_err(UCLASS_SYSINFO, devp);
> +}
> +
> +int sysinfo_detect(struct udevice *dev)
> +{
> + struct sysinfo_ops *ops = sysinfo_get_ops(dev);
> +
> + if (!ops->detect)
> + return -ENOSYS;
> +
> + return ops->detect(dev);
> +}
> +
> +int sysinfo_get_fit_loadable(struct udevice *dev, int index, const char *type,
> + const char **strp)
> +{
> + struct sysinfo_ops *ops = sysinfo_get_ops(dev);
> +
> + if (!ops->get_fit_loadable)
> + return -ENOSYS;
> +
> + return ops->get_fit_loadable(dev, index, type, strp);
> +}
> +
> +int sysinfo_get_bool(struct udevice *dev, int id, bool *val)
> +{
> + struct sysinfo_ops *ops = sysinfo_get_ops(dev);
> +
> + if (!ops->get_bool)
> + return -ENOSYS;
> +
> + return ops->get_bool(dev, id, val);
> +}
> +
> +int sysinfo_get_int(struct udevice *dev, int id, int *val)
> +{
> + struct sysinfo_ops *ops = sysinfo_get_ops(dev);
> +
> + if (!ops->get_int)
> + return -ENOSYS;
> +
> + return ops->get_int(dev, id, val);
> +}
> +
> +int sysinfo_get_str(struct udevice *dev, int id, size_t size, char *val)
> +{
> + struct sysinfo_ops *ops = sysinfo_get_ops(dev);
> +
> + if (!ops->get_str)
> + return -ENOSYS;
> +
> + return ops->get_str(dev, id, size, val);
> +}
> +
> +UCLASS_DRIVER(sysinfo) = {
> + .id = UCLASS_SYSINFO,
> + .name = "sysinfo",
> + .post_bind = dm_scan_fdt_dev,
> +};
> diff --git a/drivers/timer/mpc83xx_timer.c b/drivers/timer/mpc83xx_timer.c
> index ad8bb28e8b3..125056235e7 100644
> --- a/drivers/timer/mpc83xx_timer.c
> +++ b/drivers/timer/mpc83xx_timer.c
> @@ -5,12 +5,12 @@
> */
>
> #include <common.h>
> -#include <board.h>
> #include <clk.h>
> #include <dm.h>
> #include <irq_func.h>
> #include <log.h>
> #include <status_led.h>
> +#include <sysinfo.h>
> #include <time.h>
> #include <timer.h>
> #include <watchdog.h>
> @@ -97,7 +97,7 @@ int interrupt_init(void)
> {
> immap_t *immr = (immap_t *)CONFIG_SYS_IMMR;
> struct udevice *csb;
> - struct udevice *board;
> + struct udevice *sysinfo;
> struct udevice *timer;
> struct mpc83xx_timer_priv *timer_priv;
> struct clk clock;
> @@ -112,12 +112,12 @@ int interrupt_init(void)
>
> timer_priv = dev_get_priv(timer);
>
> - if (board_get(&board)) {
> - debug("%s: board device could not be fetched.\n", __func__);
> + if (sysinfo_get(&sysinfo)) {
> + debug("%s: sysinfo device could not be fetched.\n", __func__);
> return -ENOENT;
> }
>
> - ret = uclass_get_device_by_phandle(UCLASS_SIMPLE_BUS, board,
> + ret = uclass_get_device_by_phandle(UCLASS_SIMPLE_BUS, sysinfo,
> "csb", &csb);
> if (ret) {
> debug("%s: Could not retrieve CSB device (error: %d)",
> diff --git a/include/dm/uclass-id.h b/include/dm/uclass-id.h
> index 88f10c46221..e5f942e8a51 100644
> --- a/include/dm/uclass-id.h
> +++ b/include/dm/uclass-id.h
> @@ -36,7 +36,6 @@ enum uclass_id {
> UCLASS_AUDIO_CODEC, /* Audio codec with control and data path */
> UCLASS_AXI, /* AXI bus */
> UCLASS_BLK, /* Block device */
> - UCLASS_BOARD, /* Device information from hardware */
> UCLASS_BOOTCOUNT, /* Bootcount backing store */
> UCLASS_BUTTON, /* Button */
> UCLASS_CACHE, /* Cache controller */
> @@ -106,6 +105,7 @@ enum uclass_id {
> UCLASS_SPI_GENERIC, /* Generic SPI flash target */
> UCLASS_SPMI, /* System Power Management Interface bus */
> UCLASS_SYSCON, /* System configuration device */
> + UCLASS_SYSINFO, /* Device information from hardware */
> UCLASS_SYSRESET, /* System reset device */
> UCLASS_TEE, /* Trusted Execution Environment device */
> UCLASS_THERMAL, /* Thermal sensor */
> diff --git a/include/board.h b/include/sysinfo.h
> similarity index 65%
> rename from include/board.h
> rename to include/sysinfo.h
> index 678b652b0aa..c045d316b07 100644
> --- a/include/board.h
> +++ b/include/sysinfo.h
> @@ -6,23 +6,23 @@
>
> /*
> * This uclass encapsulates hardware methods to gather information about a
> - * board or a specific device such as hard-wired GPIOs on GPIO expanders,
> + * sysinfo or a specific device such as hard-wired GPIOs on GPIO expanders,
> * read-only data in flash ICs, or similar.
> *
> * The interface offers functions to read the usual standard data types (bool,
> * int, string) from the device, each of which is identified by a static
> * numeric ID (which will usually be defined as a enum in a header file).
> *
> - * If for example the board had a read-only serial number flash IC, we could
> + * If for example the sysinfo had a read-only serial number flash IC, we could
> * call
> *
> - * ret = board_detect(dev);
> + * ret = sysinfo_detect(dev);
> * if (ret) {
> - * debug("board device not found.");
> + * debug("sysinfo device not found.");
> * return ret;
> * }
> *
> - * ret = board_get_int(dev, ID_SERIAL_NUMBER, &serial);
> + * ret = sysinfo_get_int(dev, ID_SERIAL_NUMBER, &serial);
> * if (ret) {
> * debug("Error when reading serial number from device.");
> * return ret;
> @@ -31,8 +31,8 @@
> * to read the serial number.
> */
>
> -#if CONFIG_IS_ENABLED(BOARD)
> -struct board_ops {
> +#if CONFIG_IS_ENABLED(SYSINFO)
> +struct sysinfo_ops {
> /**
> * detect() - Run the hardware info detection procedure for this
> * device.
> @@ -50,7 +50,7 @@ struct board_ops {
> /**
> * get_bool() - Read a specific bool data value that describes the
> * hardware setup.
> - * @dev: The board instance to gather the data.
> + * @dev: The sysinfo instance to gather the data.
> * @id: A unique identifier for the bool value to be read.
> * @val: Pointer to a buffer that receives the value read.
> *
> @@ -61,7 +61,7 @@ struct board_ops {
> /**
> * get_int() - Read a specific int data value that describes the
> * hardware setup.
> - * @dev: The board instance to gather the data.
> + * @dev: The sysinfo instance to gather the data.
> * @id: A unique identifier for the int value to be read.
> * @val: Pointer to a buffer that receives the value read.
> *
> @@ -72,7 +72,7 @@ struct board_ops {
> /**
> * get_str() - Read a specific string data value that describes the
> * hardware setup.
> - * @dev: The board instance to gather the data.
> + * @dev: The sysinfo instance to gather the data.
> * @id: A unique identifier for the string value to be read.
> * @size: The size of the buffer to receive the string data.
> * @val: Pointer to a buffer that receives the value read.
> @@ -87,7 +87,7 @@ struct board_ops {
> * detection. A classic use-case would when DTBOs are used to describe
> * additionnal daughter cards.
> *
> - * @dev: The board instance to gather the data.
> + * @dev: The sysinfo instance to gather the data.
> * @index: Index of the image. Starts at 0 and gets incremented
> * after each call to this function.
> * @type: The type of image. For example, "fdt" for DTBs
> @@ -100,70 +100,70 @@ struct board_ops {
> const char *type, const char **strp);
> };
>
> -#define board_get_ops(dev) ((struct board_ops *)(dev)->driver->ops)
> +#define sysinfo_get_ops(dev) ((struct sysinfo_ops *)(dev)->driver->ops)
>
> /**
> - * board_detect() - Run the hardware info detection procedure for this device.
> + * sysinfo_detect() - Run the hardware info detection procedure for this device.
> *
> * @dev: The device containing the information
> *
> * Return: 0 if OK, -ve on error.
> */
> -int board_detect(struct udevice *dev);
> +int sysinfo_detect(struct udevice *dev);
>
> /**
> - * board_get_bool() - Read a specific bool data value that describes the
> + * sysinfo_get_bool() - Read a specific bool data value that describes the
> * hardware setup.
> - * @dev: The board instance to gather the data.
> + * @dev: The sysinfo instance to gather the data.
> * @id: A unique identifier for the bool value to be read.
> * @val: Pointer to a buffer that receives the value read.
> *
> * Return: 0 if OK, -ve on error.
> */
> -int board_get_bool(struct udevice *dev, int id, bool *val);
> +int sysinfo_get_bool(struct udevice *dev, int id, bool *val);
>
> /**
> - * board_get_int() - Read a specific int data value that describes the
> + * sysinfo_get_int() - Read a specific int data value that describes the
> * hardware setup.
> - * @dev: The board instance to gather the data.
> + * @dev: The sysinfo instance to gather the data.
> * @id: A unique identifier for the int value to be read.
> * @val: Pointer to a buffer that receives the value read.
> *
> * Return: 0 if OK, -ve on error.
> */
> -int board_get_int(struct udevice *dev, int id, int *val);
> +int sysinfo_get_int(struct udevice *dev, int id, int *val);
>
> /**
> - * board_get_str() - Read a specific string data value that describes the
> + * sysinfo_get_str() - Read a specific string data value that describes the
> * hardware setup.
> - * @dev: The board instance to gather the data.
> + * @dev: The sysinfo instance to gather the data.
> * @id: A unique identifier for the string value to be read.
> * @size: The size of the buffer to receive the string data.
> * @val: Pointer to a buffer that receives the value read.
> *
> * Return: 0 if OK, -ve on error.
> */
> -int board_get_str(struct udevice *dev, int id, size_t size, char *val);
> +int sysinfo_get_str(struct udevice *dev, int id, size_t size, char *val);
>
> /**
> - * board_get() - Return the board device for the board in question.
> - * @devp: Pointer to structure to receive the board device.
> + * sysinfo_get() - Return the sysinfo device for the sysinfo in question.
> + * @devp: Pointer to structure to receive the sysinfo device.
> *
> - * Since there can only be at most one board instance, the API can supply a
> + * Since there can only be at most one sysinfo instance, the API can supply a
> * function that returns the unique device. This is especially useful for use
> - * in board files.
> + * in sysinfo files.
> *
> * Return: 0 if OK, -ve on error.
> */
> -int board_get(struct udevice **devp);
> +int sysinfo_get(struct udevice **devp);
>
> /**
> - * board_get_fit_loadable - Get the name of an image to load from FIT
> + * sysinfo_get_fit_loadable - Get the name of an image to load from FIT
> * This function can be used to provide the image names based on runtime
> * detection. A classic use-case would when DTBOs are used to describe
> * additionnal daughter cards.
> *
> - * @dev: The board instance to gather the data.
> + * @dev: The sysinfo instance to gather the data.
> * @index: Index of the image. Starts at 0 and gets incremented
> * after each call to this function.
> * @type: The type of image. For example, "fdt" for DTBs
> @@ -173,39 +173,39 @@ int board_get(struct udevice **devp);
> * Return: 0 if OK, -ENOENT if no loadable is available else -ve on
> * error.
> */
> -int board_get_fit_loadable(struct udevice *dev, int index,
> - const char *type, const char **strp);
> +int sysinfo_get_fit_loadable(struct udevice *dev, int index, const char *type,
> + const char **strp);
>
> #else
>
> -static inline int board_detect(struct udevice *dev)
> +static inline int sysinfo_detect(struct udevice *dev)
> {
> return -ENOSYS;
> }
>
> -static inline int board_get_bool(struct udevice *dev, int id, bool *val)
> +static inline int sysinfo_get_bool(struct udevice *dev, int id, bool *val)
> {
> return -ENOSYS;
> }
>
> -static inline int board_get_int(struct udevice *dev, int id, int *val)
> +static inline int sysinfo_get_int(struct udevice *dev, int id, int *val)
> {
> return -ENOSYS;
> }
>
> -static inline int board_get_str(struct udevice *dev, int id, size_t size,
> - char *val)
> +static inline int sysinfo_get_str(struct udevice *dev, int id, size_t size,
> + char *val)
> {
> return -ENOSYS;
> }
>
> -static inline int board_get(struct udevice **devp)
> +static inline int sysinfo_get(struct udevice **devp)
> {
> return -ENOSYS;
> }
>
> -static inline int board_get_fit_loadable(struct udevice *dev, int index,
> - const char *type, const char **strp)
> +static inline int sysinfo_get_fit_loadable(struct udevice *dev, int index,
> + const char *type, const char **strp)
> {
> return -ENOSYS;
> }
> diff --git a/test/dm/Makefile b/test/dm/Makefile
> index e2b07983885..0d507791a12 100644
> --- a/test/dm/Makefile
> +++ b/test/dm/Makefile
> @@ -18,7 +18,6 @@ obj-$(CONFIG_ACPIGEN) += acpigen.o
> obj-$(CONFIG_ACPIGEN) += acpi_dp.o
> obj-$(CONFIG_SOUND) += audio.o
> obj-$(CONFIG_BLK) += blk.o
> -obj-$(CONFIG_BOARD) += board.o
> obj-$(CONFIG_BUTTON) += button.o
> obj-$(CONFIG_DM_BOOTCOUNT) += bootcount.o
> obj-$(CONFIG_CLK) += clk.o clk_ccf.o
> @@ -71,6 +70,7 @@ obj-$(CONFIG_DM_SERIAL) += serial.o
> obj-$(CONFIG_CPU) += cpu.o
> obj-$(CONFIG_SOC_DEVICE) += soc.o
> obj-$(CONFIG_SOUND) += sound.o
> +obj-$(CONFIG_SYSINFO) += sysinfo.o
> obj-$(CONFIG_TEE) += tee.o
> obj-$(CONFIG_VIRTIO_SANDBOX) += virtio.o
> obj-$(CONFIG_DMA) += dma.o
> diff --git a/test/dm/board.c b/test/dm/board.c
> deleted file mode 100644
> index f3e7f63f258..00000000000
> --- a/test/dm/board.c
> +++ /dev/null
> @@ -1,59 +0,0 @@
> -// SPDX-License-Identifier: GPL-2.0+
> -/*
> - * (C) Copyright 2018
> - * Mario Six, Guntermann & Drunck GmbH, mario.six at gdsys.cc
> - */
> -
> -#include <common.h>
> -#include <dm.h>
> -#include <log.h>
> -#include <dm/test.h>
> -#include <board.h>
> -#include <test/test.h>
> -#include <test/ut.h>
> -
> -#include "../../drivers/board/sandbox.h"
> -
> -static int dm_test_board(struct unit_test_state *uts)
> -{
> - struct udevice *board;
> - bool called_detect;
> - char str[64];
> - int i;
> -
> - board_get(&board);
> - ut_assert(board);
> -
> - board_get_bool(board, BOOL_CALLED_DETECT, &called_detect);
> - ut_assert(!called_detect);
> -
> - board_detect(board);
> -
> - board_get_bool(board, BOOL_CALLED_DETECT, &called_detect);
> - ut_assert(called_detect);
> -
> - board_get_str(board, STR_VACATIONSPOT, sizeof(str), str);
> - ut_assertok(strcmp(str, "R'lyeh"));
> -
> - board_get_int(board, INT_TEST1, &i);
> - ut_asserteq(0, i);
> -
> - board_get_int(board, INT_TEST2, &i);
> - ut_asserteq(100, i);
> -
> - board_get_str(board, STR_VACATIONSPOT, sizeof(str), str);
> - ut_assertok(strcmp(str, "Carcosa"));
> -
> - board_get_int(board, INT_TEST1, &i);
> - ut_asserteq(1, i);
> -
> - board_get_int(board, INT_TEST2, &i);
> - ut_asserteq(99, i);
> -
> - board_get_str(board, STR_VACATIONSPOT, sizeof(str), str);
> - ut_assertok(strcmp(str, "Yuggoth"));
> -
> - return 0;
> -}
> -
> -DM_TEST(dm_test_board, UT_TESTF_SCAN_PDATA | UT_TESTF_SCAN_FDT);
> diff --git a/test/dm/sysinfo.c b/test/dm/sysinfo.c
> new file mode 100644
> index 00000000000..4aaa9e85bce
> --- /dev/null
> +++ b/test/dm/sysinfo.c
> @@ -0,0 +1,59 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * (C) Copyright 2018
> + * Mario Six, Guntermann & Drunck GmbH, mario.six at gdsys.cc
> + */
> +
> +#include <common.h>
> +#include <dm.h>
> +#include <log.h>
> +#include <dm/test.h>
> +#include <sysinfo.h>
> +#include <test/test.h>
> +#include <test/ut.h>
> +
> +#include "../../drivers/sysinfo/sandbox.h"
> +
> +static int dm_test_sysinfo(struct unit_test_state *uts)
> +{
> + struct udevice *sysinfo;
> + bool called_detect;
> + char str[64];
> + int i;
> +
> + ut_assertok(sysinfo_get(&sysinfo));
> + ut_assert(sysinfo);
> +
> + sysinfo_get_bool(sysinfo, BOOL_CALLED_DETECT, &called_detect);
> + ut_assert(!called_detect);
> +
> + sysinfo_detect(sysinfo);
> +
> + sysinfo_get_bool(sysinfo, BOOL_CALLED_DETECT, &called_detect);
> + ut_assert(called_detect);
> +
> + sysinfo_get_str(sysinfo, STR_VACATIONSPOT, sizeof(str), str);
> + ut_assertok(strcmp(str, "R'lyeh"));
> +
> + sysinfo_get_int(sysinfo, INT_TEST1, &i);
> + ut_asserteq(0, i);
> +
> + sysinfo_get_int(sysinfo, INT_TEST2, &i);
> + ut_asserteq(100, i);
> +
> + sysinfo_get_str(sysinfo, STR_VACATIONSPOT, sizeof(str), str);
> + ut_assertok(strcmp(str, "Carcosa"));
> +
> + sysinfo_get_int(sysinfo, INT_TEST1, &i);
> + ut_asserteq(1, i);
> +
> + sysinfo_get_int(sysinfo, INT_TEST2, &i);
> + ut_asserteq(99, i);
> +
> + sysinfo_get_str(sysinfo, STR_VACATIONSPOT, sizeof(str), str);
> + ut_assertok(strcmp(str, "Yuggoth"));
> +
> + return 0;
> +}
> +
> +DM_TEST(dm_test_sysinfo, UT_TESTF_SCAN_PDATA | UT_TESTF_SCAN_FDT);
> --
Regards,
Bin
More information about the U-Boot
mailing list