# The PowerPC port that runs on microwatt and qemu

This port is intended to be a minimal MicroPython port that runs in
QEMU, microwatt simulator with ghdl or microwatt on Xilinx FPGA with
potato UART.

## Building

By default the port will be built with the potato uart for microwatt:

    $ make

To instead build for a machine with LPC serial, such as QEMU powernv:

    $ make UART=lpc_serial

## Cross compilation for POWERPC

If you need to cross compilers you'll want to grab a powerpc64le
compiler (not powerpc or powerpc64).

On Ubuntu (18.04) you'll want:

    $ apt install gcc-powerpc64le-linux-gnu

*(Use CROSS_COMPILE=powerpc64le-linux-gnu-)*

If your distro doesn't have cross compilers, you can get cross compilers here:
- https://toolchains.bootlin.com/
*(use CROSS_COMPILE=powerpc64le-buildroot-linux-gnu-)*

(Avoid musl libc as it defines __assert_fail() differently to glibc
which breaks the micropython powerpc code)

Then do:

    $ make CROSS_COMPILE=<compiler prefix>

Building will produce the build/firmware.bin file which can be used
QEMU or [microwatt](https://github.com/antonblanchard/microwatt).

To run in QEMU use:

    $ ./qemu-system-ppc64 -M powernv -cpu POWER9 -nographic -bios build/firmware.bin
