Rockbox Technical Forums

Rockbox Development => New Ports => Topic started by: SvendTorgersen on January 31, 2008, 10:16:03 AM

Title: Sony NW-A80X/NWZ-81X Port
Post by: SvendTorgersen on January 31, 2008, 10:16:03 AM
I have been looking into getting something else than Sony's firmware into this one, and it doesn't look impossible.

My reason, since I own the NW-A808, is to get support for MTP/UMS and hopefully Rockbox.

The players:
http://www.sony.co.uk/view/ShowProductCategory.action?site=odw_en_GB&category=NWS+A+Series

The players run on a modified Linux 2.6.10 kernel on a FAT filesystem, the kernel and the tools used for creating the old firmware kan be found here:
http://www.sony.net/Products/Linux/Download/NW-A808_NW-A808_S_NW-A806_NW-A805_20070829.html

The player service manual can be found here:
http://stashbox.org/62685/NW-A805.zip

This manual is overwhelmingly detailed given that it is a service manual and gives a lot of information about the players hardware.

I have used some hours digging up info about the components in the player:

CPU:
The CPU used is a NEC MP201which runs the filesystem. It actually consists of an ARM CPU, with a DSP and some more stuff in the same package.
http://www.necel.com/application_processor/en/product_mp201_3.html
http://forum.mp3store.pl/lofiversion/index.php?t20249.html

USB2.0 Host - Seiko Epson S1R72V17 :

I have requested more info from epson about this chip.
http://www.epson.jp/device/semicon_e/product/interface/index.htm


I have also collected data sheets about some other ICs in the player and downloaded the data sheets.

Does anyone know if it is impossible (or hard) to port Rockbox to this player, and if so, why?
I appreciate all feedback:)
Title: Re: Sony NW-A80X/NWZ-81X Port
Post by: LambdaCalculus on January 31, 2008, 10:26:10 AM
It's hard to say "hard" or "impossible" when it comes to starting a new port. What it takes is someone who owns the hardware, wants to start a port, and is willing to get their hands dirty.

Here's a page with some information that you should read: http://www.rockbox.org/twiki/bin/view/Main/NewPort

Since you're getting information on the device, that's an excellent start. But the best place for that info is the wiki. Start by going to the main page of the wiki and typing a page name in the search bar; in this case, try typing "SonyNWA808Port" into the bar. The wiki will say the page isn't found and ask if you want to create the page; choose yes. Then edit away at your new wiki page.

What to put on the wiki page? Images, info, datasheets (if you can!), and basically anything that'll help you start the port.

Good luck with this!
Title: Re: Sony NW-A80X/NWZ-81X Port
Post by: Halloway on February 03, 2008, 10:40:41 AM
As I am about to take delivery of a NWZ-A815 I thought I'd take some interest in this port.  I have to confess that I know very little about electronics although I have some experience with assembler and cracking software, (admittedly 15 years ago!).  So I am at the bottom of a long and very steep learning curve but I'll try and chip in where I can.  I am a technical author by trade so at least I might be able to produce a nice manual if nothing else...

I have been playing around with the NW-A80x firmware update application.  I have no idea if any of this is useful but I discovered the following information about the firmware update process:

Running the update application NW-A800_V1_03.exe causes a directory to be created: C:\Documents and Settings\peter\Local Settings\Temp\pft35E.tmp

This folder contains the following files:

Directory of C:\Documents and Settings\peter\Local Settings\Temp\pft35E.tmp

03/02/2008  15:13              .
03/02/2008  15:13              ..
10/01/2007  10:12           114,688 FWUpdater.exe
10/01/2007  10:12           110,592 FWUpdaterCom.dll
10/01/2007  10:12           114,688 FWUpdaterRes.dll
29/08/2005  18:52             2,998 license_cs.txt
29/08/2005  18:52             3,033 license_ct.txt
29/08/2005  18:52             5,939 license_en.txt
29/08/2005  18:52             6,397 license_fr.txt
29/08/2005  18:52             5,915 license_ge.txt
29/08/2005  18:52             6,493 license_it.txt
18/05/2006  15:22             3,470 license_jp.txt
29/08/2005  18:52             4,250 license_ko.txt
29/08/2005  18:52             5,865 license_sp.txt
18/05/2006  15:22             7,408 license_us.txt
04/09/2007  13:14             1,080 nwa80x.ini
04/09/2007  13:14               512 NW_A805-2G.PBR
04/09/2007  13:14               512 NW_A806-4G.PBR
04/09/2007  13:14               512 NW_A808-8G.PBR
04/09/2007  13:14        11,001,944 NW_A80X.UPG
              18 File(s)     11,396,296 bytes
               2 Dir(s)   2,186,571,776 bytes free

NW_A80X.UPG seems to be the actual data file used for the upgrade.  I have no idea whether it is encrypted or not, nor whether or not it is a complete firmware image.

NW_A80*.PBR contains device specific update data, including an error message and is referenced by nwa80x.ini.

nwa80x.ini contains the following data:
[PAC_FWUpdater]
Target=NW-A80X
Comment=NW-A80X Firmware Update

;
; NW-A805: 2G Bytes model
;
[DEVICE00]
DeviceName=NW-A805
ProductInfo=WALKMAN
ClassifyType=4
DevicePropertyProductInfo=NW-A805
SubIdentification=00000000
CommandType=0
Signature=dbmn
Version00=1.03
FWPackage00=NW_A80X.UPG
FWPackageWritePathName=\NW_A80X.UPG
StorageMediaFormatType=0
PBRFile=NW_A805-2G.PBR
Timer=1:40

;
; NW-A806: 4G Bytes model
;
[DEVICE01]
DeviceName=NW-A806
ProductInfo=WALKMAN
ClassifyType=4
DevicePropertyProductInfo=NW-A806
SubIdentification=00000000
CommandType=0
Signature=dbmn
Version00=1.03
FWPackage00=NW_A80X.UPG
FWPackageWritePathName=\NW_A80X.UPG
StorageMediaFormatType=0
PBRFile=NW_A806-4G.PBR
Timer=1:40

;
; NW-A808: 8G Bytes model
;
[DEVICE02]
DeviceName=NW-A808
ProductInfo=WALKMAN
ClassifyType=4
DevicePropertyProductInfo=NW-A808
SubIdentification=00000000
CommandType=0
Signature=dbmn
Version00=1.03
FWPackage00=NW_A80X.UPG
FWPackageWritePathName=\NW_A80X.UPG
StorageMediaFormatType=0
PBRFile=NW_A808-8G.PBR
Timer=1:40
-------------------------------------

Would it be worth trying to find out more about the firmware file?  Let me know if you want me to upload any of the files above to a common location.

Best regards,
Pete
Title: Re: Sony NW-A80X/NWZ-81X Port
Post by: SvendTorgersen on February 03, 2008, 04:43:20 PM
I'm happy for all you can do. Have been reading about the boot loader (u-boot 1.1.1) and still need to figure out how the firmware is upgraded, is it after the original linux kernel has booted up, or are firmware upgrades done through the boot loader. I've seen in one of the firmware files that mkdosfs is run, on what memory address does the FAT32 filesystem start? What is the memory adress of the linux kernel? I'd appreciate any info like that.

More info on the MP201 processor from NEC is especially needed, can't find documentation anywhere:)
Title: Re: Sony NW-A80X/NWZ-81X Port
Post by: Bagder on February 03, 2008, 04:49:36 PM
u-boot!

u-boot is GPL licensed, you should immediately ask Sony for the full source code they used to build it.

Of course there's also the remote possibility that they already provide the source...
Title: Re: Sony NW-A80X/NWZ-81X Port
Post by: shotofadds on February 03, 2008, 05:10:11 PM
I had a quick peek at the u-boot tar - it looks pretty complete, eg. there's some useful-looking stuff in the board/mp201 folder.
Title: Re: Sony NW-A80X/NWZ-81X Port
Post by: SvendTorgersen on February 04, 2008, 05:27:53 AM
I saw that too, but there is so much code to go through. I think the most ideal would be to leave the boot loader alone after we know how it works and then try to create some kind of "Hello World" firmware as a proof of concept. That way we wouldn't risk to destroy the player.

I also see a lot of references to ICX1087, which I can't find anything about except this link:
http://translate.google.com/translate?u=http%3A%2F%2Fblog.so-net.ne.jp%2Fbrologue%2F2007-04-15&langpair=ja%7Cen&hl=en&ie=UTF8

