This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Cortex-A9 AMP

Note: This was originally posted on 8th January 2012 at http://forums.arm.com

Hi,

I am currently examining amp for embedded devices.

Is it possible to boot two operating systems on an Cortex-A9 in amp mode?

The p2020 power processor is capable of amp and there is an  implementation in u-boot that makes it possible to boot two os in amp  mode. Is there a similar implementation for the Cortex-A9? And if  not, is it possible and what steps are necessary to implement amp with  the Cortex-A9 cpu using u-boot or a different boot loader?

 

Any information would be helpful.

Best regards

Clemens

Parents
  • Note: This was originally posted on 9th January 2012 at http://forums.arm.com


    Yes, you can run 2+ OSes on a Cortex-A9 MPCore processor.  It's just that most people don't (at least, that is my experience).

    Technically, the challenge is co-ordinating the use of shared resources between the 2+ OSes.  For example, there is a shared interrupt controller (IC) in the MPCore processors.  You need some way to decided which OS is allowed to configure which parts of the IC.  The same goes for all the other things visible to both OSes.


    That are good news for me.
    Since I am focusing on Linux, I was thinking about device trees for coordinating the ressource sharing. That is the way it is done on the p2020 platform, when using Linux. With the p2020 u-boot can be used to assign a device tree blob (dtb) to the running OSes. For example the first OS gets a dtb with the first cpu deactivated and the second cpu active, since the p2020 is usually equiped with several ethernet ports the first os gets one ethernet port assigned and the second OS gets another port. In this case Linux only knows about the assigned hardware and (in my opinion) doesn't look for other hardware. Is that true?

    I understand the issue with the IC, I guess this could be solved with a dtb too?
    One thing I am concerned about is the MMU. I was thinking about compiling the multiple Linux Kernels with hard coded memory regions assigned. Is there any problem with multiple OSes and memory management on Cortex-A9 MPCore?

    What other shared ressources are there that are visible to both OSes?

    Best regards
    Clemens
Reply
  • Note: This was originally posted on 9th January 2012 at http://forums.arm.com


    Yes, you can run 2+ OSes on a Cortex-A9 MPCore processor.  It's just that most people don't (at least, that is my experience).

    Technically, the challenge is co-ordinating the use of shared resources between the 2+ OSes.  For example, there is a shared interrupt controller (IC) in the MPCore processors.  You need some way to decided which OS is allowed to configure which parts of the IC.  The same goes for all the other things visible to both OSes.


    That are good news for me.
    Since I am focusing on Linux, I was thinking about device trees for coordinating the ressource sharing. That is the way it is done on the p2020 platform, when using Linux. With the p2020 u-boot can be used to assign a device tree blob (dtb) to the running OSes. For example the first OS gets a dtb with the first cpu deactivated and the second cpu active, since the p2020 is usually equiped with several ethernet ports the first os gets one ethernet port assigned and the second OS gets another port. In this case Linux only knows about the assigned hardware and (in my opinion) doesn't look for other hardware. Is that true?

    I understand the issue with the IC, I guess this could be solved with a dtb too?
    One thing I am concerned about is the MMU. I was thinking about compiling the multiple Linux Kernels with hard coded memory regions assigned. Is there any problem with multiple OSes and memory management on Cortex-A9 MPCore?

    What other shared ressources are there that are visible to both OSes?

    Best regards
    Clemens
Children
No data