diff --git a/.gitmodules b/.gitmodules index 27c579253..347856168 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,4 +1,4 @@ [submodule "buildroot"] path = buildroot - branch = 2021.02-op-build + branch = 2025.02-op-build url = https://github.com/open-power/buildroot diff --git a/buildroot b/buildroot index fb690324f..a872efdc2 160000 --- a/buildroot +++ b/buildroot @@ -1 +1 @@ -Subproject commit fb690324fa1cfee8382aee9049cdf0dd6dd2714f +Subproject commit a872efdc28b2ef527ba329f54f4f1b17a6e7e9eb diff --git a/openpower/configs/blackbird_defconfig b/openpower/configs/blackbird_defconfig index 2d70d26ef..01209b0ce 100644 --- a/openpower/configs/blackbird_defconfig +++ b/openpower/configs/blackbird_defconfig @@ -1,24 +1,20 @@ BR2_powerpc64le=y -BR2_powerpc_power8=y -BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_OP_BUILD_PATH)/patches/blackbird-patches" -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_1=y BR2_BINUTILS_EXTRA_CONFIG_OPTIONS="--enable-targets=powerpc64-linux" -BR2_GCC_VERSION_8_X=y BR2_EXTRA_GCC_CONFIG_OPTIONS="--enable-targets=powerpc64-linux --disable-libsanitizer" BR2_TOOLCHAIN_BUILDROOT_CXX=y +BR2_OPTIMIZE_S=y +BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_OP_BUILD_PATH)/patches/blackbird-patches" BR2_TARGET_GENERIC_HOSTNAME="skiroot" BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y -BR2_ROOTFS_DEVICE_TABLE="../openpower/device_table.txt" -BR2_TARGET_GENERIC_GETTY_PORT="hvc0" BR2_ENABLE_LOCALE_WHITELIST="C de en es fr it ja ko pt_BR ru zh_CN zh_TW" BR2_GENERATE_LOCALE="en_US.UTF-8 de_DE.UTF-8 es_ES.UTF-8 fr_FR.UTF-8 it_IT.UTF-8 ja_JP.UTF-8 ko_KR.UTF-8 pt_BR.UTF-8 ru_RU.UTF-8 zh_CN.UTF-8 zh_TW.UTF-8" BR2_SYSTEM_ENABLE_NLS=y -BR2_ROOTFS_USERS_TABLES="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/users-table" BR2_ROOTFS_OVERLAY="../openpower/overlay" -BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist" +BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist ../openpower/scripts/silence-init" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.10.108" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.1.133" BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig" @@ -35,7 +31,6 @@ BR2_PACKAGE_IPMITOOL=y BR2_PACKAGE_IPMITOOL_USB=y BR2_PACKAGE_MDADM=y BR2_PACKAGE_PCIUTILS=y -BR2_PACKAGE_NCURSES_WCHAR=y BR2_PACKAGE_DROPBEAR=y # BR2_PACKAGE_DROPBEAR_SERVER is not set BR2_PACKAGE_ETHTOOL=y @@ -43,7 +38,9 @@ BR2_PACKAGE_LRZSZ=y BR2_PACKAGE_NETCAT=y BR2_PACKAGE_RSYNC=y BR2_PACKAGE_SUDO=y -BR2_PACKAGE_UTIL_LINUX_AGETTY=y +BR2_PACKAGE_PETITBOOT=y +BR2_PACKAGE_PETITBOOT_GETTY_PORT="hvc* tty0 ttyS*" +BR2_PACKAGE_PETITBOOT_MTD=y BR2_TARGET_ROOTFS_CPIO_XZ=y BR2_TARGET_ROOTFS_INITRAMFS=y BR2_OPENPOWER_PLATFORM=y @@ -66,8 +63,6 @@ BR2_IMA_CATALOG_FILENAME="ima_catalog.bin" BR2_OPENPOWER_TARGETING_BIN_FILENAME="BLACKBIRD_HB.targeting.bin" BR2_OPENPOWER_TARGETING_ECC_FILENAME="BLACKBIRD_HB.targeting.bin.ecc" BR2_BUILD_PNOR_SQUASHFS=y -BR2_PACKAGE_PETITBOOT=y -BR2_PACKAGE_PETITBOOT_MTD=y BR2_CAPP_UCODE_BIN_FILENAME="cappucode.bin" BR2_PACKAGE_LOADKEYS=y BR2_IMA_CATALOG_DTS="POWER9" diff --git a/openpower/configs/mihawk_defconfig b/openpower/configs/mihawk_defconfig index cdccd982f..906a4bd5e 100644 --- a/openpower/configs/mihawk_defconfig +++ b/openpower/configs/mihawk_defconfig @@ -1,24 +1,20 @@ BR2_powerpc64le=y -BR2_powerpc_power8=y -BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_OP_BUILD_PATH)/patches/mihawk-patches" -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_1=y BR2_BINUTILS_EXTRA_CONFIG_OPTIONS="--enable-targets=powerpc64-linux" -BR2_GCC_VERSION_8_X=y BR2_EXTRA_GCC_CONFIG_OPTIONS="--enable-targets=powerpc64-linux --disable-libsanitizer" BR2_TOOLCHAIN_BUILDROOT_CXX=y +BR2_OPTIMIZE_S=y +BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_OP_BUILD_PATH)/patches/mihawk-patches" BR2_TARGET_GENERIC_HOSTNAME="skiroot" BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y -BR2_ROOTFS_DEVICE_TABLE="../openpower/device_table.txt" -BR2_TARGET_GENERIC_GETTY_PORT="hvc0" BR2_ENABLE_LOCALE_WHITELIST="C de en es fr it ja ko pt_BR ru zh_CN zh_TW" BR2_GENERATE_LOCALE="en_US.UTF-8 de_DE.UTF-8 es_ES.UTF-8 fr_FR.UTF-8 it_IT.UTF-8 ja_JP.UTF-8 ko_KR.UTF-8 pt_BR.UTF-8 ru_RU.UTF-8 zh_CN.UTF-8 zh_TW.UTF-8" BR2_SYSTEM_ENABLE_NLS=y -BR2_ROOTFS_USERS_TABLES="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/users-table" BR2_ROOTFS_OVERLAY="../openpower/overlay" -BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist" +BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist ../openpower/scripts/silence-init" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.10.108" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.1.133" BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig" @@ -35,7 +31,6 @@ BR2_PACKAGE_IPMITOOL=y BR2_PACKAGE_IPMITOOL_USB=y BR2_PACKAGE_MDADM=y BR2_PACKAGE_PCIUTILS=y -BR2_PACKAGE_NCURSES_WCHAR=y BR2_PACKAGE_DROPBEAR=y # BR2_PACKAGE_DROPBEAR_SERVER is not set BR2_PACKAGE_ETHTOOL=y @@ -43,7 +38,9 @@ BR2_PACKAGE_LRZSZ=y BR2_PACKAGE_NETCAT=y BR2_PACKAGE_RSYNC=y BR2_PACKAGE_SUDO=y -BR2_PACKAGE_UTIL_LINUX_AGETTY=y +BR2_PACKAGE_PETITBOOT=y +BR2_PACKAGE_PETITBOOT_GETTY_PORT="hvc* tty0 ttyS*" +BR2_PACKAGE_PETITBOOT_MTD=y BR2_TARGET_ROOTFS_CPIO_XZ=y BR2_TARGET_ROOTFS_INITRAMFS=y BR2_OPENPOWER_PLATFORM=y @@ -66,8 +63,6 @@ BR2_IMA_CATALOG_FILENAME="ima_catalog.bin" BR2_OPENPOWER_TARGETING_BIN_FILENAME="MIHAWK_HB.targeting.bin" BR2_OPENPOWER_TARGETING_ECC_FILENAME="MIHAWK_HB.targeting.bin.ecc" BR2_BUILD_PNOR_SQUASHFS=y -BR2_PACKAGE_PETITBOOT=y -BR2_PACKAGE_PETITBOOT_MTD=y BR2_OCC_GPU_BIN_BUILD=y BR2_CAPP_UCODE_BIN_FILENAME="cappucode.bin" BR2_PACKAGE_LOADKEYS=y diff --git a/openpower/configs/mowgli_defconfig b/openpower/configs/mowgli_defconfig index c151a2991..f78d023e1 100644 --- a/openpower/configs/mowgli_defconfig +++ b/openpower/configs/mowgli_defconfig @@ -1,23 +1,19 @@ BR2_powerpc64le=y -BR2_powerpc_power8=y -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_1=y BR2_BINUTILS_EXTRA_CONFIG_OPTIONS="--enable-targets=powerpc64-linux" -BR2_GCC_VERSION_8_X=y BR2_EXTRA_GCC_CONFIG_OPTIONS="--enable-targets=powerpc64-linux --disable-libsanitizer" BR2_TOOLCHAIN_BUILDROOT_CXX=y +BR2_OPTIMIZE_S=y BR2_TARGET_GENERIC_HOSTNAME="skiroot" BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y -BR2_ROOTFS_DEVICE_TABLE="../openpower/device_table.txt" -BR2_TARGET_GENERIC_GETTY_PORT="hvc0" BR2_ENABLE_LOCALE_WHITELIST="C de en es fr it ja ko pt_BR ru zh_CN zh_TW" BR2_GENERATE_LOCALE="en_US.UTF-8 de_DE.UTF-8 es_ES.UTF-8 fr_FR.UTF-8 it_IT.UTF-8 ja_JP.UTF-8 ko_KR.UTF-8 pt_BR.UTF-8 ru_RU.UTF-8 zh_CN.UTF-8 zh_TW.UTF-8" BR2_SYSTEM_ENABLE_NLS=y -BR2_ROOTFS_USERS_TABLES="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/users-table" BR2_ROOTFS_OVERLAY="../openpower/overlay" -BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist" +BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist ../openpower/scripts/silence-init" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.10.108" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.1.133" BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig" @@ -34,7 +30,6 @@ BR2_PACKAGE_IPMITOOL=y BR2_PACKAGE_IPMITOOL_USB=y BR2_PACKAGE_MDADM=y BR2_PACKAGE_PCIUTILS=y -BR2_PACKAGE_NCURSES_WCHAR=y BR2_PACKAGE_DROPBEAR=y # BR2_PACKAGE_DROPBEAR_SERVER is not set BR2_PACKAGE_ETHTOOL=y @@ -43,7 +38,9 @@ BR2_PACKAGE_NETCAT=y BR2_PACKAGE_RSYNC=y BR2_PACKAGE_SUDO=y BR2_PACKAGE_KEYUTILS=y -BR2_PACKAGE_UTIL_LINUX_AGETTY=y +BR2_PACKAGE_PETITBOOT=y +BR2_PACKAGE_PETITBOOT_GETTY_PORT="hvc* tty0 ttyS*" +BR2_PACKAGE_PETITBOOT_MTD=y BR2_TARGET_ROOTFS_CPIO_XZ=y BR2_TARGET_ROOTFS_INITRAMFS=y BR2_OPENPOWER_PLATFORM=y @@ -66,8 +63,6 @@ BR2_IMA_CATALOG_FILENAME="ima_catalog.bin" BR2_OPENPOWER_TARGETING_BIN_FILENAME="MOWGLI_HB.targeting.bin" BR2_OPENPOWER_TARGETING_ECC_FILENAME="MOWGLI_HB.targeting.bin.ecc" BR2_BUILD_PNOR_SQUASHFS=y -BR2_PACKAGE_PETITBOOT=y -BR2_PACKAGE_PETITBOOT_MTD=y # BR2_HCODE_INCLUDE_IONV is not set BR2_CAPP_UCODE_BIN_FILENAME="cappucode.bin" BR2_PACKAGE_LOADKEYS=y diff --git a/openpower/configs/nicole_defconfig b/openpower/configs/nicole_defconfig index 3f64ec283..d3d2f58c8 100644 --- a/openpower/configs/nicole_defconfig +++ b/openpower/configs/nicole_defconfig @@ -1,22 +1,18 @@ BR2_powerpc64le=y -BR2_powerpc_power8=y -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_1=y BR2_BINUTILS_EXTRA_CONFIG_OPTIONS="--enable-targets=powerpc64-linux" -BR2_GCC_VERSION_8_X=y BR2_EXTRA_GCC_CONFIG_OPTIONS="--enable-targets=powerpc64-linux --disable-libsanitizer" BR2_TOOLCHAIN_BUILDROOT_CXX=y +BR2_OPTIMIZE_S=y BR2_TARGET_GENERIC_HOSTNAME="skiroot" BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y -BR2_ROOTFS_DEVICE_TABLE="../openpower/device_table.txt" -BR2_TARGET_GENERIC_GETTY_PORT="hvc0" BR2_GENERATE_LOCALE="en_US.UTF-8" BR2_SYSTEM_ENABLE_NLS=y -BR2_ROOTFS_USERS_TABLES="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/users-table" BR2_ROOTFS_OVERLAY="../openpower/overlay" -BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist" +BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist ../openpower/scripts/silence-init" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.10.108" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.1.133" BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig" @@ -30,7 +26,6 @@ BR2_PACKAGE_IPMITOOL=y BR2_PACKAGE_IPMITOOL_USB=y BR2_PACKAGE_MDADM=y BR2_PACKAGE_PCIUTILS=y -BR2_PACKAGE_NCURSES_WCHAR=y BR2_PACKAGE_DROPBEAR=y # BR2_PACKAGE_DROPBEAR_SERVER is not set BR2_PACKAGE_ETHTOOL=y @@ -38,7 +33,9 @@ BR2_PACKAGE_LRZSZ=y BR2_PACKAGE_NETCAT=y BR2_PACKAGE_RSYNC=y BR2_PACKAGE_SUDO=y -BR2_PACKAGE_UTIL_LINUX_AGETTY=y +BR2_PACKAGE_PETITBOOT=y +BR2_PACKAGE_PETITBOOT_GETTY_PORT="hvc* tty0 ttyS*" +BR2_PACKAGE_PETITBOOT_MTD=y BR2_TARGET_ROOTFS_CPIO_XZ=y BR2_TARGET_ROOTFS_INITRAMFS=y BR2_OPENPOWER_PLATFORM=y @@ -60,8 +57,6 @@ BR2_HOSTBOOT_BINARY_WINK_FILENAME="p9n.ref_image.hdr.bin.ecc" BR2_IMA_CATALOG_FILENAME="ima_catalog.bin" BR2_OPENPOWER_TARGETING_BIN_FILENAME="NICOLE_HB.targeting.bin" BR2_OPENPOWER_TARGETING_ECC_FILENAME="NICOLE_HB.targeting.bin.ecc" -BR2_PACKAGE_PETITBOOT=y -BR2_PACKAGE_PETITBOOT_MTD=y # BR2_HCODE_INCLUDE_IONV is not set BR2_CAPP_UCODE_BIN_FILENAME="cappucode.bin" BR2_PACKAGE_LOADKEYS=y diff --git a/openpower/configs/opal_defconfig b/openpower/configs/opal_defconfig index 18fd797a6..8ac500eb7 100644 --- a/openpower/configs/opal_defconfig +++ b/openpower/configs/opal_defconfig @@ -1,19 +1,16 @@ BR2_powerpc64le=y -BR2_powerpc_power8=y -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_1=y BR2_BINUTILS_EXTRA_CONFIG_OPTIONS="--enable-targets=powerpc64-linux" BR2_EXTRA_GCC_CONFIG_OPTIONS="--enable-targets=powerpc64-linux --disable-libsanitizer" +BR2_OPTIMIZE_S=y BR2_TARGET_GENERIC_HOSTNAME="skiroot" BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y -BR2_ROOTFS_DEVICE_TABLE="../openpower/device_table.txt" -BR2_TARGET_GENERIC_GETTY_PORT="hvc0" BR2_GENERATE_LOCALE="en_US.UTF-8" -BR2_ROOTFS_USERS_TABLES="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/users-table" BR2_ROOTFS_OVERLAY="../openpower/overlay" -BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist" +BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist ../openpower/scripts/silence-init" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.10.108" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.1.133" BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig" @@ -30,7 +27,6 @@ BR2_PACKAGE_IPMITOOL=y BR2_PACKAGE_IPMITOOL_USB=y BR2_PACKAGE_MDADM=y BR2_PACKAGE_PCIUTILS=y -BR2_PACKAGE_NCURSES_WCHAR=y BR2_PACKAGE_DROPBEAR=y # BR2_PACKAGE_DROPBEAR_SERVER is not set BR2_PACKAGE_ETHTOOL=y @@ -38,7 +34,9 @@ BR2_PACKAGE_LRZSZ=y BR2_PACKAGE_NETCAT=y BR2_PACKAGE_RSYNC=y BR2_PACKAGE_SUDO=y -BR2_PACKAGE_UTIL_LINUX_AGETTY=y +BR2_PACKAGE_PETITBOOT=y +BR2_PACKAGE_PETITBOOT_GETTY_PORT="hvc* tty0 ttyS*" +BR2_PACKAGE_PETITBOOT_MTD=y BR2_TARGET_ROOTFS_CPIO_XZ=y BR2_TARGET_ROOTFS_INITRAMFS=y BR2_OPENPOWER_PLATFORM=y @@ -50,8 +48,7 @@ BR2_OPENPOWER_POWER9=y # BR2_PACKAGE_MACHINE_XML is not set # BR2_PACKAGE_OPENPOWER_PNOR is not set BR2_OPENPOWER_CONFIG_NAME="opal" -BR2_PACKAGE_PETITBOOT=y -BR2_PACKAGE_PETITBOOT_MTD=y +# BR2_PACKAGE_HCODE is not set # BR2_PACKAGE_CAPP_UCODE is not set BR2_SKIBOOT_DEVICETREE=y # BR2_PACKAGE_IMA_CATALOG is not set diff --git a/openpower/configs/p9dsu_defconfig b/openpower/configs/p9dsu_defconfig index 7e15dbe59..97f133001 100644 --- a/openpower/configs/p9dsu_defconfig +++ b/openpower/configs/p9dsu_defconfig @@ -1,23 +1,19 @@ BR2_powerpc64le=y -BR2_powerpc_power8=y -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_1=y BR2_BINUTILS_EXTRA_CONFIG_OPTIONS="--enable-targets=powerpc64-linux" -BR2_GCC_VERSION_8_X=y BR2_EXTRA_GCC_CONFIG_OPTIONS="--enable-targets=powerpc64-linux --disable-libsanitizer" BR2_TOOLCHAIN_BUILDROOT_CXX=y +BR2_OPTIMIZE_S=y BR2_TARGET_GENERIC_HOSTNAME="skiroot" BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y -BR2_ROOTFS_DEVICE_TABLE="../openpower/device_table.txt" -BR2_TARGET_GENERIC_GETTY_PORT="hvc0" BR2_ENABLE_LOCALE_WHITELIST="C de en es fr it ja ko pt_BR ru zh_CN zh_TW" BR2_GENERATE_LOCALE="en_US.UTF-8 de_DE.UTF-8 es_ES.UTF-8 fr_FR.UTF-8 it_IT.UTF-8 ja_JP.UTF-8 ko_KR.UTF-8 pt_BR.UTF-8 ru_RU.UTF-8 zh_CN.UTF-8 zh_TW.UTF-8" BR2_SYSTEM_ENABLE_NLS=y -BR2_ROOTFS_USERS_TABLES="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/users-table" BR2_ROOTFS_OVERLAY="../openpower/overlay" -BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist" +BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist ../openpower/scripts/silence-init" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.10.108" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.1.133" BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig" @@ -35,7 +31,6 @@ BR2_PACKAGE_IPMITOOL=y BR2_PACKAGE_IPMITOOL_USB=y BR2_PACKAGE_MDADM=y BR2_PACKAGE_PCIUTILS=y -BR2_PACKAGE_NCURSES_WCHAR=y BR2_PACKAGE_DROPBEAR=y # BR2_PACKAGE_DROPBEAR_SERVER is not set BR2_PACKAGE_ETHTOOL=y @@ -43,7 +38,9 @@ BR2_PACKAGE_LRZSZ=y BR2_PACKAGE_NETCAT=y BR2_PACKAGE_RSYNC=y BR2_PACKAGE_SUDO=y -BR2_PACKAGE_UTIL_LINUX_AGETTY=y +BR2_PACKAGE_PETITBOOT=y +BR2_PACKAGE_PETITBOOT_GETTY_PORT="hvc* tty0 ttyS*" +BR2_PACKAGE_PETITBOOT_MTD=y BR2_TARGET_ROOTFS_CPIO_XZ=y BR2_TARGET_ROOTFS_INITRAMFS=y BR2_OPENPOWER_PLATFORM=y @@ -65,8 +62,6 @@ BR2_HOSTBOOT_BINARY_WINK_FILENAME="p9n.ref_image.hdr.bin.ecc" BR2_IMA_CATALOG_FILENAME="ima_catalog.bin" BR2_OPENPOWER_TARGETING_BIN_FILENAME="P9DSU_HB.targeting.bin" BR2_OPENPOWER_TARGETING_ECC_FILENAME="P9DSU_HB.targeting.bin.ecc" -BR2_PACKAGE_PETITBOOT=y -BR2_PACKAGE_PETITBOOT_MTD=y BR2_CAPP_UCODE_BIN_FILENAME="cappucode.bin" BR2_PACKAGE_LOADKEYS=y BR2_IMA_CATALOG_DTS="POWER9" diff --git a/openpower/configs/romulus_defconfig b/openpower/configs/romulus_defconfig index c4db9f669..d841d8759 100644 --- a/openpower/configs/romulus_defconfig +++ b/openpower/configs/romulus_defconfig @@ -1,23 +1,19 @@ BR2_powerpc64le=y -BR2_powerpc_power8=y -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_1=y BR2_BINUTILS_EXTRA_CONFIG_OPTIONS="--enable-targets=powerpc64-linux" -BR2_GCC_VERSION_8_X=y BR2_EXTRA_GCC_CONFIG_OPTIONS="--enable-targets=powerpc64-linux --disable-libsanitizer" BR2_TOOLCHAIN_BUILDROOT_CXX=y +BR2_OPTIMIZE_S=y BR2_TARGET_GENERIC_HOSTNAME="skiroot" BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y -BR2_ROOTFS_DEVICE_TABLE="../openpower/device_table.txt" -BR2_TARGET_GENERIC_GETTY_PORT="hvc0" BR2_ENABLE_LOCALE_WHITELIST="C de en es fr it ja ko pt_BR ru zh_CN zh_TW" BR2_GENERATE_LOCALE="en_US.UTF-8 de_DE.UTF-8 es_ES.UTF-8 fr_FR.UTF-8 it_IT.UTF-8 ja_JP.UTF-8 ko_KR.UTF-8 pt_BR.UTF-8 ru_RU.UTF-8 zh_CN.UTF-8 zh_TW.UTF-8" BR2_SYSTEM_ENABLE_NLS=y -BR2_ROOTFS_USERS_TABLES="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/users-table" BR2_ROOTFS_OVERLAY="../openpower/overlay" -BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist" +BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist ../openpower/scripts/silence-init" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.10.108" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.1.133" BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig" @@ -34,7 +30,6 @@ BR2_PACKAGE_IPMITOOL=y BR2_PACKAGE_IPMITOOL_USB=y BR2_PACKAGE_MDADM=y BR2_PACKAGE_PCIUTILS=y -BR2_PACKAGE_NCURSES_WCHAR=y BR2_PACKAGE_DROPBEAR=y # BR2_PACKAGE_DROPBEAR_SERVER is not set BR2_PACKAGE_ETHTOOL=y @@ -42,7 +37,9 @@ BR2_PACKAGE_LRZSZ=y BR2_PACKAGE_NETCAT=y BR2_PACKAGE_RSYNC=y BR2_PACKAGE_SUDO=y -BR2_PACKAGE_UTIL_LINUX_AGETTY=y +BR2_PACKAGE_PETITBOOT=y +BR2_PACKAGE_PETITBOOT_GETTY_PORT="hvc* tty0 ttyS*" +BR2_PACKAGE_PETITBOOT_MTD=y BR2_TARGET_ROOTFS_CPIO_XZ=y BR2_TARGET_ROOTFS_INITRAMFS=y BR2_OPENPOWER_PLATFORM=y @@ -64,8 +61,6 @@ BR2_HOSTBOOT_BINARY_WINK_FILENAME="p9n.ref_image.hdr.bin.ecc" BR2_IMA_CATALOG_FILENAME="ima_catalog.bin" BR2_OPENPOWER_TARGETING_BIN_FILENAME="ROMULUS_HB.targeting.bin" BR2_OPENPOWER_TARGETING_ECC_FILENAME="ROMULUS_HB.targeting.bin.ecc" -BR2_PACKAGE_PETITBOOT=y -BR2_PACKAGE_PETITBOOT_MTD=y # BR2_HCODE_INCLUDE_IONV is not set BR2_CAPP_UCODE_BIN_FILENAME="cappucode.bin" BR2_PACKAGE_LOADKEYS=y diff --git a/openpower/configs/swift_defconfig b/openpower/configs/swift_defconfig index 7982db352..dfea50b16 100644 --- a/openpower/configs/swift_defconfig +++ b/openpower/configs/swift_defconfig @@ -1,23 +1,19 @@ BR2_powerpc64le=y -BR2_powerpc_power8=y -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_1=y BR2_BINUTILS_EXTRA_CONFIG_OPTIONS="--enable-targets=powerpc64-linux" -BR2_GCC_VERSION_8_X=y BR2_EXTRA_GCC_CONFIG_OPTIONS="--enable-targets=powerpc64-linux --disable-libsanitizer" BR2_TOOLCHAIN_BUILDROOT_CXX=y +BR2_OPTIMIZE_S=y BR2_TARGET_GENERIC_HOSTNAME="skiroot" BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y -BR2_ROOTFS_DEVICE_TABLE="../openpower/device_table.txt" -BR2_TARGET_GENERIC_GETTY_PORT="hvc0" BR2_ENABLE_LOCALE_WHITELIST="C de en es fr it ja ko pt_BR ru zh_CN zh_TW" BR2_GENERATE_LOCALE="en_US.UTF-8 de_DE.UTF-8 es_ES.UTF-8 fr_FR.UTF-8 it_IT.UTF-8 ja_JP.UTF-8 ko_KR.UTF-8 pt_BR.UTF-8 ru_RU.UTF-8 zh_CN.UTF-8 zh_TW.UTF-8" BR2_SYSTEM_ENABLE_NLS=y -BR2_ROOTFS_USERS_TABLES="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/users-table" BR2_ROOTFS_OVERLAY="../openpower/overlay" -BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist" +BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist ../openpower/scripts/silence-init" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.10.108" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.1.133" BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig" @@ -34,7 +30,6 @@ BR2_PACKAGE_IPMITOOL=y BR2_PACKAGE_IPMITOOL_USB=y BR2_PACKAGE_MDADM=y BR2_PACKAGE_PCIUTILS=y -BR2_PACKAGE_NCURSES_WCHAR=y BR2_PACKAGE_DROPBEAR=y # BR2_PACKAGE_DROPBEAR_SERVER is not set BR2_PACKAGE_ETHTOOL=y @@ -42,7 +37,9 @@ BR2_PACKAGE_LRZSZ=y BR2_PACKAGE_NETCAT=y BR2_PACKAGE_RSYNC=y BR2_PACKAGE_SUDO=y -BR2_PACKAGE_UTIL_LINUX_AGETTY=y +BR2_PACKAGE_PETITBOOT=y +BR2_PACKAGE_PETITBOOT_GETTY_PORT="hvc* tty0 ttyS*" +BR2_PACKAGE_PETITBOOT_MTD=y BR2_TARGET_ROOTFS_CPIO_XZ=y BR2_TARGET_ROOTFS_INITRAMFS=y BR2_OPENPOWER_PLATFORM=y @@ -65,8 +62,6 @@ BR2_IMA_CATALOG_FILENAME="ima_catalog.bin" BR2_OPENPOWER_TARGETING_BIN_FILENAME="SWIFT_HB.targeting.bin" BR2_OPENPOWER_TARGETING_ECC_FILENAME="SWIFT_HB.targeting.bin.ecc" BR2_BUILD_PNOR_SQUASHFS=y -BR2_PACKAGE_PETITBOOT=y -BR2_PACKAGE_PETITBOOT_MTD=y BR2_OCC_GPU_BIN_BUILD=y BR2_CAPP_UCODE_BIN_FILENAME="cappucode.bin" BR2_PACKAGE_LOADKEYS=y diff --git a/openpower/configs/users-table b/openpower/configs/users-table deleted file mode 100644 index 9c3be67c0..000000000 --- a/openpower/configs/users-table +++ /dev/null @@ -1 +0,0 @@ -petituser 1111 petitgroup 2222 - /home/petituser /bin/sh wheel diff --git a/openpower/configs/witherspoon_defconfig b/openpower/configs/witherspoon_defconfig index dfb85cd11..358f1c913 100644 --- a/openpower/configs/witherspoon_defconfig +++ b/openpower/configs/witherspoon_defconfig @@ -1,23 +1,19 @@ BR2_powerpc64le=y -BR2_powerpc_power8=y -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_1=y BR2_BINUTILS_EXTRA_CONFIG_OPTIONS="--enable-targets=powerpc64-linux" -BR2_GCC_VERSION_8_X=y BR2_EXTRA_GCC_CONFIG_OPTIONS="--enable-targets=powerpc64-linux --disable-libsanitizer" BR2_TOOLCHAIN_BUILDROOT_CXX=y +BR2_OPTIMIZE_S=y BR2_TARGET_GENERIC_HOSTNAME="skiroot" BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y -BR2_ROOTFS_DEVICE_TABLE="../openpower/device_table.txt" -BR2_TARGET_GENERIC_GETTY_PORT="hvc0" BR2_ENABLE_LOCALE_WHITELIST="C de en es fr it ja ko pt_BR ru zh_CN zh_TW" BR2_GENERATE_LOCALE="en_US.UTF-8 de_DE.UTF-8 es_ES.UTF-8 fr_FR.UTF-8 it_IT.UTF-8 ja_JP.UTF-8 ko_KR.UTF-8 pt_BR.UTF-8 ru_RU.UTF-8 zh_CN.UTF-8 zh_TW.UTF-8" BR2_SYSTEM_ENABLE_NLS=y -BR2_ROOTFS_USERS_TABLES="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/users-table" BR2_ROOTFS_OVERLAY="../openpower/overlay" -BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist" +BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist ../openpower/scripts/silence-init" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.10.108" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.1.133" BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig" @@ -34,7 +30,6 @@ BR2_PACKAGE_IPMITOOL=y BR2_PACKAGE_IPMITOOL_USB=y BR2_PACKAGE_MDADM=y BR2_PACKAGE_PCIUTILS=y -BR2_PACKAGE_NCURSES_WCHAR=y BR2_PACKAGE_DROPBEAR=y # BR2_PACKAGE_DROPBEAR_SERVER is not set BR2_PACKAGE_ETHTOOL=y @@ -43,7 +38,9 @@ BR2_PACKAGE_NETCAT=y BR2_PACKAGE_RSYNC=y BR2_PACKAGE_SUDO=y BR2_PACKAGE_KEYUTILS=y -BR2_PACKAGE_UTIL_LINUX_AGETTY=y +BR2_PACKAGE_PETITBOOT=y +BR2_PACKAGE_PETITBOOT_GETTY_PORT="hvc* tty0 ttyS*" +BR2_PACKAGE_PETITBOOT_MTD=y BR2_TARGET_ROOTFS_CPIO_XZ=y BR2_TARGET_ROOTFS_INITRAMFS=y BR2_OPENPOWER_PLATFORM=y @@ -66,8 +63,6 @@ BR2_IMA_CATALOG_FILENAME="ima_catalog.bin" BR2_OPENPOWER_TARGETING_BIN_FILENAME="WITHERSPOON_HB.targeting.bin" BR2_OPENPOWER_TARGETING_ECC_FILENAME="WITHERSPOON_HB.targeting.bin.ecc" BR2_BUILD_PNOR_SQUASHFS=y -BR2_PACKAGE_PETITBOOT=y -BR2_PACKAGE_PETITBOOT_MTD=y BR2_OCC_GPU_BIN_BUILD=y BR2_CAPP_UCODE_BIN_FILENAME="cappucode.bin" BR2_PACKAGE_LOADKEYS=y diff --git a/openpower/configs/zaius_defconfig b/openpower/configs/zaius_defconfig index 65e641431..8df991984 100644 --- a/openpower/configs/zaius_defconfig +++ b/openpower/configs/zaius_defconfig @@ -1,23 +1,19 @@ BR2_powerpc64le=y -BR2_powerpc_power8=y -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_1=y BR2_BINUTILS_EXTRA_CONFIG_OPTIONS="--enable-targets=powerpc64-linux" -BR2_GCC_VERSION_8_X=y BR2_EXTRA_GCC_CONFIG_OPTIONS="--enable-targets=powerpc64-linux --disable-libsanitizer" BR2_TOOLCHAIN_BUILDROOT_CXX=y +BR2_OPTIMIZE_S=y BR2_TARGET_GENERIC_HOSTNAME="skiroot" BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y -BR2_ROOTFS_DEVICE_TABLE="../openpower/device_table.txt" -BR2_TARGET_GENERIC_GETTY_PORT="hvc0" BR2_ENABLE_LOCALE_WHITELIST="C de en es fr it ja ko pt_BR ru zh_CN zh_TW" BR2_GENERATE_LOCALE="en_US.UTF-8 de_DE.UTF-8 es_ES.UTF-8 fr_FR.UTF-8 it_IT.UTF-8 ja_JP.UTF-8 ko_KR.UTF-8 pt_BR.UTF-8 ru_RU.UTF-8 zh_CN.UTF-8 zh_TW.UTF-8" BR2_SYSTEM_ENABLE_NLS=y -BR2_ROOTFS_USERS_TABLES="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/users-table" BR2_ROOTFS_OVERLAY="../openpower/overlay" -BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist" +BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist ../openpower/scripts/silence-init" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.10.108" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.1.133" BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig" @@ -34,7 +30,6 @@ BR2_PACKAGE_IPMITOOL=y BR2_PACKAGE_IPMITOOL_USB=y BR2_PACKAGE_MDADM=y BR2_PACKAGE_PCIUTILS=y -BR2_PACKAGE_NCURSES_WCHAR=y BR2_PACKAGE_DROPBEAR=y # BR2_PACKAGE_DROPBEAR_SERVER is not set BR2_PACKAGE_ETHTOOL=y @@ -42,7 +37,9 @@ BR2_PACKAGE_LRZSZ=y BR2_PACKAGE_NETCAT=y BR2_PACKAGE_RSYNC=y BR2_PACKAGE_SUDO=y -BR2_PACKAGE_UTIL_LINUX_AGETTY=y +BR2_PACKAGE_PETITBOOT=y +BR2_PACKAGE_PETITBOOT_GETTY_PORT="hvc* tty0 ttyS*" +BR2_PACKAGE_PETITBOOT_MTD=y BR2_TARGET_ROOTFS_CPIO_XZ=y BR2_TARGET_ROOTFS_INITRAMFS=y BR2_OPENPOWER_PLATFORM=y @@ -64,8 +61,6 @@ BR2_HOSTBOOT_BINARY_WINK_FILENAME="p9n.ref_image.hdr.bin.ecc" BR2_IMA_CATALOG_FILENAME="ima_catalog.bin" BR2_OPENPOWER_TARGETING_BIN_FILENAME="ZAIUS_HB.targeting.bin" BR2_OPENPOWER_TARGETING_ECC_FILENAME="ZAIUS_HB.targeting.bin.ecc" -BR2_PACKAGE_PETITBOOT=y -BR2_PACKAGE_PETITBOOT_MTD=y BR2_CAPP_UCODE_BIN_FILENAME="cappucode.bin" BR2_PACKAGE_LOADKEYS=y BR2_IMA_CATALOG_DTS="POWER9" diff --git a/openpower/configs/zz_defconfig b/openpower/configs/zz_defconfig index d7a42daa1..7db535440 100644 --- a/openpower/configs/zz_defconfig +++ b/openpower/configs/zz_defconfig @@ -1,21 +1,18 @@ BR2_powerpc64le=y -BR2_powerpc_power8=y -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_10=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_1=y BR2_BINUTILS_EXTRA_CONFIG_OPTIONS="--enable-targets=powerpc64-linux" BR2_EXTRA_GCC_CONFIG_OPTIONS="--enable-targets=powerpc64-linux --disable-libsanitizer" +BR2_OPTIMIZE_S=y BR2_TARGET_GENERIC_HOSTNAME="skiroot" BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y -BR2_ROOTFS_DEVICE_TABLE="../openpower/device_table.txt" -BR2_TARGET_GENERIC_GETTY_PORT="hvc0" BR2_ENABLE_LOCALE_WHITELIST="C de en es fr it ja ko pt_BR ru zh_CN zh_TW" BR2_GENERATE_LOCALE="en_US.UTF-8 de_DE.UTF-8 es_ES.UTF-8 fr_FR.UTF-8 it_IT.UTF-8 ja_JP.UTF-8 ko_KR.UTF-8 pt_BR.UTF-8 ru_RU.UTF-8 zh_CN.UTF-8 zh_TW.UTF-8" BR2_SYSTEM_ENABLE_NLS=y -BR2_ROOTFS_USERS_TABLES="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/users-table" BR2_ROOTFS_OVERLAY="../openpower/overlay" -BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist" +BR2_ROOTFS_POST_BUILD_SCRIPT="../openpower/scripts/fixup-target-var ../openpower/scripts/firmware-whitelist ../openpower/scripts/silence-init" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.10.108" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.1.133" BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_OP_BUILD_PATH)/linux" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_OP_BUILD_PATH)/configs/linux/skiroot_defconfig" @@ -31,7 +28,6 @@ BR2_PACKAGE_CRYPTSETUP=y BR2_PACKAGE_IPMITOOL=y BR2_PACKAGE_IPMITOOL_USB=y BR2_PACKAGE_MDADM=y -BR2_PACKAGE_NCURSES_WCHAR=y BR2_PACKAGE_DROPBEAR=y # BR2_PACKAGE_DROPBEAR_SERVER is not set BR2_PACKAGE_ETHTOOL=y @@ -40,7 +36,9 @@ BR2_PACKAGE_NETCAT=y BR2_PACKAGE_RSYNC=y BR2_PACKAGE_SUDO=y BR2_PACKAGE_IPRUTILS=y -BR2_PACKAGE_UTIL_LINUX_AGETTY=y +BR2_PACKAGE_PETITBOOT=y +BR2_PACKAGE_PETITBOOT_GETTY_PORT="hvc* tty0 ttyS*" +BR2_PACKAGE_PETITBOOT_MTD=y BR2_TARGET_ROOTFS_CPIO=y BR2_TARGET_ROOTFS_CPIO_XZ=y BR2_OPENPOWER_PLATFORM=y @@ -54,8 +52,7 @@ BR2_PACKAGE_ALTERNATE_GCC=y # BR2_PACKAGE_OPENPOWER_PNOR is not set BR2_OPENPOWER_CONFIG_NAME="openpower-firenze" # BR2_TARGET_SKIBOOT_XZ is not set -BR2_PACKAGE_PETITBOOT=y -BR2_PACKAGE_PETITBOOT_MTD=y +# BR2_PACKAGE_HCODE is not set # BR2_PACKAGE_CAPP_UCODE is not set BR2_PACKAGE_LOADKEYS=y # BR2_PACKAGE_IMA_CATALOG is not set diff --git a/openpower/device_table.txt b/openpower/device_table.txt deleted file mode 100644 index dc1af5181..000000000 --- a/openpower/device_table.txt +++ /dev/null @@ -1,21 +0,0 @@ -# See package/makedevs/README for details -# -# This device table is used to assign proper ownership and permissions -# on various files. It doesn't create any device file, as it is used -# in both static device configurations (where /dev/ is static) and in -# dynamic configurations (where devtmpfs, mdev or udev are used). -# -# -/dev d 755 0 0 - - - - - -/tmp d 1777 0 0 - - - - - -/etc d 755 0 0 - - - - - -/root d 700 0 0 - - - - - -/var/www d 755 33 33 - - - - - -/etc/shadow f 600 0 0 - - - - - -/etc/passwd f 644 0 0 - - - - - -/etc/network/if-up.d d 755 0 0 - - - - - -/etc/network/if-pre-up.d d 755 0 0 - - - - - -/etc/network/if-down.d d 755 0 0 - - - - - -/etc/network/if-post-down.d d 755 0 0 - - - - - -# uncomment this to allow starting x as non-root -#/usr/X11R6/bin/Xfbdev f 4755 0 0 - - - - - diff --git a/openpower/linux/0001-tpm-Drop-explicit-initialization-of-struct-i2c_devic.patch b/openpower/linux/0001-tpm-Drop-explicit-initialization-of-struct-i2c_devic.patch new file mode 100644 index 000000000..5afc5e453 --- /dev/null +++ b/openpower/linux/0001-tpm-Drop-explicit-initialization-of-struct-i2c_devic.patch @@ -0,0 +1,67 @@ +From e5d76ae8822cf52e4f56a507205d27e8d8b53ec8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= +Date: Mon, 9 Sep 2024 20:26:47 +0300 +Subject: [PATCH] tpm: Drop explicit initialization of struct + i2c_device_id::driver_data to 0 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +These drivers don't use the driver_data member of struct i2c_device_id, +so don't explicitly initialize this member. + +This prepares putting driver_data in an anonymous union which requires +either no initialization or named designators. But it's also a nice +cleanup on its own. + +Signed-off-by: Uwe Kleine-König +Reviewed-by: Jarkko Sakkinen +Signed-off-by: Jarkko Sakkinen +--- + drivers/char/tpm/st33zp24/i2c.c | 2 +- + drivers/char/tpm/tpm_i2c_atmel.c | 2 +- + drivers/char/tpm/tpm_tis_i2c.c | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/drivers/char/tpm/st33zp24/i2c.c b/drivers/char/tpm/st33zp24/i2c.c +index 45ca33b3dcb2..81348487c125 100644 +--- a/drivers/char/tpm/st33zp24/i2c.c ++++ b/drivers/char/tpm/st33zp24/i2c.c +@@ -133,7 +133,7 @@ static void st33zp24_i2c_remove(struct i2c_client *client) + } + + static const struct i2c_device_id st33zp24_i2c_id[] = { +- {TPM_ST33_I2C, 0}, ++ { TPM_ST33_I2C }, + {} + }; + MODULE_DEVICE_TABLE(i2c, st33zp24_i2c_id); +diff --git a/drivers/char/tpm/tpm_i2c_atmel.c b/drivers/char/tpm/tpm_i2c_atmel.c +index 301a95b3734f..d1d27fdfe523 100644 +--- a/drivers/char/tpm/tpm_i2c_atmel.c ++++ b/drivers/char/tpm/tpm_i2c_atmel.c +@@ -186,7 +186,7 @@ static void i2c_atmel_remove(struct i2c_client *client) + } + + static const struct i2c_device_id i2c_atmel_id[] = { +- {I2C_DRIVER_NAME, 0}, ++ { I2C_DRIVER_NAME }, + {} + }; + MODULE_DEVICE_TABLE(i2c, i2c_atmel_id); +diff --git a/drivers/char/tpm/tpm_tis_i2c.c b/drivers/char/tpm/tpm_tis_i2c.c +index 9511c0d50185..6cd07dd34507 100644 +--- a/drivers/char/tpm/tpm_tis_i2c.c ++++ b/drivers/char/tpm/tpm_tis_i2c.c +@@ -375,7 +375,7 @@ static void tpm_tis_i2c_remove(struct i2c_client *client) + } + + static const struct i2c_device_id tpm_tis_i2c_id[] = { +- { "tpm_tis_i2c", 0 }, ++ { "tpm_tis_i2c" }, + {} + }; + MODULE_DEVICE_TABLE(i2c, tpm_tis_i2c_id); +-- +2.43.5 + diff --git a/openpower/linux/0001-tpm-tis_i2c-Add-compatible-string-nuvoton-npct75x.patch b/openpower/linux/0001-tpm-tis_i2c-Add-compatible-string-nuvoton-npct75x.patch new file mode 100644 index 000000000..015a3414c --- /dev/null +++ b/openpower/linux/0001-tpm-tis_i2c-Add-compatible-string-nuvoton-npct75x.patch @@ -0,0 +1,42 @@ +From 6fa6b796e037a15b1c208b1158f801f9adcb1f2b Mon Sep 17 00:00:00 2001 +From: Lukas Wunner +Date: Sat, 13 Jan 2024 18:10:54 +0100 +Subject: [PATCH] tpm: tis_i2c: Add compatible string nuvoton,npct75x +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Add "nuvoton,npct75x" as well as the fallback compatible string +"tcg,tpm-tis-i2c" to the TPM TIS I²C driver. They're used by: + + arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-bonnell.dts + arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-everest.dts + +And by all accounts, NPCT75x is supported by the driver: + + https://lore.kernel.org/all/60e23fd0f0ff4d1f8954034237ae8865@NTILML02.nuvoton.com/ + https://lore.kernel.org/all/20220808220839.1006341-8-peter@pjd.dev/ + +Signed-off-by: Lukas Wunner +Reviewed-by: Jarkko Sakkinen +Signed-off-by: Jarkko Sakkinen +--- + drivers/char/tpm/tpm_tis_i2c.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/drivers/char/tpm/tpm_tis_i2c.c b/drivers/char/tpm/tpm_tis_i2c.c +index a897402cc36a..9511c0d50185 100644 +--- a/drivers/char/tpm/tpm_tis_i2c.c ++++ b/drivers/char/tpm/tpm_tis_i2c.c +@@ -383,6 +383,8 @@ MODULE_DEVICE_TABLE(i2c, tpm_tis_i2c_id); + #ifdef CONFIG_OF + static const struct of_device_id of_tis_i2c_match[] = { + { .compatible = "infineon,slb9673", }, ++ { .compatible = "nuvoton,npct75x", }, ++ { .compatible = "tcg,tpm-tis-i2c", }, + {} + }; + MODULE_DEVICE_TABLE(of, of_tis_i2c_match); +-- +2.43.5 + diff --git a/openpower/linux/0002-Release-OpenPower-kernel.patch b/openpower/linux/0002-Release-OpenPower-kernel.patch index d780e5980..53747e195 100644 --- a/openpower/linux/0002-Release-OpenPower-kernel.patch +++ b/openpower/linux/0002-Release-OpenPower-kernel.patch @@ -13,11 +13,11 @@ index 695f8e739a91..f2280292b96e 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,7 @@ - VERSION = 5 - PATCHLEVEL = 10 - SUBLEVEL = 108 + VERSION = 6 + PATCHLEVEL = 1 + SUBLEVEL = 133 -EXTRAVERSION = +EXTRAVERSION = -openpower1 - NAME = Dare mighty things + NAME = Curry Ramen # *DOCUMENTATION* diff --git a/openpower/linux/0003-tpm-Backport-tpm_tis_i2c-driver-to-5.10.patch b/openpower/linux/0003-tpm-Backport-tpm_tis_i2c-driver-to-5.10.patch deleted file mode 100644 index 68afa222c..000000000 --- a/openpower/linux/0003-tpm-Backport-tpm_tis_i2c-driver-to-5.10.patch +++ /dev/null @@ -1,1011 +0,0 @@ -From 5b3434dbf4f886ec1d661f8390c3b323da2b6adb Mon Sep 17 00:00:00 2001 -From: Alexander Steffen -Date: Wed, 8 Jun 2022 19:31:13 +0200 -Subject: [PATCH] tpm: Backport tpm_tis_i2c driver to 5.10 - -This is a squashed patch of the following commits to add support for the -generic tpm_tis_i2c driver, which supports the Nuvoton npct75x chip. - -bbc23a07b072 tpm: Add tpm_tis_i2c backend for tpm_tis_core -ffd056fa3177 tpm: fix platform_no_drv_owner.cocci warning -561d6ef75628 tpm: tis_i2c: Fix sanity check interrupt enable mask -7bfda9c73fa9 tpm: Add flag to use default cancellation policy -f3b70b6e3390 tpm: tis_i2c: Limit read bursts to I2C_SMBUS_BLOCK_MAX (32) bytes -83e7e5d89f04 tpm: tis_i2c: Limit write bursts to I2C_SMBUS_BLOCK_MAX (32) bytes -6fa6b796e037 tpm: tis_i2c: Add compatible string nuvoton,npct75x -e5d76ae8822c tpm: Drop explicit initialization of struct i2c_device_id::driver_data to 0 -6422cbd3c52d tpm: Remove read16/read32/write32 calls from tpm_tis_phy_ops -f25534a68b8e tpm: Add tpm_tis_verify_crc to the tpm_tis_phy_ops protocol layer ---- - drivers/char/tpm/Kconfig | 12 + - drivers/char/tpm/Makefile | 1 + - drivers/char/tpm/tpm_tis.c | 67 ++--- - drivers/char/tpm/tpm_tis_core.c | 34 ++- - drivers/char/tpm/tpm_tis_core.h | 69 ++++- - drivers/char/tpm/tpm_tis_i2c.c | 408 +++++++++++++++++++++++++++ - drivers/char/tpm/tpm_tis_spi.h | 4 - - drivers/char/tpm/tpm_tis_spi_cr50.c | 7 +- - drivers/char/tpm/tpm_tis_spi_main.c | 45 +-- - drivers/char/tpm/tpm_tis_synquacer.c | 98 +++---- - 10 files changed, 576 insertions(+), 169 deletions(-) - create mode 100644 drivers/char/tpm/tpm_tis_i2c.c - -diff --git a/drivers/char/tpm/Kconfig b/drivers/char/tpm/Kconfig -index a18c314da211..4b090f5475ec 100644 ---- a/drivers/char/tpm/Kconfig -+++ b/drivers/char/tpm/Kconfig -@@ -74,6 +74,18 @@ config TCG_TIS_SPI_CR50 - If you have a H1 secure module running Cr50 firmware on SPI bus, - say Yes and it will be accessible from within Linux. - -+config TCG_TIS_I2C -+ tristate "TPM Interface Specification 1.3 Interface / TPM 2.0 FIFO Interface - (I2C - generic)" -+ depends on I2C -+ select CRC_CCITT -+ select TCG_TIS_CORE -+ help -+ If you have a TPM security chip, compliant with the TCG TPM PTP -+ (I2C interface) specification and connected to an I2C bus master, -+ say Yes and it will be accessible from within Linux. -+ To compile this driver as a module, choose M here; -+ the module will be called tpm_tis_i2c. -+ - config TCG_TIS_SYNQUACER - tristate "TPM Interface Specification 1.2 Interface / TPM 2.0 FIFO Interface (MMIO - SynQuacer)" - depends on ARCH_SYNQUACER -diff --git a/drivers/char/tpm/Makefile b/drivers/char/tpm/Makefile -index 84db4fb3a9c9..011cebc81173 100644 ---- a/drivers/char/tpm/Makefile -+++ b/drivers/char/tpm/Makefile -@@ -27,6 +27,7 @@ obj-$(CONFIG_TCG_TIS_SPI) += tpm_tis_spi.o - tpm_tis_spi-y := tpm_tis_spi_main.o - tpm_tis_spi-$(CONFIG_TCG_TIS_SPI_CR50) += tpm_tis_spi_cr50.o - -+obj-$(CONFIG_TCG_TIS_I2C) += tpm_tis_i2c.o - obj-$(CONFIG_TCG_TIS_I2C_ATMEL) += tpm_i2c_atmel.o - obj-$(CONFIG_TCG_TIS_I2C_INFINEON) += tpm_i2c_infineon.o - obj-$(CONFIG_TCG_TIS_I2C_NUVOTON) += tpm_i2c_nuvoton.o -diff --git a/drivers/char/tpm/tpm_tis.c b/drivers/char/tpm/tpm_tis.c -index 4ed6e660273a..4f11f2790530 100644 ---- a/drivers/char/tpm/tpm_tis.c -+++ b/drivers/char/tpm/tpm_tis.c -@@ -153,50 +153,46 @@ static int check_acpi_tpm2(struct device *dev) - #endif - - static int tpm_tcg_read_bytes(struct tpm_tis_data *data, u32 addr, u16 len, -- u8 *result) -+ u8 *result, enum tpm_tis_io_mode io_mode) - { - struct tpm_tis_tcg_phy *phy = to_tpm_tis_tcg_phy(data); -- -- while (len--) -- *result++ = ioread8(phy->iobase + addr); -+ __le16 result_le16; -+ __le32 result_le32; -+ -+ switch (io_mode) { -+ case TPM_TIS_PHYS_8: -+ while (len--) -+ *result++ = ioread8(phy->iobase + addr); -+ break; -+ case TPM_TIS_PHYS_16: -+ result_le16 = cpu_to_le16(ioread16(phy->iobase + addr)); -+ memcpy(result, &result_le16, sizeof(u16)); -+ break; -+ case TPM_TIS_PHYS_32: -+ result_le32 = cpu_to_le32(ioread32(phy->iobase + addr)); -+ memcpy(result, &result_le32, sizeof(u32)); -+ break; -+ } - - return 0; - } - - static int tpm_tcg_write_bytes(struct tpm_tis_data *data, u32 addr, u16 len, -- const u8 *value) -+ const u8 *value, enum tpm_tis_io_mode io_mode) - { - struct tpm_tis_tcg_phy *phy = to_tpm_tis_tcg_phy(data); - -- while (len--) -- iowrite8(*value++, phy->iobase + addr); -- -- return 0; --} -- --static int tpm_tcg_read16(struct tpm_tis_data *data, u32 addr, u16 *result) --{ -- struct tpm_tis_tcg_phy *phy = to_tpm_tis_tcg_phy(data); -- -- *result = ioread16(phy->iobase + addr); -- -- return 0; --} -- --static int tpm_tcg_read32(struct tpm_tis_data *data, u32 addr, u32 *result) --{ -- struct tpm_tis_tcg_phy *phy = to_tpm_tis_tcg_phy(data); -- -- *result = ioread32(phy->iobase + addr); -- -- return 0; --} -- --static int tpm_tcg_write32(struct tpm_tis_data *data, u32 addr, u32 value) --{ -- struct tpm_tis_tcg_phy *phy = to_tpm_tis_tcg_phy(data); -- -- iowrite32(value, phy->iobase + addr); -+ switch (io_mode) { -+ case TPM_TIS_PHYS_8: -+ while (len--) -+ iowrite8(*value++, phy->iobase + addr); -+ break; -+ case TPM_TIS_PHYS_16: -+ return -EINVAL; -+ case TPM_TIS_PHYS_32: -+ iowrite32(le32_to_cpu(*((__le32 *)value)), phy->iobase + addr); -+ break; -+ } - - return 0; - } -@@ -204,9 +200,6 @@ static int tpm_tcg_write32(struct tpm_tis_data *data, u32 addr, u32 value) - static const struct tpm_tis_phy_ops tpm_tcg = { - .read_bytes = tpm_tcg_read_bytes, - .write_bytes = tpm_tcg_write_bytes, -- .read16 = tpm_tcg_read16, -- .read32 = tpm_tcg_read32, -- .write32 = tpm_tcg_write32, - }; - - static int tpm_tis_init(struct device *dev, struct tpm_info *tpm_info) -diff --git a/drivers/char/tpm/tpm_tis_core.c b/drivers/char/tpm/tpm_tis_core.c -index dc56b976d816..3f98e587b3e8 100644 ---- a/drivers/char/tpm/tpm_tis_core.c -+++ b/drivers/char/tpm/tpm_tis_core.c -@@ -289,6 +289,7 @@ static int tpm_tis_recv(struct tpm_chip *chip, u8 *buf, size_t count) - int size = 0; - int status; - u32 expected; -+ int rc; - - if (count < TPM_HEADER_SIZE) { - size = -EIO; -@@ -328,6 +329,13 @@ static int tpm_tis_recv(struct tpm_chip *chip, u8 *buf, size_t count) - goto out; - } - -+ rc = tpm_tis_verify_crc(priv, (size_t)size, buf); -+ if (rc < 0) { -+ dev_err(&chip->dev, "CRC mismatch for response.\n"); -+ size = rc; -+ goto out; -+ } -+ - out: - tpm_tis_ready(chip); - return size; -@@ -443,6 +451,12 @@ static int tpm_tis_send_main(struct tpm_chip *chip, const u8 *buf, size_t len) - if (rc < 0) - return rc; - -+ rc = tpm_tis_verify_crc(priv, len, buf); -+ if (rc < 0) { -+ dev_err(&chip->dev, "CRC mismatch for command.\n"); -+ return rc; -+ } -+ - /* go and do it */ - rc = tpm_tis_write8(priv, TPM_STS(priv->locality), TPM_STS_GO); - if (rc < 0) -@@ -668,15 +682,19 @@ static bool tpm_tis_req_canceled(struct tpm_chip *chip, u8 status) - { - struct tpm_tis_data *priv = dev_get_drvdata(&chip->dev); - -- switch (priv->manufacturer_id) { -- case TPM_VID_WINBOND: -- return ((status == TPM_STS_VALID) || -- (status == (TPM_STS_VALID | TPM_STS_COMMAND_READY))); -- case TPM_VID_STM: -- return (status == (TPM_STS_VALID | TPM_STS_COMMAND_READY)); -- default: -- return (status == TPM_STS_COMMAND_READY); -+ if (!test_bit(TPM_TIS_DEFAULT_CANCELLATION, &priv->flags)) { -+ switch (priv->manufacturer_id) { -+ case TPM_VID_WINBOND: -+ return ((status == TPM_STS_VALID) || -+ (status == (TPM_STS_VALID | TPM_STS_COMMAND_READY))); -+ case TPM_VID_STM: -+ return (status == (TPM_STS_VALID | TPM_STS_COMMAND_READY)); -+ default: -+ break; -+ } - } -+ -+ return status == TPM_STS_COMMAND_READY; - } - - static irqreturn_t tis_int_handler(int dummy, void *dev_id) -diff --git a/drivers/char/tpm/tpm_tis_core.h b/drivers/char/tpm/tpm_tis_core.h -index 3be24f221e32..b68479e0de10 100644 ---- a/drivers/char/tpm/tpm_tis_core.h -+++ b/drivers/char/tpm/tpm_tis_core.h -@@ -86,6 +86,7 @@ enum tis_defaults { - enum tpm_tis_flags { - TPM_TIS_ITPM_WORKAROUND = BIT(0), - TPM_TIS_INVALID_STATUS = BIT(1), -+ TPM_TIS_DEFAULT_CANCELLATION = BIT(2), - }; - - struct tpm_tis_data { -@@ -104,54 +105,98 @@ struct tpm_tis_data { - unsigned int timeout_max; /* usecs */ - }; - -+/* -+ * IO modes to indicate how many bytes should be read/written at once in the -+ * tpm_tis_phy_ops read_bytes/write_bytes calls. Use TPM_TIS_PHYS_8 to -+ * receive/transmit byte-wise, TPM_TIS_PHYS_16 for two bytes etc. -+ */ -+enum tpm_tis_io_mode { -+ TPM_TIS_PHYS_8, -+ TPM_TIS_PHYS_16, -+ TPM_TIS_PHYS_32, -+}; -+ - struct tpm_tis_phy_ops { -+ /* data is passed in little endian */ - int (*read_bytes)(struct tpm_tis_data *data, u32 addr, u16 len, -- u8 *result); -+ u8 *result, enum tpm_tis_io_mode mode); - int (*write_bytes)(struct tpm_tis_data *data, u32 addr, u16 len, -- const u8 *value); -- int (*read16)(struct tpm_tis_data *data, u32 addr, u16 *result); -- int (*read32)(struct tpm_tis_data *data, u32 addr, u32 *result); -- int (*write32)(struct tpm_tis_data *data, u32 addr, u32 src); -+ const u8 *value, enum tpm_tis_io_mode mode); -+ int (*verify_crc)(struct tpm_tis_data *data, size_t len, -+ const u8 *value); - }; - - static inline int tpm_tis_read_bytes(struct tpm_tis_data *data, u32 addr, - u16 len, u8 *result) - { -- return data->phy_ops->read_bytes(data, addr, len, result); -+ return data->phy_ops->read_bytes(data, addr, len, result, -+ TPM_TIS_PHYS_8); - } - - static inline int tpm_tis_read8(struct tpm_tis_data *data, u32 addr, u8 *result) - { -- return data->phy_ops->read_bytes(data, addr, 1, result); -+ return data->phy_ops->read_bytes(data, addr, 1, result, TPM_TIS_PHYS_8); - } - - static inline int tpm_tis_read16(struct tpm_tis_data *data, u32 addr, - u16 *result) - { -- return data->phy_ops->read16(data, addr, result); -+ __le16 result_le; -+ int rc; -+ -+ rc = data->phy_ops->read_bytes(data, addr, sizeof(u16), -+ (u8 *)&result_le, TPM_TIS_PHYS_16); -+ if (!rc) -+ *result = le16_to_cpu(result_le); -+ -+ return rc; - } - - static inline int tpm_tis_read32(struct tpm_tis_data *data, u32 addr, - u32 *result) - { -- return data->phy_ops->read32(data, addr, result); -+ __le32 result_le; -+ int rc; -+ -+ rc = data->phy_ops->read_bytes(data, addr, sizeof(u32), -+ (u8 *)&result_le, TPM_TIS_PHYS_32); -+ if (!rc) -+ *result = le32_to_cpu(result_le); -+ -+ return rc; - } - - static inline int tpm_tis_write_bytes(struct tpm_tis_data *data, u32 addr, - u16 len, const u8 *value) - { -- return data->phy_ops->write_bytes(data, addr, len, value); -+ return data->phy_ops->write_bytes(data, addr, len, value, -+ TPM_TIS_PHYS_8); - } - - static inline int tpm_tis_write8(struct tpm_tis_data *data, u32 addr, u8 value) - { -- return data->phy_ops->write_bytes(data, addr, 1, &value); -+ return data->phy_ops->write_bytes(data, addr, 1, &value, -+ TPM_TIS_PHYS_8); - } - - static inline int tpm_tis_write32(struct tpm_tis_data *data, u32 addr, - u32 value) - { -- return data->phy_ops->write32(data, addr, value); -+ __le32 value_le; -+ int rc; -+ -+ value_le = cpu_to_le32(value); -+ rc = data->phy_ops->write_bytes(data, addr, sizeof(u32), -+ (u8 *)&value_le, TPM_TIS_PHYS_32); -+ return rc; -+} -+ -+static inline int tpm_tis_verify_crc(struct tpm_tis_data *data, size_t len, -+ const u8 *value) -+{ -+ if (!data->phy_ops->verify_crc) -+ return 0; -+ return data->phy_ops->verify_crc(data, len, value); - } - - static inline bool is_bsw(void) -diff --git a/drivers/char/tpm/tpm_tis_i2c.c b/drivers/char/tpm/tpm_tis_i2c.c -new file mode 100644 -index 000000000000..f9dd9b32a9d2 ---- /dev/null -+++ b/drivers/char/tpm/tpm_tis_i2c.c -@@ -0,0 +1,408 @@ -+// SPDX-License-Identifier: GPL-2.0 -+/* -+ * Copyright (c) 2014-2021 Nuvoton Technology corporation -+ * Copyright (C) 2019-2022 Infineon Technologies AG -+ * -+ * This device driver implements the TPM interface as defined in the TCG PC -+ * Client Platform TPM Profile (PTP) Specification for TPM 2.0 v1.04 -+ * Revision 14. -+ * -+ * It is based on the tpm_tis_spi device driver. -+ */ -+ -+#include -+#include -+#include "tpm_tis_core.h" -+ -+/* TPM registers */ -+#define TPM_I2C_LOC_SEL 0x00 -+#define TPM_I2C_ACCESS 0x04 -+#define TPM_I2C_INTERFACE_CAPABILITY 0x30 -+#define TPM_I2C_DEVICE_ADDRESS 0x38 -+#define TPM_I2C_DATA_CSUM_ENABLE 0x40 -+#define TPM_DATA_CSUM 0x44 -+#define TPM_I2C_DID_VID 0x48 -+#define TPM_I2C_RID 0x4C -+ -+/* TIS-compatible register address to avoid clash with TPM_ACCESS (0x00) */ -+#define TPM_LOC_SEL 0x0FFF -+ -+/* Mask to extract the I2C register from TIS register addresses */ -+#define TPM_TIS_REGISTER_MASK 0x0FFF -+ -+/* Default Guard Time of 250µs until interface capability register is read */ -+#define GUARD_TIME_DEFAULT_MIN 250 -+#define GUARD_TIME_DEFAULT_MAX 300 -+ -+/* Guard Time of 250µs after I2C slave NACK */ -+#define GUARD_TIME_ERR_MIN 250 -+#define GUARD_TIME_ERR_MAX 300 -+ -+/* Guard Time bit masks; SR is repeated start, RW is read then write, etc. */ -+#define TPM_GUARD_TIME_SR_MASK 0x40000000 -+#define TPM_GUARD_TIME_RR_MASK 0x00100000 -+#define TPM_GUARD_TIME_RW_MASK 0x00080000 -+#define TPM_GUARD_TIME_WR_MASK 0x00040000 -+#define TPM_GUARD_TIME_WW_MASK 0x00020000 -+#define TPM_GUARD_TIME_MIN_MASK 0x0001FE00 -+#define TPM_GUARD_TIME_MIN_SHIFT 9 -+ -+/* Masks with bits that must be read zero */ -+#define TPM_ACCESS_READ_ZERO 0x48 -+#define TPM_INT_ENABLE_ZERO 0x7FFFFF60 -+#define TPM_STS_READ_ZERO 0x23 -+#define TPM_INTF_CAPABILITY_ZERO 0x0FFFF000 -+#define TPM_I2C_INTERFACE_CAPABILITY_ZERO 0x80000000 -+ -+struct tpm_tis_i2c_phy { -+ struct tpm_tis_data priv; -+ struct i2c_client *i2c_client; -+ bool guard_time_read; -+ bool guard_time_write; -+ u16 guard_time_min; -+ u16 guard_time_max; -+ u8 *io_buf; -+}; -+ -+static inline struct tpm_tis_i2c_phy * -+to_tpm_tis_i2c_phy(struct tpm_tis_data *data) -+{ -+ return container_of(data, struct tpm_tis_i2c_phy, priv); -+} -+ -+/* -+ * tpm_tis_core uses the register addresses as defined in Table 19 "Allocation -+ * of Register Space for FIFO TPM Access" of the TCG PC Client PTP -+ * Specification. In order for this code to work together with tpm_tis_core, -+ * those addresses need to mapped to the registers defined for I2C TPMs in -+ * Table 51 "I2C-TPM Register Overview". -+ * -+ * For most addresses this can be done by simply stripping off the locality -+ * information from the address. A few addresses need to be mapped explicitly, -+ * since the corresponding I2C registers have been moved around. TPM_LOC_SEL is -+ * only defined for I2C TPMs and is also mapped explicitly here to distinguish -+ * it from TPM_ACCESS(0). -+ * -+ * Locality information is ignored, since this driver assumes exclusive access -+ * to the TPM and always uses locality 0. -+ */ -+static u8 tpm_tis_i2c_address_to_register(u32 addr) -+{ -+ addr &= TPM_TIS_REGISTER_MASK; -+ -+ switch (addr) { -+ case TPM_ACCESS(0): -+ return TPM_I2C_ACCESS; -+ case TPM_LOC_SEL: -+ return TPM_I2C_LOC_SEL; -+ case TPM_DID_VID(0): -+ return TPM_I2C_DID_VID; -+ case TPM_RID(0): -+ return TPM_I2C_RID; -+ default: -+ return addr; -+ } -+} -+ -+static int tpm_tis_i2c_retry_transfer_until_ack(struct tpm_tis_data *data, -+ struct i2c_msg *msg) -+{ -+ struct tpm_tis_i2c_phy *phy = to_tpm_tis_i2c_phy(data); -+ bool guard_time; -+ int i = 0; -+ int ret; -+ -+ if (msg->flags & I2C_M_RD) -+ guard_time = phy->guard_time_read; -+ else -+ guard_time = phy->guard_time_write; -+ -+ do { -+ ret = i2c_transfer(phy->i2c_client->adapter, msg, 1); -+ if (ret < 0) -+ usleep_range(GUARD_TIME_ERR_MIN, GUARD_TIME_ERR_MAX); -+ else if (guard_time) -+ usleep_range(phy->guard_time_min, phy->guard_time_max); -+ /* retry on TPM NACK */ -+ } while (ret < 0 && i++ < TPM_RETRY); -+ -+ return ret; -+} -+ -+/* Check that bits which must be read zero are not set */ -+static int tpm_tis_i2c_sanity_check_read(u8 reg, u16 len, u8 *buf) -+{ -+ u32 zero_mask; -+ u32 value; -+ -+ switch (len) { -+ case sizeof(u8): -+ value = buf[0]; -+ break; -+ case sizeof(u16): -+ value = le16_to_cpup((__le16 *)buf); -+ break; -+ case sizeof(u32): -+ value = le32_to_cpup((__le32 *)buf); -+ break; -+ default: -+ /* unknown length, skip check */ -+ return 0; -+ } -+ -+ switch (reg) { -+ case TPM_I2C_ACCESS: -+ zero_mask = TPM_ACCESS_READ_ZERO; -+ break; -+ case TPM_INT_ENABLE(0) & TPM_TIS_REGISTER_MASK: -+ zero_mask = TPM_INT_ENABLE_ZERO; -+ break; -+ case TPM_STS(0) & TPM_TIS_REGISTER_MASK: -+ zero_mask = TPM_STS_READ_ZERO; -+ break; -+ case TPM_INTF_CAPS(0) & TPM_TIS_REGISTER_MASK: -+ zero_mask = TPM_INTF_CAPABILITY_ZERO; -+ break; -+ case TPM_I2C_INTERFACE_CAPABILITY: -+ zero_mask = TPM_I2C_INTERFACE_CAPABILITY_ZERO; -+ break; -+ default: -+ /* unknown register, skip check */ -+ return 0; -+ } -+ -+ if (unlikely((value & zero_mask) != 0x00)) { -+ pr_debug("TPM I2C read of register 0x%02x failed sanity check: 0x%x\n", reg, value); -+ return -EIO; -+ } -+ -+ return 0; -+} -+ -+static int tpm_tis_i2c_read_bytes(struct tpm_tis_data *data, u32 addr, u16 len, -+ u8 *result, enum tpm_tis_io_mode io_mode) -+{ -+ struct tpm_tis_i2c_phy *phy = to_tpm_tis_i2c_phy(data); -+ struct i2c_msg msg = { .addr = phy->i2c_client->addr }; -+ u8 reg = tpm_tis_i2c_address_to_register(addr); -+ int i; -+ int ret; -+ -+ for (i = 0; i < TPM_RETRY; i++) { -+ u16 read = 0; -+ -+ while (read < len) { -+ /* write register */ -+ msg.len = sizeof(reg); -+ msg.buf = ® -+ msg.flags = 0; -+ ret = tpm_tis_i2c_retry_transfer_until_ack(data, &msg); -+ if (ret < 0) -+ return ret; -+ -+ /* read data */ -+ msg.buf = result + read; -+ msg.len = len - read; -+ msg.flags = I2C_M_RD; -+ if (msg.len > I2C_SMBUS_BLOCK_MAX) -+ msg.len = I2C_SMBUS_BLOCK_MAX; -+ ret = tpm_tis_i2c_retry_transfer_until_ack(data, &msg); -+ if (ret < 0) -+ return ret; -+ read += msg.len; -+ } -+ -+ ret = tpm_tis_i2c_sanity_check_read(reg, len, result); -+ if (ret == 0) -+ return 0; -+ -+ usleep_range(GUARD_TIME_ERR_MIN, GUARD_TIME_ERR_MAX); -+ } -+ -+ return ret; -+} -+ -+static int tpm_tis_i2c_write_bytes(struct tpm_tis_data *data, u32 addr, u16 len, -+ const u8 *value, -+ enum tpm_tis_io_mode io_mode) -+{ -+ struct tpm_tis_i2c_phy *phy = to_tpm_tis_i2c_phy(data); -+ struct i2c_msg msg = { .addr = phy->i2c_client->addr }; -+ u8 reg = tpm_tis_i2c_address_to_register(addr); -+ int ret; -+ u16 wrote = 0; -+ -+ if (len > TPM_BUFSIZE - 1) -+ return -EIO; -+ -+ phy->io_buf[0] = reg; -+ msg.buf = phy->io_buf; -+ while (wrote < len) { -+ /* write register and data in one go */ -+ msg.len = sizeof(reg) + len - wrote; -+ if (msg.len > I2C_SMBUS_BLOCK_MAX) -+ msg.len = I2C_SMBUS_BLOCK_MAX; -+ -+ memcpy(phy->io_buf + sizeof(reg), value + wrote, -+ msg.len - sizeof(reg)); -+ -+ ret = tpm_tis_i2c_retry_transfer_until_ack(data, &msg); -+ if (ret < 0) -+ return ret; -+ wrote += msg.len - sizeof(reg); -+ } -+ -+ return 0; -+} -+ -+static int tpm_tis_i2c_verify_crc(struct tpm_tis_data *data, size_t len, -+ const u8 *value) -+{ -+ u16 crc_tpm, crc_host; -+ int rc; -+ -+ rc = tpm_tis_read16(data, TPM_DATA_CSUM, &crc_tpm); -+ if (rc < 0) -+ return rc; -+ -+ /* reflect crc result, regardless of host endianness */ -+ crc_host = swab16(crc_ccitt(0, value, len)); -+ if (crc_tpm != crc_host) -+ return -EIO; -+ -+ return 0; -+} -+ -+/* -+ * Guard Time: -+ * After each I2C operation, the TPM might require the master to wait. -+ * The time period is vendor-specific and must be read from the -+ * TPM_I2C_INTERFACE_CAPABILITY register. -+ * -+ * Before the Guard Time is read (or after the TPM failed to send an I2C NACK), -+ * a Guard Time of 250µs applies. -+ * -+ * Various flags in the same register indicate if a guard time is needed: -+ * - SR: -+ * - RR: -+ * - RW: -+ * - WR: -+ * - WW: -+ * -+ * See TCG PC Client PTP Specification v1.04, 8.1.10 GUARD_TIME -+ */ -+static int tpm_tis_i2c_init_guard_time(struct tpm_tis_i2c_phy *phy) -+{ -+ u32 i2c_caps; -+ int ret; -+ -+ phy->guard_time_read = true; -+ phy->guard_time_write = true; -+ phy->guard_time_min = GUARD_TIME_DEFAULT_MIN; -+ phy->guard_time_max = GUARD_TIME_DEFAULT_MAX; -+ -+ ret = tpm_tis_i2c_read_bytes(&phy->priv, TPM_I2C_INTERFACE_CAPABILITY, -+ sizeof(i2c_caps), (u8 *)&i2c_caps, -+ TPM_TIS_PHYS_32); -+ if (ret) -+ return ret; -+ -+ phy->guard_time_read = (i2c_caps & TPM_GUARD_TIME_RR_MASK) || -+ (i2c_caps & TPM_GUARD_TIME_RW_MASK); -+ phy->guard_time_write = (i2c_caps & TPM_GUARD_TIME_WR_MASK) || -+ (i2c_caps & TPM_GUARD_TIME_WW_MASK); -+ phy->guard_time_min = (i2c_caps & TPM_GUARD_TIME_MIN_MASK) >> -+ TPM_GUARD_TIME_MIN_SHIFT; -+ /* guard_time_max = guard_time_min * 1.2 */ -+ phy->guard_time_max = phy->guard_time_min + phy->guard_time_min / 5; -+ -+ return 0; -+} -+ -+static SIMPLE_DEV_PM_OPS(tpm_tis_pm, tpm_pm_suspend, tpm_tis_resume); -+ -+static const struct tpm_tis_phy_ops tpm_i2c_phy_ops = { -+ .read_bytes = tpm_tis_i2c_read_bytes, -+ .write_bytes = tpm_tis_i2c_write_bytes, -+ .verify_crc = tpm_tis_i2c_verify_crc, -+}; -+ -+static int tpm_tis_i2c_probe(struct i2c_client *dev, -+ const struct i2c_device_id *id) -+{ -+ struct tpm_tis_i2c_phy *phy; -+ const u8 crc_enable = 1; -+ const u8 locality = 0; -+ int ret; -+ -+ phy = devm_kzalloc(&dev->dev, sizeof(struct tpm_tis_i2c_phy), -+ GFP_KERNEL); -+ if (!phy) -+ return -ENOMEM; -+ -+ phy->io_buf = devm_kzalloc(&dev->dev, TPM_BUFSIZE, GFP_KERNEL); -+ if (!phy->io_buf) -+ return -ENOMEM; -+ -+ set_bit(TPM_TIS_DEFAULT_CANCELLATION, &phy->priv.flags); -+ phy->i2c_client = dev; -+ -+ /* must precede all communication with the tpm */ -+ ret = tpm_tis_i2c_init_guard_time(phy); -+ if (ret) -+ return ret; -+ -+ ret = tpm_tis_i2c_write_bytes(&phy->priv, TPM_LOC_SEL, sizeof(locality), -+ &locality, TPM_TIS_PHYS_8); -+ if (ret) -+ return ret; -+ -+ ret = tpm_tis_i2c_write_bytes(&phy->priv, TPM_I2C_DATA_CSUM_ENABLE, -+ sizeof(crc_enable), &crc_enable, -+ TPM_TIS_PHYS_8); -+ if (ret) -+ return ret; -+ -+ return tpm_tis_core_init(&dev->dev, &phy->priv, -1, &tpm_i2c_phy_ops, -+ NULL); -+} -+ -+static int tpm_tis_i2c_remove(struct i2c_client *client) -+{ -+ struct tpm_chip *chip = i2c_get_clientdata(client); -+ -+ tpm_chip_unregister(chip); -+ tpm_tis_remove(chip); -+ return 0; -+} -+ -+static const struct i2c_device_id tpm_tis_i2c_id[] = { -+ { "tpm_tis_i2c", 0 }, -+ {} -+}; -+MODULE_DEVICE_TABLE(i2c, tpm_tis_i2c_id); -+ -+#ifdef CONFIG_OF -+static const struct of_device_id of_tis_i2c_match[] = { -+ { .compatible = "infineon,slb9673", }, -+ { .compatible = "nuvoton,npct75x", }, -+ { .compatible = "tcg,tpm-tis-i2c", }, -+ {} -+}; -+MODULE_DEVICE_TABLE(of, of_tis_i2c_match); -+#endif -+ -+static struct i2c_driver tpm_tis_i2c_driver = { -+ .driver = { -+ .name = "tpm_tis_i2c", -+ .pm = &tpm_tis_pm, -+ .of_match_table = of_match_ptr(of_tis_i2c_match), -+ }, -+ .probe = tpm_tis_i2c_probe, -+ .remove = tpm_tis_i2c_remove, -+ .id_table = tpm_tis_i2c_id, -+}; -+module_i2c_driver(tpm_tis_i2c_driver); -+ -+MODULE_DESCRIPTION("TPM Driver for native I2C access"); -+MODULE_LICENSE("GPL"); -diff --git a/drivers/char/tpm/tpm_tis_spi.h b/drivers/char/tpm/tpm_tis_spi.h -index bba73979c368..d0f66f6f1931 100644 ---- a/drivers/char/tpm/tpm_tis_spi.h -+++ b/drivers/char/tpm/tpm_tis_spi.h -@@ -31,10 +31,6 @@ extern int tpm_tis_spi_init(struct spi_device *spi, struct tpm_tis_spi_phy *phy, - extern int tpm_tis_spi_transfer(struct tpm_tis_data *data, u32 addr, u16 len, - u8 *in, const u8 *out); - --extern int tpm_tis_spi_read16(struct tpm_tis_data *data, u32 addr, u16 *result); --extern int tpm_tis_spi_read32(struct tpm_tis_data *data, u32 addr, u32 *result); --extern int tpm_tis_spi_write32(struct tpm_tis_data *data, u32 addr, u32 value); -- - #ifdef CONFIG_TCG_TIS_SPI_CR50 - extern int cr50_spi_probe(struct spi_device *spi); - #else -diff --git a/drivers/char/tpm/tpm_tis_spi_cr50.c b/drivers/char/tpm/tpm_tis_spi_cr50.c -index ea759af25634..6d3092e2df46 100644 ---- a/drivers/char/tpm/tpm_tis_spi_cr50.c -+++ b/drivers/char/tpm/tpm_tis_spi_cr50.c -@@ -206,13 +206,13 @@ static int tpm_tis_spi_cr50_transfer(struct tpm_tis_data *data, u32 addr, u16 le - } - - static int tpm_tis_spi_cr50_read_bytes(struct tpm_tis_data *data, u32 addr, -- u16 len, u8 *result) -+ u16 len, u8 *result, enum tpm_tis_io_mode io_mode) - { - return tpm_tis_spi_cr50_transfer(data, addr, len, result, NULL); - } - - static int tpm_tis_spi_cr50_write_bytes(struct tpm_tis_data *data, u32 addr, -- u16 len, const u8 *value) -+ u16 len, const u8 *value, enum tpm_tis_io_mode io_mode) - { - return tpm_tis_spi_cr50_transfer(data, addr, len, NULL, value); - } -@@ -220,9 +220,6 @@ static int tpm_tis_spi_cr50_write_bytes(struct tpm_tis_data *data, u32 addr, - static const struct tpm_tis_phy_ops tpm_spi_cr50_phy_ops = { - .read_bytes = tpm_tis_spi_cr50_read_bytes, - .write_bytes = tpm_tis_spi_cr50_write_bytes, -- .read16 = tpm_tis_spi_read16, -- .read32 = tpm_tis_spi_read32, -- .write32 = tpm_tis_spi_write32, - }; - - static void cr50_print_fw_version(struct tpm_tis_data *data) -diff --git a/drivers/char/tpm/tpm_tis_spi_main.c b/drivers/char/tpm/tpm_tis_spi_main.c -index d64bea3298a2..4141146e13f4 100644 ---- a/drivers/char/tpm/tpm_tis_spi_main.c -+++ b/drivers/char/tpm/tpm_tis_spi_main.c -@@ -141,55 +141,17 @@ int tpm_tis_spi_transfer(struct tpm_tis_data *data, u32 addr, u16 len, - } - - static int tpm_tis_spi_read_bytes(struct tpm_tis_data *data, u32 addr, -- u16 len, u8 *result) -+ u16 len, u8 *result, enum tpm_tis_io_mode io_mode) - { - return tpm_tis_spi_transfer(data, addr, len, result, NULL); - } - - static int tpm_tis_spi_write_bytes(struct tpm_tis_data *data, u32 addr, -- u16 len, const u8 *value) -+ u16 len, const u8 *value, enum tpm_tis_io_mode io_mode) - { - return tpm_tis_spi_transfer(data, addr, len, NULL, value); - } - --int tpm_tis_spi_read16(struct tpm_tis_data *data, u32 addr, u16 *result) --{ -- __le16 result_le; -- int rc; -- -- rc = data->phy_ops->read_bytes(data, addr, sizeof(u16), -- (u8 *)&result_le); -- if (!rc) -- *result = le16_to_cpu(result_le); -- -- return rc; --} -- --int tpm_tis_spi_read32(struct tpm_tis_data *data, u32 addr, u32 *result) --{ -- __le32 result_le; -- int rc; -- -- rc = data->phy_ops->read_bytes(data, addr, sizeof(u32), -- (u8 *)&result_le); -- if (!rc) -- *result = le32_to_cpu(result_le); -- -- return rc; --} -- --int tpm_tis_spi_write32(struct tpm_tis_data *data, u32 addr, u32 value) --{ -- __le32 value_le; -- int rc; -- -- value_le = cpu_to_le32(value); -- rc = data->phy_ops->write_bytes(data, addr, sizeof(u32), -- (u8 *)&value_le); -- -- return rc; --} -- - int tpm_tis_spi_init(struct spi_device *spi, struct tpm_tis_spi_phy *phy, - int irq, const struct tpm_tis_phy_ops *phy_ops) - { -@@ -205,9 +167,6 @@ int tpm_tis_spi_init(struct spi_device *spi, struct tpm_tis_spi_phy *phy, - static const struct tpm_tis_phy_ops tpm_spi_phy_ops = { - .read_bytes = tpm_tis_spi_read_bytes, - .write_bytes = tpm_tis_spi_write_bytes, -- .read16 = tpm_tis_spi_read16, -- .read32 = tpm_tis_spi_read32, -- .write32 = tpm_tis_spi_write32, - }; - - static int tpm_tis_spi_probe(struct spi_device *dev) -diff --git a/drivers/char/tpm/tpm_tis_synquacer.c b/drivers/char/tpm/tpm_tis_synquacer.c -index e47bdd272704..679196c61401 100644 ---- a/drivers/char/tpm/tpm_tis_synquacer.c -+++ b/drivers/char/tpm/tpm_tis_synquacer.c -@@ -35,72 +35,53 @@ static inline struct tpm_tis_synquacer_phy *to_tpm_tis_tcg_phy(struct tpm_tis_da - } - - static int tpm_tis_synquacer_read_bytes(struct tpm_tis_data *data, u32 addr, -- u16 len, u8 *result) -+ u16 len, u8 *result, -+ enum tpm_tis_io_mode io_mode) - { - struct tpm_tis_synquacer_phy *phy = to_tpm_tis_tcg_phy(data); -- -- while (len--) -- *result++ = ioread8(phy->iobase + addr); -+ switch (io_mode) { -+ case TPM_TIS_PHYS_8: -+ while (len--) -+ *result++ = ioread8(phy->iobase + addr); -+ break; -+ case TPM_TIS_PHYS_16: -+ result[1] = ioread8(phy->iobase + addr + 1); -+ result[0] = ioread8(phy->iobase + addr); -+ break; -+ case TPM_TIS_PHYS_32: -+ result[3] = ioread8(phy->iobase + addr + 3); -+ result[2] = ioread8(phy->iobase + addr + 2); -+ result[1] = ioread8(phy->iobase + addr + 1); -+ result[0] = ioread8(phy->iobase + addr); -+ break; -+ } - - return 0; - } - - static int tpm_tis_synquacer_write_bytes(struct tpm_tis_data *data, u32 addr, -- u16 len, const u8 *value) -+ u16 len, const u8 *value, -+ enum tpm_tis_io_mode io_mode) - { - struct tpm_tis_synquacer_phy *phy = to_tpm_tis_tcg_phy(data); -- -- while (len--) -- iowrite8(*value++, phy->iobase + addr); -- -- return 0; --} -- --static int tpm_tis_synquacer_read16_bw(struct tpm_tis_data *data, -- u32 addr, u16 *result) --{ -- struct tpm_tis_synquacer_phy *phy = to_tpm_tis_tcg_phy(data); -- -- /* -- * Due to the limitation of SPI controller on SynQuacer, -- * 16/32 bits access must be done in byte-wise and descending order. -- */ -- *result = (ioread8(phy->iobase + addr + 1) << 8) | -- (ioread8(phy->iobase + addr)); -- -- return 0; --} -- --static int tpm_tis_synquacer_read32_bw(struct tpm_tis_data *data, -- u32 addr, u32 *result) --{ -- struct tpm_tis_synquacer_phy *phy = to_tpm_tis_tcg_phy(data); -- -- /* -- * Due to the limitation of SPI controller on SynQuacer, -- * 16/32 bits access must be done in byte-wise and descending order. -- */ -- *result = (ioread8(phy->iobase + addr + 3) << 24) | -- (ioread8(phy->iobase + addr + 2) << 16) | -- (ioread8(phy->iobase + addr + 1) << 8) | -- (ioread8(phy->iobase + addr)); -- -- return 0; --} -- --static int tpm_tis_synquacer_write32_bw(struct tpm_tis_data *data, -- u32 addr, u32 value) --{ -- struct tpm_tis_synquacer_phy *phy = to_tpm_tis_tcg_phy(data); -- -- /* -- * Due to the limitation of SPI controller on SynQuacer, -- * 16/32 bits access must be done in byte-wise and descending order. -- */ -- iowrite8(value >> 24, phy->iobase + addr + 3); -- iowrite8(value >> 16, phy->iobase + addr + 2); -- iowrite8(value >> 8, phy->iobase + addr + 1); -- iowrite8(value, phy->iobase + addr); -+ switch (io_mode) { -+ case TPM_TIS_PHYS_8: -+ while (len--) -+ iowrite8(*value++, phy->iobase + addr); -+ break; -+ case TPM_TIS_PHYS_16: -+ return -EINVAL; -+ case TPM_TIS_PHYS_32: -+ /* -+ * Due to the limitation of SPI controller on SynQuacer, -+ * 16/32 bits access must be done in byte-wise and descending order. -+ */ -+ iowrite8(value[3], phy->iobase + addr + 3); -+ iowrite8(value[2], phy->iobase + addr + 2); -+ iowrite8(value[1], phy->iobase + addr + 1); -+ iowrite8(value[0], phy->iobase + addr); -+ break; -+ } - - return 0; - } -@@ -108,9 +89,6 @@ static int tpm_tis_synquacer_write32_bw(struct tpm_tis_data *data, - static const struct tpm_tis_phy_ops tpm_tcg_bw = { - .read_bytes = tpm_tis_synquacer_read_bytes, - .write_bytes = tpm_tis_synquacer_write_bytes, -- .read16 = tpm_tis_synquacer_read16_bw, -- .read32 = tpm_tis_synquacer_read32_bw, -- .write32 = tpm_tis_synquacer_write32_bw, - }; - - static int tpm_tis_synquacer_init(struct device *dev, --- -2.46.2 - diff --git a/openpower/overlay/etc/fstab b/openpower/overlay/etc/fstab index ece6d8432..accc97e1c 100644 --- a/openpower/overlay/etc/fstab +++ b/openpower/overlay/etc/fstab @@ -1,7 +1,7 @@ # /dev/root / ext2 rw,noauto 0 1 proc /proc proc defaults 0 0 -devpts /dev/pts devpts defaults,gid=5,mode=620 0 0 -tmpfs /dev/shm tmpfs mode=0777 0 0 +devpts /dev/pts devpts defaults,gid=5,mode=620,ptmxmode=0666 0 0 +tmpfs /dev/shm tmpfs mode=1777 0 0 sysfs /sys sysfs defaults 0 0 securityfs /sys/kernel/security securityfs defaults 0 0 diff --git a/openpower/overlay/etc/inittab b/openpower/overlay/etc/inittab deleted file mode 100644 index 235c8356e..000000000 --- a/openpower/overlay/etc/inittab +++ /dev/null @@ -1,34 +0,0 @@ -# /etc/inittab -# -# Copyright (C) 2001 Erik Andersen -# -# Note: BusyBox init doesn't support runlevels. The runlevels field is -# completely ignored by BusyBox init. If you want runlevels, use -# sysvinit. -# -# Format for each entry: ::: -# -# id == tty to run on, or empty for /dev/console -# runlevels == ignored -# action == one of sysinit, respawn, askfirst, wait, and once -# process == program to run - -# Startup the system -null::sysinit:/bin/mount -t proc proc /proc -null::sysinit:/bin/mount -o remount,rw / # REMOUNT_ROOTFS_RW -null::sysinit:/bin/mkdir -p /dev/pts -null::sysinit:/bin/mkdir -p /dev/shm -null::sysinit:/bin/mount -a -null::sysinit:/bin/hostname -F /etc/hostname -# now run any rc scripts -null::sysinit:/etc/init.d/rcS - -# Stuff to do for the 3-finger salute -::ctrlaltdel:/sbin/reboot - -# Stuff to do before rebooting -null::shutdown:/etc/init.d/rcK -null::shutdown:/bin/umount -a -r -null::shutdown:/sbin/swapoff -a - -null::restart:/usr/sbin/kexec-restart diff --git a/openpower/overlay/etc/sudoers b/openpower/overlay/etc/sudoers index fcaf196a0..e3f4c0979 100644 --- a/openpower/overlay/etc/sudoers +++ b/openpower/overlay/etc/sudoers @@ -1,4 +1,4 @@ root ALL=(ALL) ALL -%wheel ALL=(ALL) ALL +petituser ALL=(ALL) ALL Defaults targetpw Defaults timestamp_timeout=1 diff --git a/openpower/package/petitboot/63-md-raid-arrays.rules b/openpower/overlay/etc/udev/rules.d/63-md-raid-arrays.rules similarity index 100% rename from openpower/package/petitboot/63-md-raid-arrays.rules rename to openpower/overlay/etc/udev/rules.d/63-md-raid-arrays.rules diff --git a/openpower/package/petitboot/65-md-incremental.rules b/openpower/overlay/etc/udev/rules.d/65-md-incremental.rules similarity index 100% rename from openpower/package/petitboot/65-md-incremental.rules rename to openpower/overlay/etc/udev/rules.d/65-md-incremental.rules diff --git a/openpower/package/petitboot/66-add-sg-module.rules b/openpower/overlay/etc/udev/rules.d/66-add-sg-module.rules similarity index 100% rename from openpower/package/petitboot/66-add-sg-module.rules rename to openpower/overlay/etc/udev/rules.d/66-add-sg-module.rules diff --git a/openpower/package/petitboot/removable-event-poll.rules b/openpower/overlay/etc/udev/rules.d/removable-event-poll.rules similarity index 99% rename from openpower/package/petitboot/removable-event-poll.rules rename to openpower/overlay/etc/udev/rules.d/removable-event-poll.rules index b736aef61..57bb74d3c 100644 --- a/openpower/package/petitboot/removable-event-poll.rules +++ b/openpower/overlay/etc/udev/rules.d/removable-event-poll.rules @@ -1,4 +1,3 @@ - # petitboot needs notification for media change events on removable devices, # which we only get if we've set the poll_msecs sysfs attribute. ACTION!="remove", ATTR{removable}=="1", ATTR{events_poll_msecs}="2000" diff --git a/openpower/overlay/home/petituser/.profile b/openpower/overlay/home/petituser/.profile new file mode 100644 index 000000000..f7903f4b1 --- /dev/null +++ b/openpower/overlay/home/petituser/.profile @@ -0,0 +1,5 @@ +export ENV="/home/petituser/.shrc" + +if [ "$PPID" = "1" ]; then + exec /usr/libexec/petitboot/pb-console +fi diff --git a/openpower/package/petitboot/shell_config b/openpower/overlay/home/petituser/.shrc similarity index 58% rename from openpower/package/petitboot/shell_config rename to openpower/overlay/home/petituser/.shrc index 59337ff53..1e80be9e2 100644 --- a/openpower/package/petitboot/shell_config +++ b/openpower/overlay/home/petituser/.shrc @@ -1,12 +1,8 @@ -#!bin/sh - -reset - -echo "Exiting petitboot. Type 'exit' to return." -echo "You may run 'pb-sos' to gather diagnostic data" +#!/bin/sh if [[ "$(id -u)" != "0" ]]; then - echo "" | sudo -S /bin/true 2&>1 >> /dev/null + sudo -K + echo | sudo -S /bin/true >/dev/null 2>&1 if [[ $? = 0 ]]; then echo "No password set, running as root. You may set a password in the System Configuration screen." sudo -i diff --git a/openpower/package/Config.in b/openpower/package/Config.in index eee16f498..612a17044 100755 --- a/openpower/package/Config.in +++ b/openpower/package/Config.in @@ -5,7 +5,6 @@ source "$BR2_EXTERNAL_OP_BUILD_PATH/package/hostboot/Config.in" source "$BR2_EXTERNAL_OP_BUILD_PATH/package/hostboot-binaries/Config.in" source "$BR2_EXTERNAL_OP_BUILD_PATH/package/machine-xml/Config.in" source "$BR2_EXTERNAL_OP_BUILD_PATH/package/openpower-pnor/Config.in" -source "$BR2_EXTERNAL_OP_BUILD_PATH/package/petitboot/Config.in" source "$BR2_EXTERNAL_OP_BUILD_PATH/package/hcode/Config.in" source "$BR2_EXTERNAL_OP_BUILD_PATH/package/occ/Config.in" source "$BR2_EXTERNAL_OP_BUILD_PATH/package/capp-ucode/Config.in" diff --git a/openpower/package/loadkeys/loadkeys.hash b/openpower/package/loadkeys/loadkeys.hash index 39a4cddb6..63f7286d3 100644 --- a/openpower/package/loadkeys/loadkeys.hash +++ b/openpower/package/loadkeys/loadkeys.hash @@ -1,2 +1,4 @@ # From https://www.kernel.org/pub/linux/utils/kbd/sha256sums.asc -sha256 7a899de1c0eb75f3aea737095a736f2375e1cbfbe693fc14a3fe0bfb4649fb5e kbd-2.0.3.tar.xz +sha256 ccdf452387a6380973d2927363e9cbb939fa2068915a6f937ff9d24522024683 kbd-2.5.1.tar.xz +sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING +sha256 5a16340fe773f422144b436df90319114a2884933c56e9be6fad642e59be5e1f CREDITS diff --git a/openpower/package/loadkeys/loadkeys.mk b/openpower/package/loadkeys/loadkeys.mk index 0a05026d4..dcbe20a22 100644 --- a/openpower/package/loadkeys/loadkeys.mk +++ b/openpower/package/loadkeys/loadkeys.mk @@ -4,13 +4,17 @@ # ################################################################################ -LOADKEYS_VERSION = 2.0.3 +LOADKEYS_VERSION = 2.5.1 LOADKEYS_SOURCE = kbd-$(LOADKEYS_VERSION).tar.xz LOADKEYS_SITE = $(BR2_KERNEL_MIRROR)/linux/utils/kbd -LOADKEYS_CONF_OPTS = --disable-vlock -LOADKEYS_DEPENDENCIES = $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext) -LOADKEYS_LICENSE = GPLv2+ -LOADKEYS_LICENSE_FILES = COPYING +LOADKEYS_CONF_OPTS = \ + --disable-vlock \ + --disable-tests +LOADKEYS_DEPENDENCIES = \ + $(TARGET_NLS_DEPENDENCIES) \ + host-pkgconf +LOADKEYS_LICENSE = GPL-2.0+ +LOADKEYS_LICENSE_FILES = COPYING CREDITS LOADKEYS_INSTALL_STAGING = NO LOADKEYS_INSTALL_TARGET = YES diff --git a/openpower/package/occ/Config.in b/openpower/package/occ/Config.in index c70d13b51..5e2ca835a 100644 --- a/openpower/package/occ/Config.in +++ b/openpower/package/occ/Config.in @@ -43,7 +43,7 @@ config BR2_OCC_CUSTOM_VERSION_VALUE config BR2_OCC_VERSION string - default "9047e572b197876b77fa518bfcec6ed3be4e7560" if BR2_OCC_LATEST_VERSION + default "3515ab0e78eb56755db269915ef362e74461c774" if BR2_OCC_LATEST_VERSION default BR2_OCC_CUSTOM_VERSION_VALUE \ if BR2_OCC_CUSTOM_VERSION diff --git a/openpower/package/occ/occ.mk b/openpower/package/occ/occ.mk index a1dc9f805..61bce5b41 100644 --- a/openpower/package/occ/occ.mk +++ b/openpower/package/occ/occ.mk @@ -5,7 +5,7 @@ ################################################################################ OCC_VERSION = $(call qstrip,$(BR2_OCC_VERSION)) -OCC_SITE = $(call github,ibm-op-release,occ,$(OCC_VERSION)) +OCC_SITE = $(call github,open-power,occ,$(OCC_VERSION)) OCC_LICENSE = Apache-2.0 diff --git a/openpower/package/petitboot/Config.in b/openpower/package/petitboot/Config.in deleted file mode 100644 index 5925345a8..000000000 --- a/openpower/package/petitboot/Config.in +++ /dev/null @@ -1,32 +0,0 @@ -config BR2_PACKAGE_PETITBOOT - bool "petitboot" - # petitboot needs udev /dev management - depends on BR2_PACKAGE_HAS_UDEV - select BR2_PACKAGE_LVM2 - select BR2_PACKAGE_NCURSES - select BR2_PACKAGE_NCURSES_TARGET_PANEL - select BR2_PACKAGE_NCURSES_TARGET_FORM - select BR2_PACKAGE_NCURSES_TARGET_MENU - # run-time dependency only - select BR2_PACKAGE_KEXEC_LITE if !BR2_PACKAGE_KEXEC - # run-time dependency only - select BR2_PACKAGE_POWERPC_UTILS if BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le - # run-time dependency only - select BR2_PACKAGE_NVME if BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le - help - Petitboot is a small kexec-based bootloader - - http://www.kernel.org/pub/linux/kernel/people/geoff/petitboot/petitboot.html - -comment "petitboot requires udev to be enabled" - depends on !BR2_PACKAGE_HAS_UDEV - -config BR2_PACKAGE_PETITBOOT_MTD - bool "petitboot-mtd" - depends on BR2_PACKAGE_PETITBOOT - select BR2_PACKAGE_LIBFLASH - select BR2_PACKAGE_PFLASH - help - Adds Petitboot support for MTD devices - -comment "Add support for accessing MTD devices" diff --git a/openpower/package/petitboot/S14silence-console b/openpower/package/petitboot/S14silence-console deleted file mode 100755 index 2ce6b39f4..000000000 --- a/openpower/package/petitboot/S14silence-console +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh - -case "$1" in - start) - echo 1 1 1 1 > /proc/sys/kernel/printk - ;; -esac - -exit 0 diff --git a/openpower/package/petitboot/S15pb-discover b/openpower/package/petitboot/S15pb-discover deleted file mode 100755 index 9d9ec57de..000000000 --- a/openpower/package/petitboot/S15pb-discover +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/sh - -LOGFILE=/var/log/petitboot/pb-discover.log -PIDFILE=/var/run/petitboot.pid - -PATH=/usr/bin:/usr/sbin:/bin:/sbin -export PATH - -verbose= -if pb-config debug | grep -q enabled -then - verbose=-v -fi - -case "$1" in - start) - ulimit -c unlimited - mkdir -p -m 0775 $(dirname $LOGFILE) - mkdir -p -m 0775 /var/petitboot - # Set permissions for normal users - chown -R root:petitgroup $(dirname $LOGFILE) - chown -R root:petitgroup /var/petitboot - - export $(cat /etc/locale) - pb-discover -l $LOGFILE $verbose & - echo $! > $PIDFILE - ;; - stop) - pid=$(cat $PIDFILE) - [ -n "$pid" ] && kill -TERM $pid - ;; - *) - echo "Usage: $0 {start|stop}" - exit 1 - ;; -esac - -exit 0 diff --git a/openpower/package/petitboot/kexec-restart b/openpower/package/petitboot/kexec-restart deleted file mode 100755 index 0175e76df..000000000 --- a/openpower/package/petitboot/kexec-restart +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh - -/usr/sbin/kexec -f -e - -while : -do - sleep 1 -done diff --git a/openpower/package/petitboot/petitboot-console-ui.rules b/openpower/package/petitboot/petitboot-console-ui.rules deleted file mode 100644 index d99df3683..000000000 --- a/openpower/package/petitboot/petitboot-console-ui.rules +++ /dev/null @@ -1,5 +0,0 @@ - -# spawn a petitboot UI on common user-visible interface devices -SUBSYSTEM=="tty", KERNEL=="hvc*", RUN+="/usr/libexec/petitboot/pb-console --getty=/sbin/agetty --detach -- -a petituser -n -i $name linux" -SUBSYSTEM=="tty", KERNEL=="tty0", RUN+="/usr/libexec/petitboot/pb-console --getty=/sbin/agetty --detach -- -a petituser -n -i $name linux" -SUBSYSTEM=="tty", KERNEL=="ttyS*", RUN+="/usr/libexec/petitboot/pb-console --getty=/sbin/agetty --detach -- -a petituser -n -i $name linux" diff --git a/openpower/package/petitboot/petitboot.hash b/openpower/package/petitboot/petitboot.hash deleted file mode 100644 index 8bd41b9b5..000000000 --- a/openpower/package/petitboot/petitboot.hash +++ /dev/null @@ -1 +0,0 @@ -sha256 eed29ec841c2bcd5ecc65347f5b95a0087a541bd9c04ca3c17c55d1f7357d189 petitboot-v1.15.tar.gz diff --git a/openpower/package/petitboot/petitboot.mk b/openpower/package/petitboot/petitboot.mk deleted file mode 100644 index 5b2f90940..000000000 --- a/openpower/package/petitboot/petitboot.mk +++ /dev/null @@ -1,85 +0,0 @@ -################################################################################ -# -# petitboot -# -################################################################################ - -PETITBOOT_VERSION = v1.15 -PETITBOOT_SOURCE = petitboot-$(PETITBOOT_VERSION).tar.gz -PETITBOOT_SITE ?= https://github.com/open-power/petitboot/releases/download/$(PETITBOOT_VERSION) -PETITBOOT_DEPENDENCIES = ncurses udev host-bison host-flex lvm2 -PETITBOOT_LICENSE = GPLv2 -PETITBOOT_LICENSE_FILES = COPYING - -PETITBOOT_CONF_OPTS += --with-ncurses --without-twin-x11 --without-twin-fbdev \ - --localstatedir=/var \ - --enable-crypt \ - HOST_PROG_KEXEC=/usr/sbin/kexec \ - HOST_PROG_SHUTDOWN=/usr/libexec/petitboot/bb-kexec-reboot \ - $(if $(BR2_PACKAGE_BUSYBOX),--with-tftp=busybox --enable-busybox) - -ifdef PETITBOOT_DEBUG -PETITBOOT_CONF_OPTS += --enable-debug -endif - -ifeq ($(BR2_PACKAGE_PETITBOOT_MTD),y) -PETITBOOT_CONF_OPTS += --enable-mtd -PETITBOOT_DEPENDENCIES += libflash -PETITBOOT_CPPFLAGS += -I$(STAGING_DIR) -PETITBOOT_LDFLAGS += -L$(STAGING_DIR) -endif - -ifeq ($(BR2_PACKAGE_NCURSES_WCHAR),y) -PETITBOOT_CONF_OPTS += --with-ncursesw MENU_LIB=-lmenuw FORM_LIB=-lformw -endif - -define PETITBOOT_POST_INSTALL - $(INSTALL) -D -m 0755 $(@D)/utils/bb-kexec-reboot \ - $(TARGET_DIR)/usr/libexec/petitboot - $(INSTALL) -d -m 0755 $(TARGET_DIR)/etc/petitboot/boot.d - $(INSTALL) -D -m 0755 $(@D)/utils/hooks/01-create-default-dtb \ - $(TARGET_DIR)/etc/petitboot/boot.d/ - $(INSTALL) -D -m 0755 $(@D)/utils/hooks/90-sort-dtb \ - $(TARGET_DIR)/etc/petitboot/boot.d/ - - $(INSTALL) -D -m 0755 $(BR2_EXTERNAL_OP_BUILD_PATH)/package/petitboot/S14silence-console \ - $(TARGET_DIR)/etc/init.d/ - $(INSTALL) -D -m 0755 $(BR2_EXTERNAL_OP_BUILD_PATH)/package/petitboot/S15pb-discover \ - $(TARGET_DIR)/etc/init.d/ - $(INSTALL) -D -m 0755 $(BR2_EXTERNAL_OP_BUILD_PATH)/package/petitboot/kexec-restart \ - $(TARGET_DIR)/usr/sbin/ - $(INSTALL) -D -m 0755 $(BR2_EXTERNAL_OP_BUILD_PATH)/package/petitboot/petitboot-console-ui.rules \ - $(TARGET_DIR)/etc/udev/rules.d/ - $(INSTALL) -D -m 0755 $(BR2_EXTERNAL_OP_BUILD_PATH)/package/petitboot/removable-event-poll.rules \ - $(TARGET_DIR)/etc/udev/rules.d/ - $(INSTALL) -D -m 0755 $(BR2_EXTERNAL_OP_BUILD_PATH)/package/petitboot/63-md-raid-arrays.rules \ - $(TARGET_DIR)/etc/udev/rules.d/ - $(INSTALL) -D -m 0755 $(BR2_EXTERNAL_OP_BUILD_PATH)/package/petitboot/65-md-incremental.rules \ - $(TARGET_DIR)/etc/udev/rules.d/ - $(INSTALL) -D -m 0755 $(BR2_EXTERNAL)/package/petitboot/66-add-sg-module.rules \ - $(TARGET_DIR)/etc/udev/rules.d/ - - ln -sf /usr/sbin/pb-udhcpc \ - $(TARGET_DIR)/usr/share/udhcpc/default.script.d/ - - mkdir -p $(TARGET_DIR)/home/petituser - $(INSTALL) -D -m 0755 $(BR2_EXTERNAL_OP_BUILD_PATH)/package/petitboot/shell_profile \ - $(TARGET_DIR)/home/petituser/.profile - $(INSTALL) -D -m 0755 $(BR2_EXTERNAL_OP_BUILD_PATH)/package/petitboot/shell_config \ - $(TARGET_DIR)/home/petituser/.shrc - - $(MAKE) -C $(@D)/po DESTDIR=$(TARGET_DIR) install -endef - -define PETITBOOT_POST_INSTALL_DTB - $(INSTALL) -D -m 0755 $(@D)/utils/hooks/30-dtb-updates \ - $(TARGET_DIR)/etc/petitboot/boot.d/ -endef - -PETITBOOT_POST_INSTALL_TARGET_HOOKS += PETITBOOT_POST_INSTALL - -ifeq ($(BR2_PACKAGE_DTC),y) - PETITBOOT_POST_INSTALL_TARGET_HOOKS += PETITBOOT_POST_INSTALL_DTB -endif - -$(eval $(autotools-package)) diff --git a/openpower/package/petitboot/shell_profile b/openpower/package/petitboot/shell_profile deleted file mode 100755 index 40062b423..000000000 --- a/openpower/package/petitboot/shell_profile +++ /dev/null @@ -1,2 +0,0 @@ -export ENV="/home/petituser/.shrc" -/usr/libexec/petitboot/pb-console diff --git a/openpower/package/ppe42-gcc/0001-2016-02-19-Jakub-Jelinek-jakub-redhat.com.patch b/openpower/package/ppe42-gcc/0001-2016-02-19-Jakub-Jelinek-jakub-redhat.com.patch index c5dc6d4c9..59645f47c 100644 --- a/openpower/package/ppe42-gcc/0001-2016-02-19-Jakub-Jelinek-jakub-redhat.com.patch +++ b/openpower/package/ppe42-gcc/0001-2016-02-19-Jakub-Jelinek-jakub-redhat.com.patch @@ -41,7 +41,7 @@ index 2784edc..8d7f015 100644 +%language=C++ +%define class-name libc_name %{ - /* Copyright (C) 2000-2016 Free Software Foundation, Inc. + /* Copyright (C) 2000-2014 Free Software Foundation, Inc. @@ -16,14 +18,6 @@ for more details. You should have received a copy of the GNU General Public License @@ -77,7 +77,7 @@ index d8e02c9..9a37249 100644 -#line 1 "cfns.gperf" +#line 3 "cfns.gperf" - /* Copyright (C) 2000-2016 Free Software Foundation, Inc. + /* Copyright (C) 2000-2014 Free Software Foundation, Inc. @@ -47,25 +47,18 @@ for more details. You should have received a copy of the GNU General Public License diff --git a/openpower/package/skiboot/0001-libstb-tpm_i2c_nuvoton-use-struct-of-constants-inste.patch b/openpower/package/skiboot/0001-tpm_i2c_nuvoton-Use-struct-of-constants-instead-of-m.patch similarity index 64% rename from openpower/package/skiboot/0001-libstb-tpm_i2c_nuvoton-use-struct-of-constants-inste.patch rename to openpower/package/skiboot/0001-tpm_i2c_nuvoton-Use-struct-of-constants-instead-of-m.patch index 24919662b..c283758f3 100644 --- a/openpower/package/skiboot/0001-libstb-tpm_i2c_nuvoton-use-struct-of-constants-inste.patch +++ b/openpower/package/skiboot/0001-tpm_i2c_nuvoton-Use-struct-of-constants-instead-of-m.patch @@ -1,8 +1,8 @@ -From a6eedc320f0bb019da6d7312215de1bc3ba50a7a Mon Sep 17 00:00:00 2001 +From 18c316a0704e23693b00cbc5fcb960240e3c82cf Mon Sep 17 00:00:00 2001 From: Eric Richter -Date: Thu, 19 Sep 2024 13:11:57 -0500 -Subject: [PATCH v2 1/2] libstb/tpm_i2c_nuvoton: use struct of constants - instead of hardcoded macro constants +Date: Wed, 8 Jan 2025 11:59:23 -0600 +Subject: [PATCH 1/2] tpm_i2c_nuvoton: Use struct of constants instead of + macros This driver was originally developed with only the npct650 chip in mind, which was developed before there was a TCG standard for a TPM on the i2c @@ -16,14 +16,13 @@ may be added, and the correct set of constants can be selected at runtime. Signed-off-by: Eric Richter +Signed-off-by: Reza Arbab --- - libstb/drivers/tpm_i2c_nuvoton.c | 63 +++++++++++++++++++++----------- - libstb/drivers/tpm_i2c_nuvoton.h | 2 +- - libstb/tpm_chip.c | 2 +- - 3 files changed, 44 insertions(+), 23 deletions(-) + libstb/drivers/tpm_i2c_nuvoton.c | 59 +++++++++++++++++++++----------- + 1 file changed, 39 insertions(+), 20 deletions(-) diff --git a/libstb/drivers/tpm_i2c_nuvoton.c b/libstb/drivers/tpm_i2c_nuvoton.c -index 0aa9711db..a4612941c 100644 +index 0aa9711db4c5..e7cb477b6b13 100644 --- a/libstb/drivers/tpm_i2c_nuvoton.c +++ b/libstb/drivers/tpm_i2c_nuvoton.c @@ -16,13 +16,6 @@ @@ -40,15 +39,15 @@ index 0aa9711db..a4612941c 100644 /* Bit masks for the TPM STATUS register */ #define TPM_STS_VALID 0x80 #define TPM_STS_COMMAND_READY 0x40 -@@ -34,15 +27,36 @@ +@@ -34,15 +27,35 @@ /* TPM Driver values */ #define MAX_STSVALID_POLLS 5 #define TPM_TIMEOUT_INTERVAL 10 -#define TPM_NUVOTON_VID 0x5010FE00 #define TPM_VENDOR_ID_MASK 0xFFFFFF00 -+ +struct tpm_info { ++ const char *compatible; + uint32_t vendor_id; + uint8_t sts; + uint8_t burst_count; @@ -57,8 +56,8 @@ index 0aa9711db..a4612941c 100644 + uint8_t vid_did; +}; + -+ -+static struct tpm_info tpm_nuvoton_650_info = { ++static const struct tpm_info tpm_nuvoton_650 = { ++ .compatible = "nuvoton,npct650", + .vendor_id = 0x5010FE00, + .sts = 0x00, + .burst_count = 0x01, @@ -66,10 +65,9 @@ index 0aa9711db..a4612941c 100644 + .data_fifo_r = 0x40, + .vid_did = 0x60, +}; -+ + static struct tpm_dev *tpm_device = NULL; -+static struct tpm_info *tpm_info = NULL; ++static const struct tpm_info *tpm_info = NULL; static int tpm_status_write_byte(uint8_t byte) { @@ -79,7 +77,7 @@ index 0aa9711db..a4612941c 100644 sizeof(value)); } -@@ -68,7 +82,7 @@ static int tpm_wait_for_command_ready(void) +@@ -68,7 +81,7 @@ static int tpm_wait_for_command_ready(void) do { now = mftb(); @@ -88,7 +86,7 @@ index 0aa9711db..a4612941c 100644 if (rc < 0) { /** * @fwts-label TPMReadCmdReady -@@ -138,7 +152,7 @@ static int tpm_wait_for_fifo_status(uint8_t mask, uint8_t expected) +@@ -138,7 +151,7 @@ static int tpm_wait_for_fifo_status(uint8_t mask, uint8_t expected) uint8_t status; for(retries = 0; retries <= MAX_STSVALID_POLLS; retries++) { @@ -97,7 +95,7 @@ index 0aa9711db..a4612941c 100644 if (rc < 0) { /** * @fwts-label TPMReadFifoStatus -@@ -170,7 +184,7 @@ static int tpm_wait_for_data_avail(void) +@@ -170,7 +183,7 @@ static int tpm_wait_for_data_avail(void) do { now = mftb(); @@ -106,7 +104,7 @@ index 0aa9711db..a4612941c 100644 if (rc < 0) { /** * @fwts-label TPMReadDataAvail -@@ -218,7 +232,7 @@ static int tpm_read_burst_count(void) +@@ -218,7 +231,7 @@ static int tpm_read_burst_count(void) do { now = mftb(); /* In i2C, burstCount is 1 byte */ @@ -115,7 +113,7 @@ index 0aa9711db..a4612941c 100644 if (rc == 0 && burst_count > 0) { DBG("---- burst_count=%d, delay=%lu/%d\n", burst_count, tb_to_msecs(now-start), TPM_TIMEOUT_D); -@@ -272,7 +286,7 @@ static int tpm_write_fifo(uint8_t* buf, size_t buflen) +@@ -272,7 +285,7 @@ static int tpm_write_fifo(uint8_t* buf, size_t buflen) (buflen - 1 - count) : burst_count); rc = tpm_i2c_request_send(tpm_device, @@ -124,7 +122,7 @@ index 0aa9711db..a4612941c 100644 1, &buf[count], bytes); count += bytes; DBG("%s FIFO: %zd bytes written, count=%zd, rc=%d\n", -@@ -315,7 +329,7 @@ static int tpm_write_fifo(uint8_t* buf, size_t buflen) +@@ -315,7 +328,7 @@ static int tpm_write_fifo(uint8_t* buf, size_t buflen) rc = tpm_i2c_request_send(tpm_device, SMBUS_WRITE, @@ -133,7 +131,7 @@ index 0aa9711db..a4612941c 100644 &buf[count], 1); count++; DBG("%s FIFO: last byte written, count=%zd, rc=%d\n", -@@ -381,7 +395,7 @@ static int tpm_read_fifo(uint8_t* buf, size_t* buflen) +@@ -381,7 +394,7 @@ static int tpm_read_fifo(uint8_t* buf, size_t* buflen) } rc = tpm_i2c_request_send(tpm_device, SMBUS_READ, @@ -142,28 +140,28 @@ index 0aa9711db..a4612941c 100644 &buf[count], burst_count); count += burst_count; DBG("%s FIFO: %d bytes read, count=%zd, rc=%d\n", -@@ -541,7 +555,7 @@ static int nuvoton_tpm_quirk(void *data, struct i2c_request *req, int *rc) +@@ -541,7 +554,7 @@ static int nuvoton_tpm_quirk(void *data, struct i2c_request *req, int *rc) return 0; } -void tpm_i2c_nuvoton_probe(void) -+static void tpm_i2c_nuvoton_probe(const char compat[], struct tpm_info *info) ++static void __tpm_i2c_nuvoton_probe(const struct tpm_info *info) { struct tpm_dev *tpm_device = NULL; struct dt_node *node = NULL; -@@ -549,9 +563,10 @@ void tpm_i2c_nuvoton_probe(void) +@@ -549,9 +562,10 @@ void tpm_i2c_nuvoton_probe(void) const char *name; uint32_t vendor = 0; - dt_for_each_compatible(dt_root, node, "nuvoton,npct650") { -+ dt_for_each_compatible(dt_root, node, compat) { ++ dt_for_each_compatible(dt_root, node, info->compatible) { if (!dt_node_is_enabled(node)) continue; + tpm_info = info; tpm_device = (struct tpm_dev*) malloc(sizeof(struct tpm_dev)); assert(tpm_device); /* -@@ -585,12 +600,12 @@ void tpm_i2c_nuvoton_probe(void) +@@ -585,12 +599,12 @@ void tpm_i2c_nuvoton_probe(void) goto disable; } /* ensure there's really the TPM we expect at that address */ @@ -178,50 +176,15 @@ index 0aa9711db..a4612941c 100644 prlog(PR_ERR, "NUVOTON: expected vendor id mismatch\n"); goto disable; } -@@ -613,7 +628,7 @@ void tpm_i2c_nuvoton_probe(void) - * Tweak for linux. It doesn't have a driver compatible - * with "nuvoton,npct650" - */ -- if (!dt_node_is_compatible(node, "nuvoton,npct601")) { -+ if (dt_node_is_compatible(node, "nuvoton,npct650")) { - dt_check_del_prop(node, "compatible"); - dt_add_property_strings(node, "compatible", - "nuvoton,npct650", "nuvoton,npct601"); -@@ -625,3 +640,9 @@ disable: +@@ -625,3 +639,8 @@ disable: prlog(PR_NOTICE, "TPM: tpm node %p disabled\n", node); free(tpm_device); } + -+ -+void tpm_i2c_nuvoton_650_probe(void) ++void tpm_i2c_nuvoton_probe(void) +{ -+ tpm_i2c_nuvoton_probe("nuvoton,npct650", &tpm_nuvoton_650_info); ++ __tpm_i2c_nuvoton_probe(&tpm_nuvoton_650); +} -diff --git a/libstb/drivers/tpm_i2c_nuvoton.h b/libstb/drivers/tpm_i2c_nuvoton.h -index 53cf1e1da..c8b11744e 100644 ---- a/libstb/drivers/tpm_i2c_nuvoton.h -+++ b/libstb/drivers/tpm_i2c_nuvoton.h -@@ -4,6 +4,6 @@ - #ifndef __TPM_I2C_NUVOTON_H - #define __TPM_I2C_NUVOTON_H - --extern void tpm_i2c_nuvoton_probe(void); -+extern void tpm_i2c_nuvoton_650_probe(void); - - #endif /* __TPM_I2C_NUVOTON_H */ -diff --git a/libstb/tpm_chip.c b/libstb/tpm_chip.c -index 22d2d3bb2..44fa8cbca 100644 ---- a/libstb/tpm_chip.c -+++ b/libstb/tpm_chip.c -@@ -189,7 +189,7 @@ int tpm_init(void) - list_head_init(&tpm_list); - - /* tpm drivers supported */ -- tpm_i2c_nuvoton_probe(); -+ tpm_i2c_nuvoton_650_probe(); - - if (list_empty(&tpm_list)) { - prlog(PR_INFO, "no compatible tpm device found!\n"); -- -2.46.2 +2.43.5 diff --git a/openpower/package/skiboot/0002-libstb-tpm_i2c_nuvoton-add-support-for-Nuvoton-75x-T.patch b/openpower/package/skiboot/0002-libstb-tpm_i2c_nuvoton-add-support-for-Nuvoton-75x-T.patch deleted file mode 100644 index 4a0748f8d..000000000 --- a/openpower/package/skiboot/0002-libstb-tpm_i2c_nuvoton-add-support-for-Nuvoton-75x-T.patch +++ /dev/null @@ -1,97 +0,0 @@ -From 36b9bee3c95dddb09dfa6d8edddea73b0d449abe Mon Sep 17 00:00:00 2001 -From: Eric Richter -Date: Thu, 19 Sep 2024 13:13:36 -0500 -Subject: [PATCH 2/2] libstb/tpm_i2c_nuvoton: add support for Nuvoton 75x TPMs - -This patch adds the new expected values for the 75x chip to the hdat i2c -devices table, and the requisite new constants to the Nuvoton driver as -according to the TCG TPM I2C Interfact Specification for TPM 2.0 -Revision 1.0[1]. - -[1] https://trustedcomputinggroup.org/resource/tcg-tpm-i2c-interface-specification/ - -Signed-off-by: Eric Richter ---- - hdata/i2c.c | 1 + - libstb/drivers/tpm_i2c_nuvoton.c | 17 +++++++++++++++++ - libstb/drivers/tpm_i2c_nuvoton.h | 1 + - libstb/tpm_chip.c | 1 + - 4 files changed, 20 insertions(+) - -diff --git a/hdata/i2c.c b/hdata/i2c.c -index 7d5d655a5..235aae8a8 100644 ---- a/hdata/i2c.c -+++ b/hdata/i2c.c -@@ -156,6 +156,7 @@ static struct hdat_i2c_type hdat_i2c_devs[] = { - { 0x11, "eeprom", "atmel,24c16" }, - { 0x12, "i2c", NULL }, /* NVDIA GPU */ - { 0x13, "i2c", "nxp,lpc11u35" }, -+ { 0x15, "tpm", "nuvoton,npct75x" }, - }; - - struct hdat_i2c_info { -diff --git a/libstb/drivers/tpm_i2c_nuvoton.c b/libstb/drivers/tpm_i2c_nuvoton.c -index a01bdcb16..56c206610 100644 ---- a/libstb/drivers/tpm_i2c_nuvoton.c -+++ b/libstb/drivers/tpm_i2c_nuvoton.c -@@ -49,6 +49,15 @@ static struct tpm_info tpm_nuvoton_650_info = { - .vid_did = 0x60, - }; - -+static struct tpm_info tpm_nuvoton_75x_info = { -+ .vendor_id = 0x5010FC00, -+ .sts = 0x18, -+ .burst_count = 0x19, -+ .data_fifo_w = 0x24, -+ .data_fifo_r = 0x24, -+ .vid_did = 0x48, -+}; -+ - - static struct tpm_dev *tpm_device = NULL; - static struct tpm_info *tpm_info = NULL; -@@ -627,6 +636,9 @@ static void tpm_i2c_nuvoton_probe(const char compat[], struct tpm_info *info) - /* - * Tweak for linux. It doesn't have a driver compatible - * with "nuvoton,npct650" -+ * -+ * Not necessary for 75x, as we use the compatible that -+ * Linux expects. - */ - if (!dt_node_is_compatible(node, "nuvoton,npct601")) { - dt_check_del_prop(node, "compatible"); -@@ -646,3 +658,8 @@ void tpm_i2c_nuvoton_650_probe(void) - { - tpm_i2c_nuvoton_probe("nuvoton,npct650", &tpm_nuvoton_650_info); - } -+ -+void tpm_i2c_nuvoton_75x_probe(void) -+{ -+ tpm_i2c_nuvoton_probe("nuvoton,npct75x", &tpm_nuvoton_75x_info); -+} -diff --git a/libstb/drivers/tpm_i2c_nuvoton.h b/libstb/drivers/tpm_i2c_nuvoton.h -index c8b11744e..5570c0259 100644 ---- a/libstb/drivers/tpm_i2c_nuvoton.h -+++ b/libstb/drivers/tpm_i2c_nuvoton.h -@@ -5,5 +5,6 @@ - #define __TPM_I2C_NUVOTON_H - - extern void tpm_i2c_nuvoton_650_probe(void); -+extern void tpm_i2c_nuvoton_75x_probe(void); - - #endif /* __TPM_I2C_NUVOTON_H */ -diff --git a/libstb/tpm_chip.c b/libstb/tpm_chip.c -index 44fa8cbca..b655cc92b 100644 ---- a/libstb/tpm_chip.c -+++ b/libstb/tpm_chip.c -@@ -190,6 +190,7 @@ int tpm_init(void) - - /* tpm drivers supported */ - tpm_i2c_nuvoton_650_probe(); -+ tpm_i2c_nuvoton_75x_probe(); - - if (list_empty(&tpm_list)) { - prlog(PR_INFO, "no compatible tpm device found!\n"); --- -2.46.2 - diff --git a/openpower/package/skiboot/0002-tpm_i2c_nuvoton-Add-support-for-Nuvoton-75x-TPMs.patch b/openpower/package/skiboot/0002-tpm_i2c_nuvoton-Add-support-for-Nuvoton-75x-TPMs.patch new file mode 100644 index 000000000..8069ab6d3 --- /dev/null +++ b/openpower/package/skiboot/0002-tpm_i2c_nuvoton-Add-support-for-Nuvoton-75x-TPMs.patch @@ -0,0 +1,74 @@ +From 670af4255632b413ea1683799ae392da4957fe7d Mon Sep 17 00:00:00 2001 +From: Eric Richter +Date: Wed, 8 Jan 2025 11:59:24 -0600 +Subject: [PATCH 2/2] tpm_i2c_nuvoton: Add support for Nuvoton 75x TPMs + +This patch adds the new expected values for the 75x chip to the hdat i2c +devices table, and the requisite new constants to the Nuvoton driver as +according to the TCG TPM I2C Interfact Specification for TPM 2.0 +Revision 1.0[1]. + +[1] https://trustedcomputinggroup.org/resource/tcg-tpm-i2c-interface-specification/ + +Signed-off-by: Eric Richter +Signed-off-by: Reza Arbab +--- + hdata/i2c.c | 1 + + libstb/drivers/tpm_i2c_nuvoton.c | 16 +++++++++++++++- + 2 files changed, 16 insertions(+), 1 deletion(-) + +diff --git a/hdata/i2c.c b/hdata/i2c.c +index 7d5d655a5354..235aae8a86bd 100644 +--- a/hdata/i2c.c ++++ b/hdata/i2c.c +@@ -156,6 +156,7 @@ static struct hdat_i2c_type hdat_i2c_devs[] = { + { 0x11, "eeprom", "atmel,24c16" }, + { 0x12, "i2c", NULL }, /* NVDIA GPU */ + { 0x13, "i2c", "nxp,lpc11u35" }, ++ { 0x15, "tpm", "nuvoton,npct75x" }, + }; + + struct hdat_i2c_info { +diff --git a/libstb/drivers/tpm_i2c_nuvoton.c b/libstb/drivers/tpm_i2c_nuvoton.c +index e7cb477b6b13..70e34272fa92 100644 +--- a/libstb/drivers/tpm_i2c_nuvoton.c ++++ b/libstb/drivers/tpm_i2c_nuvoton.c +@@ -49,6 +49,16 @@ static const struct tpm_info tpm_nuvoton_650 = { + .vid_did = 0x60, + }; + ++static const struct tpm_info tpm_nuvoton_75x = { ++ .compatible = "nuvoton,npct75x", ++ .vendor_id = 0x5010FC00, ++ .sts = 0x18, ++ .burst_count = 0x19, ++ .data_fifo_w = 0x24, ++ .data_fifo_r = 0x24, ++ .vid_did = 0x48, ++}; ++ + static struct tpm_dev *tpm_device = NULL; + static const struct tpm_info *tpm_info = NULL; + +@@ -626,8 +636,11 @@ static void __tpm_i2c_nuvoton_probe(const struct tpm_info *info) + /* + * Tweak for linux. It doesn't have a driver compatible + * with "nuvoton,npct650" ++ * ++ * Not necessary for 75x, as we use the compatible that ++ * Linux expects. + */ +- if (!dt_node_is_compatible(node, "nuvoton,npct601")) { ++ if (dt_node_is_compatible(node, "nuvoton,npct650")) { + dt_check_del_prop(node, "compatible"); + dt_add_property_strings(node, "compatible", + "nuvoton,npct650", "nuvoton,npct601"); +@@ -643,4 +656,5 @@ disable: + void tpm_i2c_nuvoton_probe(void) + { + __tpm_i2c_nuvoton_probe(&tpm_nuvoton_650); ++ __tpm_i2c_nuvoton_probe(&tpm_nuvoton_75x); + } +-- +2.43.5 + diff --git a/openpower/patches/mihawk-patches/hostboot/hostboot-20200728-changed-Delay-registers-and-RD-VERF-registers-values.patch b/openpower/patches/mihawk-patches/hostboot/hostboot-20200728-changed-Delay-registers-and-RD-VERF-registers-values.patch index 98198adc6..dd07f56d7 100644 --- a/openpower/patches/mihawk-patches/hostboot/hostboot-20200728-changed-Delay-registers-and-RD-VERF-registers-values.patch +++ b/openpower/patches/mihawk-patches/hostboot/hostboot-20200728-changed-Delay-registers-and-RD-VERF-registers-values.patch @@ -327,8 +327,8 @@ diff -Nuar hostboot-A/src/import/chips/p9/procedures/hwp/memory/lib/workarounds/ --- hostboot-A/src/import/chips/p9/procedures/hwp/memory/lib/workarounds/dp16_workarounds.H 2020-06-23 00:00:29.000000000 +0800 +++ hostboot-B/src/import/chips/p9/procedures/hwp/memory/lib/workarounds/dp16_workarounds.H 2020-07-28 14:01:06.803758043 +0800 @@ -92,6 +92,8 @@ - /// - fapi2::ReturnCode adjust_rd_dq_delay( const fapi2::Target& i_target, const uint64_t i_rp ); + fapi2::ReturnCode is_cmd_precede_time_workaround_needed( const fapi2::Target& i_target, + bool& o_is_needed ); +fapi2::ReturnCode delay_setting_registers(const fapi2::Target& i_target,const uint64_t i_rp ); + @@ -376,3 +376,6 @@ diff -Nuar hostboot-A/src/import/chips/p9/procedures/hwp/memory/p9_mss_draminit_ + //Modify the value for delay + FAPI_TRY( mss::workarounds::nvdimm::delay_setting_registers(p,rp)); + } + + #ifdef LRDIMM_CAPABLE + //add workaround after all step diff --git a/openpower/scripts/firmware-whitelist b/openpower/scripts/firmware-whitelist index b8a95f001..3c9957186 100755 --- a/openpower/scripts/firmware-whitelist +++ b/openpower/scripts/firmware-whitelist @@ -6,8 +6,8 @@ # slash is required. whitelist=( 'acenic/' 'bnx2/' - 'bnx2x/bnx2x-e2-7.13.15.0.fw' - 'cxgb4/t4fw-1.16.63.0.bin' + 'bnx2x/bnx2x-e2-7.13.21.0.fw' + 'cxgb4/t4fw-1.27.5.0.bin' 'cxgb4/t4fw.bin' 'cxgb3/' 'qed/qed_init_values_zipped-8.37.2.0.bin' diff --git a/openpower/scripts/release-notes b/openpower/scripts/release-notes index 27c6bcbca..ef452d31f 100755 --- a/openpower/scripts/release-notes +++ b/openpower/scripts/release-notes @@ -26,8 +26,7 @@ my $repos = DIR => "openpower/package/occ"}, 'pnor' => { REPO => "https://github.com/open-power/pnor" , DIR => "openpower/package/openpower-pnor"}, - 'petitboot' => { REPO => "https://github.com/open-power/petitboot" , - DIR => "openpower/package/petitboot"}, + 'petitboot' => { REPO => "https://github.com/open-power/petitboot" }, }; my $begin_release; diff --git a/openpower/scripts/silence-init b/openpower/scripts/silence-init new file mode 100755 index 000000000..fe8410c3b --- /dev/null +++ b/openpower/scripts/silence-init @@ -0,0 +1,5 @@ +#!/usr/bin/env bash + +set -o nounset + +sed -i -r -e 's/^(console|)::/null::/' "$TARGET_DIR/etc/inittab"