[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [microblaze-uclinux] Multiple Peripheral Instances with uClinux-autoplatform
Hi Paul,
Paul Hartke wrote:
> How does the uClinux-auto platform support multiple peripheral instances of
> the same type?
The will be described by kernel config parameters named thusly:
CONFIG_XILINX_core_type_n_param_name
where n goes from 0 to CONFIG_XILINX_/core_type/_NUM_INSTANCES-1, and
param_name is expanded across all parameters defined for the core, in
its MPD file.
What is not so clearly defined is the relative ordering of the various
instances and how that will be reflected in the kernel parameter
numbering. I haven't looked deeply into it, but I think the ordering of
the DRIVER blocks in the MSS file determines the order in which they are
enumerated in the MLD/TCL, and thus in the kernel parameterisation
scheme. This would be easy to test, and certainly needs to be clarified.
> I have a system with three opb_gpio peripherals but the address ranges for
> the second two peripherals are incorrectly being set in the uclinux kernel.
> I think that is because xgpio_g.c in the uclinux source tree only has one
> peripheral enumerated so the kernel is reading off the end of the array
> during initialization.
Yes, that's exactly correct. I have a trivial fix sitting in my tree
here that I haven't pushed to CVS yet - it just expands that definition
block in the gpio_g.c to support more than just one instance.
Cheers,
John
___________________________
microblaze-uclinux mailing list
microblaze-uclinux@itee.uq.edu.au
Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
Mailing List Archive : http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/