Messages in this thread |  | | | Date | Sun, 30 Dec 2007 12:50:08 -0800 | | From | "H. Peter Anvin" <> | | Subject | Re: [PATCH] x86: provide a DMI based port 0x80 I/O delay override | |
Juergen Beisert wrote:
> On Sunday 30 December 2007 16:38, Alan Cox wrote:
>>> do you have any memories about the outb_p() use of misc_32.c:
>>>
>>> pos = (x + cols * y) * 2; /* Update cursor position */
>>> outb_p(14, vidport);
>>> outb_p(0xff & (pos >> 9), vidport+1);
>>> outb_p(15, vidport);
>>> outb_p(0xff & (pos >> 1), vidport+1);
>>>
>>> was this ever needed? This is so early in the bootup that can we cannot
>> None - but we don't care.
>
> Was this embedded outb to 0x80 for delay only? Maybe I'm wrong. But in the
> case above it forces the chipselect signal to deselect the hardware between
> the access to vidport and vidport+1. Some devices need this to latch the
> values correctly. Otherwise the chipselect signal would be active for all
> four accesses in the example above (and only data and addresses are changing
> from device's view).
>
Presumably you're talking about an actual ISA bus here. On those, you
don't really have a chip select; but you'd expect the latch to happen on
the rising edge of IOW#, not on an internally generated chip select.
Now, I think there is a specific reason to believe that EGA/VGA (but
perhaps not CGA/MDA) didn't need these kinds of hacks: the video cards
of the day was touched, directly, by an interminable number of DOS
applications. CGA/MDA generally *were not*, due to the unsynchronized
memory of the original versions (writing could cause snow), so most
applications tended to fall back to using the BIOS access methods for
CGA and MDA.
-hpa
|  |