Skip site navigation (1)Skip section navigation (2)
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>