mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2025-12-08 00:23:14 +00:00
Properly pass argc, argc, and environp to boot_card.
This commit is contained in:
@@ -106,6 +106,10 @@ _start:
|
|||||||
stw r0,0(sp) /* clear back chain */
|
stw r0,0(sp) /* clear back chain */
|
||||||
stwu sp,-56(sp) /* push another stack frame */
|
stwu sp,-56(sp) /* push another stack frame */
|
||||||
|
|
||||||
|
lis r5,environ@ha
|
||||||
|
la r5,environ@l(r5) /* environp */
|
||||||
|
li r4, 0 /* argv */
|
||||||
|
li r3, 0 /* argc */
|
||||||
/* Let her rip */
|
/* Let her rip */
|
||||||
bl FUNC_NAME(boot_card)
|
bl FUNC_NAME(boot_card)
|
||||||
|
|
||||||
@@ -114,3 +118,5 @@ _start:
|
|||||||
trap
|
trap
|
||||||
.Lstart:
|
.Lstart:
|
||||||
.size _start,.Lstart-_start
|
.size _start,.Lstart-_start
|
||||||
|
|
||||||
|
.comm environ,4,4
|
||||||
|
|||||||
@@ -128,10 +128,10 @@ cpy_b: lwz r5, 0(r3) /* In with the old ... */
|
|||||||
addi r9, r9, 0x0007
|
addi r9, r9, 0x0007
|
||||||
mtspr 0x9e, r9
|
mtspr 0x9e, r9
|
||||||
|
|
||||||
/* clear argc and argv */
|
lis r5,environ@ha
|
||||||
xor r3, r3, r3
|
la r5,environ@l(r5) /* environp */
|
||||||
xor r4, r4, r4
|
li r4, 0 /* argv */
|
||||||
|
li r3, 0 /* argc */
|
||||||
.extern SYM (boot_card)
|
.extern SYM (boot_card)
|
||||||
bl SYM (boot_card) /* call the first C routine */
|
bl SYM (boot_card) /* call the first C routine */
|
||||||
loopstop:
|
loopstop:
|
||||||
@@ -154,3 +154,5 @@ clear_bss:
|
|||||||
|
|
||||||
bdnz clear_bss /* dec counter and loop */
|
bdnz clear_bss /* dec counter and loop */
|
||||||
blr /* return */
|
blr /* return */
|
||||||
|
|
||||||
|
.comm environ,4,4
|
||||||
|
|||||||
@@ -116,6 +116,10 @@ stack_top:
|
|||||||
stw r3, 4(r1)
|
stw r3, 4(r1)
|
||||||
stw r3, 8(r1)
|
stw r3, 8(r1)
|
||||||
stw r3, 12(r1)
|
stw r3, 12(r1)
|
||||||
|
lis r5,environ@ha
|
||||||
|
la r5,environ@l(r5) /* environp */
|
||||||
|
li r4, 0 /* argv */
|
||||||
|
li r3, 0 /* argc */
|
||||||
.extern SYM (boot_card)
|
.extern SYM (boot_card)
|
||||||
b SYM (boot_card) /* call the first C routine */
|
b SYM (boot_card) /* call the first C routine */
|
||||||
|
|
||||||
@@ -142,3 +146,5 @@ clear_bss:
|
|||||||
#if PPC_ABI == PPC_ABI_POWEROPEN
|
#if PPC_ABI == PPC_ABI_POWEROPEN
|
||||||
DESCRIPTOR (startup)
|
DESCRIPTOR (startup)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
.comm environ,4,4
|
||||||
|
|||||||
@@ -403,6 +403,10 @@ dcinvlp:
|
|||||||
stw r3, 4(r1)
|
stw r3, 4(r1)
|
||||||
stw r3, 8(r1)
|
stw r3, 8(r1)
|
||||||
stw r3, 12(r1)
|
stw r3, 12(r1)
|
||||||
|
lis r5,environ@ha
|
||||||
|
la r5,environ@l(r5) /* environp */
|
||||||
|
li r4, 0 /* argv */
|
||||||
|
li r3, 0 /* argc */
|
||||||
.extern SYM (boot_card)
|
.extern SYM (boot_card)
|
||||||
b SYM (boot_card) /* call the first C routine */
|
b SYM (boot_card) /* call the first C routine */
|
||||||
|
|
||||||
@@ -466,4 +470,6 @@ ramaccfx:
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
.comm environ,4,4
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -270,6 +270,8 @@ spin:
|
|||||||
bl bssclr
|
bl bssclr
|
||||||
nop
|
nop
|
||||||
|
|
||||||
|
lis 5,environ@ha
|
||||||
|
la 5,environ@l(5) /* environp */
|
||||||
/* clear argc and argv */
|
/* clear argc and argv */
|
||||||
xor r3, r3, r3
|
xor r3, r3, r3
|
||||||
xor r4, r4, r4
|
xor r4, r4, r4
|
||||||
@@ -381,3 +383,5 @@ initregs:
|
|||||||
blr /* return */
|
blr /* return */
|
||||||
|
|
||||||
.L_text_e:
|
.L_text_e:
|
||||||
|
|
||||||
|
.comm environ,4,4
|
||||||
|
|||||||
@@ -223,6 +223,10 @@ bss_addr:
|
|||||||
stw r3, 4(r1)
|
stw r3, 4(r1)
|
||||||
stw r3, 8(r1)
|
stw r3, 8(r1)
|
||||||
stw r3, 12(r1)
|
stw r3, 12(r1)
|
||||||
|
lis r5,environ@ha
|
||||||
|
la r5,environ@l(r5) /* environp */
|
||||||
|
li r4, 0 /* argv */
|
||||||
|
li r3, 0 /* argc */
|
||||||
.extern SYM (boot_card)
|
.extern SYM (boot_card)
|
||||||
b SYM (boot_card) /* call the first C routine */
|
b SYM (boot_card) /* call the first C routine */
|
||||||
|
|
||||||
@@ -249,3 +253,5 @@ clear_bss:
|
|||||||
#if PPC_ABI == PPC_ABI_POWEROPEN
|
#if PPC_ABI == PPC_ABI_POWEROPEN
|
||||||
DESCRIPTOR (startup)
|
DESCRIPTOR (startup)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
.comm environ,4,4
|
||||||
|
|||||||
@@ -245,6 +245,10 @@ bss_addr:
|
|||||||
stw r3, 4(r1)
|
stw r3, 4(r1)
|
||||||
stw r3, 8(r1)
|
stw r3, 8(r1)
|
||||||
stw r3, 12(r1)
|
stw r3, 12(r1)
|
||||||
|
lis r5,environ@ha
|
||||||
|
la r5,environ@l(r5) /* environp */
|
||||||
|
li r4, 0 /* argv */
|
||||||
|
li r3, 0 /* argc */
|
||||||
.extern SYM (boot_card)
|
.extern SYM (boot_card)
|
||||||
b SYM (boot_card) /* call the first C routine */
|
b SYM (boot_card) /* call the first C routine */
|
||||||
|
|
||||||
@@ -287,3 +291,5 @@ clear_bss:
|
|||||||
#if PPC_ABI == PPC_ABI_POWEROPEN
|
#if PPC_ABI == PPC_ABI_POWEROPEN
|
||||||
DESCRIPTOR (startup)
|
DESCRIPTOR (startup)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
.comm environ,4,4
|
||||||
|
|||||||
@@ -126,10 +126,10 @@ _start:
|
|||||||
stw r0,0(sp) /* clear back chain */
|
stw r0,0(sp) /* clear back chain */
|
||||||
stwu sp,-56(sp) /* push another stack frame */
|
stwu sp,-56(sp) /* push another stack frame */
|
||||||
|
|
||||||
li r3, 0 /* argc */
|
lis r5,environ@ha
|
||||||
|
la r5,environ@l(r5) /* environp */
|
||||||
li r4, 0 /* argv */
|
li r4, 0 /* argv */
|
||||||
li r5, 0 /* environp */
|
li r3, 0 /* argc */
|
||||||
|
|
||||||
/* Let her rip */
|
/* Let her rip */
|
||||||
bl FUNC_NAME(boot_card)
|
bl FUNC_NAME(boot_card)
|
||||||
|
|
||||||
@@ -152,3 +152,5 @@ _start:
|
|||||||
blr
|
blr
|
||||||
.Lstart:
|
.Lstart:
|
||||||
.size _start,.Lstart-_start
|
.size _start,.Lstart-_start
|
||||||
|
|
||||||
|
.comm environ,4,4
|
||||||
|
|||||||
@@ -96,6 +96,10 @@ _start:
|
|||||||
stw r0,0(sp) /* clear back chain */
|
stw r0,0(sp) /* clear back chain */
|
||||||
stwu sp,-56(sp) /* push another stack frame */
|
stwu sp,-56(sp) /* push another stack frame */
|
||||||
|
|
||||||
|
lis r5,environ@ha
|
||||||
|
la r5,environ@l(r5) /* environp */
|
||||||
|
li r4, 0 /* argv */
|
||||||
|
li r3, 0 /* argc */
|
||||||
/* Let her rip */
|
/* Let her rip */
|
||||||
bl FUNC_NAME(boot_card)
|
bl FUNC_NAME(boot_card)
|
||||||
|
|
||||||
@@ -104,3 +108,6 @@ _start:
|
|||||||
trap
|
trap
|
||||||
.Lstart:
|
.Lstart:
|
||||||
.size _start,.Lstart-_start
|
.size _start,.Lstart-_start
|
||||||
|
|
||||||
|
.comm environ,4,4
|
||||||
|
|
||||||
|
|||||||
@@ -146,6 +146,10 @@ past_constants:
|
|||||||
stw r0,0(sp) /* clear back chain */
|
stw r0,0(sp) /* clear back chain */
|
||||||
stwu sp,-56(sp) /* push another stack frame */
|
stwu sp,-56(sp) /* push another stack frame */
|
||||||
|
|
||||||
|
lis r5,environ@ha
|
||||||
|
la r5,environ@l(r5) /* environp */
|
||||||
|
li r4, 0 /* argv */
|
||||||
|
li r3, 0 /* argc */
|
||||||
/* Let her rip */
|
/* Let her rip */
|
||||||
bl FUNC_NAME(boot_card)
|
bl FUNC_NAME(boot_card)
|
||||||
|
|
||||||
@@ -154,3 +158,5 @@ past_constants:
|
|||||||
trap
|
trap
|
||||||
.Lstart:
|
.Lstart:
|
||||||
.size _start,.Lstart-_start
|
.size _start,.Lstart-_start
|
||||||
|
|
||||||
|
.comm environ,4,4
|
||||||
|
|||||||
@@ -107,6 +107,10 @@ enter_C_code:
|
|||||||
/*
|
/*
|
||||||
* We are know in a environment that is totally independent from bootloader setup.
|
* We are know in a environment that is totally independent from bootloader setup.
|
||||||
*/
|
*/
|
||||||
|
lis r5,environ@ha
|
||||||
|
la r5,environ@l(r5) /* environp */
|
||||||
|
li r4, 0 /* argv */
|
||||||
|
li r3, 0 /* argc */
|
||||||
bl boot_card
|
bl boot_card
|
||||||
bl _return_to_ppcbug
|
bl _return_to_ppcbug
|
||||||
|
|
||||||
@@ -194,3 +198,5 @@ flush_tlbs:
|
|||||||
sync
|
sync
|
||||||
blr
|
blr
|
||||||
|
|
||||||
|
|
||||||
|
.comm environ,4,4
|
||||||
|
|||||||
Reference in New Issue
Block a user