linux: Add 5.15 recipes + nuvoton configuration
Change-Id: I9c585f59f1a0e8e3fb61f4b01f824ee5c4c9bfa2
Signed-off-by: William A. Kennington III <wak@google.com>
diff --git a/recipes-kernel/linux/files/0001-ARM-dts-gbmc-Add-flash-layouts.patch b/recipes-kernel/linux/files/0001-ARM-dts-gbmc-Add-flash-layouts.patch
new file mode 100644
index 0000000..afbacca
--- /dev/null
+++ b/recipes-kernel/linux/files/0001-ARM-dts-gbmc-Add-flash-layouts.patch
@@ -0,0 +1,95 @@
+From 27b4a56d8360ed751a4446e3f1c6237ac4f740df Mon Sep 17 00:00:00 2001
+From: "William A. Kennington III" <wak@google.com>
+Date: Fri, 12 Nov 2021 17:34:47 -0800
+Subject: [PATCH 1/2] ARM: dts: gbmc: Add flash layouts
+
+Signed-off-by: William A. Kennington III <wak@google.com>
+---
+ arch/arm/boot/dts/gbmc-flash-layout-32.dtsi | 34 +++++++++++++++++++++
+ arch/arm/boot/dts/gbmc-flash-layout-64.dtsi | 33 ++++++++++++++++++++
+ 2 files changed, 67 insertions(+)
+ create mode 100644 arch/arm/boot/dts/gbmc-flash-layout-32.dtsi
+ create mode 100644 arch/arm/boot/dts/gbmc-flash-layout-64.dtsi
+
+diff --git a/arch/arm/boot/dts/gbmc-flash-layout-32.dtsi b/arch/arm/boot/dts/gbmc-flash-layout-32.dtsi
+new file mode 100644
+index 000000000000..c8990c5a66a7
+--- /dev/null
++++ b/arch/arm/boot/dts/gbmc-flash-layout-32.dtsi
+@@ -0,0 +1,34 @@
++partitions@80000000 {
++ compatible = "fixed-partitions";
++ #address-cells = <1>;
++ #size-cells = <1>;
++ u-boot@0 {
++ label = "u-boot";
++ reg = <0x0000000 0x200000>;
++ read-only;
++ };
++ kernel@200000 {
++ label = "kernel";
++ reg = <0x200000 0x500000>;
++ };
++ hoth-mailbox@700000 {
++ label = "hoth-mailbox";
++ reg = <0x700000 0x10000>;
++ };
++ image-descriptor@710000 {
++ label = "image-descriptor";
++ reg = <0x710000 0x10000>;
++ };
++ rofs@720000 {
++ label = "rofs";
++ reg = <0x720000 0x14e0000>;
++ };
++ rwfs@1c00000 {
++ label = "rwfs";
++ reg = <0x1c00000 0x300000>;
++ };
++ hoth-update@1f00000 {
++ label = "hoth-update";
++ reg = <0x1f00000 0x100000>;
++ };
++};
+diff --git a/arch/arm/boot/dts/gbmc-flash-layout-64.dtsi b/arch/arm/boot/dts/gbmc-flash-layout-64.dtsi
+new file mode 100644
+index 000000000000..b26abe450803
+--- /dev/null
++++ b/arch/arm/boot/dts/gbmc-flash-layout-64.dtsi
+@@ -0,0 +1,33 @@
++partitions@80000000 {
++ compatible = "fixed-partitions";
++ #address-cells = <1>;
++ #size-cells = <1>;
++ u-boot@0 {
++ label = "u-boot";
++ reg = <0x0000000 0xf0000>;
++ };
++ image-descriptor@f0000 {
++ label = "image-descriptor";
++ reg = <0xf0000 0x10000>;
++ };
++ hoth-update@100000 {
++ label = "hoth-update";
++ reg = <0x100000 0x100000>;
++ };
++ kernel@200000 {
++ label = "kernel";
++ reg = <0x200000 0x500000>;
++ };
++ rofs@700000 {
++ label = "rofs";
++ reg = <0x700000 0x35f0000>;
++ };
++ rwfs@3cf0000 {
++ label = "rwfs";
++ reg = <0x3cf0000 0x300000>;
++ };
++ hoth-mailbox@3ff0000 {
++ label = "hoth-mailbox";
++ reg = <0x3ff0000 0x10000>;
++ };
++};
+--
+2.34.0.rc2.393.gf8c9666880-goog
+
diff --git a/recipes-kernel/linux/files/0002-mtd-spi-nor-macronix-Add-google-compatible-flash-IDs.patch b/recipes-kernel/linux/files/0002-mtd-spi-nor-macronix-Add-google-compatible-flash-IDs.patch
new file mode 100644
index 0000000..b577f90
--- /dev/null
+++ b/recipes-kernel/linux/files/0002-mtd-spi-nor-macronix-Add-google-compatible-flash-IDs.patch
@@ -0,0 +1,30 @@
+From 8d141ae0c536568019b9d65936678f45c6356db7 Mon Sep 17 00:00:00 2001
+From: "William A. Kennington III" <wak@google.com>
+Date: Fri, 12 Nov 2021 17:38:21 -0800
+Subject: [PATCH 2/2] mtd: spi-nor: macronix: Add google compatible flash IDs
+
+This is required in order to bind against our spi security interposers.
+
+Signed-off-by: William A. Kennington III <wak@google.com>
+---
+ drivers/mtd/spi-nor/macronix.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/drivers/mtd/spi-nor/macronix.c b/drivers/mtd/spi-nor/macronix.c
+index 27498ed0cc0d..24c8dca41896 100644
+--- a/drivers/mtd/spi-nor/macronix.c
++++ b/drivers/mtd/spi-nor/macronix.c
+@@ -87,6 +87,10 @@ static const struct flash_info macronix_parts[] = {
+ { "mx66u2g45g", INFO(0xc2253c, 0, 64 * 1024, 4096,
+ SECT_4K | SPI_NOR_DUAL_READ |
+ SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) },
++ /* Google */
++ {"hothb2-512", INFO(0x260217, 0x0, 64 * 1024, 512, SECT_4K) },
++ {"hothb2-1024", INFO(0x26021a, 0x0, 64 * 1024, 1024, SECT_4K) },
++ {"dauntlessd2-1024", INFO(0x26221a, 0, 64 * 1024, 1024, SECT_4K) },
+ };
+
+ static void macronix_default_init(struct spi_nor *nor)
+--
+2.34.0.rc2.393.gf8c9666880-goog
+
diff --git a/recipes-kernel/linux/files/defconfig b/recipes-kernel/linux/files/defconfig
new file mode 100644
index 0000000..0f41264
--- /dev/null
+++ b/recipes-kernel/linux/files/defconfig
@@ -0,0 +1,144 @@
+# Set some basic defaults
+CONFIG_SYSVIPC=y
+CONFIG_CROSS_MEMORY_ATTACH=y
+CONFIG_MMU=y
+CONFIG_CGROUPS=y
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_KERNEL_XZ=y
+CONFIG_RD_XZ=y
+CONFIG_BPF=y
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_BASE_FULL=y
+CONFIG_MULTIUSER=y
+CONFIG_BINFMT_ELF=y
+CONFIG_BINFMT_SCRIPT=y
+CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
+CONFIG_COREDUMP=y
+CONFIG_FHANDLE=y
+CONFIG_POSIX_TIMERS=y
+CONFIG_PRINTK=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SIGNALFD=y
+CONFIG_SHMEM=y
+CONFIG_IO_URING=y
+CONFIG_ELF_CORE=y
+CONFIG_ADVISE_SYSCALLS=y
+CONFIG_MEMBARRIER=y
+CONFIG_USERFAULTFD=y
+CONFIG_KCMP=y
+CONFIG_RSEQ=y
+CONFIG_SECCOMP=y
+CONFIG_STACKPROTECTOR=y
+CONFIG_STACKPROTECTOR_STRONG=y
+CONFIG_STACKPROTECTOR_PER_TASK=y
+CONFIG_STRICT_KERNEL_RWX=y
+CONFIG_COMPAT_32BIT_TIME=y
+CONFIG_GCC_PLUGINS=y
+CONFIG_GCC_PLUGIN_RANDSTRUCT=y
+CONFIG_MSDOS_PARTITION=n
+CONFIG_EFI_PARTITION=n
+CONFIG_COMPACTION=y
+CONFIG_KSM=y
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_PACKET_DIAG=y
+CONFIG_UNIX=y
+CONFIG_UNIX_DIAG=y
+CONFIG_INET=y
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_INET_DIAG=y
+CONFIG_INET_TCP_DIAG=y
+CONFIG_INET_UDP_DIAG=y
+CONFIG_INET_RAW_DIAG=y
+CONFIG_IPV6=y
+CONFIG_IPV6_ROUTER_PREF=y
+CONFIG_IPV6_ROUTE_INFO=y
+CONFIG_IPV6_OPTIMISTIC_DAD=y
+CONFIG_SYN_COOKIES=y
+CONFIG_PCPU_DEV_REFCNT=y
+CONFIG_ETHTOOL_NETLINK=y
+CONFIG_BLOCK=y
+CONFIG_DEVTMPFS=y
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_ALLOW_DEV_COREDUMP=y
+CONFIG_MTD=y
+CONFIG_MTD_OF_PARTS=y
+CONFIG_MTD_BLKDEVS=y
+CONFIG_MTD_BLOCK=y
+CONFIG_MTD_PARTITIONED_MASTER=y
+CONFIG_MTD_SPI_NOR=y
+CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y
+CONFIG_BLK_DEV=y
+CONFIG_NETDEVICES=y
+CONFIG_NET_CORE=y
+CONFIG_ETHERNET=y
+CONFIG_PCS_XPCS=n
+CONFIG_TTY=y
+CONFIG_UNIX98_PTYS=y
+CONFIG_I2C_CHARDEV=y
+CONFIG_SPI=y
+CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_CDEV=y
+CONFIG_GPIO_CDEV_V1=y
+CONFIG_HWMON=y
+CONFIG_FILE_LOCKING=y
+CONFIG_INOTIFY_USER=y
+CONFIG_OVERLAY_FS=y
+CONFIG_PROC_FS=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_TMPFS_XATTR=y
+CONFIG_MISC_FILESYSTEMS=y
+CONFIG_JFFS2_FS=y
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+CONFIG_JFFS2_SUMMARY=y
+CONFIG_JFFS2_FS_XATTR=y
+CONFIG_JFFS2_FS_POSIX_ACL=y
+CONFIG_JFFS2_ZLIB=y
+CONFIG_SQUASHFS=y
+CONFIG_SQUASHFS_FILE_DIRECT=y
+CONFIG_SQUASHFS_XATTR=y
+CONFIG_SQUASHFS_XZ=y
+
+# We still have commandline users of /dev/mem
+CONFIG_DEVMEM=y
+CONFIG_DEVMEM_BOOTPARAM=n
+
+# Used by gbmc nftables configurations
+CONFIG_NETFILTER=y
+CONFIG_NETFILTER_ADVANCED=y
+CONFIG_NETFILTER_INGRESS=y
+CONFIG_NF_CONNTRACK=y
+CONFIG_NF_CONNTRACK_MARK=y
+CONFIG_NF_TABLES=y
+CONFIG_NFT_CT=y
+CONFIG_NF_TABLES_INET=y
+CONFIG_NFT_REJECT=y
+CONFIG_NFT_LOG=y
+CONFIG_IP_NF_IPTABLES=y
+CONFIG_NF_LOG_IPV4=y
+CONFIG_NFT_FIB_IPV4=y
+CONFIG_IP_NF_FILTER=y
+CONFIG_IP_NF_TARGET_REJECT=y
+CONFIG_IP6_NF_IPTABLES=y
+CONFIG_NF_LOG_IPV6=y
+CONFIG_NFT_FIB_IPV6=y
+CONFIG_IP6_NF_FILTER=y
+CONFIG_IP6_NF_TARGET_REJECT=y
+
+# MGMT Bridge Required Features
+CONFIG_BRIDGE=y
+CONFIG_DUMMY=y
+# Support for bridge filter
+CONFIG_BRIDGE_NETFILTER=y
+CONFIG_NF_TABLES_BRIDGE=y
+CONFIG_BRIDGE_NF_EBTABLES=y
+CONFIG_VETH=y
diff --git a/recipes-kernel/linux/files/dev.cfg b/recipes-kernel/linux/files/dev.cfg
new file mode 100644
index 0000000..f757a50
--- /dev/null
+++ b/recipes-kernel/linux/files/dev.cfg
@@ -0,0 +1,15 @@
+# Enable all kinds of kernel debug features
+CONFIG_DYNAMIC_DEBUG=y
+CONFIG_DEBUG_FS=y
+CONFIG_DEBUG_INFO=n # Turn off to compress size
+CONFIG_FTRACE=y
+CONFIG_SYMBOLIC_ERRNAME=y
+CONFIG_FUNCTION_TRACER=y
+CONFIG_FUNCTION_GRAPH_TRACER=y
+CONFIG_STACK_TRACER=y
+CONFIG_DYNAMIC_FTRACE=y
+
+# We want to allow for sysrqs over the console
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_MAGIC_SYSRQ_SERIAL=y
+CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1
diff --git a/recipes-kernel/linux/files/npcm7xx.cfg b/recipes-kernel/linux/files/npcm7xx.cfg
new file mode 100644
index 0000000..ca429ce
--- /dev/null
+++ b/recipes-kernel/linux/files/npcm7xx.cfg
@@ -0,0 +1,28 @@
+CONFIG_EMBEDDED=y
+CONFIG_ARCH_MULTI_V7=y
+CONFIG_ARM_CPU_TOPOLOGY=y
+CONFIG_ARCH_NPCM=y
+CONFIG_ARCH_NPCM7XX=y
+CONFIG_SMP=y
+CONFIG_VMSPLIT_3G_OPT=y
+CONFIG_ARM_THUMB=y
+CONFIG_ARM_ERRATA_643719=y
+CONFIG_HARDEN_BRANCH_PREDICTOR=y
+CONFIG_KUSER_HELPERS=y
+CONFIG_ARM_PATCH_IDIV=y
+CONFIG_CPU_SW_DOMAIN_PAN=y
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_OF_PLATFORM=y
+CONFIG_SPI_NPCM_FIU=y
+CONFIG_GPIO_GENERIC_PLATFORM=y
+CONFIG_HW_RANDOM=y
+CONFIG_HW_RANDOM_NPCM=y
+CONFIG_WATCHDOG=y
+CONFIG_WATCHDOG_CORE=y
+CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y
+CONFIG_NPCM7XX_WATCHDOG=y
+CONFIG_RAS=y
+CONFIG_EDAC=y
+CONFIG_EDAC_NPCM7XX=y
+CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y
diff --git a/recipes-kernel/linux/linux-gbmc.inc b/recipes-kernel/linux/linux-gbmc.inc
new file mode 100644
index 0000000..3112e05
--- /dev/null
+++ b/recipes-kernel/linux/linux-gbmc.inc
@@ -0,0 +1,17 @@
+inherit kernel
+require recipes-kernel/linux/linux-yocto.inc
+
+PROVIDES += "virtual/kernel"
+KCONFIG_MODE = "--allnoconfig"
+PV = "${LINUX_VERSION}+git${SRCPV}"
+
+SRC_URI += " \
+ git://gbmc.googlesource.com/linux;protocol=https;branch=${KBRANCH} \
+ file://0001-ARM-dts-gbmc-Add-flash-layouts.patch \
+ file://0002-mtd-spi-nor-macronix-Add-google-compatible-flash-IDs.patch \
+ "
+
+FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
+SRC_URI += "file://defconfig"
+SRC_URI:append:dev = " file://dev.cfg"
+SRC_URI:append:npcm7xx = " file://npcm7xx.cfg"
diff --git a/recipes-kernel/linux/linux-gbmc_5.15.bb b/recipes-kernel/linux/linux-gbmc_5.15.bb
new file mode 100644
index 0000000..0080d77
--- /dev/null
+++ b/recipes-kernel/linux/linux-gbmc_5.15.bb
@@ -0,0 +1,6 @@
+require linux-gbmc.inc
+
+KBRANCH = "gbmc-5.15"
+LINUX_VERSION = "5.15.24"
+SRCREV = "51d672aaa932427b5d82ea08d9b6ca6bd64359b8"
+LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"