You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by je...@apache.org on 2020/09/01 07:06:02 UTC

[incubator-nuttx] branch master updated: boards: cxd56xx: Add wifi_smp configuration

This is an automated email from the ASF dual-hosted git repository.

jerpelea pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git


The following commit(s) were added to refs/heads/master by this push:
     new 5feab80  boards: cxd56xx: Add wifi_smp configuration
5feab80 is described below

commit 5feab8057cb9d639c2e7967e0de93d4b8fa65295
Author: Masayuki Ishikawa <ma...@gmail.com>
AuthorDate: Tue Sep 1 10:36:07 2020 +0900

    boards: cxd56xx: Add wifi_smp configuration
    
    Summary:
    - This commit adds a wifi_smp configuration for spresense
    - To avoid deadlock, gs2200m_irq_enable() and gs2200m_irq_disable()
      release global spinlock if they are not called on CPU0.
    
    Impact:
    - Only affects spresense:wifi_smp
    
    Testing:
    - Tested with ostest, renew, smp, telnetd.
    - NOTE: tcpserver might be unstable
    
    Signed-off-by: Masayuki Ishikawa <Ma...@jp.sony.com>
---
 boards/arm/cxd56xx/common/src/cxd56_gs2200m.c      |  34 +++++
 .../cxd56xx/spresense/configs/wifi_smp/defconfig   | 167 +++++++++++++++++++++
 2 files changed, 201 insertions(+)

diff --git a/boards/arm/cxd56xx/common/src/cxd56_gs2200m.c b/boards/arm/cxd56xx/common/src/cxd56_gs2200m.c
index fafb2ca..664ab77 100644
--- a/boards/arm/cxd56xx/common/src/cxd56_gs2200m.c
+++ b/boards/arm/cxd56xx/common/src/cxd56_gs2200m.c
@@ -118,7 +118,24 @@ static void gs2200m_irq_enable(void)
 
   if (0 == _enable_count)
     {
+#ifdef CONFIG_SMP
+      bool unlock = false;
+
+      if (0 != up_cpu_index())
+        {
+          unlock = true;
+          spin_unlock_irqrestore(flags);
+        }
+#endif
+
       cxd56_gpioint_enable(PIN_UART2_CTS);
+
+#ifdef CONFIG_SMP
+      if (unlock)
+        {
+          flags = spin_lock_irqsave();
+        }
+#endif
     }
 
   _enable_count++;
@@ -140,7 +157,24 @@ static void gs2200m_irq_disable(void)
 
   if (0 == _enable_count)
     {
+#ifdef CONFIG_SMP
+      bool unlock = false;
+
+      if (0 != up_cpu_index())
+        {
+          unlock = true;
+          spin_unlock_irqrestore(flags);
+        }
+#endif
+
       cxd56_gpioint_disable(PIN_UART2_CTS);
+
+#ifdef CONFIG_SMP
+      if (unlock)
+        {
+          flags = spin_lock_irqsave();
+        }
+#endif
     }
 
   spin_unlock_irqrestore(flags);
