ShiboSoftwareDev/f1c100s-linux-gameboy
Restores PCB assembly metadata by assigning part numbers, managing 3D CAD models and orientations, removing test-point bodies, and validating top-side SMT solder-paste features.
- Version
- 1.0.8
- License
- unset
- Stars
- 0
firmware/README.md
# Linux integration
`carrier.dtsi` is a board fragment for a kernel tree that includes upstream
`suniv-f1c100s.dtsi`. It enables the W25Q128 boot flash, LCDWiki MSP2807
ILI9341 display, PCA9535 game controls, native codec, UART console, and USB
device controller.
Copy the fragment next to your complete board DTS and include it after the SoC
DTSI. Enable at least these kernel options:
- `CONFIG_SPI_SUN6I`, `CONFIG_MTD_SPI_NOR`, and `CONFIG_MTD_BLOCK`
- `CONFIG_DRM`, `CONFIG_DRM_MIPI_DBI`, and `CONFIG_TINYDRM_ILI9341`
- `CONFIG_I2C_MV64XXX`, `CONFIG_GPIO_PCA953X`, `CONFIG_GPIO_PCA953X_IRQ`, and
`CONFIG_KEYBOARD_GPIO`
- `CONFIG_SND_SOC_SUN4I_CODEC` and the ALSA PCM support selected by it
- `CONFIG_USB_MUSB_SUNXI` plus the USB gadget functions needed by the image
The compiled input device reports arrows plus Z/X/A/S and Start/Select key
codes. Most emulators can map those directly. The PAM8403 is fed by the SoC's
left headphone output, so select the codec headphone output in ALSA and begin
with the physical volume wheel fully down.
The board has 32 MiB RAM and a 16 MiB SPI NOR. Use a small Buildroot or similar
image; large desktop distributions are not realistic. The fragment intentionally
does not prescribe flash partitions because SPL/U-Boot, kernel compression, and
root filesystem choices determine the partition sizes.
The LCD header also carries MISO, but the standard ILI9341 DRM path does not
require reads. If the exact MSP2807 revision does not accept the common
`adafruit,yx240qv29` initialization sequence, use the modern
`panel-mipi-dbi-spi` driver with a controller command firmware file matched to
the panel.