mx6: add support of multi-processor command
A message that is not in the archive (sent off-list or not yet received): [email protected]
PATCH v2 1/1 mx6: add support of multi-processor command
Hi Gabriel,
Quoted 3 lines
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
PATCH v2 1/1 mx6: add support of multi-processor command
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
Quoted 15 lines · Nikolay Dimitrov
Hi Gabriel,
Quoted 4 lines
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
PATCH v2 1/1 mx6: add support of multi-processor command
Hi Gabriel,
Quoted 15 lines · gabriel huau
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.
Quoted 5 lines
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
PATCH v2 1/1 mx6: add support of multi-processor command
In reply to Nikolay DimitrovQuoted 11 lines · Nikolay Dimitrov
Hi Gabriel,
Quoted 3 lines
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
Signature · 2 lines
(english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html