I know that this has probably been asked before but I HAVE SEARCHED!!!
Which type of program do we install on the XDA2, by this I mean do we install the ARM programs or some other type, as there isnt a 'PXA' type??!!??
Rudi
arm or xscale they are compatible.
there really are only 2 types which you should NOT pick!
and thats
MIPS and SH3 or what ever it's called
Thanks for that, much appreciated, I have never seen an xscale type before so I will look out and/or use the ARM version.
Rudi
I'm a game programmer by profession, quite knowledgeable about hardware and OSes in general, and somewhat familiar with the .net programming environment. But I can't seem to find the answer to this simple, but very important (given the abominably slow speed of WM5), question:
Do programs running on Windows Mobile devices (WM5 in particular) execute natively on the processor, or do they go through any kind of emulation or JIT compilation?
Related questions: Do all programs on WM run in the .net environment? Or can WM5 execute "native" programs as well?
Are WM .net programs installed as MSIL (non-native) assemblies? When they are executed, do they go through the .net JIT compilation process, thus causing periodic delays, and doubling the amount of precious RAM needed?
And if any "native" programs run on WM5... how "native" are they? Isn't it true that starting with WM 2003 all programs were compiled to run on the ARM processor? And that if your device had a non-ARM processor (say, oh, a TI OMAP), it had to emulate the ARM code, thus running the program at a fraction of native speed?
I can't seem to get an answer to these questions, and it's driving me buggy. I want to know whether one of the reasons WM devices are slower than an 8-bit computer is because of an evil & unnecessary (IMO) processor emulation architecture, or whether it's just due to Microsoft's terrible terrible programming in general.
Cheers
Most of WinMobile applications are "native". I.e. they are executed directly on CPU without any emulation layer. On my device there are no MSIL programs at all.
I don't know how .NET apps are executed, but probaly the process is identical to a "big PC" - something like JIT compilation.
WM5 is slower because it is more secure then older OSes, it has lots os security checks that slowdown things incredibly. It also allows mixing ARM (32-bit) and THUMB (16-bit) code in a program, and 16-bit code is typically slower. And it uses "persistent storage" - this is the main reason if incredible slowdown comparing to WM2003SE.
Regardong TI OMAP. As far as I remember it uses the same ARM/THUMB instruction sets as intel PXA CPUs. It probably does not have intel x-scale instructions, which are rarely used (mostly in games).
I want to know whether one of the reasons WM devices are slower than an 8-bit computer is because of an evil & unnecessary (IMO) processor emulation architecture, or whether it's just due to Microsoft's terrible terrible programming in general.
Click to expand...
Click to collapse
The slowdown is due to the ugly architecture of Windows Mobile OS. This is similar to all OSes made by that company - the newer the OS is, the slower it works.
I'm looking for a registry editor and they are all broken down by processors, but the Hermes has a Samsung Processor, which doesn't seem to be one of the choices.
Here's a list from total_commander (http://ghisler.ch/board/viewtopic.php?t=11025)
- arm/xscale/pxa
- mips
- sh3
Which one do I need?
Arm / Xscale
Hi!
Can somebody tell me the platform name for TyTN? I have a list of them (ARM, SH3, SH4) - What is the proper one?
Thanks
ARM
Mike
Sorry to get technical Mike. but surely the Tytn platform name is Wm5 or WM6, and ARM is the embedded processor architecture provided in the Tytn under license!
boz said:
Sorry to get technical Mike. but surely the Tytn platform name is Wm5 or WM6, and ARM is the embedded processor architecture provided in the Tytn under license!
Click to expand...
Click to collapse
Technically of course you are correct - smarty pants
However given what deejayc says, it looks to me like s/he's been trying to download/open something and is being given the choice of processor (Arm, SH3/4 etc) and is wondering which it is. So perhaps I'm guilty of answering the question that I think he/she is asking rather than the one technically asked. (if you see what I mean )
Mike
Hi!
Well, WM5 is a good answer - unfortunatelly I am trying to develop an app using Embedded C++ 4.x. There are no platforms like "WM5" - there is only a processor architecture.
I'm really tired @work with .NET (not embedded, the real one), so I the answer "WM5" does not really help
Thanks again.
If anyone is interested I have made slight progress with linux on the Mogul. First you have to download the latest versior or haret from here http://handhelds.org/~koconnor/haret/ I am using this version haret-20071029d.exe Then i downloaded some stuff from this site http://www.angstrom-distribution.org/unstable/images/ I downloaded the apache images because it is the ppc6700 sprints one lower model than the mogul. The kernel does not boot. I think that this is because the processor is a different arch. I am going to try to build a custom kernel when I get home tonight. I did not extract the distro however I think that that will be a good starting point once we get a working kernel as the devices are simular (sliding keyboard, same size screen, made by htc, cdma, etc.) I also found out that you have to pass this arguement in the haret startup.txt file or it will just crash haret. "set MTYPE 1463"
My startup.txt reads:
set KERNEL zImage
set MTYPE 1463
set CMDLINE "rootdelay=1 root=/dev/mmcblk0p2 console=tty0 fbcon=rotate:1"
boot
edited from this page http://www.handhelds.org/moin/moin.cgi/ApacheLinux you might want to look there for information. It is what got me this far.
If you would like to help please post to let me know. Please do not post something like "I can test it" or "I would be willing to test" or "Can you send me a copy when you get it working"
Right now I need some help not testers
Thanks in advance
P.S. you can find all of the known mtypes here http://www.arm.linux.org.uk/developer/machines/
The apache and Titan have totally different hardware.
All the device drivers would need to be re-written from scratch. The 6700 was easier because previous devices (6600) had similiar architecture. The current generation of HTC devices (Titan, Kaiser) uses some new chips for the radio and main proc that haven't been used before in any device by HTC.
Drivers would be compiled as part of the kernel to begin with. They could be modules later on. I was just gonna use the image for the binaries of gpe. However further research shows that there is a gpe phone edition, opie2 (which is for phones) and my favorite openmoko which i'm about to compile.
main processor wise, some nokias also have the same ARM11 processor (as the titan and kaiser) in them. N95 being one of them.
wandrerx thatnks for the help. I spent all night trying to figure out what the linux kernel calls this processor or processor family. There is no simple answer like arm11 or qualcomm or msm at least not yet. I will do research into this nokia and see if that turns up any answers.
Thanks again
just remember that in many cases the arm11 is paired (which I'm guessing is part of the architecture) so either things will go through a qualcomm/samsung/whoever layer or things are sent directly to the arm11 and to the dual phone processor. Mucking around I found that there are various power modes (possible overclocking? I'd assume they would use a conservative power mode for a phone like this)
from what I have read it is built simular to how a dual core pc is built. It has two cores on one chip. However unlike dual core pcs the cores are not symetrical. One is an arm11 chip and the other is an arm9 chip depending on the model. The arm11 chip in this case is 400mhz and the the arm9 chip is something like 133mhz. The 400mhz arm11 core is deticated to running windows and applications. The arm9 ~133mhz chip is deticated to running the phone, wireless, bluetooth and gps.
What does this mean? Well it means that we could get linux running with a compatible arm11 kernel, however we would not have any communication ability. And I think that you are correct that there is or is going to be an arch that supports both processors with one simple kernel.
Another thought... Qualcomm has their own OS (BREW) that is built for these chips. It might be worthwhile to download it to see if it gives us any more clues to the hardware then windows mobile does.
Hope that this helps.
P.S. here is qualcomms site with info on the msm7500 http://www.cdmatech.com/products/msm7500_chipset_solution.jsp
More research... Open moko was designed for the NEO1973 which runs at up to 266mhz. The mogul/titan according to qualcomm can run at speeds up to 528mhz. That is more than twice as fast! If you look at movies on youtube of the openmoko OS you will see that it runs really fast. Very comperable to windows mobile faster with some things slower with others. If you go to the openmoko wiki and look at the supported hardware you will see that the fastest processor of any of the devices that it runs on excluding the other HTC products is 312mhz. The mogul/titan runs at 400mhz with windows. The other openmoko HTC devices run at 416 and 520mhz. The mogul/titan is capable of 528 so if/when we get linux on the mogul/titan it should be extreamly fast once it is booted. For some reason linux takes a long time to load on mobile devices. However if we get a native bootloader replacing windows completly it will probably take about the same amount of time to boot. Currently my idea is to haret or any other bootloader in the windows startup folder to boot directly to linux once windows loads.
More research part 2...
ARM ltd. uses linux to test all arm processors during the development cycle. They test every feature and make sure that everything works correctly. They also use it to stress test the processors. So my question is why don't they release these drivers when the new processors are released? I will scour the internet for any unofficial drivers or anything that could help us. I will be posting everything that I find that I think might be helpfull.
First off sorry for the tripple post.
Now the exciting news. The msm7500 uses the ARM1136EJ-S core. I'm not sure how simular the ARM1136EJ-S is to the ARM1136J-S and the ARM1136JF-S. I know that in the computer world one letter can mean a heck of a lot or next to nothing but... There are patches for both of the later on the following site. http://www.arm.linux.org.uk/developer/patches/search.php?summary=arm1136 granted these patches are atleast a year old but they do tell us one thing. the sub arch for these processors is arm1136 and that the most of the patches are in the linux/arch/arm/mm folder.
However in the kernel that I am using handhelds.org this still isnt an option. However there are three ARM Ltd. sub archs that I'm going to look up on their site and SA1100-based and also EBSA-110. I am hoping that the 11 in these archs means something to the effect of arm11 or that ARM Ltd. can spread some light on the situation. If worst comes to worst next Sunday or whenever I get enough time I will compile each of the arm kernels with the basic options and see is any of them boot on the mogul/titan. If they do that could mean either that we found the right arch or a compatible arch such as x86 is compatible with x86_64. Once I have something booting I will release it so other developers can use it to dump hardware information and if I can use usb networking or the keyboard by some stroke of luck I will try to get the output from a dmsg. Hope this helps
Breaking news: Disreguard most of what was just said some is true other is just guesses showing my stupidity. I just did a simple google search on "ARM1136EJ-S linux" without the quotes not expecting to find anything usefull. I was wrong again. I learned of other chips that use the ARM1136EJ-S core the TI OMAP2420 is based on this same core. Finally a arch that is selectable when configureing a kernel. Now to do more research into the TI OMAP2420 and other chips with this core and posibly finding some kernel configs to use as a starting point. I am so excited :-D
great find
Although not the same simular to the msm7500 (phone, wifi, BT, gps, 2 cores, usb, IR, flash, ram, keypad, camera, sd card) Oh yeah and did I forget to mention... People have booted linux on this bad boy. I also read that the kernel config for this is included with the linux kernel too!!!
http://focus.ti.com/general/docs/wt...entId=4671&navigationId=11990&templateId=6123
P.S. This file in the handhelds.org kernel controls this processor and its preriphrials /linux/arch/arm/mach-omap2/board-h4.c
Where I located the information said that it can be found in /linux/arch/arm/mach-omap/board-h4.c with the kernel from kernel.org I'm not sure if this is just outdated or changed in handheld.org's version of the kernel eitherway I am going to have my computer build the kernel as I sleep tonight. (There will be no modules everything will be built in) <-- for simplicity incase it doesn't load the ext3 filesystem on the microsd card for some reason. I have a feeling that some of the irqs in the file listed will need to be changed to work with the mogul/titan but maybe we could get lucky.
A little more info for someone trying to build the kernel. The kconfig file in the in the mach-omap2 directory says this:
config MACH_OMAP_H4
bool "OMAP 2420 H4 board"
depends on ARCH_OMAP2 && ARCH_OMAP24XX
Hope that that helps if you are trying to get a working config. Oh yeah one more thing I am useing the handhelds.org kernel because 1. I have it 2. I figure that it is made to be compatible with the most devices. I am planning on switching to the openmoko kernel as soon as I have something booting. I might need to steal patchs etc from the handhelds.org kernel though. I don't know as I haven't downloaded the openmoko kernel yet.
Nice... see, I like being proved wrong for stuff like this.
I've been telling people it couldn't be done.
Keep up the good work researching!
Well I built a kernel...
I also loaded the kernel
I am unsure how far it gets after that I will post my haret log files. One I made an empty file named zImage-fake. The other one is my (nonworking) kernel. And one I made by booting the openmoko zImage that I found somewhere on the internet. None of them booted Are you really supprised? But we did get some information from haret. And I can verify that the progress bar in haret did move form the beggining to the end when booting both real kernels. The empty file does nothing and haret just sticks. Pretty much all this tells us is where haret is looking for the kernel and what it is decompressing. Memory mapping and so on. It is all greek to me I have no clue what it means. Hopefully you guys will know more.
Something interesting I was reading on the kiser forums about there progress with linux on that device. They dont even know about the cores being the same as the TI OMAP 2420 processor. However they say that haret only reconises the msm7500 as being there but has nothing more as in no ability to boot kernels because nothing is known about the cpu. If this is true could someone contact Kevin O'Connor as he is the one that patched haret to reconize the msm7500 and tell him about the OMAP discovery and see if that helps. Or contact Paul Sokolovsky the other haret maintainer.
my default.txt is as follows:
set KERNEL zImage
Set MTYPE 1463
set CMDLINE "rootdelay=1 root=/dev/mmcblk0p2 console=tty0 fbcon=rotate:1"
boot
One last thing here are the haret logs and my kernel config incase anyone wants it.
P.S. I compiled my kernel with binutils 2.18.50 and the following arm gcc toolchain arm-linux-gcc-3.4.1.tar.bz2 <-- I found the link here http://www.gtlib.gatech.edu/pub/handhelds.org/projects/toolchain/ and binutils was found here ftp://sourceware.org/pub/binutils/snapshots and I referenced the guide to compile the kernel found here http://www.handhelds.org/moin/moin.cgi/KernelBuilding
More interesting/helpfull news...
Without specifying an mype haret reports "undefined MTYPE"
With the arguments "set MTYPE [MTYPE]" it will decompress the kernel.
I was hoping that I could find a MTYPE that wouldn't load but so far I have been unsucessfull. Everthing loads and there are 1538 different MTYPES. Now I guess that we could try every MTYPE untill we get something that boots or maybe someone has a better idea. Also here are some more devices with the same core.
Motorola MOTO Q9h Global
Motorola MOTO Q 9h (Q9h)
Nokia E90 Communicator
Verizon XV6800 (HTC Titan 100)
HTC Touch P3050 (HTC Vogue 100)
HTC S640 (HTC Iris 100)
Bell HTC 5800 (HTC Libra 100)
HTC 5800 (HTC Libra 100)
Bell HTC 6800 (HTC Titan 100)
HTC S720 (HTC Libra 100)
HTC P4000 (HTC Titan 100)
Here is a haret log when I pass the lsmod arguments. My guess that it shows all of the windows drivers that are loaded. Now if we just do a simple google search on them or if someone knows how decompress them and or look at them we can possibly find out more about the hardware.
My understanding,or rather assumption was that one processor ran windows and the other ran the radio and that the two were separate. I assumed that if you were to make linux run on these new phones,you would run linux on the 400mhz processor,and run the existing radio rom on the other which I would expect to make things much simpler. Rather than figuring out how to make the radio work,you would just have to figure out how to talk to the radio and the rest of the work would be done for you.
pflatlyne said:
My understanding,or rather assumption was that one processor ran windows and the other ran the radio and that the two were separate. I assumed that if you were to make linux run on these new phones,you would run linux on the 400mhz processor,and run the existing radio rom on the other which I would expect to make things much simpler. Rather than figuring out how to make the radio work,you would just have to figure out how to talk to the radio and the rest of the work would be done for you.
Click to expand...
Click to collapse
I've been watching from the Kaiser Section. Firdtly let me say that I believe you are correct. The way every device I've seen uses the two processors is as Follows: The ARM11 is your 400mhz system processor & the integrated 274mhz ARM9 is almost always used a a modem connect the system to the radio, GPS, etc.
I don't know if you've seen this, but there are some Dev tools/Info available at: http://www.virtio.com/
10/21/2004 - Virtio Corporation, the creator of Virtual Platforms for embedded software development, introduced its latest product offering for the Texas Instruments (TI) OMAPTM platform, the VPOM-2420 Virtual Platform. This product provides fast, full-function emulation for TI's OMAP2420 software development platform. Virtual Platforms give software developers a target system model that can boot an operating system and run application code long before hardware becomes available, speeding new system software development.
Additional information is available at www.virtio.com/vpom-2420 and evaluation copies of the platform are on-line at http://www.virtio.com/download.
I'm really curious to know what has become of this. Could an insider provide an update please?
Best bet is to watch the android wip. I'm going to get another mogul here in a couple months, i'll be using my current one as a test bed. since it's my only phone, i'm not too keen on hacking into it just yet
Check http://cs-alb-pc3.massey.ac.nz/vogue