* shared resources in AMP between Cortex-A9 and Cortex-M4 @ 2016-06-07 16:25 Uwe Kleine-König 2016-06-07 16:50 ` Sudeep Holla 0 siblings, 1 reply; 3+ messages in thread From: Uwe Kleine-König @ 2016-06-07 16:25 UTC (permalink / raw) To: linux-arm-kernel Hello Stefan, I'm currently trying to get Linux running on the M4 of an i.MX6 Solo X and found you describing doing this on the Vybrid already[1]. I see the problem that clk and pinmux must be used by both cores. Did you solve this for your Vybrid experiments? And if so, how did it work? Having two drivers on the same IP is racy at best and using some kind of inter cpu communication to let (say) the A9 enable the clks for the M4 sounds like overkill. Best regards Uwe [1] https://falstaff.agner.ch/2015/05/17/u-boot-command-to-boot-vybrids-cortex-m4-core/ -- Pengutronix e.K. | Uwe Kleine-K?nig | Industrial Linux Solutions | http://www.pengutronix.de/ | ^ permalink raw reply [flat|nested] 3+ messages in thread
* shared resources in AMP between Cortex-A9 and Cortex-M4 2016-06-07 16:25 shared resources in AMP between Cortex-A9 and Cortex-M4 Uwe Kleine-König @ 2016-06-07 16:50 ` Sudeep Holla 2016-06-07 17:06 ` Stefan Agner 0 siblings, 1 reply; 3+ messages in thread From: Sudeep Holla @ 2016-06-07 16:50 UTC (permalink / raw) To: linux-arm-kernel On 07/06/16 17:25, Uwe Kleine-K?nig wrote: > Hello Stefan, > > I'm currently trying to get Linux running on the M4 of an i.MX6 Solo X > and found you describing doing this on the Vybrid already[1]. > > I see the problem that clk and pinmux must be used by both cores. Did > you solve this for your Vybrid experiments? And if so, how did it work? > > Having two drivers on the same IP is racy at best and using some kind of > inter cpu communication to let (say) the A9 enable the clks for the M4 > sounds like overkill. > IMO it should be other way around. In-fact few latest platforms(with performant Cortex-A cores) have dedicated Cortex-M core to do such system control and power management as it are low power and mostly always on. -- Regards, Sudeep ^ permalink raw reply [flat|nested] 3+ messages in thread
* shared resources in AMP between Cortex-A9 and Cortex-M4 2016-06-07 16:50 ` Sudeep Holla @ 2016-06-07 17:06 ` Stefan Agner 0 siblings, 0 replies; 3+ messages in thread From: Stefan Agner @ 2016-06-07 17:06 UTC (permalink / raw) To: linux-arm-kernel Hi Uwe, Hi Sudeep, On 2016-06-07 09:50, Sudeep Holla wrote: > On 07/06/16 17:25, Uwe Kleine-K?nig wrote: >> Hello Stefan, >> >> I'm currently trying to get Linux running on the M4 of an i.MX6 Solo X >> and found you describing doing this on the Vybrid already[1]. >> >> I see the problem that clk and pinmux must be used by both cores. Did >> you solve this for your Vybrid experiments? And if so, how did it work? No, it is basically unsolved. I just used "clk_ignore_unused" on both sides to avoid stuff getting disabled. It works surprisingly well :-) >> >> Having two drivers on the same IP is racy at best and using some kind of >> inter cpu communication to let (say) the A9 enable the clks for the M4 >> sounds like overkill. >> On a high level there are these two options: 1) One core takes care of the IP, hence needs to know the other cores needs and provide it 2) Both cores access the IP (with some kind of mutual exclusion to avoid races and conflicts of shared resources) Especially for the clock stuff I fell that 1 is probably easier. > > IMO it should be other way around. In-fact few latest platforms(with > performant Cortex-A cores) have dedicated Cortex-M core to do such > system control and power management as it are low power and mostly > always on. Whether that is the M4 or the A-class CPU is probably application specific. If it is used for system control/power management, I agree with Sudeep, however, the NXP's new AMP designs mainly target user applications, e.g. to fulfill real-time requirements. In those applications I feel that the A-class CPU being the master is probably more common. Usually you only want to solve a small subset of your application on the M4. I thought about device trees which describe the other cores needs, basically a massively enhanced version of this: http://lxr.free-electrons.com/source/Documentation/devicetree/bindings/remoteproc/wkup_m3_rproc.txt I mean, we could assign lets say a UART to the remote proc, and then let the master core handle pinmux, clocks etc... -- Stefan ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2016-06-07 17:06 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-06-07 16:25 shared resources in AMP between Cortex-A9 and Cortex-M4 Uwe Kleine-König 2016-06-07 16:50 ` Sudeep Holla 2016-06-07 17:06 ` Stefan Agner
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).