Omap 3440 / Cortex-a8 Documentation ?


jakie_chon

Still Fresh
Joined
Sep 23, 2005
Messages
2
I am doing an EE senior project with some other dudes on the OMAP 3440. We plan to implement a few things like a CMOS camera and ethernet over USB, the last of which was actually requested somewhere around here. We'll gladly contribute any code we make.

We're going to get an OMAP 3440 dev board soon and was hoping I could find documentation/instruction set/port info somewhere around here.

Thanks
 
jakie_chon said:
was hoping I could find documentation/instruction set/port info somewhere around here.
For the ARM instruction set you should contact your ARM representative to get access to ARM ARM v7.
For the other parts, either go to TI site to get doc or again find a TI representative (or ask your board producer).

Not very helpful I know, but ARM and TI don't make all of the information public and generally want people to sign NDAs when they get access to that info.
 
Last edited by a moderator:
I'd be very disappointed/surprised if this info isn't made available for Pandora users in some kind of open form. Since thats kind of the point IMO!

Anyway I don't think there is anything yet, so best to talk to TI.

Good luck with the project. Sure any contributed code will be appreciated/interesting...

Mark
 
foft said:
I'd be very disappointed/surprised if this info isn't made available for Pandora users in some kind of open form. Since thats kind of the point IMO!

I would be surprised if anyone gets access to the ARM ARM v7 in an open way...
It's not because a platform is open that one can get easy access to the platform hardware documentation.

What is publically available now is OMAP35x TRM and Cortex-A8 TRM (without the instruction set).
 
Last edited by a moderator:
Pandora is using OMAP3530. One website claims that this is architecturally identical to OMAP3440.

Here's lots of info:

http://focus.ti.com/docs/prod/folders/print/omap3530.html

Looks like they finally cleared that endian error, hurray.

I think most of the Cortex-A8 info you need can be found here:

http://infocenter.arm.com/help/index.jsp

There's an ARM-v7m doc you can get off of ARM's website too, but you will need to register with them first. It's called DDI0405B_arm_v7m_architecture_app_level_reference_manual.pdf.

Laurent said:
I would be surprised if anyone gets access to the ARM ARM v7 in an open way...
ARM didn't seem to have a problem openly sending me that document, and it includes the entire instruction set, along with encoding.
 
Last edited by a moderator:
Exophase said:
There's an ARM-v7m doc you can get off of ARM's website too, but you will need to register with them first. It's called DDI0405B_arm_v7m_architecture_app_level_reference_manual.pdf.

v7m is far from being v7a which is the C-A8 architecture.

QUOTE
Laurent said:
I would be surprised if anyone gets access to the ARM ARM v7 in an open way...
ARM didn't seem to have a problem openly sending me that document, and it includes the entire instruction set, along with encoding.
Didn't you rather get ARM ARM v5? Look at the copyright date and document number. If it's DDI0100 then it's v5 :)
 
Last edited by a moderator:
Laurent said:
v7m is far from being v7a which is the C-A8 architecture.
You said ARM v7, which both of them include. What does v7a have that's not part of v7, aside from NEON? I'm certain I had a list of NEON instructions too, although not a very thorough one. It's probably in the Cortex-A8 documentation you can easily get.

Laurent said:
Didn't you rather get ARM ARM v5? Look at the copyright date and document number. If it's DDI0100 then it's v5 :)
No, I certainly did not get ARM v5 documentation, I think I would have noticed that :p The title is "ARMv7-M Architecture Application Level Reference Manual", it's DDI0405B like I said, and the copyright is 2006-2007.

Apparently this doc is available online w/o registration, you can get it here:
http://www.arm.com/products/CPUs/ARM_Cortex-M3_v7.html

I concede that since this version is Thumb-2 only it's missing ARM encoding for the additional instructions, however, if whatever assembler knows about the instructions then things should be fine (aside from the ones only available in Thumb-2). On the other hand, this is a huge asset to those who might want to write a Thumb-2 recompiler, amongst other things.

Here's a request form which you can use to obtain the v7a documentation:

http://www.arm.com/documentation/doc_request.html

Whether or not they'd send it for academic purposes is beyond me.

Now GCC DOES support v7a, so the encoding should be obtainable from its sourcecode if necessary (although for most people just having an assembler that can emit it is more than enough).
 
Last edited by a moderator:
Exophase said:
You said ARM v7, which both of them include. What does v7a have that's not part of v7, aside from NEON? I'm certain I had a list of NEON instructions too, although not a very thorough one. It's probably in the Cortex-A8 documentation you can easily get.
Sorry if I was not clear enough :)
TRM doc don't contain instructions anymore. You need to use the appropriate ARM ARM.

QUOTE
No, I certainly did not get ARM v5 documentation, I think I would have noticed that :p The title is "ARMv7-M Architecture Application Level Reference Manual", it's DDI0405B like I said, and the copyright is 2006-2007.

Apparently this doc is available online w/o registration, you can get it here:
http://www.arm.com/products/CPUs/ARM_Cortex-M3_v7.html

I concede that since this version is Thumb-2 only it's missing ARM encoding for the additional instructions, however, if whatever assembler knows about the instructions then things should be fine (aside from the ones only available in Thumb-2).
v7a has (compared to v7m):

- extended ARM instructions (v7m only has Thumb2 ISA)
- MMU
- many small differences here and there that basically make v7m manual useless for v7a dev.

