diff --git a/src/config.c b/src/config.c
index d018b272a..2ba178bfe 100644
--- a/src/config.c
+++ b/src/config.c
@@ -56,6 +56,7 @@
#include <86box/fdd.h>
#include <86box/fdc_ext.h>
#include <86box/gameport.h>
+#include <86box/keyboard.h>
#include <86box/serial_passthrough.h>
#include <86box/machine.h>
#include <86box/mouse.h>
@@ -453,9 +454,6 @@ load_video(void)
if (((gfxcard[0] == VID_INTERNAL) && machine_has_flags(machine, MACHINE_VIDEO_8514A)) ||
video_card_get_flags(gfxcard[0]) == VIDEO_FLAG_TYPE_8514)
ini_section_delete_var(cat, "8514a");
- if (((gfxcard[0] == VID_INTERNAL) && machine_has_flags(machine, MACHINE_VIDEO_XGA)) ||
- video_card_get_flags(gfxcard[0]) == VIDEO_FLAG_TYPE_XGA)
- ini_section_delete_var(cat, "xga");
voodoo_enabled = !!ini_section_get_int(cat, "voodoo", 0);
ibm8514_standalone_enabled = !!ini_section_get_int(cat, "8514a", 0);
@@ -483,6 +481,23 @@ load_input_devices(void)
char temp[512];
char *p;
+ p = ini_section_get_string(cat, "keyboard_type", NULL);
+ if (p != NULL)
+ keyboard_type = keyboard_get_from_internal_name(p);
+ else if (machine_has_bus(machine, MACHINE_BUS_PS2_PORTS)) {
+ if (machine_has_flags(machine, MACHINE_KEYBOARD_JIS))
+ keyboard_type = KEYBOARD_TYPE_PS55;
+ else
+ keyboard_type = KEYBOARD_TYPE_PS2;
+ } else if (machine_has_bus(machine, MACHINE_BUS_ISA16) ||
+ machine_has_bus(machine, MACHINE_BUS_PCI)) {
+ if (machine_has_flags(machine, MACHINE_KEYBOARD_JIS))
+ keyboard_type = KEYBOARD_TYPE_AX;
+ else
+ keyboard_type = KEYBOARD_TYPE_AT;
+ } else
+ keyboard_type = KEYBOARD_TYPE_PC_XT;
+
p = ini_section_get_string(cat, "mouse_type", NULL);
if (p != NULL)
mouse_type = mouse_get_from_internal_name(p);
@@ -1988,6 +2003,8 @@ config_load(void)
video_fullscreen_scale = 1;
time_sync = TIME_SYNC_ENABLED;
+ keyboard_type = KEYBOARD_TYPE_PC_XT;
+
for (int i = 0; i < HDC_MAX; i++)
hdc_current[i] = hdc_get_from_internal_name("none");
@@ -2414,6 +2431,8 @@ save_input_devices(void)
char temp[512];
char tmp2[512];
+ ini_section_set_string(cat, "keyboard_type", keyboard_get_internal_name(keyboard_type));
+
ini_section_set_string(cat, "mouse_type", mouse_get_internal_name(mouse_type));
if (!joystick_type) {
diff --git a/src/device/CMakeLists.txt b/src/device/CMakeLists.txt
index 999b83aeb..d25cb0a70 100644
--- a/src/device/CMakeLists.txt
+++ b/src/device/CMakeLists.txt
@@ -38,6 +38,7 @@ add_library(dev OBJECT
isapnp.c
kbc_at.c
kbc_at_dev.c
+ kbc_xt.c
keyboard.c
keyboard_at.c
keyboard_xt.c
diff --git a/src/device/kbc_at.c b/src/device/kbc_at.c
index d19b08f84..fccf3803f 100644
--- a/src/device/kbc_at.c
+++ b/src/device/kbc_at.c
@@ -2668,7 +2668,15 @@ kbc_at_init(const device_t *info)
dev->ports[1] = kbc_at_ports[1];
/* The actual keyboard. */
- device_add(&keyboard_at_generic_device);
+ if (keyboard_type == KEYBOARD_TYPE_INTERNAL) {
+ if (machine_has_flags(machine, MACHINE_KEYBOARD_JIS))
+ device_add(((dev->flags & KBC_TYPE_MASK) >= KBC_TYPE_PS2_1) ? &keyboard_ps55_device :
+ &keyboard_ax_device);
+ else
+ device_add_params(&keyboard_at_generic_device, (void *) (uintptr_t)
+ (((dev->flags & KBC_TYPE_MASK) >= KBC_TYPE_PS2_1) ? FLAG_PS2_KBD : 0x00));
+ } else
+ keyboard_add_device();
fast_reset = 0x00;
@@ -2677,9 +2685,9 @@ kbc_at_init(const device_t *info)
return dev;
}
-const device_t keyboard_at_device = {
- .name = "PC/AT Keyboard",
- .internal_name = "keyboard_at",
+const device_t kbc_at_device = {
+ .name = "PC/AT Keyboard Controller",
+ .internal_name = "kbc_at",
.flags = DEVICE_KBC,
.local = KBC_TYPE_ISA | KBC_VEN_GENERIC,
.init = kbc_at_init,
@@ -2691,9 +2699,9 @@ const device_t keyboard_at_device = {
.config = NULL
};
-const device_t keyboard_at_siemens_device = {
- .name = "PC/AT Keyboard",
- .internal_name = "keyboard_at",
+const device_t kbc_at_siemens_device = {
+ .name = "PC/AT Keyboard Controller",
+ .internal_name = "kbc_at",
.flags = DEVICE_KBC,
.local = KBC_TYPE_ISA | KBC_VEN_SIEMENS,
.init = kbc_at_init,
@@ -2705,9 +2713,9 @@ const device_t keyboard_at_siemens_device = {
.config = NULL
};
-const device_t keyboard_at_ami_device = {
- .name = "PC/AT Keyboard (AMI)",
- .internal_name = "keyboard_at_ami",
+const device_t kbc_at_ami_device = {
+ .name = "PC/AT Keyboard Controller (AMI)",
+ .internal_name = "kbc_at_ami",
.flags = DEVICE_KBC,
.local = KBC_TYPE_ISA | KBC_VEN_AMI,
.init = kbc_at_init,
@@ -2719,9 +2727,9 @@ const device_t keyboard_at_ami_device = {
.config = NULL
};
-const device_t keyboard_at_tg_ami_device = {
- .name = "PC/AT Keyboard (TriGem AMI)",
- .internal_name = "keyboard_at_tg_ami",
+const device_t kbc_at_tg_ami_device = {
+ .name = "PC/AT Keyboard Controller (TriGem AMI)",
+ .internal_name = "kbc_at_tg_ami",
.flags = DEVICE_KBC,
.local = KBC_TYPE_ISA | KBC_VEN_TRIGEM_AMI,
.init = kbc_at_init,
@@ -2733,9 +2741,9 @@ const device_t keyboard_at_tg_ami_device = {
.config = NULL
};
-const device_t keyboard_at_toshiba_device = {
- .name = "PC/AT Keyboard (Toshiba)",
- .internal_name = "keyboard_at_toshiba",
+const device_t kbc_at_toshiba_device = {
+ .name = "PC/AT Keyboard Controller (Toshiba)",
+ .internal_name = "kbc_at_toshiba",
.flags = DEVICE_KBC,
.local = KBC_TYPE_ISA | KBC_VEN_TOSHIBA,
.init = kbc_at_init,
@@ -2747,9 +2755,9 @@ const device_t keyboard_at_toshiba_device = {
.config = NULL
};
-const device_t keyboard_at_olivetti_device = {
- .name = "PC/AT Keyboard (Olivetti)",
- .internal_name = "keyboard_at_olivetti",
+const device_t kbc_at_olivetti_device = {
+ .name = "PC/AT Keyboard Controller (Olivetti)",
+ .internal_name = "kbc_at_olivetti",
.flags = DEVICE_KBC,
.local = KBC_TYPE_ISA | KBC_VEN_OLIVETTI,
.init = kbc_at_init,
@@ -2761,9 +2769,9 @@ const device_t keyboard_at_olivetti_device = {
.config = NULL
};
-const device_t keyboard_at_ncr_device = {
- .name = "PC/AT Keyboard (NCR)",
- .internal_name = "keyboard_at_ncr",
+const device_t kbc_at_ncr_device = {
+ .name = "PC/AT Keyboard Controller (NCR)",
+ .internal_name = "kbc_at_ncr",
.flags = DEVICE_KBC,
.local = KBC_TYPE_ISA | KBC_VEN_NCR,
.init = kbc_at_init,
@@ -2775,9 +2783,9 @@ const device_t keyboard_at_ncr_device = {
.config = NULL
};
-const device_t keyboard_at_compaq_device = {
- .name = "PC/AT Keyboard (Compaq)",
- .internal_name = "keyboard_at_compaq",
+const device_t kbc_at_compaq_device = {
+ .name = "PC/AT Keyboard Controller (Compaq)",
+ .internal_name = "kbc_at_compaq",
.flags = DEVICE_KBC,
.local = KBC_TYPE_ISA | KBC_VEN_COMPAQ,
.init = kbc_at_init,
@@ -2789,9 +2797,9 @@ const device_t keyboard_at_compaq_device = {
.config = NULL
};
-const device_t keyboard_at_phoenix_device = {
- .name = "PC/AT Keyboard (Phoenix)",
- .internal_name = "keyboard_at_phoenix",
+const device_t kbc_at_phoenix_device = {
+ .name = "PC/AT Keyboard Controller (Phoenix)",
+ .internal_name = "kbc_at_phoenix",
.flags = DEVICE_KBC,
.local = KBC_TYPE_ISA | KBC_VEN_PHOENIX,
.init = kbc_at_init,
@@ -2803,9 +2811,9 @@ const device_t keyboard_at_phoenix_device = {
.config = NULL
};
-const device_t keyboard_ps2_device = {
- .name = "PS/2 Keyboard",
- .internal_name = "keyboard_ps2",
+const device_t kbc_ps2_device = {
+ .name = "PS/2 Keyboard Controller",
+ .internal_name = "kbc_ps2",
.flags = DEVICE_KBC,
.local = KBC_TYPE_PS2_1 | KBC_VEN_GENERIC,
.init = kbc_at_init,
@@ -2817,9 +2825,9 @@ const device_t keyboard_ps2_device = {
.config = NULL
};
-const device_t keyboard_ps2_ps1_device = {
- .name = "PS/2 Keyboard (IBM PS/1)",
- .internal_name = "keyboard_ps2_ps1",
+const device_t kbc_ps2_ps1_device = {
+ .name = "PS/2 Keyboard Controller (IBM PS/1)",
+ .internal_name = "kbc_ps2_ps1",
.flags = DEVICE_KBC,
.local = KBC_TYPE_PS2_1 | KBC_VEN_IBM_PS1,
.init = kbc_at_init,
@@ -2831,9 +2839,9 @@ const device_t keyboard_ps2_ps1_device = {
.config = NULL
};
-const device_t keyboard_ps2_ps1_pci_device = {
- .name = "PS/2 Keyboard (IBM PS/1)",
- .internal_name = "keyboard_ps2_ps1_pci",
+const device_t kbc_ps2_ps1_pci_device = {
+ .name = "PS/2 Keyboard Controller (IBM PS/1)",
+ .internal_name = "kbc_ps2_ps1_pci",
.flags = DEVICE_KBC | DEVICE_PCI,
.local = KBC_TYPE_PS2_1 | KBC_VEN_IBM_PS1,
.init = kbc_at_init,
@@ -2845,9 +2853,9 @@ const device_t keyboard_ps2_ps1_pci_device = {
.config = NULL
};
-const device_t keyboard_ps2_xi8088_device = {
- .name = "PS/2 Keyboard (Xi8088)",
- .internal_name = "keyboard_ps2_xi8088",
+const device_t kbc_ps2_xi8088_device = {
+ .name = "PS/2 Keyboard Controller (Xi8088)",
+ .internal_name = "kbc_ps2_xi8088",
.flags = DEVICE_KBC,
.local = KBC_TYPE_PS2_1 | KBC_VEN_GENERIC,
.init = kbc_at_init,
@@ -2859,9 +2867,9 @@ const device_t keyboard_ps2_xi8088_device = {
.config = NULL
};
-const device_t keyboard_ps2_ami_device = {
- .name = "PS/2 Keyboard (AMI)",
- .internal_name = "keyboard_ps2_ami",
+const device_t kbc_ps2_ami_device = {
+ .name = "PS/2 Keyboard Controller (AMI)",
+ .internal_name = "kbc_ps2_ami",
.flags = DEVICE_KBC,
.local = KBC_TYPE_PS2_1 | KBC_VEN_AMI,
.init = kbc_at_init,
@@ -2873,9 +2881,9 @@ const device_t keyboard_ps2_ami_device = {
.config = NULL
};
-const device_t keyboard_ps2_compaq_device = {
- .name = "PS/2 Keyboard (Compaq)",
- .internal_name = "keyboard_at_compaq",
+const device_t kbc_ps2_compaq_device = {
+ .name = "PS/2 Keyboard Controller (Compaq)",
+ .internal_name = "kbc_at_compaq",
.flags = DEVICE_KBC,
.local = KBC_TYPE_PS2_1 | KBC_VEN_COMPAQ,
.init = kbc_at_init,
@@ -2887,9 +2895,9 @@ const device_t keyboard_ps2_compaq_device = {
.config = NULL
};
-const device_t keyboard_ps2_holtek_device = {
- .name = "PS/2 Keyboard (Holtek)",
- .internal_name = "keyboard_ps2_holtek",
+const device_t kbc_ps2_holtek_device = {
+ .name = "PS/2 Keyboard Controller (Holtek)",
+ .internal_name = "kbc_ps2_holtek",
.flags = DEVICE_KBC,
.local = KBC_TYPE_PS2_1 | KBC_VEN_AMI | KBC_FLAG_IS_ASIC,
.init = kbc_at_init,
@@ -2901,9 +2909,9 @@ const device_t keyboard_ps2_holtek_device = {
.config = NULL
};
-const device_t keyboard_ps2_phoenix_device = {
- .name = "PS/2 Keyboard (Phoenix)",
- .internal_name = "keyboard_ps2_phoenix",
+const device_t kbc_ps2_phoenix_device = {
+ .name = "PS/2 Keyboard Controller (Phoenix)",
+ .internal_name = "kbc_ps2_phoenix",
.flags = DEVICE_KBC,
.local = KBC_TYPE_PS2_1 | KBC_VEN_PHOENIX,
.init = kbc_at_init,
@@ -2915,9 +2923,9 @@ const device_t keyboard_ps2_phoenix_device = {
.config = NULL
};
-const device_t keyboard_ps2_tg_ami_device = {
- .name = "PS/2 Keyboard (TriGem AMI)",
- .internal_name = "keyboard_ps2_tg_ami",
+const device_t kbc_ps2_tg_ami_device = {
+ .name = "PS/2 Keyboard Controller (TriGem AMI)",
+ .internal_name = "kbc_ps2_tg_ami",
.flags = DEVICE_KBC,
.local = KBC_TYPE_PS2_1 | KBC_VEN_TRIGEM_AMI,
.init = kbc_at_init,
@@ -2929,9 +2937,9 @@ const device_t keyboard_ps2_tg_ami_device = {
.config = NULL
};
-const device_t keyboard_ps2_mca_1_device = {
- .name = "PS/2 Keyboard (IBM PS/2 MCA Type 1)",
- .internal_name = "keyboard_ps2_mca_1",
+const device_t kbc_ps2_mca_1_device = {
+ .name = "PS/2 Keyboard Controller (IBM PS/2 MCA Type 1)",
+ .internal_name = "kbc_ps2_mca_1",
.flags = DEVICE_KBC,
.local = KBC_TYPE_PS2_1 | KBC_VEN_IBM,
.init = kbc_at_init,
@@ -2943,9 +2951,9 @@ const device_t keyboard_ps2_mca_1_device = {
.config = NULL
};
-const device_t keyboard_ps2_mca_2_device = {
- .name = "PS/2 Keyboard (IBM PS/2 MCA Type 2)",
- .internal_name = "keyboard_ps2_mca_2",
+const device_t kbc_ps2_mca_2_device = {
+ .name = "PS/2 Keyboard Controller (IBM PS/2 MCA Type 2)",
+ .internal_name = "kbc_ps2_mca_2",
.flags = DEVICE_KBC,
.local = KBC_TYPE_PS2_2 | KBC_VEN_IBM,
.init = kbc_at_init,
@@ -2957,9 +2965,9 @@ const device_t keyboard_ps2_mca_2_device = {
.config = NULL
};
-const device_t keyboard_ps2_quadtel_device = {
- .name = "PS/2 Keyboard (Quadtel/MegaPC)",
- .internal_name = "keyboard_ps2_quadtel",
+const device_t kbc_ps2_quadtel_device = {
+ .name = "PS/2 Keyboard Controller (Quadtel/MegaPC)",
+ .internal_name = "kbc_ps2_quadtel",
.flags = DEVICE_KBC,
.local = KBC_TYPE_PS2_1 | KBC_VEN_QUADTEL,
.init = kbc_at_init,
@@ -2971,9 +2979,9 @@ const device_t keyboard_ps2_quadtel_device = {
.config = NULL
};
-const device_t keyboard_ps2_pci_device = {
- .name = "PS/2 Keyboard",
- .internal_name = "keyboard_ps2_pci",
+const device_t kbc_ps2_pci_device = {
+ .name = "PS/2 Keyboard Controller (PCI)",
+ .internal_name = "kbc_ps2_pci",
.flags = DEVICE_KBC | DEVICE_PCI,
.local = KBC_TYPE_PS2_1 | KBC_VEN_GENERIC,
.init = kbc_at_init,
@@ -2985,9 +2993,9 @@ const device_t keyboard_ps2_pci_device = {
.config = NULL
};
-const device_t keyboard_ps2_ami_pci_device = {
- .name = "PS/2 Keyboard (AMI)",
- .internal_name = "keyboard_ps2_ami_pci",
+const device_t kbc_ps2_ami_pci_device = {
+ .name = "PS/2 Keyboard Controller (PCI) (AMI)",
+ .internal_name = "kbc_ps2_ami_pci",
.flags = DEVICE_KBC | DEVICE_PCI,
.local = KBC_TYPE_PS2_1 | KBC_VEN_AMI,
.init = kbc_at_init,
@@ -2999,9 +3007,9 @@ const device_t keyboard_ps2_ami_pci_device = {
.config = NULL
};
-const device_t keyboard_ps2_ali_pci_device = {
- .name = "PS/2 Keyboard (ALi M5123/M1543C)",
- .internal_name = "keyboard_ps2_ali_pci",
+const device_t kbc_ps2_ali_pci_device = {
+ .name = "PS/2 Keyboard Controller (PCI) (ALi M5123/M1543C)",
+ .internal_name = "kbc_ps2_ali_pci",
.flags = DEVICE_KBC | DEVICE_PCI,
.local = KBC_TYPE_PS2_1 | KBC_VEN_ALI,
.init = kbc_at_init,
@@ -3013,9 +3021,9 @@ const device_t keyboard_ps2_ali_pci_device = {
.config = NULL
};
-const device_t keyboard_ps2_intel_ami_pci_device = {
- .name = "PS/2 Keyboard (AMI)",
- .internal_name = "keyboard_ps2_intel_ami_pci",
+const device_t kbc_ps2_intel_ami_pci_device = {
+ .name = "PS/2 Keyboard Controller (PCI) (AMI)",
+ .internal_name = "kbc_ps2_intel_ami_pci",
.flags = DEVICE_KBC | DEVICE_PCI,
.local = KBC_TYPE_GREEN | KBC_VEN_AMI,
.init = kbc_at_init,
@@ -3027,9 +3035,9 @@ const device_t keyboard_ps2_intel_ami_pci_device = {
.config = NULL
};
-const device_t keyboard_ps2_tg_ami_pci_device = {
- .name = "PS/2 Keyboard (TriGem AMI)",
- .internal_name = "keyboard_ps2_tg_ami_pci",
+const device_t kbc_ps2_tg_ami_pci_device = {
+ .name = "PS/2 Keyboard Controller (PCI) (TriGem AMI)",
+ .internal_name = "kbc_ps2_tg_ami_pci",
.flags = DEVICE_KBC | DEVICE_PCI,
.local = KBC_TYPE_PS2_1 | KBC_VEN_TRIGEM_AMI,
.init = kbc_at_init,
@@ -3041,9 +3049,9 @@ const device_t keyboard_ps2_tg_ami_pci_device = {
.config = NULL
};
-const device_t keyboard_ps2_acer_pci_device = {
- .name = "PS/2 Keyboard (Acer 90M002A)",
- .internal_name = "keyboard_ps2_acer_pci",
+const device_t kbc_ps2_acer_pci_device = {
+ .name = "PS/2 Keyboard Controller (PCI) (Acer 90M002A)",
+ .internal_name = "kbc_ps2_acer_pci",
.flags = DEVICE_KBC | DEVICE_PCI,
.local = KBC_TYPE_PS2_1 | KBC_VEN_ACER,
.init = kbc_at_init,
@@ -3055,9 +3063,9 @@ const device_t keyboard_ps2_acer_pci_device = {
.config = NULL
};
-const device_t keyboard_ps2_phoenix_pci_device = {
- .name = "PS/2 Keyboard (Phoenix)",
- .internal_name = "keyboard_ps2_phoenix_pci",
+const device_t kbc_ps2_phoenix_pci_device = {
+ .name = "PS/2 Keyboard Controller (PCI) (Phoenix)",
+ .internal_name = "kbc_ps2_phoenix_pci",
.flags = DEVICE_KBC | DEVICE_PCI,
.local = KBC_TYPE_PS2_1 | KBC_VEN_PHOENIX,
.init = kbc_at_init,
diff --git a/src/device/kbc_xt.c b/src/device/kbc_xt.c
new file mode 100644
index 000000000..176f1df43
--- /dev/null
+++ b/src/device/kbc_xt.c
@@ -0,0 +1,903 @@
+/*
+ * 86Box A hypervisor and IBM PC system emulator that specializes in
+ * running old operating systems and software designed for IBM
+ * PC systems and compatibles from 1981 through fairly recent
+ * system designs based on the PCI bus.
+ *
+ * This file is part of the 86Box distribution.
+ *
+ * Implementation of the XT-style keyboard.
+ *
+ *
+ *
+ * Authors: Sarah Walker,
+ * Miran Grca,
+ * Fred N. van Kempen,
+ * EngiNerd,
+ *
+ * Copyright 2008-2019 Sarah Walker.
+ * Copyright 2016-2019 Miran Grca.
+ * Copyright 2017-2019 Fred N. van kempen.
+ * Copyright 2020 EngiNerd.
+ */
+#include
+#include
+#include
+#include
+#include
+#define HAVE_STDARG_H
+#include
+#include <86box/86box.h>
+#include <86box/device.h>
+#include "cpu.h"
+#include <86box/timer.h>
+#include <86box/fdd.h>
+#include <86box/machine.h>
+#include <86box/m_xt_t1000.h>
+#include <86box/cassette.h>
+#include <86box/io.h>
+#include <86box/pic.h>
+#include <86box/pit.h>
+#include <86box/ppi.h>
+#include <86box/mem.h>
+#include <86box/rom.h>
+#include <86box/sound.h>
+#include <86box/snd_speaker.h>
+#include <86box/video.h>
+#include <86box/keyboard.h>
+
+#define STAT_PARITY 0x80
+#define STAT_RTIMEOUT 0x40
+#define STAT_TTIMEOUT 0x20
+#define STAT_LOCK 0x10
+#define STAT_CD 0x08
+#define STAT_SYSFLAG 0x04
+#define STAT_IFULL 0x02
+#define STAT_OFULL 0x01
+
+/* Keyboard Types */
+enum {
+ KBD_TYPE_PC81 = 0,
+ KBD_TYPE_PC82,
+ KBD_TYPE_XT82,
+ KBD_TYPE_XT86,
+ KBD_TYPE_COMPAQ,
+ KBD_TYPE_TANDY,
+ KBD_TYPE_TOSHIBA,
+ KBD_TYPE_VTECH,
+ KBD_TYPE_OLIVETTI,
+ KBD_TYPE_ZENITH,
+ KBD_TYPE_PRAVETZ,
+ KBD_TYPE_HYUNDAI,
+ KBD_TYPE_FE2010,
+ KBD_TYPE_XTCLONE
+};
+
+typedef struct xtkbd_t {
+ int want_irq;
+ int blocked;
+ int tandy;
+
+ uint8_t pa;
+ uint8_t pb;
+ uint8_t pd;
+ uint8_t cfg;
+ uint8_t clock;
+ uint8_t key_waiting;
+ uint8_t type;
+ uint8_t pravetz_flags;
+ uint8_t cpu_speed;
+
+ pc_timer_t send_delay_timer;
+} xtkbd_t;
+
+static uint8_t key_queue[16];
+static int key_queue_start = 0;
+static int key_queue_end = 0;
+static int is_tandy = 0;
+static int is_t1x00 = 0;
+static int is_amstrad = 0;
+
+#ifdef ENABLE_KEYBOARD_XT_LOG
+int keyboard_xt_do_log = ENABLE_KEYBOARD_XT_LOG;
+
+static void
+kbd_log(const char *fmt, ...)
+{
+ va_list ap;
+
+ if (keyboard_xt_do_log) {
+ va_start(ap, fmt);
+ pclog_ex(fmt, ap);
+ va_end(ap);
+ }
+}
+#else
+# define kbd_log(fmt, ...)
+#endif
+
+static uint8_t
+get_fdd_switch_settings(void)
+{
+
+ uint8_t fdd_count = 0;
+
+ for (uint8_t i = 0; i < FDD_NUM; i++) {
+ if (fdd_get_flags(i))
+ fdd_count++;
+ }
+
+ if (!fdd_count)
+ return 0x00;
+ else
+ return ((fdd_count - 1) << 6) | 0x01;
+}
+
+static uint8_t
+get_videomode_switch_settings(void)
+{
+
+ if (video_is_mda())
+ return 0x30;
+ else if (video_is_cga())
+ return 0x20; /* 0x10 would be 40x25 */
+ else
+ return 0x00;
+}
+
+static void
+kbd_poll(void *priv)
+{
+ xtkbd_t *kbd = (xtkbd_t *) priv;
+
+ timer_advance_u64(&kbd->send_delay_timer, 1000 * TIMER_USEC);
+
+ if (!(kbd->pb & 0x40) && (kbd->type != KBD_TYPE_TANDY))
+ return;
+
+ if (kbd->want_irq) {
+ kbd->want_irq = 0;
+ kbd->pa = kbd->key_waiting;
+ kbd->blocked = 1;
+ picint(2);
+#ifdef ENABLE_KEYBOARD_XT_LOG
+ kbd_log("XTkbd: kbd_poll(): keyboard_xt : take IRQ\n");
+#endif
+ }
+
+ if ((key_queue_start != key_queue_end) && !kbd->blocked) {
+ kbd->key_waiting = key_queue[key_queue_start];
+ kbd_log("XTkbd: reading %02X from the key queue at %i\n",
+ kbd->key_waiting, key_queue_start);
+ key_queue_start = (key_queue_start + 1) & 0x0f;
+ kbd->want_irq = 1;
+ }
+}
+
+static void
+kbd_adddata(uint16_t val)
+{
+ /* Test for T1000 'Fn' key (Right Alt / Right Ctrl) */
+ if (is_t1x00) {
+ if (keyboard_recv(0x138) || keyboard_recv(0x11d)) { /* 'Fn' pressed */
+ t1000_syskey(0x00, 0x04, 0x00); /* Set 'Fn' indicator */
+ switch (val) {
+ case 0x45: /* Num Lock => toggle numpad */
+ t1000_syskey(0x00, 0x00, 0x10);
+ break;
+ case 0x47: /* Home => internal display */
+ t1000_syskey(0x40, 0x00, 0x00);
+ break;
+ case 0x49: /* PgDn => turbo on */
+ t1000_syskey(0x80, 0x00, 0x00);
+ break;
+ case 0x4D: /* Right => toggle LCD font */
+ t1000_syskey(0x00, 0x00, 0x20);
+ break;
+ case 0x4F: /* End => external display */
+ t1000_syskey(0x00, 0x40, 0x00);
+ break;
+ case 0x51: /* PgDn => turbo off */
+ t1000_syskey(0x00, 0x80, 0x00);
+ break;
+ case 0x54: /* SysRQ => toggle window */
+ t1000_syskey(0x00, 0x00, 0x08);
+ break;
+
+ default:
+ break;
+ }
+ } else
+ t1000_syskey(0x04, 0x00, 0x00); /* Reset 'Fn' indicator */
+ }
+
+ key_queue[key_queue_end] = val;
+ kbd_log("XTkbd: %02X added to key queue at %i\n",
+ val, key_queue_end);
+ key_queue_end = (key_queue_end + 1) & 0x0f;
+}
+
+void
+kbd_adddata_process(uint16_t val, void (*adddata)(uint16_t val))
+{
+ uint8_t num_lock = 0;
+ uint8_t shift_states = 0;
+
+ if (!adddata)
+ return;
+
+ keyboard_get_states(NULL, &num_lock, NULL, NULL);
+ shift_states = keyboard_get_shift() & STATE_LSHIFT;
+
+ if (is_amstrad)
+ num_lock = !num_lock;
+
+ /* If NumLock is on, invert the left shift state so we can always check for
+ the the same way flag being set (and with NumLock on that then means it
+ is actually *NOT* set). */
+ if (num_lock)
+ shift_states ^= STATE_LSHIFT;
+
+ switch (val) {
+ case FAKE_LSHIFT_ON:
+ /* If NumLock is on, fake shifts are sent when shift is *NOT* presed,
+ if NumLock is off, fake shifts are sent when shift is pressed. */
+ if (shift_states) {
+ /* Send fake shift. */
+ adddata(num_lock ? 0x2a : 0xaa);
+ }
+ break;
+ case FAKE_LSHIFT_OFF:
+ if (shift_states) {
+ /* Send fake shift. */
+ adddata(num_lock ? 0xaa : 0x2a);
+ }
+ break;
+ default:
+ adddata(val);
+ break;
+ }
+}
+
+static void
+kbd_adddata_ex(uint16_t val)
+{
+ kbd_adddata_process(val, kbd_adddata);
+}
+
+static void
+kbd_write(uint16_t port, uint8_t val, void *priv)
+{
+ xtkbd_t *kbd = (xtkbd_t *) priv;
+ uint8_t bit;
+ uint8_t set;
+ uint8_t new_clock;
+
+ switch (port) {
+ case 0x61: /* Keyboard Control Register (aka Port B) */
+ if (!(val & 0x80) || (kbd->type == KBD_TYPE_HYUNDAI)) {
+ new_clock = !!(val & 0x40);
+ if (!kbd->clock && new_clock) {
+ key_queue_start = key_queue_end = 0;
+ kbd->want_irq = 0;
+ kbd->blocked = 0;
+ kbd_adddata(0xaa);
+ }
+ }
+
+ kbd->pb = val;
+ if (!(kbd->pb & 0x80) || (kbd->type == KBD_TYPE_HYUNDAI))
+ kbd->clock = !!(kbd->pb & 0x40);
+ ppi.pb = val;
+
+ timer_process();
+
+ if (((kbd->type == KBD_TYPE_PC81) || (kbd->type == KBD_TYPE_PC82) ||
+ (kbd->type == KBD_TYPE_PRAVETZ)) && (cassette != NULL))
+ pc_cas_set_motor(cassette, (kbd->pb & 0x08) == 0);
+
+ speaker_update();
+
+ speaker_gated = val & 1;
+ speaker_enable = val & 2;
+
+ if (speaker_enable)
+ was_speaker_enable = 1;
+ pit_devs[0].set_gate(pit_devs[0].data, 2, val & 1);
+
+ if (val & 0x80) {
+ kbd->pa = 0;
+ kbd->blocked = 0;
+ picintc(2);
+ }
+
+#ifdef ENABLE_KEYBOARD_XT_LOG
+ if ((kbd->type == KBD_TYPE_PC81) || (kbd->type == KBD_TYPE_PC82) || (kbd->type == KBD_TYPE_PRAVETZ))
+ kbd_log("XTkbd: Cassette motor is %s\n", !(val & 0x08) ? "ON" : "OFF");
+#endif
+ break;
+
+ case 0x62: /* Switch Register (aka Port C) */
+#ifdef ENABLE_KEYBOARD_XT_LOG
+ if ((kbd->type == KBD_TYPE_PC81) || (kbd->type == KBD_TYPE_PC82) || (kbd->type == KBD_TYPE_PRAVETZ))
+ kbd_log("XTkbd: Cassette IN is %i\n", !!(val & 0x10));
+#endif
+ if (kbd->type == KBD_TYPE_FE2010) {
+ kbd_log("XTkbd: Switch register in is %02X\n", val);
+ if (!(kbd->cfg & 0x08))
+ kbd->pd = (kbd->pd & 0x30) | (val & 0xcf);
+ }
+ break;
+
+ case 0x63:
+ if (kbd->type == KBD_TYPE_FE2010) {
+ kbd_log("XTkbd: Configuration register in is %02X\n", val);
+ if (!(kbd->cfg & 0x08))
+ kbd->cfg = val;
+ }
+ break;
+
+ case 0xc0 ... 0xcf: /* Pravetz Flags */
+ kbd_log("XTkbd: Port %02X out: %02X\n", port, val);
+ if (kbd->type == KBD_TYPE_PRAVETZ) {
+ bit = (port >> 1) & 0x07;
+ set = (port & 0x01) << bit;
+ kbd->pravetz_flags = (kbd->pravetz_flags & ~(1 << bit)) | set;
+ }
+ break;
+
+ case 0x1f0:
+ kbd_log("XTkbd: Port %04X out: %02X\n", port, val);
+ if (kbd->type == KBD_TYPE_VTECH) {
+ kbd->cpu_speed = val;
+ cpu_dynamic_switch(kbd->cpu_speed >> 7);
+ }
+ break;
+
+ default:
+ break;
+ }
+}
+
+static uint8_t
+kbd_read(uint16_t port, void *priv)
+{
+ const xtkbd_t *kbd = (xtkbd_t *) priv;
+ uint8_t ret = 0xff;
+
+ switch (port) {
+ case 0x60: /* Keyboard Data Register (aka Port A) */
+ if ((kbd->pb & 0x80) && ((kbd->type == KBD_TYPE_PC81) ||
+ (kbd->type == KBD_TYPE_PC82) || (kbd->type == KBD_TYPE_PRAVETZ) ||
+ (kbd->type == KBD_TYPE_XT82) || (kbd->type == KBD_TYPE_XT86) ||
+ (kbd->type == KBD_TYPE_XTCLONE) || (kbd->type == KBD_TYPE_COMPAQ) ||
+ (kbd->type == KBD_TYPE_ZENITH) || (kbd->type == KBD_TYPE_HYUNDAI) ||
+ (kbd->type == KBD_TYPE_VTECH))) {
+ if ((kbd->type == KBD_TYPE_PC81) || (kbd->type == KBD_TYPE_PC82) ||
+ (kbd->type == KBD_TYPE_XTCLONE) || (kbd->type == KBD_TYPE_COMPAQ) ||
+ (kbd->type == KBD_TYPE_PRAVETZ) || (kbd->type == KBD_TYPE_HYUNDAI))
+ ret = (kbd->pd & ~0x02) | (hasfpu ? 0x02 : 0x00);
+ else if ((kbd->type == KBD_TYPE_XT82) || (kbd->type == KBD_TYPE_XT86) ||
+ (kbd->type == KBD_TYPE_VTECH))
+ /* According to Ruud on the PCem forum, this is supposed to
+ return 0xFF on the XT. */
+ ret = 0xff;
+ else if (kbd->type == KBD_TYPE_ZENITH) {
+ /* Zenith Data Systems Z-151
+ * SW1 switch settings:
+ * bits 6-7: floppy drive number
+ * bits 4-5: video mode
+ * bit 2-3: base memory size
+ * bit 1: fpu enable
+ * bit 0: fdc enable
+ */
+ ret = get_fdd_switch_settings();
+
+ ret |= get_videomode_switch_settings();
+
+ /* Base memory size should always be 64k */
+ ret |= 0x0c;
+
+ if (hasfpu)
+ ret |= 0x02;
+ }
+ } else
+ ret = kbd->pa;
+ break;
+
+ case 0x61: /* Keyboard Control Register (aka Port B) */
+ ret = kbd->pb;
+ break;
+
+ case 0x62: /* Switch Register (aka Port C) */
+ if (kbd->type == KBD_TYPE_FE2010) {
+ if (kbd->pb & 0x04) /* PB2 */
+ ret = (kbd->pd & 0x0d) | (hasfpu ? 0x02 : 0x00);
+ else
+ ret = kbd->pd >> 4;
+ } else if ((kbd->type == KBD_TYPE_PC81) || (kbd->type == KBD_TYPE_PC82) ||
+ (kbd->type == KBD_TYPE_PRAVETZ)) {
+ if (kbd->pb & 0x04) /* PB2 */
+ switch (mem_size + isa_mem_size) {
+ case 64:
+ case 48:
+ case 32:
+ case 16:
+ ret = 0x00;
+ break;
+ default:
+ ret = (((mem_size + isa_mem_size) - 64) / 32) & 0x0f;
+ break;
+ }
+ else
+ ret = (((mem_size + isa_mem_size) - 64) / 32) >> 4;
+ } else if ((kbd->type == KBD_TYPE_OLIVETTI) ||
+ (kbd->type == KBD_TYPE_ZENITH)) {
+ /* Olivetti M19 or Zenith Data Systems Z-151 */
+ if (kbd->pb & 0x04) /* PB2 */
+ ret = kbd->pd & 0xbf;
+ else
+ ret = kbd->pd >> 4;
+ } else {
+ if (kbd->pb & 0x08) /* PB3 */
+ ret = kbd->pd >> 4;
+ else
+ ret = (kbd->pd & 0x0d) | (hasfpu ? 0x02 : 0x00);
+ }
+ ret |= (ppispeakon ? 0x20 : 0);
+
+ /* This is needed to avoid error 131 (cassette error).
+ This is serial read: bit 5 = clock, bit 4 = data, cassette header is 256 x 0xff. */
+ if ((kbd->type == KBD_TYPE_PC81) || (kbd->type == KBD_TYPE_PC82) ||
+ (kbd->type == KBD_TYPE_PRAVETZ)) {
+ if (cassette == NULL)
+ ret |= (ppispeakon ? 0x10 : 0);
+ else
+ ret |= (pc_cas_get_inp(cassette) ? 0x10 : 0);
+ }
+
+ if (kbd->type == KBD_TYPE_TANDY)
+ ret |= (tandy1k_eeprom_read() ? 0x10 : 0);
+ break;
+
+ case 0x63: /* Keyboard Configuration Register (aka Port D) */
+ if ((kbd->type == KBD_TYPE_XT82) || (kbd->type == KBD_TYPE_XT86) ||
+ (kbd->type == KBD_TYPE_XTCLONE) || (kbd->type == KBD_TYPE_COMPAQ) ||
+ (kbd->type == KBD_TYPE_TOSHIBA) || (kbd->type == KBD_TYPE_HYUNDAI) ||
+ (kbd->type == KBD_TYPE_VTECH))
+ ret = kbd->pd;
+ break;
+
+ case 0xc0: /* Pravetz Flags */
+ if (kbd->type == KBD_TYPE_PRAVETZ)
+ ret = kbd->pravetz_flags;
+ kbd_log("XTkbd: Port %02X in : %02X\n", port, ret);
+ break;
+
+ case 0x1f0:
+ if (kbd->type == KBD_TYPE_VTECH)
+ ret = kbd->cpu_speed;
+ kbd_log("XTkbd: Port %04X in : %02X\n", port, ret);
+ break;
+
+ default:
+ break;
+ }
+
+ return ret;
+}
+
+static void
+kbd_reset(void *priv)
+{
+ xtkbd_t *kbd = (xtkbd_t *) priv;
+
+ kbd->want_irq = 0;
+ kbd->blocked = 0;
+ kbd->pa = 0x00;
+ kbd->pb = 0x00;
+ kbd->pravetz_flags = 0x00;
+
+ keyboard_scan = 1;
+
+ key_queue_start = 0;
+ key_queue_end = 0;
+}
+
+void
+keyboard_set_is_amstrad(int ams)
+{
+ is_amstrad = ams;
+}
+
+static void *
+kbd_init(const device_t *info)
+{
+ xtkbd_t *kbd;
+
+ kbd = (xtkbd_t *) calloc(1, sizeof(xtkbd_t));
+
+ io_sethandler(0x0060, 4,
+ kbd_read, NULL, NULL, kbd_write, NULL, NULL, kbd);
+ keyboard_send = kbd_adddata_ex;
+ kbd->type = info->local;
+ if (kbd->type == KBD_TYPE_VTECH)
+ kbd->cpu_speed = (!!cpu) << 2;
+ kbd_reset(kbd);
+ if (kbd->type == KBD_TYPE_PRAVETZ)
+ io_sethandler(0x00c0, 16,
+ kbd_read, NULL, NULL, kbd_write, NULL, NULL, kbd);
+ if (kbd->type == KBD_TYPE_VTECH)
+ io_sethandler(0x01f0, 1,
+ kbd_read, NULL, NULL, kbd_write, NULL, NULL, kbd);
+
+ key_queue_start = key_queue_end = 0;
+
+ video_reset(gfxcard[0]);
+
+ if ((kbd->type == KBD_TYPE_PC81) || (kbd->type == KBD_TYPE_PC82) ||
+ (kbd->type == KBD_TYPE_PRAVETZ) || (kbd->type == KBD_TYPE_XT82) ||
+ (kbd->type <= KBD_TYPE_XT86) || (kbd->type == KBD_TYPE_XTCLONE) ||
+ (kbd->type == KBD_TYPE_COMPAQ) || (kbd->type == KBD_TYPE_TOSHIBA) ||
+ (kbd->type == KBD_TYPE_OLIVETTI) || (kbd->type == KBD_TYPE_HYUNDAI) ||
+ (kbd->type == KBD_TYPE_VTECH) || (kbd->type == KBD_TYPE_FE2010)) {
+ /* DIP switch readout: bit set = OFF, clear = ON. */
+ if (kbd->type == KBD_TYPE_OLIVETTI)
+ /* Olivetti M19
+ * Jumpers J1, J2 - monitor type.
+ * 01 - mono (high-res)
+ * 10 - color (low-res, disables 640x400x2 mode)
+ * 00 - autoswitching
+ */
+ kbd->pd |= 0x00;
+ else
+ /* Switches 7, 8 - floppy drives. */
+ kbd->pd = get_fdd_switch_settings();
+
+ /* Switches 5, 6 - video card type */
+ kbd->pd |= get_videomode_switch_settings();
+
+ /* Switches 3, 4 - memory size. */
+ if ((kbd->type == KBD_TYPE_XT86) || (kbd->type == KBD_TYPE_XTCLONE) ||
+ (kbd->type == KBD_TYPE_HYUNDAI) || (kbd->type == KBD_TYPE_COMPAQ) ||
+ (kbd->type == KBD_TYPE_TOSHIBA) || (kbd->type == KBD_TYPE_FE2010)) {
+ switch (mem_size) {
+ case 256:
+ kbd->pd |= 0x00;
+ break;
+ case 512:
+ kbd->pd |= 0x04;
+ break;
+ case 576:
+ kbd->pd |= 0x08;
+ break;
+ case 640:
+ default:
+ kbd->pd |= 0x0c;
+ break;
+ }
+ } else if ((kbd->type == KBD_TYPE_XT82) || (kbd->type == KBD_TYPE_VTECH)) {
+ switch (mem_size) {
+ case 64: /* 1x64k */
+ kbd->pd |= 0x00;
+ break;
+ case 128: /* 2x64k */
+ kbd->pd |= 0x04;
+ break;
+ case 192: /* 3x64k */
+ kbd->pd |= 0x08;
+ break;
+ case 256: /* 4x64k */
+ default:
+ kbd->pd |= 0x0c;
+ break;
+ }
+ } else if (kbd->type == KBD_TYPE_PC82) {
+ switch (mem_size) {
+#ifdef PC82_192K_3BANK
+ case 192: /* 3x64k, not supported by stock BIOS due to bugs */
+ kbd->pd |= 0x08;
+ break;
+#else
+ case 192: /* 2x64k + 2x32k */
+#endif
+ case 64: /* 4x16k */
+ case 96: /* 2x32k + 2x16k */
+ case 128: /* 4x32k */
+ case 160: /* 2x64k + 2x16k */
+ case 224: /* 3x64k + 1x32k */
+ case 256: /* 4x64k */
+ default:
+ kbd->pd |= 0x0c;
+ break;
+ }
+ } else { /* really just the PC '81 */
+ switch (mem_size) {
+ case 16: /* 1x16k */
+ kbd->pd |= 0x00;
+ break;
+ case 32: /* 2x16k */
+ kbd->pd |= 0x04;
+ break;
+ case 48: /* 3x16k */
+ kbd->pd |= 0x08;
+ break;
+ case 64: /* 4x16k */
+ default:
+ kbd->pd |= 0x0c;
+ break;
+ }
+ }
+
+ /* Switch 2 - 8087 FPU. */
+ if (hasfpu)
+ kbd->pd |= 0x02;
+ } else if (kbd->type == KBD_TYPE_ZENITH) {
+ /* Zenith Data Systems Z-151
+ * SW2 switch settings:
+ * bit 7: monitor frequency
+ * bits 5-6: autoboot (00-11 resident monitor, 10 hdd, 01 fdd)
+ * bits 0-4: installed memory
+ */
+ kbd->pd = 0x20;
+ switch (mem_size) {
+ case 128:
+ kbd->pd |= 0x02;
+ break;
+ case 192:
+ kbd->pd |= 0x04;
+ break;
+ case 256:
+ kbd->pd |= 0x06;
+ break;
+ case 320:
+ kbd->pd |= 0x08;
+ break;
+ case 384:
+ kbd->pd |= 0x0a;
+ break;
+ case 448:
+ kbd->pd |= 0x0c;
+ break;
+ case 512:
+ kbd->pd |= 0x0e;
+ break;
+ case 576:
+ kbd->pd |= 0x10;
+ break;
+ case 640:
+ default:
+ kbd->pd |= 0x12;
+ break;
+ }
+ }
+
+ timer_add(&kbd->send_delay_timer, kbd_poll, kbd, 1);
+
+ is_tandy = (kbd->type == KBD_TYPE_TANDY);
+ is_t1x00 = (kbd->type == KBD_TYPE_TOSHIBA);
+
+ if (keyboard_type == KEYBOARD_TYPE_INTERNAL)
+ keyboard_set_table(scancode_xt);
+ else
+ keyboard_add_device();
+
+ is_amstrad = 0;
+
+ return kbd;
+}
+
+static void
+kbd_close(void *priv)
+{
+ xtkbd_t *kbd = (xtkbd_t *) priv;
+
+ /* Stop the timer. */
+ timer_disable(&kbd->send_delay_timer);
+
+ /* Disable scanning. */
+ keyboard_scan = 0;
+
+ keyboard_send = NULL;
+
+ io_removehandler(0x0060, 4,
+ kbd_read, NULL, NULL, kbd_write, NULL, NULL, kbd);
+
+ free(kbd);
+}
+
+const device_t kbc_pc_device = {
+ .name = "IBM PC Keyboard Controller (1981)",
+ .internal_name = "kbc_pc",
+ .flags = 0,
+ .local = KBD_TYPE_PC81,
+ .init = kbd_init,
+ .close = kbd_close,
+ .reset = kbd_reset,
+ .available = NULL,
+ .speed_changed = NULL,
+ .force_redraw = NULL,
+ .config = NULL
+};
+
+const device_t kbc_pc82_device = {
+ .name = "IBM PC Keyboard Controller (1982)",
+ .internal_name = "kbc_pc82",
+ .flags = 0,
+ .local = KBD_TYPE_PC82,
+ .init = kbd_init,
+ .close = kbd_close,
+ .reset = kbd_reset,
+ .available = NULL,
+ .speed_changed = NULL,
+ .force_redraw = NULL,
+ .config = NULL
+};
+
+const device_t kbc_pravetz_device = {
+ .name = "Pravetz Keyboard Controller",
+ .internal_name = "kbc_pravetz",
+ .flags = 0,
+ .local = KBD_TYPE_PRAVETZ,
+ .init = kbd_init,
+ .close = kbd_close,
+ .reset = kbd_reset,
+ .available = NULL,
+ .speed_changed = NULL,
+ .force_redraw = NULL,
+ .config = NULL
+};
+
+const device_t kbc_xt_device = {
+ .name = "XT (1982) Keyboard Controller",
+ .internal_name = "kbc_xt",
+ .flags = 0,
+ .local = KBD_TYPE_XT82,
+ .init = kbd_init,
+ .close = kbd_close,
+ .reset = kbd_reset,
+ .available = NULL,
+ .speed_changed = NULL,
+ .force_redraw = NULL,
+ .config = NULL
+};
+
+const device_t kbc_xt86_device = {
+ .name = "XT (1986) Keyboard Controller",
+ .internal_name = "kbc_xt86",
+ .flags = 0,
+ .local = KBD_TYPE_XT86,
+ .init = kbd_init,
+ .close = kbd_close,
+ .reset = kbd_reset,
+ .available = NULL,
+ .speed_changed = NULL,
+ .force_redraw = NULL,
+ .config = NULL
+};
+
+const device_t kbc_xt_compaq_device = {
+ .name = "Compaq Portable Keyboard Controller",
+ .internal_name = "kbc_xt_compaq",
+ .flags = 0,
+ .local = KBD_TYPE_COMPAQ,
+ .init = kbd_init,
+ .close = kbd_close,
+ .reset = kbd_reset,
+ .available = NULL,
+ .speed_changed = NULL,
+ .force_redraw = NULL,
+ .config = NULL
+};
+
+const device_t kbc_tandy_device = {
+ .name = "Tandy 1000 Keyboard Controller",
+ .internal_name = "kbc_tandy",
+ .flags = 0,
+ .local = KBD_TYPE_TANDY,
+ .init = kbd_init,
+ .close = kbd_close,
+ .reset = kbd_reset,
+ .available = NULL,
+ .speed_changed = NULL,
+ .force_redraw = NULL,
+ .config = NULL
+};
+
+const device_t kbc_xt_t1x00_device = {
+ .name = "Toshiba T1x00 Keyboard Controller",
+ .internal_name = "kbc_xt_t1x00",
+ .flags = 0,
+ .local = KBD_TYPE_TOSHIBA,
+ .init = kbd_init,
+ .close = kbd_close,
+ .reset = kbd_reset,
+ .available = NULL,
+ .speed_changed = NULL,
+ .force_redraw = NULL,
+ .config = NULL
+};
+
+const device_t kbc_xt_lxt3_device = {
+ .name = "VTech Laser Turbo XT Keyboard Controller",
+ .internal_name = "kbc_xt_lxt",
+ .flags = 0,
+ .local = KBD_TYPE_VTECH,
+ .init = kbd_init,
+ .close = kbd_close,
+ .reset = kbd_reset,
+ .available = NULL,
+ .speed_changed = NULL,
+ .force_redraw = NULL,
+ .config = NULL
+};
+
+const device_t kbc_xt_olivetti_device = {
+ .name = "Olivetti XT Keyboard Controller",
+ .internal_name = "kbc_xt_olivetti",
+ .flags = 0,
+ .local = KBD_TYPE_OLIVETTI,
+ .init = kbd_init,
+ .close = kbd_close,
+ .reset = kbd_reset,
+ .available = NULL,
+ .speed_changed = NULL,
+ .force_redraw = NULL,
+ .config = NULL
+};
+
+const device_t kbc_xt_zenith_device = {
+ .name = "Zenith XT Keyboard Controller",
+ .internal_name = "kbc_xt_zenith",
+ .flags = 0,
+ .local = KBD_TYPE_ZENITH,
+ .init = kbd_init,
+ .close = kbd_close,
+ .reset = kbd_reset,
+ .available = NULL,
+ .speed_changed = NULL,
+ .force_redraw = NULL,
+ .config = NULL
+};
+
+const device_t kbc_xt_hyundai_device = {
+ .name = "Hyundai XT Keyboard Controller",
+ .internal_name = "kbc_xt_hyundai",
+ .flags = 0,
+ .local = KBD_TYPE_HYUNDAI,
+ .init = kbd_init,
+ .close = kbd_close,
+ .reset = kbd_reset,
+ .available = NULL,
+ .speed_changed = NULL,
+ .force_redraw = NULL,
+ .config = NULL
+};
+
+const device_t kbc_xt_fe2010_device = {
+ .name = "Faraday FE2010 XT Keyboard Controller",
+ .internal_name = "kbc_xt_fe2010",
+ .flags = 0,
+ .local = KBD_TYPE_FE2010,
+ .init = kbd_init,
+ .close = kbd_close,
+ .reset = kbd_reset,
+ .available = NULL,
+ .speed_changed = NULL,
+ .force_redraw = NULL,
+ .config = NULL
+};
+
+const device_t kbc_xtclone_device = {
+ .name = "XT (Clone) Keyboard Controller",
+ .internal_name = "kbc_xtclone",
+ .flags = 0,
+ .local = KBD_TYPE_XTCLONE,
+ .init = kbd_init,
+ .close = kbd_close,
+ .reset = kbd_reset,
+ .available = NULL,
+ .speed_changed = NULL,
+ .force_redraw = NULL,
+ .config = NULL
+};
diff --git a/src/device/keyboard.c b/src/device/keyboard.c
index 16904fe3b..02fbf0179 100644
--- a/src/device/keyboard.c
+++ b/src/device/keyboard.c
@@ -27,6 +27,7 @@
#define HAVE_STDARG_H
#include <86box/86box.h>
#include <86box/machine.h>
+#include <86box/device.h>
#include <86box/keyboard.h>
#include <86box/plat.h>
@@ -36,6 +37,38 @@ uint16_t scancode_map[768] = { 0 };
int keyboard_scan;
+typedef struct keyboard_t {
+ const device_t *device;
+} keyboard_t;
+
+int keyboard_type = 0;
+
+static const device_t keyboard_internal_device = {
+ .name = "Internal",
+ .internal_name = "internal",
+ .flags = 0,
+ .local = KEYBOARD_TYPE_INTERNAL,
+ .init = NULL,
+ .close = NULL,
+ .reset = NULL,
+ .available = NULL,
+ .speed_changed = NULL,
+ .force_redraw = NULL,
+ .config = NULL
+};
+
+static keyboard_t keyboard_devices[] = {
+ // clang-format off
+ { &keyboard_internal_device },
+ { &keyboard_pc_xt_device },
+ { &keyboard_at_device },
+ { &keyboard_ax_device },
+ { &keyboard_ps2_device },
+ { &keyboard_ps55_device },
+ { NULL }
+ // clang-format on
+};
+
#ifdef ENABLE_KBC_AT_LOG
int kbc_at_do_log = ENABLE_KBC_AT_LOG;
@@ -516,3 +549,58 @@ convert_scan_code(uint16_t scan_code)
return scan_code;
}
+
+const char *
+keyboard_get_name(int keyboard)
+{
+ return (keyboard_devices[keyboard].device->name);
+}
+
+const char *
+keyboard_get_internal_name(int keyboard)
+{
+ return device_get_internal_name(keyboard_devices[keyboard].device);
+}
+
+int
+keyboard_get_from_internal_name(char *s)
+{
+ int c = 0;
+
+ while (keyboard_devices[c].device != NULL) {
+ if (!strcmp((char *) keyboard_devices[c].device->internal_name, s))
+ return c;
+ c++;
+ }
+
+ return 0;
+}
+
+int
+keyboard_has_config(int keyboard)
+{
+ if (keyboard_devices[keyboard].device == NULL)
+ return 0;
+
+ return (keyboard_devices[keyboard].device->config ? 1 : 0);
+}
+
+const device_t *
+keyboard_get_device(int keyboard)
+{
+ return (keyboard_devices[keyboard].device);
+}
+
+/* Return number of MOUSE types we know about. */
+int
+keyboard_get_ndev(void)
+{
+ return ((sizeof(keyboard_devices) / sizeof(keyboard_t)) - 1);
+}
+
+void
+keyboard_add_device(void)
+{
+ pclog("keyboard_type = %i (%s)\n", keyboard_type, keyboard_get_internal_name(keyboard_type));
+ device_add(keyboard_devices[keyboard_type].device);
+}
diff --git a/src/device/keyboard_at.c b/src/device/keyboard_at.c
index 7fa2b9706..9696956b1 100644
--- a/src/device/keyboard_at.c
+++ b/src/device/keyboard_at.c
@@ -27,41 +27,37 @@
#include <86box/mouse.h>
#include <86box/machine.h>
-#define FLAG_PS2 0x08 /* dev is AT or PS/2 */
-#define FLAG_AT 0x00 /* dev is AT or PS/2 */
-#define FLAG_TYPE_MASK 0x07 /* mask for type */
-
#define FIFO_SIZE 16
#define BAT_COUNT 1000
-enum {
- KBD_84_KEY = 0,
- KBD_101_KEY,
- KBD_102_KEY,
- KBD_JIS,
- KBD_KOREAN
-};
-
#define FLAG_ENABLED 0x10 /* dev is enabled for use */
#define FLAG_CTRLDAT 0x08 /* ctrl or data mode */
-const uint8_t id_bytes[16][4] = { { 0x00, 0x00, 0x00, 0x00 }, /* AT 84-key */
- { 0x00, 0x00, 0x00, 0x00 }, /* AT 101/102/106-key */
+const uint8_t id_bytes[24][4] = { { 0x00, 0x00, 0x00, 0x00 }, /* XT 83-key */
+ { 0x00, 0x00, 0x00, 0x00 }, /* AT 84-key */
+ { 0x00, 0x00, 0x00, 0x00 }, /* XT/AT 101/102/106-key */
{ 0x00, 0x00, 0x00, 0x00 },
{ 0x00, 0x00, 0x00, 0x00 },
- { 0x00, 0x00, 0x00, 0x00 }, /* AT Korean */
+ { 0x00, 0x00, 0x00, 0x00 }, /* AT KSC */
+ { 0x00, 0x00, 0x00, 0x00 }, /* AT ABNT2 */
+ { 0x00, 0x00, 0x00, 0x00 },
+ { 0x00, 0x00, 0x00, 0x00 }, /* FLAG_AX = 0x08 */
{ 0x00, 0x00, 0x00, 0x00 },
{ 0x00, 0x00, 0x00, 0x00 },
{ 0x00, 0x00, 0x00, 0x00 },
- { 0x00, 0x00, 0x00, 0x00 }, /* FLAG_PS2 = 0x08 */
+ { 0x00, 0x00, 0x00, 0x00 },
+ { 0x00, 0x00, 0x00, 0x00 },
+ { 0x00, 0x00, 0x00, 0x00 },
+ { 0x00, 0x00, 0x00, 0x00 },
+ { 0x00, 0x00, 0x00, 0x00 }, /* FLAG_PS2_KBD = 0x10 */
+ { 0x00, 0x00, 0x00, 0x00 },
{ 0xab, 0x83, 0x00, 0x00 }, /* PS/2 101-key */
{ 0xab, 0x83, 0x00, 0x00 }, /* PS/2 102-key */
{ 0xab, 0x90, 0x00, 0x00 }, /* PS/55 106-key JIS (IBM-J 5576-002) */
/* Japanese keyboard ID - TODO: Find the actual Korean one. */
- { 0xab, 0x90, 0x00, 0x00 }, /* PS/2 Korean */
- { 0x00, 0x00, 0x00, 0x00 },
- { 0x00, 0x00, 0x00, 0x00 },
+ { 0xab, 0x90, 0x00, 0x00 }, /* PS/2 KSC */
+ { 0xab, 0x83, 0x00, 0x00 }, /* PS/2 ABNT2 */
{ 0x00, 0x00, 0x00, 0x00 } };
/* Global keyboard flags for scan code set 3:
@@ -78,9 +74,2079 @@ static atkbc_dev_t *SavedKbd = NULL;
static uint8_t inv_cmd_response = 0xfa;
+static int is_special = 0;
+
static uint16_t bat_counter = 0;
-static const scancode scancode_set1[512] = {
+const scancode scancode_set1_at[512] = {
+ // clang-format off
+ { .mk = { 0 }, .brk = { 0 } }, /* 000 */
+ { .mk = { 0x01, 0 }, .brk = { 0x81, 0 } }, /* 001 */
+ { .mk = { 0x02, 0 }, .brk = { 0x82, 0 } }, /* 002 */
+ { .mk = { 0x03, 0 }, .brk = { 0x83, 0 } }, /* 003 */
+ { .mk = { 0x04, 0 }, .brk = { 0x84, 0 } }, /* 004 */
+ { .mk = { 0x05, 0 }, .brk = { 0x85, 0 } }, /* 005 */
+ { .mk = { 0x06, 0 }, .brk = { 0x86, 0 } }, /* 006 */
+ { .mk = { 0x07, 0 }, .brk = { 0x87, 0 } }, /* 007 */
+ { .mk = { 0x08, 0 }, .brk = { 0x88, 0 } }, /* 008 */
+ { .mk = { 0x09, 0 }, .brk = { 0x89, 0 } }, /* 009 */
+ { .mk = { 0x0a, 0 }, .brk = { 0x8a, 0 } }, /* 00a */
+ { .mk = { 0x0b, 0 }, .brk = { 0x8b, 0 } }, /* 00b */
+ { .mk = { 0x0c, 0 }, .brk = { 0x8c, 0 } }, /* 00c */
+ { .mk = { 0x0d, 0 }, .brk = { 0x8d, 0 } }, /* 00d */
+ { .mk = { 0x0e, 0 }, .brk = { 0x8e, 0 } }, /* 00e */
+ { .mk = { 0x0f, 0 }, .brk = { 0x8f, 0 } }, /* 00f */
+ { .mk = { 0x10, 0 }, .brk = { 0x90, 0 } }, /* 010 */
+ { .mk = { 0x11, 0 }, .brk = { 0x91, 0 } }, /* 011 */
+ { .mk = { 0x12, 0 }, .brk = { 0x92, 0 } }, /* 012 */
+ { .mk = { 0x13, 0 }, .brk = { 0x93, 0 } }, /* 013 */
+ { .mk = { 0x14, 0 }, .brk = { 0x94, 0 } }, /* 014 */
+ { .mk = { 0x15, 0 }, .brk = { 0x95, 0 } }, /* 015 */
+ { .mk = { 0x16, 0 }, .brk = { 0x96, 0 } }, /* 016 */
+ { .mk = { 0x17, 0 }, .brk = { 0x97, 0 } }, /* 017 */
+ { .mk = { 0x18, 0 }, .brk = { 0x98, 0 } }, /* 018 */
+ { .mk = { 0x19, 0 }, .brk = { 0x99, 0 } }, /* 019 */
+ { .mk = { 0x1a, 0 }, .brk = { 0x9a, 0 } }, /* 01a */
+ { .mk = { 0x1b, 0 }, .brk = { 0x9b, 0 } }, /* 01b */
+ { .mk = { 0x1c, 0 }, .brk = { 0x9c, 0 } }, /* 01c */
+ { .mk = { 0x1d, 0 }, .brk = { 0x9d, 0 } }, /* 01d */
+ { .mk = { 0x1e, 0 }, .brk = { 0x9e, 0 } }, /* 01e */
+ { .mk = { 0x1f, 0 }, .brk = { 0x9f, 0 } }, /* 01f */
+ { .mk = { 0x20, 0 }, .brk = { 0xa0, 0 } }, /* 020 */
+ { .mk = { 0x21, 0 }, .brk = { 0xa1, 0 } }, /* 021 */
+ { .mk = { 0x22, 0 }, .brk = { 0xa2, 0 } }, /* 022 */
+ { .mk = { 0x23, 0 }, .brk = { 0xa3, 0 } }, /* 023 */
+ { .mk = { 0x24, 0 }, .brk = { 0xa4, 0 } }, /* 024 */
+ { .mk = { 0x25, 0 }, .brk = { 0xa5, 0 } }, /* 025 */
+ { .mk = { 0x26, 0 }, .brk = { 0xa6, 0 } }, /* 026 */
+ { .mk = { 0x27, 0 }, .brk = { 0xa7, 0 } }, /* 027 */
+ { .mk = { 0x28, 0 }, .brk = { 0xa8, 0 } }, /* 028 */
+ { .mk = { 0x29, 0 }, .brk = { 0xa9, 0 } }, /* 029 */
+ { .mk = { 0x2a, 0 }, .brk = { 0xaa, 0 } }, /* 02a */
+ { .mk = { 0x2b, 0 }, .brk = { 0xab, 0 } }, /* 02b */
+ { .mk = { 0x2c, 0 }, .brk = { 0xac, 0 } }, /* 02c */
+ { .mk = { 0x2d, 0 }, .brk = { 0xad, 0 } }, /* 02d */
+ { .mk = { 0x2e, 0 }, .brk = { 0xae, 0 } }, /* 02e */
+ { .mk = { 0x2f, 0 }, .brk = { 0xaf, 0 } }, /* 02f */
+ { .mk = { 0x30, 0 }, .brk = { 0xb0, 0 } }, /* 030 */
+ { .mk = { 0x31, 0 }, .brk = { 0xb1, 0 } }, /* 031 */
+ { .mk = { 0x32, 0 }, .brk = { 0xb2, 0 } }, /* 032 */
+ { .mk = { 0x33, 0 }, .brk = { 0xb3, 0 } }, /* 033 */
+ { .mk = { 0x34, 0 }, .brk = { 0xb4, 0 } }, /* 034 */
+ { .mk = { 0x35, 0 }, .brk = { 0xb5, 0 } }, /* 035 */
+ { .mk = { 0x36, 0 }, .brk = { 0xb6, 0 } }, /* 036 */
+ { .mk = { 0x37, 0 }, .brk = { 0xb7, 0 } }, /* 037 */
+ { .mk = { 0x38, 0 }, .brk = { 0xb8, 0 } }, /* 038 */
+ { .mk = { 0x39, 0 }, .brk = { 0xb9, 0 } }, /* 039 */
+ { .mk = { 0x3a, 0 }, .brk = { 0xba, 0 } }, /* 03a */
+ { .mk = { 0x3b, 0 }, .brk = { 0xbb, 0 } }, /* 03b */
+ { .mk = { 0x3c, 0 }, .brk = { 0xbc, 0 } }, /* 03c */
+ { .mk = { 0x3d, 0 }, .brk = { 0xbd, 0 } }, /* 03d */
+ { .mk = { 0x3e, 0 }, .brk = { 0xbe, 0 } }, /* 03e */
+ { .mk = { 0x3f, 0 }, .brk = { 0xbf, 0 } }, /* 03f */
+ { .mk = { 0x40, 0 }, .brk = { 0xc0, 0 } }, /* 040 */
+ { .mk = { 0x41, 0 }, .brk = { 0xc1, 0 } }, /* 041 */
+ { .mk = { 0x42, 0 }, .brk = { 0xc2, 0 } }, /* 042 */
+ { .mk = { 0x43, 0 }, .brk = { 0xc3, 0 } }, /* 043 */
+ { .mk = { 0x44, 0 }, .brk = { 0xc4, 0 } }, /* 044 */
+ { .mk = { 0x45, 0 }, .brk = { 0xc5, 0 } }, /* 045 */
+ { .mk = { 0x46, 0 }, .brk = { 0xc6, 0 } }, /* 046 */
+ { .mk = { 0x47, 0 }, .brk = { 0xc7, 0 } }, /* 047 */
+ { .mk = { 0x48, 0 }, .brk = { 0xc8, 0 } }, /* 048 */
+ { .mk = { 0x49, 0 }, .brk = { 0xc9, 0 } }, /* 049 */
+ { .mk = { 0x4a, 0 }, .brk = { 0xca, 0 } }, /* 04a */
+ { .mk = { 0x4b, 0 }, .brk = { 0xcb, 0 } }, /* 04b */
+ { .mk = { 0x4c, 0 }, .brk = { 0xcc, 0 } }, /* 04c */
+ { .mk = { 0x4d, 0 }, .brk = { 0xcd, 0 } }, /* 04d */
+ { .mk = { 0x4e, 0 }, .brk = { 0xce, 0 } }, /* 04e */
+ { .mk = { 0x4f, 0 }, .brk = { 0xcf, 0 } }, /* 04f */
+ { .mk = { 0x50, 0 }, .brk = { 0xd0, 0 } }, /* 050 */
+ { .mk = { 0x51, 0 }, .brk = { 0xd1, 0 } }, /* 051 */
+ { .mk = { 0x52, 0 }, .brk = { 0xd2, 0 } }, /* 052 */
+ { .mk = { 0x53, 0 }, .brk = { 0xd3, 0 } }, /* 053 */
+ { .mk = { 0x54, 0 }, .brk = { 0xd4, 0 } }, /* 054 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 055 */
+ { .mk = { 0x56, 0 }, .brk = { 0xd6, 0 } }, /* 054 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 057 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 058 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 059 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 05a */
+ { .mk = { 0 }, .brk = { 0 } }, /* 05b */
+ { .mk = { 0x5c, 0 }, .brk = { 0xdc, 0 } }, /* 054 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 05d */
+ { .mk = { 0 }, .brk = { 0 } }, /* 05e */
+ { .mk = { 0 }, .brk = { 0 } }, /* 05f */
+ { .mk = { 0x60, 0 }, .brk = { 0xe0, 0 } }, /* 060 */
+ { .mk = { 0x61, 0 }, .brk = { 0xe1, 0 } }, /* 061 */
+ { .mk = { 0x62, 0 }, .brk = { 0xe2, 0 } }, /* 062 */
+ { .mk = { 0x63, 0 }, .brk = { 0xe3, 0 } }, /* 063 */
+ { .mk = { 0x64, 0 }, .brk = { 0xe4, 0 } }, /* 064 */
+ { .mk = { 0x65, 0 }, .brk = { 0xe5, 0 } }, /* 065 */
+ { .mk = { 0x66, 0 }, .brk = { 0xe6, 0 } }, /* 066 */
+ { .mk = { 0x67, 0 }, .brk = { 0xe7, 0 } }, /* 067 */
+ { .mk = { 0x68, 0 }, .brk = { 0xe8, 0 } }, /* 068 */
+ { .mk = { 0x69, 0 }, .brk = { 0xe9, 0 } }, /* 069 */
+ { .mk = { 0x6a, 0 }, .brk = { 0xea, 0 } }, /* 06a */
+ { .mk = { 0x6b, 0 }, .brk = { 0xeb, 0 } }, /* 06b */
+ { .mk = { 0x6c, 0 }, .brk = { 0xec, 0 } }, /* 06c */
+ { .mk = { 0x6d, 0 }, .brk = { 0xed, 0 } }, /* 06d */
+ { .mk = { 0x6e, 0 }, .brk = { 0xee, 0 } }, /* 06e */
+ { .mk = { 0x6f, 0 }, .brk = { 0xef, 0 } }, /* 06f */
+ { .mk = { 0x70, 0 }, .brk = { 0xf0, 0 } }, /* 070 */
+ { .mk = { 0x71, 0 }, .brk = { 0xf1, 0 } }, /* 071 */
+ { .mk = { 0x72, 0 }, .brk = { 0xf2, 0 } }, /* 072 */
+ { .mk = { 0x73, 0 }, .brk = { 0xf3, 0 } }, /* 073 */
+ { .mk = { 0x74, 0 }, .brk = { 0xf4, 0 } }, /* 074 */
+ { .mk = { 0x75, 0 }, .brk = { 0xf5, 0 } }, /* 075 */
+ { .mk = { 0x76, 0 }, .brk = { 0xf6, 0 } }, /* 076 */
+ { .mk = { 0x77, 0 }, .brk = { 0xf7, 0 } }, /* 077 */
+ { .mk = { 0x78, 0 }, .brk = { 0xf8, 0 } }, /* 078 */
+ { .mk = { 0x79, 0 }, .brk = { 0xf9, 0 } }, /* 079 */
+ { .mk = { 0x7a, 0 }, .brk = { 0xfa, 0 } }, /* 07a */
+ { .mk = { 0x7b, 0 }, .brk = { 0xfb, 0 } }, /* 07b */
+ { .mk = { 0x7c, 0 }, .brk = { 0xfc, 0 } }, /* 07c */
+ { .mk = { 0x7d, 0 }, .brk = { 0xfd, 0 } }, /* 07d */
+ { .mk = { 0x7e, 0 }, .brk = { 0xfe, 0 } }, /* 07e */
+ { .mk = { 0x7f, 0 }, .brk = { 0xff, 0 } }, /* 07f */
+ { .mk = { 0 }, .brk = { 0 } }, /* 080 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 081 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 082 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 083 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 084 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 085 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 086 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 087 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 088 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 089 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 08a */
+ { .mk = { 0 }, .brk = { 0 } }, /* 08b */
+ { .mk = { 0 }, .brk = { 0 } }, /* 08c */
+ { .mk = { 0 }, .brk = { 0 } }, /* 08d */
+ { .mk = { 0 }, .brk = { 0 } }, /* 08e */
+ { .mk = { 0 }, .brk = { 0 } }, /* 08f */
+ { .mk = { 0 }, .brk = { 0 } }, /* 090 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 091 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 092 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 093 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 094 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 095 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 096 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 097 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 098 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 099 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 09a */
+ { .mk = { 0 }, .brk = { 0 } }, /* 09b */
+ { .mk = { 0 }, .brk = { 0 } }, /* 09c */
+ { .mk = { 0 }, .brk = { 0 } }, /* 09d */
+ { .mk = { 0 }, .brk = { 0 } }, /* 09e */
+ { .mk = { 0 }, .brk = { 0 } }, /* 09f */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0a0 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0a1 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0a2 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0a3 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0a4 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0a5 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0a6 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0a7 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0a8 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0a9 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0aa */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0ab */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0ac */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0ad */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0ae */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0af */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0b0 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0b1 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0b2 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0b3 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0b4 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0b5 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0b6 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0b7 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0b8 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0b9 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0ba */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0bb */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0bc */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0bd */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0be */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0bf */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0c0 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0c1 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0c2 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0c3 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0c4 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0c5 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0c6 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0c7 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0c8 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0c9 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0ca */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0cb */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0cc */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0cd */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0ce */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0cf */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0d0 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0d1 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0d2 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0d3 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0d4 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0d5 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0d6 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0d7 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0d8 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0d9 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0da */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0db */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0dc */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0dd */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0de */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0df */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0e0 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0e1 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0e2 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0e3 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0e4 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0e5 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0e6 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0e7 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0e8 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0e9 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0ea */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0eb */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0ec */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0ed */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0ee */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0ef */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0f0 */
+ { .mk = { 0xf1, 0 }, .brk = { 0 } }, /* 0f1 */
+ { .mk = { 0xf2, 0 }, .brk = { 0 } }, /* 0f2 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0f3 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0f4 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0f5 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0f6 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0f7 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0f8 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0f9 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0fa */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0fb */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0fc */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0fd */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0fe */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0ff */
+ { .mk = { 0 }, .brk = { 0 } }, /* 100 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 101 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 102 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 103 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 104 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 105 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 106 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 107 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 108 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 109 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 10a */
+ { .mk = { 0 }, .brk = { 0 } }, /* 10b */
+ { .mk = { 0 }, .brk = { 0 } }, /* 10c */
+ { .mk = { 0 }, .brk = { 0 } }, /* 10d */
+ { .mk = { 0 }, .brk = { 0 } }, /* 10e */
+ { .mk = { 0 }, .brk = { 0 } }, /* 10f */
+ { .mk = { 0 }, .brk = { 0 } }, /* 110 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 111 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 112 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 113 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 114 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 115 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 116 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 117 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 118 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 119 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 11a */
+ { .mk = { 0 }, .brk = { 0 } }, /* 11b */
+ { .mk = { 0x1c, 0 }, .brk = { 0x9c, 0 } }, /* 11c */
+ { .mk = { 0x1d, 0 }, .brk = { 0x9d, 0 } }, /* 11d */
+ { .mk = { 0 }, .brk = { 0 } }, /* 11e */
+ { .mk = { 0 }, .brk = { 0 } }, /* 11f */
+ { .mk = { 0 }, .brk = { 0 } }, /* 120 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 121 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 122 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 123 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 124 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 125 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 126 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 127 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 128 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 129 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 12a */
+ { .mk = { 0 }, .brk = { 0 } }, /* 12b */
+ { .mk = { 0 }, .brk = { 0 } }, /* 12c */
+ { .mk = { 0 }, .brk = { 0 } }, /* 12d */
+ { .mk = { 0 }, .brk = { 0 } }, /* 12e */
+ { .mk = { 0 }, .brk = { 0 } }, /* 12f */
+ { .mk = { 0 }, .brk = { 0 } }, /* 130 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 131 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 132 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 133 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 134 */
+ { .mk = { 0x35, 0 }, .brk = { 0xb5, 0 } }, /* 135 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 136 */
+ { .mk = { 0x37, 0 }, .brk = { 0xb7, 0 } }, /* 137 */
+ { .mk = { 0x38, 0 }, .brk = { 0xb8, 0 } }, /* 138 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 139 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 13a */
+ { .mk = { 0 }, .brk = { 0 } }, /* 13b */
+ { .mk = { 0 }, .brk = { 0 } }, /* 13c */
+ { .mk = { 0 }, .brk = { 0 } }, /* 13d */
+ { .mk = { 0 }, .brk = { 0 } }, /* 13e */
+ { .mk = { 0 }, .brk = { 0 } }, /* 13f */
+ { .mk = { 0 }, .brk = { 0 } }, /* 140 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 141 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 142 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 143 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 144 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 145 */
+ { .mk = { 0x46, 0 }, .brk = { 0xc6, 0 } }, /* 146 */
+ { .mk = { 0x47, 0 }, .brk = { 0xc7, 0 } }, /* 147 */
+ { .mk = { 0x48, 0 }, .brk = { 0xc8, 0 } }, /* 148 */
+ { .mk = { 0x49, 0 }, .brk = { 0xc9, 0 } }, /* 149 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 14a */
+ { .mk = { 0x4b, 0 }, .brk = { 0xcb, 0 } }, /* 14b */
+ { .mk = { 0 }, .brk = { 0 } }, /* 14c */
+ { .mk = { 0x4d, 0 }, .brk = { 0xcd, 0 } }, /* 14d */
+ { .mk = { 0 }, .brk = { 0 } }, /* 14e */
+ { .mk = { 0x4f, 0 }, .brk = { 0xcf, 0 } }, /* 14f */
+ { .mk = { 0x50, 0 }, .brk = { 0xd0, 0 } }, /* 150 */
+ { .mk = { 0x51, 0 }, .brk = { 0xd1, 0 } }, /* 151 */
+ { .mk = { 0x52, 0 }, .brk = { 0xd2, 0 } }, /* 152 */
+ { .mk = { 0x53, 0 }, .brk = { 0xd3, 0 } }, /* 153 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 154 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 155 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 156 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 157 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 158 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 159 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 15a */
+ { .mk = { 0x56, 0 }, .brk = { 0xd6, 0 } }, /* 15b */
+ { .mk = { 0 }, .brk = { 0 } }, /* 15c */
+ { .mk = { 0 }, .brk = { 0 } }, /* 15d */
+ { .mk = { 0 }, .brk = { 0 } }, /* 15e */
+ { .mk = { 0 }, .brk = { 0 } }, /* 15f */
+ { .mk = { 0 }, .brk = { 0 } }, /* 160 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 161 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 162 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 163 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 164 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 165 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 166 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 167 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 168 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 169 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 16a */
+ { .mk = { 0 }, .brk = { 0 } }, /* 16b */
+ { .mk = { 0 }, .brk = { 0 } }, /* 16c */
+ { .mk = { 0 }, .brk = { 0 } }, /* 16d */
+ { .mk = { 0 }, .brk = { 0 } }, /* 16e */
+ { .mk = { 0 }, .brk = { 0 } }, /* 16f */
+ { .mk = { 0 }, .brk = { 0 } }, /* 170 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 171 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 172 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 173 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 174 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 175 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 176 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 177 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 178 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 179 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 17a */
+ { .mk = { 0 }, .brk = { 0 } }, /* 17b */
+ { .mk = { 0 }, .brk = { 0 } }, /* 17c */
+ { .mk = { 0 }, .brk = { 0 } }, /* 17d */
+ { .mk = { 0 }, .brk = { 0 } }, /* 17e */
+ { .mk = { 0 }, .brk = { 0 } }, /* 17f */
+ { .mk = { 0 }, .brk = { 0 } }, /* 180 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 181 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 182 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 183 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 184 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 185 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 186 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 187 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 188 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 189 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 18a */
+ { .mk = { 0 }, .brk = { 0 } }, /* 18b */
+ { .mk = { 0 }, .brk = { 0 } }, /* 18c */
+ { .mk = { 0 }, .brk = { 0 } }, /* 18d */
+ { .mk = { 0 }, .brk = { 0 } }, /* 18e */
+ { .mk = { 0 }, .brk = { 0 } }, /* 18f */
+ { .mk = { 0 }, .brk = { 0 } }, /* 190 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 191 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 192 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 193 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 194 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 195 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 196 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 197 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 198 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 199 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 19a */
+ { .mk = { 0 }, .brk = { 0 } }, /* 19b */
+ { .mk = { 0 }, .brk = { 0 } }, /* 19c */
+ { .mk = { 0 }, .brk = { 0 } }, /* 19d */
+ { .mk = { 0 }, .brk = { 0 } }, /* 19e */
+ { .mk = { 0 }, .brk = { 0 } }, /* 19f */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1a0 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1a1 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1a2 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1a3 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1a4 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1a5 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1a6 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1a7 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1a8 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1a9 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1aa */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1ab */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1ac */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1ad */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1ae */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1af */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1b0 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1b1 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1b2 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1b3 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1b4 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1b5 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1b6 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1b7 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1b8 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1b9 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1ba */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1bb */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1bc */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1bd */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1be */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1bf */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1c0 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1c1 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1c2 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1c3 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1c4 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1c5 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1c6 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1c7 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1c8 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1c9 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1ca */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1cb */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1cc */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1cd */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1ce */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1cf */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1d0 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1d1 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1d2 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1d3 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1d4 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1d5 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1d6 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1d7 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1d8 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1d9 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1da */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1db */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1dc */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1dd */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1de */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1df */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1e0 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1e1 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1e2 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1e3 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1e4 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1e5 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1e6 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1e7 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1e8 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1e9 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1ea */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1eb */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1ec */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1ed */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1ee */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1ef */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1f0 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1f1 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1f2 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1f3 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1f4 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1f5 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1f6 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1f7 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1f8 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1f9 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1fa */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1fb */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1fc */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1fd */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1fe */
+ { .mk = { 0 }, .brk = { 0 } } /* 1ff */
+ // clang-format on
+};
+
+const scancode scancode_set2_at[512] = {
+ // clang-format off
+ { .mk = { 0 }, .brk = { 0 } }, /* 000 */
+ { .mk = { 0x76, 0 }, .brk = { 0xF0, 0x76, 0 } }, /* 001 */
+ { .mk = { 0x16, 0 }, .brk = { 0xF0, 0x16, 0 } }, /* 002 */
+ { .mk = { 0x1E, 0 }, .brk = { 0xF0, 0x1E, 0 } }, /* 003 */
+ { .mk = { 0x26, 0 }, .brk = { 0xF0, 0x26, 0 } }, /* 004 */
+ { .mk = { 0x25, 0 }, .brk = { 0xF0, 0x25, 0 } }, /* 005 */
+ { .mk = { 0x2E, 0 }, .brk = { 0xF0, 0x2E, 0 } }, /* 006 */
+ { .mk = { 0x36, 0 }, .brk = { 0xF0, 0x36, 0 } }, /* 007 */
+ { .mk = { 0x3D, 0 }, .brk = { 0xF0, 0x3D, 0 } }, /* 008 */
+ { .mk = { 0x3E, 0 }, .brk = { 0xF0, 0x3E, 0 } }, /* 009 */
+ { .mk = { 0x46, 0 }, .brk = { 0xF0, 0x46, 0 } }, /* 00a */
+ { .mk = { 0x45, 0 }, .brk = { 0xF0, 0x45, 0 } }, /* 00b */
+ { .mk = { 0x4E, 0 }, .brk = { 0xF0, 0x4E, 0 } }, /* 00c */
+ { .mk = { 0x55, 0 }, .brk = { 0xF0, 0x55, 0 } }, /* 00d */
+ { .mk = { 0x66, 0 }, .brk = { 0xF0, 0x66, 0 } }, /* 00e */
+ { .mk = { 0x0D, 0 }, .brk = { 0xF0, 0x0D, 0 } }, /* 00f */
+ { .mk = { 0x15, 0 }, .brk = { 0xF0, 0x15, 0 } }, /* 010 */
+ { .mk = { 0x1D, 0 }, .brk = { 0xF0, 0x1D, 0 } }, /* 011 */
+ { .mk = { 0x24, 0 }, .brk = { 0xF0, 0x24, 0 } }, /* 012 */
+ { .mk = { 0x2D, 0 }, .brk = { 0xF0, 0x2D, 0 } }, /* 013 */
+ { .mk = { 0x2C, 0 }, .brk = { 0xF0, 0x2C, 0 } }, /* 014 */
+ { .mk = { 0x35, 0 }, .brk = { 0xF0, 0x35, 0 } }, /* 015 */
+ { .mk = { 0x3C, 0 }, .brk = { 0xF0, 0x3C, 0 } }, /* 016 */
+ { .mk = { 0x43, 0 }, .brk = { 0xF0, 0x43, 0 } }, /* 017 */
+ { .mk = { 0x44, 0 }, .brk = { 0xF0, 0x44, 0 } }, /* 018 */
+ { .mk = { 0x4D, 0 }, .brk = { 0xF0, 0x4D, 0 } }, /* 019 */
+ { .mk = { 0x54, 0 }, .brk = { 0xF0, 0x54, 0 } }, /* 01a */
+ { .mk = { 0x5B, 0 }, .brk = { 0xF0, 0x5B, 0 } }, /* 01b */
+ { .mk = { 0x5A, 0 }, .brk = { 0xF0, 0x5A, 0 } }, /* 01c */
+ { .mk = { 0x14, 0 }, .brk = { 0xF0, 0x14, 0 } }, /* 01d */
+ { .mk = { 0x1C, 0 }, .brk = { 0xF0, 0x1C, 0 } }, /* 01e */
+ { .mk = { 0x1B, 0 }, .brk = { 0xF0, 0x1B, 0 } }, /* 01f */
+ { .mk = { 0x23, 0 }, .brk = { 0xF0, 0x23, 0 } }, /* 020 */
+ { .mk = { 0x2B, 0 }, .brk = { 0xF0, 0x2B, 0 } }, /* 021 */
+ { .mk = { 0x34, 0 }, .brk = { 0xF0, 0x34, 0 } }, /* 022 */
+ { .mk = { 0x33, 0 }, .brk = { 0xF0, 0x33, 0 } }, /* 023 */
+ { .mk = { 0x3B, 0 }, .brk = { 0xF0, 0x3B, 0 } }, /* 024 */
+ { .mk = { 0x42, 0 }, .brk = { 0xF0, 0x42, 0 } }, /* 025 */
+ { .mk = { 0x4B, 0 }, .brk = { 0xF0, 0x4B, 0 } }, /* 026 */
+ { .mk = { 0x4C, 0 }, .brk = { 0xF0, 0x4C, 0 } }, /* 027 */
+ { .mk = { 0x52, 0 }, .brk = { 0xF0, 0x52, 0 } }, /* 028 */
+ { .mk = { 0x0E, 0 }, .brk = { 0xF0, 0x0E, 0 } }, /* 029 */
+ { .mk = { 0x12, 0 }, .brk = { 0xF0, 0x12, 0 } }, /* 02a */
+ { .mk = { 0x5D, 0 }, .brk = { 0xF0, 0x5D, 0 } }, /* 02b */
+ { .mk = { 0x1A, 0 }, .brk = { 0xF0, 0x1A, 0 } }, /* 02c */
+ { .mk = { 0x22, 0 }, .brk = { 0xF0, 0x22, 0 } }, /* 02d */
+ { .mk = { 0x21, 0 }, .brk = { 0xF0, 0x21, 0 } }, /* 02e */
+ { .mk = { 0x2A, 0 }, .brk = { 0xF0, 0x2A, 0 } }, /* 02f */
+ { .mk = { 0x32, 0 }, .brk = { 0xF0, 0x32, 0 } }, /* 030 */
+ { .mk = { 0x31, 0 }, .brk = { 0xF0, 0x31, 0 } }, /* 031 */
+ { .mk = { 0x3A, 0 }, .brk = { 0xF0, 0x3A, 0 } }, /* 032 */
+ { .mk = { 0x41, 0 }, .brk = { 0xF0, 0x41, 0 } }, /* 033 */
+ { .mk = { 0x49, 0 }, .brk = { 0xF0, 0x49, 0 } }, /* 034 */
+ { .mk = { 0x4A, 0 }, .brk = { 0xF0, 0x4A, 0 } }, /* 035 */
+ { .mk = { 0x59, 0 }, .brk = { 0xF0, 0x59, 0 } }, /* 036 */
+ { .mk = { 0x7C, 0 }, .brk = { 0xF0, 0x7C, 0 } }, /* 037 */
+ { .mk = { 0x11, 0 }, .brk = { 0xF0, 0x11, 0 } }, /* 038 */
+ { .mk = { 0x29, 0 }, .brk = { 0xF0, 0x29, 0 } }, /* 039 */
+ { .mk = { 0x58, 0 }, .brk = { 0xF0, 0x58, 0 } }, /* 03a */
+ { .mk = { 0x05, 0 }, .brk = { 0xF0, 0x05, 0 } }, /* 03b */
+ { .mk = { 0x06, 0 }, .brk = { 0xF0, 0x06, 0 } }, /* 03c */
+ { .mk = { 0x04, 0 }, .brk = { 0xF0, 0x04, 0 } }, /* 03d */
+ { .mk = { 0x0C, 0 }, .brk = { 0xF0, 0x0C, 0 } }, /* 03e */
+ { .mk = { 0x03, 0 }, .brk = { 0xF0, 0x03, 0 } }, /* 03f */
+ { .mk = { 0x0B, 0 }, .brk = { 0xF0, 0x0B, 0 } }, /* 040 */
+ { .mk = { 0x83, 0 }, .brk = { 0xF0, 0x83, 0 } }, /* 041 */
+ { .mk = { 0x0A, 0 }, .brk = { 0xF0, 0x0A, 0 } }, /* 042 */
+ { .mk = { 0x01, 0 }, .brk = { 0xF0, 0x01, 0 } }, /* 043 */
+ { .mk = { 0x09, 0 }, .brk = { 0xF0, 0x09, 0 } }, /* 044 */
+ { .mk = { 0x77, 0 }, .brk = { 0xF0, 0x77, 0 } }, /* 045 */
+ { .mk = { 0x7E, 0 }, .brk = { 0xF0, 0x7E, 0 } }, /* 046 */
+ { .mk = { 0x6C, 0 }, .brk = { 0xF0, 0x6C, 0 } }, /* 047 */
+ { .mk = { 0x75, 0 }, .brk = { 0xF0, 0x75, 0 } }, /* 048 */
+ { .mk = { 0x7D, 0 }, .brk = { 0xF0, 0x7D, 0 } }, /* 049 */
+ { .mk = { 0x7B, 0 }, .brk = { 0xF0, 0x7B, 0 } }, /* 04a */
+ { .mk = { 0x6B, 0 }, .brk = { 0xF0, 0x6B, 0 } }, /* 04b */
+ { .mk = { 0x73, 0 }, .brk = { 0xF0, 0x73, 0 } }, /* 04c */
+ { .mk = { 0x74, 0 }, .brk = { 0xF0, 0x74, 0 } }, /* 04d */
+ { .mk = { 0x79, 0 }, .brk = { 0xF0, 0x79, 0 } }, /* 04e */
+ { .mk = { 0x69, 0 }, .brk = { 0xF0, 0x69, 0 } }, /* 04f */
+ { .mk = { 0x72, 0 }, .brk = { 0xF0, 0x72, 0 } }, /* 050 */
+ { .mk = { 0x7A, 0 }, .brk = { 0xF0, 0x7A, 0 } }, /* 051 */
+ { .mk = { 0x70, 0 }, .brk = { 0xF0, 0x70, 0 } }, /* 052 */
+ { .mk = { 0x71, 0 }, .brk = { 0xF0, 0x71, 0 } }, /* 053 */
+ { .mk = { 0x84, 0 }, .brk = { 0xF0, 0x84, 0 } }, /* 054 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 055 */
+ { .mk = { 0x61, 0 }, .brk = { 0xF0, 0x61, 0 } }, /* 056 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 057 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 058 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 059 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 05a */
+ { .mk = { 0 }, .brk = { 0 } }, /* 05b */
+ { .mk = { 0x27, 0 }, .brk = { 0xF0, 0x27, 0 } }, /* 05c */
+ { .mk = { 0 }, .brk = { 0 } }, /* 05d */
+ { .mk = { 0 }, .brk = { 0 } }, /* 05e */
+ { .mk = { 0 }, .brk = { 0 } }, /* 05f */
+ { .mk = { 0x47, 0 }, .brk = { 0xF0, 0x47, 0 } }, /* 060 */
+ { .mk = { 0x4F, 0 }, .brk = { 0xF0, 0x4F, 0 } }, /* 061 */
+ { .mk = { 0x56, 0 }, .brk = { 0xF0, 0x56, 0 } }, /* 062 */
+ { .mk = { 0x5E, 0 }, .brk = { 0xF0, 0x5E, 0 } }, /* 063 */
+ { .mk = { 0x08, 0 }, .brk = { 0xF0, 0x08, 0 } }, /* 064 */
+ { .mk = { 0x10, 0 }, .brk = { 0xF0, 0x10, 0 } }, /* 065 */
+ { .mk = { 0x18, 0 }, .brk = { 0xF0, 0x18, 0 } }, /* 066 */
+ { .mk = { 0x20, 0 }, .brk = { 0xF0, 0x20, 0 } }, /* 067 */
+ { .mk = { 0x28, 0 }, .brk = { 0xF0, 0x28, 0 } }, /* 068 */
+ { .mk = { 0x30, 0 }, .brk = { 0xF0, 0x30, 0 } }, /* 069 */
+ { .mk = { 0x38, 0 }, .brk = { 0xF0, 0x38, 0 } }, /* 06a */
+ { .mk = { 0x40, 0 }, .brk = { 0xF0, 0x40, 0 } }, /* 06b */
+ { .mk = { 0x48, 0 }, .brk = { 0xF0, 0x48, 0 } }, /* 06c */
+ { .mk = { 0x50, 0 }, .brk = { 0xF0, 0x50, 0 } }, /* 06d */
+ { .mk = { 0x57, 0 }, .brk = { 0xF0, 0x57, 0 } }, /* 06e */
+ { .mk = { 0x6F, 0 }, .brk = { 0xF0, 0x6F, 0 } }, /* 06f */
+ { .mk = { 0x13, 0 }, .brk = { 0xF0, 0x13, 0 } }, /* 070 */
+ { .mk = { 0x19, 0 }, .brk = { 0xF0, 0x19, 0 } }, /* 071 */
+ { .mk = { 0x39, 0 }, .brk = { 0xF0, 0x39, 0 } }, /* 072 */
+ { .mk = { 0x51, 0 }, .brk = { 0xF0, 0x51, 0 } }, /* 073 */
+ { .mk = { 0x53, 0 }, .brk = { 0xF0, 0x53, 0 } }, /* 074 */
+ { .mk = { 0x5C, 0 }, .brk = { 0xF0, 0x5C, 0 } }, /* 075 */
+ { .mk = { 0x5F, 0 }, .brk = { 0xF0, 0x5F, 0 } }, /* 076 */
+ { .mk = { 0x62, 0 }, .brk = { 0xF0, 0x62, 0 } }, /* 077 */
+ { .mk = { 0x63, 0 }, .brk = { 0xF0, 0x63, 0 } }, /* 078 */
+ { .mk = { 0x64, 0 }, .brk = { 0xF0, 0x64, 0 } }, /* 079 */
+ { .mk = { 0x65, 0 }, .brk = { 0xF0, 0x65, 0 } }, /* 07a */
+ { .mk = { 0x67, 0 }, .brk = { 0xF0, 0x67, 0 } }, /* 07b */
+ { .mk = { 0x68, 0 }, .brk = { 0xF0, 0x68, 0 } }, /* 07c */
+ { .mk = { 0x6A, 0 }, .brk = { 0xF0, 0x6A, 0 } }, /* 07d */
+ { .mk = { 0x6D, 0 }, .brk = { 0xF0, 0x6D, 0 } }, /* 07e */
+ { .mk = { 0x6E, 0 }, .brk = { 0xF0, 0x6E, 0 } }, /* 07f */
+ { .mk = { 0 }, .brk = { 0 } }, /* 080 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 081 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 082 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 083 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 084 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 085 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 086 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 087 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 088 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 089 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 08a */
+ { .mk = { 0 }, .brk = { 0 } }, /* 08b */
+ { .mk = { 0 }, .brk = { 0 } }, /* 08c */
+ { .mk = { 0 }, .brk = { 0 } }, /* 08d */
+ { .mk = { 0 }, .brk = { 0 } }, /* 08e */
+ { .mk = { 0 }, .brk = { 0 } }, /* 08f */
+ { .mk = { 0 }, .brk = { 0 } }, /* 090 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 091 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 092 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 093 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 094 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 095 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 096 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 097 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 098 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 099 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 09a */
+ { .mk = { 0 }, .brk = { 0 } }, /* 09b */
+ { .mk = { 0 }, .brk = { 0 } }, /* 09c */
+ { .mk = { 0 }, .brk = { 0 } }, /* 09d */
+ { .mk = { 0 }, .brk = { 0 } }, /* 09e */
+ { .mk = { 0 }, .brk = { 0 } }, /* 09f */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0a0 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0a1 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0a2 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0a3 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0a4 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0a5 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0a6 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0a7 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0a8 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0a9 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0aa */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0ab */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0ac */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0ad */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0ae */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0af */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0b0 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0b1 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0b2 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0b3 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0b4 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0b5 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0b6 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0b7 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0b8 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0b9 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0ba */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0bb */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0bc */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0bd */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0be */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0bf */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0c0 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0c1 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0c2 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0c3 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0c4 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0c5 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0c6 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0c7 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0c8 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0c9 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0ca */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0cb */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0cc */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0cd */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0ce */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0cf */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0d0 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0d1 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0d2 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0d3 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0d4 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0d5 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0d6 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0d7 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0d8 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0d9 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0da */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0db */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0dc */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0dd */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0de */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0df */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0e0 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0e1 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0e2 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0e3 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0e4 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0e5 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0e6 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0e7 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0e8 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0e9 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0ea */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0eb */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0ec */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0ed */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0ee */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0ef */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0f0 */
+ { .mk = { 0xf1, 0 }, .brk = { 0xf0, 0xf1, 0 } }, /* 0f1 */
+ { .mk = { 0xf2, 0 }, .brk = { 0xf0, 0xf2, 0 } }, /* 0f2 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0f3 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0f4 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0f5 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0f6 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0f7 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0f8 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0f9 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0fa */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0fb */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0fc */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0fd */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0fe */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0ff */
+ { .mk = { 0 }, .brk = { 0 } }, /* 100 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 101 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 102 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 103 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 104 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 105 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 106 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 107 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 108 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 109 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 10a */
+ { .mk = { 0 }, .brk = { 0 } }, /* 10b */
+ { .mk = { 0 }, .brk = { 0 } }, /* 10c */
+ { .mk = { 0 }, .brk = { 0 } }, /* 10d */
+ { .mk = { 0 }, .brk = { 0 } }, /* 10e */
+ { .mk = { 0 }, .brk = { 0 } }, /* 10f */
+ { .mk = { 0 }, .brk = { 0 } }, /* 110 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 111 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 112 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 113 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 114 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 115 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 116 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 117 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 118 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 119 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 11a */
+ { .mk = { 0 }, .brk = { 0 } }, /* 11b */
+ { .mk = { 0x5A, 0 }, .brk = { 0xF0, 0x5A, 0 } }, /* 11c */
+ { .mk = { 0x14, 0 }, .brk = { 0xF0, 0x14, 0 } }, /* 11d */
+ { .mk = { 0 }, .brk = { 0 } }, /* 11e */
+ { .mk = { 0 }, .brk = { 0 } }, /* 11f */
+ { .mk = { 0 }, .brk = { 0 } }, /* 120 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 121 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 122 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 123 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 124 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 125 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 126 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 127 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 128 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 129 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 12a */
+ { .mk = { 0 }, .brk = { 0 } }, /* 12b */
+ { .mk = { 0 }, .brk = { 0 } }, /* 12c */
+ { .mk = { 0 }, .brk = { 0 } }, /* 12d */
+ { .mk = { 0 }, .brk = { 0 } }, /* 12e */
+ { .mk = { 0 }, .brk = { 0 } }, /* 12f */
+ { .mk = { 0 }, .brk = { 0 } }, /* 130 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 131 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 132 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 133 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 134 */
+ { .mk = { 0x4A, 0 }, .brk = { 0xF0, 0x4A, 0 } }, /* 135 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 136 */
+ { .mk = { 0x7C, 0 }, .brk = { 0xF0, 0x7C, 0 } }, /* 137 */
+ { .mk = { 0x11, 0 }, .brk = { 0xF0, 0x11, 0 } }, /* 138 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 139 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 13a */
+ { .mk = { 0 }, .brk = { 0 } }, /* 13b */
+ { .mk = { 0 }, .brk = { 0 } }, /* 13c */
+ { .mk = { 0 }, .brk = { 0 } }, /* 13d */
+ { .mk = { 0 }, .brk = { 0 } }, /* 13e */
+ { .mk = { 0 }, .brk = { 0 } }, /* 13f */
+ { .mk = { 0 }, .brk = { 0 } }, /* 140 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 141 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 142 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 143 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 144 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 145 */
+ { .mk = { 0x7E, 0 }, .brk = { 0xF0, 0x7E, 0 } }, /* 146 */
+ { .mk = { 0x6C, 0 }, .brk = { 0xF0, 0x6C, 0 } }, /* 147 */
+ { .mk = { 0x75, 0 }, .brk = { 0xF0, 0x75, 0 } }, /* 148 */
+ { .mk = { 0x7D, 0 }, .brk = { 0xF0, 0x7D, 0 } }, /* 149 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 14a */
+ { .mk = { 0x6B, 0 }, .brk = { 0xF0, 0x6B, 0 } }, /* 14b */
+ { .mk = { 0 }, .brk = { 0 } }, /* 14c */
+ { .mk = { 0x74, 0 }, .brk = { 0xF0, 0x74, 0 } }, /* 14d */
+ { .mk = { 0 }, .brk = { 0 } }, /* 14e */
+ { .mk = { 0x69, 0 }, .brk = { 0xF0, 0x69, 0 } }, /* 14f */
+ { .mk = { 0x72, 0 }, .brk = { 0xF0, 0x72, 0 } }, /* 150 */
+ { .mk = { 0x7A, 0 }, .brk = { 0xF0, 0x7A, 0 } }, /* 151 */
+ { .mk = { 0x70, 0 }, .brk = { 0xF0, 0x70, 0 } }, /* 152 */
+ { .mk = { 0x71, 0 }, .brk = { 0xF0, 0x71, 0 } }, /* 153 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 154 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 155 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 156 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 157 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 158 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 159 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 15a */
+ { .mk = { 0x61, 0 }, .brk = { 0xF0, 0x61, 0 } }, /* 15b */
+ { .mk = { 0 }, .brk = { 0 } }, /* 15c */
+ { .mk = { 0 }, .brk = { 0 } }, /* 15d */
+ { .mk = { 0 }, .brk = { 0 } }, /* 15e */
+ { .mk = { 0 }, .brk = { 0 } }, /* 15f */
+ { .mk = { 0 }, .brk = { 0 } }, /* 160 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 161 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 162 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 163 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 164 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 165 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 166 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 167 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 168 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 169 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 16a */
+ { .mk = { 0 }, .brk = { 0 } }, /* 16b */
+ { .mk = { 0 }, .brk = { 0 } }, /* 16c */
+ { .mk = { 0 }, .brk = { 0 } }, /* 16d */
+ { .mk = { 0 }, .brk = { 0 } }, /* 16e */
+ { .mk = { 0 }, .brk = { 0 } }, /* 16f */
+ { .mk = { 0 }, .brk = { 0 } }, /* 170 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 171 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 172 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 173 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 174 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 175 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 176 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 177 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 178 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 179 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 17a */
+ { .mk = { 0 }, .brk = { 0 } }, /* 17b */
+ { .mk = { 0 }, .brk = { 0 } }, /* 17c */
+ { .mk = { 0 }, .brk = { 0 } }, /* 17d */
+ { .mk = { 0 }, .brk = { 0 } }, /* 17e */
+ { .mk = { 0 }, .brk = { 0 } }, /* 17f */
+ { .mk = { 0 }, .brk = { 0 } }, /* 180 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 181 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 182 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 183 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 184 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 185 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 186 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 187 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 188 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 189 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 18a */
+ { .mk = { 0 }, .brk = { 0 } }, /* 18b */
+ { .mk = { 0 }, .brk = { 0 } }, /* 18c */
+ { .mk = { 0 }, .brk = { 0 } }, /* 18d */
+ { .mk = { 0 }, .brk = { 0 } }, /* 18e */
+ { .mk = { 0 }, .brk = { 0 } }, /* 18f */
+ { .mk = { 0 }, .brk = { 0 } }, /* 190 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 191 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 192 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 193 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 194 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 195 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 196 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 197 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 198 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 199 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 19a */
+ { .mk = { 0 }, .brk = { 0 } }, /* 19b */
+ { .mk = { 0 }, .brk = { 0 } }, /* 19c */
+ { .mk = { 0 }, .brk = { 0 } }, /* 19d */
+ { .mk = { 0 }, .brk = { 0 } }, /* 19e */
+ { .mk = { 0 }, .brk = { 0 } }, /* 19f */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1a0 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1a1 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1a2 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1a3 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1a4 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1a5 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1a6 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1a7 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1a8 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1a9 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1aa */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1ab */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1ac */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1ad */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1ae */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1af */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1b0 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1b1 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1b2 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1b3 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1b4 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1b5 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1b6 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1b7 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1b8 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1b9 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1ba */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1bb */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1bc */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1bd */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1be */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1bf */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1c0 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1c1 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1c2 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1c3 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1c4 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1c5 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1c6 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1c7 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1c8 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1c9 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1ca */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1cb */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1cc */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1cd */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1ce */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1cf */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1d0 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1d1 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1d2 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1d3 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1d4 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1d5 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1d6 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1d7 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1d8 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1d9 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1da */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1db */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1dc */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1dd */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1de */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1df */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1e0 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1e1 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1e2 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1e3 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1e4 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1e5 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1e6 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1e7 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1e8 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1e9 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1ea */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1eb */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1ec */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1ed */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1ee */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1ef */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1f0 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1f1 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1f2 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1f3 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1f4 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1f5 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1f6 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1f7 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1f8 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1f9 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1fa */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1fb */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1fc */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1fd */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1fe */
+ { .mk = { 0 }, .brk = { 0 } } /* 1ff */
+ // clang-format on
+};
+
+const scancode scancode_set1_ax[512] = {
+ // clang-format off
+ { .mk = { 0 }, .brk = { 0 } }, /* 000 */
+ { .mk = { 0x01, 0 }, .brk = { 0x81, 0 } }, /* 001 */
+ { .mk = { 0x02, 0 }, .brk = { 0x82, 0 } }, /* 002 */
+ { .mk = { 0x03, 0 }, .brk = { 0x83, 0 } }, /* 003 */
+ { .mk = { 0x04, 0 }, .brk = { 0x84, 0 } }, /* 004 */
+ { .mk = { 0x05, 0 }, .brk = { 0x85, 0 } }, /* 005 */
+ { .mk = { 0x06, 0 }, .brk = { 0x86, 0 } }, /* 006 */
+ { .mk = { 0x07, 0 }, .brk = { 0x87, 0 } }, /* 007 */
+ { .mk = { 0x08, 0 }, .brk = { 0x88, 0 } }, /* 008 */
+ { .mk = { 0x09, 0 }, .brk = { 0x89, 0 } }, /* 009 */
+ { .mk = { 0x0a, 0 }, .brk = { 0x8a, 0 } }, /* 00a */
+ { .mk = { 0x0b, 0 }, .brk = { 0x8b, 0 } }, /* 00b */
+ { .mk = { 0x0c, 0 }, .brk = { 0x8c, 0 } }, /* 00c */
+ { .mk = { 0x0d, 0 }, .brk = { 0x8d, 0 } }, /* 00d */
+ { .mk = { 0x0e, 0 }, .brk = { 0x8e, 0 } }, /* 00e */
+ { .mk = { 0x0f, 0 }, .brk = { 0x8f, 0 } }, /* 00f */
+ { .mk = { 0x10, 0 }, .brk = { 0x90, 0 } }, /* 010 */
+ { .mk = { 0x11, 0 }, .brk = { 0x91, 0 } }, /* 011 */
+ { .mk = { 0x12, 0 }, .brk = { 0x92, 0 } }, /* 012 */
+ { .mk = { 0x13, 0 }, .brk = { 0x93, 0 } }, /* 013 */
+ { .mk = { 0x14, 0 }, .brk = { 0x94, 0 } }, /* 014 */
+ { .mk = { 0x15, 0 }, .brk = { 0x95, 0 } }, /* 015 */
+ { .mk = { 0x16, 0 }, .brk = { 0x96, 0 } }, /* 016 */
+ { .mk = { 0x17, 0 }, .brk = { 0x97, 0 } }, /* 017 */
+ { .mk = { 0x18, 0 }, .brk = { 0x98, 0 } }, /* 018 */
+ { .mk = { 0x19, 0 }, .brk = { 0x99, 0 } }, /* 019 */
+ { .mk = { 0x1a, 0 }, .brk = { 0x9a, 0 } }, /* 01a */
+ { .mk = { 0x1b, 0 }, .brk = { 0x9b, 0 } }, /* 01b */
+ { .mk = { 0x1c, 0 }, .brk = { 0x9c, 0 } }, /* 01c */
+ { .mk = { 0x1d, 0 }, .brk = { 0x9d, 0 } }, /* 01d */
+ { .mk = { 0x1e, 0 }, .brk = { 0x9e, 0 } }, /* 01e */
+ { .mk = { 0x1f, 0 }, .brk = { 0x9f, 0 } }, /* 01f */
+ { .mk = { 0x20, 0 }, .brk = { 0xa0, 0 } }, /* 020 */
+ { .mk = { 0x21, 0 }, .brk = { 0xa1, 0 } }, /* 021 */
+ { .mk = { 0x22, 0 }, .brk = { 0xa2, 0 } }, /* 022 */
+ { .mk = { 0x23, 0 }, .brk = { 0xa3, 0 } }, /* 023 */
+ { .mk = { 0x24, 0 }, .brk = { 0xa4, 0 } }, /* 024 */
+ { .mk = { 0x25, 0 }, .brk = { 0xa5, 0 } }, /* 025 */
+ { .mk = { 0x26, 0 }, .brk = { 0xa6, 0 } }, /* 026 */
+ { .mk = { 0x27, 0 }, .brk = { 0xa7, 0 } }, /* 027 */
+ { .mk = { 0x28, 0 }, .brk = { 0xa8, 0 } }, /* 028 */
+ { .mk = { 0x2b, 0 }, .brk = { 0xab, 0 } }, /* 029 */
+ { .mk = { 0x2a, 0 }, .brk = { 0xaa, 0 } }, /* 02a */
+ { .mk = { 0x29, 0 }, .brk = { 0xa9, 0 } }, /* 02b */
+ { .mk = { 0x2c, 0 }, .brk = { 0xac, 0 } }, /* 02c */
+ { .mk = { 0x2d, 0 }, .brk = { 0xad, 0 } }, /* 02d */
+ { .mk = { 0x2e, 0 }, .brk = { 0xae, 0 } }, /* 02e */
+ { .mk = { 0x2f, 0 }, .brk = { 0xaf, 0 } }, /* 02f */
+ { .mk = { 0x30, 0 }, .brk = { 0xb0, 0 } }, /* 030 */
+ { .mk = { 0x31, 0 }, .brk = { 0xb1, 0 } }, /* 031 */
+ { .mk = { 0x32, 0 }, .brk = { 0xb2, 0 } }, /* 032 */
+ { .mk = { 0x33, 0 }, .brk = { 0xb3, 0 } }, /* 033 */
+ { .mk = { 0x34, 0 }, .brk = { 0xb4, 0 } }, /* 034 */
+ { .mk = { 0x35, 0 }, .brk = { 0xb5, 0 } }, /* 035 */
+ { .mk = { 0x36, 0 }, .brk = { 0xb6, 0 } }, /* 036 */
+ { .mk = { 0x37, 0 }, .brk = { 0xb7, 0 } }, /* 037 */
+ { .mk = { 0x38, 0 }, .brk = { 0xb8, 0 } }, /* 038 */
+ { .mk = { 0x39, 0 }, .brk = { 0xb9, 0 } }, /* 039 */
+ { .mk = { 0x3a, 0 }, .brk = { 0xba, 0 } }, /* 03a */
+ { .mk = { 0x3b, 0 }, .brk = { 0xbb, 0 } }, /* 03b */
+ { .mk = { 0x3c, 0 }, .brk = { 0xbc, 0 } }, /* 03c */
+ { .mk = { 0x3d, 0 }, .brk = { 0xbd, 0 } }, /* 03d */
+ { .mk = { 0x3e, 0 }, .brk = { 0xbe, 0 } }, /* 03e */
+ { .mk = { 0x3f, 0 }, .brk = { 0xbf, 0 } }, /* 03f */
+ { .mk = { 0x40, 0 }, .brk = { 0xc0, 0 } }, /* 040 */
+ { .mk = { 0x41, 0 }, .brk = { 0xc1, 0 } }, /* 041 */
+ { .mk = { 0x42, 0 }, .brk = { 0xc2, 0 } }, /* 042 */
+ { .mk = { 0x43, 0 }, .brk = { 0xc3, 0 } }, /* 043 */
+ { .mk = { 0x44, 0 }, .brk = { 0xc4, 0 } }, /* 044 */
+ { .mk = { 0x45, 0 }, .brk = { 0xc5, 0 } }, /* 045 */
+ { .mk = { 0x46, 0 }, .brk = { 0xc6, 0 } }, /* 046 */
+ { .mk = { 0x47, 0 }, .brk = { 0xc7, 0 } }, /* 047 */
+ { .mk = { 0x48, 0 }, .brk = { 0xc8, 0 } }, /* 048 */
+ { .mk = { 0x49, 0 }, .brk = { 0xc9, 0 } }, /* 049 */
+ { .mk = { 0x4a, 0 }, .brk = { 0xca, 0 } }, /* 04a */
+ { .mk = { 0x4b, 0 }, .brk = { 0xcb, 0 } }, /* 04b */
+ { .mk = { 0x4c, 0 }, .brk = { 0xcc, 0 } }, /* 04c */
+ { .mk = { 0x4d, 0 }, .brk = { 0xcd, 0 } }, /* 04d */
+ { .mk = { 0x4e, 0 }, .brk = { 0xce, 0 } }, /* 04e */
+ { .mk = { 0x4f, 0 }, .brk = { 0xcf, 0 } }, /* 04f */
+ { .mk = { 0x50, 0 }, .brk = { 0xd0, 0 } }, /* 050 */
+ { .mk = { 0x51, 0 }, .brk = { 0xd1, 0 } }, /* 051 */
+ { .mk = { 0x52, 0 }, .brk = { 0xd2, 0 } }, /* 052 */
+ { .mk = { 0x53, 0 }, .brk = { 0xd3, 0 } }, /* 053 */
+ { .mk = { 0x54, 0 }, .brk = { 0xd4, 0 } }, /* 054 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 055 */
+ { .mk = { 0x56, 0 }, .brk = { 0xd6, 0 } }, /* 054 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 057 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 058 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 059 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 05a */
+ { .mk = { 0 }, .brk = { 0 } }, /* 05b */
+ { .mk = { 0x5c, 0 }, .brk = { 0xdc, 0 } }, /* 05c */
+ { .mk = { 0 }, .brk = { 0 } }, /* 05d */
+ { .mk = { 0 }, .brk = { 0 } }, /* 05e */
+ { .mk = { 0 }, .brk = { 0 } }, /* 05f */
+ { .mk = { 0x60, 0 }, .brk = { 0xe0, 0 } }, /* 060 */
+ { .mk = { 0x61, 0 }, .brk = { 0xe1, 0 } }, /* 061 */
+ { .mk = { 0x62, 0 }, .brk = { 0xe2, 0 } }, /* 062 */
+ { .mk = { 0x63, 0 }, .brk = { 0xe3, 0 } }, /* 063 */
+ { .mk = { 0x64, 0 }, .brk = { 0xe4, 0 } }, /* 064 */
+ { .mk = { 0x65, 0 }, .brk = { 0xe5, 0 } }, /* 065 */
+ { .mk = { 0x66, 0 }, .brk = { 0xe6, 0 } }, /* 066 */
+ { .mk = { 0x67, 0 }, .brk = { 0xe7, 0 } }, /* 067 */
+ { .mk = { 0x68, 0 }, .brk = { 0xe8, 0 } }, /* 068 */
+ { .mk = { 0x69, 0 }, .brk = { 0xe9, 0 } }, /* 069 */
+ { .mk = { 0x6a, 0 }, .brk = { 0xea, 0 } }, /* 06a */
+ { .mk = { 0x6b, 0 }, .brk = { 0xeb, 0 } }, /* 06b */
+ { .mk = { 0x6c, 0 }, .brk = { 0xec, 0 } }, /* 06c */
+ { .mk = { 0x6d, 0 }, .brk = { 0xed, 0 } }, /* 06d */
+ { .mk = { 0x6e, 0 }, .brk = { 0xee, 0 } }, /* 06e */
+ { .mk = { 0x6f, 0 }, .brk = { 0xef, 0 } }, /* 06f */
+ { .mk = { 0x70, 0 }, .brk = { 0xf0, 0 } }, /* 070 */
+ { .mk = { 0x71, 0 }, .brk = { 0xf1, 0 } }, /* 071 */
+ { .mk = { 0x72, 0 }, .brk = { 0xf2, 0 } }, /* 072 */
+ { .mk = { 0x56, 0 }, .brk = { 0xd6, 0 } }, /* 054 */
+ { .mk = { 0x74, 0 }, .brk = { 0xf4, 0 } }, /* 074 */
+ { .mk = { 0x75, 0 }, .brk = { 0xf5, 0 } }, /* 075 */
+ { .mk = { 0x76, 0 }, .brk = { 0xf6, 0 } }, /* 076 */
+ { .mk = { 0x77, 0 }, .brk = { 0xf7, 0 } }, /* 077 */
+ { .mk = { 0x78, 0 }, .brk = { 0xf8, 0 } }, /* 078 */
+ { .mk = { 0x79, 0 }, .brk = { 0xf9, 0 } }, /* 079 */
+ { .mk = { 0x7a, 0 }, .brk = { 0xfa, 0 } }, /* 07a */
+ { .mk = { 0x7b, 0 }, .brk = { 0xfb, 0 } }, /* 07b */
+ { .mk = { 0x7c, 0 }, .brk = { 0xfc, 0 } }, /* 07c */
+ { .mk = { 0x2b, 0 }, .brk = { 0xab, 0 } }, /* 07d */
+ { .mk = { 0x7e, 0 }, .brk = { 0xfe, 0 } }, /* 07e */
+ { .mk = { 0x7f, 0 }, .brk = { 0xff, 0 } }, /* 07f */
+ { .mk = { 0 }, .brk = { 0 } }, /* 080 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 081 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 082 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 083 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 084 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 085 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 086 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 087 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 088 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 089 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 08a */
+ { .mk = { 0 }, .brk = { 0 } }, /* 08b */
+ { .mk = { 0 }, .brk = { 0 } }, /* 08c */
+ { .mk = { 0 }, .brk = { 0 } }, /* 08d */
+ { .mk = { 0 }, .brk = { 0 } }, /* 08e */
+ { .mk = { 0 }, .brk = { 0 } }, /* 08f */
+ { .mk = { 0 }, .brk = { 0 } }, /* 090 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 091 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 092 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 093 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 094 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 095 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 096 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 097 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 098 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 099 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 09a */
+ { .mk = { 0 }, .brk = { 0 } }, /* 09b */
+ { .mk = { 0 }, .brk = { 0 } }, /* 09c */
+ { .mk = { 0 }, .brk = { 0 } }, /* 09d */
+ { .mk = { 0 }, .brk = { 0 } }, /* 09e */
+ { .mk = { 0 }, .brk = { 0 } }, /* 09f */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0a0 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0a1 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0a2 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0a3 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0a4 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0a5 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0a6 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0a7 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0a8 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0a9 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0aa */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0ab */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0ac */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0ad */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0ae */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0af */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0b0 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0b1 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0b2 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0b3 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0b4 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0b5 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0b6 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0b7 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0b8 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0b9 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0ba */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0bb */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0bc */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0bd */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0be */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0bf */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0c0 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0c1 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0c2 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0c3 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0c4 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0c5 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0c6 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0c7 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0c8 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0c9 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0ca */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0cb */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0cc */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0cd */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0ce */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0cf */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0d0 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0d1 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0d2 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0d3 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0d4 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0d5 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0d6 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0d7 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0d8 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0d9 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0da */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0db */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0dc */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0dd */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0de */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0df */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0e0 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0e1 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0e2 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0e3 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0e4 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0e5 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0e6 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0e7 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0e8 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0e9 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0ea */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0eb */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0ec */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0ed */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0ee */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0ef */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0f0 */
+ { .mk = { 0xf1, 0 }, .brk = { 0 } }, /* 0f1 */
+ { .mk = { 0xf2, 0 }, .brk = { 0 } }, /* 0f2 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0f3 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0f4 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0f5 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0f6 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0f7 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0f8 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0f9 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0fa */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0fb */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0fc */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0fd */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0fe */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0ff */
+ { .mk = { 0 }, .brk = { 0 } }, /* 100 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 101 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 102 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 103 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 104 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 105 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 106 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 107 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 108 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 109 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 10a */
+ { .mk = { 0 }, .brk = { 0 } }, /* 10b */
+ { .mk = { 0 }, .brk = { 0 } }, /* 10c */
+ { .mk = { 0 }, .brk = { 0 } }, /* 10d */
+ { .mk = { 0 }, .brk = { 0 } }, /* 10e */
+ { .mk = { 0 }, .brk = { 0 } }, /* 10f */
+ { .mk = { 0 }, .brk = { 0 } }, /* 110 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 111 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 112 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 113 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 114 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 115 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 116 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 117 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 118 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 119 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 11a */
+ { .mk = { 0 }, .brk = { 0 } }, /* 11b */
+ { .mk = { 0x1c, 0 }, .brk = { 0x9c, 0 } }, /* 11c */
+ { .mk = { 0x1d, 0 }, .brk = { 0x9d, 0 } }, /* 11d */
+ { .mk = { 0 }, .brk = { 0 } }, /* 11e */
+ { .mk = { 0 }, .brk = { 0 } }, /* 11f */
+ { .mk = { 0 }, .brk = { 0 } }, /* 120 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 121 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 122 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 123 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 124 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 125 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 126 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 127 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 128 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 129 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 12a */
+ { .mk = { 0 }, .brk = { 0 } }, /* 12b */
+ { .mk = { 0 }, .brk = { 0 } }, /* 12c */
+ { .mk = { 0 }, .brk = { 0 } }, /* 12d */
+ { .mk = { 0 }, .brk = { 0 } }, /* 12e */
+ { .mk = { 0 }, .brk = { 0 } }, /* 12f */
+ { .mk = { 0 }, .brk = { 0 } }, /* 130 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 131 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 132 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 133 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 134 */
+ { .mk = { 0x35, 0 }, .brk = { 0xb5, 0 } }, /* 135 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 136 */
+ { .mk = { 0x37, 0 }, .brk = { 0xb7, 0 } }, /* 137 */
+ { .mk = { 0x38, 0 }, .brk = { 0xb8, 0 } }, /* 138 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 139 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 13a */
+ { .mk = { 0 }, .brk = { 0 } }, /* 13b */
+ { .mk = { 0 }, .brk = { 0 } }, /* 13c */
+ { .mk = { 0 }, .brk = { 0 } }, /* 13d */
+ { .mk = { 0 }, .brk = { 0 } }, /* 13e */
+ { .mk = { 0 }, .brk = { 0 } }, /* 13f */
+ { .mk = { 0 }, .brk = { 0 } }, /* 140 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 141 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 142 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 143 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 144 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 145 */
+ { .mk = { 0x46, 0 }, .brk = { 0xc6, 0 } }, /* 146 */
+ { .mk = { 0x47, 0 }, .brk = { 0xc7, 0 } }, /* 147 */
+ { .mk = { 0x48, 0 }, .brk = { 0xc8, 0 } }, /* 148 */
+ { .mk = { 0x49, 0 }, .brk = { 0xc9, 0 } }, /* 149 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 14a */
+ { .mk = { 0x4b, 0 }, .brk = { 0xcb, 0 } }, /* 14b */
+ { .mk = { 0 }, .brk = { 0 } }, /* 14c */
+ { .mk = { 0x4d, 0 }, .brk = { 0xcd, 0 } }, /* 14d */
+ { .mk = { 0 }, .brk = { 0 } }, /* 14e */
+ { .mk = { 0x4f, 0 }, .brk = { 0xcf, 0 } }, /* 14f */
+ { .mk = { 0x50, 0 }, .brk = { 0xd0, 0 } }, /* 150 */
+ { .mk = { 0x51, 0 }, .brk = { 0xd1, 0 } }, /* 151 */
+ { .mk = { 0x52, 0 }, .brk = { 0xd2, 0 } }, /* 152 */
+ { .mk = { 0x53, 0 }, .brk = { 0xd3, 0 } }, /* 153 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 154 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 155 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 156 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 157 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 158 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 159 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 15a */
+ { .mk = { 0x5c, 0 }, .brk = { 0xdc, 0 } }, /* 15b */
+ { .mk = { 0 }, .brk = { 0 } }, /* 15c */
+ { .mk = { 0 }, .brk = { 0 } }, /* 15d */
+ { .mk = { 0 }, .brk = { 0 } }, /* 15e */
+ { .mk = { 0 }, .brk = { 0 } }, /* 15f */
+ { .mk = { 0 }, .brk = { 0 } }, /* 160 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 161 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 162 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 163 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 164 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 165 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 166 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 167 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 168 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 169 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 16a */
+ { .mk = { 0 }, .brk = { 0 } }, /* 16b */
+ { .mk = { 0 }, .brk = { 0 } }, /* 16c */
+ { .mk = { 0 }, .brk = { 0 } }, /* 16d */
+ { .mk = { 0 }, .brk = { 0 } }, /* 16e */
+ { .mk = { 0 }, .brk = { 0 } }, /* 16f */
+ { .mk = { 0 }, .brk = { 0 } }, /* 170 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 171 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 172 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 173 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 174 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 175 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 176 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 177 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 178 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 179 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 17a */
+ { .mk = { 0 }, .brk = { 0 } }, /* 17b */
+ { .mk = { 0 }, .brk = { 0 } }, /* 17c */
+ { .mk = { 0 }, .brk = { 0 } }, /* 17d */
+ { .mk = { 0 }, .brk = { 0 } }, /* 17e */
+ { .mk = { 0 }, .brk = { 0 } }, /* 17f */
+ { .mk = { 0 }, .brk = { 0 } }, /* 180 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 181 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 182 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 183 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 184 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 185 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 186 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 187 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 188 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 189 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 18a */
+ { .mk = { 0 }, .brk = { 0 } }, /* 18b */
+ { .mk = { 0 }, .brk = { 0 } }, /* 18c */
+ { .mk = { 0 }, .brk = { 0 } }, /* 18d */
+ { .mk = { 0 }, .brk = { 0 } }, /* 18e */
+ { .mk = { 0 }, .brk = { 0 } }, /* 18f */
+ { .mk = { 0 }, .brk = { 0 } }, /* 190 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 191 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 192 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 193 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 194 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 195 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 196 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 197 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 198 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 199 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 19a */
+ { .mk = { 0 }, .brk = { 0 } }, /* 19b */
+ { .mk = { 0 }, .brk = { 0 } }, /* 19c */
+ { .mk = { 0 }, .brk = { 0 } }, /* 19d */
+ { .mk = { 0 }, .brk = { 0 } }, /* 19e */
+ { .mk = { 0 }, .brk = { 0 } }, /* 19f */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1a0 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1a1 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1a2 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1a3 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1a4 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1a5 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1a6 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1a7 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1a8 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1a9 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1aa */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1ab */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1ac */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1ad */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1ae */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1af */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1b0 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1b1 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1b2 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1b3 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1b4 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1b5 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1b6 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1b7 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1b8 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1b9 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1ba */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1bb */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1bc */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1bd */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1be */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1bf */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1c0 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1c1 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1c2 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1c3 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1c4 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1c5 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1c6 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1c7 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1c8 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1c9 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1ca */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1cb */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1cc */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1cd */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1ce */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1cf */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1d0 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1d1 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1d2 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1d3 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1d4 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1d5 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1d6 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1d7 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1d8 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1d9 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1da */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1db */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1dc */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1dd */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1de */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1df */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1e0 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1e1 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1e2 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1e3 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1e4 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1e5 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1e6 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1e7 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1e8 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1e9 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1ea */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1eb */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1ec */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1ed */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1ee */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1ef */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1f0 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1f1 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1f2 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1f3 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1f4 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1f5 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1f6 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1f7 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1f8 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1f9 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1fa */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1fb */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1fc */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1fd */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1fe */
+ { .mk = { 0 }, .brk = { 0 } } /* 1ff */
+ // clang-format on
+};
+
+const scancode scancode_set2_ax[512] = {
+ // clang-format off
+ { .mk = { 0 }, .brk = { 0 } }, /* 000 */
+ { .mk = { 0x76, 0 }, .brk = { 0xF0, 0x76, 0 } }, /* 001 */
+ { .mk = { 0x16, 0 }, .brk = { 0xF0, 0x16, 0 } }, /* 002 */
+ { .mk = { 0x1E, 0 }, .brk = { 0xF0, 0x1E, 0 } }, /* 003 */
+ { .mk = { 0x26, 0 }, .brk = { 0xF0, 0x26, 0 } }, /* 004 */
+ { .mk = { 0x25, 0 }, .brk = { 0xF0, 0x25, 0 } }, /* 005 */
+ { .mk = { 0x2E, 0 }, .brk = { 0xF0, 0x2E, 0 } }, /* 006 */
+ { .mk = { 0x36, 0 }, .brk = { 0xF0, 0x36, 0 } }, /* 007 */
+ { .mk = { 0x3D, 0 }, .brk = { 0xF0, 0x3D, 0 } }, /* 008 */
+ { .mk = { 0x3E, 0 }, .brk = { 0xF0, 0x3E, 0 } }, /* 009 */
+ { .mk = { 0x46, 0 }, .brk = { 0xF0, 0x46, 0 } }, /* 00a */
+ { .mk = { 0x45, 0 }, .brk = { 0xF0, 0x45, 0 } }, /* 00b */
+ { .mk = { 0x4E, 0 }, .brk = { 0xF0, 0x4E, 0 } }, /* 00c */
+ { .mk = { 0x55, 0 }, .brk = { 0xF0, 0x55, 0 } }, /* 00d */
+ { .mk = { 0x66, 0 }, .brk = { 0xF0, 0x66, 0 } }, /* 00e */
+ { .mk = { 0x0D, 0 }, .brk = { 0xF0, 0x0D, 0 } }, /* 00f */
+ { .mk = { 0x15, 0 }, .brk = { 0xF0, 0x15, 0 } }, /* 010 */
+ { .mk = { 0x1D, 0 }, .brk = { 0xF0, 0x1D, 0 } }, /* 011 */
+ { .mk = { 0x24, 0 }, .brk = { 0xF0, 0x24, 0 } }, /* 012 */
+ { .mk = { 0x2D, 0 }, .brk = { 0xF0, 0x2D, 0 } }, /* 013 */
+ { .mk = { 0x2C, 0 }, .brk = { 0xF0, 0x2C, 0 } }, /* 014 */
+ { .mk = { 0x35, 0 }, .brk = { 0xF0, 0x35, 0 } }, /* 015 */
+ { .mk = { 0x3C, 0 }, .brk = { 0xF0, 0x3C, 0 } }, /* 016 */
+ { .mk = { 0x43, 0 }, .brk = { 0xF0, 0x43, 0 } }, /* 017 */
+ { .mk = { 0x44, 0 }, .brk = { 0xF0, 0x44, 0 } }, /* 018 */
+ { .mk = { 0x4D, 0 }, .brk = { 0xF0, 0x4D, 0 } }, /* 019 */
+ { .mk = { 0x54, 0 }, .brk = { 0xF0, 0x54, 0 } }, /* 01a */
+ { .mk = { 0x5B, 0 }, .brk = { 0xF0, 0x5B, 0 } }, /* 01b */
+ { .mk = { 0x5A, 0 }, .brk = { 0xF0, 0x5A, 0 } }, /* 01c */
+ { .mk = { 0x14, 0 }, .brk = { 0xF0, 0x14, 0 } }, /* 01d */
+ { .mk = { 0x1C, 0 }, .brk = { 0xF0, 0x1C, 0 } }, /* 01e */
+ { .mk = { 0x1B, 0 }, .brk = { 0xF0, 0x1B, 0 } }, /* 01f */
+ { .mk = { 0x23, 0 }, .brk = { 0xF0, 0x23, 0 } }, /* 020 */
+ { .mk = { 0x2B, 0 }, .brk = { 0xF0, 0x2B, 0 } }, /* 021 */
+ { .mk = { 0x34, 0 }, .brk = { 0xF0, 0x34, 0 } }, /* 022 */
+ { .mk = { 0x33, 0 }, .brk = { 0xF0, 0x33, 0 } }, /* 023 */
+ { .mk = { 0x3B, 0 }, .brk = { 0xF0, 0x3B, 0 } }, /* 024 */
+ { .mk = { 0x42, 0 }, .brk = { 0xF0, 0x42, 0 } }, /* 025 */
+ { .mk = { 0x4B, 0 }, .brk = { 0xF0, 0x4B, 0 } }, /* 026 */
+ { .mk = { 0x4C, 0 }, .brk = { 0xF0, 0x4C, 0 } }, /* 027 */
+ { .mk = { 0x52, 0 }, .brk = { 0xF0, 0x52, 0 } }, /* 028 */
+ { .mk = { 0x5D, 0 }, .brk = { 0xF0, 0x5D, 0 } }, /* 029 */
+ { .mk = { 0x12, 0 }, .brk = { 0xF0, 0x12, 0 } }, /* 02a */
+ { .mk = { 0x0E, 0 }, .brk = { 0xF0, 0x0E, 0 } }, /* 02b */
+ { .mk = { 0x1A, 0 }, .brk = { 0xF0, 0x1A, 0 } }, /* 02c */
+ { .mk = { 0x22, 0 }, .brk = { 0xF0, 0x22, 0 } }, /* 02d */
+ { .mk = { 0x21, 0 }, .brk = { 0xF0, 0x21, 0 } }, /* 02e */
+ { .mk = { 0x2A, 0 }, .brk = { 0xF0, 0x2A, 0 } }, /* 02f */
+ { .mk = { 0x32, 0 }, .brk = { 0xF0, 0x32, 0 } }, /* 030 */
+ { .mk = { 0x31, 0 }, .brk = { 0xF0, 0x31, 0 } }, /* 031 */
+ { .mk = { 0x3A, 0 }, .brk = { 0xF0, 0x3A, 0 } }, /* 032 */
+ { .mk = { 0x41, 0 }, .brk = { 0xF0, 0x41, 0 } }, /* 033 */
+ { .mk = { 0x49, 0 }, .brk = { 0xF0, 0x49, 0 } }, /* 034 */
+ { .mk = { 0x4A, 0 }, .brk = { 0xF0, 0x4A, 0 } }, /* 035 */
+ { .mk = { 0x59, 0 }, .brk = { 0xF0, 0x59, 0 } }, /* 036 */
+ { .mk = { 0x7C, 0 }, .brk = { 0xF0, 0x7C, 0 } }, /* 037 */
+ { .mk = { 0x11, 0 }, .brk = { 0xF0, 0x11, 0 } }, /* 038 */
+ { .mk = { 0x29, 0 }, .brk = { 0xF0, 0x29, 0 } }, /* 039 */
+ { .mk = { 0x58, 0 }, .brk = { 0xF0, 0x58, 0 } }, /* 03a */
+ { .mk = { 0x05, 0 }, .brk = { 0xF0, 0x05, 0 } }, /* 03b */
+ { .mk = { 0x06, 0 }, .brk = { 0xF0, 0x06, 0 } }, /* 03c */
+ { .mk = { 0x04, 0 }, .brk = { 0xF0, 0x04, 0 } }, /* 03d */
+ { .mk = { 0x0C, 0 }, .brk = { 0xF0, 0x0C, 0 } }, /* 03e */
+ { .mk = { 0x03, 0 }, .brk = { 0xF0, 0x03, 0 } }, /* 03f */
+ { .mk = { 0x0B, 0 }, .brk = { 0xF0, 0x0B, 0 } }, /* 040 */
+ { .mk = { 0x83, 0 }, .brk = { 0xF0, 0x83, 0 } }, /* 041 */
+ { .mk = { 0x0A, 0 }, .brk = { 0xF0, 0x0A, 0 } }, /* 042 */
+ { .mk = { 0x01, 0 }, .brk = { 0xF0, 0x01, 0 } }, /* 043 */
+ { .mk = { 0x09, 0 }, .brk = { 0xF0, 0x09, 0 } }, /* 044 */
+ { .mk = { 0x77, 0 }, .brk = { 0xF0, 0x77, 0 } }, /* 045 */
+ { .mk = { 0x7E, 0 }, .brk = { 0xF0, 0x7E, 0 } }, /* 046 */
+ { .mk = { 0x6C, 0 }, .brk = { 0xF0, 0x6C, 0 } }, /* 047 */
+ { .mk = { 0x75, 0 }, .brk = { 0xF0, 0x75, 0 } }, /* 048 */
+ { .mk = { 0x7D, 0 }, .brk = { 0xF0, 0x7D, 0 } }, /* 049 */
+ { .mk = { 0x7B, 0 }, .brk = { 0xF0, 0x7B, 0 } }, /* 04a */
+ { .mk = { 0x6B, 0 }, .brk = { 0xF0, 0x6B, 0 } }, /* 04b */
+ { .mk = { 0x73, 0 }, .brk = { 0xF0, 0x73, 0 } }, /* 04c */
+ { .mk = { 0x74, 0 }, .brk = { 0xF0, 0x74, 0 } }, /* 04d */
+ { .mk = { 0x79, 0 }, .brk = { 0xF0, 0x79, 0 } }, /* 04e */
+ { .mk = { 0x69, 0 }, .brk = { 0xF0, 0x69, 0 } }, /* 04f */
+ { .mk = { 0x72, 0 }, .brk = { 0xF0, 0x72, 0 } }, /* 050 */
+ { .mk = { 0x7A, 0 }, .brk = { 0xF0, 0x7A, 0 } }, /* 051 */
+ { .mk = { 0x70, 0 }, .brk = { 0xF0, 0x70, 0 } }, /* 052 */
+ { .mk = { 0x71, 0 }, .brk = { 0xF0, 0x71, 0 } }, /* 053 */
+ { .mk = { 0x84, 0 }, .brk = { 0xF0, 0x84, 0 } }, /* 054 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 055 */
+ { .mk = { 0x61, 0 }, .brk = { 0xF0, 0x61, 0 } }, /* 056 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 057 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 058 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 059 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 05a */
+ { .mk = { 0 }, .brk = { 0 } }, /* 05b */
+ { .mk = { 0x27, 0 }, .brk = { 0xF0, 0x27, 0 } }, /* 05c */
+ { .mk = { 0 }, .brk = { 0 } }, /* 05d */
+ { .mk = { 0 }, .brk = { 0 } }, /* 05e */
+ { .mk = { 0 }, .brk = { 0 } }, /* 05f */
+ { .mk = { 0x47, 0 }, .brk = { 0xF0, 0x47, 0 } }, /* 060 */
+ { .mk = { 0x4F, 0 }, .brk = { 0xF0, 0x4F, 0 } }, /* 061 */
+ { .mk = { 0x56, 0 }, .brk = { 0xF0, 0x56, 0 } }, /* 062 */
+ { .mk = { 0x5E, 0 }, .brk = { 0xF0, 0x5E, 0 } }, /* 063 */
+ { .mk = { 0x08, 0 }, .brk = { 0xF0, 0x08, 0 } }, /* 064 */
+ { .mk = { 0x10, 0 }, .brk = { 0xF0, 0x10, 0 } }, /* 065 */
+ { .mk = { 0x18, 0 }, .brk = { 0xF0, 0x18, 0 } }, /* 066 */
+ { .mk = { 0x20, 0 }, .brk = { 0xF0, 0x20, 0 } }, /* 067 */
+ { .mk = { 0x28, 0 }, .brk = { 0xF0, 0x28, 0 } }, /* 068 */
+ { .mk = { 0x30, 0 }, .brk = { 0xF0, 0x30, 0 } }, /* 069 */
+ { .mk = { 0x38, 0 }, .brk = { 0xF0, 0x38, 0 } }, /* 06a */
+ { .mk = { 0x40, 0 }, .brk = { 0xF0, 0x40, 0 } }, /* 06b */
+ { .mk = { 0x48, 0 }, .brk = { 0xF0, 0x48, 0 } }, /* 06c */
+ { .mk = { 0x50, 0 }, .brk = { 0xF0, 0x50, 0 } }, /* 06d */
+ { .mk = { 0x57, 0 }, .brk = { 0xF0, 0x57, 0 } }, /* 06e */
+ { .mk = { 0x6F, 0 }, .brk = { 0xF0, 0x6F, 0 } }, /* 06f */
+ { .mk = { 0x13, 0 }, .brk = { 0xF0, 0x13, 0 } }, /* 070 */
+ { .mk = { 0x19, 0 }, .brk = { 0xF0, 0x19, 0 } }, /* 071 */
+ { .mk = { 0x39, 0 }, .brk = { 0xF0, 0x39, 0 } }, /* 072 */
+ { .mk = { 0x5D, 0 }, .brk = { 0xF0, 0x5D, 0 } }, /* 073 */
+ { .mk = { 0x53, 0 }, .brk = { 0xF0, 0x53, 0 } }, /* 074 */
+ { .mk = { 0x5C, 0 }, .brk = { 0xF0, 0x5C, 0 } }, /* 075 */
+ { .mk = { 0x5F, 0 }, .brk = { 0xF0, 0x5F, 0 } }, /* 076 */
+ { .mk = { 0x62, 0 }, .brk = { 0xF0, 0x62, 0 } }, /* 077 */
+ { .mk = { 0x63, 0 }, .brk = { 0xF0, 0x63, 0 } }, /* 078 */
+ { .mk = { 0x64, 0 }, .brk = { 0xF0, 0x64, 0 } }, /* 079 */
+ { .mk = { 0x65, 0 }, .brk = { 0xF0, 0x65, 0 } }, /* 07a */
+ { .mk = { 0x67, 0 }, .brk = { 0xF0, 0x67, 0 } }, /* 07b */
+ { .mk = { 0x68, 0 }, .brk = { 0xF0, 0x68, 0 } }, /* 07c */
+ { .mk = { 0x61, 0 }, .brk = { 0xF0, 0x61, 0 } }, /* 07d */
+ { .mk = { 0x6D, 0 }, .brk = { 0xF0, 0x6D, 0 } }, /* 07e */
+ { .mk = { 0x6E, 0 }, .brk = { 0xF0, 0x6E, 0 } }, /* 07f */
+ { .mk = { 0 }, .brk = { 0 } }, /* 080 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 081 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 082 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 083 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 084 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 085 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 086 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 087 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 088 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 089 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 08a */
+ { .mk = { 0 }, .brk = { 0 } }, /* 08b */
+ { .mk = { 0 }, .brk = { 0 } }, /* 08c */
+ { .mk = { 0 }, .brk = { 0 } }, /* 08d */
+ { .mk = { 0 }, .brk = { 0 } }, /* 08e */
+ { .mk = { 0 }, .brk = { 0 } }, /* 08f */
+ { .mk = { 0 }, .brk = { 0 } }, /* 090 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 091 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 092 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 093 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 094 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 095 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 096 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 097 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 098 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 099 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 09a */
+ { .mk = { 0 }, .brk = { 0 } }, /* 09b */
+ { .mk = { 0 }, .brk = { 0 } }, /* 09c */
+ { .mk = { 0 }, .brk = { 0 } }, /* 09d */
+ { .mk = { 0 }, .brk = { 0 } }, /* 09e */
+ { .mk = { 0 }, .brk = { 0 } }, /* 09f */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0a0 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0a1 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0a2 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0a3 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0a4 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0a5 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0a6 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0a7 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0a8 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0a9 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0aa */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0ab */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0ac */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0ad */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0ae */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0af */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0b0 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0b1 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0b2 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0b3 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0b4 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0b5 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0b6 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0b7 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0b8 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0b9 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0ba */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0bb */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0bc */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0bd */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0be */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0bf */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0c0 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0c1 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0c2 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0c3 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0c4 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0c5 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0c6 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0c7 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0c8 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0c9 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0ca */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0cb */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0cc */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0cd */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0ce */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0cf */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0d0 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0d1 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0d2 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0d3 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0d4 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0d5 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0d6 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0d7 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0d8 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0d9 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0da */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0db */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0dc */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0dd */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0de */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0df */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0e0 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0e1 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0e2 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0e3 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0e4 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0e5 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0e6 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0e7 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0e8 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0e9 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0ea */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0eb */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0ec */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0ed */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0ee */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0ef */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0f0 */
+ { .mk = { 0xf1, 0 }, .brk = { 0xf0, 0xf1, 0 } }, /* 0f1 */
+ { .mk = { 0xf2, 0 }, .brk = { 0xf0, 0xf2, 0 } }, /* 0f2 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0f3 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0f4 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0f5 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0f6 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0f7 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0f8 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0f9 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0fa */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0fb */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0fc */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0fd */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0fe */
+ { .mk = { 0 }, .brk = { 0 } }, /* 0ff */
+ { .mk = { 0 }, .brk = { 0 } }, /* 100 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 101 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 102 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 103 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 104 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 105 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 106 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 107 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 108 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 109 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 10a */
+ { .mk = { 0 }, .brk = { 0 } }, /* 10b */
+ { .mk = { 0 }, .brk = { 0 } }, /* 10c */
+ { .mk = { 0 }, .brk = { 0 } }, /* 10d */
+ { .mk = { 0 }, .brk = { 0 } }, /* 10e */
+ { .mk = { 0 }, .brk = { 0 } }, /* 10f */
+ { .mk = { 0 }, .brk = { 0 } }, /* 110 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 111 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 112 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 113 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 114 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 115 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 116 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 117 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 118 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 119 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 11a */
+ { .mk = { 0 }, .brk = { 0 } }, /* 11b */
+ { .mk = { 0x5A, 0 }, .brk = { 0xF0, 0x5A, 0 } }, /* 11c */
+ { .mk = { 0x14, 0 }, .brk = { 0xF0, 0x14, 0 } }, /* 11d */
+ { .mk = { 0 }, .brk = { 0 } }, /* 11e */
+ { .mk = { 0 }, .brk = { 0 } }, /* 11f */
+ { .mk = { 0 }, .brk = { 0 } }, /* 120 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 121 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 122 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 123 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 124 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 125 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 126 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 127 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 128 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 129 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 12a */
+ { .mk = { 0 }, .brk = { 0 } }, /* 12b */
+ { .mk = { 0 }, .brk = { 0 } }, /* 12c */
+ { .mk = { 0 }, .brk = { 0 } }, /* 12d */
+ { .mk = { 0 }, .brk = { 0 } }, /* 12e */
+ { .mk = { 0 }, .brk = { 0 } }, /* 12f */
+ { .mk = { 0 }, .brk = { 0 } }, /* 130 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 131 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 132 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 133 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 134 */
+ { .mk = { 0x4A, 0 }, .brk = { 0xF0, 0x4A, 0 } }, /* 135 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 136 */
+ { .mk = { 0x7C, 0 }, .brk = { 0xF0, 0x7C, 0 } }, /* 137 */
+ { .mk = { 0x11, 0 }, .brk = { 0xF0, 0x11, 0 } }, /* 138 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 139 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 13a */
+ { .mk = { 0 }, .brk = { 0 } }, /* 13b */
+ { .mk = { 0 }, .brk = { 0 } }, /* 13c */
+ { .mk = { 0 }, .brk = { 0 } }, /* 13d */
+ { .mk = { 0 }, .brk = { 0 } }, /* 13e */
+ { .mk = { 0 }, .brk = { 0 } }, /* 13f */
+ { .mk = { 0 }, .brk = { 0 } }, /* 140 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 141 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 142 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 143 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 144 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 145 */
+ { .mk = { 0x7E, 0 }, .brk = { 0xF0, 0x7E, 0 } }, /* 146 */
+ { .mk = { 0x6C, 0 }, .brk = { 0xF0, 0x6C, 0 } }, /* 147 */
+ { .mk = { 0x75, 0 }, .brk = { 0xF0, 0x75, 0 } }, /* 148 */
+ { .mk = { 0x7D, 0 }, .brk = { 0xF0, 0x7D, 0 } }, /* 149 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 14a */
+ { .mk = { 0x6B, 0 }, .brk = { 0xF0, 0x6B, 0 } }, /* 14b */
+ { .mk = { 0 }, .brk = { 0 } }, /* 14c */
+ { .mk = { 0x74, 0 }, .brk = { 0xF0, 0x74, 0 } }, /* 14d */
+ { .mk = { 0 }, .brk = { 0 } }, /* 14e */
+ { .mk = { 0x69, 0 }, .brk = { 0xF0, 0x69, 0 } }, /* 14f */
+ { .mk = { 0x72, 0 }, .brk = { 0xF0, 0x72, 0 } }, /* 150 */
+ { .mk = { 0x7A, 0 }, .brk = { 0xF0, 0x7A, 0 } }, /* 151 */
+ { .mk = { 0x70, 0 }, .brk = { 0xF0, 0x70, 0 } }, /* 152 */
+ { .mk = { 0x71, 0 }, .brk = { 0xF0, 0x71, 0 } }, /* 153 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 154 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 155 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 156 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 157 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 158 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 159 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 15a */
+ { .mk = { 0x27, 0 }, .brk = { 0xF0, 0x27, 0 } }, /* 15b */
+ { .mk = { 0 }, .brk = { 0 } }, /* 15c */
+ { .mk = { 0 }, .brk = { 0 } }, /* 15d */
+ { .mk = { 0 }, .brk = { 0 } }, /* 15e */
+ { .mk = { 0 }, .brk = { 0 } }, /* 15f */
+ { .mk = { 0 }, .brk = { 0 } }, /* 160 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 161 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 162 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 163 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 164 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 165 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 166 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 167 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 168 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 169 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 16a */
+ { .mk = { 0 }, .brk = { 0 } }, /* 16b */
+ { .mk = { 0 }, .brk = { 0 } }, /* 16c */
+ { .mk = { 0 }, .brk = { 0 } }, /* 16d */
+ { .mk = { 0 }, .brk = { 0 } }, /* 16e */
+ { .mk = { 0 }, .brk = { 0 } }, /* 16f */
+ { .mk = { 0 }, .brk = { 0 } }, /* 170 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 171 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 172 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 173 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 174 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 175 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 176 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 177 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 178 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 179 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 17a */
+ { .mk = { 0 }, .brk = { 0 } }, /* 17b */
+ { .mk = { 0 }, .brk = { 0 } }, /* 17c */
+ { .mk = { 0 }, .brk = { 0 } }, /* 17d */
+ { .mk = { 0 }, .brk = { 0 } }, /* 17e */
+ { .mk = { 0 }, .brk = { 0 } }, /* 17f */
+ { .mk = { 0 }, .brk = { 0 } }, /* 180 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 181 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 182 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 183 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 184 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 185 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 186 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 187 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 188 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 189 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 18a */
+ { .mk = { 0 }, .brk = { 0 } }, /* 18b */
+ { .mk = { 0 }, .brk = { 0 } }, /* 18c */
+ { .mk = { 0 }, .brk = { 0 } }, /* 18d */
+ { .mk = { 0 }, .brk = { 0 } }, /* 18e */
+ { .mk = { 0 }, .brk = { 0 } }, /* 18f */
+ { .mk = { 0 }, .brk = { 0 } }, /* 190 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 191 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 192 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 193 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 194 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 195 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 196 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 197 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 198 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 199 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 19a */
+ { .mk = { 0 }, .brk = { 0 } }, /* 19b */
+ { .mk = { 0 }, .brk = { 0 } }, /* 19c */
+ { .mk = { 0 }, .brk = { 0 } }, /* 19d */
+ { .mk = { 0 }, .brk = { 0 } }, /* 19e */
+ { .mk = { 0 }, .brk = { 0 } }, /* 19f */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1a0 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1a1 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1a2 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1a3 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1a4 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1a5 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1a6 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1a7 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1a8 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1a9 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1aa */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1ab */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1ac */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1ad */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1ae */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1af */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1b0 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1b1 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1b2 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1b3 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1b4 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1b5 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1b6 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1b7 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1b8 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1b9 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1ba */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1bb */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1bc */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1bd */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1be */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1bf */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1c0 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1c1 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1c2 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1c3 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1c4 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1c5 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1c6 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1c7 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1c8 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1c9 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1ca */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1cb */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1cc */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1cd */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1ce */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1cf */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1d0 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1d1 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1d2 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1d3 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1d4 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1d5 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1d6 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1d7 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1d8 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1d9 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1da */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1db */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1dc */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1dd */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1de */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1df */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1e0 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1e1 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1e2 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1e3 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1e4 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1e5 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1e6 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1e7 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1e8 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1e9 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1ea */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1eb */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1ec */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1ed */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1ee */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1ef */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1f0 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1f1 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1f2 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1f3 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1f4 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1f5 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1f6 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1f7 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1f8 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1f9 */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1fa */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1fb */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1fc */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1fd */
+ { .mk = { 0 }, .brk = { 0 } }, /* 1fe */
+ { .mk = { 0 }, .brk = { 0 } } /* 1ff */
+ // clang-format on
+};
+
+const scancode scancode_set1[512] = {
// clang-format off
{ .mk = { 0 }, .brk = { 0 } }, /* 000 */
{ .mk = { 0x01, 0 }, .brk = { 0x81, 0 } }, /* 001 */
@@ -1159,7 +3225,7 @@ static const scancode scancode_set3[512] = {
{ .mk = { 0x52, 0 }, .brk = { 0xf0, 0x52, 0 } }, /* 028 */
{ .mk = { 0x0E, 0 }, .brk = { 0xf0, 0x0E, 0 } }, /* 029 */
{ .mk = { 0x12, 0 }, .brk = { 0xf0, 0x12, 0 } }, /* 02a */
- { .mk = { 0x5C, 0 }, .brk = { 0xf0, 0x5C, 0 } }, /* 02b */
+ { .mk = {0x8c, 0x2B, 0 }, .brk = { 0xf0, 0x8c, 0x2B, 0 } }, /* 02b */
{ .mk = { 0x1A, 0 }, .brk = { 0xf0, 0x1A, 0 } }, /* 02c */
{ .mk = { 0x22, 0 }, .brk = { 0xf0, 0x22, 0 } }, /* 02d */
{ .mk = { 0x21, 0 }, .brk = { 0xf0, 0x21, 0 } }, /* 02e */
@@ -1202,7 +3268,7 @@ static const scancode scancode_set3[512] = {
{ .mk = { 0x71, 0 }, .brk = { 0xf0, 0x71, 0 } }, /* 053 */
{ .mk = { 0x57, 0 }, .brk = { 0xf0, 0x57, 0 } }, /* 054 */
{ .mk = { 0x60, 0 }, .brk = { 0xf0, 0x60, 0 } }, /* 055 */
- { .mk = { 0 }, .brk = { 0 } }, /* 056 */
+ { .mk = {0x8c, 0x56, 0 }, .brk = { 0xf0, 0x8c, 0x56, 0 } }, /* 056 */
{ .mk = { 0x56, 0 }, .brk = { 0xf0, 0x56, 0 } }, /* 057 */
{ .mk = { 0x5E, 0 }, .brk = { 0xf0, 0x5E, 0 } }, /* 058 */
{ .mk = { 0 }, .brk = { 0 } }, /* 059 */
@@ -1228,20 +3294,20 @@ static const scancode scancode_set3[512] = {
{ .mk = { 0x50, 0 }, .brk = { 0xf0, 0x50, 0 } }, /* 06d */
{ .mk = { 0 }, .brk = { 0 } }, /* 06e */
{ .mk = { 0 }, .brk = { 0 } }, /* 06f */
- { .mk = { 0x87, 0 }, .brk = { 0xf0, 0x87, 0 } }, /* 070 */
+ { .mk = {0x8c, 0x70, 0 }, .brk = { 0xf0, 0x8c, 0x70, 0 } }, /* 07d */
{ .mk = { 0 }, .brk = { 0 } }, /* 071 */
{ .mk = { 0 }, .brk = { 0 } }, /* 072 */
- { .mk = { 0x51, 0 }, .brk = { 0xf0, 0x51, 0 } }, /* 073 */
+ { .mk = {0x8c, 0x73, 0 }, .brk = { 0xf0, 0x8c, 0x73, 0 } }, /* 073 */
{ .mk = { 0x53, 0 }, .brk = { 0xf0, 0x53, 0 } }, /* 074 */
{ .mk = { 0x5C, 0 }, .brk = { 0xf0, 0x5C, 0 } }, /* 075 */
{ .mk = { 0 }, .brk = { 0 } }, /* 076 */
{ .mk = { 0x62, 0 }, .brk = { 0xf0, 0x62, 0 } }, /* 077 */
{ .mk = { 0x63, 0 }, .brk = { 0xf0, 0x63, 0 } }, /* 078 */
- { .mk = { 0x86, 0 }, .brk = { 0xf0, 0x86, 0 } }, /* 079 */
+ { .mk = {0x8c, 0x79, 0 }, .brk = { 0xf0, 0x8c, 0x79, 0 } }, /* 079 */
{ .mk = { 0 }, .brk = { 0 } }, /* 07a */
- { .mk = { 0x85, 0 }, .brk = { 0xf0, 0x85, 0 } }, /* 07b */
+ { .mk = {0x8c, 0x7b, 0 }, .brk = { 0xf0, 0x8c, 0x7b, 0 } }, /* 07b */
{ .mk = { 0x68, 0 }, .brk = { 0xf0, 0x68, 0 } }, /* 07c */
- { .mk = { 0x13, 0 }, .brk = { 0xf0, 0x13, 0 } }, /* 07d */
+ { .mk = {0x8c, 0x7d, 0 }, .brk = { 0xf0, 0x8c, 0x7d, 0 } }, /* 07d */
{ .mk = { 0 }, .brk = { 0 } }, /* 07e */
{ .mk = { 0 }, .brk = { 0 } }, /* 07f */
{ .mk = { 0x80, 0 }, .brk = { 0xf0, 0x80, 0 } }, /* 080 */
@@ -3229,16 +5295,26 @@ keyboard_at_log(const char *fmt, ...)
#endif
static void
-keyboard_at_set_scancode_set(void)
+keyboard_at_set_scancode_set(atkbc_dev_t *dev)
{
switch (keyboard_mode) {
default:
case 0x01:
- keyboard_set_table(scancode_set1);
+ if (dev->type & FLAG_AX)
+ keyboard_set_table(scancode_set1_ax);
+ else if ((dev->type & FLAG_TYPE_MASK) > KBD_84_KEY)
+ keyboard_set_table(scancode_set1);
+ else
+ keyboard_set_table(scancode_set1_at);
break;
case 0x02:
- keyboard_set_table(scancode_set2);
+ if (dev->type & FLAG_AX)
+ keyboard_set_table(scancode_set2_ax);
+ else if ((dev->type & FLAG_TYPE_MASK) > KBD_84_KEY)
+ keyboard_set_table(scancode_set2);
+ else
+ keyboard_set_table(scancode_set2_at);
break;
case 0x03:
@@ -3274,6 +5350,89 @@ add_data_kbd(uint16_t val)
uint8_t num_lock = 0;
uint8_t shift_states = 0;
+ if ((keyboard_mode == 0x03) && (val == 0x8c)) {
+ is_special = 1;
+ return;
+ } else if (is_special) {
+ uint8_t keys = (dev->type & FLAG_TYPE_MASK);
+
+ switch (val) {
+ case 0x2b:
+ switch (keys) {
+ default:
+ val = 0x5c;
+ break;
+ case KBD_102_KEY: case KBD_JIS:
+ case KBD_ABNT2:
+ val = 0x53;
+ break;
+ }
+ break;
+ case 0x56:
+ switch (keys) {
+ default:
+ val = 0x12;
+ break;
+ case KBD_102_KEY: case KBD_ABNT2:
+ val = 0x13;
+ break;
+ }
+ break;
+ case 0x70:
+ switch (keys) {
+ default:
+ val = 0x29;
+ break;
+ case KBD_JIS:
+ val = 0x87;
+ break;
+ }
+ break;
+ case 0x73:
+ switch (keys) {
+ default:
+ val = 0x59;
+ break;
+ case KBD_JIS: case KBD_ABNT2:
+ val = 0x5c;
+ break;
+ }
+ break;
+ case 0x79:
+ switch (keys) {
+ default:
+ val = 0x29;
+ break;
+ case KBD_JIS:
+ val = 0x86;
+ break;
+ }
+ break;
+ case 0x7b:
+ switch (keys) {
+ default:
+ val = 0x29;
+ break;
+ case KBD_JIS:
+ val = 0x85;
+ break;
+ }
+ break;
+ case 0x7d:
+ switch (keys) {
+ default:
+ val = 0x66;
+ break;
+ case KBD_JIS:
+ val = 0x13;
+ break;
+ }
+ break;
+ }
+
+ is_special = 0;
+ }
+
dev->ignore = 1;
keyboard_get_states(NULL, &num_lock, NULL, NULL);
@@ -3463,7 +5622,9 @@ keyboard_at_set_defaults(atkbc_dev_t *dev)
memset(keyboard_set3_flags, 0, 512);
keyboard_mode = 0x02;
- keyboard_at_set_scancode_set();
+ keyboard_at_set_scancode_set(dev);
+
+ is_special = 0;
}
static void
@@ -3530,8 +5691,9 @@ keyboard_at_write(void *priv)
case 0x8a:
kbc_at_dev_queue_add(dev, 0xfa, 0); /* ACK */
keyboard_mode = val;
+ is_special = 0;
keyboard_at_log("%s: Set scan code set [%02X]\n", dev->name, keyboard_mode);
- keyboard_at_set_scancode_set();
+ keyboard_at_set_scancode_set(dev);
break;
default:
/* Fatal so any instance of anything attempting to set scan code > 3 can be reported to us. */
@@ -3599,7 +5761,7 @@ keyboard_at_write(void *priv)
break;
case 0xf0: /* get/set scan code set */
- if (dev->type & FLAG_PS2) {
+ if (dev->type & FLAG_PS2_KBD) {
dev->command = val;
keyboard_at_log("%s: scan code set\n", dev->name);
dev->flags |= FLAG_CTRLDAT;
@@ -3659,11 +5821,11 @@ keyboard_at_write(void *priv)
memset(keyboard_set3_flags, 0, 512);
keyboard_mode = 0x02;
- keyboard_at_set_scancode_set();
+ keyboard_at_set_scancode_set(dev);
break;
case 0xf7: /* set all keys to repeat */
- if (dev->type & FLAG_PS2) {
+ if (dev->type & FLAG_PS2_KBD) {
keyboard_at_log("%s: set all keys to repeat\n", dev->name);
kbc_at_dev_queue_add(dev, 0xfa, 0);
keyboard_set3_all_break = 1;
@@ -3672,7 +5834,7 @@ keyboard_at_write(void *priv)
break;
case 0xf8: /* set all keys to give make/break codes */
- if (dev->type & FLAG_PS2) {
+ if (dev->type & FLAG_PS2_KBD) {
keyboard_at_log("%s: set all keys to give make/break codes\n", dev->name);
kbc_at_dev_queue_add(dev, 0xfa, 0);
keyboard_set3_all_break = 1;
@@ -3681,7 +5843,7 @@ keyboard_at_write(void *priv)
break;
case 0xf9: /* set all keys to give make codes only */
- if (dev->type & FLAG_PS2) {
+ if (dev->type & FLAG_PS2_KBD) {
keyboard_at_log("%s: set all keys to give make codes only\n", dev->name);
kbc_at_dev_queue_add(dev, 0xfa, 0);
keyboard_set3_all_break = 0;
@@ -3690,7 +5852,7 @@ keyboard_at_write(void *priv)
break;
case 0xfa: /* set all keys to repeat and give make/break codes */
- if (dev->type & FLAG_PS2) {
+ if (dev->type & FLAG_PS2_KBD) {
keyboard_at_log("%s: set all keys to repeat and give make/break codes\n", dev->name);
kbc_at_dev_queue_add(dev, 0xfa, 0);
keyboard_set3_all_repeat = 1;
@@ -3791,14 +5953,13 @@ keyboard_at_init(const device_t *info)
Key 63 = Japanese key between right Ctrl and right Alt, scan code: 86 (Henkan/Zenkouho 79);
Key 65? = Japanese key between right Ctrl and right Alt, scan code: 87 (Hiragana/Katakana 70).
*/
- dev->type = FLAG_PS2 | KBD_102_KEY /* device_get_config_int("type") */;
+ dev->type = info->local | device_get_config_int("keys");
+
/*
We assume that the IBM PS/55 machine uses the 5576-002 keyboard (JP/CN layout) here.
This is not smart but suitable for supporting a keyboard ID that is rarely used in standard PCs.
At least, the Taiwanese PS/55 uses the same keyboard ID and scancode set. The Korean one is unknown.
*/
- if (!!strstr(machine_getname(), "PS/55"))
- dev->type = FLAG_PS2 | KBD_JIS;
keyboard_at_log("%s: type=%d\n", dev->name, dev->type);
@@ -3818,7 +5979,9 @@ keyboard_at_init(const device_t *info)
SavedKbd = dev;
keyboard_update_states(0, 0, 0, 0);
- inv_cmd_response = (dev->type & FLAG_PS2) ? 0xfe : 0xfa;
+ inv_cmd_response = (dev->type & FLAG_PS2_KBD) ? 0xfe : 0xfa;
+
+ is_special = 0;
#ifdef SCAN_CODE_TABLES_COMPARISON
pclog_toggle_suppr();
@@ -3977,22 +6140,20 @@ keyboard_at_close(void *priv)
static const device_config_t keyboard_at_config[] = {
// clang-format off
{
- .name = "type",
- .description = "Type",
+ .name = "keys",
+ .description = "Keys",
.type = CONFIG_SELECTION,
.default_string = NULL,
- .default_int = 1,
+ .default_int = KBD_101_KEY,
.file_filter = NULL,
.spinner = { 0 },
.selection = {
- { .description = "AT 84-key", .value = FLAG_AT | KBD_84_KEY },
- { .description = "AT 101/102/106-key", .value = FLAG_AT | KBD_101_KEY },
- { .description = "AT Korean", .value = FLAG_AT | KBD_KOREAN },
- { .description = "PS/2 101-key", .value = FLAG_PS2 | KBD_101_KEY },
- { .description = "PS/2 102-key", .value = FLAG_PS2 | KBD_102_KEY },
- { .description = "PS/2 106-key JIS", .value = FLAG_PS2 | KBD_JIS },
- { .description = "PS/2 Korean", .value = FLAG_PS2 | KBD_KOREAN },
- { .description = "" }
+ { .description = "84", .value = KBD_84_KEY },
+ { .description = "101 (ANSI)", .value = KBD_101_KEY },
+ { .description = "102 (ISO)", .value = KBD_102_KEY },
+ { .description = "106 (JIS)", .value = KBD_JIS },
+ { .description = "103 (KSC)", .value = KBD_KSC },
+ { .description = "104 (ABNT2)", .value = KBD_ABNT2 }
},
.bios = { { 0 } }
},
@@ -4002,12 +6163,36 @@ static const device_config_t keyboard_at_config[] = {
// clang-format on
};
-/* TODO: Add more keyboard types. */
-const device_t keyboard_at_generic_device = {
- .name = "Standard AT or PS/2 Keyboard",
- .internal_name = "ps2",
- .flags = DEVICE_PS2_KBC,
- .local = 0,
+static const device_config_t keyboard_ps2_config[] = {
+ // clang-format off
+ {
+ .name = "keys",
+ .description = "Keys",
+ .type = CONFIG_SELECTION,
+ .default_string = NULL,
+ .default_int = KBD_101_KEY,
+ .file_filter = NULL,
+ .spinner = { 0 },
+ .selection = {
+ { .description = "101 (ANSI)", .value = KBD_101_KEY },
+ { .description = "102 (ISO)", .value = KBD_102_KEY },
+ { .description = "106 (JIS)", .value = KBD_JIS },
+ { .description = "103 (KSC)", .value = KBD_KSC },
+ { .description = "104 (ABNT2)", .value = KBD_ABNT2 }
+ },
+ .bios = { { 0 } }
+ },
+ {
+ .name = "", .description = "", .type = CONFIG_END
+ }
+ // clang-format on
+};
+
+const device_t keyboard_at_device = {
+ .name = "AT Keyboard",
+ .internal_name = "keyboard_at",
+ .flags = DEVICE_AT_KBC,
+ .local = FLAG_AT,
.init = keyboard_at_init,
.close = keyboard_at_close,
.reset = NULL,
@@ -4016,3 +6201,60 @@ const device_t keyboard_at_generic_device = {
.force_redraw = NULL,
.config = keyboard_at_config
};
+
+const device_t keyboard_ax_device = {
+ .name = "AX Keyboard",
+ .internal_name = "keyboard_ax",
+ .flags = DEVICE_AT_KBC,
+ .local = FLAG_AX | KBD_JIS,
+ .init = keyboard_at_init,
+ .close = keyboard_at_close,
+ .reset = NULL,
+ .available = NULL,
+ .speed_changed = NULL,
+ .force_redraw = NULL,
+ .config = NULL
+};
+
+const device_t keyboard_ps2_device = {
+ .name = "PS/2 Keyboard",
+ .internal_name = "keyboard_ps2",
+ .flags = DEVICE_AT_KBC | DEVICE_PS2_KBC,
+ .local = FLAG_PS2_KBD,
+ .init = keyboard_at_init,
+ .close = keyboard_at_close,
+ .reset = NULL,
+ .available = NULL,
+ .speed_changed = NULL,
+ .force_redraw = NULL,
+ .config = keyboard_ps2_config
+};
+
+const device_t keyboard_ps55_device = {
+ .name = "PS/55 Keyboard",
+ .internal_name = "keyboard_ps55",
+ .flags = DEVICE_AT_KBC | DEVICE_PS2_KBC,
+ .local = FLAG_PS2_KBD | KBD_JIS,
+ .init = keyboard_at_init,
+ .close = keyboard_at_close,
+ .reset = NULL,
+ .available = NULL,
+ .speed_changed = NULL,
+ .force_redraw = NULL,
+ .config = NULL
+};
+
+const device_t keyboard_at_generic_device = {
+ .name = "AT/PS/2 Keyboard",
+ .internal_name = "keyboard_at",
+ .flags = DEVICE_AT_KBC,
+ .local = KBD_102_KEY,
+ .init = keyboard_at_init,
+ .close = keyboard_at_close,
+ .reset = NULL,
+ .available = NULL,
+ .speed_changed = NULL,
+ .force_redraw = NULL,
+ .config = keyboard_at_config
+};
+
diff --git a/src/device/keyboard_xt.c b/src/device/keyboard_xt.c
index 5190de839..2936868b0 100644
--- a/src/device/keyboard_xt.c
+++ b/src/device/keyboard_xt.c
@@ -35,62 +35,8 @@
#include <86box/machine.h>
#include <86box/m_xt_t1000.h>
#include <86box/cassette.h>
-#include <86box/io.h>
-#include <86box/pic.h>
-#include <86box/pit.h>
-#include <86box/ppi.h>
-#include <86box/mem.h>
-#include <86box/rom.h>
-#include <86box/sound.h>
-#include <86box/snd_speaker.h>
-#include <86box/video.h>
#include <86box/keyboard.h>
-#define STAT_PARITY 0x80
-#define STAT_RTIMEOUT 0x40
-#define STAT_TTIMEOUT 0x20
-#define STAT_LOCK 0x10
-#define STAT_CD 0x08
-#define STAT_SYSFLAG 0x04
-#define STAT_IFULL 0x02
-#define STAT_OFULL 0x01
-
-/* Keyboard Types */
-enum {
- KBD_TYPE_PC81 = 0,
- KBD_TYPE_PC82,
- KBD_TYPE_XT82,
- KBD_TYPE_XT86,
- KBD_TYPE_COMPAQ,
- KBD_TYPE_TANDY,
- KBD_TYPE_TOSHIBA,
- KBD_TYPE_VTECH,
- KBD_TYPE_OLIVETTI,
- KBD_TYPE_ZENITH,
- KBD_TYPE_PRAVETZ,
- KBD_TYPE_HYUNDAI,
- KBD_TYPE_FE2010,
- KBD_TYPE_XTCLONE
-};
-
-typedef struct xtkbd_t {
- int want_irq;
- int blocked;
- int tandy;
-
- uint8_t pa;
- uint8_t pb;
- uint8_t pd;
- uint8_t cfg;
- uint8_t clock;
- uint8_t key_waiting;
- uint8_t type;
- uint8_t pravetz_flags;
- uint8_t cpu_speed;
-
- pc_timer_t send_delay_timer;
-} xtkbd_t;
-
/*XT keyboard has no escape scancodes, and no scancodes beyond 53*/
const scancode scancode_xt[512] = {
// clang-format off
@@ -609,810 +555,66 @@ const scancode scancode_xt[512] = {
// clang-format on
};
-static uint8_t key_queue[16];
-static int key_queue_start = 0;
-static int key_queue_end = 0;
-static int is_tandy = 0;
-static int is_t1x00 = 0;
-static int is_amstrad = 0;
-
-#ifdef ENABLE_KEYBOARD_XT_LOG
-int keyboard_xt_do_log = ENABLE_KEYBOARD_XT_LOG;
-
-static void
-kbd_log(const char *fmt, ...)
-{
- va_list ap;
-
- if (keyboard_xt_do_log) {
- va_start(ap, fmt);
- pclog_ex(fmt, ap);
- va_end(ap);
- }
-}
-#else
-# define kbd_log(fmt, ...)
-#endif
-
-static uint8_t
-get_fdd_switch_settings(void)
-{
-
- uint8_t fdd_count = 0;
-
- for (uint8_t i = 0; i < FDD_NUM; i++) {
- if (fdd_get_flags(i))
- fdd_count++;
- }
-
- if (!fdd_count)
- return 0x00;
- else
- return ((fdd_count - 1) << 6) | 0x01;
-}
-
-static uint8_t
-get_videomode_switch_settings(void)
-{
-
- if (video_is_mda())
- return 0x30;
- else if (video_is_cga())
- return 0x20; /* 0x10 would be 40x25 */
- else
- return 0x00;
-}
-
-static void
-kbd_poll(void *priv)
-{
- xtkbd_t *kbd = (xtkbd_t *) priv;
-
- timer_advance_u64(&kbd->send_delay_timer, 1000 * TIMER_USEC);
-
- if (!(kbd->pb & 0x40) && (kbd->type != KBD_TYPE_TANDY))
- return;
-
- if (kbd->want_irq) {
- kbd->want_irq = 0;
- kbd->pa = kbd->key_waiting;
- kbd->blocked = 1;
- picint(2);
-#ifdef ENABLE_KEYBOARD_XT_LOG
- kbd_log("XTkbd: kbd_poll(): keyboard_xt : take IRQ\n");
-#endif
- }
-
- if ((key_queue_start != key_queue_end) && !kbd->blocked) {
- kbd->key_waiting = key_queue[key_queue_start];
- kbd_log("XTkbd: reading %02X from the key queue at %i\n",
- kbd->key_waiting, key_queue_start);
- key_queue_start = (key_queue_start + 1) & 0x0f;
- kbd->want_irq = 1;
- }
-}
-
-static void
-kbd_adddata(uint16_t val)
-{
- /* Test for T1000 'Fn' key (Right Alt / Right Ctrl) */
- if (is_t1x00) {
- if (keyboard_recv(0x138) || keyboard_recv(0x11d)) { /* 'Fn' pressed */
- t1000_syskey(0x00, 0x04, 0x00); /* Set 'Fn' indicator */
- switch (val) {
- case 0x45: /* Num Lock => toggle numpad */
- t1000_syskey(0x00, 0x00, 0x10);
- break;
- case 0x47: /* Home => internal display */
- t1000_syskey(0x40, 0x00, 0x00);
- break;
- case 0x49: /* PgDn => turbo on */
- t1000_syskey(0x80, 0x00, 0x00);
- break;
- case 0x4D: /* Right => toggle LCD font */
- t1000_syskey(0x00, 0x00, 0x20);
- break;
- case 0x4F: /* End => external display */
- t1000_syskey(0x00, 0x40, 0x00);
- break;
- case 0x51: /* PgDn => turbo off */
- t1000_syskey(0x00, 0x80, 0x00);
- break;
- case 0x54: /* SysRQ => toggle window */
- t1000_syskey(0x00, 0x00, 0x08);
- break;
-
- default:
- break;
- }
- } else
- t1000_syskey(0x04, 0x00, 0x00); /* Reset 'Fn' indicator */
- }
-
- key_queue[key_queue_end] = val;
- kbd_log("XTkbd: %02X added to key queue at %i\n",
- val, key_queue_end);
- key_queue_end = (key_queue_end + 1) & 0x0f;
-}
-
-void
-kbd_adddata_process(uint16_t val, void (*adddata)(uint16_t val))
-{
- uint8_t num_lock = 0;
- uint8_t shift_states = 0;
-
- if (!adddata)
- return;
-
- keyboard_get_states(NULL, &num_lock, NULL, NULL);
- shift_states = keyboard_get_shift() & STATE_LSHIFT;
-
- if (is_amstrad)
- num_lock = !num_lock;
-
- /* If NumLock is on, invert the left shift state so we can always check for
- the the same way flag being set (and with NumLock on that then means it
- is actually *NOT* set). */
- if (num_lock)
- shift_states ^= STATE_LSHIFT;
-
- switch (val) {
- case FAKE_LSHIFT_ON:
- /* If NumLock is on, fake shifts are sent when shift is *NOT* presed,
- if NumLock is off, fake shifts are sent when shift is pressed. */
- if (shift_states) {
- /* Send fake shift. */
- adddata(num_lock ? 0x2a : 0xaa);
- }
- break;
- case FAKE_LSHIFT_OFF:
- if (shift_states) {
- /* Send fake shift. */
- adddata(num_lock ? 0xaa : 0x2a);
- }
- break;
- default:
- adddata(val);
- break;
- }
-}
-
-static void
-kbd_adddata_ex(uint16_t val)
-{
- kbd_adddata_process(val, kbd_adddata);
-}
-
-static void
-kbd_write(uint16_t port, uint8_t val, void *priv)
-{
- xtkbd_t *kbd = (xtkbd_t *) priv;
- uint8_t bit;
- uint8_t set;
- uint8_t new_clock;
-
- switch (port) {
- case 0x61: /* Keyboard Control Register (aka Port B) */
- if (!(val & 0x80) || (kbd->type == KBD_TYPE_HYUNDAI)) {
- new_clock = !!(val & 0x40);
- if (!kbd->clock && new_clock) {
- key_queue_start = key_queue_end = 0;
- kbd->want_irq = 0;
- kbd->blocked = 0;
- kbd_adddata(0xaa);
- }
- }
-
- kbd->pb = val;
- if (!(kbd->pb & 0x80) || (kbd->type == KBD_TYPE_HYUNDAI))
- kbd->clock = !!(kbd->pb & 0x40);
- ppi.pb = val;
-
- timer_process();
-
- if (((kbd->type == KBD_TYPE_PC81) || (kbd->type == KBD_TYPE_PC82) ||
- (kbd->type == KBD_TYPE_PRAVETZ)) && (cassette != NULL))
- pc_cas_set_motor(cassette, (kbd->pb & 0x08) == 0);
-
- speaker_update();
-
- speaker_gated = val & 1;
- speaker_enable = val & 2;
-
- if (speaker_enable)
- was_speaker_enable = 1;
- pit_devs[0].set_gate(pit_devs[0].data, 2, val & 1);
-
- if (val & 0x80) {
- kbd->pa = 0;
- kbd->blocked = 0;
- picintc(2);
- }
-
-#ifdef ENABLE_KEYBOARD_XT_LOG
- if ((kbd->type == KBD_TYPE_PC81) || (kbd->type == KBD_TYPE_PC82) || (kbd->type == KBD_TYPE_PRAVETZ))
- kbd_log("XTkbd: Cassette motor is %s\n", !(val & 0x08) ? "ON" : "OFF");
-#endif
- break;
-
- case 0x62: /* Switch Register (aka Port C) */
-#ifdef ENABLE_KEYBOARD_XT_LOG
- if ((kbd->type == KBD_TYPE_PC81) || (kbd->type == KBD_TYPE_PC82) || (kbd->type == KBD_TYPE_PRAVETZ))
- kbd_log("XTkbd: Cassette IN is %i\n", !!(val & 0x10));
-#endif
- if (kbd->type == KBD_TYPE_FE2010) {
- kbd_log("XTkbd: Switch register in is %02X\n", val);
- if (!(kbd->cfg & 0x08))
- kbd->pd = (kbd->pd & 0x30) | (val & 0xcf);
- }
- break;
-
- case 0x63:
- if (kbd->type == KBD_TYPE_FE2010) {
- kbd_log("XTkbd: Configuration register in is %02X\n", val);
- if (!(kbd->cfg & 0x08))
- kbd->cfg = val;
- }
- break;
-
- case 0xc0 ... 0xcf: /* Pravetz Flags */
- kbd_log("XTkbd: Port %02X out: %02X\n", port, val);
- if (kbd->type == KBD_TYPE_PRAVETZ) {
- bit = (port >> 1) & 0x07;
- set = (port & 0x01) << bit;
- kbd->pravetz_flags = (kbd->pravetz_flags & ~(1 << bit)) | set;
- }
- break;
-
- case 0x1f0:
- kbd_log("XTkbd: Port %04X out: %02X\n", port, val);
- if (kbd->type == KBD_TYPE_VTECH) {
- kbd->cpu_speed = val;
- cpu_dynamic_switch(kbd->cpu_speed >> 7);
- }
- break;
-
- default:
- break;
- }
-}
-
-static uint8_t
-kbd_read(uint16_t port, void *priv)
-{
- const xtkbd_t *kbd = (xtkbd_t *) priv;
- uint8_t ret = 0xff;
-
- switch (port) {
- case 0x60: /* Keyboard Data Register (aka Port A) */
- if ((kbd->pb & 0x80) && ((kbd->type == KBD_TYPE_PC81) ||
- (kbd->type == KBD_TYPE_PC82) || (kbd->type == KBD_TYPE_PRAVETZ) ||
- (kbd->type == KBD_TYPE_XT82) || (kbd->type == KBD_TYPE_XT86) ||
- (kbd->type == KBD_TYPE_XTCLONE) || (kbd->type == KBD_TYPE_COMPAQ) ||
- (kbd->type == KBD_TYPE_ZENITH) || (kbd->type == KBD_TYPE_HYUNDAI) ||
- (kbd->type == KBD_TYPE_VTECH))) {
- if ((kbd->type == KBD_TYPE_PC81) || (kbd->type == KBD_TYPE_PC82) ||
- (kbd->type == KBD_TYPE_XTCLONE) || (kbd->type == KBD_TYPE_COMPAQ) ||
- (kbd->type == KBD_TYPE_PRAVETZ) || (kbd->type == KBD_TYPE_HYUNDAI))
- ret = (kbd->pd & ~0x02) | (hasfpu ? 0x02 : 0x00);
- else if ((kbd->type == KBD_TYPE_XT82) || (kbd->type == KBD_TYPE_XT86) ||
- (kbd->type == KBD_TYPE_VTECH))
- /* According to Ruud on the PCem forum, this is supposed to
- return 0xFF on the XT. */
- ret = 0xff;
- else if (kbd->type == KBD_TYPE_ZENITH) {
- /* Zenith Data Systems Z-151
- * SW1 switch settings:
- * bits 6-7: floppy drive number
- * bits 4-5: video mode
- * bit 2-3: base memory size
- * bit 1: fpu enable
- * bit 0: fdc enable
- */
- ret = get_fdd_switch_settings();
-
- ret |= get_videomode_switch_settings();
-
- /* Base memory size should always be 64k */
- ret |= 0x0c;
-
- if (hasfpu)
- ret |= 0x02;
- }
- } else
- ret = kbd->pa;
- break;
-
- case 0x61: /* Keyboard Control Register (aka Port B) */
- ret = kbd->pb;
- break;
-
- case 0x62: /* Switch Register (aka Port C) */
- if (kbd->type == KBD_TYPE_FE2010) {
- if (kbd->pb & 0x04) /* PB2 */
- ret = (kbd->pd & 0x0d) | (hasfpu ? 0x02 : 0x00);
- else
- ret = kbd->pd >> 4;
- } else if ((kbd->type == KBD_TYPE_PC81) || (kbd->type == KBD_TYPE_PC82) ||
- (kbd->type == KBD_TYPE_PRAVETZ)) {
- if (kbd->pb & 0x04) /* PB2 */
- switch (mem_size + isa_mem_size) {
- case 64:
- case 48:
- case 32:
- case 16:
- ret = 0x00;
- break;
- default:
- ret = (((mem_size + isa_mem_size) - 64) / 32) & 0x0f;
- break;
- }
- else
- ret = (((mem_size + isa_mem_size) - 64) / 32) >> 4;
- } else if ((kbd->type == KBD_TYPE_OLIVETTI) ||
- (kbd->type == KBD_TYPE_ZENITH)) {
- /* Olivetti M19 or Zenith Data Systems Z-151 */
- if (kbd->pb & 0x04) /* PB2 */
- ret = kbd->pd & 0xbf;
- else
- ret = kbd->pd >> 4;
- } else {
- if (kbd->pb & 0x08) /* PB3 */
- ret = kbd->pd >> 4;
- else
- ret = (kbd->pd & 0x0d) | (hasfpu ? 0x02 : 0x00);
- }
- ret |= (ppispeakon ? 0x20 : 0);
-
- /* This is needed to avoid error 131 (cassette error).
- This is serial read: bit 5 = clock, bit 4 = data, cassette header is 256 x 0xff. */
- if ((kbd->type == KBD_TYPE_PC81) || (kbd->type == KBD_TYPE_PC82) ||
- (kbd->type == KBD_TYPE_PRAVETZ)) {
- if (cassette == NULL)
- ret |= (ppispeakon ? 0x10 : 0);
- else
- ret |= (pc_cas_get_inp(cassette) ? 0x10 : 0);
- }
-
- if (kbd->type == KBD_TYPE_TANDY)
- ret |= (tandy1k_eeprom_read() ? 0x10 : 0);
- break;
-
- case 0x63: /* Keyboard Configuration Register (aka Port D) */
- if ((kbd->type == KBD_TYPE_XT82) || (kbd->type == KBD_TYPE_XT86) ||
- (kbd->type == KBD_TYPE_XTCLONE) || (kbd->type == KBD_TYPE_COMPAQ) ||
- (kbd->type == KBD_TYPE_TOSHIBA) || (kbd->type == KBD_TYPE_HYUNDAI) ||
- (kbd->type == KBD_TYPE_VTECH))
- ret = kbd->pd;
- break;
-
- case 0xc0: /* Pravetz Flags */
- if (kbd->type == KBD_TYPE_PRAVETZ)
- ret = kbd->pravetz_flags;
- kbd_log("XTkbd: Port %02X in : %02X\n", port, ret);
- break;
-
- case 0x1f0:
- if (kbd->type == KBD_TYPE_VTECH)
- ret = kbd->cpu_speed;
- kbd_log("XTkbd: Port %04X in : %02X\n", port, ret);
- break;
-
- default:
- break;
- }
-
- return ret;
-}
-
-static void
-kbd_reset(void *priv)
-{
- xtkbd_t *kbd = (xtkbd_t *) priv;
-
- kbd->want_irq = 0;
- kbd->blocked = 0;
- kbd->pa = 0x00;
- kbd->pb = 0x00;
- kbd->pravetz_flags = 0x00;
-
- keyboard_scan = 1;
-
- key_queue_start = 0;
- key_queue_end = 0;
-}
-
-void
-keyboard_set_is_amstrad(int ams)
-{
- is_amstrad = ams;
-}
+typedef struct {
+ int type;
+} kbd_t;
static void *
kbd_init(const device_t *info)
{
- xtkbd_t *kbd;
+ kbd_t *dev = (kbd_t *) calloc(1, sizeof(kbd_t));
- kbd = (xtkbd_t *) calloc(1, sizeof(xtkbd_t));
+ dev->type = info->local;
- io_sethandler(0x0060, 4,
- kbd_read, NULL, NULL, kbd_write, NULL, NULL, kbd);
- keyboard_send = kbd_adddata_ex;
- kbd->type = info->local;
- if (kbd->type == KBD_TYPE_VTECH)
- kbd->cpu_speed = (!!cpu) << 2;
- kbd_reset(kbd);
- if (kbd->type == KBD_TYPE_PRAVETZ)
- io_sethandler(0x00c0, 16,
- kbd_read, NULL, NULL, kbd_write, NULL, NULL, kbd);
- if (kbd->type == KBD_TYPE_VTECH)
- io_sethandler(0x01f0, 1,
- kbd_read, NULL, NULL, kbd_write, NULL, NULL, kbd);
+ if (dev->type == KBD_83_KEY)
+ keyboard_set_table(scancode_xt);
+ else
+ keyboard_set_table(scancode_set1);
- key_queue_start = key_queue_end = 0;
-
- video_reset(gfxcard[0]);
-
- if ((kbd->type == KBD_TYPE_PC81) || (kbd->type == KBD_TYPE_PC82) ||
- (kbd->type == KBD_TYPE_PRAVETZ) || (kbd->type == KBD_TYPE_XT82) ||
- (kbd->type <= KBD_TYPE_XT86) || (kbd->type == KBD_TYPE_XTCLONE) ||
- (kbd->type == KBD_TYPE_COMPAQ) || (kbd->type == KBD_TYPE_TOSHIBA) ||
- (kbd->type == KBD_TYPE_OLIVETTI) || (kbd->type == KBD_TYPE_HYUNDAI) ||
- (kbd->type == KBD_TYPE_VTECH) || (kbd->type == KBD_TYPE_FE2010)) {
- /* DIP switch readout: bit set = OFF, clear = ON. */
- if (kbd->type == KBD_TYPE_OLIVETTI)
- /* Olivetti M19
- * Jumpers J1, J2 - monitor type.
- * 01 - mono (high-res)
- * 10 - color (low-res, disables 640x400x2 mode)
- * 00 - autoswitching
- */
- kbd->pd |= 0x00;
- else
- /* Switches 7, 8 - floppy drives. */
- kbd->pd = get_fdd_switch_settings();
-
- /* Switches 5, 6 - video card type */
- kbd->pd |= get_videomode_switch_settings();
-
- /* Switches 3, 4 - memory size. */
- if ((kbd->type == KBD_TYPE_XT86) || (kbd->type == KBD_TYPE_XTCLONE) ||
- (kbd->type == KBD_TYPE_HYUNDAI) || (kbd->type == KBD_TYPE_COMPAQ) ||
- (kbd->type == KBD_TYPE_TOSHIBA) || (kbd->type == KBD_TYPE_FE2010)) {
- switch (mem_size) {
- case 256:
- kbd->pd |= 0x00;
- break;
- case 512:
- kbd->pd |= 0x04;
- break;
- case 576:
- kbd->pd |= 0x08;
- break;
- case 640:
- default:
- kbd->pd |= 0x0c;
- break;
- }
- } else if ((kbd->type == KBD_TYPE_XT82) || (kbd->type == KBD_TYPE_VTECH)) {
- switch (mem_size) {
- case 64: /* 1x64k */
- kbd->pd |= 0x00;
- break;
- case 128: /* 2x64k */
- kbd->pd |= 0x04;
- break;
- case 192: /* 3x64k */
- kbd->pd |= 0x08;
- break;
- case 256: /* 4x64k */
- default:
- kbd->pd |= 0x0c;
- break;
- }
- } else if (kbd->type == KBD_TYPE_PC82) {
- switch (mem_size) {
-#ifdef PC82_192K_3BANK
- case 192: /* 3x64k, not supported by stock BIOS due to bugs */
- kbd->pd |= 0x08;
- break;
-#else
- case 192: /* 2x64k + 2x32k */
-#endif
- case 64: /* 4x16k */
- case 96: /* 2x32k + 2x16k */
- case 128: /* 4x32k */
- case 160: /* 2x64k + 2x16k */
- case 224: /* 3x64k + 1x32k */
- case 256: /* 4x64k */
- default:
- kbd->pd |= 0x0c;
- break;
- }
- } else { /* really just the PC '81 */
- switch (mem_size) {
- case 16: /* 1x16k */
- kbd->pd |= 0x00;
- break;
- case 32: /* 2x16k */
- kbd->pd |= 0x04;
- break;
- case 48: /* 3x16k */
- kbd->pd |= 0x08;
- break;
- case 64: /* 4x16k */
- default:
- kbd->pd |= 0x0c;
- break;
- }
- }
-
- /* Switch 2 - 8087 FPU. */
- if (hasfpu)
- kbd->pd |= 0x02;
- } else if (kbd->type == KBD_TYPE_ZENITH) {
- /* Zenith Data Systems Z-151
- * SW2 switch settings:
- * bit 7: monitor frequency
- * bits 5-6: autoboot (00-11 resident monitor, 10 hdd, 01 fdd)
- * bits 0-4: installed memory
- */
- kbd->pd = 0x20;
- switch (mem_size) {
- case 128:
- kbd->pd |= 0x02;
- break;
- case 192:
- kbd->pd |= 0x04;
- break;
- case 256:
- kbd->pd |= 0x06;
- break;
- case 320:
- kbd->pd |= 0x08;
- break;
- case 384:
- kbd->pd |= 0x0a;
- break;
- case 448:
- kbd->pd |= 0x0c;
- break;
- case 512:
- kbd->pd |= 0x0e;
- break;
- case 576:
- kbd->pd |= 0x10;
- break;
- case 640:
- default:
- kbd->pd |= 0x12;
- break;
- }
- }
-
- timer_add(&kbd->send_delay_timer, kbd_poll, kbd, 1);
-
- keyboard_set_table(scancode_xt);
-
- is_tandy = (kbd->type == KBD_TYPE_TANDY);
- is_t1x00 = (kbd->type == KBD_TYPE_TOSHIBA);
-
- is_amstrad = 0;
-
- return kbd;
+ return dev;
}
static void
kbd_close(void *priv)
{
- xtkbd_t *kbd = (xtkbd_t *) priv;
-
- /* Stop the timer. */
- timer_disable(&kbd->send_delay_timer);
-
- /* Disable scanning. */
- keyboard_scan = 0;
-
- keyboard_send = NULL;
-
- io_removehandler(0x0060, 4,
- kbd_read, NULL, NULL, kbd_write, NULL, NULL, kbd);
+ kbd_t *kbd = (kbd_t *) priv;
free(kbd);
}
-const device_t keyboard_pc_device = {
- .name = "IBM PC Keyboard (1981)",
- .internal_name = "keyboard_pc",
- .flags = 0,
- .local = KBD_TYPE_PC81,
- .init = kbd_init,
- .close = kbd_close,
- .reset = kbd_reset,
- .available = NULL,
- .speed_changed = NULL,
- .force_redraw = NULL,
- .config = NULL
+static const device_config_t keyboard_pc_xt_config[] = {
+ // clang-format off
+ {
+ .name = "keys",
+ .description = "Keys",
+ .type = CONFIG_SELECTION,
+ .default_string = NULL,
+ .default_int = KBD_83_KEY,
+ .file_filter = NULL,
+ .spinner = { 0 },
+ .selection = {
+ { .description = "83", .value = KBD_83_KEY },
+ { .description = "101 (ANSI)", .value = KBD_101_KEY },
+ { .description = "102 (ISO)", .value = KBD_102_KEY }
+ },
+ .bios = { { 0 } }
+ },
+ {
+ .name = "", .description = "", .type = CONFIG_END
+ }
+ // clang-format on
};
-const device_t keyboard_pc82_device = {
- .name = "IBM PC Keyboard (1982)",
- .internal_name = "keyboard_pc82",
- .flags = 0,
- .local = KBD_TYPE_PC82,
+const device_t keyboard_pc_xt_device = {
+ .name = "PC/XT Keyboard",
+ .internal_name = "keyboard_pc_xt",
+ .flags = DEVICE_XT_KBC,
+ .local = 0,
.init = kbd_init,
.close = kbd_close,
- .reset = kbd_reset,
+ .reset = NULL,
.available = NULL,
.speed_changed = NULL,
.force_redraw = NULL,
- .config = NULL
-};
-
-const device_t keyboard_pravetz_device = {
- .name = "Pravetz Keyboard",
- .internal_name = "keyboard_pravetz",
- .flags = 0,
- .local = KBD_TYPE_PRAVETZ,
- .init = kbd_init,
- .close = kbd_close,
- .reset = kbd_reset,
- .available = NULL,
- .speed_changed = NULL,
- .force_redraw = NULL,
- .config = NULL
-};
-
-const device_t keyboard_xt_device = {
- .name = "XT (1982) Keyboard",
- .internal_name = "keyboard_xt",
- .flags = 0,
- .local = KBD_TYPE_XT82,
- .init = kbd_init,
- .close = kbd_close,
- .reset = kbd_reset,
- .available = NULL,
- .speed_changed = NULL,
- .force_redraw = NULL,
- .config = NULL
-};
-
-const device_t keyboard_xt86_device = {
- .name = "XT (1986) Keyboard",
- .internal_name = "keyboard_xt86",
- .flags = 0,
- .local = KBD_TYPE_XT86,
- .init = kbd_init,
- .close = kbd_close,
- .reset = kbd_reset,
- .available = NULL,
- .speed_changed = NULL,
- .force_redraw = NULL,
- .config = NULL
-};
-
-const device_t keyboard_xt_compaq_device = {
- .name = "Compaq Portable Keyboard",
- .internal_name = "keyboard_xt_compaq",
- .flags = 0,
- .local = KBD_TYPE_COMPAQ,
- .init = kbd_init,
- .close = kbd_close,
- .reset = kbd_reset,
- .available = NULL,
- .speed_changed = NULL,
- .force_redraw = NULL,
- .config = NULL
-};
-
-const device_t keyboard_tandy_device = {
- .name = "Tandy 1000 Keyboard",
- .internal_name = "keyboard_tandy",
- .flags = 0,
- .local = KBD_TYPE_TANDY,
- .init = kbd_init,
- .close = kbd_close,
- .reset = kbd_reset,
- .available = NULL,
- .speed_changed = NULL,
- .force_redraw = NULL,
- .config = NULL
-};
-
-const device_t keyboard_xt_t1x00_device = {
- .name = "Toshiba T1x00 Keyboard",
- .internal_name = "keyboard_xt_t1x00",
- .flags = 0,
- .local = KBD_TYPE_TOSHIBA,
- .init = kbd_init,
- .close = kbd_close,
- .reset = kbd_reset,
- .available = NULL,
- .speed_changed = NULL,
- .force_redraw = NULL,
- .config = NULL
-};
-
-const device_t keyboard_xt_lxt3_device = {
- .name = "VTech Laser Turbo XT Keyboard",
- .internal_name = "keyboard_xt_lxt",
- .flags = 0,
- .local = KBD_TYPE_VTECH,
- .init = kbd_init,
- .close = kbd_close,
- .reset = kbd_reset,
- .available = NULL,
- .speed_changed = NULL,
- .force_redraw = NULL,
- .config = NULL
-};
-
-const device_t keyboard_xt_olivetti_device = {
- .name = "Olivetti XT Keyboard",
- .internal_name = "keyboard_xt_olivetti",
- .flags = 0,
- .local = KBD_TYPE_OLIVETTI,
- .init = kbd_init,
- .close = kbd_close,
- .reset = kbd_reset,
- .available = NULL,
- .speed_changed = NULL,
- .force_redraw = NULL,
- .config = NULL
-};
-
-const device_t keyboard_xt_zenith_device = {
- .name = "Zenith XT Keyboard",
- .internal_name = "keyboard_xt_zenith",
- .flags = 0,
- .local = KBD_TYPE_ZENITH,
- .init = kbd_init,
- .close = kbd_close,
- .reset = kbd_reset,
- .available = NULL,
- .speed_changed = NULL,
- .force_redraw = NULL,
- .config = NULL
-};
-
-const device_t keyboard_xt_hyundai_device = {
- .name = "Hyundai XT Keyboard",
- .internal_name = "keyboard_xt_hyundai",
- .flags = 0,
- .local = KBD_TYPE_HYUNDAI,
- .init = kbd_init,
- .close = kbd_close,
- .reset = kbd_reset,
- .available = NULL,
- .speed_changed = NULL,
- .force_redraw = NULL,
- .config = NULL
-};
-
-const device_t keyboard_xt_fe2010_device = {
- .name = "Faraday FE2010 XT Keyboard",
- .internal_name = "keyboard_xt_fe2010",
- .flags = 0,
- .local = KBD_TYPE_FE2010,
- .init = kbd_init,
- .close = kbd_close,
- .reset = kbd_reset,
- .available = NULL,
- .speed_changed = NULL,
- .force_redraw = NULL,
- .config = NULL
-};
-
-const device_t keyboard_xtclone_device = {
- .name = "XT (Clone) Keyboard",
- .internal_name = "keyboard_xtclone",
- .flags = 0,
- .local = KBD_TYPE_XTCLONE,
- .init = kbd_init,
- .close = kbd_close,
- .reset = kbd_reset,
- .available = NULL,
- .speed_changed = NULL,
- .force_redraw = NULL,
- .config = NULL
+ .config = keyboard_pc_xt_config
};
diff --git a/src/include/86box/keyboard.h b/src/include/86box/keyboard.h
index 62938fae4..86cea515e 100644
--- a/src/include/86box/keyboard.h
+++ b/src/include/86box/keyboard.h
@@ -22,6 +22,21 @@
#ifndef EMU_KEYBOARD_H
#define EMU_KEYBOARD_H
+#define FLAG_AT 0x00 /* dev is AT */
+#define FLAG_PS2_KBD 0x10 /* dev is AT or PS/2 */
+#define FLAG_AX 0x08 /* dev is AX */
+#define FLAG_TYPE_MASK 0x07 /* mask for type */
+
+enum {
+ KBD_83_KEY = 0,
+ KBD_84_KEY,
+ KBD_101_KEY,
+ KBD_102_KEY,
+ KBD_JIS,
+ KBD_KSC,
+ KBD_ABNT2
+};
+
enum {
DEV_KBD = 0,
DEV_AUX = 1
@@ -38,6 +53,15 @@ enum {
DEV_STATE_MAIN_WANT_EXECUTE_BAT = 7
};
+enum {
+ KEYBOARD_TYPE_INTERNAL = 0,
+ KEYBOARD_TYPE_PC_XT,
+ KEYBOARD_TYPE_AT,
+ KEYBOARD_TYPE_AX,
+ KEYBOARD_TYPE_PS2,
+ KEYBOARD_TYPE_PS55
+};
+
/* Used by the AT / PS/2 keyboard controller, common device, keyboard, and mouse. */
typedef struct kbc_at_port_t {
uint8_t wantcmd;
@@ -194,6 +218,8 @@ typedef struct scancode {
extern "C" {
#endif
+extern int keyboard_type;
+
extern uint8_t keyboard_mode;
extern int keyboard_scan;
@@ -216,51 +242,56 @@ extern int mouse_scan;
extern kbc_at_port_t *kbc_at_ports[2];
#ifdef EMU_DEVICE_H
-extern const device_t keyboard_pc_device;
-extern const device_t keyboard_pc82_device;
-extern const device_t keyboard_pravetz_device;
-extern const device_t keyboard_xt_device;
-extern const device_t keyboard_xt86_device;
-extern const device_t keyboard_xt_compaq_device;
-extern const device_t keyboard_xt_t1x00_device;
-extern const device_t keyboard_tandy_device;
-extern const device_t keyboard_xt_lxt3_device;
-extern const device_t keyboard_xt_olivetti_device;
-extern const device_t keyboard_xt_zenith_device;
-extern const device_t keyboard_xt_hyundai_device;
-extern const device_t keyboard_xt_fe2010_device;
-extern const device_t keyboard_xtclone_device;
-extern const device_t keyboard_at_device;
-extern const device_t keyboard_at_ami_device;
-extern const device_t keyboard_at_compaq_device;
-extern const device_t keyboard_at_phoenix_device;
-extern const device_t keyboard_at_ncr_device;
-extern const device_t keyboard_at_olivetti_device;
-extern const device_t keyboard_at_siemens_device;
-extern const device_t keyboard_at_tg_ami_device;
-extern const device_t keyboard_at_toshiba_device;
-extern const device_t keyboard_ps2_device;
-extern const device_t keyboard_ps2_ps1_device;
-extern const device_t keyboard_ps2_ps1_pci_device;
-extern const device_t keyboard_ps2_xi8088_device;
-extern const device_t keyboard_ps2_ami_device;
-extern const device_t keyboard_ps2_compaq_device;
-extern const device_t keyboard_ps2_holtek_device;
-extern const device_t keyboard_ps2_mca_1_device;
-extern const device_t keyboard_ps2_mca_2_device;
-extern const device_t keyboard_ps2_olivetti_device;
-extern const device_t keyboard_ps2_phoenix_device;
-extern const device_t keyboard_ps2_quadtel_device;
-extern const device_t keyboard_ps2_tg_ami_device;
-extern const device_t keyboard_ps2_tg_ami_green_device;
-extern const device_t keyboard_ps2_pci_device;
-extern const device_t keyboard_ps2_ami_pci_device;
-extern const device_t keyboard_ps2_intel_ami_pci_device;
-extern const device_t keyboard_ps2_acer_pci_device;
-extern const device_t keyboard_ps2_ali_pci_device;
-extern const device_t keyboard_ps2_phoenix_pci_device;
-extern const device_t keyboard_ps2_tg_ami_pci_device;
+extern const device_t kbc_pc_device;
+extern const device_t kbc_pc82_device;
+extern const device_t kbc_pravetz_device;
+extern const device_t kbc_xt_device;
+extern const device_t kbc_xt86_device;
+extern const device_t kbc_xt_compaq_device;
+extern const device_t kbc_xt_t1x00_device;
+extern const device_t kbc_tandy_device;
+extern const device_t kbc_xt_lxt3_device;
+extern const device_t kbc_xt_olivetti_device;
+extern const device_t kbc_xt_zenith_device;
+extern const device_t kbc_xt_hyundai_device;
+extern const device_t kbc_xt_fe2010_device;
+extern const device_t kbc_xtclone_device;
+extern const device_t kbc_at_device;
+extern const device_t kbc_at_ami_device;
+extern const device_t kbc_at_compaq_device;
+extern const device_t kbc_at_phoenix_device;
+extern const device_t kbc_at_ncr_device;
+extern const device_t kbc_at_olivetti_device;
+extern const device_t kbc_at_siemens_device;
+extern const device_t kbc_at_tg_ami_device;
+extern const device_t kbc_at_toshiba_device;
+extern const device_t kbc_ps2_device;
+extern const device_t kbc_ps2_ps1_device;
+extern const device_t kbc_ps2_ps1_pci_device;
+extern const device_t kbc_ps2_xi8088_device;
+extern const device_t kbc_ps2_ami_device;
+extern const device_t kbc_ps2_compaq_device;
+extern const device_t kbc_ps2_holtek_device;
+extern const device_t kbc_ps2_mca_1_device;
+extern const device_t kbc_ps2_mca_2_device;
+extern const device_t kbc_ps2_olivetti_device;
+extern const device_t kbc_ps2_phoenix_device;
+extern const device_t kbc_ps2_quadtel_device;
+extern const device_t kbc_ps2_tg_ami_device;
+extern const device_t kbc_ps2_tg_ami_green_device;
+extern const device_t kbc_ps2_pci_device;
+extern const device_t kbc_ps2_ami_pci_device;
+extern const device_t kbc_ps2_intel_ami_pci_device;
+extern const device_t kbc_ps2_acer_pci_device;
+extern const device_t kbc_ps2_ali_pci_device;
+extern const device_t kbc_ps2_phoenix_pci_device;
+extern const device_t kbc_ps2_tg_ami_pci_device;
+extern const device_t keyboard_pc_xt_device;
+extern const device_t keyboard_at_device;
+extern const device_t keyboard_ax_device;
+extern const device_t keyboard_ps2_device;
+extern const device_t keyboard_ps55_device;
extern const device_t keyboard_at_generic_device;
#endif /*EMU_DEVICE_H*/
@@ -303,6 +334,18 @@ extern atkbc_dev_t *kbc_at_dev_init(uint8_t inst);
passed on incorrectly. */
extern uint16_t convert_scan_code(uint16_t scan_code);
+extern const char * keyboard_get_name(int mouse);
+extern const char * keyboard_get_internal_name(int mouse);
+extern int keyboard_get_from_internal_name(char *s);
+extern int keyboard_has_config(int mouse);
+#ifdef EMU_DEVICE_H
+extern const device_t *keyboard_get_device(int mouse);
+#endif
+extern int keyboard_get_ndev(void);
+extern void keyboard_add_device(void);
+
+extern const scancode scancode_set1[512];
+
#ifdef __cplusplus
}
#endif
diff --git a/src/include/86box/machine.h b/src/include/86box/machine.h
index e3a367853..16ec0bdcb 100644
--- a/src/include/86box/machine.h
+++ b/src/include/86box/machine.h
@@ -85,23 +85,24 @@
#define MACHINE_SOFTFLOAT_ONLY 0x00000001 /* sys requires SoftFloat FPU */
#define MACHINE_VIDEO 0x00000002 /* sys has int video */
#define MACHINE_VIDEO_8514A 0x00000004 /* sys has int video */
-#define MACHINE_VIDEO_XGA 0x00000008 /* sys has int video */
-#define MACHINE_VIDEO_ONLY 0x00000010 /* sys has fixed video */
-#define MACHINE_MOUSE 0x00000020 /* sys has int mouse */
-#define MACHINE_FDC 0x00000040 /* sys has int FDC */
-#define MACHINE_LPT_PRI 0x00000080 /* sys has int pri LPT */
-#define MACHINE_LPT_SEC 0x00000100 /* sys has int sec LPT */
-#define MACHINE_LPT_TER 0x00000200 /* sys has int ter LPT */
-#define MACHINE_PS2_KBC 0x00000400 /* sys has a PS/2 keyboard controller */
+#define MACHINE_VIDEO_ONLY 0x00000008 /* sys has fixed video */
+#define MACHINE_KEYBOARD 0x00000010 /* sys has int keyboard */
+#define MACHINE_AX 0x00000020 /* sys adheres to Japanese AX standard */
+#define MACHINE_KEYBOARD_JIS 0x00000020 /* sys has int keyboard which is Japanese (AX or PS/55) */
+#define MACHINE_MOUSE 0x00000040 /* sys has int mouse */
+#define MACHINE_FDC 0x00000080 /* sys has int FDC */
+#define MACHINE_LPT_PRI 0x00000100 /* sys has int pri LPT */
+#define MACHINE_LPT_SEC 0x00000200 /* sys has int sec LPT */
+#define MACHINE_LPT_TER 0x00000400 /* sys has int ter LPT */
+#define MACHINE_PS2_KBC 0x00000800 /* sys has a PS/2 keyboard controller */
/* this is separate from having PS/2 ports */
-#define MACHINE_UART_PRI 0x00000800 /* sys has int pri UART */
-#define MACHINE_UART_SEC 0x00001000 /* sys has int sec UART */
-#define MACHINE_UART_TER 0x00002000 /* sys has int ter UART */
-#define MACHINE_UART_QUA 0x00004000 /* sys has int qua UART */
-#define MACHINE_GAMEPORT 0x00008000 /* sys has int game port */
-#define MACHINE_SOUND 0x00010000 /* sys has int sound */
-#define MACHINE_NIC 0x00020000 /* sys has int NIC */
-#define MACHINE_AX 0x00040000 /* sys adheres to Japanese AX standard */
+#define MACHINE_UART_PRI 0x00010800 /* sys has int pri UART */
+#define MACHINE_UART_SEC 0x00002000 /* sys has int sec UART */
+#define MACHINE_UART_TER 0x00004000 /* sys has int ter UART */
+#define MACHINE_UART_QUA 0x00008000 /* sys has int qua UART */
+#define MACHINE_GAMEPORT 0x00010000 /* sys has int game port */
+#define MACHINE_SOUND 0x00020000 /* sys has int sound */
+#define MACHINE_NIC 0x00040000 /* sys has int NIC */
/* Feature flags for advanced devices. */
#define MACHINE_APM 0x00080000 /* sys has APM */
#define MACHINE_ACPI 0x00100000 /* sys has ACPI */
@@ -338,6 +339,7 @@ typedef struct _machine_ {
uint32_t gpio_acpi;
#ifdef EMU_DEVICE_H
const device_t *device;
+ const device_t *kbd_device;
const device_t *fdc_device;
const device_t *sio_device;
const device_t *vid_device;
@@ -345,6 +347,7 @@ typedef struct _machine_ {
const device_t *net_device;
#else
void *device;
+ void *kbd_device;
void *fdc_device;
void *sio_device;
void *vid_device;
diff --git a/src/include/86box/mouse.h b/src/include/86box/mouse.h
index 79325edef..95248105d 100644
--- a/src/include/86box/mouse.h
+++ b/src/include/86box/mouse.h
@@ -26,7 +26,7 @@
#endif
#define MOUSE_TYPE_NONE 0 /* no mouse configured */
-#define MOUSE_TYPE_INTERNAL 1 /* achine has internal mouse */
+#define MOUSE_TYPE_INTERNAL 1 /* machine has internal mouse */
#define MOUSE_TYPE_LOGIBUS 2 /* Logitech/ATI Bus Mouse */
#define MOUSE_TYPE_INPORT 3 /* Microsoft InPort Mouse */
#if 0
diff --git a/src/machine/m_at.c b/src/machine/m_at.c
index d2c4b99a2..2625fc57b 100644
--- a/src/machine/m_at.c
+++ b/src/machine/m_at.c
@@ -95,7 +95,7 @@ machine_at_init(const machine_t *model)
{
machine_at_common_init(model);
- device_add(&keyboard_at_device);
+ device_add(&kbc_at_device);
}
static void
@@ -103,7 +103,7 @@ machine_at_ibm_common_init(const machine_t *model)
{
machine_at_common_init_ex(model, 1);
- device_add(&keyboard_at_device);
+ device_add(&kbc_at_device);
mem_remap_top(384);
@@ -116,7 +116,7 @@ machine_at_ps2_init(const machine_t *model)
{
machine_at_common_init(model);
- device_add(&keyboard_ps2_device);
+ device_add(&kbc_ps2_device);
}
void
@@ -398,7 +398,7 @@ machine_at_siemens_init(const machine_t *model)
machine_at_common_init_ex(model, 1);
- device_add(&keyboard_at_siemens_device);
+ device_add(&kbc_at_siemens_device);
mem_remap_top(384);
diff --git a/src/machine/m_at_286_386sx.c b/src/machine/m_at_286_386sx.c
index 8a1cadbb7..1886813f9 100644
--- a/src/machine/m_at_286_386sx.c
+++ b/src/machine/m_at_286_386sx.c
@@ -58,7 +58,7 @@ machine_at_mr286_init(const machine_t *model)
return ret;
machine_at_common_ide_init(model);
- device_add(&keyboard_at_device);
+ device_add(&kbc_at_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -69,7 +69,7 @@ machine_at_mr286_init(const machine_t *model)
static void
machine_at_headland_common_init(const machine_t *model, int type)
{
- device_add(&keyboard_at_ami_device);
+ device_add(&kbc_at_ami_device);
if ((type != 2) && (fdc_current[0] == FDC_INTERNAL))
device_add(&fdc_at_device);
@@ -136,7 +136,7 @@ machine_at_quadt286_init(const machine_t *model)
return ret;
machine_at_common_init(model);
- device_add(&keyboard_at_device);
+ device_add(&kbc_at_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -159,7 +159,7 @@ machine_at_quadt386sx_init(const machine_t *model)
return ret;
machine_at_common_init(model);
- device_add(&keyboard_at_device);
+ device_add(&kbc_at_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -226,7 +226,7 @@ machine_at_pbl300sx_init(const machine_t *model)
machine_at_common_init(model);
device_add(&acc2036_device);
- device_add(&keyboard_ps2_phoenix_device);
+ device_add(&kbc_ps2_phoenix_device);
device_add(&um82c862f_ide_device);
if (gfxcard[0] == VID_INTERNAL)
@@ -274,7 +274,7 @@ machine_at_neat_ami_init(const machine_t *model)
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
- device_add(&keyboard_at_ami_device);
+ device_add(&kbc_at_ami_device);
return ret;
}
@@ -301,7 +301,7 @@ machine_at_ataripc4_init(const machine_t *model)
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
- device_add(&keyboard_at_ami_device);
+ device_add(&kbc_at_ami_device);
return ret;
}
@@ -318,7 +318,7 @@ machine_at_px286_init(const machine_t *model)
return ret;
machine_at_common_init(model);
- device_add(&keyboard_at_device);
+ device_add(&kbc_at_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -338,7 +338,7 @@ machine_at_ctat_common_init(const machine_t *model)
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
- device_add(&keyboard_at_phoenix_device);
+ device_add(&kbc_at_phoenix_device);
}
int
@@ -398,14 +398,14 @@ machine_at_scat_init(const machine_t *model, int is_v4, int is_ami)
if (machines[machine].bus_flags & MACHINE_BUS_PS2) {
if (is_ami)
- device_add(&keyboard_ps2_ami_device);
+ device_add(&kbc_ps2_ami_device);
else
- device_add(&keyboard_ps2_device);
+ device_add(&kbc_ps2_device);
} else {
if (is_ami)
- device_add(&keyboard_at_ami_device);
+ device_add(&kbc_at_ami_device);
else
- device_add(&keyboard_at_device);
+ device_add(&kbc_at_device);
}
if (is_v4)
@@ -419,7 +419,7 @@ machine_at_scatsx_init(const machine_t *model)
{
machine_at_common_init(model);
- device_add(&keyboard_at_ami_device);
+ device_add(&kbc_at_ami_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -543,7 +543,7 @@ machine_at_super286c_init(const machine_t *model)
machine_at_common_init(model);
- device_add(&keyboard_at_ami_device);
+ device_add(&kbc_at_ami_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -690,7 +690,7 @@ machine_at_shuttle386sx_init(const machine_t *model)
machine_at_common_init(model);
device_add(&intel_82335_device);
- device_add(&keyboard_at_ami_device);
+ device_add(&kbc_at_ami_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -714,7 +714,7 @@ machine_at_adi386sx_init(const machine_t *model)
device_add(&amstrad_megapc_nvr_device); /* NVR that is initialized to all 0x00's. */
device_add(&intel_82335_device);
- device_add(&keyboard_at_ami_device);
+ device_add(&kbc_at_ami_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -739,7 +739,7 @@ machine_at_wd76c10_init(const machine_t *model)
if (gfxcard[0] == VID_INTERNAL)
device_add(¶dise_wd90c11_megapc_device);
- device_add(&keyboard_ps2_quadtel_device);
+ device_add(&kbc_ps2_quadtel_device);
device_add(&wd76c10_device);
@@ -760,7 +760,7 @@ machine_at_cmdsl386sx16_init(const machine_t *model)
machine_at_common_init(model);
- device_add(&keyboard_ps2_device);
+ device_add(&kbc_ps2_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -788,7 +788,7 @@ machine_at_if386sx_init(const machine_t *model)
machine_at_common_init_ex(model, 2);
device_add(&amstrad_megapc_nvr_device); /* NVR that is initialized to all 0x00's. */
- device_add(&keyboard_at_phoenix_device);
+ device_add(&kbc_at_phoenix_device);
device_add(&neat_sx_device);
@@ -812,9 +812,9 @@ machine_at_scamp_common_init(const machine_t *model, int is_ps2)
machine_at_common_ide_init(model);
if (is_ps2)
- device_add(&keyboard_ps2_ami_device);
+ device_add(&kbc_ps2_ami_device);
else
- device_add(&keyboard_at_ami_device);
+ device_add(&kbc_at_ami_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -1011,7 +1011,7 @@ machine_at_arb1374_init(const machine_t *model)
device_add(&ali1217_device);
device_add(&w83787f_ide_en_device);
- device_add(&keyboard_ps2_ami_device);
+ device_add(&kbc_ps2_ami_device);
return ret;
}
@@ -1032,7 +1032,7 @@ machine_at_sbc350a_init(const machine_t *model)
device_add(&ali1217_device);
device_add(&ide_isa_device);
device_add(&fdc37c665_ide_pri_device);
- device_add(&keyboard_ps2_ami_device);
+ device_add(&kbc_ps2_ami_device);
return ret;
}
@@ -1056,7 +1056,7 @@ machine_at_flytech386_init(const machine_t *model)
if (gfxcard[0] == VID_INTERNAL)
device_add(&tvga8900d_device);
- device_add(&keyboard_at_ami_device);
+ device_add(&kbc_at_ami_device);
return ret;
}
@@ -1076,7 +1076,7 @@ machine_at_325ax_init(const machine_t *model)
device_add(&ali1217_device);
device_add(&fdc_at_device);
- device_add(&keyboard_at_ami_device);
+ device_add(&kbc_at_ami_device);
return ret;
}
@@ -1096,7 +1096,7 @@ machine_at_mr1217_init(const machine_t *model)
device_add(&ali1217_device);
device_add(&fdc_at_device);
- device_add(&keyboard_at_ami_device);
+ device_add(&kbc_at_ami_device);
return ret;
}
@@ -1116,7 +1116,7 @@ machine_at_pja511m_init(const machine_t *model)
device_add_inst(&fdc37c669_device, 1);
device_add_inst(&fdc37c669_device, 2);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&ali6117d_device);
device_add(&sst_flash_29ee010_device);
@@ -1137,7 +1137,7 @@ machine_at_prox1332_init(const machine_t *model)
machine_at_common_init(model);
device_add(&fdc37c669_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&ali6117d_device);
device_add(&sst_flash_29ee010_device);
@@ -1161,7 +1161,7 @@ machine_at_pc8_init(const machine_t *model)
return ret;
machine_at_common_init(model);
- device_add(&keyboard_at_ncr_device);
+ device_add(&kbc_at_ncr_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -1194,7 +1194,7 @@ machine_at_3302_init(const machine_t *model)
if (gfxcard[0] == VID_INTERNAL)
device_add(machine_get_vid_device(machine));
- device_add(&keyboard_at_ncr_device);
+ device_add(&kbc_at_ncr_device);
return ret;
}
@@ -1217,7 +1217,7 @@ machine_at_pc916sx_init(const machine_t *model)
machine_at_common_init(model);
- device_add(&keyboard_at_ncr_device);
+ device_add(&kbc_at_ncr_device);
mem_remap_top(384);
if (fdc_current[0] == FDC_INTERNAL)
@@ -1246,7 +1246,7 @@ machine_at_m290_init(const machine_t *model)
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
- device_add(&keyboard_at_olivetti_device);
+ device_add(&kbc_at_olivetti_device);
return ret;
}
diff --git a/src/machine/m_at_386dx_486.c b/src/machine/m_at_386dx_486.c
index 731b1e2bd..b22974c95 100644
--- a/src/machine/m_at_386dx_486.c
+++ b/src/machine/m_at_386dx_486.c
@@ -64,7 +64,7 @@ machine_at_acc386_init(const machine_t *model)
machine_at_common_init(model);
device_add(&acc2168_device);
- device_add(&keyboard_at_ami_device);
+ device_add(&kbc_at_ami_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -85,7 +85,7 @@ machine_at_asus3863364k_init(const machine_t *model)
machine_at_common_init(model);
device_add(&rabbit_device);
- device_add(&keyboard_at_ami_device);
+ device_add(&kbc_at_ami_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -106,7 +106,7 @@ machine_at_asus386_init(const machine_t *model)
machine_at_common_init(model);
device_add(&rabbit_device);
- device_add(&keyboard_at_ami_device);
+ device_add(&kbc_at_ami_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -126,7 +126,7 @@ machine_at_tandy4000_init(const machine_t *model)
return ret;
machine_at_common_init(model);
- device_add(&keyboard_at_device);
+ device_add(&kbc_at_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -147,7 +147,7 @@ machine_at_dtk461_init(const machine_t *model)
machine_at_common_init(model);
device_add(&sl82c461_device);
- device_add(&keyboard_at_ami_device);
+ device_add(&kbc_at_ami_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -160,7 +160,7 @@ machine_at_sis401_common_init(const machine_t *model)
{
machine_at_common_init(model);
device_add(&sis_85c401_device);
- device_add(&keyboard_at_ami_device);
+ device_add(&kbc_at_ami_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -211,7 +211,7 @@ machine_at_av4_init(const machine_t *model)
machine_at_common_init(model);
device_add(&sis_85c460_device);
- device_add(&keyboard_at_ami_device);
+ device_add(&kbc_at_ami_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -235,7 +235,7 @@ machine_at_valuepoint433_init(const machine_t *model) // hangs without the PS/2
if (gfxcard[0] == VID_INTERNAL)
device_add(&et4000w32_onboard_device);
- device_add(&keyboard_ps2_device);
+ device_add(&kbc_ps2_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -261,7 +261,7 @@ machine_at_ecs386_init(const machine_t *model)
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
- device_add(&keyboard_at_ami_device);
+ device_add(&kbc_at_ami_device);
return ret;
}
@@ -284,7 +284,7 @@ machine_at_spc6000a_init(const machine_t *model)
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
- device_add(&keyboard_at_ami_device);
+ device_add(&kbc_at_ami_device);
return ret;
}
@@ -302,7 +302,7 @@ machine_at_ecs386v_init(const machine_t *model)
machine_at_common_init(model);
device_add(&ali1429_device);
- device_add(&keyboard_ps2_intel_ami_pci_device);
+ device_add(&kbc_ps2_intel_ami_pci_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -324,7 +324,7 @@ machine_at_rycleopardlx_init(const machine_t *model)
machine_at_common_init(model);
device_add(&opti283_device);
- device_add(&keyboard_at_ami_device);
+ device_add(&kbc_at_ami_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -346,7 +346,7 @@ machine_at_486vchd_init(const machine_t *model)
machine_at_common_init(model);
device_add(&via_vt82c49x_device);
- device_add(&keyboard_at_device);
+ device_add(&kbc_at_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -367,7 +367,7 @@ machine_at_cs4031_init(const machine_t *model)
machine_at_common_init(model);
device_add(&cs4031_device);
- device_add(&keyboard_at_ami_device);
+ device_add(&kbc_at_ami_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -388,7 +388,7 @@ machine_at_pb410a_init(const machine_t *model)
machine_at_ibm_common_ide_init(model);
- device_add(&keyboard_ps2_device);
+ device_add(&kbc_ps2_device);
device_add(&acc3221_device);
device_add(&acc2168_device);
@@ -533,7 +533,7 @@ machine_at_acera1g_init(const machine_t *model)
if (gfxcard[0] == VID_INTERNAL)
device_add(&gd5428_onboard_device);
- device_add(&keyboard_ps2_acer_pci_device);
+ device_add(&kbc_ps2_acer_pci_device);
device_add_params(&pc87310_device, (void *) (PC87310_ALI));
device_add(&ide_ali5213_device);
@@ -555,7 +555,7 @@ machine_at_acerv10_init(const machine_t *model)
machine_at_common_init(model);
device_add(&sis_85c461_device);
- device_add(&keyboard_ps2_acer_pci_device);
+ device_add(&kbc_ps2_acer_pci_device);
device_add(&ide_isa_device);
if (fdc_current[0] == FDC_INTERNAL)
@@ -582,7 +582,7 @@ machine_at_decpclpv_init(const machine_t *model)
if (gfxcard[0] == VID_INTERNAL)
device_add(machine_get_vid_device(machine));
- device_add(&keyboard_ps2_phoenix_pci_device);
+ device_add(&kbc_ps2_phoenix_pci_device);
device_add(&ide_isa_2ch_device);
device_add(&fdc37c663_ide_device);
@@ -613,7 +613,7 @@ machine_at_dell466np_init(const machine_t *model)
mem_mapping_set_addr(&bios_mapping, 0x0c0000, 0x40000);
mem_mapping_set_exec(&bios_mapping, rom);
- device_add(&keyboard_ps2_phoenix_pci_device);
+ device_add(&kbc_ps2_phoenix_pci_device);
device_add(&ide_isa_device);
device_add(&fdc37c661_ide_device);
@@ -631,7 +631,7 @@ machine_at_ali1429_common_init(const machine_t *model, int is_green)
else
device_add(&ali1429_device);
- device_add(&keyboard_at_ami_device);
+ device_add(&kbc_at_ami_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -684,7 +684,7 @@ machine_at_opti495_init(const machine_t *model)
device_add(&opti495slc_device);
- device_add(&keyboard_at_device);
+ device_add(&kbc_at_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -699,7 +699,7 @@ machine_at_opti495_ami_common_init(const machine_t *model)
device_add(&opti495sx_device);
- device_add(&keyboard_at_ami_device);
+ device_add(&kbc_at_ami_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -757,7 +757,7 @@ machine_at_c747_init(const machine_t *model)
No idea what KBC it actually has but this produces the
desired behavior: command A9 does absolutely nothing.
*/
- device_add(&keyboard_at_siemens_device);
+ device_add(&kbc_at_siemens_device);
device_add(&um82c862f_ide_device);
return ret;
@@ -777,7 +777,7 @@ machine_at_exp4349_init(const machine_t *model)
machine_at_common_init(model);
device_add(&ali1429g_device);
- device_add(&keyboard_at_ami_device);
+ device_add(&kbc_at_ami_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -795,7 +795,7 @@ machine_at_403tg_common_init(const machine_t *model, int nvr_hack)
device_add(&opti895_device);
- device_add(&keyboard_at_ami_device);
+ device_add(&kbc_at_ami_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -919,7 +919,7 @@ machine_at_pb450_init(const machine_t *model)
device_add(&opti895_device);
device_add(&opti602_device);
device_add(&opti822_device);
- device_add(&keyboard_ps2_phoenix_device);
+ device_add(&kbc_ps2_phoenix_device);
device_add(&fdc37c665_ide_device);
device_add(&ide_opti611_vlb_sec_device);
device_add(&intel_flash_bxt_device);
@@ -950,7 +950,7 @@ machine_at_pc330_6573_common_init(const machine_t *model)
device_add(&opti602_device);
device_add(&opti802g_device);
device_add(&opti822_device);
- device_add(&keyboard_ps2_ami_device);
+ device_add(&kbc_ps2_ami_device);
device_add(&fdc37c665_ide_device);
device_add(&ide_opti611_vlb_device);
device_add(&intel_flash_bxt_device);
@@ -1003,7 +1003,7 @@ machine_at_mvi486_init(const machine_t *model)
device_add(&opti498_device);
- device_add(&keyboard_at_device);
+ device_add(&kbc_at_device);
device_add(&pc87311_ide_device);
return ret;
@@ -1032,7 +1032,7 @@ machine_at_ami471_init(const machine_t *model)
return ret;
machine_at_sis_85c471_common_init(model);
- device_add(&keyboard_at_ami_device);
+ device_add(&kbc_at_ami_device);
return ret;
}
@@ -1054,7 +1054,7 @@ machine_at_advantage40xxd_init(const machine_t *model)
if (gfxcard[0] == VID_INTERNAL)
device_add(machine_get_vid_device(machine));
- device_add(&keyboard_ps2_phoenix_device);
+ device_add(&kbc_ps2_phoenix_device);
device_add(&um82c863f_ide_device);
device_add(&intel_flash_bxt_device);
@@ -1074,7 +1074,7 @@ machine_at_vli486sv2g_init(const machine_t *model)
return ret;
machine_at_sis_85c471_common_init(model);
- device_add(&keyboard_ps2_ami_device);
+ device_add(&kbc_ps2_ami_device);
return ret;
}
@@ -1091,7 +1091,7 @@ machine_at_dtk486_init(const machine_t *model)
return ret;
machine_at_sis_85c471_common_init(model);
- device_add(&keyboard_at_device);
+ device_add(&kbc_at_device);
return ret;
}
@@ -1109,7 +1109,7 @@ machine_at_px471_init(const machine_t *model)
machine_at_sis_85c471_common_init(model);
device_add(&ide_vlb_device);
- device_add(&keyboard_at_device);
+ device_add(&kbc_at_device);
return ret;
}
@@ -1126,7 +1126,7 @@ machine_at_win471_init(const machine_t *model)
return ret;
machine_at_sis_85c471_common_init(model);
- device_add(&keyboard_at_ami_device);
+ device_add(&kbc_at_ami_device);
return ret;
}
@@ -1151,7 +1151,7 @@ machine_at_pci400ca_init(const machine_t *model)
pci_register_slot(0x04, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x05, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
- device_add(&keyboard_at_ami_device);
+ device_add(&kbc_at_ami_device);
device_add(&sio_device);
device_add(&intel_flash_bxt_ami_device);
@@ -1176,7 +1176,7 @@ machine_at_vi15g_init(const machine_t *model)
return ret;
machine_at_sis_85c471_common_init(model);
- device_add(&keyboard_at_ami_device);
+ device_add(&kbc_at_ami_device);
return ret;
}
@@ -1199,7 +1199,7 @@ machine_at_greenb_init(const machine_t *model)
device_add(&contaq_82c597_device);
- device_add(&keyboard_at_ami_device);
+ device_add(&kbc_at_ami_device);
return ret;
}
@@ -1222,7 +1222,7 @@ machine_at_4gpv5_init(const machine_t *model)
device_add(&contaq_82c596a_device);
- device_add(&keyboard_at_device);
+ device_add(&kbc_at_device);
return ret;
}
@@ -1262,7 +1262,7 @@ machine_at_r418_init(const machine_t *model)
pci_register_slot(0x07, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&fdc37c665_device);
- device_add(&keyboard_ps2_pci_device);
+ device_add(&kbc_ps2_pci_device);
return ret;
}
@@ -1288,7 +1288,7 @@ machine_at_m4li_init(const machine_t *model)
pci_register_slot(0x0F, PCI_CARD_NORMAL, 3, 4, 1, 2);
device_add(&fdc37c665_device);
- device_add(&keyboard_ps2_pci_device);
+ device_add(&kbc_ps2_pci_device);
return ret;
}
@@ -1314,7 +1314,7 @@ machine_at_ls486e_init(const machine_t *model)
pci_register_slot(0x06, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&fdc37c665_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
return ret;
}
@@ -1340,7 +1340,7 @@ machine_at_4dps_init(const machine_t *model)
pci_register_slot(0x07, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&w83787f_device);
- device_add(&keyboard_ps2_ami_device);
+ device_add(&kbc_ps2_ami_device);
device_add(&intel_flash_bxt_device);
@@ -1367,7 +1367,7 @@ machine_at_ms4144_init(const machine_t *model)
pci_register_slot(0x0F, PCI_CARD_NORMAL, 3, 4, 1, 2);
device_add(&w83787f_device);
- device_add(&keyboard_at_ami_device);
+ device_add(&kbc_at_ami_device);
device_add(&sst_flash_29ee010_device);
@@ -1396,7 +1396,7 @@ machine_at_acerp3_init(const machine_t *model)
pci_register_slot(0x14, PCI_CARD_NORMAL, 1, 2, 3, 4);
device_add(&fdc37c665_ide_device);
- device_add(&keyboard_ps2_acer_pci_device);
+ device_add(&kbc_ps2_acer_pci_device);
device_add(&ide_cmd640_pci_legacy_only_device);
if (gfxcard[0] == VID_INTERNAL)
@@ -1427,7 +1427,7 @@ machine_at_486sp3c_init(const machine_t *model)
pci_register_slot(0x0A, PCI_CARD_NORMAL, 3, 4, 1, 2);
device_add(&fdc37c665_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&intel_flash_bxt_device);
@@ -1455,7 +1455,7 @@ machine_at_4saw2_init(const machine_t *model)
pci_register_slot(0x11, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&w83787f_device);
- device_add(&keyboard_ps2_pci_device);
+ device_add(&kbc_ps2_pci_device);
device_add(&intel_flash_bxt_device);
@@ -1485,7 +1485,7 @@ machine_at_alfredo_init(const machine_t *model)
pci_register_slot(0x0E, PCI_CARD_NORMAL, 2, 1, 3, 4);
pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 3, 2, 4);
pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
- device_add(&keyboard_ps2_phoenix_device);
+ device_add(&kbc_ps2_phoenix_device);
device_add(&sio_device);
device_add(&fdc37c663_device);
device_add(&intel_flash_bxt_ami_device);
@@ -1514,7 +1514,7 @@ machine_at_ninja_init(const machine_t *model)
pci_register_slot(0x11, PCI_CARD_NORMAL, 1, 2, 1, 2);
pci_register_slot(0x13, PCI_CARD_NORMAL, 2, 1, 2, 1);
pci_register_slot(0x0B, PCI_CARD_NORMAL, 2, 1, 2, 1);
- device_add(&keyboard_ps2_phoenix_device);
+ device_add(&kbc_ps2_phoenix_device);
device_add(&intel_flash_bxt_ami_device);
device_add(&i420ex_device);
@@ -1544,7 +1544,7 @@ machine_at_bat4ip3e_init(const machine_t *model)
pci_register_slot(0x0a, PCI_CARD_NORMAL, 1, 2, 1, 2);
device_add(&phoenix_486_jumper_pci_device);
- device_add(&keyboard_ps2_pci_device);
+ device_add(&kbc_ps2_pci_device);
device_add(&i420ex_device);
device_add(&ide_cmd640_pci_device);
device_add(&fdc37c665_device);
@@ -1571,7 +1571,7 @@ machine_at_486pi_init(const machine_t *model)
pci_register_slot(0x13, PCI_CARD_NORMAL, 2, 1, 2, 1);
pci_register_slot(0x14, PCI_CARD_NORMAL, 1, 2, 1, 2);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&fdc37c665_device);
device_add(&i420ex_device);
@@ -1596,7 +1596,7 @@ machine_at_sb486p_init(const machine_t *model)
pci_register_slot(0x14, PCI_CARD_NORMAL, 1, 2, 1, 2);
pci_register_slot(0x13, PCI_CARD_NORMAL, 2, 1, 2, 1);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&i82091aa_device);
device_add(&i420ex_device);
@@ -1625,7 +1625,7 @@ machine_at_486sp3_init(const machine_t *model)
pci_register_slot(0x05, PCI_CARD_NORMAL, 3, 4, 1, 2); /* 05 = Slot 3 */
pci_register_slot(0x06, PCI_CARD_NORMAL, 4, 1, 2, 3); /* 06 = Slot 4 */
pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
- device_add(&keyboard_at_ami_device); /* Uses the AMIKEY KBC */
+ device_add(&kbc_at_ami_device); /* Uses the AMIKEY KBC */
device_add(&sio_device);
device_add(&fdc37c663_ide_device);
device_add(&sst_flash_29ee010_device);
@@ -1654,7 +1654,7 @@ machine_at_amis76_init(const machine_t *model)
pci_register_slot(0x0E, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x0F, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&sio_device);
device_add(&fdc37c665_device);
device_add(&intel_flash_bxt_ami_device);
@@ -1686,7 +1686,7 @@ machine_at_pci400cb_init(const machine_t *model)
pci_register_slot(0x0E, PCI_CARD_NORMAL, 3, 4, 1, 2); /* 0E = Slot 2 */
pci_register_slot(0x0D, PCI_CARD_NORMAL, 2, 3, 4, 1); /* 0D = Slot 3 */
pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 2, 3, 4); /* 0C = Slot 4 */
- device_add(&keyboard_ps2_ami_pci_device); /* Assume AMI Megakey 1993 standalone ('P')
+ device_add(&kbc_ps2_ami_pci_device); /* Assume AMI Megakey 1993 standalone ('P')
because of the Tekram machine below. */
device_add(&ims8848_device);
@@ -1716,7 +1716,7 @@ machine_at_g486ip_init(const machine_t *model)
pci_register_slot(0x0F, PCI_CARD_NORMAL, 3, 4, 1, 2); /* 03 = Slot 1 */
pci_register_slot(0x0E, PCI_CARD_NORMAL, 2, 3, 4, 1); /* 04 = Slot 2 */
pci_register_slot(0x0D, PCI_CARD_NORMAL, 1, 2, 3, 4); /* 05 = Slot 3 */
- device_add(&keyboard_ps2_ami_pci_device); /* AMI Megakey 1993 stanalone ('P') */
+ device_add(&kbc_ps2_ami_pci_device); /* AMI Megakey 1993 stanalone ('P') */
device_add(&ims8848_device);
@@ -1747,7 +1747,7 @@ machine_at_486sp3g_init(const machine_t *model)
pci_register_slot(0x05, PCI_CARD_NORMAL, 2, 3, 4, 1); /* 05 = Slot 2 */
pci_register_slot(0x04, PCI_CARD_NORMAL, 3, 4, 1, 2); /* 04 = Slot 3 */
pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
- device_add(&keyboard_ps2_ami_pci_device); /* Uses the AMIKEY KBC */
+ device_add(&kbc_ps2_ami_pci_device); /* Uses the AMIKEY KBC */
device_add(&sio_zb_device);
device_add(&pc87332_398_ide_device);
device_add(&sst_flash_29ee010_device);
@@ -1825,7 +1825,7 @@ machine_at_sb486pv_init(const machine_t *model)
if (gfxcard[0] == VID_INTERNAL)
device_add(machine_get_vid_device(machine));
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&sio_zb_device);
device_add(&ide_rz1000_pci_single_channel_device);
device_add(&i82091aa_26e_device);
@@ -1859,7 +1859,7 @@ machine_at_486ap4_init(const machine_t *model)
pci_register_slot(0x0a, PCI_CARD_NORMAL, 2, 3, 4, 1); /* 0a = Slot 2 */
pci_register_slot(0x0b, PCI_CARD_NORMAL, 3, 4, 1, 2); /* 0b = Slot 3 */
pci_register_slot(0x0c, PCI_CARD_NORMAL, 4, 1, 2, 3); /* 0c = Slot 4 */
- device_add(&keyboard_ps2_ami_pci_device); /* Uses the AMIKEY KBC */
+ device_add(&kbc_ps2_ami_pci_device); /* Uses the AMIKEY KBC */
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -1892,7 +1892,7 @@ machine_at_g486vpa_init(const machine_t *model)
device_add(&via_vt82c49x_pci_ide_device);
device_add(&via_vt82c505_device);
device_add(&pc87332_398_ide_sec_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&sst_flash_29ee010_device);
return ret;
@@ -1921,7 +1921,7 @@ machine_at_486vipio2_init(const machine_t *model)
device_add(&via_vt82c49x_pci_ide_device);
device_add(&via_vt82c505_device);
device_add(&w83787f_ide_sec_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&sst_flash_29ee010_device);
return ret;
@@ -1948,7 +1948,7 @@ machine_at_abpb4_init(const machine_t *model)
device_add(&ali1489_device);
device_add(&w83787f_device);
- device_add(&keyboard_at_device);
+ device_add(&kbc_at_device);
#if 0
device_add(&intel_flash_bxt_device);
#endif
@@ -1978,7 +1978,7 @@ machine_at_win486pci_init(const machine_t *model)
device_add(&ali1489_device);
device_add(&prime3b_device);
- device_add(&keyboard_at_ami_device);
+ device_add(&kbc_at_ami_device);
return ret;
}
@@ -2005,7 +2005,7 @@ machine_at_ms4145_init(const machine_t *model)
device_add(&ali1489_device);
device_add(&w83787f_device);
- device_add(&keyboard_at_ami_device);
+ device_add(&kbc_at_ami_device);
device_add(&sst_flash_29ee010_device);
return ret;
@@ -2037,7 +2037,7 @@ machine_at_sbc490_init(const machine_t *model)
device_add(&ali1489_device);
device_add(&fdc37c665_device);
- device_add(&keyboard_ps2_ami_device);
+ device_add(&kbc_ps2_ami_device);
device_add(&sst_flash_29ee010_device);
return ret;
@@ -2062,7 +2062,7 @@ machine_at_tf486_init(const machine_t *model)
device_add(&ali1489_device);
device_add(&w83977ef_device);
- device_add(&keyboard_at_device);
+ device_add(&kbc_at_device);
device_add(&sst_flash_29ee010_device);
return ret;
@@ -2085,7 +2085,7 @@ machine_at_arb1476_init(const machine_t *model)
device_add(&ali1489_device);
device_add(&fdc37c669_device);
- device_add(&keyboard_ps2_device);
+ device_add(&kbc_ps2_device);
device_add(&sst_flash_29ee010_device);
return ret;
@@ -2109,7 +2109,7 @@ machine_at_itoxstar_init(const machine_t *model)
pci_register_slot(0x0C, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x1F, PCI_CARD_NORMAL, 1, 2, 3, 4);
device_add(&w83977f_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&stpc_client_device);
device_add(&sst_flash_29ee020_device);
device_add(&w83781d_device); /* fans: Chassis, CPU, unused; temperatures: Chassis, CPU, unused */
@@ -2140,7 +2140,7 @@ machine_at_arb1423c_init(const machine_t *model)
pci_register_slot(0x1E, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x1D, PCI_CARD_NORMAL, 3, 4, 1, 2);
device_add(&w83977f_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&stpc_consumer2_device);
device_add(&winbond_flash_w29c020_device);
@@ -2167,7 +2167,7 @@ machine_at_arb1479_init(const machine_t *model)
pci_register_slot(0x1E, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x1D, PCI_CARD_NORMAL, 3, 4, 1, 2);
device_add(&w83977f_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&stpc_consumer2_device);
device_add(&winbond_flash_w29c020_device);
@@ -2191,7 +2191,7 @@ machine_at_iach488_init(const machine_t *model)
pci_register_slot(0x0B, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
pci_register_slot(0x0C, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&w83977f_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&stpc_consumer2_device);
device_add(&sst_flash_29ee020_device);
@@ -2219,7 +2219,7 @@ machine_at_pcm9340_init(const machine_t *model)
pci_register_slot(0x1F, PCI_CARD_NORMAL, 2, 3, 4, 1);
device_add_inst(&w83977f_device, 1);
device_add_inst(&w83977f_device, 2);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&stpc_elite_device);
device_add(&sst_flash_29ee020_device);
@@ -2247,7 +2247,7 @@ machine_at_pcm5330_init(const machine_t *model)
pci_register_slot(0x13, PCI_CARD_NORMAL, 1, 2, 3, 4);
device_add(&stpc_serial_device);
device_add(&w83977f_370_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&stpc_atlas_device);
device_add(&sst_flash_29ee020_device);
@@ -2280,7 +2280,7 @@ machine_at_ecs486_init(const machine_t *model)
device_add(&ide_cmd640_pci_legacy_only_device);
device_add(&fdc37c665_device);
device_add(&intel_flash_bxt_device);
- device_add(&keyboard_ps2_ami_device);
+ device_add(&kbc_ps2_ami_device);
return ret;
}
@@ -2362,9 +2362,9 @@ machine_at_hot433a_init(const machine_t *model)
device_add(&um8669f_device);
device_add(&winbond_flash_w29c010_device);
if (is_award)
- device_add(&keyboard_ps2_ami_device);
+ device_add(&kbc_ps2_ami_device);
else
- device_add(&keyboard_at_ami_device);
+ device_add(&kbc_at_ami_device);
pic_toggle_latch(is_award);
@@ -2395,7 +2395,7 @@ machine_at_84xxuuda_init(const machine_t *model)
device_add(&umc_8886bf_device);
device_add(&um8663bf_device);
device_add(&winbond_flash_w29c010_device);
- device_add(&keyboard_ps2_ami_device);
+ device_add(&kbc_ps2_ami_device);
return ret;
}
@@ -2426,7 +2426,7 @@ machine_at_pl4600c_init(const machine_t *model)
device_add(&umc_8886af_device);
device_add(&um8663af_device);
device_add(&sst_flash_29ee010_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
if (gfxcard[0] == VID_INTERNAL)
device_add(&gd5430_onboard_pci_device);
@@ -2465,7 +2465,7 @@ machine_at_atc1415_init(const machine_t *model)
device_add(&umc_hb4_device);
device_add(&umc_8886bf_device);
device_add(&intel_flash_bxt_device);
- device_add(&keyboard_at_ami_device);
+ device_add(&kbc_at_ami_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -2497,7 +2497,7 @@ machine_at_actionpc2600_init(const machine_t *model)
device_add(&umc_8886bf_device);
device_add(&fdc37c665_device);
device_add(&intel_flash_bxt_device);
- device_add(&keyboard_ps2_tg_ami_device);
+ device_add(&kbc_ps2_tg_ami_device);
if (gfxcard[0] == VID_INTERNAL)
device_add(machine_get_vid_device(machine));
@@ -2530,7 +2530,7 @@ machine_at_actiontower8400_init(const machine_t *model)
device_add(&fdc37c665_device);
device_add(&ide_cmd640_pci_device);
device_add(&intel_flash_bxt_device); // The ActionPC 2600 has this so I'm gonna assume this does too.
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
if (gfxcard[0] == VID_INTERNAL)
device_add(machine_get_vid_device(machine));
@@ -2561,7 +2561,7 @@ machine_at_m919_init(const machine_t *model)
device_add(&umc_8886af_device); /* AF is correct - the BIOS does IDE writes to ports 108h and 109h. */
device_add(&um8663bf_device);
device_add(&sst_flash_29ee010_device);
- device_add(&keyboard_at_ami_device);
+ device_add(&kbc_at_ami_device);
return ret;
}
@@ -2590,7 +2590,7 @@ machine_at_spc7700plw_init(const machine_t *model)
device_add(&umc_8886af_device);
device_add(&fdc37c665_device);
device_add(&intel_flash_bxt_device);
- device_add(&keyboard_ps2_ami_device);
+ device_add(&kbc_ps2_ami_device);
return ret;
}
@@ -2624,7 +2624,7 @@ machine_at_ms4134_init(const machine_t *model)
device_add(&ali1435_device);
device_add(&sst_flash_29ee010_device);
- device_add(&keyboard_ps2_ami_device);
+ device_add(&kbc_ps2_ami_device);
return ret;
}
@@ -2657,7 +2657,7 @@ machine_at_tg486gp_init(const machine_t *model)
device_add(&ali1435_device);
device_add(&sst_flash_29ee010_device);
- device_add(&keyboard_ps2_tg_ami_device);
+ device_add(&kbc_ps2_tg_ami_device);
return ret;
}
@@ -2678,7 +2678,7 @@ machine_at_tg486g_init(const machine_t *model)
device_add(&sis_85c471_device);
device_add(&ide_isa_device);
device_add(&fdc37c651_ide_device);
- device_add(&keyboard_ps2_tg_ami_pci_device);
+ device_add(&kbc_ps2_tg_ami_pci_device);
if (gfxcard[0] != VID_INTERNAL) {
for (uint16_t i = 0; i < 32768; i++)
@@ -2705,7 +2705,7 @@ machine_at_dvent4xx_init(const machine_t *model)
device_add(&sis_85c471_device);
device_add(&ide_cmd640_vlb_pri_device);
device_add(&fdc37c665_ide_device);
- device_add(&keyboard_ps2_phoenix_device);
+ device_add(&kbc_ps2_phoenix_device);
if (gfxcard[0] == VID_INTERNAL)
device_add(machine_get_vid_device(machine));
@@ -2727,7 +2727,7 @@ machine_at_ecsal486_init(const machine_t *model)
machine_at_common_init(model);
device_add(&ali1429g_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -2750,7 +2750,7 @@ machine_at_ap4100aa_init(const machine_t *model)
device_add(&ami_1994_nvr_device);
device_add(&ali1429g_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&ide_vlb_device);
device_add(&um8663bf_device);
@@ -2770,7 +2770,7 @@ machine_at_atc1762_init(const machine_t *model)
machine_at_common_init(model);
device_add(&ali1429g_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -2792,7 +2792,7 @@ machine_at_dataexpert386wb_init(const machine_t *model)
machine_at_common_init(model);
device_add(&opti391_device);
- device_add(&keyboard_at_ami_device);
+ device_add(&kbc_at_ami_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -2816,7 +2816,7 @@ machine_at_isa486c_init(const machine_t *model)
device_add(&isa486c_device);
device_add(&port_92_key_device);
- device_add(&keyboard_at_ami_device);
+ device_add(&kbc_at_ami_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -2840,7 +2840,7 @@ machine_at_genoa486_init(const machine_t *model)
device_add(&compaq_genoa_device);
device_add(&port_92_key_device);
- device_add(&keyboard_at_ami_device);
+ device_add(&kbc_at_ami_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -2861,7 +2861,7 @@ machine_at_ga486l_init(const machine_t *model)
machine_at_common_init(model);
device_add(&opti381_device);
- device_add(&keyboard_at_ami_device);
+ device_add(&kbc_at_ami_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -2887,7 +2887,7 @@ machine_at_cobalt_init(const machine_t *model)
device_add(&ide_isa_sec_device);
device_add(&fdc37c665_device);
- device_add(&keyboard_ps2_ami_device);
+ device_add(&kbc_ps2_ami_device);
if (gfxcard[0] == VID_INTERNAL)
device_add(machine_get_vid_device(machine));
@@ -2912,7 +2912,7 @@ machine_at_cougar_init(const machine_t *model)
device_add(&opti499_device);
device_add(&fdc37c665_ide_pri_device);
- device_add(&keyboard_at_ami_device);
+ device_add(&kbc_at_ami_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
diff --git a/src/machine/m_at_compaq.c b/src/machine/m_at_compaq.c
index 2fbfed0ff..d918dbfc6 100644
--- a/src/machine/m_at_compaq.c
+++ b/src/machine/m_at_compaq.c
@@ -133,7 +133,7 @@ machine_at_compaq_init(const machine_t *model, int type)
switch (type) {
case COMPAQ_PORTABLEII:
machine_at_common_init(model);
- device_add(&keyboard_at_compaq_device);
+ device_add(&kbc_at_compaq_device);
break;
case COMPAQ_PORTABLEIII:
@@ -143,7 +143,7 @@ machine_at_compaq_init(const machine_t *model, int type)
device_add(&compaq_plasma_device);
machine_at_common_init(model);
- device_add(&keyboard_at_compaq_device);
+ device_add(&kbc_at_compaq_device);
break;
case COMPAQ_PORTABLEIII386:
@@ -153,14 +153,14 @@ machine_at_compaq_init(const machine_t *model, int type)
device_add(&compaq_plasma_device);
device_add(&compaq_386_device);
machine_at_common_init(model);
- device_add(&keyboard_at_compaq_device);
+ device_add(&kbc_at_compaq_device);
break;
case COMPAQ_DESKPRO386:
case COMPAQ_DESKPRO386_05_1988:
device_add(&compaq_386_device);
machine_at_common_init(model);
- device_add(&keyboard_at_compaq_device);
+ device_add(&kbc_at_compaq_device);
break;
default:
diff --git a/src/machine/m_at_grid.c b/src/machine/m_at_grid.c
index 03b7288b9..448749589 100644
--- a/src/machine/m_at_grid.c
+++ b/src/machine/m_at_grid.c
@@ -342,7 +342,7 @@ int machine_at_grid1520_init(const machine_t *model) {
machine_at_common_ide_init(model);
mem_remap_top(384);
- device_add(&keyboard_at_device);
+ device_add(&kbc_at_device);
// for now just select CGA with amber monitor
//device_add(&cga_device);
diff --git a/src/machine/m_at_misc.c b/src/machine/m_at_misc.c
index d4264f07e..b6d16246c 100644
--- a/src/machine/m_at_misc.c
+++ b/src/machine/m_at_misc.c
@@ -66,7 +66,7 @@ machine_at_vpc2007_init(const machine_t *model)
device_add(&i440bx_no_agp_device);
device_add(&piix4e_device);
device_add(&w83977f_370_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&intel_flash_bxt_device);
spd_register(SPD_TYPE_SDRAM, 0xF, 256); /* real VPC provides invalid SPD data */
diff --git a/src/machine/m_at_slot1.c b/src/machine/m_at_slot1.c
index 2ac805bee..2f5452c1e 100644
--- a/src/machine/m_at_slot1.c
+++ b/src/machine/m_at_slot1.c
@@ -109,7 +109,7 @@ machine_at_kn97_init(const machine_t *model)
pci_register_slot(0x0D, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&i440fx_device);
device_add(&piix3_device);
- device_add(&keyboard_ps2_pci_device);
+ device_add(&kbc_ps2_pci_device);
device_add(&w83877f_device);
device_add(&intel_flash_bxt_device);
device_add(&lm78_device); /* fans: Chassis, CPU, Power; temperature: MB */
@@ -142,7 +142,7 @@ machine_at_lx6_init(const machine_t *model)
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&i440lx_device);
device_add(&piix4e_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&w83977tf_device);
device_add(&sst_flash_29ee010_device);
spd_register(SPD_TYPE_SDRAM, 0xF, 256);
@@ -244,7 +244,7 @@ machine_at_ma30d_init(const machine_t *model)
device_add(&i440lx_device);
device_add(&piix4e_device);
device_add(&nec_mate_unk_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&fdc37c67x_device);
device_add(&intel_flash_bxt_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 256);
@@ -273,7 +273,7 @@ machine_at_p6i440e2_init(const machine_t *model)
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&i440ex_device);
device_add(&piix4_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&w83977tf_device);
device_add(&sst_flash_29ee010_device);
spd_register(SPD_TYPE_SDRAM, 0x03, 256);
@@ -309,7 +309,7 @@ machine_at_p2bls_init(const machine_t *model)
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&i440bx_device);
device_add(&piix4e_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&w83977ef_device);
#if 0
device_add(ics9xxx_get(ICS9150_08)); /* setting proper speeds requires some interaction with the AS97127F ASIC */
@@ -346,7 +346,7 @@ machine_at_lgibmx7g_init(const machine_t *model)
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&i440bx_device);
device_add(&piix4e_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&w83977tf_device);
device_add(&winbond_flash_w29c020_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 256);
@@ -379,7 +379,7 @@ machine_at_p3bf_init(const machine_t *model)
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&i440bx_device);
device_add(&piix4e_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&w83977ef_device);
device_add(ics9xxx_get(ICS9250_08));
device_add(&sst_flash_39sf020_device);
@@ -416,7 +416,7 @@ machine_at_bf6_init(const machine_t *model)
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&i440bx_device);
device_add(&piix4e_device);
- device_add(&keyboard_ps2_pci_device);
+ device_add(&kbc_ps2_pci_device);
device_add(&w83977ef_device);
device_add(&sst_flash_39sf020_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 256);
@@ -447,7 +447,7 @@ machine_at_bx6_init(const machine_t *model)
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&i440bx_device);
device_add(&piix4e_device);
- device_add(&keyboard_ps2_pci_device);
+ device_add(&kbc_ps2_pci_device);
device_add(&w83977f_device);
device_add(&sst_flash_29ee010_device);
spd_register(SPD_TYPE_SDRAM, 0xF, 256);
@@ -479,7 +479,7 @@ machine_at_ax6bc_init(const machine_t *model)
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&i440bx_device);
device_add(&piix4e_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&w83977tf_device);
device_add(&sst_flash_29ee020_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 256);
@@ -511,7 +511,7 @@ machine_at_atc6310bxii_init(const machine_t *model)
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&i440bx_device);
device_add(&slc90e66_device);
- device_add(&keyboard_ps2_pci_device);
+ device_add(&kbc_ps2_pci_device);
device_add(&w83977ef_device);
device_add(&sst_flash_39sf020_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 256);
@@ -542,7 +542,7 @@ machine_at_686bx_init(const machine_t *model)
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&i440bx_device);
device_add(&piix4e_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&w83977tf_device);
device_add(&intel_flash_bxt_device);
spd_register(SPD_TYPE_SDRAM, 0xF, 256);
@@ -582,7 +582,7 @@ machine_at_p6sba_init(const machine_t *model)
device_add(&i440bx_device);
device_add(&piix4e_device);
device_add(&w83977tf_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&intel_flash_bxt_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 256);
device_add(&w83781d_device); /* fans: CPU1, CPU2, Thermal Control; temperatures: unused, CPU1, CPU2? */
@@ -655,7 +655,7 @@ machine_at_ficka6130_init(const machine_t *model)
device_add(&via_apro_device);
device_add(&via_vt82c596a_device);
device_add(&w83877tf_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&sst_flash_29ee020_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 256);
@@ -688,7 +688,7 @@ machine_at_p3v133_init(const machine_t *model)
device_add(&via_apro133_device);
device_add(&via_vt82c596b_device);
device_add(&w83977ef_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(ics9xxx_get(ICS9248_39));
device_add(&sst_flash_39sf020_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 512);
@@ -725,7 +725,7 @@ machine_at_p3v4x_init(const machine_t *model)
device_add(&via_apro133a_device);
device_add(&via_vt82c596b_device);
device_add(&w83977ef_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(ics9xxx_get(ICS9250_18));
device_add(&sst_flash_39sf020_device);
spd_register(SPD_TYPE_SDRAM, 0xF, 512);
@@ -758,7 +758,7 @@ machine_at_gt694va_init(const machine_t *model)
device_add(&via_apro133a_device);
device_add(&via_vt82c596b_device);
device_add(&w83977ef_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&sst_flash_39sf020_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 1024);
device_add(&w83782d_device); /* fans: CPU, unused, unused; temperatures: System, CPU1, unused */
@@ -799,7 +799,7 @@ machine_at_vei8_init(const machine_t *model)
device_add(&i440bx_device);
device_add(&piix4e_device);
device_add(&fdc37m60x_370_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(ics9xxx_get(ICS9250_08));
device_add(&sst_flash_39sf020_device);
spd_register(SPD_TYPE_SDRAM, 0x3, 512);
@@ -828,7 +828,7 @@ machine_at_ms6168_common_init(const machine_t *model)
if (gfxcard[0] == VID_INTERNAL)
device_add(&voodoo_3_2000_agp_onboard_8m_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&intel_flash_bxt_device);
spd_register(SPD_TYPE_SDRAM, 0x3, 256);
@@ -924,7 +924,7 @@ machine_at_p6f99_init(const machine_t *model)
pci_register_slot(0x0F, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x02, PCI_CARD_AGPBRIDGE, 0, 0, 0, 0);
device_add(&sis_5600_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&it8661f_device);
device_add(&winbond_flash_w29c020_device);
@@ -957,7 +957,7 @@ machine_at_m747_init(const machine_t *model)
pci_register_slot(0x0D, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x02, PCI_CARD_AGPBRIDGE, 0, 0, 0, 0);
device_add(&sis_5600_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&it8661f_device);
device_add(&winbond_flash_w29c020_device);
diff --git a/src/machine/m_at_slot2.c b/src/machine/m_at_slot2.c
index 7bf412823..b9c556206 100644
--- a/src/machine/m_at_slot2.c
+++ b/src/machine/m_at_slot2.c
@@ -65,7 +65,7 @@ machine_at_6gxu_init(const machine_t *model)
device_add(&i440gx_device);
device_add(&piix4e_device);
- device_add(&keyboard_ps2_pci_device);
+ device_add(&kbc_ps2_pci_device);
device_add(&w83977ef_device);
device_add(&sst_flash_39sf020_device);
spd_register(SPD_TYPE_SDRAM, 0xF, 512);
@@ -102,7 +102,7 @@ machine_at_s2dge_init(const machine_t *model)
device_add(&i440gx_device);
device_add(&piix4e_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&w83977tf_device);
device_add(&intel_flash_bxt_device);
spd_register(SPD_TYPE_SDRAM, 0xF, 512);
diff --git a/src/machine/m_at_socket370.c b/src/machine/m_at_socket370.c
index ad280200b..fe87564e7 100644
--- a/src/machine/m_at_socket370.c
+++ b/src/machine/m_at_socket370.c
@@ -64,7 +64,7 @@ machine_at_s370slm_init(const machine_t *model)
device_add(&i440lx_device);
device_add(&piix4e_device);
device_add(&w83977tf_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&intel_flash_bxt_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 256);
device_add(&w83781d_device); /* fans: CPU, Fan 2, Chassis; temperatures: unused, CPU, unused */
@@ -99,7 +99,7 @@ machine_at_prosignias31x_bx_init(const machine_t *model)
device_add(&i440bx_device);
device_add(&piix4e_device);
device_add(&w83977ef_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&winbond_flash_w29c020_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 256);
device_add(&gl520sm_2d_device); /* fans: CPU, Chassis; temperature: System */
@@ -139,7 +139,7 @@ machine_at_s1857_init(const machine_t *model)
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&i440bx_device);
device_add(&piix4e_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&w83977ef_device);
device_add(&intel_flash_bxt_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 256);
@@ -177,7 +177,7 @@ machine_at_p6bap_init(const machine_t *model)
device_add(&via_apro133a_device); /* Rebranded as ET82C693A */
device_add(&via_vt82c596b_device); /* Rebranded as ET82C696B */
device_add(&w83977ef_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&sst_flash_39sf020_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 256);
@@ -212,7 +212,7 @@ machine_at_p6bat_init(const machine_t *model)
device_add(&via_apro133_device);
device_add(&via_vt82c596b_device);
device_add(&w83977ef_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&sst_flash_39sf020_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 256);
@@ -248,7 +248,7 @@ machine_at_cubx_init(const machine_t *model)
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&i440bx_device);
device_add(&piix4e_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&w83977ef_device);
device_add(&ide_cmd648_ter_qua_onboard_device);
device_add(ics9xxx_get(ICS9250_08));
@@ -283,7 +283,7 @@ machine_at_atc7020bxii_init(const machine_t *model)
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&i440bx_device);
device_add(&slc90e66_device);
- device_add(&keyboard_ps2_pci_device);
+ device_add(&kbc_ps2_pci_device);
device_add(&w83977ef_device);
device_add(&sst_flash_39sf020_device);
spd_register(SPD_TYPE_SDRAM, 0xF, 256);
@@ -315,7 +315,7 @@ machine_at_m773_init(const machine_t *model)
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&i440bx_device);
device_add(&slc90e66_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&it8671f_device);
device_add(&sst_flash_39sf020_device);
spd_register(SPD_TYPE_SDRAM, 0x3, 256);
@@ -356,7 +356,7 @@ machine_at_ambx133_init(const machine_t *model)
device_add(&i440bx_device);
device_add(&piix4e_device);
device_add(&w83977ef_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&sst_flash_39sf020_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 256);
device_add(&gl518sm_2d_device); /* fans: CPUFAN1, CPUFAN2; temperature: CPU */
@@ -393,7 +393,7 @@ machine_at_awo671r_init(const machine_t *model)
device_add(&piix4e_device);
device_add_inst(&w83977ef_device, 1);
device_add_inst(&w83977ef_device, 2);
- device_add(&keyboard_ps2_pci_device);
+ device_add(&kbc_ps2_pci_device);
device_add(&sst_flash_39sf020_device);
if (gfxcard[0] == VID_INTERNAL)
device_add(machine_get_vid_device(machine));
@@ -427,7 +427,7 @@ machine_at_63a1_init(const machine_t *model)
device_add(&i440zx_device);
device_add(&piix4e_device);
device_add(&w83977tf_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&intel_flash_bxt_device);
spd_register(SPD_TYPE_SDRAM, 0x3, 256);
@@ -458,7 +458,7 @@ machine_at_apas3_init(const machine_t *model)
device_add(&via_apro_device);
device_add(&via_vt82c586b_device);
device_add(&fdc37c669_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&sst_flash_39sf020_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 256);
@@ -492,7 +492,7 @@ machine_at_cuv4xls_init(const machine_t *model)
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&via_apro133a_device);
device_add(&via_vt82c686b_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(ics9xxx_get(ICS9250_18));
device_add(&sst_flash_39sf020_device);
spd_register(SPD_TYPE_SDRAM, 0xF, 1024);
@@ -528,7 +528,7 @@ machine_at_6via90ap_init(const machine_t *model)
pci_register_slot(0x01, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&via_apro133a_device);
device_add(&via_vt82c686b_device); /* fans: CPU1, CPU2; temperatures: CPU, System, unused */
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(ics9xxx_get(ICS9250_18));
device_add(&sst_flash_39sf020_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 1024);
@@ -563,7 +563,7 @@ machine_at_7sbb_init(const machine_t *model)
pci_register_slot(0x11, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x02, PCI_CARD_AGPBRIDGE, 1, 2, 3, 4);
device_add(&sis_5600_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&it8661f_device);
device_add(&sst_flash_29ee020_device); /* assumed */
diff --git a/src/machine/m_at_socket4.c b/src/machine/m_at_socket4.c
index c101fb95a..402489d89 100644
--- a/src/machine/m_at_socket4.c
+++ b/src/machine/m_at_socket4.c
@@ -68,7 +68,7 @@ machine_at_v12p_init(const machine_t *model)
pci_register_slot(0x04, PCI_CARD_NORMAL, 4, 0, 0, 0);
pci_register_slot(0x05, PCI_CARD_NORMAL, 0, 0, 0, 0);
device_add(&i430lx_device);
- device_add(&keyboard_ps2_acer_pci_device);
+ device_add(&kbc_ps2_acer_pci_device);
device_add(&sio_zb_device);
device_add_params(&pc87310_device, (void *) (PC87310_ALI));
device_add(&amd_am28f010_flash_device);
@@ -127,7 +127,7 @@ machine_at_premiere_common_init(const machine_t *model, int pci_switch)
pci_register_slot(0x0E, PCI_CARD_NORMAL, 2, 1, 3, 4);
pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 3, 2, 4);
pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
- device_add(&keyboard_ps2_phoenix_device);
+ device_add(&kbc_ps2_phoenix_device);
device_add(&sio_zb_device);
device_add(&ide_rz1000_pci_single_channel_device);
device_add(&fdc37c665_ide_sec_device);
@@ -152,7 +152,7 @@ machine_at_sp4_common_init(const machine_t *model)
pci_register_slot(0x09, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&sis_85c50x_device);
device_add(&ide_cmd640_pci_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&fdc37c665_device);
device_add(&intel_flash_bxt_device);
}
@@ -178,7 +178,7 @@ machine_at_excaliburpci_init(const machine_t *model)
pci_register_slot(0x0D, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&fdc37c665_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&ide_cmd640_pci_legacy_only_device);
device_add(&i430lx_device);
@@ -208,7 +208,7 @@ machine_at_p5mp3_init(const machine_t *model)
pci_register_slot(0x03, PCI_CARD_NORMAL, 3, 4, 1, 2); /* 03 = Slot 3 */
pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&fdc_at_device);
- device_add(&keyboard_ps2_pci_device);
+ device_add(&kbc_ps2_pci_device);
device_add(&sio_zb_device);
device_add(&catalyst_flash_device);
@@ -243,7 +243,7 @@ machine_at_dellxp60_init(const machine_t *model)
pci_register_slot(0x06, PCI_CARD_NORMAL, 2, 1, 3, 4);
pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&i430lx_device);
- device_add(&keyboard_ps2_phoenix_device);
+ device_add(&kbc_ps2_phoenix_device);
device_add(&sio_zb_device);
device_add(&fdc37c665_device);
device_add(&intel_flash_bxt_ami_device);
@@ -274,7 +274,7 @@ machine_at_opti560l_init(const machine_t *model)
pci_register_slot(0x08, PCI_CARD_NORMAL, 2, 1, 3, 4);
pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&i430lx_device);
- device_add(&keyboard_ps2_phoenix_device);
+ device_add(&kbc_ps2_phoenix_device);
device_add(&sio_zb_device);
device_add(&i82091aa_device);
device_add(&intel_flash_bxt_ami_device);
@@ -306,7 +306,7 @@ machine_at_ambradp60_init(const machine_t *model)
pci_register_slot(0x0E, PCI_CARD_NORMAL, 2, 1, 3, 4);
pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 3, 2, 4);
pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
- device_add(&keyboard_ps2_phoenix_device);
+ device_add(&kbc_ps2_phoenix_device);
device_add(&sio_zb_device);
device_add(&fdc37c665_ide_pri_device);
device_add(&intel_flash_bxt_ami_device);
@@ -339,7 +339,7 @@ machine_at_valuepointp60_init(const machine_t *model)
pci_register_slot(0x0E, PCI_CARD_NORMAL, 2, 1, 3, 4);
pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 3, 2, 4);
pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
- device_add(&keyboard_ps2_ps1_pci_device);
+ device_add(&kbc_ps2_ps1_pci_device);
device_add(&sio_device);
device_add(&fdc37c665_ide_device);
device_add(&intel_flash_bxt_ami_device);
@@ -388,7 +388,7 @@ machine_at_award_common_init(const machine_t *model)
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
- device_add(&keyboard_at_ami_device);
+ device_add(&kbc_at_ami_device);
device_add(&sio_zb_device);
device_add(&intel_flash_bxt_device);
}
@@ -439,7 +439,7 @@ machine_at_pb520r_init(const machine_t *model)
if (gfxcard[0] == VID_INTERNAL)
device_add(&gd5434_onboard_pci_device);
- device_add(&keyboard_ps2_pci_device);
+ device_add(&kbc_ps2_pci_device);
device_add(&sio_zb_device);
device_add(&i82091aa_ide_device);
device_add(&intel_flash_bxt_ami_device);
@@ -469,7 +469,7 @@ machine_at_m5pi_init(const machine_t *model)
pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&i430lx_device);
device_add(&sio_zb_device);
- device_add(&keyboard_ps2_phoenix_device);
+ device_add(&kbc_ps2_phoenix_device);
device_add(&ide_w83769f_pci_single_channel_device);
device_add(&fdc37c665_ide_sec_device);
device_add(&intel_flash_bxt_ami_device);
@@ -500,7 +500,7 @@ machine_at_globalyst330_p5_init(const machine_t *model)
device_add(&opti5x7_pci_device);
device_add(&opti822_device);
device_add(&sst_flash_29ee010_device);
- device_add(&keyboard_at_ami_device);
+ device_add(&kbc_at_ami_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -524,7 +524,7 @@ machine_at_excalibur_init(const machine_t *model)
device_add(&opti5x7_device);
device_add(&ide_opti611_vlb_device);
device_add(&fdc37c661_device);
- device_add(&keyboard_ps2_intel_ami_pci_device);
+ device_add(&kbc_ps2_intel_ami_pci_device);
return ret;
}
@@ -553,7 +553,7 @@ machine_at_p5vl_init(const machine_t *model)
device_add(&opti5x7_pci_device);
device_add(&opti822_device);
device_add(&sst_flash_29ee010_device);
- device_add(&keyboard_at_ami_device);
+ device_add(&kbc_at_ami_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -584,7 +584,7 @@ machine_at_excaliburpci2_init(const machine_t *model)
pci_register_slot(0x0C, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x0D, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&fdc37c665_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&ide_cmd640_pci_legacy_only_device);
device_add(&sis_85c50x_device);
diff --git a/src/machine/m_at_socket5.c b/src/machine/m_at_socket5.c
index a4bb77a55..4abfada33 100644
--- a/src/machine/m_at_socket5.c
+++ b/src/machine/m_at_socket5.c
@@ -106,7 +106,7 @@ machine_at_d842_init(const machine_t *model)
pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 3, 2, 4); /* Slot 01 */
pci_register_slot(0x0E, PCI_CARD_NORMAL, 2, 1, 3, 4); /* Slot 02 */
- device_add(&keyboard_ps2_pci_device);
+ device_add(&kbc_ps2_pci_device);
device_add(&i430nx_device);
device_add(&sio_zb_device);
device_add(&fdc37c665_device);
@@ -201,7 +201,7 @@ machine_at_p54np4_init(const machine_t *model)
pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&i430nx_device);
device_add(&sio_zb_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&fdc37c665_ide_pri_device);
device_add(&intel_flash_bxt_device);
@@ -246,7 +246,7 @@ machine_at_tek932_init(const machine_t *model)
pci_register_slot(0x0E, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x0D, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 3, 2, 4);
- device_add(&keyboard_ps2_intel_ami_pci_device);
+ device_add(&kbc_ps2_intel_ami_pci_device);
device_add(&i430nx_device);
device_add(&sio_zb_device);
device_add(&ide_vlb_device);
@@ -278,7 +278,7 @@ machine_at_acerv30_init(const machine_t *model)
pci_register_slot(0x13, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&i430fx_device);
device_add(&piix_device);
- device_add(&keyboard_ps2_acer_pci_device);
+ device_add(&kbc_ps2_acer_pci_device);
device_add(&fdc37c665_device);
device_add(&sst_flash_29ee010_device);
@@ -307,7 +307,7 @@ machine_at_apollo_init(const machine_t *model)
pci_register_slot(0x0A, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x0B, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&i430fx_device);
device_add(&piix_device);
device_add(&pc87332_398_device);
@@ -343,7 +343,7 @@ machine_at_optiplexgxl_init(const machine_t *model)
if (sound_card_current[0] == SOUND_INTERNAL)
machine_snd = device_add(machine_get_snd_device(machine));
- device_add(&keyboard_ps2_phoenix_pci_device);
+ device_add(&kbc_ps2_phoenix_pci_device);
device_add(&i430fx_device);
device_add(&piix_device);
device_add(&pc87332_device);
@@ -407,7 +407,7 @@ machine_at_zappa_init(const machine_t *model)
pci_register_slot(0x0E, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x0F, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
- device_add(&keyboard_ps2_intel_ami_pci_device);
+ device_add(&kbc_ps2_intel_ami_pci_device);
device_add(&i430fx_device);
device_add(&piix_device);
device_add(&pc87306_device);
@@ -435,7 +435,7 @@ machine_at_powermatev_init(const machine_t *model)
pci_register_slot(0x08, PCI_CARD_NORMAL, 0, 0, 0, 0);
pci_register_slot(0x11, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_slot(0x13, PCI_CARD_NORMAL, 2, 3, 4, 1);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&i430fx_device);
device_add(&piix_device);
device_add(&fdc37c665_device);
@@ -464,7 +464,7 @@ machine_at_hawk_init(const machine_t *model)
pci_register_slot(0x13, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x12, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
- device_add(&keyboard_ps2_tg_ami_pci_device);
+ device_add(&kbc_ps2_tg_ami_pci_device);
device_add(&i430fx_device);
device_add(&piix_device);
device_add(&fdc37c665_device);
@@ -495,7 +495,7 @@ machine_at_pt2000_init(const machine_t *model)
pci_register_slot(0x0B, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
/* Should be VIA, but we do not emulate that yet. */
- device_add(&keyboard_ps2_holtek_device);
+ device_add(&kbc_ps2_holtek_device);
device_add(&i430fx_device);
device_add(&piix_device);
device_add(&pc87332_398_device);
@@ -518,7 +518,7 @@ machine_at_pat54pv_init(const machine_t *model)
machine_at_common_init(model);
device_add(&opti5x7_device);
- device_add(&keyboard_ps2_intel_ami_pci_device);
+ device_add(&kbc_ps2_intel_ami_pci_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -548,7 +548,7 @@ machine_at_hot543_init(const machine_t *model)
device_add(&opti5x7_pci_device);
device_add(&opti822_device);
device_add(&sst_flash_29ee010_device);
- device_add(&keyboard_at_device);
+ device_add(&kbc_at_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -578,7 +578,7 @@ machine_at_ncselp90_init(const machine_t *model)
device_add(&opti5x7_pci_device);
device_add(&opti822_device);
device_add(&sst_flash_29ee010_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&ide_opti611_vlb_device);
device_add(&fdc37c665_ide_sec_device);
device_add(&ide_vlb_2ch_device);
@@ -626,7 +626,7 @@ machine_at_sq588_init(const machine_t *model)
pci_register_slot(0x13, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&sis_85c50x_device);
device_add(&ide_cmd640_pci_single_channel_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&fdc37c665_ide_device);
device_add(&sst_flash_29ee010_device);
@@ -655,7 +655,7 @@ machine_at_p54sps_init(const machine_t *model)
pci_register_slot(0x09, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&sis_85c50x_device);
device_add(&ide_pci_2ch_device);
- device_add(&keyboard_at_ami_device);
+ device_add(&kbc_at_ami_device);
device_add(&w83787f_device);
device_add(&sst_flash_29ee010_device);
@@ -686,7 +686,7 @@ machine_at_ms5109_init(const machine_t *model)
pci_register_slot(0x13, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&sis_550x_85c503_device);
device_add(&ide_w83769f_pci_device);
- device_add(&keyboard_ps2_ami_device);
+ device_add(&kbc_ps2_ami_device);
device_add(&w83787f_device);
device_add(&sst_flash_29ee010_device);
@@ -720,7 +720,7 @@ machine_at_torino_init(const machine_t *model)
device_add(&sis_550x_85c503_device);
device_add(&ide_um8673f_device);
- device_add(&keyboard_ps2_tg_ami_device);
+ device_add(&kbc_ps2_tg_ami_device);
device_add(&fdc37c665_device);
device_add(&intel_flash_bxt_ami_device);
@@ -752,7 +752,7 @@ machine_at_hot539_init(const machine_t *model)
device_add(&umc_8890_device);
device_add(&umc_8886af_device);
device_add(&sst_flash_29ee010_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&um8663af_device);
return ret;
diff --git a/src/machine/m_at_socket7.c b/src/machine/m_at_socket7.c
index a4bcc638d..976cde607 100644
--- a/src/machine/m_at_socket7.c
+++ b/src/machine/m_at_socket7.c
@@ -111,7 +111,7 @@ machine_at_ap5vm_init(const machine_t *model)
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&i430vx_device);
device_add(&piix3_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&fdc37c665_device);
device_add(&ncr53c810_onboard_pci_device);
device_add(&intel_flash_bxt_device);
@@ -141,7 +141,7 @@ machine_at_p55t2p4_init(const machine_t *model)
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&i430hx_device);
device_add(&piix3_device);
- device_add(&keyboard_ps2_pci_device);
+ device_add(&kbc_ps2_pci_device);
device_add(&w83877f_device);
device_add(&intel_flash_bxt_device);
@@ -244,7 +244,7 @@ machine_at_tc430hx_init(const machine_t *model)
device_add(&i430hx_device);
device_add(&piix3_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&pc87306_device);
device_add(&intel_flash_bxt_ami_device);
@@ -283,7 +283,7 @@ machine_at_infinia7200_init(const machine_t *model)
device_add(&i430hx_device);
device_add(&piix3_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&pc87306_device);
device_add(&intel_flash_bxt_ami_device);
@@ -342,7 +342,7 @@ machine_at_cu430hx_common_init(const machine_t *model)
device_add(&i430hx_device);
device_add(&piix3_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&pc87306_device);
device_add(&intel_flash_bxt_ami_device);
}
@@ -415,7 +415,7 @@ machine_at_pcv90_init(const machine_t *model)
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&i430hx_device);
device_add(&piix3_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&pc87306_device);
device_add(&intel_flash_bxt_ami_device);
@@ -461,7 +461,7 @@ machine_at_epc2102_init(const machine_t *model)
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&i430hx_device);
device_add(&piix3_device);
- device_add(&keyboard_ps2_intel_ami_pci_device);
+ device_add(&kbc_ps2_intel_ami_pci_device);
device_add(&i82091aa_device);
device_add(&sst_flash_39sf010_device);
@@ -490,7 +490,7 @@ machine_at_p55tvp4_init(const machine_t *model)
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&i430vx_device);
device_add(&piix3_device);
- device_add(&keyboard_ps2_ami_pci_device); // It uses the AMIKEY KBC
+ device_add(&kbc_ps2_ami_pci_device); // It uses the AMIKEY KBC
device_add(&w83877f_device);
device_add(&intel_flash_bxt_device);
@@ -518,7 +518,7 @@ machine_at_5ivg_init(const machine_t *model)
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&i430vx_device);
device_add(&piix3_device);
- device_add(&keyboard_ps2_pci_device);
+ device_add(&kbc_ps2_pci_device);
device_add(&prime3c_device);
device_add(&intel_flash_bxt_device);
@@ -547,7 +547,7 @@ machine_at_8500tvxa_init(const machine_t *model)
pci_register_slot(0x0B, PCI_CARD_NORMAL, 4, 3, 2, 1);
device_add(&i430vx_device);
device_add(&piix3_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&um8669f_device);
device_add(&sst_flash_29ee010_device);
@@ -734,7 +734,7 @@ machine_at_pb680_init(const machine_t *model)
device_add(&i430vx_device);
device_add(&piix3_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&pc87306_device);
device_add(&intel_flash_bxt_ami_device);
@@ -794,7 +794,7 @@ machine_at_mb520n_init(const machine_t *model)
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&i430vx_device);
device_add(&piix3_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&fdc37c669_device);
device_add(&intel_flash_bxt_device);
@@ -823,7 +823,7 @@ machine_at_i430vx_init(const machine_t *model)
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&i430vx_device);
device_add(&piix3_device);
- device_add(&keyboard_ps2_pci_device);
+ device_add(&kbc_ps2_pci_device);
device_add(&um8669f_device);
device_add(&intel_flash_bxt_device);
@@ -890,7 +890,7 @@ machine_at_ma23c_init(const machine_t *model)
device_add(&i430tx_device);
device_add(&piix4_device);
device_add(&nec_mate_unk_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&fdc37c67x_device);
device_add(&intel_flash_bxt_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 256);
@@ -926,7 +926,7 @@ machine_at_nupro592_init(const machine_t *model)
device_add(&i430tx_device);
device_add(&piix4_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&w83977ef_device);
device_add(&intel_flash_bxt_device);
spd_register(SPD_TYPE_SDRAM, 0x3, 128);
@@ -963,7 +963,7 @@ machine_at_tx97_init(const machine_t *model)
pci_register_slot(0x08, PCI_CARD_NORMAL, 1, 2, 3, 4);
device_add(&i430tx_device);
device_add(&piix4_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&w83877tf_acorp_device);
device_add(&intel_flash_bxt_device);
spd_register(SPD_TYPE_SDRAM, 0x3, 128);
@@ -1079,7 +1079,7 @@ machine_at_ym430tx_init(const machine_t *model)
pci_register_slot(0x08, PCI_CARD_NORMAL, 1, 2, 3, 4);
device_add(&i430tx_device);
device_add(&piix4_device);
- device_add(&keyboard_ps2_pci_device);
+ device_add(&kbc_ps2_pci_device);
device_add(&w83977tf_device);
device_add(&intel_flash_bxt_device);
spd_register(SPD_TYPE_SDRAM, 0x3, 128);
@@ -1109,7 +1109,7 @@ machine_at_mb540n_init(const machine_t *model)
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 1, 2, 3, 4); /* PIIX4 */
device_add(&i430tx_device);
device_add(&piix4_device);
- device_add(&keyboard_ps2_pci_device);
+ device_add(&kbc_ps2_pci_device);
device_add(&um8669f_device);
device_add(&sst_flash_29ee010_device);
spd_register(SPD_TYPE_SDRAM, 0x3, 128);
@@ -1140,7 +1140,7 @@ machine_at_56a5_init(const machine_t *model)
pci_register_slot(0x10, PCI_CARD_NORMAL, 1, 2, 3, 4);
device_add(&i430tx_device);
device_add(&piix4_device);
- device_add(&keyboard_ps2_pci_device);
+ device_add(&kbc_ps2_pci_device);
device_add(&w83877f_device);
device_add(&sst_flash_29ee010_device);
spd_register(SPD_TYPE_SDRAM, 0x3, 128);
@@ -1170,7 +1170,7 @@ machine_at_p5mms98_init(const machine_t *model)
pci_register_slot(0x14, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&i430tx_device);
device_add(&piix4_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&w83977tf_device);
device_add(&intel_flash_bxt_device);
spd_register(SPD_TYPE_SDRAM, 0x3, 128);
@@ -1202,7 +1202,7 @@ machine_at_richmond_init(const machine_t *model)
pci_register_slot(0x14, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&i430tx_device);
device_add(&piix4_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&it8671f_device);
device_add(&intel_flash_bxt_device);
spd_register(SPD_TYPE_SDRAM, 0x3, 128);
@@ -1235,7 +1235,7 @@ machine_at_tomahawk_init(const machine_t *model)
pci_register_slot(0x08, PCI_CARD_NORMAL, 3, 4, 1, 2);
device_add(&i430tx_device);
device_add(&piix4_device);
- device_add(&keyboard_ps2_intel_ami_pci_device);
+ device_add(&kbc_ps2_intel_ami_pci_device);
device_add(&fdc37c67x_device);
device_add(&amd_flash_29f020a_device);
spd_register(SPD_TYPE_SDRAM, 0x3, 128);
@@ -1276,7 +1276,7 @@ machine_at_ficva502_init(const machine_t *model)
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 1, 2, 3, 4);
device_add(&via_vpx_device);
device_add(&via_vt82c586b_device);
- device_add(&keyboard_ps2_pci_device);
+ device_add(&kbc_ps2_pci_device);
device_add(&fdc37c669_370_device);
device_add(&sst_flash_29ee010_device);
spd_register(SPD_TYPE_SDRAM, 0x3, 256);
@@ -1308,7 +1308,7 @@ machine_at_ficpa2012_init(const machine_t *model)
device_add(&via_vp3_device);
device_add(&via_vt82c586b_device);
- device_add(&keyboard_ps2_pci_device);
+ device_add(&kbc_ps2_pci_device);
device_add(&w83877f_device);
device_add(&sst_flash_29ee010_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 512);
@@ -1340,7 +1340,7 @@ machine_at_via809ds_init(const machine_t *model)
device_add(&via_vp3_device);
device_add(&via_vt82c586b_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&fdc37c669_device);
device_add(&intel_flash_bxt_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 512);
@@ -1370,7 +1370,7 @@ machine_at_r534f_init(const machine_t *model)
pci_register_slot(0x11, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&sis_5571_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&w83877f_device);
device_add(&sst_flash_29ee010_device);
@@ -1399,7 +1399,7 @@ machine_at_ms5146_init(const machine_t *model)
pci_register_slot(0x10, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&sis_5571_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&w83877f_device);
device_add(&sst_flash_29ee010_device);
@@ -1428,7 +1428,7 @@ machine_at_cb52xsi_init(const machine_t *model)
pci_register_slot(0x07, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&sis_5571_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&fdc37c669_370_device);
device_add(&sst_flash_29ee010_device);
@@ -1457,7 +1457,7 @@ machine_at_sp97xv_init(const machine_t *model)
pci_register_slot(0x09, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x13, PCI_CARD_VIDEO, 1, 2, 3, 4); /* On-chip SiS graphics, absent here. */
device_add(&sis_5581_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&w83877f_device);
device_add(&sst_flash_29ee010_device);
@@ -1484,7 +1484,7 @@ machine_at_sq578_init(const machine_t *model)
pci_register_slot(0x0B, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x09, PCI_CARD_NORMAL, 1, 2, 3, 4);
device_add(&sis_5581_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&w83877tf_device);
device_add(&sst_flash_29ee010_device);
@@ -1512,7 +1512,7 @@ machine_at_ms5172_init(const machine_t *model)
pci_register_slot(0x0A, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x0B, PCI_CARD_NORMAL, 3, 4, 1, 2);
device_add(&sis_5591_1997_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&w83877tf_device);
device_add(&sst_flash_29ee010_device);
diff --git a/src/machine/m_at_socket7_3v.c b/src/machine/m_at_socket7_3v.c
index 0dea19a18..6303484dd 100644
--- a/src/machine/m_at_socket7_3v.c
+++ b/src/machine/m_at_socket7_3v.c
@@ -106,7 +106,7 @@ machine_at_thor_common_init(const machine_t *model, int has_video)
if (has_video && (gfxcard[0] == VID_INTERNAL))
device_add(machine_get_vid_device(machine));
- device_add(&keyboard_ps2_intel_ami_pci_device);
+ device_add(&kbc_ps2_intel_ami_pci_device);
device_add(&i430fx_device);
device_add(&piix_device);
device_add(&pc87306_device);
@@ -125,7 +125,7 @@ machine_at_p54tp4xe_common_init(const machine_t *model)
pci_register_slot(0x0A, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x09, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&i430fx_device);
device_add(&piix_device);
device_add(&fdc37c665_device);
@@ -184,7 +184,7 @@ machine_at_exp8551_init(const machine_t *model)
pci_register_slot(0x12, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x11, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&i430fx_device);
device_add(&piix_device);
device_add(&w83787f_device);
@@ -359,7 +359,7 @@ machine_at_endeavor_init(const machine_t *model)
if (sound_card_current[0] == SOUND_INTERNAL)
machine_snd = device_add(machine_get_snd_device(machine));
- device_add(&keyboard_ps2_intel_ami_pci_device);
+ device_add(&kbc_ps2_intel_ami_pci_device);
device_add(&i430fx_device);
device_add(&piix_device);
device_add(&pc87306_device);
@@ -390,7 +390,7 @@ machine_at_ms5119_init(const machine_t *model)
device_add(&i430fx_device);
device_add(&piix_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&w83787f_device);
device_add(&sst_flash_29ee010_device);
@@ -457,7 +457,7 @@ machine_at_pb640_init(const machine_t *model)
if (gfxcard[0] == VID_INTERNAL)
device_add(machine_get_vid_device(machine));
- device_add(&keyboard_ps2_intel_ami_pci_device);
+ device_add(&kbc_ps2_intel_ami_pci_device);
device_add(&pc87306_device);
device_add(&intel_flash_bxt_ami_device);
@@ -484,7 +484,7 @@ machine_at_mb500n_init(const machine_t *model)
pci_register_slot(0x12, PCI_CARD_NORMAL, 3, 4, 1, 2);
pci_register_slot(0x11, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
- device_add(&keyboard_ps2_pci_device);
+ device_add(&kbc_ps2_pci_device);
device_add(&i430fx_device);
device_add(&piix_no_mirq_device);
device_add(&fdc37c665_device);
@@ -516,7 +516,7 @@ machine_at_fmb_init(const machine_t *model)
device_add(&i430fx_device);
device_add(&piix_no_mirq_device);
- device_add(&keyboard_at_ami_device);
+ device_add(&kbc_at_ami_device);
device_add(&w83787f_device);
device_add(&intel_flash_bxt_device);
@@ -576,7 +576,7 @@ machine_at_ap53_init(const machine_t *model)
pci_register_slot(0x06, PCI_CARD_VIDEO, 1, 2, 3, 4);
device_add(&i430hx_device);
device_add(&piix3_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&fdc37c669_device);
device_add(&intel_flash_bxt_device);
@@ -605,7 +605,7 @@ machine_at_8500tuc_init(const machine_t *model)
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 1, 2, 3, 4);
device_add(&i430hx_device);
device_add(&piix3_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&um8669f_device);
device_add(&intel_flash_bxt_device);
@@ -640,7 +640,7 @@ machine_at_d943_init(const machine_t *model)
pci_register_slot(0x13, PCI_CARD_NORMAL, 1, 3, 2, 4);
device_add(&i430hx_device);
device_add(&piix3_device);
- device_add(&keyboard_ps2_pci_device);
+ device_add(&kbc_ps2_pci_device);
device_add(&fdc37c665_device);
device_add(&intel_flash_bxt_device);
spd_register(SPD_TYPE_EDO, 0x7, 256);
@@ -718,7 +718,7 @@ machine_at_p55t2s_init(const machine_t *model)
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
device_add(&i430hx_device);
device_add(&piix3_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&pc87306_device);
device_add(&intel_flash_bxt_device);
@@ -747,7 +747,7 @@ machine_at_p5vxb_init(const machine_t *model)
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 4);
device_add(&i430vx_device);
device_add(&piix3_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&w83877f_device);
device_add(&sst_flash_29ee010_device);
@@ -854,7 +854,7 @@ machine_at_ap5s_init(const machine_t *model)
pci_register_slot(0x13, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&sis_5511_device);
- device_add(&keyboard_ps2_ami_device);
+ device_add(&kbc_ps2_ami_device);
device_add(&fdc37c665_device);
device_add(&sst_flash_29ee010_device);
@@ -883,7 +883,7 @@ machine_at_ms5124_init(const machine_t *model)
pci_register_slot(0x0F, PCI_CARD_NORMAL, 2, 3, 4, 1);
device_add(&sis_5511_device);
- device_add(&keyboard_ps2_ami_device);
+ device_add(&kbc_ps2_ami_device);
device_add(&w83787f_88h_device);
device_add(&sst_flash_29ee010_device);
@@ -912,7 +912,7 @@ machine_at_amis727_init(const machine_t *model)
pci_register_slot(0x0D, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&sis_5511_device);
- device_add(&keyboard_ps2_intel_ami_pci_device);
+ device_add(&kbc_ps2_intel_ami_pci_device);
device_add(&fdc37c665_device);
device_add(&intel_flash_bxt_device);
@@ -1016,7 +1016,7 @@ machine_at_5sbm2_init(const machine_t *model)
pci_register_slot(0x0F, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x11, PCI_CARD_NORMAL, 3, 4, 1, 2);
- device_add(&keyboard_at_ami_device);
+ device_add(&kbc_at_ami_device);
device_add(&sis_550x_device);
device_add(&um8663af_device);
device_add(&sst_flash_29ee010_device);
@@ -1048,7 +1048,7 @@ machine_at_pc140_6260_init(const machine_t *model)
device_add(&gd5436_onboard_pci_device);
device_add(&sis_5511_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&fdc37c669_device);
device_add(&sst_flash_29ee010_device);
diff --git a/src/machine/m_at_socket8.c b/src/machine/m_at_socket8.c
index d81b41502..097512abc 100644
--- a/src/machine/m_at_socket8.c
+++ b/src/machine/m_at_socket8.c
@@ -65,7 +65,7 @@ machine_at_ap61_init(const machine_t *model)
device_add(&i450kx_device);
device_add(&sio_zb_device);
device_add(&ide_cmd646_device);
- device_add(&keyboard_ps2_acer_pci_device);
+ device_add(&kbc_ps2_acer_pci_device);
device_add(&fdc37c665_device);
device_add(&sst_flash_29ee010_device);
// device_add(&intel_flash_bxt_device);
@@ -100,7 +100,7 @@ machine_at_p6rp4_init(const machine_t *model)
device_add(&sio_zb_device);
device_add(&ide_cmd646_device);
/* Input port bit 2 must be 1 or CMOS Setup is disabled. */
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&fdc37c665_device);
device_add(&intel_flash_bxt_device);
@@ -129,7 +129,7 @@ machine_at_686nx_init(const machine_t *model)
pci_register_slot(0x0B, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&i440fx_device);
device_add(&piix3_device);
- device_add(&keyboard_ps2_ami_pci_device); // Uses the AMIKEY keyboard controller
+ device_add(&kbc_ps2_ami_pci_device); // Uses the AMIKEY keyboard controller
device_add(&um8669f_device);
device_add(&intel_flash_bxt_device);
@@ -158,7 +158,7 @@ machine_at_mb600n_init(const machine_t *model)
pci_register_slot(0x14, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&i440fx_device);
device_add(&piix3_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&fdc37c669_device);
device_add(&intel_flash_bxt_device);
@@ -217,7 +217,7 @@ machine_at_lgibmx61_init(const machine_t *model)
pci_register_slot(0x0F, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&i440fx_device);
device_add(&piix3_device);
- device_add(&keyboard_ps2_ami_device);
+ device_add(&kbc_ps2_ami_device);
device_add(&w83877f_president_device);
device_add(&sst_flash_29ee010_device);
@@ -392,7 +392,7 @@ machine_at_8600ttc_init(const machine_t *model)
pci_register_slot(0x0B, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(&i440fx_device);
device_add(&piix3_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&fdc37c669_device);
device_add(&intel_flash_bxt_device);
@@ -442,7 +442,7 @@ machine_at_p65up5_common_init(const machine_t *model, const device_t *northbridg
pci_register_slot(0x0D, PCI_CARD_NORMAL, 4, 1, 2, 3);
device_add(northbridge);
device_add(&piix3_ioapic_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&w83877f_device);
device_add(&sst_flash_29ee010_device);
device_add(&ioapic_device);
diff --git a/src/machine/m_at_sockets7.c b/src/machine/m_at_sockets7.c
index b7ffc03b3..6a867f8f0 100644
--- a/src/machine/m_at_sockets7.c
+++ b/src/machine/m_at_sockets7.c
@@ -231,7 +231,7 @@ machine_at_ax59pro_init(const machine_t *model)
device_add(&via_mvp3_device);
device_add(&via_vt82c586b_device);
- device_add(&keyboard_ps2_pci_device);
+ device_add(&kbc_ps2_pci_device);
device_add(&w83877tf_device);
device_add(&sst_flash_39sf020_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 256);
@@ -262,7 +262,7 @@ machine_at_mvp3_init(const machine_t *model)
device_add(&via_mvp3_device);
device_add(&via_vt82c586b_device);
- device_add(&keyboard_ps2_pci_device);
+ device_add(&kbc_ps2_pci_device);
device_add(&w83877tf_acorp_device);
device_add(&sst_flash_39sf010_device);
spd_register(SPD_TYPE_SDRAM, 0x3, 256);
@@ -294,7 +294,7 @@ machine_at_ficva503a_init(const machine_t *model)
device_add(&via_mvp3_device);
device_add(&via_vt82c686a_device); /* fans: CPU1, Chassis; temperatures: CPU, System, unused */
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&sst_flash_39sf020_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 256);
hwm_values.temperatures[0] += 2; /* CPU offset */
@@ -332,7 +332,7 @@ machine_at_5emapro_init(const machine_t *model)
device_add(&via_mvp3_device); /* Rebranded as EQ82C6638 */
device_add(&via_vt82c686a_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&sst_flash_39sf010_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 256);
device_add(&via_vt82c686_hwm_device); /* fans: CPU1, Chassis; temperatures: CPU, System, unused */
@@ -364,7 +364,7 @@ machine_at_delhi3_init(const machine_t *model)
device_add(&via_mvp3_device);
device_add(&via_vt82c596a_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&w83877tf_device);
device_add(&sst_flash_39sf020_device);
spd_register(SPD_TYPE_SDRAM, 0x3, 256);
@@ -397,7 +397,7 @@ machine_at_5sg100_init(const machine_t *model)
pci_register_slot(0x0F, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x02, PCI_CARD_AGPBRIDGE, 0, 0, 0, 0);
device_add(&sis_5591_1997_device);
- device_add(&keyboard_ps2_ami_pci_device);
+ device_add(&kbc_ps2_ami_pci_device);
device_add(&w83877tf_device);
device_add(&sst_flash_29ee010_device);
diff --git a/src/machine/m_at_t3100e.c b/src/machine/m_at_t3100e.c
index 3c83b0cce..92daa610c 100644
--- a/src/machine/m_at_t3100e.c
+++ b/src/machine/m_at_t3100e.c
@@ -813,7 +813,7 @@ machine_at_t3100e_init(const machine_t *model)
machine_at_common_ide_init(model);
- device_add(&keyboard_at_toshiba_device);
+ device_add(&kbc_at_toshiba_device);
if (fdc_current[0] == FDC_INTERNAL) {
device_add(&fdc_at_device);
diff --git a/src/machine/m_elt.c b/src/machine/m_elt.c
index 628333aba..2c807782c 100644
--- a/src/machine/m_elt.c
+++ b/src/machine/m_elt.c
@@ -190,7 +190,7 @@ machine_elt_init(const machine_t *model)
/* Keyboard goes after the video, because on XT compatibles it's dealt
* with by the same PPI as the config switches and we need them to
* indicate the correct display type */
- device_add(&keyboard_xt_device);
+ device_add(&kbc_xt_device);
device_add(&elt_nvr_device);
diff --git a/src/machine/m_europc.c b/src/machine/m_europc.c
index 7fc990a45..4f3a3b8ff 100644
--- a/src/machine/m_europc.c
+++ b/src/machine/m_europc.c
@@ -651,7 +651,7 @@ europc_boot(UNUSED(const device_t *info))
jim_read, NULL, NULL, jim_write, NULL, NULL, sys);
/* Only after JIM has been initialized. */
- (void) device_add(&keyboard_xt_device);
+ (void) device_add(&kbc_xt_device);
/* Enable and set up the FDC. */
(void) device_add(&fdc_xt_device);
diff --git a/src/machine/m_ps1.c b/src/machine/m_ps1.c
index c22463de4..6e6d7512f 100644
--- a/src/machine/m_ps1.c
+++ b/src/machine/m_ps1.c
@@ -394,7 +394,7 @@ ps1_common_init(const machine_t *model)
dma16_init();
pic2_init();
- device_add(&keyboard_ps2_ps1_device);
+ device_add(&kbc_ps2_ps1_device);
device_add(&port_6x_device);
/* Audio uses ports 200h and 202-207h, so only initialize gameport on 201h. */
diff --git a/src/machine/m_ps2_isa.c b/src/machine/m_ps2_isa.c
index 8a2760f15..f4439da84 100644
--- a/src/machine/m_ps2_isa.c
+++ b/src/machine/m_ps2_isa.c
@@ -197,7 +197,7 @@ ps2_isa_common_init(const machine_t *model)
dma16_init();
pic2_init();
- device_add(&keyboard_ps2_device);
+ device_add(&kbc_ps2_device);
device_add(&port_6x_ps2_device);
}
diff --git a/src/machine/m_ps2_mca.c b/src/machine/m_ps2_mca.c
index d3f881b24..fccecb410 100644
--- a/src/machine/m_ps2_mca.c
+++ b/src/machine/m_ps2_mca.c
@@ -1159,7 +1159,7 @@ ps2_mca_board_model_50_init(void)
mem_remap_top(384);
mca_init(4);
- device_add(&keyboard_ps2_mca_2_device);
+ device_add(&kbc_ps2_mca_2_device);
ps2.planar_read = model_50_read;
ps2.planar_write = model_50_write;
@@ -1180,7 +1180,7 @@ ps2_mca_board_model_60_init(void)
mem_remap_top(384);
mca_init(8);
- device_add(&keyboard_ps2_mca_2_device);
+ device_add(&kbc_ps2_mca_2_device);
ps2.planar_read = model_50_read;
ps2.planar_write = model_50_write;
@@ -1240,7 +1240,7 @@ ps2_mca_board_model_55sx_init(int has_sec_nvram, int slots)
}
mca_init(slots);
- device_add(&keyboard_ps2_mca_1_device);
+ device_add(&kbc_ps2_mca_1_device);
if (has_sec_nvram)
device_add(&ps2_nvr_55ls_device);
@@ -1419,7 +1419,7 @@ ps2_mca_board_model_70_type34_init(int is_type4, int slots)
ps2.split_addr = mem_size * 1024;
mca_init(slots);
- device_add(&keyboard_ps2_mca_1_device);
+ device_add(&kbc_ps2_mca_1_device);
ps2.planar_read = model_70_type3_read;
ps2.planar_write = model_70_type3_write;
@@ -1512,7 +1512,7 @@ ps2_mca_board_model_80_type2_init(void)
ps2.split_addr = mem_size * 1024;
mca_init(8);
- device_add(&keyboard_ps2_mca_1_device);
+ device_add(&kbc_ps2_mca_1_device);
ps2.planar_read = model_80_read;
ps2.planar_write = model_80_write;
@@ -1778,7 +1778,7 @@ ps55_mca_board_model_50t_init(void)
ps2.split_addr = mem_size * 1024;
/* The slot 5 is reserved for the Integrated Fixed Disk II (an internal ESDI hard drive). */
mca_init(5);
- device_add(&keyboard_ps2_mca_1_device);
+ device_add(&kbc_ps2_mca_1_device);
ps2.planar_read = ps55_model_50t_read;
ps2.planar_write = ps55_model_50tv_write;
@@ -1822,7 +1822,7 @@ ps55_mca_board_model_50v_init(void)
ps2.split_addr = mem_size * 1024;
/* The slot 5 is reserved for the Integrated Fixed Disk II (an internal ESDI hard drive). */
mca_init(5);
- device_add(&keyboard_ps2_mca_1_device);
+ device_add(&kbc_ps2_mca_1_device);
ps2.planar_read = ps55_model_50v_read;
ps2.planar_write = ps55_model_50tv_write;
diff --git a/src/machine/m_tandy.c b/src/machine/m_tandy.c
index d69694c44..1c7061d8a 100644
--- a/src/machine/m_tandy.c
+++ b/src/machine/m_tandy.c
@@ -945,7 +945,7 @@ machine_tandy1k_init(const machine_t *model, int type)
MEM_MAPPING_INTERNAL, dev);
mem_mapping_set_addr(&ram_low_mapping, 0, dev->base);
- device_add(&keyboard_tandy_device);
+ device_add(&kbc_tandy_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_xt_tandy_device);
diff --git a/src/machine/m_v86p.c b/src/machine/m_v86p.c
index f152383d1..fbe7296f8 100644
--- a/src/machine/m_v86p.c
+++ b/src/machine/m_v86p.c
@@ -86,7 +86,7 @@ machine_v86p_init(const machine_t *model)
device_add(&ct_82c100_device);
device_add(&f82c606_device);
- device_add(&keyboard_xt_device);
+ device_add(&kbc_xt_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_xt_device);
diff --git a/src/machine/m_xt.c b/src/machine/m_xt.c
index 04cddbbd0..2fee7873a 100644
--- a/src/machine/m_xt.c
+++ b/src/machine/m_xt.c
@@ -160,7 +160,7 @@ machine_pc_init(const machine_t *model)
if (bios_only || !ret)
return ret;
- device_add(&keyboard_pc_device);
+ device_add(&kbc_pc_device);
machine_xt_common_init(model, 0);
@@ -270,7 +270,7 @@ machine_pc82_init(const machine_t *model)
if (bios_only || !ret)
return ret;
- device_add(&keyboard_pc82_device);
+ device_add(&kbc_pc82_device);
machine_xt_common_init(model, 0);
@@ -441,7 +441,7 @@ machine_xt_init(const machine_t *model)
if (bios_only || !ret)
return ret;
- device_add(&keyboard_xt_device);
+ device_add(&kbc_xt_device);
machine_xt_common_init(model, 0);
@@ -462,7 +462,7 @@ machine_genxt_init(const machine_t *model)
if (bios_only || !ret)
return ret;
- device_add(&keyboard_xt_device);
+ device_add(&kbc_xt_device);
machine_xt_common_init(model, 0);
@@ -619,7 +619,7 @@ machine_xt86_init(const machine_t *model)
if (bios_only || !ret)
return ret;
- device_add(&keyboard_xt86_device);
+ device_add(&kbc_xt86_device);
machine_xt_common_init(model, 0);
@@ -632,7 +632,7 @@ machine_xt86_init(const machine_t *model)
static void
machine_xt_clone_init(const machine_t *model, int fixed_floppy)
{
- device_add(&keyboard_xtclone_device);
+ device_add(&kbc_xtclone_device);
machine_xt_common_init(model, fixed_floppy);
}
@@ -680,7 +680,7 @@ machine_xt_tuliptc8_init(const machine_t *model)
if (bios_only || !ret)
return ret;
- device_add(&keyboard_xt_fe2010_device);
+ device_add(&kbc_xt_fe2010_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
@@ -863,7 +863,7 @@ machine_xt_pxxt_init(const machine_t *model)
if (bios_only || !ret)
return ret;
- device_add(&keyboard_xt_device);
+ device_add(&kbc_xt_device);
machine_xt_common_init(model, 0);
@@ -943,7 +943,7 @@ machine_xt_pravetz16_imko4_init(const machine_t *model)
if (bios_only || !ret)
return ret;
- device_add(&keyboard_pravetz_device);
+ device_add(&kbc_pravetz_device);
machine_xt_common_init(model, 0);
@@ -961,7 +961,7 @@ machine_xt_pravetz16s_cpu12p_init(const machine_t *model)
if (bios_only || !ret)
return ret;
- device_add(&keyboard_xt_device);
+ device_add(&kbc_xt_device);
machine_xt_common_init(model, 0);
@@ -979,7 +979,7 @@ machine_xt_micoms_xl7turbo_init(const machine_t *model)
if (bios_only || !ret)
return ret;
- device_add(&keyboard_xt_device);
+ device_add(&kbc_xt_device);
machine_xt_common_init(model, 0);
@@ -1013,7 +1013,7 @@ machine_xt_mpc1600_init(const machine_t *model)
if (bios_only || !ret)
return ret;
- device_add(&keyboard_pc82_device);
+ device_add(&kbc_pc82_device);
machine_xt_common_init(model, 0);
@@ -1036,7 +1036,7 @@ machine_xt_pcspirit_init(const machine_t *model)
if (bios_only || !ret)
return ret;
- device_add(&keyboard_pc82_device);
+ device_add(&kbc_pc82_device);
machine_xt_common_init(model, 0);
@@ -1054,7 +1054,7 @@ machine_xt_pc700_init(const machine_t *model)
if (bios_only || !ret)
return ret;
- device_add(&keyboard_pc_device);
+ device_add(&kbc_pc_device);
machine_xt_common_init(model, 0);
@@ -1072,7 +1072,7 @@ machine_xt_pc500_init(const machine_t *model)
if (bios_only || !ret)
return ret;
- device_add(&keyboard_pc_device);
+ device_add(&kbc_pc_device);
machine_xt_common_init(model, 0);
@@ -1146,7 +1146,7 @@ machine_xt_vendex_init(const machine_t *model)
static void
machine_xt_hyundai_common_init(const machine_t *model, int fixed_floppy)
{
- device_add(&keyboard_xt_hyundai_device);
+ device_add(&kbc_xt_hyundai_device);
machine_xt_common_init(model, fixed_floppy);
}
@@ -1294,7 +1294,7 @@ machine_xt_glabios_init(const machine_t *model)
if (bios_only || !ret)
return ret;
- device_add(&keyboard_xt_device);
+ device_add(&kbc_xt_device);
machine_xt_common_init(model, 0);
diff --git a/src/machine/m_xt_compaq.c b/src/machine/m_xt_compaq.c
index eaae251d1..d17f43ba4 100644
--- a/src/machine/m_xt_compaq.c
+++ b/src/machine/m_xt_compaq.c
@@ -52,7 +52,7 @@ machine_xt_compaq_deskpro_init(const machine_t *model)
pit_devs[0].set_out_func(pit_devs[0].data, 1, pit_refresh_timer_xt);
- device_add(&keyboard_xt_compaq_device);
+ device_add(&kbc_xt_compaq_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_xt_device);
nmi_init();
@@ -79,7 +79,7 @@ machine_xt_compaq_portable_init(const machine_t *model)
pit_devs[0].set_out_func(pit_devs[0].data, 1, pit_refresh_timer_xt);
- device_add(&keyboard_xt_compaq_device);
+ device_add(&kbc_xt_compaq_device);
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_xt_device);
nmi_init();
diff --git a/src/machine/m_xt_laserxt.c b/src/machine/m_xt_laserxt.c
index 9a7dfc255..fcfcebaa2 100644
--- a/src/machine/m_xt_laserxt.c
+++ b/src/machine/m_xt_laserxt.c
@@ -468,7 +468,7 @@ machine_xt_laserxt_common_init(const machine_t *model,int is_lxt3)
device_add(is_lxt3 ? &lxt3_device : &laserxt_device);
- device_add(&keyboard_xt_lxt3_device);
+ device_add(&kbc_xt_lxt3_device);
}
int
diff --git a/src/machine/m_xt_olivetti.c b/src/machine/m_xt_olivetti.c
index b18aeedff..41a474c28 100644
--- a/src/machine/m_xt_olivetti.c
+++ b/src/machine/m_xt_olivetti.c
@@ -2451,7 +2451,7 @@ machine_xt_m19_init(const machine_t *model)
m19_vid_init(vid);
device_add_ex(&m19_vid_device, vid);
- device_add(&keyboard_xt_olivetti_device);
+ device_add(&kbc_xt_olivetti_device);
pit_set_clock((uint32_t) 14318184.0);
diff --git a/src/machine/m_xt_philips.c b/src/machine/m_xt_philips.c
index 92a33391d..273c856a5 100644
--- a/src/machine/m_xt_philips.c
+++ b/src/machine/m_xt_philips.c
@@ -160,7 +160,7 @@ machine_xt_philips_common_init(const machine_t *model)
standalone_gameport_type = &gameport_200_device;
- device_add(&keyboard_pc_device);
+ device_add(&kbc_pc_device);
device_add(&philips_device);
diff --git a/src/machine/m_xt_t1000.c b/src/machine/m_xt_t1000.c
index 5a787292f..080a03d19 100644
--- a/src/machine/m_xt_t1000.c
+++ b/src/machine/m_xt_t1000.c
@@ -899,7 +899,7 @@ machine_xt_t1000_init(const machine_t *model)
machine_common_init(model);
pit_devs[0].set_out_func(pit_devs[0].data, 1, pit_refresh_timer_xt);
- device_add(&keyboard_xt_t1x00_device);
+ device_add(&kbc_xt_t1x00_device);
t1000.fdc = device_add(&fdc_xt_device);
nmi_init();
@@ -957,7 +957,7 @@ machine_xt_t1200_init(const machine_t *model)
NULL, MEM_MAPPING_EXTERNAL, &t1000);
pit_devs[0].set_out_func(pit_devs[0].data, 1, pit_refresh_timer_xt);
- device_add(&keyboard_xt_t1x00_device);
+ device_add(&kbc_xt_t1x00_device);
t1000.fdc = device_add(&fdc_xt_t1x00_device);
nmi_init();
diff --git a/src/machine/m_xt_xi8088.c b/src/machine/m_xt_xi8088.c
index 2e155a833..a9487e10a 100644
--- a/src/machine/m_xt_xi8088.c
+++ b/src/machine/m_xt_xi8088.c
@@ -204,7 +204,7 @@ machine_xt_xi8088_init(const machine_t *model)
if (fdc_current[0] == FDC_INTERNAL)
device_add(&fdc_at_device);
- device_add(&keyboard_ps2_xi8088_device);
+ device_add(&kbc_ps2_xi8088_device);
device_add(&port_6x_xi8088_device);
nmi_init();
device_add(&ibmat_nvr_device);
diff --git a/src/machine/m_xt_zenith.c b/src/machine/m_xt_zenith.c
index 2159c18e5..78fbb8eed 100644
--- a/src/machine/m_xt_zenith.c
+++ b/src/machine/m_xt_zenith.c
@@ -117,7 +117,7 @@ machine_zenith_init(const machine_t *model)
pit_devs[0].set_out_func(pit_devs[0].data, 1, pit_refresh_timer_xt);
- device_add(&keyboard_xt_zenith_device);
+ device_add(&kbc_xt_zenith_device);
nmi_init();
}
diff --git a/src/machine/machine_table.c b/src/machine/machine_table.c
index 2181bb28d..d23ec33dd 100644
--- a/src/machine/machine_table.c
+++ b/src/machine/machine_table.c
@@ -1,18008 +1,18440 @@
-/*
- * 86Box A hypervisor and IBM PC system emulator that specializes in
- * running old operating systems and software designed for IBM
- * PC systems and compatibles from 1981 through fairly recent
- * system designs based on the PCI bus.
- *
- * This file is part of the 86Box distribution.
- *
- * Handling of the emulated machines.
- *
- * Authors: Miran Grca,
- * Fred N. van Kempen,
- * Jasmine Iwanek,
- *
- * Copyright 2016-2025 Miran Grca.
- * Copyright 2017-2025 Fred N. van Kempen.
- * Copyright 2025 Jasmine Iwanek.
- */
-#include
-#include
-#include
-#include
-#include <86box/86box.h>
-#include "cpu.h"
-#include <86box/mem.h>
-#include <86box/rom.h>
-#include <86box/device.h>
-#include <86box/machine.h>
-#include <86box/timer.h>
-#include <86box/fdd.h>
-#include <86box/fdc.h>
-#include <86box/keyboard.h>
-#include <86box/sound.h>
-#include <86box/video.h>
-#include <86box/plat_unused.h>
-#include <86box/thread.h>
-#include <86box/network.h>
-
-// Temporarily here till we move everything out into the right files
-extern const device_t pcjr_device;
-extern const device_t m19_vid_device;
-extern const device_t tandy_1000_video_device;
-extern const device_t tandy_1000hx_video_device;
-extern const device_t tandy_1000sl_video_device;
-
-extern const device_t t1000_video_device;
-extern const device_t xi8088_device;
-extern const device_t cga_device;
-extern const device_t vid_1512_device;
-extern const device_t vid_1640_device;
-extern const device_t vid_pc2086_device;
-extern const device_t vid_pc3086_device;
-extern const device_t vid_200_device;
-extern const device_t vid_ppc512_device;
-extern const device_t t1200_video_device;
-extern const device_t compaq_plasma_device;
-extern const device_t ps1_2011_device;
-extern const device_t ibmpc_device;
-extern const device_t ibmpc82_device;
-extern const device_t ibmxt_device;
-extern const device_t ibmxt86_device;
-extern const device_t ibmat_device;
-extern const device_t ibmxt286_device;
-extern const device_t pb450_device;
-extern const device_t jukopc_device;
-extern const device_t vendex_device;
-extern const device_t c5sbm2_device;
-extern const device_t sb486pv_device;
-extern const device_t ap5s_device;
-extern const device_t d842_device;
-extern const device_t d943_device;
-extern const device_t dells333sl_device;
-extern const device_t hot433a_device;
-extern const device_t pbl300sx_device;
-extern const device_t v12p_device;
-
-const machine_filter_t machine_types[] = {
- { "None", MACHINE_TYPE_NONE },
- { "[1979] 8088", MACHINE_TYPE_8088 },
- { "[1978] 8086", MACHINE_TYPE_8086 },
- { "[1982] 80286", MACHINE_TYPE_286 },
- { "[1988] i386SX", MACHINE_TYPE_386SX },
- { "[1992] 486SLC", MACHINE_TYPE_486SLC },
- { "[1985] i386DX", MACHINE_TYPE_386DX },
- { "[1989] i386DX/i486", MACHINE_TYPE_386DX_486 },
- { "[1992] i486 (Socket 168 and 1)", MACHINE_TYPE_486 },
- { "[1992] i486 (Socket 2)", MACHINE_TYPE_486_S2 },
- { "[1994] i486 (Socket 3)", MACHINE_TYPE_486_S3 },
- { "[1994] i486 (Socket 3 PCI)", MACHINE_TYPE_486_S3_PCI },
- { "[1992] i486 (Miscellaneous)", MACHINE_TYPE_486_MISC },
- { "[1993] Socket 4", MACHINE_TYPE_SOCKET4 },
- { "[1994] Socket 5", MACHINE_TYPE_SOCKET5 },
- { "[1995] Socket 7 (Single Voltage)", MACHINE_TYPE_SOCKET7_3V },
- { "[1996] Socket 7 (Dual Voltage)", MACHINE_TYPE_SOCKET7 },
- { "[1998] Super Socket 7", MACHINE_TYPE_SOCKETS7 },
- { "[1995] Socket 8", MACHINE_TYPE_SOCKET8 },
- { "[1997] Slot 1", MACHINE_TYPE_SLOT1 },
- { "[1998] Slot 1/2", MACHINE_TYPE_SLOT1_2 },
- { "[1998] Slot 1/Socket 370", MACHINE_TYPE_SLOT1_370 },
- { "[1998] Slot 2", MACHINE_TYPE_SLOT2 },
- { "[1998] Socket 370", MACHINE_TYPE_SOCKET370 },
- { "Miscellaneous", MACHINE_TYPE_MISC }
-};
-
-const machine_filter_t machine_chipsets[] = {
- { "None", MACHINE_CHIPSET_NONE },
- { "Discrete", MACHINE_CHIPSET_DISCRETE },
- { "Proprietary", MACHINE_CHIPSET_PROPRIETARY },
- { "Headland GC100A", MACHINE_CHIPSET_GC100A },
- { "Headland GC103", MACHINE_CHIPSET_GC103 },
- { "Headland HT18", MACHINE_CHIPSET_HT18 },
- { "ACC 2036", MACHINE_CHIPSET_ACC_2036 },
- { "ACC 2168", MACHINE_CHIPSET_ACC_2168 },
- { "ALi M1217", MACHINE_CHIPSET_ALI_M1217 },
- { "ALi M6117", MACHINE_CHIPSET_ALI_M6117 },
- { "ALi M1409", MACHINE_CHIPSET_ALI_M1409 },
- { "ALi M1429", MACHINE_CHIPSET_ALI_M1429 },
- { "ALi M1429G", MACHINE_CHIPSET_ALI_M1429G },
- { "ALi M1489", MACHINE_CHIPSET_ALI_M1489 },
- { "ALi ALADDiN IV+", MACHINE_CHIPSET_ALI_ALADDIN_IV_PLUS },
- { "ALi ALADDiN V", MACHINE_CHIPSET_ALI_ALADDIN_V },
- { "ALi ALADDiN-PRO II", MACHINE_CHIPSET_ALI_ALADDIN_PRO_II },
- { "C&T PC/AT", MACHINE_CHIPSET_CT_AT },
- { "C&T 386/AT", MACHINE_CHIPSET_CT_386 },
- { "C&T 82C235 SCAT", MACHINE_CHIPSET_SCAT },
- { "C&T 82C236 SCATsx", MACHINE_CHIPSET_SCAT_SX },
- { "C&T CS8221 NEAT", MACHINE_CHIPSET_NEAT },
- { "C&T CS8281 NEATsx", MACHINE_CHIPSET_NEAT_SX },
- { "C&T CS4031", MACHINE_CHIPSET_CT_CS4031 },
- { "Contaq 82C596", MACHINE_CHIPSET_CONTAQ_82C596 },
- { "Contaq 82C597", MACHINE_CHIPSET_CONTAQ_82C597 },
- { "IMS 8848", MACHINE_CHIPSET_IMS_8848 },
- { "Intel 82335", MACHINE_CHIPSET_INTEL_82335 },
- { "Intel 420TX", MACHINE_CHIPSET_INTEL_420TX },
- { "Intel 420ZX", MACHINE_CHIPSET_INTEL_420ZX },
- { "Intel 420EX", MACHINE_CHIPSET_INTEL_420EX },
- { "Intel 430LX", MACHINE_CHIPSET_INTEL_430LX },
- { "Intel 430NX", MACHINE_CHIPSET_INTEL_430NX },
- { "Intel 430FX", MACHINE_CHIPSET_INTEL_430FX },
- { "Intel 430HX", MACHINE_CHIPSET_INTEL_430HX },
- { "Intel 430VX", MACHINE_CHIPSET_INTEL_430VX },
- { "Intel 430TX", MACHINE_CHIPSET_INTEL_430TX },
- { "Intel 450KX", MACHINE_CHIPSET_INTEL_450KX },
- { "Intel 440FX", MACHINE_CHIPSET_INTEL_440FX },
- { "Intel 440LX", MACHINE_CHIPSET_INTEL_440LX },
- { "Intel 440EX", MACHINE_CHIPSET_INTEL_440EX },
- { "Intel 440BX", MACHINE_CHIPSET_INTEL_440BX },
- { "Intel 440ZX", MACHINE_CHIPSET_INTEL_440ZX },
- { "Intel 440GX", MACHINE_CHIPSET_INTEL_440GX },
- { "OPTi 283", MACHINE_CHIPSET_OPTI_283 },
- { "OPTi 291", MACHINE_CHIPSET_OPTI_291 },
- { "OPTi 381", MACHINE_CHIPSET_OPTI_381 },
- { "OPTi 391", MACHINE_CHIPSET_OPTI_391 },
- { "OPTi 481", MACHINE_CHIPSET_OPTI_481 },
- { "OPTi 493", MACHINE_CHIPSET_OPTI_493 },
- { "OPTi 495SLC", MACHINE_CHIPSET_OPTI_495SLC },
- { "OPTi 495SX", MACHINE_CHIPSET_OPTI_495SX },
- { "OPTi 498", MACHINE_CHIPSET_OPTI_498 },
- { "OPTi 499", MACHINE_CHIPSET_OPTI_499 },
- { "OPTi 895/802G", MACHINE_CHIPSET_OPTI_895_802G },
- { "OPTi 547/597", MACHINE_CHIPSET_OPTI_547_597 },
- { "SARC RC2016A", MACHINE_CHIPSET_SARC_RC2016A },
- { "SiS 310", MACHINE_CHIPSET_SIS_310 },
- { "SiS 401", MACHINE_CHIPSET_SIS_401 },
- { "SiS 460", MACHINE_CHIPSET_SIS_460 },
- { "SiS 461", MACHINE_CHIPSET_SIS_461 },
- { "SiS 471", MACHINE_CHIPSET_SIS_471 },
- { "SiS 496", MACHINE_CHIPSET_SIS_496 },
- { "SiS 501", MACHINE_CHIPSET_SIS_501 },
- { "SiS 5501", MACHINE_CHIPSET_SIS_5501 },
- { "SiS 5511", MACHINE_CHIPSET_SIS_5511 },
- { "SiS 5571", MACHINE_CHIPSET_SIS_5571 },
- { "SiS 5581", MACHINE_CHIPSET_SIS_5581 },
- { "SiS 5591", MACHINE_CHIPSET_SIS_5591 },
- { "SiS (5)600", MACHINE_CHIPSET_SIS_5600 },
- { "SMSC VictoryBX-66", MACHINE_CHIPSET_SMSC_VICTORYBX_66 },
- { "STPC Client", MACHINE_CHIPSET_STPC_CLIENT },
- { "STPC Consumer-II", MACHINE_CHIPSET_STPC_CONSUMER_II },
- { "STPC Elite", MACHINE_CHIPSET_STPC_ELITE },
- { "STPC Atlas", MACHINE_CHIPSET_STPC_ATLAS },
- { "Symphony SL82C460 Haydn II", MACHINE_CHIPSET_SYMPHONY_SL82C460 },
- { "UMC UM82C480", MACHINE_CHIPSET_UMC_UM82C480 },
- { "UMC UM82C491", MACHINE_CHIPSET_UMC_UM82C491 },
- { "UMC UM8881", MACHINE_CHIPSET_UMC_UM8881 },
- { "UMC UM8890BF", MACHINE_CHIPSET_UMC_UM8890BF },
- { "VIA VT82C495", MACHINE_CHIPSET_VIA_VT82C495 },
- { "VIA VT82C496G", MACHINE_CHIPSET_VIA_VT82C496G },
- { "VIA Apollo VPX", MACHINE_CHIPSET_VIA_APOLLO_VPX },
- { "VIA Apollo VP3", MACHINE_CHIPSET_VIA_APOLLO_VP3 },
- { "VIA Apollo MVP3", MACHINE_CHIPSET_VIA_APOLLO_MVP3 },
- { "VIA Apollo Pro", MACHINE_CHIPSET_VIA_APOLLO_PRO },
- { "VIA Apollo Pro 133", MACHINE_CHIPSET_VIA_APOLLO_PRO_133 },
- { "VIA Apollo Pro 133A", MACHINE_CHIPSET_VIA_APOLLO_PRO_133A },
- { "VLSI SCAMP", MACHINE_CHIPSET_VLSI_SCAMP },
- { "VLSI VL82C480", MACHINE_CHIPSET_VLSI_VL82C480 },
- { "VLSI VL82C481", MACHINE_CHIPSET_VLSI_VL82C481 },
- { "VLSI VL82C486", MACHINE_CHIPSET_VLSI_VL82C486 },
- { "WD76C10", MACHINE_CHIPSET_WD76C10 }
-};
-
-/* Machines to add before machine freeze:
- - TMC Mycomp PCI54ST;
- - Zeos Quadtel 486.
-
- NOTE: The AMI MegaKey tests were done on a real Intel Advanced/ATX
- (thanks, MrKsoft for running my AMIKEY.COM on it), but the
- technical specifications of the other Intel machines confirm
- that the other boards also have the MegaKey.
-
- NOTE: The later (ie. not AMI Color) Intel AMI BIOS'es execute a
- sequence of commands (B8, BA, BB) during one of the very first
- phases of POST, in a way that is only valid on the AMIKey-3
- KBC firmware, that includes the Classic PCI/ED (Ninja) BIOS
- which otherwise does not execute any AMI KBC commands, which
- indicates that the sequence is a leftover of whatever AMI
- BIOS (likely a laptop one since the AMIKey-3 is a laptop KBC
- firmware!) Intel forked.
-
- NOTE: The VIA VT82C42N returns 0x46 ('F') in command 0xA1 (so it
- emulates the AMI KF/AMIKey KBC firmware), and 0x42 ('B') in
- command 0xAF.
- The version on the VIA VT82C686B southbridge also returns
- 'F' in command 0xA1, but 0x45 ('E') in command 0xAF.
- The version on the VIA VT82C586B southbridge also returns
- 'F' in command 0xA1, but 0x44 ('D') in command 0xAF.
- The version on the VIA VT82C586A southbridge also returns
- 'F' in command 0xA1, but 0x43 ('C') in command 0xAF.
-
- NOTE: The AMI MegaKey commands blanked in the technical reference
- are CC and and C4, which are Set P14 High and Set P14 Low,
- respectively. Also, AMI KBC command C1, mysteriously missing
- from the technical references of AMI MegaKey and earlier, is
- Write Input Port, same as on AMIKey-3.
-*/
-
-const machine_t machines[] = {
- // clang-format off
- /* 8088 Machines */
- {
- .name = "[8088] IBM PC (1981)",
- .internal_name = "ibmpc",
- .type = MACHINE_TYPE_8088,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_pc_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8088,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC5150,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 16,
- .max = 64,
- .step = 16
- },
- .nvrmask = 0,
- .kbc_device = &keyboard_pc_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = &ibmpc_device,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8088] IBM PC (1982)",
- .internal_name = "ibmpc82",
- .type = MACHINE_TYPE_8088,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_pc82_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8088,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC5150,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 64,
- .max = 256,
- .step = 64
- },
- .nvrmask = 0,
- .kbc_device = &keyboard_pc82_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = &ibmpc82_device,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8088] IBM PCjr",
- .internal_name = "ibmpcjr",
- .type = MACHINE_TYPE_8088,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_pcjr_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8088,
- .block = CPU_BLOCK_NONE,
- .min_bus = 4772728,
- .max_bus = 4772728,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PCJR,
- .flags = MACHINE_VIDEO_FIXED | MACHINE_CARTRIDGE,
- .ram = {
- .min = 64,
- .max = 640,
- .step = 64
- },
- .nvrmask = 0,
- .kbc_device = NULL, /* TODO: No specific kbd_device yet */
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &pcjr_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8088] IBM XT (1982)",
- .internal_name = "ibmxt",
- .type = MACHINE_TYPE_8088,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_xt_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8088,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 64,
- .max = 256,
- .step = 64
- },
- .nvrmask = 0,
- .kbc_device = &keyboard_xt_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = &ibmxt_device,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8088] IBM XT (1986)",
- .internal_name = "ibmxt86",
- .type = MACHINE_TYPE_8088,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_xt86_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8088,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 256,
- .max = 640,
- .step = 64
- },
- .nvrmask = 0,
- .kbc_device = &keyboard_xt86_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = &ibmxt86_device,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8088] American XT Computer",
- .internal_name = "americxt",
- .type = MACHINE_TYPE_8088,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_xt_americxt_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8088,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 64,
- .max = 640,
- .step = 64
- },
- .nvrmask = 0,
- .kbc_device = &keyboard_xtclone_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8088] AMI XT clone",
- .internal_name = "amixt",
- .type = MACHINE_TYPE_8088,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_xt_amixt_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8088,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 64,
- .max = 640,
- .step = 64
- },
- .nvrmask = 0,
- .kbc_device = &keyboard_xtclone_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8088] Atari PC 3",
- .internal_name = "ataripc3",
- .type = MACHINE_TYPE_8088,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_xt_ataripc3_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8088,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_FDC,
- .ram = {
- .min = 64,
- .max = 640,
- .step = 64
- },
- .nvrmask = 0,
- .kbc_device = &keyboard_xtclone_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL, //&fdc_xt_device,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8088] Bondwell BW230",
- .internal_name = "bw230",
- .type = MACHINE_TYPE_8088,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_xt_bw230_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8088,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 64,
- .max = 640,
- .step = 64
- },
- .nvrmask = 0,
- .kbc_device = &keyboard_xtclone_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8088] Columbia Data Products MPC-1600",
- .internal_name = "mpc1600",
- .type = MACHINE_TYPE_8088,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_xt_mpc1600_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8088,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 128,
- .max = 512,
- .step = 64
- },
- .nvrmask = 0,
- .kbc_device = &keyboard_pc82_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8088] Compaq Portable",
- .internal_name = "portable",
- .type = MACHINE_TYPE_8088,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_xt_compaq_portable_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8088,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 128,
- .max = 640,
- .step = 128
- },
- .nvrmask = 0,
- .kbc_device = &keyboard_xt_compaq_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8088] DTK PIM-TB10-Z",
- .internal_name = "dtk",
- .type = MACHINE_TYPE_8088,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_xt_dtk_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8088,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 64,
- .max = 640,
- .step = 64
- },
- .nvrmask = 0,
- .kbc_device = &keyboard_xtclone_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8088] Eagle PC Spirit",
- .internal_name = "pcspirit",
- .type = MACHINE_TYPE_8088,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_xt_pcspirit_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8088,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 128,
- .max = 640,
- .step = 64
- },
- .nvrmask = 0,
- .kbc_device = &keyboard_pc82_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8088] Generic XT clone",
- .internal_name = "genxt",
- .type = MACHINE_TYPE_8088,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_genxt_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8088,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 64,
- .max = 640,
- .step = 64
- },
- .nvrmask = 0,
- .kbc_device = &keyboard_xt_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8088] GLaBIOS",
- .internal_name = "glabios",
- .type = MACHINE_TYPE_8088,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_xt_glabios_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8088,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 64,
- .max = 640,
- .step = 64
- },
- .nvrmask = 0,
- .kbc_device = &keyboard_xt_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8088] Hyosung Topstar 88T",
- .internal_name = "top88",
- .type = MACHINE_TYPE_8088,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_xt_top88_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8088,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 128,
- .max = 640,
- .step = 64
- },
- .nvrmask = 0,
- .kbc_device = &keyboard_xtclone_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8088] Hyundai SUPER-16T",
- .internal_name = "super16t",
- .type = MACHINE_TYPE_8088,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_xt_super16t_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8088,
- .block = CPU_BLOCK_NONE,
- .min_bus = 4772728,
- .max_bus = 8000000,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 128,
- .max = 640,
- .step = 64
- },
- .nvrmask = 0,
- .kbc_device = &keyboard_xtclone_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8088] Hyundai SUPER-16TE",
- .internal_name = "super16te",
- .type = MACHINE_TYPE_8088,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_xt_super16te_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8088,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 10000000,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 128,
- .max = 640,
- .step = 64
- },
- .nvrmask = 0,
- .kbc_device = &keyboard_xtclone_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8088] Juko ST",
- .internal_name = "jukopc",
- .type = MACHINE_TYPE_8088,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_xt_jukopc_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8088,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 64,
- .max = 640,
- .step = 64
- },
- .nvrmask = 0,
- .kbc_device = &keyboard_xtclone_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = &jukopc_device,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8088] Kaypro PC",
- .internal_name = "kaypropc",
- .type = MACHINE_TYPE_8088,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_xt_kaypropc_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8088,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 128,
- .max = 640,
- .step = 64
- },
- .nvrmask = 0,
- .kbc_device = &keyboard_xtclone_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8088] Micoms XL-7 Turbo",
- .internal_name = "mxl7t",
- .type = MACHINE_TYPE_8088,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_xt_micoms_xl7turbo_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8088,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 64,
- .max = 640,
- .step = 64
- },
- .nvrmask = 0,
- .kbc_device = &keyboard_xt_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8088] Multitech PC-500",
- .internal_name = "pc500",
- .type = MACHINE_TYPE_8088,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_xt_pc500_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8088,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 128,
- .max = 640,
- .step = 64
- },
- .nvrmask = 0,
- .kbc_device = &keyboard_pc_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8088] Multitech PC-700",
- .internal_name = "pc700",
- .type = MACHINE_TYPE_8088,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_xt_pc700_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8088,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 128,
- .max = 640,
- .step = 64
- },
- .nvrmask = 0,
- .kbc_device = &keyboard_pc_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8088] NCR PC4i",
- .internal_name = "pc4i",
- .type = MACHINE_TYPE_8088,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_xt_pc4i_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8088,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 256,
- .max = 640,
- .step = 128
- },
- .nvrmask = 0,
- .kbc_device = &keyboard_xtclone_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8088] Olivetti M19",
- .internal_name = "m19",
- .type = MACHINE_TYPE_8088,
- .chipset = MACHINE_CHIPSET_PROPRIETARY,
- .init = machine_xt_m19_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8088,
- .block = CPU_BLOCK_NONE,
- .min_bus = 4772728,
- .max_bus = 7159092,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_VIDEO_FIXED,
- .ram = {
- .min = 256,
- .max = 640,
- .step = 128
- },
- .nvrmask = 0,
- .kbc_device = &keyboard_xt_olivetti_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &m19_vid_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8088] OpenXT",
- .internal_name = "openxt",
- .type = MACHINE_TYPE_8088,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_xt_openxt_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8088,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 64,
- .max = 640,
- .step = 64
- },
- .nvrmask = 0,
- .kbc_device = &keyboard_xtclone_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8088] Packard Bell PB8810",
- .internal_name = "pb8810",
- .type = MACHINE_TYPE_8088,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_xt_pb8810_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8088,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 256,
- .max = 640,
- .step = 128
- },
- .nvrmask = 0,
- .kbc_device = &keyboard_xtclone_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8088] Philips P3105/NMS9100",
- .internal_name = "p3105",
- .type = MACHINE_TYPE_8088,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_xt_p3105_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8088,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_XTA,
- .ram = {
- .min = 256,
- .max = 768,
- .step = 256
- },
- .nvrmask = 0,
- .kbc_device = &keyboard_pc_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8088] Phoenix XT clone",
- .internal_name = "pxxt",
- .type = MACHINE_TYPE_8088,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_xt_pxxt_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8088,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 64,
- .max = 640,
- .step = 64
- },
- .nvrmask = 0,
- .kbc_device = &keyboard_xtclone_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8088] Pravetz 16 / IMKO-4",
- .internal_name = "pravetz16",
- .type = MACHINE_TYPE_8088,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_xt_pravetz16_imko4_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8088,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 64,
- .max = 640,
- .step = 64
- },
- .nvrmask = 0,
- .kbc_device = &keyboard_pravetz_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8088] Pravetz 16S / CPU12 Plus",
- .internal_name = "pravetz16s",
- .type = MACHINE_TYPE_8088,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_xt_pravetz16s_cpu12p_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8088,
- .block = CPU_BLOCK_NONE,
- .min_bus = 4772728,
- .max_bus = 12000000,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 512,
- .max = 1024,
- .step = 128
- },
- .nvrmask = 0,
- .kbc_device = &keyboard_xt_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8088] Sanyo SX-16",
- .internal_name = "sansx16",
- .type = MACHINE_TYPE_8088,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_xt_sansx16_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8088,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 256,
- .max = 640,
- .step = 128
- },
- .nvrmask = 0,
- .kbc_device = &keyboard_xtclone_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8088] Schneider EuroPC",
- .internal_name = "europc",
- .type = MACHINE_TYPE_8088,
- .chipset = MACHINE_CHIPSET_PROPRIETARY,
- .init = machine_europc_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8088_EUROPC,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_XTA | MACHINE_MOUSE,
- .ram = {
- .min = 512,
- .max = 640,
- .step = 128
- },
- .nvrmask = 15,
- .kbc_device = &keyboard_xt_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8088] Super PC/Turbo XT",
- .internal_name = "pcxt",
- .type = MACHINE_TYPE_8088,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_xt_pcxt_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8088,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 64,
- .max = 640,
- .step = 64
- },
- .nvrmask = 0,
- .kbc_device = &keyboard_xtclone_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8088] Tandy 1000 SX",
- .internal_name = "tandy1000sx",
- .type = MACHINE_TYPE_8088,
- .chipset = MACHINE_CHIPSET_PROPRIETARY,
- .init = machine_tandy1000sx_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8088,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_VIDEO_FIXED,
- .ram = {
- .min = 384,
- .max = 640,
- .step = 128
- },
- .nvrmask = 0,
- .kbc_device = &keyboard_tandy_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &tandy_1000_video_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8088] Tandy 1000 HX",
- .internal_name = "tandy1000hx",
- .type = MACHINE_TYPE_8088,
- .chipset = MACHINE_CHIPSET_PROPRIETARY,
- .init = machine_tandy1000hx_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8088,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_VIDEO_FIXED,
- .ram = {
- .min = 256,
- .max = 640,
- .step = 128
- },
- .nvrmask = 0,
- .kbc_device = &keyboard_tandy_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &tandy_1000hx_video_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8088] Toshiba T1000",
- .internal_name = "t1000",
- .type = MACHINE_TYPE_8088,
- .chipset = MACHINE_CHIPSET_PROPRIETARY,
- .init = machine_xt_t1000_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8088,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_VIDEO,
- .ram = {
- .min = 512,
- .max = 1280,
- .step = 768
- },
- .nvrmask = 63,
- .kbc_device = &keyboard_xt_t1x00_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &t1000_video_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8088] Vendex HeadStart Turbo 888-XT",
- .internal_name = "vendex",
- .type = MACHINE_TYPE_8088,
- .chipset = MACHINE_CHIPSET_PROPRIETARY,
- .init = machine_xt_vendex_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8088,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 256,
- .max = 768,
- .step = 256
- },
- .nvrmask = 0,
- .kbc_device = &keyboard_xtclone_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = &vendex_device,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8088] VTech Laser Turbo XT",
- .internal_name = "ltxt",
- .type = MACHINE_TYPE_8088,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_xt_laserxt_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8088_VTECH,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 256,
- .max = 640,
- .step = 64
- },
- .nvrmask = 0,
- .kbc_device = &keyboard_xt_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = &laserxt_device,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has a standard PS/2 KBC (so, use IBM PS/2 Type 1). */
- {
- .name = "[8088] Xi8088",
- .internal_name = "xi8088",
- .type = MACHINE_TYPE_8088,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_xt_xi8088_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8088,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 64,
- .max = 1024,
- .step = 128
- },
- .nvrmask = 127,
- .kbc_device = &keyboard_ps2_xi8088_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = &xi8088_device,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8088] Z-NIX PC-1600",
- .internal_name = "znic",
- .type = MACHINE_TYPE_8088,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_xt_znic_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8088,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 64,
- .max = 640,
- .step = 64
- },
- .nvrmask = 0,
- .kbc_device = &keyboard_xtclone_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8088] Zenith Data Systems Z-151/152/161",
- .internal_name = "zdsz151",
- .type = MACHINE_TYPE_8088,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_xt_z151_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8088,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 128,
- .max = 640,
- .step = 64
- },
- .nvrmask = 0,
- .kbc_device = &keyboard_xt_zenith_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8088] Zenith Data Systems Z-159",
- .internal_name = "zdsz159",
- .type = MACHINE_TYPE_8088,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_xt_z159_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8088,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 128,
- .max = 640,
- .step = 64
- },
- .nvrmask = 0,
- .kbc_device = &keyboard_xt_zenith_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8088] Zenith Data Systems SupersPort (Z-184)",
- .internal_name = "zdsupers",
- .type = MACHINE_TYPE_8088,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_xt_z184_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8088,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_VIDEO_FIXED,
- .ram = {
- .min = 128,
- .max = 640,
- .step = 128
- },
- .nvrmask = 0,
- .kbc_device = &keyboard_xt_zenith_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &cga_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[GC100A] Philips P3120",
- .internal_name = "p3120",
- .type = MACHINE_TYPE_8088,
- .chipset = MACHINE_CHIPSET_GC100A,
- .init = machine_xt_p3120_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8088,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_XTA,
- .ram = {
- .min = 256,
- .max = 768,
- .step = 256
- },
- .nvrmask = 0,
- .kbc_device = &keyboard_pc_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[V20] PC-XT",
- .internal_name = "v20xt",
- .type = MACHINE_TYPE_8088,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_xt_v20xt_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8088,
- .block = CPU_BLOCK(CPU_8088),
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 64,
- .max = 640,
- .step = 64
- },
- .nvrmask = 0,
- .kbc_device = &keyboard_xtclone_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[V20] Tulip PC Compact 2",
- .internal_name = "tuliptc8",
- .type = MACHINE_TYPE_8088,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_xt_tuliptc8_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8088,
- .block = CPU_BLOCK(CPU_8088),
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 64,
- .max = 640,
- .step = 64
- },
- .nvrmask = 63,
- .kbc_device = &keyboard_xtclone_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- /* 8086 Machines */
- {
- .name = "[8086] Amstrad PC1512",
- .internal_name = "pc1512",
- .type = MACHINE_TYPE_8086,
- .chipset = MACHINE_CHIPSET_PROPRIETARY,
- .init = machine_pc1512_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8086,
- .block = CPU_BLOCK_NONE,
- .min_bus = 8000000,
- .max_bus = 8000000,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_VIDEO_FIXED | MACHINE_MOUSE,
- .ram = {
- .min = 512,
- .max = 640,
- .step = 128
- },
- .nvrmask = 63,
- .kbc_device = NULL /* TODO: No specific kbd_device yet */,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &vid_1512_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8086] Amstrad PC1640",
- .internal_name = "pc1640",
- .type = MACHINE_TYPE_8086,
- .chipset = MACHINE_CHIPSET_PROPRIETARY,
- .init = machine_pc1640_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8086,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 10000000,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_VIDEO | MACHINE_MOUSE,
- .ram = {
- .min = 640,
- .max = 640,
- .step = 640
- },
- .nvrmask = 63,
- .kbc_device = NULL /* TODO: No specific kbd_device yet */,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &vid_1640_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8086] Amstrad PC2086",
- .internal_name = "pc2086",
- .type = MACHINE_TYPE_8086,
- .chipset = MACHINE_CHIPSET_PROPRIETARY,
- .init = machine_pc2086_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8086,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 10000000,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_VIDEO_FIXED | MACHINE_MOUSE,
- .ram = {
- .min = 640,
- .max = 640,
- .step = 640
- },
- .nvrmask = 63,
- .kbc_device = NULL /* TODO: No specific kbd_device yet */,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &vid_pc2086_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8086] Amstrad PC3086",
- .internal_name = "pc3086",
- .type = MACHINE_TYPE_8086,
- .chipset = MACHINE_CHIPSET_PROPRIETARY,
- .init = machine_pc3086_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8086,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 10000000,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_VIDEO_FIXED | MACHINE_MOUSE,
- .ram = {
- .min = 640,
- .max = 640,
- .step = 640
- },
- .nvrmask = 63,
- .kbc_device = NULL /* TODO: No specific kbd_device yet */,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &vid_pc3086_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8086] Amstrad PC20(0)",
- .internal_name = "pc200",
- .type = MACHINE_TYPE_8086,
- .chipset = MACHINE_CHIPSET_PROPRIETARY,
- .init = machine_pc200_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8086,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 10000000,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_VIDEO | MACHINE_MOUSE,
- .ram = {
- .min = 512,
- .max = 640,
- .step = 128
- },
- .nvrmask = 63,
- .kbc_device = NULL /* TODO: No specific kbd_device yet */,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &vid_200_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8086] Amstrad PPC512/640",
- .internal_name = "ppc512",
- .type = MACHINE_TYPE_8086,
- .chipset = MACHINE_CHIPSET_PROPRIETARY,
- .init = machine_ppc512_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8086,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 10000000,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_VIDEO | MACHINE_MOUSE,
- .ram = {
- .min = 512,
- .max = 640,
- .step = 128
- },
- .nvrmask = 63,
- .kbc_device = NULL /* TODO: No specific kbd_device yet */,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &vid_ppc512_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8086] Compaq Deskpro",
- .internal_name = "deskpro",
- .type = MACHINE_TYPE_8086,
- .chipset = MACHINE_CHIPSET_PROPRIETARY,
- .init = machine_xt_compaq_deskpro_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8086,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 128,
- .max = 640,
- .step = 128
- },
- .nvrmask = 0,
- .kbc_device = &keyboard_xt_compaq_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8086] Epson Equity LT",
- .internal_name = "elt",
- .type = MACHINE_TYPE_8086,
- .chipset = MACHINE_CHIPSET_PROPRIETARY,
- .init = machine_elt_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8086,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_VIDEO,
- .ram = {
- .min = 640,
- .max = 640,
- .step = 640
- },
- .nvrmask = 0x3f,
- .kbc_device = &keyboard_xt_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8086] Mazovia 1016",
- .internal_name = "maz1016",
- .type = MACHINE_TYPE_8086,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_xt_maz1016_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8086_MAZOVIA,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 256,
- .max = 640,
- .step = 384
- },
- .nvrmask = 0,
- .kbc_device = &keyboard_xtclone_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8086] Olivetti M21/24/24SP/AT&T PC 6300",
- .internal_name = "m24",
- .type = MACHINE_TYPE_8086,
- .chipset = MACHINE_CHIPSET_PROPRIETARY,
- .init = machine_xt_m24_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8086,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_VIDEO | MACHINE_MOUSE | MACHINE_MFM,
- .ram = {
- .min = 128,
- .max = 640,
- .step = 128
- },
- .nvrmask = 15,
- .kbc_device = NULL /* TODO: No specific kbd_device yet */,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &ogc_m24_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has Olivetti KBC firmware. */
- {
- .name = "[8086] Olivetti M240/AT&T PC 6300 WGS",
- .internal_name = "m240",
- .type = MACHINE_TYPE_8086,
- .chipset = MACHINE_CHIPSET_PROPRIETARY,
- .init = machine_xt_m240_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8086,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_MFM,
- .ram = {
- .min = 128,
- .max = 640,
- .step = 128
- },
- .nvrmask = 15,
- .kbc_device = NULL /* TODO: No specific kbd_device yet */,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8086] Schetmash Iskra-3104",
- .internal_name = "iskra3104",
- .type = MACHINE_TYPE_8086,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_xt_iskra3104_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8086,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 128,
- .max = 640,
- .step = 128
- },
- .nvrmask = 0,
- .kbc_device = &keyboard_xtclone_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8086] Tandy 1000 SL/2",
- .internal_name = "tandy1000sl2",
- .type = MACHINE_TYPE_8086,
- .chipset = MACHINE_CHIPSET_PROPRIETARY,
- .init = machine_tandy1000sl2_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8086,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_VIDEO_FIXED,
- .ram = {
- .min = 512,
- .max = 768,
- .step = 128
- },
- .nvrmask = 0,
- .kbc_device = NULL /* TODO: No specific kbd_device yet */,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &tandy_1000sl_video_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8086] Toshiba T1200",
- .internal_name = "t1200",
- .type = MACHINE_TYPE_8086,
- .chipset = MACHINE_CHIPSET_PROPRIETARY,
- .init = machine_xt_t1200_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8086,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_VIDEO | MACHINE_MFM,
- .ram = {
- .min = 1024,
- .max = 2048,
- .step = 1024
- },
- .nvrmask = 63,
- .kbc_device = &keyboard_xt_t1x00_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &t1200_video_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8086] Victor V86P",
- .internal_name = "v86p",
- .type = MACHINE_TYPE_8086,
- .chipset = MACHINE_CHIPSET_PROPRIETARY,
- .init = machine_v86p_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8086,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_VIDEO | MACHINE_MFM,
- .ram = {
- .min = 512,
- .max = 1024,
- .step = 128
- },
- .nvrmask = 127,
- .kbc_device = &keyboard_xt_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[8086] VTech Laser XT3",
- .internal_name = "lxt3",
- .type = MACHINE_TYPE_8086,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_xt_lxt3_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_8086_VTECH,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PC,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 512,
- .max = 640,
- .step = 64
- },
- .nvrmask = 0,
- .kbc_device = &keyboard_xt_lxt3_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = &lxt3_device,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- /* 286 AT machines */
- /* Has IBM AT KBC firmware. */
- {
- .name = "[ISA] IBM AT",
- .internal_name = "ibmat",
- .type = MACHINE_TYPE_286,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_at_ibm_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_286,
- .block = CPU_BLOCK_NONE,
- .min_bus = 6000000,
- .max_bus = 8000000,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 256,
- .max = 512,
- .step = 256
- },
- .nvrmask = 63,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = &ibmat_device,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has IBM PS/2 Type 1 KBC firmware. */
- {
- .name = "[ISA] IBM PS/1 model 2011",
- .internal_name = "ibmps1es",
- .type = MACHINE_TYPE_286,
- .chipset = MACHINE_CHIPSET_PROPRIETARY,
- .init = machine_ps1_m2011_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_286,
- .block = CPU_BLOCK_NONE,
- .min_bus = 10000000,
- .max_bus = 10000000,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2,
- .flags = MACHINE_XTA | MACHINE_VIDEO_FIXED,
- .ram = {
- .min = 512,
- .max = 15360,
- .step = 512
- },
- .nvrmask = 63,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = &ps1_2011_device,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has IBM PS/2 Type 1 KBC firmware. */
- {
- .name = "[ISA] IBM PS/2 model 30-286",
- .internal_name = "ibmps2_m30_286",
- .type = MACHINE_TYPE_286,
- .chipset = MACHINE_CHIPSET_PROPRIETARY,
- .init = machine_ps2_m30_286_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_286 | CPU_PKG_486SLC_IBM,
- .block = CPU_BLOCK_NONE,
- .min_bus = 10000000,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2,
- .flags = MACHINE_XTA | MACHINE_VIDEO_FIXED,
- .ram = {
- .min = 512,
- .max = 16384,
- .step = 512
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has IBM AT KBC firmware. */
- {
- .name = "[ISA] IBM XT Model 286",
- .internal_name = "ibmxt286",
- .type = MACHINE_TYPE_286,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_at_ibmxt286_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_286,
- .block = CPU_BLOCK_NONE,
- .min_bus = 6000000,
- .max_bus = 6000000,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 256,
- .max = 640,
- .step = 128
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = &ibmxt286_device,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* AMI BIOS for a chipset-less machine, most likely has AMI 'F' KBC firmware. */
- {
- .name = "[ISA] AMI IBM AT",
- .internal_name = "ibmatami",
- .type = MACHINE_TYPE_286,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_at_ibmatami_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_286,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 256,
- .max = 512,
- .step = 256
- },
- .nvrmask = 63,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Uses Commodore (CBM) KBC firmware, to be implemented as identical to the
- IBM AT KBC firmware unless evidence emerges of any proprietary commands. */
- {
- .name = "[ISA] Commodore PC 30 III",
- .internal_name = "cmdpc30",
- .type = MACHINE_TYPE_286,
- .chipset = MACHINE_CHIPSET_PROPRIETARY,
- .init = machine_at_cmdpc_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_286,
- .block = CPU_BLOCK_NONE,
- .min_bus = 6000000,
- .max_bus = 12500000,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 640,
- .max = 14912,
- .step = 64
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Uses Compaq KBC firmware. */
- {
- .name = "[ISA] Compaq Portable II",
- .internal_name = "portableii",
- .type = MACHINE_TYPE_286,
- .chipset = MACHINE_CHIPSET_PROPRIETARY,
- .init = machine_at_portableii_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_286,
- .block = CPU_BLOCK_NONE,
- .min_bus = 6000000,
- .max_bus = 16000000,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 640,
- .max = 16384,
- .step = 128
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Uses Compaq KBC firmware. */
- {
- .name = "[ISA] Compaq Portable III",
- .internal_name = "portableiii",
- .type = MACHINE_TYPE_286,
- .chipset = MACHINE_CHIPSET_PROPRIETARY,
- .init = machine_at_portableiii_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_286,
- .block = CPU_BLOCK_NONE,
- .min_bus = 6000000,
- .max_bus = 16000000,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_IDE | MACHINE_VIDEO,
- .ram = {
- .min = 640,
- .max = 16384,
- .step = 128
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &compaq_plasma_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has IBM AT KBC firmware. */
- {
- .name = "[ISA] MR BIOS 286 clone",
- .internal_name = "mr286",
- .type = MACHINE_TYPE_286,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_at_mr286_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_286,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_IDE,
- .ram = {
- .min = 512,
- .max = 16384,
- .step = 128
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has IBM AT KBC firmware. */
- {
- .name = "[ISA] NCR PC8/810/710/3390/3392",
- .internal_name = "pc8",
- .type = MACHINE_TYPE_286,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_at_pc8_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_286,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 512,
- .max = 16384,
- .step = 128
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has Chips & Technologies KBC firmware. */
- {
- .name = "[ISA] Wells American A*Star",
- .internal_name = "wellamerastar",
- .type = MACHINE_TYPE_286,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_at_wellamerastar_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_286,
- .block = CPU_BLOCK_NONE,
- .min_bus = 6000000,
- .max_bus = 14000000,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 512,
- .max = 1024,
- .step = 512
- },
- .nvrmask = 63,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has Olivetti KBC firmware. */
- {
- .name = "[ISA] Olivetti M290/AT&T 6286 WGS",
- .internal_name = "m290",
- .type = MACHINE_TYPE_286,
- .chipset = MACHINE_CHIPSET_PROPRIETARY,
- .init = machine_at_m290_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_286,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 1024,
- .max = 16384,
- .step = 128
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has IBM AT KBC firmware. */
- {
- .name = "[ISA] Phoenix IBM AT",
- .internal_name = "ibmatpx",
- .type = MACHINE_TYPE_286,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_at_ibmatpx_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_286,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 256,
- .max = 512,
- .step = 256
- },
- .nvrmask = 63,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has Quadtel KBC firmware. */
- {
- .name = "[ISA] Quadtel IBM AT",
- .internal_name = "ibmatquadtel",
- .type = MACHINE_TYPE_286,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_at_ibmatquadtel_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_286,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 256,
- .max = 512,
- .step = 256
- },
- .nvrmask = 63,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has IBM AT KBC firmware. */
- /* To configure the BIOS, use PB_2330a_diag.IMA from MS-DOS 3.30 Packard Bell OEM, GSETUP might work too*/
- {
- .name = "[ISA] Packard Bell PB286",
- .internal_name = "pb286",
- .type = MACHINE_TYPE_286,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_at_pb286_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_286,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 256,
- .max = 1024,
- .step = 128
- },
- .nvrmask = 63,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* This has a Siemens proprietary KBC which is completely undocumented. */
- {
- .name = "[ISA] Siemens PCD-2L",
- .internal_name = "siemens",
- .type = MACHINE_TYPE_286,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_at_siemens_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_286,
- .block = CPU_BLOCK_NONE,
- .min_bus = 6000000,
- .max_bus = 12500000,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 256,
- .max = 15872,
- .step = 128
- },
- .nvrmask = 63,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* This has Toshiba's proprietary KBC, which is already implemented. */
- {
- .name = "[ISA] Toshiba T3100e",
- .internal_name = "t3100e",
- .type = MACHINE_TYPE_286,
- .chipset = MACHINE_CHIPSET_PROPRIETARY,
- .init = machine_at_t3100e_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_286,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_IDE | MACHINE_VIDEO_FIXED,
- .ram = {
- .min = 1024,
- .max = 5120,
- .step = 256
- },
- .nvrmask = 63,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[ISA] GRiD GRiDcase 1520",
- .internal_name = "grid1520",
- .type = MACHINE_TYPE_286,
- .chipset = MACHINE_CHIPSET_PROPRIETARY,
- .init = machine_at_grid1520_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_286,
- .block = CPU_BLOCK_NONE,
- .min_bus = 6000000,
- .max_bus = 10000000,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_IDE /*| MACHINE_VIDEO_FIXED*/,
- .ram = {
- .min = 1024,
- .max = 8192,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* No proper pictures of the KBC exist, though it seems to have the IBM AT KBC
- firmware. */
- {
- .name = "[C&T PC/AT] Dell System 200",
- .internal_name = "dells200",
- .type = MACHINE_TYPE_286,
- .chipset = MACHINE_CHIPSET_CT_AT,
- .init = machine_at_dells200_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_286,
- .block = CPU_BLOCK_NONE,
- .min_bus = 6000000,
- .max_bus = 12000000,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 640,
- .max = 16384,
- .step = 128
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* No proper pictures of the KBC exist, though it seems to have the IBM AT KBC
- firmware. */
- {
- .name = "[C&T PC/AT] PC's Limited (Dell) 28608L/AT122",
- .internal_name = "at122",
- .type = MACHINE_TYPE_286,
- .chipset = MACHINE_CHIPSET_CT_AT,
- .init = machine_at_at122_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_286,
- .block = CPU_BLOCK_NONE,
- .min_bus = 6000000,
- .max_bus = 12000000,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 640,
- .max = 16384,
- .step = 128
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* No proper pictures of the KBC exist, though it seems to have the IBM AT KBC
- firmware. */
- {
- .name = "[C&T PC/AT] Tulip AT Compact",
- .internal_name = "tuliptc7",
- .type = MACHINE_TYPE_286,
- .chipset = MACHINE_CHIPSET_CT_AT,
- .init = machine_at_tuliptc7_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_286,
- .block = CPU_BLOCK_NONE,
- .min_bus = 6000000,
- .max_bus = 12000000,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 640,
- .max = 16384,
- .step = 128
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has Quadtel KBC firmware. */
- {
- .name = "[GC103] Quadtel 286 clone",
- .internal_name = "quadt286",
- .type = MACHINE_TYPE_286,
- .chipset = MACHINE_CHIPSET_GC103,
- .init = machine_at_quadt286_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_286,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_SOFTFLOAT_ONLY,
- .ram = {
- .min = 512,
- .max = 16384,
- .step = 128
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Most likely has AMI 'F' KBC firmware. */
- {
- .name = "[GC103] TriGem 286M",
- .internal_name = "tg286m",
- .type = MACHINE_TYPE_286,
- .chipset = MACHINE_CHIPSET_GC103,
- .init = machine_at_tg286m_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_286,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_IDE,
- .ram = {
- .min = 512,
- .max = 8192,
- .step = 128
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[NEAT] Atari PC 4",
- .internal_name = "ataripc4",
- .type = MACHINE_TYPE_286,
- .chipset = MACHINE_CHIPSET_NEAT,
- .init = machine_at_ataripc4_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_286,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_FDC,
- .ram = {
- .min = 512,
- .max = 8192,
- .step = 128
- },
- .nvrmask = 127,
- .kbc_device = &keyboard_at_ami_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL, //&fdc_at_device,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* This has "AMI KEYBOARD BIOS", most likely 'F'. */
- {
- .name = "[NEAT] DataExpert 286",
- .internal_name = "ami286",
- .type = MACHINE_TYPE_286,
- .chipset = MACHINE_CHIPSET_NEAT,
- .init = machine_at_neat_ami_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_286,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 512,
- .max = 8192,
- .step = 128
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* has an Award-branded KBC controller */
- {
- .name = "[NEAT] Hyundai Super-286C",
- .internal_name = "super286c",
- .type = MACHINE_TYPE_286,
- .chipset = MACHINE_CHIPSET_NEAT,
- .init = machine_at_super286c_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_286,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 512,
- .max = 1024,
- .step = 128
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has IBM AT KBC firmware. */
- {
- .name = "[NEAT] NCR 3302",
- .internal_name = "3302",
- .type = MACHINE_TYPE_286,
- .chipset = MACHINE_CHIPSET_NEAT,
- .init = machine_at_3302_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_286,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_IDE | MACHINE_VIDEO,
- .ram = {
- .min = 512,
- .max = 5120,
- .step = 128
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = ¶dise_pvga1a_ncr3302_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has IBM AT KBC firmware. */
- {
- .name = "[NEAT] Arche AMA-2010",
- .internal_name = "px286",
- .type = MACHINE_TYPE_286,
- .chipset = MACHINE_CHIPSET_NEAT,
- .init = machine_at_px286_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_286,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 512,
- .max = 8192,
- .step = 128
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has Chips & Technologies KBC firmware. */
- {
- .name = "[SCAT] GW-286CT GEAR",
- .internal_name = "gw286ct",
- .type = MACHINE_TYPE_286,
- .chipset = MACHINE_CHIPSET_SCAT,
- .init = machine_at_gw286ct_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_286,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_IDE,
- .ram = {
- .min = 512,
- .max = 16384,
- .step = 128
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has IBM PS/2 Type 1 KBC firmware. */
- {
- .name = "[SCAT] Goldstar GDC-212M",
- .internal_name = "gdc212m",
- .type = MACHINE_TYPE_286,
- .chipset = MACHINE_CHIPSET_SCAT,
- .init = machine_at_gdc212m_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_286,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2,
- .flags = MACHINE_IDE,
- .ram = {
- .min = 512,
- .max = 4096,
- .step = 512
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has a VIA VT82C42N KBC. */
- {
- .name = "[SCAT] Hyundai Solomon 286KP",
- .internal_name = "award286",
- .type = MACHINE_TYPE_286,
- .chipset = MACHINE_CHIPSET_SCAT,
- .init = machine_at_award286_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_286,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_IDE,
- .ram = {
- .min = 640,
- .max = 8192,
- .step = 128
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has a VIA VT82C42N KBC. */
- {
- .name = "[SCAT] Hyundai Super-286TR",
- .internal_name = "super286tr",
- .type = MACHINE_TYPE_286,
- .chipset = MACHINE_CHIPSET_SCAT,
- .init = machine_at_super286tr_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_286,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 640,
- .max = 8192,
- .step = 128
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[SCAT] ICL DRS M35/286",
- .internal_name = "drsm35286",
- .type = MACHINE_TYPE_286,
- .chipset = MACHINE_CHIPSET_SCAT,
- .init = machine_at_drsm35286_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_286,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2,
- .flags = MACHINE_IDE | MACHINE_VIDEO,
- .ram = {
- .min = 512,
- .max = 5120,
- .step = 128
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &gd5401_onboard_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has IBM PS/2 Type 1 KBC firmware. */
- {
- .name = "[SCAT] Samsung SPC-4200P",
- .internal_name = "spc4200p",
- .type = MACHINE_TYPE_286,
- .chipset = MACHINE_CHIPSET_SCAT,
- .init = machine_at_spc4200p_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_286,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2,
- .flags = MACHINE_IDE, /* Has internal video: C&T VGA 411 */
- .ram = {
- .min = 512,
- .max = 2048,
- .step = 128
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has IBM PS/2 Type 1 KBC firmware. */
- {
- .name = "[SCAT] Samsung SPC-4216P",
- .internal_name = "spc4216p",
- .type = MACHINE_TYPE_286,
- .chipset = MACHINE_CHIPSET_SCAT,
- .init = machine_at_spc4216p_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_286,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 1024,
- .max = 5120,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has IBM PS/2 Type 1 KBC firmware. */
- {
- .name = "[SCAT] Samsung SPC-4620P",
- .internal_name = "spc4620p",
- .type = MACHINE_TYPE_286,
- .chipset = MACHINE_CHIPSET_SCAT,
- .init = machine_at_spc4620p_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_286,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2,
- .flags = MACHINE_IDE | MACHINE_VIDEO,
- .ram = {
- .min = 1024,
- .max = 5120,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has IBM AT KBC firmware. */
- {
- .name = "[SCAT] Samsung Deskmaster 286",
- .internal_name = "deskmaster286",
- .type = MACHINE_TYPE_286,
- .chipset = MACHINE_CHIPSET_SCAT,
- .init = machine_at_deskmaster286_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_286,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2,
- .flags = MACHINE_IDE, /* Has internal video: C&T VGA 411 */
- .ram = {
- .min = 512,
- .max = 8192,
- .step = 128
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- {
- .name = "[SCAT] Senor Science Co. SCAT-286-003",
- .internal_name = "senorscat286",
- .type = MACHINE_TYPE_286,
- .chipset = MACHINE_CHIPSET_SCAT,
- .init = machine_at_senor_scat286_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_286,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_IDE,
- .ram = {
- .min = 1024,
- .max = 4096,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* 286 machines that utilize the MCA bus */
- /* Has IBM PS/2 Type 2 KBC firmware. */
- {
- .name = "[MCA] IBM PS/2 model 50",
- .internal_name = "ibmps2_m50",
- .type = MACHINE_TYPE_286,
- .chipset = MACHINE_CHIPSET_PROPRIETARY,
- .init = machine_ps2_model_50_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_286 | CPU_PKG_486SLC_IBM,
- .block = CPU_BLOCK_NONE,
- .min_bus = 10000000,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2_MCA,
- .flags = MACHINE_VIDEO,
- .ram = {
- .min = 1024,
- .max = 10240,
- .step = 1024
- },
- .nvrmask = 63,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has IBM PS/2 Type 2 KBC firmware. */
- {
- .name = "[MCA] IBM PS/2 model 60",
- .internal_name = "ibmps2_m60",
- .type = MACHINE_TYPE_286,
- .chipset = MACHINE_CHIPSET_PROPRIETARY,
- .init = machine_ps2_model_60_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_286 | CPU_PKG_486SLC_IBM,
- .block = CPU_BLOCK_NONE,
- .min_bus = 10000000,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2_MCA,
- .flags = MACHINE_VIDEO,
- .ram = {
- .min = 1024,
- .max = 10240,
- .step = 1024
- },
- .nvrmask = 63,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- /* 386SX machines */
- /* ISA slots available because an official IBM expansion for that existed. */
- /* Has IBM PS/2 Type 1 KBC firmware. */
- {
- .name = "[ISA] IBM PS/1 model 2121",
- .internal_name = "ibmps1_2121",
- .type = MACHINE_TYPE_386SX,
- .chipset = MACHINE_CHIPSET_PROPRIETARY,
- .init = machine_ps1_m2121_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_386SX,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2,
- .flags = MACHINE_IDE | MACHINE_VIDEO,
- .ram = {
- .min = 2048,
- .max = 6144,
- .step = 1024
- },
- .nvrmask = 63,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has IBM AT KBC firmware. */
- {
- .name = "[ISA] NCR PC916SX",
- .internal_name = "pc916sx",
- .type = MACHINE_TYPE_386SX,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_at_pc916sx_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_386SX,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 1024,
- .max = 16384,
- .step = 128
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has Quadtel KBC firmware. */
- {
- .name = "[ISA] QTC-SXM KT X20T02/HI",
- .internal_name = "quadt386sx",
- .type = MACHINE_TYPE_386SX,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_at_quadt386sx_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_386SX,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 1024,
- .max = 16384,
- .step = 128
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Most likely has Phonenix KBC firmware. */
- {
- .name = "[ACC 2036] Packard Bell Legend 300SX",
- .internal_name = "pbl300sx",
- .type = MACHINE_TYPE_386SX,
- .chipset = MACHINE_CHIPSET_ACC_2036,
- .init = machine_at_pbl300sx_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_386SX,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2,
- .flags = MACHINE_IDE | MACHINE_VIDEO,
- .ram = {
- .min = 1024,
- .max = 16384,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = &pbl300sx_device,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &oti037_pbl300sx_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* This has an AMIKey-2, which is an updated version of type 'H'. */
- {
- .name = "[ALi M1217] Acrosser AR-B1374",
- .internal_name = "arb1374",
- .type = MACHINE_TYPE_386SX,
- .chipset = MACHINE_CHIPSET_ALI_M1217,
- .init = machine_at_arb1374_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_386SX,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_IDE,
- .ram = {
- .min = 1024,
- .max = 32768,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has the AMIKey-2 KBC. */
- {
- .name = "[ALi M1217] AAEON SBC-350A",
- .internal_name = "sbc350a",
- .type = MACHINE_TYPE_386SX,
- .chipset = MACHINE_CHIPSET_ALI_M1217,
- .init = machine_at_sbc350a_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_386SX,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_IDE,
- .ram = {
- .min = 1024,
- .max = 16384,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has a VIA VT82C42N KBC. */
- {
- .name = "[ALi M1217] Flytech A36",
- .internal_name = "flytech386",
- .type = MACHINE_TYPE_386SX,
- .chipset = MACHINE_CHIPSET_ALI_M1217,
- .init = machine_at_flytech386_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_386SX,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_IDE | MACHINE_VIDEO,
- .ram = {
- .min = 1024,
- .max = 16384,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &tvga8900d_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has a JetKey KBC without version, shows up as a 'H'. */
- {
- .name = "[ALi M1217] Chaintech 325AX",
- .internal_name = "325ax",
- .type = MACHINE_TYPE_386SX,
- .chipset = MACHINE_CHIPSET_ALI_M1217,
- .init = machine_at_325ax_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_386SX,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 1024,
- .max = 16384,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has a JetKey KBC without version, shows up as a 'H'. */
- {
- .name = "[ALi M1217] Chaintech 325AX (MR BIOS)",
- .internal_name = "mr1217",
- .type = MACHINE_TYPE_386SX,
- .chipset = MACHINE_CHIPSET_ALI_M1217,
- .init = machine_at_mr1217_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_386SX,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 1024,
- .max = 16384,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[ALi M1409] Acer 100T",
- .internal_name = "acer100t",
- .type = MACHINE_TYPE_386SX,
- .chipset = MACHINE_CHIPSET_ALI_M1409,
- .init = machine_at_acer100t_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_386SX,
- .block = CPU_BLOCK_NONE,
- .min_bus = 16000000,
- .max_bus = 25000000, /* Limited to 25 due a inaccurate cpu speed */
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0,
-
- },
- .bus_flags = MACHINE_PS2,
- .flags = MACHINE_IDE | MACHINE_VIDEO , /* Machine has internal OTI 077 Video card*/
- .ram = {
- .min = 2048,
- .max = 16256,
- .step = 128
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &oti077_acer100t_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has IBM PS/2 Type 1 KBC firmware. */
- {
- .name = "[ALi M6117] Acrosser PJ-A511M",
- .internal_name = "pja511m",
- .type = MACHINE_TYPE_386SX,
- .chipset = MACHINE_CHIPSET_ALI_M6117,
- .init = machine_at_pja511m_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_M6117,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2,
- .flags = MACHINE_IDE,
- .ram = {
- .min = 1024,
- .max = 32768,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has IBM PS/2 Type 1 KBC firmware. */
- {
- .name = "[ALi M6117] Protech ProX-1332",
- .internal_name = "prox1332",
- .type = MACHINE_TYPE_386SX,
- .chipset = MACHINE_CHIPSET_ALI_M6117,
- .init = machine_at_prox1332_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_M6117,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2,
- .flags = MACHINE_IDE,
- .ram = {
- .min = 1024,
- .max = 32768,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has an AMI KBC firmware, the only photo of this is too low resolution
- for me to read what's on the KBC chip, so I'm going to assume AMI 'F'
- based on the other known HT18 AMI BIOS strings. */
- {
- .name = "[HT18] Arche AMA-932J",
- .internal_name = "ama932j",
- .type = MACHINE_TYPE_386SX,
- .chipset = MACHINE_CHIPSET_HT18,
- .init = machine_at_ama932j_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_386SX,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_IDE | MACHINE_VIDEO,
- .ram = {
- .min = 512,
- .max = 8192,
- .step = 128
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &oti067_ama932j_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has an unknown KBC firmware with commands B8 and BB in the style of
- Phoenix MultiKey and AMIKey-3(!), but also commands E1 and EA with
- unknown functions. */
- {
- .name = "[Intel 82335] ADI 386SX",
- .internal_name = "adi386sx",
- .type = MACHINE_TYPE_386SX,
- .chipset = MACHINE_CHIPSET_INTEL_82335,
- .init = machine_at_adi386sx_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_386SX,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 512,
- .max = 8192,
- .step = 128
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has an AMI Keyboard BIOS PLUS KBC firmware ('8'). */
- { .name = "[Intel 82335] Shuttle 386SX",
- .internal_name = "shuttle386sx",
- .type = MACHINE_TYPE_386SX,
- .chipset = MACHINE_CHIPSET_INTEL_82335,
- .init = machine_at_shuttle386sx_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_386SX,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 512,
- .max = 8192,
- .step = 128
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Uses Commodore (CBM) KBC firmware, to be implemented as identical to
- the IBM PS/2 Type 1 KBC firmware unless evidence emerges of any
- proprietary commands. */
- {
- .name = "[NEAT] Commodore SL386SX-16",
- .internal_name = "cmdsl386sx16",
- .type = MACHINE_TYPE_386SX,
- .chipset = MACHINE_CHIPSET_NEAT,
- .init = machine_at_cmdsl386sx16_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_386SX,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 1024,
- .max = 8192,
- .step = 512
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has IBM AT KBC firmware. */
- {
- .name = "[NEAT] DTK PM-1630C",
- .internal_name = "dtk386",
- .type = MACHINE_TYPE_386SX,
- .chipset = MACHINE_CHIPSET_NEAT,
- .init = machine_at_neat_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_386SX,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 512,
- .max = 8192,
- .step = 128
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- { .name = "[NEATsx] OKI if386AX30L",
- .internal_name = "if386sx",
- .type = MACHINE_TYPE_386SX,
- .chipset = MACHINE_CHIPSET_NEAT_SX,
- .init = machine_at_if386sx_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_386SX,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_VIDEO_FIXED | MACHINE_AX,
- .ram = {
- .min = 1024,
- .max = 4096,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has IBM AT KBC firmware. */
- {
- .name = "[OPTi 291] DTK PPM-3333P",
- .internal_name = "awardsx",
- .type = MACHINE_TYPE_386SX,
- .chipset = MACHINE_CHIPSET_OPTI_291,
- .init = machine_at_awardsx_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_386SX,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 1024,
- .max = 16384,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Uses Commodore (CBM) KBC firmware, to be implemented as identical to
- the IBM PS/2 Type 1 KBC firmware unless evidence emerges of any
- proprietary commands. */
- {
- .name = "[SCAMP] Commodore SL386SX-25",
- .internal_name = "cmdsl386sx25",
- .type = MACHINE_TYPE_386SX,
- .chipset = MACHINE_CHIPSET_VLSI_SCAMP,
- .init = machine_at_cmdsl386sx25_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_386SX,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2,
- .flags = MACHINE_IDE | MACHINE_VIDEO,
- .ram = {
- .min = 1024,
- .max = 8192,
- .step = 512
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &gd5402_onboard_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* The closest BIOS string I find to this one's, differs only in one part,
- and ends in -8, so I'm going to assume that this, too, has an AMI '8'
- (AMI Keyboard BIOS Plus) KBC firmware. */
- {
- .name = "[SCAMP] DataExpert 386SX",
- .internal_name = "dataexpert386sx",
- .type = MACHINE_TYPE_386SX,
- .chipset = MACHINE_CHIPSET_VLSI_SCAMP,
- .init = machine_at_dataexpert386sx_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_386SX,
- .block = CPU_BLOCK_NONE,
- .min_bus = 10000000,
- .max_bus = 25000000,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 1024,
- .max = 16384,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* No proper pictures of the KBC exist, though it seems to have the IBM AT KBC
- firmware. */
- {
- .name = "[SCAMP] Dell System 333s/L",
- .internal_name = "dells333sl",
- .type = MACHINE_TYPE_386SX,
- .chipset = MACHINE_CHIPSET_VLSI_SCAMP,
- .init = machine_at_dells333sl_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_386SX,
- .block = CPU_BLOCK_NONE,
- .min_bus = 10000000,
- .max_bus = 33333333,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2,
- .flags = MACHINE_IDE | MACHINE_VIDEO,
- .ram = {
- .min = 1024,
- .max = 16384,
- .step = 128
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = &dells333sl_device,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &gd5420_onboard_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has IBM PS/2 Type 1 KBC firmware. */
- {
- .name = "[SCAMP] Samsung SPC-6033P",
- .internal_name = "spc6033p",
- .type = MACHINE_TYPE_386SX,
- .chipset = MACHINE_CHIPSET_VLSI_SCAMP,
- .init = machine_at_spc6033p_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_386SX,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2,
- .flags = MACHINE_IDE | MACHINE_VIDEO,
- .ram = {
- .min = 2048,
- .max = 12288,
- .step = 2048
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &ati28800k_spc6033p_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has an unknown AMI KBC firmware, I'm going to assume 'F' until a
- photo or real hardware BIOS string is found. */
- {
- .name = "[SCATsx] Kaimei KMX-C-02",
- .internal_name = "kmxc02",
- .type = MACHINE_TYPE_386SX,
- .chipset = MACHINE_CHIPSET_SCAT_SX,
- .init = machine_at_kmxc02_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_386SX,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 512,
- .max = 16384,
- .step = 512
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has Quadtel KBC firmware. */
- {
- .name = "[WD76C10] Amstrad MegaPC",
- .internal_name = "megapc",
- .type = MACHINE_TYPE_386SX,
- .chipset = MACHINE_CHIPSET_WD76C10,
- .init = machine_at_wd76c10_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_386SX,
- .block = CPU_BLOCK_NONE,
- .min_bus = 16000000,
- .max_bus = 25000000,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2,
- .flags = MACHINE_IDE | MACHINE_VIDEO,
- .ram = {
- .min = 1024,
- .max = 32768,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- /* 386SX machines which utilize the MCA bus */
- /* Has IBM PS/2 Type 1 KBC firmware. */
- {
- .name = "[MCA] IBM PS/2 model 55SX",
- .internal_name = "ibmps2_m55sx",
- .type = MACHINE_TYPE_386SX,
- .chipset = MACHINE_CHIPSET_PROPRIETARY,
- .init = machine_ps2_model_55sx_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_386SX,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2_MCA,
- .flags = MACHINE_VIDEO,
- .ram = {
- .min = 1024,
- .max = 8192,
- .step = 1024
- },
- .nvrmask = 63,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has IBM PS/2 Type 1 KBC firmware. */
- {
- .name = "[MCA] IBM PS/2 model 65SX",
- .internal_name = "ibmps2_m65sx",
- .type = MACHINE_TYPE_386SX,
- .chipset = MACHINE_CHIPSET_PROPRIETARY,
- .init = machine_ps2_model_65sx_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_386SX,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2_MCA,
- .flags = MACHINE_VIDEO,
- .ram = {
- .min = 1024,
- .max = 8192,
- .step = 1024
- },
- .nvrmask = 63,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- /* 486SLC machines */
- /* 486SLC machines with just the ISA slot */
- /* Has AMIKey H KBC firmware. */
- {
- .name = "[OPTi 283] RYC Leopard LX",
- .internal_name = "rycleopardlx",
- .type = MACHINE_TYPE_486SLC,
- .chipset = MACHINE_CHIPSET_OPTI_283,
- .init = machine_at_rycleopardlx_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_486SLC_IBM,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 16384,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- /* 386DX machines */
- /* Has a Jetkey V3, which identifies as a 'B'. */
- {
- .name = "[ACC 2168] Juko AT046DX3",
- .internal_name = "acc386",
- .type = MACHINE_TYPE_386DX,
- .chipset = MACHINE_CHIPSET_ACC_2168,
- .init = machine_at_acc386_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_386DX,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 16384,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has an AMI Keyboard BIOS PLUS KBC firmware ('8'). */
- {
- .name = "[C&T 386/AT] ECS 386/32",
- .internal_name = "ecs386",
- .type = MACHINE_TYPE_386DX,
- .chipset = MACHINE_CHIPSET_CT_386,
- .init = machine_at_ecs386_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_386DX,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 16384,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has IBM AT KBC firmware. */
- {
- .name = "[C&T 386/AT] Samsung SPC-6000A",
- .internal_name = "spc6000a",
- .type = MACHINE_TYPE_386DX,
- .chipset = MACHINE_CHIPSET_CT_386,
- .init = machine_at_spc6000a_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_386DX,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 32768,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Uses Compaq KBC firmware. */
- {
- .name = "[ISA] Compaq Deskpro 386 (September 1986)",
- .internal_name = "deskpro386",
- .type = MACHINE_TYPE_386DX,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_at_deskpro386_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_386DX_DESKPRO386,
- .block = CPU_BLOCK(CPU_486DLC, CPU_RAPIDCAD),
- .min_bus = 16000000,
- .max_bus = 25000000,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 1024,
- .max = 16384,
- .step = 1024
- },
- .nvrmask = 63,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[ISA] Compaq Deskpro 386 (May 1988)",
- .internal_name = "deskpro386_05_1988",
- .type = MACHINE_TYPE_386DX,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_at_deskpro386_05_1988_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_386DX_DESKPRO386,
- .block = CPU_BLOCK(CPU_486DLC, CPU_RAPIDCAD),
- .min_bus = 16000000,
- .max_bus = 25000000,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 1024,
- .max = 16384,
- .step = 1024
- },
- .nvrmask = 63,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[ISA] Compaq Portable III (386)",
- .internal_name = "portableiii386",
- .type = MACHINE_TYPE_386DX,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_at_portableiii386_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_386DX,
- .block = CPU_BLOCK_NONE,
- .min_bus = 20000000,
- .max_bus = 20000000,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_IDE | MACHINE_VIDEO,
- .ram = {
- .min = 1024,
- .max = 14336,
- .step = 1024
- },
- .nvrmask = 63,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &compaq_plasma_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has IBM AT KBC firmware. */
- {
- .name = "[ISA] Micronics 09-00021 (Tandon BIOS)",
- .internal_name = "micronics386",
- .type = MACHINE_TYPE_386DX,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_at_micronics386_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_386DX,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_APM,
- .ram = {
- .min = 512,
- .max = 8192,
- .step = 128
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has IBM AT KBC firmware. */
- {
- .name = "[ISA] Micronics 09-00021 (Phoenix BIOS)",
- .internal_name = "micronics386px",
- .type = MACHINE_TYPE_386DX,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_at_micronics386px_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_386DX,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_APM,
- .ram = {
- .min = 512,
- .max = 8192,
- .step = 128
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has IBM AT KBC firmware. */
- {
- .name = "[ISA] Tandy 4000",
- .internal_name = "tandy4000",
- .type = MACHINE_TYPE_386DX,
- .chipset = MACHINE_CHIPSET_DISCRETE,
- .init = machine_at_tandy4000_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_386DX,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 16384,
- .step = 1024
- },
- .nvrmask = 63,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has a Lance LT38C41 with AMI Megakey P KBC firmware */
- {
- .name = "[ALi M1429] ECS Panda 386V",
- .internal_name = "ecs386v",
- .type = MACHINE_TYPE_386DX,
- .chipset = MACHINE_CHIPSET_ALI_M1429,
- .init = machine_at_ecs386v_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_386DX,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0,
- },
- .bus_flags = MACHINE_VLB,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 1024,
- .max = 32768,
- .step = 1024,
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has AMIKey 'F' KBC firmware. */
- {
- .name = "[OPTi 391] DataExpert 386WB",
- .internal_name = "dataexpert386wb",
- .type = MACHINE_TYPE_386DX,
- .chipset = MACHINE_CHIPSET_OPTI_391,
- .init = machine_at_dataexpert386wb_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_386DX, /* Actual machine only supports 386DXes */
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 1024,
- .max = 32768,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* The board has a "ASII KB-100" which I was not able to find any information about,
- but the BIOS sends commands C9 without a parameter and D5, both of which are
- Phoenix MultiKey commands. */
- {
- .name = "[OPTi 495SLC] U-Board OPTi 495SLC",
- .internal_name = "award495",
- .type = MACHINE_TYPE_386DX,
- .chipset = MACHINE_CHIPSET_OPTI_495SLC,
- .init = machine_at_opti495_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_386DX, /* Actual machine only supports 386DXes */
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 32768,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has Award KBC firmware. */
- {
- .name = "[SiS 310] ASUS 386/33-64K",
- .internal_name = "asus3863364k",
- .type = MACHINE_TYPE_386DX,
- .chipset = MACHINE_CHIPSET_SIS_310,
- .init = machine_at_asus3863364k_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_386DX,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 16384,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has AMIKey F KBC firmware. */
- {
- .name = "[SiS 310] ASUS ISA-386C",
- .internal_name = "asus386",
- .type = MACHINE_TYPE_386DX,
- .chipset = MACHINE_CHIPSET_SIS_310,
- .init = machine_at_asus386_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_386DX,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 65536,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- /* 386DX machines which utilize the MCA bus */
- /* Has IBM PS/2 Type 1 KBC firmware. */
- {
- .name = "[MCA] IBM PS/2 model 80 (type 2)",
- .internal_name = "ibmps2_m80",
- .type = MACHINE_TYPE_386DX,
- .chipset = MACHINE_CHIPSET_PROPRIETARY,
- .init = machine_ps2_model_80_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_386DX | CPU_PKG_486BL,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2_MCA,
- .flags = MACHINE_VIDEO | MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 65536,
- .step = 1024
- },
- .nvrmask = 63,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has IBM PS/55 5551-Sxx, Txx stage 2 firmware. */
- {
- .name = "[MCA] IBM PS/55 model 5550-T",
- .internal_name = "ibmps55_m50t",
- .type = MACHINE_TYPE_386DX,
- .chipset = MACHINE_CHIPSET_PROPRIETARY,
- .init = machine_ps55_model_50t_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_386DX | CPU_PKG_486BL,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2_MCA,
- .flags = MACHINE_VIDEO | MACHINE_APM,
- .ram = {
- .min = 2048,
- .max = 16384,
- .step = 2048
- },
- .nvrmask = 63,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has IBM PS/55 5551-V0x, V1x firmware. */
- {
- .name = "[MCA] IBM PS/55 model 5550-V",
- .internal_name = "ibmps55_m50v",
- .type = MACHINE_TYPE_386DX,
- .chipset = MACHINE_CHIPSET_PROPRIETARY,
- .init = machine_ps55_model_50v_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_386DX | CPU_PKG_486BL,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2_MCA,
- .flags = MACHINE_VIDEO | MACHINE_APM,
- .ram = {
- .min = 4096,
- .max = 16384,
- .step = 4096
- },
- .nvrmask = 63,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- /* 386DX/486 machines */
- /* Has AMIKey F KBC firmware. The EFAR chipst is a rebrand of OPTi 495SX. */
- {
- .name = "[OPTi 495SX] CAF Technology C747",
- .internal_name = "c747",
- .type = MACHINE_TYPE_386DX_486,
- .chipset = MACHINE_CHIPSET_OPTI_495SX,
- .init = machine_at_c747_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_386DX | CPU_PKG_SOCKET1,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_APM | MACHINE_IDE,
- .ram = {
- .min = 1024,
- .max = 32768,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has AMIKey F KBC firmware. */
- {
- .name = "[OPTi 495SX] DataExpert SX495",
- .internal_name = "ami495",
- .type = MACHINE_TYPE_386DX_486,
- .chipset = MACHINE_CHIPSET_OPTI_495SX,
- .init = machine_at_opti495_ami_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_386DX | CPU_PKG_SOCKET1,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_VLB,
- .flags = MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 32768,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has AMIKey F KBC firmware (it's just the MR BIOS for the above machine). */
- {
- .name = "[OPTi 495SX] DataExpert SX495 (MR BIOS)",
- .internal_name = "mr495",
- .type = MACHINE_TYPE_386DX_486,
- .chipset = MACHINE_CHIPSET_OPTI_495SX,
- .init = machine_at_opti495_mr_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_386DX | CPU_PKG_SOCKET1,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_VLB,
- .flags = MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 32768,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Winbond W83C42 with unknown firmware. */
- {
- .name = "[ALi M1429G] DataExpert EXP4349",
- .internal_name = "exp4349",
- .type = MACHINE_TYPE_386DX_486,
- .chipset = MACHINE_CHIPSET_ALI_M1429G,
- .init = machine_at_exp4349_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_386DX | CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_VLB,
- .flags = MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 49152,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has IBM PS/2 Type 1 KBC firmware. */
- {
- .name = "[MCA] IBM PS/2 model 70 (type 3)",
- .internal_name = "ibmps2_m70_type3",
- .type = MACHINE_TYPE_386DX_486,
- .chipset = MACHINE_CHIPSET_PROPRIETARY,
- .init = machine_ps2_model_70_type3_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_386DX | CPU_PKG_486BL | CPU_PKG_SOCKET1,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2_MCA,
- .flags = MACHINE_VIDEO | MACHINE_APM,
- .ram = {
- .min = 2048,
- .max = 65536,
- .step = 2048
- },
- .nvrmask = 63,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has IBM PS/2 Type 1 KBC firmware. */
- {
- .name = "[MCA] IBM PS/2 model 80 (type 3)",
- .internal_name = "ibmps2_m80_type3",
- .type = MACHINE_TYPE_386DX_486,
- .chipset = MACHINE_CHIPSET_PROPRIETARY,
- .init = machine_ps2_model_80_axx_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_386DX | CPU_PKG_486BL | CPU_PKG_SOCKET1,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2_MCA,
- .flags = MACHINE_VIDEO | MACHINE_APM,
- .ram = {
- .min = 2048,
- .max = 65536,
- .step = 2048
- },
- .nvrmask = 63,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- /* 486 machines - Socket 1 */
- /* Has Award KBC firmware. */
- {
- .name = "[ZyMOS Poach] ASUS ISA-486C",
- .internal_name = "isa486c",
- .type = MACHINE_TYPE_486,
- .chipset = MACHINE_CHIPSET_ZYMOS_POACH,
- .init = machine_at_isa486c_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET1,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 16384,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has AMI KF KBC firmware. */
- {
- .name = "[ZyMOS Poach] Genoa Unknown 486",
- .internal_name = "genoa486",
- .type = MACHINE_TYPE_486,
- .chipset = MACHINE_CHIPSET_ZYMOS_POACH,
- .init = machine_at_genoa486_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET1,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 16384,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has AMI KF KBC firmware. */
- {
- .name = "[OPTi 381] Gigabyte GA-486L",
- .internal_name = "ga486l",
- .type = MACHINE_TYPE_486,
- .chipset = MACHINE_CHIPSET_OPTI_381,
- .init = machine_at_ga486l_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET1,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 16384,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has JetKey 5 KBC Firmware - but the BIOS string ends in a hardcoded -F, and
- the BIOS also explicitly expects command A1 to return a 'F', so it looks like
- the JetKey 5 is a clone of AMIKey type F. */
- {
- .name = "[CS4031] AMI 486 CS4031",
- .internal_name = "cs4031",
- .type = MACHINE_TYPE_486,
- .chipset = MACHINE_CHIPSET_CT_CS4031,
- .init = machine_at_cs4031_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET1,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_VLB,
- .flags = MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 65536,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Uses some variant of Phoenix MultiKey/42 as the Intel 8242 chip has a Phoenix
- copyright. */
- {
- .name = "[OPTi 498] Mylex MVI486",
- .internal_name = "mvi486",
- .type = MACHINE_TYPE_486,
- .chipset = MACHINE_CHIPSET_OPTI_498,
- .init = machine_at_mvi486_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET1,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_VLB,
- .flags = MACHINE_IDE | MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 65536,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has AMI KF KBC firmware. */
- {
- .name = "[SiS 401] ASUS ISA-486",
- .internal_name = "isa486",
- .type = MACHINE_TYPE_486,
- .chipset = MACHINE_CHIPSET_SIS_401,
- .init = machine_at_isa486_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET1,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 65536,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has AMIKey H KBC firmware, per the screenshot in "How computers & MS-DOS work". */
- {
- .name = "[SiS 401] Chaintech 433SC",
- .internal_name = "sis401",
- .type = MACHINE_TYPE_486,
- .chipset = MACHINE_CHIPSET_SIS_401,
- .init = machine_at_sis401_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET1,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 65536,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has AMIKey F KBC firmware, per a photo of a monitor with the BIOS screen on
- eBay. */
- {
- .name = "[SiS 460] ABIT AV4",
- .internal_name = "av4",
- .type = MACHINE_TYPE_486,
- .chipset = MACHINE_CHIPSET_SIS_460,
- .init = machine_at_av4_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET1,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_VLB,
- .flags = MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 65536,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has Phoenix KBC firmware. */
- {
- .name = "[SiS 471] AST Advantage! 40xxd",
- .internal_name = "advantage40xxd",
- .type = MACHINE_TYPE_486,
- .chipset = MACHINE_CHIPSET_SIS_471,
- .init = machine_at_advantage40xxd_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET1,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 2
- },
- .bus_flags = MACHINE_PS2_VLB,
- .flags = MACHINE_IDE | MACHINE_VIDEO | MACHINE_APM,
- .ram = {
- .min = 4096,
- .max = 36864,
- .step = 4096
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &gd5424_onboard_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has AMIKey F KBC firmware. */
- {
- .name = "[Symphony SL42C460] DTK PKM-0031Y",
- .internal_name = "dtk461",
- .type = MACHINE_TYPE_486,
- .chipset = MACHINE_CHIPSET_SYMPHONY_SL82C460,
- .init = machine_at_dtk461_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET1,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 32768,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* The chip is a Lance LT38C41, a clone of the Intel 8041, and the BIOS sends
- commands BC, BD, and C9 which exist on both AMIKey and Phoenix MultiKey/42,
- but it does not write a byte after C9, which is consistent with AMIKey, so
- this must have some form of AMIKey. */
- {
- .name = "[VIA VT82C495] FIC 486-VC-HD",
- .internal_name = "486vchd",
- .type = MACHINE_TYPE_486,
- .chipset = MACHINE_CHIPSET_VIA_VT82C495,
- .init = machine_at_486vchd_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET1,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 64512,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has a VLSI VL82C113A SCAMP Combination I/O which holds the KBC. */
- {
- .name = "[VLSI 82C480] HP Vectra 486VL",
- .internal_name = "vect486vl",
- .type = MACHINE_TYPE_486,
- .chipset = MACHINE_CHIPSET_VLSI_VL82C480,
- .init = machine_at_vect486vl_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET1,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2,
- .flags = MACHINE_IDE | MACHINE_VIDEO | MACHINE_APM,
- .ram = {
- .min = 2048,
- .max = 32768,
- .step = 2048
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL, /*Has SIO (sorta): VLSI VL82C113A SCAMP Combination I/O*/
- .vid_device = &gd5428_onboard_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has a VLSI VL82C114 Combination I/O which holds the KBC. */
- {
- .name = "[VLSI 82C481] Siemens Nixdorf D824",
- .internal_name = "d824",
- .type = MACHINE_TYPE_486,
- .chipset = MACHINE_CHIPSET_VLSI_VL82C481,
- .init = machine_at_d824_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET1,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2,
- .flags = MACHINE_IDE | MACHINE_VIDEO | MACHINE_APM,
- .ram = {
- .min = 2048,
- .max = 32768,
- .step = 2048
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &gd5428_onboard_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has a VLSI VL82C113A SCAMP Combination I/O which holds the KBC. */
- {
- .name = "[VLSI 82C486] Tulip 486 DC/DT",
- .internal_name = "tuliptc38",
- .type = MACHINE_TYPE_486,
- .chipset = MACHINE_CHIPSET_VLSI_VL82C486,
- .init = machine_at_tuliptc38_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET1,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_IDE | MACHINE_VIDEO | MACHINE_APM,
- .ram = {
- .min = 2048,
- .max = 32768,
- .step = 2048
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL, /*Has SIO (sorta): VLSI VL82C113A SCAMP Combination I/O*/
- .vid_device = &gd5426_onboard_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has IBM PS/2 Type 1 KBC firmware. */
- {
- .name = "[MCA] IBM PS/2 model 70 (type 4)",
- .internal_name = "ibmps2_m70_type4",
- .type = MACHINE_TYPE_486,
- .chipset = MACHINE_CHIPSET_PROPRIETARY,
- .init = machine_ps2_model_70_type4_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET1,
- .block = CPU_BLOCK(CPU_i486SX, CPU_i486SX_SLENH, CPU_Am486SX, CPU_Cx486S),
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2_MCA,
- .flags = MACHINE_VIDEO | MACHINE_SOFTFLOAT_ONLY,
- .ram = {
- .min = 2048,
- .max = 65536,
- .step = 2048
- },
- .nvrmask = 63,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* 486 machines - Socket 2 */
- /* 486 machines with just the ISA slot */
- /* Uses some variant of Phoenix MultiKey/42 as the BIOS sends keyboard controller
- command C7 (OR input byte with received data byte). */
- {
- .name = "[ACC 2168] Packard Bell PB410A",
- .internal_name = "pb410a",
- .type = MACHINE_TYPE_486_S2,
- .chipset = MACHINE_CHIPSET_ACC_2168,
- .init = machine_at_pb410a_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2,
- .flags = MACHINE_IDE | MACHINE_VIDEO | MACHINE_APM | MACHINE_GAMEPORT,
- .ram = {
- .min = 4096,
- .max = 36864,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &ht216_32_pb410a_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Uses an ACER/NEC 90M002A (UPD82C42C, 8042 clone) with unknown firmware (V4.01H). */
- {
- .name = "[ALi M1429G] Acer A1G",
- .internal_name = "acera1g",
- .type = MACHINE_TYPE_486_S2,
- .chipset = MACHINE_CHIPSET_ALI_M1429G,
- .init = machine_at_acera1g_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2,
- .flags = MACHINE_IDE | MACHINE_VIDEO | MACHINE_APM,
- .ram = {
- .min = 4096,
- .max = 36864,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &gd5428_onboard_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* This has an AMIKey-2, which is an updated version of type 'H'. */
- {
- .name = "[ALi M1429G] Kaimei SA-486 VL-BUS M.B.",
- .internal_name = "win486",
- .type = MACHINE_TYPE_486_S2,
- .chipset = MACHINE_CHIPSET_ALI_M1429G,
- .init = machine_at_winbios1429_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_VLB,
- .flags = MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 32768,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has JetKey 5 KBC Firmware which looks like it is a clone of AMIKey type F.
- It also has those Ex commands also seen on the VIA VT82C42N (the BIOS
- supposedly sends command EF.
- The board was also seen in 2003 with a -H string - perhaps someone swapped
- the KBC? */
- {
- .name = "[ALi M1429] Olystar LIL1429",
- .internal_name = "ali1429",
- .type = MACHINE_TYPE_486_S2,
- .chipset = MACHINE_CHIPSET_ALI_M1429,
- .init = machine_at_ali1429_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_VLB,
- .flags = MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 32768,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has AMI MegaKey KBC. */
- {
- .name = "[i420TX] J-Bond PCI400C-A",
- .internal_name = "pci400ca",
- .type = MACHINE_TYPE_486_S2,
- .chipset = MACHINE_CHIPSET_INTEL_420TX,
- .init = machine_at_pci400ca_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PCI,
- .flags = MACHINE_SCSI,
- .ram = {
- .min = 1024,
- .max = 65536,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = &keyboard_at_ami_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* This has a standalone AMI Megakey 1993, which is type 'P'. */
- {
- .name = "[IMS 8848] Tekram G486IP",
- .internal_name = "g486ip",
- .type = MACHINE_TYPE_486_S2,
- .chipset = MACHINE_CHIPSET_IMS_8848,
- .init = machine_at_g486ip_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PCI,
- .flags = MACHINE_APM,
- .ram = {
- .min = 2048,
- .max = 131072,
- .step = 2048
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[OPTi 499] Alaris Cobalt LPX",
- .internal_name = "cobalt",
- .type = MACHINE_TYPE_486_S2,
- .chipset = MACHINE_CHIPSET_OPTI_499,
- .init = machine_at_cobalt_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3 | CPU_PKG_486BL,
- .block = CPU_BLOCK(CPU_P24T),
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2_VLB,
- .flags = MACHINE_APM | MACHINE_VIDEO | MACHINE_IDE_DUAL,
- .ram = {
- .min = 1024,
- .max = 65536,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &gd5428_vlb_onboard_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has AMIKey-2 'H' KBC firmware. */
- {
- .name = "[OPTi 499] Alaris COUGAR 486BL",
- .internal_name = "cougar",
- .type = MACHINE_TYPE_486_S2,
- .chipset = MACHINE_CHIPSET_OPTI_499,
- .init = machine_at_cougar_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3 | CPU_PKG_486BL,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_VLB,
- .flags = MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 65536,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Uses an Intel KBC with Phoenix MultiKey KBC firmware. */
- {
- .name = "[SiS 461] DEC DECpc LPV",
- .internal_name = "decpclpv",
- .type = MACHINE_TYPE_486_S2,
- .chipset = MACHINE_CHIPSET_SIS_461,
- .init = machine_at_decpclpv_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2,
- .flags = MACHINE_IDE | MACHINE_VIDEO | MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 32768,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &s3_86c805_onboard_vlb_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Uses a ???? KBC. */
- {
- .name = "[SiS 461] Dell 466/NP",
- .internal_name = "dell466np",
- .type = MACHINE_TYPE_486_S2,
- .chipset = MACHINE_CHIPSET_SIS_461,
- .init = machine_at_dell466np_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2,
- .flags = MACHINE_IDE | MACHINE_VIDEO | MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 32768,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &gd5428_onboard_vlb_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* The BIOS does not send any non-standard keyboard controller commands and wants
- a PS/2 mouse, so it's an IBM PS/2 KBC (Type 1) firmware. */
- {
- .name = "[SiS 461] IBM PS/ValuePoint 433DX/Si",
- .internal_name = "valuepoint433",
- .type = MACHINE_TYPE_486_S2,
- .chipset = MACHINE_CHIPSET_SIS_461,
- .init = machine_at_valuepoint433_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2,
- .flags = MACHINE_IDE | MACHINE_VIDEO | MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 65536,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has a VLSI VL82C113A SCAMP Combination I/O which holds the KBC. */
- {
- .name = "[VLSI 82C480] ZEOS Martin",
- .internal_name = "martin",
- .type = MACHINE_TYPE_486_S2,
- .chipset = MACHINE_CHIPSET_VLSI_VL82C480,
- .init = machine_at_martin_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_VLB,
- .flags = MACHINE_IDE | MACHINE_APM,
- .ram = {
- .min = 2048,
- .max = 65536,
- .step = 2048
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- /* 486 machines - Socket 3 */
- /* 486 machines with just the ISA slot */
- /* Has a Fujitsu MBL8042H KBC. */
- {
- .name = "[Contaq 82C596A] A-Trend 4GPV5",
- .internal_name = "4gpv5",
- .type = MACHINE_TYPE_486_S3,
- .chipset = MACHINE_CHIPSET_CONTAQ_82C596,
- .init = machine_at_4gpv5_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_VLB,
- .flags = MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 65536,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has AMI MegaKey KBC firmware. */
- {
- .name = "[Contaq 82C597] Visionex Green-B",
- .internal_name = "greenb",
- .type = MACHINE_TYPE_486_S3,
- .chipset = MACHINE_CHIPSET_CONTAQ_82C597,
- .init = machine_at_greenb_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_VLB,
- .flags = MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 65536,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Version 1.0 has an AMIKEY-2, version 2.0 has a VIA VT82C42N KBC. */
- {
- .name = "[OPTi 895] Jetway J-403TG",
- .internal_name = "403tg",
- .type = MACHINE_TYPE_486_S3,
- .chipset = MACHINE_CHIPSET_OPTI_895_802G,
- .init = machine_at_403tg_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_VLB,
- .flags = MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 65536,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has JetKey 5 KBC Firmware which looks like it is a clone of AMIKey type F. */
- {
- .name = "[OPTi 895] Jetway J-403TG Rev D",
- .internal_name = "403tg_d",
- .type = MACHINE_TYPE_486_S3,
- .chipset = MACHINE_CHIPSET_OPTI_895_802G,
- .init = machine_at_403tg_d_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_VLB,
- .flags = MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 65536,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has JetKey 5 KBC Firmware which looks like it is a clone of AMIKey type F. */
- {
- .name = "[OPTi 895] Jetway J-403TG Rev D (MR BIOS)",
- .internal_name = "403tg_d_mr",
- .type = MACHINE_TYPE_486_S3,
- .chipset = MACHINE_CHIPSET_OPTI_895_802G,
- .init = machine_at_403tg_d_mr_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_VLB,
- .flags = MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 65536,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Uses an NEC 90M002A (UPD82C42C, 8042 clone) with unknown firmware. */
- {
- .name = "[SiS 461] Acer V10",
- .internal_name = "acerv10",
- .type = MACHINE_TYPE_486_S3,
- .chipset = MACHINE_CHIPSET_SIS_461,
- .init = machine_at_acerv10_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2_VLB,
- .flags = MACHINE_IDE | MACHINE_APM, /* Machine has internal SCSI: Adaptec AIC-6360 */
- .ram = {
- .min = 1024,
- .max = 32768,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* The BIOS string ends in -U, unless command 0xA1 (AMIKey get version) returns an
- 'F', in which case, it ends in -F, so it has an AMIKey F KBC firmware.
- The photo of the board shows an AMIKey KBC which is indeed F. */
- {
- .name = "[SiS 471] ABIT AB-AH4",
- .internal_name = "win471",
- .type = MACHINE_TYPE_486_S3,
- .chipset = MACHINE_CHIPSET_SIS_471,
- .init = machine_at_win471_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_VLB,
- .flags = MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 131072,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has AMIKey-2 'H' keyboard BIOS. */
- {
- .name = "[SiS 471] AOpen Vi15G",
- .internal_name = "vi15g",
- .type = MACHINE_TYPE_486_S3,
- .chipset = MACHINE_CHIPSET_SIS_471,
- .init = machine_at_vi15g_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_VLB,
- .flags = MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 131072,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* This has an AMIKey-2, which is an updated version of type 'H'. */
- {
- .name = "[SiS 471] ASUS VL/I-486SV2GX4",
- .internal_name = "vli486sv2g",
- .type = MACHINE_TYPE_486_S3,
- .chipset = MACHINE_CHIPSET_SIS_471,
- .init = machine_at_vli486sv2g_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2_VLB,
- .flags = MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 65536,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has JetKey 5 KBC Firmware which looks like it is a clone of AMIKey type F. */
- {
- .name = "[SiS 471] DTK PKM-0038S E-2",
- .internal_name = "dtk486",
- .type = MACHINE_TYPE_486_S3,
- .chipset = MACHINE_CHIPSET_SIS_471,
- .init = machine_at_dtk486_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_VLB,
- .flags = MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 131072,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has a Lance LT38C41L with AMIKey F keyboard BIOS. */
- {
- .name = "[SiS 471] Epox GXA486SG",
- .internal_name = "ami471",
- .type = MACHINE_TYPE_486_S3,
- .chipset = MACHINE_CHIPSET_SIS_471,
- .init = machine_at_ami471_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_VLB,
- .flags = MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 131072,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has MR (!) KBC firmware, which is a clone of the standard IBM PS/2 KBC firmware. */
- {
- .name = "[SiS 471] SiS VL-BUS 471 REV. A1",
- .internal_name = "px471",
- .type = MACHINE_TYPE_486_S3,
- .chipset = MACHINE_CHIPSET_SIS_471,
- .init = machine_at_px471_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_VLB,
- .flags = MACHINE_IDE | MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 131072,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* TriGem AMIBIOS Pre-Color with TriGem AMI 'Z' keyboard controller */
- {
- .name = "[SiS 471] TriGem 486G",
- .internal_name = "tg486g",
- .type = MACHINE_TYPE_486_S3,
- .chipset = MACHINE_CHIPSET_SIS_471,
- .init = machine_at_tg486g_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2_VLB,
- .flags = MACHINE_IDE | MACHINE_APM, /* Has internal video: Western Digital WD90C33-ZZ */
- .ram = {
- .min = 4096,
- .max = 40960,
- .step = 4096
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Unknown revision phoenix 1993 multikey */
- {
- .name = "[SiS 471] DEC Venturis 4xx",
- .internal_name = "dvent4xx",
- .type = MACHINE_TYPE_486_S3,
- .chipset = MACHINE_CHIPSET_SIS_471,
- .init = machine_at_dvent4xx_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2,
- .flags = MACHINE_IDE_DUAL | MACHINE_SUPER_IO | MACHINE_APM | MACHINE_VIDEO,
- .ram = {
- .min = 4096,
- .max = 69632,
- .step = 4096
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &s3_phoenix_trio32_onboard_vlb_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* This has an AMIKey-2, which is an updated version of type 'H'. */
- {
- .name = "[ALi M1429G] ECS AL486",
- .internal_name = "ecsal486",
- .type = MACHINE_TYPE_486_S3,
- .chipset = MACHINE_CHIPSET_ALI_M1429G,
- .init = machine_at_ecsal486_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_VLB,
- .flags = MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 98304,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* This uses a VIA VT82C42N KBC, which is a clone of type 'F' with additional commands */
- {
- .name = "[ALi M1429G] Lanner Electronics AP-4100AA",
- .internal_name = "ap4100aa",
- .type = MACHINE_TYPE_486_S3,
- .chipset = MACHINE_CHIPSET_ALI_M1429G,
- .init = machine_at_ap4100aa_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_AT,
- .flags = MACHINE_SUPER_IO | MACHINE_IDE | MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 32768,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* JETKey V5.0 */
- {
- .name = "[ALi M1429G] A-Trend ATC-1762",
- .internal_name = "atc1762",
- .type = MACHINE_TYPE_486_S3,
- .chipset = MACHINE_CHIPSET_ALI_M1429G,
- .init = machine_at_atc1762_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_VLB,
- .flags = MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 40960,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- /* 486 machines which utilize the PCI bus */
- /* Machine with ALi M1429G chipset and M1435 southbridge */
- /* Has an AMIKEY-2 KBC. */
- {
- .name = "[ALi M1429G] MSI MS-4134",
- .internal_name = "ms4134",
- .type = MACHINE_TYPE_486_S3_PCI,
- .chipset = MACHINE_CHIPSET_ALI_M1429G,
- .init = machine_at_ms4134_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PCIV,
- .flags = MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 131072,
- .step = 1024
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* TriGem machine with M1429G and PhoenixBIOS */
- {
- .name = "[ALi M1429G] TriGem 486GP",
- .internal_name = "tg486gp",
- .type = MACHINE_TYPE_486_S3_PCI,
- .chipset = MACHINE_CHIPSET_ALI_M1429G,
- .init = machine_at_tg486gp_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2_PCIV,
- .flags = MACHINE_IDE | MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 131072,
- .step = 1024
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* This has an AMIKey-2, which is an updated version of type 'H'. */
- {
- .name = "[ALi M1489] AAEON SBC-490",
- .internal_name = "sbc490",
- .type = MACHINE_TYPE_486_S3_PCI,
- .chipset = MACHINE_CHIPSET_ALI_M1489,
- .init = machine_at_sbc490_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_VIDEO | MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 65536,
- .step = 1024
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &tgui9440_onboard_pci_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has the ALi M1487/9's on-chip keyboard controller which clones a standard AT
- KBC. */
- {
- .name = "[ALi M1489] ABIT AB-PB4",
- .internal_name = "abpb4",
- .type = MACHINE_TYPE_486_S3_PCI,
- .chipset = MACHINE_CHIPSET_ALI_M1489,
- .init = machine_at_abpb4_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PCI, /* Machine has a PISA slot */
- .flags = MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 65536,
- .step = 1024
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has the ALi M1487/9's on-chip keyboard controller which clones a standard AT
- KBC.
- The BIOS string always ends in -U, but the BIOS will send AMIKey commands 0xCA
- and 0xCB if command 0xA1 returns a letter in the 0x5x or 0x7x ranges, so I'm
- going to give it an AMI 'U' KBC. */
- {
- .name = "[ALi M1489] AMI WinBIOS 486 PCI",
- .internal_name = "win486pci",
- .type = MACHINE_TYPE_486_S3_PCI,
- .chipset = MACHINE_CHIPSET_ALI_M1489,
- .init = machine_at_win486pci_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 65536,
- .step = 1024
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has the ALi M1487/9's on-chip keyboard controller which clones a standard AT
- KBC.
- The known BIOS string ends in -E, and the BIOS returns whatever command 0xA1
- returns (but only if command 0xA1 is instant response), so said ALi keyboard
- controller likely returns 'E'. */
- {
- .name = "[ALi M1489] MSI MS-4145",
- .internal_name = "ms4145",
- .type = MACHINE_TYPE_486_S3_PCI,
- .chipset = MACHINE_CHIPSET_ALI_M1489,
- .init = machine_at_ms4145_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 65536,
- .step = 1024
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has an ALi M5042 keyboard controller with Phoenix MultiKey/42 v1.40 firmware. */
- {
- .name = "[ALi M1489] ESA TF-486",
- .internal_name = "tf486",
- .type = MACHINE_TYPE_486_S3_PCI,
- .chipset = MACHINE_CHIPSET_ALI_M1489,
- .init = machine_at_tf486_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 65536,
- .step = 1024
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has an ALi M5042 with phoenix firmware like the ESA TF-486. */
- {
- .name = "[ALi M1489] Acrosser AR-B1476",
- .internal_name = "arb1476",
- .type = MACHINE_TYPE_486_S3_PCI,
- .chipset = MACHINE_CHIPSET_ALI_M1489,
- .init = machine_at_arb1476_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2,
- .flags = MACHINE_SUPER_IO | MACHINE_IDE | MACHINE_APM, /* Has onboard video: C&T F65545 */
- .ram = {
- .min = 1024,
- .max = 32768,
- .step = 1024
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has IBM PS/2 Type 1 KBC firmware. */
- {
- .name = "[OPTi 802G] IBM Aptiva 510/710/Vision",
- .internal_name = "aptiva510",
- .type = MACHINE_TYPE_486_S3_PCI,
- .chipset = MACHINE_CHIPSET_OPTI_895_802G,
- .init = machine_at_aptiva510_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3_PC330,
- .block = CPU_BLOCK_NONE,
- .min_bus = 25000000,
- .max_bus = 33333333,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 2.0,
- .max_multi = 3.0
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE | MACHINE_VIDEO | MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 65536,
- .step = 1024
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &gd5430_onboard_vlb_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has IBM PS/2 Type 1 KBC firmware. */
- {
- .name = "[OPTi 802G] IBM PC 330 (type 6573)",
- .internal_name = "pc330_6573",
- .type = MACHINE_TYPE_486_S3_PCI,
- .chipset = MACHINE_CHIPSET_OPTI_895_802G,
- .init = machine_at_pc330_6573_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3_PC330,
- .block = CPU_BLOCK_NONE,
- .min_bus = 25000000,
- .max_bus = 33333333,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 2.0,
- .max_multi = 3.0
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE | MACHINE_VIDEO | MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 65536,
- .step = 1024
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &gd5430_onboard_vlb_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* has a Phoenix PLCC Multikey copyrighted 1993, version unknown. */
- {
- .name = "[OPTi 895] Packard Bell PB450",
- .internal_name = "pb450",
- .type = MACHINE_TYPE_486_S3_PCI,
- .chipset = MACHINE_CHIPSET_OPTI_895_802G,
- .init = machine_at_pb450_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_SUPER_IO | MACHINE_IDE_DUAL | MACHINE_VIDEO,
- .ram = {
- .min = 1024,
- .max = 65536,
- .step = 1024
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = &pb450_device,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &gd5428_vlb_onboard_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* This has an AMIKey-2, which is an updated version of type 'H'. */
- {
- .name = "[i420EX] ASUS PVI-486AP4",
- .internal_name = "486ap4",
- .type = MACHINE_TYPE_486_S3_PCI,
- .chipset = MACHINE_CHIPSET_INTEL_420EX,
- .init = machine_at_486ap4_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2_PCIV,
- .flags = MACHINE_IDE | MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 131072,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* This has the Phoenix MultiKey KBC firmware. */
- {
- .name = "[i420EX] Intel Classic/PCI ED",
- .internal_name = "ninja",
- .type = MACHINE_TYPE_486_S3_PCI,
- .chipset = MACHINE_CHIPSET_INTEL_420EX,
- .init = machine_at_ninja_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PCI,
- .flags = MACHINE_IDE | MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 131072,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has Phoenix Multikey/42 PS/2 KBC, but unknown version */
- {
- .name = "[i420EX] Anigma BAT4IP3e",
- .internal_name = "bat4ip3e",
- .type = MACHINE_TYPE_486_S3_PCI,
- .chipset = MACHINE_CHIPSET_INTEL_420EX,
- .init = machine_at_bat4ip3e_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_SUPER_IO | MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 131072,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* This has an AMIKey-2, which is an updated version of type 'H'. */
- {
- .name = "[i420EX] Advanced Integration Research 486PI",
- .internal_name = "486pi",
- .type = MACHINE_TYPE_486_S3_PCI,
- .chipset = MACHINE_CHIPSET_INTEL_420EX,
- .init = machine_at_486pi_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PCIV,
- .flags = MACHINE_SUPER_IO | MACHINE_IDE | MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 131072,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* absolutely no KBC info */
- {
- .name = "[i420EX] ICS SB486P",
- .internal_name = "sb486p",
- .type = MACHINE_TYPE_486_S3_PCI,
- .chipset = MACHINE_CHIPSET_INTEL_420EX,
- .init = machine_at_sb486p_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PCI,
- .flags = MACHINE_SUPER_IO | MACHINE_IDE | MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 131072,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /*
- This has an AMIKey (and an on-board NCR 53C810 PCI SCSI controller), thanks, eBay!
- The keyboard port is AT.
- */
- {
- .name = "[i420TX] ASUS PCI/I-486SP3",
- .internal_name = "486sp3",
- .type = MACHINE_TYPE_486_S3_PCI,
- .chipset = MACHINE_CHIPSET_INTEL_420TX,
- .init = machine_at_486sp3_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PCI,
- .flags = MACHINE_IDE | MACHINE_SCSI | MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 131072,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* This has the Phoenix MultiKey KBC firmware. */
- {
- .name = "[i420TX] Intel Classic/PCI",
- .internal_name = "alfredo",
- .type = MACHINE_TYPE_486_S3_PCI,
- .chipset = MACHINE_CHIPSET_INTEL_420TX,
- .init = machine_at_alfredo_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE | MACHINE_APM,
- .ram = {
- .min = 2048,
- .max = 131072,
- .step = 2048
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* According to another string seen on the UH19 website, this has AMI 'H' KBC. */
- {
- .name = "[i420TX] AMI Super Voyager PCI",
- .internal_name = "amis76",
- .type = MACHINE_TYPE_486_S3_PCI,
- .chipset = MACHINE_CHIPSET_INTEL_420TX,
- .init = machine_at_amis76_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PCI,
- .flags = MACHINE_SUPER_IO | MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 131072,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* This has an AMIKey-2, which is an updated version of type 'H'. Also has a
- SST 29EE010 Flash chip. */
- {
- .name = "[i420ZX] ASUS PCI/I-486SP3G",
- .internal_name = "486sp3g",
- .type = MACHINE_TYPE_486_S3_PCI,
- .chipset = MACHINE_CHIPSET_INTEL_420ZX,
- .init = machine_at_486sp3g_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE | MACHINE_SCSI | MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 131072,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* This has an AMI MEGAKey 'P' or 'R' keyboard controller. */
- {
- .name = "[i420ZX] ICS SB486PV",
- .internal_name = "sb486pv",
- .type = MACHINE_TYPE_486_S3_PCI,
- .chipset = MACHINE_CHIPSET_INTEL_420ZX,
- .init = machine_at_sb486pv_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- /* Has PCI but no user-facing slots. */
- .bus_flags = MACHINE_PCI,
- .flags = MACHINE_PS2_KBC | MACHINE_IDE | MACHINE_VIDEO | MACHINE_APM | MACHINE_PCI_INTERNAL,
- .ram = {
- .min = 2048,
- .max = 65536,
- .step = 2048
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = &sb486pv_device,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &gd5436_onboard_pci_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* This most likely has a standalone AMI Megakey 1993, which is type 'P', like the below Tekram board. */
- {
- .name = "[IMS 8848] J-Bond PCI400C-B",
- .internal_name = "pci400cb",
- .type = MACHINE_TYPE_486_S3_PCI,
- .chipset = MACHINE_CHIPSET_IMS_8848,
- .init = machine_at_pci400cb_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PCIV,
- .flags = MACHINE_APM,
- .ram = {
- .min = 2048,
- .max = 131072,
- .step = 2048
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[SiS 496] Acer P3",
- .internal_name = "acerp3",
- .type = MACHINE_TYPE_486_S3_PCI,
- .chipset = MACHINE_CHIPSET_SIS_496,
- .init = machine_at_acerp3_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_VIDEO,
- .ram = {
- .min = 2048,
- .max = 131072,
- .step = 1024
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &gd5434_onboard_pci_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* This has an AMIKey-2, which is an updated version of type 'H'. */
- {
- .name = "[SiS 496] ASUS PVI-486SP3C",
- .internal_name = "486sp3c",
- .type = MACHINE_TYPE_486_S3_PCI,
- .chipset = MACHINE_CHIPSET_SIS_496,
- .init = machine_at_486sp3c_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2_PCIV,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 261120,
- .step = 1024
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* This has an AMIKey-2, which is an updated version of type 'H'. */
- {
- .name = "[SiS 496] Lucky Star LS-486E",
- .internal_name = "ls486e",
- .type = MACHINE_TYPE_486_S3_PCI,
- .chipset = MACHINE_CHIPSET_SIS_496,
- .init = machine_at_ls486e_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PCI,
- .flags = MACHINE_PS2_KBC | MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 131072,
- .step = 1024
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has a VIA VT82C42N KBC. */
- {
- .name = "[SiS 496] Micronics M4Li",
- .internal_name = "m4li",
- .type = MACHINE_TYPE_486_S3_PCI,
- .chipset = MACHINE_CHIPSET_SIS_496,
- .init = machine_at_m4li_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 131072,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Revision 1 has a Lance LT38C41L, revision 2 has a Holtek HT6542B. Another variant with a Bestkey KBC might exist as well. */
- {
- .name = "[SiS 496] Rise Computer R418",
- .internal_name = "r418",
- .type = MACHINE_TYPE_486_S3_PCI,
- .chipset = MACHINE_CHIPSET_SIS_496,
- .init = machine_at_r418_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PCI,
- .flags = MACHINE_PS2_KBC | MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 261120,
- .step = 1024
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* This has a Holtek HT6542B KBC and the BIOS does not send a single non-standard KBC command, so it
- must be an ASIC that clones the standard IBM PS/2 KBC. */
- {
- .name = "[SiS 496] Soyo 4SAW2",
- .internal_name = "4saw2",
- .type = MACHINE_TYPE_486_S3_PCI,
- .chipset = MACHINE_CHIPSET_SIS_496,
- .init = machine_at_4saw2_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK(CPU_i486SX, CPU_i486DX, CPU_Am486SX, CPU_Am486DX),
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2_PCIV,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 2048,
- .max = 261120,
- .step = 1024
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* According to MrKsoft, his real 4DPS has an AMIKey-2, which is an updated version
- of type 'H'. There are other variants of the board with Holtek HT6542B KBCs. */
- {
- .name = "[SiS 496] Zida Tomato 4DP",
- .internal_name = "4dps",
- .type = MACHINE_TYPE_486_S3_PCI,
- .chipset = MACHINE_CHIPSET_SIS_496,
- .init = machine_at_4dps_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_GAMEPORT,
- .ram = {
- .min = 2048,
- .max = 261120,
- .step = 1024
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* AMIKEY-2 */
- {
- .name = "[SiS 496] MSI MS-4144",
- .internal_name = "ms4144",
- .type = MACHINE_TYPE_486_S3_PCI,
- .chipset = MACHINE_CHIPSET_SIS_496,
- .init = machine_at_ms4144_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PCI,
- .flags = MACHINE_SUPER_IO | MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 5120, /* Hack: machine seems to break with less than 5 MBs of RAM */
- .max = 131072,
- .step = 1024
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* This has the UMC 88xx on-chip KBC. */
- {
- .name = "[UMC 8881] A-Trend ATC-1415",
- .internal_name = "atc1415",
- .type = MACHINE_TYPE_486_S3_PCI,
- .chipset = MACHINE_CHIPSET_UMC_UM8881,
- .init = machine_at_atc1415_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 65536,
- .step = 1024
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* This has the UMC 88xx on-chip KBC. All the copies of the BIOS string I can find, end in
- in -H, so the UMC on-chip KBC likely emulates the AMI 'H' KBC firmware. */
- {
- .name = "[UMC 8881] Biostar MB-84xxUUD-A",
- .internal_name = "84xxuuda",
- .type = MACHINE_TYPE_486_S3_PCI,
- .chipset = MACHINE_CHIPSET_UMC_UM8881,
- .init = machine_at_84xxuuda_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 131072,
- .step = 1024
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* This has an AMIKey-2, which is an updated version of type 'H'. */
- {
- .name = "[UMC 8881] ECS Elite UM8810P-AIO",
- .internal_name = "ecs486",
- .type = MACHINE_TYPE_486_S3_PCI,
- .chipset = MACHINE_CHIPSET_UMC_UM8881,
- .init = machine_at_ecs486_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PCI,
- .flags = MACHINE_PS2_KBC | MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 131072,
- .step = 1024
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has AMIKey Z(!) KBC firmware. */
- {
- .name = "[UMC 8881] Epson ActionPC 2600",
- .internal_name = "actionpc2600",
- .type = MACHINE_TYPE_486_S3_PCI,
- .chipset = MACHINE_CHIPSET_UMC_UM8881,
- .init = machine_at_actionpc2600_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_VIDEO,
- .ram = {
- .min = 1024,
- .max = 262144,
- .step = 1024
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &tgui9440_onboard_pci_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* This has the UMC 88xx on-chip KBC. All the copies of the BIOS string I can find, end in
- in -H, so the UMC on-chip KBC likely emulates the AMI 'H' KBC firmware. */
- {
- .name = "[UMC 8881] Epson ActionTower 8400",
- .internal_name = "actiontower8400",
- .type = MACHINE_TYPE_486_S3_PCI,
- .chipset = MACHINE_CHIPSET_UMC_UM8881,
- .init = machine_at_actiontower8400_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_SUPER_IO | MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_VIDEO,
- .ram = {
- .min = 1024,
- .max = 262144,
- .step = 1024
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &gd5430_onboard_pci_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* This has the UMC 88xx on-chip KBC. All the copies of the BIOS string I can find, end in
- in -H, so the UMC on-chip KBC likely emulates the AMI 'H' KBC firmware. */
- {
- .name = "[UMC 8881] PC Chips M919",
- .internal_name = "m919",
- .type = MACHINE_TYPE_486_S3_PCI,
- .chipset = MACHINE_CHIPSET_UMC_UM8881,
- .init = machine_at_m919_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PCIV,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 131072,
- .step = 1024
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has IBM PS/2 Type 1 KBC firmware. Uses a mysterious I/O port C05. */
- {
- .name = "[UMC 8881] Samsung SPC7700P-LW",
- .internal_name = "spc7700plw",
- .type = MACHINE_TYPE_486_S3_PCI,
- .chipset = MACHINE_CHIPSET_UMC_UM8881,
- .init = machine_at_spc7700plw_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 131072,
- .step = 1024
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* This has a Holtek KBC. */
- {
- .name = "[UMC 8881] Shuttle HOT-433A",
- .internal_name = "hot433a",
- .type = MACHINE_TYPE_486_S3_PCI,
- .chipset = MACHINE_CHIPSET_UMC_UM8881,
- .init = machine_at_hot433a_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 262144,
- .step = 1024
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = &hot433a_device,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Compaq Presario 7100 / 7200 Series, using MiTAC/Trigon PL4600C (486). */
- /* Has a VIA VT82C42N KBC. */
- {
- .name = "[UMC 8881] Compaq Presario 7100/7200 Series 486",
- .internal_name = "pl4600c",
- .type = MACHINE_TYPE_486_S3_PCI,
- .chipset = MACHINE_CHIPSET_UMC_UM8881,
- .init = machine_at_pl4600c_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_VIDEO | MACHINE_SOUND | MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 65536,
- .step = 1024
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &gd5430_onboard_pci_device,
- .snd_device = &ess_1688_device,
- .net_device = NULL
- },
- /* Has a VIA VT82C406 KBC+RTC that likely has identical commands to the VT82C42N. */
- {
- .name = "[VIA VT82C496G] DFI G486VPA",
- .internal_name = "g486vpa",
- .type = MACHINE_TYPE_486_S3_PCI,
- .chipset = MACHINE_CHIPSET_VIA_VT82C496G,
- .init = machine_at_g486vpa_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2_PCIV,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 1024,
- .max = 131072,
- .step = 1024
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has a VIA VT82C42N KBC. */
- {
- .name = "[VIA VT82C496G] FIC VIP-IO2",
- .internal_name = "486vipio2",
- .type = MACHINE_TYPE_486_S3_PCI,
- .chipset = MACHINE_CHIPSET_VIA_VT82C496G,
- .init = machine_at_486vipio2_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET3,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2_PCIV,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_GAMEPORT,
- .ram = {
- .min = 1024,
- .max = 131072,
- .step = 1024
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- /* 486 machines - Miscellaneous */
- /* 486 machines which utilize the PCI bus */
- /* Has a Winbond W83977F Super I/O chip with on-chip KBC with AMIKey-2 KBC
- firmware. */
- {
- .name = "[STPC Client] ITOX STAR",
- .internal_name = "itoxstar",
- .type = MACHINE_TYPE_486_MISC,
- .chipset = MACHINE_CHIPSET_STPC_CLIENT,
- .init = machine_at_itoxstar_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_STPC,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 75000000,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 1.0,
- .max_multi = 1.0
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 8192,
- .max = 131072,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has a Winbond W83977F Super I/O chip with on-chip KBC with AMIKey-2 KBC
- firmware. */
- {
- .name = "[STPC Consumer-II] Acrosser AR-B1423C",
- .internal_name = "arb1423c",
- .type = MACHINE_TYPE_486_MISC,
- .chipset = MACHINE_CHIPSET_STPC_CONSUMER_II,
- .init = machine_at_arb1423c_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_STPC,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 66666667,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 2.0,
- .max_multi = 2.0
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_PCI_INTERNAL, /* Machine has internal video: ST STPC Atlas */
- .ram = {
- .min = 32768,
- .max = 163840,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has a Winbond W83977F Super I/O chip with on-chip KBC with AMIKey-2 KBC
- firmware. */
- {
- .name = "[STPC Consumer-II] Acrosser AR-B1479",
- .internal_name = "arb1479",
- .type = MACHINE_TYPE_486_MISC,
- .chipset = MACHINE_CHIPSET_STPC_CONSUMER_II,
- .init = machine_at_arb1479_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_STPC,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 66666667,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 2.0,
- .max_multi = 2.0
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_PCI_INTERNAL | MACHINE_USB, /* Machine has internal video: ST STPC Atlas */
- .ram = {
- .min = 32768,
- .max = 163840,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has a Winbond W83977F Super I/O chip with on-chip KBC with AMIKey-2 KBC
- firmware. */
- {
- .name = "[STPC Consumer-II] Lanner Electronics IAC-H488",
- .internal_name = "iach488",
- .type = MACHINE_TYPE_486_MISC,
- .chipset = MACHINE_CHIPSET_STPC_CONSUMER_II,
- .init = machine_at_iach488_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_STPC,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 66666667,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 2.0,
- .max_multi = 2.0
- },
- .bus_flags = MACHINE_PS2,
- .flags = MACHINE_IDE | MACHINE_APM | MACHINE_PCI_INTERNAL, /* Machine has internal video: ST STPC Atlas and NIC: Realtek RTL8139C+ */
- .ram = {
- .min = 32768,
- .max = 131072,
- .step = 32768
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has a Winbond W83977F Super I/O chip with on-chip KBC with AMIKey-2 KBC
- firmware. */
- {
- .name = "[STPC Elite] Advantech PCM-9340",
- .internal_name = "pcm9340",
- .type = MACHINE_TYPE_486_MISC,
- .chipset = MACHINE_CHIPSET_STPC_ELITE,
- .init = machine_at_pcm9340_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_STPC,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 66666667,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 2.0,
- .max_multi = 2.0
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_PCI_INTERNAL,
- .ram = {
- .min = 32768,
- .max = 98304,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has a Winbond W83977F Super I/O chip with on-chip KBC with AMIKey-2 KBC
- firmware. */
- {
- .name = "[STPC Atlas] AAEON PCM-5330",
- .internal_name = "pcm5330",
- .type = MACHINE_TYPE_486_MISC,
- .chipset = MACHINE_CHIPSET_STPC_ATLAS,
- .init = machine_at_pcm5330_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_STPC,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 66666667,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 2.0,
- .max_multi = 2.0
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_PCI_INTERNAL,
- .ram = {
- .min = 32768,
- .max = 131072,
- .step = 32768
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- /* Socket 4 machines */
- /* 430LX */
- {
- .name = "[i430LX] Acer V12P",
- .internal_name = "v12p",
- .type = MACHINE_TYPE_SOCKET4,
- .chipset = MACHINE_CHIPSET_INTEL_430LX,
- .init = machine_at_v12p_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET4,
- .block = CPU_BLOCK_NONE,
- .min_bus = 60000000,
- .max_bus = 66666667,
- .min_voltage = 5000,
- .max_voltage = 5000,
- .min_multi = MACHINE_MULTIPLIER_FIXED,
- .max_multi = MACHINE_MULTIPLIER_FIXED
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE | MACHINE_APM,
- .ram = {
- .min = 2048,
- .max = 196608,
- .step = 2048
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = &v12p_device,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has AMIKey H KBC firmware (AMIKey-2), per POST screen with BIOS string
- shown in the manual. Has PS/2 mouse support with serial-style (DB9)
- connector.
- The boot block for BIOS recovery requires an unknown bit on port 805h
- to be clear. */
- {
- .name = "[i430LX] AMI Excalibur PCI Pentium",
- .internal_name = "excaliburpci",
- .type = MACHINE_TYPE_SOCKET4,
- .chipset = MACHINE_CHIPSET_INTEL_430LX,
- .init = machine_at_excaliburpci_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET4,
- .block = CPU_BLOCK_NONE,
- .min_bus = 60000000,
- .max_bus = 66666667,
- .min_voltage = 5000,
- .max_voltage = 5000,
- .min_multi = MACHINE_MULTIPLIER_FIXED,
- .max_multi = MACHINE_MULTIPLIER_FIXED
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE | MACHINE_APM, /* Machine has internal SCSI */
- .ram = {
- .min = 2048,
- .max = 131072,
- .step = 2048
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has AMIKey F KBC firmware (AMIKey). */
- {
- .name = "[i430LX] ASUS P/I-P5MP3",
- .internal_name = "p5mp3",
- .type = MACHINE_TYPE_SOCKET4,
- .chipset = MACHINE_CHIPSET_INTEL_430LX,
- .init = machine_at_p5mp3_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET4,
- .block = CPU_BLOCK_NONE,
- .min_bus = 60000000,
- .max_bus = 66666667,
- .min_voltage = 5000,
- .max_voltage = 5000,
- .min_multi = MACHINE_MULTIPLIER_FIXED,
- .max_multi = MACHINE_MULTIPLIER_FIXED
- },
- .bus_flags = MACHINE_PCI,
- .flags = MACHINE_PS2_KBC | MACHINE_APM,
- .ram = {
- .min = 2048,
- .max = 196608,
- .step = 2048
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has IBM PS/2 Type 1 KBC firmware. */
- {
- .name = "[i430LX] Dell Dimension XPS P60",
- .internal_name = "dellxp60",
- .type = MACHINE_TYPE_SOCKET4,
- .chipset = MACHINE_CHIPSET_INTEL_430LX,
- .init = machine_at_dellxp60_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET4,
- .block = CPU_BLOCK_NONE,
- .min_bus = 60000000,
- .max_bus = 66666667,
- .min_voltage = 5000,
- .max_voltage = 5000,
- .min_multi = MACHINE_MULTIPLIER_FIXED,
- .max_multi = MACHINE_MULTIPLIER_FIXED
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE | MACHINE_APM,
- .ram = {
- .min = 2048,
- .max = 131072,
- .step = 2048
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has IBM PS/2 Type 1 KBC firmware. */
- {
- .name = "[i430LX] Dell OptiPlex 560/L",
- .internal_name = "opti560l",
- .type = MACHINE_TYPE_SOCKET4,
- .chipset = MACHINE_CHIPSET_INTEL_430LX,
- .init = machine_at_opti560l_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET4,
- .block = CPU_BLOCK_NONE,
- .min_bus = 60000000,
- .max_bus = 66666667,
- .min_voltage = 5000,
- .max_voltage = 5000,
- .min_multi = MACHINE_MULTIPLIER_FIXED,
- .max_multi = MACHINE_MULTIPLIER_FIXED
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE | MACHINE_APM,
- .ram = {
- .min = 2048,
- .max = 131072,
- .step = 2048
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* This has the Phoenix MultiKey KBC firmware.
- This is basically an Intel Batman (*NOT* Batman's Revenge) with a fancier
- POST screen */
- {
- .name = "[i430LX] AMBRA DP60 PCI",
- .internal_name = "ambradp60",
- .type = MACHINE_TYPE_SOCKET4,
- .chipset = MACHINE_CHIPSET_INTEL_430LX,
- .init = machine_at_ambradp60_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET4,
- .block = CPU_BLOCK_NONE,
- .min_bus = 60000000,
- .max_bus = 66666667,
- .min_voltage = 5000,
- .max_voltage = 5000,
- .min_multi = MACHINE_MULTIPLIER_FIXED,
- .max_multi = MACHINE_MULTIPLIER_FIXED
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE | MACHINE_APM,
- .ram = {
- .min = 2048,
- .max = 131072,
- .step = 2048
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has IBM PS/2 Type 1 KBC firmware. */
- {
- .name = "[i430LX] IBM PS/ValuePoint P60",
- .internal_name = "valuepointp60",
- .type = MACHINE_TYPE_SOCKET4,
- .chipset = MACHINE_CHIPSET_INTEL_430LX,
- .init = machine_at_valuepointp60_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET4,
- .block = CPU_BLOCK_NONE,
- .min_bus = 60000000,
- .max_bus = 66666667,
- .min_voltage = 5000,
- .max_voltage = 5000,
- .min_multi = MACHINE_MULTIPLIER_FIXED,
- .max_multi = MACHINE_MULTIPLIER_FIXED
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_VIDEO | MACHINE_VIDEO_8514A | MACHINE_APM,
- .ram = {
- .min = 2048,
- .max = 131072,
- .step = 2048
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &mach32_onboard_pci_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* This has the Phoenix MultiKey KBC firmware. */
- {
- .name = "[i430LX] Intel Premiere/PCI",
- .internal_name = "revenge",
- .type = MACHINE_TYPE_SOCKET4,
- .chipset = MACHINE_CHIPSET_INTEL_430LX,
- .init = machine_at_revenge_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET4,
- .block = CPU_BLOCK_NONE,
- .min_bus = 60000000,
- .max_bus = 66666667,
- .min_voltage = 5000,
- .max_voltage = 5000,
- .min_multi = MACHINE_MULTIPLIER_FIXED,
- .max_multi = MACHINE_MULTIPLIER_FIXED
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 2048,
- .max = 131072,
- .step = 2048
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has AMI MegaKey 'H' KBC firmware. */
- {
- .name = "[i430LX] Gigabyte GA-586IS",
- .internal_name = "586is",
- .type = MACHINE_TYPE_SOCKET4,
- .chipset = MACHINE_CHIPSET_INTEL_430LX,
- .init = machine_at_586is_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET4,
- .block = CPU_BLOCK_NONE,
- .min_bus = 60000000,
- .max_bus = 66666667,
- .min_voltage = 5000,
- .max_voltage = 5000,
- .min_multi = MACHINE_MULTIPLIER_FIXED,
- .max_multi = MACHINE_MULTIPLIER_FIXED
- },
- .bus_flags = MACHINE_PCI,
- .flags = MACHINE_APM,
- .ram = {
- .min = 2048,
- .max = 131072,
- .step = 2048
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* This has the Phoenix MultiKey KBC firmware. */
- {
- .name = "[i430LX] Packard Bell PB520R",
- .internal_name = "pb520r",
- .type = MACHINE_TYPE_SOCKET4,
- .chipset = MACHINE_CHIPSET_INTEL_430LX,
- .init = machine_at_pb520r_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET4,
- .block = CPU_BLOCK_NONE,
- .min_bus = 60000000,
- .max_bus = 66666667,
- .min_voltage = 5000,
- .max_voltage = 5000,
- .min_multi = MACHINE_MULTIPLIER_FIXED,
- .max_multi = MACHINE_MULTIPLIER_FIXED
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_VIDEO | MACHINE_APM,
- .ram = {
- .min = 8192,
- .max = 139264,
- .step = 2048
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &gd5434_onboard_pci_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* The M5Pi appears to have a Phoenix MultiKey KBC firmware according to photos. */
- {
- .name = "[i430LX] Micronics M5Pi",
- .internal_name = "m5pi",
- .type = MACHINE_TYPE_SOCKET4,
- .chipset = MACHINE_CHIPSET_INTEL_430LX,
- .init = machine_at_m5pi_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET4,
- .block = CPU_BLOCK_NONE,
- .min_bus = 60000000,
- .max_bus = 66666667,
- .min_voltage = 5000,
- .max_voltage = 5000,
- .min_multi = MACHINE_MULTIPLIER_FIXED,
- .max_multi = MACHINE_MULTIPLIER_FIXED
- },
- .bus_flags = MACHINE_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 2048,
- .max = 131072,
- .step = 2048
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- /* OPTi 596/597 */
- /* This uses an AMI KBC firmware in PS/2 mode (it sends command A5 with the
- PS/2 "Load Security" meaning), most likely MegaKey as it sends command AF
- (Set Extended Controller RAM) just like the later Intel AMI BIOS'es. */
- {
- .name = "[OPTi 597] AMI Excalibur VLB",
- .internal_name = "excalibur",
- .type = MACHINE_TYPE_SOCKET4,
- .chipset = MACHINE_CHIPSET_OPTI_547_597,
- .init = machine_at_excalibur_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET4,
- .block = CPU_BLOCK_NONE,
- .min_bus = 60000000,
- .max_bus = 60000000,
- .min_voltage = 5000,
- .max_voltage = 5000,
- .min_multi = MACHINE_MULTIPLIER_FIXED,
- .max_multi = MACHINE_MULTIPLIER_FIXED
- },
- .bus_flags = MACHINE_PS2_VLB,
- .flags = MACHINE_IDE | MACHINE_APM,
- .ram = {
- .min = 2048,
- .max = 65536,
- .step = 2048
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- /* OPTi 596/597/822 */
- /* Has a VIA VT82C42N KBC with AMI 'F' firmware */
- {
- .name = "[OPTi 597] AT&T Globalyst 330 (Pentium)",
- .internal_name = "globalyst330_p5",
- .type = MACHINE_TYPE_SOCKET4,
- .chipset = MACHINE_CHIPSET_OPTI_547_597,
- .init = machine_at_globalyst330_p5_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET4,
- .block = CPU_BLOCK_NONE,
- .min_bus = 60000000,
- .max_bus = 66666667,
- .min_voltage = 5000,
- .max_voltage = 5000,
- .min_multi = MACHINE_MULTIPLIER_FIXED,
- .max_multi = MACHINE_MULTIPLIER_FIXED
- },
- .bus_flags = MACHINE_PCIV,
- .flags = MACHINE_APM,
- .ram = {
- .min = 8192,
- .max = 65536,
- .step = 8192
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* This has AMIKey 'F' KBC firmware. */
- {
- .name = "[OPTi 597] Supermicro P5VL-PCI",
- .internal_name = "p5vl",
- .type = MACHINE_TYPE_SOCKET4,
- .chipset = MACHINE_CHIPSET_OPTI_547_597,
- .init = machine_at_p5vl_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET4,
- .block = CPU_BLOCK_NONE,
- .min_bus = 60000000,
- .max_bus = 66666667,
- .min_voltage = 5000,
- .max_voltage = 5000,
- .min_multi = MACHINE_MULTIPLIER_FIXED,
- .max_multi = MACHINE_MULTIPLIER_FIXED
- },
- .bus_flags = MACHINE_PCIV,
- .flags = MACHINE_APM,
- .ram = {
- .min = 8192,
- .max = 131072,
- .step = 8192
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- /* SiS 50x */
- /* This has some form of AMI MegaKey as it uses keyboard controller command 0xCC. */
- {
- .name = "[SiS 501] AMI Excalibur PCI-II Pentium ISA",
- .internal_name = "excaliburpci2",
- .type = MACHINE_TYPE_SOCKET4,
- .chipset = MACHINE_CHIPSET_SIS_501,
- .init = machine_at_excaliburpci2_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET4,
- .block = CPU_BLOCK_NONE,
- .min_bus = 60000000,
- .max_bus = 66666667,
- .min_voltage = 5000,
- .max_voltage = 5000,
- .min_multi = MACHINE_MULTIPLIER_FIXED,
- .max_multi = MACHINE_MULTIPLIER_FIXED
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 8192,
- .max = 131072,
- .step = 8192
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* This has an AMIKey-2, which is an updated version of type 'H'. */
- {
- .name = "[SiS 501] ASUS PCI/I-P5SP4",
- .internal_name = "p5sp4",
- .type = MACHINE_TYPE_SOCKET4,
- .chipset = MACHINE_CHIPSET_SIS_501,
- .init = machine_at_p5sp4_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET4,
- .block = CPU_BLOCK_NONE,
- .min_bus = 60000000,
- .max_bus = 66666667,
- .min_voltage = 5000,
- .max_voltage = 5000,
- .min_multi = MACHINE_MULTIPLIER_FIXED,
- .max_multi = MACHINE_MULTIPLIER_FIXED
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 8192,
- .max = 131072,
- .step = 8192
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Socket 5 machines */
- /* 430NX */
- /* This has the Phoenix MultiKey KBC firmware. */
- {
- .name = "[i430NX] Intel Premiere/PCI II",
- .internal_name = "plato",
- .type = MACHINE_TYPE_SOCKET5,
- .chipset = MACHINE_CHIPSET_INTEL_430NX,
- .init = machine_at_plato_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_Cx6x86),
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 3520,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 1.5
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 2048,
- .max = 131072,
- .step = 2048
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Same as Intel Premiere PCI/II, but with a Dell OEM BIOS */
- {
- .name = "[i430NX] Dell Dimension XPS Pxxx",
- .internal_name = "dellplato",
- .type = MACHINE_TYPE_SOCKET5,
- .chipset = MACHINE_CHIPSET_INTEL_430NX,
- .init = machine_at_dellplato_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_Cx6x86),
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 3520,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 1.5
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 2048,
- .max = 131072,
- .step = 2048
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- {
- .name = "[i430NX] Siemens-Nixdorf D842",
- .internal_name = "d842",
- .type = MACHINE_TYPE_SOCKET5,
- .chipset = MACHINE_CHIPSET_INTEL_430NX,
- .init = machine_at_d842_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 3380,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 2.0
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 2048,
- .max = 131072,
- .step = 2048
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = &d842_device,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* This has the Phoenix MultiKey KBC firmware.
- This is basically an Intel Premiere/PCI II with a fancier POST screen. */
- {
- .name = "[i430NX] AMBRA DP90 PCI",
- .internal_name = "ambradp90",
- .type = MACHINE_TYPE_SOCKET5,
- .chipset = MACHINE_CHIPSET_INTEL_430NX,
- .init = machine_at_ambradp90_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_Cx6x86),
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 3380,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 1.5
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 2048,
- .max = 131072,
- .step = 2048
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has AMI 'H' KBC firmware. */
- {
- .name = "[i430NX] ASUS PCI/I-P54NP4",
- .internal_name = "p54np4",
- .type = MACHINE_TYPE_SOCKET5,
- .chipset = MACHINE_CHIPSET_INTEL_430NX,
- .init = machine_at_p54np4_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 60000000,
- .max_bus = 66666667,
- .min_voltage = 3520,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 1.5
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE /*| MACHINE_SCSI */ | MACHINE_APM,
- .ram = {
- .min = 2048,
- .max = 524288,
- .step = 2048
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has AMI 'H' KBC firmware. */
- {
- .name = "[i430NX] Gigabyte GA-586IP",
- .internal_name = "586ip",
- .type = MACHINE_TYPE_SOCKET5,
- .chipset = MACHINE_CHIPSET_INTEL_430NX,
- .init = machine_at_586ip_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 60000000,
- .max_bus = 66666667,
- .min_voltage = 3520,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 1.5
- },
- .bus_flags = MACHINE_PCI,
- .flags = MACHINE_APM,
- .ram = {
- .min = 2048,
- .max = 262144,
- .step = 2048
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has AMI MegaKey KBC firmware. */
- {
- .name = "[i430NX] Teknor TEK-932",
- .internal_name = "tek932",
- .type = MACHINE_TYPE_SOCKET5,
- .chipset = MACHINE_CHIPSET_INTEL_430NX,
- .init = machine_at_tek932_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 60000000,
- .max_bus = 66666667,
- .min_voltage = 3520,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 1.5
- },
- .bus_flags = MACHINE_PCI,
- .flags = MACHINE_IDE | MACHINE_APM,
- .ram = {
- .min = 2048,
- .max = 262144,
- .step = 2048
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- /* 430FX */
- /* Uses an ACER/NEC 90M002A (UPD82C42C, 8042 clone) with unknown firmware (V5.0). */
- {
- .name = "[i430FX] Acer V30",
- .internal_name = "acerv30",
- .type = MACHINE_TYPE_SOCKET5,
- .chipset = MACHINE_CHIPSET_INTEL_430FX,
- .init = machine_at_acerv30_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 3380,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 2.0
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 8192,
- .max = 131072,
- .step = 8192
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has AMIKey F KBC firmware. */
- {
- .name = "[i430FX] AMI Apollo",
- .internal_name = "apollo",
- .type = MACHINE_TYPE_SOCKET5,
- .chipset = MACHINE_CHIPSET_INTEL_430FX,
- .init = machine_at_apollo_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 3380,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 2.0
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 8192,
- .max = 131072,
- .step = 8192
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has a National Semiconductor PC87332VLJ Super I/O with AMIKey 'F' KBC firmware. */
- {
- .name = "[i430FX] Dell OptiPlex GXL/GXM",
- .internal_name = "optiplexgxl",
- .type = MACHINE_TYPE_SOCKET5,
- .chipset = MACHINE_CHIPSET_INTEL_430FX,
- .init = machine_at_optiplexgxl_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK(CPU_Cx6x86),
- .min_bus = 60000000,
- .max_bus = 66666667,
- .min_voltage = 3380,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.0
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_VIDEO | MACHINE_SOUND | MACHINE_APM, /* Video: S3 Trio64V+ (86C765), Sound: Creative ViBRA 16S (CT2504), Network: 3Com ETHERLINK III (3C509B) */
- .ram = {
- .min = 8192,
- .max = 131072,
- .step = 8192
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &s3_phoenix_trio64vplus_onboard_pci_device,
- .snd_device = &sb_vibra16s_onboard_device,
- .net_device = NULL /* not yet emulated */
- },
- /* According to tests from real hardware: This has AMI MegaKey KBC firmware on the
- PC87306 Super I/O chip, command 0xA1 returns '5'.
- Command 0xA0 copyright string: (C)1994 AMI . */
- {
- .name = "[i430FX] Intel Advanced/ZP",
- .internal_name = "zappa",
- .type = MACHINE_TYPE_SOCKET5,
- .chipset = MACHINE_CHIPSET_INTEL_430FX,
- .init = machine_at_zappa_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_Cx6x86),
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 3380,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 2.0
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 8192,
- .max = 131072,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* The BIOS sends KBC command B3 which indicates an AMI (or VIA VT82C42N) KBC. */
- {
- .name = "[i430FX] NEC PowerMate V",
- .internal_name = "powermatev",
- .type = MACHINE_TYPE_SOCKET5,
- .chipset = MACHINE_CHIPSET_INTEL_430FX,
- .init = machine_at_powermatev_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 3380,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 2.0
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 8192,
- .max = 131072,
- .step = 8192
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has AMIKey Z(!) KBC firmware. */
- {
- .name = "[i430FX] TriGem Hawk",
- .internal_name = "hawk",
- .type = MACHINE_TYPE_SOCKET5,
- .chipset = MACHINE_CHIPSET_INTEL_430FX,
- .init = machine_at_hawk_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 3380,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 2.0
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 8192,
- .max = 131072,
- .step = 8192
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* KBC On-Chip the VT82C406MV. */
- {
- .name = "[i430FX] FIC PT-2000",
- .internal_name = "pt2000",
- .type = MACHINE_TYPE_SOCKET5,
- .chipset = MACHINE_CHIPSET_INTEL_430FX,
- .init = machine_at_pt2000_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 3380,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 2.0
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 8192,
- .max = 131072,
- .step = 8192
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- /* OPTi 596/597 */
- /* This uses an AMI KBC firmware in PS/2 mode (it sends command A5 with the
- PS/2 "Load Security" meaning), most likely MegaKey as it sends command AF
- (Set Extended Controller RAM) just like the later Intel AMI BIOS'es. */
- {
- .name = "[OPTi 597] TMC PAT54PV",
- .internal_name = "pat54pv",
- .type = MACHINE_TYPE_SOCKET5,
- .chipset = MACHINE_CHIPSET_OPTI_547_597,
- .init = machine_at_pat54pv_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK(CPU_K5, CPU_5K86),
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 3520,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 1.5
- },
- .bus_flags = MACHINE_VLB,
- .flags = MACHINE_APM,
- .ram = {
- .min = 2048,
- .max = 65536,
- .step = 2048
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- /* OPTi 596/597/822 */
- {
- .name = "[OPTi 597] Shuttle HOT-543",
- .internal_name = "hot543",
- .type = MACHINE_TYPE_SOCKET5,
- .chipset = MACHINE_CHIPSET_OPTI_547_597,
- .init = machine_at_hot543_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 3520,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 2.0
- },
- .bus_flags = MACHINE_PCIV,
- .flags = MACHINE_APM,
- .ram = {
- .min = 8192,
- .max = 131072,
- .step = 8192
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- {
- .name = "[OPTi 597] Northgate Computer Systems Elegance Pentium 90",
- .internal_name = "ncselp90",
- .type = MACHINE_TYPE_SOCKET5,
- .chipset = MACHINE_CHIPSET_OPTI_547_597,
- .init = machine_at_ncselp90_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 3520,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 2.0
- },
- .bus_flags = MACHINE_PS2_PCIV,
- .flags = MACHINE_APM | MACHINE_IDE_DUAL | MACHINE_SUPER_IO,
- .ram = {
- .min = 8192,
- .max = 131072,
- .step = 8192
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- /* SiS 85C50x */
- /* This has an AMIKey-2, which is an updated version of type 'H'. */
- {
- .name = "[SiS 501] ASUS PCI/I-P54SP4",
- .internal_name = "p54sp4",
- .type = MACHINE_TYPE_SOCKET5,
- .chipset = MACHINE_CHIPSET_SIS_501,
- .init = machine_at_p54sp4_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK(CPU_K5, CPU_5K86),
- .min_bus = 40000000,
- .max_bus = 66666667,
- .min_voltage = 3380,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 1.5
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 8192,
- .max = 131072,
- .step = 8192
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* This has an AMIKey-2, which is an updated version of type 'H'. */
- {
- .name = "[SiS 501] BCM SQ-588",
- .internal_name = "sq588",
- .type = MACHINE_TYPE_SOCKET5,
- .chipset = MACHINE_CHIPSET_SIS_501,
- .init = machine_at_sq588_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK(CPU_PENTIUMMMX),
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 3520,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 1.5
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 8192,
- .max = 131072,
- .step = 8192
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* This machine has a Winbond W83C842 KBC */
- {
- .name = "[SiS 501] Gemlight GMB-P54SPS",
- .internal_name = "p54sps",
- .type = MACHINE_TYPE_SOCKET5,
- .chipset = MACHINE_CHIPSET_SIS_501,
- .init = machine_at_p54sps_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- CPU_BLOCK(CPU_PENTIUMMMX),
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 3520,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 1.5
- },
- .bus_flags = MACHINE_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 8192,
- .max = 131072,
- .step = 8192
- },
- .nvrmask = 127,
- .kbc_device = &keyboard_at_ami_device,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* This has an AMIKey-2, which is an updated version of type 'H'. */
- {
- .name = "[SiS 5501] MSI MS-5109",
- .internal_name = "ms5109",
- .type = MACHINE_TYPE_SOCKET5,
- .chipset = MACHINE_CHIPSET_SIS_5501,
- .init = machine_at_ms5109_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- CPU_BLOCK(CPU_PENTIUMMMX),
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 3520,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 1.5
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 8192,
- .max = 131072,
- .step = 8192
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has AMIKey Z(!) KBC firmware. */
- {
- .name = "[SiS 5501] TriGem Torino",
- .internal_name = "torino",
- .type = MACHINE_TYPE_SOCKET5,
- .chipset = MACHINE_CHIPSET_SIS_5501,
- .init = machine_at_torino_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- CPU_BLOCK(CPU_PENTIUMMMX),
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 3520,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 1.5
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_VIDEO | MACHINE_APM,
- .ram = {
- .min = 8192,
- .max = 131072,
- .step = 8192
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &tgui9660_onboard_pci_device,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- /* UMC 889x */
- /* This has an AMIKey-2, which is an updated version of type 'H'. */
- {
- .name = "[UMC 889x] Shuttle HOT-539",
- .internal_name = "hot539",
- .type = MACHINE_TYPE_SOCKET5,
- .chipset = MACHINE_CHIPSET_UMC_UM8890BF,
- .init = machine_at_hot539_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK(CPU_K5, CPU_5K86),
- .min_bus = 40000000,
- .max_bus = 66666667,
- .min_voltage = 3380,
- .max_voltage = 3600,
- .min_multi = 1.5,
- .max_multi = 2.0
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 8192,
- .max = 262144,
- .step = 8192
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- /* Socket 7 (Single Voltage) machines */
- /* 430FX */
- /* This has an AMIKey-2, which is an updated version of type 'H'.
- This also seems to be revision 2.1 with the FDC37C665 SIO. */
- {
- .name = "[i430FX] ASUS P/I-P55TP4XE",
- .internal_name = "p54tp4xe",
- .type = MACHINE_TYPE_SOCKET7_3V,
- .chipset = MACHINE_CHIPSET_INTEL_430FX,
- .init = machine_at_p54tp4xe_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 3380,
- .max_voltage = 3600,
- .min_multi = 1.5,
- .max_multi = 3.0
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 8192,
- .max = 131072,
- .step = 8192
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* This has an AMIKey-2, which is an updated version of type 'H'. */
- {
- .name = "[i430FX] ASUS P/I-P55TP4XE (MR BIOS)",
- .internal_name = "p54tp4xe_mr",
- .type = MACHINE_TYPE_SOCKET7_3V,
- .chipset = MACHINE_CHIPSET_INTEL_430FX,
- .init = machine_at_p54tp4xe_mr_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 3380,
- .max_voltage = 3600,
- .min_multi = 1.5,
- .max_multi = 3.0
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 8192,
- .max = 131072,
- .step = 8192
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has AMIKey H KBC firmware. The KBC itself seems to differ between an AMIKEY-2 and a Winbond W83C42. */
- {
- .name = "[i430FX] DataExpert EXP8551",
- .internal_name = "exp8551",
- .type = MACHINE_TYPE_SOCKET7_3V,
- .chipset = MACHINE_CHIPSET_INTEL_430FX,
- .init = machine_at_exp8551_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 3380,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.0
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 8192,
- .max = 131072,
- .step = 8192
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* According to tests from real hardware: This has AMI MegaKey KBC firmware on the
- PC87306 Super I/O chip, command 0xA1 returns '5'.
- Command 0xA0 copyright string: (C)1994 AMI . */
- {
- .name = "[i430FX] Gateway 2000 Thor",
- .internal_name = "gw2katx",
- .type = MACHINE_TYPE_SOCKET7_3V,
- .chipset = MACHINE_CHIPSET_INTEL_430FX,
- .init = machine_at_gw2katx_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_Cx6x86),
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 3380,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.0
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_GAMEPORT,
- .ram = {
- .min = 8192,
- .max = 131072,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has a SM(S)C FDC37C932 Super I/O chip with on-chip KBC with AMI
- MegaKey (revision '5') KBC firmware. */
- {
- .name = "[i430FX] HP Vectra VL 5 Series 4",
- .internal_name = "vectra54",
- .type = MACHINE_TYPE_SOCKET7_3V,
- .chipset = MACHINE_CHIPSET_INTEL_430FX,
- .init = machine_at_vectra54_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 3380,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 2.0
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_VIDEO | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 131072,
- .step = 8192
- },
- .nvrmask = 511,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &s3_phoenix_trio64_onboard_pci_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* According to tests from real hardware: This has AMI MegaKey KBC firmware on the
- PC87306 Super I/O chip, command 0xA1 returns '5'.
- Command 0xA0 copyright string: (C)1994 AMI . */
- {
- .name = "[i430FX] Intel Advanced/ATX",
- .internal_name = "thor",
- .type = MACHINE_TYPE_SOCKET7_3V,
- .chipset = MACHINE_CHIPSET_INTEL_430FX,
- .init = machine_at_thor_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_Cx6x86),
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 3380,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.0
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_VIDEO | MACHINE_APM | MACHINE_GAMEPORT,
- .ram = {
- .min = 8192,
- .max = 131072,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &s3_phoenix_trio64vplus_onboard_pci_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* According to tests from real hardware: This has AMI MegaKey KBC firmware on the
- PC87306 Super I/O chip, command 0xA1 returns '5'.
- Command 0xA0 copyright string: (C)1994 AMI . */
- {
- .name = "[i430FX] Intel Advanced/ATX (MR BIOS)",
- .internal_name = "mrthor",
- .type = MACHINE_TYPE_SOCKET7_3V,
- .chipset = MACHINE_CHIPSET_INTEL_430FX,
- .init = machine_at_mrthor_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 3380,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.0
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_GAMEPORT,
- .ram = {
- .min = 8192,
- .max = 131072,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* According to tests from real hardware: This has AMI MegaKey KBC firmware on the
- PC87306 Super I/O chip, command 0xA1 returns '5'.
- Command 0xA0 copyright string: (C)1994 AMI . */
- {
- .name = "[i430FX] Intel Advanced/EV",
- .internal_name = "endeavor",
- .type = MACHINE_TYPE_SOCKET7_3V,
- .chipset = MACHINE_CHIPSET_INTEL_430FX,
- .init = machine_at_endeavor_init,
- .p1_handler = NULL,
- .gpio_handler = machine_at_endeavor_gpio_handler,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_Cx6x86),
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 3380,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.0
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_VIDEO | MACHINE_SOUND | MACHINE_APM,
- .ram = {
- .min = 8192,
- .max = 131072,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &s3_phoenix_trio64_onboard_pci_device,
- .snd_device = &sb_vibra16s_onboard_device,
- .net_device = NULL
- },
- /* This has an AMIKey-2, which is an updated version of type 'H'. */
- {
- .name = "[i430FX] MSI MS-5119",
- .internal_name = "ms5119",
- .type = MACHINE_TYPE_SOCKET7_3V,
- .chipset = MACHINE_CHIPSET_INTEL_430FX,
- .init = machine_at_ms5119_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 2500,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.0
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 8192,
- .max = 131072,
- .step = 8192
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* This most likely uses AMI MegaKey KBC firmware as well due to having the same
- Super I/O chip (that has the KBC firmware on it) as eg. the Advanced/EV. */
- {
- .name = "[i430FX] Packard Bell PB640",
- .internal_name = "pb640",
- .type = MACHINE_TYPE_SOCKET7_3V,
- .chipset = MACHINE_CHIPSET_INTEL_430FX,
- .init = machine_at_pb640_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_Cx6x86),
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 3380,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.0
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_VIDEO | MACHINE_APM,
- .ram = {
- .min = 8192,
- .max = 131072,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &gd5440_onboard_pci_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has a VIA VT82C42N KBC. */
- {
- .name = "[i430FX] PC Partner MB500N",
- .internal_name = "mb500n",
- .type = MACHINE_TYPE_SOCKET7_3V,
- .chipset = MACHINE_CHIPSET_INTEL_430FX,
- .init = machine_at_mb500n_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 3380,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.0
- },
- .bus_flags = MACHINE_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 8192,
- .max = 131072,
- .step = 8192
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has an AMI MegaKey 'H' KBC firmware (1992). */
- {
- .name = "[i430FX] QDI FMB",
- .internal_name = "fmb",
- .type = MACHINE_TYPE_SOCKET7_3V,
- .chipset = MACHINE_CHIPSET_INTEL_430FX,
- .init = machine_at_fmb_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK(CPU_WINCHIP, CPU_WINCHIP2, CPU_Cx6x86, CPU_Cx6x86L, CPU_Cx6x86MX),
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 3380,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.0
- },
- .bus_flags = MACHINE_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_GAMEPORT,
- .ram = {
- .min = 8192,
- .max = 131072,
- .step = 8192
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- /* 430HX */
- /* Has SST Flash. */
- /* Has a SM(S)C FDC37C935 Super I/O chip with on-chip KBC with Phoenix
- MultiKey/42 (version 1.38) KBC firmware. */
- {
- .name = "[i430HX] Acer V35N",
- .internal_name = "acerv35n",
- .type = MACHINE_TYPE_SOCKET7_3V,
- .chipset = MACHINE_CHIPSET_INTEL_430HX,
- .init = machine_at_acerv35n_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 3450,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.0
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 4096,
- .max = 524288,
- .step = 4096
- },
- .nvrmask = 511,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has AMIKey-2 or VIA VT82C42N KBC (depending on the revision) with AMIKEY 'F' KBC firmware. */
- {
- .name = "[i430HX] AOpen AP53",
- .internal_name = "ap53",
- .type = MACHINE_TYPE_SOCKET7_3V,
- .chipset = MACHINE_CHIPSET_INTEL_430HX,
- .init = machine_at_ap53_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 3450,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 2.5
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 4096,
- .max = 524288,
- .step = 4096
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* [TEST] Has a VIA 82C42N KBC, with AMIKey F KBC firmware. */
- {
- .name = "[i430HX] Biostar MB-8500TUC",
- .internal_name = "8500tuc",
- .type = MACHINE_TYPE_SOCKET7_3V,
- .chipset = MACHINE_CHIPSET_INTEL_430HX,
- .init = machine_at_8500tuc_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 3380,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.0
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_USB,
- .ram = {
- .min = 4096,
- .max = 524288,
- .step = 4096
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- {
- .name = "[i430HX] Siemens-Nixdorf D943",
- .internal_name = "d943",
- .type = MACHINE_TYPE_SOCKET7_3V,
- .chipset = MACHINE_CHIPSET_INTEL_430HX,
- .init = machine_at_d943_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 2800,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.0
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_AV | MACHINE_GAMEPORT | MACHINE_APM,
- .ram = {
- .min = 8192,
- .max = 131072,
- .step = 4096
- },
- .nvrmask = 511,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = &d943_device,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &gd5436_onboard_pci_device,
- .snd_device = &sb_vibra16c_onboard_device,
- .net_device = NULL
- },
-
- /* 430VX */
- /* Has a SM(S)C FDC37C932FR Super I/O chip with on-chip KBC with AMI
- MegaKey (revision '5') KBC firmware. */
- {
- .name = "[i430VX] Gateway 2000 Mailman",
- .internal_name = "gw2kma",
- .type = MACHINE_TYPE_SOCKET7_3V,
- .chipset = MACHINE_CHIPSET_INTEL_430VX,
- .init = machine_at_gw2kma_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_Cx6x86),
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 3380,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.0
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_SOUND | MACHINE_APM | MACHINE_GAMEPORT | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 131072,
- .step = 4096
- },
- .nvrmask = 511,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = &sb_vibra16c_onboard_device,
- .net_device = NULL
- },
-
- /* SiS 5501 */
- /* Has the Lance LT38C41 KBC. */
- {
- .name = "[SiS 5501] Chaintech 5SBM/5SBM2 (M103)",
- .internal_name = "5sbm2",
- .type = MACHINE_TYPE_SOCKET7_3V,
- .chipset = MACHINE_CHIPSET_SIS_5501,
- .init = machine_at_5sbm2_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 3380,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.0
- },
- .bus_flags = MACHINE_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 8192,
- .max = 131072,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = &c5sbm2_device,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- /* SiS 5511 */
- /* Has AMIKey H KBC firmware (AMIKey-2). */
- {
- .name = "[SiS 5511] AOpen AP5S",
- .internal_name = "ap5s",
- .type = MACHINE_TYPE_SOCKET7_3V,
- .chipset = MACHINE_CHIPSET_SIS_5511,
- .init = machine_at_ap5s_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 3380,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.0
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 8192,
- .max = 524288,
- .step = 8192
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = &ap5s_device,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has an SMC FDC37C669QF Super I/O. */
- {
- .name = "[SiS 5511] IBM PC 140 (type 6260)",
- .internal_name = "pc140_6260",
- .type = MACHINE_TYPE_SOCKET7_3V,
- .chipset = MACHINE_CHIPSET_SIS_5511,
- .init = machine_at_pc140_6260_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK(CPU_WINCHIP, CPU_WINCHIP2, CPU_Cx6x86, CPU_Cx6x86L, CPU_Cx6x86MX, CPU_PENTIUMMMX),
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 3380,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.0
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_VIDEO | MACHINE_APM,
- .ram = {
- .min = 8192,
- .max = 131072,
- .step = 8192
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &gd5436_onboard_pci_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has AMIKey H KBC firmware (AMIKey-2). */
- {
- .name = "[SiS 5511] MSI MS-5124",
- .internal_name = "ms5124",
- .type = MACHINE_TYPE_SOCKET7_3V,
- .chipset = MACHINE_CHIPSET_SIS_5511,
- .init = machine_at_ms5124_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 3380,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.0
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 8192,
- .max = 524288,
- .step = 8192
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has Megakey 'R' KBC */
- {
- .name = "[SiS 5511] AMI Atlas PCI-II",
- .internal_name = "amis727",
- .type = MACHINE_TYPE_SOCKET7_3V,
- .chipset = MACHINE_CHIPSET_SIS_5511,
- .init = machine_at_amis727_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 3380,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.0
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 8192,
- .max = 524288,
- .step = 8192
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- /* Socket 7 (Dual Voltage) machines */
- /* 430HX */
- /* Has a SM(S)C FDC37C935 Super I/O chip with on-chip KBC with Phoenix
- MultiKey/42 (version 1.38) KBC firmware. */
- {
- .name = "[i430HX] Acer AcerPower Ultima",
- .internal_name = "acerm3a",
- .type = MACHINE_TYPE_SOCKET7,
- .chipset = MACHINE_CHIPSET_INTEL_430HX,
- .init = machine_at_acerm3a_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK(CPU_Cx6x86MX),
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 2800,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.0
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_GAMEPORT | MACHINE_USB, /* Machine has internal SCSI */
- .ram = {
- .min = 4096,
- .max = 524288,
- .step = 4096
- },
- .nvrmask = 511,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has AMIKey H KBC firmware (AMIKey-2). */
- {
- .name = "[i430HX] ASUS P/I-P55T2P4",
- .internal_name = "p55t2p4",
- .type = MACHINE_TYPE_SOCKET7,
- .chipset = MACHINE_CHIPSET_INTEL_430HX,
- .init = machine_at_p55t2p4_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 50000000,
- .max_bus = 75000000,
- .min_voltage = 2500,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 4.0
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 4096,
- .max = 524288,
- .step = 4096
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* The base board has a Holtek HT6542B with the AMIKey-2 (updated 'H') KBC firmware. */
- {
- .name = "[i430HX] ASUS P/I-P65UP5 (C-P55T2D)",
- .internal_name = "p65up5_cp55t2d",
- .type = MACHINE_TYPE_SOCKET7,
- .chipset = MACHINE_CHIPSET_INTEL_430HX,
- .init = machine_at_p65up5_cp55t2d_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 2500,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.5
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB, /* Machine has AMB */
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_USB,
- .ram = {
- .min = 4096,
- .max = 524288,
- .step = 4096
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has a SM(S)C FDC37C935 Super I/O chip with on-chip KBC with Phoenix
- MultiKey/42 (version 1.38) KBC firmware. */
- {
- .name = "[i430HX] Micronics M7S-Hi",
- .internal_name = "m7shi",
- .type = MACHINE_TYPE_SOCKET7,
- .chipset = MACHINE_CHIPSET_INTEL_430HX,
- .init = machine_at_m7shi_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 60000000,
- .max_bus = 66666667,
- .min_voltage = 2800,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.0
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_GAMEPORT | MACHINE_USB,
- .ram = {
- .min = 4096,
- .max = 524288,
- .step = 4096
- },
- .nvrmask = 511,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* According to tests from real hardware: This has AMI MegaKey KBC firmware on the
- PC87306 Super I/O chip, command 0xA1 returns '5'.
- Command 0xA0 copyright string: (C)1994 AMI . */
- {
- .name = "[i430HX] Intel TC430HX (Tucson)",
- .internal_name = "tc430hx",
- .type = MACHINE_TYPE_SOCKET7,
- .chipset = MACHINE_CHIPSET_INTEL_430HX,
- .init = machine_at_tc430hx_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_K6, CPU_K6_2, CPU_K6_2C, CPU_K6_3, CPU_K6_2P,
- CPU_K6_3P, CPU_Cx6x86, CPU_Cx6x86MX, CPU_Cx6x86L),
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 2800,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.5
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_VIDEO | MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_GAMEPORT | MACHINE_USB, /* Has internal sound: Yamaha YMF701-S */
- .ram = {
- .min = 8192,
- .max = 524288,
- .step = 4096
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &s3_virge_375_pci_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* OEM version of Intel TC430HX, has AMI MegaKey KBC firmware on the PC87306 Super I/O chip. */
- {
- .name = "[i430HX] Toshiba Infinia 7201",
- .internal_name = "infinia7200",
- .type = MACHINE_TYPE_SOCKET7,
- .chipset = MACHINE_CHIPSET_INTEL_430HX,
- .init = machine_at_infinia7200_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_K6, CPU_K6_2, CPU_K6_2C, CPU_K6_3, CPU_K6_2P,
- CPU_K6_3P, CPU_Cx6x86, CPU_Cx6x86MX, CPU_Cx6x86L),
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 2800,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.5
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_VIDEO | MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_GAMEPORT | MACHINE_USB, /* Has internal sound: Yamaha YMF701-S */
- .ram = {
- .min = 8192,
- .max = 524288,
- .step = 4096
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &s3_virge_375_pci_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* OEM-only Intel CU430HX, has AMI MegaKey KBC firmware on the PC87306 Super I/O chip. */
- {
- .name = "[i430HX] Intel CU430HX (Cumberland)",
- .internal_name = "cu430hx",
- .type = MACHINE_TYPE_SOCKET7,
- .chipset = MACHINE_CHIPSET_INTEL_430HX,
- .init = machine_at_cu430hx_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_K6, CPU_K6_2, CPU_K6_2C, CPU_K6_3, CPU_K6_2P,
- CPU_K6_3P, CPU_Cx6x86, CPU_Cx6x86MX, CPU_Cx6x86L),
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 2800,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.5
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_SOUND | MACHINE_APM | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 524288,
- .step = 4096
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = &sb_vibra16c_onboard_device,
- .net_device = NULL
- },
- /* OEM-only Intel CU430HX, has AMI MegaKey KBC firmware on the PC87306 Super I/O chip. */
- {
- .name = "[i430HX] Toshiba Equium 5200D",
- .internal_name = "equium5200",
- .type = MACHINE_TYPE_SOCKET7,
- .chipset = MACHINE_CHIPSET_INTEL_430HX,
- .init = machine_at_equium5200_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_K6, CPU_K6_2, CPU_K6_2C, CPU_K6_3, CPU_K6_2P,
- CPU_K6_3P, CPU_Cx6x86, CPU_Cx6x86MX, CPU_Cx6x86L),
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 2800,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.5
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_SOUND | MACHINE_APM | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 524288,
- .step = 4096
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = &sb_vibra16c_onboard_device,
- .net_device = NULL
- },
- /* Unknown PS/2 KBC. */
- {
- .name = "[i430HX] Radisys EPC-2102",
- .internal_name = "epc2102",
- .type = MACHINE_TYPE_SOCKET7,
- .chipset = MACHINE_CHIPSET_INTEL_430HX,
- .init = machine_at_epc2102_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 2500,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.5
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 4096,
- .max = 524288,
- .step = 4096
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* According to tests from real hardware: This has AMI MegaKey KBC firmware on the
- PC87306 Super I/O chip, command 0xA1 returns '5'.
- Command 0xA0 copyright string: (C)1994 AMI .
- Yes, this is an Intel AMI BIOS with a fancy splash screen. */
- {
- .name = "[i430HX] Sony Vaio PCV-90",
- .internal_name = "pcv90",
- .type = MACHINE_TYPE_SOCKET7,
- .chipset = MACHINE_CHIPSET_INTEL_430HX,
- .init = machine_at_pcv90_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_K6, CPU_K6_2, CPU_K6_2C, CPU_K6_3, CPU_K6_2P,
- CPU_K6_3P, CPU_Cx6x86, CPU_Cx6x86MX, CPU_Cx6x86L),
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 2800,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.0
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 8192,
- .max = 524288,
- .step = 4096
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* [TEST] The board doesn't seem to have a KBC at all, which probably means it's an on-chip one on the PC87306 SIO.
- A list on a Danish site shows the BIOS as having a -0 string, indicating non-AMI KBC firmware. */
- {
- .name = "[i430HX] Supermicro P55T2S",
- .internal_name = "p55t2s",
- .type = MACHINE_TYPE_SOCKET7,
- .chipset = MACHINE_CHIPSET_INTEL_430HX,
- .init = machine_at_p55t2s_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 2800,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.0
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_USB,
- .ram = {
- .min = 4096,
- .max = 524288,
- .step = 4096
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- /* 430VX */
- /* This has the VIA VT82C42N or Holtek HT6542B KBC. */
- {
- .name = "[i430VX] AOpen AP5VM",
- .internal_name = "ap5vm",
- .type = MACHINE_TYPE_SOCKET7,
- .chipset = MACHINE_CHIPSET_INTEL_430VX,
- .init = machine_at_ap5vm_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 2600,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.0
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_SCSI | MACHINE_APM | MACHINE_USB,
- .ram = {
- .min = 4096,
- .max = 131072,
- .step = 4096
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has AMIKey H KBC firmware (AMIKey-2) on a BestKey KBC. */
- {
- .name = "[i430VX] ASUS P/I-P55TVP4",
- .internal_name = "p55tvp4",
- .type = MACHINE_TYPE_SOCKET7,
- .chipset = MACHINE_CHIPSET_INTEL_430VX,
- .init = machine_at_p55tvp4_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 2500,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.5
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB, /* Machine has AMB */
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_USB,
- .ram = {
- .min = 4096,
- .max = 131072,
- .step = 4096
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* The BIOS does not send a single non-standard KBC command, so it must have a standard IBM
- PS/2 KBC firmware or a clone thereof. */
- {
- .name = "[i430VX] Azza PT-5IV",
- .internal_name = "5ivg",
- .type = MACHINE_TYPE_SOCKET7,
- .chipset = MACHINE_CHIPSET_INTEL_430VX,
- .init = machine_at_5ivg_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 2500,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.5
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_USB,
- .ram = {
- .min = 4096,
- .max = 131072,
- .step = 4096
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* [TEST] Has AMIKey 'F' KBC firmware on a VIA VT82C42N KBC. */
- {
- .name = "[i430VX] Biostar MB-8500TVX-A",
- .internal_name = "8500tvxa",
- .type = MACHINE_TYPE_SOCKET7,
- .chipset = MACHINE_CHIPSET_INTEL_430VX,
- .init = machine_at_8500tvxa_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 2600,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.0
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_USB,
- .ram = {
- .min = 4096,
- .max = 131072,
- .step = 4096
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has a SM(S)C FDC37C932QF Super I/O chip with on-chip KBC with AMI
- MegaKey (revision '5') KBC firmware. */
- {
- .name = "[i430VX] Compaq Presario 224x",
- .internal_name = "presario2240",
- .type = MACHINE_TYPE_SOCKET7,
- .chipset = MACHINE_CHIPSET_INTEL_430VX,
- .init = machine_at_presario2240_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 66666667,
- .min_voltage = 2800,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.5
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_VIDEO | MACHINE_APM | MACHINE_ACPI,
- .ram = {
- .min = 16384,
- .max = 49152,
- .step = 4096
- },
- .nvrmask = 511,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &s3_trio64v2_dx_onboard_pci_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has a SM(S)C FDC37C931APM Super I/O chip with on-chip KBC with Compaq
- KBC firmware. */
- {
- .name = "[i430VX] Compaq Presario 45xx",
- .internal_name = "presario4500",
- .type = MACHINE_TYPE_SOCKET7,
- .chipset = MACHINE_CHIPSET_INTEL_430VX,
- .init = machine_at_presario4500_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 66666667,
- .min_voltage = 2800,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.5
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_VIDEO | MACHINE_APM | MACHINE_ACPI,
- .ram = {
- .min = 16384,
- .max = 49152,
- .step = 4096
- },
- .nvrmask = 511,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &s3_trio64v2_dx_onboard_pci_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has a SM(S)C FDC37C932FR Super I/O chip with on-chip KBC with AMI
- MegaKey (revision '5') KBC firmware. */
- {
- .name = "[i430VX] Dell Dimension XPS Pxxxa/Mxxxa",
- .internal_name = "dellhannibalp",
- .type = MACHINE_TYPE_SOCKET7,
- .chipset = MACHINE_CHIPSET_INTEL_430VX,
- .init = machine_at_dellhannibalp_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_K6, CPU_K6_2, CPU_K6_2C, CPU_K6_3, CPU_K6_2P,
- CPU_K6_3P, CPU_Cx6x86, CPU_Cx6x86MX, CPU_Cx6x86L),
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 2500,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.5
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 131072,
- .step = 4096
- },
- .nvrmask = 511,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has AMIKey H KBC firmware (AMIKey-2). */
- {
- .name = "[i430VX] ECS P5VX-B",
- .internal_name = "p5vxb",
- .type = MACHINE_TYPE_SOCKET7,
- .chipset = MACHINE_CHIPSET_INTEL_430VX,
- .init = machine_at_p5vxb_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 2500,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.0
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_USB,
- .ram = {
- .min = 4096,
- .max = 131072,
- .step = 4096
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has a SM(S)C FDC37C932FR Super I/O chip with on-chip KBC with AMI
- MegaKey (revision '5') KBC firmware. */
- {
- .name = "[i430VX] Epox P55-VA",
- .internal_name = "p55va",
- .type = MACHINE_TYPE_SOCKET7,
- .chipset = MACHINE_CHIPSET_INTEL_430VX,
- .init = machine_at_p55va_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 50000000,
- .max_bus = 75000000,
- .min_voltage = 2500,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.0
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_USB,
- .ram = {
- .min = 4096,
- .max = 131072,
- .step = 4096
- },
- .nvrmask = 511,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has a SM(S)C FDC37C932FR Super I/O chip with on-chip KBC with AMI
- MegaKey (revision '5') KBC firmware. */
- {
- .name = "[i430VX] Gateway 2000 Hitman",
- .internal_name = "gw2kte",
- .type = MACHINE_TYPE_SOCKET7,
- .chipset = MACHINE_CHIPSET_INTEL_430VX,
- .init = machine_at_gw2kte_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_K6, CPU_K6_2, CPU_K6_2C, CPU_K6_3, CPU_K6_2P,
- CPU_K6_3P, CPU_Cx6x86, CPU_Cx6x86MX, CPU_Cx6x86L),
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 2200,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.0
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_SOUND | MACHINE_APM | MACHINE_GAMEPORT | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 131072,
- .step = 4096
- },
- .nvrmask = 511,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = &sb_vibra16c_onboard_device,
- .net_device = NULL
- },
- /* Has a SM(S)C FDC37C935 Super I/O chip with on-chip KBC with Phoenix
- MultiKey/42 (version 1.38) KBC firmware. */
- {
- .name = "[i430VX] HP Brio 80xx",
- .internal_name = "brio80xx",
- .type = MACHINE_TYPE_SOCKET7,
- .chipset = MACHINE_CHIPSET_INTEL_430VX,
- .init = machine_at_brio80xx_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 66666667,
- .min_voltage = 2200,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.5
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 8192,
- .max = 131072,
- .step = 4096
- },
- .nvrmask = 511,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* According to tests from real hardware: This has AMI MegaKey KBC firmware on the
- PC87306 Super I/O chip, command 0xA1 returns '5'.
- Command 0xA0 copyright string: (C)1994 AMI . */
- {
- .name = "[i430VX] Packard Bell Multimedia C110",
- .internal_name = "pb680",
- .type = MACHINE_TYPE_SOCKET7,
- .chipset = MACHINE_CHIPSET_INTEL_430VX,
- .init = machine_at_pb680_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_K6, CPU_K6_2, CPU_K6_2C, CPU_K6_3, CPU_K6_2P,
- CPU_K6_3P, CPU_Cx6x86, CPU_Cx6x86MX, CPU_Cx6x86L),
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 2800,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.0
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_VIDEO | MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 131072,
- .step = 4096
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &s3_phoenix_trio64vplus_onboard_pci_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has a SM(S)C FDC37C935 Super I/O chip with on-chip KBC with Phoenix
- MultiKey/42 (version 1.38) KBC firmware. */
- {
- .name = "[i430VX] Packard Bell Multimedia M415",
- .internal_name = "pb810",
- .type = MACHINE_TYPE_SOCKET7,
- .chipset = MACHINE_CHIPSET_INTEL_430VX,
- .init = machine_at_pb810_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 2500,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 4.0
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_SOUND | MACHINE_APM,
- .ram = {
- .min = 4096,
- .max = 131072,
- .step = 4096
- },
- .nvrmask = 511,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* This has the AMIKey 'H' firmware, possibly AMIKey-2. Photos show it with a BestKey, so it
- likely clones the behavior of AMIKey 'H'. */
- {
- .name = "[i430VX] PC Partner MB520N",
- .internal_name = "mb520n",
- .type = MACHINE_TYPE_SOCKET7,
- .chipset = MACHINE_CHIPSET_INTEL_430VX,
- .init = machine_at_mb520n_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 2600,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.5
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_USB,
- .ram = {
- .min = 4096,
- .max = 131072,
- .step = 4096
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* This has a Holtek KBC and the BIOS does not send a single non-standard KBC command, so it
- must be an ASIC that clones the standard IBM PS/2 KBC. */
- {
- .name = "[i430VX] Shuttle HOT-557",
- .internal_name = "430vx",
- .type = MACHINE_TYPE_SOCKET7,
- .chipset = MACHINE_CHIPSET_INTEL_430VX,
- .init = machine_at_i430vx_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 2500,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.0
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_GAMEPORT | MACHINE_APM | MACHINE_USB,
- .ram = {
- .min = 4096,
- .max = 131072,
- .step = 4096
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- /* 430TX */
- /* The BIOS sends KBC command B8, CA, and CB, so it has an AMI KBC firmware. */
- {
- .name = "[i430TX] ADLink NuPRO-591/592",
- .internal_name = "nupro592",
- .type = MACHINE_TYPE_SOCKET7,
- .chipset = MACHINE_CHIPSET_INTEL_430TX,
- .init = machine_at_nupro592_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 66666667,
- .min_voltage = 1900,
- .max_voltage = 2800,
- .min_multi = 1.5,
- .max_multi = 5.5
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_VIDEO,
- .ram = {
- .min = 8192,
- .max = 262144,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &chips_69000_onboard_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* This has the AMIKey KBC firmware, which is an updated 'F' type (YM430TX is based on the TX97). */
- {
- .name = "[i430TX] ASUS TX97",
- .internal_name = "tx97",
- .type = MACHINE_TYPE_SOCKET7,
- .chipset = MACHINE_CHIPSET_INTEL_430TX,
- .init = machine_at_tx97_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 50000000,
- .max_bus = 75000000,
- .min_voltage = 2500,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.5
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 262144,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /*
- According to Dell specifications, it can have either National Semiconductor
- PC87307 or PC87309 Super I/O. All known instances have the former, although
- other similar Dells of the era have pinouts for accompanying either so this
- likely also does.
-
- The KBC is either an AMI '5' MegaKey, Phoenix MultiKey/42 1.37, or Phoenix
- MultiKey/42i 4.16.
- */
- {
- .name = "[i430TX] Dell OptiPlex GN+",
- .internal_name = "optiplexgn",
- .type = MACHINE_TYPE_SOCKET7,
- .chipset = MACHINE_CHIPSET_INTEL_430TX,
- .init = machine_at_optiplexgn_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 2500,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.5
- },
- .bus_flags = MACHINE_PS2_PCI,
- /* Video: S3 86C785 (Trio64V2/GX), ethernet: 3C905. */
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_VIDEO | MACHINE_SOUND,
- .ram = {
- .min = 8192,
- .max = 262144,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- /* Stop-gap measure until the Trio64V2/GX is emulated, as both use the same VBIOS. */
- .vid_device = &s3_trio64v2_dx_onboard_pci_device,
- .snd_device = &sb_vibra16xv_onboard_device,
- .net_device = NULL
- },
- /* [TEST] Has AMI Megakey '5' KBC firmware on the SM(S)C FDC37C67x Super I/O chip. */
- {
- .name = "[i430TX] Gateway E-1000",
- .internal_name = "tomahawk",
- .type = MACHINE_TYPE_SOCKET7,
- .chipset = MACHINE_CHIPSET_INTEL_430TX,
- .init = machine_at_tomahawk_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 60000000,
- .max_bus = 66666667,
- .min_voltage = 2100,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 5.5
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_VIDEO | MACHINE_SOUND | MACHINE_NIC | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 262144,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &s3_trio64v2_dx_onboard_pci_device,
- .snd_device = &cs4236b_device,
- .net_device = &pcnet_am79c973_onboard_device
- },
- /* This has the AMIKey KBC firmware, which is an updated 'F' type. */
- {
- .name = "[i430TX] Intel YM430TX (Yamamoto)",
- .internal_name = "ym430tx",
- .type = MACHINE_TYPE_SOCKET7,
- .chipset = MACHINE_CHIPSET_INTEL_430TX,
- .init = machine_at_ym430tx_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_K6, CPU_K6_2, CPU_K6_2C, CPU_K6_3, CPU_K6_2P,
- CPU_K6_3P, CPU_Cx6x86, CPU_Cx6x86MX, CPU_Cx6x86L),
- .min_bus = 60000000,
- .max_bus = 66666667,
- .min_voltage = 2800,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.5
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
- .ram = {
- .min = 4096,
- .max = 262144,
- .step = 4096
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /*
- PhoenixBIOS 4.0 Rel 6.0 for 430TX, has onboard Yamaha YMF701 which
- is not emulated yet.
-
- Has a SM(S)C FDC37C935 Super I/O chip with on-chip KBC with Phoenix
- MultiKey/42 (version 1.38) KBC firmware.
- */
- {
- .name = "[i430TX] Micronics Thunderbolt",
- .internal_name = "thunderbolt",
- .type = MACHINE_TYPE_SOCKET7,
- .chipset = MACHINE_CHIPSET_INTEL_430TX,
- .init = machine_at_thunderbolt_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK(CPU_WINCHIP, CPU_WINCHIP2),
- .min_bus = 60000000,
- .max_bus = 66666667,
- .min_voltage = 2500,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.5
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- /* Machine has internal sound: Yamaha YMF701-S */
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_GAMEPORT | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 262144,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has a SM(S)C FDC37C67x Super I/O chip with on-chip KBC with Phoenix or
- AMIKey-2 KBC firmware. */
- {
- .name = "[i430TX] NEC Mate NX MA23C",
- .internal_name = "ma23c",
- .type = MACHINE_TYPE_SOCKET7,
- .chipset = MACHINE_CHIPSET_INTEL_430TX,
- .init = machine_at_ma23c_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 60000000,
- .max_bus = 66666667,
- .min_voltage = 2700,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.5
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 262144,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* This has the Phoenix MultiKey KBC firmware. */
- {
- .name = "[i430TX] Packard Bell PB790",
- .internal_name = "an430tx",
- .type = MACHINE_TYPE_SOCKET7,
- .chipset = MACHINE_CHIPSET_INTEL_430TX,
- .init = machine_at_an430tx_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_K6, CPU_K6_2, CPU_K6_2C, CPU_K6_3, CPU_K6_2P,
- CPU_K6_3P, CPU_Cx6x86, CPU_Cx6x86MX, CPU_Cx6x86L),
- .min_bus = 60000000,
- .max_bus = 66666667,
- .min_voltage = 2800,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.5
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI,
- .ram = {
- .min = 8192,
- .max = 262144,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* The BIOS sends KBC command BB and expects it to output a byte, which is AMI KBC behavior.
- A picture shows a VIA VT82C42N KBC though, so it could be a case of that KBC with AMI firmware. */
- {
- .name = "[i430TX] PC Partner MB540N",
- .internal_name = "mb540n",
- .type = MACHINE_TYPE_SOCKET7,
- .chipset = MACHINE_CHIPSET_INTEL_430TX,
- .init = machine_at_mb540n_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 60000000,
- .max_bus = 66666667,
- .min_voltage = 2700,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.5
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
- .ram = {
- .min = 4096,
- .max = 262144,
- .step = 4096
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Award BIOS, PS2, EDO, SDRAM, 4 PCI, 4 ISA, VIA VT82C42N KBC */
- {
- .name = "[i430TX] Soltek SL-56A5",
- .internal_name = "56a5",
- .type = MACHINE_TYPE_SOCKET7,
- .chipset = MACHINE_CHIPSET_INTEL_430TX,
- .init = machine_at_56a5_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 60000000,
- .max_bus = 66666667,
- .min_voltage = 2800,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 5.5
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
- .ram = {
- .min = 4096,
- .max = 262144,
- .step = 4096
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* [TEST] Has AMIKey 'H' KBC firmware. */
- {
- .name = "[i430TX] Supermicro P5MMS98",
- .internal_name = "p5mms98",
- .type = MACHINE_TYPE_SOCKET7,
- .chipset = MACHINE_CHIPSET_INTEL_430TX,
- .init = machine_at_p5mms98_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 50000000,
- .max_bus = 75000000,
- .min_voltage = 2100,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.5
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
- .ram = {
- .min = 4096,
- .max = 262144,
- .step = 4096
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* [TEST] Has AMIKey 'H' KBC firmware. */
- {
- .name = "[i430TX] TriGem RD535 (Richmond)",
- .internal_name = "richmond",
- .type = MACHINE_TYPE_SOCKET7,
- .chipset = MACHINE_CHIPSET_INTEL_430TX,
- .init = machine_at_richmond_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 60000000,
- .max_bus = 66666667,
- .min_voltage = 2100,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.5
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 262144,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- /* Apollo VPX */
- /* Has the VIA VT82C586B southbridge with on-chip KBC identical to the VIA
- VT82C42N. */
- {
- .name = "[VIA VPX] FIC VA-502",
- .internal_name = "ficva502",
- .type = MACHINE_TYPE_SOCKET7,
- .chipset = MACHINE_CHIPSET_VIA_APOLLO_VPX,
- .init = machine_at_ficva502_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 50000000,
- .max_bus = 75000000,
- .min_voltage = 2800,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.0
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 524288,
- .step = 8192
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- /* Apollo VP3 */
- /* Has the VIA VT82C586B southbridge with on-chip KBC identical to the VIA
- VT82C42N. */
- {
- .name = "[VIA VP3] FIC PA-2012",
- .internal_name = "ficpa2012",
- .type = MACHINE_TYPE_SOCKET7,
- .chipset = MACHINE_CHIPSET_VIA_APOLLO_VP3,
- .init = machine_at_ficpa2012_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 55000000,
- .max_bus = 75000000,
- .min_voltage = 2100,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 5.5
- },
- .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 1048576,
- .step = 8192
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has the VIA VT82C586B southbridge with on-chip KBC identical to the VIA
- VT82C42N. */
- {
- .name = "[VIA VP3] PC Partner VIA809DS",
- .internal_name = "via809ds",
- .type = MACHINE_TYPE_SOCKET7,
- .chipset = MACHINE_CHIPSET_VIA_APOLLO_VP3,
- .init = machine_at_via809ds_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 50000000,
- .max_bus = 75000000,
- .min_voltage = 2100,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 5.5
- },
- .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 1048576,
- .step = 8192
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- /* SiS 5571 */
- /* Has the SiS 5571 chipset with on-chip KBC. */
- {
- .name = "[SiS 5571] Daewoo CD520",
- .internal_name = "cb52xsi",
- .type = MACHINE_TYPE_SOCKET7,
- .chipset = MACHINE_CHIPSET_SIS_5571,
- .init = machine_at_cb52xsi_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 50000000,
- .max_bus = 75000000,
- .min_voltage = 2800,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.0
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 262144,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has the SiS 5571 chipset with on-chip KBC. */
- {
- .name = "[SiS 5571] MSI MS-5146",
- .internal_name = "ms5146",
- .type = MACHINE_TYPE_SOCKET7,
- .chipset = MACHINE_CHIPSET_SIS_5571,
- .init = machine_at_ms5146_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 50000000,
- .max_bus = 75000000,
- .min_voltage = 2800,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.0
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_GAMEPORT | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 262144,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has the SiS 5571 chipset with on-chip KBC. */
- {
- .name = "[SiS 5571] Rise R534F",
- .internal_name = "r534f",
- .type = MACHINE_TYPE_SOCKET7,
- .chipset = MACHINE_CHIPSET_SIS_5571,
- .init = machine_at_r534f_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 55000000,
- .max_bus = 83333333,
- .min_voltage = 2500,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.0
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 393216,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- /* SiS 5581 */
- /* Has the SiS 5581 chipset with on-chip KBC. */
- {
- .name = "[SiS 5581] ASUS SP97-XV",
- .internal_name = "sp97xv",
- .type = MACHINE_TYPE_SOCKET7,
- .chipset = MACHINE_CHIPSET_SIS_5581,
- .init = machine_at_sp97xv_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 50000000,
- .max_bus = 75000000,
- .min_voltage = 2500,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.0
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 1572864,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has the SiS 5581 chipset with on-chip KBC. */
- {
- .name = "[SiS 5581] BCM SQ-578",
- .internal_name = "sq578",
- .type = MACHINE_TYPE_SOCKET7,
- .chipset = MACHINE_CHIPSET_SIS_5581,
- .init = machine_at_sq578_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 50000000,
- .max_bus = 75000000,
- .min_voltage = 2500,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.0
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 1572864,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- /* SiS 5591 */
- /* Has the SiS 5591 chipset with on-chip KBC. */
- {
- .name = "[SiS 5591] MSI MS-5172",
- .internal_name = "ms5172",
- .type = MACHINE_TYPE_SOCKET7,
- .chipset = MACHINE_CHIPSET_SIS_5591,
- .init = machine_at_ms5172_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 50000000,
- .max_bus = 75000000,
- .min_voltage = 2500,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.0
- },
- .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 786432,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- /* ALi ALADDiN IV+ */
- /* Has the ALi M1543 southbridge with on-chip KBC. */
- {
- .name = "[ALi ALADDiN IV+] Biostar M5ATA",
- .internal_name = "m5ata",
- .type = MACHINE_TYPE_SOCKET7,
- .chipset = MACHINE_CHIPSET_ALI_ALADDIN_IV_PLUS,
- .init = machine_at_m5ata_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 60000000,
- .max_bus = 66666667,
- .min_voltage = 2100,
- .max_voltage = 3500,
- .min_multi = 1.5,
- .max_multi = 4.5
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 262144,
- .step = 8192
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has the ALi M1543 southbridge with on-chip KBC. */
- {
- .name = "[ALi ALADDiN IV+] MSI MS-5164",
- .internal_name = "ms5164",
- .type = MACHINE_TYPE_SOCKET7,
- .chipset = MACHINE_CHIPSET_ALI_ALADDIN_IV_PLUS,
- .init = machine_at_ms5164_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 60000000,
- .max_bus = 83333333,
- .min_voltage = 2100,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.0
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 1048576,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has the ALi M1543 southbridge with on-chip KBC. */
- {
- .name = "[ALi ALADDiN IV+] PC Chips M560",
- .internal_name = "m560",
- .type = MACHINE_TYPE_SOCKET7,
- .chipset = MACHINE_CHIPSET_ALI_ALADDIN_IV_PLUS,
- .init = machine_at_m560_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 50000000,
- .max_bus = 83333333,
- .min_voltage = 2500,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 3.0
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 786432,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- /* Super Socket 7 machines */
- /* ALi ALADDiN V */
- /* Has the ALi M1543C southbridge with on-chip KBC. */
- {
- .name = "[ALi ALADDiN V] ASUS P5A",
- .internal_name = "p5a",
- .type = MACHINE_TYPE_SOCKETS7,
- .chipset = MACHINE_CHIPSET_ALI_ALADDIN_V,
- .init = machine_at_p5a_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 60000000,
- .max_bus = 120000000,
- .min_voltage = 2000,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 5.5
- },
- .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_GAMEPORT | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 1572864,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Is the exact same as the Matsonic MS6260S. Has the ALi M1543C southbridge
- with on-chip KBC. */
- {
- .name = "[ALi ALADDiN V] PC Chips M579",
- .internal_name = "m579",
- .type = MACHINE_TYPE_SOCKETS7,
- .chipset = MACHINE_CHIPSET_ALI_ALADDIN_V,
- .init = machine_at_m579_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 100000000,
- .min_voltage = 2000,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 5.5
- },
- .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 1572864,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* M1534c kbc */
- {
- .name = "[ALi ALADDiN V] Gateway Lucas",
- .internal_name = "gwlucas",
- .type = MACHINE_TYPE_SOCKETS7,
- .chipset = MACHINE_CHIPSET_ALI_ALADDIN_V,
- .init = machine_at_gwlucas_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 100000000,
- .min_voltage = 2000,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 5.5
- },
- .bus_flags = MACHINE_PS2_PCIONLY | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_SOUND | MACHINE_APM | MACHINE_ACPI | MACHINE_GAMEPORT | MACHINE_USB, /* Has internal video: ATI 3D Rage Pro Turbo AGP and sound: Ensoniq ES1373 */
- .ram = {
- .min = 8192,
- .max = 262144,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = &es1373_onboard_device,
- .net_device = NULL
- },
- /* Has the ALi M1543C southbridge with on-chip KBC. */
- {
- .name = "[ALi ALADDiN V] Gigabyte GA-5AA",
- .internal_name = "5aa",
- .type = MACHINE_TYPE_SOCKETS7,
- .chipset = MACHINE_CHIPSET_ALI_ALADDIN_V,
- .init = machine_at_5aa_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 140000000,
- .min_voltage = 1300,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 5.5
- },
- .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 1572864,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has the ALi M1543C southbridge with on-chip KBC. */
- {
- .name = "[ALi ALADDiN V] Gigabyte GA-5AX",
- .internal_name = "5ax",
- .type = MACHINE_TYPE_SOCKETS7,
- .chipset = MACHINE_CHIPSET_ALI_ALADDIN_V,
- .init = machine_at_5ax_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 140000000,
- .min_voltage = 1300,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 5.5
- },
- .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 1572864,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- /* Apollo MVP3 */
- /* Has the VIA VT82C586B southbridge with on-chip KBC identical to the VIA
- VT82C42N. */
- {
- .name = "[VIA MVP3] AOpen AX59 Pro",
- .internal_name = "ax59pro",
- .type = MACHINE_TYPE_SOCKETS7,
- .chipset = MACHINE_CHIPSET_VIA_APOLLO_MVP3,
- .init = machine_at_ax59pro_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 124242424,
- .min_voltage = 1300,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 5.5
- },
- .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 1048576,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has the VIA VT82C586B southbridge with on-chip KBC identical to the VIA
- VT82C42N. */
- {
- .name = "[VIA MVP3] FIC VA-503+",
- .internal_name = "ficva503p",
- .type = MACHINE_TYPE_SOCKETS7,
- .chipset = MACHINE_CHIPSET_VIA_APOLLO_MVP3,
- .init = machine_at_mvp3_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 124242424,
- .min_voltage = 2000,
- .max_voltage = 3200,
- .min_multi = 1.5,
- .max_multi = 5.5
- },
- .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 1048576,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has the VIA VT82C686A southbridge with on-chip KBC identical to the VIA
- VT82C42N. */
- {
- .name = "[VIA MVP3] FIC VA-503A",
- .internal_name = "ficva503a",
- .type = MACHINE_TYPE_SOCKETS7,
- .chipset = MACHINE_CHIPSET_VIA_APOLLO_MVP3,
- .init = machine_at_ficva503a_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 124242424,
- .min_voltage = 1800,
- .max_voltage = 3100,
- .min_multi = 1.5,
- .max_multi = 5.5
- },
- .bus_flags = MACHINE_PS2_A97 | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_SOUND | MACHINE_APM | MACHINE_ACPI | MACHINE_GAMEPORT | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 786432,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has the VIA VT82C686A southbridge with on-chip KBC identical to the VIA
- VT82C42N. */
- {
- .name = "[VIA MVP3] Soyo 5EMA PRO",
- .internal_name = "5emapro",
- .type = MACHINE_TYPE_SOCKETS7,
- .chipset = MACHINE_CHIPSET_VIA_APOLLO_MVP3,
- .init = machine_at_5emapro_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 124242424,
- .min_voltage = 2000,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 5.5
- },
- .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 786432,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has the VIA VT82C596A southbridge with on-chip KBC identical to the VIA
- VT82C42N. */
- {
- .name = "[VIA MVP3] eMachines eTower 3xxc",
- .internal_name = "delhi3",
- .type = MACHINE_TYPE_SOCKETS7,
- .chipset = MACHINE_CHIPSET_VIA_APOLLO_MVP3,
- .init = machine_at_delhi3_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 124242424,
- .min_voltage = 2000,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 5.5
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB, /* Has internal video: ATI 3D Rage IIc AGP (Rage 2) */
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_SOUND | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 524288,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = &cs4235_onboard_device,
- .net_device = NULL
- },
-
- /* SiS 5591 */
- /* Has the SiS 5591 chipset with on-chip KBC. */
- {
- .name = "[SiS 5591] Gigabyte GA-5SG100",
- .internal_name = "5sg100",
- .type = MACHINE_TYPE_SOCKETS7,
- .chipset = MACHINE_CHIPSET_SIS_5591,
- .init = machine_at_5sg100_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET5_7,
- .block = CPU_BLOCK_NONE,
- .min_bus = 60000000,
- .max_bus = 100000000,
- .min_voltage = 2000,
- .max_voltage = 3520,
- .min_multi = 1.5,
- .max_multi = 5.5
- },
- .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 786432,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- /* Socket 8 machines */
- /* 450KX */
- /* This has an AMIKey-2, which is an updated version of type 'H'. */
- {
- .name = "[i450KX] AOpen AP61",
- .internal_name = "ap61",
- .type = MACHINE_TYPE_SOCKET8,
- .chipset = MACHINE_CHIPSET_INTEL_450KX,
- .init = machine_at_ap61_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET8,
- .block = CPU_BLOCK_NONE,
- .min_bus = 60000000,
- .max_bus = 66666667,
- .min_voltage = 2100,
- .max_voltage = 3500,
- .min_multi = 1.5,
- .max_multi = 8.0
- },
- .bus_flags = MACHINE_PS2_PCI,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 8192,
- .max = 524288,
- .step = 8192
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* This has an AMIKey-2, which is an updated version of type 'H'. */
- {
- .name = "[i450KX] ASUS P/I-P6RP4",
- .internal_name = "p6rp4",
- .type = MACHINE_TYPE_SOCKET8,
- .chipset = MACHINE_CHIPSET_INTEL_450KX,
- .init = machine_at_p6rp4_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET8,
- .block = CPU_BLOCK_NONE,
- .min_bus = 60000000,
- .max_bus = 66666667,
- .min_voltage = 2100,
- .max_voltage = 3500,
- .min_multi = 1.5,
- .max_multi = 8.0
- },
- .bus_flags = MACHINE_PS2_PCI, /* Machine has AMB */
- .flags = MACHINE_IDE_DUAL | MACHINE_APM,
- .ram = {
- .min = 8192,
- .max = 524288,
- .step = 8192
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- /* 440FX */
- /* Has a SM(S)C FDC37C935 Super I/O chip with on-chip KBC with Phoenix
- MultiKey/42 (version 1.38) KBC firmware. */
- {
- .name = "[i440FX] Acer V60N",
- .internal_name = "acerv60n",
- .type = MACHINE_TYPE_SOCKET8,
- .chipset = MACHINE_CHIPSET_INTEL_440FX,
- .init = machine_at_acerv60n_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET8,
- .block = CPU_BLOCK_NONE,
- .min_bus = 60000000,
- .max_bus = 66666667,
- .min_voltage = 2500,
- .max_voltage = 3500,
- .min_multi = 1.5,
- .max_multi = 8.0
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 393216,
- .step = 8192
- },
- .nvrmask = 511,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* The base board has a Holtek HT6542B with AMIKey-2 (updated 'H') KBC firmware. */
- {
- .name = "[i440FX] ASUS P/I-P65UP5 (C-P6ND)",
- .internal_name = "p65up5_cp6nd",
- .type = MACHINE_TYPE_SOCKET8,
- .chipset = MACHINE_CHIPSET_INTEL_440FX,
- .init = machine_at_p65up5_cp6nd_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET8,
- .block = CPU_BLOCK_NONE,
- .min_bus = 60000000,
- .max_bus = 66666667,
- .min_voltage = 2100,
- .max_voltage = 3500,
- .min_multi = 1.5,
- .max_multi = 8.0
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB, /* Machine has AMB */
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 1048576,
- .step = 8192
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has a VIA VT82C42N with likely AMIKey 'F' KBC firmware. */
- {
- .name = "[i440FX] Biostar MB-8600TTC",
- .internal_name = "8600ttc",
- .type = MACHINE_TYPE_SOCKET8,
- .chipset = MACHINE_CHIPSET_INTEL_440FX,
- .init = machine_at_8600ttc_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET8,
- .block = CPU_BLOCK_NONE,
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 2900,
- .max_voltage = 3300,
- .min_multi = 2.0,
- .max_multi = 5.5
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 524288,
- .step = 8192
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* It's an Intel VS440FX with a Dell OEM BIOS */
- {
- .name = "[i440FX] Dell Dimension XPS Pro___n",
- .internal_name = "dellvenus",
- .type = MACHINE_TYPE_SOCKET8,
- .chipset = MACHINE_CHIPSET_INTEL_440FX,
- .init = machine_at_dellvenus_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET8,
- .block = CPU_BLOCK_NONE,
- .min_bus = 60000000,
- .max_bus = 66666667,
- .min_voltage = 2100,
- .max_voltage = 3500,
- .min_multi = 2.0,
- .max_multi = 3.5
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_SOUND | MACHINE_APM | MACHINE_GAMEPORT | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 524288,
- .step = 8192
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = &cs4236_onboard_device,
- .net_device = NULL
- },
- /* It's an Intel VS440FX with a Gateway 2000 OEM BIOS */
- {
- .name = "[i440FX] Gateway 2000 Venus",
- .internal_name = "gw2kvenus",
- .type = MACHINE_TYPE_SOCKET8,
- .chipset = MACHINE_CHIPSET_INTEL_440FX,
- .init = machine_at_gw2kvenus_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET8,
- .block = CPU_BLOCK_NONE,
- .min_bus = 60000000,
- .max_bus = 66666667,
- .min_voltage = 2100,
- .max_voltage = 3500,
- .min_multi = 2.0,
- .max_multi = 3.5
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_SOUND | MACHINE_APM | MACHINE_GAMEPORT | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 524288,
- .step = 8192
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = &cs4236_onboard_device,
- .net_device = NULL
- },
- /* Has the AMIKey-2 (updated 'H') KBC firmware. */
- {
- .name = "[i440FX] Gigabyte GA-686NX",
- .internal_name = "686nx",
- .type = MACHINE_TYPE_SOCKET8,
- .chipset = MACHINE_CHIPSET_INTEL_440FX,
- .init = machine_at_686nx_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET8,
- .block = CPU_BLOCK_NONE,
- .min_bus = 60000000,
- .max_bus = 66666667,
- .min_voltage = 2100,
- .max_voltage = 3500,
- .min_multi = 2.0,
- .max_multi = 5.5
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 524288,
- .step = 8192
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* According to tests from real hardware: This has AMI MegaKey KBC firmware on the
- PC87306 Super I/O chip, command 0xA1 returns '5'.
- Command 0xA0 copyright string: (C)1994 AMI . */
- {
- .name = "[i440FX] Intel AP440FX",
- .internal_name = "ap440fx",
- .type = MACHINE_TYPE_SOCKET8,
- .chipset = MACHINE_CHIPSET_INTEL_440FX,
- .init = machine_at_ap440fx_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET8,
- .block = CPU_BLOCK_NONE,
- .min_bus = 60000000,
- .max_bus = 66666667,
- .min_voltage = 2100,
- .max_voltage = 3500,
- .min_multi = 2.0,
- .max_multi = 3.5
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_SOUND | MACHINE_VIDEO | MACHINE_USB, /* Machine has internal video: S3 ViRGE/DX and sound: Crystal CS4236B */
- .ram = {
- .min = 8192,
- .max = 524288,
- .step = 8192
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &s3_virge_325_onboard_pci_device,
- .snd_device = &cs4236b_onboard_device,
- .net_device = NULL
- },
- /* According to tests from real hardware: This has AMI MegaKey KBC firmware on the
- PC87306 Super I/O chip, command 0xA1 returns '5'.
- Command 0xA0 copyright string: (C)1994 AMI . */
- {
- .name = "[i440FX] Intel VS440FX",
- .internal_name = "vs440fx",
- .type = MACHINE_TYPE_SOCKET8,
- .chipset = MACHINE_CHIPSET_INTEL_440FX,
- .init = machine_at_vs440fx_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET8,
- .block = CPU_BLOCK_NONE,
- .min_bus = 60000000,
- .max_bus = 66666667,
- .min_voltage = 2100,
- .max_voltage = 3500,
- .min_multi = 2.0,
- .max_multi = 3.5
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_SOUND | MACHINE_APM | MACHINE_GAMEPORT | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 524288,
- .step = 8192
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = &cs4236_onboard_device,
- .net_device = NULL
- },
- /* Has the AMIKey-2 (updated 'H') KBC firmware. */
- {
- .name = "[i440FX] LG IBM Multinet x61 (MSI MS-6106)",
- .internal_name = "lgibmx61",
- .type = MACHINE_TYPE_SOCKET8,
- .chipset = MACHINE_CHIPSET_INTEL_440FX,
- .init = machine_at_lgibmx61_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET8,
- .block = CPU_BLOCK_NONE,
- .min_bus = 60000000,
- .max_bus = 66666667,
- .min_voltage = 2500,
- .max_voltage = 3500,
- .min_multi = 1.5,
- .max_multi = 8.0
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_USB, /* Machine has internal SCSI: Adaptec AIC-78xx */
- .ram = {
- .min = 40960,
- .max = 524288,
- .step = 8192
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has a SM(S)C FDC37C935 Super I/O chip with on-chip KBC with Phoenix
- MultiKey/42 (version 1.38) KBC firmware. */
- {
- .name = "[i440FX] Micronics M6Mi",
- .internal_name = "m6mi",
- .type = MACHINE_TYPE_SOCKET8,
- .chipset = MACHINE_CHIPSET_INTEL_440FX,
- .init = machine_at_m6mi_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET8,
- .block = CPU_BLOCK_NONE,
- .min_bus = 60000000,
- .max_bus = 66666667,
- .min_voltage = 2900,
- .max_voltage = 3300,
- .min_multi = 1.5,
- .max_multi = 8.0
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_GAMEPORT | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 786432,
- .step = 8192
- },
- .nvrmask = 511,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has a VIA VT82C42N KBC with likely AMI MegaKey firmware. */
- {
- .name = "[i440FX] PC Partner MB600N",
- .internal_name = "mb600n",
- .type = MACHINE_TYPE_SOCKET8,
- .chipset = MACHINE_CHIPSET_INTEL_440FX,
- .init = machine_at_mb600n_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET8,
- .block = CPU_BLOCK_NONE,
- .min_bus = 60000000,
- .max_bus = 66666667,
- .min_voltage = 2100,
- .max_voltage = 3500,
- .min_multi = 1.5,
- .max_multi = 8.0
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 524288,
- .step = 8192
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- /* Slot 1 machines */
- /* ALi ALADDiN V */
- /* Has the ALi M1543C southbridge with on-chip KBC. */
- {
- .name = "[ALi ALADDiN-PRO II] PC Chips M729",
- .internal_name = "m729",
- .type = MACHINE_TYPE_SLOT1,
- .chipset = MACHINE_CHIPSET_ALI_ALADDIN_PRO_II,
- .init = machine_at_m729_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SLOT1,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 100000000,
- .min_voltage = 1800,
- .max_voltage = 3500,
- .min_multi = 1.5,
- .max_multi = 8.0
- },
- .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_GAMEPORT | MACHINE_USB, /* Machine has internal sound: C-Media CMI8330 */
- .ram = {
- .min = 8192,
- .max = 1572864,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- /* 440FX */
- /* Has a SM(S)C FDC37C935 Super I/O chip with on-chip KBC with Phoenix
- MultiKey/42 (version 1.38) KBC firmware. */
- {
- .name = "[i440FX] Acer V62X",
- .internal_name = "acerv62x",
- .type = MACHINE_TYPE_SLOT1,
- .chipset = MACHINE_CHIPSET_INTEL_440FX,
- .init = machine_at_acerv62x_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SLOT1,
- .block = CPU_BLOCK_NONE,
- .min_bus = 60000000,
- .max_bus = 83333333,
- .min_voltage = 1800,
- .max_voltage = 3500,
- .min_multi = 1.5,
- .max_multi = 8.0
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 393216,
- .step = 8192
- },
- .nvrmask = 511,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* The base board has a Holtek HT6542B KBC with AMIKey-2 (updated 'H') KBC firmware. */
- {
- .name = "[i440FX] ASUS P/I-P65UP5 (C-PKND)",
- .internal_name = "p65up5_cpknd",
- .type = MACHINE_TYPE_SLOT1,
- .chipset = MACHINE_CHIPSET_INTEL_440FX,
- .init = machine_at_p65up5_cpknd_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SLOT1,
- .block = CPU_BLOCK_NONE,
- .min_bus = 50000000,
- .max_bus = 66666667,
- .min_voltage = 1800,
- .max_voltage = 3500,
- .min_multi = 1.5,
- .max_multi = 8.0
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 1048576,
- .step = 8192
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* This has a Holtek KBC and the BIOS does not send a single non-standard KBC command, so it
- must be an ASIC that clones the standard IBM PS/2 KBC. */
- {
- .name = "[i440FX] ASUS KN97",
- .internal_name = "kn97",
- .type = MACHINE_TYPE_SLOT1,
- .chipset = MACHINE_CHIPSET_INTEL_440FX,
- .init = machine_at_kn97_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SLOT1,
- .block = CPU_BLOCK_NONE,
- .min_bus = 60000000,
- .max_bus = 83333333,
- .min_voltage = 2800,
- .max_voltage = 3500,
- .min_multi = 1.5,
- .max_multi = 8.0
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 786432,
- .step = 8192
- },
- .nvrmask = 127,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- /* 440LX */
- /* Has a Winbond W83977TF Super I/O chip with on-chip KBC with AMIKey-2 KBC
- firmware. */
- {
- .name = "[i440LX] ABIT LX6",
- .internal_name = "lx6",
- .type = MACHINE_TYPE_SLOT1,
- .chipset = MACHINE_CHIPSET_INTEL_440LX,
- .init = machine_at_lx6_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SLOT1,
- .block = CPU_BLOCK_NONE,
- .min_bus = 60000000,
- .max_bus = 83333333,
- .min_voltage = 1500,
- .max_voltage = 3500,
- .min_multi = 2.0,
- .max_multi = 5.5
- },
- .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 1048576,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has a National Semiconductor PC87307 Super I/O with on-chip KBC, which has one of these
- firmwares: AMI '5' MegaKey, Phoenix MultiKey/42 1.37, or Phoenix MultiKey/42i 4.16. */
- {
- .name = "[i440LX] Dell OptiPlex GXa",
- .internal_name = "optiplexgxa",
- .type = MACHINE_TYPE_SLOT1,
- .chipset = MACHINE_CHIPSET_INTEL_440LX,
- .init = machine_at_optiplexgxa_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SLOT1,
- .block = CPU_BLOCK(CPU_PENTIUMPRO, CPU_CYRIX3S),
- .min_bus = 66666667,
- .max_bus = 66666667,
- .min_voltage = 1800,
- .max_voltage = 3500,
- .min_multi = 1.5,
- .max_multi = 5.0
- },
+/*
+ * 86Box A hypervisor and IBM PC system emulator that specializes in
+ * running old operating systems and software designed for IBM
+ * PC systems and compatibles from 1981 through fairly recent
+ * system designs based on the PCI bus.
+ *
+ * This file is part of the 86Box distribution.
+ *
+ * Handling of the emulated machines.
+ *
+ * Authors: Miran Grca,
+ * Fred N. van Kempen,
+ * Jasmine Iwanek,
+ *
+ * Copyright 2016-2025 Miran Grca.
+ * Copyright 2017-2025 Fred N. van Kempen.
+ * Copyright 2025 Jasmine Iwanek.
+ */
+#include
+#include
+#include
+#include
+#include <86box/86box.h>
+#include "cpu.h"
+#include <86box/mem.h>
+#include <86box/rom.h>
+#include <86box/device.h>
+#include <86box/machine.h>
+#include <86box/timer.h>
+#include <86box/fdd.h>
+#include <86box/fdc.h>
+#include <86box/keyboard.h>
+#include <86box/sound.h>
+#include <86box/video.h>
+#include <86box/plat_unused.h>
+#include <86box/thread.h>
+#include <86box/network.h>
+
+// Temporarily here till we move everything out into the right files
+extern const device_t pcjr_device;
+extern const device_t m19_vid_device;
+extern const device_t tandy_1000_video_device;
+extern const device_t tandy_1000hx_video_device;
+extern const device_t tandy_1000sl_video_device;
+
+extern const device_t t1000_video_device;
+extern const device_t xi8088_device;
+extern const device_t cga_device;
+extern const device_t vid_1512_device;
+extern const device_t vid_1640_device;
+extern const device_t vid_pc2086_device;
+extern const device_t vid_pc3086_device;
+extern const device_t vid_200_device;
+extern const device_t vid_ppc512_device;
+extern const device_t t1200_video_device;
+extern const device_t compaq_plasma_device;
+extern const device_t ps1_2011_device;
+extern const device_t ibmpc_device;
+extern const device_t ibmpc82_device;
+extern const device_t ibmxt_device;
+extern const device_t ibmxt86_device;
+extern const device_t ibmat_device;
+extern const device_t ibmxt286_device;
+extern const device_t pb450_device;
+extern const device_t jukopc_device;
+extern const device_t vendex_device;
+extern const device_t c5sbm2_device;
+extern const device_t sb486pv_device;
+extern const device_t ap5s_device;
+extern const device_t d842_device;
+extern const device_t d943_device;
+extern const device_t dells333sl_device;
+extern const device_t hot433a_device;
+extern const device_t pbl300sx_device;
+extern const device_t v12p_device;
+
+const machine_filter_t machine_types[] = {
+ { "None", MACHINE_TYPE_NONE },
+ { "[1979] 8088", MACHINE_TYPE_8088 },
+ { "[1978] 8086", MACHINE_TYPE_8086 },
+ { "[1982] 80286", MACHINE_TYPE_286 },
+ { "[1988] i386SX", MACHINE_TYPE_386SX },
+ { "[1992] 486SLC", MACHINE_TYPE_486SLC },
+ { "[1985] i386DX", MACHINE_TYPE_386DX },
+ { "[1989] i386DX/i486", MACHINE_TYPE_386DX_486 },
+ { "[1992] i486 (Socket 168 and 1)", MACHINE_TYPE_486 },
+ { "[1992] i486 (Socket 2)", MACHINE_TYPE_486_S2 },
+ { "[1994] i486 (Socket 3)", MACHINE_TYPE_486_S3 },
+ { "[1994] i486 (Socket 3 PCI)", MACHINE_TYPE_486_S3_PCI },
+ { "[1992] i486 (Miscellaneous)", MACHINE_TYPE_486_MISC },
+ { "[1993] Socket 4", MACHINE_TYPE_SOCKET4 },
+ { "[1994] Socket 5", MACHINE_TYPE_SOCKET5 },
+ { "[1995] Socket 7 (Single Voltage)", MACHINE_TYPE_SOCKET7_3V },
+ { "[1996] Socket 7 (Dual Voltage)", MACHINE_TYPE_SOCKET7 },
+ { "[1998] Super Socket 7", MACHINE_TYPE_SOCKETS7 },
+ { "[1995] Socket 8", MACHINE_TYPE_SOCKET8 },
+ { "[1997] Slot 1", MACHINE_TYPE_SLOT1 },
+ { "[1998] Slot 1/2", MACHINE_TYPE_SLOT1_2 },
+ { "[1998] Slot 1/Socket 370", MACHINE_TYPE_SLOT1_370 },
+ { "[1998] Slot 2", MACHINE_TYPE_SLOT2 },
+ { "[1998] Socket 370", MACHINE_TYPE_SOCKET370 },
+ { "Miscellaneous", MACHINE_TYPE_MISC }
+};
+
+const machine_filter_t machine_chipsets[] = {
+ { "None", MACHINE_CHIPSET_NONE },
+ { "Discrete", MACHINE_CHIPSET_DISCRETE },
+ { "Proprietary", MACHINE_CHIPSET_PROPRIETARY },
+ { "Headland GC100A", MACHINE_CHIPSET_GC100A },
+ { "Headland GC103", MACHINE_CHIPSET_GC103 },
+ { "Headland HT18", MACHINE_CHIPSET_HT18 },
+ { "ACC 2036", MACHINE_CHIPSET_ACC_2036 },
+ { "ACC 2168", MACHINE_CHIPSET_ACC_2168 },
+ { "ALi M1217", MACHINE_CHIPSET_ALI_M1217 },
+ { "ALi M6117", MACHINE_CHIPSET_ALI_M6117 },
+ { "ALi M1409", MACHINE_CHIPSET_ALI_M1409 },
+ { "ALi M1429", MACHINE_CHIPSET_ALI_M1429 },
+ { "ALi M1429G", MACHINE_CHIPSET_ALI_M1429G },
+ { "ALi M1489", MACHINE_CHIPSET_ALI_M1489 },
+ { "ALi ALADDiN IV+", MACHINE_CHIPSET_ALI_ALADDIN_IV_PLUS },
+ { "ALi ALADDiN V", MACHINE_CHIPSET_ALI_ALADDIN_V },
+ { "ALi ALADDiN-PRO II", MACHINE_CHIPSET_ALI_ALADDIN_PRO_II },
+ { "C&T PC/AT", MACHINE_CHIPSET_CT_AT },
+ { "C&T 386/AT", MACHINE_CHIPSET_CT_386 },
+ { "C&T 82C235 SCAT", MACHINE_CHIPSET_SCAT },
+ { "C&T 82C236 SCATsx", MACHINE_CHIPSET_SCAT_SX },
+ { "C&T CS8221 NEAT", MACHINE_CHIPSET_NEAT },
+ { "C&T CS8281 NEATsx", MACHINE_CHIPSET_NEAT_SX },
+ { "C&T CS4031", MACHINE_CHIPSET_CT_CS4031 },
+ { "Contaq 82C596", MACHINE_CHIPSET_CONTAQ_82C596 },
+ { "Contaq 82C597", MACHINE_CHIPSET_CONTAQ_82C597 },
+ { "IMS 8848", MACHINE_CHIPSET_IMS_8848 },
+ { "Intel 82335", MACHINE_CHIPSET_INTEL_82335 },
+ { "Intel 420TX", MACHINE_CHIPSET_INTEL_420TX },
+ { "Intel 420ZX", MACHINE_CHIPSET_INTEL_420ZX },
+ { "Intel 420EX", MACHINE_CHIPSET_INTEL_420EX },
+ { "Intel 430LX", MACHINE_CHIPSET_INTEL_430LX },
+ { "Intel 430NX", MACHINE_CHIPSET_INTEL_430NX },
+ { "Intel 430FX", MACHINE_CHIPSET_INTEL_430FX },
+ { "Intel 430HX", MACHINE_CHIPSET_INTEL_430HX },
+ { "Intel 430VX", MACHINE_CHIPSET_INTEL_430VX },
+ { "Intel 430TX", MACHINE_CHIPSET_INTEL_430TX },
+ { "Intel 450KX", MACHINE_CHIPSET_INTEL_450KX },
+ { "Intel 440FX", MACHINE_CHIPSET_INTEL_440FX },
+ { "Intel 440LX", MACHINE_CHIPSET_INTEL_440LX },
+ { "Intel 440EX", MACHINE_CHIPSET_INTEL_440EX },
+ { "Intel 440BX", MACHINE_CHIPSET_INTEL_440BX },
+ { "Intel 440ZX", MACHINE_CHIPSET_INTEL_440ZX },
+ { "Intel 440GX", MACHINE_CHIPSET_INTEL_440GX },
+ { "OPTi 283", MACHINE_CHIPSET_OPTI_283 },
+ { "OPTi 291", MACHINE_CHIPSET_OPTI_291 },
+ { "OPTi 381", MACHINE_CHIPSET_OPTI_381 },
+ { "OPTi 391", MACHINE_CHIPSET_OPTI_391 },
+ { "OPTi 481", MACHINE_CHIPSET_OPTI_481 },
+ { "OPTi 493", MACHINE_CHIPSET_OPTI_493 },
+ { "OPTi 495SLC", MACHINE_CHIPSET_OPTI_495SLC },
+ { "OPTi 495SX", MACHINE_CHIPSET_OPTI_495SX },
+ { "OPTi 498", MACHINE_CHIPSET_OPTI_498 },
+ { "OPTi 499", MACHINE_CHIPSET_OPTI_499 },
+ { "OPTi 895/802G", MACHINE_CHIPSET_OPTI_895_802G },
+ { "OPTi 547/597", MACHINE_CHIPSET_OPTI_547_597 },
+ { "SARC RC2016A", MACHINE_CHIPSET_SARC_RC2016A },
+ { "SiS 310", MACHINE_CHIPSET_SIS_310 },
+ { "SiS 401", MACHINE_CHIPSET_SIS_401 },
+ { "SiS 460", MACHINE_CHIPSET_SIS_460 },
+ { "SiS 461", MACHINE_CHIPSET_SIS_461 },
+ { "SiS 471", MACHINE_CHIPSET_SIS_471 },
+ { "SiS 496", MACHINE_CHIPSET_SIS_496 },
+ { "SiS 501", MACHINE_CHIPSET_SIS_501 },
+ { "SiS 5501", MACHINE_CHIPSET_SIS_5501 },
+ { "SiS 5511", MACHINE_CHIPSET_SIS_5511 },
+ { "SiS 5571", MACHINE_CHIPSET_SIS_5571 },
+ { "SiS 5581", MACHINE_CHIPSET_SIS_5581 },
+ { "SiS 5591", MACHINE_CHIPSET_SIS_5591 },
+ { "SiS (5)600", MACHINE_CHIPSET_SIS_5600 },
+ { "SMSC VictoryBX-66", MACHINE_CHIPSET_SMSC_VICTORYBX_66 },
+ { "STPC Client", MACHINE_CHIPSET_STPC_CLIENT },
+ { "STPC Consumer-II", MACHINE_CHIPSET_STPC_CONSUMER_II },
+ { "STPC Elite", MACHINE_CHIPSET_STPC_ELITE },
+ { "STPC Atlas", MACHINE_CHIPSET_STPC_ATLAS },
+ { "Symphony SL82C460 Haydn II", MACHINE_CHIPSET_SYMPHONY_SL82C460 },
+ { "UMC UM82C480", MACHINE_CHIPSET_UMC_UM82C480 },
+ { "UMC UM82C491", MACHINE_CHIPSET_UMC_UM82C491 },
+ { "UMC UM8881", MACHINE_CHIPSET_UMC_UM8881 },
+ { "UMC UM8890BF", MACHINE_CHIPSET_UMC_UM8890BF },
+ { "VIA VT82C495", MACHINE_CHIPSET_VIA_VT82C495 },
+ { "VIA VT82C496G", MACHINE_CHIPSET_VIA_VT82C496G },
+ { "VIA Apollo VPX", MACHINE_CHIPSET_VIA_APOLLO_VPX },
+ { "VIA Apollo VP3", MACHINE_CHIPSET_VIA_APOLLO_VP3 },
+ { "VIA Apollo MVP3", MACHINE_CHIPSET_VIA_APOLLO_MVP3 },
+ { "VIA Apollo Pro", MACHINE_CHIPSET_VIA_APOLLO_PRO },
+ { "VIA Apollo Pro 133", MACHINE_CHIPSET_VIA_APOLLO_PRO_133 },
+ { "VIA Apollo Pro 133A", MACHINE_CHIPSET_VIA_APOLLO_PRO_133A },
+ { "VLSI SCAMP", MACHINE_CHIPSET_VLSI_SCAMP },
+ { "VLSI VL82C480", MACHINE_CHIPSET_VLSI_VL82C480 },
+ { "VLSI VL82C481", MACHINE_CHIPSET_VLSI_VL82C481 },
+ { "VLSI VL82C486", MACHINE_CHIPSET_VLSI_VL82C486 },
+ { "WD76C10", MACHINE_CHIPSET_WD76C10 }
+};
+
+/* Machines to add before machine freeze:
+ - TMC Mycomp PCI54ST;
+ - Zeos Quadtel 486.
+
+ NOTE: The AMI MegaKey tests were done on a real Intel Advanced/ATX
+ (thanks, MrKsoft for running my AMIKEY.COM on it), but the
+ technical specifications of the other Intel machines confirm
+ that the other boards also have the MegaKey.
+
+ NOTE: The later (ie. not AMI Color) Intel AMI BIOS'es execute a
+ sequence of commands (B8, BA, BB) during one of the very first
+ phases of POST, in a way that is only valid on the AMIKey-3
+ KBC firmware, that includes the Classic PCI/ED (Ninja) BIOS
+ which otherwise does not execute any AMI KBC commands, which
+ indicates that the sequence is a leftover of whatever AMI
+ BIOS (likely a laptop one since the AMIKey-3 is a laptop KBC
+ firmware!) Intel forked.
+
+ NOTE: The VIA VT82C42N returns 0x46 ('F') in command 0xA1 (so it
+ emulates the AMI KF/AMIKey KBC firmware), and 0x42 ('B') in
+ command 0xAF.
+ The version on the VIA VT82C686B southbridge also returns
+ 'F' in command 0xA1, but 0x45 ('E') in command 0xAF.
+ The version on the VIA VT82C586B southbridge also returns
+ 'F' in command 0xA1, but 0x44 ('D') in command 0xAF.
+ The version on the VIA VT82C586A southbridge also returns
+ 'F' in command 0xA1, but 0x43 ('C') in command 0xAF.
+
+ NOTE: The AMI MegaKey commands blanked in the technical reference
+ are CC and and C4, which are Set P14 High and Set P14 Low,
+ respectively. Also, AMI KBC command C1, mysteriously missing
+ from the technical references of AMI MegaKey and earlier, is
+ Write Input Port, same as on AMIKey-3.
+*/
+
+const machine_t machines[] = {
+ // clang-format off
+ /* 8088 Machines */
+ {
+ .name = "[8088] IBM PC (1981)",
+ .internal_name = "ibmpc",
+ .type = MACHINE_TYPE_8088,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_pc_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8088,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC5150,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 16,
+ .max = 64,
+ .step = 16
+ },
+ .nvrmask = 0,
+ .kbc_device = &kbc_pc_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = &ibmpc_device,
+ .kbd_device = &keyboard_pc_xt_device,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8088] IBM PC (1982)",
+ .internal_name = "ibmpc82",
+ .type = MACHINE_TYPE_8088,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_pc82_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8088,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC5150,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 64,
+ .max = 256,
+ .step = 64
+ },
+ .nvrmask = 0,
+ .kbc_device = &kbc_pc82_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = &ibmpc82_device,
+ .kbd_device = &keyboard_pc_xt_device,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8088] IBM PCjr",
+ .internal_name = "ibmpcjr",
+ .type = MACHINE_TYPE_8088,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_pcjr_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8088,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 4772728,
+ .max_bus = 4772728,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PCJR,
+ .flags = MACHINE_VIDEO_FIXED | MACHINE_KEYBOARD | MACHINE_CARTRIDGE,
+ .ram = {
+ .min = 64,
+ .max = 640,
+ .step = 64
+ },
+ .nvrmask = 0,
+ .kbc_device = NULL, /* TODO: No specific kbd_device yet */
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &pcjr_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8088] IBM XT (1982)",
+ .internal_name = "ibmxt",
+ .type = MACHINE_TYPE_8088,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_xt_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8088,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 64,
+ .max = 256,
+ .step = 64
+ },
+ .nvrmask = 0,
+ .kbc_device = &kbc_xt_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = &ibmxt_device,
+ .kbd_device = &keyboard_pc_xt_device,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8088] IBM XT (1986)",
+ .internal_name = "ibmxt86",
+ .type = MACHINE_TYPE_8088,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_xt86_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8088,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 256,
+ .max = 640,
+ .step = 64
+ },
+ .nvrmask = 0,
+ .kbc_device = &kbc_xt86_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = &ibmxt86_device,
+ .kbd_device = &keyboard_pc_xt_device,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8088] American XT Computer",
+ .internal_name = "americxt",
+ .type = MACHINE_TYPE_8088,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_xt_americxt_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8088,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 64,
+ .max = 640,
+ .step = 64
+ },
+ .nvrmask = 0,
+ .kbc_device = &kbc_xtclone_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = &keyboard_pc_xt_device,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8088] AMI XT clone",
+ .internal_name = "amixt",
+ .type = MACHINE_TYPE_8088,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_xt_amixt_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8088,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 64,
+ .max = 640,
+ .step = 64
+ },
+ .nvrmask = 0,
+ .kbc_device = &kbc_xtclone_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = &keyboard_pc_xt_device,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8088] Atari PC 3",
+ .internal_name = "ataripc3",
+ .type = MACHINE_TYPE_8088,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_xt_ataripc3_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8088,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_FDC,
+ .ram = {
+ .min = 64,
+ .max = 640,
+ .step = 64
+ },
+ .nvrmask = 0,
+ .kbc_device = &kbc_xtclone_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = &keyboard_pc_xt_device,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8088] Bondwell BW230",
+ .internal_name = "bw230",
+ .type = MACHINE_TYPE_8088,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_xt_bw230_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8088,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 64,
+ .max = 640,
+ .step = 64
+ },
+ .nvrmask = 0,
+ .kbc_device = &kbc_xtclone_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = &keyboard_pc_xt_device,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8088] Columbia Data Products MPC-1600",
+ .internal_name = "mpc1600",
+ .type = MACHINE_TYPE_8088,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_xt_mpc1600_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8088,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 128,
+ .max = 512,
+ .step = 64
+ },
+ .nvrmask = 0,
+ .kbc_device = &kbc_pc82_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = &keyboard_pc_xt_device,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8088] Compaq Portable",
+ .internal_name = "portable",
+ .type = MACHINE_TYPE_8088,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_xt_compaq_portable_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8088,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_KEYBOARD,
+ .ram = {
+ .min = 128,
+ .max = 640,
+ .step = 128
+ },
+ .nvrmask = 0,
+ .kbc_device = &kbc_xt_compaq_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8088] DTK PIM-TB10-Z",
+ .internal_name = "dtk",
+ .type = MACHINE_TYPE_8088,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_xt_dtk_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8088,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 64,
+ .max = 640,
+ .step = 64
+ },
+ .nvrmask = 0,
+ .kbc_device = &kbc_xtclone_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = &keyboard_pc_xt_device,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8088] Eagle PC Spirit",
+ .internal_name = "pcspirit",
+ .type = MACHINE_TYPE_8088,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_xt_pcspirit_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8088,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 128,
+ .max = 640,
+ .step = 64
+ },
+ .nvrmask = 0,
+ .kbc_device = &kbc_pc82_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = &keyboard_pc_xt_device,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8088] Generic XT clone",
+ .internal_name = "genxt",
+ .type = MACHINE_TYPE_8088,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_genxt_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8088,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 64,
+ .max = 640,
+ .step = 64
+ },
+ .nvrmask = 0,
+ .kbc_device = &kbc_xt_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = &keyboard_pc_xt_device,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8088] GLaBIOS",
+ .internal_name = "glabios",
+ .type = MACHINE_TYPE_8088,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_xt_glabios_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8088,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 64,
+ .max = 640,
+ .step = 64
+ },
+ .nvrmask = 0,
+ .kbc_device = &kbc_xt_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = &keyboard_pc_xt_device,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8088] Hyosung Topstar 88T",
+ .internal_name = "top88",
+ .type = MACHINE_TYPE_8088,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_xt_top88_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8088,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 128,
+ .max = 640,
+ .step = 64
+ },
+ .nvrmask = 0,
+ .kbc_device = &kbc_xtclone_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = &keyboard_pc_xt_device,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8088] Hyundai SUPER-16T",
+ .internal_name = "super16t",
+ .type = MACHINE_TYPE_8088,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_xt_super16t_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8088,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 4772728,
+ .max_bus = 8000000,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 128,
+ .max = 640,
+ .step = 64
+ },
+ .nvrmask = 0,
+ .kbc_device = &kbc_xtclone_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = &keyboard_pc_xt_device,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8088] Hyundai SUPER-16TE",
+ .internal_name = "super16te",
+ .type = MACHINE_TYPE_8088,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_xt_super16te_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8088,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 10000000,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 128,
+ .max = 640,
+ .step = 64
+ },
+ .nvrmask = 0,
+ .kbc_device = &kbc_xtclone_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = &keyboard_pc_xt_device,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8088] Juko ST",
+ .internal_name = "jukopc",
+ .type = MACHINE_TYPE_8088,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_xt_jukopc_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8088,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 64,
+ .max = 640,
+ .step = 64
+ },
+ .nvrmask = 0,
+ .kbc_device = &kbc_xtclone_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = &jukopc_device,
+ .kbd_device = &keyboard_pc_xt_device,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8088] Kaypro PC",
+ .internal_name = "kaypropc",
+ .type = MACHINE_TYPE_8088,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_xt_kaypropc_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8088,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 128,
+ .max = 640,
+ .step = 64
+ },
+ .nvrmask = 0,
+ .kbc_device = &kbc_xtclone_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = &keyboard_pc_xt_device,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8088] Micoms XL-7 Turbo",
+ .internal_name = "mxl7t",
+ .type = MACHINE_TYPE_8088,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_xt_micoms_xl7turbo_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8088,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 64,
+ .max = 640,
+ .step = 64
+ },
+ .nvrmask = 0,
+ .kbc_device = &kbc_xt_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = &keyboard_pc_xt_device,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8088] Multitech PC-500",
+ .internal_name = "pc500",
+ .type = MACHINE_TYPE_8088,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_xt_pc500_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8088,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 128,
+ .max = 640,
+ .step = 64
+ },
+ .nvrmask = 0,
+ .kbc_device = &kbc_pc_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = &keyboard_pc_xt_device,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8088] Multitech PC-700",
+ .internal_name = "pc700",
+ .type = MACHINE_TYPE_8088,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_xt_pc700_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8088,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 128,
+ .max = 640,
+ .step = 64
+ },
+ .nvrmask = 0,
+ .kbc_device = &kbc_pc_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = &keyboard_pc_xt_device,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8088] NCR PC4i",
+ .internal_name = "pc4i",
+ .type = MACHINE_TYPE_8088,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_xt_pc4i_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8088,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 256,
+ .max = 640,
+ .step = 128
+ },
+ .nvrmask = 0,
+ .kbc_device = &kbc_xtclone_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = &keyboard_pc_xt_device,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8088] Olivetti M19",
+ .internal_name = "m19",
+ .type = MACHINE_TYPE_8088,
+ .chipset = MACHINE_CHIPSET_PROPRIETARY,
+ .init = machine_xt_m19_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8088,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 4772728,
+ .max_bus = 7159092,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_VIDEO_FIXED | MACHINE_KEYBOARD,
+ .ram = {
+ .min = 256,
+ .max = 640,
+ .step = 128
+ },
+ .nvrmask = 0,
+ .kbc_device = &kbc_xt_olivetti_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &m19_vid_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8088] OpenXT",
+ .internal_name = "openxt",
+ .type = MACHINE_TYPE_8088,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_xt_openxt_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8088,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 64,
+ .max = 640,
+ .step = 64
+ },
+ .nvrmask = 0,
+ .kbc_device = &kbc_xtclone_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = &keyboard_pc_xt_device,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8088] Packard Bell PB8810",
+ .internal_name = "pb8810",
+ .type = MACHINE_TYPE_8088,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_xt_pb8810_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8088,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 256,
+ .max = 640,
+ .step = 128
+ },
+ .nvrmask = 0,
+ .kbc_device = &kbc_xtclone_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = &keyboard_pc_xt_device,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8088] Philips P3105/NMS9100",
+ .internal_name = "p3105",
+ .type = MACHINE_TYPE_8088,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_xt_p3105_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8088,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_XTA,
+ .ram = {
+ .min = 256,
+ .max = 768,
+ .step = 256
+ },
+ .nvrmask = 0,
+ .kbc_device = &kbc_pc_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = &keyboard_pc_xt_device,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8088] Phoenix XT clone",
+ .internal_name = "pxxt",
+ .type = MACHINE_TYPE_8088,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_xt_pxxt_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8088,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 64,
+ .max = 640,
+ .step = 64
+ },
+ .nvrmask = 0,
+ .kbc_device = &kbc_xtclone_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = &keyboard_pc_xt_device,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8088] Pravetz 16 / IMKO-4",
+ .internal_name = "pravetz16",
+ .type = MACHINE_TYPE_8088,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_xt_pravetz16_imko4_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8088,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 64,
+ .max = 640,
+ .step = 64
+ },
+ .nvrmask = 0,
+ .kbc_device = &kbc_pravetz_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = &keyboard_pc_xt_device,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8088] Pravetz 16S / CPU12 Plus",
+ .internal_name = "pravetz16s",
+ .type = MACHINE_TYPE_8088,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_xt_pravetz16s_cpu12p_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8088,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 4772728,
+ .max_bus = 12000000,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 512,
+ .max = 1024,
+ .step = 128
+ },
+ .nvrmask = 0,
+ .kbc_device = &kbc_xt_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = &keyboard_pc_xt_device,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8088] Sanyo SX-16",
+ .internal_name = "sansx16",
+ .type = MACHINE_TYPE_8088,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_xt_sansx16_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8088,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 256,
+ .max = 640,
+ .step = 128
+ },
+ .nvrmask = 0,
+ .kbc_device = &kbc_xtclone_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = &keyboard_pc_xt_device,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8088] Schneider EuroPC",
+ .internal_name = "europc",
+ .type = MACHINE_TYPE_8088,
+ .chipset = MACHINE_CHIPSET_PROPRIETARY,
+ .init = machine_europc_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8088_EUROPC,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_XTA | MACHINE_KEYBOARD | MACHINE_MOUSE,
+ .ram = {
+ .min = 512,
+ .max = 640,
+ .step = 128
+ },
+ .nvrmask = 15,
+ .kbc_device = &kbc_xt_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8088] Super PC/Turbo XT",
+ .internal_name = "pcxt",
+ .type = MACHINE_TYPE_8088,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_xt_pcxt_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8088,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 64,
+ .max = 640,
+ .step = 64
+ },
+ .nvrmask = 0,
+ .kbc_device = &kbc_xtclone_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = &keyboard_pc_xt_device,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8088] Tandy 1000 SX",
+ .internal_name = "tandy1000sx",
+ .type = MACHINE_TYPE_8088,
+ .chipset = MACHINE_CHIPSET_PROPRIETARY,
+ .init = machine_tandy1000sx_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8088,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_VIDEO_FIXED | MACHINE_KEYBOARD,
+ .ram = {
+ .min = 384,
+ .max = 640,
+ .step = 128
+ },
+ .nvrmask = 0,
+ .kbc_device = &kbc_tandy_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &tandy_1000_video_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8088] Tandy 1000 HX",
+ .internal_name = "tandy1000hx",
+ .type = MACHINE_TYPE_8088,
+ .chipset = MACHINE_CHIPSET_PROPRIETARY,
+ .init = machine_tandy1000hx_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8088,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_VIDEO_FIXED | MACHINE_KEYBOARD,
+ .ram = {
+ .min = 256,
+ .max = 640,
+ .step = 128
+ },
+ .nvrmask = 0,
+ .kbc_device = &kbc_tandy_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &tandy_1000hx_video_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8088] Toshiba T1000",
+ .internal_name = "t1000",
+ .type = MACHINE_TYPE_8088,
+ .chipset = MACHINE_CHIPSET_PROPRIETARY,
+ .init = machine_xt_t1000_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8088,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_VIDEO | MACHINE_KEYBOARD,
+ .ram = {
+ .min = 512,
+ .max = 1280,
+ .step = 768
+ },
+ .nvrmask = 63,
+ .kbc_device = &kbc_xt_t1x00_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &t1000_video_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8088] Vendex HeadStart Turbo 888-XT",
+ .internal_name = "vendex",
+ .type = MACHINE_TYPE_8088,
+ .chipset = MACHINE_CHIPSET_PROPRIETARY,
+ .init = machine_xt_vendex_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8088,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 256,
+ .max = 768,
+ .step = 256
+ },
+ .nvrmask = 0,
+ .kbc_device = &kbc_xtclone_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = &vendex_device,
+ .kbd_device = &keyboard_pc_xt_device,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8088] VTech Laser Turbo XT",
+ .internal_name = "ltxt",
+ .type = MACHINE_TYPE_8088,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_xt_laserxt_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8088_VTECH,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 256,
+ .max = 640,
+ .step = 64
+ },
+ .nvrmask = 0,
+ .kbc_device = &kbc_xt_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = &laserxt_device,
+ .kbd_device = &keyboard_pc_xt_device,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has a standard PS/2 KBC (so, use IBM PS/2 Type 1). */
+ {
+ .name = "[8088] Xi8088",
+ .internal_name = "xi8088",
+ .type = MACHINE_TYPE_8088,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_xt_xi8088_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8088,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 64,
+ .max = 1024,
+ .step = 128
+ },
+ .nvrmask = 127,
+ .kbc_device = &kbc_ps2_xi8088_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = &xi8088_device,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8088] Z-NIX PC-1600",
+ .internal_name = "znic",
+ .type = MACHINE_TYPE_8088,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_xt_znic_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8088,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 64,
+ .max = 640,
+ .step = 64
+ },
+ .nvrmask = 0,
+ .kbc_device = &kbc_xtclone_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = &keyboard_pc_xt_device,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8088] Zenith Data Systems Z-151/152/161",
+ .internal_name = "zdsz151",
+ .type = MACHINE_TYPE_8088,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_xt_z151_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8088,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 128,
+ .max = 640,
+ .step = 64
+ },
+ .nvrmask = 0,
+ .kbc_device = &kbc_xt_zenith_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = &keyboard_pc_xt_device,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8088] Zenith Data Systems Z-159",
+ .internal_name = "zdsz159",
+ .type = MACHINE_TYPE_8088,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_xt_z159_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8088,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 128,
+ .max = 640,
+ .step = 64
+ },
+ .nvrmask = 0,
+ .kbc_device = &kbc_xt_zenith_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = &keyboard_pc_xt_device,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8088] Zenith Data Systems SupersPort (Z-184)",
+ .internal_name = "zdsupers",
+ .type = MACHINE_TYPE_8088,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_xt_z184_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8088,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_VIDEO_FIXED,
+ .ram = {
+ .min = 128,
+ .max = 640,
+ .step = 128
+ },
+ .nvrmask = 0,
+ .kbc_device = &kbc_xt_zenith_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = &keyboard_pc_xt_device,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &cga_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[GC100A] Philips P3120",
+ .internal_name = "p3120",
+ .type = MACHINE_TYPE_8088,
+ .chipset = MACHINE_CHIPSET_GC100A,
+ .init = machine_xt_p3120_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8088,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_XTA,
+ .ram = {
+ .min = 256,
+ .max = 768,
+ .step = 256
+ },
+ .nvrmask = 0,
+ .kbc_device = &kbc_pc_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = &keyboard_pc_xt_device,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[V20] PC-XT",
+ .internal_name = "v20xt",
+ .type = MACHINE_TYPE_8088,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_xt_v20xt_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8088,
+ .block = CPU_BLOCK(CPU_8088),
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 64,
+ .max = 640,
+ .step = 64
+ },
+ .nvrmask = 0,
+ .kbc_device = &kbc_xtclone_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = &keyboard_pc_xt_device,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[V20] Tulip PC Compact 2",
+ .internal_name = "tuliptc8",
+ .type = MACHINE_TYPE_8088,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_xt_tuliptc8_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8088,
+ .block = CPU_BLOCK(CPU_8088),
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 64,
+ .max = 640,
+ .step = 64
+ },
+ .nvrmask = 63,
+ .kbc_device = &kbc_xtclone_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = &keyboard_pc_xt_device,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ /* 8086 Machines */
+ {
+ .name = "[8086] Amstrad PC1512",
+ .internal_name = "pc1512",
+ .type = MACHINE_TYPE_8086,
+ .chipset = MACHINE_CHIPSET_PROPRIETARY,
+ .init = machine_pc1512_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8086,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 8000000,
+ .max_bus = 8000000,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_VIDEO_FIXED | MACHINE_KEYBOARD | MACHINE_MOUSE,
+ .ram = {
+ .min = 512,
+ .max = 640,
+ .step = 128
+ },
+ .nvrmask = 63,
+ .kbc_device = NULL /* TODO: No specific kbd_device yet */,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &vid_1512_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8086] Amstrad PC1640",
+ .internal_name = "pc1640",
+ .type = MACHINE_TYPE_8086,
+ .chipset = MACHINE_CHIPSET_PROPRIETARY,
+ .init = machine_pc1640_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8086,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 10000000,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_VIDEO | MACHINE_KEYBOARD | MACHINE_MOUSE,
+ .ram = {
+ .min = 640,
+ .max = 640,
+ .step = 640
+ },
+ .nvrmask = 63,
+ .kbc_device = NULL /* TODO: No specific kbd_device yet */,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &vid_1640_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8086] Amstrad PC2086",
+ .internal_name = "pc2086",
+ .type = MACHINE_TYPE_8086,
+ .chipset = MACHINE_CHIPSET_PROPRIETARY,
+ .init = machine_pc2086_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8086,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 10000000,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_VIDEO_FIXED | MACHINE_KEYBOARD | MACHINE_MOUSE,
+ .ram = {
+ .min = 640,
+ .max = 640,
+ .step = 640
+ },
+ .nvrmask = 63,
+ .kbc_device = NULL /* TODO: No specific kbd_device yet */,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &vid_pc2086_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8086] Amstrad PC3086",
+ .internal_name = "pc3086",
+ .type = MACHINE_TYPE_8086,
+ .chipset = MACHINE_CHIPSET_PROPRIETARY,
+ .init = machine_pc3086_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8086,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 10000000,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_VIDEO_FIXED | MACHINE_KEYBOARD | MACHINE_MOUSE,
+ .ram = {
+ .min = 640,
+ .max = 640,
+ .step = 640
+ },
+ .nvrmask = 63,
+ .kbc_device = NULL /* TODO: No specific kbd_device yet */,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &vid_pc3086_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8086] Amstrad PC20(0)",
+ .internal_name = "pc200",
+ .type = MACHINE_TYPE_8086,
+ .chipset = MACHINE_CHIPSET_PROPRIETARY,
+ .init = machine_pc200_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8086,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 10000000,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_VIDEO | MACHINE_KEYBOARD | MACHINE_MOUSE,
+ .ram = {
+ .min = 512,
+ .max = 640,
+ .step = 128
+ },
+ .nvrmask = 63,
+ .kbc_device = NULL /* TODO: No specific kbd_device yet */,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &vid_200_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8086] Amstrad PPC512/640",
+ .internal_name = "ppc512",
+ .type = MACHINE_TYPE_8086,
+ .chipset = MACHINE_CHIPSET_PROPRIETARY,
+ .init = machine_ppc512_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8086,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 10000000,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_VIDEO | MACHINE_KEYBOARD | MACHINE_MOUSE,
+ .ram = {
+ .min = 512,
+ .max = 640,
+ .step = 128
+ },
+ .nvrmask = 63,
+ .kbc_device = NULL /* TODO: No specific kbd_device yet */,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &vid_ppc512_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8086] Compaq Deskpro",
+ .internal_name = "deskpro",
+ .type = MACHINE_TYPE_8086,
+ .chipset = MACHINE_CHIPSET_PROPRIETARY,
+ .init = machine_xt_compaq_deskpro_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8086,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 128,
+ .max = 640,
+ .step = 128
+ },
+ .nvrmask = 0,
+ .kbc_device = &kbc_xt_compaq_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = &keyboard_pc_xt_device,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8086] Epson Equity LT",
+ .internal_name = "elt",
+ .type = MACHINE_TYPE_8086,
+ .chipset = MACHINE_CHIPSET_PROPRIETARY,
+ .init = machine_elt_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8086,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_VIDEO,
+ .ram = {
+ .min = 640,
+ .max = 640,
+ .step = 640
+ },
+ .nvrmask = 0x3f,
+ .kbc_device = &kbc_xt_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = &keyboard_pc_xt_device,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8086] Mazovia 1016",
+ .internal_name = "maz1016",
+ .type = MACHINE_TYPE_8086,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_xt_maz1016_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8086_MAZOVIA,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 256,
+ .max = 640,
+ .step = 384
+ },
+ .nvrmask = 0,
+ .kbc_device = &kbc_xtclone_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = &keyboard_pc_xt_device,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8086] Olivetti M21/24/24SP/AT&T PC 6300",
+ .internal_name = "m24",
+ .type = MACHINE_TYPE_8086,
+ .chipset = MACHINE_CHIPSET_PROPRIETARY,
+ .init = machine_xt_m24_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8086,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_VIDEO | MACHINE_KEYBOARD | MACHINE_MOUSE | MACHINE_MFM,
+ .ram = {
+ .min = 128,
+ .max = 640,
+ .step = 128
+ },
+ .nvrmask = 15,
+ .kbc_device = NULL /* TODO: No specific kbd_device yet */,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &ogc_m24_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has Olivetti KBC firmware. */
+ {
+ .name = "[8086] Olivetti M240/AT&T PC 6300 WGS",
+ .internal_name = "m240",
+ .type = MACHINE_TYPE_8086,
+ .chipset = MACHINE_CHIPSET_PROPRIETARY,
+ .init = machine_xt_m240_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8086,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_KEYBOARD | MACHINE_MFM,
+ .ram = {
+ .min = 128,
+ .max = 640,
+ .step = 128
+ },
+ .nvrmask = 15,
+ .kbc_device = NULL /* TODO: No specific kbd_device yet */,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8086] Schetmash Iskra-3104",
+ .internal_name = "iskra3104",
+ .type = MACHINE_TYPE_8086,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_xt_iskra3104_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8086,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 128,
+ .max = 640,
+ .step = 128
+ },
+ .nvrmask = 0,
+ .kbc_device = &kbc_xtclone_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = &keyboard_pc_xt_device,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8086] Tandy 1000 SL/2",
+ .internal_name = "tandy1000sl2",
+ .type = MACHINE_TYPE_8086,
+ .chipset = MACHINE_CHIPSET_PROPRIETARY,
+ .init = machine_tandy1000sl2_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8086,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_VIDEO_FIXED | MACHINE_KEYBOARD,
+ .ram = {
+ .min = 512,
+ .max = 768,
+ .step = 128
+ },
+ .nvrmask = 0,
+ .kbc_device = NULL /* TODO: No specific kbd_device yet */,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &tandy_1000sl_video_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8086] Toshiba T1200",
+ .internal_name = "t1200",
+ .type = MACHINE_TYPE_8086,
+ .chipset = MACHINE_CHIPSET_PROPRIETARY,
+ .init = machine_xt_t1200_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8086,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_VIDEO | MACHINE_KEYBOARD | MACHINE_MFM,
+ .ram = {
+ .min = 1024,
+ .max = 2048,
+ .step = 1024
+ },
+ .nvrmask = 63,
+ .kbc_device = &kbc_xt_t1x00_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &t1200_video_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8086] Victor V86P",
+ .internal_name = "v86p",
+ .type = MACHINE_TYPE_8086,
+ .chipset = MACHINE_CHIPSET_PROPRIETARY,
+ .init = machine_v86p_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8086,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_VIDEO | MACHINE_KEYBOARD | MACHINE_MFM,
+ .ram = {
+ .min = 512,
+ .max = 1024,
+ .step = 128
+ },
+ .nvrmask = 127,
+ .kbc_device = &kbc_xt_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[8086] VTech Laser XT3",
+ .internal_name = "lxt3",
+ .type = MACHINE_TYPE_8086,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_xt_lxt3_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_8086_VTECH,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PC,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 512,
+ .max = 640,
+ .step = 64
+ },
+ .nvrmask = 0,
+ .kbc_device = &kbc_xt_lxt3_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = &lxt3_device,
+ .kbd_device = &keyboard_pc_xt_device,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ /* 286 AT machines */
+ /* Has IBM AT KBC firmware. */
+ {
+ .name = "[ISA] IBM AT",
+ .internal_name = "ibmat",
+ .type = MACHINE_TYPE_286,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_at_ibm_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_286,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 6000000,
+ .max_bus = 8000000,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 256,
+ .max = 512,
+ .step = 256
+ },
+ .nvrmask = 63,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = &ibmat_device,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has IBM PS/2 Type 1 KBC firmware. */
+ {
+ .name = "[ISA] IBM PS/1 model 2011",
+ .internal_name = "ibmps1es",
+ .type = MACHINE_TYPE_286,
+ .chipset = MACHINE_CHIPSET_PROPRIETARY,
+ .init = machine_ps1_m2011_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_286,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 10000000,
+ .max_bus = 10000000,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2,
+ .flags = MACHINE_XTA | MACHINE_VIDEO_FIXED,
+ .ram = {
+ .min = 512,
+ .max = 15360,
+ .step = 512
+ },
+ .nvrmask = 63,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = &ps1_2011_device,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has IBM PS/2 Type 1 KBC firmware. */
+ {
+ .name = "[ISA] IBM PS/2 model 30-286",
+ .internal_name = "ibmps2_m30_286",
+ .type = MACHINE_TYPE_286,
+ .chipset = MACHINE_CHIPSET_PROPRIETARY,
+ .init = machine_ps2_m30_286_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_286 | CPU_PKG_486SLC_IBM,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 10000000,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2,
+ .flags = MACHINE_XTA | MACHINE_VIDEO_FIXED,
+ .ram = {
+ .min = 512,
+ .max = 16384,
+ .step = 512
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has IBM AT KBC firmware. */
+ {
+ .name = "[ISA] IBM XT Model 286",
+ .internal_name = "ibmxt286",
+ .type = MACHINE_TYPE_286,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_at_ibmxt286_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_286,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 6000000,
+ .max_bus = 6000000,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 256,
+ .max = 640,
+ .step = 128
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = &ibmxt286_device,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* AMI BIOS for a chipset-less machine, most likely has AMI 'F' KBC firmware. */
+ {
+ .name = "[ISA] AMI IBM AT",
+ .internal_name = "ibmatami",
+ .type = MACHINE_TYPE_286,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_at_ibmatami_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_286,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 256,
+ .max = 512,
+ .step = 256
+ },
+ .nvrmask = 63,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Uses Commodore (CBM) KBC firmware, to be implemented as identical to the
+ IBM AT KBC firmware unless evidence emerges of any proprietary commands. */
+ {
+ .name = "[ISA] Commodore PC 30 III",
+ .internal_name = "cmdpc30",
+ .type = MACHINE_TYPE_286,
+ .chipset = MACHINE_CHIPSET_PROPRIETARY,
+ .init = machine_at_cmdpc_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_286,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 6000000,
+ .max_bus = 12500000,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 640,
+ .max = 14912,
+ .step = 64
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Uses Compaq KBC firmware. */
+ {
+ .name = "[ISA] Compaq Portable II",
+ .internal_name = "portableii",
+ .type = MACHINE_TYPE_286,
+ .chipset = MACHINE_CHIPSET_PROPRIETARY,
+ .init = machine_at_portableii_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_286,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 6000000,
+ .max_bus = 16000000,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_KEYBOARD,
+ .ram = {
+ .min = 640,
+ .max = 16384,
+ .step = 128
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Uses Compaq KBC firmware. */
+ {
+ .name = "[ISA] Compaq Portable III",
+ .internal_name = "portableiii",
+ .type = MACHINE_TYPE_286,
+ .chipset = MACHINE_CHIPSET_PROPRIETARY,
+ .init = machine_at_portableiii_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_286,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 6000000,
+ .max_bus = 16000000,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_IDE | MACHINE_VIDEO | MACHINE_KEYBOARD,
+ .ram = {
+ .min = 640,
+ .max = 16384,
+ .step = 128
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &compaq_plasma_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has IBM AT KBC firmware. */
+ {
+ .name = "[ISA] MR BIOS 286 clone",
+ .internal_name = "mr286",
+ .type = MACHINE_TYPE_286,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_at_mr286_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_286,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_IDE,
+ .ram = {
+ .min = 512,
+ .max = 16384,
+ .step = 128
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has IBM AT KBC firmware. */
+ {
+ .name = "[ISA] NCR PC8/810/710/3390/3392",
+ .internal_name = "pc8",
+ .type = MACHINE_TYPE_286,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_at_pc8_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_286,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 512,
+ .max = 16384,
+ .step = 128
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has Chips & Technologies KBC firmware. */
+ {
+ .name = "[ISA] Wells American A*Star",
+ .internal_name = "wellamerastar",
+ .type = MACHINE_TYPE_286,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_at_wellamerastar_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_286,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 6000000,
+ .max_bus = 14000000,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 512,
+ .max = 1024,
+ .step = 512
+ },
+ .nvrmask = 63,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has Olivetti KBC firmware. */
+ {
+ .name = "[ISA] Olivetti M290/AT&T 6286 WGS",
+ .internal_name = "m290",
+ .type = MACHINE_TYPE_286,
+ .chipset = MACHINE_CHIPSET_PROPRIETARY,
+ .init = machine_at_m290_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_286,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 1024,
+ .max = 16384,
+ .step = 128
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has IBM AT KBC firmware. */
+ {
+ .name = "[ISA] Phoenix IBM AT",
+ .internal_name = "ibmatpx",
+ .type = MACHINE_TYPE_286,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_at_ibmatpx_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_286,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 256,
+ .max = 512,
+ .step = 256
+ },
+ .nvrmask = 63,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has Quadtel KBC firmware. */
+ {
+ .name = "[ISA] Quadtel IBM AT",
+ .internal_name = "ibmatquadtel",
+ .type = MACHINE_TYPE_286,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_at_ibmatquadtel_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_286,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 256,
+ .max = 512,
+ .step = 256
+ },
+ .nvrmask = 63,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has IBM AT KBC firmware. */
+ /* To configure the BIOS, use PB_2330a_diag.IMA from MS-DOS 3.30 Packard Bell OEM, GSETUP might work too*/
+ {
+ .name = "[ISA] Packard Bell PB286",
+ .internal_name = "pb286",
+ .type = MACHINE_TYPE_286,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_at_pb286_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_286,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 256,
+ .max = 1024,
+ .step = 128
+ },
+ .nvrmask = 63,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* This has a Siemens proprietary KBC which is completely undocumented. */
+ {
+ .name = "[ISA] Siemens PCD-2L",
+ .internal_name = "siemens",
+ .type = MACHINE_TYPE_286,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_at_siemens_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_286,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 6000000,
+ .max_bus = 12500000,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 256,
+ .max = 15872,
+ .step = 128
+ },
+ .nvrmask = 63,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* This has Toshiba's proprietary KBC, which is already implemented. */
+ {
+ .name = "[ISA] Toshiba T3100e",
+ .internal_name = "t3100e",
+ .type = MACHINE_TYPE_286,
+ .chipset = MACHINE_CHIPSET_PROPRIETARY,
+ .init = machine_at_t3100e_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_286,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_IDE | MACHINE_VIDEO_FIXED | MACHINE_KEYBOARD,
+ .ram = {
+ .min = 1024,
+ .max = 5120,
+ .step = 256
+ },
+ .nvrmask = 63,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[ISA] GRiD GRiDcase 1520",
+ .internal_name = "grid1520",
+ .type = MACHINE_TYPE_286,
+ .chipset = MACHINE_CHIPSET_PROPRIETARY,
+ .init = machine_at_grid1520_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_286,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 6000000,
+ .max_bus = 10000000,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_IDE /*| MACHINE_VIDEO_FIXED*/ | MACHINE_KEYBOARD,
+ .ram = {
+ .min = 1024,
+ .max = 8192,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* No proper pictures of the KBC exist, though it seems to have the IBM AT KBC
+ firmware. */
+ {
+ .name = "[C&T PC/AT] Dell System 200",
+ .internal_name = "dells200",
+ .type = MACHINE_TYPE_286,
+ .chipset = MACHINE_CHIPSET_CT_AT,
+ .init = machine_at_dells200_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_286,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 6000000,
+ .max_bus = 12000000,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 640,
+ .max = 16384,
+ .step = 128
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* No proper pictures of the KBC exist, though it seems to have the IBM AT KBC
+ firmware. */
+ {
+ .name = "[C&T PC/AT] PC's Limited (Dell) 28608L/AT122",
+ .internal_name = "at122",
+ .type = MACHINE_TYPE_286,
+ .chipset = MACHINE_CHIPSET_CT_AT,
+ .init = machine_at_at122_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_286,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 6000000,
+ .max_bus = 12000000,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 640,
+ .max = 16384,
+ .step = 128
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* No proper pictures of the KBC exist, though it seems to have the IBM AT KBC
+ firmware. */
+ {
+ .name = "[C&T PC/AT] Tulip AT Compact",
+ .internal_name = "tuliptc7",
+ .type = MACHINE_TYPE_286,
+ .chipset = MACHINE_CHIPSET_CT_AT,
+ .init = machine_at_tuliptc7_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_286,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 6000000,
+ .max_bus = 12000000,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 640,
+ .max = 16384,
+ .step = 128
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has Quadtel KBC firmware. */
+ {
+ .name = "[GC103] Quadtel 286 clone",
+ .internal_name = "quadt286",
+ .type = MACHINE_TYPE_286,
+ .chipset = MACHINE_CHIPSET_GC103,
+ .init = machine_at_quadt286_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_286,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_SOFTFLOAT_ONLY,
+ .ram = {
+ .min = 512,
+ .max = 16384,
+ .step = 128
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Most likely has AMI 'F' KBC firmware. */
+ {
+ .name = "[GC103] TriGem 286M",
+ .internal_name = "tg286m",
+ .type = MACHINE_TYPE_286,
+ .chipset = MACHINE_CHIPSET_GC103,
+ .init = machine_at_tg286m_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_286,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_IDE,
+ .ram = {
+ .min = 512,
+ .max = 8192,
+ .step = 128
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[NEAT] Atari PC 4",
+ .internal_name = "ataripc4",
+ .type = MACHINE_TYPE_286,
+ .chipset = MACHINE_CHIPSET_NEAT,
+ .init = machine_at_ataripc4_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_286,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_FDC,
+ .ram = {
+ .min = 512,
+ .max = 8192,
+ .step = 128
+ },
+ .nvrmask = 127,
+ .kbc_device = &kbc_at_ami_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* This has "AMI KEYBOARD BIOS", most likely 'F'. */
+ {
+ .name = "[NEAT] DataExpert 286",
+ .internal_name = "ami286",
+ .type = MACHINE_TYPE_286,
+ .chipset = MACHINE_CHIPSET_NEAT,
+ .init = machine_at_neat_ami_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_286,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 512,
+ .max = 8192,
+ .step = 128
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* has an Award-branded KBC controller */
+ {
+ .name = "[NEAT] Hyundai Super-286C",
+ .internal_name = "super286c",
+ .type = MACHINE_TYPE_286,
+ .chipset = MACHINE_CHIPSET_NEAT,
+ .init = machine_at_super286c_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_286,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 512,
+ .max = 1024,
+ .step = 128
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has IBM AT KBC firmware. */
+ {
+ .name = "[NEAT] NCR 3302",
+ .internal_name = "3302",
+ .type = MACHINE_TYPE_286,
+ .chipset = MACHINE_CHIPSET_NEAT,
+ .init = machine_at_3302_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_286,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_IDE | MACHINE_VIDEO,
+ .ram = {
+ .min = 512,
+ .max = 5120,
+ .step = 128
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = ¶dise_pvga1a_ncr3302_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has IBM AT KBC firmware. */
+ {
+ .name = "[NEAT] Arche AMA-2010",
+ .internal_name = "px286",
+ .type = MACHINE_TYPE_286,
+ .chipset = MACHINE_CHIPSET_NEAT,
+ .init = machine_at_px286_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_286,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 512,
+ .max = 8192,
+ .step = 128
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has Chips & Technologies KBC firmware. */
+ {
+ .name = "[SCAT] GW-286CT GEAR",
+ .internal_name = "gw286ct",
+ .type = MACHINE_TYPE_286,
+ .chipset = MACHINE_CHIPSET_SCAT,
+ .init = machine_at_gw286ct_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_286,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_IDE,
+ .ram = {
+ .min = 512,
+ .max = 16384,
+ .step = 128
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has IBM PS/2 Type 1 KBC firmware. */
+ {
+ .name = "[SCAT] Goldstar GDC-212M",
+ .internal_name = "gdc212m",
+ .type = MACHINE_TYPE_286,
+ .chipset = MACHINE_CHIPSET_SCAT,
+ .init = machine_at_gdc212m_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_286,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2,
+ .flags = MACHINE_IDE,
+ .ram = {
+ .min = 512,
+ .max = 4096,
+ .step = 512
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has a VIA VT82C42N KBC. */
+ {
+ .name = "[SCAT] Hyundai Solomon 286KP",
+ .internal_name = "award286",
+ .type = MACHINE_TYPE_286,
+ .chipset = MACHINE_CHIPSET_SCAT,
+ .init = machine_at_award286_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_286,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_IDE,
+ .ram = {
+ .min = 640,
+ .max = 8192,
+ .step = 128
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has a VIA VT82C42N KBC. */
+ {
+ .name = "[SCAT] Hyundai Super-286TR",
+ .internal_name = "super286tr",
+ .type = MACHINE_TYPE_286,
+ .chipset = MACHINE_CHIPSET_SCAT,
+ .init = machine_at_super286tr_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_286,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 640,
+ .max = 8192,
+ .step = 128
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[SCAT] ICL DRS M35/286",
+ .internal_name = "drsm35286",
+ .type = MACHINE_TYPE_286,
+ .chipset = MACHINE_CHIPSET_SCAT,
+ .init = machine_at_drsm35286_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_286,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2,
+ .flags = MACHINE_IDE | MACHINE_VIDEO,
+ .ram = {
+ .min = 512,
+ .max = 5120,
+ .step = 128
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &gd5401_onboard_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has IBM PS/2 Type 1 KBC firmware. */
+ {
+ .name = "[SCAT] Samsung SPC-4200P",
+ .internal_name = "spc4200p",
+ .type = MACHINE_TYPE_286,
+ .chipset = MACHINE_CHIPSET_SCAT,
+ .init = machine_at_spc4200p_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_286,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2,
+ .flags = MACHINE_IDE, /* Has internal video: C&T VGA 411 */
+ .ram = {
+ .min = 512,
+ .max = 2048,
+ .step = 128
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has IBM PS/2 Type 1 KBC firmware. */
+ {
+ .name = "[SCAT] Samsung SPC-4216P",
+ .internal_name = "spc4216p",
+ .type = MACHINE_TYPE_286,
+ .chipset = MACHINE_CHIPSET_SCAT,
+ .init = machine_at_spc4216p_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_286,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 1024,
+ .max = 5120,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has IBM PS/2 Type 1 KBC firmware. */
+ {
+ .name = "[SCAT] Samsung SPC-4620P",
+ .internal_name = "spc4620p",
+ .type = MACHINE_TYPE_286,
+ .chipset = MACHINE_CHIPSET_SCAT,
+ .init = machine_at_spc4620p_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_286,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2,
+ .flags = MACHINE_IDE | MACHINE_VIDEO,
+ .ram = {
+ .min = 1024,
+ .max = 5120,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has IBM AT KBC firmware. */
+ {
+ .name = "[SCAT] Samsung Deskmaster 286",
+ .internal_name = "deskmaster286",
+ .type = MACHINE_TYPE_286,
+ .chipset = MACHINE_CHIPSET_SCAT,
+ .init = machine_at_deskmaster286_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_286,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2,
+ .flags = MACHINE_IDE, /* Has internal video: C&T VGA 411 */
+ .ram = {
+ .min = 512,
+ .max = 8192,
+ .step = 128
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[SCAT] Senor Science Co. SCAT-286-003",
+ .internal_name = "senorscat286",
+ .type = MACHINE_TYPE_286,
+ .chipset = MACHINE_CHIPSET_SCAT,
+ .init = machine_at_senor_scat286_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_286,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_IDE,
+ .ram = {
+ .min = 1024,
+ .max = 4096,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* 286 machines that utilize the MCA bus */
+ /* Has IBM PS/2 Type 2 KBC firmware. */
+ {
+ .name = "[MCA] IBM PS/2 model 50",
+ .internal_name = "ibmps2_m50",
+ .type = MACHINE_TYPE_286,
+ .chipset = MACHINE_CHIPSET_PROPRIETARY,
+ .init = machine_ps2_model_50_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_286 | CPU_PKG_486SLC_IBM,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 10000000,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2_MCA,
+ .flags = MACHINE_VIDEO,
+ .ram = {
+ .min = 1024,
+ .max = 10240,
+ .step = 1024
+ },
+ .nvrmask = 63,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has IBM PS/2 Type 2 KBC firmware. */
+ {
+ .name = "[MCA] IBM PS/2 model 60",
+ .internal_name = "ibmps2_m60",
+ .type = MACHINE_TYPE_286,
+ .chipset = MACHINE_CHIPSET_PROPRIETARY,
+ .init = machine_ps2_model_60_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_286 | CPU_PKG_486SLC_IBM,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 10000000,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2_MCA,
+ .flags = MACHINE_VIDEO,
+ .ram = {
+ .min = 1024,
+ .max = 10240,
+ .step = 1024
+ },
+ .nvrmask = 63,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ /* 386SX machines */
+ /* ISA slots available because an official IBM expansion for that existed. */
+ /* Has IBM PS/2 Type 1 KBC firmware. */
+ {
+ .name = "[ISA] IBM PS/1 model 2121",
+ .internal_name = "ibmps1_2121",
+ .type = MACHINE_TYPE_386SX,
+ .chipset = MACHINE_CHIPSET_PROPRIETARY,
+ .init = machine_ps1_m2121_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_386SX,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2,
+ .flags = MACHINE_IDE | MACHINE_VIDEO,
+ .ram = {
+ .min = 2048,
+ .max = 6144,
+ .step = 1024
+ },
+ .nvrmask = 63,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has IBM AT KBC firmware. */
+ {
+ .name = "[ISA] NCR PC916SX",
+ .internal_name = "pc916sx",
+ .type = MACHINE_TYPE_386SX,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_at_pc916sx_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_386SX,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 1024,
+ .max = 16384,
+ .step = 128
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has Quadtel KBC firmware. */
+ {
+ .name = "[ISA] QTC-SXM KT X20T02/HI",
+ .internal_name = "quadt386sx",
+ .type = MACHINE_TYPE_386SX,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_at_quadt386sx_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_386SX,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 1024,
+ .max = 16384,
+ .step = 128
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Most likely has Phonenix KBC firmware. */
+ {
+ .name = "[ACC 2036] Packard Bell Legend 300SX",
+ .internal_name = "pbl300sx",
+ .type = MACHINE_TYPE_386SX,
+ .chipset = MACHINE_CHIPSET_ACC_2036,
+ .init = machine_at_pbl300sx_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_386SX,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2,
+ .flags = MACHINE_IDE | MACHINE_VIDEO,
+ .ram = {
+ .min = 1024,
+ .max = 16384,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = &pbl300sx_device,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &oti037_pbl300sx_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* This has an AMIKey-2, which is an updated version of type 'H'. */
+ {
+ .name = "[ALi M1217] Acrosser AR-B1374",
+ .internal_name = "arb1374",
+ .type = MACHINE_TYPE_386SX,
+ .chipset = MACHINE_CHIPSET_ALI_M1217,
+ .init = machine_at_arb1374_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_386SX,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_IDE,
+ .ram = {
+ .min = 1024,
+ .max = 32768,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has the AMIKey-2 KBC. */
+ {
+ .name = "[ALi M1217] AAEON SBC-350A",
+ .internal_name = "sbc350a",
+ .type = MACHINE_TYPE_386SX,
+ .chipset = MACHINE_CHIPSET_ALI_M1217,
+ .init = machine_at_sbc350a_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_386SX,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_IDE,
+ .ram = {
+ .min = 1024,
+ .max = 16384,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has a VIA VT82C42N KBC. */
+ {
+ .name = "[ALi M1217] Flytech A36",
+ .internal_name = "flytech386",
+ .type = MACHINE_TYPE_386SX,
+ .chipset = MACHINE_CHIPSET_ALI_M1217,
+ .init = machine_at_flytech386_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_386SX,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_IDE | MACHINE_VIDEO,
+ .ram = {
+ .min = 1024,
+ .max = 16384,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &tvga8900d_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has a JetKey KBC without version, shows up as a 'H'. */
+ {
+ .name = "[ALi M1217] Chaintech 325AX",
+ .internal_name = "325ax",
+ .type = MACHINE_TYPE_386SX,
+ .chipset = MACHINE_CHIPSET_ALI_M1217,
+ .init = machine_at_325ax_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_386SX,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 1024,
+ .max = 16384,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has a JetKey KBC without version, shows up as a 'H'. */
+ {
+ .name = "[ALi M1217] Chaintech 325AX (MR BIOS)",
+ .internal_name = "mr1217",
+ .type = MACHINE_TYPE_386SX,
+ .chipset = MACHINE_CHIPSET_ALI_M1217,
+ .init = machine_at_mr1217_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_386SX,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 1024,
+ .max = 16384,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[ALi M1409] Acer 100T",
+ .internal_name = "acer100t",
+ .type = MACHINE_TYPE_386SX,
+ .chipset = MACHINE_CHIPSET_ALI_M1409,
+ .init = machine_at_acer100t_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_386SX,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 16000000,
+ .max_bus = 25000000, /* Limited to 25 due a inaccurate cpu speed */
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0,
+
+ },
+ .bus_flags = MACHINE_PS2,
+ .flags = MACHINE_IDE | MACHINE_VIDEO , /* Machine has internal OTI 077 Video card*/
+ .ram = {
+ .min = 2048,
+ .max = 16256,
+ .step = 128
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &oti077_acer100t_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has IBM PS/2 Type 1 KBC firmware. */
+ {
+ .name = "[ALi M6117] Acrosser PJ-A511M",
+ .internal_name = "pja511m",
+ .type = MACHINE_TYPE_386SX,
+ .chipset = MACHINE_CHIPSET_ALI_M6117,
+ .init = machine_at_pja511m_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_M6117,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2,
+ .flags = MACHINE_IDE,
+ .ram = {
+ .min = 1024,
+ .max = 32768,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has IBM PS/2 Type 1 KBC firmware. */
+ {
+ .name = "[ALi M6117] Protech ProX-1332",
+ .internal_name = "prox1332",
+ .type = MACHINE_TYPE_386SX,
+ .chipset = MACHINE_CHIPSET_ALI_M6117,
+ .init = machine_at_prox1332_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_M6117,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2,
+ .flags = MACHINE_IDE,
+ .ram = {
+ .min = 1024,
+ .max = 32768,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has an AMI KBC firmware, the only photo of this is too low resolution
+ for me to read what's on the KBC chip, so I'm going to assume AMI 'F'
+ based on the other known HT18 AMI BIOS strings. */
+ {
+ .name = "[HT18] Arche AMA-932J",
+ .internal_name = "ama932j",
+ .type = MACHINE_TYPE_386SX,
+ .chipset = MACHINE_CHIPSET_HT18,
+ .init = machine_at_ama932j_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_386SX,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_IDE | MACHINE_VIDEO,
+ .ram = {
+ .min = 512,
+ .max = 8192,
+ .step = 128
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &oti067_ama932j_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has an unknown KBC firmware with commands B8 and BB in the style of
+ Phoenix MultiKey and AMIKey-3(!), but also commands E1 and EA with
+ unknown functions. */
+ {
+ .name = "[Intel 82335] ADI 386SX",
+ .internal_name = "adi386sx",
+ .type = MACHINE_TYPE_386SX,
+ .chipset = MACHINE_CHIPSET_INTEL_82335,
+ .init = machine_at_adi386sx_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_386SX,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 512,
+ .max = 8192,
+ .step = 128
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has an AMI Keyboard BIOS PLUS KBC firmware ('8'). */
+ { .name = "[Intel 82335] Shuttle 386SX",
+ .internal_name = "shuttle386sx",
+ .type = MACHINE_TYPE_386SX,
+ .chipset = MACHINE_CHIPSET_INTEL_82335,
+ .init = machine_at_shuttle386sx_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_386SX,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 512,
+ .max = 8192,
+ .step = 128
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Uses Commodore (CBM) KBC firmware, to be implemented as identical to
+ the IBM PS/2 Type 1 KBC firmware unless evidence emerges of any
+ proprietary commands. */
+ {
+ .name = "[NEAT] Commodore SL386SX-16",
+ .internal_name = "cmdsl386sx16",
+ .type = MACHINE_TYPE_386SX,
+ .chipset = MACHINE_CHIPSET_NEAT,
+ .init = machine_at_cmdsl386sx16_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_386SX,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 1024,
+ .max = 8192,
+ .step = 512
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has IBM AT KBC firmware. */
+ {
+ .name = "[NEAT] DTK PM-1630C",
+ .internal_name = "dtk386",
+ .type = MACHINE_TYPE_386SX,
+ .chipset = MACHINE_CHIPSET_NEAT,
+ .init = machine_at_neat_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_386SX,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 512,
+ .max = 8192,
+ .step = 128
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ { .name = "[NEATsx] OKI if386AX30L",
+ .internal_name = "if386sx",
+ .type = MACHINE_TYPE_386SX,
+ .chipset = MACHINE_CHIPSET_NEAT_SX,
+ .init = machine_at_if386sx_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_386SX,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_VIDEO_FIXED | MACHINE_KEYBOARD | MACHINE_KEYBOARD_JIS | MACHINE_AX,
+ .ram = {
+ .min = 1024,
+ .max = 4096,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has IBM AT KBC firmware. */
+ {
+ .name = "[OPTi 291] DTK PPM-3333P",
+ .internal_name = "awardsx",
+ .type = MACHINE_TYPE_386SX,
+ .chipset = MACHINE_CHIPSET_OPTI_291,
+ .init = machine_at_awardsx_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_386SX,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 1024,
+ .max = 16384,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Uses Commodore (CBM) KBC firmware, to be implemented as identical to
+ the IBM PS/2 Type 1 KBC firmware unless evidence emerges of any
+ proprietary commands. */
+ {
+ .name = "[SCAMP] Commodore SL386SX-25",
+ .internal_name = "cmdsl386sx25",
+ .type = MACHINE_TYPE_386SX,
+ .chipset = MACHINE_CHIPSET_VLSI_SCAMP,
+ .init = machine_at_cmdsl386sx25_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_386SX,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2,
+ .flags = MACHINE_IDE | MACHINE_VIDEO,
+ .ram = {
+ .min = 1024,
+ .max = 8192,
+ .step = 512
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &gd5402_onboard_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* The closest BIOS string I find to this one's, differs only in one part,
+ and ends in -8, so I'm going to assume that this, too, has an AMI '8'
+ (AMI Keyboard BIOS Plus) KBC firmware. */
+ {
+ .name = "[SCAMP] DataExpert 386SX",
+ .internal_name = "dataexpert386sx",
+ .type = MACHINE_TYPE_386SX,
+ .chipset = MACHINE_CHIPSET_VLSI_SCAMP,
+ .init = machine_at_dataexpert386sx_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_386SX,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 10000000,
+ .max_bus = 25000000,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 1024,
+ .max = 16384,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* No proper pictures of the KBC exist, though it seems to have the IBM AT KBC
+ firmware. */
+ {
+ .name = "[SCAMP] Dell System 333s/L",
+ .internal_name = "dells333sl",
+ .type = MACHINE_TYPE_386SX,
+ .chipset = MACHINE_CHIPSET_VLSI_SCAMP,
+ .init = machine_at_dells333sl_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_386SX,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 10000000,
+ .max_bus = 33333333,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2,
+ .flags = MACHINE_IDE | MACHINE_VIDEO,
+ .ram = {
+ .min = 1024,
+ .max = 16384,
+ .step = 128
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = &dells333sl_device,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &gd5420_onboard_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has IBM PS/2 Type 1 KBC firmware. */
+ {
+ .name = "[SCAMP] Samsung SPC-6033P",
+ .internal_name = "spc6033p",
+ .type = MACHINE_TYPE_386SX,
+ .chipset = MACHINE_CHIPSET_VLSI_SCAMP,
+ .init = machine_at_spc6033p_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_386SX,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2,
+ .flags = MACHINE_IDE | MACHINE_VIDEO,
+ .ram = {
+ .min = 2048,
+ .max = 12288,
+ .step = 2048
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &ati28800k_spc6033p_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has an unknown AMI KBC firmware, I'm going to assume 'F' until a
+ photo or real hardware BIOS string is found. */
+ {
+ .name = "[SCATsx] Kaimei KMX-C-02",
+ .internal_name = "kmxc02",
+ .type = MACHINE_TYPE_386SX,
+ .chipset = MACHINE_CHIPSET_SCAT_SX,
+ .init = machine_at_kmxc02_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_386SX,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 512,
+ .max = 16384,
+ .step = 512
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has Quadtel KBC firmware. */
+ {
+ .name = "[WD76C10] Amstrad MegaPC",
+ .internal_name = "megapc",
+ .type = MACHINE_TYPE_386SX,
+ .chipset = MACHINE_CHIPSET_WD76C10,
+ .init = machine_at_wd76c10_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_386SX,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 16000000,
+ .max_bus = 25000000,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2,
+ .flags = MACHINE_IDE | MACHINE_VIDEO,
+ .ram = {
+ .min = 1024,
+ .max = 32768,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ /* 386SX machines which utilize the MCA bus */
+ /* Has IBM PS/2 Type 1 KBC firmware. */
+ {
+ .name = "[MCA] IBM PS/2 model 55SX",
+ .internal_name = "ibmps2_m55sx",
+ .type = MACHINE_TYPE_386SX,
+ .chipset = MACHINE_CHIPSET_PROPRIETARY,
+ .init = machine_ps2_model_55sx_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_386SX,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2_MCA,
+ .flags = MACHINE_VIDEO,
+ .ram = {
+ .min = 1024,
+ .max = 8192,
+ .step = 1024
+ },
+ .nvrmask = 63,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has IBM PS/2 Type 1 KBC firmware. */
+ {
+ .name = "[MCA] IBM PS/2 model 65SX",
+ .internal_name = "ibmps2_m65sx",
+ .type = MACHINE_TYPE_386SX,
+ .chipset = MACHINE_CHIPSET_PROPRIETARY,
+ .init = machine_ps2_model_65sx_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_386SX,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2_MCA,
+ .flags = MACHINE_VIDEO,
+ .ram = {
+ .min = 1024,
+ .max = 8192,
+ .step = 1024
+ },
+ .nvrmask = 63,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ /* 486SLC machines */
+ /* 486SLC machines with just the ISA slot */
+ /* Has AMIKey H KBC firmware. */
+ {
+ .name = "[OPTi 283] RYC Leopard LX",
+ .internal_name = "rycleopardlx",
+ .type = MACHINE_TYPE_486SLC,
+ .chipset = MACHINE_CHIPSET_OPTI_283,
+ .init = machine_at_rycleopardlx_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_486SLC_IBM,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 16384,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ /* 386DX machines */
+ /* Has a Jetkey V3, which identifies as a 'B'. */
+ {
+ .name = "[ACC 2168] Juko AT046DX3",
+ .internal_name = "acc386",
+ .type = MACHINE_TYPE_386DX,
+ .chipset = MACHINE_CHIPSET_ACC_2168,
+ .init = machine_at_acc386_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_386DX,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 16384,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has an AMI Keyboard BIOS PLUS KBC firmware ('8'). */
+ {
+ .name = "[C&T 386/AT] ECS 386/32",
+ .internal_name = "ecs386",
+ .type = MACHINE_TYPE_386DX,
+ .chipset = MACHINE_CHIPSET_CT_386,
+ .init = machine_at_ecs386_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_386DX,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 16384,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has IBM AT KBC firmware. */
+ {
+ .name = "[C&T 386/AT] Samsung SPC-6000A",
+ .internal_name = "spc6000a",
+ .type = MACHINE_TYPE_386DX,
+ .chipset = MACHINE_CHIPSET_CT_386,
+ .init = machine_at_spc6000a_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_386DX,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 32768,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Uses Compaq KBC firmware. */
+ {
+ .name = "[ISA] Compaq Deskpro 386 (September 1986)",
+ .internal_name = "deskpro386",
+ .type = MACHINE_TYPE_386DX,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_at_deskpro386_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_386DX_DESKPRO386,
+ .block = CPU_BLOCK(CPU_486DLC, CPU_RAPIDCAD),
+ .min_bus = 16000000,
+ .max_bus = 25000000,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 1024,
+ .max = 16384,
+ .step = 1024
+ },
+ .nvrmask = 63,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[ISA] Compaq Deskpro 386 (May 1988)",
+ .internal_name = "deskpro386_05_1988",
+ .type = MACHINE_TYPE_386DX,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_at_deskpro386_05_1988_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_386DX_DESKPRO386,
+ .block = CPU_BLOCK(CPU_486DLC, CPU_RAPIDCAD),
+ .min_bus = 16000000,
+ .max_bus = 25000000,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 1024,
+ .max = 16384,
+ .step = 1024
+ },
+ .nvrmask = 63,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[ISA] Compaq Portable III (386)",
+ .internal_name = "portableiii386",
+ .type = MACHINE_TYPE_386DX,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_at_portableiii386_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_386DX,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 20000000,
+ .max_bus = 20000000,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_IDE | MACHINE_VIDEO | MACHINE_KEYBOARD,
+ .ram = {
+ .min = 1024,
+ .max = 14336,
+ .step = 1024
+ },
+ .nvrmask = 63,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &compaq_plasma_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has IBM AT KBC firmware. */
+ {
+ .name = "[ISA] Micronics 09-00021 (Tandon BIOS)",
+ .internal_name = "micronics386",
+ .type = MACHINE_TYPE_386DX,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_at_micronics386_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_386DX,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_APM,
+ .ram = {
+ .min = 512,
+ .max = 8192,
+ .step = 128
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has IBM AT KBC firmware. */
+ {
+ .name = "[ISA] Micronics 09-00021 (Phoenix BIOS)",
+ .internal_name = "micronics386px",
+ .type = MACHINE_TYPE_386DX,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_at_micronics386px_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_386DX,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_APM,
+ .ram = {
+ .min = 512,
+ .max = 8192,
+ .step = 128
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has IBM AT KBC firmware. */
+ {
+ .name = "[ISA] Tandy 4000",
+ .internal_name = "tandy4000",
+ .type = MACHINE_TYPE_386DX,
+ .chipset = MACHINE_CHIPSET_DISCRETE,
+ .init = machine_at_tandy4000_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_386DX,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 16384,
+ .step = 1024
+ },
+ .nvrmask = 63,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has a Lance LT38C41 with AMI Megakey P KBC firmware */
+ {
+ .name = "[ALi M1429] ECS Panda 386V",
+ .internal_name = "ecs386v",
+ .type = MACHINE_TYPE_386DX,
+ .chipset = MACHINE_CHIPSET_ALI_M1429,
+ .init = machine_at_ecs386v_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_386DX,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0,
+ },
+ .bus_flags = MACHINE_VLB,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 1024,
+ .max = 32768,
+ .step = 1024,
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has AMIKey 'F' KBC firmware. */
+ {
+ .name = "[OPTi 391] DataExpert 386WB",
+ .internal_name = "dataexpert386wb",
+ .type = MACHINE_TYPE_386DX,
+ .chipset = MACHINE_CHIPSET_OPTI_391,
+ .init = machine_at_dataexpert386wb_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_386DX, /* Actual machine only supports 386DXes */
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 1024,
+ .max = 32768,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* The board has a "ASII KB-100" which I was not able to find any information about,
+ but the BIOS sends commands C9 without a parameter and D5, both of which are
+ Phoenix MultiKey commands. */
+ {
+ .name = "[OPTi 495SLC] U-Board OPTi 495SLC",
+ .internal_name = "award495",
+ .type = MACHINE_TYPE_386DX,
+ .chipset = MACHINE_CHIPSET_OPTI_495SLC,
+ .init = machine_at_opti495_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_386DX, /* Actual machine only supports 386DXes */
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 32768,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has Award KBC firmware. */
+ {
+ .name = "[SiS 310] ASUS 386/33-64K",
+ .internal_name = "asus3863364k",
+ .type = MACHINE_TYPE_386DX,
+ .chipset = MACHINE_CHIPSET_SIS_310,
+ .init = machine_at_asus3863364k_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_386DX,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 16384,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has AMIKey F KBC firmware. */
+ {
+ .name = "[SiS 310] ASUS ISA-386C",
+ .internal_name = "asus386",
+ .type = MACHINE_TYPE_386DX,
+ .chipset = MACHINE_CHIPSET_SIS_310,
+ .init = machine_at_asus386_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_386DX,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 65536,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ /* 386DX machines which utilize the MCA bus */
+ /* Has IBM PS/2 Type 1 KBC firmware. */
+ {
+ .name = "[MCA] IBM PS/2 model 80 (type 2)",
+ .internal_name = "ibmps2_m80",
+ .type = MACHINE_TYPE_386DX,
+ .chipset = MACHINE_CHIPSET_PROPRIETARY,
+ .init = machine_ps2_model_80_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_386DX | CPU_PKG_486BL,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2_MCA,
+ .flags = MACHINE_VIDEO | MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 65536,
+ .step = 1024
+ },
+ .nvrmask = 63,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has IBM PS/55 5551-Sxx, Txx stage 2 firmware. */
+ {
+ .name = "[MCA] IBM PS/55 model 5550-T",
+ .internal_name = "ibmps55_m50t",
+ .type = MACHINE_TYPE_386DX,
+ .chipset = MACHINE_CHIPSET_PROPRIETARY,
+ .init = machine_ps55_model_50t_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_386DX | CPU_PKG_486BL,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2_MCA,
+ .flags = MACHINE_VIDEO | MACHINE_KEYBOARD_JIS | MACHINE_APM,
+ .ram = {
+ .min = 2048,
+ .max = 16384,
+ .step = 2048
+ },
+ .nvrmask = 63,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has IBM PS/55 5551-V0x, V1x firmware. */
+ {
+ .name = "[MCA] IBM PS/55 model 5550-V",
+ .internal_name = "ibmps55_m50v",
+ .type = MACHINE_TYPE_386DX,
+ .chipset = MACHINE_CHIPSET_PROPRIETARY,
+ .init = machine_ps55_model_50v_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_386DX | CPU_PKG_486BL,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2_MCA,
+ .flags = MACHINE_VIDEO | MACHINE_KEYBOARD_JIS | MACHINE_APM,
+ .ram = {
+ .min = 4096,
+ .max = 16384,
+ .step = 4096
+ },
+ .nvrmask = 63,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ /* 386DX/486 machines */
+ /* Has AMIKey F KBC firmware. The EFAR chipst is a rebrand of OPTi 495SX. */
+ {
+ .name = "[OPTi 495SX] CAF Technology C747",
+ .internal_name = "c747",
+ .type = MACHINE_TYPE_386DX_486,
+ .chipset = MACHINE_CHIPSET_OPTI_495SX,
+ .init = machine_at_c747_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_386DX | CPU_PKG_SOCKET1,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_APM | MACHINE_IDE,
+ .ram = {
+ .min = 1024,
+ .max = 32768,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has AMIKey F KBC firmware. */
+ {
+ .name = "[OPTi 495SX] DataExpert SX495",
+ .internal_name = "ami495",
+ .type = MACHINE_TYPE_386DX_486,
+ .chipset = MACHINE_CHIPSET_OPTI_495SX,
+ .init = machine_at_opti495_ami_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_386DX | CPU_PKG_SOCKET1,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_VLB,
+ .flags = MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 32768,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has AMIKey F KBC firmware (it's just the MR BIOS for the above machine). */
+ {
+ .name = "[OPTi 495SX] DataExpert SX495 (MR BIOS)",
+ .internal_name = "mr495",
+ .type = MACHINE_TYPE_386DX_486,
+ .chipset = MACHINE_CHIPSET_OPTI_495SX,
+ .init = machine_at_opti495_mr_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_386DX | CPU_PKG_SOCKET1,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_VLB,
+ .flags = MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 32768,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Winbond W83C42 with unknown firmware. */
+ {
+ .name = "[ALi M1429G] DataExpert EXP4349",
+ .internal_name = "exp4349",
+ .type = MACHINE_TYPE_386DX_486,
+ .chipset = MACHINE_CHIPSET_ALI_M1429G,
+ .init = machine_at_exp4349_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_386DX | CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_VLB,
+ .flags = MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 49152,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has IBM PS/2 Type 1 KBC firmware. */
+ {
+ .name = "[MCA] IBM PS/2 model 70 (type 3)",
+ .internal_name = "ibmps2_m70_type3",
+ .type = MACHINE_TYPE_386DX_486,
+ .chipset = MACHINE_CHIPSET_PROPRIETARY,
+ .init = machine_ps2_model_70_type3_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_386DX | CPU_PKG_486BL | CPU_PKG_SOCKET1,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2_MCA,
+ .flags = MACHINE_VIDEO | MACHINE_APM,
+ .ram = {
+ .min = 2048,
+ .max = 65536,
+ .step = 2048
+ },
+ .nvrmask = 63,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has IBM PS/2 Type 1 KBC firmware. */
+ {
+ .name = "[MCA] IBM PS/2 model 80 (type 3)",
+ .internal_name = "ibmps2_m80_type3",
+ .type = MACHINE_TYPE_386DX_486,
+ .chipset = MACHINE_CHIPSET_PROPRIETARY,
+ .init = machine_ps2_model_80_axx_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_386DX | CPU_PKG_486BL | CPU_PKG_SOCKET1,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2_MCA,
+ .flags = MACHINE_VIDEO | MACHINE_APM,
+ .ram = {
+ .min = 2048,
+ .max = 65536,
+ .step = 2048
+ },
+ .nvrmask = 63,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ /* 486 machines - Socket 1 */
+ /* Has Award KBC firmware. */
+ {
+ .name = "[ZyMOS Poach] ASUS ISA-486C",
+ .internal_name = "isa486c",
+ .type = MACHINE_TYPE_486,
+ .chipset = MACHINE_CHIPSET_ZYMOS_POACH,
+ .init = machine_at_isa486c_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET1,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 16384,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has AMI KF KBC firmware. */
+ {
+ .name = "[ZyMOS Poach] Genoa Unknown 486",
+ .internal_name = "genoa486",
+ .type = MACHINE_TYPE_486,
+ .chipset = MACHINE_CHIPSET_ZYMOS_POACH,
+ .init = machine_at_genoa486_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET1,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 16384,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has AMI KF KBC firmware. */
+ {
+ .name = "[OPTi 381] Gigabyte GA-486L",
+ .internal_name = "ga486l",
+ .type = MACHINE_TYPE_486,
+ .chipset = MACHINE_CHIPSET_OPTI_381,
+ .init = machine_at_ga486l_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET1,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 16384,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has JetKey 5 KBC Firmware - but the BIOS string ends in a hardcoded -F, and
+ the BIOS also explicitly expects command A1 to return a 'F', so it looks like
+ the JetKey 5 is a clone of AMIKey type F. */
+ {
+ .name = "[CS4031] AMI 486 CS4031",
+ .internal_name = "cs4031",
+ .type = MACHINE_TYPE_486,
+ .chipset = MACHINE_CHIPSET_CT_CS4031,
+ .init = machine_at_cs4031_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET1,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_VLB,
+ .flags = MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 65536,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Uses some variant of Phoenix MultiKey/42 as the Intel 8242 chip has a Phoenix
+ copyright. */
+ {
+ .name = "[OPTi 498] Mylex MVI486",
+ .internal_name = "mvi486",
+ .type = MACHINE_TYPE_486,
+ .chipset = MACHINE_CHIPSET_OPTI_498,
+ .init = machine_at_mvi486_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET1,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_VLB,
+ .flags = MACHINE_IDE | MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 65536,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has AMI KF KBC firmware. */
+ {
+ .name = "[SiS 401] ASUS ISA-486",
+ .internal_name = "isa486",
+ .type = MACHINE_TYPE_486,
+ .chipset = MACHINE_CHIPSET_SIS_401,
+ .init = machine_at_isa486_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET1,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 65536,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has AMIKey H KBC firmware, per the screenshot in "How computers & MS-DOS work". */
+ {
+ .name = "[SiS 401] Chaintech 433SC",
+ .internal_name = "sis401",
+ .type = MACHINE_TYPE_486,
+ .chipset = MACHINE_CHIPSET_SIS_401,
+ .init = machine_at_sis401_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET1,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 65536,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has AMIKey F KBC firmware, per a photo of a monitor with the BIOS screen on
+ eBay. */
+ {
+ .name = "[SiS 460] ABIT AV4",
+ .internal_name = "av4",
+ .type = MACHINE_TYPE_486,
+ .chipset = MACHINE_CHIPSET_SIS_460,
+ .init = machine_at_av4_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET1,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_VLB,
+ .flags = MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 65536,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has Phoenix KBC firmware. */
+ {
+ .name = "[SiS 471] AST Advantage! 40xxd",
+ .internal_name = "advantage40xxd",
+ .type = MACHINE_TYPE_486,
+ .chipset = MACHINE_CHIPSET_SIS_471,
+ .init = machine_at_advantage40xxd_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET1,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 2
+ },
+ .bus_flags = MACHINE_PS2_VLB,
+ .flags = MACHINE_IDE | MACHINE_VIDEO | MACHINE_APM,
+ .ram = {
+ .min = 4096,
+ .max = 36864,
+ .step = 4096
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &gd5424_onboard_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has AMIKey F KBC firmware. */
+ {
+ .name = "[Symphony SL42C460] DTK PKM-0031Y",
+ .internal_name = "dtk461",
+ .type = MACHINE_TYPE_486,
+ .chipset = MACHINE_CHIPSET_SYMPHONY_SL82C460,
+ .init = machine_at_dtk461_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET1,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 32768,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* The chip is a Lance LT38C41, a clone of the Intel 8041, and the BIOS sends
+ commands BC, BD, and C9 which exist on both AMIKey and Phoenix MultiKey/42,
+ but it does not write a byte after C9, which is consistent with AMIKey, so
+ this must have some form of AMIKey. */
+ {
+ .name = "[VIA VT82C495] FIC 486-VC-HD",
+ .internal_name = "486vchd",
+ .type = MACHINE_TYPE_486,
+ .chipset = MACHINE_CHIPSET_VIA_VT82C495,
+ .init = machine_at_486vchd_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET1,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 64512,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has a VLSI VL82C113A SCAMP Combination I/O which holds the KBC. */
+ {
+ .name = "[VLSI 82C480] HP Vectra 486VL",
+ .internal_name = "vect486vl",
+ .type = MACHINE_TYPE_486,
+ .chipset = MACHINE_CHIPSET_VLSI_VL82C480,
+ .init = machine_at_vect486vl_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET1,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2,
+ .flags = MACHINE_IDE | MACHINE_VIDEO | MACHINE_APM,
+ .ram = {
+ .min = 2048,
+ .max = 32768,
+ .step = 2048
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL, /*Has SIO (sorta): VLSI VL82C113A SCAMP Combination I/O*/
+ .vid_device = &gd5428_onboard_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has a VLSI VL82C114 Combination I/O which holds the KBC. */
+ {
+ .name = "[VLSI 82C481] Siemens Nixdorf D824",
+ .internal_name = "d824",
+ .type = MACHINE_TYPE_486,
+ .chipset = MACHINE_CHIPSET_VLSI_VL82C481,
+ .init = machine_at_d824_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET1,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2,
+ .flags = MACHINE_IDE | MACHINE_VIDEO | MACHINE_APM,
+ .ram = {
+ .min = 2048,
+ .max = 32768,
+ .step = 2048
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &gd5428_onboard_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has a VLSI VL82C113A SCAMP Combination I/O which holds the KBC. */
+ {
+ .name = "[VLSI 82C486] Tulip 486 DC/DT",
+ .internal_name = "tuliptc38",
+ .type = MACHINE_TYPE_486,
+ .chipset = MACHINE_CHIPSET_VLSI_VL82C486,
+ .init = machine_at_tuliptc38_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET1,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_IDE | MACHINE_VIDEO | MACHINE_APM,
+ .ram = {
+ .min = 2048,
+ .max = 32768,
+ .step = 2048
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL, /*Has SIO (sorta): VLSI VL82C113A SCAMP Combination I/O*/
+ .vid_device = &gd5426_onboard_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has IBM PS/2 Type 1 KBC firmware. */
+ {
+ .name = "[MCA] IBM PS/2 model 70 (type 4)",
+ .internal_name = "ibmps2_m70_type4",
+ .type = MACHINE_TYPE_486,
+ .chipset = MACHINE_CHIPSET_PROPRIETARY,
+ .init = machine_ps2_model_70_type4_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET1,
+ .block = CPU_BLOCK(CPU_i486SX, CPU_i486SX_SLENH, CPU_Am486SX, CPU_Cx486S),
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2_MCA,
+ .flags = MACHINE_VIDEO | MACHINE_SOFTFLOAT_ONLY,
+ .ram = {
+ .min = 2048,
+ .max = 65536,
+ .step = 2048
+ },
+ .nvrmask = 63,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* 486 machines - Socket 2 */
+ /* 486 machines with just the ISA slot */
+ /* Uses some variant of Phoenix MultiKey/42 as the BIOS sends keyboard controller
+ command C7 (OR input byte with received data byte). */
+ {
+ .name = "[ACC 2168] Packard Bell PB410A",
+ .internal_name = "pb410a",
+ .type = MACHINE_TYPE_486_S2,
+ .chipset = MACHINE_CHIPSET_ACC_2168,
+ .init = machine_at_pb410a_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2,
+ .flags = MACHINE_IDE | MACHINE_VIDEO | MACHINE_APM | MACHINE_GAMEPORT,
+ .ram = {
+ .min = 4096,
+ .max = 36864,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &ht216_32_pb410a_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Uses an ACER/NEC 90M002A (UPD82C42C, 8042 clone) with unknown firmware (V4.01H). */
+ {
+ .name = "[ALi M1429G] Acer A1G",
+ .internal_name = "acera1g",
+ .type = MACHINE_TYPE_486_S2,
+ .chipset = MACHINE_CHIPSET_ALI_M1429G,
+ .init = machine_at_acera1g_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2,
+ .flags = MACHINE_IDE | MACHINE_VIDEO | MACHINE_APM,
+ .ram = {
+ .min = 4096,
+ .max = 36864,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &gd5428_onboard_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* This has an AMIKey-2, which is an updated version of type 'H'. */
+ {
+ .name = "[ALi M1429G] Kaimei SA-486 VL-BUS M.B.",
+ .internal_name = "win486",
+ .type = MACHINE_TYPE_486_S2,
+ .chipset = MACHINE_CHIPSET_ALI_M1429G,
+ .init = machine_at_winbios1429_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_VLB,
+ .flags = MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 32768,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has JetKey 5 KBC Firmware which looks like it is a clone of AMIKey type F.
+ It also has those Ex commands also seen on the VIA VT82C42N (the BIOS
+ supposedly sends command EF.
+ The board was also seen in 2003 with a -H string - perhaps someone swapped
+ the KBC? */
+ {
+ .name = "[ALi M1429] Olystar LIL1429",
+ .internal_name = "ali1429",
+ .type = MACHINE_TYPE_486_S2,
+ .chipset = MACHINE_CHIPSET_ALI_M1429,
+ .init = machine_at_ali1429_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_VLB,
+ .flags = MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 32768,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has AMI MegaKey KBC. */
+ {
+ .name = "[i420TX] J-Bond PCI400C-A",
+ .internal_name = "pci400ca",
+ .type = MACHINE_TYPE_486_S2,
+ .chipset = MACHINE_CHIPSET_INTEL_420TX,
+ .init = machine_at_pci400ca_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PCI,
+ .flags = MACHINE_SCSI,
+ .ram = {
+ .min = 1024,
+ .max = 65536,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = &kbc_at_ami_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* This has a standalone AMI Megakey 1993, which is type 'P'. */
+ {
+ .name = "[IMS 8848] Tekram G486IP",
+ .internal_name = "g486ip",
+ .type = MACHINE_TYPE_486_S2,
+ .chipset = MACHINE_CHIPSET_IMS_8848,
+ .init = machine_at_g486ip_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PCI,
+ .flags = MACHINE_APM,
+ .ram = {
+ .min = 2048,
+ .max = 131072,
+ .step = 2048
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[OPTi 499] Alaris Cobalt LPX",
+ .internal_name = "cobalt",
+ .type = MACHINE_TYPE_486_S2,
+ .chipset = MACHINE_CHIPSET_OPTI_499,
+ .init = machine_at_cobalt_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3 | CPU_PKG_486BL,
+ .block = CPU_BLOCK(CPU_P24T),
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2_VLB,
+ .flags = MACHINE_APM | MACHINE_VIDEO | MACHINE_IDE_DUAL,
+ .ram = {
+ .min = 1024,
+ .max = 65536,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &gd5428_vlb_onboard_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has AMIKey-2 'H' KBC firmware. */
+ {
+ .name = "[OPTi 499] Alaris COUGAR 486BL",
+ .internal_name = "cougar",
+ .type = MACHINE_TYPE_486_S2,
+ .chipset = MACHINE_CHIPSET_OPTI_499,
+ .init = machine_at_cougar_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3 | CPU_PKG_486BL,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_VLB,
+ .flags = MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 65536,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Uses an Intel KBC with Phoenix MultiKey KBC firmware. */
+ {
+ .name = "[SiS 461] DEC DECpc LPV",
+ .internal_name = "decpclpv",
+ .type = MACHINE_TYPE_486_S2,
+ .chipset = MACHINE_CHIPSET_SIS_461,
+ .init = machine_at_decpclpv_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2,
+ .flags = MACHINE_IDE | MACHINE_VIDEO | MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 32768,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &s3_86c805_onboard_vlb_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Uses a ???? KBC. */
+ {
+ .name = "[SiS 461] Dell 466/NP",
+ .internal_name = "dell466np",
+ .type = MACHINE_TYPE_486_S2,
+ .chipset = MACHINE_CHIPSET_SIS_461,
+ .init = machine_at_dell466np_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2,
+ .flags = MACHINE_IDE | MACHINE_VIDEO | MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 32768,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &gd5428_onboard_vlb_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* The BIOS does not send any non-standard keyboard controller commands and wants
+ a PS/2 mouse, so it's an IBM PS/2 KBC (Type 1) firmware. */
+ {
+ .name = "[SiS 461] IBM PS/ValuePoint 433DX/Si",
+ .internal_name = "valuepoint433",
+ .type = MACHINE_TYPE_486_S2,
+ .chipset = MACHINE_CHIPSET_SIS_461,
+ .init = machine_at_valuepoint433_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2,
+ .flags = MACHINE_IDE | MACHINE_VIDEO | MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 65536,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has a VLSI VL82C113A SCAMP Combination I/O which holds the KBC. */
+ {
+ .name = "[VLSI 82C480] ZEOS Martin",
+ .internal_name = "martin",
+ .type = MACHINE_TYPE_486_S2,
+ .chipset = MACHINE_CHIPSET_VLSI_VL82C480,
+ .init = machine_at_martin_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_VLB,
+ .flags = MACHINE_IDE | MACHINE_APM,
+ .ram = {
+ .min = 2048,
+ .max = 65536,
+ .step = 2048
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ /* 486 machines - Socket 3 */
+ /* 486 machines with just the ISA slot */
+ /* Has a Fujitsu MBL8042H KBC. */
+ {
+ .name = "[Contaq 82C596A] A-Trend 4GPV5",
+ .internal_name = "4gpv5",
+ .type = MACHINE_TYPE_486_S3,
+ .chipset = MACHINE_CHIPSET_CONTAQ_82C596,
+ .init = machine_at_4gpv5_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_VLB,
+ .flags = MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 65536,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has AMI MegaKey KBC firmware. */
+ {
+ .name = "[Contaq 82C597] Visionex Green-B",
+ .internal_name = "greenb",
+ .type = MACHINE_TYPE_486_S3,
+ .chipset = MACHINE_CHIPSET_CONTAQ_82C597,
+ .init = machine_at_greenb_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_VLB,
+ .flags = MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 65536,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Version 1.0 has an AMIKEY-2, version 2.0 has a VIA VT82C42N KBC. */
+ {
+ .name = "[OPTi 895] Jetway J-403TG",
+ .internal_name = "403tg",
+ .type = MACHINE_TYPE_486_S3,
+ .chipset = MACHINE_CHIPSET_OPTI_895_802G,
+ .init = machine_at_403tg_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_VLB,
+ .flags = MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 65536,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has JetKey 5 KBC Firmware which looks like it is a clone of AMIKey type F. */
+ {
+ .name = "[OPTi 895] Jetway J-403TG Rev D",
+ .internal_name = "403tg_d",
+ .type = MACHINE_TYPE_486_S3,
+ .chipset = MACHINE_CHIPSET_OPTI_895_802G,
+ .init = machine_at_403tg_d_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_VLB,
+ .flags = MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 65536,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has JetKey 5 KBC Firmware which looks like it is a clone of AMIKey type F. */
+ {
+ .name = "[OPTi 895] Jetway J-403TG Rev D (MR BIOS)",
+ .internal_name = "403tg_d_mr",
+ .type = MACHINE_TYPE_486_S3,
+ .chipset = MACHINE_CHIPSET_OPTI_895_802G,
+ .init = machine_at_403tg_d_mr_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_VLB,
+ .flags = MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 65536,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Uses an NEC 90M002A (UPD82C42C, 8042 clone) with unknown firmware. */
+ {
+ .name = "[SiS 461] Acer V10",
+ .internal_name = "acerv10",
+ .type = MACHINE_TYPE_486_S3,
+ .chipset = MACHINE_CHIPSET_SIS_461,
+ .init = machine_at_acerv10_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2_VLB,
+ .flags = MACHINE_IDE | MACHINE_APM, /* Machine has internal SCSI: Adaptec AIC-6360 */
+ .ram = {
+ .min = 1024,
+ .max = 32768,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* The BIOS string ends in -U, unless command 0xA1 (AMIKey get version) returns an
+ 'F', in which case, it ends in -F, so it has an AMIKey F KBC firmware.
+ The photo of the board shows an AMIKey KBC which is indeed F. */
+ {
+ .name = "[SiS 471] ABIT AB-AH4",
+ .internal_name = "win471",
+ .type = MACHINE_TYPE_486_S3,
+ .chipset = MACHINE_CHIPSET_SIS_471,
+ .init = machine_at_win471_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_VLB,
+ .flags = MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 131072,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has AMIKey-2 'H' keyboard BIOS. */
+ {
+ .name = "[SiS 471] AOpen Vi15G",
+ .internal_name = "vi15g",
+ .type = MACHINE_TYPE_486_S3,
+ .chipset = MACHINE_CHIPSET_SIS_471,
+ .init = machine_at_vi15g_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_VLB,
+ .flags = MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 131072,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* This has an AMIKey-2, which is an updated version of type 'H'. */
+ {
+ .name = "[SiS 471] ASUS VL/I-486SV2GX4",
+ .internal_name = "vli486sv2g",
+ .type = MACHINE_TYPE_486_S3,
+ .chipset = MACHINE_CHIPSET_SIS_471,
+ .init = machine_at_vli486sv2g_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2_VLB,
+ .flags = MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 65536,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has JetKey 5 KBC Firmware which looks like it is a clone of AMIKey type F. */
+ {
+ .name = "[SiS 471] DTK PKM-0038S E-2",
+ .internal_name = "dtk486",
+ .type = MACHINE_TYPE_486_S3,
+ .chipset = MACHINE_CHIPSET_SIS_471,
+ .init = machine_at_dtk486_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_VLB,
+ .flags = MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 131072,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has a Lance LT38C41L with AMIKey F keyboard BIOS. */
+ {
+ .name = "[SiS 471] Epox GXA486SG",
+ .internal_name = "ami471",
+ .type = MACHINE_TYPE_486_S3,
+ .chipset = MACHINE_CHIPSET_SIS_471,
+ .init = machine_at_ami471_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_VLB,
+ .flags = MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 131072,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has MR (!) KBC firmware, which is a clone of the standard IBM PS/2 KBC firmware. */
+ {
+ .name = "[SiS 471] SiS VL-BUS 471 REV. A1",
+ .internal_name = "px471",
+ .type = MACHINE_TYPE_486_S3,
+ .chipset = MACHINE_CHIPSET_SIS_471,
+ .init = machine_at_px471_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_VLB,
+ .flags = MACHINE_IDE | MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 131072,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* TriGem AMIBIOS Pre-Color with TriGem AMI 'Z' keyboard controller */
+ {
+ .name = "[SiS 471] TriGem 486G",
+ .internal_name = "tg486g",
+ .type = MACHINE_TYPE_486_S3,
+ .chipset = MACHINE_CHIPSET_SIS_471,
+ .init = machine_at_tg486g_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2_VLB,
+ .flags = MACHINE_IDE | MACHINE_APM, /* Has internal video: Western Digital WD90C33-ZZ */
+ .ram = {
+ .min = 4096,
+ .max = 40960,
+ .step = 4096
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Unknown revision phoenix 1993 multikey */
+ {
+ .name = "[SiS 471] DEC Venturis 4xx",
+ .internal_name = "dvent4xx",
+ .type = MACHINE_TYPE_486_S3,
+ .chipset = MACHINE_CHIPSET_SIS_471,
+ .init = machine_at_dvent4xx_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2,
+ .flags = MACHINE_IDE_DUAL | MACHINE_SUPER_IO | MACHINE_APM | MACHINE_VIDEO,
+ .ram = {
+ .min = 4096,
+ .max = 69632,
+ .step = 4096
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &s3_phoenix_trio32_onboard_vlb_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* This has an AMIKey-2, which is an updated version of type 'H'. */
+ {
+ .name = "[ALi M1429G] ECS AL486",
+ .internal_name = "ecsal486",
+ .type = MACHINE_TYPE_486_S3,
+ .chipset = MACHINE_CHIPSET_ALI_M1429G,
+ .init = machine_at_ecsal486_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_VLB,
+ .flags = MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 98304,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* This uses a VIA VT82C42N KBC, which is a clone of type 'F' with additional commands */
+ {
+ .name = "[ALi M1429G] Lanner Electronics AP-4100AA",
+ .internal_name = "ap4100aa",
+ .type = MACHINE_TYPE_486_S3,
+ .chipset = MACHINE_CHIPSET_ALI_M1429G,
+ .init = machine_at_ap4100aa_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_AT,
+ .flags = MACHINE_SUPER_IO | MACHINE_IDE | MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 32768,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* JETKey V5.0 */
+ {
+ .name = "[ALi M1429G] A-Trend ATC-1762",
+ .internal_name = "atc1762",
+ .type = MACHINE_TYPE_486_S3,
+ .chipset = MACHINE_CHIPSET_ALI_M1429G,
+ .init = machine_at_atc1762_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_VLB,
+ .flags = MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 40960,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ /* 486 machines which utilize the PCI bus */
+ /* Machine with ALi M1429G chipset and M1435 southbridge */
+ /* Has an AMIKEY-2 KBC. */
+ {
+ .name = "[ALi M1429G] MSI MS-4134",
+ .internal_name = "ms4134",
+ .type = MACHINE_TYPE_486_S3_PCI,
+ .chipset = MACHINE_CHIPSET_ALI_M1429G,
+ .init = machine_at_ms4134_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PCIV,
+ .flags = MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 131072,
+ .step = 1024
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* TriGem machine with M1429G and PhoenixBIOS */
+ {
+ .name = "[ALi M1429G] TriGem 486GP",
+ .internal_name = "tg486gp",
+ .type = MACHINE_TYPE_486_S3_PCI,
+ .chipset = MACHINE_CHIPSET_ALI_M1429G,
+ .init = machine_at_tg486gp_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2_PCIV,
+ .flags = MACHINE_IDE | MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 131072,
+ .step = 1024
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* This has an AMIKey-2, which is an updated version of type 'H'. */
+ {
+ .name = "[ALi M1489] AAEON SBC-490",
+ .internal_name = "sbc490",
+ .type = MACHINE_TYPE_486_S3_PCI,
+ .chipset = MACHINE_CHIPSET_ALI_M1489,
+ .init = machine_at_sbc490_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_VIDEO | MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 65536,
+ .step = 1024
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &tgui9440_onboard_pci_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has the ALi M1487/9's on-chip keyboard controller which clones a standard AT
+ KBC. */
+ {
+ .name = "[ALi M1489] ABIT AB-PB4",
+ .internal_name = "abpb4",
+ .type = MACHINE_TYPE_486_S3_PCI,
+ .chipset = MACHINE_CHIPSET_ALI_M1489,
+ .init = machine_at_abpb4_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PCI, /* Machine has a PISA slot */
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 65536,
+ .step = 1024
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has the ALi M1487/9's on-chip keyboard controller which clones a standard AT
+ KBC.
+ The BIOS string always ends in -U, but the BIOS will send AMIKey commands 0xCA
+ and 0xCB if command 0xA1 returns a letter in the 0x5x or 0x7x ranges, so I'm
+ going to give it an AMI 'U' KBC. */
+ {
+ .name = "[ALi M1489] AMI WinBIOS 486 PCI",
+ .internal_name = "win486pci",
+ .type = MACHINE_TYPE_486_S3_PCI,
+ .chipset = MACHINE_CHIPSET_ALI_M1489,
+ .init = machine_at_win486pci_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 65536,
+ .step = 1024
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has the ALi M1487/9's on-chip keyboard controller which clones a standard AT
+ KBC.
+ The known BIOS string ends in -E, and the BIOS returns whatever command 0xA1
+ returns (but only if command 0xA1 is instant response), so said ALi keyboard
+ controller likely returns 'E'. */
+ {
+ .name = "[ALi M1489] MSI MS-4145",
+ .internal_name = "ms4145",
+ .type = MACHINE_TYPE_486_S3_PCI,
+ .chipset = MACHINE_CHIPSET_ALI_M1489,
+ .init = machine_at_ms4145_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 65536,
+ .step = 1024
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has an ALi M5042 keyboard controller with Phoenix MultiKey/42 v1.40 firmware. */
+ {
+ .name = "[ALi M1489] ESA TF-486",
+ .internal_name = "tf486",
+ .type = MACHINE_TYPE_486_S3_PCI,
+ .chipset = MACHINE_CHIPSET_ALI_M1489,
+ .init = machine_at_tf486_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 65536,
+ .step = 1024
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has an ALi M5042 with phoenix firmware like the ESA TF-486. */
+ {
+ .name = "[ALi M1489] Acrosser AR-B1476",
+ .internal_name = "arb1476",
+ .type = MACHINE_TYPE_486_S3_PCI,
+ .chipset = MACHINE_CHIPSET_ALI_M1489,
+ .init = machine_at_arb1476_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2,
+ .flags = MACHINE_SUPER_IO | MACHINE_IDE | MACHINE_APM, /* Has onboard video: C&T F65545 */
+ .ram = {
+ .min = 1024,
+ .max = 32768,
+ .step = 1024
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has IBM PS/2 Type 1 KBC firmware. */
+ {
+ .name = "[OPTi 802G] IBM Aptiva 510/710/Vision",
+ .internal_name = "aptiva510",
+ .type = MACHINE_TYPE_486_S3_PCI,
+ .chipset = MACHINE_CHIPSET_OPTI_895_802G,
+ .init = machine_at_aptiva510_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3_PC330,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 25000000,
+ .max_bus = 33333333,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 2.0,
+ .max_multi = 3.0
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE | MACHINE_VIDEO | MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 65536,
+ .step = 1024
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &gd5430_onboard_vlb_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has IBM PS/2 Type 1 KBC firmware. */
+ {
+ .name = "[OPTi 802G] IBM PC 330 (type 6573)",
+ .internal_name = "pc330_6573",
+ .type = MACHINE_TYPE_486_S3_PCI,
+ .chipset = MACHINE_CHIPSET_OPTI_895_802G,
+ .init = machine_at_pc330_6573_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3_PC330,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 25000000,
+ .max_bus = 33333333,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 2.0,
+ .max_multi = 3.0
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE | MACHINE_VIDEO | MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 65536,
+ .step = 1024
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &gd5430_onboard_vlb_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* has a Phoenix PLCC Multikey copyrighted 1993, version unknown. */
+ {
+ .name = "[OPTi 895] Packard Bell PB450",
+ .internal_name = "pb450",
+ .type = MACHINE_TYPE_486_S3_PCI,
+ .chipset = MACHINE_CHIPSET_OPTI_895_802G,
+ .init = machine_at_pb450_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_SUPER_IO | MACHINE_IDE_DUAL | MACHINE_VIDEO,
+ .ram = {
+ .min = 1024,
+ .max = 65536,
+ .step = 1024
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = &pb450_device,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &gd5428_vlb_onboard_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* This has an AMIKey-2, which is an updated version of type 'H'. */
+ {
+ .name = "[i420EX] ASUS PVI-486AP4",
+ .internal_name = "486ap4",
+ .type = MACHINE_TYPE_486_S3_PCI,
+ .chipset = MACHINE_CHIPSET_INTEL_420EX,
+ .init = machine_at_486ap4_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2_PCIV,
+ .flags = MACHINE_IDE | MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 131072,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* This has the Phoenix MultiKey KBC firmware. */
+ {
+ .name = "[i420EX] Intel Classic/PCI ED",
+ .internal_name = "ninja",
+ .type = MACHINE_TYPE_486_S3_PCI,
+ .chipset = MACHINE_CHIPSET_INTEL_420EX,
+ .init = machine_at_ninja_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PCI,
+ .flags = MACHINE_IDE | MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 131072,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has Phoenix Multikey/42 PS/2 KBC, but unknown version */
+ {
+ .name = "[i420EX] Anigma BAT4IP3e",
+ .internal_name = "bat4ip3e",
+ .type = MACHINE_TYPE_486_S3_PCI,
+ .chipset = MACHINE_CHIPSET_INTEL_420EX,
+ .init = machine_at_bat4ip3e_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_SUPER_IO | MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 131072,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* This has an AMIKey-2, which is an updated version of type 'H'. */
+ {
+ .name = "[i420EX] Advanced Integration Research 486PI",
+ .internal_name = "486pi",
+ .type = MACHINE_TYPE_486_S3_PCI,
+ .chipset = MACHINE_CHIPSET_INTEL_420EX,
+ .init = machine_at_486pi_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PCIV,
+ .flags = MACHINE_SUPER_IO | MACHINE_IDE | MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 131072,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* absolutely no KBC info */
+ {
+ .name = "[i420EX] ICS SB486P",
+ .internal_name = "sb486p",
+ .type = MACHINE_TYPE_486_S3_PCI,
+ .chipset = MACHINE_CHIPSET_INTEL_420EX,
+ .init = machine_at_sb486p_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PCI,
+ .flags = MACHINE_SUPER_IO | MACHINE_IDE | MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 131072,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /*
+ This has an AMIKey (and an on-board NCR 53C810 PCI SCSI controller), thanks, eBay!
+ The keyboard port is AT.
+ */
+ {
+ .name = "[i420TX] ASUS PCI/I-486SP3",
+ .internal_name = "486sp3",
+ .type = MACHINE_TYPE_486_S3_PCI,
+ .chipset = MACHINE_CHIPSET_INTEL_420TX,
+ .init = machine_at_486sp3_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PCI,
+ .flags = MACHINE_IDE | MACHINE_SCSI | MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 131072,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* This has the Phoenix MultiKey KBC firmware. */
+ {
+ .name = "[i420TX] Intel Classic/PCI",
+ .internal_name = "alfredo",
+ .type = MACHINE_TYPE_486_S3_PCI,
+ .chipset = MACHINE_CHIPSET_INTEL_420TX,
+ .init = machine_at_alfredo_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE | MACHINE_APM,
+ .ram = {
+ .min = 2048,
+ .max = 131072,
+ .step = 2048
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* According to another string seen on the UH19 website, this has AMI 'H' KBC. */
+ {
+ .name = "[i420TX] AMI Super Voyager PCI",
+ .internal_name = "amis76",
+ .type = MACHINE_TYPE_486_S3_PCI,
+ .chipset = MACHINE_CHIPSET_INTEL_420TX,
+ .init = machine_at_amis76_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PCI,
+ .flags = MACHINE_SUPER_IO | MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 131072,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* This has an AMIKey-2, which is an updated version of type 'H'. Also has a
+ SST 29EE010 Flash chip. */
+ {
+ .name = "[i420ZX] ASUS PCI/I-486SP3G",
+ .internal_name = "486sp3g",
+ .type = MACHINE_TYPE_486_S3_PCI,
+ .chipset = MACHINE_CHIPSET_INTEL_420ZX,
+ .init = machine_at_486sp3g_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE | MACHINE_SCSI | MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 131072,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* This has an AMI MEGAKey 'P' or 'R' keyboard controller. */
+ {
+ .name = "[i420ZX] ICS SB486PV",
+ .internal_name = "sb486pv",
+ .type = MACHINE_TYPE_486_S3_PCI,
+ .chipset = MACHINE_CHIPSET_INTEL_420ZX,
+ .init = machine_at_sb486pv_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ /* Has PCI but no user-facing slots. */
+ .bus_flags = MACHINE_PCI,
+ .flags = MACHINE_PS2_KBC | MACHINE_IDE | MACHINE_VIDEO | MACHINE_APM | MACHINE_PCI_INTERNAL,
+ .ram = {
+ .min = 2048,
+ .max = 65536,
+ .step = 2048
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = &sb486pv_device,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &gd5436_onboard_pci_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* This most likely has a standalone AMI Megakey 1993, which is type 'P', like the below Tekram board. */
+ {
+ .name = "[IMS 8848] J-Bond PCI400C-B",
+ .internal_name = "pci400cb",
+ .type = MACHINE_TYPE_486_S3_PCI,
+ .chipset = MACHINE_CHIPSET_IMS_8848,
+ .init = machine_at_pci400cb_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PCIV,
+ .flags = MACHINE_APM,
+ .ram = {
+ .min = 2048,
+ .max = 131072,
+ .step = 2048
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[SiS 496] Acer P3",
+ .internal_name = "acerp3",
+ .type = MACHINE_TYPE_486_S3_PCI,
+ .chipset = MACHINE_CHIPSET_SIS_496,
+ .init = machine_at_acerp3_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_VIDEO,
+ .ram = {
+ .min = 2048,
+ .max = 131072,
+ .step = 1024
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &gd5434_onboard_pci_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* This has an AMIKey-2, which is an updated version of type 'H'. */
+ {
+ .name = "[SiS 496] ASUS PVI-486SP3C",
+ .internal_name = "486sp3c",
+ .type = MACHINE_TYPE_486_S3_PCI,
+ .chipset = MACHINE_CHIPSET_SIS_496,
+ .init = machine_at_486sp3c_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2_PCIV,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 261120,
+ .step = 1024
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* This has an AMIKey-2, which is an updated version of type 'H'. */
+ {
+ .name = "[SiS 496] Lucky Star LS-486E",
+ .internal_name = "ls486e",
+ .type = MACHINE_TYPE_486_S3_PCI,
+ .chipset = MACHINE_CHIPSET_SIS_496,
+ .init = machine_at_ls486e_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PCI,
+ .flags = MACHINE_PS2_KBC | MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 131072,
+ .step = 1024
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has a VIA VT82C42N KBC. */
+ {
+ .name = "[SiS 496] Micronics M4Li",
+ .internal_name = "m4li",
+ .type = MACHINE_TYPE_486_S3_PCI,
+ .chipset = MACHINE_CHIPSET_SIS_496,
+ .init = machine_at_m4li_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 131072,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Revision 1 has a Lance LT38C41L, revision 2 has a Holtek HT6542B. Another variant with a Bestkey KBC might exist as well. */
+ {
+ .name = "[SiS 496] Rise Computer R418",
+ .internal_name = "r418",
+ .type = MACHINE_TYPE_486_S3_PCI,
+ .chipset = MACHINE_CHIPSET_SIS_496,
+ .init = machine_at_r418_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PCI,
+ .flags = MACHINE_PS2_KBC | MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 261120,
+ .step = 1024
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* This has a Holtek HT6542B KBC and the BIOS does not send a single non-standard KBC command, so it
+ must be an ASIC that clones the standard IBM PS/2 KBC. */
+ {
+ .name = "[SiS 496] Soyo 4SAW2",
+ .internal_name = "4saw2",
+ .type = MACHINE_TYPE_486_S3_PCI,
+ .chipset = MACHINE_CHIPSET_SIS_496,
+ .init = machine_at_4saw2_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK(CPU_i486SX, CPU_i486DX, CPU_Am486SX, CPU_Am486DX),
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2_PCIV,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 2048,
+ .max = 261120,
+ .step = 1024
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* According to MrKsoft, his real 4DPS has an AMIKey-2, which is an updated version
+ of type 'H'. There are other variants of the board with Holtek HT6542B KBCs. */
+ {
+ .name = "[SiS 496] Zida Tomato 4DP",
+ .internal_name = "4dps",
+ .type = MACHINE_TYPE_486_S3_PCI,
+ .chipset = MACHINE_CHIPSET_SIS_496,
+ .init = machine_at_4dps_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_GAMEPORT,
+ .ram = {
+ .min = 2048,
+ .max = 261120,
+ .step = 1024
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* AMIKEY-2 */
+ {
+ .name = "[SiS 496] MSI MS-4144",
+ .internal_name = "ms4144",
+ .type = MACHINE_TYPE_486_S3_PCI,
+ .chipset = MACHINE_CHIPSET_SIS_496,
+ .init = machine_at_ms4144_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PCI,
+ .flags = MACHINE_SUPER_IO | MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 5120, /* Hack: machine seems to break with less than 5 MBs of RAM */
+ .max = 131072,
+ .step = 1024
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* This has the UMC 88xx on-chip KBC. */
+ {
+ .name = "[UMC 8881] A-Trend ATC-1415",
+ .internal_name = "atc1415",
+ .type = MACHINE_TYPE_486_S3_PCI,
+ .chipset = MACHINE_CHIPSET_UMC_UM8881,
+ .init = machine_at_atc1415_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 65536,
+ .step = 1024
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* This has the UMC 88xx on-chip KBC. All the copies of the BIOS string I can find, end in
+ in -H, so the UMC on-chip KBC likely emulates the AMI 'H' KBC firmware. */
+ {
+ .name = "[UMC 8881] Biostar MB-84xxUUD-A",
+ .internal_name = "84xxuuda",
+ .type = MACHINE_TYPE_486_S3_PCI,
+ .chipset = MACHINE_CHIPSET_UMC_UM8881,
+ .init = machine_at_84xxuuda_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 131072,
+ .step = 1024
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* This has an AMIKey-2, which is an updated version of type 'H'. */
+ {
+ .name = "[UMC 8881] ECS Elite UM8810P-AIO",
+ .internal_name = "ecs486",
+ .type = MACHINE_TYPE_486_S3_PCI,
+ .chipset = MACHINE_CHIPSET_UMC_UM8881,
+ .init = machine_at_ecs486_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PCI,
+ .flags = MACHINE_PS2_KBC | MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 131072,
+ .step = 1024
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has AMIKey Z(!) KBC firmware. */
+ {
+ .name = "[UMC 8881] Epson ActionPC 2600",
+ .internal_name = "actionpc2600",
+ .type = MACHINE_TYPE_486_S3_PCI,
+ .chipset = MACHINE_CHIPSET_UMC_UM8881,
+ .init = machine_at_actionpc2600_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_VIDEO,
+ .ram = {
+ .min = 1024,
+ .max = 262144,
+ .step = 1024
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &tgui9440_onboard_pci_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* This has the UMC 88xx on-chip KBC. All the copies of the BIOS string I can find, end in
+ in -H, so the UMC on-chip KBC likely emulates the AMI 'H' KBC firmware. */
+ {
+ .name = "[UMC 8881] Epson ActionTower 8400",
+ .internal_name = "actiontower8400",
+ .type = MACHINE_TYPE_486_S3_PCI,
+ .chipset = MACHINE_CHIPSET_UMC_UM8881,
+ .init = machine_at_actiontower8400_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_SUPER_IO | MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_VIDEO,
+ .ram = {
+ .min = 1024,
+ .max = 262144,
+ .step = 1024
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &gd5430_onboard_pci_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* This has the UMC 88xx on-chip KBC. All the copies of the BIOS string I can find, end in
+ in -H, so the UMC on-chip KBC likely emulates the AMI 'H' KBC firmware. */
+ {
+ .name = "[UMC 8881] PC Chips M919",
+ .internal_name = "m919",
+ .type = MACHINE_TYPE_486_S3_PCI,
+ .chipset = MACHINE_CHIPSET_UMC_UM8881,
+ .init = machine_at_m919_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PCIV,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 131072,
+ .step = 1024
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has IBM PS/2 Type 1 KBC firmware. Uses a mysterious I/O port C05. */
+ {
+ .name = "[UMC 8881] Samsung SPC7700P-LW",
+ .internal_name = "spc7700plw",
+ .type = MACHINE_TYPE_486_S3_PCI,
+ .chipset = MACHINE_CHIPSET_UMC_UM8881,
+ .init = machine_at_spc7700plw_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 131072,
+ .step = 1024
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* This has a Holtek KBC. */
+ {
+ .name = "[UMC 8881] Shuttle HOT-433A",
+ .internal_name = "hot433a",
+ .type = MACHINE_TYPE_486_S3_PCI,
+ .chipset = MACHINE_CHIPSET_UMC_UM8881,
+ .init = machine_at_hot433a_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 262144,
+ .step = 1024
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = &hot433a_device,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Compaq Presario 7100 / 7200 Series, using MiTAC/Trigon PL4600C (486). */
+ /* Has a VIA VT82C42N KBC. */
+ {
+ .name = "[UMC 8881] Compaq Presario 7100/7200 Series 486",
+ .internal_name = "pl4600c",
+ .type = MACHINE_TYPE_486_S3_PCI,
+ .chipset = MACHINE_CHIPSET_UMC_UM8881,
+ .init = machine_at_pl4600c_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_VIDEO | MACHINE_SOUND | MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 65536,
+ .step = 1024
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &gd5430_onboard_pci_device,
+ .snd_device = &ess_1688_device,
+ .net_device = NULL
+ },
+ /* Has a VIA VT82C406 KBC+RTC that likely has identical commands to the VT82C42N. */
+ {
+ .name = "[VIA VT82C496G] DFI G486VPA",
+ .internal_name = "g486vpa",
+ .type = MACHINE_TYPE_486_S3_PCI,
+ .chipset = MACHINE_CHIPSET_VIA_VT82C496G,
+ .init = machine_at_g486vpa_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2_PCIV,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 1024,
+ .max = 131072,
+ .step = 1024
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has a VIA VT82C42N KBC. */
+ {
+ .name = "[VIA VT82C496G] FIC VIP-IO2",
+ .internal_name = "486vipio2",
+ .type = MACHINE_TYPE_486_S3_PCI,
+ .chipset = MACHINE_CHIPSET_VIA_VT82C496G,
+ .init = machine_at_486vipio2_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET3,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2_PCIV,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_GAMEPORT,
+ .ram = {
+ .min = 1024,
+ .max = 131072,
+ .step = 1024
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ /* 486 machines - Miscellaneous */
+ /* 486 machines which utilize the PCI bus */
+ /* Has a Winbond W83977F Super I/O chip with on-chip KBC with AMIKey-2 KBC
+ firmware. */
+ {
+ .name = "[STPC Client] ITOX STAR",
+ .internal_name = "itoxstar",
+ .type = MACHINE_TYPE_486_MISC,
+ .chipset = MACHINE_CHIPSET_STPC_CLIENT,
+ .init = machine_at_itoxstar_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_STPC,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 75000000,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 1.0,
+ .max_multi = 1.0
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 8192,
+ .max = 131072,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has a Winbond W83977F Super I/O chip with on-chip KBC with AMIKey-2 KBC
+ firmware. */
+ {
+ .name = "[STPC Consumer-II] Acrosser AR-B1423C",
+ .internal_name = "arb1423c",
+ .type = MACHINE_TYPE_486_MISC,
+ .chipset = MACHINE_CHIPSET_STPC_CONSUMER_II,
+ .init = machine_at_arb1423c_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_STPC,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 66666667,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 2.0,
+ .max_multi = 2.0
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_PCI_INTERNAL, /* Machine has internal video: ST STPC Atlas */
+ .ram = {
+ .min = 32768,
+ .max = 163840,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has a Winbond W83977F Super I/O chip with on-chip KBC with AMIKey-2 KBC
+ firmware. */
+ {
+ .name = "[STPC Consumer-II] Acrosser AR-B1479",
+ .internal_name = "arb1479",
+ .type = MACHINE_TYPE_486_MISC,
+ .chipset = MACHINE_CHIPSET_STPC_CONSUMER_II,
+ .init = machine_at_arb1479_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_STPC,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 66666667,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 2.0,
+ .max_multi = 2.0
+ },
.bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_SOUND | MACHINE_APM | MACHINE_ACPI | MACHINE_USB, /* Video: ATi 3D Rage Pro, Network: 3Com 3C905, Sound: Crystal CS4236B */
- .ram = {
- .min = 8192,
- .max = 786432,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL, /* not yet emulated */
- .snd_device = &cs4236b_device,
- .net_device = NULL /* not yet emulated */
- },
- /* Has a SM(S)C FDC37C935 Super I/O chip with on-chip KBC with Phoenix
- MultiKey/42 (version 1.38) KBC firmware. */
- {
- .name = "[i440LX] Micronics Spitfire",
- .internal_name = "spitfire",
- .type = MACHINE_TYPE_SLOT1,
- .chipset = MACHINE_CHIPSET_INTEL_440LX,
- .init = machine_at_spitfire_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SLOT1,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 66666667,
- .min_voltage = 1800,
- .max_voltage = 3500,
- .min_multi = 1.5,
- .max_multi = 8.0
- },
- .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 1048576,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has a SM(S)C FDC37C67x Super I/O chip with on-chip KBC with Phoenix or
- AMIKey-2 KBC firmware. */
- {
- .name = "[i440LX] NEC Mate NX MA30D/23D",
- .internal_name = "ma30d",
- .type = MACHINE_TYPE_SLOT1,
- .chipset = MACHINE_CHIPSET_INTEL_440LX,
- .init = machine_at_ma30d_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SLOT1,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 66666667,
- .min_voltage = 1800,
- .max_voltage = 3500,
- .min_multi = 1.5,
- .max_multi = 8.0
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB, /* Has internal video: SGS Thompson Riva 128 AGP, network: NEC PK-UG-X006 (Intel 82558B chip) and sound: OAK Audia 3D (OTI-610) */
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 786432,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_PCI_INTERNAL | MACHINE_USB, /* Machine has internal video: ST STPC Atlas */
+ .ram = {
+ .min = 32768,
+ .max = 163840,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has a Winbond W83977F Super I/O chip with on-chip KBC with AMIKey-2 KBC
+ firmware. */
+ {
+ .name = "[STPC Consumer-II] Lanner Electronics IAC-H488",
+ .internal_name = "iach488",
+ .type = MACHINE_TYPE_486_MISC,
+ .chipset = MACHINE_CHIPSET_STPC_CONSUMER_II,
+ .init = machine_at_iach488_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_STPC,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 66666667,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 2.0,
+ .max_multi = 2.0
+ },
+ .bus_flags = MACHINE_PS2,
+ .flags = MACHINE_IDE | MACHINE_APM | MACHINE_PCI_INTERNAL, /* Machine has internal video: ST STPC Atlas and NIC: Realtek RTL8139C+ */
+ .ram = {
+ .min = 32768,
+ .max = 131072,
+ .step = 32768
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has a Winbond W83977F Super I/O chip with on-chip KBC with AMIKey-2 KBC
+ firmware. */
+ {
+ .name = "[STPC Elite] Advantech PCM-9340",
+ .internal_name = "pcm9340",
+ .type = MACHINE_TYPE_486_MISC,
+ .chipset = MACHINE_CHIPSET_STPC_ELITE,
+ .init = machine_at_pcm9340_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_STPC,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 66666667,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 2.0,
+ .max_multi = 2.0
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_PCI_INTERNAL,
+ .ram = {
+ .min = 32768,
+ .max = 98304,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has a Winbond W83977F Super I/O chip with on-chip KBC with AMIKey-2 KBC
+ firmware. */
+ {
+ .name = "[STPC Atlas] AAEON PCM-5330",
+ .internal_name = "pcm5330",
+ .type = MACHINE_TYPE_486_MISC,
+ .chipset = MACHINE_CHIPSET_STPC_ATLAS,
+ .init = machine_at_pcm5330_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_STPC,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 66666667,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 2.0,
+ .max_multi = 2.0
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_PCI_INTERNAL,
+ .ram = {
+ .min = 32768,
+ .max = 131072,
+ .step = 32768
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ /* Socket 4 machines */
+ /* 430LX */
+ {
+ .name = "[i430LX] Acer V12P",
+ .internal_name = "v12p",
+ .type = MACHINE_TYPE_SOCKET4,
+ .chipset = MACHINE_CHIPSET_INTEL_430LX,
+ .init = machine_at_v12p_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET4,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 60000000,
+ .max_bus = 66666667,
+ .min_voltage = 5000,
+ .max_voltage = 5000,
+ .min_multi = MACHINE_MULTIPLIER_FIXED,
+ .max_multi = MACHINE_MULTIPLIER_FIXED
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE | MACHINE_APM,
+ .ram = {
+ .min = 2048,
+ .max = 196608,
+ .step = 2048
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = &v12p_device,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has AMIKey H KBC firmware (AMIKey-2), per POST screen with BIOS string
+ shown in the manual. Has PS/2 mouse support with serial-style (DB9)
+ connector.
+ The boot block for BIOS recovery requires an unknown bit on port 805h
+ to be clear. */
+ {
+ .name = "[i430LX] AMI Excalibur PCI Pentium",
+ .internal_name = "excaliburpci",
+ .type = MACHINE_TYPE_SOCKET4,
+ .chipset = MACHINE_CHIPSET_INTEL_430LX,
+ .init = machine_at_excaliburpci_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET4,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 60000000,
+ .max_bus = 66666667,
+ .min_voltage = 5000,
+ .max_voltage = 5000,
+ .min_multi = MACHINE_MULTIPLIER_FIXED,
+ .max_multi = MACHINE_MULTIPLIER_FIXED
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE | MACHINE_APM, /* Machine has internal SCSI */
+ .ram = {
+ .min = 2048,
+ .max = 131072,
+ .step = 2048
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has AMIKey F KBC firmware (AMIKey). */
+ {
+ .name = "[i430LX] ASUS P/I-P5MP3",
+ .internal_name = "p5mp3",
+ .type = MACHINE_TYPE_SOCKET4,
+ .chipset = MACHINE_CHIPSET_INTEL_430LX,
+ .init = machine_at_p5mp3_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET4,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 60000000,
+ .max_bus = 66666667,
+ .min_voltage = 5000,
+ .max_voltage = 5000,
+ .min_multi = MACHINE_MULTIPLIER_FIXED,
+ .max_multi = MACHINE_MULTIPLIER_FIXED
+ },
+ .bus_flags = MACHINE_PCI,
+ .flags = MACHINE_PS2_KBC | MACHINE_APM,
+ .ram = {
+ .min = 2048,
+ .max = 196608,
+ .step = 2048
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has IBM PS/2 Type 1 KBC firmware. */
+ {
+ .name = "[i430LX] Dell Dimension XPS P60",
+ .internal_name = "dellxp60",
+ .type = MACHINE_TYPE_SOCKET4,
+ .chipset = MACHINE_CHIPSET_INTEL_430LX,
+ .init = machine_at_dellxp60_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET4,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 60000000,
+ .max_bus = 66666667,
+ .min_voltage = 5000,
+ .max_voltage = 5000,
+ .min_multi = MACHINE_MULTIPLIER_FIXED,
+ .max_multi = MACHINE_MULTIPLIER_FIXED
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE | MACHINE_APM,
+ .ram = {
+ .min = 2048,
+ .max = 131072,
+ .step = 2048
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has IBM PS/2 Type 1 KBC firmware. */
+ {
+ .name = "[i430LX] Dell OptiPlex 560/L",
+ .internal_name = "opti560l",
+ .type = MACHINE_TYPE_SOCKET4,
+ .chipset = MACHINE_CHIPSET_INTEL_430LX,
+ .init = machine_at_opti560l_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET4,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 60000000,
+ .max_bus = 66666667,
+ .min_voltage = 5000,
+ .max_voltage = 5000,
+ .min_multi = MACHINE_MULTIPLIER_FIXED,
+ .max_multi = MACHINE_MULTIPLIER_FIXED
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE | MACHINE_APM,
+ .ram = {
+ .min = 2048,
+ .max = 131072,
+ .step = 2048
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* This has the Phoenix MultiKey KBC firmware.
+ This is basically an Intel Batman (*NOT* Batman's Revenge) with a fancier
+ POST screen */
+ {
+ .name = "[i430LX] AMBRA DP60 PCI",
+ .internal_name = "ambradp60",
+ .type = MACHINE_TYPE_SOCKET4,
+ .chipset = MACHINE_CHIPSET_INTEL_430LX,
+ .init = machine_at_ambradp60_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET4,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 60000000,
+ .max_bus = 66666667,
+ .min_voltage = 5000,
+ .max_voltage = 5000,
+ .min_multi = MACHINE_MULTIPLIER_FIXED,
+ .max_multi = MACHINE_MULTIPLIER_FIXED
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE | MACHINE_APM,
+ .ram = {
+ .min = 2048,
+ .max = 131072,
+ .step = 2048
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has IBM PS/2 Type 1 KBC firmware. */
+ {
+ .name = "[i430LX] IBM PS/ValuePoint P60",
+ .internal_name = "valuepointp60",
+ .type = MACHINE_TYPE_SOCKET4,
+ .chipset = MACHINE_CHIPSET_INTEL_430LX,
+ .init = machine_at_valuepointp60_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET4,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 60000000,
+ .max_bus = 66666667,
+ .min_voltage = 5000,
+ .max_voltage = 5000,
+ .min_multi = MACHINE_MULTIPLIER_FIXED,
+ .max_multi = MACHINE_MULTIPLIER_FIXED
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_VIDEO | MACHINE_VIDEO_8514A | MACHINE_APM,
+ .ram = {
+ .min = 2048,
+ .max = 131072,
+ .step = 2048
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &mach32_onboard_pci_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* This has the Phoenix MultiKey KBC firmware. */
+ {
+ .name = "[i430LX] Intel Premiere/PCI",
+ .internal_name = "revenge",
+ .type = MACHINE_TYPE_SOCKET4,
+ .chipset = MACHINE_CHIPSET_INTEL_430LX,
+ .init = machine_at_revenge_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET4,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 60000000,
+ .max_bus = 66666667,
+ .min_voltage = 5000,
+ .max_voltage = 5000,
+ .min_multi = MACHINE_MULTIPLIER_FIXED,
+ .max_multi = MACHINE_MULTIPLIER_FIXED
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 2048,
+ .max = 131072,
+ .step = 2048
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has AMI MegaKey 'H' KBC firmware. */
+ {
+ .name = "[i430LX] Gigabyte GA-586IS",
+ .internal_name = "586is",
+ .type = MACHINE_TYPE_SOCKET4,
+ .chipset = MACHINE_CHIPSET_INTEL_430LX,
+ .init = machine_at_586is_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET4,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 60000000,
+ .max_bus = 66666667,
+ .min_voltage = 5000,
+ .max_voltage = 5000,
+ .min_multi = MACHINE_MULTIPLIER_FIXED,
+ .max_multi = MACHINE_MULTIPLIER_FIXED
+ },
+ .bus_flags = MACHINE_PCI,
+ .flags = MACHINE_APM,
+ .ram = {
+ .min = 2048,
+ .max = 131072,
+ .step = 2048
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* This has the Phoenix MultiKey KBC firmware. */
+ {
+ .name = "[i430LX] Packard Bell PB520R",
+ .internal_name = "pb520r",
+ .type = MACHINE_TYPE_SOCKET4,
+ .chipset = MACHINE_CHIPSET_INTEL_430LX,
+ .init = machine_at_pb520r_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET4,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 60000000,
+ .max_bus = 66666667,
+ .min_voltage = 5000,
+ .max_voltage = 5000,
+ .min_multi = MACHINE_MULTIPLIER_FIXED,
+ .max_multi = MACHINE_MULTIPLIER_FIXED
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_VIDEO | MACHINE_APM,
+ .ram = {
+ .min = 8192,
+ .max = 139264,
+ .step = 2048
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &gd5434_onboard_pci_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* The M5Pi appears to have a Phoenix MultiKey KBC firmware according to photos. */
+ {
+ .name = "[i430LX] Micronics M5Pi",
+ .internal_name = "m5pi",
+ .type = MACHINE_TYPE_SOCKET4,
+ .chipset = MACHINE_CHIPSET_INTEL_430LX,
+ .init = machine_at_m5pi_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET4,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 60000000,
+ .max_bus = 66666667,
+ .min_voltage = 5000,
+ .max_voltage = 5000,
+ .min_multi = MACHINE_MULTIPLIER_FIXED,
+ .max_multi = MACHINE_MULTIPLIER_FIXED
+ },
+ .bus_flags = MACHINE_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 2048,
+ .max = 131072,
+ .step = 2048
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ /* OPTi 596/597 */
+ /* This uses an AMI KBC firmware in PS/2 mode (it sends command A5 with the
+ PS/2 "Load Security" meaning), most likely MegaKey as it sends command AF
+ (Set Extended Controller RAM) just like the later Intel AMI BIOS'es. */
+ {
+ .name = "[OPTi 597] AMI Excalibur VLB",
+ .internal_name = "excalibur",
+ .type = MACHINE_TYPE_SOCKET4,
+ .chipset = MACHINE_CHIPSET_OPTI_547_597,
+ .init = machine_at_excalibur_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET4,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 60000000,
+ .max_bus = 60000000,
+ .min_voltage = 5000,
+ .max_voltage = 5000,
+ .min_multi = MACHINE_MULTIPLIER_FIXED,
+ .max_multi = MACHINE_MULTIPLIER_FIXED
+ },
+ .bus_flags = MACHINE_PS2_VLB,
+ .flags = MACHINE_IDE | MACHINE_APM,
+ .ram = {
+ .min = 2048,
+ .max = 65536,
+ .step = 2048
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ /* OPTi 596/597/822 */
+ /* Has a VIA VT82C42N KBC with AMI 'F' firmware */
+ {
+ .name = "[OPTi 597] AT&T Globalyst 330 (Pentium)",
+ .internal_name = "globalyst330_p5",
+ .type = MACHINE_TYPE_SOCKET4,
+ .chipset = MACHINE_CHIPSET_OPTI_547_597,
+ .init = machine_at_globalyst330_p5_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET4,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 60000000,
+ .max_bus = 66666667,
+ .min_voltage = 5000,
+ .max_voltage = 5000,
+ .min_multi = MACHINE_MULTIPLIER_FIXED,
+ .max_multi = MACHINE_MULTIPLIER_FIXED
+ },
+ .bus_flags = MACHINE_PCIV,
+ .flags = MACHINE_APM,
+ .ram = {
+ .min = 8192,
+ .max = 65536,
+ .step = 8192
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* This has AMIKey 'F' KBC firmware. */
+ {
+ .name = "[OPTi 597] Supermicro P5VL-PCI",
+ .internal_name = "p5vl",
+ .type = MACHINE_TYPE_SOCKET4,
+ .chipset = MACHINE_CHIPSET_OPTI_547_597,
+ .init = machine_at_p5vl_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET4,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 60000000,
+ .max_bus = 66666667,
+ .min_voltage = 5000,
+ .max_voltage = 5000,
+ .min_multi = MACHINE_MULTIPLIER_FIXED,
+ .max_multi = MACHINE_MULTIPLIER_FIXED
+ },
+ .bus_flags = MACHINE_PCIV,
+ .flags = MACHINE_APM,
+ .ram = {
+ .min = 8192,
+ .max = 131072,
+ .step = 8192
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ /* SiS 50x */
+ /* This has some form of AMI MegaKey as it uses keyboard controller command 0xCC. */
+ {
+ .name = "[SiS 501] AMI Excalibur PCI-II Pentium ISA",
+ .internal_name = "excaliburpci2",
+ .type = MACHINE_TYPE_SOCKET4,
+ .chipset = MACHINE_CHIPSET_SIS_501,
+ .init = machine_at_excaliburpci2_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET4,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 60000000,
+ .max_bus = 66666667,
+ .min_voltage = 5000,
+ .max_voltage = 5000,
+ .min_multi = MACHINE_MULTIPLIER_FIXED,
+ .max_multi = MACHINE_MULTIPLIER_FIXED
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 8192,
+ .max = 131072,
+ .step = 8192
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* This has an AMIKey-2, which is an updated version of type 'H'. */
+ {
+ .name = "[SiS 501] ASUS PCI/I-P5SP4",
+ .internal_name = "p5sp4",
+ .type = MACHINE_TYPE_SOCKET4,
+ .chipset = MACHINE_CHIPSET_SIS_501,
+ .init = machine_at_p5sp4_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET4,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 60000000,
+ .max_bus = 66666667,
+ .min_voltage = 5000,
+ .max_voltage = 5000,
+ .min_multi = MACHINE_MULTIPLIER_FIXED,
+ .max_multi = MACHINE_MULTIPLIER_FIXED
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 8192,
+ .max = 131072,
+ .step = 8192
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Socket 5 machines */
+ /* 430NX */
+ /* This has the Phoenix MultiKey KBC firmware. */
+ {
+ .name = "[i430NX] Intel Premiere/PCI II",
+ .internal_name = "plato",
+ .type = MACHINE_TYPE_SOCKET5,
+ .chipset = MACHINE_CHIPSET_INTEL_430NX,
+ .init = machine_at_plato_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_Cx6x86),
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 3520,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 1.5
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 2048,
+ .max = 131072,
+ .step = 2048
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Same as Intel Premiere PCI/II, but with a Dell OEM BIOS */
+ {
+ .name = "[i430NX] Dell Dimension XPS Pxxx",
+ .internal_name = "dellplato",
+ .type = MACHINE_TYPE_SOCKET5,
+ .chipset = MACHINE_CHIPSET_INTEL_430NX,
+ .init = machine_at_dellplato_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_Cx6x86),
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 3520,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 1.5
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 2048,
+ .max = 131072,
+ .step = 2048
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ {
+ .name = "[i430NX] Siemens-Nixdorf D842",
+ .internal_name = "d842",
+ .type = MACHINE_TYPE_SOCKET5,
+ .chipset = MACHINE_CHIPSET_INTEL_430NX,
+ .init = machine_at_d842_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 3380,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 2.0
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 2048,
+ .max = 131072,
+ .step = 2048
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = &d842_device,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* This has the Phoenix MultiKey KBC firmware.
+ This is basically an Intel Premiere/PCI II with a fancier POST screen. */
+ {
+ .name = "[i430NX] AMBRA DP90 PCI",
+ .internal_name = "ambradp90",
+ .type = MACHINE_TYPE_SOCKET5,
+ .chipset = MACHINE_CHIPSET_INTEL_430NX,
+ .init = machine_at_ambradp90_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_Cx6x86),
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 3380,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 1.5
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 2048,
+ .max = 131072,
+ .step = 2048
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has AMI 'H' KBC firmware. */
+ {
+ .name = "[i430NX] ASUS PCI/I-P54NP4",
+ .internal_name = "p54np4",
+ .type = MACHINE_TYPE_SOCKET5,
+ .chipset = MACHINE_CHIPSET_INTEL_430NX,
+ .init = machine_at_p54np4_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 60000000,
+ .max_bus = 66666667,
+ .min_voltage = 3520,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 1.5
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE /*| MACHINE_SCSI */ | MACHINE_APM,
+ .ram = {
+ .min = 2048,
+ .max = 524288,
+ .step = 2048
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has AMI 'H' KBC firmware. */
+ {
+ .name = "[i430NX] Gigabyte GA-586IP",
+ .internal_name = "586ip",
+ .type = MACHINE_TYPE_SOCKET5,
+ .chipset = MACHINE_CHIPSET_INTEL_430NX,
+ .init = machine_at_586ip_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 60000000,
+ .max_bus = 66666667,
+ .min_voltage = 3520,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 1.5
+ },
+ .bus_flags = MACHINE_PCI,
+ .flags = MACHINE_APM,
+ .ram = {
+ .min = 2048,
+ .max = 262144,
+ .step = 2048
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has AMI MegaKey KBC firmware. */
+ {
+ .name = "[i430NX] Teknor TEK-932",
+ .internal_name = "tek932",
+ .type = MACHINE_TYPE_SOCKET5,
+ .chipset = MACHINE_CHIPSET_INTEL_430NX,
+ .init = machine_at_tek932_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 60000000,
+ .max_bus = 66666667,
+ .min_voltage = 3520,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 1.5
+ },
+ .bus_flags = MACHINE_PCI,
+ .flags = MACHINE_IDE | MACHINE_APM,
+ .ram = {
+ .min = 2048,
+ .max = 262144,
+ .step = 2048
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ /* 430FX */
+ /* Uses an ACER/NEC 90M002A (UPD82C42C, 8042 clone) with unknown firmware (V5.0). */
+ {
+ .name = "[i430FX] Acer V30",
+ .internal_name = "acerv30",
+ .type = MACHINE_TYPE_SOCKET5,
+ .chipset = MACHINE_CHIPSET_INTEL_430FX,
+ .init = machine_at_acerv30_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 3380,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 2.0
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 8192,
+ .max = 131072,
+ .step = 8192
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has AMIKey F KBC firmware. */
+ {
+ .name = "[i430FX] AMI Apollo",
+ .internal_name = "apollo",
+ .type = MACHINE_TYPE_SOCKET5,
+ .chipset = MACHINE_CHIPSET_INTEL_430FX,
+ .init = machine_at_apollo_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 3380,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 2.0
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 8192,
+ .max = 131072,
+ .step = 8192
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has a National Semiconductor PC87332VLJ Super I/O with AMIKey 'F' KBC firmware. */
+ {
+ .name = "[i430FX] Dell OptiPlex GXL/GXM",
+ .internal_name = "optiplexgxl",
+ .type = MACHINE_TYPE_SOCKET5,
+ .chipset = MACHINE_CHIPSET_INTEL_430FX,
+ .init = machine_at_optiplexgxl_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK(CPU_Cx6x86),
+ .min_bus = 60000000,
+ .max_bus = 66666667,
+ .min_voltage = 3380,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.0
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_VIDEO | MACHINE_SOUND | MACHINE_APM, /* Video: S3 Trio64V+ (86C765), Sound: Creative ViBRA 16S (CT2504), Network: 3Com ETHERLINK III (3C509B) */
+ .ram = {
+ .min = 8192,
+ .max = 131072,
+ .step = 8192
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &s3_phoenix_trio64vplus_onboard_pci_device,
+ .snd_device = &sb_vibra16s_onboard_device,
+ .net_device = NULL /* not yet emulated */
+ },
+ /* According to tests from real hardware: This has AMI MegaKey KBC firmware on the
+ PC87306 Super I/O chip, command 0xA1 returns '5'.
+ Command 0xA0 copyright string: (C)1994 AMI . */
+ {
+ .name = "[i430FX] Intel Advanced/ZP",
+ .internal_name = "zappa",
+ .type = MACHINE_TYPE_SOCKET5,
+ .chipset = MACHINE_CHIPSET_INTEL_430FX,
+ .init = machine_at_zappa_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_Cx6x86),
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 3380,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 2.0
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 8192,
+ .max = 131072,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* The BIOS sends KBC command B3 which indicates an AMI (or VIA VT82C42N) KBC. */
+ {
+ .name = "[i430FX] NEC PowerMate V",
+ .internal_name = "powermatev",
+ .type = MACHINE_TYPE_SOCKET5,
+ .chipset = MACHINE_CHIPSET_INTEL_430FX,
+ .init = machine_at_powermatev_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 3380,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 2.0
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 8192,
+ .max = 131072,
+ .step = 8192
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has AMIKey Z(!) KBC firmware. */
+ {
+ .name = "[i430FX] TriGem Hawk",
+ .internal_name = "hawk",
+ .type = MACHINE_TYPE_SOCKET5,
+ .chipset = MACHINE_CHIPSET_INTEL_430FX,
+ .init = machine_at_hawk_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 3380,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 2.0
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 8192,
+ .max = 131072,
+ .step = 8192
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* KBC On-Chip the VT82C406MV. */
+ {
+ .name = "[i430FX] FIC PT-2000",
+ .internal_name = "pt2000",
+ .type = MACHINE_TYPE_SOCKET5,
+ .chipset = MACHINE_CHIPSET_INTEL_430FX,
+ .init = machine_at_pt2000_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 3380,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 2.0
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 8192,
+ .max = 131072,
+ .step = 8192
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ /* OPTi 596/597 */
+ /* This uses an AMI KBC firmware in PS/2 mode (it sends command A5 with the
+ PS/2 "Load Security" meaning), most likely MegaKey as it sends command AF
+ (Set Extended Controller RAM) just like the later Intel AMI BIOS'es. */
+ {
+ .name = "[OPTi 597] TMC PAT54PV",
+ .internal_name = "pat54pv",
+ .type = MACHINE_TYPE_SOCKET5,
+ .chipset = MACHINE_CHIPSET_OPTI_547_597,
+ .init = machine_at_pat54pv_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK(CPU_K5, CPU_5K86),
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 3520,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 1.5
+ },
+ .bus_flags = MACHINE_VLB,
+ .flags = MACHINE_APM,
+ .ram = {
+ .min = 2048,
+ .max = 65536,
+ .step = 2048
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ /* OPTi 596/597/822 */
+ {
+ .name = "[OPTi 597] Shuttle HOT-543",
+ .internal_name = "hot543",
+ .type = MACHINE_TYPE_SOCKET5,
+ .chipset = MACHINE_CHIPSET_OPTI_547_597,
+ .init = machine_at_hot543_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 3520,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 2.0
+ },
+ .bus_flags = MACHINE_PCIV,
+ .flags = MACHINE_APM,
+ .ram = {
+ .min = 8192,
+ .max = 131072,
+ .step = 8192
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ {
+ .name = "[OPTi 597] Northgate Computer Systems Elegance Pentium 90",
+ .internal_name = "ncselp90",
+ .type = MACHINE_TYPE_SOCKET5,
+ .chipset = MACHINE_CHIPSET_OPTI_547_597,
+ .init = machine_at_ncselp90_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 3520,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 2.0
+ },
+ .bus_flags = MACHINE_PS2_PCIV,
+ .flags = MACHINE_APM | MACHINE_IDE_DUAL | MACHINE_SUPER_IO,
+ .ram = {
+ .min = 8192,
+ .max = 131072,
+ .step = 8192
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ /* SiS 85C50x */
+ /* This has an AMIKey-2, which is an updated version of type 'H'. */
+ {
+ .name = "[SiS 501] ASUS PCI/I-P54SP4",
+ .internal_name = "p54sp4",
+ .type = MACHINE_TYPE_SOCKET5,
+ .chipset = MACHINE_CHIPSET_SIS_501,
+ .init = machine_at_p54sp4_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK(CPU_K5, CPU_5K86),
+ .min_bus = 40000000,
+ .max_bus = 66666667,
+ .min_voltage = 3380,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 1.5
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 8192,
+ .max = 131072,
+ .step = 8192
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* This has an AMIKey-2, which is an updated version of type 'H'. */
+ {
+ .name = "[SiS 501] BCM SQ-588",
+ .internal_name = "sq588",
+ .type = MACHINE_TYPE_SOCKET5,
+ .chipset = MACHINE_CHIPSET_SIS_501,
+ .init = machine_at_sq588_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK(CPU_PENTIUMMMX),
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 3520,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 1.5
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 8192,
+ .max = 131072,
+ .step = 8192
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* This machine has a Winbond W83C842 KBC */
+ {
+ .name = "[SiS 501] Gemlight GMB-P54SPS",
+ .internal_name = "p54sps",
+ .type = MACHINE_TYPE_SOCKET5,
+ .chipset = MACHINE_CHIPSET_SIS_501,
+ .init = machine_at_p54sps_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ CPU_BLOCK(CPU_PENTIUMMMX),
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 3520,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 1.5
+ },
+ .bus_flags = MACHINE_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 8192,
+ .max = 131072,
+ .step = 8192
+ },
+ .nvrmask = 127,
+ .kbc_device = &kbc_at_ami_device,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* This has an AMIKey-2, which is an updated version of type 'H'. */
+ {
+ .name = "[SiS 5501] MSI MS-5109",
+ .internal_name = "ms5109",
+ .type = MACHINE_TYPE_SOCKET5,
+ .chipset = MACHINE_CHIPSET_SIS_5501,
+ .init = machine_at_ms5109_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ CPU_BLOCK(CPU_PENTIUMMMX),
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 3520,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 1.5
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 8192,
+ .max = 131072,
+ .step = 8192
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has AMIKey Z(!) KBC firmware. */
+ {
+ .name = "[SiS 5501] TriGem Torino",
+ .internal_name = "torino",
+ .type = MACHINE_TYPE_SOCKET5,
+ .chipset = MACHINE_CHIPSET_SIS_5501,
+ .init = machine_at_torino_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ CPU_BLOCK(CPU_PENTIUMMMX),
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 3520,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 1.5
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_VIDEO | MACHINE_APM,
+ .ram = {
+ .min = 8192,
+ .max = 131072,
+ .step = 8192
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &tgui9660_onboard_pci_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ /* UMC 889x */
+ /* This has an AMIKey-2, which is an updated version of type 'H'. */
+ {
+ .name = "[UMC 889x] Shuttle HOT-539",
+ .internal_name = "hot539",
+ .type = MACHINE_TYPE_SOCKET5,
+ .chipset = MACHINE_CHIPSET_UMC_UM8890BF,
+ .init = machine_at_hot539_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK(CPU_K5, CPU_5K86),
+ .min_bus = 40000000,
+ .max_bus = 66666667,
+ .min_voltage = 3380,
+ .max_voltage = 3600,
+ .min_multi = 1.5,
+ .max_multi = 2.0
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 8192,
+ .max = 262144,
+ .step = 8192
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ /* Socket 7 (Single Voltage) machines */
+ /* 430FX */
+ /* This has an AMIKey-2, which is an updated version of type 'H'.
+ This also seems to be revision 2.1 with the FDC37C665 SIO. */
+ {
+ .name = "[i430FX] ASUS P/I-P55TP4XE",
+ .internal_name = "p54tp4xe",
+ .type = MACHINE_TYPE_SOCKET7_3V,
+ .chipset = MACHINE_CHIPSET_INTEL_430FX,
+ .init = machine_at_p54tp4xe_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 3380,
+ .max_voltage = 3600,
+ .min_multi = 1.5,
+ .max_multi = 3.0
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 8192,
+ .max = 131072,
+ .step = 8192
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* This has an AMIKey-2, which is an updated version of type 'H'. */
+ {
+ .name = "[i430FX] ASUS P/I-P55TP4XE (MR BIOS)",
+ .internal_name = "p54tp4xe_mr",
+ .type = MACHINE_TYPE_SOCKET7_3V,
+ .chipset = MACHINE_CHIPSET_INTEL_430FX,
+ .init = machine_at_p54tp4xe_mr_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 3380,
+ .max_voltage = 3600,
+ .min_multi = 1.5,
+ .max_multi = 3.0
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 8192,
+ .max = 131072,
+ .step = 8192
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has AMIKey H KBC firmware. The KBC itself seems to differ between an AMIKEY-2 and a Winbond W83C42. */
+ {
+ .name = "[i430FX] DataExpert EXP8551",
+ .internal_name = "exp8551",
+ .type = MACHINE_TYPE_SOCKET7_3V,
+ .chipset = MACHINE_CHIPSET_INTEL_430FX,
+ .init = machine_at_exp8551_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 3380,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.0
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 8192,
+ .max = 131072,
+ .step = 8192
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* According to tests from real hardware: This has AMI MegaKey KBC firmware on the
+ PC87306 Super I/O chip, command 0xA1 returns '5'.
+ Command 0xA0 copyright string: (C)1994 AMI . */
+ {
+ .name = "[i430FX] Gateway 2000 Thor",
+ .internal_name = "gw2katx",
+ .type = MACHINE_TYPE_SOCKET7_3V,
+ .chipset = MACHINE_CHIPSET_INTEL_430FX,
+ .init = machine_at_gw2katx_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_Cx6x86),
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 3380,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.0
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_GAMEPORT,
+ .ram = {
+ .min = 8192,
+ .max = 131072,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has a SM(S)C FDC37C932 Super I/O chip with on-chip KBC with AMI
+ MegaKey (revision '5') KBC firmware. */
+ {
+ .name = "[i430FX] HP Vectra VL 5 Series 4",
+ .internal_name = "vectra54",
+ .type = MACHINE_TYPE_SOCKET7_3V,
+ .chipset = MACHINE_CHIPSET_INTEL_430FX,
+ .init = machine_at_vectra54_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 3380,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 2.0
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_VIDEO | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 131072,
+ .step = 8192
+ },
+ .nvrmask = 511,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &s3_phoenix_trio64_onboard_pci_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* According to tests from real hardware: This has AMI MegaKey KBC firmware on the
+ PC87306 Super I/O chip, command 0xA1 returns '5'.
+ Command 0xA0 copyright string: (C)1994 AMI . */
+ {
+ .name = "[i430FX] Intel Advanced/ATX",
+ .internal_name = "thor",
+ .type = MACHINE_TYPE_SOCKET7_3V,
+ .chipset = MACHINE_CHIPSET_INTEL_430FX,
+ .init = machine_at_thor_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_Cx6x86),
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 3380,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.0
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_VIDEO | MACHINE_APM | MACHINE_GAMEPORT,
+ .ram = {
+ .min = 8192,
+ .max = 131072,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &s3_phoenix_trio64vplus_onboard_pci_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* According to tests from real hardware: This has AMI MegaKey KBC firmware on the
+ PC87306 Super I/O chip, command 0xA1 returns '5'.
+ Command 0xA0 copyright string: (C)1994 AMI . */
+ {
+ .name = "[i430FX] Intel Advanced/ATX (MR BIOS)",
+ .internal_name = "mrthor",
+ .type = MACHINE_TYPE_SOCKET7_3V,
+ .chipset = MACHINE_CHIPSET_INTEL_430FX,
+ .init = machine_at_mrthor_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 3380,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.0
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_GAMEPORT,
+ .ram = {
+ .min = 8192,
+ .max = 131072,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* According to tests from real hardware: This has AMI MegaKey KBC firmware on the
+ PC87306 Super I/O chip, command 0xA1 returns '5'.
+ Command 0xA0 copyright string: (C)1994 AMI . */
+ {
+ .name = "[i430FX] Intel Advanced/EV",
+ .internal_name = "endeavor",
+ .type = MACHINE_TYPE_SOCKET7_3V,
+ .chipset = MACHINE_CHIPSET_INTEL_430FX,
+ .init = machine_at_endeavor_init,
+ .p1_handler = NULL,
+ .gpio_handler = machine_at_endeavor_gpio_handler,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_Cx6x86),
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 3380,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.0
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_VIDEO | MACHINE_SOUND | MACHINE_APM,
+ .ram = {
+ .min = 8192,
+ .max = 131072,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &s3_phoenix_trio64_onboard_pci_device,
+ .snd_device = &sb_vibra16s_onboard_device,
+ .net_device = NULL
+ },
+ /* This has an AMIKey-2, which is an updated version of type 'H'. */
+ {
+ .name = "[i430FX] MSI MS-5119",
+ .internal_name = "ms5119",
+ .type = MACHINE_TYPE_SOCKET7_3V,
+ .chipset = MACHINE_CHIPSET_INTEL_430FX,
+ .init = machine_at_ms5119_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 2500,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.0
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 8192,
+ .max = 131072,
+ .step = 8192
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* This most likely uses AMI MegaKey KBC firmware as well due to having the same
+ Super I/O chip (that has the KBC firmware on it) as eg. the Advanced/EV. */
+ {
+ .name = "[i430FX] Packard Bell PB640",
+ .internal_name = "pb640",
+ .type = MACHINE_TYPE_SOCKET7_3V,
+ .chipset = MACHINE_CHIPSET_INTEL_430FX,
+ .init = machine_at_pb640_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_Cx6x86),
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 3380,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.0
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_VIDEO | MACHINE_APM,
+ .ram = {
+ .min = 8192,
+ .max = 131072,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &gd5440_onboard_pci_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has a VIA VT82C42N KBC. */
+ {
+ .name = "[i430FX] PC Partner MB500N",
+ .internal_name = "mb500n",
+ .type = MACHINE_TYPE_SOCKET7_3V,
+ .chipset = MACHINE_CHIPSET_INTEL_430FX,
+ .init = machine_at_mb500n_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 3380,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.0
+ },
+ .bus_flags = MACHINE_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 8192,
+ .max = 131072,
+ .step = 8192
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has an AMI MegaKey 'H' KBC firmware (1992). */
+ {
+ .name = "[i430FX] QDI FMB",
+ .internal_name = "fmb",
+ .type = MACHINE_TYPE_SOCKET7_3V,
+ .chipset = MACHINE_CHIPSET_INTEL_430FX,
+ .init = machine_at_fmb_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK(CPU_WINCHIP, CPU_WINCHIP2, CPU_Cx6x86, CPU_Cx6x86L, CPU_Cx6x86MX),
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 3380,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.0
+ },
+ .bus_flags = MACHINE_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_GAMEPORT,
+ .ram = {
+ .min = 8192,
+ .max = 131072,
+ .step = 8192
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ /* 430HX */
+ /* Has SST Flash. */
+ /* Has a SM(S)C FDC37C935 Super I/O chip with on-chip KBC with Phoenix
+ MultiKey/42 (version 1.38) KBC firmware. */
+ {
+ .name = "[i430HX] Acer V35N",
+ .internal_name = "acerv35n",
+ .type = MACHINE_TYPE_SOCKET7_3V,
+ .chipset = MACHINE_CHIPSET_INTEL_430HX,
+ .init = machine_at_acerv35n_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 3450,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.0
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 4096,
+ .max = 524288,
+ .step = 4096
+ },
+ .nvrmask = 511,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has AMIKey-2 or VIA VT82C42N KBC (depending on the revision) with AMIKEY 'F' KBC firmware. */
+ {
+ .name = "[i430HX] AOpen AP53",
+ .internal_name = "ap53",
+ .type = MACHINE_TYPE_SOCKET7_3V,
+ .chipset = MACHINE_CHIPSET_INTEL_430HX,
+ .init = machine_at_ap53_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 3450,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 2.5
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 4096,
+ .max = 524288,
+ .step = 4096
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* [TEST] Has a VIA 82C42N KBC, with AMIKey F KBC firmware. */
+ {
+ .name = "[i430HX] Biostar MB-8500TUC",
+ .internal_name = "8500tuc",
+ .type = MACHINE_TYPE_SOCKET7_3V,
+ .chipset = MACHINE_CHIPSET_INTEL_430HX,
+ .init = machine_at_8500tuc_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 3380,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.0
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_USB,
+ .ram = {
+ .min = 4096,
+ .max = 524288,
+ .step = 4096
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ {
+ .name = "[i430HX] Siemens-Nixdorf D943",
+ .internal_name = "d943",
+ .type = MACHINE_TYPE_SOCKET7_3V,
+ .chipset = MACHINE_CHIPSET_INTEL_430HX,
+ .init = machine_at_d943_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 2800,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.0
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_AV | MACHINE_GAMEPORT | MACHINE_APM,
+ .ram = {
+ .min = 8192,
+ .max = 131072,
+ .step = 4096
+ },
+ .nvrmask = 511,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = &d943_device,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &gd5436_onboard_pci_device,
+ .snd_device = &sb_vibra16c_onboard_device,
+ .net_device = NULL
+ },
+
+ /* 430VX */
+ /* Has a SM(S)C FDC37C932FR Super I/O chip with on-chip KBC with AMI
+ MegaKey (revision '5') KBC firmware. */
+ {
+ .name = "[i430VX] Gateway 2000 Mailman",
+ .internal_name = "gw2kma",
+ .type = MACHINE_TYPE_SOCKET7_3V,
+ .chipset = MACHINE_CHIPSET_INTEL_430VX,
+ .init = machine_at_gw2kma_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_Cx6x86),
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 3380,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.0
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_SOUND | MACHINE_APM | MACHINE_GAMEPORT | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 131072,
+ .step = 4096
+ },
+ .nvrmask = 511,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = &sb_vibra16c_onboard_device,
+ .net_device = NULL
+ },
+
+ /* SiS 5501 */
+ /* Has the Lance LT38C41 KBC. */
+ {
+ .name = "[SiS 5501] Chaintech 5SBM/5SBM2 (M103)",
+ .internal_name = "5sbm2",
+ .type = MACHINE_TYPE_SOCKET7_3V,
+ .chipset = MACHINE_CHIPSET_SIS_5501,
+ .init = machine_at_5sbm2_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 3380,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.0
+ },
+ .bus_flags = MACHINE_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 8192,
+ .max = 131072,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = &c5sbm2_device,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ /* SiS 5511 */
+ /* Has AMIKey H KBC firmware (AMIKey-2). */
+ {
+ .name = "[SiS 5511] AOpen AP5S",
+ .internal_name = "ap5s",
+ .type = MACHINE_TYPE_SOCKET7_3V,
+ .chipset = MACHINE_CHIPSET_SIS_5511,
+ .init = machine_at_ap5s_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 3380,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.0
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 8192,
+ .max = 524288,
+ .step = 8192
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = &ap5s_device,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has an SMC FDC37C669QF Super I/O. */
+ {
+ .name = "[SiS 5511] IBM PC 140 (type 6260)",
+ .internal_name = "pc140_6260",
+ .type = MACHINE_TYPE_SOCKET7_3V,
+ .chipset = MACHINE_CHIPSET_SIS_5511,
+ .init = machine_at_pc140_6260_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK(CPU_WINCHIP, CPU_WINCHIP2, CPU_Cx6x86, CPU_Cx6x86L, CPU_Cx6x86MX, CPU_PENTIUMMMX),
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 3380,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.0
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_VIDEO | MACHINE_APM,
+ .ram = {
+ .min = 8192,
+ .max = 131072,
+ .step = 8192
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &gd5436_onboard_pci_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has AMIKey H KBC firmware (AMIKey-2). */
+ {
+ .name = "[SiS 5511] MSI MS-5124",
+ .internal_name = "ms5124",
+ .type = MACHINE_TYPE_SOCKET7_3V,
+ .chipset = MACHINE_CHIPSET_SIS_5511,
+ .init = machine_at_ms5124_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 3380,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.0
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 8192,
+ .max = 524288,
+ .step = 8192
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has Megakey 'R' KBC */
+ {
+ .name = "[SiS 5511] AMI Atlas PCI-II",
+ .internal_name = "amis727",
+ .type = MACHINE_TYPE_SOCKET7_3V,
+ .chipset = MACHINE_CHIPSET_SIS_5511,
+ .init = machine_at_amis727_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 3380,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.0
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 8192,
+ .max = 524288,
+ .step = 8192
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ /* Socket 7 (Dual Voltage) machines */
+ /* 430HX */
+ /* Has a SM(S)C FDC37C935 Super I/O chip with on-chip KBC with Phoenix
+ MultiKey/42 (version 1.38) KBC firmware. */
+ {
+ .name = "[i430HX] Acer AcerPower Ultima",
+ .internal_name = "acerm3a",
+ .type = MACHINE_TYPE_SOCKET7,
+ .chipset = MACHINE_CHIPSET_INTEL_430HX,
+ .init = machine_at_acerm3a_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK(CPU_Cx6x86MX),
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 2800,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.0
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_GAMEPORT | MACHINE_USB, /* Machine has internal SCSI */
+ .ram = {
+ .min = 4096,
+ .max = 524288,
+ .step = 4096
+ },
+ .nvrmask = 511,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has AMIKey H KBC firmware (AMIKey-2). */
+ {
+ .name = "[i430HX] ASUS P/I-P55T2P4",
+ .internal_name = "p55t2p4",
+ .type = MACHINE_TYPE_SOCKET7,
+ .chipset = MACHINE_CHIPSET_INTEL_430HX,
+ .init = machine_at_p55t2p4_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 50000000,
+ .max_bus = 75000000,
+ .min_voltage = 2500,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 4.0
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 4096,
+ .max = 524288,
+ .step = 4096
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* The base board has a Holtek HT6542B with the AMIKey-2 (updated 'H') KBC firmware. */
+ {
+ .name = "[i430HX] ASUS P/I-P65UP5 (C-P55T2D)",
+ .internal_name = "p65up5_cp55t2d",
+ .type = MACHINE_TYPE_SOCKET7,
+ .chipset = MACHINE_CHIPSET_INTEL_430HX,
+ .init = machine_at_p65up5_cp55t2d_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 2500,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.5
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB, /* Machine has AMB */
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_USB,
+ .ram = {
+ .min = 4096,
+ .max = 524288,
+ .step = 4096
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has a SM(S)C FDC37C935 Super I/O chip with on-chip KBC with Phoenix
+ MultiKey/42 (version 1.38) KBC firmware. */
+ {
+ .name = "[i430HX] Micronics M7S-Hi",
+ .internal_name = "m7shi",
+ .type = MACHINE_TYPE_SOCKET7,
+ .chipset = MACHINE_CHIPSET_INTEL_430HX,
+ .init = machine_at_m7shi_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 60000000,
+ .max_bus = 66666667,
+ .min_voltage = 2800,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.0
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_GAMEPORT | MACHINE_USB,
+ .ram = {
+ .min = 4096,
+ .max = 524288,
+ .step = 4096
+ },
+ .nvrmask = 511,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* According to tests from real hardware: This has AMI MegaKey KBC firmware on the
+ PC87306 Super I/O chip, command 0xA1 returns '5'.
+ Command 0xA0 copyright string: (C)1994 AMI . */
+ {
+ .name = "[i430HX] Intel TC430HX (Tucson)",
+ .internal_name = "tc430hx",
+ .type = MACHINE_TYPE_SOCKET7,
+ .chipset = MACHINE_CHIPSET_INTEL_430HX,
+ .init = machine_at_tc430hx_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_K6, CPU_K6_2, CPU_K6_2C, CPU_K6_3, CPU_K6_2P,
+ CPU_K6_3P, CPU_Cx6x86, CPU_Cx6x86MX, CPU_Cx6x86L),
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 2800,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.5
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_VIDEO | MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_GAMEPORT | MACHINE_USB, /* Has internal sound: Yamaha YMF701-S */
+ .ram = {
+ .min = 8192,
+ .max = 524288,
+ .step = 4096
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &s3_virge_375_pci_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* OEM version of Intel TC430HX, has AMI MegaKey KBC firmware on the PC87306 Super I/O chip. */
+ {
+ .name = "[i430HX] Toshiba Infinia 7201",
+ .internal_name = "infinia7200",
+ .type = MACHINE_TYPE_SOCKET7,
+ .chipset = MACHINE_CHIPSET_INTEL_430HX,
+ .init = machine_at_infinia7200_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_K6, CPU_K6_2, CPU_K6_2C, CPU_K6_3, CPU_K6_2P,
+ CPU_K6_3P, CPU_Cx6x86, CPU_Cx6x86MX, CPU_Cx6x86L),
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 2800,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.5
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_VIDEO | MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_GAMEPORT | MACHINE_USB, /* Has internal sound: Yamaha YMF701-S */
+ .ram = {
+ .min = 8192,
+ .max = 524288,
+ .step = 4096
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &s3_virge_375_pci_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* OEM-only Intel CU430HX, has AMI MegaKey KBC firmware on the PC87306 Super I/O chip. */
+ {
+ .name = "[i430HX] Intel CU430HX (Cumberland)",
+ .internal_name = "cu430hx",
+ .type = MACHINE_TYPE_SOCKET7,
+ .chipset = MACHINE_CHIPSET_INTEL_430HX,
+ .init = machine_at_cu430hx_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_K6, CPU_K6_2, CPU_K6_2C, CPU_K6_3, CPU_K6_2P,
+ CPU_K6_3P, CPU_Cx6x86, CPU_Cx6x86MX, CPU_Cx6x86L),
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 2800,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.5
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_SOUND | MACHINE_APM | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 524288,
+ .step = 4096
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = &sb_vibra16c_onboard_device,
+ .net_device = NULL
+ },
+ /* OEM-only Intel CU430HX, has AMI MegaKey KBC firmware on the PC87306 Super I/O chip. */
+ {
+ .name = "[i430HX] Toshiba Equium 5200D",
+ .internal_name = "equium5200",
+ .type = MACHINE_TYPE_SOCKET7,
+ .chipset = MACHINE_CHIPSET_INTEL_430HX,
+ .init = machine_at_equium5200_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_K6, CPU_K6_2, CPU_K6_2C, CPU_K6_3, CPU_K6_2P,
+ CPU_K6_3P, CPU_Cx6x86, CPU_Cx6x86MX, CPU_Cx6x86L),
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 2800,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.5
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_SOUND | MACHINE_APM | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 524288,
+ .step = 4096
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = &sb_vibra16c_onboard_device,
+ .net_device = NULL
+ },
+ /* Unknown PS/2 KBC. */
+ {
+ .name = "[i430HX] Radisys EPC-2102",
+ .internal_name = "epc2102",
+ .type = MACHINE_TYPE_SOCKET7,
+ .chipset = MACHINE_CHIPSET_INTEL_430HX,
+ .init = machine_at_epc2102_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 2500,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.5
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 4096,
+ .max = 524288,
+ .step = 4096
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* According to tests from real hardware: This has AMI MegaKey KBC firmware on the
+ PC87306 Super I/O chip, command 0xA1 returns '5'.
+ Command 0xA0 copyright string: (C)1994 AMI .
+ Yes, this is an Intel AMI BIOS with a fancy splash screen. */
+ {
+ .name = "[i430HX] Sony Vaio PCV-90",
+ .internal_name = "pcv90",
+ .type = MACHINE_TYPE_SOCKET7,
+ .chipset = MACHINE_CHIPSET_INTEL_430HX,
+ .init = machine_at_pcv90_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_K6, CPU_K6_2, CPU_K6_2C, CPU_K6_3, CPU_K6_2P,
+ CPU_K6_3P, CPU_Cx6x86, CPU_Cx6x86MX, CPU_Cx6x86L),
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 2800,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.0
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 8192,
+ .max = 524288,
+ .step = 4096
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* [TEST] The board doesn't seem to have a KBC at all, which probably means it's an on-chip one on the PC87306 SIO.
+ A list on a Danish site shows the BIOS as having a -0 string, indicating non-AMI KBC firmware. */
+ {
+ .name = "[i430HX] Supermicro P55T2S",
+ .internal_name = "p55t2s",
+ .type = MACHINE_TYPE_SOCKET7,
+ .chipset = MACHINE_CHIPSET_INTEL_430HX,
+ .init = machine_at_p55t2s_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 2800,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.0
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_USB,
+ .ram = {
+ .min = 4096,
+ .max = 524288,
+ .step = 4096
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ /* 430VX */
+ /* This has the VIA VT82C42N or Holtek HT6542B KBC. */
+ {
+ .name = "[i430VX] AOpen AP5VM",
+ .internal_name = "ap5vm",
+ .type = MACHINE_TYPE_SOCKET7,
+ .chipset = MACHINE_CHIPSET_INTEL_430VX,
+ .init = machine_at_ap5vm_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 2600,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.0
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_SCSI | MACHINE_APM | MACHINE_USB,
+ .ram = {
+ .min = 4096,
+ .max = 131072,
+ .step = 4096
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has AMIKey H KBC firmware (AMIKey-2) on a BestKey KBC. */
+ {
+ .name = "[i430VX] ASUS P/I-P55TVP4",
+ .internal_name = "p55tvp4",
+ .type = MACHINE_TYPE_SOCKET7,
+ .chipset = MACHINE_CHIPSET_INTEL_430VX,
+ .init = machine_at_p55tvp4_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 2500,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.5
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB, /* Machine has AMB */
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_USB,
+ .ram = {
+ .min = 4096,
+ .max = 131072,
+ .step = 4096
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* The BIOS does not send a single non-standard KBC command, so it must have a standard IBM
+ PS/2 KBC firmware or a clone thereof. */
+ {
+ .name = "[i430VX] Azza PT-5IV",
+ .internal_name = "5ivg",
+ .type = MACHINE_TYPE_SOCKET7,
+ .chipset = MACHINE_CHIPSET_INTEL_430VX,
+ .init = machine_at_5ivg_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 2500,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.5
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_USB,
+ .ram = {
+ .min = 4096,
+ .max = 131072,
+ .step = 4096
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* [TEST] Has AMIKey 'F' KBC firmware on a VIA VT82C42N KBC. */
+ {
+ .name = "[i430VX] Biostar MB-8500TVX-A",
+ .internal_name = "8500tvxa",
+ .type = MACHINE_TYPE_SOCKET7,
+ .chipset = MACHINE_CHIPSET_INTEL_430VX,
+ .init = machine_at_8500tvxa_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 2600,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.0
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_USB,
+ .ram = {
+ .min = 4096,
+ .max = 131072,
+ .step = 4096
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has a SM(S)C FDC37C932QF Super I/O chip with on-chip KBC with AMI
+ MegaKey (revision '5') KBC firmware. */
+ {
+ .name = "[i430VX] Compaq Presario 224x",
+ .internal_name = "presario2240",
+ .type = MACHINE_TYPE_SOCKET7,
+ .chipset = MACHINE_CHIPSET_INTEL_430VX,
+ .init = machine_at_presario2240_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 66666667,
+ .min_voltage = 2800,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.5
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_VIDEO | MACHINE_APM | MACHINE_ACPI,
+ .ram = {
+ .min = 16384,
+ .max = 49152,
+ .step = 4096
+ },
+ .nvrmask = 511,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &s3_trio64v2_dx_onboard_pci_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has a SM(S)C FDC37C931APM Super I/O chip with on-chip KBC with Compaq
+ KBC firmware. */
+ {
+ .name = "[i430VX] Compaq Presario 45xx",
+ .internal_name = "presario4500",
+ .type = MACHINE_TYPE_SOCKET7,
+ .chipset = MACHINE_CHIPSET_INTEL_430VX,
+ .init = machine_at_presario4500_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 66666667,
+ .min_voltage = 2800,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.5
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_VIDEO | MACHINE_APM | MACHINE_ACPI,
+ .ram = {
+ .min = 16384,
+ .max = 49152,
+ .step = 4096
+ },
+ .nvrmask = 511,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &s3_trio64v2_dx_onboard_pci_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has a SM(S)C FDC37C932FR Super I/O chip with on-chip KBC with AMI
+ MegaKey (revision '5') KBC firmware. */
+ {
+ .name = "[i430VX] Dell Dimension XPS Pxxxa/Mxxxa",
+ .internal_name = "dellhannibalp",
+ .type = MACHINE_TYPE_SOCKET7,
+ .chipset = MACHINE_CHIPSET_INTEL_430VX,
+ .init = machine_at_dellhannibalp_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_K6, CPU_K6_2, CPU_K6_2C, CPU_K6_3, CPU_K6_2P,
+ CPU_K6_3P, CPU_Cx6x86, CPU_Cx6x86MX, CPU_Cx6x86L),
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 2500,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.5
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 131072,
+ .step = 4096
+ },
+ .nvrmask = 511,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has AMIKey H KBC firmware (AMIKey-2). */
+ {
+ .name = "[i430VX] ECS P5VX-B",
+ .internal_name = "p5vxb",
+ .type = MACHINE_TYPE_SOCKET7,
+ .chipset = MACHINE_CHIPSET_INTEL_430VX,
+ .init = machine_at_p5vxb_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 2500,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.0
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_USB,
+ .ram = {
+ .min = 4096,
+ .max = 131072,
+ .step = 4096
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has a SM(S)C FDC37C932FR Super I/O chip with on-chip KBC with AMI
+ MegaKey (revision '5') KBC firmware. */
+ {
+ .name = "[i430VX] Epox P55-VA",
+ .internal_name = "p55va",
+ .type = MACHINE_TYPE_SOCKET7,
+ .chipset = MACHINE_CHIPSET_INTEL_430VX,
+ .init = machine_at_p55va_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 50000000,
+ .max_bus = 75000000,
+ .min_voltage = 2500,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.0
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_USB,
+ .ram = {
+ .min = 4096,
+ .max = 131072,
+ .step = 4096
+ },
+ .nvrmask = 511,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has a SM(S)C FDC37C932FR Super I/O chip with on-chip KBC with AMI
+ MegaKey (revision '5') KBC firmware. */
+ {
+ .name = "[i430VX] Gateway 2000 Hitman",
+ .internal_name = "gw2kte",
+ .type = MACHINE_TYPE_SOCKET7,
+ .chipset = MACHINE_CHIPSET_INTEL_430VX,
+ .init = machine_at_gw2kte_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_K6, CPU_K6_2, CPU_K6_2C, CPU_K6_3, CPU_K6_2P,
+ CPU_K6_3P, CPU_Cx6x86, CPU_Cx6x86MX, CPU_Cx6x86L),
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 2200,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.0
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_SOUND | MACHINE_APM | MACHINE_GAMEPORT | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 131072,
+ .step = 4096
+ },
+ .nvrmask = 511,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = &sb_vibra16c_onboard_device,
+ .net_device = NULL
+ },
+ /* Has a SM(S)C FDC37C935 Super I/O chip with on-chip KBC with Phoenix
+ MultiKey/42 (version 1.38) KBC firmware. */
+ {
+ .name = "[i430VX] HP Brio 80xx",
+ .internal_name = "brio80xx",
+ .type = MACHINE_TYPE_SOCKET7,
+ .chipset = MACHINE_CHIPSET_INTEL_430VX,
+ .init = machine_at_brio80xx_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 66666667,
+ .min_voltage = 2200,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.5
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 8192,
+ .max = 131072,
+ .step = 4096
+ },
+ .nvrmask = 511,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* According to tests from real hardware: This has AMI MegaKey KBC firmware on the
+ PC87306 Super I/O chip, command 0xA1 returns '5'.
+ Command 0xA0 copyright string: (C)1994 AMI . */
+ {
+ .name = "[i430VX] Packard Bell Multimedia C110",
+ .internal_name = "pb680",
+ .type = MACHINE_TYPE_SOCKET7,
+ .chipset = MACHINE_CHIPSET_INTEL_430VX,
+ .init = machine_at_pb680_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_K6, CPU_K6_2, CPU_K6_2C, CPU_K6_3, CPU_K6_2P,
+ CPU_K6_3P, CPU_Cx6x86, CPU_Cx6x86MX, CPU_Cx6x86L),
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 2800,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.0
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_VIDEO | MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 131072,
+ .step = 4096
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &s3_phoenix_trio64vplus_onboard_pci_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has a SM(S)C FDC37C935 Super I/O chip with on-chip KBC with Phoenix
+ MultiKey/42 (version 1.38) KBC firmware. */
+ {
+ .name = "[i430VX] Packard Bell Multimedia M415",
+ .internal_name = "pb810",
+ .type = MACHINE_TYPE_SOCKET7,
+ .chipset = MACHINE_CHIPSET_INTEL_430VX,
+ .init = machine_at_pb810_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 2500,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 4.0
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_SOUND | MACHINE_APM,
+ .ram = {
+ .min = 4096,
+ .max = 131072,
+ .step = 4096
+ },
+ .nvrmask = 511,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* This has the AMIKey 'H' firmware, possibly AMIKey-2. Photos show it with a BestKey, so it
+ likely clones the behavior of AMIKey 'H'. */
+ {
+ .name = "[i430VX] PC Partner MB520N",
+ .internal_name = "mb520n",
+ .type = MACHINE_TYPE_SOCKET7,
+ .chipset = MACHINE_CHIPSET_INTEL_430VX,
+ .init = machine_at_mb520n_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 2600,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.5
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_USB,
+ .ram = {
+ .min = 4096,
+ .max = 131072,
+ .step = 4096
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* This has a Holtek KBC and the BIOS does not send a single non-standard KBC command, so it
+ must be an ASIC that clones the standard IBM PS/2 KBC. */
+ {
+ .name = "[i430VX] Shuttle HOT-557",
+ .internal_name = "430vx",
+ .type = MACHINE_TYPE_SOCKET7,
+ .chipset = MACHINE_CHIPSET_INTEL_430VX,
+ .init = machine_at_i430vx_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 2500,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.0
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_GAMEPORT | MACHINE_APM | MACHINE_USB,
+ .ram = {
+ .min = 4096,
+ .max = 131072,
+ .step = 4096
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ /* 430TX */
+ /* The BIOS sends KBC command B8, CA, and CB, so it has an AMI KBC firmware. */
+ {
+ .name = "[i430TX] ADLink NuPRO-591/592",
+ .internal_name = "nupro592",
+ .type = MACHINE_TYPE_SOCKET7,
+ .chipset = MACHINE_CHIPSET_INTEL_430TX,
+ .init = machine_at_nupro592_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 66666667,
+ .min_voltage = 1900,
+ .max_voltage = 2800,
+ .min_multi = 1.5,
+ .max_multi = 5.5
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_VIDEO,
+ .ram = {
+ .min = 8192,
+ .max = 262144,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &chips_69000_onboard_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* This has the AMIKey KBC firmware, which is an updated 'F' type (YM430TX is based on the TX97). */
+ {
+ .name = "[i430TX] ASUS TX97",
+ .internal_name = "tx97",
+ .type = MACHINE_TYPE_SOCKET7,
+ .chipset = MACHINE_CHIPSET_INTEL_430TX,
+ .init = machine_at_tx97_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 50000000,
+ .max_bus = 75000000,
+ .min_voltage = 2500,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.5
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 262144,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /*
+ According to Dell specifications, it can have either National Semiconductor
+ PC87307 or PC87309 Super I/O. All known instances have the former, although
+ other similar Dells of the era have pinouts for accompanying either so this
+ likely also does.
+
+ The KBC is either an AMI '5' MegaKey, Phoenix MultiKey/42 1.37, or Phoenix
+ MultiKey/42i 4.16.
+ */
+ {
+ .name = "[i430TX] Dell OptiPlex GN+",
+ .internal_name = "optiplexgn",
+ .type = MACHINE_TYPE_SOCKET7,
+ .chipset = MACHINE_CHIPSET_INTEL_430TX,
+ .init = machine_at_optiplexgn_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 2500,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.5
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ /* Video: S3 86C785 (Trio64V2/GX), ethernet: 3C905. */
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_VIDEO | MACHINE_SOUND,
+ .ram = {
+ .min = 8192,
+ .max = 262144,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ /* Stop-gap measure until the Trio64V2/GX is emulated, as both use the same VBIOS. */
+ .vid_device = &s3_trio64v2_dx_onboard_pci_device,
+ .snd_device = &sb_vibra16xv_onboard_device,
+ .net_device = NULL
+ },
+ /* [TEST] Has AMI Megakey '5' KBC firmware on the SM(S)C FDC37C67x Super I/O chip. */
+ {
+ .name = "[i430TX] Gateway E-1000",
+ .internal_name = "tomahawk",
+ .type = MACHINE_TYPE_SOCKET7,
+ .chipset = MACHINE_CHIPSET_INTEL_430TX,
+ .init = machine_at_tomahawk_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 60000000,
+ .max_bus = 66666667,
+ .min_voltage = 2100,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 5.5
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_VIDEO | MACHINE_SOUND | MACHINE_NIC | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 262144,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &s3_trio64v2_dx_onboard_pci_device,
+ .snd_device = &cs4236b_device,
+ .net_device = &pcnet_am79c973_onboard_device
+ },
+ /* This has the AMIKey KBC firmware, which is an updated 'F' type. */
+ {
+ .name = "[i430TX] Intel YM430TX (Yamamoto)",
+ .internal_name = "ym430tx",
+ .type = MACHINE_TYPE_SOCKET7,
+ .chipset = MACHINE_CHIPSET_INTEL_430TX,
+ .init = machine_at_ym430tx_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_K6, CPU_K6_2, CPU_K6_2C, CPU_K6_3, CPU_K6_2P,
+ CPU_K6_3P, CPU_Cx6x86, CPU_Cx6x86MX, CPU_Cx6x86L),
+ .min_bus = 60000000,
+ .max_bus = 66666667,
+ .min_voltage = 2800,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.5
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
+ .ram = {
+ .min = 4096,
+ .max = 262144,
+ .step = 4096
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /*
+ PhoenixBIOS 4.0 Rel 6.0 for 430TX, has onboard Yamaha YMF701 which
+ is not emulated yet.
+
+ Has a SM(S)C FDC37C935 Super I/O chip with on-chip KBC with Phoenix
+ MultiKey/42 (version 1.38) KBC firmware.
+ */
+ {
+ .name = "[i430TX] Micronics Thunderbolt",
+ .internal_name = "thunderbolt",
+ .type = MACHINE_TYPE_SOCKET7,
+ .chipset = MACHINE_CHIPSET_INTEL_430TX,
+ .init = machine_at_thunderbolt_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK(CPU_WINCHIP, CPU_WINCHIP2),
+ .min_bus = 60000000,
+ .max_bus = 66666667,
+ .min_voltage = 2500,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.5
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ /* Machine has internal sound: Yamaha YMF701-S */
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_GAMEPORT | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 262144,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has a SM(S)C FDC37C67x Super I/O chip with on-chip KBC with Phoenix or
+ AMIKey-2 KBC firmware. */
+ {
+ .name = "[i430TX] NEC Mate NX MA23C",
+ .internal_name = "ma23c",
+ .type = MACHINE_TYPE_SOCKET7,
+ .chipset = MACHINE_CHIPSET_INTEL_430TX,
+ .init = machine_at_ma23c_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 60000000,
+ .max_bus = 66666667,
+ .min_voltage = 2700,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.5
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 262144,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* This has the Phoenix MultiKey KBC firmware. */
+ {
+ .name = "[i430TX] Packard Bell PB790",
+ .internal_name = "an430tx",
+ .type = MACHINE_TYPE_SOCKET7,
+ .chipset = MACHINE_CHIPSET_INTEL_430TX,
+ .init = machine_at_an430tx_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK(CPU_K5, CPU_5K86, CPU_K6, CPU_K6_2, CPU_K6_2C, CPU_K6_3, CPU_K6_2P,
+ CPU_K6_3P, CPU_Cx6x86, CPU_Cx6x86MX, CPU_Cx6x86L),
+ .min_bus = 60000000,
+ .max_bus = 66666667,
+ .min_voltage = 2800,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.5
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI,
+ .ram = {
+ .min = 8192,
+ .max = 262144,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* The BIOS sends KBC command BB and expects it to output a byte, which is AMI KBC behavior.
+ A picture shows a VIA VT82C42N KBC though, so it could be a case of that KBC with AMI firmware. */
+ {
+ .name = "[i430TX] PC Partner MB540N",
+ .internal_name = "mb540n",
+ .type = MACHINE_TYPE_SOCKET7,
+ .chipset = MACHINE_CHIPSET_INTEL_430TX,
+ .init = machine_at_mb540n_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 60000000,
+ .max_bus = 66666667,
+ .min_voltage = 2700,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.5
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
+ .ram = {
+ .min = 4096,
+ .max = 262144,
+ .step = 4096
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Award BIOS, PS2, EDO, SDRAM, 4 PCI, 4 ISA, VIA VT82C42N KBC */
+ {
+ .name = "[i430TX] Soltek SL-56A5",
+ .internal_name = "56a5",
+ .type = MACHINE_TYPE_SOCKET7,
+ .chipset = MACHINE_CHIPSET_INTEL_430TX,
+ .init = machine_at_56a5_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 60000000,
+ .max_bus = 66666667,
+ .min_voltage = 2800,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 5.5
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
+ .ram = {
+ .min = 4096,
+ .max = 262144,
+ .step = 4096
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* [TEST] Has AMIKey 'H' KBC firmware. */
+ {
+ .name = "[i430TX] Supermicro P5MMS98",
+ .internal_name = "p5mms98",
+ .type = MACHINE_TYPE_SOCKET7,
+ .chipset = MACHINE_CHIPSET_INTEL_430TX,
+ .init = machine_at_p5mms98_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 50000000,
+ .max_bus = 75000000,
+ .min_voltage = 2100,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.5
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
+ .ram = {
+ .min = 4096,
+ .max = 262144,
+ .step = 4096
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* [TEST] Has AMIKey 'H' KBC firmware. */
+ {
+ .name = "[i430TX] TriGem RD535 (Richmond)",
+ .internal_name = "richmond",
+ .type = MACHINE_TYPE_SOCKET7,
+ .chipset = MACHINE_CHIPSET_INTEL_430TX,
+ .init = machine_at_richmond_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 60000000,
+ .max_bus = 66666667,
+ .min_voltage = 2100,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.5
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 262144,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ /* Apollo VPX */
+ /* Has the VIA VT82C586B southbridge with on-chip KBC identical to the VIA
+ VT82C42N. */
+ {
+ .name = "[VIA VPX] FIC VA-502",
+ .internal_name = "ficva502",
+ .type = MACHINE_TYPE_SOCKET7,
+ .chipset = MACHINE_CHIPSET_VIA_APOLLO_VPX,
+ .init = machine_at_ficva502_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 50000000,
+ .max_bus = 75000000,
+ .min_voltage = 2800,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.0
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 524288,
+ .step = 8192
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ /* Apollo VP3 */
+ /* Has the VIA VT82C586B southbridge with on-chip KBC identical to the VIA
+ VT82C42N. */
+ {
+ .name = "[VIA VP3] FIC PA-2012",
+ .internal_name = "ficpa2012",
+ .type = MACHINE_TYPE_SOCKET7,
+ .chipset = MACHINE_CHIPSET_VIA_APOLLO_VP3,
+ .init = machine_at_ficpa2012_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 55000000,
+ .max_bus = 75000000,
+ .min_voltage = 2100,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 5.5
+ },
+ .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 1048576,
+ .step = 8192
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has the VIA VT82C586B southbridge with on-chip KBC identical to the VIA
+ VT82C42N. */
+ {
+ .name = "[VIA VP3] PC Partner VIA809DS",
+ .internal_name = "via809ds",
+ .type = MACHINE_TYPE_SOCKET7,
+ .chipset = MACHINE_CHIPSET_VIA_APOLLO_VP3,
+ .init = machine_at_via809ds_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 50000000,
+ .max_bus = 75000000,
+ .min_voltage = 2100,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 5.5
+ },
+ .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 1048576,
+ .step = 8192
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ /* SiS 5571 */
+ /* Has the SiS 5571 chipset with on-chip KBC. */
+ {
+ .name = "[SiS 5571] Daewoo CD520",
+ .internal_name = "cb52xsi",
+ .type = MACHINE_TYPE_SOCKET7,
+ .chipset = MACHINE_CHIPSET_SIS_5571,
+ .init = machine_at_cb52xsi_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 50000000,
+ .max_bus = 75000000,
+ .min_voltage = 2800,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.0
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 262144,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has the SiS 5571 chipset with on-chip KBC. */
+ {
+ .name = "[SiS 5571] MSI MS-5146",
+ .internal_name = "ms5146",
+ .type = MACHINE_TYPE_SOCKET7,
+ .chipset = MACHINE_CHIPSET_SIS_5571,
+ .init = machine_at_ms5146_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 50000000,
+ .max_bus = 75000000,
+ .min_voltage = 2800,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.0
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_GAMEPORT | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 262144,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has the SiS 5571 chipset with on-chip KBC. */
+ {
+ .name = "[SiS 5571] Rise R534F",
+ .internal_name = "r534f",
+ .type = MACHINE_TYPE_SOCKET7,
+ .chipset = MACHINE_CHIPSET_SIS_5571,
+ .init = machine_at_r534f_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 55000000,
+ .max_bus = 83333333,
+ .min_voltage = 2500,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.0
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 393216,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ /* SiS 5581 */
+ /* Has the SiS 5581 chipset with on-chip KBC. */
+ {
+ .name = "[SiS 5581] ASUS SP97-XV",
+ .internal_name = "sp97xv",
+ .type = MACHINE_TYPE_SOCKET7,
+ .chipset = MACHINE_CHIPSET_SIS_5581,
+ .init = machine_at_sp97xv_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 50000000,
+ .max_bus = 75000000,
+ .min_voltage = 2500,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.0
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 1572864,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has the SiS 5581 chipset with on-chip KBC. */
+ {
+ .name = "[SiS 5581] BCM SQ-578",
+ .internal_name = "sq578",
+ .type = MACHINE_TYPE_SOCKET7,
+ .chipset = MACHINE_CHIPSET_SIS_5581,
+ .init = machine_at_sq578_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 50000000,
+ .max_bus = 75000000,
+ .min_voltage = 2500,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.0
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 1572864,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ /* SiS 5591 */
+ /* Has the SiS 5591 chipset with on-chip KBC. */
+ {
+ .name = "[SiS 5591] MSI MS-5172",
+ .internal_name = "ms5172",
+ .type = MACHINE_TYPE_SOCKET7,
+ .chipset = MACHINE_CHIPSET_SIS_5591,
+ .init = machine_at_ms5172_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 50000000,
+ .max_bus = 75000000,
+ .min_voltage = 2500,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.0
+ },
+ .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 786432,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ /* ALi ALADDiN IV+ */
+ /* Has the ALi M1543 southbridge with on-chip KBC. */
+ {
+ .name = "[ALi ALADDiN IV+] Biostar M5ATA",
+ .internal_name = "m5ata",
+ .type = MACHINE_TYPE_SOCKET7,
+ .chipset = MACHINE_CHIPSET_ALI_ALADDIN_IV_PLUS,
+ .init = machine_at_m5ata_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 60000000,
+ .max_bus = 66666667,
+ .min_voltage = 2100,
+ .max_voltage = 3500,
+ .min_multi = 1.5,
+ .max_multi = 4.5
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 262144,
+ .step = 8192
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has the ALi M1543 southbridge with on-chip KBC. */
+ {
+ .name = "[ALi ALADDiN IV+] MSI MS-5164",
+ .internal_name = "ms5164",
+ .type = MACHINE_TYPE_SOCKET7,
+ .chipset = MACHINE_CHIPSET_ALI_ALADDIN_IV_PLUS,
+ .init = machine_at_ms5164_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 60000000,
+ .max_bus = 83333333,
+ .min_voltage = 2100,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.0
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 1048576,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has the ALi M1543 southbridge with on-chip KBC. */
+ {
+ .name = "[ALi ALADDiN IV+] PC Chips M560",
+ .internal_name = "m560",
+ .type = MACHINE_TYPE_SOCKET7,
+ .chipset = MACHINE_CHIPSET_ALI_ALADDIN_IV_PLUS,
+ .init = machine_at_m560_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 50000000,
+ .max_bus = 83333333,
+ .min_voltage = 2500,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 3.0
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 786432,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ /* Super Socket 7 machines */
+ /* ALi ALADDiN V */
+ /* Has the ALi M1543C southbridge with on-chip KBC. */
+ {
+ .name = "[ALi ALADDiN V] ASUS P5A",
+ .internal_name = "p5a",
+ .type = MACHINE_TYPE_SOCKETS7,
+ .chipset = MACHINE_CHIPSET_ALI_ALADDIN_V,
+ .init = machine_at_p5a_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 60000000,
+ .max_bus = 120000000,
+ .min_voltage = 2000,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 5.5
+ },
+ .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_GAMEPORT | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 1572864,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Is the exact same as the Matsonic MS6260S. Has the ALi M1543C southbridge
+ with on-chip KBC. */
+ {
+ .name = "[ALi ALADDiN V] PC Chips M579",
+ .internal_name = "m579",
+ .type = MACHINE_TYPE_SOCKETS7,
+ .chipset = MACHINE_CHIPSET_ALI_ALADDIN_V,
+ .init = machine_at_m579_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 100000000,
+ .min_voltage = 2000,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 5.5
+ },
+ .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 1572864,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* M1534c kbc */
+ {
+ .name = "[ALi ALADDiN V] Gateway Lucas",
+ .internal_name = "gwlucas",
+ .type = MACHINE_TYPE_SOCKETS7,
+ .chipset = MACHINE_CHIPSET_ALI_ALADDIN_V,
+ .init = machine_at_gwlucas_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 100000000,
+ .min_voltage = 2000,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 5.5
+ },
+ .bus_flags = MACHINE_PS2_PCIONLY | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_SOUND | MACHINE_APM | MACHINE_ACPI | MACHINE_GAMEPORT | MACHINE_USB, /* Has internal video: ATI 3D Rage Pro Turbo AGP and sound: Ensoniq ES1373 */
+ .ram = {
+ .min = 8192,
+ .max = 262144,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = &es1373_onboard_device,
+ .net_device = NULL
+ },
+ /* Has the ALi M1543C southbridge with on-chip KBC. */
+ {
+ .name = "[ALi ALADDiN V] Gigabyte GA-5AA",
+ .internal_name = "5aa",
+ .type = MACHINE_TYPE_SOCKETS7,
+ .chipset = MACHINE_CHIPSET_ALI_ALADDIN_V,
+ .init = machine_at_5aa_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 140000000,
+ .min_voltage = 1300,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 5.5
+ },
+ .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 1572864,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has the ALi M1543C southbridge with on-chip KBC. */
+ {
+ .name = "[ALi ALADDiN V] Gigabyte GA-5AX",
+ .internal_name = "5ax",
+ .type = MACHINE_TYPE_SOCKETS7,
+ .chipset = MACHINE_CHIPSET_ALI_ALADDIN_V,
+ .init = machine_at_5ax_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 140000000,
+ .min_voltage = 1300,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 5.5
+ },
+ .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 1572864,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ /* Apollo MVP3 */
+ /* Has the VIA VT82C586B southbridge with on-chip KBC identical to the VIA
+ VT82C42N. */
+ {
+ .name = "[VIA MVP3] AOpen AX59 Pro",
+ .internal_name = "ax59pro",
+ .type = MACHINE_TYPE_SOCKETS7,
+ .chipset = MACHINE_CHIPSET_VIA_APOLLO_MVP3,
+ .init = machine_at_ax59pro_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 124242424,
+ .min_voltage = 1300,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 5.5
+ },
+ .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 1048576,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has the VIA VT82C586B southbridge with on-chip KBC identical to the VIA
+ VT82C42N. */
+ {
+ .name = "[VIA MVP3] FIC VA-503+",
+ .internal_name = "ficva503p",
+ .type = MACHINE_TYPE_SOCKETS7,
+ .chipset = MACHINE_CHIPSET_VIA_APOLLO_MVP3,
+ .init = machine_at_mvp3_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 124242424,
+ .min_voltage = 2000,
+ .max_voltage = 3200,
+ .min_multi = 1.5,
+ .max_multi = 5.5
+ },
+ .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 1048576,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has the VIA VT82C686A southbridge with on-chip KBC identical to the VIA
+ VT82C42N. */
+ {
+ .name = "[VIA MVP3] FIC VA-503A",
+ .internal_name = "ficva503a",
+ .type = MACHINE_TYPE_SOCKETS7,
+ .chipset = MACHINE_CHIPSET_VIA_APOLLO_MVP3,
+ .init = machine_at_ficva503a_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 124242424,
+ .min_voltage = 1800,
+ .max_voltage = 3100,
+ .min_multi = 1.5,
+ .max_multi = 5.5
+ },
+ .bus_flags = MACHINE_PS2_A97 | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_SOUND | MACHINE_APM | MACHINE_ACPI | MACHINE_GAMEPORT | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 786432,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has the VIA VT82C686A southbridge with on-chip KBC identical to the VIA
+ VT82C42N. */
+ {
+ .name = "[VIA MVP3] Soyo 5EMA PRO",
+ .internal_name = "5emapro",
+ .type = MACHINE_TYPE_SOCKETS7,
+ .chipset = MACHINE_CHIPSET_VIA_APOLLO_MVP3,
+ .init = machine_at_5emapro_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 124242424,
+ .min_voltage = 2000,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 5.5
+ },
+ .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 786432,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has the VIA VT82C596A southbridge with on-chip KBC identical to the VIA
+ VT82C42N. */
+ {
+ .name = "[VIA MVP3] eMachines eTower 3xxc",
+ .internal_name = "delhi3",
+ .type = MACHINE_TYPE_SOCKETS7,
+ .chipset = MACHINE_CHIPSET_VIA_APOLLO_MVP3,
+ .init = machine_at_delhi3_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 124242424,
+ .min_voltage = 2000,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 5.5
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB, /* Has internal video: ATI 3D Rage IIc AGP (Rage 2) */
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_SOUND | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 524288,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = &cs4235_onboard_device,
+ .net_device = NULL
+ },
+
+ /* SiS 5591 */
+ /* Has the SiS 5591 chipset with on-chip KBC. */
+ {
+ .name = "[SiS 5591] Gigabyte GA-5SG100",
+ .internal_name = "5sg100",
+ .type = MACHINE_TYPE_SOCKETS7,
+ .chipset = MACHINE_CHIPSET_SIS_5591,
+ .init = machine_at_5sg100_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET5_7,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 60000000,
+ .max_bus = 100000000,
+ .min_voltage = 2000,
+ .max_voltage = 3520,
+ .min_multi = 1.5,
+ .max_multi = 5.5
+ },
+ .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 786432,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ /* Socket 8 machines */
+ /* 450KX */
+ /* This has an AMIKey-2, which is an updated version of type 'H'. */
+ {
+ .name = "[i450KX] AOpen AP61",
+ .internal_name = "ap61",
+ .type = MACHINE_TYPE_SOCKET8,
+ .chipset = MACHINE_CHIPSET_INTEL_450KX,
+ .init = machine_at_ap61_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET8,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 60000000,
+ .max_bus = 66666667,
+ .min_voltage = 2100,
+ .max_voltage = 3500,
+ .min_multi = 1.5,
+ .max_multi = 8.0
+ },
+ .bus_flags = MACHINE_PS2_PCI,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 8192,
+ .max = 524288,
+ .step = 8192
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* This has an AMIKey-2, which is an updated version of type 'H'. */
+ {
+ .name = "[i450KX] ASUS P/I-P6RP4",
+ .internal_name = "p6rp4",
+ .type = MACHINE_TYPE_SOCKET8,
+ .chipset = MACHINE_CHIPSET_INTEL_450KX,
+ .init = machine_at_p6rp4_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET8,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 60000000,
+ .max_bus = 66666667,
+ .min_voltage = 2100,
+ .max_voltage = 3500,
+ .min_multi = 1.5,
+ .max_multi = 8.0
+ },
+ .bus_flags = MACHINE_PS2_PCI, /* Machine has AMB */
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM,
+ .ram = {
+ .min = 8192,
+ .max = 524288,
+ .step = 8192
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ /* 440FX */
+ /* Has a SM(S)C FDC37C935 Super I/O chip with on-chip KBC with Phoenix
+ MultiKey/42 (version 1.38) KBC firmware. */
+ {
+ .name = "[i440FX] Acer V60N",
+ .internal_name = "acerv60n",
+ .type = MACHINE_TYPE_SOCKET8,
+ .chipset = MACHINE_CHIPSET_INTEL_440FX,
+ .init = machine_at_acerv60n_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET8,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 60000000,
+ .max_bus = 66666667,
+ .min_voltage = 2500,
+ .max_voltage = 3500,
+ .min_multi = 1.5,
+ .max_multi = 8.0
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 393216,
+ .step = 8192
+ },
+ .nvrmask = 511,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* The base board has a Holtek HT6542B with AMIKey-2 (updated 'H') KBC firmware. */
+ {
+ .name = "[i440FX] ASUS P/I-P65UP5 (C-P6ND)",
+ .internal_name = "p65up5_cp6nd",
+ .type = MACHINE_TYPE_SOCKET8,
+ .chipset = MACHINE_CHIPSET_INTEL_440FX,
+ .init = machine_at_p65up5_cp6nd_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET8,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 60000000,
+ .max_bus = 66666667,
+ .min_voltage = 2100,
+ .max_voltage = 3500,
+ .min_multi = 1.5,
+ .max_multi = 8.0
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB, /* Machine has AMB */
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 1048576,
+ .step = 8192
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has a VIA VT82C42N with likely AMIKey 'F' KBC firmware. */
+ {
+ .name = "[i440FX] Biostar MB-8600TTC",
+ .internal_name = "8600ttc",
+ .type = MACHINE_TYPE_SOCKET8,
+ .chipset = MACHINE_CHIPSET_INTEL_440FX,
+ .init = machine_at_8600ttc_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET8,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 2900,
+ .max_voltage = 3300,
+ .min_multi = 2.0,
+ .max_multi = 5.5
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 524288,
+ .step = 8192
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* It's an Intel VS440FX with a Dell OEM BIOS */
+ {
+ .name = "[i440FX] Dell Dimension XPS Pro___n",
+ .internal_name = "dellvenus",
+ .type = MACHINE_TYPE_SOCKET8,
+ .chipset = MACHINE_CHIPSET_INTEL_440FX,
+ .init = machine_at_dellvenus_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET8,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 60000000,
+ .max_bus = 66666667,
+ .min_voltage = 2100,
+ .max_voltage = 3500,
+ .min_multi = 2.0,
+ .max_multi = 3.5
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_SOUND | MACHINE_APM | MACHINE_GAMEPORT | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 524288,
+ .step = 8192
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = &cs4236_onboard_device,
+ .net_device = NULL
+ },
+ /* It's an Intel VS440FX with a Gateway 2000 OEM BIOS */
+ {
+ .name = "[i440FX] Gateway 2000 Venus",
+ .internal_name = "gw2kvenus",
+ .type = MACHINE_TYPE_SOCKET8,
+ .chipset = MACHINE_CHIPSET_INTEL_440FX,
+ .init = machine_at_gw2kvenus_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET8,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 60000000,
+ .max_bus = 66666667,
+ .min_voltage = 2100,
+ .max_voltage = 3500,
+ .min_multi = 2.0,
+ .max_multi = 3.5
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_SOUND | MACHINE_APM | MACHINE_GAMEPORT | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 524288,
+ .step = 8192
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = &cs4236_onboard_device,
+ .net_device = NULL
+ },
+ /* Has the AMIKey-2 (updated 'H') KBC firmware. */
+ {
+ .name = "[i440FX] Gigabyte GA-686NX",
+ .internal_name = "686nx",
+ .type = MACHINE_TYPE_SOCKET8,
+ .chipset = MACHINE_CHIPSET_INTEL_440FX,
+ .init = machine_at_686nx_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET8,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 60000000,
+ .max_bus = 66666667,
+ .min_voltage = 2100,
+ .max_voltage = 3500,
+ .min_multi = 2.0,
+ .max_multi = 5.5
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 524288,
+ .step = 8192
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* According to tests from real hardware: This has AMI MegaKey KBC firmware on the
+ PC87306 Super I/O chip, command 0xA1 returns '5'.
+ Command 0xA0 copyright string: (C)1994 AMI . */
+ {
+ .name = "[i440FX] Intel AP440FX",
+ .internal_name = "ap440fx",
+ .type = MACHINE_TYPE_SOCKET8,
+ .chipset = MACHINE_CHIPSET_INTEL_440FX,
+ .init = machine_at_ap440fx_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET8,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 60000000,
+ .max_bus = 66666667,
+ .min_voltage = 2100,
+ .max_voltage = 3500,
+ .min_multi = 2.0,
+ .max_multi = 3.5
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_SOUND | MACHINE_VIDEO | MACHINE_USB, /* Machine has internal video: S3 ViRGE/DX and sound: Crystal CS4236B */
+ .ram = {
+ .min = 8192,
+ .max = 524288,
+ .step = 8192
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &s3_virge_325_onboard_pci_device,
+ .snd_device = &cs4236b_onboard_device,
+ .net_device = NULL
+ },
+ /* According to tests from real hardware: This has AMI MegaKey KBC firmware on the
+ PC87306 Super I/O chip, command 0xA1 returns '5'.
+ Command 0xA0 copyright string: (C)1994 AMI . */
+ {
+ .name = "[i440FX] Intel VS440FX",
+ .internal_name = "vs440fx",
+ .type = MACHINE_TYPE_SOCKET8,
+ .chipset = MACHINE_CHIPSET_INTEL_440FX,
+ .init = machine_at_vs440fx_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET8,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 60000000,
+ .max_bus = 66666667,
+ .min_voltage = 2100,
+ .max_voltage = 3500,
+ .min_multi = 2.0,
+ .max_multi = 3.5
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_SOUND | MACHINE_APM | MACHINE_GAMEPORT | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 524288,
+ .step = 8192
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = &cs4236_onboard_device,
+ .net_device = NULL
+ },
+ /* Has the AMIKey-2 (updated 'H') KBC firmware. */
+ {
+ .name = "[i440FX] LG IBM Multinet x61 (MSI MS-6106)",
+ .internal_name = "lgibmx61",
+ .type = MACHINE_TYPE_SOCKET8,
+ .chipset = MACHINE_CHIPSET_INTEL_440FX,
+ .init = machine_at_lgibmx61_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET8,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 60000000,
+ .max_bus = 66666667,
+ .min_voltage = 2500,
+ .max_voltage = 3500,
+ .min_multi = 1.5,
+ .max_multi = 8.0
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_USB, /* Machine has internal SCSI: Adaptec AIC-78xx */
+ .ram = {
+ .min = 40960,
+ .max = 524288,
+ .step = 8192
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has a SM(S)C FDC37C935 Super I/O chip with on-chip KBC with Phoenix
+ MultiKey/42 (version 1.38) KBC firmware. */
+ {
+ .name = "[i440FX] Micronics M6Mi",
+ .internal_name = "m6mi",
+ .type = MACHINE_TYPE_SOCKET8,
+ .chipset = MACHINE_CHIPSET_INTEL_440FX,
+ .init = machine_at_m6mi_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET8,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 60000000,
+ .max_bus = 66666667,
+ .min_voltage = 2900,
+ .max_voltage = 3300,
+ .min_multi = 1.5,
+ .max_multi = 8.0
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_GAMEPORT | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 786432,
+ .step = 8192
+ },
+ .nvrmask = 511,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has a VIA VT82C42N KBC with likely AMI MegaKey firmware. */
+ {
+ .name = "[i440FX] PC Partner MB600N",
+ .internal_name = "mb600n",
+ .type = MACHINE_TYPE_SOCKET8,
+ .chipset = MACHINE_CHIPSET_INTEL_440FX,
+ .init = machine_at_mb600n_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET8,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 60000000,
+ .max_bus = 66666667,
+ .min_voltage = 2100,
+ .max_voltage = 3500,
+ .min_multi = 1.5,
+ .max_multi = 8.0
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 524288,
+ .step = 8192
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ /* Slot 1 machines */
+ /* ALi ALADDiN V */
+ /* Has the ALi M1543C southbridge with on-chip KBC. */
+ {
+ .name = "[ALi ALADDiN-PRO II] PC Chips M729",
+ .internal_name = "m729",
+ .type = MACHINE_TYPE_SLOT1,
+ .chipset = MACHINE_CHIPSET_ALI_ALADDIN_PRO_II,
+ .init = machine_at_m729_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SLOT1,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 100000000,
+ .min_voltage = 1800,
+ .max_voltage = 3500,
+ .min_multi = 1.5,
+ .max_multi = 8.0
+ },
+ .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_GAMEPORT | MACHINE_USB, /* Machine has internal sound: C-Media CMI8330 */
+ .ram = {
+ .min = 8192,
+ .max = 1572864,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ /* 440FX */
+ /* Has a SM(S)C FDC37C935 Super I/O chip with on-chip KBC with Phoenix
+ MultiKey/42 (version 1.38) KBC firmware. */
+ {
+ .name = "[i440FX] Acer V62X",
+ .internal_name = "acerv62x",
+ .type = MACHINE_TYPE_SLOT1,
+ .chipset = MACHINE_CHIPSET_INTEL_440FX,
+ .init = machine_at_acerv62x_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SLOT1,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 60000000,
+ .max_bus = 83333333,
+ .min_voltage = 1800,
+ .max_voltage = 3500,
+ .min_multi = 1.5,
+ .max_multi = 8.0
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 393216,
+ .step = 8192
+ },
+ .nvrmask = 511,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* The base board has a Holtek HT6542B KBC with AMIKey-2 (updated 'H') KBC firmware. */
+ {
+ .name = "[i440FX] ASUS P/I-P65UP5 (C-PKND)",
+ .internal_name = "p65up5_cpknd",
+ .type = MACHINE_TYPE_SLOT1,
+ .chipset = MACHINE_CHIPSET_INTEL_440FX,
+ .init = machine_at_p65up5_cpknd_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SLOT1,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 50000000,
+ .max_bus = 66666667,
+ .min_voltage = 1800,
+ .max_voltage = 3500,
+ .min_multi = 1.5,
+ .max_multi = 8.0
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 1048576,
+ .step = 8192
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* This has a Holtek KBC and the BIOS does not send a single non-standard KBC command, so it
+ must be an ASIC that clones the standard IBM PS/2 KBC. */
+ {
+ .name = "[i440FX] ASUS KN97",
+ .internal_name = "kn97",
+ .type = MACHINE_TYPE_SLOT1,
+ .chipset = MACHINE_CHIPSET_INTEL_440FX,
+ .init = machine_at_kn97_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SLOT1,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 60000000,
+ .max_bus = 83333333,
+ .min_voltage = 2800,
+ .max_voltage = 3500,
+ .min_multi = 1.5,
+ .max_multi = 8.0
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 786432,
+ .step = 8192
+ },
+ .nvrmask = 127,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ /* 440LX */
+ /* Has a Winbond W83977TF Super I/O chip with on-chip KBC with AMIKey-2 KBC
+ firmware. */
+ {
+ .name = "[i440LX] ABIT LX6",
+ .internal_name = "lx6",
+ .type = MACHINE_TYPE_SLOT1,
+ .chipset = MACHINE_CHIPSET_INTEL_440LX,
+ .init = machine_at_lx6_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SLOT1,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 60000000,
+ .max_bus = 83333333,
+ .min_voltage = 1500,
+ .max_voltage = 3500,
+ .min_multi = 2.0,
+ .max_multi = 5.5
+ },
+ .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 1048576,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has a National Semiconductor PC87307 Super I/O with on-chip KBC, which has one of these
+ firmwares: AMI '5' MegaKey, Phoenix MultiKey/42 1.37, or Phoenix MultiKey/42i 4.16. */
+ {
+ .name = "[i440LX] Dell OptiPlex GXa",
+ .internal_name = "optiplexgxa",
+ .type = MACHINE_TYPE_SLOT1,
+ .chipset = MACHINE_CHIPSET_INTEL_440LX,
+ .init = machine_at_optiplexgxa_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SLOT1,
+ .block = CPU_BLOCK(CPU_PENTIUMPRO, CPU_CYRIX3S),
+ .min_bus = 66666667,
+ .max_bus = 66666667,
+ .min_voltage = 1800,
+ .max_voltage = 3500,
+ .min_multi = 1.5,
+ .max_multi = 5.0
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_SOUND | MACHINE_APM | MACHINE_ACPI | MACHINE_USB, /* Video: ATi 3D Rage Pro, Network: 3Com 3C905, Sound: Crystal CS4236B */
+ .ram = {
+ .min = 8192,
+ .max = 786432,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL, /* not yet emulated */
+ .snd_device = &cs4236b_device,
+ .net_device = NULL /* not yet emulated */
+ },
+ /* Has a SM(S)C FDC37C935 Super I/O chip with on-chip KBC with Phoenix
+ MultiKey/42 (version 1.38) KBC firmware. */
+ {
+ .name = "[i440LX] Micronics Spitfire",
+ .internal_name = "spitfire",
+ .type = MACHINE_TYPE_SLOT1,
+ .chipset = MACHINE_CHIPSET_INTEL_440LX,
+ .init = machine_at_spitfire_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SLOT1,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 66666667,
+ .min_voltage = 1800,
+ .max_voltage = 3500,
+ .min_multi = 1.5,
+ .max_multi = 8.0
+ },
+ .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 1048576,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has a SM(S)C FDC37C67x Super I/O chip with on-chip KBC with Phoenix or
+ AMIKey-2 KBC firmware. */
+ {
+ .name = "[i440LX] NEC Mate NX MA30D/23D",
+ .internal_name = "ma30d",
+ .type = MACHINE_TYPE_SLOT1,
+ .chipset = MACHINE_CHIPSET_INTEL_440LX,
+ .init = machine_at_ma30d_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SLOT1,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 66666667,
+ .min_voltage = 1800,
+ .max_voltage = 3500,
+ .min_multi = 1.5,
+ .max_multi = 8.0
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB, /* Has internal video: SGS Thompson Riva 128 AGP, network: NEC PK-UG-X006 (Intel 82558B chip) and sound: OAK Audia 3D (OTI-610) */
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 786432,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ /* 440EX */
+ /* Has a Winbond W83977TF Super I/O chip with on-chip KBC with AMIKey-2 KBC
+ firmware. */
+ {
+ .name = "[i440EX] QDI EXCELLENT II",
+ .internal_name = "p6i440e2",
+ .type = MACHINE_TYPE_SLOT1,
+ .chipset = MACHINE_CHIPSET_INTEL_440EX,
+ .init = machine_at_p6i440e2_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SLOT1,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 83333333,
+ .min_voltage = 1800,
+ .max_voltage = 3500,
+ .min_multi = 3.0,
+ .max_multi = 8.0
+ },
+ .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 524288,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ /* 440BX */
+ /* Has a Winbond W83977EF Super I/O chip with on-chip KBC with AMIKey-2 KBC
+ firmware. */
+ {
+ .name = "[i440BX] ASUS P2B-LS",
+ .internal_name = "p2bls",
+ .type = MACHINE_TYPE_SLOT1,
+ .chipset = MACHINE_CHIPSET_INTEL_440BX,
+ .init = machine_at_p2bls_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SLOT1,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 50000000,
+ .max_bus = 112121212,
+ .min_voltage = 1300,
+ .max_voltage = 3500,
+ .min_multi = 1.5,
+ .max_multi = 8.0
+ },
+ .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB, /* Machine has internal SCSI: Adaptec AIC-7890AB */
+ .ram = {
+ .min = 8192,
+ .max = 1048576,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has a Winbond W83977EF Super I/O chip with on-chip KBC with AMIKey-2 KBC
+ firmware. */
+ {
+ .name = "[i440BX] ASUS P3B-F",
+ .internal_name = "p3bf",
+ .type = MACHINE_TYPE_SLOT1,
+ .chipset = MACHINE_CHIPSET_INTEL_440BX,
+ .init = machine_at_p3bf_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SLOT1,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 150000000,
+ .min_voltage = 1300,
+ .max_voltage = 3500,
+ .min_multi = 1.5,
+ .max_multi = 8.0
+ },
+ .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 1048576,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has a Winbond W83977EF Super I/O chip with on-chip KBC with AMIKey-2 KBC
+ firmware. */
+
+{
+ .name = "[i440BX] ABIT BX6",
+ .internal_name = "bx6",
+ .type = MACHINE_TYPE_SLOT1,
+ .chipset = MACHINE_CHIPSET_INTEL_440BX,
+ .init = machine_at_bx6_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SLOT1,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 133333333,
+ .min_voltage = 1500,
+ .max_voltage = 3500,
+ .min_multi = 2.0,
+ .max_multi = 5.5
+ },
+ .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 524288,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ {
+ .name = "[i440BX] ABIT BF6",
+ .internal_name = "bf6",
+ .type = MACHINE_TYPE_SLOT1,
+ .chipset = MACHINE_CHIPSET_INTEL_440BX,
+ .init = machine_at_bf6_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SLOT1,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 133333333,
+ .min_voltage = 1800,
+ .max_voltage = 3500,
+ .min_multi = 1.5,
+ .max_multi = 8.0
+ },
+ .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 786432,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has a Winbond W83977TF Super I/O chip with on-chip KBC with AMIKey-2 KBC
+ firmware. */
+ {
+ .name = "[i440BX] AOpen AX6BC",
+ .internal_name = "ax6bc",
+ .type = MACHINE_TYPE_SLOT1,
+ .chipset = MACHINE_CHIPSET_INTEL_440BX,
+ .init = machine_at_ax6bc_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SLOT1,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 112121212,
+ .min_voltage = 1800,
+ .max_voltage = 3500,
+ .min_multi = 1.5,
+ .max_multi = 8.0
+ },
+ .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 786432,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has a Winbond W83977TF Super I/O chip with on-chip KBC with AMIKey-2 KBC
+ firmware. */
+ {
+ .name = "[i440BX] Gigabyte GA-686BX",
+ .internal_name = "686bx",
+ .type = MACHINE_TYPE_SLOT1,
+ .chipset = MACHINE_CHIPSET_INTEL_440BX,
+ .init = machine_at_686bx_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SLOT1,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 100000000,
+ .min_voltage = 1800,
+ .max_voltage = 3500,
+ .min_multi = 1.5,
+ .max_multi = 8.0
+ },
+ .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 1048576,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has a SM(S)C FDC37M60x Super I/O chip with on-chip KBC with most likely
+ AMIKey-2 KBC firmware. */
+ {
+ .name = "[i440BX] HP Vectra VEi 8",
+ .internal_name = "vei8",
+ .type = MACHINE_TYPE_SLOT1,
+ .chipset = MACHINE_CHIPSET_INTEL_440BX,
+ .init = machine_at_vei8_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SLOT1,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 100000000,
+ .min_voltage = 1800,
+ .max_voltage = 3500,
+ .min_multi = 1.5,
+ .max_multi = 8.0
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_GAMEPORT | MACHINE_USB, /* Machine has internal video: Matrox MGA-G200 and sound: Crystal CS4820 */
+ .ram = {
+ .min = 8192,
+ .max = 524288,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has a Winbond W83977TF Super I/O chip with on-chip KBC with AMIKey-2 (updated 'H') KBC firmware. */
+ {
+ .name = "[i440BX] LG IBM Multinet i x7G (MSI MS-6119)",
+ .internal_name = "lgibmx7g",
+ .type = MACHINE_TYPE_SLOT1,
+ .chipset = MACHINE_CHIPSET_INTEL_440BX,
+ .init = machine_at_lgibmx7g_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SLOT1,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 100000000,
+ .min_voltage = 1800,
+ .max_voltage = 3500,
+ .min_multi = 1.5,
+ .max_multi = 8.0
+ },
+ .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 786432,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has a National Semiconductors PC87309 Super I/O chip with on-chip KBC
+ with most likely AMIKey-2 KBC firmware. */
+ {
+ .name = "[i440BX] Tyan Tsunami ATX",
+ .internal_name = "s1846",
+ .type = MACHINE_TYPE_SLOT1,
+ .chipset = MACHINE_CHIPSET_INTEL_440BX,
+ .init = machine_at_s1846_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SLOT1,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 112121212,
+ .min_voltage = 1800,
+ .max_voltage = 3500,
+ .min_multi = 1.5,
+ .max_multi = 8.0
+ },
+ .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_SOUND | MACHINE_APM | MACHINE_ACPI | MACHINE_USB, /* Machine has internal sound: Ensoniq ES1371 */
+ .ram = {
+ .min = 8192,
+ .max = 786432,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = &es1371_onboard_device,
+ .net_device = NULL
+ },
+ /* Has a Winbond W83977TF Super I/O chip with on-chip KBC with AMIKey-2 KBC
+ firmware. */
+ {
+ .name = "[i440BX] Supermicro P6SBA",
+ .internal_name = "p6sba",
+ .type = MACHINE_TYPE_SLOT1,
+ .chipset = MACHINE_CHIPSET_INTEL_440BX,
+ .init = machine_at_p6sba_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SLOT1,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 100000000,
+ .min_voltage = 1800,
+ .max_voltage = 3500,
+ .min_multi = 1.5,
+ .max_multi = 8.0
+ },
+ .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 786432,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ /* 440ZX */
+ /* Has a Winbond W83977EF Super I/O chip with on-chip KBC with AMIKey-2 KBC
+ firmware. */
+ {
+ .name = "[i440ZX] MSI MS-6168",
+ .internal_name = "ms6168",
+ .type = MACHINE_TYPE_SLOT1,
+ .chipset = MACHINE_CHIPSET_INTEL_440ZX,
+ .init = machine_at_ms6168_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SLOT1,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 100000000,
+ .min_voltage = 1800,
+ .max_voltage = 3500,
+ .min_multi = 1.5,
+ .max_multi = 8.0
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB, /* AGP is reserved for the internal video */
+ .flags = MACHINE_IDE_DUAL | MACHINE_AV | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 524288,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &voodoo_3_2000_agp_onboard_8m_device,
+ .snd_device = &es1373_onboard_device,
+ .net_device = NULL
+ },
+ /* Has a Winbond W83977EF Super I/O chip with on-chip KBC with AMIKey-2 KBC
+ firmware. */
+ {
+ .name = "[i440ZX] Packard Bell Bora Pro",
+ .internal_name = "borapro",
+ .type = MACHINE_TYPE_SLOT1,
+ .chipset = MACHINE_CHIPSET_INTEL_440ZX,
+ .init = machine_at_borapro_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SLOT1,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 100000000,
+ .min_voltage = 1800,
+ .max_voltage = 3500,
+ .min_multi = 1.5,
+ .max_multi = 8.0
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB, /* AGP is reserved for the internal video */
+ .flags = MACHINE_IDE_DUAL | MACHINE_AV | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 524288,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &voodoo_3_2000_agp_onboard_8m_device,
+ .snd_device = &es1373_onboard_device,
+ .net_device = NULL
+ },
+
+ /* SMSC VictoryBX-66 */
+ /* Has a Winbond W83977EF Super I/O chip with on-chip KBC with AMIKey-2 KBC
+ firmware. */
+ {
+ .name = "[SMSC VictoryBX-66] A-Trend ATC6310BXII",
+ .internal_name = "atc6310bxii",
+ .type = MACHINE_TYPE_SLOT1,
+ .chipset = MACHINE_CHIPSET_SMSC_VICTORYBX_66,
+ .init = machine_at_atc6310bxii_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SLOT1,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 133333333,
+ .min_voltage = 1300,
+ .max_voltage = 3500,
+ .min_multi = 1.5,
+ .max_multi = 8.0
+ },
+ .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 786432,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ /* VIA Apollo Pro */
+ /* Has the VIA VT82C596B southbridge with on-chip KBC identical to the VIA
+ VT82C42N. */
+ {
+ .name = "[VIA Apollo Pro] FIC KA-6130",
+ .internal_name = "ficka6130",
+ .type = MACHINE_TYPE_SLOT1,
+ .chipset = MACHINE_CHIPSET_VIA_APOLLO_PRO,
+ .init = machine_at_ficka6130_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SLOT1,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 100000000,
+ .min_voltage = 1800,
+ .max_voltage = 3500,
+ .min_multi = 1.5,
+ .max_multi = 8.0
+ },
+ .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_GAMEPORT | MACHINE_USB, /* Machine has internal sound: ESS ES1938S */
+ .ram = {
+ .min = 8192,
+ .max = 524288,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has a Winbond W83977EF Super I/O chip with on-chip KBC with AMIKey-2 KBC
+ firmware. */
+ {
+ .name = "[VIA Apollo Pro 133] ASUS P3V133",
+ .internal_name = "p3v133",
+ .type = MACHINE_TYPE_SLOT1,
+ .chipset = MACHINE_CHIPSET_VIA_APOLLO_PRO_133,
+ .init = machine_at_p3v133_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SLOT1,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 150000000,
+ .min_voltage = 1300,
+ .max_voltage = 3500,
+ .min_multi = 1.5,
+ .max_multi = 8.0
+ },
+ .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 1572864,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has a Winbond W83977EF Super I/O chip with on-chip KBC with AMIKey-2 KBC
+ firmware. */
+ {
+ .name = "[VIA Apollo Pro 133A] ASUS P3V4X",
+ .internal_name = "p3v4x",
+ .type = MACHINE_TYPE_SLOT1,
+ .chipset = MACHINE_CHIPSET_VIA_APOLLO_PRO_133A,
+ .init = machine_at_p3v4x_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SLOT1,
+ .block = CPU_BLOCK(CPU_PENTIUMPRO),
+ .min_bus = 66666667,
+ .max_bus = 150000000,
+ .min_voltage = 1300,
+ .max_voltage = 3500,
+ .min_multi = 1.5,
+ .max_multi = 8.0
+ },
+ .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 2097152,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has a Winbond W83977EF Super I/O chip with on-chip KBC with AMIKey-2 KBC
+ firmware. */
+ {
+ .name = "[VIA Apollo Pro 133A] BCM GT694VA",
+ .internal_name = "gt694va",
+ .type = MACHINE_TYPE_SLOT1,
+ .chipset = MACHINE_CHIPSET_VIA_APOLLO_PRO_133A,
+ .init = machine_at_gt694va_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SLOT1,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 133333333,
+ .min_voltage = 1300,
+ .max_voltage = 3500,
+ .min_multi = 1.5,
+ .max_multi = 8.0
+ },
+ .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_SOUND | MACHINE_APM | MACHINE_ACPI | MACHINE_GAMEPORT | MACHINE_USB, /* Machine has internal sound: Ensoniq ES1373 */
+ .ram = {
+ .min = 8192,
+ .max = 3145728,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = &es1373_onboard_device,
+ .net_device = NULL
+ },
+
+ /* SiS (5)600 */
+ /* Has the SiS (5)600 chipset with on-chip KBC. */
+ {
+ .name = "[SiS 5600] Freetech/Flexus P6F99",
+ .internal_name = "p6f99",
+ .type = MACHINE_TYPE_SLOT1,
+ .chipset = MACHINE_CHIPSET_SIS_5600,
+ .init = machine_at_p6f99_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SLOT1,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 100000000,
+ .min_voltage = 1300,
+ .max_voltage = 3500,
+ .min_multi = 1.5,
+ .max_multi = 8.0
+ },
+ .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_SOUND | MACHINE_APM | MACHINE_ACPI | MACHINE_GAMEPORT | MACHINE_USB, /* Machine has internal sound: Ensoniq ES1373 */
+ .ram = {
+ .min = 8192,
+ .max = 1572864,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = &es1373_onboard_device,
+ .net_device = NULL
+ },
+ /* Has the SiS (5)600 chipset with on-chip KBC. */
+ {
+ .name = "[SiS 5600] PC Chips M747",
+ .internal_name = "m747",
+ .type = MACHINE_TYPE_SLOT1,
+ .chipset = MACHINE_CHIPSET_SIS_5600,
+ .init = machine_at_m747_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SLOT1,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 100000000,
+ .min_voltage = 1300,
+ .max_voltage = 3500,
+ .min_multi = 1.5,
+ .max_multi = 8.0
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_GAMEPORT | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 1572864,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ /* Slot 1/2 machines */
+ /* 440GX */
+ /* Has a National Semiconductors PC87309 Super I/O chip with on-chip KBC
+ with most likely AMIKey-2 KBC firmware. */
+ {
+ .name = "[i440GX] Freeway FW-6400GX",
+ .internal_name = "fw6400gx",
+ .type = MACHINE_TYPE_SLOT1_2,
+ .chipset = MACHINE_CHIPSET_INTEL_440GX,
+ .init = machine_at_fw6400gx_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SLOT1 | CPU_PKG_SLOT2,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 100000000,
+ .max_bus = 150000000,
+ .min_voltage = 1800,
+ .max_voltage = 3500,
+ .min_multi = 3.0,
+ .max_multi = 8.0
+ },
+ .bus_flags = MACHINE_PS2_NOISA | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
+ .ram = {
+ .min = 16384,
+ .max = 2097152,
+ .step = 16384
+ },
+ .nvrmask = 511,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ /* Slot 1/Socket 370 machines */
+ /* 440BX */
+ /* OEM version of ECS P6BXT-A+ REV 1.3x/2.2x. Has a Winbond W83977EF Super
+ I/O chip with on-chip KBC with AMIKey-2 KBC firmware.*/
+ {
+ .name = "[i440BX] Compaq ProSignia S316/318 (Intel)",
+ .internal_name = "prosignias31x_bx",
+ .type = MACHINE_TYPE_SLOT1_370,
+ .chipset = MACHINE_CHIPSET_VIA_APOLLO_PRO_133,
+ .init = machine_at_prosignias31x_bx_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SLOT1 | CPU_PKG_SOCKET370,
+ .block = CPU_BLOCK(CPU_PENTIUMPRO, CPU_CYRIX3S), /* Instability issues with PPro, and garbled text in POST with Cyrix */
+ .min_bus = 66666667,
+ .max_bus = 100000000,
+ .min_voltage = 1300,
+ .max_voltage = 3500,
+ .min_multi = 1.5,
+ .max_multi = 8.0
+ },
+ .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_SOUND | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 786432,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = &cmi8738_onboard_device,
+ .net_device = NULL
+ },
+ /* Has a Winbond W83977EF Super I/O chip with on-chip KBC with AMIKey-2 KBC
+ firmware. */
+ {
+ .name = "[i440BX] Tyan Trinity 371",
+ .internal_name = "s1857",
+ .type = MACHINE_TYPE_SLOT1_370,
+ .chipset = MACHINE_CHIPSET_INTEL_440BX,
+ .init = machine_at_s1857_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SLOT1 | CPU_PKG_SOCKET370,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 133333333,
+ .min_voltage = 1300,
+ .max_voltage = 3500,
+ .min_multi = 1.5,
+ .max_multi = 8.0
+ },
+ .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_SOUND | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 786432,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = &es1373_onboard_device,
+ .net_device = NULL
+ },
+ /* VIA Apollo Pro */
+ /* Has a Winbond W83977EF Super I/O chip with on-chip KBC with AMIKey-2 KBC
+ firmware. */
+ {
+ .name = "[VIA Apollo Pro 133] ECS P6BAT-A+",
+ .internal_name = "p6bat",
+ .type = MACHINE_TYPE_SLOT1_370,
+ .chipset = MACHINE_CHIPSET_VIA_APOLLO_PRO_133,
+ .init = machine_at_p6bat_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SLOT1 | CPU_PKG_SOCKET370,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 133333333,
+ .min_voltage = 1300,
+ .max_voltage = 3500,
+ .min_multi = 1.5,
+ .max_multi = 8.0
+ },
+ .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_SOUND | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 1572864,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = &cmi8738_onboard_device,
+ .net_device = NULL
+ },
+
+ /* Slot 2 machines */
+ /* 440GX */
+ /* Has a Winbond W83977EF Super I/O chip with on-chip KBC with AMIKey-2 KBC
+ firmware. */
+ {
+ .name = "[i440GX] Gigabyte GA-6GXU",
+ .internal_name = "6gxu",
+ .type = MACHINE_TYPE_SLOT2,
+ .chipset = MACHINE_CHIPSET_INTEL_440GX,
+ .init = machine_at_6gxu_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SLOT2,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 100000000,
+ .max_bus = 100000000,
+ .min_voltage = 1800,
+ .max_voltage = 3500,
+ .min_multi = 1.5,
+ .max_multi = 8.0
+ },
+ .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB, /* Machine has internal SCSI */
+ .ram = {
+ .min = 16384,
+ .max = 2097152,
+ .step = 16384
+ },
+ .nvrmask = 511,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has a Winbond W83977TF Super I/O chip with on-chip KBC with AMIKey-2 KBC
+ firmware. */
+ {
+ .name = "[i440GX] Supermicro S2DGE",
+ .internal_name = "s2dge",
+ .type = MACHINE_TYPE_SLOT2,
+ .chipset = MACHINE_CHIPSET_INTEL_440GX,
+ .init = machine_at_s2dge_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SLOT2,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 100000000,
+ .min_voltage = 1800,
+ .max_voltage = 3500,
+ .min_multi = 1.5,
+ .max_multi = 8.0
+ },
+ .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
+ .ram = {
+ .min = 16384,
+ .max = 2097152,
+ .step = 16384
+ },
+ .nvrmask = 511,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ /* PGA370 machines */
+ /* 440LX */
+ /* Has a Winbond W83977TF Super I/O chip with on-chip KBC with AMIKey-2 KBC
+ firmware. */
+ {
+ .name = "[i440LX] Supermicro 370SLM",
+ .internal_name = "s370slm",
+ .type = MACHINE_TYPE_SOCKET370,
+ .chipset = MACHINE_CHIPSET_INTEL_440LX,
+ .init = machine_at_s370slm_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET370,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 100000000,
+ .min_voltage = 1800,
+ .max_voltage = 3500,
+ .min_multi = MACHINE_MULTIPLIER_FIXED,
+ .max_multi = MACHINE_MULTIPLIER_FIXED,
+ },
+ .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 786432,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ /* 440BX */
+ /* Has a Winbond W83977EF Super I/O chip with on-chip KBC with AMIKey-2 KBC
+ firmware. */
+ {
+ .name = "[i440BX] AEWIN AW-O671R",
+ .internal_name = "awo671r",
+ .type = MACHINE_TYPE_SOCKET370,
+ .chipset = MACHINE_CHIPSET_INTEL_440BX,
+ .init = machine_at_awo671r_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET370,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 133333333,
+ .min_voltage = 1300,
+ .max_voltage = 3500,
+ .min_multi = 1.5,
+ .max_multi = 8.0 /* limits assumed */
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB, /* Machine has EISA, possibly for a riser? */
+ /* Yes, that's a rise slot, not EISA. */
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB | MACHINE_VIDEO, /* Machine has internal video: C&T B69000, sound: ESS ES1938S and NIC: Realtek RTL8139C */
+ .ram = {
+ .min = 8192,
+ .max = 524288,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = &chips_69000_onboard_device,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has a Winbond W83977EF Super I/O chip with on-chip KBC with AMIKey-2 KBC
+ firmware. */
+ {
+ .name = "[i440BX] ASUS CUBX",
+ .internal_name = "cubx",
+ .type = MACHINE_TYPE_SOCKET370,
+ .chipset = MACHINE_CHIPSET_INTEL_440BX,
+ .init = machine_at_cubx_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET370,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 150000000,
+ .min_voltage = 1300,
+ .max_voltage = 3500,
+ .min_multi = 1.5,
+ .max_multi = 8.0
+ },
+ .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_QUAD | MACHINE_APM | MACHINE_ACPI | MACHINE_USB, /* Machine has quad channel IDE with internal controller: CMD PCI-0648 */
+ .ram = {
+ .min = 8192,
+ .max = 1048576,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has a Winbond W83977EF Super I/O chip with on-chip KBC with AMIKey-2 KBC
+ firmware. */
+ {
+ .name = "[i440BX] AmazePC AM-BX133",
+ .internal_name = "ambx133",
+ .type = MACHINE_TYPE_SOCKET370,
+ .chipset = MACHINE_CHIPSET_INTEL_440BX,
+ .init = machine_at_ambx133_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET370,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 133333333,
+ .min_voltage = 1300,
+ .max_voltage = 3500,
+ .min_multi = 1.5,
+ .max_multi = 8.0 /* limits assumed */
+ },
+ .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 786432,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ /* 440ZX */
+ /* Has a Winbond W83977TF Super I/O chip with on-chip KBC with AMIKey-2 KBC
+ firmware. */
+ {
+ .name = "[i440ZX] Soltek SL-63A1",
+ .internal_name = "63a1",
+ .type = MACHINE_TYPE_SOCKET370,
+ .chipset = MACHINE_CHIPSET_INTEL_440ZX,
+ .init = machine_at_63a1_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET370,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 100000000,
+ .min_voltage = 1800,
+ .max_voltage = 3500,
+ .min_multi = 1.5,
+ .max_multi = 8.0
+ },
+ .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 524288,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ /* SMSC VictoryBX-66 */
+ /* Has a Winbond W83977EF Super I/O chip with on-chip KBC with AMIKey-2 KBC
+ firmware. */
+ {
+ .name = "[SMSC VictoryBX-66] A-Trend ATC7020BXII",
+ .internal_name = "atc7020bxii",
+ .type = MACHINE_TYPE_SOCKET370,
+ .chipset = MACHINE_CHIPSET_SMSC_VICTORYBX_66,
+ .init = machine_at_atc7020bxii_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET370,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 133333333,
+ .min_voltage = 1300,
+ .max_voltage = 3500,
+ .min_multi = 1.5,
+ .max_multi = 8.0
+ },
+ .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 1048576,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has an ITE IT8671F Super I/O chip with on-chip KBC with AMIKey-2 KBC
+ firmware. */
+ {
+ .name = "[SMSC VictoryBX-66] PC Chips M773",
+ .internal_name = "m773",
+ .type = MACHINE_TYPE_SOCKET370,
+ .chipset = MACHINE_CHIPSET_SMSC_VICTORYBX_66,
+ .init = machine_at_m773_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET370,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 133333333,
+ .min_voltage = 1300,
+ .max_voltage = 3500,
+ .min_multi = 1.5,
+ .max_multi = 8.0
+ },
+ .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_SOUND | MACHINE_APM | MACHINE_ACPI | MACHINE_GAMEPORT | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 524288,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = &cmi8738_onboard_device,
+ .net_device = NULL
+ },
+
+ /* VIA Apollo Pro */
+ /* Has the VIA VT82C586B southbridge with on-chip KBC identical to the VIA
+ VT82C42N. */
+ {
+ .name = "[VIA Apollo Pro] PC Partner APAS3",
+ .internal_name = "apas3",
+ .type = MACHINE_TYPE_SOCKET370,
+ .chipset = MACHINE_CHIPSET_VIA_APOLLO_PRO,
+ .init = machine_at_apas3_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET370,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 100000000,
+ .min_voltage = 1800,
+ .max_voltage = 3500,
+ .min_multi = 1.5,
+ .max_multi = 8.0
+ },
+ .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 786432,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has a Winbond W83977EF Super I/O chip with on-chip KBC with AMIKey-2 KBC
+ firmware. */
+ {
+ .name = "[VIA Apollo Pro 133] ECS P6BAP-A+",
+ .internal_name = "p6bap",
+ .type = MACHINE_TYPE_SOCKET370,
+ .chipset = MACHINE_CHIPSET_VIA_APOLLO_PRO_133,
+ .init = machine_at_p6bap_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET370,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 150000000,
+ .min_voltage = 1300,
+ .max_voltage = 3500,
+ .min_multi = 1.5,
+ .max_multi = 8.0
+ },
+ .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_GAMEPORT | MACHINE_USB | MACHINE_SOUND,
+ .ram = {
+ .min = 8192,
+ .max = 1572864,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = &cmi8738_onboard_device,
+ .net_device = NULL
+ },
+ /* Has the VIA VT82C686B southbridge with on-chip KBC identical to the VIA
+ VT82C42N. */
+ {
+ .name = "[VIA Apollo Pro 133A] Acorp 6VIA90AP",
+ .internal_name = "6via90ap",
+ .type = MACHINE_TYPE_SOCKET370,
+ .chipset = MACHINE_CHIPSET_VIA_APOLLO_PRO_133A,
+ .init = machine_at_6via90ap_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET370,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 150000000,
+ .min_voltage = 1300,
+ .max_voltage = 3500,
+ .min_multi = MACHINE_MULTIPLIER_FIXED,
+ .max_multi = MACHINE_MULTIPLIER_FIXED
+ },
+ .bus_flags = MACHINE_PS2_A97 | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_AG | MACHINE_APM | MACHINE_ACPI | MACHINE_GAMEPORT | MACHINE_USB,
+ .ram = {
+ .min = 16384,
+ .max = 3145728,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+ /* Has the VIA VT82C686B southbridge with on-chip KBC identical to the VIA
+ VT82C42N. */
+ {
+ .name = "[VIA Apollo Pro 133A] ASUS CUV4X-LS",
+ .internal_name = "cuv4xls",
+ .type = MACHINE_TYPE_SOCKET370,
+ .chipset = MACHINE_CHIPSET_VIA_APOLLO_PRO_133A,
+ .init = machine_at_cuv4xls_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET370,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 66666667,
+ .max_bus = 150000000,
+ .min_voltage = 1300,
+ .max_voltage = 3500,
+ .min_multi = 1.5,
+ .max_multi = 8.0
+ },
+ .bus_flags = MACHINE_PS2_NOI97 | MACHINE_BUS_USB, /* Has Asus-proprietary LAN/SCSI slot */
+ .flags = MACHINE_IDE_DUAL | MACHINE_SOUND | MACHINE_APM | MACHINE_ACPI | MACHINE_GAMEPORT | MACHINE_USB,
+ .ram = {
+ .min = 16384,
+ .max = 4194304,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = &cmi8738_onboard_device,
+ .net_device = NULL
+ },
+ /* SiS (5)600 */
+ /* Has the SiS 600 chipset, which is a re-brand of the 5600, with
+ on-chip KBC. */
+ {
+ .name = "[SiS 600] Soyo SY-7SBB",
+ .internal_name = "7sbb",
+ .type = MACHINE_TYPE_SOCKET370,
+ .chipset = MACHINE_CHIPSET_SIS_5600,
+ .init = machine_at_7sbb_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SOCKET370,
+ .block = CPU_BLOCK(CPU_CYRIX3S),
+ .min_bus = 60000000,
+ .max_bus = 100000000,
+ .min_voltage = 1800,
+ .max_voltage = 3500,
+ .min_multi = 1.5,
+ .max_multi = 8.0
+ },
+ .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 1572864,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ /* Miscellaneous/Fake/Hypervisor machines */
+ /* Has a Winbond W83977F Super I/O chip with on-chip KBC with AMIKey-2 KBC
+ firmware. */
+ {
+ .name = "[i440BX] Microsoft Virtual PC 2007",
+ .internal_name = "vpc2007",
+ .type = MACHINE_TYPE_MISC,
+ .chipset = MACHINE_CHIPSET_INTEL_440BX,
+ .init = machine_at_vpc2007_init,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = CPU_PKG_SLOT1,
+ .block = CPU_BLOCK(CPU_PENTIUMPRO, CPU_PENTIUM2, CPU_CYRIX3S),
+ .min_bus = 0,
+ .max_bus = 66666667,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
+ .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
+ .ram = {
+ .min = 8192,
+ .max = 1048576,
+ .step = 8192
+ },
+ .nvrmask = 255,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ },
+
+ {
+ .name = NULL,
+ .internal_name = NULL,
+ .type = MACHINE_TYPE_NONE,
+ .chipset = MACHINE_CHIPSET_NONE,
+ .init = NULL,
+ .p1_handler = NULL,
+ .gpio_handler = NULL,
+ .available_flag = MACHINE_AVAILABLE,
+ .gpio_acpi_handler = NULL,
+ .cpu = {
+ .package = 0,
+ .block = CPU_BLOCK_NONE,
+ .min_bus = 0,
+ .max_bus = 0,
+ .min_voltage = 0,
+ .max_voltage = 0,
+ .min_multi = 0,
+ .max_multi = 0
+ },
+ .bus_flags = MACHINE_BUS_NONE,
+ .flags = MACHINE_FLAGS_NONE,
+ .ram = {
+ .min = 0,
+ .max = 0,
+ .step = 0
+ },
+ .nvrmask = 0,
+ .kbc_device = NULL,
+ .kbc_p1 = 0xff,
+ .gpio = 0xffffffff,
+ .gpio_acpi = 0xffffffff,
+ .device = NULL,
+ .kbd_device = NULL,
+ .fdc_device = NULL,
+ .sio_device = NULL,
+ .vid_device = NULL,
+ .snd_device = NULL,
+ .net_device = NULL
+ }
+ // clang-format on
+};
+
+/* Saved copies - jumpers get applied to these.
+ We use also machine_gpio to store IBM PC/XT jumpers as they need more than one byte. */
+static uint32_t machine_p1_default;
+static uint32_t machine_p1;
+
+static uint32_t machine_gpio_default;
+static uint32_t machine_gpio;
+
+static uint32_t machine_gpio_acpi_default;
+static uint32_t machine_gpio_acpi;
+
+void *machine_snd = NULL;
+
+uint8_t
+machine_get_p1_default(void)
+{
+ return machine_p1_default;
+}
+
+uint8_t
+machine_get_p1(void)
+{
+ return machine_p1;
+}
+
+void
+machine_set_p1_default(uint8_t val)
+{
+ machine_p1 = machine_p1_default = val;
+}
+
+void
+machine_set_p1(uint8_t val)
+{
+ machine_p1 = val;
+}
+
+void
+machine_and_p1(uint8_t val)
+{
+ machine_p1 = machine_p1_default & val;
+}
+
+uint8_t
+machine_handle_p1(uint8_t write, uint8_t val)
+{
+ uint8_t ret = 0xff;
+
+ if (machines[machine].p1_handler)
+ ret = machines[machine].p1_handler(write, val);
+ else {
+ if (write)
+ machine_p1 = machine_p1_default & val;
+ else
+ ret = machine_p1;
+ }
+
+ return ret;
+}
+
+void
+machine_init_p1(void)
+{
+ machine_p1 = machine_p1_default = machines[machine].kbc_p1;
+}
+
+uint32_t
+machine_get_gpio_default(void)
+{
+ return machine_gpio_default;
+}
+
+uint32_t
+machine_get_gpio(void)
+{
+ return machine_gpio;
+}
+
+void
+machine_set_gpio_default(uint32_t val)
+{
+ machine_gpio = machine_gpio_default = val;
+}
+
+void
+machine_set_gpio(uint32_t val)
+{
+ machine_gpio = val;
+}
+
+void
+machine_and_gpio(uint32_t val)
+{
+ machine_gpio = machine_gpio_default & val;
+}
+
+uint32_t
+machine_handle_gpio(uint8_t write, uint32_t val)
+{
+ uint32_t ret = 0xffffffff;
+
+ if (machines[machine].gpio_handler)
+ ret = machines[machine].gpio_handler(write, val);
+ else {
+ if (write)
+ machine_gpio = machine_gpio_default & val;
+ else
+ ret = machine_gpio;
+ }
+
+ return ret;
+}
+
+void
+machine_init_gpio(void)
+{
+ machine_gpio = machine_gpio_default = machines[machine].gpio;
+}
+
+uint32_t
+machine_get_gpio_acpi_default(void)
+{
+ return machine_gpio_acpi_default;
+}
+
+uint32_t
+machine_get_gpio_acpi(void)
+{
+ return machine_gpio_acpi;
+}
+
+void
+machine_set_gpio_acpi_default(uint32_t val)
+{
+ machine_gpio_acpi = machine_gpio_acpi_default = val;
+}
+
+void
+machine_set_gpio_acpi(uint32_t val)
+{
+ machine_gpio_acpi = val;
+}
+
+void
+machine_and_gpio_acpi(uint32_t val)
+{
+ machine_gpio_acpi = machine_gpio_acpi_default & val;
+}
+
+uint32_t
+machine_handle_gpio_acpi(uint8_t write, uint32_t val)
+{
+ uint32_t ret = 0xffffffff;
+
+ if (machines[machine].gpio_acpi_handler)
+ ret = machines[machine].gpio_acpi_handler(write, val);
+ else {
+ if (write)
+ machine_gpio_acpi = machine_gpio_acpi_default & val;
+ else
+ ret = machine_gpio_acpi;
+ }
+
+ return ret;
+}
+
+void
+machine_init_gpio_acpi(void)
+{
+ machine_gpio_acpi = machine_gpio_acpi_default = machines[machine].gpio_acpi;
+}
+
+int
+machine_count(void)
+{
+ return ((sizeof(machines) / sizeof(machine_t)) - 1);
+}
+
+const char *
+machine_getname(void)
+{
+ return (machines[machine].name);
+}
+
+const char *
+machine_getname_ex(int m)
+{
+ return (machines[m].name);
+}
+
+const device_t *
+machine_get_kbc_device(int m)
+{
+ if (machines[m].kbc_device)
+ return (machines[m].kbc_device);
+
+ return (NULL);
+}
+
+const device_t *
+machine_get_device(int m)
+{
+ if (machines[m].device)
+ return (machines[m].device);
+
+ return (NULL);
+}
+
+const device_t *
+machine_get_fdc_device(int m)
+{
+ if (machines[m].fdc_device)
+ return (machines[m].fdc_device);
+
+ return (NULL);
+}
+
+const device_t *
+machine_get_sio_device(int m)
+{
+ if (machines[m].sio_device)
+ return (machines[m].sio_device);
+
+ return (NULL);
+}
+
+const device_t *
+machine_get_vid_device(int m)
+{
+ if (machines[m].vid_device)
+ return (machines[m].vid_device);
+
+ return (NULL);
+}
+
+const device_t *
+machine_get_snd_device(int m)
+{
+ if (machines[m].snd_device)
+ return (machines[m].snd_device);
+
+ return (NULL);
+}
+
+const device_t *
+machine_get_net_device(int m)
+{
+ if (machines[m].net_device)
+ return (machines[m].net_device);
+
+ return (NULL);
+}
+
+const char *
+machine_get_internal_name(void)
+{
+ return (machines[machine].internal_name);
+}
+
+const char *
+machine_get_internal_name_ex(int m)
+{
+ return (machines[m].internal_name);
+}
+
+int
+machine_get_nvrmask(int m)
+{
+ return (machines[m].nvrmask);
+}
+
+int
+machine_has_flags(int m, int flags)
+{
+ int ret = machines[m].flags & flags;
+
+ /* Can't have PS/2 ports with an AT KBC. */
+ if ((flags & MACHINE_PS2_KBC) &&
+ (machines[m].bus_flags & MACHINE_BUS_PS2_PORTS))
+ ret |= MACHINE_PS2_KBC;
+
+ return ret;
+}
+
+int
+machine_has_bus(int m, int bus_flags)
+{
+ int ret = machines[m].bus_flags & bus_flags;
+
+ /* TODO: Move the KBD flags to the machine table! */
+ if ((bus_flags & MACHINE_BUS_XT_KBD) &&
+ !(machines[m].bus_flags & MACHINE_BUS_ISA16) &&
+ !(machines[m].bus_flags & MACHINE_BUS_PS2_PORTS))
+ ret |= MACHINE_BUS_XT_KBD;
- /* 440EX */
- /* Has a Winbond W83977TF Super I/O chip with on-chip KBC with AMIKey-2 KBC
- firmware. */
- {
- .name = "[i440EX] QDI EXCELLENT II",
- .internal_name = "p6i440e2",
- .type = MACHINE_TYPE_SLOT1,
- .chipset = MACHINE_CHIPSET_INTEL_440EX,
- .init = machine_at_p6i440e2_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SLOT1,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 83333333,
- .min_voltage = 1800,
- .max_voltage = 3500,
- .min_multi = 3.0,
- .max_multi = 8.0
- },
- .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 524288,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- /* 440BX */
- /* Has a Winbond W83977EF Super I/O chip with on-chip KBC with AMIKey-2 KBC
- firmware. */
- {
- .name = "[i440BX] ASUS P2B-LS",
- .internal_name = "p2bls",
- .type = MACHINE_TYPE_SLOT1,
- .chipset = MACHINE_CHIPSET_INTEL_440BX,
- .init = machine_at_p2bls_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SLOT1,
- .block = CPU_BLOCK_NONE,
- .min_bus = 50000000,
- .max_bus = 112121212,
- .min_voltage = 1300,
- .max_voltage = 3500,
- .min_multi = 1.5,
- .max_multi = 8.0
- },
- .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB, /* Machine has internal SCSI: Adaptec AIC-7890AB */
- .ram = {
- .min = 8192,
- .max = 1048576,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has a Winbond W83977EF Super I/O chip with on-chip KBC with AMIKey-2 KBC
- firmware. */
- {
- .name = "[i440BX] ASUS P3B-F",
- .internal_name = "p3bf",
- .type = MACHINE_TYPE_SLOT1,
- .chipset = MACHINE_CHIPSET_INTEL_440BX,
- .init = machine_at_p3bf_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SLOT1,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 150000000,
- .min_voltage = 1300,
- .max_voltage = 3500,
- .min_multi = 1.5,
- .max_multi = 8.0
- },
- .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 1048576,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has a Winbond W83977EF Super I/O chip with on-chip KBC with AMIKey-2 KBC
- firmware. */
-
-{
- .name = "[i440BX] ABIT BX6",
- .internal_name = "bx6",
- .type = MACHINE_TYPE_SLOT1,
- .chipset = MACHINE_CHIPSET_INTEL_440BX,
- .init = machine_at_bx6_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SLOT1,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 133333333,
- .min_voltage = 1500,
- .max_voltage = 3500,
- .min_multi = 2.0,
- .max_multi = 5.5
- },
- .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 524288,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- {
- .name = "[i440BX] ABIT BF6",
- .internal_name = "bf6",
- .type = MACHINE_TYPE_SLOT1,
- .chipset = MACHINE_CHIPSET_INTEL_440BX,
- .init = machine_at_bf6_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SLOT1,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 133333333,
- .min_voltage = 1800,
- .max_voltage = 3500,
- .min_multi = 1.5,
- .max_multi = 8.0
- },
- .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 786432,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has a Winbond W83977TF Super I/O chip with on-chip KBC with AMIKey-2 KBC
- firmware. */
- {
- .name = "[i440BX] AOpen AX6BC",
- .internal_name = "ax6bc",
- .type = MACHINE_TYPE_SLOT1,
- .chipset = MACHINE_CHIPSET_INTEL_440BX,
- .init = machine_at_ax6bc_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SLOT1,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 112121212,
- .min_voltage = 1800,
- .max_voltage = 3500,
- .min_multi = 1.5,
- .max_multi = 8.0
- },
- .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 786432,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has a Winbond W83977TF Super I/O chip with on-chip KBC with AMIKey-2 KBC
- firmware. */
- {
- .name = "[i440BX] Gigabyte GA-686BX",
- .internal_name = "686bx",
- .type = MACHINE_TYPE_SLOT1,
- .chipset = MACHINE_CHIPSET_INTEL_440BX,
- .init = machine_at_686bx_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SLOT1,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 100000000,
- .min_voltage = 1800,
- .max_voltage = 3500,
- .min_multi = 1.5,
- .max_multi = 8.0
- },
- .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 1048576,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has a SM(S)C FDC37M60x Super I/O chip with on-chip KBC with most likely
- AMIKey-2 KBC firmware. */
- {
- .name = "[i440BX] HP Vectra VEi 8",
- .internal_name = "vei8",
- .type = MACHINE_TYPE_SLOT1,
- .chipset = MACHINE_CHIPSET_INTEL_440BX,
- .init = machine_at_vei8_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SLOT1,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 100000000,
- .min_voltage = 1800,
- .max_voltage = 3500,
- .min_multi = 1.5,
- .max_multi = 8.0
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_GAMEPORT | MACHINE_USB, /* Machine has internal video: Matrox MGA-G200 and sound: Crystal CS4820 */
- .ram = {
- .min = 8192,
- .max = 524288,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has a Winbond W83977TF Super I/O chip with on-chip KBC with AMIKey-2 (updated 'H') KBC firmware. */
- {
- .name = "[i440BX] LG IBM Multinet i x7G (MSI MS-6119)",
- .internal_name = "lgibmx7g",
- .type = MACHINE_TYPE_SLOT1,
- .chipset = MACHINE_CHIPSET_INTEL_440BX,
- .init = machine_at_lgibmx7g_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SLOT1,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 100000000,
- .min_voltage = 1800,
- .max_voltage = 3500,
- .min_multi = 1.5,
- .max_multi = 8.0
- },
- .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 786432,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has a National Semiconductors PC87309 Super I/O chip with on-chip KBC
- with most likely AMIKey-2 KBC firmware. */
- {
- .name = "[i440BX] Tyan Tsunami ATX",
- .internal_name = "s1846",
- .type = MACHINE_TYPE_SLOT1,
- .chipset = MACHINE_CHIPSET_INTEL_440BX,
- .init = machine_at_s1846_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SLOT1,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 112121212,
- .min_voltage = 1800,
- .max_voltage = 3500,
- .min_multi = 1.5,
- .max_multi = 8.0
- },
- .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_SOUND | MACHINE_APM | MACHINE_ACPI | MACHINE_USB, /* Machine has internal sound: Ensoniq ES1371 */
- .ram = {
- .min = 8192,
- .max = 786432,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = &es1371_onboard_device,
- .net_device = NULL
- },
- /* Has a Winbond W83977TF Super I/O chip with on-chip KBC with AMIKey-2 KBC
- firmware. */
- {
- .name = "[i440BX] Supermicro P6SBA",
- .internal_name = "p6sba",
- .type = MACHINE_TYPE_SLOT1,
- .chipset = MACHINE_CHIPSET_INTEL_440BX,
- .init = machine_at_p6sba_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SLOT1,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 100000000,
- .min_voltage = 1800,
- .max_voltage = 3500,
- .min_multi = 1.5,
- .max_multi = 8.0
- },
- .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 786432,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- /* 440ZX */
- /* Has a Winbond W83977EF Super I/O chip with on-chip KBC with AMIKey-2 KBC
- firmware. */
- {
- .name = "[i440ZX] MSI MS-6168",
- .internal_name = "ms6168",
- .type = MACHINE_TYPE_SLOT1,
- .chipset = MACHINE_CHIPSET_INTEL_440ZX,
- .init = machine_at_ms6168_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SLOT1,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 100000000,
- .min_voltage = 1800,
- .max_voltage = 3500,
- .min_multi = 1.5,
- .max_multi = 8.0
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB, /* AGP is reserved for the internal video */
- .flags = MACHINE_IDE_DUAL | MACHINE_AV | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 524288,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &voodoo_3_2000_agp_onboard_8m_device,
- .snd_device = &es1373_onboard_device,
- .net_device = NULL
- },
- /* Has a Winbond W83977EF Super I/O chip with on-chip KBC with AMIKey-2 KBC
- firmware. */
- {
- .name = "[i440ZX] Packard Bell Bora Pro",
- .internal_name = "borapro",
- .type = MACHINE_TYPE_SLOT1,
- .chipset = MACHINE_CHIPSET_INTEL_440ZX,
- .init = machine_at_borapro_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SLOT1,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 100000000,
- .min_voltage = 1800,
- .max_voltage = 3500,
- .min_multi = 1.5,
- .max_multi = 8.0
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB, /* AGP is reserved for the internal video */
- .flags = MACHINE_IDE_DUAL | MACHINE_AV | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 524288,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &voodoo_3_2000_agp_onboard_8m_device,
- .snd_device = &es1373_onboard_device,
- .net_device = NULL
- },
-
- /* SMSC VictoryBX-66 */
- /* Has a Winbond W83977EF Super I/O chip with on-chip KBC with AMIKey-2 KBC
- firmware. */
- {
- .name = "[SMSC VictoryBX-66] A-Trend ATC6310BXII",
- .internal_name = "atc6310bxii",
- .type = MACHINE_TYPE_SLOT1,
- .chipset = MACHINE_CHIPSET_SMSC_VICTORYBX_66,
- .init = machine_at_atc6310bxii_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SLOT1,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 133333333,
- .min_voltage = 1300,
- .max_voltage = 3500,
- .min_multi = 1.5,
- .max_multi = 8.0
- },
- .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 786432,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- /* VIA Apollo Pro */
- /* Has the VIA VT82C596B southbridge with on-chip KBC identical to the VIA
- VT82C42N. */
- {
- .name = "[VIA Apollo Pro] FIC KA-6130",
- .internal_name = "ficka6130",
- .type = MACHINE_TYPE_SLOT1,
- .chipset = MACHINE_CHIPSET_VIA_APOLLO_PRO,
- .init = machine_at_ficka6130_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SLOT1,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 100000000,
- .min_voltage = 1800,
- .max_voltage = 3500,
- .min_multi = 1.5,
- .max_multi = 8.0
- },
- .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_GAMEPORT | MACHINE_USB, /* Machine has internal sound: ESS ES1938S */
- .ram = {
- .min = 8192,
- .max = 524288,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has a Winbond W83977EF Super I/O chip with on-chip KBC with AMIKey-2 KBC
- firmware. */
- {
- .name = "[VIA Apollo Pro 133] ASUS P3V133",
- .internal_name = "p3v133",
- .type = MACHINE_TYPE_SLOT1,
- .chipset = MACHINE_CHIPSET_VIA_APOLLO_PRO_133,
- .init = machine_at_p3v133_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SLOT1,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 150000000,
- .min_voltage = 1300,
- .max_voltage = 3500,
- .min_multi = 1.5,
- .max_multi = 8.0
- },
- .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 1572864,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has a Winbond W83977EF Super I/O chip with on-chip KBC with AMIKey-2 KBC
- firmware. */
- {
- .name = "[VIA Apollo Pro 133A] ASUS P3V4X",
- .internal_name = "p3v4x",
- .type = MACHINE_TYPE_SLOT1,
- .chipset = MACHINE_CHIPSET_VIA_APOLLO_PRO_133A,
- .init = machine_at_p3v4x_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SLOT1,
- .block = CPU_BLOCK(CPU_PENTIUMPRO),
- .min_bus = 66666667,
- .max_bus = 150000000,
- .min_voltage = 1300,
- .max_voltage = 3500,
- .min_multi = 1.5,
- .max_multi = 8.0
- },
- .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 2097152,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has a Winbond W83977EF Super I/O chip with on-chip KBC with AMIKey-2 KBC
- firmware. */
- {
- .name = "[VIA Apollo Pro 133A] BCM GT694VA",
- .internal_name = "gt694va",
- .type = MACHINE_TYPE_SLOT1,
- .chipset = MACHINE_CHIPSET_VIA_APOLLO_PRO_133A,
- .init = machine_at_gt694va_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SLOT1,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 133333333,
- .min_voltage = 1300,
- .max_voltage = 3500,
- .min_multi = 1.5,
- .max_multi = 8.0
- },
- .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_SOUND | MACHINE_APM | MACHINE_ACPI | MACHINE_GAMEPORT | MACHINE_USB, /* Machine has internal sound: Ensoniq ES1373 */
- .ram = {
- .min = 8192,
- .max = 3145728,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = &es1373_onboard_device,
- .net_device = NULL
- },
-
- /* SiS (5)600 */
- /* Has the SiS (5)600 chipset with on-chip KBC. */
- {
- .name = "[SiS 5600] Freetech/Flexus P6F99",
- .internal_name = "p6f99",
- .type = MACHINE_TYPE_SLOT1,
- .chipset = MACHINE_CHIPSET_SIS_5600,
- .init = machine_at_p6f99_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SLOT1,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 100000000,
- .min_voltage = 1300,
- .max_voltage = 3500,
- .min_multi = 1.5,
- .max_multi = 8.0
- },
- .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_SOUND | MACHINE_APM | MACHINE_ACPI | MACHINE_GAMEPORT | MACHINE_USB, /* Machine has internal sound: Ensoniq ES1373 */
- .ram = {
- .min = 8192,
- .max = 1572864,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = &es1373_onboard_device,
- .net_device = NULL
- },
- /* Has the SiS (5)600 chipset with on-chip KBC. */
- {
- .name = "[SiS 5600] PC Chips M747",
- .internal_name = "m747",
- .type = MACHINE_TYPE_SLOT1,
- .chipset = MACHINE_CHIPSET_SIS_5600,
- .init = machine_at_m747_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SLOT1,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 100000000,
- .min_voltage = 1300,
- .max_voltage = 3500,
- .min_multi = 1.5,
- .max_multi = 8.0
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_GAMEPORT | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 1572864,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- /* Slot 1/2 machines */
- /* 440GX */
- /* Has a National Semiconductors PC87309 Super I/O chip with on-chip KBC
- with most likely AMIKey-2 KBC firmware. */
- {
- .name = "[i440GX] Freeway FW-6400GX",
- .internal_name = "fw6400gx",
- .type = MACHINE_TYPE_SLOT1_2,
- .chipset = MACHINE_CHIPSET_INTEL_440GX,
- .init = machine_at_fw6400gx_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SLOT1 | CPU_PKG_SLOT2,
- .block = CPU_BLOCK_NONE,
- .min_bus = 100000000,
- .max_bus = 150000000,
- .min_voltage = 1800,
- .max_voltage = 3500,
- .min_multi = 3.0,
- .max_multi = 8.0
- },
- .bus_flags = MACHINE_PS2_NOISA | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
- .ram = {
- .min = 16384,
- .max = 2097152,
- .step = 16384
- },
- .nvrmask = 511,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- /* Slot 1/Socket 370 machines */
- /* 440BX */
- /* OEM version of ECS P6BXT-A+ REV 1.3x/2.2x. Has a Winbond W83977EF Super
- I/O chip with on-chip KBC with AMIKey-2 KBC firmware.*/
- {
- .name = "[i440BX] Compaq ProSignia S316/318 (Intel)",
- .internal_name = "prosignias31x_bx",
- .type = MACHINE_TYPE_SLOT1_370,
- .chipset = MACHINE_CHIPSET_VIA_APOLLO_PRO_133,
- .init = machine_at_prosignias31x_bx_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SLOT1 | CPU_PKG_SOCKET370,
- .block = CPU_BLOCK(CPU_PENTIUMPRO, CPU_CYRIX3S), /* Instability issues with PPro, and garbled text in POST with Cyrix */
- .min_bus = 66666667,
- .max_bus = 100000000,
- .min_voltage = 1300,
- .max_voltage = 3500,
- .min_multi = 1.5,
- .max_multi = 8.0
- },
- .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_SOUND | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 786432,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = &cmi8738_onboard_device,
- .net_device = NULL
- },
- /* Has a Winbond W83977EF Super I/O chip with on-chip KBC with AMIKey-2 KBC
- firmware. */
- {
- .name = "[i440BX] Tyan Trinity 371",
- .internal_name = "s1857",
- .type = MACHINE_TYPE_SLOT1_370,
- .chipset = MACHINE_CHIPSET_INTEL_440BX,
- .init = machine_at_s1857_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SLOT1 | CPU_PKG_SOCKET370,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 133333333,
- .min_voltage = 1300,
- .max_voltage = 3500,
- .min_multi = 1.5,
- .max_multi = 8.0
- },
- .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_SOUND | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 786432,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = &es1373_onboard_device,
- .net_device = NULL
- },
- /* VIA Apollo Pro */
- /* Has a Winbond W83977EF Super I/O chip with on-chip KBC with AMIKey-2 KBC
- firmware. */
- {
- .name = "[VIA Apollo Pro 133] ECS P6BAT-A+",
- .internal_name = "p6bat",
- .type = MACHINE_TYPE_SLOT1_370,
- .chipset = MACHINE_CHIPSET_VIA_APOLLO_PRO_133,
- .init = machine_at_p6bat_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SLOT1 | CPU_PKG_SOCKET370,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 133333333,
- .min_voltage = 1300,
- .max_voltage = 3500,
- .min_multi = 1.5,
- .max_multi = 8.0
- },
- .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_SOUND | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 1572864,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = &cmi8738_onboard_device,
- .net_device = NULL
- },
-
- /* Slot 2 machines */
- /* 440GX */
- /* Has a Winbond W83977EF Super I/O chip with on-chip KBC with AMIKey-2 KBC
- firmware. */
- {
- .name = "[i440GX] Gigabyte GA-6GXU",
- .internal_name = "6gxu",
- .type = MACHINE_TYPE_SLOT2,
- .chipset = MACHINE_CHIPSET_INTEL_440GX,
- .init = machine_at_6gxu_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SLOT2,
- .block = CPU_BLOCK_NONE,
- .min_bus = 100000000,
- .max_bus = 100000000,
- .min_voltage = 1800,
- .max_voltage = 3500,
- .min_multi = 1.5,
- .max_multi = 8.0
- },
- .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB, /* Machine has internal SCSI */
- .ram = {
- .min = 16384,
- .max = 2097152,
- .step = 16384
- },
- .nvrmask = 511,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has a Winbond W83977TF Super I/O chip with on-chip KBC with AMIKey-2 KBC
- firmware. */
- {
- .name = "[i440GX] Supermicro S2DGE",
- .internal_name = "s2dge",
- .type = MACHINE_TYPE_SLOT2,
- .chipset = MACHINE_CHIPSET_INTEL_440GX,
- .init = machine_at_s2dge_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SLOT2,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 100000000,
- .min_voltage = 1800,
- .max_voltage = 3500,
- .min_multi = 1.5,
- .max_multi = 8.0
- },
- .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
- .ram = {
- .min = 16384,
- .max = 2097152,
- .step = 16384
- },
- .nvrmask = 511,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- /* PGA370 machines */
- /* 440LX */
- /* Has a Winbond W83977TF Super I/O chip with on-chip KBC with AMIKey-2 KBC
- firmware. */
- {
- .name = "[i440LX] Supermicro 370SLM",
- .internal_name = "s370slm",
- .type = MACHINE_TYPE_SOCKET370,
- .chipset = MACHINE_CHIPSET_INTEL_440LX,
- .init = machine_at_s370slm_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET370,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 100000000,
- .min_voltage = 1800,
- .max_voltage = 3500,
- .min_multi = MACHINE_MULTIPLIER_FIXED,
- .max_multi = MACHINE_MULTIPLIER_FIXED,
- },
- .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 786432,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- /* 440BX */
- /* Has a Winbond W83977EF Super I/O chip with on-chip KBC with AMIKey-2 KBC
- firmware. */
- {
- .name = "[i440BX] AEWIN AW-O671R",
- .internal_name = "awo671r",
- .type = MACHINE_TYPE_SOCKET370,
- .chipset = MACHINE_CHIPSET_INTEL_440BX,
- .init = machine_at_awo671r_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET370,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 133333333,
- .min_voltage = 1300,
- .max_voltage = 3500,
- .min_multi = 1.5,
- .max_multi = 8.0 /* limits assumed */
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB, /* Machine has EISA, possibly for a riser? */
- /* Yes, that's a rise slot, not EISA. */
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB | MACHINE_VIDEO, /* Machine has internal video: C&T B69000, sound: ESS ES1938S and NIC: Realtek RTL8139C */
- .ram = {
- .min = 8192,
- .max = 524288,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = &chips_69000_onboard_device,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has a Winbond W83977EF Super I/O chip with on-chip KBC with AMIKey-2 KBC
- firmware. */
- {
- .name = "[i440BX] ASUS CUBX",
- .internal_name = "cubx",
- .type = MACHINE_TYPE_SOCKET370,
- .chipset = MACHINE_CHIPSET_INTEL_440BX,
- .init = machine_at_cubx_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET370,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 150000000,
- .min_voltage = 1300,
- .max_voltage = 3500,
- .min_multi = 1.5,
- .max_multi = 8.0
- },
- .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_QUAD | MACHINE_APM | MACHINE_ACPI | MACHINE_USB, /* Machine has quad channel IDE with internal controller: CMD PCI-0648 */
- .ram = {
- .min = 8192,
- .max = 1048576,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has a Winbond W83977EF Super I/O chip with on-chip KBC with AMIKey-2 KBC
- firmware. */
- {
- .name = "[i440BX] AmazePC AM-BX133",
- .internal_name = "ambx133",
- .type = MACHINE_TYPE_SOCKET370,
- .chipset = MACHINE_CHIPSET_INTEL_440BX,
- .init = machine_at_ambx133_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET370,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 133333333,
- .min_voltage = 1300,
- .max_voltage = 3500,
- .min_multi = 1.5,
- .max_multi = 8.0 /* limits assumed */
- },
- .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 786432,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- /* 440ZX */
- /* Has a Winbond W83977TF Super I/O chip with on-chip KBC with AMIKey-2 KBC
- firmware. */
- {
- .name = "[i440ZX] Soltek SL-63A1",
- .internal_name = "63a1",
- .type = MACHINE_TYPE_SOCKET370,
- .chipset = MACHINE_CHIPSET_INTEL_440ZX,
- .init = machine_at_63a1_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET370,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 100000000,
- .min_voltage = 1800,
- .max_voltage = 3500,
- .min_multi = 1.5,
- .max_multi = 8.0
- },
- .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 524288,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- /* SMSC VictoryBX-66 */
- /* Has a Winbond W83977EF Super I/O chip with on-chip KBC with AMIKey-2 KBC
- firmware. */
- {
- .name = "[SMSC VictoryBX-66] A-Trend ATC7020BXII",
- .internal_name = "atc7020bxii",
- .type = MACHINE_TYPE_SOCKET370,
- .chipset = MACHINE_CHIPSET_SMSC_VICTORYBX_66,
- .init = machine_at_atc7020bxii_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET370,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 133333333,
- .min_voltage = 1300,
- .max_voltage = 3500,
- .min_multi = 1.5,
- .max_multi = 8.0
- },
- .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 1048576,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has an ITE IT8671F Super I/O chip with on-chip KBC with AMIKey-2 KBC
- firmware. */
- {
- .name = "[SMSC VictoryBX-66] PC Chips M773",
- .internal_name = "m773",
- .type = MACHINE_TYPE_SOCKET370,
- .chipset = MACHINE_CHIPSET_SMSC_VICTORYBX_66,
- .init = machine_at_m773_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET370,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 133333333,
- .min_voltage = 1300,
- .max_voltage = 3500,
- .min_multi = 1.5,
- .max_multi = 8.0
- },
- .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_SOUND | MACHINE_APM | MACHINE_ACPI | MACHINE_GAMEPORT | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 524288,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = &cmi8738_onboard_device,
- .net_device = NULL
- },
-
- /* VIA Apollo Pro */
- /* Has the VIA VT82C586B southbridge with on-chip KBC identical to the VIA
- VT82C42N. */
- {
- .name = "[VIA Apollo Pro] PC Partner APAS3",
- .internal_name = "apas3",
- .type = MACHINE_TYPE_SOCKET370,
- .chipset = MACHINE_CHIPSET_VIA_APOLLO_PRO,
- .init = machine_at_apas3_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET370,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 100000000,
- .min_voltage = 1800,
- .max_voltage = 3500,
- .min_multi = 1.5,
- .max_multi = 8.0
- },
- .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 786432,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has a Winbond W83977EF Super I/O chip with on-chip KBC with AMIKey-2 KBC
- firmware. */
- {
- .name = "[VIA Apollo Pro 133] ECS P6BAP-A+",
- .internal_name = "p6bap",
- .type = MACHINE_TYPE_SOCKET370,
- .chipset = MACHINE_CHIPSET_VIA_APOLLO_PRO_133,
- .init = machine_at_p6bap_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET370,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 150000000,
- .min_voltage = 1300,
- .max_voltage = 3500,
- .min_multi = 1.5,
- .max_multi = 8.0
- },
- .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_GAMEPORT | MACHINE_USB | MACHINE_SOUND,
- .ram = {
- .min = 8192,
- .max = 1572864,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = &cmi8738_onboard_device,
- .net_device = NULL
- },
- /* Has the VIA VT82C686B southbridge with on-chip KBC identical to the VIA
- VT82C42N. */
- {
- .name = "[VIA Apollo Pro 133A] Acorp 6VIA90AP",
- .internal_name = "6via90ap",
- .type = MACHINE_TYPE_SOCKET370,
- .chipset = MACHINE_CHIPSET_VIA_APOLLO_PRO_133A,
- .init = machine_at_6via90ap_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET370,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 150000000,
- .min_voltage = 1300,
- .max_voltage = 3500,
- .min_multi = MACHINE_MULTIPLIER_FIXED,
- .max_multi = MACHINE_MULTIPLIER_FIXED
- },
- .bus_flags = MACHINE_PS2_A97 | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_AG | MACHINE_APM | MACHINE_ACPI | MACHINE_GAMEPORT | MACHINE_USB,
- .ram = {
- .min = 16384,
- .max = 3145728,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
- /* Has the VIA VT82C686B southbridge with on-chip KBC identical to the VIA
- VT82C42N. */
- {
- .name = "[VIA Apollo Pro 133A] ASUS CUV4X-LS",
- .internal_name = "cuv4xls",
- .type = MACHINE_TYPE_SOCKET370,
- .chipset = MACHINE_CHIPSET_VIA_APOLLO_PRO_133A,
- .init = machine_at_cuv4xls_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET370,
- .block = CPU_BLOCK_NONE,
- .min_bus = 66666667,
- .max_bus = 150000000,
- .min_voltage = 1300,
- .max_voltage = 3500,
- .min_multi = 1.5,
- .max_multi = 8.0
- },
- .bus_flags = MACHINE_PS2_NOI97 | MACHINE_BUS_USB, /* Has Asus-proprietary LAN/SCSI slot */
- .flags = MACHINE_IDE_DUAL | MACHINE_SOUND | MACHINE_APM | MACHINE_ACPI | MACHINE_GAMEPORT | MACHINE_USB,
- .ram = {
- .min = 16384,
- .max = 4194304,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = &cmi8738_onboard_device,
- .net_device = NULL
- },
- /* SiS (5)600 */
- /* Has the SiS 600 chipset, which is a re-brand of the 5600, with
- on-chip KBC. */
- {
- .name = "[SiS 600] Soyo SY-7SBB",
- .internal_name = "7sbb",
- .type = MACHINE_TYPE_SOCKET370,
- .chipset = MACHINE_CHIPSET_SIS_5600,
- .init = machine_at_7sbb_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SOCKET370,
- .block = CPU_BLOCK(CPU_CYRIX3S),
- .min_bus = 60000000,
- .max_bus = 100000000,
- .min_voltage = 1800,
- .max_voltage = 3500,
- .min_multi = 1.5,
- .max_multi = 8.0
- },
- .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 1572864,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- /* Miscellaneous/Fake/Hypervisor machines */
- /* Has a Winbond W83977F Super I/O chip with on-chip KBC with AMIKey-2 KBC
- firmware. */
- {
- .name = "[i440BX] Microsoft Virtual PC 2007",
- .internal_name = "vpc2007",
- .type = MACHINE_TYPE_MISC,
- .chipset = MACHINE_CHIPSET_INTEL_440BX,
- .init = machine_at_vpc2007_init,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = CPU_PKG_SLOT1,
- .block = CPU_BLOCK(CPU_PENTIUMPRO, CPU_PENTIUM2, CPU_CYRIX3S),
- .min_bus = 0,
- .max_bus = 66666667,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB,
- .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_USB,
- .ram = {
- .min = 8192,
- .max = 1048576,
- .step = 8192
- },
- .nvrmask = 255,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- },
-
- {
- .name = NULL,
- .internal_name = NULL,
- .type = MACHINE_TYPE_NONE,
- .chipset = MACHINE_CHIPSET_NONE,
- .init = NULL,
- .p1_handler = NULL,
- .gpio_handler = NULL,
- .available_flag = MACHINE_AVAILABLE,
- .gpio_acpi_handler = NULL,
- .cpu = {
- .package = 0,
- .block = CPU_BLOCK_NONE,
- .min_bus = 0,
- .max_bus = 0,
- .min_voltage = 0,
- .max_voltage = 0,
- .min_multi = 0,
- .max_multi = 0
- },
- .bus_flags = MACHINE_BUS_NONE,
- .flags = MACHINE_FLAGS_NONE,
- .ram = {
- .min = 0,
- .max = 0,
- .step = 0
- },
- .nvrmask = 0,
- .kbc_device = NULL,
- .kbc_p1 = 0xff,
- .gpio = 0xffffffff,
- .gpio_acpi = 0xffffffff,
- .device = NULL,
- .fdc_device = NULL,
- .sio_device = NULL,
- .vid_device = NULL,
- .snd_device = NULL,
- .net_device = NULL
- }
- // clang-format on
-};
-
-/* Saved copies - jumpers get applied to these.
- We use also machine_gpio to store IBM PC/XT jumpers as they need more than one byte. */
-static uint32_t machine_p1_default;
-static uint32_t machine_p1;
-
-static uint32_t machine_gpio_default;
-static uint32_t machine_gpio;
-
-static uint32_t machine_gpio_acpi_default;
-static uint32_t machine_gpio_acpi;
-
-void *machine_snd = NULL;
-
-uint8_t
-machine_get_p1_default(void)
-{
- return machine_p1_default;
-}
-
-uint8_t
-machine_get_p1(void)
-{
- return machine_p1;
-}
-
-void
-machine_set_p1_default(uint8_t val)
-{
- machine_p1 = machine_p1_default = val;
-}
-
-void
-machine_set_p1(uint8_t val)
-{
- machine_p1 = val;
-}
-
-void
-machine_and_p1(uint8_t val)
-{
- machine_p1 = machine_p1_default & val;
-}
-
-uint8_t
-machine_handle_p1(uint8_t write, uint8_t val)
-{
- uint8_t ret = 0xff;
-
- if (machines[machine].p1_handler)
- ret = machines[machine].p1_handler(write, val);
- else {
- if (write)
- machine_p1 = machine_p1_default & val;
- else
- ret = machine_p1;
- }
-
- return ret;
-}
-
-void
-machine_init_p1(void)
-{
- machine_p1 = machine_p1_default = machines[machine].kbc_p1;
-}
-
-uint32_t
-machine_get_gpio_default(void)
-{
- return machine_gpio_default;
-}
-
-uint32_t
-machine_get_gpio(void)
-{
- return machine_gpio;
-}
-
-void
-machine_set_gpio_default(uint32_t val)
-{
- machine_gpio = machine_gpio_default = val;
-}
-
-void
-machine_set_gpio(uint32_t val)
-{
- machine_gpio = val;
-}
-
-void
-machine_and_gpio(uint32_t val)
-{
- machine_gpio = machine_gpio_default & val;
-}
-
-uint32_t
-machine_handle_gpio(uint8_t write, uint32_t val)
-{
- uint32_t ret = 0xffffffff;
-
- if (machines[machine].gpio_handler)
- ret = machines[machine].gpio_handler(write, val);
- else {
- if (write)
- machine_gpio = machine_gpio_default & val;
- else
- ret = machine_gpio;
- }
-
- return ret;
-}
-
-void
-machine_init_gpio(void)
-{
- machine_gpio = machine_gpio_default = machines[machine].gpio;
-}
-
-uint32_t
-machine_get_gpio_acpi_default(void)
-{
- return machine_gpio_acpi_default;
-}
-
-uint32_t
-machine_get_gpio_acpi(void)
-{
- return machine_gpio_acpi;
-}
-
-void
-machine_set_gpio_acpi_default(uint32_t val)
-{
- machine_gpio_acpi = machine_gpio_acpi_default = val;
-}
-
-void
-machine_set_gpio_acpi(uint32_t val)
-{
- machine_gpio_acpi = val;
-}
-
-void
-machine_and_gpio_acpi(uint32_t val)
-{
- machine_gpio_acpi = machine_gpio_acpi_default & val;
-}
-
-uint32_t
-machine_handle_gpio_acpi(uint8_t write, uint32_t val)
-{
- uint32_t ret = 0xffffffff;
-
- if (machines[machine].gpio_acpi_handler)
- ret = machines[machine].gpio_acpi_handler(write, val);
- else {
- if (write)
- machine_gpio_acpi = machine_gpio_acpi_default & val;
- else
- ret = machine_gpio_acpi;
- }
-
- return ret;
-}
-
-void
-machine_init_gpio_acpi(void)
-{
- machine_gpio_acpi = machine_gpio_acpi_default = machines[machine].gpio_acpi;
-}
-
-int
-machine_count(void)
-{
- return ((sizeof(machines) / sizeof(machine_t)) - 1);
-}
-
-const char *
-machine_getname(void)
-{
- return (machines[machine].name);
-}
-
-const char *
-machine_getname_ex(int m)
-{
- return (machines[m].name);
-}
-
-const device_t *
-machine_get_kbc_device(int m)
-{
- if (machines[m].kbc_device)
- return (machines[m].kbc_device);
-
- return (NULL);
-}
-
-const device_t *
-machine_get_device(int m)
-{
- if (machines[m].device)
- return (machines[m].device);
-
- return (NULL);
-}
-
-const device_t *
-machine_get_fdc_device(int m)
-{
- if (machines[m].fdc_device)
- return (machines[m].fdc_device);
-
- return (NULL);
-}
-
-const device_t *
-machine_get_sio_device(int m)
-{
- if (machines[m].sio_device)
- return (machines[m].sio_device);
-
- return (NULL);
-}
-
-const device_t *
-machine_get_vid_device(int m)
-{
- if (machines[m].vid_device)
- return (machines[m].vid_device);
-
- return (NULL);
-}
-
-const device_t *
-machine_get_snd_device(int m)
-{
- if (machines[m].snd_device)
- return (machines[m].snd_device);
-
- return (NULL);
-}
-
-const device_t *
-machine_get_net_device(int m)
-{
- if (machines[m].net_device)
- return (machines[m].net_device);
-
- return (NULL);
-}
-
-const char *
-machine_get_internal_name(void)
-{
- return (machines[machine].internal_name);
-}
-
-const char *
-machine_get_internal_name_ex(int m)
-{
- return (machines[m].internal_name);
-}
-
-int
-machine_get_nvrmask(int m)
-{
- return (machines[m].nvrmask);
-}
-
-int
-machine_has_flags(int m, int flags)
-{
- int ret = machines[m].flags & flags;
-
- /* Can't have PS/2 ports with an AT KBC. */
- if ((flags & MACHINE_PS2_KBC) &&
- (machines[m].bus_flags & MACHINE_BUS_PS2_PORTS))
- ret |= MACHINE_PS2_KBC;
-
- return ret;
-}
-
-int
-machine_has_bus(int m, int bus_flags)
-{
- int ret = machines[m].bus_flags & bus_flags;
-
- /* TODO: Move the KBD flags to the machine table! */
- if ((bus_flags & MACHINE_BUS_XT_KBD) &&
- !(machines[m].bus_flags & MACHINE_BUS_ISA16) &&
- !(machines[m].bus_flags & MACHINE_BUS_PS2_PORTS))
- ret |= MACHINE_BUS_XT_KBD;
-
- if ((bus_flags & MACHINE_BUS_AT_KBD) &&
- (IS_AT(m)) &&
- !(machines[m].bus_flags & MACHINE_BUS_PS2_PORTS))
+#ifdef ONLY_AT_KBD_ON_AT_KBC
+ if ((bus_flags & MACHINE_BUS_AT_KBD) &&
+ (IS_AT(m)) &&
+ !(machines[m].bus_flags & MACHINE_BUS_PS2_PORTS))
ret |= MACHINE_BUS_AT_KBD;
-
- return ret;
-}
-
-int
-machine_has_cartridge(int m)
-{
- return (machine_has_flags(m, MACHINE_CARTRIDGE) ? 1 : 0);
-}
-
-int
-machine_get_min_ram(int m)
-{
- return (machines[m].ram.min);
-}
-
-int
-machine_get_max_ram(int m)
-{
-#if (!(defined __amd64__ || defined _M_X64 || defined __aarch64__ || defined _M_ARM64))
- return MIN(((int) machines[m].ram.max), 2097152);
#else
- return MIN(((int) machines[m].ram.max), 3145728);
+ if ((bus_flags & MACHINE_BUS_AT_KBD) && (IS_AT(m)))
+ ret |= MACHINE_BUS_AT_KBD;
#endif
-}
-
-int
-machine_get_ram_granularity(int m)
-{
- return (machines[m].ram.step);
-}
-
-int
-machine_get_type(int m)
-{
- return (machines[m].type);
-}
-
-int
-machine_get_chipset(int m)
-{
- return (machines[m].chipset);
-}
-
-int
-machine_get_machine_from_internal_name(const char *s)
-{
- int c = 0;
-
- while (machines[c].init != NULL) {
- if (!strcmp(machines[c].internal_name, s))
- return c;
- c++;
- }
-
- return 0;
-}
-
-int
-machine_has_mouse(void)
-{
- return (machines[machine].flags & MACHINE_MOUSE);
-}
-
-int
-machine_is_sony(void)
-{
- return (!strcmp(machines[machine].internal_name, "pcv90"));
-}
-
-const char *
-machine_get_nvr_name_ex(int m)
-{
- const char *ret = machines[m].internal_name;
- const device_t *dev = machine_get_device(m);
-
- if (dev != NULL) {
- device_context(dev);
- const char *bios = device_get_config_string("bios");
- if ((bios != NULL) && (strcmp(bios, "") != 0))
- ret = bios;
- device_context_restore();
- }
-
- return ret;
-}
-
-const char *
-machine_get_nvr_name(void)
-{
- return machine_get_nvr_name_ex(machine);
-}
+
+ return ret;
+}
+
+int
+machine_has_cartridge(int m)
+{
+ return (machine_has_flags(m, MACHINE_CARTRIDGE) ? 1 : 0);
+}
+
+int
+machine_get_min_ram(int m)
+{
+ return (machines[m].ram.min);
+}
+
+int
+machine_get_max_ram(int m)
+{
+#if (!(defined __amd64__ || defined _M_X64 || defined __aarch64__ || defined _M_ARM64))
+ return MIN(((int) machines[m].ram.max), 2097152);
+#else
+ return MIN(((int) machines[m].ram.max), 3145728);
+#endif
+}
+
+int
+machine_get_ram_granularity(int m)
+{
+ return (machines[m].ram.step);
+}
+
+int
+machine_get_type(int m)
+{
+ return (machines[m].type);
+}
+
+int
+machine_get_chipset(int m)
+{
+ return (machines[m].chipset);
+}
+
+int
+machine_get_machine_from_internal_name(const char *s)
+{
+ int c = 0;
+
+ while (machines[c].init != NULL) {
+ if (!strcmp(machines[c].internal_name, s))
+ return c;
+ c++;
+ }
+
+ return 0;
+}
+
+int
+machine_has_mouse(void)
+{
+ return (machines[machine].flags & MACHINE_MOUSE);
+}
+
+int
+machine_is_sony(void)
+{
+ return (!strcmp(machines[machine].internal_name, "pcv90"));
+}
+
+const char *
+machine_get_nvr_name_ex(int m)
+{
+ const char *ret = machines[m].internal_name;
+ const device_t *dev = machine_get_device(m);
+
+ if (dev != NULL) {
+ device_context(dev);
+ const char *bios = device_get_config_string("bios");
+ if ((bios != NULL) && (strcmp(bios, "") != 0))
+ ret = bios;
+ device_context_restore();
+ }
+
+ return ret;
+}
+
+const char *
+machine_get_nvr_name(void)
+{
+ return machine_get_nvr_name_ex(machine);
+}
+
diff --git a/src/qt/qt_mainwindow.cpp b/src/qt/qt_mainwindow.cpp
index 861037f99..03bff88c3 100644
--- a/src/qt/qt_mainwindow.cpp
+++ b/src/qt/qt_mainwindow.cpp
@@ -268,9 +268,11 @@ MainWindow::MainWindow(QWidget *parent)
num_label->setVisible(machine_has_bus(machine, MACHINE_BUS_PS2_PORTS | MACHINE_BUS_AT_KBD));
scroll_label->setVisible(machine_has_bus(machine, MACHINE_BUS_PS2_PORTS | MACHINE_BUS_AT_KBD));
caps_label->setVisible(machine_has_bus(machine, MACHINE_BUS_PS2_PORTS | MACHINE_BUS_AT_KBD));
- /* TODO: Base this on keyboard type instead when that's done. */
- kana_label->setVisible(machine_has_bus(machine, MACHINE_BUS_PS2_PORTS | MACHINE_BUS_AT_KBD) &&
- machine_has_flags(machine, MACHINE_AX));
+ int ext_ax_kbd = machine_has_bus(machine, MACHINE_BUS_PS2_PORTS | MACHINE_BUS_AT_KBD) &&
+ (keyboard_type == KEYBOARD_TYPE_AX);
+ int int_ax_kbd = machine_has_flags(machine, MACHINE_KEYBOARD_JIS) &&
+ !machine_has_bus(machine, MACHINE_BUS_PS2_PORTS);
+ kana_label->setVisible(ext_ax_kbd || int_ax_kbd);
while (QApplication::overrideCursor())
QApplication::restoreOverrideCursor();
#ifdef USE_WACOM
@@ -1484,8 +1486,11 @@ MainWindow::refreshMediaMenu()
caps_label->setToolTip(QShortcut::tr("Caps Lock"));
caps_label->setVisible(machine_has_bus(machine, MACHINE_BUS_PS2_PORTS | MACHINE_BUS_AT_KBD));
kana_label->setToolTip(QShortcut::tr("Kana Lock"));
- kana_label->setVisible(machine_has_bus(machine, MACHINE_BUS_PS2_PORTS | MACHINE_BUS_AT_KBD) &&
- machine_has_flags(machine, MACHINE_AX));
+ int ext_ax_kbd = machine_has_bus(machine, MACHINE_BUS_PS2_PORTS | MACHINE_BUS_AT_KBD) &&
+ (keyboard_type == KEYBOARD_TYPE_AX);
+ int int_ax_kbd = machine_has_flags(machine, MACHINE_KEYBOARD_JIS) &&
+ !machine_has_bus(machine, MACHINE_BUS_PS2_PORTS);
+ kana_label->setVisible(ext_ax_kbd || int_ax_kbd);
}
void
diff --git a/src/qt/qt_settingsdisplay.cpp b/src/qt/qt_settingsdisplay.cpp
index e50f4ebe1..15b2f4588 100644
--- a/src/qt/qt_settingsdisplay.cpp
+++ b/src/qt/qt_settingsdisplay.cpp
@@ -183,7 +183,7 @@ SettingsDisplay::on_comboBoxVideo_currentIndexChanged(int index)
bool machineHasMca = machine_has_bus(machineId, MACHINE_BUS_MCA) > 0;
bool videoCardHas8514 = ((videoCard[0] == VID_INTERNAL) ? machine_has_flags(machineId, MACHINE_VIDEO_8514A) : (video_card_get_flags(videoCard[0]) == VIDEO_FLAG_TYPE_8514));
- bool videoCardHasXga = ((videoCard[0] == VID_INTERNAL) ? machine_has_flags(machineId, MACHINE_VIDEO_XGA) : (video_card_get_flags(videoCard[0]) == VIDEO_FLAG_TYPE_XGA));
+ bool videoCardHasXga = ((videoCard[0] == VID_INTERNAL) ? 0 : (video_card_get_flags(videoCard[0]) == VIDEO_FLAG_TYPE_XGA));
bool machineSupports8514 = ((machineHasIsa16 || machineHasMca) && !videoCardHas8514);
bool machineSupportsXga = ((machineHasMca && device_available(&xga_device)) && !videoCardHasXga);
diff --git a/src/qt/qt_settingsinput.cpp b/src/qt/qt_settingsinput.cpp
index 6d89c511a..1a425c835 100644
--- a/src/qt/qt_settingsinput.cpp
+++ b/src/qt/qt_settingsinput.cpp
@@ -27,6 +27,7 @@ extern "C" {
#include <86box/86box.h>
#include <86box/device.h>
#include <86box/machine.h>
+#include <86box/keyboard.h>
#include <86box/mouse.h>
#include <86box/gameport.h>
#include <86box/ui.h>
@@ -108,10 +109,48 @@ SettingsInput::onCurrentMachineChanged(int machineId)
// win_settings_video_proc, WM_INITDIALOG
this->machineId = machineId;
- auto *mouseModel = ui->comboBoxMouse->model();
- auto removeRows = mouseModel->rowCount();
+ auto *keyboardModel = ui->comboBoxKeyboard->model();
+ auto removeRows = keyboardModel->rowCount();
int selectedRow = 0;
+
+ int c = 0;
+ int has_int_kbd = !!machine_has_flags(machineId, MACHINE_KEYBOARD);
+
+ for (int i = 0; i < keyboard_get_ndev(); ++i) {
+ const auto *dev = keyboard_get_device(i);
+ int ikbd = (i == KEYBOARD_TYPE_INTERNAL);
+
+ if ((ikbd != has_int_kbd) || !device_is_valid(dev, machineId))
+ continue;
+
+ QString name = DeviceConfig::DeviceName(dev, keyboard_get_internal_name(i), 0);
+ pclog("Found valid keyboard: %s\n", name.toUtf8().data());
+ int row = keyboardModel->rowCount();
+ keyboardModel->insertRow(row);
+ auto idx = keyboardModel->index(row, 0);
+
+ keyboardModel->setData(idx, name, Qt::DisplayRole);
+ keyboardModel->setData(idx, i, Qt::UserRole);
+
+ if (i == keyboard_type)
+ selectedRow = row - removeRows;
+
+ c++;
+ }
+ keyboardModel->removeRows(0, removeRows);
+
+ if ((c == 1) || has_int_kbd)
+ ui->comboBoxKeyboard->setEnabled(false);
+ else
+ ui->comboBoxKeyboard->setEnabled(true);
+
+ ui->comboBoxKeyboard->setCurrentIndex(selectedRow);
+
+ auto *mouseModel = ui->comboBoxMouse->model();
+ removeRows = mouseModel->rowCount();
+
+ selectedRow = 0;
for (int i = 0; i < mouse_get_ndev(); ++i) {
const auto *dev = mouse_get_device(i);
if ((i == MOUSE_TYPE_INTERNAL) && (machine_has_flags(machineId, MACHINE_MOUSE) == 0))
@@ -245,6 +284,13 @@ SettingsInput::on_pushButtonClearBind_clicked()
strcpy(acc_keys_t[accKeyID].seq, "");
}
+void
+SettingsInput::on_comboBoxKeyboard_currentIndexChanged(int index)
+{
+ int keyboardId = ui->comboBoxKeyboard->currentData().toInt();
+ ui->pushButtonConfigureKeyboard->setEnabled(keyboard_has_config(keyboardId) > 0);
+}
+
void
SettingsInput::on_comboBoxMouse_currentIndexChanged(int index)
{
@@ -265,6 +311,13 @@ SettingsInput::on_comboBoxJoystick_currentIndexChanged(int index)
}
}
+void
+SettingsInput::on_pushButtonConfigureKeyboard_clicked()
+{
+ int keyboardId = ui->comboBoxKeyboard->currentData().toInt();
+ DeviceConfig::ConfigureDevice(keyboard_get_device(keyboardId));
+}
+
void
SettingsInput::on_pushButtonConfigureMouse_clicked()
{
diff --git a/src/qt/qt_settingsinput.hpp b/src/qt/qt_settingsinput.hpp
index a51ad2564..9a7702b4b 100644
--- a/src/qt/qt_settingsinput.hpp
+++ b/src/qt/qt_settingsinput.hpp
@@ -26,6 +26,9 @@ public slots:
void onCurrentMachineChanged(int machineId);
private slots:
+ void on_comboBoxKeyboard_currentIndexChanged(int index);
+ void on_pushButtonConfigureKeyboard_clicked();
+
void on_comboBoxMouse_currentIndexChanged(int index);
void on_pushButtonConfigureMouse_clicked();
diff --git a/src/qt/qt_settingsinput.ui b/src/qt/qt_settingsinput.ui
index 6ac6cf38a..07351f4d2 100644
--- a/src/qt/qt_settingsinput.ui
+++ b/src/qt/qt_settingsinput.ui
@@ -24,14 +24,14 @@
0
-
-
+
- Mouse:
+ Keyboard:
-
-
+
0
@@ -44,7 +44,7 @@
-
-
+
0
@@ -57,55 +57,88 @@
-
+
+
+ Mouse:
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ 30
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ Configure
+
+
+
+ -
Joystick:
- -
+
-
30
- -
+
-
Joystick 1...
- -
+
-
Joystick 2...
- -
+
-
Joystick 3...
- -
+
-
Joystick 4...
- -
+
-
Key Bindings:
- -
+
-
QAbstractItemView::EditTrigger::NoEditTriggers
@@ -124,7 +157,7 @@
- -
+
-
false
@@ -134,7 +167,7 @@
- -
+
-
false
diff --git a/src/sio/sio_ali5123.c b/src/sio/sio_ali5123.c
index 7dc522b30..cbb949395 100644
--- a/src/sio/sio_ali5123.c
+++ b/src/sio/sio_ali5123.c
@@ -523,7 +523,7 @@ ali5123_init(const device_t *info)
io_sethandler(FDC_PRIMARY_ADDR, 0x0002,
ali5123_read, NULL, NULL, ali5123_write, NULL, NULL, dev);
- device_add(&keyboard_ps2_ali_pci_device);
+ device_add(&kbc_ps2_ali_pci_device);
return dev;
}
diff --git a/src/sio/sio_fdc37c93x.c b/src/sio/sio_fdc37c93x.c
index dce5b11dc..305aa3e3b 100644
--- a/src/sio/sio_fdc37c93x.c
+++ b/src/sio/sio_fdc37c93x.c
@@ -1835,20 +1835,20 @@ fdc37c93x_init(const device_t *info)
switch (dev->kbc_type) {
case FDC37C931:
- dev->kbc = device_add(&keyboard_ps2_compaq_device);
+ dev->kbc = device_add(&kbc_ps2_compaq_device);
break;
case FDC37C932:
- dev->kbc = device_add(&keyboard_ps2_intel_ami_pci_device);
+ dev->kbc = device_add(&kbc_ps2_intel_ami_pci_device);
break;
case FDC37C933:
default:
- dev->kbc = device_add(&keyboard_ps2_pci_device);
+ dev->kbc = device_add(&kbc_ps2_pci_device);
break;
case FDC37C935:
- dev->kbc = device_add(&keyboard_ps2_phoenix_device);
+ dev->kbc = device_add(&kbc_ps2_phoenix_device);
break;
case FDC37C937:
- dev->kbc = device_add(&keyboard_ps2_phoenix_pci_device);
+ dev->kbc = device_add(&kbc_ps2_phoenix_pci_device);
break;
}
diff --git a/src/sio/sio_pc87307.c b/src/sio/sio_pc87307.c
index 7e51c5975..2d23a95ac 100644
--- a/src/sio/sio_pc87307.c
+++ b/src/sio/sio_pc87307.c
@@ -853,14 +853,14 @@ pc87307_init(const device_t *info)
switch (info->local & PCX730X_KBC) {
default:
case PCX730X_AMI:
- dev->kbc = device_add(&keyboard_ps2_intel_ami_pci_device);
+ dev->kbc = device_add(&kbc_ps2_intel_ami_pci_device);
break;
/* Optiplex! */
case PCX730X_PHOENIX_42:
- dev->kbc = device_add(&keyboard_ps2_phoenix_device);
+ dev->kbc = device_add(&kbc_ps2_phoenix_device);
break;
case PCX730X_PHOENIX_42I:
- dev->kbc = device_add(&keyboard_ps2_phoenix_pci_device);
+ dev->kbc = device_add(&kbc_ps2_phoenix_pci_device);
break;
}
diff --git a/src/sio/sio_pc87309.c b/src/sio/sio_pc87309.c
index 5a3f0d828..63aad03b4 100644
--- a/src/sio/sio_pc87309.c
+++ b/src/sio/sio_pc87309.c
@@ -688,14 +688,14 @@ pc87309_init(const device_t *info)
switch (info->local & PCX730X_KBC) {
default:
case PCX730X_AMI:
- dev->kbc = device_add(&keyboard_ps2_intel_ami_pci_device);
+ dev->kbc = device_add(&kbc_ps2_intel_ami_pci_device);
break;
/* Optiplex! */
case PCX730X_PHOENIX_42:
- dev->kbc = device_add(&keyboard_ps2_phoenix_device);
+ dev->kbc = device_add(&kbc_ps2_phoenix_device);
break;
case PCX730X_PHOENIX_42I:
- dev->kbc = device_add(&keyboard_ps2_phoenix_pci_device);
+ dev->kbc = device_add(&kbc_ps2_phoenix_pci_device);
break;
}
diff --git a/src/sio/sio_vl82c113.c b/src/sio/sio_vl82c113.c
index b000fe5dd..bf63e9023 100644
--- a/src/sio/sio_vl82c113.c
+++ b/src/sio/sio_vl82c113.c
@@ -143,7 +143,7 @@ vl82c113_init(UNUSED(const device_t *info))
dev->nvr_base = 0x0070;
/* Commands are standard. */
- dev->kbc = device_add(&keyboard_at_device);
+ dev->kbc = device_add(&kbc_at_device);
vl82c113_reset(dev);