From: Alexander Graf <agraf@suse.de>
To: qemu-devel@nongnu.org
Cc: Blue Swirl <blauwirbel@gmail.com>,
qemu-ppc@nongnu.org, Aurelien Jarno <aurelien@aurel32.net>
Subject: [Qemu-devel] [PATCH 21/22] PPC: Add timer handler for newworld mac-io
Date: Thu, 11 Jul 2013 19:01:24 +0200 [thread overview]
Message-ID: <1373562085-29728-22-git-send-email-agraf@suse.de> (raw)
In-Reply-To: <1373562085-29728-1-git-send-email-agraf@suse.de>
Mac OS X accesses fancy timer registers inside of the mac-io on bootup.
These really should be ticking at the mac-io bus frequency, but I don't
see anyone upset when we just make them as fast as we want to.
With this patch on top of my previous patch queue and latest OpenBIOS
I am able to boot Mac OS X 10.4 with -M mac99.
Signed-off-by: Alexander Graf <agraf@suse.de>
---
hw/misc/macio/macio.c | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)
diff --git a/hw/misc/macio/macio.c b/hw/misc/macio/macio.c
index 6459bc1..c0d0bf7 100644
--- a/hw/misc/macio/macio.c
+++ b/hw/misc/macio/macio.c
@@ -234,11 +234,39 @@ static void macio_oldworld_init(Object *obj)
}
}
+static void timer_write(void *opaque, hwaddr addr, uint64_t value,
+ unsigned size)
+{
+}
+
+static uint64_t timer_read(void *opaque, hwaddr addr, unsigned size)
+{
+ uint32_t value = 0;
+
+ switch (addr) {
+ case 0x38:
+ value = qemu_get_clock_ns(vm_clock);
+ break;
+ case 0x3c:
+ value = qemu_get_clock_ns(vm_clock) >> 32;
+ break;
+ }
+
+ return value;
+}
+
+static const MemoryRegionOps timer_ops = {
+ .read = timer_read,
+ .write = timer_write,
+ .endianness = DEVICE_NATIVE_ENDIAN,
+};
+
static int macio_newworld_initfn(PCIDevice *d)
{
MacIOState *s = MACIO(d);
NewWorldMacIOState *ns = NEWWORLD_MACIO(d);
SysBusDevice *sysbus_dev;
+ MemoryRegion *timer_memory = g_new(MemoryRegion, 1);
int i;
int cur_irq = 0;
int ret = macio_common_initfn(d);
@@ -265,6 +293,11 @@ static int macio_newworld_initfn(PCIDevice *d)
}
}
+ /* Timer */
+ memory_region_init_io(timer_memory, OBJECT(s), &timer_ops, NULL, "timer",
+ 0x1000);
+ memory_region_add_subregion(&s->bar, 0x15000, timer_memory);
+
return 0;
}
--
1.8.1.4
next prev parent reply other threads:[~2013-07-11 17:01 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-07-11 17:01 [Qemu-devel] [PULL 00/22] ppc patch queue 2013-07-11 Alexander Graf
2013-07-11 17:01 ` [Qemu-devel] [PATCH 01/22] e600 core for MPC86xx processors Alexander Graf
2013-07-11 17:01 ` [Qemu-devel] [PATCH 02/22] spapr: Fix compiler warnings for some versions of gcc Alexander Graf
2013-07-11 17:01 ` [Qemu-devel] [PATCH 03/22] spapr: Use named enum for function remove_hpte Alexander Graf
2013-07-11 17:01 ` [Qemu-devel] [PATCH 04/22] spapr: Respect -bios command line option for SLOF Alexander Graf
2013-07-11 17:01 ` [Qemu-devel] [PATCH 05/22] pseries: move interrupt controllers to hw/intc/ Alexander Graf
2013-07-11 17:01 ` [Qemu-devel] [PATCH 06/22] target-ppc: Add POWER8 v1.0 CPU model Alexander Graf
2013-07-11 17:01 ` [Qemu-devel] [PATCH 07/22] PPC: Mac: Fix guest exported tbfreq values Alexander Graf
2013-07-11 17:01 ` [Qemu-devel] [PATCH 08/22] PPC: g3beige: Move secondary IDE bus to mac-io Alexander Graf
2013-07-11 17:01 ` [Qemu-devel] [PATCH 09/22] PPC: Macio: Replace tabs with spaces Alexander Graf
2013-07-11 17:01 ` [Qemu-devel] [PATCH 10/22] PPC: dbdma: " Alexander Graf
2013-07-11 17:01 ` [Qemu-devel] [PATCH 11/22] PPC: Mac: Add debug prints in macio and dbdma code Alexander Graf
2013-07-11 17:01 ` [Qemu-devel] [PATCH 12/22] PPC: dbdma: Fix debug print Alexander Graf
2013-07-11 17:01 ` [Qemu-devel] [PATCH 13/22] PPC: dbdma: Allow new commands in RUN state Alexander Graf
2013-07-11 17:01 ` [Qemu-devel] [PATCH 14/22] PPC: dbdma: Move defines into header file Alexander Graf
2013-07-11 17:01 ` [Qemu-devel] [PATCH 15/22] PPC: dbdma: Introduce kick function Alexander Graf
2013-07-11 17:01 ` [Qemu-devel] [PATCH 16/22] PPC: dbdma: Move static bh variable to device struct Alexander Graf
2013-07-11 17:01 ` [Qemu-devel] [PATCH 17/22] PPC: dbdma: macio: Add DMA callback Alexander Graf
2013-07-11 17:01 ` [Qemu-devel] [PATCH 18/22] PPC: dbdma: Move processing to io Alexander Graf
2013-07-11 17:01 ` [Qemu-devel] [PATCH 19/22] PPC: dbdma: Wait for DMA until we have data Alexander Graf
2013-07-11 17:01 ` [Qemu-devel] [PATCH 20/22] PPC: dbdma: Support unaligned DMA access Alexander Graf
2013-07-11 17:01 ` Alexander Graf [this message]
2013-07-11 17:01 ` [Qemu-devel] [PATCH 22/22] PPC: dbdma: Support more multi-issue DMA requests Alexander Graf
2013-07-12 19:03 ` [Qemu-devel] [APPLIED] Merge remote-tracking branch 'agraf/ppc-for-upstream' into staging Anthony Liguori
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1373562085-29728-22-git-send-email-agraf@suse.de \
--to=agraf@suse.de \
--cc=aurelien@aurel32.net \
--cc=blauwirbel@gmail.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).