[PATCH 1/2] remoteproc: use a flag to detect the presence of IOMMU
s-anna at ti.com
Tue Jul 29 09:10:17 PDT 2014
On 07/29/2014 05:57 AM, Ohad Ben-Cohen wrote:
> Hi Suman,
> On Tue, Jul 8, 2014 at 7:22 PM, Suman Anna <s-anna at ti.com> wrote:
>> 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.
>> 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.
>> Cc: Sjur Brændeland <sjur.brandeland at stericsson.com>
> 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.
>> + /*
>> + * 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.
More information about the linux-arm-kernel