Date: Sun, 30 Nov 1997 12:45:08 -0800 From: John-Mark Gurney <gurney_j@efn.org> To: John Kelly <jak@cetlink.net> Cc: Bruce Evans <bde@zeta.org.au>, hackers@freebsd.org Subject: Re: 650 UART, SIO driver, 8259 PIC Message-ID: <19971130124508.58609@hydrogen.nike.efn.org> In-Reply-To: <3484c18f.19943322@mail.cetlink.net>; from John Kelly on Sun, Nov 30, 1997 at 08:03:35PM %2B0000 References: <199711301019.VAA09201@godzilla.zeta.org.au> <19971130030719.29570@hydrogen.nike.efn.org> <3484c18f.19943322@mail.cetlink.net>
next in thread | previous in thread | raw e-mail | index | archive | help
John Kelly scribbled this message on Nov 30: > On Sun, 30 Nov 1997 03:07:19 -0800, John-Mark Gurney > <gurney_j@efn.org> wrote: > > >ok, I see what you mean.. :) that's good news, but it still doesn't > >force that the ports be in proper order... we'll just have to document > >it this way if they want their AST/4 port board working.. just hope that > >people won't complain because they didn't have their setup correct in > >the first place.. > > In the section discussing IRQ control and status registers, the man > page only mentions four ports per interrupt sharing "group." It also actually, the document only gives examples that have four ports per interrupt sharing "group"... and this is the case for AST/4 boards too.. but there is a special option that allows you to put two AST/4 boards on the same interrupt, and this is then the sharred or common irq (as per the docs on the board I have)... > says that "control and status registers for a group, if any, must be > mapped to the scratch register (register 7) of a port in the group. > Such a port is called a master port." I forgot to mention that there is also a bit in the scratch register that must be set on the AST/4 boards before the global interrupt (for that board) is enabled.. > With only eight bits in the scratch register, mapping both a control > and status register to it will limit your interrupt sharing group to a > maximum of four ports. yes, but the thing is that when you have two boards on the same interrupt, you actually have to poll BOTH status registers of each board to find out what interrupts to serve.. there is no cross talk between the boards so that you can read one port, and each will contribute the bits for the ports on that board... > A software design based on that hardware configuration seems too > restrictive. Eight port boards which share a single IRQ are common > now. The board I have does not even use the idea of mapping. You > simply jumper it to select an unused I/O address where the status port > will appear. It renders obsolete the idea of a "master" port. yes, but the design isn't just limited to four ports (though it is right now)... and it doesn't even support the non-AST/4 board case either... I only wrote it that way because I felt like hacking on the code for an hour or two last night... if you noticed, I included (in the message) a way to support 16 ports boards, though it doesn't support the status registers of such boards yet... I just hope that there is a standard for these, else we will definately run out of bits in the flags... -- John-Mark Gurney Modem/FAX: +1 541 683 6954 Cu Networking Live in Peace, destroy Micro$oft, support free software, run FreeBSD
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19971130124508.58609>