From 4af35bdc95c93a0c1ad4512617777e5c18e7401b Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 30 Jun 2014 14:26:09 -0600 Subject: [PATCH] SAM3/4: Important bugfix. Values read from PIO input pins do not change unless clocking to the PIO block is enabled --- configs/sama5d4-ek/README.txt | 24 ++++++++++++----- configs/sama5d4-ek/nsh/defconfig | 45 +++++++++++++++++++++++++++----- 2 files changed, 55 insertions(+), 14 deletions(-) diff --git a/configs/sama5d4-ek/README.txt b/configs/sama5d4-ek/README.txt index 168fb3d71e..8a4d27b706 100644 --- a/configs/sama5d4-ek/README.txt +++ b/configs/sama5d4-ek/README.txt @@ -3330,15 +3330,21 @@ Configurations will need to install a battery in the battery holder (J12) and close the jumper, JP13. - 8. Support for HSMCI0 and HSMCI1 is built-in by default. The SAMA4D4-EK - provides a two SD memory card slots: (1) a full size SD card slot - (J10), and (2) a microSD memory card slot (J11). The full size SD - card slot connects via HSMCI0; the microSD connects vi HSMCI1. - Support for both SD slots can be enabled with the settings provided + 8. Support for HSMCI0 is built-in by default. The SAMA4D4-EK provides + two SD memory card slots: (1) a full size SD card slot (J10), and + (2) a microSD memory card slot (J11). The full size SD card slot + connects via HSMCI0; the microSD connects vi HSMCI1. Support for + the microSD slot could also be enabled with the settings provided in the paragraph entitled "HSMCI Card Slots" above. NOTE: For now I am boot off the microSD slot so, unless are booting - in a different manner, this HSMCI1 slot may not be useful to you. + in a different manner, this HSMCI1 slot may not be useful to you + anyway. + + STATUS: There is an unresolved issue with HSMCI0 as of this writing. + No errors are reported so most the handshaking signals and command + transfers are working, but all data transfers return the value zero + (with or without DMA). This seems like some pin configuration issue. 9. The SAMA5D4-EK includes for an AT25 serial DataFlash. That support is NOT enabled in this configuration. Support for that serial FLASH can @@ -3437,7 +3443,11 @@ To-Do List 2) HSCMI TX DMA support is currently commented out. -3) Some drivers may require some adjustments if you intend to run from SDRAM. +3) Currently HSMCI1 does not work correctly. No errors are reported so all of + the card handshakes must be working, but only zero values are read from the + card (with or without DMA). Sounds like a pin configuration issue. + +4) Some drivers may require some adjustments if you intend to run from SDRAM. That is because in this case macros like BOARD_MCK_FREQUENCY are not constants but are instead function calls: The MCK clock frequency is not known in advance but instead has to be calculated from the bootloader PLL configuration. diff --git a/configs/sama5d4-ek/nsh/defconfig b/configs/sama5d4-ek/nsh/defconfig index f4e0641ce0..1312c31eb5 100644 --- a/configs/sama5d4-ek/nsh/defconfig +++ b/configs/sama5d4-ek/nsh/defconfig @@ -119,6 +119,8 @@ CONFIG_ARMV7A_TOOLCHAIN_CODESOURCERYW=y # CONFIG_ARMV7A_TOOLCHAIN_GNU_EABIW is not set # CONFIG_ARMV7A_TOOLCHAIN_GNU_OABI is not set # CONFIG_ARMV7A_DECODEFIQ is not set +CONFIG_SDIO_DMA=y +# CONFIG_SDIO_WIDTH_D1_ONLY is not set # # SAMA5 Configuration Options @@ -187,7 +189,7 @@ CONFIG_SAMA5_USART4=y # CONFIG_SAMA5_TWI1 is not set # CONFIG_SAMA5_TWI2 is not set # CONFIG_SAMA5_TWI3 is not set -# CONFIG_SAMA5_HSMCI0 is not set +CONFIG_SAMA5_HSMCI0=y # CONFIG_SAMA5_HSMCI1 is not set # CONFIG_SAMA5_SBM is not set # CONFIG_SAMA5_SFC is not set @@ -200,7 +202,7 @@ CONFIG_SAMA5_USART4=y # CONFIG_SAMA5_PWM is not set # CONFIG_SAMA5_ADC is not set # CONFIG_SAMA5_XDMAC0 is not set -# CONFIG_SAMA5_XDMAC1 is not set +CONFIG_SAMA5_XDMAC1=y # CONFIG_SAMA5_UHPHS is not set # CONFIG_SAMA5_UDPHS is not set # CONFIG_SAMA5_EMACB is not set @@ -214,7 +216,19 @@ CONFIG_SAMA5_TRNG=y # CONFIG_SAMA5_FUSE is not set # CONFIG_SAMA5_MPDDRC is not set # CONFIG_SAMA5_VDEC is not set -# CONFIG_SAMA5_PIO_IRQ is not set +CONFIG_SAMA5_PIO_IRQ=y +# CONFIG_SAMA5_PIOA_IRQ is not set +# CONFIG_SAMA5_PIOB_IRQ is not set +# CONFIG_SAMA5_PIOC_IRQ is not set +# CONFIG_SAMA5_PIOD_IRQ is not set +CONFIG_SAMA5_PIOE_IRQ=y + +# +# HSMCI device driver options +# +CONFIG_SAMA5_HSMCI0_XDMAC1=y +# CONFIG_SAMA5_HSMCI_RDPROOF is not set +# CONFIG_SAMA5_HSMCI_WRPROOF is not set # # External Memory Configuration @@ -238,7 +252,7 @@ CONFIG_SAMA5_ISRAM_HEAP=y # # CONFIG_ARCH_NOINTC is not set # CONFIG_ARCH_VECNOTIRQ is not set -# CONFIG_ARCH_DMA is not set +CONFIG_ARCH_DMA=y CONFIG_ARCH_HAVE_IRQPRIO=y # CONFIG_CUSTOM_STACK is not set # CONFIG_ADDRENV is not set @@ -300,6 +314,7 @@ CONFIG_ARCH_HAVE_BUTTONS=y # CONFIG_ARCH_BUTTONS is not set CONFIG_ARCH_HAVE_IRQBUTTONS=y CONFIG_NSH_MMCSDMINOR=0 +CONFIG_NSH_MMCSDSLOTNO=0 # # Board-Specific Options @@ -381,6 +396,7 @@ CONFIG_SIG_SIGUSR1=1 CONFIG_SIG_SIGUSR2=2 CONFIG_SIG_SIGALARM=3 CONFIG_SIG_SIGCONDTIMEDOUT=16 +CONFIG_SIG_SIGWORK=17 # # POSIX Message Queue Options @@ -424,7 +440,17 @@ CONFIG_RTC_DATETIME=y # CONFIG_BCH is not set # CONFIG_INPUT is not set # CONFIG_LCD is not set -# CONFIG_MMCSD is not set +CONFIG_MMCSD=y +CONFIG_MMCSD_NSLOTS=1 +# CONFIG_MMCSD_READONLY is not set +# CONFIG_MMCSD_MULTIBLOCK_DISABLE is not set +# CONFIG_MMCSD_MMCSUPPORT is not set +CONFIG_MMCSD_HAVECARDDETECT=y +CONFIG_ARCH_HAVE_SDIO=y +CONFIG_MMCSD_SDIO=y +# CONFIG_SDIO_PREFLIGHT is not set +# CONFIG_SDIO_MUXBUS is not set +CONFIG_SDIO_BLOCKSETUP=y # CONFIG_MTD is not set # CONFIG_PIPES is not set # CONFIG_PM is not set @@ -602,7 +628,12 @@ CONFIG_LIB_SENDFILE_BUFSIZE=512 # # Non-standard Library Support # -# CONFIG_SCHED_WORKQUEUE is not set +CONFIG_SCHED_WORKQUEUE=y +CONFIG_SCHED_HPWORK=y +CONFIG_SCHED_WORKPRIORITY=192 +CONFIG_SCHED_WORKPERIOD=50000 +CONFIG_SCHED_WORKSTACKSIZE=2048 +# CONFIG_SCHED_LPWORK is not set # CONFIG_LIB_KBDCODEC is not set # CONFIG_LIB_SLCDCODEC is not set @@ -807,7 +838,7 @@ CONFIG_NSH_CONSOLE=y # USB Trace Support # # CONFIG_NSH_ALTCONDEV is not set -# CONFIG_NSH_ARCHINIT is not set +CONFIG_NSH_ARCHINIT=y # # NxWidgets/NxWM