On Tue, Apr 19, 2011 at 06:56:46PM +0400, Dmitry Eremin-Solenikov wrote: > Add very basic implementation of collie PDA emulation. The system lacks > LoCoMo and graphics/sound emulation. Linux kernel boots up to mounting > rootfs (theoretically it can be provided in pflash images). > > Signed-off-by: Dmitry Eremin-Solenikov <dbarysh...@gmail.com> > --- > Makefile.target | 1 + > hw/collie.c | 69 > +++++++++++++++++++++++++++++++++++++++++++++++++++++++ > 2 files changed, 70 insertions(+), 0 deletions(-) > create mode 100644 hw/collie.c
Thanks, applied. > diff --git a/Makefile.target b/Makefile.target > index 9e4cfc0..0e0ef36 100644 > --- a/Makefile.target > +++ b/Makefile.target > @@ -353,6 +353,7 @@ obj-arm-y += syborg_serial.o syborg_timer.o > syborg_pointer.o syborg_rtc.o > obj-arm-y += syborg_virtio.o > obj-arm-y += vexpress.o > obj-arm-y += strongarm.o > +obj-arm-y += collie.o > > obj-sh4-y = shix.o r2d.o sh7750.o sh7750_regnames.o tc58128.o > obj-sh4-y += sh_timer.o sh_serial.o sh_intc.o sh_pci.o sm501.o > diff --git a/hw/collie.c b/hw/collie.c > new file mode 100644 > index 0000000..156404d > --- /dev/null > +++ b/hw/collie.c > @@ -0,0 +1,69 @@ > +/* > + * SA-1110-based Sharp Zaurus SL-5500 platform. > + * > + * Copyright (C) 2011 Dmitry Eremin-Solenikov > + * > + * This code is licensed under GNU GPL v2. > + */ > +#include "hw.h" > +#include "sysbus.h" > +#include "boards.h" > +#include "devices.h" > +#include "strongarm.h" > +#include "arm-misc.h" > +#include "flash.h" > +#include "blockdev.h" > + > +static struct arm_boot_info collie_binfo = { > + .loader_start = SA_SDCS0, > + .ram_size = 0x20000000, > +}; > + > +static void collie_init(ram_addr_t ram_size, > + const char *boot_device, > + const char *kernel_filename, const char *kernel_cmdline, > + const char *initrd_filename, const char *cpu_model) > +{ > + StrongARMState *s; > + DriveInfo *dinfo; > + ram_addr_t phys_flash; > + > + if (!cpu_model) { > + cpu_model = "sa1110"; > + } > + > + s = sa1110_init(collie_binfo.ram_size, cpu_model); > + > + phys_flash = qemu_ram_alloc(NULL, "collie.fl1", 0x02000000); > + dinfo = drive_get(IF_PFLASH, 0, 0); > + pflash_cfi01_register(SA_CS0, phys_flash, > + dinfo ? dinfo->bdrv : NULL, (64 * 1024), > + 512, 4, 0x00, 0x00, 0x00, 0x00, 0); > + > + phys_flash = qemu_ram_alloc(NULL, "collie.fl2", 0x02000000); > + dinfo = drive_get(IF_PFLASH, 0, 1); > + pflash_cfi01_register(SA_CS1, phys_flash, > + dinfo ? dinfo->bdrv : NULL, (64 * 1024), > + 512, 4, 0x00, 0x00, 0x00, 0x00, 0); > + > + sysbus_create_simple("scoop", 0x40800000, NULL); > + > + collie_binfo.kernel_filename = kernel_filename; > + collie_binfo.kernel_cmdline = kernel_cmdline; > + collie_binfo.initrd_filename = initrd_filename; > + collie_binfo.board_id = 0x208; > + arm_load_kernel(s->env, &collie_binfo); > +} > + > +static QEMUMachine collie_machine = { > + .name = "collie", > + .desc = "Collie PDA (SA-1110)", > + .init = collie_init, > +}; > + > +static void collie_machine_init(void) > +{ > + qemu_register_machine(&collie_machine); > +} > + > +machine_init(collie_machine_init) > -- > 1.7.4.1 > > > -- Aurelien Jarno GPG: 1024D/F1BCDB73 aurel...@aurel32.net http://www.aurel32.net