Merge 37c6886c1ed79c9d5d643bfffc7e7a75cd5b1ebf into d4c4e5699b89365a88d9d49748dbcc11b6394907

This commit is contained in:
Matthew Drobnak 2025-03-06 13:24:33 -07:00 committed by GitHub
commit b8af5f0275
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
9 changed files with 5177 additions and 0 deletions

View File

@ -189,6 +189,7 @@ jobs:
- build/x86/coreboot-4.11
- build/x86/coreboot-24.02.01
- build/x86/coreboot-dasharo
- build/x86/coreboot-mrchromebox
- build/x86/coreboot-purism
- build/x86/musl-cross-make-38e52db8358c043ae82b346a2e6e66bc86a53bc1
- crossgcc
@ -236,6 +237,14 @@ workflows:
requires:
- x86-musl-cross-make
# coreboot-git mrchromebox
- build:
name: omnigul
target: omnigul
subcommand: ""
requires:
- x86-musl-cross-make
# coreboot purism
- build_and_persist:
name: librem_14

View File

@ -0,0 +1,81 @@
# Configuration for a Acer Chromebook Plus 515 (CB515-2H/OMNIGUL)
# Intel iGPU "UHD Graphics", 12th Gen Intel Core i3-1215U, 8GB RAM
# 128GB UFS Storage (iNAND brand), Intel AX211 Wi-FI 6E,
# 32MB Winbond Chip W25Q256JVEM - WSON8 8x6 probe needed.
export CONFIG_COREBOOT=y
export CONFIG_COREBOOT_VERSION=mrchromebox
export CONFIG_LINUX_VERSION=6.6.30
CONFIG_COREBOOT_CONFIG=config/coreboot-omnigul.config
CONFIG_LINUX_CONFIG=config/linux-omnigul.config
#Enable DEBUG output
#export CONFIG_DEBUG_OUTPUT=y
#export CONFIG_ENABLE_FUNCTION_TRACING_OUTPUT=y
#Enable TPM2 pcap output under /tmp
#export CONFIG_TPM2_CAPTURE_PCAP=y
# Since the TPM 2.0 implementation in the CR50 is not complete
# we are disabling TPM Disk Unlock
CONFIG_TPM_NO_LUKS_DISK_UNLOCK=y
#On-demand hardware support (modules.cpio)
CONFIG_LINUX_USB=y
CONFIG_LINUX_E1000=n
CONFIG_MOBILE_TETHERING=y
#Modules packed into tools.cpio
CONFIG_CRYPTSETUP2=y
CONFIG_FLASHPROG=y
CONFIG_FLASHTOOLS=y
CONFIG_GPG2=y
CONFIG_KEXEC=y
CONFIG_UTIL_LINUX=y
CONFIG_LVM2=y
CONFIG_MBEDTLS=y
CONFIG_PCIUTILS=y
#Runtime tools to write to EC/MSR
CONFIG_IOTOOLS=n
CONFIG_MSRTOOLS=n
#Remote attestation support
# TPM2 requirements
CONFIG_TPM2_TSS=y
CONFIG_OPENSSL=y
#Remote Attestation common tools
CONFIG_POPT=y
CONFIG_QRENCODE=y
CONFIG_TPMTOTP=y
#HOTP based remote attestation for supported USB Security dongle
#With/Without TPM support
CONFIG_HOTPKEY=n
#Nitrokey Storage admin tool (deprecated)
#CONFIG_NKSTORECLI=n
#GUI Support
#Console based Whiptail support(Console based, no FB):
#CONFIG_SLANG=y
#CONFIG_NEWT=y
#FBWhiptail based (Graphical):
CONFIG_CAIRO=y
CONFIG_FBWHIPTAIL=y
#Additional tools (tools.cpio):
#SSH server (requires ethernet drivers, eg: CONFIG_LINUX_E1000E)
CONFIG_DROPBEAR=y
#Runtime configuration
#Automatically boot if HOTP is valid
export CONFIG_AUTO_BOOT_TIMEOUT=5
#TPM2 requirements
export CONFIG_TPM2_TOOLS=y
export CONFIG_PRIMARY_KEY_TYPE=ecc
#TPM1 requirements
#export CONFIG_TPM=y
export CONFIG_BOOTSCRIPT=/bin/gui-init
export CONFIG_BOOT_REQ_HASH=n
export CONFIG_BOOT_REQ_ROLLBACK=n
export CONFIG_BOOT_KERNEL_ADD=""
export CONFIG_BOOT_KERNEL_REMOVE=""
export CONFIG_BOOT_DEV="/dev/sda2"
export CONFIG_BOARD_NAME="Google Omnigul"
export CONFIG_FLASH_OPTIONS="flashprog --progress --programmer internal --ifd -i bios -i fd"
export CONFIG_AUTO_BOOT_TIMEOUT=5

File diff suppressed because it is too large Load Diff

3536
config/linux-omnigul.config Normal file

File diff suppressed because it is too large Load Diff

View File

