Updated Retron 77 (markdown)

Christian Speckner 2018-07-11 23:48:48 +02:00
parent 591aa4fc47
commit 038ba9a411
1 changed files with 9 additions and 5 deletions

@ -55,11 +55,11 @@ The source for Hyperkin's UI is included in the source drop and links against SD
### Dumper
The cartridge port is driven by the WT51F104S MCU on the main board. The dumper code runs directly on the MCU; the dumper process in linux communicates with the MCU via one of the H3's UARTs. The dumper polls the MCU for cartridge changes (insert and remove). If a cartridge has been inserted, the dumper process tries to read the image from the MCU. As the MCU has only 256 bytes of RAM, the image is read and transferred on the spot. The dumper was written by Hyperkin, and the license is unclear.
The cartridge port is driven by the WT51F104S MCU on the main board. The dumper code runs directly on the MCU; the dumper process in linux communicates with the MCU via one of the H3's UARTs. The dumper polls the MCU for cartridge changes (insert and remove). If a cartridge has been inserted, the dumper process tries to read the image from the MCU. As the MCU has only 256 bytes of RAM, the image is read and transferred on the fly. The dumper was written by Hyperkin, and the license is unclear.
### Buttons and joystick ports
The buttons on the backside of the device are directly connected to the H3 via GPIO, the buttons on the front side and the joystick ports sit on the daughter board and connect to the second WT51F104S. A kernel driver (sunxi-atari) is responsible for reading buttons and ports and generating matching keyboard events. The driver communicates with the WT51F104S via I2C and generates keyboard events that are chosen to match Stella's default keybindings. The kernel driver is licensed under the GPL.
The buttons on the backside of the device are directly connected to the H3 via GPIO, the buttons on the front side and the joystick ports sit on the daughter board and connect to the second WT51F104S. A kernel driver (sunxi-atari) is responsible for reading buttons and ports and generates matching keyboard events. The driver communicates with the WT51F104S via I2C and generates keyboard events that are chosen to match Stella's default keybindings. The kernel driver is licensed under the GPL.
## Building
@ -73,11 +73,11 @@ The SD image generated by the build process contains the bootloader in the first
## Linux boot
Immediately after the bootloader, the SD card contains a single FAT32 partition. From there, U-Boot reads a script file (`boot.scr`). This script loads the kernel image from the `uImage` file and boots into linux.
Following after the bootloader, the SD card contains a single FAT32 partition. From there, U-Boot reads a script file (`boot.scr`). This script loads the kernel image from the `uImage` file and boots into linux.
## Root file system and system lifecycle
The boot process builds the root filesystem of the device as an initramfs into the kernel. The initramfs is never unmounted and contains everything, including all binaries and libraries. The FAT32 partition is mounted under `/mnt`. On boot, a serial terminal is started on ttyS0 and can be accessed via the UART header on the board (see above). On startup, init starts the dumper process which keeps running until the console is switched off. The dumper communicates with the WT51F104S MCU connected to the cartridge port via ttyS2 and executes command shell commands. The program flow looks like this:
The boot process builds the root filesystem of the device as an initramfs into the kernel. The initramfs is never unmounted and contains everything, including all binaries and libraries. The FAT32 partition is mounted under `/mnt`. On boot, a serial terminal is started on ttyS0 and can be accessed via the UART header on the board (see above). On startup, init starts the dumper process which keeps running until the console is switched off. The dumper communicates with the WT51F104S MCU connected to the cartridge port via ttyS2 and executes shell commands. The program flow looks like this:
1. Check whether a cartridge is inserted or removed
2. If a cartridge is inserted, try to dump the image
@ -85,4 +85,8 @@ The boot process builds the root filesystem of the device as an initramfs into t
4. If the dump was successful, kill the running UI / Stella process and launch Stella for the dumped image
5. If the dump was unsuccessful, kill the running Stella / UI process and start the UI
The UI is a simple menu that launches Stella as soon as a ROM image is selected. The dumper stays running in the background and will kill the UI and Stella if a cartridge is inserted.
The UI is a simple menu that launches Stella as soon as a ROM image is selected. The dumper stays running in the background and will kill the UI and Stella if a cartridge is inserted.
## MCU firmware
The firmware running on the two WT51F104S MCUs is proprietary and has not been published. It is unclear whether the firmware could be read or refreshed from linux.