From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13496 invoked by alias); 1 Jul 2004 18:19:08 -0000 Mailing-List: contact sid-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: sid-owner@sources.redhat.com Received: (qmail 13479 invoked from network); 1 Jul 2004 18:19:06 -0000 Received: from unknown (HELO pine.epix.net) (199.224.64.53) by sourceware.org with SMTP; 1 Jul 2004 18:19:06 -0000 Received: from cecile.shideleff.com (hrbg-216-222-244-220-pppoe.dsl.hrbg.epix.net [216.222.244.220]) by pine.epix.net (8.12.10/2004012201/PL) with ESMTP id i61IJ1WT013324; Thu, 1 Jul 2004 14:19:04 -0400 (EDT) Received: from dinky.shideleff.com (dinky.shideleff.com [192.168.0.107]) by cecile.shideleff.com (Postfix) with ESMTP id D5D1725875A; Thu, 1 Jul 2004 14:19:00 -0400 (EDT) From: Robert Shideleff To: sid@sources.redhat.com, cgen@sources.redhat.com Subject: SID/CGEN IRQ bug Date: Thu, 01 Jul 2004 18:19:00 -0000 User-Agent: KMail/1.6.2 MIME-Version: 1.0 Content-Disposition: inline Content-Type: Text/Plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Message-Id: <200407011418.58797.bigbob@shideleff.com> X-Scanned-By: MIMEDefang 2.41 X-SW-Source: 2004-q3/txt/msg00001.txt.bz2 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 I am sending this to both the SID and CGEN mailing lists because I am not s= ure=20 who would be in a position to fix this. The SID model of the arm7t currently enters an interrupt in a way that=20 resembles edge detected interrupts in hardware. (It doesn't model them=20 perfectly, because it currently doesn't sense high-to-low transitions.=20 Instead, any call to drive the pin low no matter what state it is currently= =20 in will spark an interrupt.) However, regardless of the correctness of how the edge detected interrupts = are=20 currently modeled, the arm7 irq pin is actually level sensitive, not edge=20 sensitive. This means that any attempt to model interrupt clearing and=20 setting cannot be made accurate. As an example, eCos depends on the level=20 sensitive behavior of interrupts. Otherwise, if multiple interrupts arrive = at=20 the same time, it will miss all but one of them. There is an incredibly trivial way to fix this in the already comgen'ed cod= e.=20 I would simply modify the function that sets cpsr to check the sense of the= =20 two interrupt pins and drive another irq if necessary. But this wouldn't fi= x=20 the original code. I looked through the compgen stuff, and got completely=20 lost. Is there anybody out there who knows how to fix this in the compgen=20 code? Bob -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQFA5FWR8XjOGQDr37YRAvlKAKCKGjrYiRDU6typvSPUgmeuI12HTACfSnAC dyIlHVNVcg9qlLcMNtfOJcM=3D =3DDCFz -----END PGP SIGNATURE-----