From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LKYOr-0001Jz-0c for qemu-devel@nongnu.org; Wed, 07 Jan 2009 08:24:45 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LKYOp-0001JB-PH for qemu-devel@nongnu.org; Wed, 07 Jan 2009 08:24:44 -0500 Received: from [199.232.76.173] (port=59618 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LKYOp-0001Is-2H for qemu-devel@nongnu.org; Wed, 07 Jan 2009 08:24:43 -0500 Received: from savannah.gnu.org ([199.232.41.3]:59233 helo=sv.gnu.org) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1LKYOo-0003yt-Rh for qemu-devel@nongnu.org; Wed, 07 Jan 2009 08:24:42 -0500 Received: from cvs.savannah.gnu.org ([199.232.41.69]) by sv.gnu.org with esmtp (Exim 4.63) (envelope-from ) id 1LKYOn-0000QU-I6 for qemu-devel@nongnu.org; Wed, 07 Jan 2009 13:24:41 +0000 Received: from edgar_igl by cvs.savannah.gnu.org with local (Exim 4.63) (envelope-from ) id 1LKYOn-0000QQ-5n for qemu-devel@nongnu.org; Wed, 07 Jan 2009 13:24:41 +0000 MIME-Version: 1.0 Errors-To: edgar_igl Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From: "Edgar E. Iglesias" Message-Id: Date: Wed, 07 Jan 2009 13:24:41 +0000 Subject: [Qemu-devel] [6206] ETRAX: Support timer count reads and correct frequencies. Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Revision: 6206 http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=6206 Author: edgar_igl Date: 2009-01-07 13:24:40 +0000 (Wed, 07 Jan 2009) Log Message: ----------- ETRAX: Support timer count reads and correct frequencies. Signed-off-by: Edgar E. Iglesias Modified Paths: -------------- trunk/hw/etraxfs_timer.c Modified: trunk/hw/etraxfs_timer.c =================================================================== --- trunk/hw/etraxfs_timer.c 2009-01-07 13:19:21 UTC (rev 6205) +++ trunk/hw/etraxfs_timer.c 2009-01-07 13:24:40 UTC (rev 6206) @@ -75,15 +75,6 @@ uint32_t r_masked_intr; }; -static uint32_t timer_rinvalid (void *opaque, target_phys_addr_t addr) -{ - struct fs_timer_t *t = opaque; - CPUState *env = t->env; - cpu_abort(env, "Unsupported short access. reg=" TARGET_FMT_plx "\n", - addr); - return 0; -} - static uint32_t timer_readl (void *opaque, target_phys_addr_t addr) { struct fs_timer_t *t = opaque; @@ -91,9 +82,10 @@ switch (addr) { case R_TMR0_DATA: + r = ptimer_get_count(t->ptimer_t0); break; case R_TMR1_DATA: - D(printf ("R_TMR1_DATA\n")); + r = ptimer_get_count(t->ptimer_t1); break; case R_TIME: r = qemu_get_clock(vm_clock) / 10; @@ -111,15 +103,6 @@ return r; } -static void -timer_winvalid (void *opaque, target_phys_addr_t addr, uint32_t value) -{ - struct fs_timer_t *t = opaque; - CPUState *env = t->env; - cpu_abort(env, "Unsupported short access. reg=" TARGET_FMT_plx "\n", - addr); -} - #define TIMER_SLOWDOWN 1 static void update_ctrl(struct fs_timer_t *t, int tnum) { @@ -155,7 +138,7 @@ case 4: freq_hz = 29493000; break; case 5: freq_hz = 32000000; break; case 6: freq_hz = 32768000; break; - case 7: freq_hz = 100001000; break; + case 7: freq_hz = 100000000; break; default: abort(); break; @@ -163,8 +146,8 @@ D(printf ("freq_hz=%d div=%d\n", freq_hz, div)); div = div * TIMER_SLOWDOWN; - div >>= 10; - freq_hz >>= 10; + div /= 1000; + freq_hz /= 1000; ptimer_set_freq(timer, freq_hz); ptimer_set_limit(timer, div, 0); @@ -309,14 +292,12 @@ } static CPUReadMemoryFunc *timer_read[] = { - &timer_rinvalid, - &timer_rinvalid, + NULL, NULL, &timer_readl, }; static CPUWriteMemoryFunc *timer_write[] = { - &timer_winvalid, - &timer_winvalid, + NULL, NULL, &timer_writel, };