diff --git a/boards/arm/cxd56xx/spresense/configs/wifi_smp/defconfig b/boards/arm/cxd56xx/spresense/configs/wifi_smp/defconfig
new file mode 100644
index 0000000..c09fbec
--- /dev/null
+++ b/boards/arm/cxd56xx/spresense/configs/wifi_smp/defconfig
@@ -0,0 +1,167 @@
+#
+# This file is autogenerated: PLEASE DO NOT EDIT IT.
+#
+# You can use "make menuconfig" to make any modifications to the installed .config file.
+# You can then do "make savedefconfig" to generate a new defconfig file that includes your
+# modifications.
+#
+# CONFIG_MMCSD_HAVE_WRITEPROTECT is not set
+# CONFIG_MMCSD_SPI is not set
+# CONFIG_STANDARD_SERIAL is not set
+CONFIG_ARCH="arm"
+CONFIG_ARCH_BOARD="spresense"
+CONFIG_ARCH_BOARD_SPRESENSE=y
+CONFIG_ARCH_CHIP="cxd56xx"
+CONFIG_ARCH_CHIP_CXD56XX=y
+CONFIG_ARCH_STACKDUMP=y
+CONFIG_ARMV7M_USEBASEPRI=y
+CONFIG_AUDIO=y
+CONFIG_AUDIO_CXD56=y
+CONFIG_BOARDCTL_RESET=y
+CONFIG_BOARD_LOOPSPERMSEC=5434
+CONFIG_BOOT_RUNFROMISRAM=y
+CONFIG_BUILTIN=y
+CONFIG_CLOCK_MONOTONIC=y
+CONFIG_CODECS_HASH_MD5=y
+CONFIG_CXD56_AUDIO_BUFFER_SIZE=2048
+CONFIG_CXD56_AUDIO_NUM_BUFFERS=32
+CONFIG_CXD56_BINARY=y
+CONFIG_CXD56_DMAC_SPI5_RX=y
+CONFIG_CXD56_DMAC_SPI5_TX=y
+CONFIG_CXD56_SDIO=y
+CONFIG_CXD56_SPI5=y
+CONFIG_CXD56_SPI=y
+CONFIG_CXD56_USBDEV=y
+CONFIG_DEBUG_FULLOPT=y
+CONFIG_DEBUG_HARDFAULT_ALERT=y
+CONFIG_DEBUG_SYMBOLS=y
+CONFIG_DRIVERS_AUDIO=y
+CONFIG_DRIVERS_WIRELESS=y
+CONFIG_ELF=y
+CONFIG_EXAMPLES_FTPC=y
+CONFIG_EXAMPLES_FTPD=y
+CONFIG_EXAMPLES_HELLO=m
+CONFIG_EXAMPLES_TCPBLASTER=y
+CONFIG_EXAMPLES_TCPBLASTER_GROUPSIZE=500
+CONFIG_EXAMPLES_TCPBLASTER_SENDSIZE=1400
+CONFIG_EXAMPLES_TCPBLASTER_SERVER=y
+CONFIG_EXAMPLES_TCPBLASTER_SERVERIP=0xc0a80a10
+CONFIG_EXAMPLES_TCPBLASTER_TARGET2=y
+CONFIG_EXAMPLES_UDPBLASTER=y
+CONFIG_EXAMPLES_WEBSERVER=y
+CONFIG_FAT_LCNAMES=y
+CONFIG_FAT_LFN=y
+CONFIG_FAT_MAXFNAME=255
+CONFIG_FS_FAT=y
+CONFIG_FS_FATTIME=y
+CONFIG_FS_PROCFS=y
+CONFIG_FS_PROCFS_REGISTER=y
+CONFIG_FS_SMARTFS=y
+CONFIG_FTP_TMPDIR="/mnt/sd0"
+CONFIG_HAVE_CXX=y
+CONFIG_HAVE_CXXINITIALIZE=y
+CONFIG_I2C=y
+CONFIG_LIBC_EXECFUNCS=y
+CONFIG_LIBM=y
+CONFIG_LIB_ENVPATH=y
+CONFIG_LIB_SENDFILE_BUFSIZE=1024
+CONFIG_MEMCPY_VIK=y
+CONFIG_MEMSET_64BIT=y
+CONFIG_MEMSET_OPTSPEED=y
+CONFIG_MMCSD=y
+CONFIG_MMCSD_SDIO=y
+CONFIG_MTD_BYTE_WRITE=y
+CONFIG_MTD_PARTITION=y
+CONFIG_MTD_SMART=y
+CONFIG_MTD_SMART_ENABLE_CRC=y
+CONFIG_MTD_SMART_SECTOR_SIZE=4096
+CONFIG_NAME_MAX=765
+CONFIG_NET=y
+CONFIG_NETDB_DNSCLIENT=y
+CONFIG_NETDEVICES=y
+CONFIG_NETINIT_NETLOCAL=y
+CONFIG_NETUTILS_CODECS=y
+CONFIG_NETUTILS_FTPC=y
+CONFIG_NETUTILS_FTPD=y
+CONFIG_NETUTILS_HTTPD_DIRLIST=y
+CONFIG_NETUTILS_HTTPD_SENDFILE=y
+CONFIG_NETUTILS_TELNETD=y
+CONFIG_NETUTILS_WEBCLIENT=y
+CONFIG_NETUTILS_WEBSERVER=y
+CONFIG_NET_BROADCAST=y
+CONFIG_NET_ICMP=y
+CONFIG_NET_TCP_NO_STACK=y
+CONFIG_NET_UDP_NO_STACK=y
+CONFIG_NET_USRSOCK=y
+CONFIG_NET_USRSOCK_CONNS=16
+CONFIG_NET_USRSOCK_UDP=y
+CONFIG_NFILE_DESCRIPTORS=8
+CONFIG_NFILE_STREAMS=8
+CONFIG_NSH_ARCHINIT=y
+CONFIG_NSH_BUILTIN_APPS=y
+CONFIG_NSH_DISABLE_ARP=y
+CONFIG_NSH_DISABLE_IFUPDOWN=y
+CONFIG_NSH_DISABLE_NSLOOKUP=y
+CONFIG_NSH_FILE_APPS=y
+CONFIG_NSH_READLINE=y
+CONFIG_NSH_WGET_USERAGENT="NuttX/7.2x.x (; http://www.nuttx.org/)"
+CONFIG_NXPLAYER_HTTP_STREAMING_SUPPORT=y
+CONFIG_NXPLAYER_MAINTHREAD_STACKSIZE=3072
+CONFIG_NXPLAYER_PLAYTHREAD_STACKSIZE=3072
+CONFIG_PATH_INITIAL="/mnt/sd0/bin"
+CONFIG_PREALLOC_TIMERS=4
+CONFIG_RAM_SIZE=1572864
+CONFIG_RAM_START=0x0d000000
+CONFIG_READLINE_CMD_HISTORY=y
+CONFIG_RR_INTERVAL=200
+CONFIG_RTC=y
+CONFIG_RTC_ALARM=y
+CONFIG_RTC_DRIVER=y
+CONFIG_RTC_FREQUENCY=32768
+CONFIG_RTC_HIRES=y
+CONFIG_SCHED_HPWORK=y
+CONFIG_SCHED_INSTRUMENTATION=y
+CONFIG_SCHED_INSTRUMENTATION_BUFFER=y
+CONFIG_SCHED_LPWORKPRIORITY=60
+CONFIG_SDCLONE_DISABLE=y
+CONFIG_SMARTFS_ALIGNED_ACCESS=y
+CONFIG_SMARTFS_MAXNAMLEN=30
+CONFIG_SMARTFS_MULTI_ROOT_DIRS=y
+CONFIG_SMP=y
+CONFIG_SMP_NCPUS=2
+CONFIG_SPINLOCK_IRQ=y
+CONFIG_SPRESENSE_EXTENSION=y
+CONFIG_STACK_COLORATION=y
+CONFIG_START_DAY=16
+CONFIG_START_MONTH=7
+CONFIG_START_YEAR=2019
+CONFIG_SYMTAB_ORDEREDBYNAME=y
+CONFIG_SYSLOG_TIMESTAMP=y
+CONFIG_SYSTEM_DHCPC_RENEW=y
+CONFIG_SYSTEM_NSH=y
+CONFIG_SYSTEM_NSH_SYMTAB=y
+CONFIG_SYSTEM_NSH_SYMTAB_ARRAYNAME="g_symtab"
+CONFIG_SYSTEM_NSH_SYMTAB_COUNTNAME="g_nsymbols"
+CONFIG_SYSTEM_NTPC=y
+CONFIG_SYSTEM_NXPLAYER=y
+CONFIG_SYSTEM_NXRECORDER=y
+CONFIG_SYSTEM_SYSTEM=y
+CONFIG_SYSTEM_TASKSET=y
+CONFIG_SYSTEM_USBMSC=y
+CONFIG_TESTING_GETPRIME=y
+CONFIG_TESTING_OSTEST=y
+CONFIG_TESTING_OSTEST_FPUSIZE=64
+CONFIG_TESTING_SMP=y
+CONFIG_UART1_SERIAL_CONSOLE=y
+CONFIG_USBDEV=y
+CONFIG_USBDEV_DMA=y
+CONFIG_USBDEV_DUALSPEED=y
+CONFIG_USBMSC=y
+CONFIG_USBMSC_EPBULKIN=1
+CONFIG_USBMSC_REMOVABLE=y
+CONFIG_USERMAIN_STACKSIZE=3072
+CONFIG_USER_ENTRYPOINT="spresense_main"
+CONFIG_WIRELESS_GS2200M=y
+CONFIG_WL_GS2200M=y
+CONFIG_WL_GS2200M_DISABLE_DHCPC=y
+CONFIG_WL_GS2200M_SPI_FREQUENCY=10000000