Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement device wipe using the hardware button on Green #3523

Merged
merged 3 commits into from
Aug 16, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
From d3fb1ec2364b20025d71e2263514a71208cfb61e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20=C4=8Cerm=C3=A1k?= <[email protected]>
Date: Tue, 13 Aug 2024 17:51:29 +0200
Subject: [PATCH] arch: arm64: dts: green: Improve LED representation
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Fix color and use labels/node names according to the LEDs functionality.

Signed-off-by: Jan Čermák <[email protected]>
Co-authored-by: Stefan Agner <[email protected]>
---
arch/arm/dts/rk3566-ha-green.dts | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/arch/arm/dts/rk3566-ha-green.dts b/arch/arm/dts/rk3566-ha-green.dts
index 68d836911e..c3adc59904 100644
--- a/arch/arm/dts/rk3566-ha-green.dts
+++ b/arch/arm/dts/rk3566-ha-green.dts
@@ -48,16 +48,18 @@
leds {
compatible = "gpio-leds";

- led_power: led-0 {
+ led_power: led-power {
+ label = "power";
gpios = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>;
function = LED_FUNCTION_POWER;
- color = <LED_COLOR_ID_RED>;
+ color = <LED_COLOR_ID_WHITE>;
default-state = "keep";
linux,default-trigger = "default-on";
pinctrl-names = "default";
pinctrl-0 = <&led_power_pin>;
};
- led_act: led-1 {
+ led_act: led-activity {
+ label = "activity";
gpios = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>;
function = LED_FUNCTION_ACTIVITY;
color = <LED_COLOR_ID_GREEN>;
@@ -65,7 +67,8 @@
pinctrl-names = "default";
pinctrl-0 = <&led_act_pin>;
};
- led_user: led-2 {
+ led_user: led-user {
+ label = "user";
gpios = <&gpio0 RK_PC5 GPIO_ACTIVE_HIGH>;
function = LED_FUNCTION_HEARTBEAT;
color = <LED_COLOR_ID_YELLOW>;
30 changes: 30 additions & 0 deletions buildroot-external/board/nabucasa/green/uboot-boot.ush
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,36 @@ test -n "${MACHINE_ID}" || setenv BOOT_CONDITION "systemd.condition-first-boot=t
# HassOS bootargs
setenv bootargs_hassos "zram.enabled=1 zram.num_devices=3 rootwait systemd.machine_id=${MACHINE_ID} fsck.repair=yes ${BOOT_CONDITION}"

i2c dev 0
setenv check_btn_pressed ' \
i2c read 0x20 0xf0.1 1 ${loadaddr}; \
setexpr PWRON_STS *${loadaddr} \\\& 0x80; \
test ${PWRON_STS} -eq 0x0;'

# Check if button is held for device wipe
setenv counter 0
while test ${counter} -lt 2; do
if run check_btn_pressed; then
echo "Reset button pressed for ${counter} seconds"
setexpr counter ${counter} + 1

if test ${counter} -eq 2; then
led user on
echo "Waiting for button to be released"
while run check_btn_pressed; do
sleep 0.5
done
echo "Proceeding with device wipe"
setenv bootargs_hassos "${bootargs_hassos} haos.wipe=1"
sairon marked this conversation as resolved.
Show resolved Hide resolved
else
sleep 1
fi
else
# U-Boot has no break statement :')
setenv counter 2
fi
done

# HassOS system A/B
setenv bootargs_a "root=PARTUUID=8d3d53e3-6d49-4c38-8349-aff6859e82fd ro"
setenv bootargs_b "root=PARTUUID=a3ec664e-32ce-4665-95ea-7ae90ce9aa20 ro"
Expand Down
3 changes: 3 additions & 0 deletions buildroot-external/board/nabucasa/green/uboot.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
CONFIG_LED=y
CONFIG_LED_GPIO=y
CONFIG_CMD_LED=y
2 changes: 1 addition & 1 deletion buildroot-external/configs/green_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
BR2_TARGET_UBOOT_CUSTOM_VERSION=y
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2024.01"
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="green"
BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config"
BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/nabucasa/green/uboot.config"
BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y
BR2_TARGET_UBOOT_NEEDS_PYELFTOOLS=y
BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y
Expand Down