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 bootloader: Work around linker wonkiness that broke PP bootloader builds. 2020-10-13 19:02:27 -04:00
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 h300, Others Bugfix Bootloader backlight_init() 2020-11-13 18:08:01 +00:00
echoplayer.c echoplayer: implement bootloader power on/off logic 2026-01-25 07:46:31 -05:00
fat32format.c mi4: replace chksum_crc32 with crc_32r 2021-06-21 09:36:54 +00:00
format.c ClipPlus BOOTLOADER DONT FIT! 2020-10-23 20:38:59 -04:00
format.h ClipPlus BOOTLOADER DONT FIT! 2020-10-23 20:38:59 -04:00
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 coldfire: Fix bootloader builds on GCC8 2024-04-26 07:21:46 -04:00
imx233.c Get rid of stupid _backlight_* function names 2015-01-12 11:09:27 +01:00
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 Bugfix Backlight_init should be called after lcd_init 2020-11-13 13:57:39 -05:00
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 mi4: replace chksum_crc32 with crc_32r 2021-06-21 09:36:54 +00:00
main-pp.c bootloader: Share definition of show_logo via common.h 2026-01-24 07:54:24 -05:00
main-ppsansawipe.c Get rid of stupid _backlight_* function names 2015-01-12 11:09:27 +01:00
Makefile [1/4] Remove SH support and all archos targets 2020-07-24 21:20:13 +00:00
meizu_m3.c h300, Others Bugfix Bootloader backlight_init() 2020-11-13 18:08:01 +00:00
meizu_m6sl.c Do some housekeeping with fat.h and SECTOR_SIZE 2017-03-12 22:05:44 -04:00
meizu_m6sp.c Do some housekeeping with fat.h and SECTOR_SIZE 2017-03-12 22:05:44 -04:00
mini2440.c h300, Others Bugfix Bootloader backlight_init() 2020-11-13 18:08:01 +00:00
mpio_hd200_hd300.c firmware: minor screendump related cleanups 2022-03-24 18:59:50 -04:00
mrobe500.c mrobe500 bootloader fix 2020-10-13 21:33:55 -04:00
nwz_linux.c remove inaccurate comment 2017-09-18 09:30:33 +02:00
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 Get rid of stupid _backlight_* function names 2015-01-12 11:09:27 +01:00
sansa_as3525.c Fix AMSv2 variant 1 detection if rockbox loaded from SD card 2016-04-22 20:43:45 +00:00
sansaconnect.c bootloader: Share definition of show_logo via common.h 2026-01-24 07:54:24 -05:00
sansaview.c Do some housekeeping with fat.h and SECTOR_SIZE 2017-03-12 22:05:44 -04:00
show_logo.c Sansa e200v2: bootloader: fit size 2024-04-01 11:02:04 -04:00
snprintf.c ClipPlus BOOTLOADER DONT FIT! 2020-10-23 20:38:59 -04:00
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