1
0
mirror of git://projects.qi-hardware.com/xburst-tools.git synced 2024-11-01 12:33:07 +02:00

delete something we don't need

This commit is contained in:
xiangfu 2008-06-28 19:47:57 -04:00
parent c382c5066c
commit eab58ff419
2 changed files with 7 additions and 211 deletions

View File

@ -53,3 +53,8 @@ int blink_led()
return 0; return 0;
} }
int start_armboot()
{
blink_led();
return 0;
}

View File

@ -19,53 +19,9 @@
* MA 02111-1307 USA * MA 02111-1307 USA
*/ */
#include <neo_gta02.h> #include <neo_gta02.h>
.globl _start .globl _start
_start: b start_code _start: b start_code
ldr pc, _undefined_instruction
ldr pc, _software_interrupt
ldr pc, _prefetch_abort
ldr pc, _data_abort
ldr pc, _not_used
ldr pc, _irq
ldr pc, _fiq
_undefined_instruction: .word undefined_instruction
_software_interrupt: .word software_interrupt
_prefetch_abort: .word prefetch_abort
_data_abort: .word data_abort
_not_used: .word not_used
_irq: .word irq
_fiq: .word fiq
.balignl 16,0xdeadbeef
/*
*************************************************************************
*
* Startup Code (called from the ARM reset exception vector)
*
* do important init only if we don't start from memory!
* relocate armboot to ram
* setup stack
*
*************************************************************************
*/
.globl preboot_override
preboot_override:
.word 0
/* Must follow preboot_override , so we get a well-known address ! */
.globl env_override
env_override:
.word 0
/* we want to be able to start kboot directly from within NAND flash */
.globl booted_from_nand
booted_from_nand:
.word 0
_booted_from_nand:
.word booted_from_nand
_TEXT_BASE: _TEXT_BASE:
.word TEXT_BASE .word TEXT_BASE
@ -85,17 +41,6 @@ _bss_start:
_bss_end: _bss_end:
.word _end .word _end
/* IRQ stack memory (calculated at run-time) */
.globl IRQ_STACK_START
IRQ_STACK_START:
.word 0x0badc0de
/* IRQ stack memory (calculated at run-time) */
.globl FIQ_STACK_START
FIQ_STACK_START:
.word 0x0badc0de
start_code: start_code:
/* /*
* set the cpu to SVC32 mode * set the cpu to SVC32 mode
@ -192,11 +137,6 @@ start_code:
str r1, [r0, #0x28] str r1, [r0, #0x28]
bl cpu_init_crit bl cpu_init_crit
/*
* Size of malloc() pool
*/
#define CFG_ENV_SIZE 0x40000 /* 128k Total Size of Environment Sector */
#define CFG_MALLOC_LEN (CFG_ENV_SIZE + 400*1024)
/* >> CFG_VIDEO_LOGO_MAX_SIZE */ /* >> CFG_VIDEO_LOGO_MAX_SIZE */
#define CFG_GBL_DATA_SIZE 128 /* size in bytes reserved for initial data */ #define CFG_GBL_DATA_SIZE 128 /* size in bytes reserved for initial data */
#define CONFIG_STACKSIZE (128*1024) /* regular stack */ #define CONFIG_STACKSIZE (128*1024) /* regular stack */
@ -204,7 +144,6 @@ start_code:
#define CONFIG_STACKSIZE_FIQ (4*1024) /* FIQ stack */ #define CONFIG_STACKSIZE_FIQ (4*1024) /* FIQ stack */
stack_setup: stack_setup:
ldr r0, _TEXT_BASE /* upper 128 KiB: relocated uboot */ ldr r0, _TEXT_BASE /* upper 128 KiB: relocated uboot */
sub r0, r0, #CFG_MALLOC_LEN /* malloc area */
sub r0, r0, #CFG_GBL_DATA_SIZE /* bdinfo */ sub r0, r0, #CFG_GBL_DATA_SIZE /* bdinfo */
sub r0, r0, #(CONFIG_STACKSIZE_IRQ+CONFIG_STACKSIZE_FIQ) sub r0, r0, #(CONFIG_STACKSIZE_IRQ+CONFIG_STACKSIZE_FIQ)
sub sp, r0, #12 /* leave 3 words for abort-stack */ sub sp, r0, #12 /* leave 3 words for abort-stack */
@ -224,7 +163,7 @@ clbss_l:
ldr pc, _start_armboot ldr pc, _start_armboot
_start_armboot: _start_armboot:
.word blink_led .word start_armboot
/* /*
************************************************************************* *************************************************************************
@ -267,151 +206,3 @@ cpu_init_crit:
mov lr, ip mov lr, ip
mov pc, lr mov pc, lr
/*
*************************************************************************
*
* Interrupt handling
*
*************************************************************************
*/
@
@ IRQ stack frame.
@
#define S_FRAME_SIZE 72
#define S_OLD_R0 68
#define S_PSR 64
#define S_PC 60
#define S_LR 56
#define S_SP 52
#define S_IP 48
#define S_FP 44
#define S_R10 40
#define S_R9 36
#define S_R8 32
#define S_R7 28
#define S_R6 24
#define S_R5 20
#define S_R4 16
#define S_R3 12
#define S_R2 8
#define S_R1 4
#define S_R0 0
#define MODE_SVC 0x13
#define I_BIT 0x80
/*
* use bad_save_user_regs for abort/prefetch/undef/swi ...
* use irq_save_user_regs / irq_restore_user_regs for IRQ/FIQ handling
*/
.macro bad_save_user_regs
sub sp, sp, #S_FRAME_SIZE
stmia sp, {r0 - r12} @ Calling r0-r12
ldr r2, _armboot_start
sub r2, r2, #(CONFIG_STACKSIZE+CFG_MALLOC_LEN)
sub r2, r2, #(CFG_GBL_DATA_SIZE+8) @ set base 2 words into abort stack
ldmia r2, {r2 - r3} @ get pc, cpsr
add r0, sp, #S_FRAME_SIZE @ restore sp_SVC
add r5, sp, #S_SP
mov r1, lr
stmia r5, {r0 - r3} @ save sp_SVC, lr_SVC, pc, cpsr
mov r0, sp
.endm
.macro irq_save_user_regs
sub sp, sp, #S_FRAME_SIZE
stmia sp, {r0 - r12} @ Calling r0-r12
add r7, sp, #S_PC
stmdb r7, {sp, lr}^ @ Calling SP, LR
str lr, [r7, #0] @ Save calling PC
mrs r6, spsr
str r6, [r7, #4] @ Save CPSR
str r0, [r7, #8] @ Save OLD_R0
mov r0, sp
.endm
.macro irq_restore_user_regs
ldmia sp, {r0 - lr}^ @ Calling r0 - lr
mov r0, r0
ldr lr, [sp, #S_PC] @ Get PC
add sp, sp, #S_FRAME_SIZE
subs pc, lr, #4 @ return & move spsr_svc into cpsr
.endm
.macro get_bad_stack
ldr r13, _armboot_start @ setup our mode stack
sub r13, r13, #(CONFIG_STACKSIZE+CFG_MALLOC_LEN)
sub r13, r13, #(CFG_GBL_DATA_SIZE+8) @ reserved a couple spots in abort stack
str lr, [r13] @ save caller lr / spsr
mrs lr, spsr
str lr, [r13, #4]
mov r13, #MODE_SVC @ prepare SVC-Mode
@ msr spsr_c, r13
msr spsr, r13
mov lr, pc
movs pc, lr
.endm
.macro get_irq_stack @ setup IRQ stack
ldr sp, IRQ_STACK_START
.endm
.macro get_fiq_stack @ setup FIQ stack
ldr sp, FIQ_STACK_START
.endm
/*
* exception handlers
*/
.align 5
undefined_instruction:
get_bad_stack
bad_save_user_regs
//bl do_undefined_instruction
.align 5
software_interrupt:
get_bad_stack
bad_save_user_regs
//bl do_software_interrupt
.align 5
prefetch_abort:
get_bad_stack
bad_save_user_regs
//bl do_prefetch_abort
.align 5
data_abort:
get_bad_stack
bad_save_user_regs
//bl do_data_abort
.align 5
not_used:
get_bad_stack
bad_save_user_regs
//bl do_not_used
/* CONFIG_USE_IRQ*/
.align 5
irq:
get_irq_stack
irq_save_user_regs
//bl do_irq
irq_restore_user_regs
.align 5
fiq:
get_fiq_stack
/* someone ought to write a more effiction fiq_save_user_regs */
irq_save_user_regs
//bl do_fiq
irq_restore_user_regs