ack/plat/qemuppc
George Koehler d94ea4c508 Teach qemuppc to halt the cpu on _exit().
Without this, qemu-system-ppc spins the host cpu until I close its
window.  I assume the default G3 emulation.  The emulator yields the
host cpu if I set certain flags in hid0 then msr.  The hid0 flag can
be any of DOZE, NAP, SLEEP, so I just set all 3.  I encode mfmsr and
mtmsr with .data4, because our assembler doesn't know instructions for
supervisor mode.

Also move some common symbols from .rom to .bss.  Our assembler puts
common symbols in any section.

Also clean up the file.  Delete a comment about linuxppc that is wrong
here.  Delete redundant .extern because .define is the same.
2016-12-07 18:11:12 -05:00
..
include Change sbrk() to take an int rather than an intptr_t (following the OpenBSD way 2016-11-23 22:06:24 +01:00
libsys Rework the tests to run on pc86; lots of test fixes for the brk() test, which 2016-11-26 11:23:25 +01:00
tests Refactored the tests to make the generic across different plats. 2016-11-25 21:02:51 +01:00
boot.s Teach qemuppc to halt the cpu on _exit(). 2016-12-07 18:11:12 -05:00
build-pkg.lua Add a rather bodged test framework for the qemuppc plat, which only runs if the 2016-11-13 13:37:22 +01:00
build-tools.lua Add the very experimental qemuppc plat, intended to generate minimal images 2016-11-12 19:20:58 +01:00
descr Made csa and csb work with mcg; adjust the libem functions and the 2016-11-19 10:55:41 +01:00
README Add the very experimental qemuppc plat, intended to generate minimal images 2016-11-12 19:20:58 +01:00

# $Source: /cvsroot/tack/Ack/plat/linux386/README,v $
# $State: Exp $
# $Revision: 1.2 $


The linux386 platform
=====================

linux386 is an i386-based BSP that produces Linux ELF executables.

This port only implements a very limited number of system calls; basically,
just enough to make the demo apps run. Adding more is easy, but there are some
subtleties that require more thought. The port should be considered only in
proof-of-concept stage right now.

Important note: you *can't* link access ELF shared libraries from these
executables. In other words, you have to all your work from inside ACK.

IEEE floating point is available, but requires an FPU.

The executables are generated with aelfslod and are extremely simple; there's
one rwx ELF section which contains all the application's code and data. This
is not optimal, but it does work.


Bugs
====

isatty() is a stub and always returns 0.


Example command line
====================

ack -mlinux386 -O -o linux386.exe examples/paranoia.c

The file linux386.exe can then be run on a i386 Linux machine (or on an
emulation thereof).


David Given
dg@cowlark.com