I couldn’t find a defconfig for u-boot on the gameshell, but was able to get it figured out based on the device tree and schematics.
Known issues:
The DRAM clock is set to the first timing I got working. It’s probably possible to clock the RAM faster. The datasheet for the chip on my board says that it’s DDR3L-1600, but I have no idea what that translates to in terms of A33 DRAM clock settings.
I don’t think I’ve got the LCD mode quite right, as the display backlight just flashes on startup and using the bmp command to load an image appears to do nothing.
The AXP_DLDO settings turn on power to the wifi chip, which is probably unnecessary as the Linux kernel does this later in the boot, but it seemed like a good idea to include it to avoid issues with MMC1 timeouts. The rest of the AXP settings appear to match the defaults for all sun8i boards and are the same as those listed on the GameShell schematic.
I’ve tested this patch against HEAD of the upstream u-boot master branch as well as 2019.07.
According to the schematic [1], SDC2 (aka mmc2) is not connected to anything on the CPI3 board, so the device and pinctrl don’t need to be defined in the dtb. If there is a new revision of the CPI board that has this connected, then you’d need to add a new definition for mmc2 along with your mmc2_8bit pinctrl.