imx233/fuze+: make config.h more correct, remove logo from bootloader, update linker file and crt0 to produce a single blob into dram
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30111 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
fed77808c5
commit
82ecc75e68
5 changed files with 59 additions and 37 deletions
|
@ -57,7 +57,6 @@ sansa_as3525.c
|
||||||
show_logo.c
|
show_logo.c
|
||||||
#elif CONFIG_CPU==IMX233
|
#elif CONFIG_CPU==IMX233
|
||||||
imx233.c
|
imx233.c
|
||||||
show_logo.c
|
|
||||||
#elif defined(LYRE_PROTO1)
|
#elif defined(LYRE_PROTO1)
|
||||||
lyre_proto1.c
|
lyre_proto1.c
|
||||||
show_logo.c
|
show_logo.c
|
||||||
|
|
|
@ -39,8 +39,6 @@
|
||||||
|
|
||||||
#include "usb.h"
|
#include "usb.h"
|
||||||
|
|
||||||
int show_logo(void);
|
|
||||||
|
|
||||||
void main(void) NORETURN_ATTR;
|
void main(void) NORETURN_ATTR;
|
||||||
void main(void)
|
void main(void)
|
||||||
{
|
{
|
||||||
|
@ -55,7 +53,8 @@ void main(void)
|
||||||
enable_irq();
|
enable_irq();
|
||||||
|
|
||||||
lcd_init();
|
lcd_init();
|
||||||
show_logo();
|
lcd_clear_display();
|
||||||
|
lcd_update();
|
||||||
|
|
||||||
backlight_init();
|
backlight_init();
|
||||||
|
|
||||||
|
|
|
@ -781,7 +781,7 @@ Lyre prototype 1 */
|
||||||
|| (CONFIG_CPU == AS3525) || (CONFIG_CPU == AS3525v2) \
|
|| (CONFIG_CPU == AS3525) || (CONFIG_CPU == AS3525v2) \
|
||||||
|| defined(CPU_S5L870X) || (CONFIG_CPU == S3C2440) \
|
|| defined(CPU_S5L870X) || (CONFIG_CPU == S3C2440) \
|
||||||
|| defined(APPLICATION) || (CONFIG_CPU == PP5002) \
|
|| defined(APPLICATION) || (CONFIG_CPU == PP5002) \
|
||||||
|| (CONFIG_CPU == RK27XX)
|
|| (CONFIG_CPU == RK27XX) || (CONFIG_CPU == IMX233)
|
||||||
#define HAVE_SEMAPHORE_OBJECTS
|
#define HAVE_SEMAPHORE_OBJECTS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -14,32 +14,6 @@ MEMORY
|
||||||
|
|
||||||
SECTIONS
|
SECTIONS
|
||||||
{
|
{
|
||||||
.vectors 0 :
|
|
||||||
{
|
|
||||||
*(.vectors);
|
|
||||||
. = ALIGN(0x4);
|
|
||||||
} > IRAM
|
|
||||||
|
|
||||||
.itext :
|
|
||||||
{
|
|
||||||
*(.icode)
|
|
||||||
*(.init.text)
|
|
||||||
. = ALIGN(0x4);
|
|
||||||
} > IRAM
|
|
||||||
|
|
||||||
.idata :
|
|
||||||
{
|
|
||||||
*(.qharray)
|
|
||||||
*(.idata)
|
|
||||||
*(.irodata)
|
|
||||||
. = ALIGN(0x4);
|
|
||||||
} > IRAM
|
|
||||||
|
|
||||||
.ibss :
|
|
||||||
{
|
|
||||||
*(.ibss)
|
|
||||||
} > IRAM
|
|
||||||
|
|
||||||
.text :
|
.text :
|
||||||
{
|
{
|
||||||
*(.text*)
|
*(.text*)
|
||||||
|
@ -52,13 +26,34 @@ SECTIONS
|
||||||
_dataend = . ;
|
_dataend = . ;
|
||||||
} > DRAM
|
} > DRAM
|
||||||
|
|
||||||
|
.iram :
|
||||||
|
{
|
||||||
|
_iramstart = .; // always 0
|
||||||
|
*(.vectors)
|
||||||
|
KEEP(*(.vectors));// otherwise there are no reference to it and the linker strip it
|
||||||
|
*(.icode)
|
||||||
|
*(.irodata)
|
||||||
|
*(.idata)
|
||||||
|
. = ALIGN(0x4);
|
||||||
|
_iramend = .;
|
||||||
|
} > IRAM AT> DRAM
|
||||||
|
|
||||||
|
_iramcopy = LOADADDR(.iram);
|
||||||
|
|
||||||
|
.ibss (NOLOAD) :
|
||||||
|
{
|
||||||
|
_iedata = .;
|
||||||
|
*(.qharray)
|
||||||
|
*(.ibss)
|
||||||
|
. = ALIGN(0x4);
|
||||||
|
_iend = .;
|
||||||
|
} > IRAM
|
||||||
|
|
||||||
.stack (NOLOAD) :
|
.stack (NOLOAD) :
|
||||||
{
|
{
|
||||||
*(.stack)
|
*(.stack)
|
||||||
_stackbegin = .;
|
|
||||||
stackbegin = .;
|
stackbegin = .;
|
||||||
. += 0x2000;
|
. += 0x2000;
|
||||||
_stackend = .;
|
|
||||||
stackend = .;
|
stackend = .;
|
||||||
} > DRAM
|
} > DRAM
|
||||||
|
|
||||||
|
|
|
@ -23,10 +23,8 @@
|
||||||
|
|
||||||
.section .vectors,"ax",%progbits
|
.section .vectors,"ax",%progbits
|
||||||
.code 32
|
.code 32
|
||||||
.global start
|
|
||||||
start:
|
|
||||||
/* most handlers are in DRAM which is too far away for a relative jump */
|
/* most handlers are in DRAM which is too far away for a relative jump */
|
||||||
ldr pc, =newstart
|
ldr pc, =start
|
||||||
ldr pc, =undef_instr_handler
|
ldr pc, =undef_instr_handler
|
||||||
ldr pc, =software_int_handler
|
ldr pc, =software_int_handler
|
||||||
ldr pc, =prefetch_abort_handler
|
ldr pc, =prefetch_abort_handler
|
||||||
|
@ -36,8 +34,39 @@ start:
|
||||||
ldr pc, =fiq_handler
|
ldr pc, =fiq_handler
|
||||||
|
|
||||||
.text
|
.text
|
||||||
newstart:
|
.global start
|
||||||
|
start:
|
||||||
msr cpsr_c, #0xd3 /* enter supervisor mode, disable IRQ/FIQ */
|
msr cpsr_c, #0xd3 /* enter supervisor mode, disable IRQ/FIQ */
|
||||||
|
/* Zero out IBSS */
|
||||||
|
ldr r2, =_iedata
|
||||||
|
ldr r3, =_iend
|
||||||
|
mov r4, #0
|
||||||
|
1:
|
||||||
|
cmp r3, r2
|
||||||
|
strhi r4, [r2], #4
|
||||||
|
bhi 1b
|
||||||
|
|
||||||
|
/* Copy the IRAM */
|
||||||
|
/* must be done before bss is zeroed */
|
||||||
|
ldr r2, =_iramcopy
|
||||||
|
ldr r3, =_iramstart
|
||||||
|
ldr r4, =_iramend
|
||||||
|
1:
|
||||||
|
cmp r4, r3
|
||||||
|
ldrhi r5, [r2], #4
|
||||||
|
strhi r5, [r3], #4
|
||||||
|
bhi 1b
|
||||||
|
|
||||||
|
/* Initialise bss section to zero */
|
||||||
|
ldr r2, =_edata
|
||||||
|
ldr r3, =_end
|
||||||
|
mov r4, #0
|
||||||
|
1:
|
||||||
|
cmp r3, r2
|
||||||
|
strhi r4, [r2], #4
|
||||||
|
bhi 1b
|
||||||
|
|
||||||
|
|
||||||
/* Set up some stack and munge it with 0xdeadbeef */
|
/* Set up some stack and munge it with 0xdeadbeef */
|
||||||
ldr sp, =stackend
|
ldr sp, =stackend
|
||||||
ldr r2, =stackbegin
|
ldr r2, =stackbegin
|
||||||
|
|
Loading…
Reference in a new issue