Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Commit dual-boot support for Creative ZVx family
* Add mkzenboot: makes it possible to integrate Rockbox bootloader with Creative firmwares without the need of distributing binaries * Add Tadeusz Pyś to credits, who figured out the minifs file system * Fix bootloader git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18352 a1c6a512-1295-4272-9138-f99709370657
- Loading branch information
mcuelenaere
committed
Aug 27, 2008
1 parent
0f9c439
commit fdd71df
Showing
9 changed files
with
1,414 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -33,4 +33,6 @@ telechips.c | |
meizu_m6sl.c | ||
#elif defined(ONDA_VX747) | ||
ondavx747.c | ||
#elif defined(CREATIVE_ZVM) | ||
creativezvm.c | ||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,113 @@ | ||
/*************************************************************************** | ||
* __________ __ ___. | ||
* Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
* \/ \/ \/ \/ \/ | ||
* $Id$ | ||
* | ||
* Copyright (C) 2008 by Maurus Cuelenaere | ||
* | ||
* All files in this archive are subject to the GNU General Public License. | ||
* See the file COPYING in the source tree root for full license agreement. | ||
* | ||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
* KIND, either express or implied. | ||
* | ||
****************************************************************************/ | ||
|
||
#include "system.h" | ||
#include "lcd.h" | ||
#include "kernel.h" | ||
#include "thread.h" | ||
#include "ata.h" | ||
#include "ata-target.h" | ||
#include "disk.h" | ||
#include "font.h" | ||
#include "backlight.h" | ||
#include "button.h" | ||
#include "common.h" | ||
|
||
|
||
static void load_fw(unsigned char* ptr, unsigned int len) | ||
{ | ||
(void)ptr; | ||
(void)len; | ||
asm volatile("ldr pc, =0x1EE0000"); | ||
} | ||
|
||
void main(void) | ||
{ | ||
unsigned char* loadbuffer; | ||
int buffer_size; | ||
int(*kernel_entry)(void); | ||
int ret; | ||
|
||
/* Make sure interrupts are disabled */ | ||
set_irq_level(IRQ_DISABLED); | ||
set_fiq_status(FIQ_DISABLED); | ||
system_init(); | ||
kernel_init(); | ||
|
||
/* Now enable interrupts */ | ||
set_irq_level(IRQ_ENABLED); | ||
set_fiq_status(FIQ_ENABLED); | ||
backlight_init(); | ||
lcd_init(); | ||
font_init(); | ||
button_init(); | ||
|
||
lcd_enable(true); | ||
lcd_setfont(FONT_SYSFIXED); | ||
reset_screen(); | ||
printf("Rockbox boot loader"); | ||
printf("Version %s", APPSVERSION); | ||
|
||
ret = ata_init(); | ||
if(ret) | ||
printf("ATA error: %d", ret); | ||
|
||
if(1) | ||
{ | ||
printf("Loading Creative firmware..."); | ||
|
||
loadbuffer = (unsigned char*)0x00A00000; | ||
ret = load_minifs_file("creativeos.jrm", loadbuffer); | ||
if(ret != -1) | ||
{ | ||
set_irq_level(IRQ_DISABLED); | ||
set_fiq_status(FIQ_DISABLED); | ||
/* Doesn't return! */ | ||
load_fw(loadbuffer, ret); | ||
} | ||
else | ||
printf("FAILED!"); | ||
} | ||
else | ||
{ | ||
disk_init(); | ||
|
||
ret = disk_mount_all(); | ||
if (ret <= 0) | ||
error(EDISK, ret); | ||
|
||
printf("Loading Rockbox firmware..."); | ||
|
||
loadbuffer = (unsigned char*)0x00900000; | ||
buffer_size = (unsigned char*)0x01900000 - loadbuffer; | ||
|
||
ret = load_firmware(loadbuffer, BOOTFILE, buffer_size); | ||
if(ret < 0) | ||
error(EBOOTFILE, ret); | ||
|
||
else if(ret == EOK) | ||
{ | ||
kernel_entry = (void*) loadbuffer; | ||
ret = kernel_entry(); | ||
printf("FAILED!"); | ||
} | ||
} | ||
|
||
while(1); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -412,6 +412,7 @@ Jun Gu | |
Daniel Weck | ||
Clément Pit-Claudel | ||
Jelle Geerts | ||
Tadeusz Pyś | ||
|
||
The libmad team | ||
The wavpack team | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.