cvs commit: src/sys/dev/uart uart_cpu_pc98.c
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.
More information about the cvs-src