Compare commits

...

13 Commits

Author SHA1 Message Date
Leah Rowe 97d502ccc8 tone the README way, way down
canoeboot is a fsdg coreboot distro, so it should talk like one

Signed-off-by: Leah Rowe <info@minifree.org>
2024-05-10 03:28:23 +01:00
Leah Rowe 29d6d294ab Canoeboot 20240504 release
Signed-off-by: Leah Rowe <info@minifree.org>
2024-05-04 10:26:51 +01:00
Leah Rowe 79b00fbfaf coreboot: update latitude release status
working s3 means i'm happy to mark it as being stable.

Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-04 10:24:55 +01:00
Leah Rowe ed8969d93f d510mo and d945gclf: disable for release
Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-04 10:23:15 +01:00
Leah Rowe 8a1255634e build/roms: more useful status warnings
Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-04 10:22:40 +01:00
Leah Rowe 5405584b5a mark lenovo x301 as stable for release
Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-04 10:22:10 +01:00
Nicholas Chin 9d5e03268b coreboot/default: Add patches to fix S3 on SNB/IVB Latitudes
Signed-off-by: Nicholas Chin <nic.c3.14@gmail.com>
2024-05-04 10:21:59 +01:00
Leah Rowe dc41f55a09 coreboot/x301: set release=n (will re-test)
was reported broken on canoeboot 0.1, which uses 2021
coreboot. we use much newer coreboot now in libreboot, but
still, better be cautious. set to release=n.

i'll set status and remove release=n if it works on testing

Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-04 10:21:28 +01:00
Leah Rowe fc0972fe6d update/release: purge test/lib/strlcat.c in u-boot
Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-04 10:20:50 +01:00
Leah Rowe c4fe290da8 mark x4x boards ready for release
Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-04 10:20:41 +01:00
Leah Rowe 029e30bfbc err.sh: update copyright info
i added a few changes during this year so far, 2024

update the copyright years

Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-04 10:20:30 +01:00
Leah Rowe 2074d33712 update/release: say when an archive is being made
without this change, the user might think lbmk crashed

Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-05-04 10:20:20 +01:00
Leah Rowe a8aa1dc0f8 update config/git/docs (cbwww rev)
Signed-off-by: Leah Rowe <info@minifree.org>
2024-05-04 10:17:47 +01:00
24 changed files with 302 additions and 33 deletions

View File

@ -18,27 +18,31 @@ prefer Canoeboot, which is essentially a *censored* Libreboot (no binary
blobs allowed, so only few boards supported whereas Libreboot supports more
boards while minimising the number of blobs to zero when possible).
For more context, please read Libreboot's Binary Blob Reduction Policy:
Canoeboot is provided for the purists who absolutely wish to have no proprietary
software of any kind. Regardless of any other firmware that exists outside of it,
the boot flash on your system will be *entirely free software* if you install
Canoeboot on it. That includes a complete lack of CPU microcode updates, as per
FSF policy.
<https://libreboot.org/news/policy.html>
More specifically: Canoeboot is engineered to comply with the GNU Free System
Distribution Guidelines. It has, as of November 2023 releases, been strictly
audited by FSF licensing staff (Craig Topham lead the audit), and it is listed
on the FSF's own Free Software Directory.
You may also read Canoeboot's about page, which contains more history pertaining
to *Canoeboot*. Please read this page:
<https://canoeboot.org/about.html>
Canoeboot is inferior to Libreboot, in every way, and you should never use it.
Libreboot previously complied with that same policy, but changed to a different
one permitting binary blobs in limited circumstances, so as to support more newer
machines. Canoeboot is, then, a continuation of the traditional Libreboot
project prior to that policy change. Some users still want it, so, Canoeboot
releases are rigoriously maintained, re-basing on newer Libreboot releases over
time, just like how, say, Trisquel, re-bases itself on each new Ubuntu release.
Project goals
=============
- Be Libreboot, but adhere to GNU FSDG as policy. This means that many boards
from Libreboot must be removed; Canoeboot is therefore inferior to Libreboot,
and always will be. It provides a useful proof of concept, showing what
is still possible when you completely bastardise Libreboot in like with
FSF/GNU dogma - and Canoeboot does it better than GNU ever could.
- *Support as much hardware as possible!* (within the restrictions imposed
by GNU FSDG policy)
- Obviously, support as much hardware as possible (within the limitations
imposed by GNU FSDG, and using what coreboot happens to have in its source
tree - Canoeboot also heavily patches coreboot, sometimes adding new
mainboards out-of-tree).
- *Make coreboot easy to use*. Coreboot is notoriously difficult
to install, due to an overall lack of user-focused documentation
and support. Most people will simply give up before attempting to
@ -64,7 +68,8 @@ Not a coreboot fork!
--------------------
Canoeboot is not a fork of coreboot. Every so often, the project
re-bases on the latest version of coreboot, with the number of custom
re-bases on the latest version of coreboot, by virtue of maintaining sync
with Libreboot releases (minus un-GNU parts), with the number of custom
patches in use minimized. Tested, *stable* (static) releases are then provided
in Canoeboot, based on specific coreboot revisions.

