[PATCH v2 02/21] dma: add dma_sync nop stubs for PBL
Ahmad Fatoum
a.fatoum at pengutronix.de
Tue Jun 14 02:00:43 PDT 2022
On 14.06.22 10:49, Sascha Hauer wrote:
> On Thu, Jun 09, 2022 at 07:59:03AM +0200, Ahmad Fatoum wrote:
>> We can implement dma_sync functions as compiler barriers when we are
>> certain that the buffers are in coherent/uncached memory, e.g. because
>> MMU is only enabled in barebox_arm_entry which hasn't run yet.
>>
>> This will come in handy when doing mailbox communication in PBL on the
>> Raspberry Pi.
>>
>> Signed-off-by: Ahmad Fatoum <a.fatoum at pengutronix.de>
>> ---
>> include/dma.h | 19 +++++++++++++++++++
>> 1 file changed, 19 insertions(+)
>>
>> diff --git a/include/dma.h b/include/dma.h
>> index 90f9254ea80f..aeaba7d9316d 100644
>> --- a/include/dma.h
>> +++ b/include/dma.h
>> @@ -8,6 +8,7 @@
>>
>> #include <malloc.h>
>> #include <xfuncs.h>
>> +#include <pbl.h>
>> #include <linux/kernel.h>
>>
>> #include <dma-dir.h>
>> @@ -56,12 +57,30 @@ static inline int dma_mapping_error(struct device_d *dev, dma_addr_t dma_addr)
>> (dev->dma_mask && dma_addr > dev->dma_mask);
>> }
>>
>> +#ifndef __PBL__
>> /* streaming DMA - implement the below calls to support HAS_DMA */
>> void dma_sync_single_for_cpu(dma_addr_t address, size_t size,
>> enum dma_data_direction dir);
>>
>> void dma_sync_single_for_device(dma_addr_t address, size_t size,
>> enum dma_data_direction dir);
>> +#else
>> +/*
>> + * assumes buffers are in coherent/uncached memory, e.g. because
>> + * MMU is only enabled in barebox_arm_entry which hasn't run yet.
>> + */
>> +static inline void dma_sync_single_for_cpu(dma_addr_t address, size_t size,
>> + enum dma_data_direction dir)
>> +{
>> + barrier_data((void *)address);
>> +}
>> +
>> +static inline void dma_sync_single_for_device(dma_addr_t address, size_t size,
>> + enum dma_data_direction dir)
>> +{
>> + barrier_data((void *)address);
>> +}
>> +#endif
>
> This breaks compilation of socfpga-arria10_defconfig. We have these
> stubs in arch/arm/include/asm/dma.h as well inside a #ifndef CONFIG_MMU.
I am preparing a fix.
>
> Sascha
>
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the barebox
mailing list