diff options
author | patacongo <patacongo@7fd9a85b-ad96-42d3-883c-3090e2eb8679> | 2012-02-21 19:16:41 +0000 |
---|---|---|
committer | patacongo <patacongo@7fd9a85b-ad96-42d3-883c-3090e2eb8679> | 2012-02-21 19:16:41 +0000 |
commit | a663979a1e2b4ccd8f290a707341e2c79ae0b884 (patch) | |
tree | 47b7cb37310946a5d44ccfb5815a928802626820 | |
parent | cb971e195ebb991a16d362c9bb54ad72c9ba2da2 (diff) | |
download | px4-firmware-a663979a1e2b4ccd8f290a707341e2c79ae0b884.tar.gz px4-firmware-a663979a1e2b4ccd8f290a707341e2c79ae0b884.tar.bz2 px4-firmware-a663979a1e2b4ccd8f290a707341e2c79ae0b884.zip |
Fix SDIO DMA (finally)
git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@4409 7fd9a85b-ad96-42d3-883c-3090e2eb8679
-rw-r--r-- | nuttx/ChangeLog | 4 | ||||
-rw-r--r-- | nuttx/arch/arm/src/stm32/stm32_sdio.c | 2 | ||||
-rwxr-xr-x | nuttx/configs/stm3240g-eval/README.txt | 14 | ||||
-rw-r--r-- | nuttx/configs/stm3240g-eval/nsh2/defconfig | 10 |
4 files changed, 24 insertions, 6 deletions
diff --git a/nuttx/ChangeLog b/nuttx/ChangeLog index b69ff8179..f585e1a50 100644 --- a/nuttx/ChangeLog +++ b/nuttx/ChangeLog @@ -2473,3 +2473,7 @@ The received buffer size must be two bytes larger to account for the two byte checksum that is appended to the packet. Otherwise, the last two bytes of real data in the packet will get clobbered. + * arch/arm/src/stm32f40xx_dma.c: The STM32 F4 DMA has (finally) been verified + * arch/arm/src/stm32_sdio.c: STM32 F4 SDIO DMA is now supported + * configs/stm3240g-eval/nsh/defconfig: This configuration now supports SDIO + with DMA (see configs/stm3240g-eval/README.txt for some issues). diff --git a/nuttx/arch/arm/src/stm32/stm32_sdio.c b/nuttx/arch/arm/src/stm32/stm32_sdio.c index cd006c625..60db7373b 100644 --- a/nuttx/arch/arm/src/stm32/stm32_sdio.c +++ b/nuttx/arch/arm/src/stm32/stm32_sdio.c @@ -119,7 +119,7 @@ # if defined(CONFIG_STM32_STM32F10XX) # define CONFIG_SDIO_DMAPRIO DMA_CCR_PRIMED # elif defined(CONFIG_STM32_STM32F40XX) -# define CONFIG_SDIO_DMAPRIO DMA_SCR_PRIMED +# define CONFIG_SDIO_DMAPRIO DMA_SCR_PRIVERYHI # else # error "Unknown STM32 DMA" # endif diff --git a/nuttx/configs/stm3240g-eval/README.txt b/nuttx/configs/stm3240g-eval/README.txt index ef26c0088..e4902947e 100755 --- a/nuttx/configs/stm3240g-eval/README.txt +++ b/nuttx/configs/stm3240g-eval/README.txt @@ -720,9 +720,23 @@ Where <subdir> is one of the following: configuration. 2. RS-232 is disabled, but Telnet is still available for use as a console. + Since RS-232 and SDIO use the same pins (one controlled by JP22), RS232 + and SDIO cannot be used concurrently. 3. This configuration requires that jumper JP22 be set to enable SDIO operation. + 4. In order to use SDIO without overruns, DMA must be used. The STM32 F4 + has 192Kb of SRAM in two banks: 112Kb of "system" SRAM located at + 0x2000:0000 and 64Kb of "TCM" SRAM located at 0x1000:0000. It appears + that you cannot perform DMA from TCM SRAM. The work around that I have now + is simply to omit the 64Kb of TCM SRAM from the heap so that all memory is + allocated from System SRAM. This is done by setting: + + CONFIG_MM_REGIONS=1 + + Then DMA works fine. The downside is, of course, is that we lose 64Kb + of precious SRAM. + ostest: ------ This configuration directory, performs a simple OS test using diff --git a/nuttx/configs/stm3240g-eval/nsh2/defconfig b/nuttx/configs/stm3240g-eval/nsh2/defconfig index 61fcddf21..25ab466b8 100644 --- a/nuttx/configs/stm3240g-eval/nsh2/defconfig +++ b/nuttx/configs/stm3240g-eval/nsh2/defconfig @@ -90,7 +90,7 @@ CONFIG_ARCH_BOOTLOADER=n CONFIG_ARCH_LEDS=y CONFIG_ARCH_BUTTONS=n CONFIG_ARCH_CALIBRATION=n -CONFIG_ARCH_DMA=n +CONFIG_ARCH_DMA=y # # Identify toolchain and linker options @@ -127,7 +127,7 @@ CONFIG_STM32_CRC=n CONFIG_STM32_BKPSRAM=n CONFIG_STM32_CCMDATARAM=n CONFIG_STM32_DMA1=n -CONFIG_STM32_DMA2=n +CONFIG_STM32_DMA2=y CONFIG_STM32_ETHMAC=y CONFIG_STM32_OTGHS=n # AHB2: @@ -500,7 +500,7 @@ CONFIG_DEBUG_CAN=n CONFIG_DEBUG_I2C=n CONFIG_DEBUG_DMA=n CONFIG_HAVE_CXX=y -CONFIG_MM_REGIONS=2 +CONFIG_MM_REGIONS=1 CONFIG_ARCH_LOWPUTC=y CONFIG_RR_INTERVAL=200 CONFIG_SCHED_INSTRUMENTATION=n @@ -598,7 +598,7 @@ CONFIG_DISABLE_SIGNALS=n CONFIG_DISABLE_MQUEUE=n CONFIG_DISABLE_MOUNTPOINT=n CONFIG_DISABLE_ENVIRON=n -CONFIG_DISABLE_POLL=y +CONFIG_DISABLE_POLL=n # # Misc libc settings @@ -782,7 +782,7 @@ CONFIG_FS_WRITEBUFFER=n # CONFIG_MMCSD_HAVECARDDETECT # SDIO driver card detection is 100% accurate # -CONFIG_SDIO_DMA=n +CONFIG_SDIO_DMA=y #CONFIG_SDIO_PRI=128 #CONFIG_SDIO_DMAPRIO #CONFIG_SDIO_WIDTH_D1_ONLY |