From: Bernard L. <le...@bo...> - 2003-02-17 18:47:29
|
Hi all, Its been a busy couple of weeks since the site first went up, so I thought I'd write a short update to let you know whats new. Firstly I've moved my CVS repository onto sourceforge. This is now the best way to keep up-to-date with the latest changes. I don't plan on creating complete patches that often but I'll try to keep my changes in CVS. I've added some basic information on how to build with the CVS version on the "build instructions" page. For those that are interested in helping out with the active development please let me know so we can sort out the details. Since the initial patch I've committed two changes. The most interesting one is some fix-ups to the frame buffer (LCD) driver. Firstly the annoying flashes on startup are gone but even better the performance has increased dramatically (so much so that now with the intel MP3 player I'm no longer getting any play glitches!!). The second patch adds support for the scroll wheel (thanks to Chandan for sorting out the protocol!) and hold switch. I've also done some preliminary work (not in CVS yet) for sorting out the firewire controller. Sofar I can talk to the chip and see interrupts occuring so that at least is a start! That pretty much covers whats gone so far. For the next short while I plan on continuing with the firewire controller. If anyone has suggestions on how integrate things like the remote control or power management I'd be happy to hear them. cheers, bern. |
From: Chandan K. [home] <ch...@to...> - 2003-02-17 23:56:09
|
> Since the initial patch I've committed two changes. The most > interesting one is some fix-ups to the frame buffer (LCD) driver. > Firstly the annoying flashes on startup are gone but even better the > performance has increased dramatically (so much so that now with the > intel MP3 player I'm no longer getting any play glitches!!). The second This is great. I will immediately give it a spin ! > That pretty much covers whats gone so far. For the next short while I > plan on continuing with the firewire controller. If anyone has > suggestions on how integrate things like the remote control or power > management I'd be happy to hear them.Here is just a clue towards the power management. I made a small change to the reboot_to_diskmode(): > /* do special startup? */ > outl(0, 0x40017f10); > > /* reset */ > outl(inl(0xcf005030) | 0xb, 0xcf005030); And found that this caused the ipod to 'freeze'. It didnt respond to any key strokes. The LCD display froze at what was just displayed and CPU froze too. The only way to get out of this is the '2 finger salute' (menu + play for a few seconds). Not sure, but the this may be part of the power management. -Chandan |
From: Chandan K. [home] <ch...@to...> - 2003-02-18 02:31:01
|
Bernard, > Since the initial patch I've committed two changes. The most > interesting one is some fix-ups to the frame buffer (LCD) driver. > Firstly the annoying flashes on startup are gone but even better the > performance has increased dramatically (so much so that now with the > intel MP3 player I'm no longer getting any play glitches!!). The second The LCD performance is really fast, and the performance of the intel player is quite nice. But I see some tiny glitches occasionally. But importantly key-presses and scrolling the screen no longer breaks the song play which is a good news. Couple of questions: Whats the significance of the hardcoded addresses used as the buffer between the main CPU and the co-processor ? It is quite small in size, and I was wondering if making this bigger might help. I did try using a malloced buffer but the performance did not improve. Have you considered pushing the whole mp3 decoding onto the co-processor ? I noticed that if I load a chunk of mp3 into ram and feed it, there are no glitches whatsoever. This can be easily done if we offload the decoding onto the coproc. -Chandan |
From: Bernard L. <le...@bo...> - 2003-02-18 08:41:28
|
On Tue, 2003-02-18 at 00:55, Chandan Kudige [home] wrote: > > That pretty much covers whats gone so far. For the next short while I > > plan on continuing with the firewire controller. If anyone has > > suggestions on how integrate things like the remote control or power > > management I'd be happy to hear them. > Here is just a clue towards the power management. I made a small change to the > reboot_to_diskmode(): > > > /* do special startup? */ > > outl(0, 0x40017f10); > > > > /* reset */ > > outl(inl(0xcf005030) | 0xb, 0xcf005030); > > And found that this caused the ipod to 'freeze'. It didnt respond to any key strokes. The > LCD display froze at what was just displayed and CPU froze too. The only way to get out of > this is the '2 finger salute' (menu + play for a few seconds). Not sure, but the this > may be part of the power management. Hi Chandan, The write to 0x40017f10 needs to be a 1 to indicate that we want the booloader to start a particular image rather than just boot the default. As for the 0xcf005030 regster 0x400 resets the LCD 0x2 resets the coprocessor 0x4 resets the system 0xf3e0 probably resets a whole bunch of things I think the 0xcf005034 register is also a reset register but I've only seen 0x7 and 0x2 written there. Regarding the power management, I'm interested in finding out how linux drivers can contribute to reducing the overall power usage. This would be key to a successful firwmare! cheers, bern. |
From: Chandan K. [home] <ch...@to...> - 2003-02-25 17:23:23
|
I have been fiddling around with the intel mp3example code and with the latest changes fron Bernard, I can play most mp3 songs with as little as one or two skips. Some songs, however, have more skips but thats rare. I have started working on a simple shell to navigate filesystem and play mp3 files. It works quite decently and it can also log the songs played on to the hard-disk for future reference. Writing to the disk seems to be slow the first time, but after that there is not much perceptible delay. By creating directory heirarchy based on the album and artist tags and symbolic links to actual files, we can simulate the apple's firmware for navigating the songs. Playlists can be created by creating separate directories with symbolic links. There seems to be enough bandwidth for one screen update and handling couple of key strokes between each frame being decoded. This should be decent enough for most purposes. I also compiled the ffmpeg (http://ffmpeg.sf.net) decoder which mostly integer based (except for initial header parsing), but the performance is quite bad (80% real-time). So for now we have to stick with the intel's code which cannot be re-distributed. At this point I am interested in hearing feature requests for the firmware. I have a couple in mind: 1. Filesystem navigation 2. Playlist queuing 3. Tagging songs at runtime 4. Preserving runtime song information : order in which songs were played, play count for each song, number of minutes each song was played etc. can be very useful in managing and pruning huge song collection. 5. Resume across power-down 6. ID3 support I have also managed to display digital images (although at a much lower resolution) with some preprocessing with gimp (converting to 4 level grayscale). We can add this as an addition feature (photo album). Of course, no handheld is complete without atleast a few games (sokoban, tetris, bricks etc?) More advanced options would be: - bookmarking song positions - Firewire detach/attach without reboot (depends on the firewire driver code) - Automatic volume normalisation etc. Cheers, Chandan |
From: Bernard L. <le...@bo...> - 2003-03-03 11:33:52
|
Hi Chandan, A couple of comments. There is a newer version of the Intel libraries that may also provide some improvement. Last time I looked there was a 3.0 download but I couldnt install the thing as I dont have a RPM system (or the patience to stuff about with them). These libraries also have JPEG processing which could be quite cool. The other audio decoder option is madplay. I was using that originally but not getting very good performance. Andre (see the CC list) sent me some ARM performance patches which should help. Regarding the playlists etc have you looked at any of the existing Linux programs for processing the current iPod databases? I imagine a lot of Mac users would be quite happy to keep using iTunes to manage their stuff... cheers, bern. On Tue, 2003-02-25 at 18:23, Chandan Kudige [home] wrote: > I have been fiddling around with the intel mp3example code and with the > latest changes fron Bernard, I can play most mp3 songs with as little as > one or two skips. Some songs, however, have more skips but thats rare. > > I have started working on a simple shell to navigate filesystem and play > mp3 files. It works quite decently and it can also log the songs played > on to the hard-disk for future reference. Writing to the disk seems to > be slow the first time, but after that there is not much perceptible > delay. By creating directory heirarchy based on the album and artist > tags and symbolic links to actual files, we can simulate the apple's > firmware for navigating the songs. Playlists can be created by creating > separate directories with symbolic links. > > There seems to be enough bandwidth for one screen update and handling > couple of key strokes between each frame being decoded. This should be > decent enough for most purposes. > > I also compiled the ffmpeg (http://ffmpeg.sf.net) decoder which mostly > integer based (except for initial header parsing), but the performance > is quite bad (80% real-time). So for now we have to stick with the > intel's code which cannot be re-distributed. > > At this point I am interested in hearing feature requests for the > firmware. I have a couple in mind: > > 1. Filesystem navigation > 2. Playlist queuing > 3. Tagging songs at runtime > 4. Preserving runtime song information : order in which songs were > played, play count for each song, number of minutes each song was played > etc. can be very useful in managing and pruning huge song collection. > 5. Resume across power-down > 6. ID3 support > > I have also managed to display digital images (although at a much lower > resolution) with some preprocessing with gimp (converting to 4 level > grayscale). We can add this as an addition feature (photo album). > > Of course, no handheld is complete without atleast a few games (sokoban, > tetris, bricks etc?) > > More advanced options would be: > - bookmarking song positions > - Firewire detach/attach without reboot (depends on the firewire driver > code) > - Automatic volume normalisation etc. > > Cheers, > Chandan > > > |
From: Chandan K. [home] <ch...@to...> - 2003-03-03 12:48:29
|
Hi Bernard, > There is a newer version of the Intel libraries that may also provide > some improvement. Last time I looked there was a 3.0 download but I > couldnt install the thing as I dont have a RPM system (or the patience > to stuff about with them). These libraries also have JPEG processing > which could be quite cool. > I think I am using the 3.0 ... I did download the older version, but I installed the latest one in the end. The RPM has no dependency, so you can safely install it. It just puts in some files under /usr/local/ipp/ippsa111 > The other audio decoder option is madplay. I was using that originally > but not getting very good performance. Andre (see the CC list) sent me > some ARM performance patches which should help. > I also tried ffmpeg (which has always been known for its performance, and it has a integer only version too). But I have not seen/used ARM specific optimisations with ffmpeg. If you could please send me the ARM patches for madplay I will give it a shot. I think intel achieves the phenomenal performance by a lot of hand-optimisations. > Regarding the playlists etc have you looked at any of the existing Linux > programs for processing the current iPod databases? I imagine a lot of > Mac users would be quite happy to keep using iTunes to manage their > stuff... There is enough support for using iPod + iTunes with Linux. There is a scripting tool called gnupod ( http://sf.net/projects/gnupod), there is a iTunesDB library ipod ( http://ipod-on-linux.sf.net ). I do have a KDE/Qt program which supports iTunes format and adding/removing songs, creating and managing playlists etc (http://guipod.sf.net). We can continue to use it in our firmware, but also provide a foldermode to browse and play from folders directly. cheers, Chandan |