A physical Dummy, Power Usage and MIPI


Lot of discussion about the M4 cores.

Here's what I know.

The M4 is at about 200MHz.

It can contain an FPU but I don' think the OMAP M4 contains one, as it's not claomed as M4F.

The M3 in OMAP 4 was in a subsystem called Ducati.

I suppose the M4 is for the same use.

It's not mentioned to be used as big.LITTLE in any case.
 
Sure. But at least a decent Free compiler is available. That's a better start than with the DSP, where all we have is a closed source compiler binary for x86, which doesn't allow me to compile code for the DSP on my Pandora.
And yet you'll probably never code anything for either :p
Well at least I would be more tempted to try. Probably not tempted enough to actually do much though :)

To be clear, I absolutely agree with you that cpu cores that can be transparently interchanged without the coder having to care about it (e.g. A7+A15 big.LITTLE) is way more useful and easier to work with than non-transparent extra processors like a GPU, DSP or M4. I would even prefer one A7 and one A15 in a big.LITTLE setup to a dual-core A15.
 
I have learned some things today, thanks exo, what I learned mostly is that omap looks like a terrible option for handhelds in general. The m4 looks like a large setback rather than a pro for our needs. I went into the discussion assuming one thing because it made sense and left with my foot in my mouth because the situation is much worse than I assumed. Is that allwinner off the table?
 
Is that allwinner off the table?
No. Neither is Snapdragon.
39944.jpg
 
Still, if I just have to pass -mthumb or something like that to gcc and my code can be executed on the M4, that's quite a bit easier than coding for the DSP...
You'd pass something like this:


-mcpu=cortex-m4 -march=armv7e-m -mthumb


But if the same level of OS infrastructure is present for DSP vs Cortex-M4 the only difference in using the former would be using a different compiler. Could have further implications if your code is reliant on GCC-only extensions..


There are still big challenges here. It's not like the M4 code can make a syscall into the kernel like normal ARM code could.
Would it be possible to somehow run the kernel itself on the M4, so the A15 can be completely powered down if no process is using it?

Maybe that is a silly question or a really bad idea, but then an explanation of why that is the case would still be very interesting to me.
 
Still, if I just have to pass -mthumb or something like that to gcc and my code can be executed on the M4, that's quite a bit easier than coding for the DSP...
You'd pass something like this:

-mcpu=cortex-m4 -march=armv7e-m -mthumb

But if the same level of OS infrastructure is present for DSP vs Cortex-M4 the only difference in using the former would be using a different compiler. Could have further implications if your code is reliant on GCC-only extensions..

There are still big challenges here. It's not like the M4 code can make a syscall into the kernel like normal ARM code could.
 Would it be possible to somehow run the kernel itself on the M4, so the A15 can be completely powered down if no process is using it?

Maybe that is a silly question or a really bad idea, but then an explanation of why that is the case would still be very interesting to me.
If that were even possible, I would expect really bad performance due to the cache issues that Exophase mentioned.

-God Ginrai
 
I doubt any software will use the M4 if, as I understand Exophase, no calls to the linux kernel and no calls to standard system libraries will be available. Even a "simple" app like an audio player would be hell to write if you had to roll your own I/O to disk, sound and screen/X.
 
I wouldn't say that, I still see a lot of potential in the M4s. You can still do a lot without direct access to those system functions.

It's not like the DSP would have less restrictions, quite the contrary.
 
