circuitpython/ports/powerpc
stijn 30840ebc99 all: Enable extra conversion warnings where applicable.
Add -Wdouble-promotion and -Wfloat-conversion for most ports to ban out
implicit floating point conversions, and add extra Travis builds using
MICROPY_FLOAT_IMPL_FLOAT to uncover warnings which weren't found
previously.  For the unix port -Wsign-comparison is added as well but only
there since only clang supports this but gcc doesn't.
2020-04-18 22:42:28 +10:00
..
frozentest.mpy powerpc: Add initial port to bare metal PowerPC arch. 2019-10-22 22:45:33 +11:00
frozentest.py all: Reformat C and Python source code with tools/codeformat.py. 2020-02-28 10:33:03 +11:00
head.S powerpc: Add initial port to bare metal PowerPC arch. 2019-10-22 22:45:33 +11:00
main.c all: Reformat C and Python source code with tools/codeformat.py. 2020-02-28 10:33:03 +11:00
Makefile all: Enable extra conversion warnings where applicable. 2020-04-18 22:42:28 +10:00
mpconfigport.h all: Reformat C and Python source code with tools/codeformat.py. 2020-02-28 10:33:03 +11:00
mphalport.h all: Reformat C and Python source code with tools/codeformat.py. 2020-02-28 10:33:03 +11:00
powerpc.lds powerpc: Add initial port to bare metal PowerPC arch. 2019-10-22 22:45:33 +11:00
qstrdefsport.h all: Add *FORMAT-OFF* in various places. 2020-02-28 10:31:07 +11:00
README.md powerpc: Add initial port to bare metal PowerPC arch. 2019-10-22 22:45:33 +11:00
uart_core.c powerpc: Add initial port to bare metal PowerPC arch. 2019-10-22 22:45:33 +11:00
uart_lpc_serial.c all: Reformat C and Python source code with tools/codeformat.py. 2020-02-28 10:33:03 +11:00
uart_lpc_serial.h powerpc: Add initial port to bare metal PowerPC arch. 2019-10-22 22:45:33 +11:00
uart_potato.c all: Reformat C and Python source code with tools/codeformat.py. 2020-02-28 10:33:03 +11:00
uart_potato.h powerpc: Add initial port to bare metal PowerPC arch. 2019-10-22 22:45:33 +11:00
unistd.h powerpc: Add initial port to bare metal PowerPC arch. 2019-10-22 22:45:33 +11:00

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 for the host machine:

$ make

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:

(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.

To run in QEMU use:

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