XVME 6300 with TSI148 bridge on 64 bit Debian (Linux 3.2.57) vme_user issue

Dan Carpenter dan.carpenter at oracle.com
Tue Jun 10 07:03:16 UTC 2014


I have added Martyn and Manohar to the CC list since they might know the
answer.  Are you using the latest kernel, btw?

regards,
dan carpenter

On Wed, Jun 04, 2014 at 02:43:29PM -0700, Maurice Moss wrote:
> Dear All,
> 
> I came across the link here and decided to write to you, as I am
> facing a very similar problem:
> http://driverdev.linuxdriverproject.org/pipermail/driverdev-devel/2013-May/037941.html
> 
> With the above linux, I have recompiled the kernel and booting the
> image with a vme_user.bus=0 vme_tsi148.geoid=1 vme_tsi148.err_chk=1
> flags.  I am just starting to get familiar with VME.
> 
> Using XVME 6300 (sitting in Slot 1), I am trying to access a ZMI 4100
> board (in slot 2, only 2 slots on the chassis whose back plane
> supports GA) via geographical addressing.  The ZMI board (supports
> only A24, D16/32, GA, NO CS/CSR).  I pretty much have the same code as
> mentioned in the thread, however all I read are 0xff's and my system
> hangs every once in a while (needs hard reset).  This makes debugging
> very hard.  I am trying to read valid registers at a given offset (in
> this case 0x003C).
> 
> My master struct is setup as below and I hope you can help me with the
> following questions:
>         master.enable = 1;
>         master.vme_addr = 0x10000;
>         master.size = 0x10000;
>         master.aspace = 2; // VME_A24
>         master.cycle = 0x2000 | 0x8000;// user/data access
>         master.dwidth = 2; // 16 bit word access
> 0. I suspect my master struct is packed wrong.
> 
> struct vme_master {
>         int enable;                     /* State of Window */
>         unsigned long long vme_addr;    /* Starting Address on the VMEbus */
>         unsigned long long size;        /* Window Size */
>         vme_address_t aspace;           /* Address Space */
>         vme_cycle_t cycle;              /* Cycle properties */
>         vme_width_t dwidth;             /* Maximum Data Width */
> };
> 
> 1. I don't believe accessing 64k of the ZMI's VME address space is a
> valid operation, could this be causing the bus to hang?  Actually, I
> have this doubt because I am unsure how exactly the master window is
> setup.
> 
> 2. From the documentation of ZMI 4100, it is claimed that the board
> supports VME64 and VME64X.  However, I am not sure if master.cycle
> bits for 2eVME need to be set or not?!
> 
> 3. Is there away to prevent the bus from hanging by modifying tsi148
> device code?
> 
> Thanks for reading this far, and any help is sincerely appreciated!
> Cheers,
> MM
> _______________________________________________
> devel mailing list
> devel at linuxdriverproject.org
> http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


More information about the devel mailing list