View File

@ -5,3 +5,4 @@ payload_grub_withseabios="n"
payload_seabios="y"
payload_memtest="y"
status="untested"
release="n"

View File

@ -0,0 +1 @@
this board has never been stable, and has not been tested in Libreboot 20240504 so no ROM images included for it in that release

View File

@ -4,3 +4,4 @@ payload_seabios="y"
payload_seabios_withgrub="y"
payload_memtest="y"
status="untested"
release="n"

View File

@ -0,0 +1 @@
this board has never been stable, and has not been tested in Libreboot 20240504 so no ROM images included for it in that release

View File

@ -5,3 +5,4 @@ payload_grub_withseabios="n"
payload_seabios="y"
payload_memtest="n"
status="untested"
release="n"

View File

@ -0,0 +1 @@
this board has never been stable, and has not been tested in Libreboot 20240504 so no ROM images included for it in that release

View File

@ -5,3 +5,4 @@ payload_grub_withseabios="n"
payload_seabios="y"
payload_memtest="n"
status="untested"
release="n"

View File

@ -0,0 +1 @@
this board has never been stable, and has not been tested in Libreboot 20240504 so no ROM images included for it in that release

View File

@ -0,0 +1,117 @@
From a8c4f7004ea1c9b8268a87dd0b700c250ec4747d Mon Sep 17 00:00:00 2001
From: Nicholas Chin <nic.c3.14@gmail.com>
Date: Fri, 3 May 2024 11:03:32 -0600
Subject: [PATCH] ec/dell/mec5035: Add S3 suspend SMI handler
Change-Id: I655868aba46911d128f6c24f410dc6fdf83f3070
Signed-off-by: Nicholas Chin <nic.c3.14@gmail.com>
---
src/ec/dell/mec5035/Makefile.mk | 1 +
src/ec/dell/mec5035/mec5035.c | 14 ++++++++++++++
src/ec/dell/mec5035/mec5035.h | 19 +++++++++++++++++++
src/ec/dell/mec5035/smihandler.c | 17 +++++++++++++++++
4 files changed, 51 insertions(+)
create mode 100644 src/ec/dell/mec5035/smihandler.c
diff --git a/src/ec/dell/mec5035/Makefile.mk b/src/ec/dell/mec5035/Makefile.mk
index 4ebdd811f9..be557e4599 100644
--- a/src/ec/dell/mec5035/Makefile.mk
+++ b/src/ec/dell/mec5035/Makefile.mk
@@ -5,5 +5,6 @@ ifeq ($(CONFIG_EC_DELL_MEC5035),y)
bootblock-y += mec5035.c
romstage-y += mec5035.c
ramstage-y += mec5035.c
+smm-y += mec5035.c smihandler.c
endif
diff --git a/src/ec/dell/mec5035/mec5035.c b/src/ec/dell/mec5035/mec5035.c
index 68b6b2f7fb..33bf046634 100644
--- a/src/ec/dell/mec5035/mec5035.c
+++ b/src/ec/dell/mec5035/mec5035.c
@@ -94,6 +94,20 @@ void mec5035_control_radio(enum ec_radio_dev dev, enum ec_radio_state state)
ec_command(CMD_RADIO_CTRL);
}
+void mec5035_sleep_enable(void)
+{
+ u8 buf[SLEEP_EN_NUM_ARGS] = {3, 0};
+ write_mailbox_regs(buf, 2, SLEEP_EN_NUM_ARGS);
+ ec_command(CMD_SLEEP_ENABLE);
+}
+
+void mec5035_change_wake(u8 source, enum ec_wake_change change)
+{
+ u8 buf[ACPI_WAKEUP_NUM_ARGS] = {change, source, 0, 0x40};
+ write_mailbox_regs(buf, 2, ACPI_WAKEUP_NUM_ARGS);
+ ec_command(CMD_ACPI_WAKEUP_CHANGE);
+}
+
void mec5035_early_init(void)
{
/* If this isn't sent the EC shuts down the system after about 15
diff --git a/src/ec/dell/mec5035/mec5035.h b/src/ec/dell/mec5035/mec5035.h
index fa15a9d621..069616fbc5 100644
--- a/src/ec/dell/mec5035/mec5035.h
+++ b/src/ec/dell/mec5035/mec5035.h
@@ -4,6 +4,7 @@
#define _EC_DELL_MEC5035_H_
#include <stdint.h>
+#include <types.h>
#define NUM_REGISTERS 32
@@ -29,9 +30,27 @@ enum ec_radio_state {
RADIO_ON
};
+#define CMD_ACPI_WAKEUP_CHANGE 0x4a
+#define ACPI_WAKEUP_NUM_ARGS 4
+enum ec_wake_change {
+ WAKE_OFF = 0,
+ WAKE_ON
+};
+enum ec_acpi_wake_events {
+ EC_ACPI_WAKE_PWRB = BIT(0), /* Wake up by power button */
+ EC_ACPI_WAKE_LID = BIT(1), /* Wake up by lid switch */
+ EC_ACPI_WAKE_RTC = BIT(5), /* Wake up by RTC */
+};
+
+#define CMD_SLEEP_ENABLE 0x64
+#define SLEEP_EN_NUM_ARGS 2
+
u8 mec5035_mouse_touchpad(u8 setting);
void mec5035_cpu_ok(void);
void mec5035_early_init(void);
void mec5035_control_radio(enum ec_radio_dev device, enum ec_radio_state state);
+void mec5035_sleep(int slp_type);
+void mec5035_change_wake(u8 source, enum ec_wake_change change);
+void mec5035_sleep_enable(void);
#endif /* _EC_DELL_MEC5035_H_ */
diff --git a/src/ec/dell/mec5035/smihandler.c b/src/ec/dell/mec5035/smihandler.c
new file mode 100644
index 0000000000..1db834773d
--- /dev/null
+++ b/src/ec/dell/mec5035/smihandler.c
@@ -0,0 +1,17 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <acpi/acpi.h>
+#include <console/console.h>
+#include <ec/acpi/ec.h>
+#include "mec5035.h"
+
+void mec5035_sleep(int slp_type)
+{
+ switch (slp_type) {
+ case ACPI_S3:
+ /* System does not yet resume properly if woken by lid */
+ mec5035_change_wake(EC_ACPI_WAKE_LID, WAKE_OFF);
+ mec5035_sleep_enable();
+ break;
+ }
+}
--
2.44.0

