From cb1b6c08488918551db3eaef152c7f7f9da40b47 Mon Sep 17 00:00:00 2001
From: Felix Kopp <sandtler@sandtler.club>
Date: Fri, 12 Jun 2020 00:36:13 +0200
Subject: [PATCH] Ardix is ARM exclusive (at least for now)

---
 README.md | 36 +++++++++++++++++++++---------------
 1 file changed, 21 insertions(+), 15 deletions(-)

diff --git a/README.md b/README.md
index 11c44f0..f239e6f 100644
--- a/README.md
+++ b/README.md
@@ -2,32 +2,34 @@
 
 This is the source tree of Ardix, a microkernel for various Arduino boards that implements some core
 concepts of the Unix philosophy.  Please note that this project is not affiliated with or endorsed
-by Arduino s.r.l. in any way.
+by Arduino s.r.l. in any way.  Only ARM-based boards are supported at the moment.
 
 ## License
 
-Ardix is distributed under the terms of the BSD 3-clause license.
+Ardix is distributed under the terms of the BSD-3-Clause ("New" or "Revised") license.
 See the `LICENSE` file for details.
 
 ## Compiling
 
 ### Prerequisites
 
-- The AVR tools, including
-    * `avr-gcc`
-    * `avr-ld`
-    * `avr-objcopy`
+- The GNU toolchain, including
+    * `arm-gcc`
+    * `arm-ld`
+    * `arm-objcopy`
 - GNU `make`
+- A programmer (`bossac` recommended)
 - A Unix-like shell (sorry Microsoft lackeys, you can use the Windows Subsystem for Linux for
-  compiling but not for flashing)
+  compiling but probably not for flashing)
 
 ### Configuration
 
 Right now, you have to manually define environment variables:
 
-- `AVR_CC`: Full path to `avr-gcc`.  If unset, we will search for it in your PATH.
-- `AVR_LD`: Full path to `avr-ld`.  If unset, we will search for it in your PATH.
-- `AVR_OBJCOPY`: Full path to `avr-objcopy`.  If unset, we will search for it in your PATH.
+- `ARM_CC`: Full path to `arm-none-eabi-gcc`.  If unset, we will search for it in your PATH.
+- `ARM_LD`: Full path to `arm-none-eabi-ld`.  If unset, we will search for it in your PATH.
+- `ARM_OBJCOPY`: Full path to `arm-none-eabi-objcopy`.
+  If unset, we will search for it in your PATH.
 - `ARCH`: Codename for the target architecture.  This is mandatory.
   The following architectures are currently supported:
     * `at91sam3x8e` (Arduino Due)
@@ -36,17 +38,21 @@ Right now, you have to manually define environment variables:
 
 ### Build
 
-To build the EEPROM, execute the following command:
+To build the EEPROM image, execute the following command:
 
 ```shell
 # Replace <target> with one of the target architectures from the list above
-ARCH='<target>' make ardix.hex
+ARCH='<target>' make ardix.bin
 ```
 
-This will create the `ardix.hex` file, which can be passed to `avrdude` for flashing:
+This will create the `ardix.bin` file, which can be passed to `bossac` for flashing.
+If you are using an Arduino DUE (at91sam3x8e), make sure to connect the USB cable to the programmer
+port (the one closer to the power jack).
 
 ```shell
-avrdude -vvv -C '<config>' -p '<target>' -c '<programmer-id>' -P '<port>' -b '<baudrate>' -D -U flash:w:ardix.hex
+# Replace <tty> with the name of the tty device in /dev
+# that is connected to your Arduino
+bossac -e -w -v -b -a --port=<tty> ardix.bin
 ```
 
-Please refer to `man avrdude` for more information on how to use it.
+Please refer to `bossac --help` for more information on how to use it.