--- trunk/src/machines/machine_test.c 2007/10/08 16:19:37 22 +++ trunk/src/machines/machine_test.c 2007/10/08 16:20:58 32 @@ -25,7 +25,7 @@ * SUCH DAMAGE. * * - * $Id: machine_test.c,v 1.1 2006/01/01 20:41:25 debug Exp $ + * $Id: machine_test.c,v 1.22 2006/10/25 09:24:06 debug Exp $ * * Various "test" machines (bare machines with just a CPU, or a bare machine * plus some experimental devices). @@ -40,29 +40,41 @@ #include "machine.h" #include "memory.h" #include "misc.h" -#include "mp.h" + +#include "testmachine/dev_cons.h" +#include "testmachine/dev_disk.h" +#include "testmachine/dev_ether.h" +#include "testmachine/dev_fb.h" +#include "testmachine/dev_mp.h" +#include "testmachine/dev_rtc.h" static void default_test(struct machine *machine, struct cpu *cpu) { char tmpstr[1000]; - snprintf(tmpstr, sizeof(tmpstr), "cons addr=0x%llx irq=0", - (long long)DEV_CONS_ADDRESS); + + snprintf(tmpstr, sizeof(tmpstr), "cons addr=0x%"PRIx64" irq=0", + (uint64_t) DEV_CONS_ADDRESS); machine->main_console_handle = (size_t)device_add(machine, tmpstr); - snprintf(tmpstr, sizeof(tmpstr), "mp addr=0x%llx", - (long long)DEV_MP_ADDRESS); + snprintf(tmpstr, sizeof(tmpstr), "mp addr=0x%"PRIx64, + (uint64_t) DEV_MP_ADDRESS); + device_add(machine, tmpstr); + + snprintf(tmpstr, sizeof(tmpstr), "fbctrl addr=0x%"PRIx64, + (uint64_t) DEV_FBCTRL_ADDRESS); device_add(machine, tmpstr); - dev_fb_init(machine, machine->memory, DEV_FB_ADDRESS, VFB_GENERIC, - 640,480, 640,480, 24, "testalpha generic"); + snprintf(tmpstr, sizeof(tmpstr), "disk addr=0x%"PRIx64, + (uint64_t) DEV_DISK_ADDRESS); + device_add(machine, tmpstr); - snprintf(tmpstr, sizeof(tmpstr), "disk addr=0x%llx", - (long long)DEV_DISK_ADDRESS); + snprintf(tmpstr, sizeof(tmpstr), "ether addr=0x%"PRIx64" irq=0", + (uint64_t) DEV_ETHER_ADDRESS); device_add(machine, tmpstr); - snprintf(tmpstr, sizeof(tmpstr), "ether addr=0x%llx irq=0", - (long long)DEV_ETHER_ADDRESS); + snprintf(tmpstr, sizeof(tmpstr), "rtc addr=0x%"PRIx64" irq=0", + (uint64_t) DEV_RTC_ADDRESS); device_add(machine, tmpstr); } @@ -87,31 +99,31 @@ MACHINE_DEFAULT_CPU(barealpha) { - machine->cpu_name = strdup("Alpha"); + machine->cpu_name = strdup("21264"); } MACHINE_DEFAULT_CPU(testalpha) { - machine->cpu_name = strdup("Alpha"); + machine->cpu_name = strdup("21264"); } MACHINE_REGISTER(barealpha) { MR_DEFAULT(barealpha, "Generic \"bare\" Alpha machine", - ARCH_ALPHA, MACHINE_BAREALPHA, 1, 0); - me->aliases[0] = "barealpha"; - machine_entry_add(me, ARCH_ALPHA); + ARCH_ALPHA, MACHINE_BAREALPHA); + + machine_entry_add_alias(me, "barealpha"); } MACHINE_REGISTER(testalpha) { MR_DEFAULT(testalpha, "Test-machine for Alpha", - ARCH_ALPHA, MACHINE_TESTALPHA, 1, 0); - me->aliases[0] = "testalpha"; - machine_entry_add(me, ARCH_ALPHA); + ARCH_ALPHA, MACHINE_TESTALPHA); + + machine_entry_add_alias(me, "testalpha"); } @@ -159,41 +171,66 @@ MACHINE_REGISTER(barearm) { MR_DEFAULT(barearm, "Generic \"bare\" ARM machine", - ARCH_ARM, MACHINE_BAREARM, 1, 0); - me->aliases[0] = "barearm"; - machine_entry_add(me, ARCH_ARM); + ARCH_ARM, MACHINE_BAREARM); + + machine_entry_add_alias(me, "barearm"); } MACHINE_REGISTER(testarm) { - MR_DEFAULT(testarm, "Test-machine for ARM", - ARCH_ARM, MACHINE_TESTARM, 1, 0); - me->aliases[0] = "testarm"; - machine_entry_add(me, ARCH_ARM); + MR_DEFAULT(testarm, "Test-machine for ARM", ARCH_ARM, MACHINE_TESTARM); + + machine_entry_add_alias(me, "testarm"); } -MACHINE_SETUP(bareavr) +MACHINE_SETUP(bareavr32) { - machine->machine_name = "Generic \"bare\" AVR machine"; + machine->machine_name = "Generic \"bare\" AVR32 machine"; machine->stable = 1; } -MACHINE_DEFAULT_CPU(bareavr) +MACHINE_SETUP(testavr32) +{ + machine->machine_name = "AVR32 test machine"; + machine->stable = 1; + + /* TODO: interrupts */ + + default_test(machine, cpu); +} + + +MACHINE_DEFAULT_CPU(bareavr32) +{ + machine->cpu_name = strdup("AVR32A"); +} + + +MACHINE_DEFAULT_CPU(testavr32) { - machine->cpu_name = strdup("AVR"); + machine->cpu_name = strdup("AVR32A"); } -MACHINE_REGISTER(bareavr) +MACHINE_REGISTER(bareavr32) { - MR_DEFAULT(bareavr, "Generic \"bare\" AVR machine", - ARCH_AVR, MACHINE_BAREAVR, 1, 0); - me->aliases[0] = "bareavr"; - machine_entry_add(me, ARCH_AVR); + MR_DEFAULT(bareavr32, "Generic \"bare\" AVR32 machine", + ARCH_AVR32, MACHINE_BAREAVR32); + + machine_entry_add_alias(me, "bareavr32"); +} + + +MACHINE_REGISTER(testavr32) +{ + MR_DEFAULT(testavr32, "Test-machine for AVR32", + ARCH_AVR32, MACHINE_TESTAVR32); + + machine_entry_add_alias(me, "testavr32"); } @@ -230,18 +267,18 @@ MACHINE_REGISTER(barehppa) { MR_DEFAULT(barehppa, "Generic \"bare\" HPPA machine", - ARCH_HPPA, MACHINE_BAREHPPA, 1, 0); - me->aliases[0] = "barehppa"; - machine_entry_add(me, ARCH_HPPA); + ARCH_HPPA, MACHINE_BAREHPPA); + + machine_entry_add_alias(me, "barehppa"); } MACHINE_REGISTER(testhppa) { MR_DEFAULT(testhppa, "Test-machine for HPPA", - ARCH_HPPA, MACHINE_TESTHPPA, 1, 0); - me->aliases[0] = "testhppa"; - machine_entry_add(me, ARCH_HPPA); + ARCH_HPPA, MACHINE_TESTHPPA); + + machine_entry_add_alias(me, "testhppa"); } @@ -278,18 +315,18 @@ MACHINE_REGISTER(barei960) { MR_DEFAULT(barei960, "Generic \"bare\" i960 machine", - ARCH_I960, MACHINE_BAREI960, 1, 0); - me->aliases[0] = "barei960"; - machine_entry_add(me, ARCH_I960); + ARCH_I960, MACHINE_BAREI960); + + machine_entry_add_alias(me, "barei960"); } MACHINE_REGISTER(testi960) { MR_DEFAULT(testi960, "Test-machine for i960", - ARCH_I960, MACHINE_TESTI960, 1, 0); - me->aliases[0] = "testi960"; - machine_entry_add(me, ARCH_I960); + ARCH_I960, MACHINE_TESTI960); + + machine_entry_add_alias(me, "testi960"); } @@ -326,18 +363,18 @@ MACHINE_REGISTER(bareia64) { MR_DEFAULT(bareia64, "Generic \"bare\" IA64 machine", - ARCH_IA64, MACHINE_BAREIA64, 1, 0); - me->aliases[0] = "bareia64"; - machine_entry_add(me, ARCH_IA64); + ARCH_IA64, MACHINE_BAREIA64); + + machine_entry_add_alias(me, "bareia64"); } MACHINE_REGISTER(testia64) { MR_DEFAULT(testia64, "Test-machine for IA64", - ARCH_IA64, MACHINE_TESTIA64, 1, 0); - me->aliases[0] = "testia64"; - machine_entry_add(me, ARCH_IA64); + ARCH_IA64, MACHINE_TESTIA64); + + machine_entry_add_alias(me, "testia64"); } @@ -374,18 +411,18 @@ MACHINE_REGISTER(barem68k) { MR_DEFAULT(barem68k, "Generic \"bare\" M68K machine", - ARCH_M68K, MACHINE_BAREM68K, 1, 0); - me->aliases[0] = "barem68k"; - machine_entry_add(me, ARCH_M68K); + ARCH_M68K, MACHINE_BAREM68K); + + machine_entry_add_alias(me, "barem68k"); } MACHINE_REGISTER(testm68k) { MR_DEFAULT(testm68k, "Test-machine for M68K", - ARCH_M68K, MACHINE_TESTM68K, 1, 0); - me->aliases[0] = "testm68k"; - machine_entry_add(me, ARCH_M68K); + ARCH_M68K, MACHINE_TESTM68K); + + machine_entry_add_alias(me, "testm68k"); } @@ -407,7 +444,7 @@ * 7 CPU counter * 6 SMP IPIs * 5 not used yet - * 4 not used yet + * 4 rtc * 3 ethernet * 2 serial console */ @@ -418,54 +455,59 @@ machine->stable = 1; cpu->byte_order = EMUL_BIG_ENDIAN; - snprintf(tmpstr, sizeof(tmpstr), "cons addr=0x%llx irq=2", - (long long)DEV_CONS_ADDRESS); + snprintf(tmpstr, sizeof(tmpstr), "cons addr=0x%"PRIx64" irq=2", + (uint64_t) DEV_CONS_ADDRESS); machine->main_console_handle = (size_t)device_add(machine, tmpstr); - snprintf(tmpstr, sizeof(tmpstr), "mp addr=0x%llx", - (long long)DEV_MP_ADDRESS); + snprintf(tmpstr, sizeof(tmpstr), "mp addr=0x%"PRIx64, + (uint64_t) DEV_MP_ADDRESS); + device_add(machine, tmpstr); + + snprintf(tmpstr, sizeof(tmpstr), "fbctrl addr=0x%"PRIx64, + (uint64_t) DEV_FBCTRL_ADDRESS); device_add(machine, tmpstr); - dev_fb_init(machine, machine->memory, DEV_FB_ADDRESS, VFB_GENERIC, - 640,480, 640,480, 24, "testmips generic"); + snprintf(tmpstr, sizeof(tmpstr), "disk addr=0x%"PRIx64, + (uint64_t) DEV_DISK_ADDRESS); + device_add(machine, tmpstr); - snprintf(tmpstr, sizeof(tmpstr), "disk addr=0x%llx", - (long long)DEV_DISK_ADDRESS); + snprintf(tmpstr, sizeof(tmpstr), "ether addr=0x%"PRIx64" irq=3", + (uint64_t) DEV_ETHER_ADDRESS); device_add(machine, tmpstr); - snprintf(tmpstr, sizeof(tmpstr), "ether addr=0x%llx irq=3", - (long long)DEV_ETHER_ADDRESS); + snprintf(tmpstr, sizeof(tmpstr), "rtc addr=0x%"PRIx64" irq=4", + (uint64_t) DEV_RTC_ADDRESS); device_add(machine, tmpstr); } MACHINE_DEFAULT_CPU(baremips) { - machine->cpu_name = strdup("R4000"); + machine->cpu_name = strdup("5Kc"); } MACHINE_DEFAULT_CPU(testmips) { - machine->cpu_name = strdup("R4000"); + machine->cpu_name = strdup("5Kc"); } MACHINE_REGISTER(baremips) { MR_DEFAULT(baremips, "Generic \"bare\" MIPS machine", - ARCH_MIPS, MACHINE_BAREMIPS, 1, 0); - me->aliases[0] = "baremips"; - machine_entry_add(me, ARCH_MIPS); + ARCH_MIPS, MACHINE_BAREMIPS); + + machine_entry_add_alias(me, "baremips"); } MACHINE_REGISTER(testmips) { MR_DEFAULT(testmips, "Test-machine for MIPS", - ARCH_MIPS, MACHINE_TESTMIPS, 1, 0); - me->aliases[0] = "testmips"; - machine_entry_add(me, ARCH_MIPS); + ARCH_MIPS, MACHINE_TESTMIPS); + + machine_entry_add_alias(me, "testmips"); } @@ -502,18 +544,17 @@ MACHINE_REGISTER(bareppc) { MR_DEFAULT(bareppc, "Generic \"bare\" PPC machine", - ARCH_PPC, MACHINE_BAREPPC, 1, 0); - me->aliases[0] = "bareppc"; - machine_entry_add(me, ARCH_PPC); + ARCH_PPC, MACHINE_BAREPPC); + + machine_entry_add_alias(me, "bareppc"); } MACHINE_REGISTER(testppc) { - MR_DEFAULT(testppc, "Test-machine for PPC", - ARCH_PPC, MACHINE_TESTPPC, 1, 0); - me->aliases[0] = "testppc"; - machine_entry_add(me, ARCH_PPC); + MR_DEFAULT(testppc, "Test-machine for PPC", ARCH_PPC, MACHINE_TESTPPC); + + machine_entry_add_alias(me, "testppc"); } @@ -537,31 +578,30 @@ MACHINE_DEFAULT_CPU(baresh) { - machine->cpu_name = strdup("SH"); + machine->cpu_name = strdup("SH7750"); } MACHINE_DEFAULT_CPU(testsh) { - machine->cpu_name = strdup("SH"); + machine->cpu_name = strdup("SH7750"); } MACHINE_REGISTER(baresh) { MR_DEFAULT(baresh, "Generic \"bare\" SH machine", - ARCH_SH, MACHINE_BARESH, 1, 0); - me->aliases[0] = "baresh"; - machine_entry_add(me, ARCH_SH); + ARCH_SH, MACHINE_BARESH); + + machine_entry_add_alias(me, "baresh"); } MACHINE_REGISTER(testsh) { - MR_DEFAULT(testsh, "Test-machine for SH", - ARCH_SH, MACHINE_TESTSH, 1, 0); - me->aliases[0] = "testsh"; - machine_entry_add(me, ARCH_SH); + MR_DEFAULT(testsh, "Test-machine for SH", ARCH_SH, MACHINE_TESTSH); + + machine_entry_add_alias(me, "testsh"); } @@ -585,30 +625,52 @@ MACHINE_DEFAULT_CPU(baresparc) { - machine->cpu_name = strdup("SPARCv9"); + machine->cpu_name = strdup("UltraSPARC"); } MACHINE_DEFAULT_CPU(testsparc) { - machine->cpu_name = strdup("SPARCv9"); + machine->cpu_name = strdup("UltraSPARC"); } MACHINE_REGISTER(baresparc) { MR_DEFAULT(baresparc, "Generic \"bare\" SPARC machine", - ARCH_SPARC, MACHINE_BARESPARC, 1, 0); - me->aliases[0] = "baresparc"; - machine_entry_add(me, ARCH_SPARC); + ARCH_SPARC, MACHINE_BARESPARC); + + machine_entry_add_alias(me, "baresparc"); } MACHINE_REGISTER(testsparc) { MR_DEFAULT(testsparc, "Test-machine for SPARC", - ARCH_SPARC, MACHINE_TESTSPARC, 1, 0); - me->aliases[0] = "testsparc"; - machine_entry_add(me, ARCH_SPARC); + ARCH_SPARC, MACHINE_TESTSPARC); + + machine_entry_add_alias(me, "testsparc"); +} + + +MACHINE_SETUP(baretransputer) +{ + machine->machine_name = "Generic \"bare\" Transputer machine"; + machine->stable = 1; +} + + +MACHINE_DEFAULT_CPU(baretransputer) +{ + machine->cpu_name = strdup("T800"); +} + + +MACHINE_REGISTER(baretransputer) +{ + MR_DEFAULT(baretransputer, "Generic \"bare\" Transputer machine", + ARCH_TRANSPUTER, MACHINE_BARETRANSPUTER); + + machine_entry_add_alias(me, "baretransputer"); }