loading ofw address
This commit is contained in:
parent
75d8667cb3
commit
3de2240706
5
Makefile
5
Makefile
|
@ -5,10 +5,9 @@ RES = 1600x900x32
|
|||
|
||||
SOURCES_C = $(wildcard entry/*.c)
|
||||
SOURCES_S = $(wildcard entry/*.s)
|
||||
|
||||
OBJECTS = $(SOURCES_C:.c=.elf) $(SOURCES_S:.s=.elf)
|
||||
|
||||
.PHONY: all clean run debug beige
|
||||
.PHONY: clean run debug beige
|
||||
|
||||
DISK.APM: kernel.elf bootinfo.txt scripts/kpartx.sh
|
||||
dd bs=512K count=2 if=/dev/zero of=DISK.APM
|
||||
|
@ -28,7 +27,7 @@ bootinfo.txt: loader/load.fth loader/def.fth
|
|||
echo "</boot-script></chrp-boot>" >> bootinfo.txt
|
||||
|
||||
kernel.elf: $(OBJECTS)
|
||||
$(PPC)-ld -Ttext=0x200000 -Tdata=0x300000 $^ -o $@
|
||||
$(PPC)-ld -Ttext=0x200000 -Tdata=0x300100 $^ -o $@
|
||||
|
||||
%.elf: %.c
|
||||
$(PPC)-gcc -c $< -o $@
|
||||
|
|
24
entry/boot.c
24
entry/boot.c
|
@ -6,32 +6,8 @@ void __eabi(void)
|
|||
{
|
||||
}
|
||||
|
||||
int ofw_test(const char* name)
|
||||
{
|
||||
struct
|
||||
{
|
||||
char* service;
|
||||
int n_args;
|
||||
int n_rets;
|
||||
char* arg;
|
||||
int ret;
|
||||
} ofw_arg;
|
||||
|
||||
char _service[5] = "test";
|
||||
ofw_arg.service = _service;
|
||||
|
||||
ofw_arg.n_args = 1;
|
||||
ofw_arg.n_rets = 1;
|
||||
ofw_arg.arg = name;
|
||||
|
||||
ofw(&ofw_arg);
|
||||
|
||||
return ofw_arg.ret;
|
||||
}
|
||||
|
||||
void main(void)
|
||||
{
|
||||
asm volatile("stw 5, %0" : "=m"(ofw));
|
||||
if (ofw_test("open"))
|
||||
{
|
||||
asm("mr 27, 28");
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
extern void (*ofw)();
|
||||
|
||||
int ofw_test(char* name)
|
||||
{
|
||||
struct
|
||||
{
|
||||
char* service;
|
||||
int n_args;
|
||||
int n_rets;
|
||||
char* arg;
|
||||
int ret;
|
||||
} ofw_arg;
|
||||
|
||||
char _service[5] = "test";
|
||||
ofw_arg.service = _service;
|
||||
|
||||
ofw_arg.n_args = 1;
|
||||
ofw_arg.n_rets = 1;
|
||||
ofw_arg.arg = name;
|
||||
|
||||
ofw(&ofw_arg);
|
||||
|
||||
return ofw_arg.ret;
|
||||
}
|
|
@ -1,4 +1,7 @@
|
|||
.globl _start
|
||||
.globl ofw
|
||||
.extern ofw
|
||||
_start:
|
||||
lis 9, ofw@ha
|
||||
ori 9, 9, ofw@l
|
||||
stw 5, 0(9)
|
||||
b main
|
||||
|
|
Loading…
Reference in New Issue