Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 9 Sep 1995 03:59:25 +1000
From:      Bruce Evans <bde@zeta.org.au>
To:        bde@zeta.org.au, current@freebsd.org, deischen@iworks.InterWorks.org
Subject:   Re: Getting around conflicts for a driver w/out base address
Message-ID:  <199509081759.DAA24707@godzilla.zeta.org.au>

next in thread | raw e-mail | index | archive | help
>>useful to have some routines for hanging all the info for each device
>>off a single isa_device structure (so that every driver doesn't have
>>to search all the devtabs for info about itself).

>Where would these be defined, in isa_device.h?  I think Rod Grimes had
>said earlier that he thought a proposed define for the NO_PORT_ADDRESS
>(or something like that) might belong somewhere else.

They don't exist yet.  NO_PORT_ADDRESS is sort of defined by scattered
literal -1's in the config sources :-(.  The config.new sources are
better and define STAR (-1) for sd* and WILD (-2) for sd?.  NetBSD
has something involving (-2).  We may as well copy the constants.

>>There might be complications for overlapped ranges.  E.g., vga memory
>>isn't as shown above - it overlaps mda and cga memory.  Ports such as
>>the PPI only have conflicts at the bit level.

>If you allowed different bits of the same port address to be claimed
>by different drivers, would you have to worry about read/write hazards?

Yes, there would need to be some locks.  The PPI and the TIMER_MODE
ports are hazards now.  They are implicitly locked by aquire_timer_2()
and acquire_timer_0().  I'm not convinced that the locking is adequate.
It doesn't attempt to handle non-speaker bits in the PPI, but none are
used.

Bruce



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199509081759.DAA24707>