Subject: Re: podulebus communication functions
To: Andrew McMurry <a.mcmurry1@physics.oxford.ac.uk>
From: Mark Brinicombe <mark@causality.com>
List: port-arm32
Date: 03/09/1998 18:49:11
On Mon, 9 Mar 1998, Andrew McMurry wrote:

> 
> Can anyone explain to me what the registers are meant to be on entry
> to the various *bus_wm_* assembly functions, or tell me where I can
> find out?

void bus_space_write_multi_1(bus_space_tag_t space,
    bus_space_handle_t handle, bus_size_t offset, u_int8_t *datap,
    bus_size_t count);

The tag is a bus space tag specific cookie. For the podulebus tag this is
a shift value to apply to the register during address calculations.
The handle is just the base address of the area of I/O that was mapped
with bus_space_map(). Offset is the register offset (affected by the
shift) with in the I/O space, datap is the source address of the data to
write and count is the number of bytes to write to the register.

Try man bus_space for more information on the bus space functions

> The Atomwide/Serial Port Multiple Serial Port Podule does not work with
> the driver in 1.3 current. It crashes the system whenever any data is
> received on one of the ports. The reason for this crash appears to be that
> the podulebus_wm_1 function is not implemented. The internal serial port
> works, and the mainbus_wm_1 function is implemented. The NetBSD NS16550
> com drivers use bus_space_write_multi_1.

Give me 5 minutes and I'll drop one in.

Cheers,
				Mark