Add a skeleton driver for Cubieboard4 (CC A-80) single board computer (#12321)

New systems marked not working
------------------------------
Cubieboard4 (CC A-20) [Museo del Recreativo, Recreativas.org]
Monkey Jump [Museo del Recreativo, Recreativas.org]

New software list items marked not working
------------------------------------------
cubieboard4.xml:
Android 4.1.20161119 for Cubieboard4 (v4.4, internal eMMC) [ClawGrip]
Android 4.3.20170717 for Cubieboard4 (v4.4, internal eMMC) [ClawGrip]
Debian server for Cubieboard4 (v1.0, internal eMMC) [ClawGrip]
Debian server for Cubieboard4 (v1.0, MicroSD card) [ClawGrip]
Linaro desktop for Cubieboard4 (v1.1, HDMI, internal eMMC) [ClawGrip]
Linaro desktop for Cubieboard4 (v1.0, HDMI, MicroSD card) [ClawGrip]
Linaro server for Cubieboard4 (v2.0, HDMI, MicroSD card) [ClawGrip]
Linaro server for Cubieboard4 (v2.0, VGA, MicroSD card) [ClawGrip]
This commit is contained in:
ClawGrip 2024-05-10 06:01:42 +02:00 committed by GitHub
parent 98f88f601d
commit 3901b79d87
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 214 additions and 0 deletions

110
hash/cubieboard4.xml Normal file
View file

@ -0,0 +1,110 @@
<?xml version="1.0"?>
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
<!--
license:CC0-1.0
Software list for Cubieboard4 (CC A-20) external SD card slot.
-->
<softwarelist name="cubieboard4" description="Cubieboard4 software">
<!-- "Official" images from cubieboard.org for the MicroSD card -->
<software name="cb4_debiansvrcrd">
<description>Debian server for Cubieboard4 (v1.0, MicroSD card)</description>
<year>20??</year>
<publisher>cubieboard.org</publisher>
<part name="image" interface="sdcard">
<feature name="video" value="hdmi" />
<diskarea name="image">
<disk name="cb4-debian-server-hdmi-card-v1.0" sha1="3e98a28e72c913afa5883e040731e17b5f90aad2" writeable="yes" />
</diskarea>
</part>
</software>
<software name="cb4_linardstcrdh">
<description>Linaro desktop for Cubieboard4 (v1.0, HDMI, MicroSD card)</description>
<year>20??</year>
<publisher>cubieboard.org</publisher>
<part name="image" interface="sdcard">
<feature name="video" value="hdmi" />
<diskarea name="image">
<disk name="linaro-desktop-cb4-card-hdmi-v1.0" sha1="db646cd4191c3dbbf72764846d6ae5ef32687554" writeable="yes" />
</diskarea>
</part>
</software>
<software name="cb4_linarsvrcrdh">
<description>Linaro server for Cubieboard4 (v2.0, HDMI, MicroSD card)</description>
<year>20??</year>
<publisher>cubieboard.org</publisher>
<part name="image" interface="sdcard">
<feature name="video" value="hdmi" />
<diskarea name="image">
<disk name="linaro-server-cb4-card-hdmi-v2.0" sha1="18a3ca934b3536209bdece46fcdfc3de97135c5b" writeable="yes" />
</diskarea>
</part>
</software>
<software name="cb4_linarsvrcrdv">
<description>Linaro server for Cubieboard4 (v2.0, VGA, MicroSD card)</description>
<year>20??</year>
<publisher>cubieboard.org</publisher>
<part name="image" interface="sdcard">
<feature name="video" value="vga" />
<diskarea name="image">
<disk name="linaro-server-cb4-card-vga-v2.0" sha1="df8fd2c8178420a77e14b0be5197eeafe7bf96de" writeable="yes" />
</diskarea>
</part>
</software>
<!-- "Official" images from cubieboard.org for the internal eMMC -->
<software name="cb4_android41mmc">
<description>Android 4.1.20161119 for Cubieboard4 (v4.4, internal eMMC)</description>
<year>20??</year>
<publisher>cubieboard.org</publisher>
<part name="image" interface="emmc">
<diskarea name="image">
<disk name="android4.4-cb4-emmc-v4.1.20161119" sha1="ccf854e17936e3c57a1701f9edb3c63b704d4d59" writeable="yes" />
</diskarea>
</part>
</software>
<software name="cb4_android43mmc">
<description>Android 4.3.20170717 for Cubieboard4 (v4.4, internal eMMC)</description>
<year>20??</year>
<publisher>cubieboard.org</publisher>
<part name="image" interface="emmc">
<diskarea name="image">
<disk name="android4.4-cb4-emmc-v4.3.20170717" sha1="bb386ce76686698ad7f25b0469970c58abf4745e" writeable="yes" />
</diskarea>
</part>
</software>
<software name="cb4_debiansvrmmc">
<description>Debian server for Cubieboard4 (v1.0, internal eMMC)</description>
<year>20??</year>
<publisher>cubieboard.org</publisher>
<part name="image" interface="emmc">
<feature name="video" value="hdmi" />
<diskarea name="image">
<disk name="cb4-debian-server-hdmi-emmc-v1.0" sha1="31db5866016cfd6f1be331c70859cdb27022a7aa" writeable="yes" />
</diskarea>
</part>
</software>
<software name="cb4_linardstmmeh">
<description>Linaro desktop for Cubieboard4 (v1.1, HDMI, internal eMMC)</description>
<year>20??</year>
<publisher>cubieboard.org</publisher>
<part name="image" interface="emmc">
<feature name="video" value="hdmi" />
<diskarea name="image">
<disk name="linaro-desktop-cb4-emmc-hdmi-v1.1" sha1="249095e6faaee11e330eaf59285c2e68d0b5a30f" writeable="yes" />
</diskarea>
</part>
</software>
</softwarelist>

View file

@ -41732,6 +41732,10 @@ cp1 //
@source:skeleton/ct909e_segadvd.cpp
megatrix
@source:skeleton/cubieboard4.cpp
cubieboard4 //
monkeyjmp // (c) 20?? Falgas
@source:skeleton/cxhumax.cpp
hxhdci2k //

View file

@ -0,0 +1,100 @@
// license:BSD-3-Clause
// copyright-holders:
/***********************************************************************************************
Skeleton driver for "Cubieboard4" (CC A-80) and arcade games based on it.
Cubieboard4, also named CC-A80, is a open source mini PC or single board computer.
The main chipset Allwinner A80 is a 28nm Octa-Core A15/A7 big.LITTLE architecture application processor
with a CPU dominant frequency of 2GHz. It also has the GPU 64-core GPU graphics core PowerVR G6230 which
supports openGL ES, OpenGL, and OpenCL.
CC-A80 has the standard interfaces like desktop computer, such as HDMI & VGA, 100M/1000M RJ45, 4 USB2.0
host ports, 1 USB3.0 OTG port, audio output, microphone input, dual-band wifi and bluetooth 4.0, micro SD
card. It has 2GB DDR3 on-board memory and support Li-Po battery UPS powerinput.
Main Cubieboard4 components:
-Allwinner A80.
-Realtek RTL8211E integrated Ethernet transceiver.
-AMPAK Technology AP6330 WiFi + Bluetooth 4.0(HS) + FM Rx Module.
-SKhynix KLM4G1YEMD-B031 (embedded MultiMediaCard Ver. 5.0 compatible, soldered to the back side of the PCB).
-4 x H5TQ4G63AFR 4Gb DDR3 SDRAM.
-X-Powers AXP809 PMIC.
-X-Powers AC100 audio codec and RTC subsystem.
***********************************************************************************************/
#include "emu.h"
#include "cpu/arm7/arm7.h"
#include "bus/generic/slot.h"
#include "bus/generic/carts.h"
#include "softlist_dev.h"
namespace {
class cubiecca80_state : public driver_device
{
public:
cubiecca80_state(const machine_config &mconfig, device_type type, const char *tag) :
driver_device(mconfig, type, tag),
m_cart_ext(*this, "emmcslot"),
m_cart_int(*this, "sdcardslot"),
m_maincpu(*this, "maincpu")
{ }
void cubiecca80(machine_config &config);
protected:
optional_device<generic_slot_device> m_cart_ext;
optional_device<generic_slot_device> m_cart_int;
private:
required_device<cpu_device> m_maincpu;
};
static INPUT_PORTS_START( cubiecca80 )
INPUT_PORTS_END
void cubiecca80_state::cubiecca80(machine_config &config)
{
// Basic machine hardware
ARM9(config, m_maincpu, 200'000'000); // Actually an Allwinner A80 2 GHz
// Video hardware
//SCREEN(...)
// Audio hardware
//SPEAKER(...)
GENERIC_CARTSLOT(config, m_cart_ext, generic_plain_slot, "sdcard"); // Removable MicroSD
GENERIC_CARTSLOT(config, m_cart_int, generic_plain_slot, "emmc"); // Internal eMMC
// Software list for adding other compatible software (Linux distros, etc.).
SOFTWARE_LIST(config, "software_list").set_original("cubieboard4");
}
// Main machine, for booting SD card and eMMC images from the software list
ROM_START( cubieboard4 )
ROM_END
// Arcade games
/* Monkey Jump. Android-based arcade from the Spanish company Falgas.
Has a separate I/O board, with a PIC18F46K22, connected by USB to the Cubieboard4 (using a RS-232 to USB adapter).
More info: https://www.recreativas.org/monkey-jump-4029-falgas */
ROM_START( monkeyjmp )
DISK_REGION( "nand" )
DISK_IMAGE( "mmcblk1", 0, SHA1(5c005005b2ca17b916b2cccd48d291b19337d4cc) )
ROM_REGION( 0x2000, "io", 0 )
ROM_LOAD( "pic18f46k22.bin", 0x0000, 0x2000, NO_DUMP ) // 1024 bytes internal ROM
ROM_END
} // anonymous namespace
// Main machine
COMP( 20??, cubieboard4, 0, 0, cubiecca80, cubiecca80, cubiecca80_state, empty_init, "Cubietech Limited", "Cubieboard4 (CC A-20)", MACHINE_IS_SKELETON )
// Arcade games
GAME( 20??, monkeyjmp, cubieboard4, cubiecca80, cubiecca80, cubiecca80_state, empty_init, ROT90, "Falgas", "Monkey Jump", MACHINE_IS_SKELETON )