View File

@ -0,0 +1,133 @@
From 9ff35368733c5e5a852ebd6295f262710553913b Mon Sep 17 00:00:00 2001
From: Nicholas Chin <nic.c3.14@gmail.com>
Date: Fri, 3 May 2024 16:31:12 -0600
Subject: [PATCH] mb/dell/: Add S3 SMI handler for SNB/IVB Latitudes
This should fix S3 suspend on these systems
Signed-off-by: Nicholas Chin <nic.c3.14@gmail.com>
---
src/mainboard/dell/e5420/smihandler.c | 9 +++++++++
src/mainboard/dell/e5520/smihandler.c | 9 +++++++++
src/mainboard/dell/e5530/smihandler.c | 9 +++++++++
src/mainboard/dell/e6420/smihandler.c | 9 +++++++++
src/mainboard/dell/e6430/smihandler.c | 9 +++++++++
src/mainboard/dell/e6520/smihandler.c | 9 +++++++++
src/mainboard/dell/e6530/smihandler.c | 9 +++++++++
7 files changed, 63 insertions(+)
create mode 100644 src/mainboard/dell/e5420/smihandler.c
create mode 100644 src/mainboard/dell/e5520/smihandler.c
create mode 100644 src/mainboard/dell/e5530/smihandler.c
create mode 100644 src/mainboard/dell/e6420/smihandler.c
create mode 100644 src/mainboard/dell/e6430/smihandler.c
create mode 100644 src/mainboard/dell/e6520/smihandler.c
create mode 100644 src/mainboard/dell/e6530/smihandler.c
diff --git a/src/mainboard/dell/e5420/smihandler.c b/src/mainboard/dell/e5420/smihandler.c
new file mode 100644
index 0000000000..334d7b1a5f
--- /dev/null
+++ b/src/mainboard/dell/e5420/smihandler.c
@@ -0,0 +1,9 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <cpu/x86/smm.h>
+#include <ec/dell/mec5035/mec5035.h>
+
+void mainboard_smi_sleep(u8 slp_typ)
+{
+ mec5035_sleep(slp_typ);
+}
diff --git a/src/mainboard/dell/e5520/smihandler.c b/src/mainboard/dell/e5520/smihandler.c
new file mode 100644
index 0000000000..334d7b1a5f
--- /dev/null
+++ b/src/mainboard/dell/e5520/smihandler.c
@@ -0,0 +1,9 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <cpu/x86/smm.h>
+#include <ec/dell/mec5035/mec5035.h>
+
+void mainboard_smi_sleep(u8 slp_typ)
+{
+ mec5035_sleep(slp_typ);
+}
diff --git a/src/mainboard/dell/e5530/smihandler.c b/src/mainboard/dell/e5530/smihandler.c
new file mode 100644
index 0000000000..334d7b1a5f
--- /dev/null
+++ b/src/mainboard/dell/e5530/smihandler.c
@@ -0,0 +1,9 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <cpu/x86/smm.h>
+#include <ec/dell/mec5035/mec5035.h>
+
+void mainboard_smi_sleep(u8 slp_typ)
+{
+ mec5035_sleep(slp_typ);
+}
diff --git a/src/mainboard/dell/e6420/smihandler.c b/src/mainboard/dell/e6420/smihandler.c
new file mode 100644
index 0000000000..334d7b1a5f
--- /dev/null
+++ b/src/mainboard/dell/e6420/smihandler.c
@@ -0,0 +1,9 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <cpu/x86/smm.h>
+#include <ec/dell/mec5035/mec5035.h>
+
+void mainboard_smi_sleep(u8 slp_typ)
+{
+ mec5035_sleep(slp_typ);
+}
diff --git a/src/mainboard/dell/e6430/smihandler.c b/src/mainboard/dell/e6430/smihandler.c
new file mode 100644
index 0000000000..334d7b1a5f
--- /dev/null
+++ b/src/mainboard/dell/e6430/smihandler.c
@@ -0,0 +1,9 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <cpu/x86/smm.h>
+#include <ec/dell/mec5035/mec5035.h>
+
+void mainboard_smi_sleep(u8 slp_typ)
+{
+ mec5035_sleep(slp_typ);
+}
diff --git a/src/mainboard/dell/e6520/smihandler.c b/src/mainboard/dell/e6520/smihandler.c
new file mode 100644
index 0000000000..334d7b1a5f
--- /dev/null
+++ b/src/mainboard/dell/e6520/smihandler.c
@@ -0,0 +1,9 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <cpu/x86/smm.h>
+#include <ec/dell/mec5035/mec5035.h>
+
+void mainboard_smi_sleep(u8 slp_typ)
+{
+ mec5035_sleep(slp_typ);
+}
diff --git a/src/mainboard/dell/e6530/smihandler.c b/src/mainboard/dell/e6530/smihandler.c
new file mode 100644
index 0000000000..334d7b1a5f
--- /dev/null
+++ b/src/mainboard/dell/e6530/smihandler.c
@@ -0,0 +1,9 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <cpu/x86/smm.h>
+#include <ec/dell/mec5035/mec5035.h>
+
+void mainboard_smi_sleep(u8 slp_typ)
+{
+ mec5035_sleep(slp_typ);
+}
--
2.44.0

