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
|
||||
#elif CONFIG_CPU==IMX233
|
||||
imx233.c
|
||||
show_logo.c
|
||||
#elif defined(LYRE_PROTO1)
|
||||
lyre_proto1.c
|
||||
show_logo.c
|
||||
|
|
|
@ -39,8 +39,6 @@
|
|||
|
||||
#include "usb.h"
|
||||
|
||||
int show_logo(void);
|
||||
|
||||
void main(void) NORETURN_ATTR;
|
||||
void main(void)
|
||||
{
|
||||
|
@ -55,7 +53,8 @@ void main(void)
|
|||
enable_irq();
|
||||
|
||||
lcd_init();
|
||||
show_logo();
|
||||
lcd_clear_display();
|
||||
lcd_update();
|
||||
|
||||
backlight_init();
|
||||
|
||||
|
|
|
@ -781,7 +781,7 @@ Lyre prototype 1 */
|
|||
|| (CONFIG_CPU == AS3525) || (CONFIG_CPU == AS3525v2) \
|
||||
|| defined(CPU_S5L870X) || (CONFIG_CPU == S3C2440) \
|
||||
|| defined(APPLICATION) || (CONFIG_CPU == PP5002) \
|
||||
|| (CONFIG_CPU == RK27XX)
|
||||
|| (CONFIG_CPU == RK27XX) || (CONFIG_CPU == IMX233)
|
||||
#define HAVE_SEMAPHORE_OBJECTS
|
||||
#endif
|
||||
|
||||
|
|
|
@ -14,32 +14,6 @@ MEMORY
|
|||
|
||||
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*)
|
||||
|
@ -52,13 +26,34 @@ SECTIONS
|
|||
_dataend = . ;
|
||||
} > 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)
|
||||
_stackbegin = .;
|
||||
stackbegin = .;
|
||||
. += 0x2000;
|
||||
_stackend = .;
|
||||
stackend = .;
|
||||
} > DRAM
|
||||
|
||||
|
|
|
@ -23,10 +23,8 @@
|
|||
|
||||
.section .vectors,"ax",%progbits
|
||||
.code 32
|
||||
.global start
|
||||
start:
|
||||
/* 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, =software_int_handler
|
||||
ldr pc, =prefetch_abort_handler
|
||||
|
@ -36,8 +34,39 @@ start:
|
|||
ldr pc, =fiq_handler
|
||||
|
||||
.text
|
||||
newstart:
|
||||
.global start
|
||||
start:
|
||||
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 */
|
||||
ldr sp, =stackend
|
||||
ldr r2, =stackbegin
|
||||
|
|
Loading…
Reference in a new issue