2006/5/25, Konstantin Boyanov <kkboyanov at gmail.com>: > > Hi again, > > The problem persist even with the new driver for 2.6 ... :( > It is obvious that the driver cannot allocate memory for the window... It > fails that thing called __ioremap(), whatever it might be used for: > > [mvme6100]# vme_setoutboundwin -h > vme_setoutboundwin > Usage: vme_setoutboundwin <options> > -w <window> window(where 0<=window<=6) > -m <mode> address mode (where > 0=A16,1=A24,2=A32,3=A64,4=CRCSR) > -p <protocol> protocol (where > 1=SCT,2=BLT,4=MBLT,8=2eVME,0x10=2eSST) > -a <VME addr> VME address > -d <data width> data width (8, 16, 32, 64) > -s <window size> window size (where 0 < window_size <= > 0x400000) > -v Be more verbose > -h Give this (short) help > > [mvme6100]# vme_setoutboundwin -w0 -m0 -p8 -a0x8800 -d16 -s400000 -v > window = 0, mode = 0 protocol 0x8 vme_addr = 0x8800 data width = 16 > __ioremap(): phys addr 01000000 is RAM lr d100be34 > vmedrv: No memory for outbound window > ioctl VME_IOCTL_SET_OUTBOUND failed.: Cannot allocate memory > > While searching on the web for information about __ioremap I found this: > > /* > * Remap an arbitrary physical address space into the kernel virtual > * address space. Needed when the kernel wants to access high addresses > * directly. > * > > * NOTE! We need to allow non-page-aligned mappings too: we will obviously > * have to convert them into an offset in a page-aligned mapping, but the > * caller shouldn't need to know that small detail. > */ > > > And another thing - people should not be using __ioremap() unless they > have a _good_ _reason_ in their driver. They should be using ioremap() > instead. __ioremap() is an architecture implementation detail which > > has no interface stability guarantees _at all_. > > How's that? So it seems that the kernel can't translate the accesses to > the VME bus propperly. Any ideas how to fix that? > Actually I cant figure out why configuring a single outbound window is so > damn tough to achieve.e maybe I'm missing some crutial settings. I tried > to set up the window attribute register, and the outbound translation offset > register in the hope to fit in the needed size for the window, but again > failed. I'm trying to get frustrated about that... > > Best regards, > Konstantin > > P.S. I forgot to say that on the target I'm booting a bare kernel with not much functionality. Could it be that there are missing some settings for the virtual memory management, which are crutial for the VME driver? I mean the above message "phys addr 01000000 is RAM lr d100be34" is somehow connected to misconfiguration (or lack of it at all) for the virtual memory pages? That's what I can think of som late in the night... Thank you anyways.
Best regards, Konstantin -------------- next part -------------- An HTML attachment was scrubbed... URL: http://ozlabs.org/pipermail/linuxppc-embedded/attachments/20060526/448d7a5e/attachment.htm