@ -91,6 +91,11 @@ coreboot-purism_repo := https://source.puri.sm/firmware/coreboot.git
coreboot-purism_commit_hash := bea9947a1279be7d4a72b38a601d0288d10d1cb8
$(eval $(call coreboot_module,purism,24.02.01))
# MrChromebox is based on 4.22, but focusing on Chromebooks / Chromeboxes.
coreboot-mrchromebox_repo := https://github.com/MrChromebox/coreboot.git
coreboot-mrchromebox_commit_hash := 9071e69522e38bef841253dc5970ca6b806d2e55
$(eval $(call coreboot_module,mrchromebox,))
# MSI and NovaCustom NV4xPZ, NS5xPU, V560TU boards are based on Dasharo
# coreboot fork, based on upstream coreboot version 24.02
coreboot-dasharo_repo := https://github.com/dasharo/coreboot

View File

@ -34,6 +34,9 @@ linux_hash := 40f014d53e81f204f6d2a364aae4201ae07970dd1b70dc602d7c66c1a140f558
else ifeq "$(CONFIG_LINUX_VERSION)" "6.1.8"
linux_version := 6.1.8
linux_hash := b60bb53ab8ba370a270454b11e93d41af29126fc72bd6ede517673e2e57b816d
else ifeq "$(CONFIG_LINUX_VERSION)" "6.6.30"
linux_version := 6.6.30
linux_hash := b66a5b863b0f8669448b74ca83bd641a856f164b29956e539bbcb5fdeeab9cc6
else
$(error "$(BOARD): does not specify linux kernel version under CONFIG_LINUX_VERSION")
endif

View File

@ -0,0 +1,32 @@
diff --recursive -u ./clean/linux-4.9.80/drivers/acpi/acpica/evxfevnt.c linux-4.9.80/drivers/acpi/acpica/evxfevnt.c
--- ./clean/linux-4.9.80/drivers/acpi/acpica/evxfevnt.c 2018-02-03 11:05:43.000000000 -0500
+++ linux-4.9.80/drivers/acpi/acpica/evxfevnt.c 2018-02-07 15:51:28.786502597 -0500
@@ -111,6 +111,8 @@
}
ACPI_ERROR((AE_INFO, "Hardware did not enter ACPI mode"));
+printk("%s:%d faking ACPI mode\n", __func__, __LINE__);
+ return_ACPI_STATUS(AE_OK);
return_ACPI_STATUS(AE_NO_HARDWARE_RESPONSE);
}
diff --recursive -u ./clean/linux-4.9.80/drivers/acpi/acpica/hwacpi.c linux-4.9.80/drivers/acpi/acpica/hwacpi.c
--- ./clean/linux-4.9.80/drivers/acpi/acpica/hwacpi.c 2018-02-03 11:05:43.000000000 -0500
+++ linux-4.9.80/drivers/acpi/acpica/hwacpi.c 2018-02-07 15:51:35.126557868 -0500
@@ -168,12 +168,16 @@
status = acpi_read_bit_register(ACPI_BITREG_SCI_ENABLE, &value);
if (ACPI_FAILURE(status)) {
+printk("%s:%d faking ACPI mode\n", __func__, __LINE__);
+ return_UINT32(ACPI_SYS_MODE_ACPI);
return_UINT32(ACPI_SYS_MODE_LEGACY);
}
if (value) {
return_UINT32(ACPI_SYS_MODE_ACPI);
} else {
+//printk("%s:%d faking ACPI mode\n", __func__, __LINE__);
+// return_UINT32(ACPI_SYS_MODE_ACPI);
return_UINT32(ACPI_SYS_MODE_LEGACY);
}
}

View File

@ -0,0 +1,20 @@
diff --recursive -u ./clean/linux-4.9.80/arch/x86/kernel/nmi.c linux-4.9.80/arch/x86/kernel/nmi.c
--- ./clean/linux-4.9.80/arch/x86/kernel/nmi.c 2018-02-03 11:05:43.000000000 -0500
+++ linux-4.9.80/arch/x86/kernel/nmi.c 2018-02-07 18:56:10.475613884 -0500
@@ -303,6 +303,8 @@
__this_cpu_add(nmi_stats.unknown, 1);
+#if 0
+// qemu generates these for some reason
pr_emerg("Uhhuh. NMI received for unknown reason %02x on CPU %d.\n",
reason, smp_processor_id());
@@ -311,6 +313,7 @@
nmi_panic(regs, "NMI: Not continuing");
pr_emerg("Dazed and confused, but trying to continue\n");
+#endif
}
NOKPROBE_SYMBOL(unknown_nmi_error);

View File

@ -0,0 +1,18 @@
diff --recursive -u ./clean/linux-4.9.80/drivers/ata/libahci.c linux-4.9.80/drivers/ata/libahci.c
--- ./clean/linux-4.9.80/drivers/ata/libahci.c 2018-02-03 11:05:43.000000000 -0500
+++ linux-4.9.80/drivers/ata/libahci.c 2018-02-07 18:02:32.526535910 -0500
@@ -537,8 +537,12 @@
}
/* fabricate port_map from cap.nr_ports for < AHCI 1.3 */
- if (!port_map && vers < 0x10300) {
- port_map = (1 << ahci_nr_ports(cap)) - 1;
+ if (!port_map) { // && vers < 0x10300) {
+ printk("%s: saved_port=%02x\n", __func__, hpriv->saved_port_map);
+ writel(0x1, mmio + HOST_PORTS_IMPL);
+ port_map = readl(mmio + HOST_PORTS_IMPL);
+
+ //port_map = (1 << ahci_nr_ports(cap)) - 1;
dev_warn(dev, "forcing PORTS_IMPL to 0x%lx\n", port_map);
/* write the fixed up value to the PI register */