x1000: Add multiboot support

Enables multiboot for the FiiO M3K, Shanling Q1, and Eros Q native port.
Note this requires an up-to-date Rockbox _and_ bootloader.

Usage instructions will (eventually) be found on the wiki:
https://www.rockbox.org/wiki/MultibootBootloader

Change-Id: Ia2da1ad6ef611e499d2fbafa93838387bc1023ba
This commit is contained in:
Aidan MacDonald 2022-03-07 11:09:30 +00:00
parent bcbb5a8b00
commit 7243f6b343
4 changed files with 21 additions and 0 deletions

View file

@ -78,6 +78,7 @@
#define HAVE_HOTSWAP
#define HAVE_HOTSWAP_STORAGE_AS_MAIN
#define HAVE_MULTIDRIVE
#define HAVE_MULTIVOLUME
#define NUM_DRIVES 1
#define STORAGE_WANTS_ALIGN
#define STORAGE_NEEDS_BOUNCE_BUFFER
@ -103,6 +104,10 @@
#define CURRENT_BACKLIGHT 180
#define CURRENT_MAX_CHG 500 // bursts higher if needed
/* Multiboot */
#define HAVE_BOOTDATA
#define BOOT_REDIR "rockbox_main.aigo_erosqn"
/* USB support */
#ifndef SIMULATOR
#define CONFIG_USBOTG USBOTG_DESIGNWARE

View file

@ -84,6 +84,7 @@
#define HAVE_HOTSWAP
#define HAVE_HOTSWAP_STORAGE_AS_MAIN
#define HAVE_MULTIDRIVE
#define HAVE_MULTIVOLUME
#define NUM_DRIVES 1
#define STORAGE_WANTS_ALIGN
#define STORAGE_NEEDS_BOUNCE_BUFFER
@ -109,6 +110,10 @@
#define BATTERY_CAPACITY_INC 0
#define BATTERY_TYPES_COUNT 1
/* Multiboot */
#define HAVE_BOOTDATA
#define BOOT_REDIR "rockbox_main.fiio_m3k"
/* USB support */
#ifndef SIMULATOR
#define CONFIG_USBOTG USBOTG_DESIGNWARE

View file

@ -67,6 +67,7 @@
#define HAVE_HOTSWAP
#define HAVE_HOTSWAP_STORAGE_AS_MAIN
#define HAVE_MULTIDRIVE
#define HAVE_MULTIVOLUME
#define NUM_DRIVES 1
#define STORAGE_WANTS_ALIGN
#define STORAGE_NEEDS_BOUNCE_BUFFER
@ -94,6 +95,10 @@
#define BATTERY_CAPACITY_INC 0
#define BATTERY_TYPES_COUNT 1
/* Multiboot */
#define HAVE_BOOTDATA
#define BOOT_REDIR "rockbox_main.shanling_q1"
/* USB support */
#ifndef SIMULATOR
#define CONFIG_USBOTG USBOTG_DESIGNWARE

View file

@ -21,6 +21,7 @@
#include "config.h"
#include "mips.h"
#include "bootdata.h"
.text
.extern main
@ -48,6 +49,11 @@ _header:
.word _loadaddress
.ascii "ENDH" /* end of header structure */
#ifndef BOOTLOADER
/* Multiboot support header; this is not part of the above header. */
put_boot_data_here
#endif
_realstart:
/* Copy IRAM from BSS to low memory. */
la a0, _iramcopy