Re: [Qemu-devel] [PATCH 2/2] Basic implementation of Sharp Zaurus SL-5500 collie PDA
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 000..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 = 0x2000, +}; + +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, 0x0200); +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, 0x0200); +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, 0x4080, 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
[Qemu-devel] [PATCH 2/2] Basic implementation of Sharp Zaurus SL-5500 collie PDA
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 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 000..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 = 0x2000, +}; + +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, 0x0200); +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, 0x0200); +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, 0x4080, 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
[Qemu-devel] [PATCH 2/2] Basic implementation of Sharp Zaurus SL-5500 collie PDA
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 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 000..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 = 0x2000, +}; + +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, 0x0200); +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, 0x0200); +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, 0x4080, 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
[Qemu-devel] [PATCH 2/2] Basic implementation of Sharp Zaurus SL-5500 collie PDA
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 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 000..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 = 0x2000, +}; + +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, 0x0200); +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, 0x0200); +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, 0x4080, 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
[Qemu-devel] [PATCH 2/2] Basic implementation of Sharp Zaurus SL-5500 collie PDA
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 | 70 +++ 2 files changed, 71 insertions(+), 0 deletions(-) create mode 100644 hw/collie.c diff --git a/Makefile.target b/Makefile.target index ddf3008..66a003b 100644 --- a/Makefile.target +++ b/Makefile.target @@ -329,6 +329,7 @@ obj-arm-y += syborg.o syborg_fb.o syborg_interrupt.o syborg_keyboard.o obj-arm-y += syborg_serial.o syborg_timer.o syborg_pointer.o syborg_rtc.o obj-arm-y += syborg_virtio.o obj-arm-y += strongarm.o strongarm_pic.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 000..b4bb549 --- /dev/null +++ b/hw/collie.c @@ -0,0 +1,70 @@ +/* + * 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 + +// FIXME +static struct arm_boot_info collie_binfo = { +.loader_start = SA_SDCS0, +.ram_size = 0x2000, +}; + +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-b5; + +s = sa1110_init(collie_binfo.ram_size, cpu_model); +(void) s; + +phys_flash = qemu_ram_alloc(NULL, collie.fl1, 0x0200); +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, 0x0200); +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, 0x4080, 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