[PATCH 1/2] remoteproc: use a flag to detect the presence of IOMMU
From: Suman Anna <hidden>
Date: 2014-07-29 16:10:55
Also in:
linux-omap, lkml
Hi Ohad, On 07/29/2014 05:57 AM, Ohad Ben-Cohen wrote:
Hi Suman, On Tue, Jul 8, 2014 at 7:22 PM, Suman Anna [off-list ref] wrote:quoted
The remoteproc driver core currently relies on iommu_present() on the bus the device is on, to perform MMU management. However, this logic doesn't scale for multi-arch, especially for processors that do not have an IOMMU.Is there a specific hw/scenario where you need this? Can you please provide more details about it?
We are trying to add a remoteproc driver for a small Cortex M3 called the WkupM3 used for suspend/resume management on TI AM335/AM437x SoCs. This processor does not have an MMU. Same is the case with another processor subsystem PRU-ICSS on AM335/AM437x. All these are platform devices, and the current iommu_present check will not scale for the same kernel image to support OMAP4/OMAP5 and AM335/AM437x. This patch mainly addresses the existing comments in the code, - * This works for simple cases, but will easily fail with - * platforms that do have an IOMMU, but not for this specific - * rproc. - * - * This will be easily solved by introducing hw capabilities - * that will be set by the remoteproc driver.
Ideally we should add them to the commit log as well.quoted
The individual platform implementations are required to set this flag appropriately. The default setting is to not have an MMU.Let's explicitly set the default please so this would be clear for users reading the code.
OK, I can update the existing drivers to explicitly set this field.
quoted
Cc: Sjur Br?ndeland <redacted>Sjur is no longer with STE, so no point in cc'ing his old email address.
Yeah, I wasn't aware until I got a bounced email.
quoted
+ /* + * All existing OMAP IPU and DSP processors do have an MMU, and + * are expected to use MMU, so this statement suffices. + * XXX: Replace this logic if and when a need arises.The last XXX comment is always true for any kernel code, so I'd drop it.
Sure. regards Suman