[PXA320] How to find I/O registers, base address of ASIX ethernet chip?

Eric Miao eric.y.miao at gmail.com
Thu Feb 4 07:28:36 EST 2010

On Thu, Feb 4, 2010 at 1:21 AM, Dennis Semakin <insane79 at yandex.ru> wrote:
> Hello all
> Configuration:
> Computer module is Toradex Colibri PXA320.
> Board is Colibri Evaluation Board.
> Obviously, to access the I/O register of network card, we need to map them into memory, using the ioremap() function.
> To do this driver (ax88796.c) use platform_get_resource() function to get the physical address of the I/O registers from the board definition (arch/arm/mach-pxa/colibri-pxa320.c). This function returns a pointer to a struct resource, which contains two interesting fields : start and end (both are physical address).
> Then call ioremap function to remap the memory area returned by platform_get_resource.
> Right?
> Ok. When I start kernel on my board, kernel loading stops on network initialization during call to the address resource.start.

By 'call', my understanding is 'access' here right?

> So, what could I do if the address (field start in resource structure) is not valid?
> Can I find it? (I mean address) Maybe I should ask something: where are ethernet chip I/O registers mapped in the memory?

Well, I guess you have to ask Toradex then :-)

Sometimes the registers range is offset by some value, possibly due
to compatibility with ISA I/O range, so you can also check if you have
a correct offset there in the resource definitions.

More information about the linux-arm-kernel mailing list