Hi,
On Mon, Jan 23, 2012 at 1:01 PM, hanumant hanuman...@gmail.com wrote:
Hi
The board that I am working on has multiple serial ports.
I am trying to use device trees to configure board resource of these ports
as well as the serial framework. So the driver doesnot know apriori the
number of uart ports on the board. But querries the device tree for it.I am
facing the following issues.
1) Ports are memory mapped and each port has its own register space.
As such the serial framework apis dont provide for passing a port id at the
time of the call. So how do i access the correct register space for the
corresponding port?. Or should i define for my own set of apis to be called
by clients, allowing me to access specific ports corresponding address
space, and use the serial framework api's only for the default serial
console?
2) the default serial console, also gets configured based on information
obtained from the device tree, at run time. If i keep a global
representation of the default serial console with its base address etc, it
will still have to be reinitialized after relocation. The
default_serial_console() gives me an opportunity to reinitialize the global
structure. Is that the way to go?
I have done similar things. IMO the right way to go is to refactor the
serial API so that it takes a device pointer as the first parameter. I
haven't done it though.
What I did for now was to implement a new fdt_serial.c file which
defines 4 separate sets of function (each set containing putc, getc,
etc.) with the device pointer built in to those functions. It's really
ugly, and is what eserial does. Those functions look up the device
tree during init and redirect to the real serial driver's functions of
the same name.
I could probably rustle up a patch if it would help.
Regards,
Simon
Thanks
Hanumant
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot