Rockbox Development > New Ports
Creative Zen Vision:M
Falafel:
Yeah, you'r right..
Hmm, too bad.. Ah well, maybe I should learn how to write USB-drivers :s
Edit:
Correcting the fact that some words might sound the same, but look quite different in writing..
DanielF50:
--- Quote from: mcuelenaere on May 05, 2008, 10:48:34 AM ---
--- Quote from: mophead740 on May 05, 2008, 04:52:41 AM ---just what would be required to get rb working on the zvm with a cfs partition?
--- End quote ---
Understanding of the CFS file system (I believe it is based on BFS; quetzalcoatl on nomadness.net found out a lot of interesting stuff and he even made a fully working read-only driver for the first (minifs) partition, but unfortunately the site is now online and most of his information on the forums is lost (except in google cache, archive.org) + there seems to be no way of contacting/finding this person :(
I tried contacting the website owner, but failed. I also contacted a guy who he spoke with on the forums (and who is a main developer at libnjb), but he doesn't have any contacting information.
--- End quote ---
http://www.whois.net/whois_new.cgi?d=nomadness&tld=net
Email, Address, Name etc all on there, hopefully he still uses those details.
Daniel
mophead740:
I'm just wondering, if i wanted to get to work on my own usn driver, how would I go about it?
What kind of programming skill would it take?
Setting up the build environment should be no problem for me its just the coding that I'm wondering about.
EDIT:
I was looking around at the documentation for the usb chip and found this pdf that explains how to program it for windows ce 5.0.
has anyone else read it becauase it seems to me that its exactly what we need.
it even explains the way the chip handles interupts and the commands to use etc so it could be just what we need.
i think its based in c++ though, which could be a problem but most of it I'm sure is modifiable.
you can find it here http://www.nxp.com/acrobat/applicationnotes/AN10052_1.pdf
EDIT 2:
probably the most interesting part goes somewhere along these lines
--- Code: ---The ISP176x can handle interrupts, such as SOF, ATL, INTL and ISO.
A separate thread, UsbInterruptThreadStub () in Chw.cpp, is run to handle these interrupts.
Whenever there is an interrupt to the ISP176x, interrupt thread UsbInterruptThreadStub () will be called.
This main interrupt handler handles all the ISP176x generated interrupts and routes interrupts to the respective interrupt handlers.
For example, PhISP176XScheduleATLThread () handles ATL interrupts and PhISP176XScheduleINTLThread () handles INTL interrupts.
If, for example, you are working on ATL, you will get an interrupt only when PTDs in the ATL memory are done.
If you are working on INTL, you will get the interrupt only when PTDs in the INTL memory are done.
Remark: The ISP176x Windows CE software stack is tested on the PCI bus for the x86 processor.
© Koninklijke Philips Electronics N.V. 2005. All rights reserved.
Application note Rev. 01 — 27 October 2005 16 of 173
Philips Semiconductors AN10052
ISP176x Windows CE 5.0 Software Programming Reference
The PCI interrupt is routed to the ISP176x interrupt through the PLX9054 bridge.
If porting to other hardware platforms, add interrupt number MemBase and MemLen in P1761HCPDD.reg.
For example:
For interrupt number:
SysIntr = dword: XX /* XX indicates interrupt number */
For memory base address:
MemBase = dword: XX /* XX indicates memory base address */
For memory length:
MemLen = dword: XX /* XX indicates memory access length */
If you are working on other hardware platforms, ignore the PLX bridge initializations in system.c.
--- End code ---
edit by mcuelenaere:
made your post a bit smaller
mcuelenaere:
--- Quote from: DanielF50 on May 09, 2008, 05:34:00 PM ---http://www.whois.net/whois_new.cgi?d=nomadness&tld=net
Email, Address, Name etc all on there, hopefully he still uses those details.
Daniel
--- End quote ---
Yes, I already tried contacting this person but he didn't respond.
--- Quote from: Falafel on May 06, 2008, 01:19:46 PM ---Yeah, you'r right..
Hmm, too bad.. Ah well, maybe I should learn how to write USB-drivers :s
--- End quote ---
--- Quote from: mophead740 on May 10, 2008, 09:19:21 PM ---I'm just wondering, if i wanted to get to work on my own usn driver, how would I go about it?
What kind of programming skill would it take?
Setting up the build environment should be no problem for me its just the coding that I'm wondering about.
--- End quote ---
The only skill you'd need is C (and perhaps assembly reading, if you want to know how the OF does the USB) + you need to understand a bit how USB works (see url) + the datasheet.
At the moment the only working thing is you can receive a EP0SETUP package but that's it.
Keep in mind the interrupts aren't really working for some reason, so I've created a helper (tick task) which checks the interrupt register of the ISP1583 regularly and calls the interrupt handler if necessary.
The ISP1583 registers are accessed in 16-bit mode, so an int has to be set in 2 clock cycles (see the set_int(...) macro)
That's about it, I recommend using the bootloader build as this gives you the advantage of doing printf's while normal build only supports logf (which means less trial-and-error productivity ;)).
PS: the files you're interested in are
* firmware/drivers/isp1583.c
* firmware/export/isp1583.h
* firmware/target/arm/tms320dm320/creative-zvm/usb-creativezvm.c
* firmware/target/arm/tms320dm320/creative-zvm/usb-target.h
edit:
There is some example source available at NXP (you'll need an my NXP account to log in)
Falafel:
@mceulenaere
Hmm, when I try to compile it gives me an error that probably hinges on: "error: dsp-image.h: no such file or directory"
When I did a quick search I found that the Mrobe500 folks found the same problem, and although you gave a new patch the problem remains..
Edit:
Also, when I merge your diff with my source tree, it complains about audio-creativezvm.c not having an URL and then won't allow me to do anything.. Is this to be expected or should I stop using tortoise-SVN :p
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version