Find a file
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
android build: instead of 'ifdef NODEPS' use 'ifneq ($NODEPS,)' 2025-03-29 14:33:20 -04:00
apps Translation updates: 2026-01-24 17:44:36 -05:00
backdrops Rockbox for the HiBy R3 Pro II/R1 2025-12-27 15:44:54 -05:00
bootloader echoplayer: implement bootloader power on/off logic 2026-01-25 07:46:31 -05:00
docs plugins: random folder advance: misc improvements 2026-01-16 16:49:38 +01:00
firmware echoplayer: don't wake LCD automatically in bootloader 2026-01-24 14:05:21 -05:00
fonts FS#9060: Add the WinQangYi-Song BOLD fonts in 9, 10, 11, and 12pt. 2025-11-19 08:33:07 -05:00
gdb Nuke the never-functional iriver ifp-7xx port 2021-04-26 07:42:58 -04:00
icons Revert Non-Alpha Updated 8x8 tango icons 2020-10-25 16:21:58 +00:00
lib metadata: vorbis: fix warning when building sim on aarch64 linux 2026-01-14 15:11:34 +01:00
manual plugins: random folder advance: misc improvements 2026-01-16 16:49:38 +01:00
packaging rgnano: rbutil support and manual updates 2026-01-03 20:03:12 -05:00
tools hiby: r1_patcher: embed hiby_player.sh 2026-01-24 20:20:01 -05:00
uisimulator simulator: remove lc_open_from_mem() implementation 2026-01-05 13:42:52 -05:00
utils rbutil: Use lang-enum.txt in voicestrings.zip if present 2026-01-12 20:22:43 -05:00
wps Rockbox for the HiBy R3 Pro II/R1 2025-12-27 15:44:54 -05:00
.gitattributes Add a gitattributes file for the migration. 2011-12-01 14:14:59 +00:00
.gitignore tools: add RegGen utility 2025-12-29 18:51:56 -05:00
.gitreview misc: Add a .gitreview file for better gerrit integration 2021-06-24 07:22:19 -04:00

               __________               __   ___.
     Open      \______   \ ____   ____ |  | _\_ |__   _______  ___
     Source     |       _//  _ \_/ ___\|  |/ /| __ \ /  _ \  \/  /
     Jukebox    |    |   (  <_> )  \___|    < | \_\ (  <_> > <  <
     Firmware   |____|_  /\____/ \___  >__|_ \|___  /\____/__/\_ \
                       \/            \/     \/    \/            \/

Build Your Own Rockbox

1. Clone 'rockbox' from git (or extract a downloaded archive).

   $ git clone git://git.rockbox.org/rockbox

     or

   $ tar xJf rockbox.tar.xz

2. Create a build directory, preferably in the same directory as the firmware/
   and apps/ directories. This is where all generated files will be written.

   $ cd rockbox
   $ mkdir build
   $ cd build

3. Make sure you have mips/m68k/arm-elf-gcc and siblings in the PATH. Make sure
   that you have 'perl' in your PATH too. Your gcc cross compiler needs to be
   a particular version depending on what player you are compiling for. These
   can be generated using the rockboxdev.sh script in the /tools/ folder of the
   source.

   $ which arm-elf-eabi-gcc
   $ which perl

4. In your build directory, run the 'tools/configure' script and enter what
   target you want to build for and if you want a debug version or not (and a
   few more questions). It'll prompt you. The debug version is for making a
   gdb version out of it. It is only useful if you run gdb towards your target
   Archos.

   $ ../tools/configure

5. *ploink*. Now you have got a Makefile generated for you.

6. Run 'make' and soon the necessary pieces from the firmware and the apps
   directories have been compiled, linked and scrambled for you.

   $ make
   $ make zip

7. unzip the rockbox.zip on your music player, reboot it and
   *smile*.

If you want to build for more than one target, just create several build
directories and create a setup for each target:

   $ mkdir build-fuzeplus
   $ cd build-fuzeplus
   $ ../tools/configure

   $ mkdir build-xduoox3
   $ cd build-xduoox3
   $ ../tools/configure

Questions anyone? Ask on the mailing list or on IRC. We'll be happy to help you!