2007-11-17 14:50:55 +03:00
|
|
|
/*
|
|
|
|
* 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.
|
2012-01-13 20:44:23 +04:00
|
|
|
*
|
|
|
|
* Contributions after 2012-01-13 are licensed under the terms of the
|
|
|
|
* GNU GPL, version 2 or (at your option) any later version.
|
2007-11-17 14:50:55 +03:00
|
|
|
*/
|
2023-01-09 14:53:08 +03:00
|
|
|
|
2007-11-25 02:47:38 +03:00
|
|
|
/*
|
|
|
|
* 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
|
|
|
|
*/
|
2007-11-17 14:50:55 +03:00
|
|
|
|
2015-12-07 19:23:45 +03:00
|
|
|
#include "qemu/osdep.h"
|
2023-01-09 14:53:09 +03:00
|
|
|
#include "qemu/units.h"
|
hw/arm: Replace fprintf(stderr, "*\n" with error_report()
Replace a large number of the fprintf(stderr, "*\n" calls with
error_report(). The functions were renamed with these commands and then
compiler issues where manually fixed.
find ./* -type f -exec sed -i \
'N;N;N;N;N;N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig}' \
{} +
find ./* -type f -exec sed -i \
'N;N;N;N;N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig}' \
{} +
find ./* -type f -exec sed -i \
'N;N;N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig}' \
{} +
find ./* -type f -exec sed -i \
'N;N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig}' \
{} +
find ./* -type f -exec sed -i \
'N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig}' \
{} +
find ./* -type f -exec sed -i \
'N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig}' \
{} +
find ./* -type f -exec sed -i \
'N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig}' \
{} +
find ./* -type f -exec sed -i \
'N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig}' \
{} +
find ./* -type f -exec sed -i \
'N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig}' \
{} +
find ./* -type f -exec sed -i \
'N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig}' \
{} +
find ./* -type f -exec sed -i \
'N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig}' \
{} +
Some lines where then manually tweaked to pass checkpatch.
The 'qemu: ' prefix was manually removed from the hw/arm/boot.c file.
Signed-off-by: Alistair Francis <alistair.francis@xilinx.com>
Cc: qemu-arm@nongnu.org
Conversions that aren't followed by exit() dropped, because they might
be inappropriate.
Also trim trailing punctuation from error messages.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20180203084315.20497-3-armbru@redhat.com>
2018-02-03 11:43:03 +03:00
|
|
|
#include "qemu/error-report.h"
|
2013-02-05 20:06:20 +04:00
|
|
|
#include "hw/arm/pxa.h"
|
2012-10-24 10:43:34 +04:00
|
|
|
#include "net/net.h"
|
2013-02-05 20:06:20 +04:00
|
|
|
#include "hw/block/flash.h"
|
2019-04-12 19:54:16 +03:00
|
|
|
#include "hw/net/smc91c111.h"
|
2013-02-04 18:40:22 +04:00
|
|
|
#include "hw/boards.h"
|
2012-12-17 21:19:49 +04:00
|
|
|
#include "exec/address-spaces.h"
|
2013-07-29 19:15:01 +04:00
|
|
|
#include "sysemu/qtest.h"
|
2007-11-17 14:50:55 +03:00
|
|
|
|
2023-01-09 14:53:09 +03:00
|
|
|
#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)
|
2007-11-25 03:29:23 +03:00
|
|
|
|
2014-05-07 18:42:57 +04:00
|
|
|
static void connex_init(MachineState *machine)
|
2007-11-17 14:50:55 +03:00
|
|
|
{
|
2009-05-10 04:44:56 +04:00
|
|
|
PXA2xxState *cpu;
|
2009-07-22 18:42:57 +04:00
|
|
|
DriveInfo *dinfo;
|
2007-11-17 14:50:55 +03:00
|
|
|
|
2023-01-09 14:53:09 +03:00
|
|
|
cpu = pxa255_init(CONNEX_RAM_SIZE);
|
2007-11-17 14:50:55 +03:00
|
|
|
|
2009-07-22 18:42:57 +04:00
|
|
|
dinfo = drive_get(IF_PFLASH, 0, 0);
|
2013-07-29 19:15:01 +04:00
|
|
|
if (!dinfo && !qtest_enabled()) {
|
hw/arm: Replace fprintf(stderr, "*\n" with error_report()
Replace a large number of the fprintf(stderr, "*\n" calls with
error_report(). The functions were renamed with these commands and then
compiler issues where manually fixed.
find ./* -type f -exec sed -i \
'N;N;N;N;N;N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig}' \
{} +
find ./* -type f -exec sed -i \
'N;N;N;N;N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig}' \
{} +
find ./* -type f -exec sed -i \
'N;N;N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig}' \
{} +
find ./* -type f -exec sed -i \
'N;N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig}' \
{} +
find ./* -type f -exec sed -i \
'N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig}' \
{} +
find ./* -type f -exec sed -i \
'N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig}' \
{} +
find ./* -type f -exec sed -i \
'N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig}' \
{} +
find ./* -type f -exec sed -i \
'N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig}' \
{} +
find ./* -type f -exec sed -i \
'N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig}' \
{} +
find ./* -type f -exec sed -i \
'N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig}' \
{} +
find ./* -type f -exec sed -i \
'N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig}' \
{} +
Some lines where then manually tweaked to pass checkpatch.
The 'qemu: ' prefix was manually removed from the hw/arm/boot.c file.
Signed-off-by: Alistair Francis <alistair.francis@xilinx.com>
Cc: qemu-arm@nongnu.org
Conversions that aren't followed by exit() dropped, because they might
be inappropriate.
Also trim trailing punctuation from error messages.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20180203084315.20497-3-armbru@redhat.com>
2018-02-03 11:43:03 +03:00
|
|
|
error_report("A flash image must be given with the "
|
|
|
|
"'pflash' parameter");
|
2007-11-17 14:50:55 +03:00
|
|
|
exit(1);
|
|
|
|
}
|
|
|
|
|
2023-01-09 14:53:08 +03:00
|
|
|
/* Numonyx RC28F128J3F75 */
|
2023-01-09 14:53:16 +03:00
|
|
|
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);
|
2007-11-17 14:50:55 +03:00
|
|
|
|
2008-01-14 05:39:21 +03:00
|
|
|
/* Interrupt line of NIC is connected to GPIO line 36 */
|
2023-10-23 11:37:35 +03:00
|
|
|
smc91c111_init(0x04000300, qdev_get_gpio_in(cpu->gpio, 36));
|
2007-11-17 14:50:55 +03:00
|
|
|
}
|
|
|
|
|
2014-05-07 18:42:57 +04:00
|
|
|
static void verdex_init(MachineState *machine)
|
2007-11-17 14:50:55 +03:00
|
|
|
{
|
2009-05-10 04:44:56 +04:00
|
|
|
PXA2xxState *cpu;
|
2009-07-22 18:42:57 +04:00
|
|
|
DriveInfo *dinfo;
|
2007-11-25 02:47:38 +03:00
|
|
|
|
2023-01-09 14:53:09 +03:00
|
|
|
cpu = pxa270_init(VERDEX_RAM_SIZE, machine->cpu_type);
|
2007-11-25 02:47:38 +03:00
|
|
|
|
2009-07-22 18:42:57 +04:00
|
|
|
dinfo = drive_get(IF_PFLASH, 0, 0);
|
2013-07-29 19:15:01 +04:00
|
|
|
if (!dinfo && !qtest_enabled()) {
|
hw/arm: Replace fprintf(stderr, "*\n" with error_report()
Replace a large number of the fprintf(stderr, "*\n" calls with
error_report(). The functions were renamed with these commands and then
compiler issues where manually fixed.
find ./* -type f -exec sed -i \
'N;N;N;N;N;N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig}' \
{} +
find ./* -type f -exec sed -i \
'N;N;N;N;N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig}' \
{} +
find ./* -type f -exec sed -i \
'N;N;N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig}' \
{} +
find ./* -type f -exec sed -i \
'N;N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig}' \
{} +
find ./* -type f -exec sed -i \
'N;N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig}' \
{} +
find ./* -type f -exec sed -i \
'N;N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig}' \
{} +
find ./* -type f -exec sed -i \
'N;N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig}' \
{} +
find ./* -type f -exec sed -i \
'N;N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig}' \
{} +
find ./* -type f -exec sed -i \
'N;N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig}' \
{} +
find ./* -type f -exec sed -i \
'N;N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig}' \
{} +
find ./* -type f -exec sed -i \
'N; {s|fprintf(stderr, "\(.*\)\\n"\(.*\));|error_report("\1"\2);|Ig}' \
{} +
Some lines where then manually tweaked to pass checkpatch.
The 'qemu: ' prefix was manually removed from the hw/arm/boot.c file.
Signed-off-by: Alistair Francis <alistair.francis@xilinx.com>
Cc: qemu-arm@nongnu.org
Conversions that aren't followed by exit() dropped, because they might
be inappropriate.
Also trim trailing punctuation from error messages.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20180203084315.20497-3-armbru@redhat.com>
2018-02-03 11:43:03 +03:00
|
|
|
error_report("A flash image must be given with the "
|
|
|
|
"'pflash' parameter");
|
2007-11-25 02:47:38 +03:00
|
|
|
exit(1);
|
|
|
|
}
|
|
|
|
|
2023-01-09 14:53:08 +03:00
|
|
|
/* Micron RC28F256P30TFA */
|
2023-01-09 14:53:16 +03:00
|
|
|
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);
|
2007-11-25 02:47:38 +03:00
|
|
|
|
|
|
|
/* Interrupt line of NIC is connected to GPIO line 99 */
|
2023-10-23 11:37:35 +03:00
|
|
|
smc91c111_init(0x04000300, qdev_get_gpio_in(cpu->gpio, 99));
|
2007-11-17 14:50:55 +03:00
|
|
|
}
|
|
|
|
|
2015-09-19 11:49:44 +03:00
|
|
|
static void connex_class_init(ObjectClass *oc, void *data)
|
2009-05-21 03:38:09 +04:00
|
|
|
{
|
2015-09-19 11:49:44 +03:00
|
|
|
MachineClass *mc = MACHINE_CLASS(oc);
|
|
|
|
|
2015-09-04 21:37:08 +03:00
|
|
|
mc->desc = "Gumstix Connex (PXA255)";
|
|
|
|
mc->init = connex_init;
|
2017-09-07 15:54:54 +03:00
|
|
|
mc->ignore_memory_transaction_failures = true;
|
2009-05-21 03:38:09 +04:00
|
|
|
}
|
|
|
|
|
2015-09-19 11:49:44 +03:00
|
|
|
static const TypeInfo connex_type = {
|
|
|
|
.name = MACHINE_TYPE_NAME("connex"),
|
|
|
|
.parent = TYPE_MACHINE,
|
|
|
|
.class_init = connex_class_init,
|
|
|
|
};
|
2015-09-04 21:37:08 +03:00
|
|
|
|
2015-09-19 11:49:44 +03:00
|
|
|
static void verdex_class_init(ObjectClass *oc, void *data)
|
2015-09-04 21:37:08 +03:00
|
|
|
{
|
2015-09-19 11:49:44 +03:00
|
|
|
MachineClass *mc = MACHINE_CLASS(oc);
|
|
|
|
|
2023-01-09 14:53:08 +03:00
|
|
|
mc->desc = "Gumstix Verdex Pro XL6P COMs (PXA270)";
|
2015-09-04 21:37:08 +03:00
|
|
|
mc->init = verdex_init;
|
2017-09-07 15:54:54 +03:00
|
|
|
mc->ignore_memory_transaction_failures = true;
|
2017-09-13 19:04:57 +03:00
|
|
|
mc->default_cpu_type = ARM_CPU_TYPE_NAME("pxa270-c0");
|
2015-09-04 21:37:08 +03:00
|
|
|
}
|
|
|
|
|
2015-09-19 11:49:44 +03:00
|
|
|
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);
|
|
|
|
}
|
|
|
|
|
2016-02-16 23:59:04 +03:00
|
|
|
type_init(gumstix_machine_init)
|