Update documentation for M258KE build

Also, do a few random cleanups while I'm at it.
This commit is contained in:
Doug Brown 2023-09-08 22:01:58 -07:00 committed by Doug Brown
parent c46b9d5e5f
commit e06bbe5137

View File

@ -2,11 +2,18 @@
This project is a bootloader and firmware for a Macintosh ROM SIMM programmer, along with control software for Mac OS X, Windows, and Linux. The ROM SIMM is compatible with the SE/30, all II-series Macs with a 64-pin SIMM socket (should include the IIx, IIcx, IIci, IIfx, and IIsi), and the Quadra 700. This project is a bootloader and firmware for a Macintosh ROM SIMM programmer, along with control software for Mac OS X, Windows, and Linux. The ROM SIMM is compatible with the SE/30, all II-series Macs with a 64-pin SIMM socket (should include the IIx, IIcx, IIci, IIfx, and IIsi), and the Quadra 700.
This particular repository contains the main firmware that runs on the programmer board. The current compiler version used with this project is avr-gcc 4.8.2. Using a different version of gcc may result in worse performance due to some very tight optimization performed on this project to decrease programming time. This particular repository contains the main firmware that runs on the programmer board. There are two variants of the firmware that are built from this source code:
1. The firmware for [my original programmer](https://www.downtowndougbrown.com/2012/08/mac-rom-simm-programmer/), the [Big Mess o' Wires programmer](http://www.bigmessowires.com/mac-rom-inator-ii-programming/), and the [CayMac Vintage revision 1 programmer](https://ko-fi.com/s/6f9e9644e4). These programmers use the Atmel/Microchip AT90USB646/1286 AVR microcontroller. The current compiler version used with this version of the firmware is avr-gcc 4.8.2. Using a different version of gcc may result in worse performance due to some very tight optimizations performed on this project to decrease programming time.
2. The firmware for the [CayMac Vintage ROMmate-2](https://ko-fi.com/s/d6e7e4494d), which uses the Nuvoton M258KE3AE ARM Cortex-M23 microcontroller. The compiler that has been tested with this firmware is [ARM GCC 6-2017-q1-update](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads/6-2017-q1-update).
# Downloads # Downloads
Binary downloads (originally [from Google Code](https://code.google.com/p/mac-rom-simm-programmer/downloads/list)) can be found at https://github.com/dougg3/mac-rom-simm-programmer/tree/downloads/downloads Binary downloads can be found at the following links:
- [Firmware](https://github.com/dougg3/mac-rom-simm-programmer/releases)
- [Control Software](https://github.com/dougg3/mac-rom-simm-programmer.software/releases)
- [Bootloader](https://github.com/dougg3/mac-rom-simm-programmer.bootloader/releases)
# Repositories # Repositories
@ -18,23 +25,49 @@ The project is spread over a few repositories. Some of them have a wiki.
| Bootloader (AVR microcontroller) | https://github.com/dougg3/mac-rom-simm-programmer.bootloader | Bootloader (AVR microcontroller) | https://github.com/dougg3/mac-rom-simm-programmer.bootloader
| Programmer Software (Windows/Mac/Linux) | https://github.com/dougg3/mac-rom-simm-programmer.software | none | | Programmer Software (Windows/Mac/Linux) | https://github.com/dougg3/mac-rom-simm-programmer.software | none |
| Windows Driver (.inf file, not needed on Windows 10) | https://github.com/dougg3/mac-rom-simm-programmer.windriver | none | | Windows Driver (.inf file, not needed on Windows 10) | https://github.com/dougg3/mac-rom-simm-programmer.windriver | none |
| Custom QextSerialPort for Programmer Software | https://github.com/dougg3/doug-qextserialport-linuxnotifications | none |
| QextSerialPort base | https://github.com/qextserialport/qextserialport | https://github.com/qextserialport/qextserialport/blob/wiki/Welcome.md |
| CAD for programmer, along with 2 MB and 8 MB SIMM PCBs | https://github.com/dougg3/mac-rom-simm-programmer.cad | none | | CAD for programmer, along with 2 MB and 8 MB SIMM PCBs | https://github.com/dougg3/mac-rom-simm-programmer.cad | none |
| Mac ROM patcher | https://github.com/jpluimers/macrompatcher/ (from https://code.google.com/p/macrompatcher) | none | | Mac ROM patcher | https://github.com/jpluimers/macrompatcher/ (from https://code.google.com/p/macrompatcher) | none |
# Firmware compilation instructions # Firmware compilation instructions
As mentioned earlier, this is an AVR project that is currently optimized for avr-gcc 4.8.2. It can be built using either CMake or Eclipse with the [AVR Eclipse plugin](https://avr-eclipse.sourceforge.net/wiki/index.php/The_AVR_Eclipse_Plugin). To build with CMake: ## AT90USB646/AT90USB1286
This firmware is used on my original programmer, the BMOW programmer, and CayMac's original programmer.
As mentioned earlier, this is an AVR project that is currently optimized for avr-gcc 4.8.2. It can be built using either CMake or Eclipse with the [AVR Eclipse plugin](https://avr-eclipse.sourceforge.net/wiki/index.php/The_AVR_Eclipse_Plugin). To build with CMake, make sure avr-gcc is in your path, and then run:
``` ```
mkdir build mkdir build_avr
cd build cd build_avr
cmake -DCMAKE_TOOLCHAIN_FILE=../toolchain-avr.cmake .. cmake -DCMAKE_TOOLCHAIN_FILE=../toolchain-avr.cmake ..
make make
``` ```
This will result in a generated SIMMProgrammer.bin file which can be programmed to the board using the [Windows/Mac/Linux software](https://github.com/dougg3/mac-rom-simm-programmer.software). ## M258KE3AE
This firmware is used on the CayMac ROMmate-2.
Tested with [ARM GCC 6-2017-q1-update](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads/6-2017-q1-update). To build with CMake, make sure arm-none-eabi-gcc is in your path, and then run:
```
mkdir build_arm
cd build_arm
cmake -DCMAKE_TOOLCHAIN_FILE=../toolchain-m258ke.cmake ..
make
```
## Common information
The build processes described above will create a SIMMProgrammer.bin file that can be programmed to the board using the [Windows/Mac/Linux software](https://github.com/dougg3/mac-rom-simm-programmer.software). You can also generate a combined firmware image containing both the AVR and ARM builds that automatically flashes the correct firmware based on the detected board when using software version 2.0 or newer:
```
cat build_avr/SIMMProgrammer.bin \
<(echo -en "\xDB\x00\xDB\x01\xDB\x02\xDB\x03\xDB\x04\xDB\x05\xDB\x06\xDB\x07") \
<(echo -en "\xDB\x08\xDB\x09\xDB\x0A\xDB\x0B\xDB\x0C\xDB\x0D\xDB\x0E\xDB\x0F") \
<(echo -en "\xDB\xDB\xDB\xDB\xAA\xAA\xAA\xAA\xDB\xDB\xDB\xDB\x55\x55\x55\x55") \
build_arm/SIMMProgrammer.bin \
> SIMMProgrammerFirmware.bin
```
# Videos # Videos