cvs commit: src/sys/dev/uart uart_cpu_pc98.c

Bruce Evans bde at zeta.org.au
Thu Sep 11 13:28:36 PDT 2003


On Thu, 11 Sep 2003, M. Warner Losh wrote:

> In message: <20030911.204333.41730710.nyan at jp.FreeBSD.org>
>             Takahashi Yoshihiro <nyan at jp.FreeBSD.org> writes:
> : In article <200309110414.h8B4ERi2062520 at repoman.freebsd.org>
> : Warner Losh <imp at FreeBSD.org> writes:
> :
> : > imp         2003/09/10 21:14:27 PDT
> : >
> : >   FreeBSD src repository
> : >
> : >   Modified files:
> : >     sys/dev/uart         uart_cpu_pc98.c
> : >   Log:
> : >   Fix compile on pc98.  Maybe this is correct.
> :
> : It should not call i386_bus_space_handle_alloc() directly in device
> : driver.  I think that we need to implement bus_space_map() function.

sio also needs the map function.  From pc98/sio.c

% 	    com->data_port = iobase + iat[com_data];
% 	    com->int_id_port = iobase + iat[com_iir];
% 	    ...

This needs the map function so that the map is not hard-coded.  After
all i/o addresses (only 8 for 8250-16950) are mapped like this, all
offsets can be 0 (and direct).

> The functions in uart_cpu_* are used for the console port support
> before the device system is up and running.  It is currently abusing
> bus space handles a little bit here.  Since we're only planning on

Hmm.  I only have 2 sio ports that can use a special mapping
(multiplication of the offset by 4 for the memory-mapped case), and
currently just hard-codes this in a way that doesn't work for consoles.
But the ports also support pio and that could be used for consoles.

> supporting console ports on the first two serial ports, the number of
> different devices we need to support is sufficiently small that I
> thought this abuse was OK.

Restricting the number doesn't help much since all cases may be present
on different machines with just 1 port.

Bruce


More information about the cvs-src mailing list