Rockbox Technical Forums
Rockbox Development => New Ports => Topic started by: nexxyz on April 23, 2007, 09:26:58 AM
-
Hi!
I've used Rockbox on my iRiver H340 for a while now and love it!
I recently ordered a Meizu M6 "miniplayer".
http://en.meizu.com/product_m6.asp
Of course "What about Rockbox? I would love to stick with it!" came to mind.
Searching for the player I found the following thread (has been locked):
http://forums.rockbox.org/index.php?topic=7430.0
It apparently contains a link to a pic of the innards of the M6:
http://my.opera.com/inokia/albums/showpic.dml?album=83493&picture=1088876
It also contains an outdated link to a page that supposedly states that the CPU is the same as in the iRiver E10, which is also mentioned in this thread:
http://forums.rockbox.org/index.php?topic=4291.0
I'd really like to see a port to the Meizu M6 happen, and would be more than willing to actively work on it and do some heavy time investment, as well as limited money investment (for development players etc.) as soon as I am convinced we have a team that can indeed tackle the problem at hand, and have enough info about the hardware, or at least rather reliable methods of obtaining this info.
I would consider myself an average programmer, and have never participated in anything like this before, so more experienced members would most definitely be needed to see this port through. I have coded a bit for the Nintendo DS, but nothing big (yet). I would see such a project as a possibility to enhance Rockbox compatibility, and of course, to have fun and learn a lot at the same time.
If you are interested in working on such a port project, I would be quite happy to hear from you!
-
As usual, start with reading the NewPort wiki page as it gives a good overview of what you need to go through to make a new port a reality.
-
a better place to ask for help would be a Meizu forum I think
Here's a little bit of information on the CPU in the M6:
http://www.rockbox.org/twiki/bin/view/Main/SamsungSA58
-
Thanks for the tips!
I read the New Ports FAQ/wiki page, of course, and am going to look around the Meizu forums, but first I wanted to check if there are any Rockbox enthusiasts around that would be interested in such a project, since I guess if there aren't any, I might as well drop the issue altogether...
-
The key is finding anyone to work on it, they don't have to be Rockbox programmers beforehand. And the most likely people are owners of the player. It really doesn't matter if "Rockbox enthusiasts" are interested in it or not, in the end.
-
I can assure you that there will be a team of Rockbox hackers ready to welcome your port and to help and guide you through it. For the actual hands-on hacking you of course need to own the device the port is made for.
-
Thanks a lot for the info, I also posted in the Meizu M6 Rockbox thread at meizume.com:
http://www.meizume.com/showthread.php?t=1371&page=2
As for Rockbox hackers helping but needing the hardware: I imagine the player will become more widely available in the near future, as it seems to get pretty popular...and as I said, I am willing to invest time and a bit of money, so once the basics are cleared, and we've got the people together and know it is possible to do the port with acceptable quality we will see where necessary players for development might come from for the interested skilled people who cannot afford them.
EDIT:
Found a nice photo series including disassembly:
http://www.soomal.com/gb/001/007/00000091.htm
-
This topic has died?
What adout port to M6?
PS: Sorry for my bad english ::)
-
It seems so...
Afer asking around the Meizu community, I got the impression that there is not really much demand aside from myself for such a port.
The original firmware is not great (heck, it doesn't even play back some mp3s correctly!), but I have decided I can live with it for now.
However, my statements above still hold true should someone start a port or convince me otherwise on the point of demand.
-
well i dont think that miniplayer users wont like rockbox on theire players ;) if you visit en.meizu.com or meizume.com forums you will see how many people want rockbox.......
-
so guys! i had just bought the miniplayer sp 8gb! its cool.i could help to make the frimware. lets start!
p.s i can dissembly the player to :P
i thins we should start from writing a wiki page?
-
so guys! i had just bought the miniplayer sp 8gb! its cool.i could help to make the frimware. lets start!
p.s i can dissembly the player to :P
i thins we should start from writing a wiki page?
Here are some pointers:
http://www.rockbox.org/twiki/bin/view/Main/NewPort
Good luck!
-
http://www.rockbox.org/twiki/bin/view/Main/MeizuM6Port this is the wiki page dress now we need to add information here!how should i do this? ???
-
Just copying all the info from another wiki page is not really useful. I replaced it by a mostly empty skeleton.
-
thanks
here are some nice pictures of meizu inside
http://player.ru/talk/showthread.php?t=26017&page=4
http://www.soomal.com/gb/001/007/00000091.htm
here are steps for upgraiding the frimware
http://en.meizu.com/userforum/forum_posts.asp?TID=363
the information is added.finding new......
What are our second steps in development?
-
I made some changes to the wiki and found out how to decrypt the original firmware (the code is in a rar archive which is in the firmware file after the first 8KB)
-
so here is this binary http://stream.ifolder.ru/5471399 it is SDRAM_image.bin 1.23 mb .bin file.what shall we do next?
-
so here is this binary http://stream.ifolder.ru/5471399 it is SDRAM_image.bin 1.23 mb .bin file.what shall we do next?
I didn't post that file anywhere because I wasn't sure if it was a copyright violation (maybe not since it's part of the firmware update which is downloadable for free)
I've disassembled the file to try and find out more about the hardware. It can be quite a lot of work, especially if you are new to (ARM) assembly language.
Also, is there some kind of rescue mode? If this file gets written to flash memory it would be quite easy to accidentally destroy your player...
-
markun, yes there is a way to rescue the player.if when it is connected to the computer and computer dont identify it than you should youse dfu tools http://www.meizume.com/miniplayer-m6-sl/18-dfu-tools.html yes the file is getting written in the flash memory as i understand.I have absoulutly no idea hoe to use (ARM) assembly language.i am an absolout beginner in it.so what should we do now?so have you knowen anything new about the hardware after dissemblying the file?what should be the result of it?
-
I want to see the rockbox on my m6. What must I do? How can I help you?
-
Hi all. I'm can help you too :D
------------------------------------------
sorry for my bad english
-
FraL and dimap, start by reading this:
http://www.rockbox.org/twiki/bin/view/Main/NewPort
One way you can also help is by testing the build as it progresses; i.e. compile and run it on your Meizus and report back with results.
-
One way you can also help is by testing the build as it progresses; i.e. compile and run it on your Meizus and report back with results.
That's not going to be for a while though - since there's currently nothing to run at all.
-
we are working and trying to find out more about (ARM) assembly language.bot noone understands it.so we need just to wait when markun will find out something new from that code ::)
-
There are more than a few of the devs who have a very good working knowledge of ARM assembly code, they're just not working on this port :)
-
so only markun is the person who can help us with that code?
thats saddens me but we hope that he will help us :-\
-
I don't have a Meizu M6 and no plans to buy one, so it would be better to ask for help from existing meizu owners. Here for example:
http://en.meizu.com/userforum/default.asp
-
markun, you said that you disassembled the file to try and find out more about the hardware.as i understand there is no use to have player to read asm language. do you understand this language? if yes could you just tell us something about players hardware e.g?
EDIT:
here is some information about the CPU http://www.samsung.com/global/business/semiconductor/productInfo.do?fmly_id=212&partnum=SA58700
hope it helps
oh i see its not a data sheet.it must be here but i cant download it http://www.samsung.com/Products/Semiconductor/DivisionPolicy/Ecoproduct/Eco_search/eco_popup.asp?partnumber=SA58700X07-Y080
-
Yes, we've found that webpage before (but Samsung keeps changing the URL's). Unfortunately I also didn't find any datasheet. Maybe the various components (USB, RTC etc) work the same as in some other samsung chips for which we do have datasheets.
EDIT:
I think I've found a nice deal for a Meizu M6 (82 euro for the 8GB version) and will probably buy one next week :)
EDIT:
I just ordered it!
-
thanks markun! hope you will help us with poring then)))
i asked the samsung suport and the ill send me the data shee via email!
hope you wil enjoy it. you ordered meizu m6 sl or just meizu m6?
markun please give us a link of te disassembeled frimware
-
marcun orderes sp version. but if you have sl/tp its not critical.
here are our feautering steps here is this .asm disassembeled file http://rapidshare.com/files/95942827/SDRAM_image.asm.bz2.html
we need just to read that code and we need to identefy all the parts in the assebly code where the hardware is accessed and than we can try to figure out how all the separate parts work
-
anyone know how to calculate adresses of rom, ram etc?
-
markun said that sdram_image.bin is not a ROM filesystem. and what do you want to do?
-
its a rom code i think
-
hm.... i dont know.... i will search...
here is the data sheet of the Audio Codec http://beta.octopart.com/Philips__UDA1380HN-T__0.pdf
we need to find the data sheets for all parts of players hardware
-
Flash Memory Hynix:
http://www.hynix.com/datasheet/pdf/f...20(Rev0.4).pdf
Audio Codec - Philips UDA1380:
http://www.datasheetsite.com/extpdf....FUDA1380_3.pdf
http://www.datasheetsite.com/extpdf....FUDA1380_4.pdf
FM Radio - Sanyo LV24000:
http://blog.ednchina.com/Upload/Blog...bd3f47fdc2.pdf
-
Well, the code doesn't seem to be protected. Now you should try to compile the rockbox source to ARMB. I'm not sure exactly how it works, but you'll need to identify the RAM address, Flash address, MP3 chip address, screen address and so on. Basically, probe around.
-
how we should compile the rockbox source to ARMB?
how can we identify the RAM address, Flash address, MP3 chip address, screen address and so on?
i know that we need to have specs of all players hardware. we have it except the main- players CPU. i am waiting while the samsung support will send me it...
-
markun, is this the data sheet? http://www.meizu.com/bbs/UploadFile/2006-8/200681513423578669.rar
i edited on the wiki page that scheme http://img223.imageshack.us/my.php?image=0003545841wv3.jpg
-
No it is not a datasheet
-
yes its not a data sheet but there is quite useful information inside
-
vcf: please stop double posting. If you want to post something and the last post is yours just edit it.
... you'll need to identify the RAM address, Flash address, MP3 chip address, screen address and so on.
There is no MP3 chip inside, is there? Are you talking about the DAC?
-
markun, our player has SA58700 that meens our player has audio codec. propably the sdram controller was pictured like it.
p.s the samsung support answered me thatthey ont have the data sheet. but they sais were can we reach it. so i will try.
here are some more parts of players hardware with specs
sensor
data sheet http://w3.tue.nl/fileadmin/id/objects/E-Atelier/Phidgets/Hardware/Datasheets/1015_-_DatasheetQT411.pdf
here is some intersting info about the sensor
http://www.terraelectronica.ru/news_postup.php?ID=1102
in the end there is a interesting scheme
one more link about the sensor http://www.seminews.ru/sensors/141.html
-
There is many interesting code in SST39VF800.dfu, eq. interrupts code.
-
There is many interesting code in SST39VF800.dfu, eq. interrupts code.
Indeed. I disassembled it yesterday. Because of the "Thumb only" error message in there I thought there would have been some Thumb code, but it's all normal ARM so far. I guess the SST39VF800 is the 1MB NOR flash included in the SA58700 (http://www.rockbox.org/twiki/bin/view/Main/SamsungSA58#SA58700), what do you think?
Right now I don't really have a lot of time to analyze the disassembled files. Are you trying to figure out some register addresses etc?
btw, With DFU-Util (http://wiki.openmoko.org/wiki/Dfu-util) from OpenMoko it could be possible to run code from SDRAM without flashing it, that would be really useful for development. Hopefully it works.
EDIT: just looked at the code in Blues_MSC.bin file from the dfu tools and it's very similar to the firmware updates.
-
dfu tools don't working with my m6 :(
(i have tried this 2-3 mounth ago on gentoo)
NAND? yes i think so too because:
SST39VF800-90-4C-EK - 8 Megabit (512K x 16-Bit) Multi-Purpose Flash - Silicon Storage Technology, Inc
(i got it here http://www.alldatasheet.com/datasheet-pdf/pdf/123304/SST/SST39VF800-90-4C-EK.html, datasheet avialible too)
EDIT:
okay, dfu-util works, but no usable information here :(
[r1ka@FUNT ~]$ dfu-util --list
dfu-util - (C) 2007 by OpenMoko Inc.
This program is Free Software and has ABSOLUTELY NO WARRANTY
Found Runtime: [0x0a5c:0x2100] devnum=0, cfg=0, intf=3, alt=0, name="UNDEFINED"
Found DFU: [0x0419:0x0141] devnum=0, cfg=0, intf=0, alt=0, name="UNDEFINED"
hint: Runtime at 0x0a5c:0x2100 is a my bluetooth dongle
-
please add to http://www.rockbox.org/twiki/bin/view/Main/SamsungSA58 that info about codenames:
Just create your own wiki account, then you can add it yourself.
... and SA58700 (this is a SA58700 + Audio codec WM8731L) - codename "Blues"
I really don't understand why Meizu added a UDA1380 if their SA58700 contains a WM8731.. do you?
EDIT: Also, this site doesn't mention the WM8731L
http://www.samsung.com/global/business/semiconductor/productInfo.do?fmly_id=212&partnum=SA58700
EDIT: I stated a wiki page to write down the info I gather from disassembling the firmware: http://www.rockbox.org/twiki/bin/view/Main/MeizuReverseEngineering
Feel free to help out
-
please add to http://www.rockbox.org/twiki/bin/view/Main/SamsungSA58 that info about codenames:
Just create your own wiki account, then you can add it yourself.
... and SA58700 (this is a SA58700 + Audio codec WM8731L) - codename "Blues"
I really don't understand why Meizu added a UDA1380 if their SA58700 contains a WM8731.. do you?
EDIT: Also, this site doesn't mention the WM8731L
http://www.samsung.com/global/business/semiconductor/productInfo.do?fmly_id=212&partnum=SA58700
EDIT: I stated a wiki page to write down the info I gather from disassembling the firmware: http://www.rockbox.org/twiki/bin/view/Main/MeizuReverseEngineering
Feel free to help out
As I know, SA58700 of M6 does not include the Audio codec WM8731L, because this is a special chip for M6. The ceo of Meizu said he demanded Samsung to remove Audio codec.
M6 SL changed the FM Chip from Sanyo LV24000 to Philips TEA5760.
I have some pictures of M6 SL
-
FM chip and power management chip (LTC3455) for M6 SL
-
sdram and sensor for M6 SL.
There are 4 versions for M6. They are T1, TP, SP, SL(Ordered by production time).
I bought a T1 (first version) at the end of 2006.
This version has some problems of hardware design such as bad FM effect and sensor out of control. So Meizu changed sensor chip and circuit design since TP version.(From QT411 to QT1106)
There are also differents from their TFT screen.
T1 and TP have a Toshiba TFT screen (I think this screen is better than SP's and SL's.)
SP and SL have a Samsung TFT screen, but the screen of SL is lighter than SP's.
Sanyo FM chip is not good so Meizu changed it since SL version and M3 (mini card)
-
Below is a list of the hardware for 4 versions
T1:
* CPU - ARM 940T based SoC Samsung SA58700
* SDRAM - Samsung K4M28163PH (16MB)
* Flash Memory - Samsung (Sometimes by Hynix) (SLC Type)
* Audio Codec - Philips UDA1380HN (380HN F0458 TPG5452)
* FM Radio - Sanyo LV24000
* Sensor - QUANTUM QT411
* Power Management - LTC3455 (http://www.linear.com/pc/productDetail.jsp?navId=H0,C1,C1003,C1037,C1773,P2447)
* TFT Screen - Toshiba
TP:
* CPU - ARM 940T based SoC Samsung SA58700
* SDRAM - Samsung K4M28163PH (16MB)
* Flash Memory - Samsung (Sometimes by Hynix) (SLC Type)
* Audio Codec - Philips UDA1380HN (380HN F0458 TPG5452)
* FM Radio - Sanyo LV24000
* Sensor - QUANTUM QT411
* Power Management - LTC3455
* TFT Screen - Toshiba
SP:
* CPU - ARM 940T based SoC Samsung SA58700
* SDRAM - Samsung K4M28163PH (16MB)
* Flash Memory - Samsung (Sometimes by Hynix) (MLC Type)
* Audio Codec - Philips UDA1380HN (380HN F0458 TPG5452)
* FM Radio - Sanyo LV24000
* Sensor - QUANTUM QT411
* Power Management - LTC3455
* TFT Screen - Samsung
SL:
* CPU - ARM 940T based SoC Samsung SA58700
* SDRAM - Samsung K4M28163PH (16MB)
* Flash Memory - Samsung (Sometimes by Hynix) (MLC Type)
* Audio Codec - WM8987
* FM Radio - Philips TEA5760
* Sensor - QUANTUM QT1106
* Power Management - LTC3455
* TFT Screen - Samsung
-
good work! thanks! do you have sp or tp or sl? where do you come from? what knowledge do you have?
-
good work! thanks! do you have sp or tp or sl? where do you come from? what knowledge do you have?
I come from China. :D
I used to have a T1 but now I have an SL.
Meizu hold an activity last year that users having T1 or TP can change their mp3 to the latest SL version. I participated in that activity.
-
ok! could you edit this info in wiki? just registrate your wiki name if you havent got one yet.
-
I just registered a wiki account, but I haven't recieved the active email.
My wiki name is QianZheng. Who can help me to active my wiki account?
-
sotux, you 100% sure about sensors in all 4 models?
-
Sorry. I made a mistake about the sensor chip. I've corrected it.
Only SL uses QT1106 and others use QT411.
-
okay, i small edit your post and added it to wiki, hope no more mistakes here :)
EDIT: sotux or anybody else, have you a M6 scematics with points where we can connect and start use jtag? (it maybe called as test points or debug interface or something similar)
-
EDIT: sotux or anybody else, have you a M6 scematics with points where we can connect and start use jtag? (it maybe called as test points or debug interface or something similar)
Oh, I don't know about it. I'm not familiar with embedded system development.
-
sotux you could also join the discussion of rockbox on meizume http://www.meizume.com/firmware/5567-rockbox-project-m6-11.html#post57270
there is a progess by kgb2008 on meizume!
-
sotux you could also join the discussion of rockbox on meizume
... but the second you take the discussion to another site/forum, you lose all the existing thousands of rockbox hackers that come here and that can actually provide help and input.
-
we cant get the data sheet so their is a Meizu Reverse Engineering page created on wiki. if you have any info about it please add it to the wiki page http://www.rockbox.org/twiki/bin/view/Main/MeizuReverseEngineering
good luck
-
finally i have got the data sheet of the cpu! thanks to chinease support! ;D
here is this data sheet http://rapidshare.com/files/101234522/S5L8700X-DS.pdf.html
-
Rockbox rules!!! I've installed it on a friend's H340 3 or 4 years ago... As soon as I bought the Meizu, I've hope rockbox will be ported on it... It's like a dream that's coming true!!! I'm can help you on ARM9 language, but maybe if you need some help coding c or whatever else you need, I might help you (not sure if I quite good to do this but I really would to help making this a reality).
Actually, I look for buying a 1GB meizu in order to help with test and beta version when first ports came...
If you rockbox guys see another way which I could you, let me know !!!
LTourist
(also posted on meizume forum)
-
Thats great! Ofcourse you can help us. Right now we found the data sheet of the CPU. We need to try to run some simple code on the player.If you have questions you can ask them here or on meizume
Thanks
-
How do you proceed to run custom code on this target? I mean, is there a recovery mode that lets you go back in case you put some disaster code on it?
-
Ofourse there is. Check out http://www.rockbox.org/twiki/bin/view/Main/MeizuM6Port#Recovery_mode
So we can alive our player after if the code is bad
-
I still look for a cheap meizu, but obviously, I can't find one. I'm not afraid about flashing mine because we have DFU tool, but I use my M6 every day... Does DFU tool erase just the flash where firmware is, or the whole flash player (including music, etc)???
I don't have any ability in assembler coding, but like I said, maybe I can help you when c code will run on meizu :)
LTourist
-
DFU toll eraises everything. but you can save i copy of all your data on you pc, cant you? :) Markun made a to do list http://130.89.160.166/rockbox/meizu-todo.txt
LTourist if you know c than you could write drivers for lcd, buttons etc. check the to do list http://130.89.160.166/rockbox/meizu-todo.txt the drivers should mostly be writtrn in c and seldom in assembler. here are some pointers about how to write a driver http://www.rockbox.org/twiki/bin/view/Main/SimpleGuideToCompiling
good luck
I edited the post to stop my terrible double posting ;D
-
Great work, I was hoping to see a port on the m6. Is there a reason, why there is no info about the TP version on the reverse engineering page, or is it just, that the SP and the TP are so similar? I don't really have knowledge in ARM assembly, or embedded development, but If you need any testing to be done on a TP, I would be happy to help. Also, i have experience in C coding, if that can be of use... Keep up the good work!
-
yes tp and sp are very simmilar. if you know c than whatch my previous post. you can help us in writing drivers
-
Rockbox is now being devloped. Here is a small to do list http://130.89.160.166/rockbox/meizu-todo.txt
-
you guys are amazing.
M6 is pretty popular in China, I'm really looking forward to the port to M6
I know c/c++ and have one M6 SP, so if you need any help plz feel free to contact me :)
-
eulb ofcourse! check the to do list in ma previous post. vou can write drivers as thev need knoladge of c! check out the meizume forum too! there are some pointers about howthe driversshould be written etc.
markun, could you often update the to do list? Because there are many people coming especially on the rockbox forums and i dont know what is already done and what is not.just mark things which are dne with ''done''. Because you work with guys like bagder geavarts A-4. So you knw better ;)
-
Hi vcf
I checked the forum of meizume but didnt find the threads you mentioned, could you give me the URL of them?
regards
-
These are all the rockbox related threads over there:
http://www.meizume.com/rockbox/
-
Here is a data sheet of S6D0154 http://rapidshare.com/files/105062097/S6D0154X_Data_Sheet_Rev1.10.pdf.html
Thats really great that more and more developers ape picking up m6's. The project is getting bigger and bigger
how do we test the code on players?is this code one for m6sl and m6?
-
建议rockbox推出ä¸æ–‡ç½‘站啊
都是英è¯åˆå¦è€…
ä¸ç„¶ä¸å›½æœ‹å‹å¾ˆè¿·èŒ«å•Šï¼
[EDIT: Translation to English (courtesy of google):]
Rockbox proposed launch Chinese website ah
Are English learners
Otherwise Chinese friends are confused ah!
[end of edit]
-
[Better translation, courtesy of a Chinese speaking Rockbox user ;)]
I recommend that rockbox creates a chinese web-site
our english is very basic
without a chinese site, it'd be difficult for chinese fans to understand the content
-
saab_rider:
A bit of a cheeky request - any chance you/your friend could PM the original poster and explain that Rockbox is written by volunteers in their spare time, and it would need a chinese speaking volunteer to invest a very large amount of time to keep a translation up to date.
-
Hey guys, I've reimplemented the DFU tool on Linux. Currently M3, M6 TP and M6 SP are supported. I hope this would help development, since some developers don't have access to Windows.
Get it from http://www.rockbox.org/twiki/bin/view/Main/MeizuM6Port
-
Hey guys, I've reimplemented the DFU tool on Linux.
Whoa, you rock!
-
Currently M3, M6 TP and M6 SP are supported.
Now also the M6 SL
-
I've finally managed to get the backlight toggling code running on my m6sl.
Compile the m6sl bootloader, and run
meizu_dfu m6sl rockboot.ebn rockboot.ebn
(the second rockboot.ebn doesn't matter, but meizu_dfu wants two files)
-
thats great news! could you explain more how to comile the m6sl bootloader? it must be done in linux? how to run this code meizu_dfu m6sl rockboot.ebn rockboot.ebn ? i understand that my questions are silly but if you'd give more instructions we could start testing the code on every model (sp, tp, t1). and we wilb be able to test furthere codes as well
-
could you explain more how to comile the m6sl bootloader? it must be done in linux?
Just build it as you build any bootloader.
how to run this code meizu_dfu m6sl rockboot.ebn rockboot.ebn ?
meizu_dfu is in utils/. Compile it
Then run the command as I said.
(I'm not sure if it works in windows)
-
Thanks to gevaerts, I've also been able to run the test code on my M3.
1. Press and hold M.
2. Press and hold Play.
3. Plug it in.
4. Release Play.
5. Run "meizu_dfu m3 rockboot.ebn rockboot.ebn".
6. When it says "Clearing status...", release the M button.
7. Play around! Pressing the Play button will toggle the backlight.
8. When you're done (or bored), unplug the device. Nothing will be written on the device, so no data will be lost (legally, I don't guarantee this though).
The above procedure should be the same for M6 TP and M6 SP (just replace "m3" in the command with "m6").
-
The new version doesn't turn off anymore on unplugging (at least on m6sl, most probably on m3, unsure about the others).
To make it easy to handle, it now turns off after pressing Play 20 times (it tells you this by toggling the backlight quickly a few times before turning off)
-
The current svn version manages to read the touchpad.
The "keep powered on after unplugging" is disabled for now, so you have to keep the usb cable plugged in while testing.
-
r18531 talks to the LCD controller, although it doesn't say much yet.
The current code reads the LCD controller ID and flashes it using the backlight.
-
fine. does it work only on sl?
do you know if someone tried on sp?
and nothing is writed on the player, yes? so no info will be lost? i saw that only on first version of code where it worked only with pluged in usb
-
fine. does it work only on sl?
do you know if someone tried on sp?
This works on sl, yes.
It won't work as such on the SP. The GPIO pins for LCD communication are different. I don't know about M3.
and nothing is writed on the player, yes? so no info will be lost? i saw that only on first version of code where it worked only with pluged in usb
This is still RAM only, yes, although it is possible to flash it if you really want.
-
I don't know about M3.
It won't work on the M3. The M3 has the LCD connected to the LCD interface in the SoC, and the picture is sent out with dma from memory to the LCD IF. Actually I was able to draw something on the M3's lcd with programmed io, but the code in question is not bulletproof yet.
btw awesome work with the meizu_dfu tool - I am using linux too, so it's a great help - thanks wpyh and gevaerts.
-
Yesterday I added separate ports for the M6SP Aand M3, I hope that will make it easier to work on those targets.
Actually I was able to draw something on the M3's lcd with programmed io, but the code in question is not bulletproof yet.
That's great! Do you want to come on IRC from time to time to talk about the progress and things you've figured out?
-
A bit more progress on the m3, nearly fully thanks to denes:
(http://files.hostname.be/m3.jpg)
Edit: Now the colours are correct!
-
cool! why where the colours not correct on the first picture? i've heard you've got SP and M3 too.so what about SP's lcd? we have full sp schematics http://www.meizume.com/attachments/rockbox/2005d1206010842-schematic-m6sp-m-p-v7.rar (by kgb2008)
-
Hi.
I'm a new user of meizu m3 and I'm very interested in porting rockbox to this device.
I have some experience in coding, reverse engineering and electronics.
If anyone detalized me current status of the port and problems to be solved I would join the project for sure.
-
Okay, I've found the port status page :)
So how can I help?
-
So. Today instead of doing some work for university I decided to mess with my M6SP and you're progress so far (see if my little skills in coding could contribute a thing). But I wasn't able to get the DFU mode to work.
So first of all there seems to be two different methods: Press Power and M or press M and Play.
If I press Power and M, plug in the usb connection and run meizu_dfu M6 M6.ebn M6.ebn it stops at USB initialization, takes some time to state later, that it couldn't find a device. During that time lsusb will give no output either.
Same procedure with Play and M: meizu_dfu takes no time on USB initalization and skips immediately to "No device found".
What am I doing wrong? My host system is a plain Ubuntu 8.06 - any reasons there maybe?
-
i can't figure out how to compile the testcode for the m6... can anyone help me out?
this is what i tried:
lucas@lucas-desktop:~/meizu_dfu/rockbox/build$ ../tools/configure
Enter target platform:
==Archos== ==iriver== ==Apple iPod==
0) Player/Studio 10) H120/H140 20) Color/Photo
1) Recorder 11) H320/H340 21) Nano
2) FM Recorder 12) iHP-100/110/115 22) Video
3) Recorder v2 13) iFP-790 23) 3G
4) Ondio SP 14) H10 20Gb 24) 4G Grayscale
5) Ondio FM 15) H10 5/6Gb 25) Mini 1G
6) AV300 26) Mini 2G
==Toshiba== 27) 1G, 2G
40) Gigabeat F
==iAudio== 41) Gigabeat S ==SanDisk==
30) X5/X5V/X5L 50) Sansa e200
31) M5/M5L ==Tatung== 51) Sansa e200R
32) 7 60) Elio TPJ-1022 52) Sansa c200
33) Cowon D2 53) Sansa m200
34) M3/M3L ==Olympus== 54) Sansa c100
70) M:Robe 500 55) Sansa Clip
==Creative== 71) M:Robe 100 56) Sansa e200v2
90) Zen Vision:M 30GB 57) Sansa m200v4
91) Zen Vision:M 60GB ==Philips== 58) Sansa Fuze
92) Zen Vision 100) GoGear SA9200
101) GoGear HDD1630 ==Logik==
==Onda== 80) DAX 1GB MP3/DAB
120) VX747 ==Meizu==
121) VX767 110) M6SL
111) M6SP
112) M3
110
Platform set to meizum6sl
Build (N)ormal, (A)dvanced, (S)imulator, (B)ootloader, (M)anual: (Defaults to N)
B
Bootloader build selected
Using source code root directory: /home/lucas/meizu_dfu/rockbox
Using arm-elf-gcc 4.0.3 (400)
Using arm-elf-ld 2.16.1
Created Makefile
lucas@lucas-desktop:~/meizu_dfu/rockbox/build$ make clean
Cleaning build directory
lucas@lucas-desktop:~/meizu_dfu/rockbox/build$ make
make[1]: `rdf2binary' is up to date.
make[1]: `convbdf' is up to date.
make[1]: `codepages' is up to date.
make[1]: `bmp2rb' is up to date.
Create sysfont.h
CC ata_idle_notify.c
CC events.c
CC backlight.c
CC buffer.c
CC powermgmt.c
CC system.c
CC usb.c
CC kernel.c
CC rolo.c
rolo.c: In function ‘rolo_load’:
rolo.c:202: warning: unused variable ‘i’
CC thread.c
thread.c:795:6: warning: #warning core_sleep not implemented, battery life will be decreased
CC timer.c
timer.c: In function ‘timer_set’:
timer.c:253: warning: implicit declaration of function ‘__TIMER_SET’
timer.c: In function ‘timer_register’:
timer.c:326: warning: implicit declaration of function ‘__TIMER_REGISTER’
CC panic.c
CC debug.c
CC common/atoi.c
CC common/crc32.c
CC common/ctype.c
CC common/dir_uncached.c
CC common/file.c
CC common/disk.c
CC common/errno.c
CC common/memcmp.c
CC common/memchr.c
CC common/qsort.c
CC common/random.c
CC common/sprintf.c
CC common/strcasecmp.c
CC common/strcasestr.c
CC common/strcat.c
CC common/strchr.c
CC common/strcmp.c
CC common/strcpy.c
CC common/strncmp.c
CC common/strncpy.c
CC common/strrchr.c
CC common/strtok.c
CC common/strstr.c
CC common/structec.c
CC common/timefuncs.c
CC common/unicode.c
CC scroll_engine.c
CC arabjoin.c
CC bidi.c
CC font_cache.c
CC font.c
CC hangul.c
CC lru.c
CC drivers/lcd-16bit.c
CC drivers/led.c
CC drivers/button.c
CC drivers/serial.c
CC drivers/ata_flash.c
drivers/ata_flash.c:47:5: warning: "CONFIG_FLASH" is not defined
drivers/ata_flash.c:47:21: warning: "FLASH_IFP7XX" is not defined
drivers/ata_flash.c:78:5: warning: "CONFIG_FLASH" is not defined
drivers/ata_flash.c:78:21: warning: "FLASH_IFP7XX" is not defined
drivers/ata_flash.c: In function ‘flash_select_chip’:
drivers/ata_flash.c:80: error: ‘GPIO5_CLR’ undeclared (first use in this function)
drivers/ata_flash.c:80: error: (Each undeclared identifier is reported only once
drivers/ata_flash.c:80: error: for each function it appears in.)
drivers/ata_flash.c:82: error: ‘GPIO5_SET’ undeclared (first use in this function)
drivers/ata_flash.c: In function ‘flash_wait_ready’:
drivers/ata_flash.c:113: error: ‘GPIO6_READ’ undeclared (first use in this function)
drivers/ata_flash.c: In function ‘nand_get_info’:
drivers/ata_flash.c:471: error: ‘struct storage_info’ has no member named ‘serial’
drivers/ata_flash.c:457: warning: unused variable ‘i’
drivers/ata_flash.c:456: warning: unused variable ‘blocks’
make[1]: *** [/home/lucas/meizu_dfu/rockbox/build/firmware/drivers/ata_flash.o] Error 1
make: *** [build] Error 2
-
I still haven't updated the meizu code to the new storage layer, sorry about that.
Frank
Edit: fixed now
-
i've a question regarding the spi connection to the driver ic of the m6sl lcd.
does anyone know how this is connected to the samsung arm chip?
is there another layout instead of this file M-P-V7.pdf (i guess this is not the m6 layout)? i was just wondering, because i had a look at the init_lcd_spi function and there are ports used (e.g. PCON4 bit2,3) which are not connected to anything.
where can i get this informations (nothing found on the wiki page of the meizu port)?
cheers
jens
-
As far as I know M-P-V7.pdf is the layout of the m6sp. I'm not aware of any information that isn't on the wiki
-
sorry, i overlooked the link to the reverse engineering page.
-
does anyone currently working on the lcd driver for the m6sl?
i tried to get the id of the driver ic yesterday, but instead of 0x0154 i always got 0xffff.
did someone succeed in getting this id? can we be sure that all the port addresses regarding the m6sl model are correct?
best
jens
-
I got 0x0154 out of my m6sl a while ago. Since then a lot of clock-related things have changed though, so timings are probably totally wrong
-
yes, i've seen this and tried to fix it. but i'm not used to read such datasheets.
thanks for the info gevaerts, i'll keep on trying to get the id too :)
-
how do i get out data like that out of my m6sl anyway? i am clueless... ;(
i only worked with atmel chipsets untill now and those are documented, which isnt true for the meizu (for obvious reasons).. but i would really like to contribute.. maybe someone of you can give me some hints where to go for learning stuff like that ;)
-
I've just removed a few asking for updates posts. Please people, do not post asking for updates. If and when there is anything to say, it will be posted here.
-
Hey, guys. I own a M6SL. The official firmware from Meizu company sometimes is annoying. So I fully support porting rockbox onto Meizu players. Though I don't know much about arm, I have some C/C++ programming experience. If you need any help, please let me know.
EDIT: I can't get the through the dfu process. I am always got stuck at the get_cpu operation after "Wait a sec (literally)..." :(. Anybody can give me a hint?
-
saab_rider:
A bit of a cheeky request - any chance you/your friend could PM the original poster and explain that Rockbox is written by volunteers in their spare time, and it would need a chinese speaking volunteer to invest a very large amount of time to keep a translation up to date.
Just wanted to let other Meizu M6 users know... I as BigBambi suggested a while back and contacted the Chinese guy who posted in this thread in Chinese (http://forums.rockbox.org/index.php?topic=10078.msg124881#msg124881) (my translation is right below it).
This is his response:
è¬è¬ä½ ï¼
我是個å¸ç”Ÿï¼Œæˆ‘倒是知é“ä¸æ–‡ï¼Œä½†æ˜¯æˆ‘英文一般
我挺了解ä¸åœ‹mp3å¸‚å ´çš„ï¼Œæˆ‘ä¹Ÿæœ‰N多mp3
雖然在語言方é¢æˆ‘沒有辦法幫RB
但是如果å«æˆ‘找mp3或是查æŸmp3的資料
我會盡力幫忙的ï¼
Translation:
Thank you!
I'm a student, and my English is weak.
I'm very familiar with China's MP3 market (I assume he means DAP market), and I have many MP3s (again I assume he means MP3 players).
Although I can't help RB due to the language barrier, however if anyone needs me to find a specific MP3 player or even a specific MP3 player's specs. I'll try my best to help!
So there you have it :) You can either contact the guy directly, or send me instead...
Thank
-
EDIT: I can't get the through the dfu process. I am always got stuck at the get_cpu operation after "Wait a sec (literally)..." :(. Anybody can give me a hint?
I also got stuck here, can anyone help?
Here is what i got using command: meizu_dfu m6sl rockboot.ebn rockboot.ebn
Reading rockboot.ebn...OK
Reading rockboot.ebn...OK
USB initialization... Device found.
GET CPU, got: S5L8700 Rev.2
GET CPU, got: S5L8700 Rev.2
Sending rockboot.ebn... ####### OK
Wait a sec (literally)... OK
Releasing interface... OK
USB initialization... Device found.
GET CPU
Error trying to get CPU model, exiting.
-
To those who got stuck at the DFU process: You have to hold down the M and Play buttons during the whole process. Please try again and see if it works now.
-
To those who can successfully run the DFU process on the M6SL:
I have been stuck in the DFU process for a long time and have the same problem as yijie. Could any explain the DFU process on the M6SL more precisely? So we can find where the problem is. There are some people like me who are willing to help this project but can't run test code on M6SL because of the DFU problem. If we can run code on our player, I think more people can really help this project.
-
As there is few posts here about getting stuck at the GET CPU I have decided to dig into this.
During this process there is the part where you need to hold the buttons. To know you are holding them right (as wpyh suggests we are not :)), you can see in the lsusb --verbose (a linux command) the device is seen as 2 Blues USB DFU Device and also the DFU tool does not show the No device found.
If you look into the meizu_dfu source you'll notice there are duplicate lines of get_cpu(device) which was suspicious to me. Markun said he commented one of them out and the dfu tool works on his FreeBSD. I don't know if before modification it did not work for him but it did not solve my get_cpu() problem. I am not an experienced programmer but I will try to find out whats going wrong.
Guys who know their C and the sauce around, don't whine about not being to help cause of little difficulty and take a closer look at the get_cpu() function of the dfu tool. I will try and will update this post in case I find some usefull hints or even solve the problem. (I own the M6SL version, please state your miniplayer version just in case ;))
-
OK, there seems to be a lot of confusion about the meizu_dfu tool, so maybe I should mention some facts:
get_cpu() is executed twice to match the behaviour of the original windows dfu tool that's mentioned on the meizume forums.
meizu_dfu is designed to upload a firmware file, wait for it to start running and start its own dfu mode, and upload another file. This is because that's what you need to do to install the OF.
For running the rockbox test code, you only need one, and it doesn't speak dfu itself, so the second set of get_cpu() and upload fails.
Of course, some changes to the meizu_dfu code to have a mode where it only tries upload a single file (maybe by looking at how many files it's given on the command line) would be welcome
-
I am glad gevaerts pointed out these facts. I have debugged and resolved my get_cpu issue which opposed to yijie's was in failing to get_cpu even before the first image was sent. Now what is happening is after sending the first image, the USB connection is reset to be reestablished with the upload code that has been sent in the first image. I got 'No Device Found' on the atempt to reestablish the connection. This is due to the player not being rediscovered during the 'Wait a sec (literally)..." message. This can be avoided by changing the waiting interval to 2 seconds.
If you encounter this issue just go to the rockbox/utils/meizu_df/meizu_dfu.c and change the sleep(1) to sleep(2) (in the code that is used for your version of player!). Now recompile the dfu tool and try again.
My status is now hanging on sending the second image. I assume the update code is not accepting it (most likely my fault) but I know its running as it is returning the CPU model S5L8700 Rev.2-BE 070831
(If anyone has a feeling that random thoughts of two minds is better than just one, visit the IRC, you can catch me with /msg l403 on freenode)
-
Thanks everyone! Finally I get response. :)
To wpyh: I tried to hold two buttons down all the time, but failed again. And if I press only M button, the command meizu_dfu updateNAND_BE_070831.dfu M6SL.ebn works.
Seems like after the first image updateNAND_BE_070831.dfu was uploaded, it begins to run. So, what is the address does it run from? Can we make rockboot.ebn run on this address and discard the second satge?
-
Seems like after the first image updateNAND_BE_070831.dfu was uploaded, it begins to run. So, what is the address does it run from? Can we make rockboot.ebn run on this address and discard the second satge?
We can, and that's why we do that.
-
Hi all,
gevaerts lent me his Meizu M3 and I'm working on getting more stuff to work on it. So far we've been able to control the backlight brightness by doing interrupt-driven PWM, getting the i2c bus to work so we can talk to the codec and the real-time-clock chip. Hopefully we'll soon be able to communicate with the radio chip too.
-
I have got the source files, but i don't have the complier on my PC.So, can somebody tell me where I can download the rockboot.ebn?If you have already got one,can you send it to me?I'm using M6SP.
-
The rockboot.ebn file is created when compiling the meizu bootloader. I can't really explain the entire building/compiling process here, but please have a look at the rockbox wiki pages on development, for example http://www.rockbox.org/twiki/bin/view/Main/DevelopmentGuide
-
Update on the Meizu M3:
We have audio out working with DMA-driven PCM. We can't access the NAND flash yet, so the first sound was done by compiling a 2-second audio clip directly into the bootloader. The uda1380 audio codec driver could be re-used from the iriver Hxxx port, but this driver will need some modification to properly work with the meizus (there are some differences in use of the MCLK clock signal for example).
FM radio can now also be controlled, again from the bootloader only for now.
The PCM can be easily enabled for the M6's too, the fm radio can be enabled for the M6SL only (the M6SP has a different FM chip).
The clean parts of this have been committed to SVN. To actually hear audio or control the fm radio on the M3, some hacks are needed that are not in a committable state yet. If people want to play with this, just let me know and I can make a patch that includes these hacks.
-
Hey, guys. It seems that this post haven't been updated for a long time. I hope people won't give hope for rockbox port on m6 series.
I request somebody who can run test code on m6sl to share your rockboot.ebn file with me. I really don't know why I can't run the test code on my m6sl, because I should be able to toggle the backlight if the code is run. I couldn't help to doubt that my cross-complier is not correctly built.
PS: I assume that the test code is run by replacing the firmware updating code. And the firmware update code is the first image file sent by the DFU tool during the normal DFU process. So our test code should be run just after the player accepting the first rockboot.ebn file. Do I need to reset the my player after that? Do I miss some thing?
-
Last weekend I was able to display a rockbox logo on my Meizu M6 SP. Unfortunately there is a spurious yellow line at the bottom of the screen (looks like part of the logo) and the player hangs after displaying the image. Probably the next thing will be enabling the SDRAM on the M6SP.
In principe it should be possible to run things directly from RAM in DFU mode, but I haven't been able to make that work on the SP yet (it did work on the Samsung YP-S3 which has the same SoC, using the M6SL DFU method). So I'm still running all test code from NOR flash now.
-
Does anybody have a link to the latest M6SL firmware? I can't find it on the official site and the forum doesn't even show M6 anymore.
-
Small status update: I am now able to access the DRAM on the M6SP, I'll commit the change this weekend.
The hang after displaying the rockbox logo still puzzles me, the player seems to hang right after configuring the PCON_ASRAM register that controls the function of the pins used to interface with the LCD.
I think Meizu firmwares can still be found on the meizume forums.
-
Does anybody have a link to the latest M6SL firmware? I can't find it on the official site and the forum doesn't even show M6 anymore.
http://www.meizu.com/MeizuMp3LiveUpdate/Firmware/M6/2_0_0_4/M6_SL2.004.6.rar
here it is.
meizu m6 is replaced by meizu m8 phone ..
-
:D
here is TP 2.004.6
http://rapidshare.com/files/307287039/meiau_mptp_fwt200046.zip.html
http://rapidshare.com/files/307287039/meiau_mptp_fwt200046.zip.html?killcode=419665503292886340
SP s2.004.6
http://rapidshare.com/files/307292769/meiau_mpsp_fws200046.zip.html
http://rapidshare.com/files/307292769/meiau_mpsp_fws200046.zip.html?killcode=5786242892350135964
Music Card T2.004.6
http://www.meizu.com/MeizuMp3LiveUpdate/Firmware/M3/2_0_0_4/M3_T2004.6.rar
I hope you won‘t give up MEIZU M3
-
SDRAM now seems to work on the Meizu M3 too (haven't tested it extensively though).
Also, I got some more insight on how the DFU mode works on the M3 and M6SP: the image that is sent in DFU mode is not a full RAM executable, but a kind of flash-loader plugin, with a couple of basic flash functions, like flash identification, device erase, block erase and flash write. There is a possibility that this mode can be exploited to write a kind of RAM-loader (as opposed to a flash loader), that can be used to bootload the main rockbox executable.
-
(http://pmp.5d6d.com/userdirs/4/c/pmp/attachments/month_0901/20090128_12f18585ecd1ca744875prV0q949pN88.jpg)
hope those thing can hlpe
we are a bunch of meizu m6 [tp, sp sl,ts] ,m3[sp,se] woners,
we are looking forward to use ROCKBOX firmware for ages.
By any chance, if we can help to test firmware, we wounld be very glad
http://pmp.5d6d.com/thread-329-1-3.html
http://pmp.5d6d.com/thread-330-1-3.html
-
Hi guys. Finally I can toggle the back-light of m6sl using the bootloader generated by the rockbox project. This is achieved by modifying boot.lds and crt0.S in folder $ROCKBOX_HOME/firmware/target/arm/s5l8700. It seems that .text section and .rodata is mapped onto flash. During DFU process the flash is not accessible so we need to modify the boot.lds. I don't know modifying crt0.S is necessary or not, because I haven't test this new boot.lds with the current crt0.S file. I hope this will help guys want to get some reaction from the m6sl, though this task is so simple for these experienced developers.
PS: .txt is added to the two file name because this forum doesn't support uploading .S and .lds files.
-
PS: .txt is added to the two file name because this forum doesn't support uploading .S and .lds files.
Thats a subtle way of reminding you not to post code to this thread, and instead submit patches to the tracker where they won't get lost.
-
Hello, guys. Now I am trying to understand the disassembled code. Because I am a newbie for embeded systems, I have diffcult to understand following code located in M6SL.ebn, offset 0x8578:
RAM:22008578 LDR R1, =0xFFF
RAM:2200857C AND R1, PC, R1
RAM:22008580 ADD PC, R0, R1
It seems that the arm code should be aligned to 4 bytes. But after executing these code the arm processer PC will have an odd address of 0x**009583. So I am puzzled. Is this code meant to incur some sort of exception?
-
I'm not much good at arm, but it looks to me like that code just jumps ahead to the nearest 4KB boundary (address that ends in 1+0xFFF), so its probably just trying to align a code block with a page boundary.
-
Thank you, saratoga. I mistake AND for ADD. So, you know why I am puzzled. Reading disassembly makes me dizzy. :-P
-
Hi paul356, nice to hear you're having some success with the m6sl.
In theory you should be able to run code from RAM just by modifying boot.lds (making everything go into RAM). This works for me for the Samsung YP-S3 (which seems identical to the m6sl with respect to bootloading). For the YP-S3 I also modified meizu_dfu to upload only the first image. Running and testing from RAM is actually easier than running and testing from flash because it takes less time to do one test run.
A major next step for the m6sl would be to get the display working. There is already some code for that (written for a S6D0154 LCD controller), but I don't think it's working yet. You could also try the code from the m6sp, the firmware seems to use some kind of autodetection for the display. My m6sp uses the driver for the unknown LCD controller, but there is also a driver (in the same file) for a S6D0139 controller which could be in the m6sl.
-
hi bertrik,here's what i found~m6's circuit diagram,it's a PDF document(but it's a little larrrrrrrge),i don't know whether it could do some help,good luck!
-
Hi bertrik. Another circuit program. The program uploaded by bitrat maybe breaken. Thus, I upload this one, version M6 SP.
PS: Change the file name to "meizu M6 SP.part1.rar" and "meizu M6 SP.part1.rar", and decompress any file, you can get pdf document.
-
Thanks for the offer, but I already have the M6SP schematic.
-
OK, Wish you success. All the meizu fans will say thanks to your team.
-
those picture may help this work :D
http://forum.meizu.com/viewthread.php?tid=3357&extra=page%3D1&frombbs=1
MLC NAND Flash .pdf
sansamg S5L8700X07
http://bbs.meizu.com/viewthread.php?tid=1426928&extra=page%3D1&frombbs=1
==============================================
-
I have got SDRAM_TOSHIBA_DUAL how can i upload it to here?
-
M3 and NANO2 shares the same LCD?
Today i Took apart my M3(old version),found the LCD is very similiar to NANO2's LCD,it made by AUO,(And i saw nano2 use AUO's LCD last year),I tried to insect M3's LCD to a broken NANO2 board,it seems M3 and NANO2 uses the same LCD..But I don.t have a working NANO2 to test...
(http://i3.6.cn/cvbnm/63/c2/d7/2103748a501c3333f4915f1b07d53eaa.320.jpg)
(http://i3.6.cn/cvbnm/d8/09/7f/65218bbe21d39fefcf3d2c0b95a83699.320.jpg)
-
I can't find it anymore but I have seen a reparation of meizu m3 with a ipod nano LCD, they are completely the same and interchangeable.
(By the way, I edited your post to show the IMG tag correctly)
-
http://bbs.meizu.com/thread-2680823-1-1.html
FOR M6