* VME driver problem on MVME6100
@ 2006-05-24 17:05 Konstantin Boyanov
2006-05-24 19:44 ` Xavier Grave
0 siblings, 1 reply; 4+ messages in thread
From: Konstantin Boyanov @ 2006-05-24 17:05 UTC (permalink / raw)
To: linuxppc-embedded
[-- Attachment #1: Type: text/plain, Size: 1245 bytes --]
Hi there,
These days I'm trying to "bring up" a VME driver on a Motorola SBC but I'm
getting in some troubles.
Actually there are no problems with the driver itself, methinks, it loads
correctly and everithing seems to be fine.
But when I try to create an outbound window, in order to "talk" some other
boards in the crate I get this:
__ioremap(): phys addr 01000000 is RAM lr d100be34
mode 0
vmedrv: No memory for outbound window
testout: VME_IOCTL_SET_OUTBOUND failed. Errno = 12
I'm not sure I understand all of this anyways... Except that there is no
sufficient memory to map for the outbound window.
That's what this test is supposed to do is to open the appropriate devices
for the VME bus (in this case /dev/vme_m[0-7]), configure the outbound
windows from 0 through 6 (the 7th is reserved) and then verifies that data
can be read through these outbound windows.
I'm using an VME driver downloaded from vmelinux.org and here is the source
of the test program I'm trying to run ->
http://www-zeuthen.desy.de/~boyanov/testOutWindow.txt<http://www-zeuthen.desy.de/%7Eboyanov/testOutWindow.txt>
I'm sorry for the newb question, but any ideas what is going wrong?
Thank you.
Kind regards,
Konstantin Boyanov
[-- Attachment #2: Type: text/html, Size: 1544 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: VME driver problem on MVME6100
2006-05-24 17:05 Konstantin Boyanov
@ 2006-05-24 19:44 ` Xavier Grave
0 siblings, 0 replies; 4+ messages in thread
From: Xavier Grave @ 2006-05-24 19:44 UTC (permalink / raw)
To: Konstantin Boyanov; +Cc: linuxppc-embedded
Hi,
Perhaps the size of the window you want is too big ?
I have only experience with MVME5100 and 5500 so I can only guess that.
xavier
Le mercredi 24 mai 2006 à 19:05 +0200, Konstantin Boyanov a écrit :
> Hi there,
>
> These days I'm trying to "bring up" a VME driver on a Motorola SBC but
> I'm getting in some troubles.
> Actually there are no problems with the driver itself, methinks, it
> loads correctly and everithing seems to be fine.
> But when I try to create an outbound window, in order to "talk" some
> other boards in the crate I get this:
>
> __ioremap(): phys addr 01000000 is RAM lr d100be34
> mode 0
> vmedrv: No memory for outbound window
> testout: VME_IOCTL_SET_OUTBOUND failed. Errno = 12
>
> I'm not sure I understand all of this anyways... Except that there is
> no sufficient memory to map for the outbound window.
> That's what this test is supposed to do is to open the appropriate
> devices for the VME bus (in this case /dev/vme_m[0-7]), configure the
> outbound windows from 0 through 6 (the 7th is reserved) and then
> verifies that data can be read through these outbound windows.
> I'm using an VME driver downloaded from vmelinux.org and here is the
> source of the test program I'm trying to run ->
> http://www-zeuthen.desy.de/~boyanov/testOutWindow.txt
>
> I'm sorry for the newb question, but any ideas what is going wrong?
> Thank you.
>
> Kind regards,
> Konstantin Boyanov
> _______________________________________________
> Linuxppc-embedded mailing list
> Linuxppc-embedded@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-embedded
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: VME driver problem on MVME6100
[not found] ` <007501c6801c$3b86fde0$0400a8c0@DLAPTOP>
@ 2006-05-25 19:00 ` Konstantin Boyanov
2006-05-25 23:33 ` Konstantin Boyanov
0 siblings, 1 reply; 4+ messages in thread
From: Konstantin Boyanov @ 2006-05-25 19:00 UTC (permalink / raw)
To: Ajit Prem, linuxppc-embedded
[-- Attachment #1: Type: text/plain, Size: 2306 bytes --]
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
[-- Attachment #2: Type: text/html, Size: 3220 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: VME driver problem on MVME6100
2006-05-25 19:00 ` VME driver problem on MVME6100 Konstantin Boyanov
@ 2006-05-25 23:33 ` Konstantin Boyanov
0 siblings, 0 replies; 4+ messages in thread
From: Konstantin Boyanov @ 2006-05-25 23:33 UTC (permalink / raw)
To: linuxppc-embedded
[-- Attachment #1: Type: text/plain, Size: 2960 bytes --]
2006/5/25, Konstantin Boyanov <kkboyanov@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
[-- Attachment #2: Type: text/html, Size: 4146 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2006-05-25 23:33 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <929bf310605250923i1924c12bj@mail.gmail.com>
[not found] ` <007501c6801c$3b86fde0$0400a8c0@DLAPTOP>
2006-05-25 19:00 ` VME driver problem on MVME6100 Konstantin Boyanov
2006-05-25 23:33 ` Konstantin Boyanov
2006-05-24 17:05 Konstantin Boyanov
2006-05-24 19:44 ` Xavier Grave
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).