[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