This is the mail archive of the mailing list for the glibc project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Provide a stub ioperm implementation for ARMv5 and later

On Saturday 12 December 2015 20:26:27 Phil Blundell wrote:
> On Sat, 2015-12-12 at 19:59 +0100, Aurelien Jarno wrote:
> > The ioperm, iopl, in{b,w,l} and out{b,w,l} functions only make sense
> > on ARMv4.
> This statement isn't strictly true.  There is no inherent relationship
> between the architecture level and the availability or not of the
> port-mapped I/O functions.  And, in fact, a quick survey suggests that
> there is at least one counterexample in the kernel: CONFIG_ARCH_VIPER is
> a PXA25x board (hence ARMv5TE) and seems to include ISA.  So, I am not
> all that keen on this patch. 

It was my mistake when I misread the code as relying on the machine lookup
in addition to the sysctl, when in fact only one of the two is needed.

However, the sysctl method is also just supported in two platforms
in the kernel: the footbridge that is in the lookup table and the
ARM Integrator machine if PCI is enabled. The Integrator is even
rarer than footbridge, but there is a CPU module called CM1136JF-S
for it, that has an ARMv6 based ARM1136.

No other machines call register_isa_ports(), and I would very much
expect this to stay that way, so we could still disable the code for
ARMv7. I agree it's a less obvious optimization than what I was
suggesting initially, so we can also just leave it in place.

> If you wanted to clean up the ioperm code a bit then it would probably
> make sense to remove all the legacy stuff that grubs around
> in /proc/cpuinfo and /etc/arm_systype to figure out what sort of machine
> it's on, since this is only needed for kernels that are so old as to
> lack the CTL_BUS_ISA sysctls.



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]