<div>Rob,</div>
<div> </div>
<div>I didn&#39;t release the code, as this is not really part of openmoko.</div>
<div>To make this driver, I used a part of Atheros&#39;s driver, merged with a part of openmoko&#39;s one, resulting in a &quot;arch-independant&quot; driver for 1.x versions of this card.</div>
<div> </div>
<div>This worked well, and was stable enough for applications like video streaming, so I stayed with this solution.</div>
<div> </div>
<div>I don&#39;t have access to the code yet ( I recently changed of company ) , I have to ask a person to send it back to me. AFAIK, he is on holiday actually, I&#39;ll be able to give it to you in about a week I think.</div>

<div> </div>
<div>Regards,</div>
<div>Vincent.</div>
<div><br> </div>
<div class="gmail_quote">2009/8/18 Robert Emanuele <span dir="ltr">&lt;<a href="mailto:rob@emanuele.us">rob@emanuele.us</a>&gt;</span><br>
<blockquote style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex" class="gmail_quote">Hi Vincent,<br><br>I would be happy to give your code a try.  We are not using DMA with a<br>real MMC driver.  I&#39;d appreciate a look at it.  Have you released this<br>
code back to the openmoko project?  Is this the final solution you<br>went with or did you end up finding a card with the 2.0 firmware?<br><br>Thanks,<br><br>Rob<br>
<div>
<div></div>
<div class="h5"><br>On Mon, Aug 17, 2009 at 10:22 PM, Vincent Del<br>Medico&lt;<a href="mailto:vincent.del.medico@gmail.com">vincent.del.medico@gmail.com</a>&gt; wrote:<br>&gt; Hi rob,<br>&gt;<br>&gt; Openmoko&#39;s version of AR6k driver is for cards with 2.x firmware.<br>
&gt; You seem to have a 1.x version ( BMI Get Target Info: Exit (ver: 0x1302270f<br>&gt; type: 0x1) ), which is not compatible with 2.x.<br>&gt;<br>&gt; I faced the same problem as you before, except I was playing with the OMAP<br>
&gt; processor ( TI ).<br>&gt;<br>&gt; I can give you the job I did, but it only works in some conditions :<br>&gt; - your MMC/SD/SDIO driver must NOT use DMA transfers. The 32bit ARM core<br>&gt; only supports transfers of data multiple of 4 bytes, but the AR6k driver<br>
&gt; sometimes sends data of 1, 2 or 3 bytes, resulting in DMA misaligned errors.<br>&gt; I&#39;ve not been able to solve this problem, it could be nice to investigate.<br>&gt; - the driver works with a real MMC/SD/SDIO driver ( not SPI )...<br>
&gt; nevertheless, it maybe in SPI, but didn&#39;t tested.<br>&gt;<br>&gt; Regards,<br>&gt; Vincent.<br>&gt; 2009/8/18 Robert Emanuele &lt;<a href="mailto:rob@emanuele.us">rob@emanuele.us</a>&gt;<br>&gt;&gt;<br>&gt;&gt; Greetings,<br>
&gt;&gt;<br>&gt;&gt; I&#39;ve been toying with your port of the ar6000 driver with my atmel<br>&gt;&gt; at91 processor.<br>&gt;&gt;<br>&gt;&gt; It tries to initialize the card but fails....<br>&gt;&gt;<br>&gt;&gt; ar6000_available<br>
&gt;&gt; BMI Get Target Info: Exit (ver: 0x1302270f type: 0x1)<br>&gt;&gt; Block Size Set: 128 (target address:0x8000066C)<br>&gt;&gt; ar6000_init() Got WMI @ 0xc3a37d60.<br>&gt;&gt;  Timeout waiting for recv message<br>&gt;&gt;  Target Not Available!!<br>
&gt;&gt; ar6000_avail: register_netdev failed<br>&gt;&gt; +ar6000_destroy<br>&gt;&gt; ar6000_cleanup(): WMI not ready 0xc3a322c0 0xc3a37d60<br>&gt;&gt; ar6000_cleanup(): Shut down WMI<br>&gt;&gt; eth0: link up (100/Full)<br>
&gt;&gt;  Attempting to reset target on instance destroy....<br>&gt;&gt; -ar6000_destroy<br>&gt;&gt;<br>&gt;&gt; In an earlier post I saw that this firmware version may be too old.<br>&gt;&gt; I&#39;ve tried cards from 3 different vendors and the newest version I can<br>
&gt;&gt; come up with is 0x17 (which is on the way).  Does anyone know the<br>&gt;&gt; differences between 1.3 and the version that works with this driver?<br>&gt;&gt; How do the CE guys get this to work?  Or, does anyone know of a vendor<br>
&gt;&gt; that sells an ar6000 with the latest firmware in an SD Card package?<br>&gt;&gt;<br>&gt;&gt; Thanks,<br>&gt;&gt;<br>&gt;&gt; Rob<br>&gt;&gt;<br>&gt;<br>&gt;<br></div></div></blockquote></div><br>