mirror of
git://projects.qi-hardware.com/xburst-tools.git
synced 2024-11-25 18:05:00 +02:00
delete something we don't need
This commit is contained in:
parent
c382c5066c
commit
eab58ff419
@ -53,3 +53,8 @@ int blink_led()
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int start_armboot()
|
||||||
|
{
|
||||||
|
blink_led();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
@ -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
|
|
||||||
|
Loading…
Reference in New Issue
Block a user