From: David Given Date: Tue, 4 Sep 2018 22:00:13 +0000 (+0200) Subject: Added a boot.o based on the PowerPC one. X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=98afb42095350ce59b8f4bf5ea6c521522479216;p=ack.git Added a boot.o based on the PowerPC one. --- diff --git a/plat/linuxmips/boot.s b/plat/linuxmips/boot.s new file mode 100644 index 000000000..cc6d9ce32 --- /dev/null +++ b/plat/linuxmips/boot.s @@ -0,0 +1,57 @@ +# +! Declare segments (the order is important). + +.sect .text +.sect .rom +.sect .data +.sect .bss + +.sect .text + +begtext: + ! This code is placed at the beginning of the ELF executable and is the + ! first thing that runs. + ! + ! On entry, the stack looks like this: + ! + ! sp+... NULL + ! sp+8+(4*argc) env (X quads) + ! sp+4+(4*argc) NULL + ! sp+4 argv (argc quads) + ! sp argc + ! + ! The ACK actually expects: + ! + ! sp+8 argc + ! sp+4 ptr to argv + ! sp ptr to env + + lw r4, 0(sp) ! r4 = argc + addiu r5, sp, 4 ! r5 = argv + sll r6, r4, 2 ! r6 = argc*4 + addu r6, r6, r5 ! r6 = last arg + addiu r6, r6, 8 ! r6 = env + + addiu sp, sp, -3 * 4 + sw r4, 0(sp) + sw r5, 0(sp) + sw r6, 0(sp) + + b __m_a_i_n + nop + +! Define symbols at the beginning of our various segments, so that we can find +! them. (Except .text, which has already been done.) + +.sect .data; begdata: +.sect .rom; begrom: +.sect .bss; begbss: + +! Some magic data. All EM systems need these. + +.define _errno +.comm _errno, 4 ! Posix errno storage + +.define .trppc, .ignmask +.comm .trppc, 4 ! ptr to user trap handler +.comm .ignmask, 4 ! user trap ignore mask diff --git a/plat/linuxmips/build-pkg.lua b/plat/linuxmips/build-pkg.lua index 6aec05157..8f9a100b2 100644 --- a/plat/linuxmips/build-pkg.lua +++ b/plat/linuxmips/build-pkg.lua @@ -1,10 +1,10 @@ include("plat/build.lua") ---ackfile { --- name = "boot", --- srcs = { "./boot.s" }, --- vars = { plat = "linuxppc" } ---} +ackfile { + name = "boot", + srcs = { "./boot.s" }, + vars = { plat = "linuxmips" } +} -- --build_plat_libs { -- name = "libs", @@ -18,7 +18,7 @@ installable { "+tools", -- "+libs", "./include+pkg", --- ["$(PLATIND)/linuxppc/boot.o"] = "+boot", + ["$(PLATIND)/linuxmips/boot.o"] = "+boot", -- ["$(PLATIND)/linuxppc/libsys.a"] = "./libsys+lib", } }