rockbox/bootloader
Aidan MacDonald 0f5c42122c echoplayer: implement bootloader power on/off logic
On the Echo R1, the main regulator is enabled primarily by
the power button and USB input, and secondarily by the CPU's
own output pins (cpu_power_on signal or RTC alarm output).

From a user perspective, the player should appear to power
up and down only if the power button is long pressed, which
must be implemented in software. These logical power states
are called "active" and "inactive" in the bootloader.

Going from inactive to active will attempt to boot Rockbox
unless a button (d-pad down) is held to enter bootloader
USB mode instead. Going from active to inactive will shut
down the player. The bootloader will also automatically
shut down after a short timeout, if USB is not plugged in.

In the inactive state, the player is supposed to enumerate
over USB so it can negotiate a charging current, but should
otherwise appear "off". In particular it shouldn't expose
mass storage or even power up the SD card, nor power up the
LCD/backight. This isn't implemented yet, because there's
no way to dynamically change USB configurations (eg. going
from active to inactive should trigger re-enumeration to
switch to charge only mode). To avoid surprising behavior,
the bootloader will just boot Rockbox immediately if USB is
plugged in at boot.

Change-Id: Icd1d48ef49a31eb32b54d440e9211aaf40c6b974
2026-01-25 07:46:31 -05:00
..
x1000 ErosQNative: Re-enable OF recovery 2024-08-27 09:23:53 -04:00
bootloader.make
common.c bootloaders: Correct formatting of 'no parition found' table dump 2025-11-24 21:17:09 -05:00
common.h bootloader: Share definition of show_logo via common.h 2026-01-24 07:54:24 -05:00
creativezvm.c
echoplayer.c echoplayer: implement bootloader power on/off logic 2026-01-25 07:46:31 -05:00
fat32format.c
format.c
format.h
gigabeat-s.c bootloader: Share definition of show_logo via common.h 2026-01-24 07:54:24 -05:00
gigabeat.c arm: split ARM cache maintenance functions to separate header 2025-04-21 12:39:47 -04:00
hibyos_linux.c Rockbox for the HiBy R3 Pro II/R1 2025-12-27 15:44:54 -05:00
iaudio_coldfire.c
imx233.c
ipod-s5l87xx.c Run the LBA48 check only if the target has support for reading of SysCfg 2026-01-08 10:12:57 -05:00
ipod.c bootloaders: Correct formatting of 'no parition found' table dump 2025-11-24 21:17:09 -05:00
ipodnano2g.c
iriver_h1x0.c bootloaders: Correct formatting of 'no parition found' table dump 2025-11-24 21:17:09 -05:00
iriver_h300.c bootloaders: Correct formatting of 'no parition found' table dump 2025-11-24 21:17:09 -05:00
lyre_proto1.c bootloader: Share definition of show_logo via common.h 2026-01-24 07:54:24 -05:00
main-e200r-installer.c
main-pp.c bootloader: Share definition of show_logo via common.h 2026-01-24 07:54:24 -05:00
main-ppsansawipe.c
Makefile
meizu_m3.c
meizu_m6sl.c
meizu_m6sp.c
mini2440.c
mpio_hd200_hd300.c
mrobe500.c
nwz_linux.c
ondavx747.c bootloader: Share definition of show_logo via common.h 2026-01-24 07:54:24 -05:00
rk27xx.c bootloader: Share definition of show_logo via common.h 2026-01-24 07:54:24 -05:00
samsung_yps3.c
sansa_as3525.c
sansaconnect.c bootloader: Share definition of show_logo via common.h 2026-01-24 07:54:24 -05:00
sansaview.c
show_logo.c
snprintf.c
SOURCES echoplayer: implement bootloader power on/off logic 2026-01-25 07:46:31 -05:00
telechips.c bootloader: Share definition of show_logo via common.h 2026-01-24 07:54:24 -05:00
xduoox3.c xduoox3: A couple of minor cleanups in the bootloader 2026-01-24 07:55:56 -05:00