Re: Using IO functions across ARM, PPC and Microblaze architectures

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 12/08/2012 11:57 AM, Geert Uytterhoeven wrote:
On Fri, Dec 7, 2012 at 10:16 PM, Alan Cox <alan@xxxxxxxxxxxxxxxxxxx> wrote:
Because I need to use IO functions which will behave
on arm as little endian and on powerpc as big endian
and on microblaze depends on endian setting.
I haven't found any IO function which I could use by 3 architectures
without using preprocessor macros or runtime detection

Its a rather weird mix. We can do "always big" and "always little"

1. Using helper function + preprocessor macros
(using static inline function also possible)

Then someone comes along and sticks a daughterboard into the system with
the same device the other way around and there are years

2. Using function pointers

Probably smarter. 8250.c works this way and it has to handle some
extremely bizarre mappings.

b) Runtime initialization - here is the question if there is
any standard function which I could use.

Set the pointers up and pass them as data with your platform device, that
way the function definitions are buried in your platform code where they
depend.

Or embed a struct io_ops * in struct device, to be set up by the bus driver?

Wasn't David Hinds working on something like this in the context of PCMCIA
a few decades ago?


Do you have any link on that?

Thanks,
Michal



--
Michal Simek, Ing. (M.Eng)
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel 2.6 Microblaze Linux - http://www.monstr.eu/fdt/
Microblaze U-BOOT custodian
--
To unsubscribe from this list: send the line "unsubscribe linux-arch" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel]     [Kernel Newbies]     [x86 Platform Driver]     [Netdev]     [Linux Wireless]     [Netfilter]     [Bugtraq]     [Linux Filesystems]     [Yosemite Discussion]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]

  Powered by Linux