Rockbox Development > New Ports
Cowon D2
shotofadds:
Your patch is now in SVN (r18000... nice number ;)), and as a result MpegPlayer is now usable - within the confines of the broken NAND driver, of course.
As jhMikeS pointed out on the Flyspray task, the "proper" solution would be to fix the existing lcd-as-memframe.S to have a compile-time rotation switch, but I'll leave that as a task for another day.
ThibG:
Okay, I'm trying to make the "proper" solution :)
I think the switch should be enabled when LCD_HEIGHT < LCD_WIDTH...
El3ctroded:
I had an idea that may help you proceed with the NAND driver:
1) delete everything from the flash that is non-essential
2) set (or clear, your choice) all bytes in the unused memory
3) Write a file to the flash that is nothing but a file containing a sequential count 00-1Fh numerous times.
4) See how the data got written into the flash doing a memory dump.
5) Delete two or three of those files (randomly) and clear or set the memory where those files were.
6) Write a file to the flash that contains a sequential count of 20-FFh Once only.
7) See how that data was written.
Of course this would have to be done using the D2's firmware using some method. In any event, I think that would allow you to see how the original NAND driver stores data when memory is and is not fragmented quite easily.
If it's a bad idea, or has nothing to do with your NAND driver problem, feel free to tell me ;) I'm not that fluent in file systems and NAND memory, just thought I'd share...
ThibG:
I uploaded a patch which make the ASM code draws horizontally if LCD_HEIGHT < LCD_WIDTH.
Due to my limited understanding of ASM, it may not be very clean, but it works (at least on my D2).
shotofadds:
--- Quote from: El3ctroded on July 11, 2008, 04:06:24 AM ---I had an idea that may help you proceed with the NAND driver
--- End quote ---
That's essentially the kind of test I did originally (although it's better to write directly to the drive using something like 'dd', then we don't have to worry about how FAT arranges the data either).
I need to do more of these kind of tests, but there's a huge problem with the "see how that data was written" step. There's no way to get data back from the D2 to the PC, so the only way is to display raw data on the screen, a page at a time. This, combined with some code to search the NAND for particular occurences, is how the current driver was developed. When you're dealing with 4Gb+ of data, it's quite a painful experience. :-\
Another idea that I've been meaning to try is this: from the PC, write every sector on the UMS volume with a unique identifier based on its LBA address. Then, using the current Rockbox driver, read every sector to find which ones are read incorrectly. If we then search the NAND for the correct identifier, it might give us some clues about how the scheme really works.
The only problem with that approach is that I use my D2 as my day-to-day music player and don't really want to leave it in an unusable state for an extended period of time. I've picked up a cheap Sansa M240 (1Gb) which hopefully uses a similar NAND scheme, but I haven't had time to port the necessary code to TCC77x yet.
--- Quote from: ThibG on July 11, 2008, 04:39:41 AM ---I uploaded a patch which make the ASM code draws horizontally if LCD_HEIGHT < LCD_WIDTH.
Due to my limited understanding of ASM, it may not be very clean, but it works (at least on my D2).
--- End quote ---
Thanks. I'll take a look later and maybe see if there's a way to optimize that add/sub stuff. Out of interest, what fps do you get in test_fps (both at 48MHz and 192MHz)?
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version