This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

RE: Peculiar Register Write problem


> >This is the code for initializing the CL-PS6700 PCMCIA controller. 
> >Everything from PCCIRR1 on does not happen.  I've put this 
> code inside 
> >a
> 
> [...]
> 
> >If I put
> >in those 4 lines after a call to cf_init (), the registers do get set
> 
> So we can infer that your init code as posted is not 
> complete, and that it 
> relies on some other register's state being intialized by 
> cf_init(). Look 
> at the source for cf_init() and see what registers it 
> initializes. Cut and 
> paste into your code until the registers become properly writable.

I already did that, cf_init () does nothing but call cf_hwr_init ()
which is my driver initialization function.

> Cirrus's other EDBs use GPIO pins to drive chip select 
> signals on various 
> hardware. Check in particular that you're setting up the data 
> direction 
> register for the GPIO pins correctly, I think this is a 
> likely culprit for 
> your problem. (Just copy the value eCos uses for the time 
> being, once you 
> develop your own board you could modify it where necessary. 
> But whatever 
> value eCos uses will be sensible - presumably <g> - for the 
> Cirrus board).
What does this have to do with it not working?  My code is the same
whether it's in or out of the driver.  And as far as I can tell, nothing
occurs from the time I call cf_init () until it returns.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]