_wb_ said:
Would it be possible to somehow run the kernel itself on the M4, so the A15 can be completely powered down if no process is using it?
It wouldn't be possible to run the same Linux kernel, you'd need a separate one targeting M4 - which I doubt exists now because a normal M4 doesn't have an MMU like OMAP5's (maybe ucLinux but that's not good enough). It wouldn't be enough to compile a kernel that targets a common ISA (which would be undesirable anyway), the two are architecturally distinct and need separate dedicated kernel code to account for that.

Trying to synchronize two different kernels so you can switch between them while keeping the same state and common data structures sounds like a nightmare, I really doubt anyone's prepared to do this with Linux.

I wouldn't say that, I still see a lot of potential in the M4s. You can still do a lot without direct access to those system functions.

It's not like the DSP would have less restrictions, quite the contrary.
Potential for what though? If you have some simple task that will benefit from being able to run for many hours (likely with the screen off), then maybe. But for performance enhancement, it doesn't seem worth it. I can't see you getting more than maybe 10% more performance using them and that's only if the M4s run at 500MHz.
 
Trying to synchronize two different kernels so you can switch between them while keeping the same state and common data structures sounds like a nightmare, I really doubt anyone's prepared to do this with Linux.
Maybe you can boot with only the M4 cores if you plan to use your Pandora for a low computing task with screen off? Like mobile sound station in the park with some friends for a few hours? Or listening an audio book in the train for a long ride? Use it as file server to copy some real large file (lets say a 30 GB blue ray image) from the sd card to an usb stick?

Edit: I often type notices in leadpad for 6 hours or something, doing nothing other. There we would be 200 mhz more then enough, maybe a calculator is need sometimes, but hey the M4 are dualcores right :p ?
 
Last edited by a moderator:
Maybe you can boot with only the M4 cores if you plan to use your Pandora for a low computing task with screen off? Like mobile sound station in the park with some friends for a few hours? Or listening an audio book in the train for a long ride? Use it as file server to copy some real large file (lets say a 30 GB blue ray image) from the sd card to an usb stick?

Edit: I often type notices in leadpad for 6 hours or something, doing nothing other. There we would be 200 mhz more then enough, maybe a calculator is need sometimes, but hey the M4 are dualcores right :p ?
So you'd need to get a good kernel running on the M4s to begin with, there'd be a lot to do to make this work. You'd also need to program the bootloader that sets up the M4s and permanently turns off the A15s. And you'd have to reboot into this special mode where you can't do much of anything.

All this just to get around doing a small amount of work on the A15s instead of the M4s and increasing power consumption a small amount (assuming the power governor is good about turning the A15s off).
 
So basically you cannot easily use the M4s for anything that needs IO. And they're not powerful enough to really increase performance. I wonder why TI included them at all. It's hard to imagine a real use case for them.
 
So you'd need to get a good kernel running on the M4s to begin with, there'd be a lot to do to make this work. You'd also need to program the bootloader that sets up the M4s and permanently turns off the A15s. And you'd have to reboot into this special mode where you can't do much of anything.


All this just to get around doing a small amount of work on the A15s instead of the M4s and increasing power consumption a small amount (assuming the power governor is good about turning the A15s off).
Ok it would be lots of work to save a little bit of power and you would have even have to reboot the Pandora for it. Understood^^
 
Last edited by a moderator:
I saw that SIM Card slot is at the edge. Will it be possible to put/remove SIM Card without remove battery? That would be great.
 
So basically you cannot easily use the M4s for anything that needs IO. And they're not powerful enough to really increase performance. I wonder why TI included them at all. It's hard to imagine a real use case for them.
To manage other peripheral blocks efficiently. Same reason the ARM9's in OMAP3.

For example, there'd be a lot of overhead dealing with something like hundreds of interrupts per second into a Linux kernel, you'd rather have a simple low end processor constantly polling and interacting with its own low profile DMA and stuff.
 
Are there any subsystems that could concievably be put on them by default and actually make a difference? Would it for example be able to handle incoming calls/messages when the device is in low power mode? Maybe even blink the lid led :p

There was some talk about it not being able to handle I/O. Is this a fundamental limitation or just the effect of the kernel running on the A15s? Could the kernel "hand off" subsystems like this for low power mode? Not suggesting it'd be the same code, but more like M4 trampling on the kernel's domain while it's asleep (mostly reading though).
 
Are there any subsystems that could concievably be put on them by default and actually make a difference? Would it for example be able to handle incoming calls/messages when the device is in low power mode? Maybe even blink the lid led :p

There was some talk about it not being able to handle I/O. Is this a fundamental limitation or just the effect of the kernel running on the A15s? Could the kernel "hand off" subsystems like this for low power mode? Not suggesting it'd be the same code, but more like M4 trampling on the kernel's domain while it's asleep (mostly reading though).
It's not a phone. There aren't hundreds of thousands of euros sitting around to make it one.
 
It's not a phone
It's going to have optional 3G/4G modem with MMS and voice capability: it's basically got everything it needs to be called and function like a phone.Running the phone software on the M4s does sound like it could be a good use of them, assuming they have any sort of external connectivity, DMA or something at least.
 
Back
Top