qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] Add Palm Tungsten|C support
@ 2009-01-14 15:20 Marek Vašut
  2009-01-14 16:02 ` Jean-Christophe PLAGNIOL-VILLARD
  0 siblings, 1 reply; 6+ messages in thread
From: Marek Vašut @ 2009-01-14 15:20 UTC (permalink / raw)
  To: qemu-devel

[-- Attachment #1: Type: text/plain, Size: 351 bytes --]

Hi,

this patch adds Palm TC support. It's a PXA based handheld device (unlike
PalmTE defined in palm.c which is OMAP) so I decided to separate these and
create new palmpxa.c . Near future plan is to add basic support for other
pxa-based palm models as well. Please consider applying.

Signed-off-by: Marek Vasut <marek.vasut@gmail.com>

Thanks
Marek

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-add-palmtc.diff --]
[-- Type: text/x-diff; name="0001-add-palmtc.diff", Size: 2821 bytes --]

Index: Makefile.target
===================================================================
--- Makefile.target	(revision 6290)
+++ Makefile.target	(working copy)
@@ -716,6 +716,7 @@
 OBJS+= tsc2005.o bt-hci-csr.o
 OBJS+= mst_fpga.o mainstone.o
 OBJS+= musicpal.o pflash_cfi02.o
+OBJS+= palmpxa.o
 CPPFLAGS += -DHAS_AUDIO
 endif
 ifeq ($(TARGET_BASE_ARCH), sh4)
Index: hw/boards.h
===================================================================
--- hw/boards.h	(revision 6290)
+++ hw/boards.h	(working copy)
@@ -95,6 +95,9 @@
 /* palm.c */
 extern QEMUMachine palmte_machine;
 
+/* palmpxa.c */
+extern QEMUMachine palmtc_machine;
+
 /* nseries.c */
 extern QEMUMachine n800_machine;
 extern QEMUMachine n810_machine;
Index: hw/palmpxa.c
===================================================================
--- hw/palmpxa.c	(revision 0)
+++ hw/palmpxa.c	(revision 0)
@@ -0,0 +1,69 @@
+/*
+ * Intel PXA2xx-based Palm PDA Platforms
+ *
+ * Copyright (c) 2009 by Marek Vasut <marek.vasut@gmail.com>
+ *
+ * Code based on spitz platform by Andrzej Zaborowski <balrog@zabor.org>
+ *
+ * This code is licensed under the GNU GPL v2.
+ */
+
+#include "hw.h"
+#include "pxa.h"
+#include "net.h"
+#include "flash.h"
+#include "sysemu.h"
+#include "devices.h"
+#include "boards.h"
+
+#define PALMTC_GPIO_nPOWER	9
+
+static const int sector_len = 128 * 1024;
+
+static void palmtc_init(ram_addr_t ram_size, int vga_ram_size,
+                const char *boot_device, DisplayState *ds,
+                const char *kernel_filename, const char *kernel_cmdline,
+                const char *initrd_filename, const char *cpu_model)
+{
+	struct pxa2xx_state_s *cpu;
+	int index;
+
+	uint32_t palmtc_rom = 0x01000000;	/* 16 Mb of ROM */
+	uint32_t palmtc_ram = 0x04000000;	/* 64 Mb of RAM */
+
+	if (ram_size < (palmtc_ram + palmtc_rom + PXA2XX_INTERNAL_SIZE)) {
+		fprintf(stderr, "This platform requires %i bytes of memory\n",
+			palmtc_ram + palmtc_rom + PXA2XX_INTERNAL_SIZE);
+		exit(1);
+	}
+
+	/* CPU */
+	cpu = pxa255_init(palmtc_ram, ds);
+
+	/* Onboard FlashROM */
+	index = drive_get_index(IF_PFLASH, 0, 0);
+	if (index == -1) {
+		fprintf(stderr, "A flash image must be given with the "
+			"'pflash' parameter\n");
+		exit(1);
+	}
+
+	if (!pflash_cfi01_register(0x00000000, qemu_ram_alloc(palmtc_rom),
+		drives_table[index].bdrv, sector_len, palmtc_rom / sector_len,
+		2, 0, 0, 0, 0)) {
+		fprintf(stderr, "qemu: Error registering flash memory.\n");
+		exit(1);
+	}
+
+	/* Deassert power button */
+	qemu_set_irq(pxa2xx_gpio_in_get(cpu->gpio)[PALMTC_GPIO_nPOWER], 1);
+
+	cpu->env->regs[15] = 0x00000000;	/* Start from ROM */
+}
+
+QEMUMachine palmtc_machine = {
+	.name		= "palmtc",
+	.desc		= "Palm Tungsten|C (PXA255)",
+	.init		= palmtc_init,
+	.ram_require	= (0x05000000 + PXA2XX_INTERNAL_SIZE) | RAMSIZE_FIXED,
+};

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2009-01-14 17:26 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-01-14 15:20 [Qemu-devel] [PATCH] Add Palm Tungsten|C support Marek Vašut
2009-01-14 16:02 ` Jean-Christophe PLAGNIOL-VILLARD
2009-01-14 16:23   ` Marek Vasut
2009-01-14 16:17     ` Jean-Christophe PLAGNIOL-VILLARD
2009-01-14 17:08       ` Marek Vasut
2009-01-14 17:26         ` Marek Vasut

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).