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>
|
2009-05-25 Allan Hessenflow <allanh@kallisti.com>
|
||||||
|
|
||||||
PR 1418/bsps
|
PR 1418/bsps
|
||||||
|
|||||||
@@ -7,10 +7,6 @@
|
|||||||
#include <libcpu/cecRegs.h>
|
#include <libcpu/cecRegs.h>
|
||||||
#include <libcpu/coreTimerRegs.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
|
#ifndef LO
|
||||||
#define LO(con32) ((con32) & 0xFFFF)
|
#define LO(con32) ((con32) & 0xFFFF)
|
||||||
#endif
|
#endif
|
||||||
@@ -51,6 +47,12 @@ __start:
|
|||||||
p0.l = LO(SIC_IMASK);
|
p0.l = LO(SIC_IMASK);
|
||||||
[p0] = r0;
|
[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
|
/* this is so we can stay in supervisor mode and still be able to
|
||||||
accept interrupts later. */
|
accept interrupts later. */
|
||||||
p0.h = start;
|
p0.h = start;
|
||||||
@@ -96,9 +98,16 @@ start:
|
|||||||
loop1: b[p0] = r0;
|
loop1: b[p0] = r0;
|
||||||
loop2: p0 +=1;
|
loop2: p0 +=1;
|
||||||
|
|
||||||
|
l0 = 0;
|
||||||
|
l1 = 0;
|
||||||
|
l2 = 0;
|
||||||
|
l3 = 0;
|
||||||
|
sp += -12;
|
||||||
|
/* r0 == const char *cmdline (currently null) */
|
||||||
p0.h = _boot_card;
|
p0.h = _boot_card;
|
||||||
p0.l = _boot_card;
|
p0.l = _boot_card;
|
||||||
call (p0);
|
call (p0);
|
||||||
|
sp += 12;
|
||||||
|
|
||||||
p0.h = _exit;
|
p0.h = _exit;
|
||||||
p0.l = _exit;
|
p0.l = _exit;
|
||||||
|
|||||||
Reference in New Issue
Block a user