View File

@ -7,4 +7,4 @@ payload_memtest="y"
payload_seabios_withgrub="y"
payload_seabios_grubonly="y"
grub_scan_disk="ahci"
status="unstable" # broken s3
status="stable" # broken s3

View File

@ -1 +1 @@
Battery indicator not working yet. S3 suspend/resume may be broken. May shut down instead of throttle on high CPU temperature; use the intel_pstate driver to cap speeds, and monitor performance via CPU stress test and lm-sensors/xsensors utility, before using the machine regularly.
Battery indicator not working yet. May shut down instead of throttle on high CPU temperature; use the intel_pstate driver to cap speeds, and monitor performance via CPU stress test and lm-sensors/xsensors utility, before using the machine regularly.

View File

@ -3,4 +3,4 @@ xarch="i386-elf"
payload_seabios="y"
payload_memtest="y"
grub_timeout=10
status="untested"
status="stable"

View File

@ -3,4 +3,5 @@ xarch="i386-elf"
payload_seabios="y"
payload_memtest="y"
grub_timeout=10
status="untested"
status="stable"
release="n"

View File

@ -4,4 +4,4 @@ payload_seabios="y"
payload_memtest="y"
grub_scan_disk="ata"
grub_timeout=10
status="untested"
status="stable"

View File

