Hi Alex, On Wed, Oct 26, 2016 at 7:09 AM, Alexandre Torgue <alexandre.torgue@xxxxxx> wrote: > Hi Bruno, > > On 10/25/2016 11:06 PM, Bruno Herrera wrote: >> >> Hi Alexandre, >> >>> >>> stm32f469-disco and stm32f429-eval boards use SDRAM start address >>> remapping >>> (to @0) to boost performances. A DMA translation through "dma-ranges" >>> property was needed for other masters than the M4 CPU. >>> stm32f429-disco doesn't use remapping so doesn't need this DMA >>> translation. >>> This patches moves this DMA translation definition from stm32f429 soc >>> file >>> to board files. >>> >>> Signed-off-by: Alexandre TORGUE <alexandre.torgue@xxxxxx> >>> >>> diff --git a/arch/arm/boot/dts/stm32429i-eval.dts >>> b/arch/arm/boot/dts/stm32429i-eval.dts >>> index 13c7cd2..a763c15 100644 >>> --- a/arch/arm/boot/dts/stm32429i-eval.dts >>> +++ b/arch/arm/boot/dts/stm32429i-eval.dts >>> @@ -82,6 +82,10 @@ >>> }; >>> }; >>> >>> + soc { >>> + dma-ranges = <0xc0000000 0x0 0x10000000>; >>> + }; >>> + >>> usbotg_hs_phy: usbphy { >>> #phy-cells = <0>; >>> compatible = "usb-nop-xceiv"; >> >> >> Shouldn't also the peripheral dma-ranges property move to board specific >> too? >> I had this patch for while but I didn't had the time to submit: > > > Well spot I forgot it. Actually, discussing with Arnd ysterday on IIRC, > empty dma-ranges is not needed. Can you test on your side by removing > dma-ranges in usb node please ? Unfortunately will take a time for me to set up this environment on the STM32F4-EVAL board. And on the discovery boards we dont have this scenario. That was the main reason I did not submit the patch right away. My conclusion and I might be wrong but is based on the my tests with SDIO device at STM32F469I-DISCO board. I started this issue as discussion at ST Forum but Maxime gave me the hint. https://my.st.com/public/STe2ecommunities/mcu/Lists/cortex_mx_stm32/Flat.aspx?RootFolder=https%3a%2f%2fmy%2est%2ecom%2fpublic%2fSTe2ecommunities%2fmcu%2fLists%2fcortex_mx_stm32%2fDMA2%20and%20SYSCFG_MEMRMP%20relationship&FolderCTID=0x01200200770978C69A1141439FE559EB459D7580009C4E14902C3CDE46A77F0FFD06506F5B¤tviews=44 > I will push a v2 by removing empty dma-ranges if tests are ok in your side. >From my understating/conclusion is: when empty property(dma-ranges) is the device node, the mapping will be taken in consideration when using DMA otherwise the mapping is ignored. And in the SDIO case it is needed for DEV->MEM(SDRAM) and MEM(SDRAM)->DEV. If it is not the case for the devices in question so I suppose it can work without the property. > > Thanks in advance > Alex > > >> >> Author: Bruno Herrera <bruherrera@xxxxxxxxx> >> Date: Sun Oct 16 14:50:00 2016 -0200 >> >> ARM: DT: STM32: Use dma-ranges property per board not at dtsi file >> >> diff --git a/arch/arm/boot/dts/stm32429i-eval.dts >> b/arch/arm/boot/dts/stm32429i-eval.dts >> index 6bfc595..2a22a82 100644 >> --- a/arch/arm/boot/dts/stm32429i-eval.dts >> +++ b/arch/arm/boot/dts/stm32429i-eval.dts >> @@ -52,6 +52,10 @@ >> model = "STMicroelectronics STM32429i-EVAL board"; >> compatible = "st,stm32429i-eval", "st,stm32f429"; >> >> + soc { >> + dma-ranges = <0xC0000000 0x0 0x10000000>; >> + }; >> + >> chosen { >> bootargs = "root=/dev/ram rdinit=/linuxrc"; >> stdout-path = "serial0:115200n8"; >> @@ -96,6 +100,7 @@ >> >> ðernet0 { >> status = "okay"; >> + dma-ranges; >> pinctrl-0 = <ðernet0_mii>; >> pinctrl-names = "default"; >> phy-mode = "mii-id"; >> @@ -116,6 +121,7 @@ >> }; >> >> &usbotg_hs { >> + dma-ranges; >> dr_mode = "host"; >> phys = <&usbotg_hs_phy>; >> phy-names = "usb2-phy"; >> diff --git a/arch/arm/boot/dts/stm32f429.dtsi >> b/arch/arm/boot/dts/stm32f429.dtsi >> index 7d624a2..697a133 100644 >> --- a/arch/arm/boot/dts/stm32f429.dtsi >> +++ b/arch/arm/boot/dts/stm32f429.dtsi >> @@ -59,7 +59,6 @@ >> }; >> >> soc { >> - dma-ranges = <0xc0000000 0x0 0x10000000>; >> >> timer2: timer@40000000 { >> compatible = "st,stm32-timer"; >> @@ -472,13 +471,11 @@ >> st,syscon = <&syscfg 0x4>; >> snps,pbl = <8>; >> snps,mixed-burst; >> - dma-ranges; >> status = "disabled"; >> }; >> >> usbotg_hs: usb@40040000 { >> compatible = "snps,dwc2"; >> - dma-ranges; >> reg = <0x40040000 0x40000>; >> interrupts = <77>; >> clocks = <&rcc 0 29>; >> >> >>> diff --git a/arch/arm/boot/dts/stm32f429.dtsi >>> b/arch/arm/boot/dts/stm32f429.dtsi >>> index 0596d60..3a1cfdd 100644 >>> --- a/arch/arm/boot/dts/stm32f429.dtsi >>> +++ b/arch/arm/boot/dts/stm32f429.dtsi >>> @@ -59,8 +59,6 @@ >>> }; >>> >>> soc { >>> - dma-ranges = <0xc0000000 0x0 0x10000000>; >>> - >>> timer2: timer@40000000 { >>> compatible = "st,stm32-timer"; >>> reg = <0x40000000 0x400>; >>> diff --git a/arch/arm/boot/dts/stm32f469-disco.dts >>> b/arch/arm/boot/dts/stm32f469-disco.dts >>> index 9e73656..c2213c0 100644 >>> --- a/arch/arm/boot/dts/stm32f469-disco.dts >>> +++ b/arch/arm/boot/dts/stm32f469-disco.dts >>> @@ -64,6 +64,10 @@ >>> aliases { >>> serial0 = &usart3; >>> }; >>> + >>> + soc { >>> + dma-ranges = <0xc0000000 0x0 0x10000000>; >>> + }; >>> }; >>> >>> &clk_hse { >>> -- >> >> >> >> Br., >> Bruno >> > -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html