This directory holds Xinu sources for the Orange Pi.

Current status of master branch:
-Single-core only
-All networking features are working reliably according to my tests. Xinu can handle up to 80mbps throughput reliably with multiple data streams
--Tested 3 components at once:
---1: Run "iperf -c [orange PI IP] -u -b 80m -t 30 -p 7" on another computer while udpeserver is running on the pi to test 80mbps throughput
---2: Run "ping -i 0.01 -c 1000 [orange PI IP]" on another computer to test fast pings
---3: In Xinu on the pi, run "ping 1.1.1.1" repeatedly to demonstrate that internally initiated network traffic is still delivered as expected even while other high-throughput activity is happening.

Known TODOs:
-None as of 12/5/2023

Multicore support is a work in progress - please refer to the README in multicore_migration for more information on its status.

Note on Makefile:
-If you freshly cloned the master branch or switched to it from a different branch and are getting compilation errors when running "make" from the compile/ directory, run "make clean", then "make" a few more times. Compilation will then complete successfully.

Note on Ethernet on the Orange Pi:
-The Orange Pi does not have a "true" MAC address embedded in the hardware - instead, it is up to the OS or bootloader to generate one at runtime. If you are using uboot to boot Xinu, uboot will generate its own MAC address, then Xinu will generate its own. If you have connection issues due to the randomized MAC, you can change occurrences of fetch_random_mac to fetch_linux_mac and change the bytes of the MAC to that of your uboot MAC address.