forked from Imagelibrary/rtems
2002-11-01 Joel Sherrill <joel@OARcorp.com>
* console/console.c, start/start.c, startup/efi68k_wd.c:
This commit is contained in:
@@ -42,26 +42,26 @@ static volatile char _tx_stop = 0;
|
|||||||
|
|
||||||
/* _catchUARTint is the interrupt front-end */
|
/* _catchUARTint is the interrupt front-end */
|
||||||
extern void _catchUARTint();
|
extern void _catchUARTint();
|
||||||
asm(" .text
|
asm(" .text\n\
|
||||||
.align 2
|
.align 2\n\
|
||||||
.globl _catchUARTint
|
.globl _catchUARTint\n\
|
||||||
_catchUARTint:
|
_catchUARTint:\n\
|
||||||
lea %sp@(4),%sp /* pop return address */
|
lea %sp@(4),%sp /* pop return address */\n\
|
||||||
moveml %d0-%d7/%a0-%a6,%sp@- /* save registers */
|
moveml %d0-%d7/%a0-%a6,%sp@- /* save registers */\n\
|
||||||
jbsr uart_interrupt
|
jbsr uart_interrupt\n\
|
||||||
moveml %sp@+,%d0-%d7/%a0-%a6
|
moveml %sp@+,%d0-%d7/%a0-%a6 \n\
|
||||||
rte
|
rte\n\
|
||||||
");
|
");
|
||||||
|
|
||||||
/* _fake_trap_1 will continue the UART interrupt (%sr *still*
|
/* _fake_trap_1 will continue the UART interrupt (%sr *still*
|
||||||
UART_ISR_LEVEL) as a trap #1 to enter the debugger */
|
UART_ISR_LEVEL) as a trap #1 to enter the debugger */
|
||||||
asm(" .text
|
asm(" .text\n\
|
||||||
.align 2
|
.align 2\n\
|
||||||
_fake_trap_1:
|
_fake_trap_1:\n\
|
||||||
unlk %a6 /* clear interrupt frame */
|
unlk %a6 /* clear interrupt frame */\n\
|
||||||
lea %sp@(4),%sp /* remove jbsr instruction */
|
lea %sp@(4),%sp /* remove jbsr instruction */\n\
|
||||||
moveml %sp@+,%d0-%d7/%a0-%a6 /* pop registers */
|
moveml %sp@+,%d0-%d7/%a0-%a6 /* pop registers */\n\
|
||||||
jmp (33*6-12+_VBR) /* jump exception 1 */
|
jmp (33*6-12+_VBR) /* jump exception 1 */\n\
|
||||||
");
|
");
|
||||||
|
|
||||||
/* dispatch UART interrupt */
|
/* dispatch UART interrupt */
|
||||||
|
|||||||
@@ -25,15 +25,15 @@ void boot_card();
|
|||||||
|
|
||||||
/* We need to by-pass the link instruction since the RAM chip-
|
/* We need to by-pass the link instruction since the RAM chip-
|
||||||
select pins are not yet configured. */
|
select pins are not yet configured. */
|
||||||
asm volatile ( ".global start ;
|
asm volatile ( ".global start ;\n\
|
||||||
start:");
|
start:");
|
||||||
|
|
||||||
/* disable interrupts, load stack pointer */
|
/* disable interrupts, load stack pointer */
|
||||||
asm volatile ( "oriw #0x0700, %sr;
|
asm volatile ( "oriw #0x0700, %sr;\n\
|
||||||
movel #end, %d0;
|
movel #end, %d0;\n\
|
||||||
addl " STACK_SIZE ",%d0;
|
addl " STACK_SIZE ",%d0;\n\
|
||||||
movel %d0,%sp;
|
movel %d0,%sp;\n\
|
||||||
link %a6, #0"
|
link %a6, #0"\n\
|
||||||
);
|
);
|
||||||
/*
|
/*
|
||||||
* Initialize RAM by copying the .data section out of ROM (if
|
* Initialize RAM by copying the .data section out of ROM (if
|
||||||
|
|||||||
@@ -29,15 +29,15 @@ void wd_interrupt(void) {
|
|||||||
|
|
||||||
/* _catchWDint is the interrupt front-end */
|
/* _catchWDint is the interrupt front-end */
|
||||||
extern void _catchWDint();
|
extern void _catchWDint();
|
||||||
asm(" .text
|
asm(" .text\n\
|
||||||
.align 2
|
.align 2\n\
|
||||||
.globl _catchWDint
|
.globl _catchWDint\n\
|
||||||
_catchWDint:
|
_catchWDint:\n\
|
||||||
lea %sp@(4),%sp /* pop return address */
|
lea %sp@(4),%sp /* pop return address */\n\
|
||||||
moveml %d0-%d7/%a0-%a6,%sp@- /* save registers */
|
moveml %d0-%d7/%a0-%a6,%sp@- /* save registers */\n\
|
||||||
jbsr wd_interrupt
|
jbsr wd_interrupt\n\
|
||||||
moveml %sp@+,%d0-%d7/%a0-%a6
|
moveml %sp@+,%d0-%d7/%a0-%a6 \n\
|
||||||
rte
|
rte\n\
|
||||||
");
|
");
|
||||||
|
|
||||||
void watch_dog_init(void) {
|
void watch_dog_init(void) {
|
||||||
|
|||||||
Reference in New Issue
Block a user