mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2025-12-05 15:15:44 +00:00
2009-05-25 Allan Hessenflow <allanh@kallisti.com>
* start/start.S: Correct call to boot_card to meet bfin abi by clearing l0 - l3 and allocating some stack space.
This commit is contained in:
@@ -1,3 +1,8 @@
|
||||
2009-05-25 Allan Hessenflow <allanh@kallisti.com>
|
||||
|
||||
* start/start.S: Correct call to boot_card to meet bfin abi by
|
||||
clearing l0 - l3 and allocating some stack space.
|
||||
|
||||
2009-05-25 Allan Hessenflow <allanh@kallisti.com>
|
||||
|
||||
PR 1418/bsps
|
||||
|
||||
@@ -7,10 +7,6 @@
|
||||
#include <libcpu/cecRegs.h>
|
||||
#include <libcpu/coreTimerRegs.h>
|
||||
|
||||
#warning Call to boot_card has changed and needs checking.
|
||||
#warning The call is "void boot_card(const char* cmdline);"
|
||||
#warning Please check and remove these warnings.
|
||||
|
||||
#ifndef LO
|
||||
#define LO(con32) ((con32) & 0xFFFF)
|
||||
#endif
|
||||
@@ -51,6 +47,12 @@ __start:
|
||||
p0.l = LO(SIC_IMASK);
|
||||
[p0] = r0;
|
||||
|
||||
/* clear any pending interrupts */
|
||||
p0.h = HI(CEC_ILAT);
|
||||
p0.l = LO(CEC_ILAT);
|
||||
r0 = 0xffff (z);
|
||||
[p0] = r0;
|
||||
|
||||
/* this is so we can stay in supervisor mode and still be able to
|
||||
accept interrupts later. */
|
||||
p0.h = start;
|
||||
@@ -96,9 +98,16 @@ start:
|
||||
loop1: b[p0] = r0;
|
||||
loop2: p0 +=1;
|
||||
|
||||
l0 = 0;
|
||||
l1 = 0;
|
||||
l2 = 0;
|
||||
l3 = 0;
|
||||
sp += -12;
|
||||
/* r0 == const char *cmdline (currently null) */
|
||||
p0.h = _boot_card;
|
||||
p0.l = _boot_card;
|
||||
call (p0);
|
||||
sp += 12;
|
||||
|
||||
p0.h = _exit;
|
||||
p0.l = _exit;
|
||||
|
||||
Reference in New Issue
Block a user