ts-7000
[Top] [All Lists]

Re: [ts-7000] Re: TS-7390 tssdcard and tsuart driver incompatibility wit

To:
Subject: Re: [ts-7000] Re: TS-7390 tssdcard and tsuart driver incompatibility with DMA
From: "Breton M. Saunders" <>
Date: Tue, 11 Aug 2009 09:48:37 +0100
Daniel Smolik wrote:
> Doug napsal(a):
>   
>>  
>>
>> --- In  <ts-7000%40yahoogroups.com>, 
>> "Breton M. Saunders" <> wrote:
>>
>> Hey Brett,
>>
>>  > I am unconvinced by the stability of the sdcard driver.
>>
>> Me too. We first noticed this problem because it was causing corrupted 
>> versions of shared libraries to be loaded into RAM, causing a strange 
>> program crash. We also saw other odd behavior (playsound was cutting out 
>> on some sounds and making the sounds stutter, and saying invalid format 
>> on others). When we loaded our program from the NAND instead of the SD 
>> card all was fine. Hopefully it's an easy fix, we'll see...anyway, we've 
>> seen a lot of random weird behavior with the SD card and we're hoping 
>> this problem I reported is the root cause of it. We tried to reduce it 
>> down to a simple test case so it would be easy to reproduce.
>>
>>  > I'm not sure about the 7350 - but on the TS7400 there is a design issue
>>  > (or rather lack of clarity): The port_b4 gpio line doubles up as the
>>  > dmaenable line for dma channel 0. This is undocumented - and caused a
>>  > problem with a board I designed. The issue arises when using dma
>>  > enabled on the driver and channel 0 is used.
>>  >
>>  > The driver software for the 8 bit CPLD interfaces (7250 and 7400)
>>  > contain a busy wait loop in them to stop faulty signaling on them. Im
>>  > not sure about the 16 bit interfaces (e.g. the 73 series) - but there
>>  > may be an equivalent loop or a race condition in that loop in the driver.
>>  >
>>  > Id suggest checking that the two external DMA signaling lines aren't
>>  > attached to any circuitry you may be using.
>>
>> Thanks for the ideas...we'll definitely check on this on Monday to make 
>> sure. We've seen this problem on two TS-7390 boards, and on one of them 
>> I believe all we had hooked up externally was the two wires to the TS 
>> uart and an ethernet cable, so I dunno.
>>
>>  > Does anyone fancy co-operating on reverse engineering and open sourcing
>>  > the SDcard driver?
>>  > Is doing that legal?
>>
>> Not sure on the legality of it. I think it would be easier to just take 
>> the binary blob as is and port the open source portion of the driver to 
>> newer kernel versions perhaps? It would be an interesting thing to try 
>> (either method).
>>
>>     
> But it is lot of work I spend  lot of time to try port wrapper from 2.6.21 to 
> 28 but it is not possible.
> There are lot of internal changes in kernel BIO layer. I mean that wrapper 
> driver must be rewritten from scratch.
>   
Actually, I have repaired the wrapper for use with 2.6.27 - as I'm not 
convinced the memory management is correct in the later kernels yet - 
maybe someone can correct me on this.

I also reverse engineered the blob part from object module for use on 
the ts7400 about 10 months ago.  The reverse engineered blob works only 
on  - rev 0 8 bit CPLD controllers (e.g. 7250 and 7400, not 73xx nor 
78xx) - but one may infer from the blob dump that the 16 bit interfaces 
are fairly similar, and likely several oddities (e.g. hardware bugs) are 
fixed.

Nothing is sacred in the controller blob - all of the SD commands are 
published; so TS's argument about not releasing the driver because they 
paid for access to secure documents doesn't apply anymore (it may have 
at one time).  I suspect that TS's argument against publishing the 
driver source code is more of exposing bugs in the CPLD implementation, 
and/or showing their ugly code.  If they would chill out and come clean 
with the code then we (the collective community) could get it working, 
burn in tested and supported on modern (e.g. usable) kernels.

I have tested my implementation with Bonnie++, and it does seem to work 
on 10MiB test files - although I haven't done much more sophisticated 
burn-in testing.  My driver also works with DMA reads, DMA writes are 
unsupported (similarly to the ts implementation).

My main question - and primarily one for the GNU's lawyers is whether or 
not I can release the code under a GNU license.

    -bms


------------------------------------

Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/ts-7000/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/ts-7000/join
    (Yahoo! ID required)

<*> To change settings via email:
     
    

<*> To unsubscribe from this group, send an email to:
    

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/

<Prev in Thread] Current Thread [Next in Thread>
Admin

Disclaimer: Neither Andrew Taylor nor the University of NSW School of Computer and Engineering take any responsibility for the contents of this archive. It is purely a compilation of material sent by many people to the birding-aus mailing list. It has not been checked for accuracy nor its content verified in any way. If you wish to get material removed from the archive or have other queries about the archive e-mail Andrew Taylor at this address: andrewt@cse.unsw.EDU.AU