Some configurations that actually work at the time I committed this:
./fruitjam-build.sh -v # vga resolution, no psram, 128KiB
./fruitjam-build.sh -v -m448 # vga resolution, no psram, 448KiB
./fruitjam-build.sh -m4096 # 512x342 resolution, psram, 4096KiB
this is a _workaround_ for the fact that the mac framebuffer is inverted.
we'll probably ditch it again once we copy the (512x342) framebuffer
from PSRAM to SRAM....
Adds a new build option, -DVIDEO_PIN=<n>, which sets the base GPIO
of Video (followed by syncs).
The video pins (for PIO reasons) need to be contiguous, numbered upward
from the DATA pin. This has caught a couple of people out, so to make
it easier just define them this way. That then gives a single
configuration option, the first GPIO, setting it all up.
Uses the no-OS-FatFS-SD-SPI-RPi-Pico library, and on startup opens
the fs to search for 'umac0.img' or 'umac0ro.img'. If the former
is found, it's used as a RW image; the latter is RO. If no images
are found, the code falls back to an in-flash disc image; you can
set up a default that's used if no SD card is inserted, for example.
The wiring defaults to GPIOs 2/3/4/5 for SCK/TX/RX/CS respectively,
which matches the upper-left SPI0 on the Pico board. The wiring
can be overridden by defining SD_TX, SD_RX, SD_SCK, SD_CS on the
`cmake` build commandline.
The SPI speed defaults to a very conservative 5MHz (at least one of
my cards will only cope with this). Again, this can be overridden
by defining SD_MHZ on the commandline (to an integer in units of MHz).
Note this also disables the RTC portion of FatFS when building
for RP2350 (which doesn't have an RTC, or APIs for it).
The new umac work brings in disc RW support, OS 7, memory size control, etc.
These hooks will be used for SD card storage, and to support "odd" memory
sizes, e.g. making a Mac 208K.