Don't use v7m doc for v7a development, it could be very misleading, especially if you are doing low-level things like kernel...

QUOTE
On the other hand, this is a huge asset to those who might want to write a Thumb-2 recompiler, amongst other things.
It's indeed better than nothing, but again I would never use that to develop SW for v7a. It's a *personal* point of view ;)

QUOTE
Here's a request form which you can use to obtain the v7a documentation:

http://www.arm.com/documentation/doc_request.html

Whether or not they'd send it for academic purposes is beyond me.
Give it a try and tell us. On my side you can understand I can't comment too much.

QUOTE
Now GCC DOES support v7a, so the encoding should be obtainable from its sourcecode if necessary (although for most people just having an assembler that can emit it is more than enough).
Yep, you can indeed get encoding looking at this file: binutils arm-dis
 
Last edited by a moderator:
Laurent said:
Give it a try and tell us. On my side you can understand I can't comment too much.
I don't have any kind of official reason to get it, much less a corporate e-mail to give them, so it's probably better if the topic creator tries.

For most people developing on the Pandora, even those using ASM, knowing the encodings and the privileged instructions isn't going to be very important. According to the GCC source you linked, v7 only adds 5 opcodes to ARM - PLI is probably useless on Cortex-A8 and the others aren't really useful for general purpose programming. Linux will be handling the MMU for the most part so it's again not a big deal for most people. Besides, the Cortex-A8 doc says that it's still the standard as defined in "ARM Architecture Reference Manual" (the DDI0100 doc), aside from some extensions that it explains.

From an instruction set point of view it'd probably be more useful to have ARM v6 documentation (than v7m), although that's probably easier to find third party anyway.
 
Last edited by a moderator:
Exophase said:
For most people developing on the Pandora, even those using ASM, knowing the encodings and the privileged instructions isn't going to be very important. According to the GCC source you linked, v7 only adds 5 opcodes to ARM - PLI is probably useless on Cortex-A8 and the others aren't really useful for general purpose programming. Linux will be handling the MMU for the most part so it's again not a big deal for most people.
I fully agree except you will need some understanding of NEON instructions.

QUOTE
Besides, the Cortex-A8 doc says that it's still the standard as defined in "ARM Architecture Reference Manual" (the DDI0100 doc), aside from some extensions that it explains.
Sorry but this is wrong, the referenced "ARM Architecture Reference Manual" is DDI0406. Look in C-A8 TRM, Preface, Further Reading.

QUOTE
From an instruction set point of view it'd probably be more useful to have ARM v6 documentation (than v7m), although that's probably easier to find third party anyway.
I am not sure it will be easier...
 
Last edited by a moderator:
Thank you all for the suggestions and links. I must admit I was impressed anyone answered, few communities are this helpful.

Laurent said:
Not very helpful I know, but ARM and TI don't make all of the information public and generally want people to sign NDAs when they get access to that info.
Yep, we're already in talks to sign an NDA, but it is for the OMAP 1611. From an 'Electrical Eng' point of view we expect it to be very similar, however we recently learned we would be getting OMAP 3 boards and that those were more 'open'. Guess not :p


Laurent said:
Here's a request form which you can use to obtain the v7a documentation:

http://www.arm.com/documentation/doc_request.html

Whether or not they'd send it for academic purposes is beyond me.



I'll submit a request and see what happens.

We'll code linux drivers, but the kernel is done by someone else. Initially we planned to buy the chip and surface mount it, but it does not seem like TI sells sample quantities. What we'll be doing mostly is interfacing it to the camera and other stuff, hardware wise.

Also, that pandora seems wicked cool!

Edit: look! I joined the board before most of you did :p
 
Last edited by a moderator:
jakie_chon said:
Yep, we're already in talks to sign an NDA, but it is for the OMAP 1611. From an 'Electrical Eng' point of view we expect it to be very similar, however we recently learned we would be getting OMAP 3 boards and that those were more 'open'. Guess not :p
TI has been getting more opened it seems for OMAP35x at least :) They even have dedicated engineers porting Linux kernel. Times are changing in a good way for once :D
QUOTE
I'll submit a request and see what happens.

We'll code linux drivers, but the kernel is done by someone else. Initially we planned to buy the chip and surface mount it, but it does not seem like TI sells sample quantities. What we'll be doing mostly is interfacing it to the camera and other stuff, hardware wise.
Yep try to get the documentation from ARM it will be useful to develop kernel drivers. Perhaps you can ask your teacher to make the request. You definitely can get it.

QUOTE
Also, that pandora seems wicked cool!
Except we all want one *now* :p

QUOTE
Edit: look! I joined the board before most of you did :p
But you were so silent :)
 
Last edited by a moderator:
Laurent said:
I fully agree except you will need some understanding of NEON instructions.
I'm sure you can guess what many of them do by their names :D

I'm certain I saw a full listing of NEON instructions somewhere, including some indication as to what they actually did -_-

Laurent said:
Sorry but this is wrong, the referenced "ARM Architecture Reference Manual" is DDI0406. Look in C-A8 TRM, Preface, Further Reading.
Gah, stupid ARM and their names and aliases and.. yeah :/ Sorry about that.

Laurent said:
I am not sure it will be easier...
At the very least ARM provides a quick reference which gives the instruction set (including what they do, for both ARM and Thumb-2):

http://infocenter.arm.com/help/topic/com.a...QRC0001_UAL.pdf
 
Last edited by a moderator:
Back
Top