So, after some effort, I managed to get my n800 ordered last week with my developer discount code (Thanks Nokia!) and it arrived today. It’s thinner than I expected it to be, but I’ve definitely been spoilt by the 770′s hard cover and I’m going to get the n800 cover accessory as soon as I find somewhere that will sell it to a US address. I’ve been playing with it over the weekend and it’s definitely slick – there are some nice usability improvements (like the way the window menu lets you close windows now) and the fully integrated bluetooth keyboard support is much appreciated.
As I discussed previously, the current n800 kernel doesn’t include my mmc4 or sdhc patches but I fully expected them to work once applied. Mark Lee has already confirmed that the SDHC patch works, so I built a kernel with the roll-up of changes that Pierre sent upstream for 2.6.20 (including mmc4) plus the sdhc patch. The patches applied cleanly except that I had to exclude the omap part of the roll-up (already in there) plus make one small fix up. Then, the very first thing I did after unpacking the n800 was flash the new kernel – yep, I didn’t even turn it on first
It came up just fine and I popped my 4GB SDHC card inside at which point it was immediately recognised. Also, in contrast to some reports, the file manager reported the size of the card correctly. I then put my 2GB MMCmobile card from my 770 into the other slot and that worked fine too. I wasn’t able to get useful speed results due to caching (even using dd on the raw card device) but it seems to be faster than if it was only doing 1 bit transfers.
When I get some time later this week, I’m going to make a custom kernel available with the MMC and SD changes in it.
In other news, 2.6.20 is officially out and Pierre has pushed out his batch of changes for 2.6.21 including the SDHC support, so it will hit mainline at that time. I don’t expect Nokia to bump the kernel version, but I hope they take in these patches so that people don’t have to use custom kernels.
{ 8 } Comments
Hi Philip,
I’m very interested in the SDHC support in the kernel. I’ve been reading about it in the mamemo mail list and in ITT. Some people reported random restart of the device after using the patches. Did you experiment this thing with your kernel? if not, could you please mail me your kernel?
Regards
Pedro
Still don’t have my developer device (wrong country
. Looks like there won’t be any need to steal your patches once I finally get it
Did you test also 50MHz SD mode or wider MMC data bus width? 1 bit transfer did ~6MB/s on N770, was the 2GB MMCmobile faster than that?
Also when you publish your kernel, diff against nokia kernel source would be very appreciated. Thanks.
Pedro, I have not noticed these random reboots and Mark Lee said he got them without the patch. I believe they were not applying the full MMC subsystem updates and just trying to use the SDHC patch, which may have been the source of the different experience.
I’ll be posting the updated kernel when I can get some time later this week.
Fanoush, I don’t have any 50MHz SD cards so I can’t test that, but I do have wide-bus MMC cards. As I said, the problem is that I can’t get statistics for uncached operations. The MMC card seems consistently faster than the SDHC one which indicates that it’s not running in legacy mode but I don’t know what the real speeds are. 6MB/s is impossible for 1bit MMC – that’s a cached result as well.
Well, it is on N770 doing dd if=/dev/mmcblk0 of=/dev/null bs=8192 count=20000 after inserting the card. You don’t have much RAM for cache in N770 anyway. And when reading much data next blocks will push the early read ones away so it should be safe to assume nothing is cached even when repeated.
Nokia770-39:~# time dd if=/dev/mmcblk0 of=/dev/null bs=8192 count=20000
20000 0 records in
20000 0 records out
real 0m 29.33s
user 0m 0.07s
sys 0m 4.47s
160MB in 30 seconds, oh well OK, 5.3MB/s not 6.
I guess reading >200MB on n800 should flush the cache too. And you can remove and reinsert the card which should flush device buffer cache.
Well, I did full dd reads of my cards and got the following numbers:
2GB MMCmobile: 8.62MB/s
4GB SDHC: 6.81MB/s
I’d expect the MMCmobile to be faster based on my testings with my laptop. So, that suggests that 4bit is working fine, but I don’t think the controller is running at 48MHz for the MMCmobile, even though it could. I’ll do some testing with some debugging output to find out.
I wonder whether there is some other bottleneck. kingston 2gb mmmobile does ~18MB/s in mmcmobile usb reader (this one http://www.sharkoon.com/enghtml/usb.htm#xcplus) . Even SD cards at 24Mhz/4bit should do better in theory (as well as mmcmobile @24MHz,4bit). OMAP2 mmc driver has maximum speed set to 48MHz in kernel source so it should be used. I’m afraid this may be some other limit. Let’s hope it is in software.
Thanks muchly for your work on this, I’m using a Trancend 8gb class 2 sdhc card in my n800. I’m suffering from frequent audio drop outs when playing back mp3′s from this card however, these happen on average every 30 seconds or so. Any ideas what could cause this? Any way for me to debug it? Cheers again, its very cool to have such large storage in the n800!
Rich, I’m afraid I don’t have any idea what could be causing that. You can look in the dmesg output for errors and you might want to run top and see if something’s using up all your CPU. You could also ask at InternetTabletTalk and see if anyone has any ideas.
Post a Comment