When looking through the code, it seems that ICX1087 is the name Sony has defined for their system (Maybe a MP201 with some Sony modifications. A Google search on 'ICX Sony' gives a lot of Sony semiconductor components results.

I'm not too into low-level programming like this yet, so it takes some time for me to understand what the different things are doing in the boot loader:)
Title: Re: Sony NW-A80X/NWZ-81X Port
Post by: SvendTorgersen on February 04, 2008, 08:39:38 AM
I'm having a hard time finding a free toolchain for crosscompiling for the ARM926EJ-S(ARM9E/ARMv5TEJ). The makefile from Sony runs arm_v5t_le-gcc from MontaVista, but this costs money.

I see that Scratchbox and ELDK has toolchains which support ARM architectures, don't know if they support the configuration needed to build anything for this exact cpu. Anyone tried one of these?
Title: Re: Sony NW-A80X/NWZ-81X Port
Post by: Bagder on February 04, 2008, 08:51:59 AM
That's just plain gcc, you can build your own. In fact, the one you get with Rockbox' rockboxdev.sh script should be good enough for both u-boot and Linux as none of them use libc (afair).
Title: Re: Sony NW-A80X/NWZ-81X Port
Post by: kugel. on August 31, 2008, 07:41:12 PM
When looking through the code, it seems that ICX1087 is the name Sony has defined for their system (Maybe a MP201 with some Sony modifications. A Google search on 'ICX Sony' gives a lot of Sony semiconductor components results.
ICX1087 has something to do with the USB.

icx1087_usb_epson.c -- ICX1087 USB helper - this file can be found in the drivers/usb/gadgets dir of the linux kernel source Sony provided, and it's not in the plain 2.6.10 kernel, so Sony added it.

The SoC package is called MC-10051F1-FAE-A, and it's indeed based off the Nec MP-201, which includes a ARM926EJ-S CPU.

Edit: I've looked through the source code a bit more, and the arch/arm/mach-mp200 directory looks very promising. There are many drivers, e.g. LCD.

Also, the A810 and the A800 series seems to be entirely the same hardwarewise.

I'm thinking of getting such a device and start hacking.

Edit2: I've uploaded the diffs of the u-boot and linux kernel sources here: http://www.alice-dsl.net/simonemartitz/rockbox/sony-sources-diff.7z

Edit3: Well, my decision for a new player was in favor for a 4GB Fuze, as it seems I'd be alone with this port, and I don't want to be alone on my first port ;) Anyway, this Sony player has a lot of potential IMHO.
Title: Re: Sony NW-A80X/NWZ-81X Port
Post by: Tanzbär on January 25, 2009, 10:57:29 AM
I own a Sony-NWZ-S516, very similar to the A810 and A800 series, but without video function, and I would really like to participate in a port. The bad thing is, I am neither a good programmer nor do I know anything about electronics.
The Source code for many parts of the firmware can be found here:
http://www.sony.net/Products/Linux/Download/NWZ-S615F_NWZ-S616F_NWZ-S618F_NWZ-S515_NWZ-S516_NWZ-A815_NWZ-A816_NWZ-A818.html
I know nobody will port Rockbox to this device only for me , but I just wanted to show my personal interest in a port. The Sony players have great sound quality and battery lifetimes, with Rockbox they would beat everything ;).
Title: Re: Sony NW-A80X/NWZ-81X Port
Post by: Fullmetal99012 on March 07, 2010, 10:54:41 PM
I just started a port page for the NWZ-A728, which is similar to the A80x, without the bluetooth.  You can head over there http://www.rockbox.org/wiki/WalkmanNwzA728Port, and read up on what I have right now. If you want to send me more information, PCB scans, detailed specs, etc, send me an email @ cybeastfalzar99@yahoo.com.
Title: Re: Sony NW-A80X/NWZ-81X Port
Post by: saratoga on March 07, 2010, 11:05:12 PM
I just started a port page for the NWZ-A728, which is similar to the A80x, without the bluetooth.  You can head over there http://www.rockbox.org/wiki/WalkmanNwzA728Port, and read up on what I have right now. If you want to send me more information, PCB scans, detailed specs, etc, send me an email @ cybeastfalzar99@yahoo.com.

You should probably begin by taking apart your player and identifying the components.   Thats really the most useful thing.  The rest of the information currently on the wiki is basically irrelevant since it concerns the retail firmware, not the actual hardware.