[PATCH v5 1/7] riscv: Add DMA 64-bit address support

Bin Meng bmeng.cn at gmail.com
Fri Dec 11 08:52:29 CET 2020


Hi Padmarao,

On Fri, Dec 11, 2020 at 3:10 PM Padmarao Begari <padmarao.b at gmail.com> wrote:
>
> Hi Bin,
>
> On Thu, Dec 10, 2020 at 4:11 PM Bin Meng <bmeng.cn at gmail.com> wrote:
>>
>> Hi Padmarao,
>>
>> On Thu, Dec 3, 2020 at 4:43 AM Padmarao Begari
>> <padmarao.begari at microchip.com> wrote:
>> >
>> > dma_addr_t holds any valid DMA address. If the DMA API only uses 32/64-bit
>> > addresses, dma_addr_t need only be 32/64 bits wide.
>> >
>> > Signed-off-by: Padmarao Begari <padmarao.begari at microchip.com>
>> > Reviewed-by: Anup Patel <anup.patel at wdc.com>
>> > ---
>> >  arch/riscv/Kconfig             | 4 ++++
>> >  arch/riscv/include/asm/types.h | 4 ++++
>> >  2 files changed, 8 insertions(+)
>> >
>> > diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
>> > index 30b05408b1..55eaee2da6 100644
>> > --- a/arch/riscv/Kconfig
>> > +++ b/arch/riscv/Kconfig
>> > @@ -152,6 +152,10 @@ config 32BIT
>> >  config 64BIT
>> >         bool
>> >
>> > +config DMA_ADDR_T_64BIT
>> > +       bool
>> > +       default y if 64BIT
>> > +
>> >  config SIFIVE_CLINT
>> >         bool
>> >         depends on RISCV_MMODE || SPL_RISCV_MMODE
>> > diff --git a/arch/riscv/include/asm/types.h b/arch/riscv/include/asm/types.h
>> > index 403cf9a48f..b800b2d221 100644
>> > --- a/arch/riscv/include/asm/types.h
>> > +++ b/arch/riscv/include/asm/types.h
>> > @@ -29,7 +29,11 @@ typedef unsigned short umode_t;
>> >
>> >  #include <stddef.h>
>> >
>> > +#ifdef CONFIG_DMA_ADDR_T_64BIT
>> > +typedef u64 dma_addr_t;
>> > +#else
>> >  typedef u32 dma_addr_t;
>> > +#endif
>>
>> Why is this patch needed for U-Boot?
>>
>
> Initially this patch was created for the MACB driver dependency and now the MACB driver is not dependent on CONFIG_DMA_ADDR_T_64BIT.
> But We created this patch the same as the ARM 64-bit kconfig and the 'CONFIG_DMA_ADDR_T_64BIT' is used when the MMC driver is configured with DMA.
>

But in U-Boot there is no 64-bit address. The DMA address should be
under 4G. Both MACB and MMC driver should work with the 32-bit DMA
addresses, no?

Regards,
Bin


More information about the U-Boot mailing list