[PATCH u-boot v2019.04-aspeed-openbmc v2] board: ast2600-ibm: Add AST2600 BMC based POWER10+ servers

Joel Stanley joel at jms.id.au
Fri May 27 14:30:34 AEST 2022


On Thu, 26 May 2022 at 21:59, Eddie James <eajames at linux.ibm.com> wrote:
>
> Support IBM-specific options for POWER10+ servers built on AST2600
> BMC.
>
> Signed-off-by: Eddie James <eajames at linux.ibm.com>
> ---
>  Changes since v1:
>   - Drop the defconfig in favor of yocto fragment
>   - remove __weak for board init
>   - select BOARD_LATE_INIT

Thanks, I've merged this with a minor addition to the commit message
about late init.

I confirmed that setting these two in the config does what we want:

echo CONFIG_BOARD_EARLY_INIT_F=n >> .config
echo CONFIG_TARGET_AST2600_IBM=y >> .config


>
>  arch/arm/mach-aspeed/ast2600/Kconfig |  9 ++++++
>  board/aspeed/ast2600_ibm/Kconfig     | 13 +++++++++
>  board/aspeed/ast2600_ibm/Makefile    |  1 +
>  board/aspeed/ast2600_ibm/ibm.c       | 43 ++++++++++++++++++++++++++++
>  4 files changed, 66 insertions(+)
>  create mode 100644 board/aspeed/ast2600_ibm/Kconfig
>  create mode 100644 board/aspeed/ast2600_ibm/Makefile
>  create mode 100644 board/aspeed/ast2600_ibm/ibm.c
>
> diff --git a/arch/arm/mach-aspeed/ast2600/Kconfig b/arch/arm/mach-aspeed/ast2600/Kconfig
> index fcdc425de5..46cc1ad1db 100644
> --- a/arch/arm/mach-aspeed/ast2600/Kconfig
> +++ b/arch/arm/mach-aspeed/ast2600/Kconfig
> @@ -31,6 +31,14 @@ config TARGET_SLT_AST2600
>         help
>           SLT-AST2600 is Aspeed SLT board for AST2600 chip.
>
> +config TARGET_AST2600_IBM
> +       bool "AST2600-IBM"
> +       select BOARD_LATE_INIT
> +       select TPM
> +       select TPM2_TIS_I2C
> +       help
> +         AST2600-IBM is IBM boards for AST2600 BMC based P0WER10+ servers
> +
>  config TARGET_AST2600_INTEL
>         bool "AST2600-INTEL"
>         depends on ASPEED_AST2600
> @@ -43,6 +51,7 @@ endchoice
>  source "board/aspeed/evb_ast2600/Kconfig"
>  source "board/aspeed/fpga_ast2600/Kconfig"
>  source "board/aspeed/slt_ast2600/Kconfig"
> +source "board/aspeed/ast2600_ibm/Kconfig"
>  source "board/aspeed/ast2600_intel/Kconfig"
>
>  endif
> diff --git a/board/aspeed/ast2600_ibm/Kconfig b/board/aspeed/ast2600_ibm/Kconfig
> new file mode 100644
> index 0000000000..38ee579ed7
> --- /dev/null
> +++ b/board/aspeed/ast2600_ibm/Kconfig
> @@ -0,0 +1,13 @@
> +if TARGET_AST2600_IBM
> +
> +config SYS_BOARD
> +       default "ast2600_ibm"
> +
> +config SYS_VENDOR
> +       default "aspeed"
> +
> +config SYS_CONFIG_NAME
> +       string "board configuration name"
> +       default "ast2600_ibm"
> +
> +endif
> diff --git a/board/aspeed/ast2600_ibm/Makefile b/board/aspeed/ast2600_ibm/Makefile
> new file mode 100644
> index 0000000000..ae1aded893
> --- /dev/null
> +++ b/board/aspeed/ast2600_ibm/Makefile
> @@ -0,0 +1 @@
> +obj-y += ibm.o
> diff --git a/board/aspeed/ast2600_ibm/ibm.c b/board/aspeed/ast2600_ibm/ibm.c
> new file mode 100644
> index 0000000000..37f469435f
> --- /dev/null
> +++ b/board/aspeed/ast2600_ibm/ibm.c
> @@ -0,0 +1,43 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * Copyright 2022 IBM Corp.
> + */
> +
> +#include <common.h>
> +#include <dm/uclass.h>
> +#include <tpm-common.h>
> +#include <tpm-v2.h>
> +
> +int board_late_init(void)
> +{
> +       int rc;
> +       struct udevice *dev;
> +       /*
> +        * The digest is just an arbitrary sequence for now to ensure that the
> +        * TPM gets "poisoned."
> +        */
> +       const unsigned char digest[32] = {
> +               0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x01,
> +               0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09,
> +               0xa0, 0xb1, 0xc2, 0xd3, 0xe4, 0xf5, 0x06, 0x17,
> +               0x28, 0x39, 0x4a, 0x5b, 0x6c, 0x7d, 0x8e, 0x9f
> +       };
> +
> +       rc = uclass_first_device_err(UCLASS_TPM, &dev);
> +       if (rc)
> +               return 0;
> +
> +       rc = tpm_init(dev);
> +       if (rc)
> +               return 0;
> +
> +       rc = tpm2_startup(dev, TPM2_SU_CLEAR);
> +       if (rc)
> +               return 0;
> +
> +       rc = tpm2_pcr_extend(dev, 0, digest);
> +       if (!rc)
> +               printf("TPM: PCR0 extended.\n");
> +
> +       return 0;
> +}
> --
> 2.27.0
>


More information about the openbmc mailing list