@ -5,4 +5,4 @@ payload_grub_withseabios="y"
payload_seabios="y"
payload_memtest="y"
grub_scan_disk="ahci"
status="untested"
status="stable"

View File

@ -5,4 +5,4 @@ payload_grub_withseabios="y"
payload_seabios="y"
payload_memtest="y"
grub_scan_disk="ahci"
status="untested"
status="stable"

View File

@ -5,4 +5,4 @@ payload_grub_withseabios="y"
payload_seabios="y"
payload_memtest="y"
grub_scan_disk="ahci"
status="untested"
status="stable"

View File

@ -8,7 +8,7 @@
}
{mdfiles}{
rev: 8aa11d47956f6312a059a1a2d3054b50a4d3fd90
rev: ec6898ff7dc643fb308b6370c8504383d5dcc239
loc: docs/www/html
url: https://codeberg.org/canoeboot/cbwww
bkup_url: https://git.disroot.org/canoeboot/cbwww

View File

@ -16,7 +16,7 @@ index bd4431000..31308e16a 100644
grub_term_cls (term);
- msg_formatted = grub_xasprintf (_("GNU GRUB version %s"), PACKAGE_VERSION);
+ msg_formatted = grub_xasprintf (_("Canoeboot 20240102 release, based on Libreboot 20240102. https://libreboot.org/"));
+ msg_formatted = grub_xasprintf (_("Canoeboot 20240504 release, based on Libreboot 20240504. https://libreboot.org/"));
if (!msg_formatted)
return;

View File

@ -1,5 +1,5 @@
# SPDX-License-Identifier: MIT
# SPDX-FileCopyrightText: 2022, 2023 Leah Rowe <leah@libreboot.org>
# SPDX-FileCopyrightText: 2022, 2024 Leah Rowe <leah@libreboot.org>
export LC_COLLATE=C
export LC_ALL=C

View File

@ -157,12 +157,15 @@ configure_target()
skip_board()
{
[ "$listboards" != "y" ] && [ "$status" != "stable" ] && \
printf "WARNING: %s not stable (status=%s):\n\n" \
if [ "$listboards" != "y" ] && [ "$status" != "stable" ]; then
printf "\n\n\t!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"
printf "\t__WARNING: %s has status '%s'__\n" \
"$board" "$status"
printf "\t!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\n"
fi
if [ -f "$targetdir/warn.txt" ] && [ "$listboards" != "y" ]; then
printf "Regarding board '%s' (status '%s'):\n" \
printf "Regarding target '%s' (status '%s'):\n\n" \
"$board" "$status"
cat -u "$targetdir/warn.txt" || \
$err "!cat $targetdir/warn.txt"
@ -176,7 +179,7 @@ skip_board()
printf "\nTo disable this dialog when building, do:\n"
printf "export CBMK_STATUS=n\n\n"
while true; do
printf "Board %s has status '%s'. Skip? [y/n]" \
printf "Board %s has status '%s'. Skip? [y/n] " \
"$board" "$status"
read -r skip
[ "$skip" = "y" ] && return 0

View File

@ -1,6 +1,6 @@
#!/usr/bin/env sh
# SPDX-License-Identifier: MIT
# SPDX-FileCopyrightText: 2020-2023 Leah Rowe <leah@libreboot.org>
# SPDX-FileCopyrightText: 2020-2024 Leah Rowe <leah@libreboot.org>
set -u -e
@ -162,6 +162,7 @@ insert_copying_files()
cp -R "src/u-boot/default/Licenses" "${l}/COPYING.u-boot" || return 1
printf "Multiple licenses. Check corresponding %s source archive\n" \
"${projectname}" > "${1}/COPYING" || return 1
rm -f src/u-boot/*/test/lib/strlcat.c || return 1
}
mkrom_tarball()
@ -193,9 +194,10 @@ mktarball()
[ "${2%/*}" = "${2}" ] || \
mkdir -p "${2%/*}" || $err "mk, !mkdir -p \"${2%/*}\""
printf "\nCreating archive: %s\n\n" "$2"
if [ "${tar_implementation% *}" = "tar (GNU tar)" ]; then
tar --sort=name --owner=root:0 --group=root:0 \
--mtime="UTC 2023-11-06" -c "$1" | xz -T$threads -9e \
--mtime="UTC 2024-05-04" -c "$1" | xz -T$threads -9e \
> "$2" || $err "mktarball 1, ${1}"
else
# TODO: reproducible tarballs on non-GNU systems