a2531bb855
QEMU includes some models of old Arm machine types which are a bit problematic for us because: * they're written in a very old way that uses numerous APIs that we would like to get away from (eg they don't use qdev, they use qemu_system_reset_request(), they use vmstate_register(), etc) * they've been that way for a decade plus and nobody particularly has stepped up to try to modernise the code (beyond some occasional work here and there) * we often don't have test cases for them, which means that if we do try to do the necessary refactoring work on them we have no idea if they even still work at all afterwards All these machine types are also of hardware that has largely passed away into history and where I would not be surprised to find that e.g. the Linux kernel support was never tested on real hardware any more. After some consultation with the Linux kernel developers, we are going to deprecate: All PXA2xx machines: akita Sharp SL-C1000 (Akita) PDA (PXA270) borzoi Sharp SL-C3100 (Borzoi) PDA (PXA270) connex Gumstix Connex (PXA255) mainstone Mainstone II (PXA27x) spitz Sharp SL-C3000 (Spitz) PDA (PXA270) terrier Sharp SL-C3200 (Terrier) PDA (PXA270) tosa Sharp SL-6000 (Tosa) PDA (PXA255) verdex Gumstix Verdex Pro XL6P COMs (PXA270) z2 Zipit Z2 (PXA27x) All OMAP2 machines: n800 Nokia N800 tablet aka. RX-34 (OMAP2420) n810 Nokia N810 tablet aka. RX-44 (OMAP2420) One of the OMAP1 machines: cheetah Palm Tungsten|E aka. Cheetah PDA (OMAP310) Rationale: * for QEMU dropping individual machines is much less beneficial than if we can drop support for an entire SoC * the OMAP2 QEMU code in particular is large, old and unmaintained, and none of the OMAP2 kernel maintainers said they were using QEMU in any of their testing/development * although there is a setup that is booting test kernels on some of the PXA2xx machines, nobody seemed to be using them as part of their active kernel development and my impression from the email thread is that PXA is the closest of all these SoC families to being dropped from the kernel soon * nobody said they were using cheetah, so it's entirely untested and quite probably broken * on the other hand the OMAP1 sx1 model does seem to be being used as part of kernel development, and there was interest in keeping collie around In particular, the mainstone, tosa and z2 machine types have already been dropped from Linux. Mark all these machine types as deprecated. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Message-id: 20240308171621.3749894-1-peter.maydell@linaro.org
142 lines
3.9 KiB
C
142 lines
3.9 KiB
C
/*
|
|
* Gumstix Platforms
|
|
*
|
|
* Copyright (c) 2007 by Thorsten Zitterell <info@bitmux.org>
|
|
*
|
|
* Code based on spitz platform by Andrzej Zaborowski <balrog@zabor.org>
|
|
*
|
|
* This code is licensed under the GNU GPL v2.
|
|
*
|
|
* Contributions after 2012-01-13 are licensed under the terms of the
|
|
* GNU GPL, version 2 or (at your option) any later version.
|
|
*/
|
|
|
|
/*
|
|
* Example usage:
|
|
*
|
|
* connex:
|
|
* =======
|
|
* create image:
|
|
* # dd of=flash bs=1k count=16k if=/dev/zero
|
|
* # dd of=flash bs=1k conv=notrunc if=u-boot.bin
|
|
* # dd of=flash bs=1k conv=notrunc seek=256 if=rootfs.arm_nofpu.jffs2
|
|
* start it:
|
|
* # qemu-system-arm -M connex -pflash flash -monitor null -nographic
|
|
*
|
|
* verdex:
|
|
* =======
|
|
* create image:
|
|
* # dd of=flash bs=1k count=32k if=/dev/zero
|
|
* # dd of=flash bs=1k conv=notrunc if=u-boot.bin
|
|
* # dd of=flash bs=1k conv=notrunc seek=256 if=rootfs.arm_nofpu.jffs2
|
|
* # dd of=flash bs=1k conv=notrunc seek=31744 if=uImage
|
|
* start it:
|
|
* # qemu-system-arm -M verdex -pflash flash -monitor null -nographic -m 289
|
|
*/
|
|
|
|
#include "qemu/osdep.h"
|
|
#include "qemu/units.h"
|
|
#include "qemu/error-report.h"
|
|
#include "hw/arm/pxa.h"
|
|
#include "net/net.h"
|
|
#include "hw/block/flash.h"
|
|
#include "hw/net/smc91c111.h"
|
|
#include "hw/boards.h"
|
|
#include "exec/address-spaces.h"
|
|
#include "sysemu/qtest.h"
|
|
|
|
#define CONNEX_FLASH_SIZE (16 * MiB)
|
|
#define CONNEX_RAM_SIZE (64 * MiB)
|
|
|
|
#define VERDEX_FLASH_SIZE (32 * MiB)
|
|
#define VERDEX_RAM_SIZE (256 * MiB)
|
|
|
|
#define FLASH_SECTOR_SIZE (128 * KiB)
|
|
|
|
static void connex_init(MachineState *machine)
|
|
{
|
|
PXA2xxState *cpu;
|
|
DriveInfo *dinfo;
|
|
|
|
cpu = pxa255_init(CONNEX_RAM_SIZE);
|
|
|
|
dinfo = drive_get(IF_PFLASH, 0, 0);
|
|
if (!dinfo && !qtest_enabled()) {
|
|
error_report("A flash image must be given with the "
|
|
"'pflash' parameter");
|
|
exit(1);
|
|
}
|
|
|
|
/* Numonyx RC28F128J3F75 */
|
|
pflash_cfi01_register(0x00000000, "connext.rom", CONNEX_FLASH_SIZE,
|
|
dinfo ? blk_by_legacy_dinfo(dinfo) : NULL,
|
|
FLASH_SECTOR_SIZE, 2, 0, 0, 0, 0, 0);
|
|
|
|
/* Interrupt line of NIC is connected to GPIO line 36 */
|
|
smc91c111_init(0x04000300, qdev_get_gpio_in(cpu->gpio, 36));
|
|
}
|
|
|
|
static void verdex_init(MachineState *machine)
|
|
{
|
|
PXA2xxState *cpu;
|
|
DriveInfo *dinfo;
|
|
|
|
cpu = pxa270_init(VERDEX_RAM_SIZE, machine->cpu_type);
|
|
|
|
dinfo = drive_get(IF_PFLASH, 0, 0);
|
|
if (!dinfo && !qtest_enabled()) {
|
|
error_report("A flash image must be given with the "
|
|
"'pflash' parameter");
|
|
exit(1);
|
|
}
|
|
|
|
/* Micron RC28F256P30TFA */
|
|
pflash_cfi01_register(0x00000000, "verdex.rom", VERDEX_FLASH_SIZE,
|
|
dinfo ? blk_by_legacy_dinfo(dinfo) : NULL,
|
|
FLASH_SECTOR_SIZE, 2, 0, 0, 0, 0, 0);
|
|
|
|
/* Interrupt line of NIC is connected to GPIO line 99 */
|
|
smc91c111_init(0x04000300, qdev_get_gpio_in(cpu->gpio, 99));
|
|
}
|
|
|
|
static void connex_class_init(ObjectClass *oc, void *data)
|
|
{
|
|
MachineClass *mc = MACHINE_CLASS(oc);
|
|
|
|
mc->desc = "Gumstix Connex (PXA255)";
|
|
mc->init = connex_init;
|
|
mc->ignore_memory_transaction_failures = true;
|
|
mc->deprecation_reason = "machine is old and unmaintained";
|
|
}
|
|
|
|
static const TypeInfo connex_type = {
|
|
.name = MACHINE_TYPE_NAME("connex"),
|
|
.parent = TYPE_MACHINE,
|
|
.class_init = connex_class_init,
|
|
};
|
|
|
|
static void verdex_class_init(ObjectClass *oc, void *data)
|
|
{
|
|
MachineClass *mc = MACHINE_CLASS(oc);
|
|
|
|
mc->desc = "Gumstix Verdex Pro XL6P COMs (PXA270)";
|
|
mc->init = verdex_init;
|
|
mc->ignore_memory_transaction_failures = true;
|
|
mc->deprecation_reason = "machine is old and unmaintained";
|
|
mc->default_cpu_type = ARM_CPU_TYPE_NAME("pxa270-c0");
|
|
}
|
|
|
|
static const TypeInfo verdex_type = {
|
|
.name = MACHINE_TYPE_NAME("verdex"),
|
|
.parent = TYPE_MACHINE,
|
|
.class_init = verdex_class_init,
|
|
};
|
|
|
|
static void gumstix_machine_init(void)
|
|
{
|
|
type_register_static(&connex_type);
|
|
type_register_static(&verdex_type);
|
|
}
|
|
|
|
type_init(gumstix_machine_init)
|