forked from len0rd/rockbox
Disable bootloader messages in the ipod bootloader unless the RIGHT button is being held. Messages are still displayed if an error occurs. This needs implementing for the other bootloaders.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12631 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
e70362d106
commit
4d25bffc8a
3 changed files with 24 additions and 7 deletions
|
@ -22,9 +22,18 @@
|
||||||
#include "system.h"
|
#include "system.h"
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#include <stdbool.h>
|
||||||
#include "cpu.h"
|
#include "cpu.h"
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
|
/* TODO: Other bootloaders need to be adjusted to set this variable to true
|
||||||
|
on a button press - currently only the ipod version does. */
|
||||||
|
#ifdef IPOD_ARCH
|
||||||
|
bool verbose = false;
|
||||||
|
#else
|
||||||
|
bool verbose = true;
|
||||||
|
#endif
|
||||||
|
|
||||||
int line = 0;
|
int line = 0;
|
||||||
#ifdef HAVE_REMOTE_LCD
|
#ifdef HAVE_REMOTE_LCD
|
||||||
int remote_line = 0;
|
int remote_line = 0;
|
||||||
|
@ -54,12 +63,14 @@ void printf(const char *format, ...)
|
||||||
va_end(ap);
|
va_end(ap);
|
||||||
|
|
||||||
lcd_puts(0, line++, ptr);
|
lcd_puts(0, line++, ptr);
|
||||||
lcd_update();
|
if (verbose)
|
||||||
|
lcd_update();
|
||||||
if(line >= LCD_HEIGHT/SYSFONT_HEIGHT)
|
if(line >= LCD_HEIGHT/SYSFONT_HEIGHT)
|
||||||
line = 0;
|
line = 0;
|
||||||
#ifdef HAVE_REMOTE_LCD
|
#ifdef HAVE_REMOTE_LCD
|
||||||
lcd_remote_puts(0, remote_line++, ptr);
|
lcd_remote_puts(0, remote_line++, ptr);
|
||||||
lcd_remote_update();
|
if (verbose)
|
||||||
|
lcd_remote_update();
|
||||||
if(remote_line >= LCD_REMOTE_HEIGHT/SYSFONT_HEIGHT)
|
if(remote_line >= LCD_REMOTE_HEIGHT/SYSFONT_HEIGHT)
|
||||||
remote_line = 0;
|
remote_line = 0;
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -26,6 +26,9 @@
|
||||||
#define EBAD_CHKSUM -5
|
#define EBAD_CHKSUM -5
|
||||||
#define EFILE_TOO_BIG -6
|
#define EFILE_TOO_BIG -6
|
||||||
|
|
||||||
|
/* Set this to true to enable lcd_update() in the printf function */
|
||||||
|
extern bool verbose;
|
||||||
|
|
||||||
/* Functions common to all bootloaders */
|
/* Functions common to all bootloaders */
|
||||||
void reset_screen(void);
|
void reset_screen(void);
|
||||||
void printf(const char *format, ...);
|
void printf(const char *format, ...);
|
||||||
|
|
|
@ -223,6 +223,7 @@ void* main(void)
|
||||||
{
|
{
|
||||||
char buf[256];
|
char buf[256];
|
||||||
int i;
|
int i;
|
||||||
|
int btn;
|
||||||
int rc;
|
int rc;
|
||||||
bool haveretailos;
|
bool haveretailos;
|
||||||
bool button_was_held;
|
bool button_was_held;
|
||||||
|
@ -278,6 +279,11 @@ void* main(void)
|
||||||
button_init();
|
button_init();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
btn=key_pressed();
|
||||||
|
|
||||||
|
/* Enable bootloader messages */
|
||||||
|
if (btn==BUTTON_RIGHT)
|
||||||
|
verbose = true;
|
||||||
|
|
||||||
lcd_setfont(FONT_SYSFIXED);
|
lcd_setfont(FONT_SYSFIXED);
|
||||||
|
|
||||||
|
@ -314,10 +320,7 @@ void* main(void)
|
||||||
pinfo->type, pinfo->size / 2048);
|
pinfo->type, pinfo->size / 2048);
|
||||||
|
|
||||||
|
|
||||||
/* Check for a keypress */
|
if (button_was_held || (btn==BUTTON_MENU)) {
|
||||||
i=key_pressed();
|
|
||||||
|
|
||||||
if (button_was_held || (i==BUTTON_MENU)) {
|
|
||||||
/* If either the hold switch was on, or the Menu button was held, then
|
/* If either the hold switch was on, or the Menu button was held, then
|
||||||
try the Apple firmware */
|
try the Apple firmware */
|
||||||
|
|
||||||
|
@ -349,7 +352,7 @@ void* main(void)
|
||||||
/* Everything failed - just loop forever */
|
/* Everything failed - just loop forever */
|
||||||
printf("No RetailOS detected");
|
printf("No RetailOS detected");
|
||||||
|
|
||||||
} else if (i==BUTTON_PLAY) {
|
} else if (btn==BUTTON_PLAY) {
|
||||||
printf("Loading Linux...");
|
printf("Loading Linux...");
|
||||||
rc=load_raw_firmware(loadbuffer, "/linux.bin", MAX_LOADSIZE);
|
rc=load_raw_firmware(loadbuffer, "/linux.bin", MAX_LOADSIZE);
|
||||||
if (rc < EOK) {
|
if (rc < EOK) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue