Re: [U-Boot] [PATCH v2] mx6: add support of multi-processor command

Hi Gabriel,
This allows u-boot to load different OS or Bare Metal application on the different cores of the i.MX6DQ. For example: we can run Android on cpu0 and a RT OS like QNX/FreeRTOS on cpu1.
I think this explanation is a little misleading - if you run unmodified versions of Android & some RTOS, they will fight for the imx6 interrupt controller, power management and clocks. As far as I know, imx6 is not appropriate for AMP (asymmetric multi-processing) because it doesn't support virtualization extensions.
Kind regards, Nikolay

Hi Nikolay,
I agree that you have to modify those OS to support 'multi-OS' on different core but this customization is not part of u-boot in my sense. For the second point, I have to disagree, the imx6 is totally appropriate for AMP/multi-OS, in my case, I wasn't thinking about virtualization which is something different but really about multi-OS/Bare Metal application. The interrupt controller (GIC) can be configured to distribute any interrupt on any core, for example, you can have UART1 interrupt on core0 and UART2 interrupt on core1. The only problem is the resource partitioning but as I said this is another subject which is not really part of u-boot and I already did some test by running Android on core0 and QNX on core1 without any problem as a proof of concept.
A good example may be the support on this kind of application on the Zynq: http://www.wiki.xilinx.com/Multi-OS+Support+%28AMP+%26+Hypervisor%29 This is also a Cortex A9 without the support of virtualization extensions.
Regards, Gabriel
On 06/22/2014 07:09 AM, Nikolay Dimitrov wrote:
Hi Gabriel,
This allows u-boot to load different OS or Bare Metal application on the different cores of the i.MX6DQ. For example: we can run Android on cpu0 and a RT OS like QNX/FreeRTOS on cpu1.
I think this explanation is a little misleading - if you run unmodified versions of Android & some RTOS, they will fight for the imx6 interrupt controller, power management and clocks. As far as I know, imx6 is not appropriate for AMP (asymmetric multi-processing) because it doesn't support virtualization extensions.
Kind regards, Nikolay

Hi Gabriel,
On 6/22/2014 5:24 PM, gabriel huau wrote:
Hi Nikolay,
I agree that you have to modify those OS to support 'multi-OS' on different core but this customization is not part of u-boot in my sense. For the second point, I have to disagree, the imx6 is totally appropriate for AMP/multi-OS, in my case, I wasn't thinking about virtualization which is something different but really about multi-OS/Bare Metal application. The interrupt controller (GIC) can be configured to distribute any interrupt on any core, for example, you can have UART1 interrupt on core0 and UART2 interrupt on core1. The only problem is the resource partitioning but as I said this is another subject which is not really part of u-boot and I already did some test by running Android on core0 and QNX on core1 without any problem as a proof of concept.
A good example may be the support on this kind of application on the Zynq: http://www.wiki.xilinx.com/Multi-OS+Support+%28AMP+%26+Hypervisor%29 This is also a Cortex A9 without the support of virtualization extensions.
Thanks for sharing this info, I'll check it out. I come from the automotive industry where no one will allow running 2 OSes without hardware isolation, so this is how my opinion about AMP on imx6 was formed. And I agree that this actually isn't related with U-Boot itself other than just loading the payload and starting the extra cores.
Kind regards, Nikolay

On Sun 2014-06-22 17:09:28, Nikolay Dimitrov wrote:
Hi Gabriel,
This allows u-boot to load different OS or Bare Metal application on the different cores of the i.MX6DQ. For example: we can run Android on cpu0 and a RT OS like QNX/FreeRTOS on cpu1.
I think this explanation is a little misleading - if you run unmodified versions of Android & some RTOS, they will fight for the imx6 interrupt controller, power management and clocks. As far as I know, imx6 is not appropriate for AMP (asymmetric multi-processing) because it doesn't support virtualization extensions.
I did AMP configuration on socfpga (similar to i.mx6 in this regard). Yes, Linux needs to be modified for this to work... but it seems mostly unmodified u-boot can be used.
Pavel
participants (3)
-
gabriel huau
-
Nikolay Dimitrov
-
Pavel Machek