From 77f70317bb552c140f0fc3b6872f531b780fd927 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 13 Apr 2016 15:42:56 -0600 Subject: [PATCH 001/307] graphics/: Extend build system so that it will, eventually, be able to build a VNC server and client --- graphics/Kconfig | 3 +++ graphics/Makefile | 1 + graphics/README.txt | 6 +++++ graphics/vnc/Kconfig | 7 ++++++ graphics/vnc/Make.defs | 37 ++++++++++++++++++++++++++++++ graphics/vnc/client/Kconfig | 15 +++++++++++++ graphics/vnc/client/Make.defs | 42 +++++++++++++++++++++++++++++++++++ graphics/vnc/server/Kconfig | 15 +++++++++++++ graphics/vnc/server/Make.defs | 42 +++++++++++++++++++++++++++++++++++ 9 files changed, 168 insertions(+) create mode 100644 graphics/vnc/Kconfig create mode 100644 graphics/vnc/Make.defs create mode 100644 graphics/vnc/client/Kconfig create mode 100644 graphics/vnc/client/Make.defs create mode 100644 graphics/vnc/server/Kconfig create mode 100644 graphics/vnc/server/Make.defs diff --git a/graphics/Kconfig b/graphics/Kconfig index 3e95c2b6bd..074cc0ac73 100644 --- a/graphics/Kconfig +++ b/graphics/Kconfig @@ -721,4 +721,7 @@ config NXSTART_VPLANE endif # NX_NXSTART endif # NX_MULTIUSER + +source "graphics/vnc/Kconfig" + endif # NX diff --git a/graphics/Makefile b/graphics/Makefile index a811100232..f23072a75c 100644 --- a/graphics/Makefile +++ b/graphics/Makefile @@ -50,6 +50,7 @@ include nxbe/Make.defs include nxmu/Make.defs include nxsu/Make.defs include nxterm/Make.defs +include vnc/Make.defs AOBJS = $(ASRCS:.S=$(OBJEXT)) COBJS = $(CSRCS:.c=$(OBJEXT)) diff --git a/graphics/README.txt b/graphics/README.txt index ab24d090d6..3c61000cb1 100644 --- a/graphics/README.txt +++ b/graphics/README.txt @@ -112,6 +112,10 @@ nuttx/../NxWidgets The NxWidgets code is provided as a separate package located outside of the NuttX source tree (probably at this location). +graphics/vnc + The future home of the VNC Remote Frame Buffer (RFB) server and client + implementations. + Installing New Fonts ^^^^^^^^^^^^^^^^^^^^ @@ -295,6 +299,8 @@ CONFIG_NXTK_AUTORAISE CONFIG_NXFONTS_CHARBITS The number of bits in the character set. Current options are only 7 and 8. The default is 7. +CONFIG_VNCSERVER and CONFIG_VNCCLIENT + Enable the VNC RFB server and client, respecitively. Font Selections --------------- diff --git a/graphics/vnc/Kconfig b/graphics/vnc/Kconfig new file mode 100644 index 0000000000..fed2283d62 --- /dev/null +++ b/graphics/vnc/Kconfig @@ -0,0 +1,7 @@ +# +# For a description of the syntax of this configuration file, +# see the file kconfig-language.txt in the NuttX tools repository. +# + +source "graphics/vnc/server/Kconfig" +source "graphics/vnc/client/Kconfig" diff --git a/graphics/vnc/Make.defs b/graphics/vnc/Make.defs new file mode 100644 index 0000000000..cd9866723c --- /dev/null +++ b/graphics/vnc/Make.defs @@ -0,0 +1,37 @@ +############################################################################ +# graphics/vnc/Make.defs +# +# Copyright (C) 2016 Gregory Nutt. All rights reserved. +# Author: Gregory Nutt +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# 3. Neither the name NuttX nor the names of its contributors may be +# used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +############################################################################ + +include vnc/server/Make.defs +include vnc/client/Make.defs diff --git a/graphics/vnc/client/Kconfig b/graphics/vnc/client/Kconfig new file mode 100644 index 0000000000..212cb5cce8 --- /dev/null +++ b/graphics/vnc/client/Kconfig @@ -0,0 +1,15 @@ +# +# For a description of the syntax of this configuration file, +# see the file kconfig-language.txt in the NuttX tools repository. +# + +menuconfig VNCCLIENT + bool "VNC client" + default n + depends on NET_TCP && !NX_LCDDRIVER && !VNC_SERVER && EXPERIMENTAL + ---help--- + Enable support for a VNC Remote Frame Buffer (RFB) client + +if VNCCLIENT + +endif # VNCCLIENT diff --git a/graphics/vnc/client/Make.defs b/graphics/vnc/client/Make.defs new file mode 100644 index 0000000000..03d6f5b5ae --- /dev/null +++ b/graphics/vnc/client/Make.defs @@ -0,0 +1,42 @@ +############################################################################ +# graphics/vnc/client/Make.defs +# +# Copyright (C) 2016 Gregory Nutt. All rights reserved. +# Author: Gregory Nutt +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# 3. Neither the name NuttX nor the names of its contributors may be +# used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +############################################################################ + +ifeq ($(CONFIG_VNCCLIENT),y) + +DEPPATH += --dep-path vnc/client +CFLAGS += ${shell $(INCDIR) $(INCDIROPT) "$(CC)" $(TOPDIR)/graphics/vnc/client} +VPATH += :vnc/client + +endif diff --git a/graphics/vnc/server/Kconfig b/graphics/vnc/server/Kconfig new file mode 100644 index 0000000000..c688edf528 --- /dev/null +++ b/graphics/vnc/server/Kconfig @@ -0,0 +1,15 @@ +# +# For a description of the syntax of this configuration file, +# see the file kconfig-language.txt in the NuttX tools repository. +# + +menuconfig VNCSERVER + bool "VNC server" + default n + depends on NET_TCP && !NX_LCDDRIVER && EXPERIMENTAL + ---help--- + Enable support for a VNC Remote Frame Buffer (RFB) server. + +if VNCSERVER + +endif # VNCSERVER diff --git a/graphics/vnc/server/Make.defs b/graphics/vnc/server/Make.defs new file mode 100644 index 0000000000..6baa8b463b --- /dev/null +++ b/graphics/vnc/server/Make.defs @@ -0,0 +1,42 @@ +############################################################################ +# graphics/vnc/server/Make.defs +# +# Copyright (C) 2016 Gregory Nutt. All rights reserved. +# Author: Gregory Nutt +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# 3. Neither the name NuttX nor the names of its contributors may be +# used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +############################################################################ + +ifeq ($(CONFIG_VNCSERVER),y) + +DEPPATH += --dep-path vnc/server +CFLAGS += ${shell $(INCDIR) $(INCDIROPT) "$(CC)" $(TOPDIR)/graphics/vnc/server} +VPATH += :vnc/server + +endif -- GitLab From 21fb0423d9924f6084d12e2a12d6f79c245be10f Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 13 Apr 2016 17:52:36 -0600 Subject: [PATCH 002/307] VNC: Add beginning of a VNC server header file --- graphics/vnc/server/vnc_server.h | 93 ++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 graphics/vnc/server/vnc_server.h diff --git a/graphics/vnc/server/vnc_server.h b/graphics/vnc/server/vnc_server.h new file mode 100644 index 0000000000..980a7680df --- /dev/null +++ b/graphics/vnc/server/vnc_server.h @@ -0,0 +1,93 @@ +/**************************************************************************** + * graphics/vnc/server/vnc_server.h + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +#ifndef __GRAPHICS_VNC_SERVER_VNC_SERVER_H +#define __GRAPHICS_VNC_SERVER_VNC_SERVER_H + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include + +#include + +#include +#include +#include + +/**************************************************************************** + * Pre-processor Definitions + ****************************************************************************/ + +/**************************************************************************** + * Public Types + ****************************************************************************/ + +/* This enumeration indicates the state of the VNC server */ + +enum vnc_server_e +{ + VNCSERVER_UNINITIALIZED = 0, /* Initial state */ + VNCSERVER_INITIALIZED, /* State structured initialized, but not connected */ + VNCSERVER_CONNECTED, /* Connect to a client, but not yet configured */ + VNCSERVER_CONFIGURED, /* Configured and ready to transfer graphics */ + VNCSERVER_SCANNING, /* Running and activly transferring graphics */ + VNCSERVER_STOPPING /* The server has been asked to stop */ +} + +struct vnc_session_s +{ + /* NX graphics system */ + + NXHANDLE handle; /* NX graphics handle */ + + /* Connection data */ + + struct socket listen; /* Listen socket */ + struct socket connect; /* Connected socket */ + volatile uint8_t state; /* See enum vnc_server_e */ + + /* Display geometry and color characteristics */ + + uint8_t colorfmt /* See include/nuttx/fb.h */ + struct nxgl_size_s screen; /* Size of the screen in pixels x rows */ +}; + +/**************************************************************************** + * Public Function Prototypes + ****************************************************************************/ + +#endif /* __GRAPHICS_VNC_SERVER_VNC_SERVER_H */ -- GitLab From 55788eb5f6aa8204c9c671d9378e298d877ca9d3 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 14 Apr 2016 11:09:18 -0600 Subject: [PATCH 003/307] VNC: Add basic server logic --- graphics/vnc/server/Make.defs | 2 + graphics/vnc/server/vnc_server.c | 122 +++++++++++++++++ graphics/vnc/server/vnc_server.h | 82 ++++++++++- graphics/vnc/server/vnc_session.c | 220 ++++++++++++++++++++++++++++++ 4 files changed, 424 insertions(+), 2 deletions(-) create mode 100644 graphics/vnc/server/vnc_server.c create mode 100644 graphics/vnc/server/vnc_session.c diff --git a/graphics/vnc/server/Make.defs b/graphics/vnc/server/Make.defs index 6baa8b463b..5c168b969a 100644 --- a/graphics/vnc/server/Make.defs +++ b/graphics/vnc/server/Make.defs @@ -35,6 +35,8 @@ ifeq ($(CONFIG_VNCSERVER),y) +CSRCS += vnc_server.c vnc_session.c + DEPPATH += --dep-path vnc/server CFLAGS += ${shell $(INCDIR) $(INCDIROPT) "$(CC)" $(TOPDIR)/graphics/vnc/server} VPATH += :vnc/server diff --git a/graphics/vnc/server/vnc_server.c b/graphics/vnc/server/vnc_server.c new file mode 100644 index 0000000000..2afc14e97f --- /dev/null +++ b/graphics/vnc/server/vnc_server.c @@ -0,0 +1,122 @@ +/**************************************************************************** + * graphics/vnc/vnc_server.c + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include "nuttx/config.h" + +#include +#include +#include + +#include "vnc_server.h" + +/**************************************************************************** + * Pubic Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: vnc_server + * + * Description: + * The VNC server daemon. This daemon is implemented as a kernel thread. + * + * Input Parameters: + * Standard kernel thread arguments (all ignored) + * + * Returned Value: + * This function does not return. + * + ****************************************************************************/ + +int vnc_server(int argc, FAR char *argv[]) +{ + FAR struct vnc_session_s *session; + int display; + int ret; + + DEBUGASSERT(session != NULL); + + /* A single argument is expected: A diplay port number in ASCII form */ + + if (argc != 2) + { + gdbg("ERROR: Unexpected number of arguments: %d\n", argc); + return EXIT_FAILURE; + } + + display = atoi(argv[1]); + if (display < 0 || display >= RFB_MAX_DISPLAYS) + { + gdbg("ERROR: Invalid display number: %d\n", display); + return EXIT_FAILURE; + } + + /* Allocate a session structure for this display */ + + session = vnc_create_session(); + if (session == NULL) + { + gdbg("ERROR: Failed to allocate session\n"); + return EXIT_FAILURE; + } + + /* Loop... handling each each VNC client connection to this display. Only + * a single client is allowed for each display. + */ + + for (; ; ) + { + /* Establish a connection with the VNC client */ + + ret = vnc_connect(session, RFB_DISPLAY_PORT(display)); + if (ret >= 0) + { + gvdbg("New VNC connection\n"); + + /* Start the VNC session */ + + (void)vnc_session(session); + + /* Re-initialize the session structure for re-use */ + + vnc_release_session(session); + } + } + + return EXIT_FAILURE; /* We won't get here */ +} diff --git a/graphics/vnc/server/vnc_server.h b/graphics/vnc/server/vnc_server.h index 980a7680df..ef24920515 100644 --- a/graphics/vnc/server/vnc_server.h +++ b/graphics/vnc/server/vnc_server.h @@ -46,12 +46,19 @@ #include #include +#include #include /**************************************************************************** * Pre-processor Definitions ****************************************************************************/ +/* RFB Port Number */ + +#define RFB_PORT_BASE 5900 +#define RFB_MAX_DISPLAYS 100 +#define RFB_DISPLAY_PORT(d) (RFB_PORT_BASE + (d)) + /**************************************************************************** * Public Types ****************************************************************************/ @@ -66,7 +73,7 @@ enum vnc_server_e VNCSERVER_CONFIGURED, /* Configured and ready to transfer graphics */ VNCSERVER_SCANNING, /* Running and activly transferring graphics */ VNCSERVER_STOPPING /* The server has been asked to stop */ -} +}; struct vnc_session_s { @@ -82,7 +89,7 @@ struct vnc_session_s /* Display geometry and color characteristics */ - uint8_t colorfmt /* See include/nuttx/fb.h */ + uint8_t colorfmt; /* See include/nuttx/fb.h */ struct nxgl_size_s screen; /* Size of the screen in pixels x rows */ }; @@ -90,4 +97,75 @@ struct vnc_session_s * Public Function Prototypes ****************************************************************************/ +/**************************************************************************** + * Name: vnc_connect + * + * Description: + * Wait for a connection from the VNC client + * + * Input Parameters: + * session - An instance of the session structure allocated by + * vnc_create_session(). + * port - The listen port to use + * + * Returned Value: + * Returns zero (OK) on success; a negated errno value on failure. + * + ****************************************************************************/ + +int vnc_connect(FAR struct vnc_session_s *session, int port); + +/**************************************************************************** + * Name: vnc_create_session + * + * Description: + * Create a new, unconnected session + * + * Input Parameters: + * None + * + * Returned Value: + * On success, this function returns the allocated and initialize session + * structure. NULL is returned on failure. + * + ****************************************************************************/ + +FAR struct vnc_session_s *vnc_create_session(void); + +/**************************************************************************** + * Name: vnc_release_session + * + * Description: + * Conclude the current VNC session and free most resources. This function + * re-initializes the session structure; it does not free it so that it + * can be re-used. + * + * Input Parameters: + * session - An instance of the session structure allocated by + * vnc_create_session(). + * + * Returned Value: + * None + * + ****************************************************************************/ + +void vnc_release_session(FAR struct vnc_session_s *session); + +/**************************************************************************** + * Name: vnc_session + * + * Description: + * This function encapsulates the entire VNC session. + * + * Input Parameters: + * session - An instance of the session structure allocated by + * vnc_create_session(). + * + * Returned Value: + * At present, always returns OK + * + ****************************************************************************/ + +int vnc_session(FAR struct vnc_session_s *session); + #endif /* __GRAPHICS_VNC_SERVER_VNC_SERVER_H */ diff --git a/graphics/vnc/server/vnc_session.c b/graphics/vnc/server/vnc_session.c new file mode 100644 index 0000000000..16ec9ff846 --- /dev/null +++ b/graphics/vnc/server/vnc_session.c @@ -0,0 +1,220 @@ +/**************************************************************************** + * graphics/vnc/vnc_session.c + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include + +#include +#include +#include + +#include +#include + +#include +#include + +#include "vnc_server.h" + +/**************************************************************************** + * Private Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: vnc_initialize_session + * + * Description: + * [Re-]initialize a VNC session + * + * Input Parameters: + * session - the VNC session to be initialized + * + * Returned Value: + * None + * + ****************************************************************************/ + +static void vnc_initialize_session(FAR struct vnc_session_s *session) +{ + /* Initialize the session. Set all values to 0 == NULL == false. */ + + memset(session, 0, sizeof(struct vnc_session_s)); + + /* Then initialize only non-zero values */ + /* Initialized, not connected */ + + session->state = VNCSERVER_INITIALIZED; +} + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: vnc_connect + * + * Description: + * Wait for a connection from the VNC client + * + * Input Parameters: + * session - An instance of the session structure allocated by + * vnc_create_session(). + * port - The listen port to use + * + * Returned Value: + * Returns zero (OK) on success; a negated errno value on failure. + * + ****************************************************************************/ + +int vnc_connect(FAR struct vnc_session_s *session, int port) +{ + struct sockaddr_in addr; + int ret; + + /* Create a listening socket */ + + addr.sin_family = AF_INET; + addr.sin_port = htons(port); + addr.sin_addr.s_addr = INADDR_ANY; + + ret = psock_socket(AF_INET, SOCK_STREAM, 0, &session->listen); + if (ret < 0) + { + ret = -get_errno(); + return ret; + } + + /* Bind the listening socket to a local address */ + + ret = psock_bind(&session->listen, (struct sockaddr *)&addr, + sizeof(struct sockaddr_in)); + if (ret < 0) + { + ret = -get_errno(); + goto errout_with_listener; + } + + /* Listen for a connection */ + + ret = psock_listen(&session->listen, 5); + if (ret < 0) + { + ret = -get_errno(); + goto errout_with_listener; + } + + /* Connect to the client */ + + ret = psock_accept(&session->listen, NULL, NULL, &session->connect); + if (ret < 0) + { + ret = -get_errno(); + goto errout_with_listener; + } + + session->state = VNCSERVER_CONNECTED; + return OK; + +errout_with_listener: + psock_close(&session->listen); + return ret; +} + +/**************************************************************************** + * Name: vnc_create_session + * + * Description: + * Create a new, unconnected session + * + * Input Parameters: + * None + * + * Returned Value: + * On success, this function returns the allocated and initialize session + * structure. NULL is returned on failure. + * + ****************************************************************************/ + +FAR struct vnc_session_s *vnc_create_session(void) +{ + FAR struct vnc_session_s *session; + + /* Allocate the session */ + + session = (FAR struct vnc_session_s *) + kmm_zalloc(sizeof(struct vnc_session_s)); + + /* Initialize the session */ + + if (session != NULL) + { + vnc_initialize_session(session); + } + + return session; +} + +/**************************************************************************** + * Name: vnc_release_session + * + * Description: + * Conclude the current VNC session and free most resources. This function + * re-initializes the session structure; it does not free it so that it + * can be re-used. + * + * Input Parameters: + * session - An instance of the session structure allocated by + * vnc_create_session(). + * + * Returned Value: + * None + * + ****************************************************************************/ + +void vnc_release_session(FAR struct vnc_session_s *session) +{ + /* Close any open sockets */ + + if (session->state >= VNCSERVER_CONNECTED) + { + psock_close(&session->connect); + psock_close(&session->listen); + } + + vnc_initialize_session(session); +} -- GitLab From d2f7483c24fc21716c24a690c9f363db3162feab Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 14 Apr 2016 11:32:00 -0600 Subject: [PATCH 004/307] VNC: Add an allocated (local) framebuffer --- graphics/vnc/server/vnc_server.h | 2 ++ graphics/vnc/server/vnc_session.c | 7 +++++++ 2 files changed, 9 insertions(+) diff --git a/graphics/vnc/server/vnc_server.h b/graphics/vnc/server/vnc_server.h index ef24920515..403a2d8465 100644 --- a/graphics/vnc/server/vnc_server.h +++ b/graphics/vnc/server/vnc_server.h @@ -90,7 +90,9 @@ struct vnc_session_s /* Display geometry and color characteristics */ uint8_t colorfmt; /* See include/nuttx/fb.h */ + uint8_t bpp; /* Bits per pixel */ struct nxgl_size_s screen; /* Size of the screen in pixels x rows */ + FAR uint8_t *fb; /* Allocated local frame buffer */ }; /**************************************************************************** diff --git a/graphics/vnc/server/vnc_session.c b/graphics/vnc/server/vnc_session.c index 16ec9ff846..3558993800 100644 --- a/graphics/vnc/server/vnc_session.c +++ b/graphics/vnc/server/vnc_session.c @@ -216,5 +216,12 @@ void vnc_release_session(FAR struct vnc_session_s *session) psock_close(&session->listen); } + /* Free the allocated framebuffer */ + + if (session->fb) + { + kmm_free(session->fb); + } + vnc_initialize_session(session); } -- GitLab From 2ec0ac6eaae172b8d4fb660ac35b64342c9838ae Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 14 Apr 2016 13:52:59 -0600 Subject: [PATCH 005/307] VNC: Add framework to support a framebuffer driver interface --- graphics/vnc/server/Kconfig | 16 + graphics/vnc/server/Make.defs | 2 +- graphics/vnc/server/vnc_fbdev.c | 515 +++++++++++++++++++++++++++++++ graphics/vnc/server/vnc_server.c | 43 +++ graphics/vnc/server/vnc_server.h | 63 +++- 5 files changed, 637 insertions(+), 2 deletions(-) create mode 100644 graphics/vnc/server/vnc_fbdev.c diff --git a/graphics/vnc/server/Kconfig b/graphics/vnc/server/Kconfig index c688edf528..285d690af3 100644 --- a/graphics/vnc/server/Kconfig +++ b/graphics/vnc/server/Kconfig @@ -12,4 +12,20 @@ menuconfig VNCSERVER if VNCSERVER +config VNCSERVER_NDISPLAYS + int "Number of displays" + default 1 + range 1 99 + ---help--- + Specifies the number of RFB displays supported by the server. + Normally this should be one. + +config VNCSERVER_PRIO + int "VNC server thread priority" + default 100 + +config VNCSERVER_STACKSIZE + int "VNC server stack size" + default 2048 + endif # VNCSERVER diff --git a/graphics/vnc/server/Make.defs b/graphics/vnc/server/Make.defs index 5c168b969a..f283e34cb4 100644 --- a/graphics/vnc/server/Make.defs +++ b/graphics/vnc/server/Make.defs @@ -35,7 +35,7 @@ ifeq ($(CONFIG_VNCSERVER),y) -CSRCS += vnc_server.c vnc_session.c +CSRCS += vnc_server.c vnc_session.c vnc_fbdev.c DEPPATH += --dep-path vnc/server CFLAGS += ${shell $(INCDIR) $(INCDIROPT) "$(CC)" $(TOPDIR)/graphics/vnc/server} diff --git a/graphics/vnc/server/vnc_fbdev.c b/graphics/vnc/server/vnc_fbdev.c new file mode 100644 index 0000000000..e3fcd7cc11 --- /dev/null +++ b/graphics/vnc/server/vnc_fbdev.c @@ -0,0 +1,515 @@ +/**************************************************************************** + * graphics/vnc/server/vnc_fbdev.c + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include + +#include +#include +#include +#include +#include + +#include +#include + +#include "vnc_server.h" + +/**************************************************************************** + * Pre-processor Definitions + ****************************************************************************/ + +/* Framebuffer characteristics in bytes */ + +#define FB_WIDTH(s) (((s)->screen.w * (s)->bpp + 7) / 8) +#define FB_SIZE(s) (FB_WIDTH(s) * (s)->screen.h) + +/**************************************************************************** + * Private Types + ****************************************************************************/ + +/* This structure provides the frame buffer interface and also incapulates + * information about the frame buffer instances for each display. + */ + +struct vnc_fbinfo_s +{ + /* The publically visible frame buffer interface. This must appear first + * so that struct vnc_fbinfo_s is cast compatible with struct fb_vtable_s. + */ + + struct fb_vtable_s vtable; + + /* Our private per-display information */ + + bool initialized; /* True: This instance has been initialized */ + uint8_t display; /* Display number */ +}; + +/**************************************************************************** + * Private Function Prototypes + ****************************************************************************/ + +/* Get information about the video controller configuration and the + * configuration of each color plane. + */ + +static int up_getvideoinfo(FAR struct fb_vtable_s *vtable, + FAR struct fb_videoinfo_s *vinfo); +static int up_getplaneinfo(FAR struct fb_vtable_s *vtable, int planeno, + FAR struct fb_planeinfo_s *pinfo); + +/* The following are provided only if the video hardware supports RGB color + * mapping. + */ + +#ifdef CONFIG_FB_CMAP +static int up_getcmap(FAR struct fb_vtable_s *vtable, + FAR struct fb_cmap_s *cmap); +static int up_putcmap(FAR struct fb_vtable_s *vtable, + FAR const struct fb_cmap_s *cmap); +#endif + +/* The following are provided only if the video hardware supports a hardware + * cursor. + */ + +#ifdef CONFIG_FB_HWCURSOR +static int up_getcursor(FAR struct fb_vtable_s *vtable, + FAR struct fb_cursorattrib_s *attrib); +static int up_setcursor(FAR struct fb_vtable_s *vtable, + FAR struct fb_setcursor_s *setttings); +#endif + +/**************************************************************************** + * Private Data + ****************************************************************************/ + +/* Current cursor position */ + +#ifdef CONFIG_FB_HWCURSOR +static struct fb_cursorpos_s g_cpos; + +/* Current cursor size */ + +#ifdef CONFIG_FB_HWCURSORSIZE +static struct fb_cursorsize_s g_csize; +#endif +#endif + +/* The framebuffer object -- There is no private state information in this simple + * framebuffer simulation. + */ + +static struct vnc_fbinfo_s g_fbinfo[RFB_MAX_DISPLAYS]; + +/**************************************************************************** + * Public Data + ****************************************************************************/ + +/**************************************************************************** + * Private Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: up_getvideoinfo + ****************************************************************************/ + +static int up_getvideoinfo(FAR struct fb_vtable_s *vtable, + FAR struct fb_videoinfo_s *vinfo) +{ + FAR struct vnc_fbinfo_s *fbinfo = (FAR struct vnc_fbinfo_s *)vtable; + FAR struct vnc_session_s *session; + + gvdbg("vtable=%p vinfo=%p\n", vtable, vinfo); + + DEBUGASSERT(fbinfo != NULL && vinfo != NULL); + if (fbinfo != NULL && vinfo != NULL) + { + session = vnc_find_session(fbinfo->display); + if (session == NULL || session->state != VNCSERVER_SCANNING) + { + gdbg("ERROR: session is not connected\n"); + return -ENOTCONN; + } + + /* Return the requested video info */ + + vinfo->fmt = session->colorfmt; + vinfo->xres = session->screen.w; + vinfo->yres = session->screen.h; + vinfo->nplanes = 1; + + return OK; + } + + gdbg("ERROR: Invalid arguments\n"); + return -EINVAL; +} + +/**************************************************************************** + * Name: up_getplaneinfo + ****************************************************************************/ + +static int up_getplaneinfo(FAR struct fb_vtable_s *vtable, int planeno, + FAR struct fb_planeinfo_s *pinfo) +{ + FAR struct vnc_fbinfo_s *fbinfo = (FAR struct vnc_fbinfo_s *)vtable; + FAR struct vnc_session_s *session; + + gvdbg("vtable=%p planeno=%d pinfo=%p\n", vtable, planeno, pinfo); + + DEBUGASSERT(fbinfo != NULL && pinfo != NULL && planeno == 0); + if (fbinfo != NULL && pinfo != NULL && planeno == 0) + { + session = vnc_find_session(fbinfo->display); + if (session == NULL || session->state != VNCSERVER_SCANNING) + { + gdbg("ERROR: session is not connected\n"); + return -ENOTCONN; + } + + DEBUGASSERT(session->fb != NULL); + + pinfo->fbmem = (FAR void *)&session->fb; + pinfo->fblen = FB_SIZE(session); + pinfo->stride = FB_WIDTH(session); + pinfo->bpp = session->bpp; + + return OK; + } + + gdbg("Returning EINVAL\n"); + return -EINVAL; +} + +/**************************************************************************** + * Name: up_getcmap + ****************************************************************************/ + +#ifdef CONFIG_FB_CMAP +static int up_getcmap(FAR struct fb_vtable_s *vtable, + FAR struct fb_cmap_s *cmap) +{ + FAR struct vnc_fbinfo_s *fbinfo = (FAR struct vnc_fbinfo_s *)vtable; + FAR struct vnc_session_s *session; + int i; + + gvdbg("vtable=%p cmap=%p\n", vtable, cmap); + + DEBUGASSERT(fbinfo != NULL && cmap != NULL); + + if (fbinfo != NULL && cmap != NULL) + { + session = vnc_find_session(fbinfo->display); + if (session == NULL || session->state != VNCSERVER_SCANNING) + { + gdbg("ERROR: session is not connected\n"); + return -ENOTCONN; + } + + gvdbg("first=%d len=%d\n", vcmap->first, cmap->len); +#warning Missing logic + + return OK; + } + + gdbg("Returning EINVAL\n"); + return -EINVAL; +} +#endif + +/**************************************************************************** + * Name: up_putcmap + ****************************************************************************/ + +#ifdef CONFIG_FB_CMAP +static int up_putcmap(FAR struct fb_vtable_s *vtable, FAR const struct fb_cmap_s *cmap) +{ + FAR struct vnc_fbinfo_s *fbinfo = (FAR struct vnc_fbinfo_s *)vtable; + FAR struct vnc_session_s *session; + int i; + + gvdbg("vtable=%p cmap=%p\n", vtable, cmap); + + DEBUGASSERT(fbinfo != NULL && cmap != NULL); + + if (fbinfo != NULL && cmap != NULL) + { + session = vnc_find_session(fbinfo->display); + if (session == NULL || session->state != VNCSERVER_SCANNING) + { + gdbg("ERROR: session is not connected\n"); + return -ENOTCONN; + } + + gvdbg("first=%d len=%d\n", vcmap->first, cmap->len); +#warning Missing logic + + return OK; + } + + gdbg("Returning EINVAL\n"); + return -EINVAL; +} +#endif + +/**************************************************************************** + * Name: up_getcursor + ****************************************************************************/ + +#ifdef CONFIG_FB_HWCURSOR +static int up_getcursor(FAR struct fb_vtable_s *vtable, + FAR struct fb_cursorattrib_s *attrib) +{ + FAR struct vnc_fbinfo_s *fbinfo = (FAR struct vnc_fbinfo_s *)vtable; + FAR struct vnc_session_s *session; + int i; + + gvdbg("vtable=%p attrib=%p\n", vtable, attrib); + + DEBUGASSERT(fbinfo != NULL && attrib != NULL); + + if (fbinfo != NULL && attrib != NULL) + { + session = vnc_find_session(fbinfo->display); + if (session == NULL || session->state != VNCSERVER_SCANNING) + { + gdbg("ERROR: session is not connected\n"); + return -ENOTCONN; + } + +#warning Missing logic + + return OK; + } + gdbg("Returning EINVAL\n"); + return -EINVAL; +} +#endif + +/**************************************************************************** + * Name: + ****************************************************************************/ + +#ifdef CONFIG_FB_HWCURSOR +static int up_setcursor(FAR struct fb_vtable_s *vtable, + FAR struct fb_setcursor_s *settings) +{ + FAR struct vnc_fbinfo_s *fbinfo = (FAR struct vnc_fbinfo_s *)vtable; + FAR struct vnc_session_s *session; + int i; + + gvdbg("vtable=%p settings=%p\n", vtable, settings); + + DEBUGASSERT(fbinfo != NULL && settings != NULL); + + if (fbinfo != NULL && settings != NULL) + { + session = vnc_find_session(fbinfo->display); + if (session == NULL || session->state != VNCSERVER_SCANNING) + { + gdbg("ERROR: session is not connected\n"); + return -ENOTCONN; + } + + gvdbg("flags: %02x\n", settings->flags); + if ((settings->flags & FB_CUR_SETPOSITION) != 0) + { +#warning Missing logic + } + +#ifdef CONFIG_FB_HWCURSORSIZE + if ((settings->flags & FB_CUR_SETSIZE) != 0) + { +#warning Missing logic + } +#endif +#ifdef CONFIG_FB_HWCURSORIMAGE + if ((settings->flags & FB_CUR_SETIMAGE) != 0) + { +#warning Missing logic + } +#endif + return OK; + } + + gdbg("Returning EINVAL\n"); + return -EINVAL; +} +#endif + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: up_fbinitialize + * + * Description: + * Initialize the framebuffer video hardware associated with the display. + * + * Input parameters: + * display - In the case of hardware with multiple displays, this + * specifies the display. Normally this is zero. + * + * Returned Value: + * Zero is returned on success; a negated errno value is returned on any + * failure. + * + ****************************************************************************/ + +int up_fbinitialize(int display) +{ + FAR char *argv[2]; + char str[8]; + pid_t pid; + + /* Start the VNC server kernel thread. + * REVISIT: There is no protection for the case where this function is + * called more that once. + */ + + gvdbg("Starting the VNC server for display %d\n", display); + DEBUGASSERT(display >= 8 && display < RFB_MAX_DISPLAYS); + + (void)itoa(display, str, 10); + argv[0] = str; + argv[1] = NULL; + + pid = kernel_thread("vnc_server", CONFIG_VNCSERVER_PRIO, + CONFIG_VNCSERVER_STACKSIZE, + (main_t)vnc_server, argv); + if (pid < 0) + { + gdbg("ERROR: Failed to start the VNC server: %d\n", (int)pid); + return (int)pid; + } + + /* Wait for the VNC client to connect and for the RFB to be ready */ +#warning Missing logic + + return OK; +} + +/**************************************************************************** + * Name: up_fbgetvplane + * + * Description: + * Return a a reference to the framebuffer object for the specified video + * plane of the specified plane. Many OSDs support multiple planes of video. + * + * Input parameters: + * display - In the case of hardware with multiple displays, this + * specifies the display. Normally this is zero. + * vplane - Identifies the plane being queried. + * + * Returned Value: + * A non-NULL pointer to the frame buffer access structure is returned on + * success; NULL is returned on any failure. + * + ****************************************************************************/ + +FAR struct fb_vtable_s *up_fbgetvplane(int display, int vplane) +{ + FAR struct vnc_session_s *session = vnc_find_session(display); + FAR struct vnc_fbinfo_s *fbinfo; + + /* Verify that the session is still valid */ + + if (session->state != VNCSERVER_SCANNING) + { + return NULL; + } + + if (vplane == 0) + { + /* Has the framebuffer information been initialized for this display? */ + + fbinfo = &g_fbinfo[display]; + if (!fbinfo->initialized) + { + fbinfo->vtable.getvideoinfo = up_getvideoinfo, + fbinfo->vtable.getplaneinfo = up_getplaneinfo, +#ifdef CONFIG_FB_CMAP + fbinfo->vtable.getcmap = up_getcmap, + fbinfo->vtable.putcmap = up_putcmap, +#endif +#ifdef CONFIG_FB_HWCURSOR + fbinfo->vtable.getcursor = up_getcursor, + fbinfo->vtable.setcursor = up_setcursor, +#endif + fbinfo->display = display; + fbinfo->initialized = true; + } + + return &fbinfo->vtable; + } + else + { + return NULL; + } +} + +/**************************************************************************** + * Name: up_fbuninitialize + * + * Description: + * Uninitialize the framebuffer support for the specified display. + * + * Input Parameters: + * display - In the case of hardware with multiple displays, this + * specifies the display. Normally this is zero. + * + * Returned Value: + * None + * + ****************************************************************************/ + +void up_fbuninitialize(int display) +{ + FAR struct vnc_session_s *session = vnc_find_session(display); + FAR struct vnc_fbinfo_s *fbinfo; + + DEBUGASSERT(session != NULL); + fbinfo = &g_fbinfo[display]; +#warning Missing logic + UNUSED(session); + UNUSED(fbinfo); +} + diff --git a/graphics/vnc/server/vnc_server.c b/graphics/vnc/server/vnc_server.c index 2afc14e97f..3f44fcb83b 100644 --- a/graphics/vnc/server/vnc_server.c +++ b/graphics/vnc/server/vnc_server.c @@ -45,6 +45,16 @@ #include "vnc_server.h" +/**************************************************************************** + * Private Data + ****************************************************************************/ + +/* Given a display number as an index, the following array can be used to + * look-up the session structure for that display. + */ + +static FAR struct vnc_session_s *g_vnc_sessions[RFB_MAX_DISPLAYS]; + /**************************************************************************** * Pubic Functions ****************************************************************************/ @@ -95,6 +105,8 @@ int vnc_server(int argc, FAR char *argv[]) return EXIT_FAILURE; } + g_vnc_sessions[display] = session; + /* Loop... handling each each VNC client connection to this display. Only * a single client is allowed for each display. */ @@ -120,3 +132,34 @@ int vnc_server(int argc, FAR char *argv[]) return EXIT_FAILURE; /* We won't get here */ } + +/**************************************************************************** + * Name: vnc_find_session + * + * Description: + * Return the session structure associated with this display. + * + * Input Parameters: + * display - The display number of interest. + * + * Returned Value: + * Returns the instance of the session structure allocated by + * vnc_create_session() for this display. NULL will be returned if the + * server has not yet been started or if the display number is out of + * range. + * + ****************************************************************************/ + +FAR struct vnc_session_s *vnc_find_session(int display) +{ + FAR struct vnc_session_s *session = NULL; + + DEBUGASSERT(display >= 0 && display < RFB_MAX_DISPLAYS); + + if (display >= 0 && display < RFB_MAX_DISPLAYS) + { + session = &g_vnc_sessions[display]; + } + + return session; +} diff --git a/graphics/vnc/server/vnc_server.h b/graphics/vnc/server/vnc_server.h index 403a2d8465..5b1523c6a4 100644 --- a/graphics/vnc/server/vnc_server.h +++ b/graphics/vnc/server/vnc_server.h @@ -52,11 +52,24 @@ /**************************************************************************** * Pre-processor Definitions ****************************************************************************/ +/* Configuration */ + +#ifndef CONFIG_VNCSERVER_NDISPLAYS +# define CONFIG_VNCSERVER_NDISPLAYS 1 +#endif + +#ifndef CONFIG_VNCSERVER_PRIO +# define CONFIG_VNCSERVER_PRIO 100 +#endif + +#ifndef CONFIG_VNCSERVER_STACKSIZE +# define CONFIG_VNCSERVER_STACKSIZE 2048 +#endif /* RFB Port Number */ #define RFB_PORT_BASE 5900 -#define RFB_MAX_DISPLAYS 100 +#define RFB_MAX_DISPLAYS CONFIG_VNCSERVER_NDISPLAYS #define RFB_DISPLAY_PORT(d) (RFB_PORT_BASE + (d)) /**************************************************************************** @@ -99,6 +112,30 @@ struct vnc_session_s * Public Function Prototypes ****************************************************************************/ +#ifdef __cplusplus +#define EXTERN extern "C" +extern "C" +{ +#else +#define EXTERN extern +#endif + +/**************************************************************************** + * Name: vnc_server + * + * Description: + * The VNC server daemon. This daemon is implemented as a kernel thread. + * + * Input Parameters: + * Standard kernel thread arguments (all ignored) + * + * Returned Value: + * This function does not return. + * + ****************************************************************************/ + +int vnc_server(int argc, FAR char *argv[]); + /**************************************************************************** * Name: vnc_connect * @@ -170,4 +207,28 @@ void vnc_release_session(FAR struct vnc_session_s *session); int vnc_session(FAR struct vnc_session_s *session); +/**************************************************************************** + * Name: vnc_find_session + * + * Description: + * Return the session structure associated with this display. + * + * Input Parameters: + * display - The display number of interest. + * + * Returned Value: + * Returns the instance of the session structure allocated by + * vnc_create_session() for this display. NULL will be returned if the + * server has not yet been started or if the display number is out of + * range. + * + ****************************************************************************/ + +FAR struct vnc_session_s *vnc_find_session(int display); + +#undef EXTERN +#ifdef __cplusplus +} +#endif + #endif /* __GRAPHICS_VNC_SERVER_VNC_SERVER_H */ -- GitLab From 38cc8355c2c939f5254298e86752daa9c7271f9c Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 14 Apr 2016 16:19:04 -0600 Subject: [PATCH 006/307] VNC: Add X11-to-NuttX character mapping --- graphics/vnc/server/Kconfig | 8 + graphics/vnc/server/Make.defs | 4 + graphics/vnc/server/vnc_keymap.c | 459 +++++++++++++++++++++++++++++++ graphics/vnc/server/vnc_server.c | 6 +- graphics/vnc/server/vnc_server.h | 21 ++ 5 files changed, 496 insertions(+), 2 deletions(-) create mode 100644 graphics/vnc/server/vnc_keymap.c diff --git a/graphics/vnc/server/Kconfig b/graphics/vnc/server/Kconfig index 285d690af3..02fba2b63a 100644 --- a/graphics/vnc/server/Kconfig +++ b/graphics/vnc/server/Kconfig @@ -28,4 +28,12 @@ config VNCSERVER_STACKSIZE int "VNC server stack size" default 2048 +config VNCSERVER_KBDENCODE + bool "Encode keyboard input" + default n + depends on NXTERM_NXKBDIN + ---help--- + Use a special encoding of keyboard characters as defined in + include/nuttx/input/kbd_coded.h. + endif # VNCSERVER diff --git a/graphics/vnc/server/Make.defs b/graphics/vnc/server/Make.defs index f283e34cb4..830e840c44 100644 --- a/graphics/vnc/server/Make.defs +++ b/graphics/vnc/server/Make.defs @@ -37,6 +37,10 @@ ifeq ($(CONFIG_VNCSERVER),y) CSRCS += vnc_server.c vnc_session.c vnc_fbdev.c +ifeq ($(CONFIG_NX_KBD),y) +CSRCS += vnc_keymap.c +endif + DEPPATH += --dep-path vnc/server CFLAGS += ${shell $(INCDIR) $(INCDIROPT) "$(CC)" $(TOPDIR)/graphics/vnc/server} VPATH += :vnc/server diff --git a/graphics/vnc/server/vnc_keymap.c b/graphics/vnc/server/vnc_keymap.c new file mode 100644 index 0000000000..e06dcf7300 --- /dev/null +++ b/graphics/vnc/server/vnc_keymap.c @@ -0,0 +1,459 @@ +/**************************************************************************** + * graphics/vnc/vnc_keymap.c + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include + +#include +#include + +#include + +#define XK_MISCELLANY 1 /* Select X11 character set */ +#define XK_LATIN1 1 +#define XK_XKB_KEYS 1 + +#include +#include + +#include "vnc_server.h" + +/**************************************************************************** + * Pre-processor Definitions + ****************************************************************************/ + +#define FIRST_PRTCHAR ASCII_SPACE +#define LAST_PRTCHAR ASCII_TILDE +#define NPRTCHARS (ASCII_TILDE + ASCII_SPACE - 1) + +/**************************************************************************** + * Private types + ****************************************************************************/ + +enum vnc_modifier_e +{ + MOD_SHIFT = 0, /* Left or right shift key */ + MOD_CONTROL, /* Left or right control key */ + MOD_ALT, /* Alt key */ + MOD_CAPSLOCK, /* Caps lock */ + MOD_SHIFTLOCK, /* Shift lock */ +#ifdef CONFIG_VNCSERVER_KBDENCODE + MOD_SCROLLLOCK, /* Scroll lock */ + MOD_NUMLOCK, /* Num lock */ +#endif + NMODIFIERS +}; + +struct vnc_keymap_s +{ + uint16_t nxcode; + uint16_t x11code; +}; + +/**************************************************************************** + * Private Data + ****************************************************************************/ + +/* Special key modifiers */ + +static const struct vnc_keymap_s g_modifiers[] = +{ + {MOD_SHIFT, XK_Shift_L}, + {MOD_SHIFT, XK_Shift_R}, + {MOD_CONTROL, XK_Control_L}, + {MOD_CONTROL, XK_Control_R}, + {MOD_ALT, XK_Alt_L}, + {MOD_ALT, XK_Alt_R}, + {MOD_CAPSLOCK, XK_Caps_Lock}, + {MOD_SHIFTLOCK, XK_Shift_Lock}, +#ifdef CONFIG_VNCSERVER_KBDENCODE + {MOD_SCROLLLOCK, XK_Scroll_Lock}, + {MOD_NUMLOCK, XK_Num_Lock}, +#endif +}; + +#define G_MODIFIERS_NELEM (sizeof(g_modifiers) / sizeof(struct vnc_keymap_s)) + +/* Map special mappings for X11 codes to ASCII characters */ + +static const struct vnc_keymap_s g_asciimap[] = +{ + /* Control characters */ + +#ifdef CONFIG_VNCSERVER_KBDENCODE + {ASCII_BS, XK_BackSpace}, +#endif + {ASCII_TAB, XK_Tab}, + {ASCII_LF, XK_Linefeed}, + {ASCII_CR, XK_Return}, + {ASCII_ESC, XK_Escape}, +#ifdef CONFIG_VNCSERVER_KBDENCODE + {ASCII_DEL, XK_Delete}, +#endif + + /* Alternative encodings */ + + {'`', XK_dead_grave}, + {'', XK_dead_acute}, + {ASCII_TILDE, XK_dead_tilde}, + {ASCII_CARET, XK_dead_circumflex}, + + /* Keypad aliases */ + + {ASCII_0, XK_KP_0}, + {ASCII_1, XK_KP_1}, + {ASCII_2, XK_KP_2}, + {ASCII_3, XK_KP_3}, + {ASCII_4, XK_KP_4}, + {ASCII_5, XK_KP_5}, + {ASCII_6, XK_KP_6}, + {ASCII_7, XK_KP_7}, + {ASCII_8, XK_KP_8}, + {ASCII_9, XK_KP_9}, + + {ASCII_ASTERISK, XK_KP_Multiply}, + {ASCII_PLUS, XK_KP_Add}, + {ASCII_COMMA, XK_KP_Separator}, + {ASCII_HYPHEN, XK_KP_Subtract}, + {ASCII_PERIOD, XK_KP_Decimal}, + {ASCII_DIVIDE, XK_KP_Divide}, + + {ASCII_SPACE, XK_KP_Space}, + {ASCII_TAB, XK_KP_Tab}, + {ASCII_CR, XK_KP_Enter} +#ifdef CONFIG_VNCSERVER_KBDENCODE + , {ASCII_DEL, XK_KP_Delete} +#endif +}; + +#define G_ASCIIMAP_NELEM (sizeof(g_asciimap) / sizeof(struct vnc_keymap_s)) + +#ifdef CONFIG_VNCSERVER_KBDENCODE +static const struct vnc_keymap_s g_cursor[] = +{ + {KEYCODE_BACKDEL, XK_BackSpace}, + {KEYCODE_FWDDEL, XK_Delete}, + {KEYCODE_FWDDEL, XK_KP_Delete}, + {KEYCODE_HOME, XK_Home}, + {KEYCODE_HOME, XK_KP_Home}, + {KEYCODE_END, XK_End}, + {KEYCODE_END, XK_KP_End}, + {KEYCODE_LEFT, XK_Left}, + {KEYCODE_LEFT, XK_KP_Left}, + {KEYCODE_RIGHT, XK_Right}, + {KEYCODE_RIGHT, XK_KP_Right}, + {KEYCODE_UP, XK_Up}, + {KEYCODE_UP, XK_KP_Up}, + {KEYCODE_DOWN, XK_Down}, + {KEYCODE_DOWN, XK_KP_Down}, + {KEYCODE_PAGEUP, XK_Page_Up}, + {KEYCODE_PAGEUP, XK_KP_Prior}, + {KEYCODE_PAGEUP, XK_KP_Page_Up}, + {KEYCODE_PAGEDOWN, XK_Page_Down}, + {KEYCODE_PAGEDOWN, XK_KP_Next}, + {KEYCODE_PAGEDOWN, XK_KP_Page_Down}, + {KEYCODE_INSERT, XK_Insert}, + {KEYCODE_INSERT, XK_KP_Insert}, + + {KEYCODE_SELECT, XK_Select}, + {KEYCODE_EXECUTE, XK_Execute}, + {KEYCODE_HELP, XK_Help}, + {KEYCODE_MENU, XK_Alt_L}, + {KEYCODE_MENU, XK_Alt_R}, + {KEYCODE_PAUSE, XK_Pause}, + {KEYCODE_PRTSCRN, XK_Print}, + {KEYCODE_CLEAR, XK_Clear}, + {MOD_SCROLLLOCK, XK_Scroll_Lock}, + {MOD_NUMLOCK, XK_Num_Lock}, + + {KEYCODE_F1, XK_KP_F1}, + {KEYCODE_F1, XK_F1}, + {KEYCODE_F2, XK_KP_F2}, + {KEYCODE_F2, XK_F2}, + {KEYCODE_F3, XK_KP_F3}, + {KEYCODE_F3, XK_F3}, + {KEYCODE_F4, XK_KP_F4}, + {KEYCODE_F4, XK_F4}, + {KEYCODE_F5, XK_F5}, + {KEYCODE_F6, XK_F6}, + {KEYCODE_F7, XK_F7}, + {KEYCODE_F8, XK_F8}, + {KEYCODE_F9, XK_F9}, + {KEYCODE_F10, XK_F10}, + {KEYCODE_F11, XK_F11}, + {KEYCODE_F12, XK_F12}, + {KEYCODE_F13, XK_F13}, + {KEYCODE_F14, XK_F14}, + {KEYCODE_F15, XK_F15}, + {KEYCODE_F16, XK_F16}, + {KEYCODE_F17, XK_F17}, + {KEYCODE_F18, XK_F18}, + {KEYCODE_F19, XK_F19}, + {KEYCODE_F20, XK_F20}, + {KEYCODE_F21, XK_F21}, + {KEYCODE_F22, XK_F22}, + {KEYCODE_F23, XK_F23}, + {KEYCODE_F24, XK_F24}, +}; +#endif + +/* Changes the case of a character. Based on US keyboard layout */ + +static const uint8_t g_caseswap[NPRTCHARS] = +{ + ASCII_SPACE, ASCII_1, ASCII_RSQUOTE, ASCII_3, /* ! " # */ + ASCII_4, ASCII_5, ASCII_7, ASCII_QUOTE, /* $ % & ' */ + ASCII_9, ASCII_0, ASCII_8, ASCII_EQUAL, /* ( ) * + */ + ASCII_LT, ASCII_UNDERSCORE, ASCII_GT, ASCII_QUESTION, /* , - . / */ + ASCII_RPAREN, ASCII_EXCLAM, ASCII_AT, ASCII_NUMBER, /* 0 1 2 3 */ + ASCII_DOLLAR, ASCII_PERCENT, ASCII_CIRCUMFLEX, ASCII_AMPERSAND, /* 4 5 6 7 */ + ASCII_ASTERISK, ASCII_LPAREN, ASCII_SEMICOLON, ASCII_COLON, /* 8 9 : ; */ + ASCII_COMMA, ASCII_PLUS, ASCII_PERIOD, ASCII_SLASH, /* < = > ? */ + ASCII_2, ASCII_a, ASCII_b, ASCII_c, /* @ A B C */ + ASCII_d, ASCII_e, ASCII_f, ASCII_g, /* D E F G */ + ASCII_h, ASCII_i, ASCII_j, ASCII_k, /* H I J K */ + ASCII_l, ASCII_m, ASCII_n, ASCII_o, /* L M N O */ + ASCII_p, ASCII_q, ASCII_r, ASCII_s, /* P Q R S */ + ASCII_t, ASCII_u, ASCII_v, ASCII_v, /* T U V W */ + ASCII_x, ASCII_y, ASCII_z, ASCII_LBRACE, /* X Y Z [ */ + ASCII_VERTBAR, ASCII_RBRACE, ASCII_6, ASCII_HYPHEN, /* \ ] ^ _ */ + ASCII_TILDE, ASCII_A, ASCII_B, ASCII_C, /* ' a b c */ + ASCII_D, ASCII_E, ASCII_F, ASCII_G, /* c e f g */ + ASCII_H, ASCII_I, ASCII_J, ASCII_K, /* h i j k */ + ASCII_L, ASCII_M, ASCII_N, ASCII_O, /* l m n o */ + ASCII_P, ASCII_Q, ASCII_R, ASCII_S, /* p q r s */ + ASCII_T, ASCII_U, ASCII_V, ASCII_W, /* t u v w */ + ASCII_X, ASCII_Y, ASCII_Z, ASCII_LBRACKET, /* x y z { */ + ASCII_BACKSLASH, ASCII_RBRACKET, ASCII_RSQUOTE, /* | } ~ */ +}; + +/* State of each modifier */ + +static bool g_modstate[NMODIFIERS]; + +/**************************************************************************** + * Private Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: vnc_kbd_lookup + * + * Description: + * Attempt to map the X11 keycode by searching in a lookup table. + * + ****************************************************************************/ + +static int vnc_kbd_lookup(FAR const struct vnc_keymap_s *table, + unsigned int nelem, uint32_t keysym) +{ + int i; + + /* First just try to map the virtual keycode using our lookup-table */ + + for (i = 0; i < nelem; i++) + { + if (table[i].x11code == keysym) + { + /* We have a match */ + + return (int)table[i].nxcode; + } + } + + /* No match */ + + return -EINVAL; +} + +/**************************************************************************** + * Name: vnc_kbd_ascii + * + * Description: + * Attempt to map the X11 keycode into the corresponding ASCII code. + * + ****************************************************************************/ + +static int vnc_kbd_ascii(uint32_t keysym) +{ + /* ISO/IEC 8859-1 Latin1 matches C ASCII in this range: */ + +#ifdef CONFIG_VNCSERVER_KBDENCODE + if (keysym >= ASCII_SPACE && keysym < ASCII_DEL) +#else + if (keysym >= ASCII_SPACE && keysym <= ASCII_DEL) +#endif + { + return (int)keysym; + } + + /* Perform a lookup to handler some special cases */ + + return vnc_kbd_lookup(g_asciimap, G_ASCIIMAP_NELEM, keysym); +} + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: vnc_key_map + * + * Description: + * Map the receive X11 keysym into something understood by NuttX and route + * that through NX to the appropriate window. + * + * Input Parameters: + * session - An instance of the session structure allocated by + * vnc_create_session(). + * keysym - The X11 keysym value (see include/nuttx/inputx11_keysymdef) + * keydown - True: Key pressed; False: Key released + * + * Returned Value: + * None + * + ****************************************************************************/ + +void vnc_key_map(FAR struct vnc_session_s *session, uint32_t keysym, + bool keydown) +{ + int16_t keych; + uint8_t ch; + int ret; + + /* Check for modifier keys */ + + keych = vnc_kbd_lookup(g_modifiers, G_MODIFIERS_NELEM, keysym); + if (keych >= 0) + { + g_modstate[keych] = keydown; + return; + } + + /* Try to convert the keycode to an ASCII value */ + + keych = vnc_kbd_ascii((char)(keysym & 255)); + if (keych >= 0) + { + /* It is a simple ASCII-mappable LATIN1 character. Now we need + * to apply any modifiers. + */ + + if (g_modstate[MOD_CONTROL]) + { + /* Make into a control character */ + + keych &= 0x1f; + } + + /* Other modifiers apply only to printable characters */ + + else if (keych >= FIRST_PRTCHAR && keych <= LAST_PRTCHAR) + { + /* If Shift Lock is selected, then the case of all characters + * should be reversed (unless the Shift key is also pressed) + */ + + if (g_modstate[MOD_SHIFTLOCK]) + { + if (g_modstate[MOD_SHIFT]) + { + /* Swap case */ + + keych = g_caseswap[keych]; + } + } + + /* If Caps Lock is selected, then the case of printable + * characters should be reversed (unless the Shift key is also + * pressed) + */ + + else if (g_modstate[MOD_CAPSLOCK]) + { + if (g_modstate[MOD_SHIFT]) + { + /* Swap case */ + + keych = g_caseswap[keych]; + } + } + + /* If only the Shift Key is pressed, then the case of all + * characters should be reversed. + */ + + else if (g_modstate[MOD_SHIFT]) + { + keych = g_caseswap[keych]; + } + } + +#ifdef CONFIG_VNCSERVER_KBDENCODE + /* Encode the normal character */ +#warning Missing logic + + /* Inject the normal character sequence into NX */ +#warning Missing logic +#else + /* Inject the key press into NX */ + + ch = (uint8_t)keych; + ret = nx_kbdin(session->handle, 1, &ch); + if (ret < 0) + { + gdbg("ERROR: nx_kbdin() failed: %d\n", ret) + } +#endif + } + + /* Not mappable to an ASCII LATIN1 character */ + +#ifdef CONFIG_VNCSERVER_KBDENCODE + else + { + /* Lookup cursor movement/screen control keysyms */ + + keych = vnc_kbd_lookup(g_modifiers, G_MODIFIERS_NELEM, keysym); + if (keych >= 0) + { + /* Inject the special character sequence into NX */ +#warning Missing logic + } + } +#endif +} diff --git a/graphics/vnc/server/vnc_server.c b/graphics/vnc/server/vnc_server.c index 3f44fcb83b..cdfbc0058f 100644 --- a/graphics/vnc/server/vnc_server.c +++ b/graphics/vnc/server/vnc_server.c @@ -120,7 +120,9 @@ int vnc_server(int argc, FAR char *argv[]) { gvdbg("New VNC connection\n"); - /* Start the VNC session */ + /* Start the VNC session. This function does not return until the + * session has been terminated (or an error occurs). + */ (void)vnc_session(session); @@ -158,7 +160,7 @@ FAR struct vnc_session_s *vnc_find_session(int display) if (display >= 0 && display < RFB_MAX_DISPLAYS) { - session = &g_vnc_sessions[display]; + session = g_vnc_sessions[display]; } return session; diff --git a/graphics/vnc/server/vnc_server.h b/graphics/vnc/server/vnc_server.h index 5b1523c6a4..acedd370fb 100644 --- a/graphics/vnc/server/vnc_server.h +++ b/graphics/vnc/server/vnc_server.h @@ -226,6 +226,27 @@ int vnc_session(FAR struct vnc_session_s *session); FAR struct vnc_session_s *vnc_find_session(int display); +/**************************************************************************** + * Name: vnc_key_map + * + * Description: + * Map the receive X11 keysym into something understood by NuttX and route + * that through NX to the appropriate window. + * + * Input Parameters: + * session - An instance of the session structure allocated by + * vnc_create_session(). + * keysym - The X11 keysym value (see include/nuttx/inputx11_keysymdef) + * keydown - True: Key pressed; False: Key released + * + * Returned Value: + * None + * + ****************************************************************************/ + +void vnc_key_map(FAR struct vnc_session_s *session, uint32_t keysym, + bool keydown); + #undef EXTERN #ifdef __cplusplus } -- GitLab From a9a006c94b0cadfd8a3140e820fd662f2055c85e Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 15 Apr 2016 08:01:47 -0600 Subject: [PATCH 007/307] VNC: Add support for encoded special keys --- graphics/vnc/server/vnc_keymap.c | 209 ++++++++++++++++++++++++++++--- graphics/vnc/server/vnc_server.h | 2 + 2 files changed, 193 insertions(+), 18 deletions(-) diff --git a/graphics/vnc/server/vnc_keymap.c b/graphics/vnc/server/vnc_keymap.c index e06dcf7300..ed97adaa12 100644 --- a/graphics/vnc/server/vnc_keymap.c +++ b/graphics/vnc/server/vnc_keymap.c @@ -53,13 +53,20 @@ #include "vnc_server.h" +#ifdef CONFIG_NX_KBD + /**************************************************************************** * Pre-processor Definitions ****************************************************************************/ -#define FIRST_PRTCHAR ASCII_SPACE -#define LAST_PRTCHAR ASCII_TILDE -#define NPRTCHARS (ASCII_TILDE + ASCII_SPACE - 1) +#define FIRST_PRTCHAR ASCII_SPACE +#define LAST_PRTCHAR ASCII_TILDE +#define NPRTCHARS (ASCII_TILDE + ASCII_SPACE - 1) + +#define ISPRINTABLE(c) ((c) >= FIRST_PRTCHAR && (c) <= LAST_PRTCHAR) +#define ISLOWERCASE(c) ((c) >= ASCII_a && (c) <= ASCII_z) +#define ISUPPERCASE(c) ((c) >= ASCII_A && (c) <= ASCII_Z) +#define ISALPHABETIC(c) (ISLOWERCASE(c) || ISUPPERCASE(c)) /**************************************************************************** * Private types @@ -270,6 +277,126 @@ static bool g_modstate[NMODIFIERS]; * Private Functions ****************************************************************************/ +/**************************************************************************** + * Name: vnc_kbd_encode + * + * Description: + * Encode one escape sequence command into the proivded buffer. + * + * Input Parameters: + * buffer - The location to write the sequence + * keycode - The command to be added to the output stream. + * terminator - Escape sequence terminating character. + * + * Returned Value: + * Number of bytes written + * + ****************************************************************************/ + +#ifdef CONFIG_VNCSERVER_KBDENCODE +static inline int vnc_kbd_encode(FAR uint8_t *buffer, uint8_t keycode, + uint8_t terminator) +{ + *buffer++ = ASCII_ESC; + *buffer++ = ASCII_LBRACKET; + *buffer++ = keycode; + *buffer = terminator; + return 4; +} +#endif + +/**************************************************************************** + * Name: vnc_kbd_press + * + * Description: + * Indicates a normal key press event. Put one byte of normal keyboard + * data into the user provided buffer. + * + * Input Parameters: + * buffer - The location to write the sequence + * ch - The character to be added to the output stream. + * + * Returned Value: + * Number of bytes written + * + ****************************************************************************/ + +#ifdef CONFIG_VNCSERVER_KBDENCODE +static inline void vnc_kbd_press(FAR uint8_t *buffer, uint8_t ch) +{ + *buffer = ch; + return 1; +} +#endif + +/**************************************************************************** + * Name: vnc_kbd_release + * + * Description: + * Encode the release of a normal key. + * + * Input Parameters: + * buffer - The location to write the sequence + * ch - The character associated with the key that was releared. + * + * Returned Value: + * Number of bytes written + * + ****************************************************************************/ + +#ifdef CONFIG_VNCSERVER_KBDENCODE +static inline void vnc_kbd_release(FAR uint8_t *buffer, uint8_t ch) +{ + return vnc_kbd_encode(buffer, ch, ('a' + KBD_RELEASE)); +} +#endif + +/**************************************************************************** + * Name: vnc_kbd_specpress + * + * Description: + * Denotes a special key press event. Put one special keyboard command + * into the user provided buffer. + * + * Input Parameters: + * buffer - The location to write the sequence + * keycode - The command to be added to the output stream. + * + * Returned Value: + * Number of bytes written + * + ****************************************************************************/ + +#ifdef CONFIG_VNCSERVER_KBDENCODE +static inline void vnc_kbd_specpress(FAR uint8_t *buffer, uint8_t keycode) +{ + return vnc_kbd_encode(buffer, keycode, stream, ('a' + KBD_SPECPRESS)); +} +#endif + +/**************************************************************************** + * Name: vnc_kbd_specrel + * + * Description: + * Denotes a special key release event. Put one special keyboard + * command into the user provided buffer. + * + * Input Parameters: + * buffer - The location to write the sequence + * keycode - The command to be added to the output stream. + * + * Returned Value: + * Number of bytes written + * + ****************************************************************************/ + +#ifdef CONFIG_VNCSERVER_KBDENCODE +static inline void vnc_kbd_specrel(FAR uint8_t *buffer, uint8_t keycode) +{ + return vnc_kbd_encode(buffer, keycode, stream, ('a' + KBD_SPECREL)); +} +#endif + /**************************************************************************** * Name: vnc_kbd_lookup * @@ -351,8 +478,11 @@ static int vnc_kbd_ascii(uint32_t keysym) void vnc_key_map(FAR struct vnc_session_s *session, uint32_t keysym, bool keydown) { +#ifdef CONFIG_VNCSERVER_KBDENCODE + uint8_t buffer[4] + int nch; +#endif int16_t keych; - uint8_t ch; int ret; /* Check for modifier keys */ @@ -364,6 +494,17 @@ void vnc_key_map(FAR struct vnc_session_s *session, uint32_t keysym, return; } +#ifndef CONFIG_VNCSERVER_KBDENCODE + /* If we are not encoding key presses, then we have to ignore key release + * events. + */ + + if (!keydown) + { + return; + } +#endif + /* Try to convert the keycode to an ASCII value */ keych = vnc_kbd_ascii((char)(keysym & 255)); @@ -382,10 +523,11 @@ void vnc_key_map(FAR struct vnc_session_s *session, uint32_t keysym, /* Other modifiers apply only to printable characters */ - else if (keych >= FIRST_PRTCHAR && keych <= LAST_PRTCHAR) + else if (ISPRINTABLE(keych)) { - /* If Shift Lock is selected, then the case of all characters - * should be reversed (unless the Shift key is also pressed) + /* If Shift Lock is selected, then the case of all printable + * characters should be reversed (unless the Shift key is also + * pressed) */ if (g_modstate[MOD_SHIFTLOCK]) @@ -398,12 +540,12 @@ void vnc_key_map(FAR struct vnc_session_s *session, uint32_t keysym, } } - /* If Caps Lock is selected, then the case of printable + /* If Caps Lock is selected, then the case of alphabetic * characters should be reversed (unless the Shift key is also * pressed) */ - else if (g_modstate[MOD_CAPSLOCK]) + else if (g_modstate[MOD_CAPSLOCK] && ISALPHABETIC(keych)) { if (g_modstate[MOD_SHIFT]) { @@ -413,8 +555,9 @@ void vnc_key_map(FAR struct vnc_session_s *session, uint32_t keysym, } } - /* If only the Shift Key is pressed, then the case of all - * characters should be reversed. + /* If (1) only the Shift Key is pressed or (2) the Shift key is + * pressed with Caps Lock, but the character is not alphabetic, + * then the case of all printable characters should be reversed. */ else if (g_modstate[MOD_SHIFT]) @@ -425,19 +568,31 @@ void vnc_key_map(FAR struct vnc_session_s *session, uint32_t keysym, #ifdef CONFIG_VNCSERVER_KBDENCODE /* Encode the normal character */ -#warning Missing logic + + if (keydown) + { + nch = vnc_kbd_press(buffer, keych); + } + else + { + nch = vnc_kbd_release(buffer, keych); + } /* Inject the normal character sequence into NX */ -#warning Missing logic -#else - /* Inject the key press into NX */ - ch = (uint8_t)keych; - ret = nx_kbdin(session->handle, 1, &ch); + ret = nx_kbdin(session->handle, nch, buffer); if (ret < 0) { gdbg("ERROR: nx_kbdin() failed: %d\n", ret) } +#else + /* Inject the single key press into NX */ + + ret = nx_kbdchin(session->handle,(uint8_t)keych); + if (ret < 0) + { + gdbg("ERROR: nx_kbdchin() failed: %d\n", ret) + } #endif } @@ -451,9 +606,27 @@ void vnc_key_map(FAR struct vnc_session_s *session, uint32_t keysym, keych = vnc_kbd_lookup(g_modifiers, G_MODIFIERS_NELEM, keysym); if (keych >= 0) { + /* Encode the speical character */ + + if (keydown) + { + nch = vnc_kbd_specpress(buffer, keych); + } + else + { + nch = vnc_kbd_specrel(buffer, keych); + } + /* Inject the special character sequence into NX */ -#warning Missing logic + + ret = nx_kbdin(session->handle, nch, buffer); + if (ret < 0) + { + gdbg("ERROR: nx_kbdin() failed: %d\n", ret) + } } } #endif } + +#endif /* CONFIG_NX_KBD */ \ No newline at end of file diff --git a/graphics/vnc/server/vnc_server.h b/graphics/vnc/server/vnc_server.h index acedd370fb..e2bf4c40fc 100644 --- a/graphics/vnc/server/vnc_server.h +++ b/graphics/vnc/server/vnc_server.h @@ -244,8 +244,10 @@ FAR struct vnc_session_s *vnc_find_session(int display); * ****************************************************************************/ +#ifdef CONFIG_NX_KBD void vnc_key_map(FAR struct vnc_session_s *session, uint32_t keysym, bool keydown); +#endif #undef EXTERN #ifdef __cplusplus -- GitLab From 20e31640aaa461352b2c425bcc3ceb678f79e07b Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 16 Apr 2016 12:33:08 -0600 Subject: [PATCH 008/307] Finishes remote frame buffer header file --- include/nuttx/video/rfb.h | 550 +++++++++++++++++++++++++++++++++++--- 1 file changed, 517 insertions(+), 33 deletions(-) diff --git a/include/nuttx/video/rfb.h b/include/nuttx/video/rfb.h index 9110a6530f..379ea3fa84 100644 --- a/include/nuttx/video/rfb.h +++ b/include/nuttx/video/rfb.h @@ -116,7 +116,7 @@ struct rfb_supported_sectypes_s }; #define SIZEOF_RFB_SUPPORTED_SECTYPES_S(n) \ - (sizeof(struct rfb_supported_sectypes_s) + (n) - 1); + (sizeof(struct rfb_supported_sectypes_s) + (n) - 1) /* "If the server listed at least one valid security type supported by the * client, the client sends back a single byte indicating which security @@ -141,7 +141,7 @@ struct rfb_sectype_connfail_s }; #define SIZEOF_RFB_SECTYPE_CONNFAIL_S(n) \ - (sizeof(struct rfb_sectype_connfail_s) + (n) - 1); + (sizeof(struct rfb_sectype_connfail_s) + (n) - 1) /* "Version 3.3 The server decides the security type and sends a single * word:" @@ -188,7 +188,7 @@ struct rfb_sectype_fail_s }; #define SIZEOF_RFB_SECTYPE_FAIL_S(n) \ - (sizeof(struct rfb_sectype_fail_s) + (n) - 1); + (sizeof(struct rfb_sectype_fail_s) + (n) - 1) /* "Version 3.3 and 3.7 If unsuccessful, the server closes the connection." */ @@ -240,8 +240,8 @@ struct rfb_response_s * give exclusive access to this client by disconnecting all other clients." */ -#defin RFB_FLAG_SHARED 0 -#defin RFB_FLAG_EXCLUSIVE 1 +#define RFB_FLAG_SHARED 0 +#define RFB_FLAG_EXCLUSIVE 1 struct rfb_clientinit_s { @@ -280,7 +280,7 @@ struct rfb_serverinit_s }; #define SIZEOF_RFB_SERVERINIT_S(n) \ - (sizeof(struct rfb_serverinit_s) + (n) - 1); + (sizeof(struct rfb_serverinit_s) + (n) - 1) /* "Server-pixel-format specifies the server’s natural pixel format. This * pixel format will be used unless the client requests a different format @@ -317,31 +317,14 @@ struct rfb_serverinit_s /* 6.4 Client to Server Messages ********************************************/ -/* "The client to server message types defined in this document are: - * - * "Number Name - * 0 SetPixelFormat - * 2 SetEncodings - * 3 FramebufferUpdateRequest - * 4 KeyEvent - * 5 PointerEvent - * 6 ClientCutText - * - * "Other registered message types are: - * - * "Number Name - * 255 Anthony Liguori - * 254, 127 VMWare - * 253 gii - * 252 tight - * 251 Pierre Ossman SetDesktopSize - * 250 Colin Dean xvp - * 249 OLIVE Call Control - * - * "Note that before sending a message not defined in this document a client - * must have determined that the server supports the relevant extension by - * receiving some extension-specific confirmation from the server. - */ +/* "The client to server message types defined in this document are: */ + +#define RFB_SETPIXELFMTT_MSG 0 /* SetPixelFormat */ +#define RFB_SETENCODINGS_MSG 2 /* SetEncodings */ +#define RFB_FBUPDATEREQ_MSG 3 /* FramebufferUpdateRequest */ +#define RFB_KEYEVENT_MSG 4 /* KeyEvent */ +#define RFB_POINTEREVENT_MSG 5 /* PointerEvent */ +#define RFB_CLIENTCUTTEXT_MSG 6 /* ClientCutText */ /* 6.4.1 SetPixelFormat * @@ -393,7 +376,7 @@ struct rfb_setencodings_s }; #define SIZEOF_RFB_SERVERINIT_S(n) \ - (sizeof(struct rfb_serverinit_s) + (((n) - 1) << 2)); + (sizeof(struct rfb_serverinit_s) + (((n) - 1) << 2)) /* 6.4.3 FramebufferUpdateRequest * @@ -534,14 +517,515 @@ struct rfb_clientcuttext_s }; #define SIZEOF_RFB_CLIENTCUTTEXT_S(n) \ - (sizeof(struct rfb_clientcuttext_s) + (n) - 1); + (sizeof(struct rfb_clientcuttext_s) + (n) - 1) /* 6.5 Server to Client Messages ********************************************/ +/* "The server to client message types defined in this document are:" */ + +#define RFB_FBUPDATE_MSG 0 /* FramebufferUpdate */ +#define RFB_SETCOLORMAP_MSG 1 /* SetColourMapEntries */ +#define RFB_BELL_MSG 2 /* Bell */ +#define RFB_SERVERCUTTEXT_MSG 3 /* ServerCutText */ + +/* 6.5.1 FramebufferUpdate + * + * "A framebuffer update consists of a sequence of rectangles of pixel data + * which the client should put into its framebuffer. It is sent in response + * to a FramebufferUpdateRequest from the client. Note that there may be an + * indefinite period between the FramebufferUpdateRequest and the + * FramebufferUpdate." + */ + +struct rfb_rectangle_s +{ + uint8_t xpos[2]; /* U16 X position */ + uint8_t ypos[2]; /* U16 Y position */ + uint8_t width[2]; /* U16 Width */ + uint8_t height[2]; /* U16 Height */ + uint8_t encoding[4]; /* S32 Encoding type */ + uint8_t data[1]; /* Pixel data, actual size varies */ +}; + +#define SIZEOF_RFB_RECTANGES(n,d) \ + (sizeof(struct rfb_framebufferupdate_s) + (d) - 1) + +struct rfb_framebufferupdate_s +{ + uint8_t msgtype; /* U8 Message type */ + uint8_t padding; + uint8_t nrect[2]; /* U16 Number of rectangles */ + struct rfb_rectangle_s rect[1]; /* Actual number is nrect */ +}; + +#define SIZEOF_RFB_FRAMEBUFFERUPDATE_S(n,r) \ + (sizeof(struct rfb_framebufferupdate_s) + (r) - sizeof(rfb_rectangle_s)) + +/* 6.5.2 SetColourMapEntries + * + * "When the pixel format uses a 'colour map', this message tells the client + * that the specified pixel values should be mapped to the given RGB + * intensities." + */ + +struct rfb_rgb_s +{ + uint8_t r[2]; /* U16 red */ + uint8_t g[2]; /* U16 green */ + uint8_t b[2]; /* U16 blue */ +}; + +#define RFB_RGB_SIZE(n) \ + ((n) * sizeof(struct rfb_rgb_s)) + +struct rfb_setcolourmapentries_s +{ + uint8_t msgtype; /* U8 Message type */ + uint8_t padding; + uint8_t first[2]; /* U16 First colour */ + uint8_t ncolors[2]; /* U16 Number of colours */ + struct rfb_rgb_s color[1]; /* Colors, actual number is ncolors */ +}; + +#define SIZEOF_RFB_SETCOLOURMAPENTRIES_S(n,r) \ + (sizeof(struct rfb_setcolourmapentries_s) + RFB_RGB_SIZE((n) - 1)) + +/* 6.5.3 Bell + * + * "Ring a bell on the client if it has one. + */ + +struct rfb_bell_s +{ + uint8_t msgtype; /* U8 Message type */ +}; + +/* 6.5.4 ServerCutText + * + * "The server has new ISO 8859-1 (Latin-1) text in its cut buffer. Ends of + * lines are represented by the linefeed / newline character (value 10) + * alone. No carriage-return (value 13) is needed. There is currently no + * way to transfer text outside the Latin-1 character set. + */ + +struct rfb_servercuttext_s +{ + uint8_t msgtype; /* U8 Message type */ + uint8_t padding[3]; + uint8_t length[2]; /* U8 Length */ + uint8_t text[1]; /* U8 Text, actual length is Length */ +}; + +#define SIZEOF_RFB_SERVERCUTTEXT_S(n) \ + (sizeof(struct rfb_servercuttext_s) + (n) - 1) + /* 6.6 Encodings ************************************************************/ +/* The encodings defined in this document are: */ + +#define RFB_ENCODING_RAW 0 /* Raw */ +#define RFB_ENCODING_COPYRECT 1 /* CopyRect */ +#define RFB_ENCODING_RRE 2 /* RRE */ +#define RFB_ENCODING_HEXTILE 5 /* Hextile */ +#define RFB_ENCODING_ZRLE 16 /* ZRLE */ +#define RFB_ENCODING_CURSOR -239 /* Cursor pseudo-encoding */ +#define RFB_ENCODING_DESKTOP -223 /* DesktopSize pseudo-encoding */ + +/* 6.6.1 Raw encoding + * + * "The simplest encoding type is raw pixel data. In this case the data + * consists of width x height pixel values (where width and height are the + * width and height of the rectangle). The values simply represent each + * pixel in left-to-right scanline order. All RFB clients must be able to + * cope with pixel data in this raw encoding, and RFB servers should only + * produce raw encoding unless the client specifically asks for some other + * encoding type. + */ + +/* 6.6.2 CopyRect encoding + * + * "The CopyRect (copy rectangle) encoding is a very simple and efficient + * encoding which can be used when the client already has the same pixel + * data elsewhere in its framebuffer. The encoding on the wire simply + * consists of an X,Y coordinate. This gives a position in the framebuffer + * from which the client can copy the rectangle of pixel data. This can be + * used in a variety of situations, the most obvious of which are when the + * user moves a window across the screen, and when the contents of a window + * are scrolled. A less obvious use is for optimising drawing of text or + * other repeating patterns. An intelligent server may be able to send a + * pattern explicitly only once, and knowing the previous position of the + * pattern in the framebuffer, send subsequent occurrences of the same + * pattern using the CopyRect encoding." + */ + +struct rfb_copyrect_encoding_s +{ + uint8_t xpos[2]; /* U16 Source x position */ + uint8_t ypos[2]; /* U16 Source y position */ +}; + +/* 6.6.3 RRE encoding + * + * "RRE stands for rise-and-run-length encoding and as its name implies, it + * is essentially a two-dimensional analogue of run-length encoding. + * RRE-encoded rectangles arrive at the client in a form which can be + * rendered immediately and efficiently by the simplest of graphics + * engines. RRE is not appropriate for complex desktops, but can be + * useful in some situations. + * + * "The basic idea behind RRE is the partitioning of a rectangle of pixel + * data into rectangular subregions (subrectangles) each of which consists + * of pixels of a single value and the union of which comprises the + * original rectangular region. The near-optimal partition of a given + * rectangle into such subrectangles is relatively easy to compute. + * + * "The encoding consists of a background pixel value, Vb (typically the + * most prevalent pixel value in the rectangle) and a count N, followed + * by a list of N subrectangles, each of which consists of a tuple + * < v, x, y, w, h > where v (6= Vb) is the pixel value, (x, y) are the + * coordinates of the subrectangle relative to the top-left corner of the + * rectangle, and (w, h) are the width and height of the subrectangle. The + * client can render the original rectangle by drawing a filled rectangle + * of the background pixel value and then drawing a filled rectangle + * corresponding to each subrectangle. On the wire, the data begins with + * the header:" + */ + +struct rfb_rrehdr16_s +{ + uint8_t nsubrects[4]; /* U32 Number of sub-rectangle */ + uint8_t pixel[2]; /* U16 Background pixel */ +}; + +struct rfb_rrehdr32_s +{ + uint8_t nsubrects[4]; /* U32 Number of sub-rectangle */ + uint8_t pixel[4]; /* U32 Background pixel */ +}; + +/* "This is followed by number-of-subrectangles instances of the following + * structure:" + */ + +struct rfb_rrerect16_s +{ + uint8_t pixel[2]; /* U16 sub-rect pixel value */ + uint8_t xpos[2]; /* U16 X position */ + uint8_t ypos[2]; /* U16 Y position */ + uint8_t width[2]; /* U16 Width */ + uint8_t height[2]; /* U16 Height */ +}; + +/* 6.6.4 Hextile encoding + * + * "Hextile is a variation on the RRE idea. Rectangles are split up into + * 16x16 tiles, allowing the dimensions of the subrectangles to be + * specified in 4 bits each, 16 bits in total. The rectangle is split + * into tiles starting at the top left going in left-to-right, top-to- + * bottom order. The encoded contents of the tiles simply follow one another + * in the predetermined order. If the width of the whole rectangle is not + * an exact multiple of 16 then the width of the last tile in each row will + * be correspondingly smaller. Similarly if the height of the whole + * rectangle is not an exact multiple of 16 then the height of each tile in + * the final row will also be smaller. + * + * "Each tile is either encoded as raw pixel data, or as a variation on RRE. + * Each tile has a background pixel value, as before. The background pixel + * value does not need to be explicitly specified for a given tile if it is + * the same as the background of the previous tile. However the background + * pixel value may not be carried over if the previous tile was Raw. If all + * of the subrectangles of a tile have the same pixel value, this can be + * specified once as a foreground pixel value for the whole tile. As with + * the background, the foreground pixel value can be left unspecified, + * meaning it is carried over from the previous tile. The foreground pixel + * value may not be carried over if the previous tile had the Raw or + * SubrectsColoured bits set. It may, however, be carried over from a + * previous tile with the AnySubrects bit clear, as long as that tile + * itself carried over a valid foreground from its previous tile. + * + * "So the data consists of each tile encoded in order. Each tile begins + * with a subencoding type byte, which is a mask made up of a number of + * bits:" + */ + +#define RFB_SUBENCODING_RAW 1 /* Raw */ +#define RFB_SUBENCODING_BACK 2 /* BackgroundSpecified*/ +#define RFB_SUBENCODING_FORE 4 /* ForegroundSpecified*/ +#define RFB_SUBENCODING_ANY 8 /* AnySubrects*/ +#define RFB_SUBENCODING_COLORED 16 /* SubrectsColoured*/ + +/* "If the Raw bit is set then the other bits are irrelevant; width x height + * pixel values follow (where width and height are the width and height of + * the tile). Otherwise the other bits in the mask are as follows: + * + * "BackgroundSpecified - if set, a pixel value follows which specifies the +* background colour for this tile:" +*/ + +struct rfb_backpixel16_s +{ + uint8_t pixel[2]; /* U16 Background pixel value */ +}; + +struct rfb_backpixel32_s +{ + uint8_t pixel[4]; /* U32 Background pixel value */ +}; + +/* "The first non-raw tile in a rectangle must have this bit set. If this + * bit isn’t set then the background is the same as the last tile. + * + * "ForegroundSpecified - if set, a pixel value follows which specifies the + * foreground colour to be used for all subrectangles in this tile:" + */ + +struct rfb_forepixel16_s +{ + uint8_t pixel[2]; /* U16 Foreground pixel value */ +}; + +struct rfb_forepixel32_s +{ + uint8_t pixel[4]; /* U32 Foreground pixel value */ +}; + +/* "If this bit is set then the SubrectsColoured bit must be zero. + * + * "AnySubrects - if set, a single byte follows giving the number of + * subrectangles following:" + */ + +struct rfb_nrects_s +{ + uint8_t nsubrects; /* U8 Number of sub-rectangles */ +}; + +/* "If not set, there are no subrectangles (i.e. the whole tile is just + * solid background colour). + * + * "SubrectsColoured - if set then each subrectangle is preceded by a pixel + * value giving the colour of that subrectangle, so a subrectangle is:" + */ + +struct rfb_subrectscolored16_s +{ + uint8_t pixel[2]; /* U16 Sub-rect pixel value */ + uint8_t xy; /* U8 X and y position */ + uint8_t wh; /* U8 Width and height */ +}; + +struct rfb_subrectscolored32_s +{ + uint8_t pixel[4]; /* U32 Sub-rect pixel value */ + uint8_t xy; /* U8 X and y position */ + uint8_t wh; /* U8 Width and height */ +}; + +/* "If not set, all subrectangles are the same colour, the foreground + * colour; if the ForegroundSpecified bit wasn’t set then the foreground + * is the same as the last tile. A subrectangle is:" + */ + +struct rfb_subrect_s +{ + uint8_t xy; /* U8 X and y position */ + uint8_t wh; /* U8 Width and height */ +}; + +/* "The position and size of each subrectangle is specified in two bytes, + * x-and-y-position and width-and-height. The most-significant four bits of + * x-and-y-position specify the X position, the least-significant specify + * the Y position. The most-significant four bits of width-and-height + * specify the width minus one, the least-significant specify the height + * minus one." + */ + +/* 6.6.5 ZRLE encoding + * + * "ZRLE stands for Zlib1 Run-Length Encoding, and combines zlib + * compression, tiling, palettisation and run-length encoding. On the wire, + * the rectangle begins with a 4-byte length field, and is followed by that + * many bytes of zlib-compressed data. A single zlib 'stream' object is + * used for a given RFB protocol connection, so that ZRLE rectangles must + * be encoded and decoded strictly in order." + */ + +struct rfb_srle_s +{ + uint8_t length[4]; /* U32 Length */ + uint8_t data[1]; /* U8 zlibData, actual size is length */ +}; + +#define SIZEOF_RFB_SRLE_S(n,r) \ + (sizeof(struct rfb_srle_s) + (n) - 1) + +/* "The zlibData when uncompressed represents tiles of 64x64 pixels in + * left-to-right, top-to-bottom order, similar to hextile. If the width of + * the rectangle is not an exact multiple of 64 then the width of the last + * tile in each row is smaller, and if the height of the rectangle is not + * an exact multiple of 64 then the height of each tile in the final row + * is smaller. + * + * "ZRLE makes use of a new type CPIXEL (compressed pixel). This is the same + * as a PIXEL for the agreed pixel format, except where true-colour-flag is + * non-zero, bitsper-pixel is 32, depth is 24 or less and all of the bits + * making up the red, green and blue intensities fit in either the least + * significant 3 bytes or the most significant 3 bytes. In this case a + * CPIXEL is only 3 bytes long, and contains the least significant or the + * most significant 3 bytes as appropriate. bytesPerCPixel is the number of + * bytes in a CPIXEL. + * + * "Each tile begins with a subencoding type byte. The top bit of this byte + * is set if the tile has been run-length encoded, clear otherwise. The + * bottom seven bits indicate the size of the palette used - zero means no + * palette, one means that the tile is of a single colour, 2 to 127 + * indicate a palette of that size. The possible values of subencoding are:" + */ + +#define RFB_SUBENCODING_RAW 0 /* Raw pixel data */ +#define RFB_SUBENCODING_SOLID 1 /* A solid tile of a single color */ +#define RFB_SUBENCODING_PACKED1 2 /* Packed palette types */ +#define RFB_SUBENCODING_PACKED2 3 +#define RFB_SUBENCODING_PACKED3 4 +#define RFB_SUBENCODING_PACKED4 5 +#define RFB_SUBENCODING_PACKED5 6 +#define RFB_SUBENCODING_PACKED6 7 +#define RFB_SUBENCODING_PACKED7 8 +#define RFB_SUBENCODING_PACKED8 9 +#define RFB_SUBENCODING_PACKED9 10 +#define RFB_SUBENCODING_PACKED10 11 +#define RFB_SUBENCODING_PACKED11 12 +#define RFB_SUBENCODING_PACKED12 13 +#define RFB_SUBENCODING_PACKED13 14 +#define RFB_SUBENCODING_PACKED14 15 +#define RFB_SUBENCODING_PACKED15 16 +#define RFB_SUBENCODING_RLE 128 /* Plain RLE */ +#define RFB_SUBENCODING_PALRLE 129 /* Palette RLE */ + + +/* "Raw pixel data. width x height pixel values follow (where width and + * height are the width and height of the tile):" + */ + +struct rfb_rawpixel16_s +{ + uint8_t pixels[2]; /* Actual size is 2*w*h */ +}; + +#define SIZEOF_RFB_RAWPIXEL16_S(n,r) \ + (sizeof(struct rfb_rawpixel16_s) + (((n) - 1) << 1)) + +struct rfb_rawpixel32_s +{ + uint8_t pixels[4]; /* Actual size is 4*w*h */ +}; + +#define SIZEOF_RFB_RAWPIXEL32_S(n,r) \ + (sizeof(struct rfb_rawpixel32_s) + (((n) - 1) << 2)) + +/* "A solid tile consisting of a single colour. The pixel value follows:" */ + +struct rfb_solid16_s +{ + uint8_t pixels[2]; /* Pixel value */ +}; + +struct rfb_solid32_s +{ + uint8_t pixels[4]; /* Pixel value */ +}; + +/* "Packed palette types. Followed by the palette, consisting of + * paletteSize(= subencoding) pixel values. Then the packed pixels follow, + * each pixel represented as a bit field yielding an index into the palette + * (0 meaning the first palette entry). For paletteSize 2, a 1-bit field is + * used, for paletteSize 3 or 4 a 2-bit field is used and for paletteSize + * from 5 to 16 a 4-bit field is used. The bit fields are packed into bytes, + * the most significant bits representing the leftmost pixel (i.e. big + * endian). For tiles not a multiple of 8, 4 or 2 pixels wide (as + * appropriate), padding bits are used to align each row to an exact number + * of bytes." + * + * REVISIT: Difficult to represent since it is a variable length array of + * RGB pixels follow by the variable length array of packed pixels. + */ + +/* "Plain RLE. Consists of a number of runs, repeated until the tile is + * done. Runs may continue from the end of one row to the beginning of the + * next. Each run is a represented by a single pixel value followed by the + * length of the run. The length is represented as one or more bytes. The + * length is calculated as one more than the sum of all the bytes + * representing the length. Any byte value other than 255 indicates the + * final byte. So for example length 1 is represented as [0], 255 as [254], + * 256 as [255,0], 257 as [255,1], 510 as [255,254], 511 as [255,255,0] and + * so on." + * + * REVISIT: Difficult to represent. Consists of (1) a color value, (2) + * a variable length array of data, followed by (3) the run length. + */ + +/* "Palette RLE. Followed by the palette, consisting of paletteSize = + * (subencoding − 128) pixel values:" + */ + +struct rfb_palette16_s +{ + uint8_t palette[2]; /* Actual size is 2*palleteSize */ +}; + +struct rfb_palette32_s +{ + uint8_t palette[4]; /* Actual size is 4*palleteSize */ +}; + +/* Then as with plain RLE, consists of a number of runs, repeated until the + * tile is done. A run of length one is represented simply by a palette index: + */ + +struct rfb_palettendx_s +{ + uint8_t index; /* U8 Palette Index */ +}; + +/* A run of length more than one is represented by a palette index with the + * top bit set, followed by the length of the run as for plain RLE." + * + * REVISIT: See comment with similar plain RLE representation. + */ + /* 6.7 Pseudo-Encodings *****************************************************/ +/* 6.7.1 Cursor pseudo-encoding + * + * "A client which requests the Cursor pseudo-encoding is declaring that it + * is capable of drawing a mouse cursor locally. This can significantly + * improve perceived performance over slow links. The server sets the + * cursor shape by sending a pseudo-rectangle with the Cursor pseudo- + * encoding as part of an update. The pseudo-rectangle’s x-position and + * y-position indicate the hotspot of the cursor, and width and height + * indicate the width and height of the cursor in pixels. The data consists + * of width x height pixel values followed by a bitmask. The bitmask + * consists of left-to-right, top-to-bottom scanlines, where each scanline + * is padded to a whole number of bytes floor((width + 7)/8). Within each + * byte the most significant bit represents the leftmost pixel, with a + * 1-bit meaning the corresponding pixel in the cursor is valid." + * + * REVISIT: Also difficult to represent: A variable length pixel arry + * followed by a variable length bit mask. + */ + +/* 6.7.2 DesktopSize pseudo-encoding + * + * "A client which requests the DesktopSize pseudo-encoding is declaring + * that it is capable of coping with a change in the framebuffer width + * and/or height. The server changes the desktop size by sending a + * pseudo-rectangle with the DesktopSize pseudo-encoding as the last + * rectangle in an update. The pseudo-rectangle’s x-position and y-position + * are ignored, and width and height indicate the new width and height of + * the framebuffer. There is no further data associated with the + * pseudo-rectangle. + */ + /**************************************************************************** * Public Function Prototypes ****************************************************************************/ -- GitLab From e793ee2be51837651e8553a4b1df114eb76831ac Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 16 Apr 2016 12:50:23 -0600 Subject: [PATCH 009/307] Add framework to support framebuffer/security negotiation --- graphics/vnc/server/Kconfig | 13 ++++ graphics/vnc/server/Make.defs | 2 +- graphics/vnc/server/vnc_negotiate.c | 105 ++++++++++++++++++++++++++++ graphics/vnc/server/vnc_server.h | 9 +++ 4 files changed, 128 insertions(+), 1 deletion(-) create mode 100644 graphics/vnc/server/vnc_negotiate.c diff --git a/graphics/vnc/server/Kconfig b/graphics/vnc/server/Kconfig index 02fba2b63a..35b2953d8a 100644 --- a/graphics/vnc/server/Kconfig +++ b/graphics/vnc/server/Kconfig @@ -12,6 +12,19 @@ menuconfig VNCSERVER if VNCSERVER +choice + prompt "VNC server protocol" + default VNCSERVER_PROTO3p3 + +config VNCSERVER_PROTO3p3 + bool "Version 3.3" + +config VNCSERVER_PROTO3p3 + bool "Version 3.8" + depends on EXPERIMENTAL + +endchoice # VNC server protocol + config VNCSERVER_NDISPLAYS int "Number of displays" default 1 diff --git a/graphics/vnc/server/Make.defs b/graphics/vnc/server/Make.defs index 830e840c44..4e86bfeda1 100644 --- a/graphics/vnc/server/Make.defs +++ b/graphics/vnc/server/Make.defs @@ -35,7 +35,7 @@ ifeq ($(CONFIG_VNCSERVER),y) -CSRCS += vnc_server.c vnc_session.c vnc_fbdev.c +CSRCS += vnc_server.c vnc_session.c vnc_negotiate.c vnc_fbdev.c ifeq ($(CONFIG_NX_KBD),y) CSRCS += vnc_keymap.c diff --git a/graphics/vnc/server/vnc_negotiate.c b/graphics/vnc/server/vnc_negotiate.c new file mode 100644 index 0000000000..8f11218549 --- /dev/null +++ b/graphics/vnc/server/vnc_negotiate.c @@ -0,0 +1,105 @@ +/**************************************************************************** + * graphics/vnc/vnc_negotiate.c + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include + +#include +#include +#include + +#include + +#include "vnc_server.h" + +/**************************************************************************** + * Private Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: nvc_xyz + * + * Description: + * [Re-]initialize a VNC session + * + * Input Parameters: + * session - the VNC session to be initialized + * + * Returned Value: + * None + * + ****************************************************************************/ + +static void nvc_xyz(FAR struct vnc_session_s *session) +{ +} + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: vnc_negotiate + * + * Description: + * Perform the VNC initialize sequency after a client has sucessfully + * connected to the server. Negotiate security, framebuffer and color + * properties. + * + * Input Parameters: + * session - An instance of the session structure allocated by + * vnc_create_session(). + * + * Returned Value: + * Returns zero (OK) on success; a negated errno value on failure. + * + ****************************************************************************/ + +#ifdef CONFIG_VNCSERVER_PROTO3p3 +int vnc_negotiate(FAR struct vnc_session_s *session) +{ + return OK; +} +#endif + +#ifdef CONFIG_VNCSERVER_PROTO3p8 +int vnc_negotiate(FAR struct vnc_session_s *session) +{ + return OK; +} +#endif diff --git a/graphics/vnc/server/vnc_server.h b/graphics/vnc/server/vnc_server.h index e2bf4c40fc..79012d5d6b 100644 --- a/graphics/vnc/server/vnc_server.h +++ b/graphics/vnc/server/vnc_server.h @@ -52,8 +52,17 @@ /**************************************************************************** * Pre-processor Definitions ****************************************************************************/ + /* Configuration */ +#if !defined(CONFIG_VNCSERVER_PROTO3p3) && !defined(CONFIG_VNCSERVER_PROTO3p8) +# error No VNC protocol selected +#endif + +#if defined(CONFIG_VNCSERVER_PROTO3p3) && defined(CONFIG_VNCSERVER_PROTO3p8) +# error Too many VNC protocols selected +#endif + #ifndef CONFIG_VNCSERVER_NDISPLAYS # define CONFIG_VNCSERVER_NDISPLAYS 1 #endif -- GitLab From 9b42bf65f0858acd37c225e8296007cf2f409245 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 16 Apr 2016 13:06:39 -0600 Subject: [PATCH 010/307] VNC: First few lines of initialization code --- graphics/vnc/server/Kconfig | 4 ++ graphics/vnc/server/vnc_negotiate.c | 57 +++++++++++++++++++++++++++++ graphics/vnc/server/vnc_server.h | 18 +++++++++ 3 files changed, 79 insertions(+) diff --git a/graphics/vnc/server/Kconfig b/graphics/vnc/server/Kconfig index 35b2953d8a..63ca69094c 100644 --- a/graphics/vnc/server/Kconfig +++ b/graphics/vnc/server/Kconfig @@ -49,4 +49,8 @@ config VNCSERVER_KBDENCODE Use a special encoding of keyboard characters as defined in include/nuttx/input/kbd_coded.h. +config VNCSERVER_IOBUFFER_SIZE + int "I/O buffer size + default 80 + endif # VNCSERVER diff --git a/graphics/vnc/server/vnc_negotiate.c b/graphics/vnc/server/vnc_negotiate.c index 8f11218549..b8118634dd 100644 --- a/graphics/vnc/server/vnc_negotiate.c +++ b/graphics/vnc/server/vnc_negotiate.c @@ -47,6 +47,16 @@ #include "vnc_server.h" +/**************************************************************************** + * Private Data + ****************************************************************************/ + +#if defined(CONFIG_VNCSERVER_PROTO3p3) +static const char g_vncproto[] = RFB_PROTOCOL_VERSION_3p3; +#elif defined(CONFIG_VNCSERVER_PROTO3p8) +static const char g_vncproto[] = RFB_PROTOCOL_VERSION_3p8; +#endif + /**************************************************************************** * Private Functions ****************************************************************************/ @@ -93,13 +103,60 @@ static void nvc_xyz(FAR struct vnc_session_s *session) #ifdef CONFIG_VNCSERVER_PROTO3p3 int vnc_negotiate(FAR struct vnc_session_s *session) { + ssize_t nrecvd; + size_t len; + int errcode; + + /* Inform the client of the VNC protocol */ + + len = strlen(g_vncproto); + nrecvd = psock_send(&session->connect, g_vncproto, len, 0); + if (nrecvd < 0) + { + goto errout_with_errno; + } + + nrecvd = psock_recv(&session->connect, session->iobuf, len, 0); + if (nrecvd <= 0) + { + goto errout_with_errno; + } + + /* Tell the client that we won't use any stinkin' security */ + return OK; + +errout_with_errno: + errcode = get_errno(); + +errout_with_errcode: + DEBUGASSERT(errcode > 0); + return -errcode; } #endif #ifdef CONFIG_VNCSERVER_PROTO3p8 int vnc_negotiate(FAR struct vnc_session_s *session) { + ssize_t nbytes; + + /* Inform the client of the VNC protocol */ + + len = strlen(g_vncproto); + nrecvd = psock_send(&session->connect, g_vncproto, len, 0); + if (nrecvd < 0) + { + goto errout_with_errno; + } + + nrecvd = psock_recv(&session->connect, session->iobuf, len, 0); + if (nrecvd <= 0) + { + goto errout_with_errno; + } + + /* Offer the client a choice of security -- where None is the only option. */ + return OK; } #endif diff --git a/graphics/vnc/server/vnc_server.h b/graphics/vnc/server/vnc_server.h index 79012d5d6b..f17d941be9 100644 --- a/graphics/vnc/server/vnc_server.h +++ b/graphics/vnc/server/vnc_server.h @@ -75,12 +75,26 @@ # define CONFIG_VNCSERVER_STACKSIZE 2048 #endif +#ifndef CONFIG_VNCSERVER_IOBUFFER_SIZE +# define CONFIG_VNCSERVER_IOBUFFER_SIZE 80 +#endif + /* RFB Port Number */ #define RFB_PORT_BASE 5900 #define RFB_MAX_DISPLAYS CONFIG_VNCSERVER_NDISPLAYS #define RFB_DISPLAY_PORT(d) (RFB_PORT_BASE + (d)) +/* Miscellaneous */ + +#ifndef MIN +# define MIN(a,b) (((a) < (b)) ? (a) : (b)) +#endif + +#ifndef MAX +# define MAX(a,b) (((a) > (b)) ? (a) : (b)) +#endif + /**************************************************************************** * Public Types ****************************************************************************/ @@ -115,6 +129,10 @@ struct vnc_session_s uint8_t bpp; /* Bits per pixel */ struct nxgl_size_s screen; /* Size of the screen in pixels x rows */ FAR uint8_t *fb; /* Allocated local frame buffer */ + + /* I/O buffer for misc network send/receive */ + + uint8_t iobuf[CONFIG_VNCSERVER_IOBUFFER_SIZE]; }; /**************************************************************************** -- GitLab From bba3b13470af059026c462947736f6494aae55fe Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 16 Apr 2016 13:18:04 -0600 Subject: [PATCH 011/307] RFB: Add macros to access big-endian values --- include/nuttx/video/rfb.h | 42 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/include/nuttx/video/rfb.h b/include/nuttx/video/rfb.h index 379ea3fa84..3b95219bcc 100644 --- a/include/nuttx/video/rfb.h +++ b/include/nuttx/video/rfb.h @@ -1026,6 +1026,48 @@ struct rfb_palettendx_s * pseudo-rectangle. */ +/* Data Access Helpers ******************************************************/ + +/* All multiple byte integers (other than pixel values themselves) are in + * big endian order (most significant byte first). + */ + +/* void rfb_putbe16(FAR uint8_t *dest, uint16_t value) */ + +#define rfb_putbe16(d,v) \ + do \ + { \ + *dest++ = ((uint16_t)value >> 8); \ + *dest = ((uint16_t)value && 0xff); \ + } \ + while (0) + +/* uin16_t rfb_getbe16(FAR const uint8_t *src) */ + +#define rfb_getbe16(s) \ + (((uint16_t)src[0] << 8) | \ + (uint16_t)src[1]) + +/* void rfb_putbe32(FAR uint8_t *dest, uint32_t value) */ + +#define rfb_putbe32(d,v) \ + do \ + { \ + *dest++ = (((uint32_t)value >> 24); \ + *dest++ = (((uint32_t)value >> 16) && 0xff; \ + *dest++ = (((uint32_t)value >> 8) && 0xff; \ + *dest = (((uint32_t)value && 0xff); \ + } \ + while (0) + +/* uint32_t rfb_getbe32(FAR const uint8_t *src) */ + +#define rfb_getbe32(s) \ + (((uint32_t)src[0] << 24) | \ + ((uint32_t)src[1] << 16) | \ + ((uint32_t)src[2] << 8) | \ + (uint32_t)src[3]) + /**************************************************************************** * Public Function Prototypes ****************************************************************************/ -- GitLab From f3ad4ae1d1557e9ecb8037b64312f1b72d377950 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 16 Apr 2016 15:59:00 -0600 Subject: [PATCH 012/307] VNC: Finish v3.3 negotiation --- graphics/vnc/server/Kconfig | 20 +++ graphics/vnc/server/vnc_fbdev.c | 13 +- graphics/vnc/server/vnc_negotiate.c | 261 +++++++++++++++++++++++----- graphics/vnc/server/vnc_server.h | 37 +++- 4 files changed, 278 insertions(+), 53 deletions(-) diff --git a/graphics/vnc/server/Kconfig b/graphics/vnc/server/Kconfig index 63ca69094c..ef180df1cd 100644 --- a/graphics/vnc/server/Kconfig +++ b/graphics/vnc/server/Kconfig @@ -41,6 +41,26 @@ config VNCSERVER_STACKSIZE int "VNC server stack size" default 2048 +choice + prompt "VNC color format" + default VNCSERVER_COLORFMT_RGB16 + +config VNCSERVER_COLORFMT_RGB16 + bool "RGB16 5:6:5" + +config VNCSERVER_COLORFMT_RGB32 + bool "RGB24 (32-bit) or RGB32 (w/tranparency)" + +endchoice # VNC color format + +config VNCSERVER_SCREENWIDTH + int "Framebuffer width (pixels)" + default 320 + +config VNCSERVER_SCREENHEIGHT + int "Framebuffer height (rows)" + default 240 + config VNCSERVER_KBDENCODE bool "Encode keyboard input" default n diff --git a/graphics/vnc/server/vnc_fbdev.c b/graphics/vnc/server/vnc_fbdev.c index e3fcd7cc11..7d427d7983 100644 --- a/graphics/vnc/server/vnc_fbdev.c +++ b/graphics/vnc/server/vnc_fbdev.c @@ -50,15 +50,6 @@ #include "vnc_server.h" -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/* Framebuffer characteristics in bytes */ - -#define FB_WIDTH(s) (((s)->screen.w * (s)->bpp + 7) / 8) -#define FB_SIZE(s) (FB_WIDTH(s) * (s)->screen.h) - /**************************************************************************** * Private Types ****************************************************************************/ @@ -207,8 +198,8 @@ static int up_getplaneinfo(FAR struct fb_vtable_s *vtable, int planeno, DEBUGASSERT(session->fb != NULL); pinfo->fbmem = (FAR void *)&session->fb; - pinfo->fblen = FB_SIZE(session); - pinfo->stride = FB_WIDTH(session); + pinfo->fblen = (uint32_t)session->stride * CONFIG_VNCSERVER_SCREENWIDTH; + pinfo->stride = (fb_coord_t)session->stride; pinfo->bpp = session->bpp; return OK; diff --git a/graphics/vnc/server/vnc_negotiate.c b/graphics/vnc/server/vnc_negotiate.c index b8118634dd..8cf7515d79 100644 --- a/graphics/vnc/server/vnc_negotiate.c +++ b/graphics/vnc/server/vnc_negotiate.c @@ -42,7 +42,11 @@ #include #include #include +#include +#include +#include +#include #include #include "vnc_server.h" @@ -57,28 +61,6 @@ static const char g_vncproto[] = RFB_PROTOCOL_VERSION_3p3; static const char g_vncproto[] = RFB_PROTOCOL_VERSION_3p8; #endif -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: nvc_xyz - * - * Description: - * [Re-]initialize a VNC session - * - * Input Parameters: - * session - the VNC session to be initialized - * - * Returned Value: - * None - * - ****************************************************************************/ - -static void nvc_xyz(FAR struct vnc_session_s *session) -{ -} - /**************************************************************************** * Public Functions ****************************************************************************/ @@ -103,59 +85,258 @@ static void nvc_xyz(FAR struct vnc_session_s *session) #ifdef CONFIG_VNCSERVER_PROTO3p3 int vnc_negotiate(FAR struct vnc_session_s *session) { + FAR struct rfb_sectype_s *sectype; + FAR struct rfb_serverinit_s *serverinit; + FAR struct rfb_pixelfmt_s *pixelfmt; + FAR struct rfb_setpixelformat_s *setformat; + ssize_t nsent; ssize_t nrecvd; + size_t alloc; size_t len; int errcode; - /* Inform the client of the VNC protocol */ + /* Inform the client of the VNC protocol version */ len = strlen(g_vncproto); - nrecvd = psock_send(&session->connect, g_vncproto, len, 0); - if (nrecvd < 0) + nsent = psock_send(&session->connect, g_vncproto, len, 0); + if (nsent < 0) { - goto errout_with_errno; + errcode = get_errno(); + gdbg("ERROR: Send ProtocolVersion failed: %d\n", errcode); + DEBUGASSERT(errcode > 0); + return -errcode; } + DEBUGASSERT(nsent == len); + + /* Receive the echo of the protocol string */ + nrecvd = psock_recv(&session->connect, session->iobuf, len, 0); if (nrecvd <= 0) { - goto errout_with_errno; + errcode = get_errno(); + gdbg("ERROR: Receive protocol confirmation failed: %d\n", errcode); + DEBUGASSERT(errcode > 0); + return -errcode; } - /* Tell the client that we won't use any stinkin' security */ + DEBUGASSERT(nrecvd == len); - return OK; + /* Tell the client that we won't use any stinkin' security. + * + * "Version 3.3 The server decides the security type and sends a single + * word:" + */ + + sectype = (FAR struct rfb_sectype_s *)session->iobuf; + rfb_putbe32(sectype->type, RFB_SECTYPE_NONE); + + nsent = psock_send(&session->connect, sectype, + sizeof(struct rfb_sectype_s), 0); + if (nsent < 0) + { + errcode = get_errno(); + gdbg("ERROR: Send Security failed: %d\n", errcode); + DEBUGASSERT(errcode > 0); + return -errcode; + } + + DEBUGASSERT(nsent == sizeof(struct rfb_sectype_s)); + + /* Receive the ClientInit message + * + * "Once the client and server are sure that they’re happy to talk to one + * another using the agreed security type, the protocol passes to the + * initialisation phase. The client sends a ClientInit message followed + * by the server sending a ServerInit message." + * + * In this implementation, the sharing flag is ignored. + */ + + nrecvd = psock_recv(&session->connect, session->iobuf, + sizeof(struct rfb_clientinit_s), 0); + if (nrecvd < 0) + { + errcode = get_errno(); + gdbg("ERROR: Receive ClientInit failed: %d\n", errcode); + DEBUGASSERT(errcode > 0); + return -errcode; + } + + DEBUGASSERT(nrecvd == sizeof(struct rfb_clientinit_s)); + + /* Send the ClientInit message + * + * "After receiving the ClientInit message, the server sends a ServerInit + * message. This tells the client the width and height of the server’s + * framebuffer, its pixel format and the name associated with the desktop: + */ + + serverinit = (FAR struct rfb_serverinit_s *)session->iobuf; + + rfb_putbe16(serverinit->width, CONFIG_VNCSERVER_SCREENWIDTH); + rfb_putbe16(serverinit->height, CONFIG_VNCSERVER_SCREENHEIGHT); + rfb_putbe32(serverinit->namelen, 0); + + pixelfmt = &serverinit->format; + pixelfmt->bpp = RFB_BITSPERPIXEL; + pixelfmt->depth = RFB_PIXELDEPTH; + pixelfmt->bigendian = 0; + pixelfmt->truecolor = RFB_TRUECOLOR; + + rfb_putbe16(pixelfmt->rmax, RFB_RMAX); + rfb_putbe16(pixelfmt->gmax, RFB_GMAX); + rfb_putbe16(pixelfmt->bmax, RFB_BMAX); + + pixelfmt->rshift = RFB_RSHIFT; + pixelfmt->gshift = RFB_GSHIFT; + pixelfmt->bshift = RFB_BSHIFT; + + nsent = psock_send(&session->connect, serverinit, + SIZEOF_RFB_SERVERINIT_S(0), 0); + if (nsent < 0) + { + errcode = get_errno(); + gdbg("ERROR: Send ServerInit failed: %d\n", errcode); + return -errcode; + } + + DEBUGASSERT(nsent == SIZEOF_RFB_SERVERINIT_S(0)); + + /* We now expect to receive the SetPixelFormat message from the client. + * This may override some of our framebuffer settings. + */ -errout_with_errno: - errcode = get_errno(); + setformat = (FAR struct rfb_setpixelformat_s *)session->iobuf; -errout_with_errcode: - DEBUGASSERT(errcode > 0); - return -errcode; + nrecvd = psock_recv(&session->connect, setformat, + sizeof(struct rfb_setpixelformat_s), 0); + if (nrecvd < 0) + { + errcode = get_errno(); + gdbg("ERROR: Receive SetFormat failed: %d\n", errcode); + DEBUGASSERT(errcode > 0); + return -errcode; + } + else if (nrecvd != sizeof(struct rfb_setpixelformat_s)) + { + /* Must not be a SetPixelFormat message? */ + + gdbg("ERROR: SetFormat wrong size: %d\n", (int)nrecvd); + return -EPROTO; + } + else if (setformat->msgtype != RFB_SETPIXELFMT_MSG) + { + gdbg("ERROR: Not a SetFormat message: %d\n", (int)setformat->type); + return -EPROTO; + } + + /* Check if the client request format is one that we can handle. */ + + pixelfmt = &setformat->format; + + if (pixelfmt->truecolor == 0) + { + /* At present, we support only TrueColor formats */ + + gdbg("ERROR: No support for palette colors\n"); + return -ENOSYS; + } + + if (pixelfmt->bpp == 16 && pixelfmt->depth == 15) + { + session->colorfmt = FB_FMT_RGB16_555; + session->bpp = 16; + } + else if (pixelfmt->bpp == 16 && pixelfmt->depth == 16) + { + session->colorfmt = FB_FMT_RGB16_565; + session->bpp = 16; + } + else if (pixelfmt->bpp == 32 && pixelfmt->depth == 24) + { + session->colorfmt = FB_FMT_RGB32; + session->bpp = 32; + } + else if (pixelfmt->bpp == 32 && pixelfmt->depth == 32) + { + session->colorfmt = FB_FMT_RGB32; + session->bpp = 32; + } + else + { + /* We do not support any other conversions */ + + gdbg("ERROR: No support for this BPP=%d and depth=%d\n", + pixelfmt->bpp, pixelfmt->depth); + return -ENOSYS; + } + + session->screen.w = CONFIG_VNCSERVER_SCREENWIDTH; + session->screen.h = CONFIG_VNCSERVER_SCREENHEIGHT; + + /* Now allocate the framebuffer memory */ + + len = (session->bpp + 7) >> 3; + session->stride = len * CONFIG_VNCSERVER_SCREENWIDTH; + alloc = (size_t)session->stride * CONFIG_VNCSERVER_SCREENHEIGHT; + + session->fb = (FAR uint8_t *)kmm_zalloc(alloc); + if (session->fb) + { + gdbg("ERROR: Failed to allocate framebuffer memory: %lu\n", + (unsigned long)alloc); + return -ENOMEM; + } + + /* Receive supported encoding types from client, but ignore them. + * we will do only raw format. + */ + + (void)psock_recv(&session->connect, session->iobuf, + CONFIG_VNCSERVER_IOBUFFER_SIZE, 0); + + session->state = VNCSERVER_CONFIGURED; + return OK; } #endif #ifdef CONFIG_VNCSERVER_PROTO3p8 int vnc_negotiate(FAR struct vnc_session_s *session) { - ssize_t nbytes; + ssize_t nsent; + ssize_t nrecvd; + size_t len; - /* Inform the client of the VNC protocol */ + /* Inform the client of the VNC protocol version */ len = strlen(g_vncproto); - nrecvd = psock_send(&session->connect, g_vncproto, len, 0); - if (nrecvd < 0) + nsent = psock_send(&session->connect, g_vncproto, len, 0); + if (nsent < 0) { - goto errout_with_errno; + errcode = get_errno(); + gdbg("ERROR: Send ProtocolVersion failed: %d\n", errcode); + DEBUGASSERT(errcode > 0); + return -errcode; } + DEBUGASSERT(nsent == len); + + /* Receive the echo of the protocol string */ + nrecvd = psock_recv(&session->connect, session->iobuf, len, 0); if (nrecvd <= 0) { - goto errout_with_errno; + errcode = get_errno(); + gdbg("ERROR: Receive protocol confirmation failed: %d\n", errcode); + DEBUGASSERT(errcode > 0); + return -errcode; } + DEBUGASSERT(nrecvd == len); + /* Offer the client a choice of security -- where None is the only option. */ +#warning Missing logic return OK; } diff --git a/graphics/vnc/server/vnc_server.h b/graphics/vnc/server/vnc_server.h index f17d941be9..256e4864f1 100644 --- a/graphics/vnc/server/vnc_server.h +++ b/graphics/vnc/server/vnc_server.h @@ -67,6 +67,38 @@ # define CONFIG_VNCSERVER_NDISPLAYS 1 #endif +#if defined(CONFIG_VNCSERVER_COLORFMT_RGB16) +# define RFB_BITSPERPIXEL 16 +# define RFB_PIXELDEPTH 16 +# define RFB_TRUECOLOR 1 +# define RFB_RMAX 0x1f +# define RFB_GMAX 0x3f +# define RFB_BMAX 0x1f +# define RFB_RSHIFT 11 +# define RFB_GSHIFT 5 +# define RFB_BSHIFT 0 +#elif defined(CONFIG_VNCSERVER_COLORFMT_RGB32) +# define RFB_BITSPERPIXEL 32 +# define RFB_PIXELDEPTH 24 +# define RFB_TRUECOLOR 1 +# define RFB_RMAX 0xff +# define RFB_GMAX 0xff +# define RFB_BMAX 0xff +# define RFB_RSHIFT 16 +# define RFB_GSHIFT 8 +# define RFB_BSHIFT 0 +#else +# error Unspecified color format +#endif + +#ifndef CONFIG_VNCSERVER_SCREENWIDTH +# define CONFIG_VNCSERVER_SCREENWIDTH 320 +#endif + +#ifndef CONFIG_VNCSERVER_SCREENHEIGHT +# define CONFIG_VNCSERVER_SCREENHEIGHT 240 +#endif + #ifndef CONFIG_VNCSERVER_PRIO # define CONFIG_VNCSERVER_PRIO 100 #endif @@ -88,11 +120,11 @@ /* Miscellaneous */ #ifndef MIN -# define MIN(a,b) (((a) < (b)) ? (a) : (b)) +# define MIN(a,b) (((a) < (b)) ? (a) : (b)) #endif #ifndef MAX -# define MAX(a,b) (((a) > (b)) ? (a) : (b)) +# define MAX(a,b) (((a) > (b)) ? (a) : (b)) #endif /**************************************************************************** @@ -127,6 +159,7 @@ struct vnc_session_s uint8_t colorfmt; /* See include/nuttx/fb.h */ uint8_t bpp; /* Bits per pixel */ + size_t stride; /* Width of a row in bytes */ struct nxgl_size_s screen; /* Size of the screen in pixels x rows */ FAR uint8_t *fb; /* Allocated local frame buffer */ -- GitLab From c84b9d111002de90d2fb67c91a9a14439b04dc9a Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 16 Apr 2016 15:59:59 -0600 Subject: [PATCH 013/307] RFB: Fix some errors in header file --- include/nuttx/video/rfb.h | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/include/nuttx/video/rfb.h b/include/nuttx/video/rfb.h index 3b95219bcc..4b9380731a 100644 --- a/include/nuttx/video/rfb.h +++ b/include/nuttx/video/rfb.h @@ -167,7 +167,7 @@ struct rfb_sectype_s */ #define RFB_SECTYPE_SUCCESS 0 -#define RFB_SECTYPE_FAILE 1 +#define RFB_SECTYPE_FAIL 1 struct rfb_sectype_result_s { @@ -319,7 +319,7 @@ struct rfb_serverinit_s /* "The client to server message types defined in this document are: */ -#define RFB_SETPIXELFMTT_MSG 0 /* SetPixelFormat */ +#define RFB_SETPIXELFMT_MSG 0 /* SetPixelFormat */ #define RFB_SETENCODINGS_MSG 2 /* SetEncodings */ #define RFB_FBUPDATEREQ_MSG 3 /* FramebufferUpdateRequest */ #define RFB_KEYEVENT_MSG 4 /* KeyEvent */ @@ -1037,36 +1037,38 @@ struct rfb_palettendx_s #define rfb_putbe16(d,v) \ do \ { \ - *dest++ = ((uint16_t)value >> 8); \ - *dest = ((uint16_t)value && 0xff); \ + FAR uint32_t *dest = (d); \ + *dest++ = ((uint16_t)(v) >> 8); \ + *dest = ((uint16_t)(v) & 0xff); \ } \ while (0) /* uin16_t rfb_getbe16(FAR const uint8_t *src) */ #define rfb_getbe16(s) \ - (((uint16_t)src[0] << 8) | \ - (uint16_t)src[1]) + (((uint16_t)((s)[0]) << 8) | \ + (uint16_t)((s)[1])) /* void rfb_putbe32(FAR uint8_t *dest, uint32_t value) */ #define rfb_putbe32(d,v) \ do \ { \ - *dest++ = (((uint32_t)value >> 24); \ - *dest++ = (((uint32_t)value >> 16) && 0xff; \ - *dest++ = (((uint32_t)value >> 8) && 0xff; \ - *dest = (((uint32_t)value && 0xff); \ + FAR uint32_t *dest = (d); \ + *dest++ = ((uint32_t)(v) >> 24); \ + *dest++ = ((uint32_t)(v) >> 16) & 0xff; \ + *dest++ = ((uint32_t)(v) >> 8) & 0xff; \ + *dest = ((uint32_t)(v) & 0xff); \ } \ while (0) /* uint32_t rfb_getbe32(FAR const uint8_t *src) */ #define rfb_getbe32(s) \ - (((uint32_t)src[0] << 24) | \ - ((uint32_t)src[1] << 16) | \ - ((uint32_t)src[2] << 8) | \ - (uint32_t)src[3]) + (((uint32_t)((s)[0]) << 24) | \ + ((uint32_t)((s)[1]) << 16) | \ + ((uint32_t)((s)[2]) << 8) | \ + (uint32_t)((s)[3])) /**************************************************************************** * Public Function Prototypes -- GitLab From db99f73a401821897b1b0fac9bacecde3d179ec3 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 16 Apr 2016 16:33:04 -0600 Subject: [PATCH 014/307] Fix typo noted by Alan Carvalho de Assis --- graphics/vnc/server/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/graphics/vnc/server/Kconfig b/graphics/vnc/server/Kconfig index ef180df1cd..f4dc219c37 100644 --- a/graphics/vnc/server/Kconfig +++ b/graphics/vnc/server/Kconfig @@ -19,7 +19,7 @@ choice config VNCSERVER_PROTO3p3 bool "Version 3.3" -config VNCSERVER_PROTO3p3 +config VNCSERVER_PROTO3p8 bool "Version 3.8" depends on EXPERIMENTAL -- GitLab From d13962ef7474485fcacbad40614025fcbc6b81a2 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 16 Apr 2016 17:24:14 -0600 Subject: [PATCH 015/307] VNC: Add control logic to negotiate security and framebuffer --- graphics/vnc/server/vnc_server.c | 26 ++++++++++++++++++-------- graphics/vnc/server/vnc_server.h | 19 +++++++++++++++++++ 2 files changed, 37 insertions(+), 8 deletions(-) diff --git a/graphics/vnc/server/vnc_server.c b/graphics/vnc/server/vnc_server.c index cdfbc0058f..9e02130173 100644 --- a/graphics/vnc/server/vnc_server.c +++ b/graphics/vnc/server/vnc_server.c @@ -120,16 +120,26 @@ int vnc_server(int argc, FAR char *argv[]) { gvdbg("New VNC connection\n"); - /* Start the VNC session. This function does not return until the - * session has been terminated (or an error occurs). - */ - - (void)vnc_session(session); + ret = vnc_negotiate(session); + if (ret < 0) + { + gdbg("ERROR: Failed to negotiate security/framebuffer: %d\n", + ret); + } + else + { + /* Start the VNC session. This function does not return until + * the session has been terminated (or an error occurs). + */ + + ret = vnc_session(session); + gvdbg("Session terminated with %d\n", ret); + } + } - /* Re-initialize the session structure for re-use */ + /* Re-initialize the session structure for re-use */ - vnc_release_session(session); - } + vnc_release_session(session); } return EXIT_FAILURE; /* We won't get here */ diff --git a/graphics/vnc/server/vnc_server.h b/graphics/vnc/server/vnc_server.h index 256e4864f1..21b15711f6 100644 --- a/graphics/vnc/server/vnc_server.h +++ b/graphics/vnc/server/vnc_server.h @@ -250,6 +250,25 @@ FAR struct vnc_session_s *vnc_create_session(void); void vnc_release_session(FAR struct vnc_session_s *session); +/**************************************************************************** + * Name: vnc_negotiate + * + * Description: + * Perform the VNC initialize sequency after a client has sucessfully + * connected to the server. Negotiate security, framebuffer and color + * properties. + * + * Input Parameters: + * session - An instance of the session structure allocated by + * vnc_create_session(). + * + * Returned Value: + * Returns zero (OK) on success; a negated errno value on failure. + * + ****************************************************************************/ + +int vnc_negotiate(FAR struct vnc_session_s *session); + /**************************************************************************** * Name: vnc_session * -- GitLab From f154d7ea1b921e1b987f2ec9e253677675dd6f9d Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 16 Apr 2016 17:48:15 -0600 Subject: [PATCH 016/307] Trivial update to some comments --- graphics/vnc/server/vnc_negotiate.c | 2 +- graphics/vnc/server/vnc_server.c | 5 +++++ graphics/vnc/server/vnc_server.h | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/graphics/vnc/server/vnc_negotiate.c b/graphics/vnc/server/vnc_negotiate.c index 8cf7515d79..dc87247210 100644 --- a/graphics/vnc/server/vnc_negotiate.c +++ b/graphics/vnc/server/vnc_negotiate.c @@ -69,7 +69,7 @@ static const char g_vncproto[] = RFB_PROTOCOL_VERSION_3p8; * Name: vnc_negotiate * * Description: - * Perform the VNC initialize sequency after a client has sucessfully + * Perform the VNC initialization sequence after the client has sucessfully * connected to the server. Negotiate security, framebuffer and color * properties. * diff --git a/graphics/vnc/server/vnc_server.c b/graphics/vnc/server/vnc_server.c index 9e02130173..ac1c4e6d5d 100644 --- a/graphics/vnc/server/vnc_server.c +++ b/graphics/vnc/server/vnc_server.c @@ -120,6 +120,11 @@ int vnc_server(int argc, FAR char *argv[]) { gvdbg("New VNC connection\n"); + /* Perform the VNC initialization sequence after the client has + * sucessfully connected to the server. Negotiate security, + * framebuffer and color properties. + */ + ret = vnc_negotiate(session); if (ret < 0) { diff --git a/graphics/vnc/server/vnc_server.h b/graphics/vnc/server/vnc_server.h index 21b15711f6..17dee09406 100644 --- a/graphics/vnc/server/vnc_server.h +++ b/graphics/vnc/server/vnc_server.h @@ -254,7 +254,7 @@ void vnc_release_session(FAR struct vnc_session_s *session); * Name: vnc_negotiate * * Description: - * Perform the VNC initialize sequency after a client has sucessfully + * Perform the VNC initialization sequence after the client has sucessfully * connected to the server. Negotiate security, framebuffer and color * properties. * -- GitLab From 9bdc08e01375ec654eb8114a2ce00e0e9b582103 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 16 Apr 2016 18:11:17 -0600 Subject: [PATCH 017/307] VNC: BPP as presented to application must match configuration; we will need to do conversions as necesasry for the BPP of the remote framebuffer --- graphics/vnc/server/vnc_fbdev.c | 16 ++++++++++++---- graphics/vnc/server/vnc_negotiate.c | 6 ++++-- graphics/vnc/server/vnc_server.h | 2 ++ 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/graphics/vnc/server/vnc_fbdev.c b/graphics/vnc/server/vnc_fbdev.c index 7d427d7983..cb05686cda 100644 --- a/graphics/vnc/server/vnc_fbdev.c +++ b/graphics/vnc/server/vnc_fbdev.c @@ -159,9 +159,12 @@ static int up_getvideoinfo(FAR struct fb_vtable_s *vtable, return -ENOTCONN; } - /* Return the requested video info */ + /* Return the requested video info. We are committed to using the + * configured color format in the framebuffer, but performing color + * conversions on the fly for the remote framebuffer as necessary. + */ - vinfo->fmt = session->colorfmt; + vinfo->fmt = RFB_COLORFMT; vinfo->xres = session->screen.w; vinfo->yres = session->screen.h; vinfo->nplanes = 1; @@ -197,10 +200,15 @@ static int up_getplaneinfo(FAR struct fb_vtable_s *vtable, int planeno, DEBUGASSERT(session->fb != NULL); - pinfo->fbmem = (FAR void *)&session->fb; + /* Return the requested plane info. We are committed to using the + * configured bits-per-pixels in the framebuffer, but performing color + * conversions on the fly for the remote framebuffer as necessary. + */ + + pinfo->fbmem = (FAR void *)session->fb; pinfo->fblen = (uint32_t)session->stride * CONFIG_VNCSERVER_SCREENWIDTH; pinfo->stride = (fb_coord_t)session->stride; - pinfo->bpp = session->bpp; + pinfo->bpp = RFB_BITSPERPIXEL; return OK; } diff --git a/graphics/vnc/server/vnc_negotiate.c b/graphics/vnc/server/vnc_negotiate.c index dc87247210..f5f487873b 100644 --- a/graphics/vnc/server/vnc_negotiate.c +++ b/graphics/vnc/server/vnc_negotiate.c @@ -275,14 +275,16 @@ int vnc_negotiate(FAR struct vnc_session_s *session) session->screen.w = CONFIG_VNCSERVER_SCREENWIDTH; session->screen.h = CONFIG_VNCSERVER_SCREENHEIGHT; - /* Now allocate the framebuffer memory */ + /* Now allocate the framebuffer memory. We rely on the fact that + * the KMM allocator will align memory to 32-bits or better. + */ len = (session->bpp + 7) >> 3; session->stride = len * CONFIG_VNCSERVER_SCREENWIDTH; alloc = (size_t)session->stride * CONFIG_VNCSERVER_SCREENHEIGHT; session->fb = (FAR uint8_t *)kmm_zalloc(alloc); - if (session->fb) + if (session->fb == NULL) { gdbg("ERROR: Failed to allocate framebuffer memory: %lu\n", (unsigned long)alloc); diff --git a/graphics/vnc/server/vnc_server.h b/graphics/vnc/server/vnc_server.h index 17dee09406..fda657b1ab 100644 --- a/graphics/vnc/server/vnc_server.h +++ b/graphics/vnc/server/vnc_server.h @@ -68,6 +68,7 @@ #endif #if defined(CONFIG_VNCSERVER_COLORFMT_RGB16) +# define RFB_COLORFMT FB_FMT_RGB16_565 # define RFB_BITSPERPIXEL 16 # define RFB_PIXELDEPTH 16 # define RFB_TRUECOLOR 1 @@ -78,6 +79,7 @@ # define RFB_GSHIFT 5 # define RFB_BSHIFT 0 #elif defined(CONFIG_VNCSERVER_COLORFMT_RGB32) +# define RFB_COLORFMT FB_FMT_RGB32 # define RFB_BITSPERPIXEL 32 # define RFB_PIXELDEPTH 24 # define RFB_TRUECOLOR 1 -- GitLab From c767686b3dadc1f803a11dc7bd5706aed52cbdd1 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 17 Apr 2016 08:20:14 -0600 Subject: [PATCH 018/307] VNC: Partition/rename some functionality. Add framework to support a reading and writing thread. --- graphics/vnc/server/Kconfig | 10 +- graphics/vnc/server/Make.defs | 2 +- graphics/vnc/server/vnc_fbdev.c | 22 +-- graphics/vnc/server/vnc_negotiate.c | 38 +---- graphics/vnc/server/vnc_receiver.c | 72 +++++++++ graphics/vnc/server/vnc_server.c | 193 ++++++++++++++++++++--- graphics/vnc/server/vnc_server.h | 130 ++++++++-------- graphics/vnc/server/vnc_session.c | 227 ---------------------------- graphics/vnc/server/vnc_updater.c | 171 +++++++++++++++++++++ 9 files changed, 510 insertions(+), 355 deletions(-) create mode 100644 graphics/vnc/server/vnc_receiver.c delete mode 100644 graphics/vnc/server/vnc_session.c create mode 100644 graphics/vnc/server/vnc_updater.c diff --git a/graphics/vnc/server/Kconfig b/graphics/vnc/server/Kconfig index f4dc219c37..f688da3ab1 100644 --- a/graphics/vnc/server/Kconfig +++ b/graphics/vnc/server/Kconfig @@ -34,13 +34,21 @@ config VNCSERVER_NDISPLAYS Normally this should be one. config VNCSERVER_PRIO - int "VNC server thread priority" + int "VNC server task priority" default 100 config VNCSERVER_STACKSIZE int "VNC server stack size" default 2048 +config VNCSERVER_UPDATER_PRIO + int "VNC updater thread priority" + default 100 + +config VNCSERVER_UPDATER_STACKSIZE + int "VNC updater thread stack size" + default 2048 + choice prompt "VNC color format" default VNCSERVER_COLORFMT_RGB16 diff --git a/graphics/vnc/server/Make.defs b/graphics/vnc/server/Make.defs index 4e86bfeda1..263be54df6 100644 --- a/graphics/vnc/server/Make.defs +++ b/graphics/vnc/server/Make.defs @@ -35,7 +35,7 @@ ifeq ($(CONFIG_VNCSERVER),y) -CSRCS += vnc_server.c vnc_session.c vnc_negotiate.c vnc_fbdev.c +CSRCS += vnc_server.c vnc_negotiate.c vnc_updater.c vnc_receiver.c vnc_fbdev.c ifeq ($(CONFIG_NX_KBD),y) CSRCS += vnc_keymap.c diff --git a/graphics/vnc/server/vnc_fbdev.c b/graphics/vnc/server/vnc_fbdev.c index cb05686cda..7433f4b3bc 100644 --- a/graphics/vnc/server/vnc_fbdev.c +++ b/graphics/vnc/server/vnc_fbdev.c @@ -153,7 +153,7 @@ static int up_getvideoinfo(FAR struct fb_vtable_s *vtable, if (fbinfo != NULL && vinfo != NULL) { session = vnc_find_session(fbinfo->display); - if (session == NULL || session->state != VNCSERVER_SCANNING) + if (session == NULL || session->state != VNCSERVER_RUNNING) { gdbg("ERROR: session is not connected\n"); return -ENOTCONN; @@ -165,8 +165,8 @@ static int up_getvideoinfo(FAR struct fb_vtable_s *vtable, */ vinfo->fmt = RFB_COLORFMT; - vinfo->xres = session->screen.w; - vinfo->yres = session->screen.h; + vinfo->xres = CONFIG_VNCSERVER_SCREENWIDTH; + vinfo->yres = CONFIG_VNCSERVER_SCREENHEIGHT; vinfo->nplanes = 1; return OK; @@ -192,7 +192,7 @@ static int up_getplaneinfo(FAR struct fb_vtable_s *vtable, int planeno, if (fbinfo != NULL && pinfo != NULL && planeno == 0) { session = vnc_find_session(fbinfo->display); - if (session == NULL || session->state != VNCSERVER_SCANNING) + if (session == NULL || session->state != VNCSERVER_RUNNING) { gdbg("ERROR: session is not connected\n"); return -ENOTCONN; @@ -206,8 +206,8 @@ static int up_getplaneinfo(FAR struct fb_vtable_s *vtable, int planeno, */ pinfo->fbmem = (FAR void *)session->fb; - pinfo->fblen = (uint32_t)session->stride * CONFIG_VNCSERVER_SCREENWIDTH; - pinfo->stride = (fb_coord_t)session->stride; + pinfo->fblen = RFB_SIZE; + pinfo->stride = RFB_STRIDE; pinfo->bpp = RFB_BITSPERPIXEL; return OK; @@ -236,7 +236,7 @@ static int up_getcmap(FAR struct fb_vtable_s *vtable, if (fbinfo != NULL && cmap != NULL) { session = vnc_find_session(fbinfo->display); - if (session == NULL || session->state != VNCSERVER_SCANNING) + if (session == NULL || session->state != VNCSERVER_RUNNING) { gdbg("ERROR: session is not connected\n"); return -ENOTCONN; @@ -271,7 +271,7 @@ static int up_putcmap(FAR struct fb_vtable_s *vtable, FAR const struct fb_cmap_s if (fbinfo != NULL && cmap != NULL) { session = vnc_find_session(fbinfo->display); - if (session == NULL || session->state != VNCSERVER_SCANNING) + if (session == NULL || session->state != VNCSERVER_RUNNING) { gdbg("ERROR: session is not connected\n"); return -ENOTCONN; @@ -307,7 +307,7 @@ static int up_getcursor(FAR struct fb_vtable_s *vtable, if (fbinfo != NULL && attrib != NULL) { session = vnc_find_session(fbinfo->display); - if (session == NULL || session->state != VNCSERVER_SCANNING) + if (session == NULL || session->state != VNCSERVER_RUNNING) { gdbg("ERROR: session is not connected\n"); return -ENOTCONN; @@ -341,7 +341,7 @@ static int up_setcursor(FAR struct fb_vtable_s *vtable, if (fbinfo != NULL && settings != NULL) { session = vnc_find_session(fbinfo->display); - if (session == NULL || session->state != VNCSERVER_SCANNING) + if (session == NULL || session->state != VNCSERVER_RUNNING) { gdbg("ERROR: session is not connected\n"); return -ENOTCONN; @@ -451,7 +451,7 @@ FAR struct fb_vtable_s *up_fbgetvplane(int display, int vplane) /* Verify that the session is still valid */ - if (session->state != VNCSERVER_SCANNING) + if (session->state != VNCSERVER_RUNNING) { return NULL; } diff --git a/graphics/vnc/server/vnc_negotiate.c b/graphics/vnc/server/vnc_negotiate.c index f5f487873b..44f1d8c312 100644 --- a/graphics/vnc/server/vnc_negotiate.c +++ b/graphics/vnc/server/vnc_negotiate.c @@ -45,7 +45,6 @@ #include #include -#include #include #include @@ -74,8 +73,7 @@ static const char g_vncproto[] = RFB_PROTOCOL_VERSION_3p8; * properties. * * Input Parameters: - * session - An instance of the session structure allocated by - * vnc_create_session(). + * session - An instance of the session structure. * * Returned Value: * Returns zero (OK) on success; a negated errno value on failure. @@ -91,7 +89,6 @@ int vnc_negotiate(FAR struct vnc_session_s *session) FAR struct rfb_setpixelformat_s *setformat; ssize_t nsent; ssize_t nrecvd; - size_t alloc; size_t len; int errcode; @@ -111,7 +108,7 @@ int vnc_negotiate(FAR struct vnc_session_s *session) /* Receive the echo of the protocol string */ - nrecvd = psock_recv(&session->connect, session->iobuf, len, 0); + nrecvd = psock_recv(&session->connect, session->inbuf, len, 0); if (nrecvd <= 0) { errcode = get_errno(); @@ -128,7 +125,7 @@ int vnc_negotiate(FAR struct vnc_session_s *session) * word:" */ - sectype = (FAR struct rfb_sectype_s *)session->iobuf; + sectype = (FAR struct rfb_sectype_s *)session->outbuf; rfb_putbe32(sectype->type, RFB_SECTYPE_NONE); nsent = psock_send(&session->connect, sectype, @@ -153,7 +150,7 @@ int vnc_negotiate(FAR struct vnc_session_s *session) * In this implementation, the sharing flag is ignored. */ - nrecvd = psock_recv(&session->connect, session->iobuf, + nrecvd = psock_recv(&session->connect, session->inbuf, sizeof(struct rfb_clientinit_s), 0); if (nrecvd < 0) { @@ -172,7 +169,7 @@ int vnc_negotiate(FAR struct vnc_session_s *session) * framebuffer, its pixel format and the name associated with the desktop: */ - serverinit = (FAR struct rfb_serverinit_s *)session->iobuf; + serverinit = (FAR struct rfb_serverinit_s *)session->outbuf; rfb_putbe16(serverinit->width, CONFIG_VNCSERVER_SCREENWIDTH); rfb_putbe16(serverinit->height, CONFIG_VNCSERVER_SCREENHEIGHT); @@ -207,7 +204,7 @@ int vnc_negotiate(FAR struct vnc_session_s *session) * This may override some of our framebuffer settings. */ - setformat = (FAR struct rfb_setpixelformat_s *)session->iobuf; + setformat = (FAR struct rfb_setpixelformat_s *)session->inbuf; nrecvd = psock_recv(&session->connect, setformat, sizeof(struct rfb_setpixelformat_s), 0); @@ -272,30 +269,11 @@ int vnc_negotiate(FAR struct vnc_session_s *session) return -ENOSYS; } - session->screen.w = CONFIG_VNCSERVER_SCREENWIDTH; - session->screen.h = CONFIG_VNCSERVER_SCREENHEIGHT; - - /* Now allocate the framebuffer memory. We rely on the fact that - * the KMM allocator will align memory to 32-bits or better. - */ - - len = (session->bpp + 7) >> 3; - session->stride = len * CONFIG_VNCSERVER_SCREENWIDTH; - alloc = (size_t)session->stride * CONFIG_VNCSERVER_SCREENHEIGHT; - - session->fb = (FAR uint8_t *)kmm_zalloc(alloc); - if (session->fb == NULL) - { - gdbg("ERROR: Failed to allocate framebuffer memory: %lu\n", - (unsigned long)alloc); - return -ENOMEM; - } - /* Receive supported encoding types from client, but ignore them. * we will do only raw format. */ - (void)psock_recv(&session->connect, session->iobuf, + (void)psock_recv(&session->connect, session->inbuf, CONFIG_VNCSERVER_IOBUFFER_SIZE, 0); session->state = VNCSERVER_CONFIGURED; @@ -326,7 +304,7 @@ int vnc_negotiate(FAR struct vnc_session_s *session) /* Receive the echo of the protocol string */ - nrecvd = psock_recv(&session->connect, session->iobuf, len, 0); + nrecvd = psock_recv(&session->connect, session->inbuf, len, 0); if (nrecvd <= 0) { errcode = get_errno(); diff --git a/graphics/vnc/server/vnc_receiver.c b/graphics/vnc/server/vnc_receiver.c new file mode 100644 index 0000000000..f8c9e47e1e --- /dev/null +++ b/graphics/vnc/server/vnc_receiver.c @@ -0,0 +1,72 @@ +/**************************************************************************** + * graphics/vnc/vnc_receiver.c + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include + +#include + +#include "vnc_server.h" + +/**************************************************************************** + * Private Functions + ****************************************************************************/ + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: vnc_receiver + * + * Description: + * This function handles all Client-to-Server messages. + * + * Input Parameters: + * session - An instance of the session structure. + * + * Returned Value: + * At present, always returns OK + * + ****************************************************************************/ + +int vnc_receiver(FAR struct vnc_session_s *session) +{ +#warning Missing logic + return -ENOSYS; +} diff --git a/graphics/vnc/server/vnc_server.c b/graphics/vnc/server/vnc_server.c index ac1c4e6d5d..77ed0f6410 100644 --- a/graphics/vnc/server/vnc_server.c +++ b/graphics/vnc/server/vnc_server.c @@ -39,12 +39,25 @@ #include "nuttx/config.h" +#include #include +#include #include +#include #include +#include +#include + +#include +#include + #include "vnc_server.h" +/**************************************************************************** + * Pre-processor Definitions + ****************************************************************************/ + /**************************************************************************** * Private Data ****************************************************************************/ @@ -55,6 +68,116 @@ static FAR struct vnc_session_s *g_vnc_sessions[RFB_MAX_DISPLAYS]; +/**************************************************************************** + * Private Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: vnc_reset_session + * + * Description: + * Conclude the current VNC session. This function re-initializes the + * session structure; it does not free either the session structure nor + * the framebuffer so that they may be re-used. + * + * Input Parameters: + * session - An instance of the session structure. + * + * Returned Value: + * None + * + ****************************************************************************/ + +static void vnc_reset_session(FAR struct vnc_session_s *session, + FAR uint8_t *fb) +{ + /* Close any open sockets */ + + if (session->state >= VNCSERVER_CONNECTED) + { + psock_close(&session->connect); + psock_close(&session->listen); + } + + /* [Re-]nitialize the session. Set all values to 0 == NULL == false. */ + + memset(session, 0, sizeof(struct vnc_session_s)); + + /* Then initialize only non-zero values */ + + session->fb = fb; + session->state = VNCSERVER_INITIALIZED; +} + +/**************************************************************************** + * Name: vnc_connect + * + * Description: + * Wait for a connection from the VNC client + * + * Input Parameters: + * session - An instance of the session structure. + * port - The listen port to use + * + * Returned Value: + * Returns zero (OK) on success; a negated errno value on failure. + * + ****************************************************************************/ + +static int vnc_connect(FAR struct vnc_session_s *session, int port) +{ + struct sockaddr_in addr; + int ret; + + /* Create a listening socket */ + + addr.sin_family = AF_INET; + addr.sin_port = htons(port); + addr.sin_addr.s_addr = INADDR_ANY; + + ret = psock_socket(AF_INET, SOCK_STREAM, 0, &session->listen); + if (ret < 0) + { + ret = -get_errno(); + return ret; + } + + /* Bind the listening socket to a local address */ + + ret = psock_bind(&session->listen, (struct sockaddr *)&addr, + sizeof(struct sockaddr_in)); + if (ret < 0) + { + ret = -get_errno(); + goto errout_with_listener; + } + + /* Listen for a connection */ + + ret = psock_listen(&session->listen, 5); + if (ret < 0) + { + ret = -get_errno(); + goto errout_with_listener; + } + + /* Connect to the client */ + + ret = psock_accept(&session->listen, NULL, NULL, &session->connect); + if (ret < 0) + { + ret = -get_errno(); + goto errout_with_listener; + } + + session->state = VNCSERVER_CONNECTED; + return OK; + +errout_with_listener: + psock_close(&session->listen); + return ret; +} + /**************************************************************************** * Pubic Functions ****************************************************************************/ @@ -76,6 +199,7 @@ static FAR struct vnc_session_s *g_vnc_sessions[RFB_MAX_DISPLAYS]; int vnc_server(int argc, FAR char *argv[]) { FAR struct vnc_session_s *session; + FAR uint8_t *fb; int display; int ret; @@ -96,13 +220,25 @@ int vnc_server(int argc, FAR char *argv[]) return EXIT_FAILURE; } + /* Allocate the framebuffer memory. We rely on the fact that + * the KMM allocator will align memory to 32-bits or better. + */ + + fb = (FAR uint8_t *)kmm_zalloc(RFB_SIZE); + if (fb == NULL) + { + gdbg("ERROR: Failed to allocate framebuffer memory: %lu\n", + (unsigned long)alloc); + return -ENOMEM; + } + /* Allocate a session structure for this display */ - session = vnc_create_session(); + session = kmm_zalloc(sizeof(struct vnc_session_s)); if (session == NULL) { gdbg("ERROR: Failed to allocate session\n"); - return EXIT_FAILURE; + goto errout_with_fb; } g_vnc_sessions[display] = session; @@ -113,6 +249,12 @@ int vnc_server(int argc, FAR char *argv[]) for (; ; ) { + /* Release the last sesstion and [Re-]initialize the session structure + * for the next connection. + */ + + vnc_reset_session(session, fb); + /* Establish a connection with the VNC client */ ret = vnc_connect(session, RFB_DISPLAY_PORT(display)); @@ -130,24 +272,42 @@ int vnc_server(int argc, FAR char *argv[]) { gdbg("ERROR: Failed to negotiate security/framebuffer: %d\n", ret); + continue; } - else - { - /* Start the VNC session. This function does not return until - * the session has been terminated (or an error occurs). - */ - ret = vnc_session(session); - gvdbg("Session terminated with %d\n", ret); + /* Start the VNC updater thread that sends all Server-to-Client + * messages. + */ + + ret = vnc_start_updater(session); + if (ret < 0) + { + gdbg("ERROR: Failed to start updater thread: %d\n", ret); + continue; } - } - /* Re-initialize the session structure for re-use */ + /* Start the VNC receiver on this this. The VNC receiver handles + * all Client-to-Server messages. The VNC receiver function does + * not return until the session has been terminated (or an error + * occurs). + */ + + ret = vnc_receiver(session); + gvdbg("Session terminated with %d\n", ret); - vnc_release_session(session); + /* Stop the VNC updater thread. */ + + ret = vnc_stop_updater(session); + if (ret < 0) + { + gdbg("ERROR: Failed to stop updater thread: %d\n", ret); + } + } } - return EXIT_FAILURE; /* We won't get here */ +errout_with_fb: + kmm_free(fb); + return EXIT_FAILURE; } /**************************************************************************** @@ -160,10 +320,9 @@ int vnc_server(int argc, FAR char *argv[]) * display - The display number of interest. * * Returned Value: - * Returns the instance of the session structure allocated by - * vnc_create_session() for this display. NULL will be returned if the - * server has not yet been started or if the display number is out of - * range. + * Returns the instance of the session structure for this display. NULL + * will be returned if the server has not yet been started or if the + * display number is out of range. * ****************************************************************************/ diff --git a/graphics/vnc/server/vnc_server.h b/graphics/vnc/server/vnc_server.h index fda657b1ab..4e0a2cf3ee 100644 --- a/graphics/vnc/server/vnc_server.h +++ b/graphics/vnc/server/vnc_server.h @@ -43,6 +43,7 @@ #include #include +#include #include #include @@ -109,10 +110,24 @@ # define CONFIG_VNCSERVER_STACKSIZE 2048 #endif +#ifndef CONFIG_VNCSERVER_UPDATER_PRIO +# define CONFIG_VNCSERVER_UPDATER_PRIO 100 +#endif + +#ifndef CONFIG_VNCSERVER_UPDATER_STACKSIZE +# define CONFIG_VNCSERVER_UPDATER_STACKSIZE 2048 +#endif + #ifndef CONFIG_VNCSERVER_IOBUFFER_SIZE # define CONFIG_VNCSERVER_IOBUFFER_SIZE 80 #endif +/* Local framebuffer characteristics in bytes */ + +#define RFB_BYTESPERPIXEL ((RFB_BITSPERPIXEL + 7) >> 8) +#define RFB_STRIDE (RFB_BYTESPERPIXEL * CONFIG_VNCSERVER_SCREENWIDTH) +#define RFB_SIZE (RFB_STRIDE * CONFIG_VNCSERVER_SCREENHEIGHT) + /* RFB Port Number */ #define RFB_PORT_BASE 5900 @@ -141,7 +156,7 @@ enum vnc_server_e VNCSERVER_INITIALIZED, /* State structured initialized, but not connected */ VNCSERVER_CONNECTED, /* Connect to a client, but not yet configured */ VNCSERVER_CONFIGURED, /* Configured and ready to transfer graphics */ - VNCSERVER_SCANNING, /* Running and activly transferring graphics */ + VNCSERVER_RUNNING, /* Running and activly transferring graphics */ VNCSERVER_STOPPING /* The server has been asked to stop */ }; @@ -159,15 +174,18 @@ struct vnc_session_s /* Display geometry and color characteristics */ - uint8_t colorfmt; /* See include/nuttx/fb.h */ - uint8_t bpp; /* Bits per pixel */ - size_t stride; /* Width of a row in bytes */ - struct nxgl_size_s screen; /* Size of the screen in pixels x rows */ + uint8_t colorfmt; /* Remote color format (See include/nuttx/fb.h) */ + uint8_t bpp; /* Remote bits per pixel */ FAR uint8_t *fb; /* Allocated local frame buffer */ - /* I/O buffer for misc network send/receive */ + /* Updater information */ + + pthread_t updater; /* Updater thread ID */ - uint8_t iobuf[CONFIG_VNCSERVER_IOBUFFER_SIZE]; + /* I/O buffers for misc network send/receive */ + + uint8_t inbuf[CONFIG_VNCSERVER_IOBUFFER_SIZE]; + uint8_t outbuf[CONFIG_VNCSERVER_IOBUFFER_SIZE]; }; /**************************************************************************** @@ -199,94 +217,94 @@ extern "C" int vnc_server(int argc, FAR char *argv[]); /**************************************************************************** - * Name: vnc_connect + * Name: vnc_negotiate * * Description: - * Wait for a connection from the VNC client + * Perform the VNC initialization sequence after the client has sucessfully + * connected to the server. Negotiate security, framebuffer and color + * properties. * * Input Parameters: - * session - An instance of the session structure allocated by - * vnc_create_session(). - * port - The listen port to use + * session - An instance of the session structure. * * Returned Value: * Returns zero (OK) on success; a negated errno value on failure. * ****************************************************************************/ -int vnc_connect(FAR struct vnc_session_s *session, int port); +int vnc_negotiate(FAR struct vnc_session_s *session); /**************************************************************************** - * Name: vnc_create_session + * Name: vnc_start_updater * * Description: - * Create a new, unconnected session + * Start the updater thread * * Input Parameters: - * None + * session - An instance of the session structure. * * Returned Value: - * On success, this function returns the allocated and initialize session - * structure. NULL is returned on failure. + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure. * ****************************************************************************/ -FAR struct vnc_session_s *vnc_create_session(void); +int vnc_start_updater(FAR struct vnc_session_s *session); /**************************************************************************** - * Name: vnc_release_session + * Name: vnc_stop_updater * * Description: - * Conclude the current VNC session and free most resources. This function - * re-initializes the session structure; it does not free it so that it - * can be re-used. + * Stop the updater thread * * Input Parameters: - * session - An instance of the session structure allocated by - * vnc_create_session(). + * session - An instance of the session structure. * * Returned Value: - * None + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure. * ****************************************************************************/ -void vnc_release_session(FAR struct vnc_session_s *session); +int vnc_stop_updater(FAR struct vnc_session_s *session); /**************************************************************************** - * Name: vnc_negotiate + * Name: vnc_receiver * * Description: - * Perform the VNC initialization sequence after the client has sucessfully - * connected to the server. Negotiate security, framebuffer and color - * properties. + * This function handles all Client-to-Server messages. * * Input Parameters: - * session - An instance of the session structure allocated by - * vnc_create_session(). + * session - An instance of the session structure. * * Returned Value: - * Returns zero (OK) on success; a negated errno value on failure. + * At present, always returns OK * ****************************************************************************/ -int vnc_negotiate(FAR struct vnc_session_s *session); +int vnc_receiver(FAR struct vnc_session_s *session); /**************************************************************************** - * Name: vnc_session + * Name: vnc_key_map * * Description: - * This function encapsulates the entire VNC session. + * Map the receive X11 keysym into something understood by NuttX and route + * that through NX to the appropriate window. * * Input Parameters: - * session - An instance of the session structure allocated by - * vnc_create_session(). + * session - An instance of the session structure. + * keysym - The X11 keysym value (see include/nuttx/inputx11_keysymdef) + * keydown - True: Key pressed; False: Key released * * Returned Value: - * At present, always returns OK + * None * ****************************************************************************/ -int vnc_session(FAR struct vnc_session_s *session); +#ifdef CONFIG_NX_KBD +void vnc_key_map(FAR struct vnc_session_s *session, uint32_t keysym, + bool keydown); +#endif /**************************************************************************** * Name: vnc_find_session @@ -298,38 +316,14 @@ int vnc_session(FAR struct vnc_session_s *session); * display - The display number of interest. * * Returned Value: - * Returns the instance of the session structure allocated by - * vnc_create_session() for this display. NULL will be returned if the - * server has not yet been started or if the display number is out of - * range. + * Returns the instance of the session structure for this display. NULL + * will be returned if the server has not yet been started or if the + * display number is out of range. * ****************************************************************************/ FAR struct vnc_session_s *vnc_find_session(int display); -/**************************************************************************** - * Name: vnc_key_map - * - * Description: - * Map the receive X11 keysym into something understood by NuttX and route - * that through NX to the appropriate window. - * - * Input Parameters: - * session - An instance of the session structure allocated by - * vnc_create_session(). - * keysym - The X11 keysym value (see include/nuttx/inputx11_keysymdef) - * keydown - True: Key pressed; False: Key released - * - * Returned Value: - * None - * - ****************************************************************************/ - -#ifdef CONFIG_NX_KBD -void vnc_key_map(FAR struct vnc_session_s *session, uint32_t keysym, - bool keydown); -#endif - #undef EXTERN #ifdef __cplusplus } diff --git a/graphics/vnc/server/vnc_session.c b/graphics/vnc/server/vnc_session.c deleted file mode 100644 index 3558993800..0000000000 --- a/graphics/vnc/server/vnc_session.c +++ /dev/null @@ -1,227 +0,0 @@ -/**************************************************************************** - * graphics/vnc/vnc_session.c - * - * Copyright (C) 2016 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name NuttX nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include - -#include -#include -#include - -#include -#include - -#include -#include - -#include "vnc_server.h" - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: vnc_initialize_session - * - * Description: - * [Re-]initialize a VNC session - * - * Input Parameters: - * session - the VNC session to be initialized - * - * Returned Value: - * None - * - ****************************************************************************/ - -static void vnc_initialize_session(FAR struct vnc_session_s *session) -{ - /* Initialize the session. Set all values to 0 == NULL == false. */ - - memset(session, 0, sizeof(struct vnc_session_s)); - - /* Then initialize only non-zero values */ - /* Initialized, not connected */ - - session->state = VNCSERVER_INITIALIZED; -} - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: vnc_connect - * - * Description: - * Wait for a connection from the VNC client - * - * Input Parameters: - * session - An instance of the session structure allocated by - * vnc_create_session(). - * port - The listen port to use - * - * Returned Value: - * Returns zero (OK) on success; a negated errno value on failure. - * - ****************************************************************************/ - -int vnc_connect(FAR struct vnc_session_s *session, int port) -{ - struct sockaddr_in addr; - int ret; - - /* Create a listening socket */ - - addr.sin_family = AF_INET; - addr.sin_port = htons(port); - addr.sin_addr.s_addr = INADDR_ANY; - - ret = psock_socket(AF_INET, SOCK_STREAM, 0, &session->listen); - if (ret < 0) - { - ret = -get_errno(); - return ret; - } - - /* Bind the listening socket to a local address */ - - ret = psock_bind(&session->listen, (struct sockaddr *)&addr, - sizeof(struct sockaddr_in)); - if (ret < 0) - { - ret = -get_errno(); - goto errout_with_listener; - } - - /* Listen for a connection */ - - ret = psock_listen(&session->listen, 5); - if (ret < 0) - { - ret = -get_errno(); - goto errout_with_listener; - } - - /* Connect to the client */ - - ret = psock_accept(&session->listen, NULL, NULL, &session->connect); - if (ret < 0) - { - ret = -get_errno(); - goto errout_with_listener; - } - - session->state = VNCSERVER_CONNECTED; - return OK; - -errout_with_listener: - psock_close(&session->listen); - return ret; -} - -/**************************************************************************** - * Name: vnc_create_session - * - * Description: - * Create a new, unconnected session - * - * Input Parameters: - * None - * - * Returned Value: - * On success, this function returns the allocated and initialize session - * structure. NULL is returned on failure. - * - ****************************************************************************/ - -FAR struct vnc_session_s *vnc_create_session(void) -{ - FAR struct vnc_session_s *session; - - /* Allocate the session */ - - session = (FAR struct vnc_session_s *) - kmm_zalloc(sizeof(struct vnc_session_s)); - - /* Initialize the session */ - - if (session != NULL) - { - vnc_initialize_session(session); - } - - return session; -} - -/**************************************************************************** - * Name: vnc_release_session - * - * Description: - * Conclude the current VNC session and free most resources. This function - * re-initializes the session structure; it does not free it so that it - * can be re-used. - * - * Input Parameters: - * session - An instance of the session structure allocated by - * vnc_create_session(). - * - * Returned Value: - * None - * - ****************************************************************************/ - -void vnc_release_session(FAR struct vnc_session_s *session) -{ - /* Close any open sockets */ - - if (session->state >= VNCSERVER_CONNECTED) - { - psock_close(&session->connect); - psock_close(&session->listen); - } - - /* Free the allocated framebuffer */ - - if (session->fb) - { - kmm_free(session->fb); - } - - vnc_initialize_session(session); -} diff --git a/graphics/vnc/server/vnc_updater.c b/graphics/vnc/server/vnc_updater.c new file mode 100644 index 0000000000..f8a44a9341 --- /dev/null +++ b/graphics/vnc/server/vnc_updater.c @@ -0,0 +1,171 @@ +/**************************************************************************** + * graphics/vnc/vnc_updater.c + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include + +#include +#include +#include + +#include "vnc_server.h" + +/**************************************************************************** + * Private Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: vnc_updater + * + * Description: + * This is the "updater" thread. It is the sender of all Server-to-Client + * messages + * + * Input Parameters: + * Standard pthread arguments. + * + * Returned Value: + * NULL is always returned. + * + ****************************************************************************/ + +static FAR void *vnc_updater(FAR void *arg) +{ + FAR struct vnc_session_s *session = (FAR struct vnc_session_s *)arg; + + DEBUGASSERT(session != NULL); + + while (session->state == VNCSERVER_RUNNING) + { +#warning Missing logic + } + + return NULL; +} + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: vnc_start_updater + * + * Description: + * Start the updater thread + * + * Input Parameters: + * session - An instance of the session structure. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure. + * + ****************************************************************************/ + +int vnc_start_updater(FAR struct vnc_session_s *session) +{ + pthread_attr_t attr; + struct sched_param param; + int status; + + /* Create thread that is gonna send rectangles to the client */ + + session->state = VNCSERVER_RUNNING; + + DEBUGVERIFY(pthread_attr_init(&attr)); + DEBUGVERIFY(pthread_attr_setstacksize(&attr, CONFIG_VNCSERVER_UPDATER_STACKSIZE)); + + param.sched_priority = CONFIG_VNCSERVER_UPDATER_PRIO; + DEBUGVERIFY(pthread_attr_setschedparam(&attr, ¶m)); + + status = pthread_create(&session->updater, &attr, vnc_updater, + (pthread_addr_t)session); + if (status != 0) + { + return -status; + } + + return OK; +} + +/**************************************************************************** + * Name: vnc_stop_updater + * + * Description: + * Stop the updater thread + * + * Input Parameters: + * session - An instance of the session structure. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure. + * + ****************************************************************************/ + +int vnc_stop_updater(FAR struct vnc_session_s *session) +{ + pthread_addr_t result; + int status; + + /* Is the update thread running? */ + + if (session->state == VNCSERVER_RUNNING) + { + /* Yes.. ask it to please stop */ + + session->state = VNCSERVER_STOPPING; + + /* Wait for the thread to comply with our request */ + + status = pthread_join(session->updater, &result); + if (status != 0) + { + return -status; + } + + /* Return what the thread returned */ + + return (int)((intptr_t)result); + } + + /* Not running? Just say we stopped the thread successfully. */ + + return OK; +} + -- GitLab From 3ca5a945151f9fa59773978a8fac404ea008e2f1 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 17 Apr 2016 09:17:37 -0600 Subject: [PATCH 019/307] VNC: Add basic message receipt logic --- graphics/vnc/server/Kconfig | 1 + graphics/vnc/server/vnc_negotiate.c | 2 +- graphics/vnc/server/vnc_receiver.c | 63 +++++++++++++++++++++++++++++ net/socket/recvfrom.c | 2 +- 4 files changed, 66 insertions(+), 2 deletions(-) diff --git a/graphics/vnc/server/Kconfig b/graphics/vnc/server/Kconfig index f688da3ab1..74319591ef 100644 --- a/graphics/vnc/server/Kconfig +++ b/graphics/vnc/server/Kconfig @@ -7,6 +7,7 @@ menuconfig VNCSERVER bool "VNC server" default n depends on NET_TCP && !NX_LCDDRIVER && EXPERIMENTAL + select NET_TCP_READAHEAD ---help--- Enable support for a VNC Remote Frame Buffer (RFB) server. diff --git a/graphics/vnc/server/vnc_negotiate.c b/graphics/vnc/server/vnc_negotiate.c index 44f1d8c312..39b9681e69 100644 --- a/graphics/vnc/server/vnc_negotiate.c +++ b/graphics/vnc/server/vnc_negotiate.c @@ -109,7 +109,7 @@ int vnc_negotiate(FAR struct vnc_session_s *session) /* Receive the echo of the protocol string */ nrecvd = psock_recv(&session->connect, session->inbuf, len, 0); - if (nrecvd <= 0) + if (nrecvd < 0) { errcode = get_errno(); gdbg("ERROR: Receive protocol confirmation failed: %d\n", errcode); diff --git a/graphics/vnc/server/vnc_receiver.c b/graphics/vnc/server/vnc_receiver.c index f8c9e47e1e..d84f05ba03 100644 --- a/graphics/vnc/server/vnc_receiver.c +++ b/graphics/vnc/server/vnc_receiver.c @@ -39,7 +39,12 @@ #include +#include #include +#include + +#include +#include #include "vnc_server.h" @@ -67,6 +72,64 @@ int vnc_receiver(FAR struct vnc_session_s *session) { + ssize_t nrecvd; + int errcode; + + /* Loop until the client disconnects or an unhandled error occurs */ + + for (; ; ) + { + /* Set up to read one byte which should be the message type of the + * next Client-to-Server message. We will block here until the message + * is received. + */ + + nrecvd = psock_recv(&session->connect, session->inbuf, 1, 0); + if (nrecvd < 0) + { + errcode = get_errno(); + gdbg("ERROR: Receive byte failed: %d\n", errcode); + DEBUGASSERT(errcode > 0); + return -errcode; + } + + DEBUGASSERT(nrecvd == 1); + + /* The single byte received should be the message type. Handle the + * message according to this message type. + */ + + switch (session->inbuf[0]) + { + case RFB_SETPIXELFMT_MSG: /* SetPixelFormat */ #warning Missing logic + break; + + case RFB_SETENCODINGS_MSG: /* SetEncodings */ +#warning Missing logic + break; + + case RFB_FBUPDATEREQ_MSG: /* FramebufferUpdateRequest */ +#warning Missing logic + break; + + case RFB_KEYEVENT_MSG: /* KeyEvent */ +#warning Missing logic + break; + + case RFB_POINTEREVENT_MSG: /* PointerEvent */ +#warning Missing logic + break; + + case RFB_CLIENTCUTTEXT_MSG: /* ClientCutText */ +#warning Missing logic + break; + + default: + gdbg("ERROR: Unsynchronized, msgtype=%d\n", session->inbuf[0]); + return -EPROTO; + } + } + return -ENOSYS; } diff --git a/net/socket/recvfrom.c b/net/socket/recvfrom.c index a6921315fd..0125975393 100644 --- a/net/socket/recvfrom.c +++ b/net/socket/recvfrom.c @@ -261,7 +261,7 @@ static inline void recvfrom_newtcpdata(FAR struct net_driver_s *dev, size_t recvlen = recvfrom_newdata(dev, pstate); - /* If there is more data left in the packet that we could not buffer, than + /* If there is more data left in the packet that we could not buffer, then * add it to the read-ahead buffers. */ -- GitLab From d71185ae46179735607d2ea59f63279a0ec7a2fb Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 17 Apr 2016 09:24:41 -0600 Subject: [PATCH 020/307] Remove comment blocks before empty code sections --- graphics/nxbe/nxbe_bitmap.c | 12 ------------ graphics/nxbe/nxbe_clipper.c | 4 ---- graphics/nxbe/nxbe_closewindow.c | 20 -------------------- graphics/nxbe/nxbe_colormap.c | 20 -------------------- graphics/nxbe/nxbe_fill.c | 12 ------------ graphics/nxbe/nxbe_filltrapezoid.c | 12 ------------ graphics/nxbe/nxbe_getrectangle.c | 16 ---------------- graphics/nxbe/nxbe_lower.c | 20 -------------------- graphics/nxbe/nxbe_move.c | 12 ------------ graphics/nxbe/nxbe_raise.c | 16 ---------------- graphics/nxbe/nxbe_redraw.c | 12 ------------ graphics/nxbe/nxbe_redrawbelow.c | 20 -------------------- graphics/nxbe/nxbe_setpixel.c | 12 ------------ graphics/nxbe/nxbe_setposition.c | 20 -------------------- graphics/nxbe/nxbe_setsize.c | 20 -------------------- graphics/nxbe/nxbe_visible.c | 12 ------------ 16 files changed, 240 deletions(-) diff --git a/graphics/nxbe/nxbe_bitmap.c b/graphics/nxbe/nxbe_bitmap.c index feb6babe7c..fdaa2e50bc 100644 --- a/graphics/nxbe/nxbe_bitmap.c +++ b/graphics/nxbe/nxbe_bitmap.c @@ -45,10 +45,6 @@ #include #include "nxbe.h" -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - /**************************************************************************** * Private Types ****************************************************************************/ @@ -61,14 +57,6 @@ struct nx_bitmap_s unsigned int stride; /* The width of the full source image in pixels. */ }; -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Public Data - ****************************************************************************/ - /**************************************************************************** * Private Functions ****************************************************************************/ diff --git a/graphics/nxbe/nxbe_clipper.c b/graphics/nxbe/nxbe_clipper.c index 9155f97a39..0ded5b5c70 100644 --- a/graphics/nxbe/nxbe_clipper.c +++ b/graphics/nxbe/nxbe_clipper.c @@ -90,10 +90,6 @@ static const uint8_t g_nxcliporder[4][4] = { NX_BOTTOM_NDX, NX_RIGHT_NDX, NX_LEFT_NDX, NX_TOP_NDX } /* NX_CLIPORDER_BRLT */ }; -/**************************************************************************** - * Public Data - ****************************************************************************/ - /**************************************************************************** * Private Functions ****************************************************************************/ diff --git a/graphics/nxbe/nxbe_closewindow.c b/graphics/nxbe/nxbe_closewindow.c index fb5d311970..04f5b9b23d 100644 --- a/graphics/nxbe/nxbe_closewindow.c +++ b/graphics/nxbe/nxbe_closewindow.c @@ -47,26 +47,6 @@ #include "nxbe.h" -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Types - ****************************************************************************/ - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Public Data - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ diff --git a/graphics/nxbe/nxbe_colormap.c b/graphics/nxbe/nxbe_colormap.c index 1443206068..6270fa4dcf 100644 --- a/graphics/nxbe/nxbe_colormap.c +++ b/graphics/nxbe/nxbe_colormap.c @@ -49,26 +49,6 @@ #include "nxbe.h" -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Types - ****************************************************************************/ - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Public Data - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ diff --git a/graphics/nxbe/nxbe_fill.c b/graphics/nxbe/nxbe_fill.c index cc342bb1a5..dfad22b197 100644 --- a/graphics/nxbe/nxbe_fill.c +++ b/graphics/nxbe/nxbe_fill.c @@ -43,10 +43,6 @@ #include "nxbe.h" -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - /**************************************************************************** * Private Types ****************************************************************************/ @@ -57,14 +53,6 @@ struct nxbe_fill_s nxgl_mxpixel_t color; }; -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Public Data - ****************************************************************************/ - /**************************************************************************** * Private Functions ****************************************************************************/ diff --git a/graphics/nxbe/nxbe_filltrapezoid.c b/graphics/nxbe/nxbe_filltrapezoid.c index 9d04aa5f45..550be6c175 100644 --- a/graphics/nxbe/nxbe_filltrapezoid.c +++ b/graphics/nxbe/nxbe_filltrapezoid.c @@ -44,10 +44,6 @@ #include "nxbe.h" -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - /**************************************************************************** * Private Types ****************************************************************************/ @@ -59,14 +55,6 @@ struct nxbe_filltrap_s nxgl_mxpixel_t color; }; -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Public Data - ****************************************************************************/ - /**************************************************************************** * Private Functions ****************************************************************************/ diff --git a/graphics/nxbe/nxbe_getrectangle.c b/graphics/nxbe/nxbe_getrectangle.c index 6842df8bda..b4d871bc80 100644 --- a/graphics/nxbe/nxbe_getrectangle.c +++ b/graphics/nxbe/nxbe_getrectangle.c @@ -46,10 +46,6 @@ #include "nxbe.h" -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - /**************************************************************************** * Private Types ****************************************************************************/ @@ -60,18 +56,6 @@ struct nxbe_fill_s nxgl_mxpixel_t color; }; -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Public Data - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ diff --git a/graphics/nxbe/nxbe_lower.c b/graphics/nxbe/nxbe_lower.c index d2f6724b94..c01552454b 100644 --- a/graphics/nxbe/nxbe_lower.c +++ b/graphics/nxbe/nxbe_lower.c @@ -45,26 +45,6 @@ #include #include "nxbe.h" -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Types - ****************************************************************************/ - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Public Data - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ diff --git a/graphics/nxbe/nxbe_move.c b/graphics/nxbe/nxbe_move.c index d0a2b3ce73..5f142bc11d 100644 --- a/graphics/nxbe/nxbe_move.c +++ b/graphics/nxbe/nxbe_move.c @@ -46,10 +46,6 @@ #include "nxbe.h" #include "nxfe.h" -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - /**************************************************************************** * Private Types ****************************************************************************/ @@ -63,14 +59,6 @@ struct nxbe_move_s uint8_t order; }; -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Public Data - ****************************************************************************/ - /**************************************************************************** * Private Functions ****************************************************************************/ diff --git a/graphics/nxbe/nxbe_raise.c b/graphics/nxbe/nxbe_raise.c index 769007b437..143fb5d869 100644 --- a/graphics/nxbe/nxbe_raise.c +++ b/graphics/nxbe/nxbe_raise.c @@ -44,10 +44,6 @@ #include "nxbe.h" #include "nxfe.h" -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - /**************************************************************************** * Private Types ****************************************************************************/ @@ -58,18 +54,6 @@ struct nxbe_raise_s FAR struct nxbe_window_s *wnd; }; -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Public Data - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ diff --git a/graphics/nxbe/nxbe_redraw.c b/graphics/nxbe/nxbe_redraw.c index 407145facf..397a019060 100644 --- a/graphics/nxbe/nxbe_redraw.c +++ b/graphics/nxbe/nxbe_redraw.c @@ -47,10 +47,6 @@ #include "nxbe.h" #include "nxfe.h" -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - /**************************************************************************** * Private Types ****************************************************************************/ @@ -61,14 +57,6 @@ struct nxbe_redraw_s FAR struct nxbe_window_s *wnd; }; -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Public Data - ****************************************************************************/ - /**************************************************************************** * Private Functions ****************************************************************************/ diff --git a/graphics/nxbe/nxbe_redrawbelow.c b/graphics/nxbe/nxbe_redrawbelow.c index 0c02b9d46b..9715267048 100644 --- a/graphics/nxbe/nxbe_redrawbelow.c +++ b/graphics/nxbe/nxbe_redrawbelow.c @@ -44,26 +44,6 @@ #include "nxbe.h" -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Types - ****************************************************************************/ - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Public Data - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ diff --git a/graphics/nxbe/nxbe_setpixel.c b/graphics/nxbe/nxbe_setpixel.c index c3d1dad72b..90cacf629a 100644 --- a/graphics/nxbe/nxbe_setpixel.c +++ b/graphics/nxbe/nxbe_setpixel.c @@ -43,10 +43,6 @@ #include "nxbe.h" -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - /**************************************************************************** * Private Types ****************************************************************************/ @@ -57,14 +53,6 @@ struct nxbe_setpixel_s nxgl_mxpixel_t color; }; -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Public Data - ****************************************************************************/ - /**************************************************************************** * Private Functions ****************************************************************************/ diff --git a/graphics/nxbe/nxbe_setposition.c b/graphics/nxbe/nxbe_setposition.c index de22514f82..5647270e54 100644 --- a/graphics/nxbe/nxbe_setposition.c +++ b/graphics/nxbe/nxbe_setposition.c @@ -44,26 +44,6 @@ #include "nxbe.h" #include "nxfe.h" -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Types - ****************************************************************************/ - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Public Data - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ diff --git a/graphics/nxbe/nxbe_setsize.c b/graphics/nxbe/nxbe_setsize.c index 9fc2c04288..b542c0a8e8 100644 --- a/graphics/nxbe/nxbe_setsize.c +++ b/graphics/nxbe/nxbe_setsize.c @@ -44,26 +44,6 @@ #include "nxbe.h" #include "nxfe.h" -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Types - ****************************************************************************/ - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Public Data - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ diff --git a/graphics/nxbe/nxbe_visible.c b/graphics/nxbe/nxbe_visible.c index d1e3829336..bf22ffa0be 100644 --- a/graphics/nxbe/nxbe_visible.c +++ b/graphics/nxbe/nxbe_visible.c @@ -48,10 +48,6 @@ #include "nxbe.h" #include "nxfe.h" -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - /**************************************************************************** * Private Types ****************************************************************************/ @@ -62,14 +58,6 @@ struct nxbe_visible_s bool visible; }; -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Public Data - ****************************************************************************/ - /**************************************************************************** * Private Functions ****************************************************************************/ -- GitLab From aa64214877e00167c14425801095004589b9f267 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 17 Apr 2016 10:08:27 -0600 Subject: [PATCH 021/307] FB: Add a display number to the framebuffer planeinfo structure --- arch/arm/src/dm320/dm320_framebuffer.c | 36 ++++++++++++++------------ arch/arm/src/lpc17xx/lpc17_lcd.c | 1 + arch/arm/src/sama5/sam_lcd.c | 9 ++++--- arch/arm/src/stm32/stm32_dma2d.c | 17 ++++++------ arch/arm/src/stm32/stm32_ltdc.c | 2 ++ arch/sim/src/board_lcd.c | 17 ++++++------ arch/sim/src/up_framebuffer.c | 1 + arch/x86/src/qemu/qemu_vga.c | 9 ++++--- configs/compal_e99/src/ssd1783.c | 9 ++++--- include/nuttx/video/fb.h | 1 + 10 files changed, 59 insertions(+), 43 deletions(-) diff --git a/arch/arm/src/dm320/dm320_framebuffer.c b/arch/arm/src/dm320/dm320_framebuffer.c index 057a4a9d6b..8fd4ec4463 100644 --- a/arch/arm/src/dm320/dm320_framebuffer.c +++ b/arch/arm/src/dm320/dm320_framebuffer.c @@ -1010,10 +1010,11 @@ static int dm320_getvid0planeinfo(FAR struct fb_vtable_s *vtable, int planeno, } #endif - pinfo->fbmem = g_vid0base; - pinfo->fblen = DM320_VID0_FBLEN; - pinfo->stride = DM320_VID0_STRIDE; - pinfo->bpp = DM320_VID0_BPP; + pinfo->fbmem = g_vid0base; + pinfo->fblen = DM320_VID0_FBLEN; + pinfo->stride = DM320_VID0_STRIDE; + pinfo->display = 0; + pinfo->bpp = DM320_VID0_BPP; return OK; } #endif @@ -1056,10 +1057,11 @@ static int dm320_getvid1planeinfo(FAR struct fb_vtable_s *vtable, int planeno, } #endif - pinfo->fbmem = g_vid1base; - pinfo->fblen = DM320_VID1_FBLEN; - pinfo->stride = DM320_VID1_STRIDE; - pinfo->bpp = DM320_VID1_BPP; + pinfo->fbmem = g_vid1base; + pinfo->fblen = DM320_VID1_FBLEN; + pinfo->stride = DM320_VID1_STRIDE; + pinfo->display = 1; + pinfo->bpp = DM320_VID1_BPP; return OK; } #endif @@ -1106,10 +1108,11 @@ static int dm320_getosd0planeinfo(FAR struct fb_vtable_s *vtable, int planeno, } #endif - pinfo->fbmem = g_osd0base; - pinfo->fblen = DM320_OSD0_FBLEN; - pinfo->stride = DM320_OSD0_STRIDE; - pinfo->bpp = DM320_OSD0_BPP; + pinfo->fbmem = g_osd0base; + pinfo->fblen = DM320_OSD0_FBLEN; + pinfo->stride = DM320_OSD0_STRIDE; + pinfo->display = 2; + pinfo->bpp = DM320_OSD0_BPP; return OK; } #endif @@ -1156,10 +1159,11 @@ static int dm320_getosd1planeinfo(FAR struct fb_vtable_s *vtable, int planeno, } #endif - pinfo->fbmem = g_osd1base; - pinfo->fblen = DM320_OSD1_FBLEN; - pinfo->stride = DM320_OSD1_STRIDE; - pinfo->bpp = DM320_OSD1_BPP; + pinfo->fbmem = g_osd1base; + pinfo->fblen = DM320_OSD1_FBLEN; + pinfo->stride = DM320_OSD1_STRIDE; + pinfo->display = 3; + pinfo->bpp = DM320_OSD1_BPP; return OK; } #endif diff --git a/arch/arm/src/lpc17xx/lpc17_lcd.c b/arch/arm/src/lpc17xx/lpc17_lcd.c index f2b892ee4c..79be36191c 100644 --- a/arch/arm/src/lpc17xx/lpc17_lcd.c +++ b/arch/arm/src/lpc17xx/lpc17_lcd.c @@ -153,6 +153,7 @@ static const struct fb_planeinfo_s g_planeinfo = .fbmem = (FAR void *)CONFIG_LPC17_LCD_VRAMBASE, .fblen = LPC17_FBSIZE, .stride = LPC17_STRIDE, + .display = 0, .bpp = LPC17_BPP, }; diff --git a/arch/arm/src/sama5/sam_lcd.c b/arch/arm/src/sama5/sam_lcd.c index f696e71a69..8032bb04f4 100644 --- a/arch/arm/src/sama5/sam_lcd.c +++ b/arch/arm/src/sama5/sam_lcd.c @@ -1122,10 +1122,11 @@ static int sam_base_getplaneinfo(struct fb_vtable_s *vtable, int planeno, gvdbg("vtable=%p planeno=%d pinfo=%p\n", vtable, planeno, pinfo); if (vtable && planeno == 0 && pinfo) { - pinfo->fbmem = (void *)LAYER_BASE.framebuffer; - pinfo->fblen = SAMA5_BASE_FBSIZE; - pinfo->stride = SAMA5_BASE_STRIDE, - pinfo->bpp = LAYER_BASE.bpp; + pinfo->fbmem = (void *)LAYER_BASE.framebuffer; + pinfo->fblen = SAMA5_BASE_FBSIZE; + pinfo->stride = SAMA5_BASE_STRIDE; + pinfo->display = 0; + pinfo->bpp = LAYER_BASE.bpp; return OK; } diff --git a/arch/arm/src/stm32/stm32_dma2d.c b/arch/arm/src/stm32/stm32_dma2d.c index 442b88c3ff..e951e8916d 100644 --- a/arch/arm/src/stm32/stm32_dma2d.c +++ b/arch/arm/src/stm32/stm32_dma2d.c @@ -2047,17 +2047,18 @@ FAR struct dma2d_layer_s *up_dma2dcreatelayer(fb_coord_t width, /* Initialize the videoinfo structure */ - vinfo->fmt = fmt; - vinfo->xres = width; - vinfo->yres = height; - vinfo->nplanes = 1; + vinfo->fmt = fmt; + vinfo->xres = width; + vinfo->yres = height; + vinfo->nplanes = 1; /* Initialize the planeinfo structure */ - pinfo->fbmem = fbmem; - pinfo->fblen = fblen; - pinfo->stride = stride; - pinfo->bpp = bpp; + pinfo->fbmem = fbmem; + pinfo->fblen = fblen; + pinfo->stride = stride; + pinfo->display = 0; + pinfo->bpp = bpp; /* Bind the layer to the identifier */ diff --git a/arch/arm/src/stm32/stm32_ltdc.c b/arch/arm/src/stm32/stm32_ltdc.c index 72bfb53201..8ae8e890fd 100644 --- a/arch/arm/src/stm32/stm32_ltdc.c +++ b/arch/arm/src/stm32/stm32_ltdc.c @@ -735,6 +735,7 @@ static struct stm32_ltdcdev_s g_ltdc = .fbmem = (uint8_t *)STM32_LTDC_BUFFER_L1, .fblen = STM32_L1_FBSIZE, .stride = STM32_L1_STRIDE, + .display = 0, .bpp = STM32_LTDC_L1_BPP }, .vinfo = @@ -761,6 +762,7 @@ static struct stm32_ltdcdev_s g_ltdc = .fbmem = (uint8_t *)STM32_LTDC_BUFFER_L2, .fblen = STM32_L2_FBSIZE, .stride = STM32_L2_STRIDE, + .display = 1, .bpp = STM32_LTDC_L2_BPP }, .vinfo = diff --git a/arch/sim/src/board_lcd.c b/arch/sim/src/board_lcd.c index 94d0d6af87..3760aa195e 100644 --- a/arch/sim/src/board_lcd.c +++ b/arch/sim/src/board_lcd.c @@ -196,20 +196,21 @@ static uint8_t g_runbuffer[FB_STRIDE]; static const struct fb_videoinfo_s g_videoinfo = { - .fmt = FB_FMT, /* Color format: RGB16-565: RRRR RGGG GGGB BBBB */ - .xres = CONFIG_SIM_FBWIDTH, /* Horizontal resolution in pixel columns */ - .yres = CONFIG_SIM_FBHEIGHT, /* Vertical resolution in pixel rows */ - .nplanes = 1, /* Number of color planes supported */ + .fmt = FB_FMT, /* Color format: RGB16-565: RRRR RGGG GGGB BBBB */ + .xres = CONFIG_SIM_FBWIDTH, /* Horizontal resolution in pixel columns */ + .yres = CONFIG_SIM_FBHEIGHT, /* Vertical resolution in pixel rows */ + .nplanes = 1, /* Number of color planes supported */ }; /* This is the standard, NuttX Plane information object */ static const struct lcd_planeinfo_s g_planeinfo = { - .putrun = sim_putrun, /* Put a run into LCD memory */ - .getrun = sim_getrun, /* Get a run from LCD memory */ - .buffer = (FAR uint8_t *)g_runbuffer, /* Run scratch buffer */ - .bpp = CONFIG_SIM_FBBPP, /* Bits-per-pixel */ + .putrun = sim_putrun, /* Put a run into LCD memory */ + .getrun = sim_getrun, /* Get a run from LCD memory */ + .buffer = (FAR uint8_t *)g_runbuffer, /* Run scratch buffer */ + .display = 0, /* Display number */ + .bpp = CONFIG_SIM_FBBPP, /* Bits-per-pixel */ }; /* This is the standard, NuttX LCD driver object */ diff --git a/arch/sim/src/up_framebuffer.c b/arch/sim/src/up_framebuffer.c index 406f49ab22..847fcd0b6a 100644 --- a/arch/sim/src/up_framebuffer.c +++ b/arch/sim/src/up_framebuffer.c @@ -137,6 +137,7 @@ static const struct fb_planeinfo_s g_planeinfo = .fbmem = (FAR void *)&g_fb, .fblen = FB_SIZE, .stride = FB_WIDTH, + .display = 0, .bpp = CONFIG_SIM_FBBPP, }; #else diff --git a/arch/x86/src/qemu/qemu_vga.c b/arch/x86/src/qemu/qemu_vga.c index 78cec8121c..ec56c8aaa8 100644 --- a/arch/x86/src/qemu/qemu_vga.c +++ b/arch/x86/src/qemu/qemu_vga.c @@ -368,10 +368,11 @@ static int vga_getvideoinfo(FAR struct lcd_dev_s *dev, static int vga_getplaneinfo(FAR struct lcd_dev_s *dev, unsigned int planeno, FAR struct lcd_planeinfo_s *pinfo) { - pinfo->putrun = vga_putrun; /* Put a run into LCD memory */ - pinfo->getrun = vga_getrun; /* Get a run from LCD memory */ - pinfo->buffer = g_runbuffer; /* Run scratch buffer */ - pinfo->bpp = VGA_BPP; /* Bits-per-pixel */ + pinfo->putrun = vga_putrun; /* Put a run into LCD memory */ + pinfo->getrun = vga_getrun; /* Get a run from LCD memory */ + pinfo->buffer = g_runbuffer; /* Run scratch buffer */ + pinfo->display = 0; + pinfo->bpp = VGA_BPP; /* Bits-per-pixel */ return OK; } diff --git a/configs/compal_e99/src/ssd1783.c b/configs/compal_e99/src/ssd1783.c index c2e203d0d0..e33cbd4f80 100644 --- a/configs/compal_e99/src/ssd1783.c +++ b/configs/compal_e99/src/ssd1783.c @@ -148,7 +148,8 @@ static uint16_t g_runbuffer[LCD_XRES]; /* This structure describes the overall LCD video controller */ static const struct fb_videoinfo_s g_videoinfo = -{ .fmt = LCD_COLORFMT, /* Color format: RGB16-565: RRRR RGGG GGGB BBBB */ +{ + .fmt = LCD_COLORFMT, /* Color format: RGB16-565: RRRR RGGG GGGB BBBB */ .xres = LCD_XRES, /* Horizontal resolution in pixel columns */ .yres = LCD_YRES, /* Vertical resolutiSend a command list to the LCD panelon in pixel rows */ .nplanes = 1, /* Number of color planes supported */ @@ -157,7 +158,8 @@ static const struct fb_videoinfo_s g_videoinfo = /* This is the standard, NuttX Plane information object */ static const struct lcd_planeinfo_s g_planeinfo = -{ .putrun = lcd_putrun, /* Put a run into LCD memory */ +{ + .putrun = lcd_putrun, /* Put a run into LCD memory */ // .getrun = lcd_getrun, /* Get a run from LCD memory */ .buffer = (uint8_t*) g_runbuffer, /* Run scratch buffer */ .bpp = LCD_BPP, /* Bits-per-pixel */ @@ -166,7 +168,8 @@ static const struct lcd_planeinfo_s g_planeinfo = /* This is the standard, NuttX LCD driver object */ static struct ssd1783_dev_s g_lcddev = -{ .dev = +{ + .dev = { /* LCD Configuration */ diff --git a/include/nuttx/video/fb.h b/include/nuttx/video/fb.h index 287bddb22a..da702b31fc 100644 --- a/include/nuttx/video/fb.h +++ b/include/nuttx/video/fb.h @@ -218,6 +218,7 @@ struct fb_planeinfo_s FAR void *fbmem; /* Start of frame buffer memory */ uint32_t fblen; /* Length of frame buffer memory in bytes */ fb_coord_t stride; /* Length of a line in bytes */ + uint8_t display; /* Display number */ uint8_t bpp; /* Bits per pixel */ }; -- GitLab From fc9a8ebce8a4202dad1f4be1c07ea30c440d4204 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 17 Apr 2016 11:12:30 -0600 Subject: [PATCH 022/307] FB: Add a display number to the framebuffer planeinfo structure --- graphics/vnc/server/vnc_fbdev.c | 1 + 1 file changed, 1 insertion(+) diff --git a/graphics/vnc/server/vnc_fbdev.c b/graphics/vnc/server/vnc_fbdev.c index 7433f4b3bc..68ae32ef49 100644 --- a/graphics/vnc/server/vnc_fbdev.c +++ b/graphics/vnc/server/vnc_fbdev.c @@ -208,6 +208,7 @@ static int up_getplaneinfo(FAR struct fb_vtable_s *vtable, int planeno, pinfo->fbmem = (FAR void *)session->fb; pinfo->fblen = RFB_SIZE; pinfo->stride = RFB_STRIDE; + pinfo->display = fbinfo->display; pinfo->bpp = RFB_BITSPERPIXEL; return OK; -- GitLab From 1b9d837df3d879d6e2440c840ed7c2482c4b8944 Mon Sep 17 00:00:00 2001 From: ziggurat29 Date: Sun, 17 Apr 2016 12:20:07 -0500 Subject: [PATCH 023/307] add MTD support for Micron N25Qxxx family of QSPI flash --- drivers/mtd/Kconfig | 42 +- drivers/mtd/Make.defs | 4 + drivers/mtd/n25qxxx.c | 1503 +++++++++++++++++++++++++++++++++++++++ include/nuttx/mtd/mtd.h | 13 + 4 files changed, 1556 insertions(+), 6 deletions(-) create mode 100644 drivers/mtd/n25qxxx.c diff --git a/drivers/mtd/Kconfig b/drivers/mtd/Kconfig index 5f04bccd60..b3a4dd7c06 100644 --- a/drivers/mtd/Kconfig +++ b/drivers/mtd/Kconfig @@ -16,7 +16,7 @@ config MTD_PARTITION accesses do not extend outside of the partition. A FLASH device may be broken up into several partitions managed, - each managed by a separate MTD driver. The MTD parition interface + each managed by a separate MTD driver. The MTD partition interface is described in: include/nuttx/mtd/mtd.h @@ -43,7 +43,7 @@ config MTD_SECT512 If enabled, a MTD driver will be created that will convert the sector size of any other MTD driver to a 512 byte "apparent" sector size. The managed MTD driver in this case must have an erase block - size that is greater than 512B and an event multiple of 512B. + size that is greater than 512B and an even multiple of 512B. if MTD_SECT512 @@ -142,7 +142,7 @@ config MTD_CONFIG_RAM_CONSOLIDATE (For configurations that have only a single erase block assigned to the config device, RAM consolidation is the ONLY option.) - Another apporach is to allow the driver to use the entire MTD + Another approach is to allow the driver to use the entire MTD device (or partition) to save config data, and then allocate a RAM buffer (the size of one erase block) to perform the consolidation. Enabling this feature basically trades off RAM @@ -305,7 +305,7 @@ config AT24XX_MULTI default n ---help--- Build in additional support for multiple AT24XX devices, each with - dynamically allocated device structures wiath a separate I2C + dynamically allocated device structures with a separate I2C addresses (but otherwise identical -- support for multiple, different AT24xx, devices not yet supported). @@ -334,7 +334,7 @@ config AT24XX_EXTENDED bool "Extended memory" default n ---help--- - If the device supports extended memory, then this operion may be set + If the device supports extended memory, then this operation may be set to enabled the MTDIOC_EXTENDED ioctl() operation. When the extended operation is selected, calls to the driver read method will return data from the extended memory region. @@ -482,7 +482,7 @@ config S25FL1_SCRAMBLE bool "Scramble data" default n ---help--- - Requires drviver support for data scrambling/descrambling. + Requires driver support for data scrambling/descrambling. config S25FL1_SCRAMBLE_KEY hex "Scramble key" @@ -491,6 +491,36 @@ config S25FL1_SCRAMBLE_KEY endif +config MTD_N25QXXX + bool "QuadSPI-based Micron N25QXXX family FLASH" + default n + ---help--- + Support the N25Q016A, N25Q032A, N25Q064A, N25Q128A, N25Q256A + + +if MTD_N25QXXX + +config N25QXXX_QSPIMODE + int "N25QXXX QuadSPI Mode" + default 0 + ---help--- + This device can operate in SPI mode 0 or 3. + +config N25QXXX_QSPI_FREQUENCY + int "N25QXXX QuadSPI Frequency" + default 108000000 + ---help--- + - Clock frequency for all SPI commands except for Read Data + command (0x03) + - Clock frequency for Read Data command (0x03): 54 MHz + In this implementation, only "Quad" reads are performed. + +config N25QXXX_SECTOR512 + bool "Simulate 512 byte Erase Blocks" + default n + +endif + config MTD_SMART bool "Sector Mapped Allocation for Really Tiny (SMART) Flash support" default n diff --git a/drivers/mtd/Make.defs b/drivers/mtd/Make.defs index fdd77d3610..4bbd1eb1ff 100644 --- a/drivers/mtd/Make.defs +++ b/drivers/mtd/Make.defs @@ -104,6 +104,10 @@ ifeq ($(CONFIG_MTD_S25FL1),y) CSRCS += s25fl1.c endif +ifeq ($(CONFIG_MTD_N25QXXX),y) +CSRCS += n25qxxx.c +endif + ifeq ($(CONFIG_MTD_SMART),y) ifeq ($(CONFIG_FS_SMARTFS),y) CSRCS += smart.c diff --git a/drivers/mtd/n25qxxx.c b/drivers/mtd/n25qxxx.c new file mode 100644 index 0000000000..31bab580d2 --- /dev/null +++ b/drivers/mtd/n25qxxx.c @@ -0,0 +1,1503 @@ +/************************************************************************************ + * drivers/mtd/n25qxxx.c + * Driver for QuadSPI-based N25QxxxA + * + * Copyright (C) 2015 Gregory Nutt. All rights reserved. + * Author: dev@ziggurat29.com + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ************************************************************************************/ + +/************************************************************************************ + * Included Files + ************************************************************************************/ + +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +/************************************************************************************ + * Pre-processor Definitions + ************************************************************************************/ +/* Configuration ********************************************************************/ +/* QuadSPI Mode. Per data sheet, either Mode 0 or Mode 3 may be used. */ + +#ifndef CONFIG_N25QXXX_QSPIMODE +# define CONFIG_N25QXXX_QSPIMODE QSPIDEV_MODE0 +#endif + +/* QuadSPI Frequency per data sheet:: + * + * + * In this implementation, only "Quad" reads are performed. + */ + +#ifndef CONFIG_N25QXXX_QSPI_FREQUENCY +/* if you haven't specified frequency, default to 40 MHz which will work with all + commands. + */ +# define CONFIG_N25QXXX_QSPI_FREQUENCY 40000000 +#endif + +#ifndef CONFIG_N25QXXX_DUMMIES +/* if you haven't specified the number of dummy cycles for quad reads, provide a + reasonable default. The actual number of dummies needed is clock and IO command + dependent. + */ +# define CONFIG_N25QXXX_DUMMIES 6 +#endif + + +/* N25QXXX Commands *****************************************************************/ +/* Configuration, Status, Erase, Program Commands ***********************************/ +/* Command Value Description: */ +/* Data sequence */ +#define N25QXXX_READ_STATUS 0x05 /* Read status register: * + * 0x05 | SR */ +#define N25QXXX_WRITE_STATUS 0x01 /* Write status register: * + * 0x01 | SR */ +#define N25QXXX_READ_VOLCFG 0x85 /* Read volatile configuration register: * + * 0x85 | VCR */ +#define N25QXXX_WRITE_VOLCFG 0x81 /* Write status register: * + * 0x81 | VCR */ +#define N25QXXX_WRITE_ENABLE 0x06 /* Write enable: * + * 0x06 */ +#define N25QXXX_WRITE_DISABLE 0x04 /* Write disable command code: * + * 0x04 */ +#define N25QXXX_PAGE_PROGRAM 0x02 /* Page Program: * + * 0x02 | ADDR(MS) | ADDR(MID) | * + * ADDR(LS) | data */ +#define N25QXXX_SUBSECTOR_ERASE 0x20 /* Sub-sector Erase (4 kB) * + * 0x20 | ADDR(MS) | ADDR(MID) | * + * ADDR(LS) */ +#define N25QXXX_BULK_ERASE 0xc7 /* Bulk erase: * + * 0xc7 */ + +/* Read Commands ********************************************************************/ +/* Command Value Description: */ +/* Data sequence */ +#define N25QXXX_FAST_READ_QUADIO 0xeb /* Fast Read Quad I/O: * + * 0xeb | ADDR | data... */ + +/* Reset Commands *******************************************************************/ +/* Command Value Description: */ +/* Data sequence */ + +/* ID/Security Commands *************************&***********************************/ +/* Command Value Description: */ +/* Data sequence */ +#define N25QXXX_JEDEC_ID 0x9f /* JEDEC ID: * + * 0x9f | Manufacturer | MemoryType | * + * Capacity */ + +/* Flash Manufacturer JEDEC IDs */ + +#define N25QXXX_JEDEC_ID_SPANSION 0x01 +#define N25QXXX_JEDEC_ID_ATMEL 0x1f +#define N25QXXX_JEDEC_ID_ST 0x20 +#define N25QXXX_JEDEC_ID_SST 0xbf +#define N25QXXX_JEDEC_ID_MACRONIX 0xc2 +#define N25QXXX_JEDEC_ID_WINBOND 0xef + +/* N25QXXX JEDIC IDs */ + +#define N25QXXX3V_JEDEC_DEVICE_TYPE 0xba /* 3v memory device type */ +#define N25QXXX2V_JEDEC_DEVICE_TYPE 0xbb /* 2v memory device type */ + +#define N25Q016_JEDEC_CAPACITY 0x15 /* N25Q016 (2 MB) memory capacity */ +#define N25Q032_JEDEC_CAPACITY 0x16 /* N25Q032 (4 MB) memory capacity */ +#define N25Q064_JEDEC_CAPACITY 0x17 /* N25Q064 (8 MB) memory capacity */ +#define N25Q128_JEDEC_CAPACITY 0x18 /* N25Q128 (16 MB) memory capacity */ +#define N25Q256_JEDEC_CAPACITY 0x19 /* N25Q256 (32 MB) memory capacity */ +#define N25Q512_JEDEC_CAPACITY 0x20 /* N25Q512 (64 MB) memory capacity */ +#define N25Q00_JEDEC_CAPACITY 0x21 /* N25Q00 (128 MB) memory capacity */ + +/* N25QXXX Registers ****************************************************************/ +/* Status register bit definitions */ + +#define STATUS_BUSY_MASK (1 << 0) /* Bit 0: Device ready/busy status */ +# define STATUS_READY (0 << 0) /* 0 = Not Busy */ +# define STATUS_BUSY (1 << 0) /* 1 = Busy */ +#define STATUS_WEL_MASK (1 << 1) /* Bit 1: Write enable latch status */ +# define STATUS_WEL_DISABLED (0 << 1) /* 0 = Not Write Enabled */ +# define STATUS_WEL_ENABLED (1 << 1) /* 1 = Write Enabled */ +#define STATUS_BP_SHIFT (2) /* Bits 2-4: Block protect bits */ +#define STATUS_BP_MASK (7 << STATUS_BP_SHIFT) +# define STATUS_BP_NONE (0 << STATUS_BP_SHIFT) +# define STATUS_BP_ALL (7 << STATUS_BP_SHIFT) +#define STATUS_TB_MASK (1 << 5) /* Bit 5: Top / Bottom Protect */ +# define STATUS_TB_TOP (0 << 5) /* 0 = BP2-BP0 protect Top down */ +# define STATUS_TB_BOTTOM (1 << 5) /* 1 = BP2-BP0 protect Bottom up */ +#define STATUS_BP3_MASK (1 << 5) /* Bit 6: BP3 */ +#define STATUS_SRP0_MASK (1 << 7) /* Bit 7: Status register protect 0 */ +# define STATUS_SRP0_UNLOCKED (0 << 7) /* 0 = WP# no effect / PS Lock Down */ +# define STATUS_SRP0_LOCKED (1 << 7) /* 1 = WP# protect / OTP Lock Down */ + +/* Chip Geometries ******************************************************************/ +/* All members of the family support uniform 4K-byte 'sub sectors'; they also support + 64k (and sometimes 32k) 'sectors' proper, but we won't be using those here. + */ + +/* N25Q016 (2 MB) memory capacity */ +#define N25Q016_SECTOR_SIZE (4*1024) +#define N25Q016_SECTOR_SHIFT (12) +#define N25Q016_SECTOR_COUNT (512) +#define N25Q016_PAGE_SIZE (256) +#define N25Q016_PAGE_SHIFT (8) + +/* N25Q032 (4 MB) memory capacity */ +#define N25Q032_SECTOR_SIZE (4*1024) +#define N25Q032_SECTOR_SHIFT (12) +#define N25Q032_SECTOR_COUNT (1024) +#define N25Q032_PAGE_SIZE (256) +#define N25Q032_PAGE_SHIFT (8) + +/* N25Q064 (8 MB) memory capacity */ +#define N25Q064_SECTOR_SIZE (4*1024) +#define N25Q064_SECTOR_SHIFT (12) +#define N25Q064_SECTOR_COUNT (2048) +#define N25Q064_PAGE_SIZE (256) +#define N25Q064_PAGE_SHIFT (8) + +/* N25Q128 (16 MB) memory capacity */ +#define N25Q128_SECTOR_SIZE (4*1024) +#define N25Q128_SECTOR_SHIFT (12) +#define N25Q128_SECTOR_COUNT (4096) +#define N25Q128_PAGE_SIZE (256) +#define N25Q128_PAGE_SHIFT (8) + +/* N25Q256 (32 MB) memory capacity */ +#define N25Q256_SECTOR_SIZE (4*1024) +#define N25Q256_SECTOR_SHIFT (12) +#define N25Q256_SECTOR_COUNT (8196) +#define N25Q256_PAGE_SIZE (256) +#define N25Q256_PAGE_SHIFT (8) + +/* N25Q512 (64 MB) memory capacity */ +#define N25Q512_SECTOR_SIZE (4*1024) +#define N25Q512_SECTOR_SHIFT (12) +#define N25Q512_SECTOR_COUNT (16384) +#define N25Q512_PAGE_SIZE (256) +#define N25Q512_PAGE_SHIFT (8) + +/* N25Q00 (128 MB) memory capacity */ +#define N25Q00_SECTOR_SIZE (4*1024) +#define N25Q00_SECTOR_SHIFT (12) +#define N25Q00_SECTOR_COUNT (32768) +#define N25Q00_PAGE_SIZE (256) +#define N25Q00_PAGE_SHIFT (8) + +/* Cache flags **********************************************************************/ + +#define N25QXXX_CACHE_VALID (1 << 0) /* 1=Cache has valid data */ +#define N25QXXX_CACHE_DIRTY (1 << 1) /* 1=Cache is dirty */ +#define N25QXXX_CACHE_ERASED (1 << 2) /* 1=Backing FLASH is erased */ + +#define IS_VALID(p) ((((p)->flags) & N25QXXX_CACHE_VALID) != 0) +#define IS_DIRTY(p) ((((p)->flags) & N25QXXX_CACHE_DIRTY) != 0) +#define IS_ERASED(p) ((((p)->flags) & N25QXXX_CACHE_DIRTY) != 0) + +#define SET_VALID(p) do { (p)->flags |= N25QXXX_CACHE_VALID; } while (0) +#define SET_DIRTY(p) do { (p)->flags |= N25QXXX_CACHE_DIRTY; } while (0) +#define SET_ERASED(p) do { (p)->flags |= N25QXXX_CACHE_DIRTY; } while (0) + +#define CLR_VALID(p) do { (p)->flags &= ~N25QXXX_CACHE_VALID; } while (0) +#define CLR_DIRTY(p) do { (p)->flags &= ~N25QXXX_CACHE_DIRTY; } while (0) +#define CLR_ERASED(p) do { (p)->flags &= ~N25QXXX_CACHE_DIRTY; } while (0) + +/* 512 byte sector support **********************************************************/ + +#define N25QXXX_SECTOR512_SHIFT 9 +#define N25QXXX_SECTOR512_SIZE (1 << 9) +#define N25QXXX_ERASED_STATE 0xff + +/************************************************************************************ + * Private Types + ************************************************************************************/ + +/* This type represents the state of the MTD device. The struct mtd_dev_s must + * appear at the beginning of the definition so that you can freely cast between + * pointers to struct mtd_dev_s and struct n25qxxx_dev_s. + */ + +struct n25qxxx_dev_s +{ + struct mtd_dev_s mtd; /* MTD interface */ + FAR struct qspi_dev_s *qspi; /* Saved QuadSPI interface instance */ + uint16_t nsectors; /* Number of erase sectors */ + uint8_t sectorshift; /* Log2 of sector size */ + uint8_t pageshift; /* Log2 of page size */ + FAR uint8_t *cmdbuf; /* Allocated command buffer */ + FAR uint8_t *readbuf; /* Allocated status read buffer */ + +#ifdef CONFIG_N25QXXX_SECTOR512 + uint8_t flags; /* Buffered sector flags */ + uint16_t esectno; /* Erase sector number in the cache */ + FAR uint8_t *sector; /* Allocated sector data */ +#endif +}; + +/************************************************************************************ + * Private Function Prototypes + ************************************************************************************/ + +/* Locking */ + +static void n25qxxx_lock(FAR struct qspi_dev_s *qspi); +static inline void n25qxxx_unlock(FAR struct qspi_dev_s *qspi); + +/* Low-level message helpers */ + +static int n25qxxx_command(FAR struct qspi_dev_s *qspi, uint8_t cmd); +static int n25qxxx_command_address(FAR struct qspi_dev_s *qspi, uint8_t cmd, + off_t addr, uint8_t addrlen); +static int n25qxxx_command_read(FAR struct qspi_dev_s *qspi, uint8_t cmd, + FAR void *buffer, size_t buflen); +static int n25qxxx_command_write(FAR struct qspi_dev_s *qspi, uint8_t cmd, + FAR const void *buffer, size_t buflen); +static uint8_t n25qxxx_read_status(FAR struct n25qxxx_dev_s *priv); +static void n25qxxx_write_status(FAR struct n25qxxx_dev_s *priv); +static uint8_t n25qxxx_read_volcfg(FAR struct n25qxxx_dev_s *priv); +static void n25qxxx_write_volcfg(FAR struct n25qxxx_dev_s *priv); +static void n25qxxx_write_enable(FAR struct n25qxxx_dev_s *priv); +static void n25qxxx_write_disable(FAR struct n25qxxx_dev_s *priv); + +static int n25qxxx_readid(FAR struct n25qxxx_dev_s *priv); +static int n25qxxx_protect(FAR struct n25qxxx_dev_s *priv, + off_t startblock, size_t nblocks); +static int n25qxxx_unprotect(FAR struct n25qxxx_dev_s *priv, + off_t startblock, size_t nblocks); +static bool n25qxxx_isprotected(FAR struct n25qxxx_dev_s *priv, + uint8_t status, off_t address); +static int n25qxxx_erase_sector(FAR struct n25qxxx_dev_s *priv, off_t offset); +static int n25qxxx_erase_chip(FAR struct n25qxxx_dev_s *priv); +static int n25qxxx_read_byte(FAR struct n25qxxx_dev_s *priv, FAR uint8_t *buffer, + off_t address, size_t nbytes); +static int n25qxxx_write_page(FAR struct n25qxxx_dev_s *priv, + FAR const uint8_t *buffer, off_t address, size_t nbytes); +#ifdef CONFIG_N25QXXX_SECTOR512 +static int n25qxxx_flush_cache(struct n25qxxx_dev_s *priv); +static FAR uint8_t *n25qxxx_read_cache(struct n25qxxx_dev_s *priv, off_t sector); +static void n25qxxx_erase_cache(struct n25qxxx_dev_s *priv, off_t sector); +static int n25qxxx_write_cache(FAR struct n25qxxx_dev_s *priv, + FAR const uint8_t *buffer, off_t sector, size_t nsectors); +#endif + +/* MTD driver methods */ + +static int n25qxxx_erase(FAR struct mtd_dev_s *dev, off_t startblock, + size_t nblocks); +static ssize_t n25qxxx_bread(FAR struct mtd_dev_s *dev, off_t startblock, + size_t nblocks, FAR uint8_t *buf); +static ssize_t n25qxxx_bwrite(FAR struct mtd_dev_s *dev, off_t startblock, + size_t nblocks, FAR const uint8_t *buf); +static ssize_t n25qxxx_read(FAR struct mtd_dev_s *dev, off_t offset, size_t nbytes, + FAR uint8_t *buffer); +static int n25qxxx_ioctl(FAR struct mtd_dev_s *dev, int cmd, unsigned long arg); + +/************************************************************************************ + * Private Data + ************************************************************************************/ + +/************************************************************************************ + * Private Functions + ************************************************************************************/ + +/************************************************************************************ + * Name: n25qxxx_lock + ************************************************************************************/ + +static void n25qxxx_lock(FAR struct qspi_dev_s *qspi) +{ + /* On QuadSPI buses where there are multiple devices, it will be necessary to + * lock QuadSPI to have exclusive access to the buses for a sequence of + * transfers. The bus should be locked before the chip is selected. + * + * This is a blocking call and will not return until we have exclusive access to + * the QuadSPI buss. We will retain that exclusive access until the bus is unlocked. + */ + + (void)QSPI_LOCK(qspi, true); + + /* After locking the QuadSPI bus, the we also need call the setfrequency, setbits, and + * setmode methods to make sure that the QuadSPI is properly configured for the device. + * If the QuadSPI buss is being shared, then it may have been left in an incompatible + * state. + */ + + QSPI_SETMODE(qspi, CONFIG_N25QXXX_QSPIMODE); + QSPI_SETBITS(qspi, 8); + (void)QSPI_SETFREQUENCY(qspi, CONFIG_N25QXXX_QSPI_FREQUENCY); +} + +/************************************************************************************ + * Name: n25qxxx_unlock + ************************************************************************************/ + +static inline void n25qxxx_unlock(FAR struct qspi_dev_s *qspi) +{ + (void)QSPI_LOCK(qspi, false); +} + +/************************************************************************************ + * Name: n25qxxx_command + ************************************************************************************/ + +static int n25qxxx_command(FAR struct qspi_dev_s *qspi, uint8_t cmd) +{ + struct qspi_cmdinfo_s cmdinfo; + + fvdbg("CMD: %02x\n", cmd); + + cmdinfo.flags = 0; + cmdinfo.addrlen = 0; + cmdinfo.cmd = cmd; + cmdinfo.buflen = 0; + cmdinfo.addr = 0; + cmdinfo.buffer = NULL; + + return QSPI_COMMAND(qspi, &cmdinfo); +} + +/************************************************************************************ + * Name: n25qxxx_command_address + ************************************************************************************/ + +static int n25qxxx_command_address(FAR struct qspi_dev_s *qspi, uint8_t cmd, + off_t addr, uint8_t addrlen) +{ + struct qspi_cmdinfo_s cmdinfo; + + fvdbg("CMD: %02x Address: %04lx addrlen=%d\n", cmd, (unsigned long)addr, addrlen); + + cmdinfo.flags = QSPICMD_ADDRESS; + cmdinfo.addrlen = addrlen; + cmdinfo.cmd = cmd; + cmdinfo.buflen = 0; + cmdinfo.addr = addr; + cmdinfo.buffer = NULL; + + return QSPI_COMMAND(qspi, &cmdinfo); +} + +/************************************************************************************ + * Name: n25qxxx_command_read + ************************************************************************************/ + +static int n25qxxx_command_read(FAR struct qspi_dev_s *qspi, uint8_t cmd, + FAR void *buffer, size_t buflen) +{ + struct qspi_cmdinfo_s cmdinfo; + + fvdbg("CMD: %02x buflen: %lu\n", cmd, (unsigned long)buflen); + + cmdinfo.flags = QSPICMD_READDATA; + cmdinfo.addrlen = 0; + cmdinfo.cmd = cmd; + cmdinfo.buflen = buflen; + cmdinfo.addr = 0; + cmdinfo.buffer = buffer; + + return QSPI_COMMAND(qspi, &cmdinfo); +} + +/************************************************************************************ + * Name: n25qxxx_command_write + ************************************************************************************/ + +static int n25qxxx_command_write(FAR struct qspi_dev_s *qspi, uint8_t cmd, + FAR const void *buffer, size_t buflen) +{ + struct qspi_cmdinfo_s cmdinfo; + + fvdbg("CMD: %02x buflen: %lu\n", cmd, (unsigned long)buflen); + + cmdinfo.flags = QSPICMD_WRITEDATA; + cmdinfo.addrlen = 0; + cmdinfo.cmd = cmd; + cmdinfo.buflen = buflen; + cmdinfo.addr = 0; + cmdinfo.buffer = (FAR void *)buffer; + + return QSPI_COMMAND(qspi, &cmdinfo); +} + +/************************************************************************************ + * Name: n25qxxx_read_status + ************************************************************************************/ + +static uint8_t n25qxxx_read_status(FAR struct n25qxxx_dev_s *priv) +{ + DEBUGVERIFY(n25qxxx_command_read(priv->qspi, N25QXXX_READ_STATUS, + (FAR void *)&priv->readbuf[0], 1)); + return priv->readbuf[0]; +} + +/************************************************************************************ + * Name: n25qxxx_write_status + ************************************************************************************/ + +static void n25qxxx_write_status(FAR struct n25qxxx_dev_s *priv) +{ + n25qxxx_write_enable(priv); + + /* take care to mask of the SRP bit; it is one-time-programmable */ + + priv->cmdbuf[0] &= ~STATUS_SRP0_MASK; + + n25qxxx_command_write(priv->qspi, N25QXXX_WRITE_STATUS, + (FAR const void *)priv->cmdbuf, 1); + n25qxxx_write_disable(priv); +} + +/************************************************************************************ + * Name: n25qxxx_read_volcfg + ************************************************************************************/ + +static uint8_t n25qxxx_read_volcfg(FAR struct n25qxxx_dev_s *priv) +{ + DEBUGVERIFY(n25qxxx_command_read(priv->qspi, N25QXXX_READ_VOLCFG, + (FAR void *)&priv->readbuf[0], 1)); + return priv->readbuf[0]; +} + +/************************************************************************************ + * Name: n25qxxx_write_volcfg + ************************************************************************************/ + +static void n25qxxx_write_volcfg(FAR struct n25qxxx_dev_s *priv) +{ + n25qxxx_write_enable(priv); + n25qxxx_command_write(priv->qspi, N25QXXX_WRITE_VOLCFG, + (FAR const void *)priv->cmdbuf, 1); + n25qxxx_write_disable(priv); +} + +/************************************************************************************ + * Name: n25qxxx_write_enable + ************************************************************************************/ + +static void n25qxxx_write_enable(FAR struct n25qxxx_dev_s *priv) +{ + uint8_t status; + + do + { + n25qxxx_command(priv->qspi, N25QXXX_WRITE_ENABLE); + status = n25qxxx_read_status(priv); + } + while ((status & STATUS_WEL_MASK) != STATUS_WEL_ENABLED); +} + +/************************************************************************************ + * Name: n25qxxx_write_disable + ************************************************************************************/ + +static void n25qxxx_write_disable(FAR struct n25qxxx_dev_s *priv) +{ + uint8_t status; + + do + { + n25qxxx_command(priv->qspi, N25QXXX_WRITE_DISABLE); + status = n25qxxx_read_status(priv); + } + while ((status & STATUS_WEL_MASK) != STATUS_WEL_DISABLED); +} + +/************************************************************************************ + * Name: n25qxxx_readid + ************************************************************************************/ + +static inline int n25qxxx_readid(struct n25qxxx_dev_s *priv) +{ + /* Lock the QuadSPI bus and configure the bus. */ + + n25qxxx_lock(priv->qspi); + + /* Read the JEDEC ID */ + + n25qxxx_command_read(priv->qspi, N25QXXX_JEDEC_ID, priv->cmdbuf, 3); + + /* Unlock the bus */ + + n25qxxx_unlock(priv->qspi); + + fvdbg("Manufacturer: %02x Device Type %02x, Capacity: %02x\n", + priv->cmdbuf[0], priv->cmdbuf[1], priv->cmdbuf[2]); + + /* Check for a recognized memory device type */ + + if (priv->cmdbuf[1] != N25QXXX3V_JEDEC_DEVICE_TYPE && + priv->cmdbuf[1] != N25QXXX2V_JEDEC_DEVICE_TYPE) + { + fdbg("ERROR: Unrecognized device type: 0x%02x\n", priv->cmdbuf[1]); + return -ENODEV; + } + + /* Check for a supported capacity */ + + switch (priv->cmdbuf[2]) + { + case N25Q016_JEDEC_CAPACITY: + priv->sectorshift = N25Q016_SECTOR_SHIFT; + priv->pageshift = N25Q016_PAGE_SHIFT; + priv->nsectors = N25Q016_SECTOR_COUNT; + break; + case N25Q032_JEDEC_CAPACITY: + priv->sectorshift = N25Q032_SECTOR_SHIFT; + priv->pageshift = N25Q032_PAGE_SHIFT; + priv->nsectors = N25Q032_SECTOR_COUNT; + break; + case N25Q064_JEDEC_CAPACITY: + priv->sectorshift = N25Q064_SECTOR_SHIFT; + priv->pageshift = N25Q064_PAGE_SHIFT; + priv->nsectors = N25Q064_SECTOR_COUNT; + break; + case N25Q128_JEDEC_CAPACITY: + priv->sectorshift = N25Q128_SECTOR_SHIFT; + priv->pageshift = N25Q128_PAGE_SHIFT; + priv->nsectors = N25Q128_SECTOR_COUNT; + break; + case N25Q256_JEDEC_CAPACITY: + priv->sectorshift = N25Q256_SECTOR_SHIFT; + priv->pageshift = N25Q256_PAGE_SHIFT; + priv->nsectors = N25Q256_SECTOR_COUNT; + break; + case N25Q512_JEDEC_CAPACITY: + priv->sectorshift = N25Q512_SECTOR_SHIFT; + priv->pageshift = N25Q512_PAGE_SHIFT; + priv->nsectors = N25Q512_SECTOR_COUNT; + break; + case N25Q00_JEDEC_CAPACITY: + priv->sectorshift = N25Q00_SECTOR_SHIFT; + priv->pageshift = N25Q00_PAGE_SHIFT; + priv->nsectors = N25Q00_SECTOR_COUNT; + break; + + /* Support for this part is not implemented yet */ + + default: + fdbg("ERROR: Unsupported memory capacity: %02x\n", priv->cmdbuf[2]); + return -ENODEV; + } + + return OK; +} + +/************************************************************************************ + * Name: n25qxxx_protect + ************************************************************************************/ + +static int n25qxxx_protect(FAR struct n25qxxx_dev_s *priv, + off_t startblock, size_t nblocks) +{ + /* Get the status register value to check the current protection */ + + priv->cmdbuf[0] = n25qxxx_read_status(priv); + + if ((priv->cmdbuf[0] & STATUS_BP_MASK) == STATUS_BP_NONE) + { + /* Protection already disabled */ + + return 0; + } + + /* Check if sector protection registers are locked */ + + if ((priv->cmdbuf[0] & STATUS_SRP0_MASK) == STATUS_SRP0_LOCKED) + { + /* Yes.. unprotect section protection registers */ + + priv->cmdbuf[0] &= ~STATUS_SRP0_MASK; + n25qxxx_write_status(priv); + } + + /* Set the protection mask to zero. + * REVISIT: This logic should really just set the BP bits as + * necessary to protect the range of sectors. + */ + + priv->cmdbuf[0] |= (STATUS_BP3_MASK|STATUS_BP_MASK); + n25qxxx_write_status(priv); + + /* Check the new status */ + + priv->cmdbuf[0] = n25qxxx_read_status(priv); + if ((priv->cmdbuf[0] & (STATUS_BP3_MASK|STATUS_BP_MASK)) != (STATUS_BP3_MASK|STATUS_BP_MASK)) + { + return -EACCES; + } + + return OK; +} + +/************************************************************************************ + * Name: n25qxxx_unprotect + ************************************************************************************/ + +static int n25qxxx_unprotect(FAR struct n25qxxx_dev_s *priv, + off_t startblock, size_t nblocks) +{ + /* Get the status register value to check the current protection */ + + priv->cmdbuf[0] = n25qxxx_read_status(priv); + + if ((priv->cmdbuf[0] & (STATUS_BP3_MASK|STATUS_BP_MASK)) == 0 ) + { + /* Protection already disabled */ + + return 0; + } + + /* Check if sector protection registers are locked */ + + if ((priv->cmdbuf[0] & STATUS_SRP0_MASK) == STATUS_SRP0_LOCKED) + { + /* the SRP bit is one time programmable; if it's set, there's nothing that + you can do to unset it. + */ + return -EACCES; + } + + /* Set the protection mask to zero (and not complemented). + * REVISIT: This logic should really just re-write the BP bits as + * necessary to unprotect the range of sectors. + */ + + priv->cmdbuf[0] &= ~(STATUS_BP3_MASK|STATUS_BP_MASK); + n25qxxx_write_status(priv); + + /* Check the new status */ + + priv->cmdbuf[0] = n25qxxx_read_status(priv); + if ((priv->cmdbuf[0] & (STATUS_SRP0_MASK | STATUS_BP3_MASK | STATUS_BP_MASK)) != 0) + { + return -EACCES; + } + + return OK; +} + +/************************************************************************************ + * Name: n25qxxx_isprotected + ************************************************************************************/ + +static bool n25qxxx_isprotected(FAR struct n25qxxx_dev_s *priv, uint8_t status, + off_t address) +{ + off_t protstart; + off_t protend; + off_t protsize; + unsigned int bp; + + /* The BP field is spread across non-contiguous bits */ + + bp = (status & STATUS_BP_MASK) >> STATUS_BP_SHIFT; + if (status & STATUS_BP3_MASK) + { + bp |= 8; + } + + /* the BP field is essentially the power-of-two of the number of 64k sectors, + saturated to the device size. + */ + + if ( 0 == bp ) + { + return false; + } + + protsize = 0x00010000; + protsize <<= (protsize << (bp - 1)); + protend = (1 << priv->sectorshift) * priv->nsectors; + if ( protsize > protend ) + { + protsize = protend; + } + + /* The final protection range then depends on if the protection region is + * configured top-down or bottom up (assuming CMP=0). + */ + + if ((status & STATUS_TB_MASK) != 0) + { + protstart = 0x00000000; + protend = protstart + protsize; + } + else + { + protstart = protend - protsize; + /* protend already computed above */ + } + + return (address >= protstart && address < protend); +} + +/************************************************************************************ + * Name: n25qxxx_erase_sector + ************************************************************************************/ + +static int n25qxxx_erase_sector(struct n25qxxx_dev_s *priv, off_t sector) +{ + off_t address; + uint8_t status; + + fvdbg("sector: %08lx\n", (unsigned long)sector); + + /* Check that the flash is ready and unprotected */ + + status = n25qxxx_read_status(priv); + if ((status & STATUS_BUSY_MASK) != STATUS_READY) + { + fdbg("ERROR: Flash busy: %02x", status); + return -EBUSY; + } + + /* Get the address associated with the sector */ + + address = (off_t)sector << priv->sectorshift; + + if ((status & (STATUS_BP3_MASK|STATUS_BP_MASK)) != 0 && + n25qxxx_isprotected(priv, status, address)) + { + fdbg("ERROR: Flash protected: %02x", status); + return -EACCES; + } + + /* Send the sector erase command */ + + n25qxxx_write_enable(priv); + n25qxxx_command_address(priv->qspi, N25QXXX_SUBSECTOR_ERASE, address, 3); + + /* Wait for erasure to finish */ + + while ((n25qxxx_read_status(priv) & STATUS_BUSY_MASK) != 0); + + return OK; +} + +/************************************************************************************ + * Name: n25qxxx_erase_chip + ************************************************************************************/ + +static int n25qxxx_erase_chip(struct n25qxxx_dev_s *priv) +{ + uint8_t status; + + /* Check if the FLASH is protected */ + + status = n25qxxx_read_status(priv); + if ((status & (STATUS_BP3_MASK|STATUS_BP_MASK)) != 0) + { + fdbg("ERROR: FLASH is Protected: %02x", status); + return -EACCES; + } + + /* Erase the whole chip */ + + n25qxxx_write_enable(priv); + n25qxxx_command(priv->qspi, N25QXXX_BULK_ERASE); + + /* Wait for the erasure to complete */ + + status = n25qxxx_read_status(priv); + while ((status & STATUS_BUSY_MASK) != 0) + { + usleep(200*1000); + status = n25qxxx_read_status(priv); + } + + return OK; +} + +/************************************************************************************ + * Name: n25qxxx_read_byte + ************************************************************************************/ + +static int n25qxxx_read_byte(FAR struct n25qxxx_dev_s *priv, FAR uint8_t *buffer, + off_t address, size_t buflen) +{ + struct qspi_meminfo_s meminfo; + + fvdbg("address: %08lx nbytes: %d\n", (long)address, (int)buflen); + + meminfo.flags = QSPIMEM_READ | QSPIMEM_QUADIO; + meminfo.addrlen = 3; + meminfo.dummies = CONFIG_N25QXXX_DUMMIES; + meminfo.buflen = buflen; + meminfo.cmd = N25QXXX_FAST_READ_QUADIO; + meminfo.addr = address; + meminfo.buffer = buffer; + + return QSPI_MEMORY(priv->qspi, &meminfo); +} + +/************************************************************************************ + * Name: n25qxxx_write_page + ************************************************************************************/ + +static int n25qxxx_write_page(struct n25qxxx_dev_s *priv, FAR const uint8_t *buffer, + off_t address, size_t buflen) +{ + struct qspi_meminfo_s meminfo; + unsigned int pagesize; + unsigned int npages; + int ret; + int i; + + fvdbg("address: %08lx buflen: %u\n", (unsigned long)address, (unsigned)buflen); + + npages = (buflen >> priv->pageshift); + pagesize = (1 << priv->pageshift); + + /* Set up non-varying parts of transfer description */ + + meminfo.flags = QSPIMEM_WRITE; + meminfo.cmd = N25QXXX_PAGE_PROGRAM; + meminfo.addrlen = 3; + meminfo.buflen = pagesize; + meminfo.dummies = 0; + + /* Then write each page */ + + for (i = 0; i < npages; i++) + { + /* Set up varying parts of the transfer description */ + + meminfo.addr = address; + meminfo.buffer = (void *)buffer; + + /* Write one page */ + + n25qxxx_write_enable(priv); + ret = QSPI_MEMORY(priv->qspi, &meminfo); + n25qxxx_write_disable(priv); + + if (ret < 0) + { + fdbg("ERROR: QSPI_MEMORY failed writing address=%06x\n", + address); + return ret; + } + + /* Update for the next time through the loop */ + + buffer += pagesize; + address += pagesize; + buflen -= pagesize; + } + + /* The transfer should always be an even number of sectors and hence also + * pages. There should be no remainder. + */ + + DEBUGASSERT(buflen == 0); + + return OK; +} + +/************************************************************************************ + * Name: n25qxxx_flush_cache + ************************************************************************************/ + +#ifdef CONFIG_N25QXXX_SECTOR512 +static int n25qxxx_flush_cache(struct n25qxxx_dev_s *priv) +{ + int ret = OK; + + /* If the cache is dirty (meaning that it no longer matches the old FLASH contents) + * or was erased (with the cache containing the correct FLASH contents), then write + * the cached erase block to FLASH. + */ + + if (IS_DIRTY(priv) || IS_ERASED(priv)) + { + off_t address; + + /* Convert the erase sector number into a FLASH address */ + + address = (off_t)priv->esectno << priv->sectorshift; + + /* Write entire erase block to FLASH */ + + ret = n25qxxx_write_page(priv, priv->sector, address, 1 << priv->sectorshift); + if (ret < 0) + { + fdbg("ERROR: n25qxxx_write_page failed: %d\n", ret); + } + + /* The case is no long dirty and the FLASH is no longer erased */ + + CLR_DIRTY(priv); + CLR_ERASED(priv); + } + + return ret; +} +#endif + +/************************************************************************************ + * Name: n25qxxx_read_cache + ************************************************************************************/ + +#ifdef CONFIG_N25QXXX_SECTOR512 +static FAR uint8_t *n25qxxx_read_cache(struct n25qxxx_dev_s *priv, off_t sector) +{ + off_t esectno; + int shift; + int index; + int ret; + + /* Convert from the 512 byte sector to the erase sector size of the device. For + * exmample, if the actual erase sector size if 4Kb (1 << 12), then we first + * shift to the right by 3 to get the sector number in 4096 increments. + */ + + shift = priv->sectorshift - N25QXXX_SECTOR512_SHIFT; + esectno = sector >> shift; + fvdbg("sector: %ld esectno: %d shift=%d\n", sector, esectno, shift); + + /* Check if the requested erase block is already in the cache */ + + if (!IS_VALID(priv) || esectno != priv->esectno) + { + /* No.. Flush any dirty erase block currently in the cache */ + + ret = n25qxxx_flush_cache(priv); + if (ret < 0) + { + fdbg("ERROR: n25qxxx_flush_cache failed: %d\n", ret); + return NULL; + } + + /* Read the erase block into the cache */ + + ret = n25qxxx_read_byte(priv, priv->sector, + (esectno << priv->sectorshift), + (1 << priv->sectorshift)); + if (ret < 0) + { + fdbg("ERROR: n25qxxx_read_byte failed: %d\n", ret); + return NULL; + } + + /* Mark the sector as cached */ + + priv->esectno = esectno; + + SET_VALID(priv); /* The data in the cache is valid */ + CLR_DIRTY(priv); /* It should match the FLASH contents */ + CLR_ERASED(priv); /* The underlying FLASH has not been erased */ + } + + /* Get the index to the 512 sector in the erase block that holds the argument */ + + index = sector & ((1 << shift) - 1); + + /* Return the address in the cache that holds this sector */ + + return &priv->sector[index << N25QXXX_SECTOR512_SHIFT]; +} +#endif + +/************************************************************************************ + * Name: n25qxxx_erase_cache + ************************************************************************************/ + +#ifdef CONFIG_N25QXXX_SECTOR512 +static void n25qxxx_erase_cache(struct n25qxxx_dev_s *priv, off_t sector) +{ + FAR uint8_t *dest; + + /* First, make sure that the erase block containing the 512 byte sector is in + * the cache. + */ + + dest = n25qxxx_read_cache(priv, sector); + + /* Erase the block containing this sector if it is not already erased. + * The erased indicated will be cleared when the data from the erase sector + * is read into the cache and set here when we erase the block. + */ + + if (!IS_ERASED(priv)) + { + off_t esectno = sector >> (priv->sectorshift - N25QXXX_SECTOR512_SHIFT); + fvdbg("sector: %ld esectno: %d\n", sector, esectno); + + DEBUGVERIFY(n25qxxx_erase_sector(priv, esectno)); + SET_ERASED(priv); + } + + /* Put the cached sector data into the erase state and mark the cache as dirty + * (but don't update the FLASH yet. The caller will do that at a more optimal + * time). + */ + + memset(dest, N25QXXX_ERASED_STATE, N25QXXX_SECTOR512_SIZE); + SET_DIRTY(priv); +} +#endif + +/************************************************************************************ + * Name: n25qxxx_write_cache + ************************************************************************************/ + +#ifdef CONFIG_N25QXXX_SECTOR512 +static int n25qxxx_write_cache(FAR struct n25qxxx_dev_s *priv, + FAR const uint8_t *buffer, off_t sector, + size_t nsectors) +{ + FAR uint8_t *dest; + int ret; + + for (; nsectors > 0; nsectors--) + { + /* First, make sure that the erase block containing 512 byte sector is in + * memory. + */ + + dest = n25qxxx_read_cache(priv, sector); + + /* Erase the block containing this sector if it is not already erased. + * The erased indicated will be cleared when the data from the erase sector + * is read into the cache and set here when we erase the sector. + */ + + if (!IS_ERASED(priv)) + { + off_t esectno = sector >> (priv->sectorshift - N25QXXX_SECTOR512_SHIFT); + fvdbg("sector: %ld esectno: %d\n", sector, esectno); + + ret = n25qxxx_erase_sector(priv, esectno); + if (ret < 0) + { + fdbg("ERROR: n25qxxx_erase_sector failed: %d\n", ret); + return ret; + } + + SET_ERASED(priv); + } + + /* Copy the new sector data into cached erase block */ + + memcpy(dest, buffer, N25QXXX_SECTOR512_SIZE); + SET_DIRTY(priv); + + /* Set up for the next 512 byte sector */ + + buffer += N25QXXX_SECTOR512_SIZE; + sector++; + } + + /* Flush the last erase block left in the cache */ + + return n25qxxx_flush_cache(priv); +} +#endif + +/************************************************************************************ + * Name: n25qxxx_erase + ************************************************************************************/ + +static int n25qxxx_erase(FAR struct mtd_dev_s *dev, off_t startblock, size_t nblocks) +{ + FAR struct n25qxxx_dev_s *priv = (FAR struct n25qxxx_dev_s *)dev; + size_t blocksleft = nblocks; +#ifdef CONFIG_N25QXXX_SECTOR512 + int ret; +#endif + + fvdbg("startblock: %08lx nblocks: %d\n", (long)startblock, (int)nblocks); + + /* Lock access to the SPI bus until we complete the erase */ + + n25qxxx_lock(priv->qspi); + + while (blocksleft-- > 0) + { + /* Erase each sector */ + +#ifdef CONFIG_N25QXXX_SECTOR512 + n25qxxx_erase_cache(priv, startblock); +#else + n25qxxx_erase_sector(priv, startblock); +#endif + startblock++; + } + +#ifdef CONFIG_N25QXXX_SECTOR512 + /* Flush the last erase block left in the cache */ + + ret = n25qxxx_flush_cache(priv); + if (ret < 0) + { + nblocks = ret; + } +#endif + + n25qxxx_unlock(priv->qspi); + + return (int)nblocks; +} + +/************************************************************************************ + * Name: n25qxxx_bread + ************************************************************************************/ + +static ssize_t n25qxxx_bread(FAR struct mtd_dev_s *dev, off_t startblock, + size_t nblocks, FAR uint8_t *buffer) +{ +#ifndef CONFIG_N25QXXX_SECTOR512 + FAR struct n25qxxx_dev_s *priv = (FAR struct n25qxxx_dev_s *)dev; +#endif + ssize_t nbytes; + + fvdbg("startblock: %08lx nblocks: %d\n", (long)startblock, (int)nblocks); + + /* On this device, we can handle the block read just like the byte-oriented read */ + +#ifdef CONFIG_N25QXXX_SECTOR512 + nbytes = n25qxxx_read(dev, startblock << N25QXXX_SECTOR512_SHIFT, + nblocks << N25QXXX_SECTOR512_SHIFT, buffer); + if (nbytes > 0) + { + nbytes >>= N25QXXX_SECTOR512_SHIFT; + } +#else + nbytes = n25qxxx_read(dev, startblock << priv->sectorshift, + nblocks << priv->sectorshift, buffer); + if (nbytes > 0) + { + nbytes >>= priv->sectorshift; + } +#endif + + return nbytes; + +return 0; +} + +/************************************************************************************ + * Name: n25qxxx_bwrite + ************************************************************************************/ + +static ssize_t n25qxxx_bwrite(FAR struct mtd_dev_s *dev, off_t startblock, + size_t nblocks, FAR const uint8_t *buffer) +{ + FAR struct n25qxxx_dev_s *priv = (FAR struct n25qxxx_dev_s *)dev; + int ret = (int)nblocks; + + fvdbg("startblock: %08lx nblocks: %d\n", (long)startblock, (int)nblocks); + + /* Lock the QuadSPI bus and write all of the pages to FLASH */ + + n25qxxx_lock(priv->qspi); + +#if defined(CONFIG_N25QXXX_SECTOR512) + ret = n25qxxx_write_cache(priv, buffer, startblock, nblocks); + if (ret < 0) + { + fdbg("ERROR: n25qxxx_write_cache failed: %d\n", ret); + } + +#else + ret = n25qxxx_write_page(priv, buffer, startblock << priv->sectorshift, + nblocks << priv->sectorshift); + if (ret < 0) + { + fdbg("ERROR: n25qxxx_write_page failed: %d\n", ret); + } +#endif + + n25qxxx_unlock(priv->qspi); + + return ret < 0 ? ret : nblocks; + +return 0; +} + +/************************************************************************************ + * Name: n25qxxx_read + ************************************************************************************/ + +static ssize_t n25qxxx_read(FAR struct mtd_dev_s *dev, off_t offset, size_t nbytes, + FAR uint8_t *buffer) +{ + FAR struct n25qxxx_dev_s *priv = (FAR struct n25qxxx_dev_s *)dev; + int ret; + + fvdbg("offset: %08lx nbytes: %d\n", (long)offset, (int)nbytes); + + /* Lock the QuadSPI bus and select this FLASH part */ + + n25qxxx_lock(priv->qspi); + ret = n25qxxx_read_byte(priv, buffer, offset, nbytes); + n25qxxx_unlock(priv->qspi); + + if (ret < 0) + { + fdbg("ERROR: n25qxxx_read_byte returned: %d\n", ret); + return (ssize_t)ret; + } + + fvdbg("return nbytes: %d\n", (int)nbytes); + return (ssize_t)nbytes; + +return 0; +} + +/************************************************************************************ + * Name: n25qxxx_ioctl + ************************************************************************************/ + +static int n25qxxx_ioctl(FAR struct mtd_dev_s *dev, int cmd, unsigned long arg) +{ + FAR struct n25qxxx_dev_s *priv = (FAR struct n25qxxx_dev_s *)dev; + int ret = -EINVAL; /* Assume good command with bad parameters */ + + fvdbg("cmd: %d \n", cmd); + + switch (cmd) + { + case MTDIOC_GEOMETRY: + { + FAR struct mtd_geometry_s *geo = + (FAR struct mtd_geometry_s *)((uintptr_t)arg); + + if (geo) + { + /* Populate the geometry structure with information need to know + * the capacity and how to access the device. + * + * NOTE: that the device is treated as though it where just an array + * of fixed size blocks. That is most likely not true, but the client + * will expect the device logic to do whatever is necessary to make it + * appear so. + */ + +#ifdef CONFIG_N25QXXX_SECTOR512 + geo->blocksize = (1 << N25QXXX_SECTOR512_SHIFT); + geo->erasesize = (1 << N25QXXX_SECTOR512_SHIFT); + geo->neraseblocks = priv->nsectors << (priv->sectorshift - N25QXXX_SECTOR512_SHIFT); +#else + geo->blocksize = (1 << priv->sectorshift); + geo->erasesize = (1 << priv->sectorshift); + geo->neraseblocks = priv->nsectors; +#endif + ret = OK; + + fvdbg("blocksize: %d erasesize: %d neraseblocks: %d\n", + geo->blocksize, geo->erasesize, geo->neraseblocks); + } + } + break; + + case MTDIOC_BULKERASE: + { + /* Erase the entire device */ + + n25qxxx_lock(priv->qspi); + ret = n25qxxx_erase_chip(priv); + n25qxxx_unlock(priv->qspi); + } + break; + + case MTDIOC_PROTECT: + { + FAR const struct mtd_protect_s *prot = + (FAR const struct mtd_protect_s *)((uintptr_t)arg); + + DEBUGASSERT(prot); + ret = n25qxxx_protect(priv, prot->startblock, prot->nblocks); + } + break; + + case MTDIOC_UNPROTECT: + { + FAR const struct mtd_protect_s *prot = + (FAR const struct mtd_protect_s *)((uintptr_t)arg); + + DEBUGASSERT(prot); + ret = n25qxxx_unprotect(priv, prot->startblock, prot->nblocks); + } + break; + + default: + ret = -ENOTTY; /* Bad/unsupported command */ + break; + } + + fvdbg("return %d\n", ret); + return ret; +} + +/************************************************************************************ + * Public Functions + ************************************************************************************/ + +/************************************************************************************ + * Name: n25qxxx_initialize + * + * Description: + * Create an initialize MTD device instance for the QuadSPI-based n25Qxxx + * FLASH part. + * + * MTD devices are not registered in the file system, but are created as instances + * that can be bound to other functions (such as a block or character driver front + * end). + * + ************************************************************************************/ + +FAR struct mtd_dev_s *n25qxxx_initialize(FAR struct qspi_dev_s *qspi, bool unprotect) +{ + FAR struct n25qxxx_dev_s *priv; + int ret; + + fvdbg("qspi: %p\n", qspi); + DEBUGASSERT(qspi != NULL); + + /* Allocate a state structure (we allocate the structure instead of using + * a fixed, static allocation so that we can handle multiple FLASH devices. + * The current implementation would handle only one FLASH part per QuadSPI + * device (only because of the QSPIDEV_FLASH definition) and so would have + * to be extended to handle multiple FLASH parts on the same QuadSPI bus. + */ + + priv = (FAR struct n25qxxx_dev_s *)kmm_zalloc(sizeof(struct n25qxxx_dev_s)); + if (priv) + { + /* Initialize the allocated structure (unsupported methods were + * nullified by kmm_zalloc). + */ + + priv->mtd.erase = n25qxxx_erase; + priv->mtd.bread = n25qxxx_bread; + priv->mtd.bwrite = n25qxxx_bwrite; + priv->mtd.read = n25qxxx_read; + priv->mtd.ioctl = n25qxxx_ioctl; + priv->qspi = qspi; + + /* Allocate a 4-byte buffer to support DMA-able command data */ + + priv->cmdbuf = (FAR uint8_t *)QSPI_ALLOC(qspi, 4); + if (priv->cmdbuf == NULL) + { + fdbg("ERROR Failed to allocate command buffer\n"); + goto errout_with_priv; + } + + /* Allocate a one-byte buffer to support DMA-able status read data */ + + priv->readbuf = (FAR uint8_t *)QSPI_ALLOC(qspi, 1); + if (priv->readbuf == NULL) + { + fdbg("ERROR Failed to allocate read buffer\n"); + goto errout_with_cmdbuf; + } + + /* Identify the FLASH chip and get its capacity */ + + ret = n25qxxx_readid(priv); + if (ret != OK) + { + /* Unrecognized! Discard all of that work we just did and return NULL */ + + fdbg("ERROR Unrecognized QSPI device\n"); + goto errout_with_readbuf; + } + + /* specify the number of dummy cycles via the 'volatile configuration register' */ + + priv->cmdbuf[0] = n25qxxx_read_volcfg(priv); + priv->cmdbuf[0] &= 0x0f; + priv->cmdbuf[0] |= (CONFIG_N25QXXX_DUMMIES<<4); + n25qxxx_write_volcfg(priv); + + /* Unprotect FLASH sectors if so requested. */ + + if (unprotect) + { + ret = n25qxxx_unprotect(priv, 0, priv->nsectors - 1); + if (ret < 0) + { + fdbg("ERROR: Sector unprotect failed\n"); + } + } + +#ifdef CONFIG_N25QXXX_SECTOR512 /* Simulate a 512 byte sector */ + /* Allocate a buffer for the erase block cache */ + + priv->sector = (FAR uint8_t *)QSPI_ALLOC(qspi, 1 << priv->sectorshift); + if (priv->sector == NULL) + { + /* Allocation failed! Discard all of that work we just did and return NULL */ + + fdbg("ERROR: Sector allocation failed\n"); + goto errout_with_readbuf; + } +#endif + } + +#ifdef CONFIG_MTD_REGISTRATION + /* Register the MTD with the procfs system if enabled */ + + mtd_register(&priv->mtd, "n25qxxx"); +#endif + + /* Return the implementation-specific state structure as the MTD device */ + + fvdbg("Return %p\n", priv); + return (FAR struct mtd_dev_s *)priv; + +errout_with_readbuf: + QSPI_FREE(qspi, priv->readbuf); + +errout_with_cmdbuf: + QSPI_FREE(qspi, priv->cmdbuf); + +errout_with_priv: + kmm_free(priv); + return NULL; +} diff --git a/include/nuttx/mtd/mtd.h b/include/nuttx/mtd/mtd.h index c8a34052c8..bd41688c35 100644 --- a/include/nuttx/mtd/mtd.h +++ b/include/nuttx/mtd/mtd.h @@ -513,6 +513,19 @@ struct qspi_dev_s; /* Forward reference */ FAR struct mtd_dev_s *s25fl1_initialize(FAR struct qspi_dev_s *qspi, bool unprotect); +/**************************************************************************** + * Name: n25qxxx_initialize + * + * Description: + * Create an initialize MTD device instance for the QuadSPI-based N25Qxxx + * FLASH part from Micron. + * + ****************************************************************************/ + +struct qspi_dev_s; /* Forward reference */ +FAR struct mtd_dev_s *n25qxxx_initialize(FAR struct qspi_dev_s *qspi, + bool unprotect); + /**************************************************************************** * Name: up_flashinitialize * -- GitLab From 52b308cbe1d4fe3bf024a4333179faf505e3e66e Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 17 Apr 2016 11:57:43 -0600 Subject: [PATCH 024/307] NX: Add configurable callout to external logic to handle display update events --- graphics/Kconfig | 24 ++++++++++++++++++++++ graphics/nxbe/nxbe_bitmap.c | 17 +++++++++++---- graphics/nxbe/nxbe_fill.c | 12 ++++++++++- graphics/nxbe/nxbe_filltrapezoid.c | 33 +++++++++++++++++++++++++++++- graphics/nxbe/nxbe_move.c | 18 +++++++++++++++- graphics/nxbe/nxbe_setpixel.c | 18 ++++++++++++---- include/nuttx/nx/nx.h | 26 +++++++++++++++++++++++ 7 files changed, 137 insertions(+), 11 deletions(-) diff --git a/graphics/Kconfig b/graphics/Kconfig index 3e95c2b6bd..4f81aab3f8 100644 --- a/graphics/Kconfig +++ b/graphics/Kconfig @@ -56,6 +56,30 @@ config NX_WRITEONLY Automatically defined if NX_LCDDRIVER and LCD_NOGETRUN are defined. +config NX_UPDATE + bool "Display update hooks' + default n + ---help--- + Enable a callout to inform some external module that the display has + been updated. This would be useful in a couple for cases. + + - When a serial LCD is used, but a framebuffer is used to access the + LCD. In this case, the update callout can be used to refresh the + affected region of the display. + + - When VNC is enabled. This is case, this callout is necessary to + update the remote frame buffer to match the local framebuffer. + + When this feature is enabled, some external logic must provide this + interface: + + void nx_notify_rectangle(FAR NX_PLANEINFOTYPE *pinfo, + FAR const struct nxgl_rect_s *rect); + + That is the function that will handle the notification. It + receives the rectangular region that was updated in the provided + plane. + menu "Supported Pixel Depths" config NX_DISABLE_1BPP diff --git a/graphics/nxbe/nxbe_bitmap.c b/graphics/nxbe/nxbe_bitmap.c index fdaa2e50bc..c4d29681a2 100644 --- a/graphics/nxbe/nxbe_bitmap.c +++ b/graphics/nxbe/nxbe_bitmap.c @@ -1,7 +1,7 @@ /**************************************************************************** * graphics/nxbe/nxbe_bitmap.c * - * Copyright (C) 2008-2009, 2012 Gregory Nutt. All rights reserved. + * Copyright (C) 2008-2009, 2012, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -75,8 +75,17 @@ static void nxs_clipcopy(FAR struct nxbe_clipops_s *cops, FAR const struct nxgl_rect_s *rect) { struct nx_bitmap_s *bminfo = (struct nx_bitmap_s *)cops; + + /* Copy the rectangular region */ + plane->copyrectangle(&plane->pinfo, rect, bminfo->src, &bminfo->origin, bminfo->stride); + +#ifdef CONFIG_NX_UPDATE + /* Notify external logic that the display has been updated */ + + nx_notify_rectangle(&plane->pinfo, rect); +#endif } /**************************************************************************** @@ -106,8 +115,8 @@ static void nxs_clipcopy(FAR struct nxbe_clipops_s *cops, ****************************************************************************/ void nxbe_bitmap(FAR struct nxbe_window_s *wnd, FAR const struct nxgl_rect_s *dest, - FAR const void *src[CONFIG_NX_NPLANES], - FAR const struct nxgl_point_s *origin, unsigned int stride) + FAR const void *src[CONFIG_NX_NPLANES], + FAR const struct nxgl_point_s *origin, unsigned int stride) { struct nx_bitmap_s info; struct nxgl_rect_s bounds; @@ -153,6 +162,7 @@ void nxbe_bitmap(FAR struct nxbe_window_s *wnd, FAR const struct nxgl_rect_s *de nxgl_rectintersect(&remaining, &bounds, &wnd->bounds); nxgl_rectintersect(&remaining, &remaining, &wnd->be->bkgd.bounds); + if (nxgl_nullrect(&remaining)) { return; @@ -177,4 +187,3 @@ void nxbe_bitmap(FAR struct nxbe_window_s *wnd, FAR const struct nxgl_rect_s *de &info.cops, &wnd->be->plane[i]); } } - diff --git a/graphics/nxbe/nxbe_fill.c b/graphics/nxbe/nxbe_fill.c index dfad22b197..c87992052e 100644 --- a/graphics/nxbe/nxbe_fill.c +++ b/graphics/nxbe/nxbe_fill.c @@ -1,7 +1,7 @@ /**************************************************************************** * graphics/nxbe/nxbe_fill.c * - * Copyright (C) 2008-2009, 2011 Gregory Nutt. All rights reserved. + * Copyright (C) 2008-2009, 2011, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -40,6 +40,7 @@ #include #include +#include #include "nxbe.h" @@ -71,7 +72,16 @@ static void nxbe_clipfill(FAR struct nxbe_clipops_s *cops, FAR const struct nxgl_rect_s *rect) { struct nxbe_fill_s *fillinfo = (struct nxbe_fill_s *)cops; + + /* Draw the rectangle */ + plane->fillrectangle(&plane->pinfo, rect, fillinfo->color); + +#ifdef CONFIG_NX_UPDATE + /* Notify external logic that the display has been updated */ + + nx_notify_rectangle(&plane->pinfo, rect); +#endif } /**************************************************************************** diff --git a/graphics/nxbe/nxbe_filltrapezoid.c b/graphics/nxbe/nxbe_filltrapezoid.c index 550be6c175..eb369d75cf 100644 --- a/graphics/nxbe/nxbe_filltrapezoid.c +++ b/graphics/nxbe/nxbe_filltrapezoid.c @@ -1,7 +1,7 @@ /**************************************************************************** * graphics/nxbe/nxbe_filltrapezoid.c * - * Copyright (C) 2008-2009, 2012 Gregory Nutt. All rights reserved. + * Copyright (C) 2008-2009, 2012, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -44,6 +44,18 @@ #include "nxbe.h" +/**************************************************************************** + * Pre-processor Definitions + ****************************************************************************/ + +#ifndef MIN +# define MIN(a,b) (((a) < (b)) ? (a) : (b) +#endif + +#ifndef MAX +# define MAX(a,b) (((a) > (b)) ? (a) : (b) +#endif + /**************************************************************************** * Private Types ****************************************************************************/ @@ -73,7 +85,26 @@ static void nxbe_clipfilltrapezoid(FAR struct nxbe_clipops_s *cops, FAR const struct nxgl_rect_s *rect) { struct nxbe_filltrap_s *fillinfo = (struct nxbe_filltrap_s *)cops; +#ifdef CONFIG_NX_UPDATE + FAR const struct nxgl_rect_s *update; +#endif + + /* Draw the trapezond */ + plane->filltrapezoid(&plane->pinfo, &fillinfo->trap, rect, fillinfo->color); + +#ifdef CONFIG_NX_UPDATE + /* Notify external logic that the display has been updated */ + + update.pt1.x = MIN(MAX(fillinfo->trap.top.x1, rect->pt1.x), + MAX(fillinfo->trap.bot.x1, rect->pt1.x)); + update.pt1.y = MAX(fillinfo->trap.top.y, rect->pt1.y); + update.pt2.x = MAX(MIN(fillinfo->trap.top.x2, rect->pt2.x), + MIN(fillinfo->trap.bot.x2, rect->pt2.x)); + update.pt2.y = MIN(fillinfo->trap.bot.y, rect->pt2.y); + + nx_notify_rectangle(&plane->pinfo, &update); +#endif } /**************************************************************************** diff --git a/graphics/nxbe/nxbe_move.c b/graphics/nxbe/nxbe_move.c index 5f142bc11d..32360866c5 100644 --- a/graphics/nxbe/nxbe_move.c +++ b/graphics/nxbe/nxbe_move.c @@ -1,7 +1,7 @@ /**************************************************************************** * graphics/nxbe/nxbe_move.c * - * Copyright (C) 2008-2009, 2011-2012 Gregory Nutt. All rights reserved. + * Copyright (C) 2008-2009, 2011-2012, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -78,6 +78,9 @@ static void nxbe_clipmovesrc(FAR struct nxbe_clipops_s *cops, { struct nxbe_move_s *info = (struct nxbe_move_s *)cops; struct nxgl_point_s offset; +#ifdef CONFIG_NX_UPDATE + FAR const struct nxgl_rect_s *update; +#endif if (info->offset.x != 0 || info->offset.y != 0) { @@ -86,7 +89,20 @@ static void nxbe_clipmovesrc(FAR struct nxbe_clipops_s *cops, offset.x = rect->pt1.x + info->offset.x; offset.y = rect->pt1.y + info->offset.y; + /* Move the source rectangle to the destination position */ + plane->moverectangle(&plane->pinfo, rect, &offset); + +#ifdef CONFIG_NX_UPDATE + /* Notify external logic that the display has been updated */ + + update.pt1.x = offset.x; + update.pt1.y = offset.y; + update.pt2.x = rect->pt2.x + info->offset.x; + update.pt2.y = rect->pt2.y + info->offset.y; + + nx_notify_rectangle(&plane->pinfo, &update); +#endif } } diff --git a/graphics/nxbe/nxbe_setpixel.c b/graphics/nxbe/nxbe_setpixel.c index 90cacf629a..81627f0608 100644 --- a/graphics/nxbe/nxbe_setpixel.c +++ b/graphics/nxbe/nxbe_setpixel.c @@ -1,7 +1,7 @@ /**************************************************************************** * graphics/nxbe/nxbe_setpixel.c * - * Copyright (C) 2011 Gregory Nutt. All rights reserved. + * Copyright (C) 2011, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -40,6 +40,7 @@ #include #include +#include #include "nxbe.h" @@ -71,7 +72,16 @@ static void nxbe_clipfill(FAR struct nxbe_clipops_s *cops, FAR const struct nxgl_rect_s *rect) { struct nxbe_setpixel_s *fillinfo = (struct nxbe_setpixel_s *)cops; + + /* Set the pixel */ + plane->setpixel(&plane->pinfo, &rect->pt1, fillinfo->color); + +#ifdef CONFIG_NX_UPDATE + /* Notify external logic that the display has been updated */ + + nx_notify_rectangle(&plane->pinfo, rect); +#endif } /**************************************************************************** @@ -79,7 +89,7 @@ static void nxbe_clipfill(FAR struct nxbe_clipops_s *cops, ****************************************************************************/ /**************************************************************************** - * Name: nxbe_fill + * Name: nxbe_setpixel * * Description: * Fill the specified rectangle in the window with the specified color @@ -95,8 +105,8 @@ static void nxbe_clipfill(FAR struct nxbe_clipops_s *cops, ****************************************************************************/ void nxbe_setpixel(FAR struct nxbe_window_s *wnd, - FAR const struct nxgl_point_s *pos, - nxgl_mxpixel_t color[CONFIG_NX_NPLANES]) + FAR const struct nxgl_point_s *pos, + nxgl_mxpixel_t color[CONFIG_NX_NPLANES]) { struct nxbe_setpixel_s info; struct nxgl_rect_s rect; diff --git a/include/nuttx/nx/nx.h b/include/nuttx/nx/nx.h index feaa67feee..5f6c02a481 100644 --- a/include/nuttx/nx/nx.h +++ b/include/nuttx/nx/nx.h @@ -901,6 +901,32 @@ int nx_bitmap(NXWINDOW hwnd, FAR const struct nxgl_rect_s *dest, FAR const void *src[CONFIG_NX_NPLANES], FAR const struct nxgl_point_s *origin, unsigned int stride); +/**************************************************************************** + * Name: nx_notify_rectangle + * + * Description: + * When CONFIG_NX_UPDATE=y, then the graphics system will callout to + * inform some external module that the display has been updated. This + * would be useful in a couple for cases. + * + * - When a serial LCD is used, but a framebuffer is used to access the + * LCD. In this case, the update callout can be used to refresh the + * affected region of the display. + * + * - When VNC is enabled. This is case, this callout is necessary to + * update the remote frame buffer to match the local framebuffer. + * + * When this feature is enabled, some external logic must provide this + * interface. This is the function that will handle the notification. It + * receives the rectangular region that was updated on the provided plane. + * + ****************************************************************************/ + +#ifdef CONFIG_NX_UPDATE +void nx_notify_rectangle(FAR NX_PLANEINFOTYPE *pinfo, + FAR const struct nxgl_rect_s *rect); +#endif + /**************************************************************************** * Name: nx_kbdin * -- GitLab From 1214f99c25826f2acaa79cd023019458c3aea203 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 17 Apr 2016 12:26:03 -0600 Subject: [PATCH 025/307] VNC: Add hooks to receive updates when the display is modified --- graphics/vnc/server/Kconfig | 1 + graphics/vnc/server/vnc_fbdev.c | 53 ++++++++++++++++++++++++++++++- graphics/vnc/server/vnc_server.h | 27 ++++++++++++++++ graphics/vnc/server/vnc_updater.c | 31 +++++++++++++++++- 4 files changed, 110 insertions(+), 2 deletions(-) diff --git a/graphics/vnc/server/Kconfig b/graphics/vnc/server/Kconfig index 74319591ef..7af1dccf52 100644 --- a/graphics/vnc/server/Kconfig +++ b/graphics/vnc/server/Kconfig @@ -8,6 +8,7 @@ menuconfig VNCSERVER default n depends on NET_TCP && !NX_LCDDRIVER && EXPERIMENTAL select NET_TCP_READAHEAD + select NX_UPDATE ---help--- Enable support for a VNC Remote Frame Buffer (RFB) server. diff --git a/graphics/vnc/server/vnc_fbdev.c b/graphics/vnc/server/vnc_fbdev.c index 68ae32ef49..2d67f980ca 100644 --- a/graphics/vnc/server/vnc_fbdev.c +++ b/graphics/vnc/server/vnc_fbdev.c @@ -406,7 +406,7 @@ int up_fbinitialize(int display) */ gvdbg("Starting the VNC server for display %d\n", display); - DEBUGASSERT(display >= 8 && display < RFB_MAX_DISPLAYS); + DEBUGASSERT(display >= 0 && display < RFB_MAX_DISPLAYS); (void)itoa(display, str, 10); argv[0] = str; @@ -513,3 +513,54 @@ void up_fbuninitialize(int display) UNUSED(fbinfo); } +/**************************************************************************** + * Name: nx_notify_rectangle + * + * Description: + * When CONFIG_NX_UPDATE=y, then the graphics system will callout to + * inform some external module that the display has been updated. This + * would be useful in a couple for cases. + * + * - When a serial LCD is used, but a framebuffer is used to access the + * LCD. In this case, the update callout can be used to refresh the + * affected region of the display. + * + * - When VNC is enabled. This is case, this callout is necessary to + * update the remote frame buffer to match the local framebuffer. + * + * When this feature is enabled, some external logic must provide this + * interface. This is the function that will handle the notification. It + * receives the rectangular region that was updated on the provided plane. + * + ****************************************************************************/ + +#ifdef CONFIG_NX_UPDATE +void nx_notify_rectangle(FAR NX_PLANEINFOTYPE *pinfo, + FAR const struct nxgl_rect_s *rect) +{ + FAR struct vnc_session_s *session; + int ret; + + DEBUGASSERT(pinfo != NULL && rect != NULL); + + /* Recover the session informatin from the display number in the planeinfo + * structure. + */ + + DEBUGASSERT(pinfo->display >= 0 && pinfo->display < RFB_MAX_DISPLAYS); + session = vnc_find_session(pinfo->display); + + /* Verify that the session is still valid */ + + if (session != NULL && session->state == VNCSERVER_RUNNING) + { + /* Queue the rectangular update */ + + ret = vnc_update_rectangle(session, rect); + if (ret < 0) + { + gdbg("ERROR: vnc_update_rectangle failed: %d\n", ret); + } + } +} +#endif diff --git a/graphics/vnc/server/vnc_server.h b/graphics/vnc/server/vnc_server.h index 4e0a2cf3ee..d839b34c61 100644 --- a/graphics/vnc/server/vnc_server.h +++ b/graphics/vnc/server/vnc_server.h @@ -56,6 +56,14 @@ /* Configuration */ +#ifndef CONFIG_NET_TCP_READAHEAD +# error CONFIG_NET_TCP_READAHEAD must be set to use VNC +#endif + +#ifndef CONFIG_NX_UPDATE +# error CONFIG_NX_UPDATE must be set to use VNC +#endif + #if !defined(CONFIG_VNCSERVER_PROTO3p3) && !defined(CONFIG_VNCSERVER_PROTO3p8) # error No VNC protocol selected #endif @@ -268,6 +276,25 @@ int vnc_start_updater(FAR struct vnc_session_s *session); int vnc_stop_updater(FAR struct vnc_session_s *session); +/**************************************************************************** + * Name: vnc_update_rectangle + * + * Description: + * Queue an update of the specified rectangular region on the display. + * + * Input Parameters: + * session - An instance of the session structure. + * rect - The rectanglular region to be updated. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure. + * + ****************************************************************************/ + +int vnc_update_rectangle(FAR struct vnc_session_s *session, + FAR const struct nxgl_rect_s *rect); + /**************************************************************************** * Name: vnc_receiver * diff --git a/graphics/vnc/server/vnc_updater.c b/graphics/vnc/server/vnc_updater.c index f8a44a9341..4db204c9b4 100644 --- a/graphics/vnc/server/vnc_updater.c +++ b/graphics/vnc/server/vnc_updater.c @@ -42,6 +42,7 @@ #include #include #include +#include #include "vnc_server.h" @@ -75,7 +76,7 @@ static FAR void *vnc_updater(FAR void *arg) #warning Missing logic } - return NULL; + return NULL; } /**************************************************************************** @@ -169,3 +170,31 @@ int vnc_stop_updater(FAR struct vnc_session_s *session) return OK; } +/**************************************************************************** + * Name: vnc_update_rectangle + * + * Description: + * Queue an update of the specified rectangular region on the display. + * + * Input Parameters: + * session - An instance of the session structure. + * rect - The rectanglular region to be updated. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure. + * + ****************************************************************************/ + +int vnc_update_rectangle(FAR struct vnc_session_s *session, + FAR const struct nxgl_rect_s *rect) +{ + /* Make sure that the rectangle has a area */ + + if (!nxgl_nullrect(rect)) + { +#warning Missing logic + } + + return -ENOSYS; +} -- GitLab From 8d9fc9a02909e52a8915284af703efdf124dfe69 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 17 Apr 2016 12:28:03 -0600 Subject: [PATCH 026/307] NX: Fix some problems with the last commit --- graphics/Kconfig | 2 +- graphics/nxbe/nxbe_filltrapezoid.c | 6 +++--- graphics/nxbe/nxbe_move.c | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/graphics/Kconfig b/graphics/Kconfig index 4f81aab3f8..40344d6ef7 100644 --- a/graphics/Kconfig +++ b/graphics/Kconfig @@ -57,7 +57,7 @@ config NX_WRITEONLY defined. config NX_UPDATE - bool "Display update hooks' + bool "Display update hooks" default n ---help--- Enable a callout to inform some external module that the display has diff --git a/graphics/nxbe/nxbe_filltrapezoid.c b/graphics/nxbe/nxbe_filltrapezoid.c index eb369d75cf..cf3b3096a3 100644 --- a/graphics/nxbe/nxbe_filltrapezoid.c +++ b/graphics/nxbe/nxbe_filltrapezoid.c @@ -49,11 +49,11 @@ ****************************************************************************/ #ifndef MIN -# define MIN(a,b) (((a) < (b)) ? (a) : (b) +# define MIN(a,b) (((a) < (b)) ? (a) : (b)) #endif #ifndef MAX -# define MAX(a,b) (((a) > (b)) ? (a) : (b) +# define MAX(a,b) (((a) > (b)) ? (a) : (b)) #endif /**************************************************************************** @@ -86,7 +86,7 @@ static void nxbe_clipfilltrapezoid(FAR struct nxbe_clipops_s *cops, { struct nxbe_filltrap_s *fillinfo = (struct nxbe_filltrap_s *)cops; #ifdef CONFIG_NX_UPDATE - FAR const struct nxgl_rect_s *update; + struct nxgl_rect_s update; #endif /* Draw the trapezond */ diff --git a/graphics/nxbe/nxbe_move.c b/graphics/nxbe/nxbe_move.c index 32360866c5..9bf56fd1e9 100644 --- a/graphics/nxbe/nxbe_move.c +++ b/graphics/nxbe/nxbe_move.c @@ -79,7 +79,7 @@ static void nxbe_clipmovesrc(FAR struct nxbe_clipops_s *cops, struct nxbe_move_s *info = (struct nxbe_move_s *)cops; struct nxgl_point_s offset; #ifdef CONFIG_NX_UPDATE - FAR const struct nxgl_rect_s *update; + struct nxgl_rect_s update; #endif if (info->offset.x != 0 || info->offset.y != 0) -- GitLab From 8272f4bde0b292d8f5f47970979216da9f94ae46 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 17 Apr 2016 13:35:51 -0600 Subject: [PATCH 027/307] VNC: Basic Client-to-Server message parsing --- graphics/vnc/server/vnc_keymap.c | 6 +- graphics/vnc/server/vnc_receiver.c | 242 ++++++++++++++++++++++++++++- graphics/vnc/server/vnc_server.h | 2 +- 3 files changed, 242 insertions(+), 8 deletions(-) diff --git a/graphics/vnc/server/vnc_keymap.c b/graphics/vnc/server/vnc_keymap.c index ed97adaa12..e63f99fe8e 100644 --- a/graphics/vnc/server/vnc_keymap.c +++ b/graphics/vnc/server/vnc_keymap.c @@ -406,7 +406,7 @@ static inline void vnc_kbd_specrel(FAR uint8_t *buffer, uint8_t keycode) ****************************************************************************/ static int vnc_kbd_lookup(FAR const struct vnc_keymap_s *table, - unsigned int nelem, uint32_t keysym) + unsigned int nelem, uint16_t keysym) { int i; @@ -435,7 +435,7 @@ static int vnc_kbd_lookup(FAR const struct vnc_keymap_s *table, * ****************************************************************************/ -static int vnc_kbd_ascii(uint32_t keysym) +static int vnc_kbd_ascii(uint16_t keysym) { /* ISO/IEC 8859-1 Latin1 matches C ASCII in this range: */ @@ -475,7 +475,7 @@ static int vnc_kbd_ascii(uint32_t keysym) * ****************************************************************************/ -void vnc_key_map(FAR struct vnc_session_s *session, uint32_t keysym, +void vnc_key_map(FAR struct vnc_session_s *session, uint16_t keysym, bool keydown) { #ifdef CONFIG_VNCSERVER_KBDENCODE diff --git a/graphics/vnc/server/vnc_receiver.c b/graphics/vnc/server/vnc_receiver.c index d84f05ba03..03749a544f 100644 --- a/graphics/vnc/server/vnc_receiver.c +++ b/graphics/vnc/server/vnc_receiver.c @@ -52,6 +52,49 @@ * Private Functions ****************************************************************************/ +/**************************************************************************** + * Name: vnc_read_remainder + * + * Description: + * After receiving the first byte of a client-to-server message, this + * reads in the remainder of the message. + * + * Input Parameters: + * session - An instance of the session structure. + * msglen - The full length of the message + * + * Returned Value: + * At present, always returns OK + * + ****************************************************************************/ + +int vnc_read_remainder(FAR struct vnc_session_s *session, size_t msglen, + size_t offset) +{ + ssize_t nrecvd; + size_t ntotal; + int errcode; + + /* Loop until the rest of the message is recieved. */ + + for (ntotal = 0; ntotal < msglen; offset += nrecvd, ntotal += nrecvd) + { + /* Receive more of the message */ + + nrecvd = psock_recv(&session->connect, &session->inbuf[offset], + msglen - ntotal, 0); + if (nrecvd < 0) + { + errcode = get_errno(); + gdbg("ERROR: Receive message failed: %d\n", errcode); + DEBUGASSERT(errcode > 0); + return -errcode; + } + } + + return OK; +} + /**************************************************************************** * Public Functions ****************************************************************************/ @@ -60,7 +103,7 @@ * Name: vnc_receiver * * Description: - * This function handles all Client-to-Server messages. + * This function handles all Client-to-Server messages. * * Input Parameters: * session - An instance of the session structure. @@ -74,6 +117,7 @@ int vnc_receiver(FAR struct vnc_session_s *session) { ssize_t nrecvd; int errcode; + int ret; /* Loop until the client disconnects or an unhandled error occurs */ @@ -102,27 +146,217 @@ int vnc_receiver(FAR struct vnc_session_s *session) switch (session->inbuf[0]) { case RFB_SETPIXELFMT_MSG: /* SetPixelFormat */ + { + /* Read the rest of the SetPixelFormat message */ + + ret = vnc_read_remainder(session, + sizeof(struct rfb_setpixelformat_s) - 1, + 1); + if (ret < 0) + { + gdbg("ERROR: Failed to read SetPixelFormat message: %d\n", + ret); + } + else + { #warning Missing logic + } + } break; case RFB_SETENCODINGS_MSG: /* SetEncodings */ + { + FAR struct rfb_setencodings_s *encodings; + uint32_t nencodings; + + /* Read the SetEncodings message without the following + * encodings. + */ + + ret = vnc_read_remainder(session, + SIZEOF_RFB_SERVERINIT_S(0) - 1, + 1); + if (ret < 0) + { + gdbg("ERROR: Failed to read SetEncodings message: %d\n", + ret); + } + else + { + /* Read the following encodings */ + + encodings = (FAR struct rfb_setencodings_s *)session->inbuf; + nencodings = rfb_getbe32(encodings->nencodings); + + ret = vnc_read_remainder(session, + nencodings * sizeof(uint32_t), + SIZEOF_RFB_SERVERINIT_S(0)); + if (ret < 0) + { + gdbg("ERROR: Failed to read encodings: %d\n", + ret); + } + else + { #warning Missing logic + } + } + } break; case RFB_FBUPDATEREQ_MSG: /* FramebufferUpdateRequest */ -#warning Missing logic + { + FAR struct rfb_fbupdatereq_s *update; + struct nxgl_rect_s rect; + + /* Read the rest of the SetPixelFormat message */ + + ret = vnc_read_remainder(session, + sizeof(struct rfb_fbupdatereq_s) - 1, + 1); + if (ret < 0) + { + gdbg("ERROR: Failed to read FramebufferUpdateRequest message: %d\n", + ret); + } + else + { + /* Enqueue the update */ + + update = (FAR struct rfb_fbupdatereq_s *)session->inbuf; + + rect.pt1.x = rfb_getbe16(update->xpos); + rect.pt1.y = rfb_getbe16(update->ypos); + rect.pt2.x = rect.pt1.x + rfb_getbe16(update->width); + rect.pt2.y = rect.pt1.y + rfb_getbe16(update->height); + + ret = vnc_update_rectangle(session, &rect); + if (ret < 0) + { + gdbg("ERROR: Failed to queue update: %d\n", ret); + } + } + } break; case RFB_KEYEVENT_MSG: /* KeyEvent */ -#warning Missing logic + { + FAR struct rfb_keyevent_s *keyevent; + + /* Read the rest of the KeyEvent message */ + + ret = vnc_read_remainder(session, + sizeof(struct rfb_keyevent_s) - 1, + 1); + if (ret < 0) + { + gdbg("ERROR: Failed to read KeyEvent message: %d\n", + ret); + } + else + { + /* Inject the key press/release event into NX */ + + keyevent = (FAR struct rfb_keyevent_s *)session->inbuf; + vnc_key_map(session, rfb_getbe16(keyevent->key), + (bool)keyevent->down); + } + } break; case RFB_POINTEREVENT_MSG: /* PointerEvent */ -#warning Missing logic + { +#ifdef CONFIG_NX_XYINPUT + FAR struct rfb_pointerevent_s *event; + uint8_t buttons; +#endif + + /* Read the rest of the PointerEvent message */ + + ret = vnc_read_remainder(session, + sizeof(struct rfb_pointerevent_s) - 1, + 1); + if (ret < 0) + { + gdbg("ERROR: Failed to read PointerEvent message: %d\n", + ret); + } +#ifdef CONFIG_NX_XYINPUT + else + { + event = (FAR struct rfb_pointerevent_s *)session->inbuf; + + /* Map buttons bitmap. Bits 0-7 are buttons 1-8, 0=up, + * 1=down. By convention Bit 0 = left button, Bit 1 = + * middle button, and Bit 2 = right button. + */ + + buttons = 0; + if ((event->buttons & (1 << 0)) != 0) + { + buttons |= NX_MOUSE_LEFTBUTTON; + } + + if ((event->buttons & (1 << 1)) != 0) + { + buttons |= NX_MOUSE_CENTERBUTTON; + } + + if ((event->buttons & (1 << 2)) != 0) + { + buttons |= NX_MOUSE_RIGHTBUTTON; + } + + ret = nx_mousein(session->handle, + (nxgl_coord_t)rfb_getbe16(event->xpos), + (nxgl_coord_t)rfb_getbe16(event->ypos), + buttons); + if (ret < 0) + { + gdbg("ERROR: nx_mousein failed: %d\n", ret); + } + } +#endif + } break; case RFB_CLIENTCUTTEXT_MSG: /* ClientCutText */ + { + FAR struct rfb_clientcuttext_s *cuttext; + uint32_t length; + + /* Read the ClientCutText message without the following + * text. + */ + + ret = vnc_read_remainder(session, + SIZEOF_RFB_CLIENTCUTTEXT_S(0) - 1, + 1); + if (ret < 0) + { + gdbg("ERROR: Failed to read ClientCutText message: %d\n", + ret); + } + else + { + /* Read the following text */ + + cuttext = (FAR struct rfb_clientcuttext_s *)session->inbuf; + length = rfb_getbe32(cuttext->length); + + ret = vnc_read_remainder(session, length, + SIZEOF_RFB_CLIENTCUTTEXT_S(0)); + if (ret < 0) + { + gdbg("ERROR: Failed to read text: %d\n", + ret); + } + else + { #warning Missing logic + } + } + } break; default: diff --git a/graphics/vnc/server/vnc_server.h b/graphics/vnc/server/vnc_server.h index d839b34c61..b60ff2a17c 100644 --- a/graphics/vnc/server/vnc_server.h +++ b/graphics/vnc/server/vnc_server.h @@ -329,7 +329,7 @@ int vnc_receiver(FAR struct vnc_session_s *session); ****************************************************************************/ #ifdef CONFIG_NX_KBD -void vnc_key_map(FAR struct vnc_session_s *session, uint32_t keysym, +void vnc_key_map(FAR struct vnc_session_s *session, uint16_t keysym, bool keydown); #endif -- GitLab From 6ce656f9f58450670ba6260f6431a5c8355ad8f5 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 17 Apr 2016 13:37:52 -0600 Subject: [PATCH 028/307] RFB: Fix size of length field in the Client/ServerCutText message --- include/nuttx/video/rfb.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/nuttx/video/rfb.h b/include/nuttx/video/rfb.h index 4b9380731a..0a8f3a245b 100644 --- a/include/nuttx/video/rfb.h +++ b/include/nuttx/video/rfb.h @@ -512,7 +512,7 @@ struct rfb_clientcuttext_s { uint8_t msgtype; /* U8 Message type */ uint8_t padding[3]; - uint8_t length[2]; /* U8 Length */ + uint8_t length[4]; /* U32 Length */ uint8_t text[1]; /* U8 Text, actual length is Length */ }; @@ -612,7 +612,7 @@ struct rfb_servercuttext_s { uint8_t msgtype; /* U8 Message type */ uint8_t padding[3]; - uint8_t length[2]; /* U8 Length */ + uint8_t length[4]; /* U32 Length */ uint8_t text[1]; /* U8 Text, actual length is Length */ }; -- GitLab From e8f0965d354e402db9737fe7bcb8102536bf9ea0 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 17 Apr 2016 14:13:44 -0600 Subject: [PATCH 029/307] Mostly cosmetic changes from review of last PR --- drivers/mtd/Kconfig | 36 +++++++-------- drivers/mtd/Make.defs | 2 +- drivers/mtd/n25qxxx.c | 98 ++++++++++++++++++++++------------------- include/nuttx/mtd/mtd.h | 2 +- 4 files changed, 73 insertions(+), 65 deletions(-) diff --git a/drivers/mtd/Kconfig b/drivers/mtd/Kconfig index b3a4dd7c06..3a3b8b7709 100644 --- a/drivers/mtd/Kconfig +++ b/drivers/mtd/Kconfig @@ -266,7 +266,7 @@ config RAMMTD_FLASHSIM RAMMTD_FLASHSIM will add some extra logic to improve the level of FLASH simulation. -endif +endif # RAMMTD config FILEMTD bool "File-based MTD driver" @@ -288,7 +288,7 @@ config FILEMTD_ERASESTATE hex "Simulated erase state" default 0xff -endif +endif # FILEMTD config MTD_AT24XX bool "I2C-based AT24xx eeprom" @@ -353,11 +353,11 @@ config AT24XX_FREQUENCY int "AT24xx I2C bus frequency" default 100000 ---help--- - Set the I2C frequency to use when accessing the AT24CXX EEPROM. This value - must represent a valid I2C speed (normally less than 400.000) or the driver - might fail. + Set the I2C frequency to use when accessing the AT24CXX EEPROM. This value + must represent a valid I2C speed (normally less than 400.000) or the driver + might fail. -endif +endif # MTD_AT24XX config MTD_AT25 bool "SPI-based AT25 FLASH" @@ -374,7 +374,7 @@ config AT25_SPIFREQUENCY int "AT25 SPI Frequency" default 20000000 -endif +endif # MTD_AT25 config MTD_AT45DB bool "SPI-based AT45DB flash" @@ -395,7 +395,7 @@ config AT45DB_PWRSAVE bool "Enable power save" default n -endif +endif # MTD_AT45DB config MTD_M25P bool "SPI-based M25P FLASH" @@ -437,7 +437,7 @@ config M25P_SUBSECTOR_ERASE size (4K vs 64K). This option enables support for sub-sector erase. The SMART file system can take advantage of this option if it is enabled. -endif +endif # MTD_M25P config MTD_S25FL1 bool "QuadSPI-based S25FL1 FLASH" @@ -489,7 +489,7 @@ config S25FL1_SCRAMBLE_KEY default 0x0baddead depends on S25FL1_SCRAMBLE -endif +endif # MTD_S25FL1 config MTD_N25QXXX bool "QuadSPI-based Micron N25QXXX family FLASH" @@ -519,7 +519,7 @@ config N25QXXX_SECTOR512 bool "Simulate 512 byte Erase Blocks" default n -endif +endif # MTD_N25QXXX config MTD_SMART bool "Sector Mapped Allocation for Really Tiny (SMART) Flash support" @@ -583,7 +583,7 @@ config MTD_SMART_CONVERT_WEAR_FORMAT CRC versions use a different header format and require a mksmartfs on the device even if an existing format is there. -endif +endif # MTD_SMART_WEAR_LEVEL && !SMART_CRC_16 config MTD_SMART_ENABLE_CRC bool "Enable Sector CRC error detection" @@ -618,7 +618,7 @@ config SMART_CRC_8 config SMART_CRC_16 bool "CRC-16" -endchoice +endchoice # CRC level selection config MTD_SMART_MINIMIZE_RAM bool "Minimize SMART RAM usage using logical sector cache" @@ -706,7 +706,7 @@ config RAMTRON_SETSPEED Select an option to provide an ioctl, MTDIOC_SETSPEED call that supports dynamic selection of the RAMTRON bus speed. -endif +endif # MTD_RAMTRON config MTD_SST25 bool "SPI-based SST25 FLASH" @@ -745,7 +745,7 @@ config SST25_SLOWREAD bool default n -endif +endif # MTD_SST25 config MTD_SST25XX bool "SPI-based SST25XX FLASH (64-MBit and larger)" @@ -781,7 +781,7 @@ config SST25XX_MEMORY_TYPE The memory type for SST25VF065 series is 0x25, but this can be modified if needed to support compatible devices from different manufacturers. -endif +endif # MTD_SST25XX config MTD_SST39FV bool "SST39FV NOR FLASH" @@ -800,7 +800,7 @@ config SST39VF_BASE_ADDRESS ---help--- This is the address where the SST29VF FLASH can be found in memory. -endif +endif # MTD_SST39FV config MTD_W25 bool "SPI-based W25 FLASH" @@ -829,4 +829,4 @@ config W25_SLOWREAD bool default n -endif +endif # MTD_W25 diff --git a/drivers/mtd/Make.defs b/drivers/mtd/Make.defs index 4bbd1eb1ff..a3a6eb7f20 100644 --- a/drivers/mtd/Make.defs +++ b/drivers/mtd/Make.defs @@ -3,7 +3,7 @@ # These driver supports various Memory Technology Devices (MTD) using the # NuttX MTD interface. # -# Copyright (C) 2009-2013, 2015 Gregory Nutt. All rights reserved. +# Copyright (C) 2009-2013, 2015-2016 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without diff --git a/drivers/mtd/n25qxxx.c b/drivers/mtd/n25qxxx.c index 31bab580d2..d79f2877b9 100644 --- a/drivers/mtd/n25qxxx.c +++ b/drivers/mtd/n25qxxx.c @@ -2,7 +2,7 @@ * drivers/mtd/n25qxxx.c * Driver for QuadSPI-based N25QxxxA * - * Copyright (C) 2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2016 Gregory Nutt. All rights reserved. * Author: dev@ziggurat29.com * * Redistribution and use in source and binary forms, with or without @@ -59,6 +59,7 @@ /************************************************************************************ * Pre-processor Definitions ************************************************************************************/ + /* Configuration ********************************************************************/ /* QuadSPI Mode. Per data sheet, either Mode 0 or Mode 3 may be used. */ @@ -66,23 +67,22 @@ # define CONFIG_N25QXXX_QSPIMODE QSPIDEV_MODE0 #endif -/* QuadSPI Frequency per data sheet:: - * +/* QuadSPI Frequency per data sheet: * * In this implementation, only "Quad" reads are performed. */ #ifndef CONFIG_N25QXXX_QSPI_FREQUENCY -/* if you haven't specified frequency, default to 40 MHz which will work with all - commands. +/* If you haven't specified frequency, default to 40 MHz which will work with all + * commands. */ # define CONFIG_N25QXXX_QSPI_FREQUENCY 40000000 #endif #ifndef CONFIG_N25QXXX_DUMMIES -/* if you haven't specified the number of dummy cycles for quad reads, provide a - reasonable default. The actual number of dummies needed is clock and IO command - dependent. +/* If you haven't specified the number of dummy cycles for quad reads, provide a + * reasonable default. The actual number of dummies needed is clock and IO command + * dependent. */ # define CONFIG_N25QXXX_DUMMIES 6 #endif @@ -175,10 +175,11 @@ /* Chip Geometries ******************************************************************/ /* All members of the family support uniform 4K-byte 'sub sectors'; they also support - 64k (and sometimes 32k) 'sectors' proper, but we won't be using those here. + * 64k (and sometimes 32k) 'sectors' proper, but we won't be using those here. */ /* N25Q016 (2 MB) memory capacity */ + #define N25Q016_SECTOR_SIZE (4*1024) #define N25Q016_SECTOR_SHIFT (12) #define N25Q016_SECTOR_COUNT (512) @@ -186,6 +187,7 @@ #define N25Q016_PAGE_SHIFT (8) /* N25Q032 (4 MB) memory capacity */ + #define N25Q032_SECTOR_SIZE (4*1024) #define N25Q032_SECTOR_SHIFT (12) #define N25Q032_SECTOR_COUNT (1024) @@ -193,6 +195,7 @@ #define N25Q032_PAGE_SHIFT (8) /* N25Q064 (8 MB) memory capacity */ + #define N25Q064_SECTOR_SIZE (4*1024) #define N25Q064_SECTOR_SHIFT (12) #define N25Q064_SECTOR_COUNT (2048) @@ -200,6 +203,7 @@ #define N25Q064_PAGE_SHIFT (8) /* N25Q128 (16 MB) memory capacity */ + #define N25Q128_SECTOR_SIZE (4*1024) #define N25Q128_SECTOR_SHIFT (12) #define N25Q128_SECTOR_COUNT (4096) @@ -207,6 +211,7 @@ #define N25Q128_PAGE_SHIFT (8) /* N25Q256 (32 MB) memory capacity */ + #define N25Q256_SECTOR_SIZE (4*1024) #define N25Q256_SECTOR_SHIFT (12) #define N25Q256_SECTOR_COUNT (8196) @@ -214,6 +219,7 @@ #define N25Q256_PAGE_SHIFT (8) /* N25Q512 (64 MB) memory capacity */ + #define N25Q512_SECTOR_SIZE (4*1024) #define N25Q512_SECTOR_SHIFT (12) #define N25Q512_SECTOR_COUNT (16384) @@ -221,6 +227,7 @@ #define N25Q512_PAGE_SHIFT (8) /* N25Q00 (128 MB) memory capacity */ + #define N25Q00_SECTOR_SIZE (4*1024) #define N25Q00_SECTOR_SHIFT (12) #define N25Q00_SECTOR_COUNT (32768) @@ -233,17 +240,17 @@ #define N25QXXX_CACHE_DIRTY (1 << 1) /* 1=Cache is dirty */ #define N25QXXX_CACHE_ERASED (1 << 2) /* 1=Backing FLASH is erased */ -#define IS_VALID(p) ((((p)->flags) & N25QXXX_CACHE_VALID) != 0) -#define IS_DIRTY(p) ((((p)->flags) & N25QXXX_CACHE_DIRTY) != 0) -#define IS_ERASED(p) ((((p)->flags) & N25QXXX_CACHE_DIRTY) != 0) +#define IS_VALID(p) ((((p)->flags) & N25QXXX_CACHE_VALID) != 0) +#define IS_DIRTY(p) ((((p)->flags) & N25QXXX_CACHE_DIRTY) != 0) +#define IS_ERASED(p) ((((p)->flags) & N25QXXX_CACHE_DIRTY) != 0) -#define SET_VALID(p) do { (p)->flags |= N25QXXX_CACHE_VALID; } while (0) -#define SET_DIRTY(p) do { (p)->flags |= N25QXXX_CACHE_DIRTY; } while (0) -#define SET_ERASED(p) do { (p)->flags |= N25QXXX_CACHE_DIRTY; } while (0) +#define SET_VALID(p) do { (p)->flags |= N25QXXX_CACHE_VALID; } while (0) +#define SET_DIRTY(p) do { (p)->flags |= N25QXXX_CACHE_DIRTY; } while (0) +#define SET_ERASED(p) do { (p)->flags |= N25QXXX_CACHE_DIRTY; } while (0) -#define CLR_VALID(p) do { (p)->flags &= ~N25QXXX_CACHE_VALID; } while (0) -#define CLR_DIRTY(p) do { (p)->flags &= ~N25QXXX_CACHE_DIRTY; } while (0) -#define CLR_ERASED(p) do { (p)->flags &= ~N25QXXX_CACHE_DIRTY; } while (0) +#define CLR_VALID(p) do { (p)->flags &= ~N25QXXX_CACHE_VALID; } while (0) +#define CLR_DIRTY(p) do { (p)->flags &= ~N25QXXX_CACHE_DIRTY; } while (0) +#define CLR_ERASED(p) do { (p)->flags &= ~N25QXXX_CACHE_DIRTY; } while (0) /* 512 byte sector support **********************************************************/ @@ -335,10 +342,6 @@ static ssize_t n25qxxx_read(FAR struct mtd_dev_s *dev, off_t offset, size_t nbyt FAR uint8_t *buffer); static int n25qxxx_ioctl(FAR struct mtd_dev_s *dev, int cmd, unsigned long arg); -/************************************************************************************ - * Private Data - ************************************************************************************/ - /************************************************************************************ * Private Functions ************************************************************************************/ @@ -354,15 +357,16 @@ static void n25qxxx_lock(FAR struct qspi_dev_s *qspi) * transfers. The bus should be locked before the chip is selected. * * This is a blocking call and will not return until we have exclusive access to - * the QuadSPI buss. We will retain that exclusive access until the bus is unlocked. + * the QuadSPI buss. We will retain that exclusive access until the bus is + * unlocked. */ (void)QSPI_LOCK(qspi, true); - /* After locking the QuadSPI bus, the we also need call the setfrequency, setbits, and - * setmode methods to make sure that the QuadSPI is properly configured for the device. - * If the QuadSPI buss is being shared, then it may have been left in an incompatible - * state. + /* After locking the QuadSPI bus, the we also need call the setfrequency, setbits, + * and setmode methods to make sure that the QuadSPI is properly configured for + * the device. If the QuadSPI buss is being shared, then it may have been left in + * an incompatible state. */ QSPI_SETMODE(qspi, CONFIG_N25QXXX_QSPIMODE); @@ -480,11 +484,11 @@ static uint8_t n25qxxx_read_status(FAR struct n25qxxx_dev_s *priv) static void n25qxxx_write_status(FAR struct n25qxxx_dev_s *priv) { n25qxxx_write_enable(priv); - + /* take care to mask of the SRP bit; it is one-time-programmable */ - + priv->cmdbuf[0] &= ~STATUS_SRP0_MASK; - + n25qxxx_command_write(priv->qspi, N25QXXX_WRITE_STATUS, (FAR const void *)priv->cmdbuf, 1); n25qxxx_write_disable(priv); @@ -584,31 +588,37 @@ static inline int n25qxxx_readid(struct n25qxxx_dev_s *priv) priv->pageshift = N25Q016_PAGE_SHIFT; priv->nsectors = N25Q016_SECTOR_COUNT; break; + case N25Q032_JEDEC_CAPACITY: priv->sectorshift = N25Q032_SECTOR_SHIFT; priv->pageshift = N25Q032_PAGE_SHIFT; priv->nsectors = N25Q032_SECTOR_COUNT; break; + case N25Q064_JEDEC_CAPACITY: priv->sectorshift = N25Q064_SECTOR_SHIFT; priv->pageshift = N25Q064_PAGE_SHIFT; priv->nsectors = N25Q064_SECTOR_COUNT; break; + case N25Q128_JEDEC_CAPACITY: priv->sectorshift = N25Q128_SECTOR_SHIFT; priv->pageshift = N25Q128_PAGE_SHIFT; priv->nsectors = N25Q128_SECTOR_COUNT; break; + case N25Q256_JEDEC_CAPACITY: priv->sectorshift = N25Q256_SECTOR_SHIFT; priv->pageshift = N25Q256_PAGE_SHIFT; priv->nsectors = N25Q256_SECTOR_COUNT; break; + case N25Q512_JEDEC_CAPACITY: priv->sectorshift = N25Q512_SECTOR_SHIFT; priv->pageshift = N25Q512_PAGE_SHIFT; priv->nsectors = N25Q512_SECTOR_COUNT; break; + case N25Q00_JEDEC_CAPACITY: priv->sectorshift = N25Q00_SECTOR_SHIFT; priv->pageshift = N25Q00_PAGE_SHIFT; @@ -658,13 +668,14 @@ static int n25qxxx_protect(FAR struct n25qxxx_dev_s *priv, * necessary to protect the range of sectors. */ - priv->cmdbuf[0] |= (STATUS_BP3_MASK|STATUS_BP_MASK); + priv->cmdbuf[0] |= (STATUS_BP3_MASK | STATUS_BP_MASK); n25qxxx_write_status(priv); /* Check the new status */ priv->cmdbuf[0] = n25qxxx_read_status(priv); - if ((priv->cmdbuf[0] & (STATUS_BP3_MASK|STATUS_BP_MASK)) != (STATUS_BP3_MASK|STATUS_BP_MASK)) + if ((priv->cmdbuf[0] & (STATUS_BP3_MASK | STATUS_BP_MASK)) != + (STATUS_BP3_MASK | STATUS_BP_MASK)) { return -EACCES; } @@ -695,8 +706,9 @@ static int n25qxxx_unprotect(FAR struct n25qxxx_dev_s *priv, if ((priv->cmdbuf[0] & STATUS_SRP0_MASK) == STATUS_SRP0_LOCKED) { /* the SRP bit is one time programmable; if it's set, there's nothing that - you can do to unset it. + * you can do to unset it. */ + return -EACCES; } @@ -715,7 +727,7 @@ static int n25qxxx_unprotect(FAR struct n25qxxx_dev_s *priv, { return -EACCES; } - + return OK; } @@ -738,11 +750,11 @@ static bool n25qxxx_isprotected(FAR struct n25qxxx_dev_s *priv, uint8_t status, { bp |= 8; } - + /* the BP field is essentially the power-of-two of the number of 64k sectors, - saturated to the device size. + * saturated to the device size. */ - + if ( 0 == bp ) { return false; @@ -1215,8 +1227,6 @@ static ssize_t n25qxxx_bread(FAR struct mtd_dev_s *dev, off_t startblock, #endif return nbytes; - -return 0; } /************************************************************************************ @@ -1254,8 +1264,6 @@ static ssize_t n25qxxx_bwrite(FAR struct mtd_dev_s *dev, off_t startblock, n25qxxx_unlock(priv->qspi); return ret < 0 ? ret : nblocks; - -return 0; } /************************************************************************************ @@ -1284,8 +1292,6 @@ static ssize_t n25qxxx_read(FAR struct mtd_dev_s *dev, off_t offset, size_t nbyt fvdbg("return nbytes: %d\n", (int)nbytes); return (ssize_t)nbytes; - -return 0; } /************************************************************************************ @@ -1448,8 +1454,10 @@ FAR struct mtd_dev_s *n25qxxx_initialize(FAR struct qspi_dev_s *qspi, bool unpro goto errout_with_readbuf; } - /* specify the number of dummy cycles via the 'volatile configuration register' */ - + /* Specify the number of dummy cycles via the 'volatile configuration + * register' + */ + priv->cmdbuf[0] = n25qxxx_read_volcfg(priv); priv->cmdbuf[0] &= 0x0f; priv->cmdbuf[0] |= (CONFIG_N25QXXX_DUMMIES<<4); diff --git a/include/nuttx/mtd/mtd.h b/include/nuttx/mtd/mtd.h index bd41688c35..80b1c4215d 100644 --- a/include/nuttx/mtd/mtd.h +++ b/include/nuttx/mtd/mtd.h @@ -524,7 +524,7 @@ FAR struct mtd_dev_s *s25fl1_initialize(FAR struct qspi_dev_s *qspi, struct qspi_dev_s; /* Forward reference */ FAR struct mtd_dev_s *n25qxxx_initialize(FAR struct qspi_dev_s *qspi, - bool unprotect); + bool unprotect); /**************************************************************************** * Name: up_flashinitialize -- GitLab From df297ec8fc610edd94b46785f765062dd8d2a7b0 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 17 Apr 2016 16:48:30 -0600 Subject: [PATCH 030/307] VNC: Add some rectangle queuing logic --- graphics/vnc/server/Kconfig | 24 ++++++- graphics/vnc/server/vnc_negotiate.c | 2 +- graphics/vnc/server/vnc_server.c | 31 +++++++- graphics/vnc/server/vnc_server.h | 42 +++++++++-- graphics/vnc/server/vnc_updater.c | 105 ++++++++++++++++++++++++++-- 5 files changed, 188 insertions(+), 16 deletions(-) diff --git a/graphics/vnc/server/Kconfig b/graphics/vnc/server/Kconfig index 7af1dccf52..1a5ad3ad71 100644 --- a/graphics/vnc/server/Kconfig +++ b/graphics/vnc/server/Kconfig @@ -71,6 +71,26 @@ config VNCSERVER_SCREENHEIGHT int "Framebuffer height (rows)" default 240 +config VNCSERVER_NUPDATES + int "Number of pre-allocate update structures" + default 48 + ---help--- + This setting provides the number of pre-allocated update structures + that will be used. Dynamic memory allocations are never made. In + the likely event that we run out of update structures, the graphics + subsystem will pause and wait for the next structures to be released. + + Overhead is 12-bytes per update structure. + +config VNCSERVER_UPDATE_BUFSIZE + int "Max update buffer size (bytes)" + default 4096 + ---help--- + A single buffer is pre-allocated for rendering updates. This + setting specifies the maximum in bytes of that update buffer. For + example, an update buffers of 32 pixels at 32-bits per pixel and + 32-rows would yield a buffer size of 4096. + config VNCSERVER_KBDENCODE bool "Encode keyboard input" default n @@ -79,8 +99,8 @@ config VNCSERVER_KBDENCODE Use a special encoding of keyboard characters as defined in include/nuttx/input/kbd_coded.h. -config VNCSERVER_IOBUFFER_SIZE - int "I/O buffer size +config VNCSERVER_INBUFFER_SIZE + int "Input buffer size default 80 endif # VNCSERVER diff --git a/graphics/vnc/server/vnc_negotiate.c b/graphics/vnc/server/vnc_negotiate.c index 39b9681e69..34430cf19f 100644 --- a/graphics/vnc/server/vnc_negotiate.c +++ b/graphics/vnc/server/vnc_negotiate.c @@ -274,7 +274,7 @@ int vnc_negotiate(FAR struct vnc_session_s *session) */ (void)psock_recv(&session->connect, session->inbuf, - CONFIG_VNCSERVER_IOBUFFER_SIZE, 0); + CONFIG_VNCSERVER_INBUFFER_SIZE, 0); session->state = VNCSERVER_CONFIGURED; return OK; diff --git a/graphics/vnc/server/vnc_server.c b/graphics/vnc/server/vnc_server.c index 77ed0f6410..5dffc3606f 100644 --- a/graphics/vnc/server/vnc_server.c +++ b/graphics/vnc/server/vnc_server.c @@ -41,7 +41,9 @@ #include #include +#include #include +#include #include #include #include @@ -50,6 +52,7 @@ #include #include +#include #include #include "vnc_server.h" @@ -91,6 +94,10 @@ static FAR struct vnc_session_s *g_vnc_sessions[RFB_MAX_DISPLAYS]; static void vnc_reset_session(FAR struct vnc_session_s *session, FAR uint8_t *fb) { + FAR struct vnc_fbupdate_s *curr; + FAR struct vnc_fbupdate_s *next; + int i; + /* Close any open sockets */ if (session->state >= VNCSERVER_CONNECTED) @@ -99,12 +106,29 @@ static void vnc_reset_session(FAR struct vnc_session_s *session, psock_close(&session->listen); } - /* [Re-]nitialize the session. Set all values to 0 == NULL == false. */ + /* [Re-]initialize the session. */ + /* Put all of the pre-allocated update structures into the freelist */ + + sq_init(&session->updqueue); + + session->updfree.head = + (FAR sq_entry_t *)&session->updpool[0]; + session->updfree.tail = + (FAR sq_entry_t *)&session->updpool[CONFIG_VNCSERVER_NUPDATES-1]; + + next = &session->updpool[0]; + for (i = 1; i < CONFIG_VNCSERVER_NUPDATES-1; i++) + { + curr = next; + next = &session->updpool[i]; + curr->flink = next; + } - memset(session, 0, sizeof(struct vnc_session_s)); + next->flink = NULL; - /* Then initialize only non-zero values */ + /* Set the INITIALIZED state */ + sem_reset(&session->updsem, CONFIG_VNCSERVER_NUPDATES); session->fb = fb; session->state = VNCSERVER_INITIALIZED; } @@ -242,6 +266,7 @@ int vnc_server(int argc, FAR char *argv[]) } g_vnc_sessions[display] = session; + sem_init(&session->updsem, 0, CONFIG_VNCSERVER_NUPDATES); /* Loop... handling each each VNC client connection to this display. Only * a single client is allowed for each display. diff --git a/graphics/vnc/server/vnc_server.h b/graphics/vnc/server/vnc_server.h index b60ff2a17c..dc85dca47c 100644 --- a/graphics/vnc/server/vnc_server.h +++ b/graphics/vnc/server/vnc_server.h @@ -43,9 +43,12 @@ #include #include +#include #include +#include #include +#include #include #include #include @@ -126,10 +129,21 @@ # define CONFIG_VNCSERVER_UPDATER_STACKSIZE 2048 #endif -#ifndef CONFIG_VNCSERVER_IOBUFFER_SIZE -# define CONFIG_VNCSERVER_IOBUFFER_SIZE 80 +#ifndef CONFIG_VNCSERVER_INBUFFER_SIZE +# define CONFIG_VNCSERVER_INBUFFER_SIZE 80 #endif +#ifndef CONFIG_VNCSERVER_NUPDATES +# define CONFIG_VNCSERVER_NUPDATES 48 +#endif + +#ifndef CONFIG_VNCSERVER_UPDATE_BUFSIZE +# define CONFIG_VNCSERVER_UPDATE_BUFSIZE 4096 +#endif + +#define VNCSERVER_UPDATE_BUFSIZE \ + (CONFIG_VNCSERVER_UPDATE_BUFSIZE + SIZEOF_RFB_FRAMEBUFFERUPDATE_S(0)) + /* Local framebuffer characteristics in bytes */ #define RFB_BYTESPERPIXEL ((RFB_BITSPERPIXEL + 7) >> 8) @@ -168,6 +182,16 @@ enum vnc_server_e VNCSERVER_STOPPING /* The server has been asked to stop */ }; +/* This structure is used to queue FrameBufferUpdate event. It includes a + * pointer to support singly linked list. + */ + +struct vnc_fbupdate_s +{ + FAR struct vnc_fbupdate_s *flink; + struct nxgl_rect_s rect; /* The enqueued update rectangle */ +}; + struct vnc_session_s { /* NX graphics system */ @@ -185,15 +209,23 @@ struct vnc_session_s uint8_t colorfmt; /* Remote color format (See include/nuttx/fb.h) */ uint8_t bpp; /* Remote bits per pixel */ FAR uint8_t *fb; /* Allocated local frame buffer */ - + /* Updater information */ pthread_t updater; /* Updater thread ID */ + /* Update list information */ + + struct vnc_fbupdate_s updpool[CONFIG_VNCSERVER_NUPDATES]; + sq_queue_t updfree; + sq_queue_t updqueue; + sem_t exclsem; + sem_t updsem; + /* I/O buffers for misc network send/receive */ - uint8_t inbuf[CONFIG_VNCSERVER_IOBUFFER_SIZE]; - uint8_t outbuf[CONFIG_VNCSERVER_IOBUFFER_SIZE]; + uint8_t inbuf[CONFIG_VNCSERVER_INBUFFER_SIZE]; + uint8_t outbuf[VNCSERVER_UPDATE_BUFSIZE]; }; /**************************************************************************** diff --git a/graphics/vnc/server/vnc_updater.c b/graphics/vnc/server/vnc_updater.c index 4db204c9b4..1837b60cd3 100644 --- a/graphics/vnc/server/vnc_updater.c +++ b/graphics/vnc/server/vnc_updater.c @@ -39,8 +39,11 @@ #include +#include #include +#include #include +#include #include #include @@ -50,6 +53,81 @@ * Private Functions ****************************************************************************/ +/**************************************************************************** + * Name: vnc_alloc_update + * + * Description: + * Allocate one update structure by taking it from the freelist. + * + * Input Parameters: + * session - A reference to the VNC session structure. + * + * Returned Value: + * A non-NULL structure pointer should always be returned. This function + * will wait if no structure is available. + * + ****************************************************************************/ + +static FAR struct vnc_fbupdate_s * +vnc_alloc_update(FAR struct vnc_session_s *session) +{ + FAR struct vnc_fbupdate_s *update; + + /* Reserve one element from the free list. Lock the scheduler to assure + * that the sq_remfirst() and the successful return for sem_wait are + * atomic. Of course, the scheduler will be unlocked while we wait. + */ + + sched_lock(); + while (sem_wait(&session->updsem) < 0) + { + DEBUGASSERT(get_errno() == EINTR); + } + + /* It is reserved.. go get it */ + + update = (FAR struct vnc_fbupdate_s *)sq_remfirst(&session->updfree); + sched_unlock(); + + DEBUGASSERT(update != NULL); + return update; +} + +/**************************************************************************** + * Name: vnc_free_update + * + * Description: + * Free one update structure by returning it from the freelist. + * + * Input Parameters: + * Standard pthread arguments. + * + * Returned Value: + * NULL is always returned. + * + ****************************************************************************/ + +static void vnc_free_update(FAR struct vnc_session_s *session, + FAR struct vnc_fbupdate_s *update) +{ + /* Reserve one element from the free list. Lock the scheduler to assure + * that the sq_addlast() and the sem_post() are atomic. + */ + + sched_lock(); + + /* Put the entry into the free list */ + + sq_addlast((FAR sq_entry_t *)update, &session->updfree); + + /* Post the semaphore to indicate the availability of one more update */ + + sem_post(&session->updsem); + DEBUGASSERT(session->updsem.semcount <= CONFIG_VNCSERVER_NUPDATES); + + sched_unlock(); +} + /**************************************************************************** * Name: vnc_updater * @@ -189,12 +267,29 @@ int vnc_stop_updater(FAR struct vnc_session_s *session) int vnc_update_rectangle(FAR struct vnc_session_s *session, FAR const struct nxgl_rect_s *rect) { - /* Make sure that the rectangle has a area */ + FAR struct vnc_fbupdate_s *update; - if (!nxgl_nullrect(rect)) - { -#warning Missing logic - } + /* Make sure that the rectangle has a area */ + + if (!nxgl_nullrect(rect)) + { + /* Allocate an update structure... waiting if necessary */ + + update = vnc_alloc_update(session); + DEBUGASSERT(update != NULL); + + /* Copy the rectangle into the update structure */ + + memcpy(&update->rect, rect, sizeof(struct nxgl_rect_s)); + + /* Add the upate to the end of the update queue. Lock the scheduler + * to assure that the sq_addlast() is atomic. + */ + + sched_lock(); + sq_addlast((FAR sq_entry_t *)update, &session->updqueue); + sched_unlock(); + } return -ENOSYS; } -- GitLab From f35de73e6970eb50b27c5eb725990527cdb244ac Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 17 Apr 2016 16:49:47 -0600 Subject: [PATCH 031/307] RFB: Various fixes to header file --- include/nuttx/video/rfb.h | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/include/nuttx/video/rfb.h b/include/nuttx/video/rfb.h index 0a8f3a245b..f1bde88a66 100644 --- a/include/nuttx/video/rfb.h +++ b/include/nuttx/video/rfb.h @@ -251,7 +251,7 @@ struct rfb_clientinit_s /* 6.3.2 ServerInit * * "After receiving the ClientInit message, the server sends a ServerInit - * message. This tells the client the width and height of the server’s + * message. This tells the client the width and height of the server’s * framebuffer, its pixel format and the name associated with the desktop: */ @@ -547,7 +547,7 @@ struct rfb_rectangle_s uint8_t data[1]; /* Pixel data, actual size varies */ }; -#define SIZEOF_RFB_RECTANGES(n,d) \ +#define SIZEOF_RFB_RECTANGES(d) \ (sizeof(struct rfb_framebufferupdate_s) + (d) - 1) struct rfb_framebufferupdate_s @@ -558,8 +558,8 @@ struct rfb_framebufferupdate_s struct rfb_rectangle_s rect[1]; /* Actual number is nrect */ }; -#define SIZEOF_RFB_FRAMEBUFFERUPDATE_S(n,r) \ - (sizeof(struct rfb_framebufferupdate_s) + (r) - sizeof(rfb_rectangle_s)) +#define SIZEOF_RFB_FRAMEBUFFERUPDATE_S(r) \ + (sizeof(struct rfb_framebufferupdate_s) + (r) - sizeof(struct rfb_rectangle_s)) /* 6.5.2 SetColourMapEntries * @@ -853,7 +853,7 @@ struct rfb_subrect_s struct rfb_srle_s { uint8_t length[4]; /* U32 Length */ - uint8_t data[1]; /* U8 zlibData, actual size is length */ + uint8_t data[1]; /* U8 zlibData, actual size is length */ }; #define SIZEOF_RFB_SRLE_S(n,r) \ @@ -880,7 +880,7 @@ struct rfb_srle_s * bottom seven bits indicate the size of the palette used - zero means no * palette, one means that the tile is of a single colour, 2 to 127 * indicate a palette of that size. The possible values of subencoding are:" - */ + */ #define RFB_SUBENCODING_RAW 0 /* Raw pixel data */ #define RFB_SUBENCODING_SOLID 1 /* A solid tile of a single color */ @@ -1010,7 +1010,7 @@ struct rfb_palettendx_s * byte the most significant bit represents the leftmost pixel, with a * 1-bit meaning the corresponding pixel in the cursor is valid." * - * REVISIT: Also difficult to represent: A variable length pixel arry + * REVISIT: Also difficult to represent: A variable length pixel array * followed by a variable length bit mask. */ -- GitLab From d92b6763051f241fc83a13bbd9d668c1632d0d65 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 17 Apr 2016 18:09:04 -0600 Subject: [PATCH 032/307] VNC: Add rectangle queue logic --- graphics/vnc/server/vnc_server.c | 6 +- graphics/vnc/server/vnc_server.h | 4 +- graphics/vnc/server/vnc_updater.c | 160 +++++++++++++++++++++++++++--- 3 files changed, 154 insertions(+), 16 deletions(-) diff --git a/graphics/vnc/server/vnc_server.c b/graphics/vnc/server/vnc_server.c index 5dffc3606f..12043ec5a5 100644 --- a/graphics/vnc/server/vnc_server.c +++ b/graphics/vnc/server/vnc_server.c @@ -128,7 +128,8 @@ static void vnc_reset_session(FAR struct vnc_session_s *session, /* Set the INITIALIZED state */ - sem_reset(&session->updsem, CONFIG_VNCSERVER_NUPDATES); + sem_reset(&session->freesem, CONFIG_VNCSERVER_NUPDATES); + sem_reset(&session->queuesem, 0); session->fb = fb; session->state = VNCSERVER_INITIALIZED; } @@ -266,7 +267,8 @@ int vnc_server(int argc, FAR char *argv[]) } g_vnc_sessions[display] = session; - sem_init(&session->updsem, 0, CONFIG_VNCSERVER_NUPDATES); + sem_init(&session->freesem, 0, CONFIG_VNCSERVER_NUPDATES); + sem_init(&session->queuesem, 0, 0); /* Loop... handling each each VNC client connection to this display. Only * a single client is allowed for each display. diff --git a/graphics/vnc/server/vnc_server.h b/graphics/vnc/server/vnc_server.h index dc85dca47c..9d2b6991cd 100644 --- a/graphics/vnc/server/vnc_server.h +++ b/graphics/vnc/server/vnc_server.h @@ -219,8 +219,8 @@ struct vnc_session_s struct vnc_fbupdate_s updpool[CONFIG_VNCSERVER_NUPDATES]; sq_queue_t updfree; sq_queue_t updqueue; - sem_t exclsem; - sem_t updsem; + sem_t freesem; + sem_t queuesem; /* I/O buffers for misc network send/receive */ diff --git a/graphics/vnc/server/vnc_updater.c b/graphics/vnc/server/vnc_updater.c index 1837b60cd3..cd95128ebf 100644 --- a/graphics/vnc/server/vnc_updater.c +++ b/graphics/vnc/server/vnc_updater.c @@ -74,12 +74,12 @@ vnc_alloc_update(FAR struct vnc_session_s *session) FAR struct vnc_fbupdate_s *update; /* Reserve one element from the free list. Lock the scheduler to assure - * that the sq_remfirst() and the successful return for sem_wait are + * that the sq_remfirst() and the successful return from sem_wait are * atomic. Of course, the scheduler will be unlocked while we wait. */ sched_lock(); - while (sem_wait(&session->updsem) < 0) + while (sem_wait(&session->freesem) < 0) { DEBUGASSERT(get_errno() == EINTR); } @@ -100,10 +100,10 @@ vnc_alloc_update(FAR struct vnc_session_s *session) * Free one update structure by returning it from the freelist. * * Input Parameters: - * Standard pthread arguments. + * session - A reference to the VNC session structure. * * Returned Value: - * NULL is always returned. + * None * ****************************************************************************/ @@ -122,8 +122,87 @@ static void vnc_free_update(FAR struct vnc_session_s *session, /* Post the semaphore to indicate the availability of one more update */ - sem_post(&session->updsem); - DEBUGASSERT(session->updsem.semcount <= CONFIG_VNCSERVER_NUPDATES); + sem_post(&session->freesem); + DEBUGASSERT(session->freesem.semcount <= CONFIG_VNCSERVER_NUPDATES); + + sched_unlock(); +} + +/**************************************************************************** + * Name: vnc_remove_queue + * + * Description: + * Remove one entry from the list of queued rectangles, waiting if + * necessary if the queue is empty. + * + * Input Parameters: + * session - A reference to the VNC session structure. + * + * Returned Value: + * A non-NULL structure pointer should always be returned. This function + * will wait if no structure is available. + * + ****************************************************************************/ + +static FAR struct vnc_fbupdate_s * +vnc_remove_queue(FAR struct vnc_session_s *session) +{ + FAR struct vnc_fbupdate_s *rect; + + /* Reserve one element from the list of queued rectangle. Lock the + * scheduler to assure that the sq_remfirst() and the successful return + * from sem_wait are atomic. Of course, the scheduler will be unlocked + * while we wait. + */ + + sched_lock(); + while (sem_wait(&session->queuesem) < 0) + { + DEBUGASSERT(get_errno() == EINTR); + } + + /* It is reserved.. go get it */ + + rect = (FAR struct vnc_fbupdate_s *)sq_remfirst(&session->updqueue); + sched_unlock(); + + DEBUGASSERT(rect != NULL); + return rect; +} + +/**************************************************************************** + * Name: vnc_add_queue + * + * Description: + * Add one rectangle entry to the list of queued rectangles to be updated. + * + * Input Parameters: + * Standard pthread arguments. + * + * Returned Value: + * None + * + ****************************************************************************/ + +static void vnc_add_queue(FAR struct vnc_session_s *session, + FAR struct vnc_fbupdate_s *rect) +{ + /* Lock the scheduler to assure that the sq_addlast() and the sem_post() + * are atomic. + */ + + sched_lock(); + + /* Put the entry into the list of queued rectangles. */ + + sq_addlast((FAR sq_entry_t *)rect, &session->updqueue); + + /* Post the semaphore to indicate the availability of one more rectangle + * in the queue. This may wakeup the updater. + */ + + sem_post(&session->queuesem); + DEBUGASSERT(session->queuesem.semcount <= CONFIG_VNCSERVER_NUPDATES); sched_unlock(); } @@ -146,12 +225,73 @@ static void vnc_free_update(FAR struct vnc_session_s *session, static FAR void *vnc_updater(FAR void *arg) { FAR struct vnc_session_s *session = (FAR struct vnc_session_s *)arg; + FAR struct rfb_framebufferupdate_s *update; + FAR struct rfb_rectangle_s *destrect; + FAR struct vnc_fbupdate_s *srcrect; + FAR uint8_t *destdata; + nxgl_coord_t width; + nxgl_coord_t height; + nxgl_coord_t stride; + unsigned int bytesperpixel; + unsigned int maxwidth; + unsigned int maxheight; DEBUGASSERT(session != NULL); + update = (FAR struct rfb_framebufferupdate_s *)session->outbuf; + destrect = update->rect; + destdata = destrect->data; + + bytesperpixel = (session->bpp + 7) >> 3; + maxwidth = CONFIG_VNCSERVER_UPDATE_BUFSIZE / bytesperpixel; while (session->state == VNCSERVER_RUNNING) { + /* Get the next queued rectangle update. This call will block until an + * upate is available for the case where the update queue is empty. + */ + + srcrect = vnc_remove_queue(session); + DEBUGASSERT(srcrect != NULL); + + /* Format the rectangle header. We may have to send several update + * messages if the pre-allocated outbuf is smaller than the rectangle. + */ + + DEBUGASSERT(srcrect->rect.pt1.x <= srcrect->rect.pt2.x); + width = srcrect->rect.pt2.x - srcrect->rect.pt1.x + 1; + stride = width * bytesperpixel; + + DEBUGASSERT(srcrect->rect.pt1.y <= srcrect->rect.pt2.y); + height = srcrect->rect.pt2.y - srcrect->rect.pt1.y + 1; + + maxheight = CONFIG_VNCSERVER_UPDATE_BUFSIZE / stride; + + while (height > 0) + { + /* Determine the part of the rectangle that we can send on this + * loop. + */ #warning Missing logic + + /* Format the FramebufferUpdate message */ + + update->msgtype = RFB_FBUPDATE_MSG; + update->padding = 0; + rfb_putbe16(update->nrect, 1); + + rfb_putbe16(destrect->xpos, srcrect->rect.pt1.x); + rfb_putbe16(destrect->ypos, srcrect->rect.pt1.y); + rfb_putbe16(destrect->width, width); + rfb_putbe16(destrect->height, height); + rfb_putbe16(destrect->encoding, RFB_ENCODING_RAW); + + /* Transfer the frame buffer data into the rectangle, performing + * the necessary color conversions. + */ +#warning Missing logic + } + + vnc_free_update(session, srcrect); } return NULL; @@ -282,13 +422,9 @@ int vnc_update_rectangle(FAR struct vnc_session_s *session, memcpy(&update->rect, rect, sizeof(struct nxgl_rect_s)); - /* Add the upate to the end of the update queue. Lock the scheduler - * to assure that the sq_addlast() is atomic. - */ + /* Add the upate to the end of the update queue. */ - sched_lock(); - sq_addlast((FAR sq_entry_t *)update, &session->updqueue); - sched_unlock(); + vnc_add_queue(session, update); } return -ENOSYS; -- GitLab From 48d4a9672ade328a62e9c9b18ea1f4a888455118 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 17 Apr 2016 19:23:39 -0600 Subject: [PATCH 033/307] VNC: Add rectangle decomposition loop control --- graphics/vnc/server/vnc_server.h | 29 +++++++ graphics/vnc/server/vnc_updater.c | 126 +++++++++++++++++++++++------- 2 files changed, 126 insertions(+), 29 deletions(-) diff --git a/graphics/vnc/server/vnc_server.h b/graphics/vnc/server/vnc_server.h index 9d2b6991cd..f563423d44 100644 --- a/graphics/vnc/server/vnc_server.h +++ b/graphics/vnc/server/vnc_server.h @@ -383,6 +383,35 @@ void vnc_key_map(FAR struct vnc_session_s *session, uint16_t keysym, FAR struct vnc_session_s *vnc_find_session(int display); + +/**************************************************************************** + * Name: vnc_convert_rgbNN + * + * Description: + * Convert the native framebuffer color format (either RGB16 5:6:5 or RGB32 + * 8:8:8) to the remote framebuffer color format (either RGB16 5:6:5, + * RGB16 5:5:5, or RGB32 8:8:) + * + * Input Parameters: + * pixel - The src color in local framebuffer format. + * + * Returned Value: + * The pixel in the remote framebuffer color format. + * + ****************************************************************************/ + +#if defined(CONFIG_VNCSERVER_COLORFMT_RGB16) +uint16_t vnc_convert_rgb16_555(uint16_t rgb); +uint16_t vnc_convert_rgb16_565(uint16_t rgb); +uint32_t vnc_convert_rgb32_888(uint16_t rgb); +#elif defined(CONFIG_VNCSERVER_COLORFMT_RGB32) +uint16_t vnc_convert_rgb16_555(uint32_t rgb); +uint16_t vnc_convert_rgb16_565(uint32_t rgb); +uint32_t vnc_convert_rgb32_888(uint32_t rgb); +#else +# error Unspecified color format +#endif + #undef EXTERN #ifdef __cplusplus } diff --git a/graphics/vnc/server/vnc_updater.c b/graphics/vnc/server/vnc_updater.c index cd95128ebf..3a88b0e9ab 100644 --- a/graphics/vnc/server/vnc_updater.c +++ b/graphics/vnc/server/vnc_updater.c @@ -228,21 +228,27 @@ static FAR void *vnc_updater(FAR void *arg) FAR struct rfb_framebufferupdate_s *update; FAR struct rfb_rectangle_s *destrect; FAR struct vnc_fbupdate_s *srcrect; + FAR const uint8_t *srcdata; FAR uint8_t *destdata; + nxgl_coord_t srcwidth; + nxgl_coord_t srcheight; + nxgl_coord_t destwidth; + nxgl_coord_t destheight; + nxgl_coord_t deststride; + nxgl_coord_t updwidth; + nxgl_coord_t updheight; nxgl_coord_t width; - nxgl_coord_t height; - nxgl_coord_t stride; + nxgl_coord_t x; + nxgl_coord_t y; unsigned int bytesperpixel; unsigned int maxwidth; - unsigned int maxheight; DEBUGASSERT(session != NULL); - update = (FAR struct rfb_framebufferupdate_s *)session->outbuf; - destrect = update->rect; - destdata = destrect->data; + update = (FAR struct rfb_framebufferupdate_s *)session->outbuf; + destrect = update->rect; bytesperpixel = (session->bpp + 7) >> 3; - maxwidth = CONFIG_VNCSERVER_UPDATE_BUFSIZE / bytesperpixel; + maxwidth = CONFIG_VNCSERVER_UPDATE_BUFSIZE / bytesperpixel; while (session->state == VNCSERVER_RUNNING) { @@ -253,42 +259,104 @@ static FAR void *vnc_updater(FAR void *arg) srcrect = vnc_remove_queue(session); DEBUGASSERT(srcrect != NULL); - /* Format the rectangle header. We may have to send several update - * messages if the pre-allocated outbuf is smaller than the rectangle. + /* Get with width and height of the source and destination rectangles. + * The source rectangle many be larger than the destination rectangle. + * In that case, we will have to emit multiple rectangles. */ DEBUGASSERT(srcrect->rect.pt1.x <= srcrect->rect.pt2.x); - width = srcrect->rect.pt2.x - srcrect->rect.pt1.x + 1; - stride = width * bytesperpixel; + srcwidth = srcrect->rect.pt2.x - srcrect->rect.pt1.x + 1; DEBUGASSERT(srcrect->rect.pt1.y <= srcrect->rect.pt2.y); - height = srcrect->rect.pt2.y - srcrect->rect.pt1.y + 1; + srcheight = srcrect->rect.pt2.y - srcrect->rect.pt1.y + 1; - maxheight = CONFIG_VNCSERVER_UPDATE_BUFSIZE / stride; + srcdata = session->fb + + RFB_STRIDE * srcrect->rect.pt1.y + + RFB_BYTESPERPIXEL * srcrect->rect.pt1.x; - while (height > 0) + deststride = srcwidth * bytesperpixel; + if (deststride > maxwidth) { - /* Determine the part of the rectangle that we can send on this - * loop. - */ -#warning Missing logic + deststride = maxwidth; + } - /* Format the FramebufferUpdate message */ + destwidth = deststride / bytesperpixel; + destheight = CONFIG_VNCSERVER_UPDATE_BUFSIZE / deststride; - update->msgtype = RFB_FBUPDATE_MSG; - update->padding = 0; - rfb_putbe16(update->nrect, 1); + if (destheight > srcheight) + { + destheight = srcheight; + } - rfb_putbe16(destrect->xpos, srcrect->rect.pt1.x); - rfb_putbe16(destrect->ypos, srcrect->rect.pt1.y); - rfb_putbe16(destrect->width, width); - rfb_putbe16(destrect->height, height); - rfb_putbe16(destrect->encoding, RFB_ENCODING_RAW); + /* Format the rectangle header. We may have to send several update + * messages if the pre-allocated outbuf is smaller than the rectangle. + * + * Loop until all rows have been output. Start with the top row and + * transfer rectangles horizontally across the each group of + * destheight rows. + */ - /* Transfer the frame buffer data into the rectangle, performing - * the necessary color conversions. + for (y = srcrect->rect.pt1.y; + srcheight > 0; + srcheight -= updheight, y += updheight) + { + /* Destination rectangle start address */ + + destdata = destrect->data; + + /* updheight = Height to update on this pass through the loop. + * This will be destheight unless fewer than that number of rows + * remain. */ + + updheight = destheight; + if (updheight > srcheight) + { + updheight = srcheight; + } + + /* Loop until this row has been ouput. Start with the leftmost + * pixel and transfer rectangles horizontally with width of + * destwidth until all srcwidth columns have been transferred. + */ + + for (width = srcwidth, x = srcrect->rect.pt1.x; + width > 0; + width -= updwidth, x += updwidth) + { + /* updwidth = Width to update on this pass through the loop. + * This will be destwidth unless fewer than that number of + * columns remain. + */ + + updwidth = destwidth; + if (updwidth > width) + { + updwidth = width; + } + + /* Format the FramebufferUpdate message */ + + update->msgtype = RFB_FBUPDATE_MSG; + update->padding = 0; + rfb_putbe16(update->nrect, 1); + + rfb_putbe16(destrect->xpos, x); + rfb_putbe16(destrect->ypos, y); + rfb_putbe16(destrect->width, updwidth); + rfb_putbe16(destrect->height, updheight); + rfb_putbe16(destrect->encoding, RFB_ENCODING_RAW); + + /* Transfer the frame buffer data into the rectangle, + * performing the necessary color conversions. + */ #warning Missing logic + + /* Update the src and destination addresses */ + + srcdata += RFB_STRIDE; + destdata += updwidth * bytesperpixel; + } } vnc_free_update(session, srcrect); -- GitLab From 499fea73ecc414e580bb32387cffbcbfd8629b39 Mon Sep 17 00:00:00 2001 From: ziggurat29 Date: Sun, 17 Apr 2016 21:08:25 -0500 Subject: [PATCH 034/307] basic support for QSPI in STM32L4; verified via 'examples/media' --- arch/arm/src/stm32l4/Kconfig | 31 +- arch/arm/src/stm32l4/Make.defs | 4 + arch/arm/src/stm32l4/chip/stm32l4_qspi.h | 239 +++ .../arm/src/stm32l4/chip/stm32l4x6xx_pinmap.h | 24 +- arch/arm/src/stm32l4/stm32l4_qspi.c | 1702 +++++++++++++++++ arch/arm/src/stm32l4/stm32l4_qspi.h | 107 ++ arch/arm/src/stm32l4/stm32l4x6xx_rcc.c | 2 +- configs/stm32l476vg-disco/include/board.h | 15 + .../include/stm32l476vg-disco-clocking.h | 3 + configs/stm32l476vg-disco/nsh/Make.defs | 4 + configs/stm32l476vg-disco/nsh/defconfig | 121 +- configs/stm32l476vg-disco/src/stm32_appinit.c | 184 +- .../stm32l476vg-disco/src/stm32l476vg-disco.h | 80 +- 13 files changed, 2481 insertions(+), 35 deletions(-) create mode 100644 arch/arm/src/stm32l4/chip/stm32l4_qspi.h create mode 100644 arch/arm/src/stm32l4/stm32l4_qspi.c create mode 100644 arch/arm/src/stm32l4/stm32l4_qspi.h diff --git a/arch/arm/src/stm32l4/Kconfig b/arch/arm/src/stm32l4/Kconfig index 92e6209014..5bda5de53a 100644 --- a/arch/arm/src/stm32l4/Kconfig +++ b/arch/arm/src/stm32l4/Kconfig @@ -179,9 +179,38 @@ config STM32L4_FMC bool "FMC" default n -config STM32L4_QUADSPI +config STM32L4_QSPI bool "QuadSPI" default n + ---help--- + The STM32L4 QSPI block is intended to support one serial NOR flash device + +if STM32L4_QSPI + +config STM32L4_QSPI_FLASH_SIZE + int "Size of attached serial flash, bytes" + default 16777216 + range 1 2147483648 + ---help--- + The STM32L4 QSPI peripheral requires the size of the Flash be specified + +config STM32L4_QSPI_FIFO_THESHOLD + int "Number of bytes before asserting FIFO threshold flag" + default 4 + range 1 16 + ---help--- + The STM32L4 QSPI peripheral requires that the FIFO threshold be specified + I would leave it at the default value of 4 unless you know what you are doing. + +config STM32L4_QSPI_CSHT + int "Number of cycles Chip Select must be inactive between transactions" + default 1 + range 1 8 + ---help--- + The STM32L4 QSPI peripheral requires that it be specified the minimum number + of AHB cycles that Chip Select be held inactive between transactions. + +endif comment "APB1 Peripherals" diff --git a/arch/arm/src/stm32l4/Make.defs b/arch/arm/src/stm32l4/Make.defs index 9353e81c99..d9f3fb8341 100644 --- a/arch/arm/src/stm32l4/Make.defs +++ b/arch/arm/src/stm32l4/Make.defs @@ -157,3 +157,7 @@ endif ifeq ($(CONFIG_STM32L4_RNG),y) CHIP_CSRCS += stm32l4_rng.c endif + +ifeq ($(CONFIG_STM32L4_QSPI),y) +CHIP_CSRCS += stm32l4_qspi.c +endif diff --git a/arch/arm/src/stm32l4/chip/stm32l4_qspi.h b/arch/arm/src/stm32l4/chip/stm32l4_qspi.h new file mode 100644 index 0000000000..f6385309be --- /dev/null +++ b/arch/arm/src/stm32l4/chip/stm32l4_qspi.h @@ -0,0 +1,239 @@ +/**************************************************************************** + * arch/arm/src/stm32l4/chip/stm32l4_qspi.h + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: dev@ziggurat29.com + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +#ifndef __ARCH_ARM_SRC_STM32L4_CHIP_STM32L4_QSPI_H +#define __ARCH_ARM_SRC_STM32L4_CHIP_STM32L4_QSPI_H + +/**************************************************************************************** + * Included Files + ****************************************************************************************/ + +#include +#include + +#include "chip/stm32l4_memorymap.h" + +/**************************************************************************************** + * Pre-processor Definitions + ****************************************************************************************/ +/* General Characteristics **************************************************************/ + +#define STM32L4_QSPI_MINBITS 8 /* Minimum word width */ +#define STM32L4_QSPI_MAXBITS 32 /* Maximum word width */ + + +/* QSPI register offsets ****************************************************************/ + +#define STM32L4_QUADSPI_CR_OFFSET 0x0000 /* Control Register */ +#define STM32L4_QUADSPI_DCR_OFFSET 0x0004 /* Device Configuration Register */ +#define STM32L4_QUADSPI_SR_OFFSET 0x0008 /* Status Register */ +#define STM32L4_QUADSPI_FCR_OFFSET 0x000c /* Flag Clear Register */ +#define STM32L4_QUADSPI_DLR_OFFSET 0x0010 /* Data Length Register */ +#define STM32L4_QUADSPI_CCR_OFFSET 0x0014 /* Communication Configuration Register */ +#define STM32L4_QUADSPI_AR_OFFSET 0x0018 /* Address Register */ +#define STM32L4_QUADSPI_ABR_OFFSET 0x001c /* Alternate Bytes Register */ +#define STM32L4_QUADSPI_DR_OFFSET 0x0020 /* Data Register */ +#define STM32L4_QUADSPI_PSMKR_OFFSET 0x0024 /* Polling Status mask Register */ +#define STM32L4_QUADSPI_PSMAR_OFFSET 0x0028 /* Polling Status match Register */ +#define STM32L4_QUADSPI_PIR_OFFSET 0x002c /* Polling Interval Register */ +#define STM32L4_QUADSPI_LPTR_OFFSET 0x0030 /* Low-Power Timeout Register */ + +/* QSPI register addresses **************************************************************/ + +#define STM32L4_QUADSPI_CR (STM32L4_QSPI_BASE+STM32L4_QUADSPI_CR_OFFSET) /* Control Register */ +#define STM32L4_QUADSPI_DCR (STM32L4_QSPI_BASE+STM32L4_QUADSPI_DCR_OFFSET) /* Device Configuration Register */ +#define STM32L4_QUADSPI_SR (STM32L4_QSPI_BASE+STM32L4_QUADSPI_SR_OFFSET) /* Status Register */ +#define STM32L4_QUADSPI_FCR (STM32L4_QSPI_BASE+STM32L4_QUADSPI_FCR_OFFSET) /* Flag Clear Register */ +#define STM32L4_QUADSPI_DLR (STM32L4_QSPI_BASE+STM32L4_QUADSPI_DLR_OFFSET) /* Data Length Register */ +#define STM32L4_QUADSPI_CCR (STM32L4_QSPI_BASE+STM32L4_QUADSPI_CCR_OFFSET) /* Communication Configuration Register */ +#define STM32L4_QUADSPI_AR (STM32L4_QSPI_BASE+STM32L4_QUADSPI_AR_OFFSET) /* Address Register */ +#define STM32L4_QUADSPI_ABR (STM32L4_QSPI_BASE+STM32L4_QUADSPI_ABR_OFFSET) /* Alternate Bytes Register */ +#define STM32L4_QUADSPI_DR (STM32L4_QSPI_BASE+STM32L4_QUADSPI_DR_OFFSET) /* Data Register */ +#define STM32L4_QUADSPI_PSMKR (STM32L4_QSPI_BASE+STM32L4_QUADSPI_PSMKR_OFFSET) /* Polling Status mask Register */ +#define STM32L4_QUADSPI_PSMAR (STM32L4_QSPI_BASE+STM32L4_QUADSPI_PSMAR_OFFSET) /* Polling Status match Register */ +#define STM32L4_QUADSPI_PIR (STM32L4_QSPI_BASE+STM32L4_QUADSPI_PIR_OFFSET) /* Polling Interval Register */ +#define STM32L4_QUADSPI_LPTR (STM32L4_QSPI_BASE+STM32L4_QUADSPI_LPTR_OFFSET) /* Low-Power Timeout Register */ + +/* QSPI register bit definitions ********************************************************/ + +/* Control Register */ + +#define QSPI_CR_EN (1 << 0) /* Bit 0: QSPI Enable */ +#define QSPI_CR_ABORT (1 << 1) /* Bit 1: Abort request */ +#define QSPI_CR_DMAEN (1 << 2) /* Bit 2: DMA enable */ +#define QSPI_CR_TCEN (1 << 3) /* Bit 3: Timeout counter enable */ +#define QSPI_CR_SSHIFT (1 << 4) /* Bit 4: Sample shift */ +#define QSPI_CR_FTHRES_SHIFT (8) /* Bits 8-15: FIFO threshold level */ +#define QSPI_CR_FTHRES_MASK (0xff << QSPI_CR_FTHRES_SHIFT) +#define QSPI_CR_TEIE (1 << 16) /* Bit 16: Transfer error interrupt enable */ +#define QSPI_CR_TCIE (1 << 17) /* Bit 17: Transfer complete interrupt enable */ +#define QSPI_CR_FTIE (1 << 18) /* Bit 18: FIFO threshold interrupt enable */ +#define QSPI_CR_SMIE (1 << 19) /* Bit 19: Status match interrupt enable */ +#define QSPI_CR_TOIE (1 << 20) /* Bit 20: TimeOut interrupt enable */ +#define QSPI_CR_APMS (1 << 22) /* Bit 22: Automatic poll mode stop */ +#define QSPI_CR_PMM (1 << 23) /* Bit 23: Polling match mode */ +#define QSPI_CR_PRESCALER_SHIFT (24) /* Bits 24-31: Clock prescaler */ +#define QSPI_CR_PRESCALER_MASK (0xff << QSPI_CR_PRESCALER_SHIFT) + +/* Device Configuration Register */ + +#define QSPI_DCR_CKMODE (1 << 0) /* Bit 0: Mode 0 / mode 3 */ +#define QSPI_DCR_CSHT_SHIFT (8) /* Bits 8-10: Chip select high time */ +#define QSPI_DCR_CSHT_MASK (0x7 << QSPI_DCR_CSHT_SHIFT) +#define QSPI_DCR_FSIZE_SHIFT (16) /* Bits 16-20: Flash memory size */ +#define QSPI_DCR_FSIZE_MASK (0x1f << QSPI_DCR_FSIZE_SHIFT) + +/* Status Register */ + +#define QSPI_SR_TEF (1 << 0) /* Bit 0: Transfer error flag */ +#define QSPI_SR_TCF (1 << 1) /* Bit 1: Transfer complete flag */ +#define QSPI_SR_FTF (1 << 2) /* Bit 2: FIFO threshold flag */ +#define QSPI_SR_SMF (1 << 3) /* Bit 3: Status match flag */ +#define QSPI_SR_TOF (1 << 4) /* Bit 4: Timeout flag */ +#define QSPI_SR_BUSY (1 << 5) /* Bit 5: Busy */ +#define QSPI_SR_FLEVEL_SHIFT (8) /* Bits 8-12: FIFO threshold level */ +#define QSPI_SR_FLEVEL_MASK (0x1f << QSPI_SR_FLEVEL_SHIFT) + +/* Flag Clear Register */ + +#define QSPI_FCR_CTEF (1 << 0) /* Bit 0: Clear Transfer error flag */ +#define QSPI_FCR_CTCF (1 << 1) /* Bit 1: Clear Transfer complete flag */ +#define QSPI_FCR_CSMF (1 << 3) /* Bit 3: Clear Status match flag */ +#define QSPI_FCR_CTOF (1 << 4) /* Bit 4: Clear Timeout flag */ + +/* Data Length Register */ + +/* Communication Configuration Register */ + +#define CCR_IMODE_NONE 0 /* No instruction */ +#define CCR_IMODE_SINGLE 1 /* Instruction on a single line */ +#define CCR_IMODE_DUAL 2 /* Instruction on two lines */ +#define CCR_IMODE_QUAD 3 /* Instruction on four lines */ + +#define CCR_ADMODE_NONE 0 /* No address */ +#define CCR_ADMODE_SINGLE 1 /* Address on a single line */ +#define CCR_ADMODE_DUAL 2 /* Address on two lines */ +#define CCR_ADMODE_QUAD 3 /* Address on four lines */ + +#define CCR_ADSIZE_8 0 /* 8-bit address */ +#define CCR_ADSIZE_16 1 /* 16-bit address */ +#define CCR_ADSIZE_24 2 /* 24-bit address */ +#define CCR_ADSIZE_32 3 /* 32-bit address */ + +#define CCR_ABMODE_NONE 0 /* No alternate bytes */ +#define CCR_ABMODE_SINGLE 1 /* Alternate bytes on a single line */ +#define CCR_ABMODE_DUAL 2 /* Alternate bytes on two lines */ +#define CCR_ABMODE_QUAD 3 /* Alternate bytes on four lines */ + +#define CCR_ABSIZE_8 0 /* 8-bit alternate byte */ +#define CCR_ABSIZE_16 1 /* 16-bit alternate bytes */ +#define CCR_ABSIZE_24 2 /* 24-bit alternate bytes */ +#define CCR_ABSIZE_32 3 /* 32-bit alternate bytes */ + +#define CCR_DMODE_NONE 0 /* No data */ +#define CCR_DMODE_SINGLE 1 /* Data on a single line */ +#define CCR_DMODE_DUAL 2 /* Data on two lines */ +#define CCR_DMODE_QUAD 3 /* Data on four lines */ + +#define CCR_FMODE_INDWR 0 /* Indirect write mode */ +#define CCR_FMODE_INDRD 1 /* Indirect read mode */ +#define CCR_FMODE_AUTOPOLL 2 /* Automatic polling mode */ +#define CCR_FMODE_MEMMAP 3 /* Memory-mapped mode */ + +#define QSPI_CCR_INSTRUCTION_SHIFT (0) /* Bits 0-7: Instruction */ +#define QSPI_CCR_INSTRUCTION_MASK (0xff << QSPI_CCR_INSTRUCTION_SHIFT) +# define QSPI_CCR_INST(n) ((uint32_t)(n) << QSPI_CCR_INSTRUCTION_SHIFT) +#define QSPI_CCR_IMODE_SHIFT (8) /* Bits 8-9: Instruction mode */ +#define QSPI_CCR_IMODE_MASK (0x3 << QSPI_CCR_IMODE_SHIFT) +# define QSPI_CCR_IMODE(n) ((uint32_t)(n) << QSPI_CCR_IMODE_SHIFT) +#define QSPI_CCR_ADMODE_SHIFT (10) /* Bits 10-11: Address mode */ +#define QSPI_CCR_ADMODE_MASK (0x3 << QSPI_CCR_ADMODE_SHIFT) +# define QSPI_CCR_ADMODE(n) ((uint32_t)(n) << QSPI_CCR_ADMODE_SHIFT) +#define QSPI_CCR_ADSIZE_SHIFT (12) /* Bits 12-13: Address size */ +#define QSPI_CCR_ADSIZE_MASK (0x3 << QSPI_CCR_ADSIZE_SHIFT) +# define QSPI_CCR_ADSIZE(n) ((uint32_t)(n) << QSPI_CCR_ADSIZE_SHIFT) +#define QSPI_CCR_ABMODE_SHIFT (14) /* Bits 14-15: Alternate bytes mode */ +#define QSPI_CCR_ABMODE_MASK (0x3 << QSPI_CCR_ABMODE_SHIFT) +# define QSPI_CCR_ABMODE(n) ((uint32_t)(n) << QSPI_CCR_ABMODE_SHIFT) +#define QSPI_CCR_ABSIZE_SHIFT (16) /* Bits 16-17: Alternate bytes size */ +#define QSPI_CCR_ABSIZE_MASK (0x3 << QSPI_CCR_ABSIZE_SHIFT) +# define QSPI_CCR_ABSIZE(n) ((uint32_t)(n) << QSPI_CCR_ABSIZE_SHIFT) +#define QSPI_CCR_DCYC_SHIFT (18) /* Bits 18-23: Number of dummy cycles */ +#define QSPI_CCR_DCYC_MASK (0x1f << QSPI_CCR_DCYC_SHIFT) +# define QSPI_CCR_DCYC(n) ((uint32_t)(n) << QSPI_CCR_DCYC_SHIFT) +#define QSPI_CCR_DMODE_SHIFT (24) /* Bits 24-25: Data mode */ +#define QSPI_CCR_DMODE_MASK (0x3 << QSPI_CCR_DMODE_SHIFT) +# define QSPI_CCR_DMODE(n) ((uint32_t)(n) << QSPI_CCR_DMODE_SHIFT) +#define QSPI_CCR_FMODE_SHIFT (26) /* Bits 26-27: Functional mode */ +#define QSPI_CCR_FMODE_MASK (0x3 << QSPI_CCR_FMODE_SHIFT) +# define QSPI_CCR_FMODE(n) ((uint32_t)(n) << QSPI_CCR_FMODE_SHIFT) +#define QSPI_CCR_SIOO (1 << 28) /* Bit 28: Send instruction only once mode */ +#define QSPI_CCR_DDRM (1 << 31) /* Bit 31: Double data rate mode */ + +/* Address Register */ + +/* Alternate Bytes Register */ + +/* Data Register */ + +/* Polling Status mask Register */ + +/* Polling Status match Register */ + +/* Polling Interval Register */ + +#define QSPI_PIR_INTERVAL_SHIFT (0) /* Bits 0-15: Polling interval */ +#define QSPI_PIR_INTERVAL_MASK (0xFFff << QSPI_PIR_INTERVAL_SHIFT) + +/* Low-Power Timeout Register */ + +#define QSPI_LPTR_TIMEOUT_SHIFT (0) /* Bits 0-15: Timeout period */ +#define QSPI_LPTR_TIMEOUT_MASK (0xFFff << QSPI_PIR_INTERVAL_SHIFT) + +/**************************************************************************************** + * Public Types + ****************************************************************************************/ + +/**************************************************************************************** + * Public Data + ****************************************************************************************/ + +/**************************************************************************************** + * Public Functions + ****************************************************************************************/ + +#endif /* __ARCH_ARM_SRC_STM32L4_CHIP_STM32L4_QSPI_H */ + + diff --git a/arch/arm/src/stm32l4/chip/stm32l4x6xx_pinmap.h b/arch/arm/src/stm32l4/chip/stm32l4x6xx_pinmap.h index d711f730bf..8a564fc377 100644 --- a/arch/arm/src/stm32l4/chip/stm32l4x6xx_pinmap.h +++ b/arch/arm/src/stm32l4/chip/stm32l4x6xx_pinmap.h @@ -359,18 +359,18 @@ /* QUADSPI */ -#define GPIO_QUADSPI_NCS_1 (GPIO_ALT|GPIO_AF10|GPIO_PORTB|GPIO_PIN11) -#define GPIO_QUADSPI_NCS_2 (GPIO_ALT|GPIO_AF10|GPIO_PORTE|GPIO_PIN11) -#define GPIO_QUADSPI_CLK_1 (GPIO_ALT|GPIO_AF10|GPIO_PORTB|GPIO_PIN10) -#define GPIO_QUADSPI_CLK_2 (GPIO_ALT|GPIO_AF10|GPIO_PORTE|GPIO_PIN10) -#define GPIO_QUADSPI_BK1_IO0_1 (GPIO_ALT|GPIO_AF10|GPIO_PORTB|GPIO_PIN1) -#define GPIO_QUADSPI_BK1_IO0_2 (GPIO_ALT|GPIO_AF10|GPIO_PORTE|GPIO_PIN12) -#define GPIO_QUADSPI_BK1_IO1_1 (GPIO_ALT|GPIO_AF10|GPIO_PORTB|GPIO_PIN0) -#define GPIO_QUADSPI_BK1_IO1_2 (GPIO_ALT|GPIO_AF10|GPIO_PORTE|GPIO_PIN13) -#define GPIO_QUADSPI_BK1_IO2_1 (GPIO_ALT|GPIO_AF10|GPIO_PORTA|GPIO_PIN7) -#define GPIO_QUADSPI_BK1_IO2_2 (GPIO_ALT|GPIO_AF10|GPIO_PORTE|GPIO_PIN14) -#define GPIO_QUADSPI_BK1_IO3_1 (GPIO_ALT|GPIO_AF10|GPIO_PORTA|GPIO_PIN6) -#define GPIO_QUADSPI_BK1_IO3_2 (GPIO_ALT|GPIO_AF10|GPIO_PORTE|GPIO_PIN15) +#define GPIO_QSPI_NCS_1 (GPIO_ALT|GPIO_AF10|GPIO_PORTB|GPIO_PIN11) +#define GPIO_QSPI_NCS_2 (GPIO_ALT|GPIO_AF10|GPIO_PORTE|GPIO_PIN11) +#define GPIO_QSPI_CLK_1 (GPIO_ALT|GPIO_AF10|GPIO_PORTB|GPIO_PIN10) +#define GPIO_QSPI_CLK_2 (GPIO_ALT|GPIO_AF10|GPIO_PORTE|GPIO_PIN10) +#define GPIO_QSPI_BK1_IO0_1 (GPIO_ALT|GPIO_AF10|GPIO_PORTB|GPIO_PIN1) +#define GPIO_QSPI_BK1_IO0_2 (GPIO_ALT|GPIO_AF10|GPIO_PORTE|GPIO_PIN12) +#define GPIO_QSPI_BK1_IO1_1 (GPIO_ALT|GPIO_AF10|GPIO_PORTB|GPIO_PIN0) +#define GPIO_QSPI_BK1_IO1_2 (GPIO_ALT|GPIO_AF10|GPIO_PORTE|GPIO_PIN13) +#define GPIO_QSPI_BK1_IO2_1 (GPIO_ALT|GPIO_AF10|GPIO_PORTA|GPIO_PIN7) +#define GPIO_QSPI_BK1_IO2_2 (GPIO_ALT|GPIO_AF10|GPIO_PORTE|GPIO_PIN14) +#define GPIO_QSPI_BK1_IO3_1 (GPIO_ALT|GPIO_AF10|GPIO_PORTA|GPIO_PIN6) +#define GPIO_QSPI_BK1_IO3_2 (GPIO_ALT|GPIO_AF10|GPIO_PORTE|GPIO_PIN15) /* RTC */ diff --git a/arch/arm/src/stm32l4/stm32l4_qspi.c b/arch/arm/src/stm32l4/stm32l4_qspi.c new file mode 100644 index 0000000000..f23ea40328 --- /dev/null +++ b/arch/arm/src/stm32l4/stm32l4_qspi.c @@ -0,0 +1,1702 @@ +/**************************************************************************** + * arch/arm/src/stm32l4/stm32l4_qspi.c + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: dev@ziggurat29.com + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +#include + +#include "up_internal.h" +#include "up_arch.h" +#include "cache.h" + +#include "stm32l4_gpio.h" +#include "stm32l4_dma.h" +#include "stm32l4_qspi.h" +#include "chip/stm32l4_qspi.h" +#include "chip/stm32l4_pinmap.h" + +#ifdef CONFIG_STM32L4_QSPI + +/**************************************************************************** + * Pre-processor Definitions + ****************************************************************************/ + + /* QSPI memory synchronization */ + +#define MEMORY_SYNC() do { ARM_DSB(); ARM_ISB(); } while (0) + +/* Ensure that the DMA buffers are word-aligned. + */ + +#define ALIGN_SHIFT 2 +#define ALIGN_MASK 3 +#define ALIGN_UP(n) (((n)+ALIGN_MASK) & ~ALIGN_MASK) +#define IS_ALIGNED(n) (((uint32_t)(n) & ALIGN_MASK) == 0) + +/* Debug *******************************************************************/ +/* Check if QSPI debug is enabled (non-standard.. no support in + * include/debug.h + */ + +#ifndef CONFIG_DEBUG +# undef CONFIG_DEBUG_VERBOSE +# undef CONFIG_DEBUG_SPI +# undef CONFIG_STM32L4_QSPI_DMADEBUG +# undef CONFIG_STM32L4_QSPI_REGDEBUG +#endif + +#ifndef CONFIG_DEBUG_DMA +# undef CONFIG_STM32L4_QSPI_DMADEBUG +#endif + +#ifdef CONFIG_DEBUG_SPI +# define qspidbg lldbg +# ifdef CONFIG_DEBUG_VERBOSE +# define qspivdbg lldbg +# else +# define qspivdbg(x...) +# endif +#else +# define qspidbg(x...) +# define qspivdbg(x...) +#endif + +#define DMA_INITIAL 0 +#define DMA_AFTER_SETUP 1 +#define DMA_AFTER_START 2 +#define DMA_CALLBACK 3 +#define DMA_TIMEOUT 3 +#define DMA_END_TRANSFER 4 +#define DMA_NSAMPLES 5 + +#ifdef CONFIG_STM32L4_QSPI_DMA +# error QSPI DMA support not yet implemented +#endif + +#ifdef QSPI_USE_INTERRUPTS +# error QSPI Interrupt support not yet implemented +#endif + +/* QSPI interrupts and dma are not yet implemented */ + +#undef QSPI_USE_INTERRUPTS +#undef CONFIG_STM32L4_QSPI_DMA + +/* sanity check that board.h defines requisite QSPI pinmap options for */ +#if (!defined(GPIO_QSPI_CS) || !defined(GPIO_QSPI_IO0) || !defined(GPIO_QSPI_IO1) || \ + !defined(GPIO_QSPI_IO2) || !defined(GPIO_QSPI_IO3) || !defined(GPIO_QSPI_SCK)) +# error you must define QSPI pinmapping options for GPIO_QSPI_CS GPIO_QSPI_IO0 \ + GPIO_QSPI_IO1 GPIO_QSPI_IO2 GPIO_QSPI_IO3 GPIO_QSPI_SCK in your board.h +#endif + +#ifndef BOARD_AHB_FREQUENCY +# error your board.h needs to define the value of BOARD_AHB_FREQUENCY +#endif + +#if !defined(CONFIG_STM32L4_QSPI_FLASH_SIZE) || 0 == CONFIG_STM32L4_QSPI_FLASH_SIZE +# error you must specify a positive flash size via CONFIG_STM32L4_QSPI_FLASH_SIZE +#endif + +/* Clocking *****************************************************************/ +/* The QSPI bit rate clock is generated by dividing the peripheral clock by + * a value between 1 and 255 + */ + +#define STL32L4_QSPI_CLOCK BOARD_AHB_FREQUENCY /* Frequency of the QSPI clock */ + +/**************************************************************************** + * Private Types + ****************************************************************************/ + +/* The state of the QSPI controller. + * + * NOTE: the STM32L4 supports only a single QSPI peripheral. Logic here is + * designed to support multiple QSPI peripherals. + */ + +struct stm32l4_qspidev_s +{ + struct qspi_dev_s qspi; /* Externally visible part of the QSPI interface */ + uint32_t base; /* QSPI controller register base address */ + uint32_t frequency; /* Requested clock frequency */ + uint32_t actual; /* Actual clock frequency */ + uint8_t mode; /* Mode 0,3 */ + uint8_t nbits; /* Width of word in bits (8 to 32) */ + uint8_t intf; /* QSPI controller number (0) */ + bool initialized; /* TRUE: Controller has been initialized */ + sem_t exclsem; /* Assures mutually exclusive access to QSPI */ + +#ifdef QSPI_USE_INTERRUPTS + xcpt_t handler; /* Interrupt handler */ + uint8_t irq; /* Interrupt number */ +#endif + +#ifdef CONFIG_STM32L4_QSPI_DMA + /* XXX III needs implementation */ +#endif + + /* Debug stuff */ + +#ifdef CONFIG_STM32L4_QSPI_DMADEBUG + struct stm32l4_dmaregs_s dmaregs[DMA_NSAMPLES]; +#endif + +#ifdef CONFIG_STM32L4_QSPI_REGDEBUG + bool wrlast; /* Last was a write */ + uint32_t addresslast; /* Last address */ + uint32_t valuelast; /* Last value */ + int ntimes; /* Number of times */ +#endif +}; + +/* The QSPI transaction specification + * + * This is mostly the values of the CCR and DLR, AR, ABR, broken out into a C struct + * since these fields need to be considered at various phases of the + * transaction processing activity. + */ + +struct qspi_xctnspec_s +{ + uint8_t instrmode; /* 'instruction mode'; 0=none, 1=single, 2=dual, 3=quad */ + uint8_t instr; /* the (8-bit) Instruction (if any) */ + + uint8_t addrmode; /* 'address mode'; 0=none, 1=single, 2=dual, 3=quad */ + uint8_t addrsize; /* address size ( n - 1 ); 0, 1, 2, 3 */ + uint32_t addr; /* the address (if any) (1 to 4 bytes as per addrsize) */ + + uint8_t altbytesmode; /* 'alt bytes mode'; 0=none, 1=single, 2=dual, 3=quad */ + uint8_t altbytessize; /* 'alt bytes' size ( n - 1 ); 0, 1, 2, 3 */ + uint32_t altbytes; /* the 'alt bytes' (if any) */ + + uint8_t dummycycles; /* number of Dummy Cycles; 0 - 32 */ + + uint8_t datamode; /* 'data mode'; 0=none, 1=single, 2=dual, 3=quad */ + uint32_t datasize; /* number of data bytes (0xffffffff == undefined) */ + FAR void *buffer; /* Data buffer */ + + uint32_t isddr; /* true if 'double data rate' */ + uint32_t issioo; /* true if 'send instruction only once' mode */ +}; + + +/**************************************************************************** + * Private Function Prototypes + ****************************************************************************/ + +/* Helpers */ + +#ifdef CONFIG_STM32L4_QSPI_REGDEBUG +static bool qspi_checkreg(struct stm32l4_qspidev_s *priv, bool wr, + uint32_t value, uint32_t address); +#else +# define qspi_checkreg(priv,wr,value,address) (false) +#endif + +static inline uint32_t qspi_getreg(struct stm32l4_qspidev_s *priv, + unsigned int offset); +static inline void qspi_putreg(struct stm32l4_qspidev_s *priv, uint32_t value, + unsigned int offset); + +#if defined(CONFIG_DEBUG_SPI) && defined(CONFIG_DEBUG_VERBOSE) +static void qspi_dumpregs(struct stm32l4_qspidev_s *priv, const char *msg); +#else +# define qspi_dumpregs(priv,msg) +#endif + +#if defined(CONFIG_DEBUG_SPI) && defined(CONFIG_DEBUG_GPIO) +static void qspi_dumpgpioconfig(const char *msg); +#else +# define qspi_dumpgpioconfig(msg) +#endif + +/* Interrupts */ + +#ifdef QSPI_USE_INTERRUPTS +static int qspi0_interrupt(int irq, void *context); +#endif + +/* QSPI methods */ + +static int qspi_lock(struct qspi_dev_s *dev, bool lock); +static uint32_t qspi_setfrequency(struct qspi_dev_s *dev, uint32_t frequency); +static void qspi_setmode(struct qspi_dev_s *dev, enum qspi_mode_e mode); +static void qspi_setbits(struct qspi_dev_s *dev, int nbits); +static int qspi_command(struct qspi_dev_s *dev, + struct qspi_cmdinfo_s *cmdinfo); +static int qspi_memory(struct qspi_dev_s *dev, + struct qspi_meminfo_s *meminfo); +static FAR void *qspi_alloc(FAR struct qspi_dev_s *dev, size_t buflen); +static void qspi_free(FAR struct qspi_dev_s *dev, FAR void *buffer); + +/* Initialization */ + +static int qspi_hw_initialize(struct stm32l4_qspidev_s *priv); + +/**************************************************************************** + * Private Data + ****************************************************************************/ + +/* QSPI0 driver operations */ + +static const struct qspi_ops_s g_qspi0ops = +{ + .lock = qspi_lock, + .setfrequency = qspi_setfrequency, + .setmode = qspi_setmode, + .setbits = qspi_setbits, + .command = qspi_command, + .memory = qspi_memory, + .alloc = qspi_alloc, + .free = qspi_free, +}; + +/* This is the overall state of the QSPI0 controller */ + +static struct stm32l4_qspidev_s g_qspi0dev = +{ + .qspi = + { + .ops = &g_qspi0ops, + }, + .base = STM32L4_QSPI_BASE, +#ifdef QSPI_USE_INTERRUPTS + .handler = qspi0_interrupt, + .irq = STM32L4_IRQ_QSPI, +#endif + .intf = 0, +#ifdef CONFIG_STM32L4_QSPI_DMA + /* XXX III needs implementation */ +#endif +}; + +/**************************************************************************** + * Public Data + ****************************************************************************/ + +/**************************************************************************** + * Private Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: qspi_checkreg + * + * Description: + * Check if the current register access is a duplicate of the preceding. + * + * Input Parameters: + * value - The value to be written + * address - The address of the register to write to + * + * Returned Value: + * true: This is the first register access of this type. + * false: This is the same as the preceding register access. + * + ****************************************************************************/ + +#ifdef CONFIG_STM32L4_QSPI_REGDEBUG +static bool qspi_checkreg(struct stm32l4_qspidev_s *priv, bool wr, uint32_t value, + uint32_t address) +{ + if (wr == priv->wrlast && /* Same kind of access? */ + value == priv->valuelast && /* Same value? */ + address == priv->addresslast) /* Same address? */ + { + /* Yes, then just keep a count of the number of times we did this. */ + + priv->ntimes++; + return false; + } + else + { + /* Did we do the previous operation more than once? */ + + if (priv->ntimes > 0) + { + /* Yes... show how many times we did it */ + + lldbg("...[Repeats %d times]...\n", priv->ntimes); + } + + /* Save information about the new access */ + + priv->wrlast = wr; + priv->valuelast = value; + priv->addresslast = address; + priv->ntimes = 0; + } + + /* Return true if this is the first time that we have done this operation */ + + return true; +} +#endif + +/**************************************************************************** + * Name: qspi_getreg + * + * Description: + * Read an QSPI register + * + ****************************************************************************/ + +static inline uint32_t qspi_getreg(struct stm32l4_qspidev_s *priv, + unsigned int offset) +{ + uint32_t address = priv->base + offset; + uint32_t value = getreg32(address); + +#ifdef CONFIG_STM32L4_QSPI_REGDEBUG + if (qspi_checkreg(priv, false, value, address)) + { + lldbg("%08x->%08x\n", address, value); + } +#endif + + return value; +} + +/**************************************************************************** + * Name: qspi_putreg + * + * Description: + * Write a value to an QSPI register + * + ****************************************************************************/ + +static inline void qspi_putreg(struct stm32l4_qspidev_s *priv, uint32_t value, + unsigned int offset) +{ + uint32_t address = priv->base + offset; + +#ifdef CONFIG_STM32L4_QSPI_REGDEBUG + if (qspi_checkreg(priv, true, value, address)) + { + lldbg("%08x<-%08x\n", address, value); + } +#endif + + putreg32(value, address); +} + +/**************************************************************************** + * Name: qspi_dumpregs + * + * Description: + * Dump the contents of all QSPI registers + * + * Input Parameters: + * priv - The QSPI controller to dump + * msg - Message to print before the register data + * + * Returned Value: + * None + * + ****************************************************************************/ + +#if defined(CONFIG_DEBUG_SPI) && defined(CONFIG_DEBUG_VERBOSE) +static void qspi_dumpregs(struct stm32l4_qspidev_s *priv, const char *msg) +{ + uint32_t regval; + qspivdbg("%s:\n", msg); + +#if 0 + /* this extra verbose output may be helpful in some cases; you'll need + to make sure your syslog is large enough to accomodate the extra output. + */ + + regval = getreg32(priv->base + STM32L4_QUADSPI_CR_OFFSET); /* Control Register */ + qspivdbg("CR:%08x\n",regval); + qspivdbg(" EN:%1d ABORT:%1d DMAEN:%1d TCEN:%1d SSHIFT:%1d\n" + " FTHRES: %d\n" + " TEIE:%1d TCIE:%1d FTIE:%1d SMIE:%1d TOIE:%1d APMS:%1d PMM:%1d\n" + " PRESCALER: %d\n", + (regval&QSPI_CR_EN)?1:0, + (regval&QSPI_CR_ABORT)?1:0, + (regval&QSPI_CR_DMAEN)?1:0, + (regval&QSPI_CR_TCEN)?1:0, + (regval&QSPI_CR_SSHIFT)?1:0, + (regval&QSPI_CR_FTHRES_MASK)>>QSPI_CR_FTHRES_SHIFT, + (regval&QSPI_CR_TEIE)?1:0, + (regval&QSPI_CR_TCIE)?1:0, + (regval&QSPI_CR_FTIE)?1:0, + (regval&QSPI_CR_SMIE)?1:0, + (regval&QSPI_CR_TOIE)?1:0, + (regval&QSPI_CR_APMS)?1:0, + (regval&QSPI_CR_PMM)?1:0, + (regval&QSPI_CR_PRESCALER_MASK)>>QSPI_CR_PRESCALER_SHIFT + ); + + regval = getreg32(priv->base + STM32L4_QUADSPI_DCR_OFFSET); /* Device Configuration Register */ + qspivdbg("DCR:%08x\n",regval); + qspivdbg(" CKMODE:%1d CSHT:%d FSIZE:%d\n", + (regval&QSPI_DCR_CKMODE)?1:0, + (regval&QSPI_DCR_CSHT_MASK)>>QSPI_DCR_CSHT_SHIFT, + (regval&QSPI_DCR_FSIZE_MASK)>>QSPI_DCR_FSIZE_SHIFT + ); + + regval = getreg32(priv->base + STM32L4_QUADSPI_CCR_OFFSET); /* Communication Configuration Register */ + qspivdbg("CCR:%08x\n",regval); + qspivdbg(" INST:%02x IMODE:%d ADMODE:%d ADSIZE:%d ABMODE:%d\n" + " ABSIZE:%d DCYC:%d DMODE:%d FMODE:%d\n" + " SIOO:%1d DDRM:%1d\n", + (regval&QSPI_CCR_INSTRUCTION_MASK)>>QSPI_CCR_INSTRUCTION_SHIFT, + (regval&QSPI_CCR_IMODE_MASK)>>QSPI_CCR_IMODE_SHIFT, + (regval&QSPI_CCR_ADMODE_MASK)>>QSPI_CCR_ADMODE_SHIFT, + (regval&QSPI_CCR_ADSIZE_MASK)>>QSPI_CCR_ABSIZE_SHIFT, + (regval&QSPI_CCR_ABMODE_MASK)>>QSPI_CCR_ABMODE_SHIFT, + (regval&QSPI_CCR_ABSIZE_MASK)>>QSPI_CCR_ABSIZE_SHIFT, + (regval&QSPI_CCR_DCYC_MASK)>>QSPI_CCR_DCYC_SHIFT, + (regval&QSPI_CCR_DMODE_MASK)>>QSPI_CCR_DMODE_SHIFT, + (regval&QSPI_CCR_FMODE_MASK)>>QSPI_CCR_FMODE_SHIFT, + (regval&QSPI_CCR_SIOO)?1:0, + (regval&QSPI_CCR_DDRM)?1:0 + ); + + regval = getreg32(priv->base + STM32L4_QUADSPI_SR_OFFSET); /* Status Register */ + qspivdbg("SR:%08x\n",regval); + qspivdbg(" TEF:%1d TCF:%1d FTF:%1d SMF:%1d TOF:%1d BUSY:%1d FLEVEL:%d\n", + (regval&QSPI_SR_TEF)?1:0, + (regval&QSPI_SR_TCF)?1:0, + (regval&QSPI_SR_FTF)?1:0, + (regval&QSPI_SR_SMF)?1:0, + (regval&QSPI_SR_TOF)?1:0, + (regval&QSPI_SR_BUSY)?1:0, + (regval&QSPI_SR_FLEVEL_MASK)>>QSPI_SR_FLEVEL_SHIFT + ); + +#else + qspivdbg(" CR:%08x DCR:%08x CCR:%08x SR:%08x\n", + getreg32(priv->base + STM32L4_QUADSPI_CR_OFFSET), /* Control Register */ + getreg32(priv->base + STM32L4_QUADSPI_DCR_OFFSET), /* Device Configuration Register */ + getreg32(priv->base + STM32L4_QUADSPI_CCR_OFFSET), /* Communication Configuration Register */ + getreg32(priv->base + STM32L4_QUADSPI_SR_OFFSET)); /* Status Register */ + qspivdbg(" DLR:%08x ABR:%08x PSMKR:%08x PSMAR:%08x\n", + getreg32(priv->base + STM32L4_QUADSPI_DLR_OFFSET), /* Data Length Register */ + getreg32(priv->base + STM32L4_QUADSPI_ABR_OFFSET), /* Alternate Bytes Register */ + getreg32(priv->base + STM32L4_QUADSPI_PSMKR_OFFSET), /* Polling Status mask Register */ + getreg32(priv->base + STM32L4_QUADSPI_PSMAR_OFFSET)); /* Polling Status match Register */ + qspivdbg(" PIR:%08x LPTR:%08x\n", + getreg32(priv->base + STM32L4_QUADSPI_PIR_OFFSET), /* Polling Interval Register */ + getreg32(priv->base + STM32L4_QUADSPI_LPTR_OFFSET)); /* Low-Power Timeout Register */ + (void)regval; +#endif +} +#endif + +#if defined(CONFIG_DEBUG_SPI) && defined(CONFIG_DEBUG_GPIO) +static void qspi_dumpgpioconfig(const char *msg) +{ + uint32_t regval; + qspivdbg("%s:\n", msg); + + regval = getreg32(STM32L4_GPIOE_MODER); + qspivdbg("E_MODER:%08x\n",regval); + + regval = getreg32(STM32L4_GPIOE_OTYPER); + qspivdbg("E_OTYPER:%08x\n",regval); + + regval = getreg32(STM32L4_GPIOE_OSPEED); + qspivdbg("E_OSPEED:%08x\n",regval); + + regval = getreg32(STM32L4_GPIOE_PUPDR); + qspivdbg("E_PUPDR:%08x\n",regval); + + regval = getreg32(STM32L4_GPIOE_AFRL); + qspivdbg("E_AFRL:%08x\n",regval); + + regval = getreg32(STM32L4_GPIOE_AFRH); + qspivdbg("E_AFRH:%08x\n",regval); +} +#endif + +/**************************************************************************** + * Name: qspi_setupxctnfromcmd + * + * Description: + * Setup our transaction descriptor from a command info structure + * + * Input Parameters: + * xctn - the transaction descriptor we setup + * cmdinfo - the command info (originating from the MTD device) + * + * Returned Value: + * OK, or -errno if invalid + * + ****************************************************************************/ + +static int qspi_setupxctnfromcmd(struct qspi_xctnspec_s *xctn, + const struct qspi_cmdinfo_s *cmdinfo) +{ + DEBUGASSERT(xctn != NULL && cmdinfo != NULL); + +#ifdef CONFIG_DEBUG_SPI + qspivdbg("Transfer:\n"); + qspivdbg(" flags: %02x\n", cmdinfo->flags); + qspivdbg(" cmd: %04x\n", cmdinfo->cmd); + + if (QSPICMD_ISADDRESS(cmdinfo->flags)) + { + qspivdbg(" address/length: %08lx/%d\n", + (unsigned long)cmdinfo->addr, cmdinfo->addrlen); + } + + if (QSPICMD_ISDATA(cmdinfo->flags)) + { + qspivdbg(" %s Data:\n", QSPICMD_ISWRITE(cmdinfo->flags) ? "Write" : "Read"); + qspivdbg(" buffer/length: %p/%d\n", cmdinfo->buffer, cmdinfo->buflen); + } +#endif + + DEBUGASSERT(cmdinfo->cmd < 256); + + /* Specify the instruction as per command info */ + + /* XXX III instruction mode, single dual quad option bits */ + xctn->instrmode = CCR_IMODE_SINGLE; + xctn->instr = cmdinfo->cmd; + /* XXX III option bits for 'send instruction only once' */ + xctn->issioo = 0; + + /* XXX III options for alt bytes, dummy cycles */ + xctn->altbytesmode = CCR_ABMODE_NONE; + xctn->altbytessize = CCR_ABSIZE_8; + xctn->altbytes = 0; + xctn->dummycycles = 0; + + /* Specify the address size as needed */ + + if (QSPICMD_ISADDRESS(cmdinfo->flags)) + { + /* XXX III address mode mode, single, dual, quad option bits */ + xctn->addrmode = CCR_ADMODE_SINGLE; + if (cmdinfo->addrlen == 1) + { + xctn->addrsize = CCR_ADSIZE_8; + } + else if (cmdinfo->addrlen == 2) + { + xctn->addrsize = CCR_ADSIZE_16; + } + else if (cmdinfo->addrlen == 3) + { + xctn->addrsize = CCR_ADSIZE_24; + } + else if (cmdinfo->addrlen == 4) + { + xctn->addrsize = CCR_ADSIZE_32; + } + else + { + return -EINVAL; + } + xctn->addr = cmdinfo->addr; + } + else + { + xctn->addrmode = CCR_ADMODE_NONE; + xctn->addrsize = 0; + xctn->addr = cmdinfo->addr; + } + + /* Specify the data as needed */ + + xctn->buffer = cmdinfo->buffer; + if (QSPICMD_ISDATA(cmdinfo->flags)) + { + /* XXX III data mode mode, single, dual, quad option bits */ + xctn->datamode = CCR_DMODE_SINGLE; + xctn->datasize = cmdinfo->buflen; + /* XXX III double data rate option bits */ + xctn->isddr = 0; + } + else + { + xctn->datamode = CCR_DMODE_NONE; + xctn->datasize = 0; + xctn->isddr = 0; + } + + return OK; +} + +/**************************************************************************** + * Name: qspi_setupxctnfrommem + * + * Description: + * Setup our transaction descriptor from a memory info structure + * + * Input Parameters: + * xctn - the transaction descriptor we setup + * meminfo - the memory info (originating from the MTD device) + * + * Returned Value: + * OK, or -errno if invalid + * + ****************************************************************************/ + +static int qspi_setupxctnfrommem(struct qspi_xctnspec_s *xctn, + const struct qspi_meminfo_s *meminfo) +{ + DEBUGASSERT(xctn != NULL && meminfo != NULL); + +#ifdef CONFIG_DEBUG_SPI + qspivdbg("Transfer:\n"); + qspivdbg(" flags: %02x\n", meminfo->flags); + qspivdbg(" cmd: %04x\n", meminfo->cmd); + qspivdbg(" address/length: %08lx/%d\n", + (unsigned long)meminfo->addr, meminfo->addrlen); + qspivdbg(" %s Data:\n", QSPIMEM_ISWRITE(meminfo->flags) ? "Write" : "Read"); + qspivdbg(" buffer/length: %p/%d\n", meminfo->buffer, meminfo->buflen); +#endif + + DEBUGASSERT(meminfo->cmd < 256); + + /* Specify the instruction as per command info */ + + /* XXX III instruction mode, single dual quad option bits */ + xctn->instrmode = CCR_IMODE_SINGLE; + xctn->instr = meminfo->cmd; + /* XXX III option bits for 'send instruction only once' */ + xctn->issioo = 0; + + /* XXX III options for alt bytes */ + xctn->altbytesmode = CCR_ABMODE_NONE; + xctn->altbytessize = CCR_ABSIZE_8; + xctn->altbytes = 0; + + xctn->dummycycles = meminfo->dummies; + + /* Specify the address size as needed */ + + /* XXX III there should be a separate flags for single/dual/quad for each of i,a,d */ + if (QSPIMEM_ISDUALIO(meminfo->flags)) + xctn->addrmode = CCR_ADMODE_DUAL; + else if (QSPIMEM_ISQUADIO(meminfo->flags)) + xctn->addrmode = CCR_ADMODE_QUAD; + else + xctn->addrmode = CCR_ADMODE_SINGLE; + + if (meminfo->addrlen == 1) + { + xctn->addrsize = CCR_ADSIZE_8; + } + else if (meminfo->addrlen == 2) + { + xctn->addrsize = CCR_ADSIZE_16; + } + else if (meminfo->addrlen == 3) + { + xctn->addrsize = CCR_ADSIZE_24; + } + else if (meminfo->addrlen == 4) + { + xctn->addrsize = CCR_ADSIZE_32; + } + else + { + return -EINVAL; + } + xctn->addr = meminfo->addr; + + /* Specify the data as needed */ + + xctn->buffer = meminfo->buffer; + /* XXX III there should be a separate flags for single/dual/quad for each of i,a,d */ + if (QSPIMEM_ISDUALIO(meminfo->flags)) + xctn->datamode = CCR_DMODE_DUAL; + else if (QSPIMEM_ISQUADIO(meminfo->flags)) + xctn->datamode = CCR_DMODE_QUAD; + else + xctn->datamode = CCR_DMODE_SINGLE; + + xctn->datasize = meminfo->buflen; + /* XXX III double data rate option bits */ + xctn->isddr = 0; + + return OK; +} + +/**************************************************************************** + * Name: qspi_waitstatusflags + * + * Description: + * Spin wait for specified status flags to be set as desired + * + * Input Parameters: + * priv - The QSPI controller to dump + * mask - bits to check, can be multiple + * polarity - true wait if any set, false to wait if all reset + * + * Returned Value: + * None + * + ****************************************************************************/ + +static void qspi_waitstatusflags(struct stm32l4_qspidev_s *priv, + uint32_t mask, int polarity) +{ + uint32_t regval; + + if ( polarity ) + { + while ( !((regval = qspi_getreg(priv, STM32L4_QUADSPI_SR_OFFSET)) & mask)) ; + } + else + { + while ( ((regval = qspi_getreg(priv, STM32L4_QUADSPI_SR_OFFSET)) & mask)) ; + } +} + +/**************************************************************************** + * Name: qspi_ccrconfig + * + * Description: + * Do common Communications Configuration Register setup + * + * Input Parameters: + * priv - The QSPI controller to dump + * xctn - the transaction descriptor; CCR setup + * fctn - 'functional mode'; 0=indwrite, 1=indread, 2=autopoll, 3=memmmap + * + * Returned Value: + * None + * + ****************************************************************************/ + +static void qspi_ccrconfig(struct stm32l4_qspidev_s *priv, + struct qspi_xctnspec_s* xctn, + uint8_t fctn) +{ + uint32_t regval; + + /* if we have data, and it's not memory mapped, write the length */ + + if ( CCR_DMODE_NONE != xctn->datamode && CCR_FMODE_MEMMAP != fctn ) + { + qspi_putreg(priv, xctn->datasize-1, STM32L4_QUADSPI_DLR_OFFSET); + } + + /* if we have alternate bytes, stick them in now */ + + if ( CCR_ABMODE_NONE != xctn->altbytesmode ) + { + qspi_putreg(priv, xctn->altbytes, STM32L4_QUADSPI_ABR_OFFSET); + } + + /* build the CCR value and set it */ + + regval = QSPI_CCR_INST(xctn->instr) | + QSPI_CCR_IMODE(xctn->instrmode) | + QSPI_CCR_ADMODE(xctn->addrmode) | + QSPI_CCR_ADSIZE(xctn->addrsize) | + QSPI_CCR_ABMODE(xctn->altbytesmode) | + QSPI_CCR_ABSIZE(xctn->altbytessize) | + QSPI_CCR_DCYC(xctn->dummycycles) | + QSPI_CCR_DMODE(xctn->datamode) | + QSPI_CCR_FMODE(fctn) | + (xctn->isddr ? QSPI_CCR_SIOO : 0) | + (xctn->issioo ? QSPI_CCR_DDRM : 0); + qspi_putreg(priv, regval, STM32L4_QUADSPI_CCR_OFFSET); + + /* if we have and need and address, set that now, too */ + + if ( CCR_ADMODE_NONE != xctn->addrmode && CCR_FMODE_MEMMAP != fctn ) + { + qspi_putreg(priv, xctn->addr, STM32L4_QUADSPI_AR_OFFSET); + } +} + +/**************************************************************************** + * Name: qspi_receive_blocking + * + * Description: + * Do common data receive in a blocking (status polling) way + * + * Input Parameters: + * priv - The QSPI controller to dump + * xctn - the transaction descriptor + * + * Returned Value: + * OK, or -errno on error + * + ****************************************************************************/ + +static int qspi_receive_blocking(struct stm32l4_qspidev_s *priv, + struct qspi_xctnspec_s* xctn) +{ + int ret = OK; + volatile uint32_t *datareg = (volatile uint32_t*)(priv->base + STM32L4_QUADSPI_DR_OFFSET); + uint8_t *dest = (uint8_t*)xctn->buffer; + uint32_t addrval; + uint32_t regval; + + addrval = qspi_getreg(priv, STM32L4_QUADSPI_AR_OFFSET); + if(dest != NULL ) + { + /* counter of remaining data */ + uint32_t remaining = xctn->datasize; + + /* ensure CCR register specifies indirect read */ + + regval = qspi_getreg(priv, STM32L4_QUADSPI_CCR_OFFSET); + regval &= ~QSPI_CCR_FMODE_MASK; + regval |= QSPI_CCR_FMODE(CCR_FMODE_INDRD); + qspi_putreg(priv, regval, STM32L4_QUADSPI_CCR_OFFSET); + + /* Start the transfer by re-writing the address in AR register */ + + qspi_putreg(priv, addrval, STM32L4_QUADSPI_AR_OFFSET); + + /* transfer loop */ + + while(remaining > 0) + { + /* Wait for Fifo Threshold, or Transfer Complete, to read data */ + + qspi_waitstatusflags(priv, QSPI_SR_FTF|QSPI_SR_TCF, 1); + + *dest = *(volatile uint8_t*)datareg; + dest++; + remaining--; + } + + if (ret == OK) + { + /* Wait for transfer complete, then clear it */ + + qspi_waitstatusflags(priv, QSPI_SR_TCF, 1); + qspi_putreg(priv, QSPI_FCR_CTCF, STM32L4_QUADSPI_FCR); + + /* use Abort to clear the busy flag, and ditch any extra bytes in fifo */ + + regval = qspi_getreg(priv, STM32L4_QUADSPI_CR_OFFSET); + regval |= QSPI_CR_ABORT; + qspi_putreg(priv, regval, STM32L4_QUADSPI_CR_OFFSET); + } + } + else + { + ret = -EINVAL; + } + + return ret; +} + +/**************************************************************************** + * Name: qspi_transmit_blocking + * + * Description: + * Do common data transmit in a blocking (status polling) way + * + * Input Parameters: + * priv - The QSPI controller to dump + * xctn - the transaction descriptor + * + * Returned Value: + * OK, or -errno on error + * + ****************************************************************************/ + +static int qspi_transmit_blocking(struct stm32l4_qspidev_s *priv, + struct qspi_xctnspec_s* xctn) +{ + int ret = OK; + volatile uint32_t *datareg = (volatile uint32_t*)(priv->base + STM32L4_QUADSPI_DR_OFFSET); + uint8_t *src = (uint8_t*)xctn->buffer; + uint32_t regval; + + if(src != NULL ) + { + /* counter of remaining data */ + uint32_t remaining = xctn->datasize; + + /* transfer loop */ + + while(remaining > 0) + { + /* Wait for Fifo Threshold to write data */ + + qspi_waitstatusflags(priv, QSPI_SR_FTF, 1); + + *(volatile uint8_t*)datareg = *src++; + remaining--; + } + + if (ret == OK) + { + /* Wait for transfer complete, then clear it */ + + qspi_waitstatusflags(priv, QSPI_SR_TCF, 1); + qspi_putreg(priv, QSPI_FCR_CTCF, STM32L4_QUADSPI_FCR); + + /* use Abort to cler the Busy flag */ + + regval = qspi_getreg(priv, STM32L4_QUADSPI_CR_OFFSET); + regval |= QSPI_CR_ABORT; + qspi_putreg(priv, regval, STM32L4_QUADSPI_CR_OFFSET); + } + } + else + { + ret = -EINVAL; + } + + return ret; +} + +#ifdef QSPI_USE_INTERRUPTS +/**************************************************************************** + * Name: qspi0_interrupt + * + * Description: + * XXX + * + * Input Parameters: + * irq - XXX + * context - xxx + * + * Returned Value: + * XXX + * + ****************************************************************************/ + +static int qspi0_interrupt(int irq, void *context) +{ + /* XXX III needs implementation */ + (void)g_qspi0dev; + return OK; +} +#endif + + + /**************************************************************************** + * Name: qspi_lock + * + * Description: + * On QSPI buses where there are multiple devices, it will be necessary to + * lock QSPI to have exclusive access to the buses for a sequence of + * transfers. The bus should be locked before the chip is selected. After + * locking the QSPI bus, the caller should then also call the setfrequency, + * setbits, and setmode methods to make sure that the QSPI is properly + * configured for the device. If the QSPI bus is being shared, then it + * may have been left in an incompatible state. + * + * Input Parameters: + * dev - Device-specific state data + * lock - true: Lock QSPI bus, false: unlock QSPI bus + * + * Returned Value: + * None + * + ****************************************************************************/ + +static int qspi_lock(struct qspi_dev_s *dev, bool lock) +{ + struct stm32l4_qspidev_s *priv = (struct stm32l4_qspidev_s *)dev; + + qspivdbg("lock=%d\n", lock); + if (lock) + { + /* Take the semaphore (perhaps waiting) */ + + while (sem_wait(&priv->exclsem) != 0) + { + /* The only case that an error should occur here is if the wait was awakened + * by a signal. + */ + + ASSERT(errno == EINTR); + } + } + else + { + (void)sem_post(&priv->exclsem); + } + + return OK; +} + +/**************************************************************************** + * Name: qspi_setfrequency + * + * Description: + * Set the QSPI frequency. + * + * Input Parameters: + * dev - Device-specific state data + * frequency - The QSPI frequency requested + * + * Returned Value: + * Returns the actual frequency selected + * + ****************************************************************************/ +/*XXX partial*/ +static uint32_t qspi_setfrequency(struct qspi_dev_s *dev, uint32_t frequency) +{ + struct stm32l4_qspidev_s *priv = (struct stm32l4_qspidev_s *)dev; + uint32_t actual; + uint32_t prescaler; +#if 0 +#if CONFIG_STM32L4_QSPI_DLYBS > 0 + uint32_t dlybs; +#endif +#if CONFIG_STM32L4_QSPI_DLYBCT > 0 + uint32_t dlybct; +#endif +#endif + uint32_t regval; + + qspivdbg("frequency=%d\n", frequency); + DEBUGASSERT(priv); + + /* Wait till BUSY flag reset */ + + qspi_waitstatusflags(priv, QSPI_SR_BUSY, 0); + + /* Check if the requested frequency is the same as the frequency selection */ + + if (priv->frequency == frequency) + { + /* We are already at this frequency. Return the actual. */ + + return priv->actual; + } + + /* Configure QSPI to a frequency as close as possible to the requested + * frequency. + * + * QSCK frequency = STL32L4_QSPI_CLOCK / prescaler, or + * prescaler = STL32L4_QSPI_CLOCK / frequency + * + * Where prescaler can have the range 1 to 256 and the STM32L4_QUADSPI_CR_OFFSET + * register field holds prescaler - 1. + * NOTE that a "ceiling" type of calculation is performed. + * 'frequency' is treated as a not-to-exceed value. + */ + + prescaler = (frequency + STL32L4_QSPI_CLOCK - 1) / frequency; + + /* Make sure that the divider is within range */ + + if (prescaler < 1) + { + prescaler = 1; + } + else if (prescaler > 256) + { + prescaler = 256; + } + + /* Save the new prescaler value (minus one) */ + + regval = qspi_getreg(priv, STM32L4_QUADSPI_CR_OFFSET); + regval &= ~(QSPI_CR_PRESCALER_MASK); + regval |= (prescaler - 1) << QSPI_CR_PRESCALER_SHIFT; + qspi_putreg(priv, regval, STM32L4_QUADSPI_CR_OFFSET); + + /* Calculate the new actual frequency */ + + actual = STL32L4_QSPI_CLOCK / prescaler; + qspivdbg("prescaler=%d actual=%d\n", prescaler, actual); + + /* Save the frequency setting */ + + priv->frequency = frequency; + priv->actual = actual; + + qspivdbg("Frequency %d->%d\n", frequency, actual); + return actual; +} + +/**************************************************************************** + * Name: qspi_setmode + * + * Description: + * Set the QSPI mode. Optional. See enum qspi_mode_e for mode definitions. + * NOTE: the STM32L4 QSPI supports only modes 0 and 3. + * + * Input Parameters: + * dev - Device-specific state data + * mode - The QSPI mode requested + * + * Returned Value: + * none + * + ****************************************************************************/ + +static void qspi_setmode(struct qspi_dev_s *dev, enum qspi_mode_e mode) +{ + struct stm32l4_qspidev_s *priv = (struct stm32l4_qspidev_s *)dev; + uint32_t regval; + + qspivdbg("mode=%d\n", mode); + + /* Has the mode changed? */ + + if (mode != priv->mode) + { + /* Yes... Set the mode appropriately: + * + * QSPI CPOL CPHA + * MODE + * 0 0 0 + * 1 0 1 + * 2 1 0 + * 3 1 1 + */ + + regval = qspi_getreg(priv, STM32L4_QUADSPI_DCR); + regval &= ~(QSPI_DCR_CKMODE); + + switch (mode) + { + case QSPIDEV_MODE0: /* CPOL=0; CPHA=0 */ + break; + + case QSPIDEV_MODE3: /* CPOL=1; CPHA=1 */ + regval |= (QSPI_DCR_CKMODE); + break; + + case QSPIDEV_MODE1: /* CPOL=0; CPHA=1 */ + case QSPIDEV_MODE2: /* CPOL=1; CPHA=0 */ + qspivdbg("unsupported mode=%d\n", mode); + default: + DEBUGASSERT(FALSE); + return; + } + + qspi_putreg(priv, regval, STM32L4_QUADSPI_DCR); + qspivdbg("DCR=%08x\n", regval); + + /* Save the mode so that subsequent re-configurations will be faster */ + + priv->mode = mode; + } +} + +/**************************************************************************** + * Name: qspi_setbits + * + * Description: + * Set the number if bits per word. + * NOTE: the STM32L4 QSPI only supports 8 bits, so this does nothing. + * + * Input Parameters: + * dev - Device-specific state data + * nbits - The number of bits requests + * + * Returned Value: + * none + * + ****************************************************************************/ + +static void qspi_setbits(struct qspi_dev_s *dev, int nbits) +{ + /* not meaningful for the STM32L4x6 */ + if ( 8 != nbits ) + { + qspivdbg("unsupported nbits=%d\n", nbits); + DEBUGASSERT(FALSE); + } +} + +/**************************************************************************** + * Name: qspi_command + * + * Description: + * Perform one QSPI data transfer + * + * Input Parameters: + * dev - Device-specific state data + * cmdinfo - Describes the command transfer to be performed. + * + * Returned Value: + * Zero (OK) on SUCCESS, a negated errno on value of failure + * + ****************************************************************************/ + +static int qspi_command(struct qspi_dev_s *dev, + struct qspi_cmdinfo_s *cmdinfo) +{ + struct stm32l4_qspidev_s *priv = (struct stm32l4_qspidev_s *)dev; + struct qspi_xctnspec_s xctn; + int ret; + + /* Set up the transaction descriptor as per command info */ + + ret = qspi_setupxctnfromcmd(&xctn, cmdinfo); + if ( OK != ret ) + { + return ret; + } + + /* Prepare for transaction */ + + /* wait 'till non-busy */ + + qspi_waitstatusflags(priv, QSPI_SR_BUSY, 0); + + /* Clear flags */ + + qspi_putreg(priv, QSPI_FCR_CTEF | QSPI_FCR_CTCF | QSPI_FCR_CSMF | QSPI_FCR_CTOF, STM32L4_QUADSPI_FCR); + + /* XXX III this is for polling mode; support interrupt and dma modes also and 'autopolling' */ + + /* Set up the Communications Configuration Register as per command info */ + + qspi_ccrconfig(priv, &xctn, + QSPICMD_ISWRITE(cmdinfo->flags) ? CCR_FMODE_INDWR : CCR_FMODE_INDRD ); + + /* That may be it, unless there is also data to transfer */ + + if (QSPICMD_ISDATA(cmdinfo->flags)) + { + DEBUGASSERT(cmdinfo->buffer != NULL && cmdinfo->buflen > 0); + DEBUGASSERT(IS_ALIGNED(cmdinfo->buffer)); + + if (QSPICMD_ISWRITE(cmdinfo->flags)) + { + /* XXX III we are going to do polling; revisit when we get interrupt and/or DMA up. */ + + + ret = qspi_transmit_blocking(priv, &xctn); + } + else + { + /* XXX III we are going to do polling; revisit when we get interrupt and/or DMA up. */ + + ret = qspi_receive_blocking(priv, &xctn); + } + MEMORY_SYNC(); + } + else + { + ret = OK; + } + + /* XXX III this is for polling mode; support interrupt and dma modes also */ + + /* wait for Transfer complete, and not busy */ + qspi_waitstatusflags(priv, QSPI_SR_TCF,1); + qspi_waitstatusflags(priv, QSPI_SR_BUSY,0); + + return ret; +} + +/**************************************************************************** + * Name: qspi_memory + * + * Description: + * Perform one QSPI memory transfer + * + * Input Parameters: + * dev - Device-specific state data + * meminfo - Describes the memory transfer to be performed. + * + * Returned Value: + * Zero (OK) on SUCCESS, a negated errno on value of failure + * + ****************************************************************************/ + +static int qspi_memory(struct qspi_dev_s *dev, + struct qspi_meminfo_s *meminfo) +{ + struct stm32l4_qspidev_s *priv = (struct stm32l4_qspidev_s *)dev; + struct qspi_xctnspec_s xctn; + int ret; + + /* Set up the transaction descriptor as per command info */ + + ret = qspi_setupxctnfrommem(&xctn, meminfo); + if ( OK != ret ) + { + return ret; + } + + /* Prepare for transaction */ + + /* wait 'till non-busy */ + + qspi_waitstatusflags(priv, QSPI_SR_BUSY, 0); + + /* Clear flags */ + + qspi_putreg(priv, QSPI_FCR_CTEF | QSPI_FCR_CTCF | QSPI_FCR_CSMF | QSPI_FCR_CTOF, STM32L4_QUADSPI_FCR); + + /* XXX III this is for polling mode; support interrupt and dma modes also and 'autopolling' */ + + /* Set up the Communications Configuration Register as per command info */ + + qspi_ccrconfig(priv, &xctn, + QSPICMD_ISWRITE(meminfo->flags) ? CCR_FMODE_INDWR : CCR_FMODE_INDRD ); + + /* Transfer data */ + + DEBUGASSERT(meminfo->buffer != NULL && meminfo->buflen > 0); + DEBUGASSERT(IS_ALIGNED(meminfo->buffer)); + + if (QSPICMD_ISWRITE(meminfo->flags)) + { + /* XXX III we are going to do polling; revisit when we get interrupt and/or DMA up. */ + + ret = qspi_transmit_blocking(priv, &xctn); + } + else + { + /* XXX III we are going to do polling; revisit when we get interrupt and/or DMA up. */ + + ret = qspi_receive_blocking(priv, &xctn); + } + MEMORY_SYNC(); + +#if 0 +#ifdef CONFIG_STM32L4_QSPI_DMA + /* Can we perform DMA? Should we perform DMA? */ + if (priv->candma && + meminfo->buflen > CONFIG_STM32L4_QSPI_DMATHRESHOLD && + IS_ALIGNED((uintptr_t)meminfo->buffer) && + IS_ALIGNED(meminfo->buflen)) + { + return qspi_memory_dma(priv, meminfo); + } + else +#endif + { + return qspi_memory_nodma(priv, meminfo); + } +#endif + + /* XXX III this is for polling mode; support interrupt and dma modes also */ + + /* wait for Transfer complete, and not busy */ + qspi_waitstatusflags(priv, QSPI_SR_TCF,1); + qspi_waitstatusflags(priv, QSPI_SR_BUSY,0); + + return ret; +} + +/**************************************************************************** + * Name: qspi_alloc + * + * Description: + * Allocate a buffer suitable for DMA data transfer + * + * Input Parameters: + * dev - Device-specific state data + * buflen - Buffer length to allocate in bytes + * + * Returned Value: + * Address of tha allocated memory on success; NULL is returned on any + * failure. + * + ****************************************************************************/ + +static FAR void *qspi_alloc(FAR struct qspi_dev_s *dev, size_t buflen) +{ + /* Here we exploit the carnal knowledge the kmm_malloc() will return memory + * aligned to 64-bit addresses. The buffer length must be large enough to + * hold the rested buflen in units a 32-bits. + */ + + return kmm_malloc(ALIGN_UP(buflen)); +} + +/**************************************************************************** + * Name: QSPI_FREE + * + * Description: + * Free memory returned by QSPI_ALLOC + * + * Input Parameters: + * dev - Device-specific state data + * buffer - Buffer previously allocated via QSPI_ALLOC + * + * Returned Value: + * None. + * + ****************************************************************************/ + +static void qspi_free(FAR struct qspi_dev_s *dev, FAR void *buffer) +{ + if (buffer) + { + kmm_free(buffer); + } +} + +/**************************************************************************** + * Name: qspi_hw_initialize + * + * Description: + * Initialize the QSPI peripheral from hardware reset. + * + * Input Parameters: + * priv - Device state structure. + * + * Returned Value: + * Zero (OK) on SUCCESS, a negated errno on value of failure + * + ****************************************************************************/ + +static int qspi_hw_initialize(struct stm32l4_qspidev_s *priv) +{ + uint32_t regval; + + /* Disable the QSPI; abort anything happening, disable, wait for not busy */ + + regval = qspi_getreg(priv, STM32L4_QUADSPI_CR_OFFSET); + regval |= QSPI_CR_ABORT; + qspi_putreg(priv, regval, STM32L4_QUADSPI_CR_OFFSET); + + regval = qspi_getreg(priv, STM32L4_QUADSPI_CR_OFFSET); + regval &= ~(QSPI_CR_EN); + qspi_putreg(priv, regval, STM32L4_QUADSPI_CR_OFFSET); + + /* Wait till BUSY flag reset */ + + qspi_waitstatusflags(priv, QSPI_SR_BUSY, 0); + + /* Disable all interrupt sources for starters */ + + regval = qspi_getreg(priv, STM32L4_QUADSPI_CR_OFFSET); + regval &= ~(QSPI_CR_TEIE | QSPI_CR_TCIE | QSPI_CR_FTIE | QSPI_CR_SMIE | QSPI_CR_TOIE); + + /* Configure QSPI FIFO Threshold */ + + regval &= ~(QSPI_CR_FTHRES_MASK); + regval |= ((CONFIG_STM32L4_QSPI_FIFO_THESHOLD-1) << QSPI_CR_FTHRES_SHIFT); + qspi_putreg(priv, regval, STM32L4_QUADSPI_CR_OFFSET); + + /* Wait till BUSY flag reset */ + + qspi_waitstatusflags(priv, QSPI_SR_BUSY, 0); + + /* Configure QSPI Clock Prescaler and Sample Shift */ + + regval = qspi_getreg(priv, STM32L4_QUADSPI_CR_OFFSET); + regval &= ~(QSPI_CR_PRESCALER_MASK | QSPI_CR_SSHIFT); + regval |= (0x01 << QSPI_CR_PRESCALER_SHIFT); + regval |= (0x00); + qspi_putreg(priv, regval, STM32L4_QUADSPI_CR_OFFSET); + + /* Configure QSPI Flash Size, CS High Time and Clock Mode */ + + regval = qspi_getreg(priv, STM32L4_QUADSPI_DCR_OFFSET); + regval &= ~(QSPI_DCR_CKMODE | QSPI_DCR_CSHT_MASK | QSPI_DCR_FSIZE_MASK); + regval |= (0x00); + regval |= ((CONFIG_STM32L4_QSPI_CSHT-1) << QSPI_DCR_CSHT_SHIFT); + if ( 0 != CONFIG_STM32L4_QSPI_FLASH_SIZE ) + { + unsigned int nSize = CONFIG_STM32L4_QSPI_FLASH_SIZE; + int nLog2Size = 31; + while (!(nSize & 0x80000000)) + { + --nLog2Size; + nSize <<= 1; + } + regval |= ((nLog2Size-1) << QSPI_DCR_FSIZE_SHIFT); + } + + qspi_putreg(priv, regval, STM32L4_QUADSPI_DCR_OFFSET); + + /* Enable QSPI */ + + regval = qspi_getreg(priv, STM32L4_QUADSPI_CR_OFFSET); + regval |= QSPI_CR_EN; + qspi_putreg(priv, regval, STM32L4_QUADSPI_CR_OFFSET); + + /* Wait till BUSY flag reset */ + + qspi_waitstatusflags(priv, QSPI_SR_BUSY, 0); + + qspi_dumpregs(priv, "After initialization"); + qspi_dumpgpioconfig("GPIO"); + + return OK; +} + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: stm32l4_qspi_initialize + * + * Description: + * Initialize the selected QSPI port in master mode + * + * Input Parameter: + * intf - Interface number(must be zero) + * + * Returned Value: + * Valid QSPI device structure reference on success; a NULL on failure + * + ****************************************************************************/ + +struct qspi_dev_s *stm32l4_qspi_initialize(int intf) +{ + struct stm32l4_qspidev_s *priv; + uint32_t regval; + int ret; + + /* The STM32L4 has only a single QSPI port */ + + qspivdbg("intf: %d\n", intf); + DEBUGASSERT(intf == 0); + + /* Select the QSPI interface */ + + if (intf == 0) + { + /* If this function is called multiple times, the following operations + * will be performed multiple times. + */ + + /* Select QSPI0 */ + + priv = &g_qspi0dev; + + /* Enable clocking to the QSPI peripheral */ + + regval = getreg32(STM32L4_RCC_AHB3ENR); + regval |= RCC_AHB3ENR_QSPIEN; + putreg32(regval, STM32L4_RCC_AHB3ENR); + regval = getreg32(STM32L4_RCC_AHB3ENR); + + /* Reset the QSPI peripheral */ + + regval = getreg32(STM32L4_RCC_AHB3RSTR); + regval |= RCC_AHB3RSTR_QSPIRST; + putreg32(regval, STM32L4_RCC_AHB3RSTR); + regval &= ~RCC_AHB3RSTR_QSPIRST; + putreg32(regval, STM32L4_RCC_AHB3RSTR); + + /* Configure multiplexed pins as connected on the board. */ + + stm32l4_configgpio(GPIO_QSPI_CS); + stm32l4_configgpio(GPIO_QSPI_IO0); + stm32l4_configgpio(GPIO_QSPI_IO1); + stm32l4_configgpio(GPIO_QSPI_IO2); + stm32l4_configgpio(GPIO_QSPI_IO3); + stm32l4_configgpio(GPIO_QSPI_SCK); + } + else + { + qspidbg("ERROR: QSPI%d not supported\n", intf); + return NULL; + } + + /* Has the QSPI hardware been initialized? */ + + if (!priv->initialized) + { + /* Now perform one time initialization */ + /* Initialize the QSPI semaphore that enforces mutually exclusive + * access to the QSPI registers. + */ + + sem_init(&priv->exclsem, 0, 1); + +#ifdef CONFIG_STM32L4_QSPI_DMA + /* XXX III needs implementation */ +#endif + +#ifdef QSPI_USE_INTERRUPTS + /* Attach the interrupt handler */ + + ret = irq_attach(priv->irq, priv->handler); + if (ret < 0) + { + qspidbg("ERROR: Failed to attach irq %d\n", priv->irq); + goto errout_with_dmadog; + } +#endif + + /* Perform hardware initialization. Puts the QSPI into an active + * state. + */ + + ret = qspi_hw_initialize(priv); + if (ret < 0) + { + qspidbg("ERROR: Failed to initialize QSPI hardware\n"); + goto errout_with_irq; + } + + /* Enable interrupts at the NVIC */ + + priv->initialized = true; +#ifdef QSPI_USE_INTERRUPTS + up_enable_irq(priv->irq); +#endif + } + + return &priv->qspi; + +errout_with_irq: +#ifdef QSPI_USE_INTERRUPTS + irq_detach(priv->irq); + +errout_with_dmadog: +#endif +#ifdef CONFIG_STM32L4_QSPI_DMA + /* XXX III needs implementation */ +#endif + + sem_destroy(&priv->exclsem); + return NULL; +} +#endif /* CONFIG_STM32L4_QSPI */ diff --git a/arch/arm/src/stm32l4/stm32l4_qspi.h b/arch/arm/src/stm32l4/stm32l4_qspi.h new file mode 100644 index 0000000000..a62fb7635c --- /dev/null +++ b/arch/arm/src/stm32l4/stm32l4_qspi.h @@ -0,0 +1,107 @@ +/**************************************************************************** + * arch/arm/src/stm32l4/stm32l4_qspi.h + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: dev@ziggurat29.com + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +#ifndef __ARCH_ARM_SRC_STM32L4_STM32L4_QSPI_H +#define __ARCH_ARM_SRC_STM32L4_STM32L4_QSPI_H + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include + +#include +#include + +#include "chip.h" + +#ifdef CONFIG_STM32L4_QSPI + +/**************************************************************************** + * Pre-processor Definitions + ****************************************************************************/ + +/**************************************************************************** + * Public Types + ****************************************************************************/ + +/**************************************************************************** + * Inline Functions + ****************************************************************************/ + +#ifndef __ASSEMBLY__ + +/**************************************************************************** + * Public Data + ****************************************************************************/ + +#undef EXTERN +#if defined(__cplusplus) +#define EXTERN extern "C" +extern "C" +{ +#else +#define EXTERN extern +#endif + +/**************************************************************************** + * Public Function Prototypes + ****************************************************************************/ + +/**************************************************************************** + * Name: stm32l4_qspi_initialize + * + * Description: + * Initialize the selected QSPI port in master mode + * + * Input Parameter: + * intf - Interface number(must be zero) + * + * Returned Value: + * Valid SPI device structure reference on success; a NULL on failure + * + ****************************************************************************/ + +struct qspi_dev_s; +FAR struct qspi_dev_s *stm32l4_qspi_initialize(int intf); + +#undef EXTERN +#if defined(__cplusplus) +} +#endif + +#endif /* __ASSEMBLY__ */ +#endif /* CONFIG_STM32L4_QSPI */ +#endif /* __ARCH_ARM_SRC_STM32L4_STM32L4_QSPI_H */ diff --git a/arch/arm/src/stm32l4/stm32l4x6xx_rcc.c b/arch/arm/src/stm32l4/stm32l4x6xx_rcc.c index 8e4cbe624c..64c8021f95 100644 --- a/arch/arm/src/stm32l4/stm32l4x6xx_rcc.c +++ b/arch/arm/src/stm32l4/stm32l4x6xx_rcc.c @@ -259,7 +259,7 @@ static inline void rcc_enableahb3(void) #endif -#ifdef CONFIG_STM32L4_QUADSPI +#ifdef CONFIG_STM32L4_QSPI /* QuadSPI module clock enable */ regval |= RCC_AHB3ENR_QSPIEN; diff --git a/configs/stm32l476vg-disco/include/board.h b/configs/stm32l476vg-disco/include/board.h index 1c4d5fa334..926094ddee 100644 --- a/configs/stm32l476vg-disco/include/board.h +++ b/configs/stm32l476vg-disco/include/board.h @@ -137,6 +137,21 @@ #endif +/* Quad SPI pin mapping */ + +#define GPIO_QSPI_CS (GPIO_QSPI_NCS_2 | GPIO_FLOAT | GPIO_PUSHPULL | GPIO_SPEED_100MHz) +#define GPIO_QSPI_IO0 (GPIO_QSPI_BK1_IO0_2 | GPIO_FLOAT | GPIO_PUSHPULL | GPIO_SPEED_100MHz) +#define GPIO_QSPI_IO1 (GPIO_QSPI_BK1_IO1_2 | GPIO_FLOAT | GPIO_PUSHPULL | GPIO_SPEED_100MHz) +#define GPIO_QSPI_IO2 (GPIO_QSPI_BK1_IO2_2 | GPIO_FLOAT | GPIO_PUSHPULL | GPIO_SPEED_100MHz) +#define GPIO_QSPI_IO3 (GPIO_QSPI_BK1_IO3_2 | GPIO_FLOAT | GPIO_PUSHPULL | GPIO_SPEED_100MHz) +#define GPIO_QSPI_SCK (GPIO_QSPI_CLK_2 | GPIO_FLOAT | GPIO_PUSHPULL | GPIO_SPEED_100MHz) + +//XXX hmm, elsewhere +//#define QSPI_USE_INTERRUPTS 1 +//XXX hmm, better? (2^(23+1)); this is the value that goes into FSIZE +//#define QSPI_FLASH_SIZE 23 + + /* SPI */ diff --git a/configs/stm32l476vg-disco/include/stm32l476vg-disco-clocking.h b/configs/stm32l476vg-disco/include/stm32l476vg-disco-clocking.h index ef7871c8f2..46639ef9c7 100644 --- a/configs/stm32l476vg-disco/include/stm32l476vg-disco-clocking.h +++ b/configs/stm32l476vg-disco/include/stm32l476vg-disco-clocking.h @@ -67,6 +67,9 @@ #define STM32L4_LSI_FREQUENCY 32000 #define STM32L4_LSE_FREQUENCY 32768 +#define BOARD_AHB_FREQUENCY 80000000ul + + /* XXX review the STM32L4_BOARD_USEHSI usage, it has too much influence in * stm32l4x6xx_rcc.c. I suspect it is fine for it to turn on and off that * ocillator, but really that's all it should do (e.g. it also controls diff --git a/configs/stm32l476vg-disco/nsh/Make.defs b/configs/stm32l476vg-disco/nsh/Make.defs index eac292a8bd..0819e438c2 100644 --- a/configs/stm32l476vg-disco/nsh/Make.defs +++ b/configs/stm32l476vg-disco/nsh/Make.defs @@ -105,6 +105,10 @@ ifeq ($(CONFIG_DEBUG_SYMBOLS),y) LDFLAGS += -g endif +LDFLAGS += -Map=${TOPDIR}/nuttx.map +#CFLAGS += -Wa,-adhln +#CXXFLAGS += -Wa,-adhln + HOSTCC = gcc HOSTINCLUDES = -I. HOSTCFLAGS = -Wall -Wstrict-prototypes -Wshadow -Wundef -g -pipe diff --git a/configs/stm32l476vg-disco/nsh/defconfig b/configs/stm32l476vg-disco/nsh/defconfig index 56aef70f51..8ee16e46cb 100644 --- a/configs/stm32l476vg-disco/nsh/defconfig +++ b/configs/stm32l476vg-disco/nsh/defconfig @@ -49,10 +49,10 @@ CONFIG_DEBUG_VERBOSE=y # # Subsystem Debug Options # -CONFIG_DEBUG_BINFMT=y -CONFIG_DEBUG_FS=y -CONFIG_DEBUG_GRAPHICS=y -CONFIG_DEBUG_LIB=y +# CONFIG_DEBUG_BINFMT is not set +# CONFIG_DEBUG_FS is not set +# CONFIG_DEBUG_GRAPHICS is not set +# CONFIG_DEBUG_LIB is not set # CONFIG_DEBUG_MM is not set # CONFIG_DEBUG_SCHED is not set @@ -65,11 +65,11 @@ CONFIG_DEBUG_LIB=y # # Driver Debug Options # -CONFIG_DEBUG_LEDS=y -CONFIG_DEBUG_ANALOG=y -CONFIG_DEBUG_GPIO=y +# CONFIG_DEBUG_LEDS is not set +# CONFIG_DEBUG_ANALOG is not set +# CONFIG_DEBUG_GPIO is not set # CONFIG_DEBUG_RTC is not set -CONFIG_DEBUG_SPI=y +# CONFIG_DEBUG_SPI is not set CONFIG_ARCH_HAVE_STACKCHECK=y # CONFIG_STACK_COLORATION is not set CONFIG_DEBUG_SYMBOLS=y @@ -143,6 +143,7 @@ CONFIG_ARCH_CORTEXM4=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32l4" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -165,6 +166,7 @@ CONFIG_ARMV7M_HAVE_ITCM=y CONFIG_ARMV7M_HAVE_DTCM=y # CONFIG_ARMV7M_ITCM is not set # CONFIG_ARMV7M_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set # CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set @@ -224,7 +226,10 @@ CONFIG_STM32L4_RNG=y # AHB3 Peripherals # # CONFIG_STM32L4_FMC is not set -# CONFIG_STM32L4_QUADSPI is not set +CONFIG_STM32L4_QSPI=y +CONFIG_STM32L4_QSPI_FLASH_SIZE=16777216 +CONFIG_STM32L4_QSPI_FIFO_THESHOLD=4 +CONFIG_STM32L4_QSPI_CSHT=1 # # APB1 Peripherals @@ -372,7 +377,14 @@ CONFIG_NSH_MMCSDMINOR=0 # # Board-Specific Options # -# CONFIG_LIB_BOARDCTL is not set +CONFIG_LIB_BOARDCTL=y +# CONFIG_BOARDCTL_RESET is not set +# CONFIG_BOARDCTL_UNIQUEID is not set +# CONFIG_BOARDCTL_TSCTEST is not set +# CONFIG_BOARDCTL_ADCTEST is not set +# CONFIG_BOARDCTL_PWMTEST is not set +# CONFIG_BOARDCTL_GRAPHICS is not set +# CONFIG_BOARDCTL_IOCTL is not set # # RTOS Features @@ -532,7 +544,38 @@ CONFIG_RTC_IOCTL=y # CONFIG_PCA9635PW is not set # CONFIG_MMCSD is not set # CONFIG_MODEM is not set -# CONFIG_MTD is not set +CONFIG_MTD=y + +# +# MTD Configuration +# +# CONFIG_MTD_PARTITION is not set +# CONFIG_MTD_SECT512 is not set +# CONFIG_MTD_BYTE_WRITE is not set +# CONFIG_MTD_PROGMEM is not set +# CONFIG_MTD_CONFIG is not set + +# +# MTD Device Drivers +# +# CONFIG_MTD_NAND is not set +# CONFIG_RAMMTD is not set +# CONFIG_FILEMTD is not set +# CONFIG_MTD_AT24XX is not set +# CONFIG_MTD_AT25 is not set +# CONFIG_MTD_AT45DB is not set +# CONFIG_MTD_M25P is not set +# CONFIG_MTD_S25FL1 is not set +CONFIG_MTD_N25QXXX=y +CONFIG_N25QXXX_QSPIMODE=0 +CONFIG_N25QXXX_QSPI_FREQUENCY=80000000 +# CONFIG_N25QXXX_SECTOR512 is not set +# CONFIG_MTD_SMART is not set +# CONFIG_MTD_RAMTRON is not set +# CONFIG_MTD_SST25 is not set +# CONFIG_MTD_SST25XX is not set +# CONFIG_MTD_SST39FV is not set +# CONFIG_MTD_W25 is not set # CONFIG_EEPROM is not set # CONFIG_PIPES is not set # CONFIG_PM is not set @@ -603,7 +646,12 @@ CONFIG_USART2_2STOP=0 # # System Logging # -# CONFIG_RAMLOG is not set +CONFIG_RAMLOG=y +CONFIG_RAMLOG_SYSLOG=y +# CONFIG_RAMLOG_CONSOLE is not set +CONFIG_RAMLOG_BUFSIZE=8192 +# CONFIG_RAMLOG_CRLF is not set +CONFIG_RAMLOG_NONBLOCKING=y # CONFIG_SYSLOG_CONSOLE is not set # @@ -628,25 +676,41 @@ CONFIG_USART2_2STOP=0 # CONFIG_DISABLE_MOUNTPOINT is not set # CONFIG_FS_AUTOMOUNTER is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set -# CONFIG_FS_READABLE is not set -# CONFIG_FS_WRITABLE is not set +CONFIG_FS_READABLE=y +CONFIG_FS_WRITABLE=y # CONFIG_FS_NAMED_SEMAPHORES is not set CONFIG_FS_MQUEUE_MPATH="/var/mqueue" # CONFIG_FS_RAMMAP is not set -# CONFIG_FS_FAT is not set +CONFIG_FS_FAT=y +# CONFIG_FAT_LCNAMES is not set +# CONFIG_FAT_LFN is not set +# CONFIG_FS_FATTIME is not set +# CONFIG_FAT_FORCE_INDIRECT is not set +# CONFIG_FAT_DMAMEMORY is not set +# CONFIG_FAT_DIRECT_RETRY is not set # CONFIG_FS_NXFFS is not set # CONFIG_FS_ROMFS is not set # CONFIG_FS_TMPFS is not set # CONFIG_FS_SMARTFS is not set # CONFIG_FS_BINFS is not set -# CONFIG_FS_PROCFS is not set +CONFIG_FS_PROCFS=y +CONFIG_FS_PROCFS_REGISTER=y + +# +# Exclude individual procfs entries +# +# CONFIG_FS_PROCFS_EXCLUDE_PROCESS is not set +# CONFIG_FS_PROCFS_EXCLUDE_UPTIME is not set +# CONFIG_FS_PROCFS_EXCLUDE_MOUNTS is not set +# CONFIG_FS_PROCFS_EXCLUDE_MTD is not set # CONFIG_FS_UNIONFS is not set # # System Logging # -# CONFIG_SYSLOG is not set +CONFIG_SYSLOG=y # CONFIG_SYSLOG_TIMESTAMP is not set +# CONFIG_SYSLOG_CHAR is not set # # Graphics Support @@ -707,6 +771,8 @@ CONFIG_POSIX_SPAWN_PROXY_STACKSIZE=1024 CONFIG_TASK_SPAWN_DEFAULT_STACKSIZE=2048 # CONFIG_LIBC_STRERROR is not set # CONFIG_LIBC_PERROR_STDOUT is not set +CONFIG_LIBC_TMPDIR="/tmp" +CONFIG_LIBC_MAX_TMPFILE=32 CONFIG_ARCH_LOWPUTC=y # CONFIG_LIBC_LOCALTIME is not set # CONFIG_TIME_EXTENDED is not set @@ -716,6 +782,7 @@ CONFIG_LIB_SENDFILE_BUFSIZE=512 CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set +# CONFIG_NETDB_HOSTFILE is not set # # Non-standard Library Support @@ -771,6 +838,14 @@ CONFIG_EXAMPLES_BUTTONS_NAME7="Button 7" # CONFIG_EXAMPLES_CXXTEST is not set # CONFIG_EXAMPLES_DHCPD is not set # CONFIG_EXAMPLES_ELF is not set +CONFIG_EXAMPLES_FSTEST=y +CONFIG_EXAMPLES_FSTEST_MAXNAME=32 +CONFIG_EXAMPLES_FSTEST_MAXFILE=8192 +CONFIG_EXAMPLES_FSTEST_MAXIO=347 +CONFIG_EXAMPLES_FSTEST_MAXOPEN=512 +CONFIG_EXAMPLES_FSTEST_MOUNTPT="/mnt/n25qxxx" +CONFIG_EXAMPLES_FSTEST_NLOOPS=1 +CONFIG_EXAMPLES_FSTEST_VERBOSE=y # CONFIG_EXAMPLES_FTPC is not set # CONFIG_EXAMPLES_FTPD is not set # CONFIG_EXAMPLES_HELLO is not set @@ -779,7 +854,9 @@ CONFIG_EXAMPLES_BUTTONS_NAME7="Button 7" # CONFIG_EXAMPLES_HIDKBD is not set # CONFIG_EXAMPLES_KEYPADTEST is not set # CONFIG_EXAMPLES_IGMP is not set -# CONFIG_EXAMPLES_MEDIA is not set +CONFIG_EXAMPLES_MEDIA=y +CONFIG_EXAMPLES_MEDIA_DEVPATH="/dev/mtd0" +CONFIG_EXAMPLES_MEDIA_BLOCKSIZE=512 # CONFIG_EXAMPLES_MM is not set # CONFIG_EXAMPLES_MODBUS is not set # CONFIG_EXAMPLES_MOUNT is not set @@ -823,6 +900,7 @@ CONFIG_EXAMPLES_NSAMPLES=8 # CONFIG_EXAMPLES_TIFF is not set # CONFIG_EXAMPLES_TOUCHSCREEN is not set # CONFIG_EXAMPLES_WEBSERVER is not set +# CONFIG_EXAMPLES_USBSERIAL is not set # CONFIG_EXAMPLES_USBTERM is not set # CONFIG_EXAMPLES_WATCHDOG is not set @@ -830,6 +908,7 @@ CONFIG_EXAMPLES_NSAMPLES=8 # File System Utilities # # CONFIG_FSUTILS_INIFILE is not set +# CONFIG_FSUTILS_PASSWD is not set # # GPS Utilities @@ -845,6 +924,7 @@ CONFIG_EXAMPLES_NSAMPLES=8 # # Interpreters # +# CONFIG_INTERPRETERS_BAS is not set # CONFIG_INTERPRETERS_FICL is not set # CONFIG_INTERPRETERS_PCODE is not set # CONFIG_INTERPRETERS_MICROPYTHON is not set @@ -911,6 +991,7 @@ CONFIG_NSH_DISABLE_LOSMART=y # CONFIG_NSH_DISABLE_LS is not set # CONFIG_NSH_DISABLE_MB is not set # CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MKFATFS is not set # CONFIG_NSH_DISABLE_MKFIFO is not set # CONFIG_NSH_DISABLE_MKRD is not set # CONFIG_NSH_DISABLE_MH is not set @@ -940,6 +1021,7 @@ CONFIG_NSH_DISABLE_LOSMART=y # CONFIG_NSH_CMDOPT_DF_H is not set CONFIG_NSH_CODECS_BUFSIZE=128 # CONFIG_NSH_CMDOPT_HEXDUMP is not set +CONFIG_NSH_PROC_MOUNTPOINT="/proc" CONFIG_NSH_FILEIOSIZE=512 # @@ -954,7 +1036,7 @@ CONFIG_NSH_FILEIOSIZE=512 # CONFIG_NSH_CONSOLE=y # CONFIG_NSH_ALTCONDEV is not set -# CONFIG_NSH_ARCHINIT is not set +CONFIG_NSH_ARCHINIT=y # CONFIG_NSH_LOGIN is not set # CONFIG_NSH_CONSOLE_LOGIN is not set @@ -974,6 +1056,7 @@ CONFIG_NSH_CONSOLE=y # CONFIG_SYSTEM_CLE is not set # CONFIG_SYSTEM_CUTERM is not set # CONFIG_SYSTEM_INSTALL is not set +# CONFIG_SYSTEM_FLASH_ERASEALL is not set # CONFIG_SYSTEM_HEX2BIN is not set # CONFIG_SYSTEM_HEXED is not set # CONFIG_SYSTEM_RAMTEST is not set diff --git a/configs/stm32l476vg-disco/src/stm32_appinit.c b/configs/stm32l476vg-disco/src/stm32_appinit.c index 1b9056b75d..f1a65067e6 100644 --- a/configs/stm32l476vg-disco/src/stm32_appinit.c +++ b/configs/stm32l476vg-disco/src/stm32_appinit.c @@ -39,9 +39,12 @@ #include +#include +#include #include #include #include +#include #include #include @@ -51,8 +54,45 @@ #include +#include +#include +#include +#include +#include + #include "stm32l476vg-disco.h" +/* Conditional logic in stm32l476vg-disco.h will determine if certain features + * are supported. Tests for these features need to be made after including + * stm32l476vg-disco.h. + */ + +#ifdef HAVE_RTC_DRIVER +# include +# include "stm32l4_rtc.h" +#endif + +#if defined(HAVE_N25QXXX) || defined(HAVE_PROGMEM_CHARDEV) +# include +#endif + +#ifdef HAVE_N25QXXX +# include +# include "stm32l4_qspi.h" +#endif + +/**************************************************************************** + * Pre-processor Definitions + ****************************************************************************/ + +/* Debug ********************************************************************/ + +#ifdef CONFIG_BOARD_INITIALIZE +# define SYSLOG lldbg +#else +# define SYSLOG dbg +#endif + /**************************************************************************** * Public Functions ****************************************************************************/ @@ -61,17 +101,159 @@ * Name: board_app_initialize * * Description: - * Perform architecture specific initialization + * Application initialization stub for boardctl() * ****************************************************************************/ +#ifdef CONFIG_LIB_BOARDCTL int board_app_initialize(void) { +#ifdef HAVE_RTC_DRIVER + FAR struct rtc_lowerhalf_s *lower; +#endif +#ifdef HAVE_N25QXXX + FAR struct qspi_dev_s *qspi; +#endif +#if defined(HAVE_N25QXXX) || defined(HAVE_PROGMEM_CHARDEV) + FAR struct mtd_dev_s *mtd; +#endif +#if defined(HAVE_N25QXXX_CHARDEV) || defined(HAVE_PROGMEM_CHARDEV) + char blockdev[18]; + char chardev[12]; +#endif + int ret; + + (void)ret; + /* Configure CPU load estimation */ #ifdef CONFIG_SCHED_INSTRUMENTATION cpuload_initialize_once(); #endif +#ifdef HAVE_PROC + /* mount the proc filesystem */ + + syslog(LOG_INFO, "Mounting procfs to /proc\n"); + + ret = mount(NULL, CONFIG_NSH_PROC_MOUNTPOINT, "procfs", 0, NULL); + if (ret < 0) + { + syslog(LOG_ERR, + "ERROR: Failed to mount the PROC filesystem: %d (%d)\n", + ret, errno); + return ret; + } +#endif + +#ifdef HAVE_RTC_DRIVER + /* Instantiate the STM32 lower-half RTC driver */ + + lower = stm32l4_rtc_lowerhalf(); + if (!lower) + { + sdbg("ERROR: Failed to instantiate the RTC lower-half driver\n"); + return -ENOMEM; + } + else + { + /* Bind the lower half driver and register the combined RTC driver + * as /dev/rtc0 + */ + + ret = rtc_initialize(0, lower); + if (ret < 0) + { + sdbg("ERROR: Failed to bind/register the RTC driver: %d\n", ret); + return ret; + } + } +#endif + +#ifdef HAVE_N25QXXX + /* Create an instance of the STM32L4 QSPI device driver */ + + qspi = stm32l4_qspi_initialize(0); + if (!qspi) + { + SYSLOG("ERROR: sam_qspi_initialize failed\n"); + } + else + { + /* Use the QSPI device instance to initialize the + * N25QXXX device. + */ + + mtd = n25qxxx_initialize(qspi, true); + if (!mtd) + { + SYSLOG("ERROR: n25qxxx_initialize failed\n"); + } + +#ifdef HAVE_N25QXXX_SMARTFS + /* Configure the device with no partition support */ + + ret = smart_initialize(N25QXXX_SMART_MINOR, mtd, NULL); + if (ret != OK) + { + SYSLOG("ERROR: Failed to initialize SmartFS: %d\n", ret); + } + +#elif defined(HAVE_N25QXXX_NXFFS) + /* Initialize to provide NXFFS on the N25QXXX MTD interface */ + + ret = nxffs_initialize(mtd); + if (ret < 0) + { + SYSLOG("ERROR: NXFFS initialization failed: %d\n", ret); + } + + /* Mount the file system at /mnt/n25qxxx */ + + ret = mount(NULL, "/mnt/n25qxxx", "nxffs", 0, NULL); + if (ret < 0) + { + SYSLOG("ERROR: Failed to mount the NXFFS volume: %d\n", errno); + return ret; + } + +#else /* if defined(HAVE_N25QXXX_CHARDEV) */ + /* Use the FTL layer to wrap the MTD driver as a block driver */ + + ret = ftl_initialize(N25QXXX_MTD_MINOR, mtd); + if (ret < 0) + { + SYSLOG("ERROR: Failed to initialize the FTL layer: %d\n", ret); + return ret; + } + + /* Use the minor number to create device paths */ + + snprintf(blockdev, 18, "/dev/mtdblock%d", N25QXXX_MTD_MINOR); + snprintf(chardev, 12, "/dev/mtd%d", N25QXXX_MTD_MINOR); + + /* Now create a character device on the block device */ + + /* NOTE: for this to work, you will need to make sure that + * CONFIG_FS_WRITABLE is set in the config. It's not a user- + * visible setting, but you can make it set by selecting an + * arbitrary writeable file system (you don't have to actually + * use it, just select it so that the block device created via + * ftl_initialize() will be writeable). Personally, I chose FAT, + * because SMARTFS and NXFFS will cause the other code branches + * above to become active. + */ + + ret = bchdev_register(blockdev, chardev, false); + if (ret < 0) + { + SYSLOG("ERROR: bchdev_register %s failed: %d\n", chardev, ret); + return ret; + } +#endif + } +#endif + return OK; } +#endif /* CONFIG_LIB_BOARDCTL */ diff --git a/configs/stm32l476vg-disco/src/stm32l476vg-disco.h b/configs/stm32l476vg-disco/src/stm32l476vg-disco.h index ba184d19e6..03c63bc3ea 100644 --- a/configs/stm32l476vg-disco/src/stm32l476vg-disco.h +++ b/configs/stm32l476vg-disco/src/stm32l476vg-disco.h @@ -53,6 +53,84 @@ ************************************************************************************/ /* Configuration ********************************************************************/ +#define HAVE_PROC 1 +#define HAVE_RTC_DRIVER 1 +#define HAVE_N25QXXX 1 +#define HAVE_N25QXXX_NXFFS 1 +#define HAVE_N25QXXX_SMARTFS 1 +#define HAVE_N25QXXX_CHARDEV 1 +#define HAVE_PROGMEM_CHARDEV 1 + +#if !defined(CONFIG_FS_PROCFS) +# undef HAVE_PROC +#endif + +#if defined(HAVE_PROC) && defined(CONFIG_DISABLE_MOUNTPOINT) +# warning Mountpoints disabled. No procfs support +# undef HAVE_PROC +#endif + +/* Check if we can support the RTC driver */ + +#if !defined(CONFIG_RTC) || !defined(CONFIG_RTC_DRIVER) +# undef HAVE_RTC_DRIVER +#endif + +/* N25QXXX QuadSPI FLASH */ + +#ifndef CONFIG_MTD_N25QXXX +# undef HAVE_N25QXXX +# undef HAVE_N25QXXX_NXFFS +# undef HAVE_N25QXXX_SMARTFS +# undef HAVE_N25QXXX_CHARDEV +#endif + +#ifndef CONFIG_STM32L4_QSPI +# undef HAVE_N25QXXX +# undef HAVE_N25QXXX_NXFFS +# undef HAVE_N25QXXX_SMARTFS +# undef HAVE_N25QXXX_CHARDEV +#endif + +#ifndef CONFIG_FS_NXFFS +# undef HAVE_N25QXXX_NXFFS +#endif + +#if !defined(CONFIG_MTD_SMART) || !defined(CONFIG_FS_SMARTFS) +# undef HAVE_N25QXXX_SMARTFS +#endif + +#if defined(HAVE_N25QXXX_NXFFS) && defined(HAVE_N25QXXX_SMARTFS) +# undef HAVE_N25QXXX_NXFFS +#endif + +#if defined(HAVE_N25QXXX_NXFFS) || defined(HAVE_N25QXXX_SMARTFS) +# undef HAVE_N25QXXX_CHARDEV +#endif + +/* On-chip Programming Memory */ + +#if !defined(CONFIG_STM32L4_PROGMEM) || !defined(CONFIG_MTD_PROGMEM) +# undef HAVE_PROGMEM_CHARDEV +#endif + +/* If both the N25QXXX FLASH and SmartFS, then this is the minor device + * number of the Smart block driver (/dev/smartN) + */ + +#define N25QXXX_SMART_MINOR 0 + +/* If the N25QXXX FLASH is enabled but not SmartFS, then the N25QXXX will be + * wrapped as a character device. This is the minor number of both the + * block device (/dev/mtdblockN) and the character device (/dev/mtdN). + */ + +#define N25QXXX_MTD_MINOR 0 + +/* This is the on-chip progmem memroy driver minor number */ + +#define PROGMEM_MTD_MINOR 1 + /* LED. * LD4: the red LED on PB2 * LD5: the green LED on PE8 @@ -110,7 +188,7 @@ /* XXX IS this 'unshifted'? */ -#define NUCLEO_I2C_OBDEV_CS43L22 0x94 +#define DISCO_I2C_OBDEV_CS43L22 0x94 /************************************************************************************ * Public Data -- GitLab From 26ba3a2b965e84f3a5ae7d833d96f9552b397db2 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 18 Apr 2016 06:50:45 -0600 Subject: [PATCH 035/307] Cosmetic changes from review of last PR --- arch/arm/src/armv7-a/arm_restorefpu.S | 4 - arch/arm/src/armv7-a/arm_saveusercontext.S | 16 - arch/arm/src/stm32l4/chip/stm32l4_qspi.h | 2 +- arch/arm/src/stm32l4/stm32l4_qspi.c | 320 ++++++++++-------- configs/stm32l476vg-disco/include/board.h | 24 +- configs/stm32l476vg-disco/src/stm32_appinit.c | 2 +- 6 files changed, 196 insertions(+), 172 deletions(-) diff --git a/arch/arm/src/armv7-a/arm_restorefpu.S b/arch/arm/src/armv7-a/arm_restorefpu.S index 6633e6dc51..edebcecae2 100644 --- a/arch/arm/src/armv7-a/arm_restorefpu.S +++ b/arch/arm/src/armv7-a/arm_restorefpu.S @@ -45,10 +45,6 @@ .file "arm_restorefpu.S" -/************************************************************************************ - * Pre-processor Definitions - ************************************************************************************/ - /************************************************************************************ * Public Symbols ************************************************************************************/ diff --git a/arch/arm/src/armv7-a/arm_saveusercontext.S b/arch/arm/src/armv7-a/arm_saveusercontext.S index 67b0ccdcb3..0f75bc8432 100644 --- a/arch/arm/src/armv7-a/arm_saveusercontext.S +++ b/arch/arm/src/armv7-a/arm_saveusercontext.S @@ -42,28 +42,12 @@ .file "arm_saveusercontext.S" -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - /**************************************************************************** * Public Symbols ****************************************************************************/ .globl up_saveusercontext -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Public Data - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ diff --git a/arch/arm/src/stm32l4/chip/stm32l4_qspi.h b/arch/arm/src/stm32l4/chip/stm32l4_qspi.h index f6385309be..41c0f24c46 100644 --- a/arch/arm/src/stm32l4/chip/stm32l4_qspi.h +++ b/arch/arm/src/stm32l4/chip/stm32l4_qspi.h @@ -48,12 +48,12 @@ /**************************************************************************************** * Pre-processor Definitions ****************************************************************************************/ + /* General Characteristics **************************************************************/ #define STM32L4_QSPI_MINBITS 8 /* Minimum word width */ #define STM32L4_QSPI_MAXBITS 32 /* Maximum word width */ - /* QSPI register offsets ****************************************************************/ #define STM32L4_QUADSPI_CR_OFFSET 0x0000 /* Control Register */ diff --git a/arch/arm/src/stm32l4/stm32l4_qspi.c b/arch/arm/src/stm32l4/stm32l4_qspi.c index f23ea40328..258798388a 100644 --- a/arch/arm/src/stm32l4/stm32l4_qspi.c +++ b/arch/arm/src/stm32l4/stm32l4_qspi.c @@ -77,8 +77,7 @@ #define MEMORY_SYNC() do { ARM_DSB(); ARM_ISB(); } while (0) -/* Ensure that the DMA buffers are word-aligned. - */ +/* Ensure that the DMA buffers are word-aligned. */ #define ALIGN_SHIFT 2 #define ALIGN_MASK 3 @@ -134,7 +133,8 @@ #undef QSPI_USE_INTERRUPTS #undef CONFIG_STM32L4_QSPI_DMA -/* sanity check that board.h defines requisite QSPI pinmap options for */ +/* Sanity check that board.h defines requisite QSPI pinmap options for */ + #if (!defined(GPIO_QSPI_CS) || !defined(GPIO_QSPI_IO0) || !defined(GPIO_QSPI_IO1) || \ !defined(GPIO_QSPI_IO2) || !defined(GPIO_QSPI_IO3) || !defined(GPIO_QSPI_SCK)) # error you must define QSPI pinmapping options for GPIO_QSPI_CS GPIO_QSPI_IO0 \ @@ -212,13 +212,13 @@ struct qspi_xctnspec_s { uint8_t instrmode; /* 'instruction mode'; 0=none, 1=single, 2=dual, 3=quad */ uint8_t instr; /* the (8-bit) Instruction (if any) */ - + uint8_t addrmode; /* 'address mode'; 0=none, 1=single, 2=dual, 3=quad */ - uint8_t addrsize; /* address size ( n - 1 ); 0, 1, 2, 3 */ + uint8_t addrsize; /* address size (n - 1); 0, 1, 2, 3 */ uint32_t addr; /* the address (if any) (1 to 4 bytes as per addrsize) */ - + uint8_t altbytesmode; /* 'alt bytes mode'; 0=none, 1=single, 2=dual, 3=quad */ - uint8_t altbytessize; /* 'alt bytes' size ( n - 1 ); 0, 1, 2, 3 */ + uint8_t altbytessize; /* 'alt bytes' size (n - 1); 0, 1, 2, 3 */ uint32_t altbytes; /* the 'alt bytes' (if any) */ uint8_t dummycycles; /* number of Dummy Cycles; 0 - 32 */ @@ -226,12 +226,11 @@ struct qspi_xctnspec_s uint8_t datamode; /* 'data mode'; 0=none, 1=single, 2=dual, 3=quad */ uint32_t datasize; /* number of data bytes (0xffffffff == undefined) */ FAR void *buffer; /* Data buffer */ - + uint32_t isddr; /* true if 'double data rate' */ uint32_t issioo; /* true if 'send instruction only once' mode */ }; - /**************************************************************************** * Private Function Prototypes ****************************************************************************/ @@ -322,10 +321,6 @@ static struct stm32l4_qspidev_s g_qspi0dev = #endif }; -/**************************************************************************** - * Public Data - ****************************************************************************/ - /**************************************************************************** * Private Functions ****************************************************************************/ @@ -453,10 +448,10 @@ static void qspi_dumpregs(struct stm32l4_qspidev_s *priv, const char *msg) qspivdbg("%s:\n", msg); #if 0 - /* this extra verbose output may be helpful in some cases; you'll need + /* this extra verbose output may be helpful in some cases; you'll need to make sure your syslog is large enough to accomodate the extra output. */ - + regval = getreg32(priv->base + STM32L4_QUADSPI_CR_OFFSET); /* Control Register */ qspivdbg("CR:%08x\n",regval); qspivdbg(" EN:%1d ABORT:%1d DMAEN:%1d TCEN:%1d SSHIFT:%1d\n" @@ -576,7 +571,7 @@ static void qspi_dumpgpioconfig(const char *msg) * OK, or -errno if invalid * ****************************************************************************/ - + static int qspi_setupxctnfromcmd(struct qspi_xctnspec_s *xctn, const struct qspi_cmdinfo_s *cmdinfo) { @@ -601,16 +596,19 @@ static int qspi_setupxctnfromcmd(struct qspi_xctnspec_s *xctn, #endif DEBUGASSERT(cmdinfo->cmd < 256); - - /* Specify the instruction as per command info */ + /* Specify the instruction as per command info */ /* XXX III instruction mode, single dual quad option bits */ + xctn->instrmode = CCR_IMODE_SINGLE; xctn->instr = cmdinfo->cmd; + /* XXX III option bits for 'send instruction only once' */ + xctn->issioo = 0; /* XXX III options for alt bytes, dummy cycles */ + xctn->altbytesmode = CCR_ABMODE_NONE; xctn->altbytessize = CCR_ABSIZE_8; xctn->altbytes = 0; @@ -621,6 +619,7 @@ static int qspi_setupxctnfromcmd(struct qspi_xctnspec_s *xctn, if (QSPICMD_ISADDRESS(cmdinfo->flags)) { /* XXX III address mode mode, single, dual, quad option bits */ + xctn->addrmode = CCR_ADMODE_SINGLE; if (cmdinfo->addrlen == 1) { @@ -642,6 +641,7 @@ static int qspi_setupxctnfromcmd(struct qspi_xctnspec_s *xctn, { return -EINVAL; } + xctn->addr = cmdinfo->addr; } else @@ -652,14 +652,17 @@ static int qspi_setupxctnfromcmd(struct qspi_xctnspec_s *xctn, } /* Specify the data as needed */ - + xctn->buffer = cmdinfo->buffer; if (QSPICMD_ISDATA(cmdinfo->flags)) { /* XXX III data mode mode, single, dual, quad option bits */ + xctn->datamode = CCR_DMODE_SINGLE; xctn->datasize = cmdinfo->buflen; + /* XXX III double data rate option bits */ + xctn->isddr = 0; } else @@ -686,7 +689,7 @@ static int qspi_setupxctnfromcmd(struct qspi_xctnspec_s *xctn, * OK, or -errno if invalid * ****************************************************************************/ - + static int qspi_setupxctnfrommem(struct qspi_xctnspec_s *xctn, const struct qspi_meminfo_s *meminfo) { @@ -703,32 +706,45 @@ static int qspi_setupxctnfrommem(struct qspi_xctnspec_s *xctn, #endif DEBUGASSERT(meminfo->cmd < 256); - + /* Specify the instruction as per command info */ /* XXX III instruction mode, single dual quad option bits */ + xctn->instrmode = CCR_IMODE_SINGLE; xctn->instr = meminfo->cmd; + /* XXX III option bits for 'send instruction only once' */ + xctn->issioo = 0; /* XXX III options for alt bytes */ + xctn->altbytesmode = CCR_ABMODE_NONE; xctn->altbytessize = CCR_ABSIZE_8; xctn->altbytes = 0; - + xctn->dummycycles = meminfo->dummies; /* Specify the address size as needed */ - /* XXX III there should be a separate flags for single/dual/quad for each of i,a,d */ + /* XXX III there should be a separate flags for single/dual/quad for each + * of i,a,d + */ + if (QSPIMEM_ISDUALIO(meminfo->flags)) - xctn->addrmode = CCR_ADMODE_DUAL; + { + xctn->addrmode = CCR_ADMODE_DUAL; + } else if (QSPIMEM_ISQUADIO(meminfo->flags)) - xctn->addrmode = CCR_ADMODE_QUAD; + { + xctn->addrmode = CCR_ADMODE_QUAD; + } else - xctn->addrmode = CCR_ADMODE_SINGLE; - + { + xctn->addrmode = CCR_ADMODE_SINGLE; + } + if (meminfo->addrlen == 1) { xctn->addrsize = CCR_ADSIZE_8; @@ -749,23 +765,33 @@ static int qspi_setupxctnfrommem(struct qspi_xctnspec_s *xctn, { return -EINVAL; } + xctn->addr = meminfo->addr; /* Specify the data as needed */ - + xctn->buffer = meminfo->buffer; + /* XXX III there should be a separate flags for single/dual/quad for each of i,a,d */ + if (QSPIMEM_ISDUALIO(meminfo->flags)) - xctn->datamode = CCR_DMODE_DUAL; + { + xctn->datamode = CCR_DMODE_DUAL; + } else if (QSPIMEM_ISQUADIO(meminfo->flags)) - xctn->datamode = CCR_DMODE_QUAD; + { + xctn->datamode = CCR_DMODE_QUAD; + } else - xctn->datamode = CCR_DMODE_SINGLE; - + { + xctn->datamode = CCR_DMODE_SINGLE; + } + xctn->datasize = meminfo->buflen; + /* XXX III double data rate option bits */ - xctn->isddr = 0; + xctn->isddr = 0; return OK; } @@ -789,15 +815,15 @@ static void qspi_waitstatusflags(struct stm32l4_qspidev_s *priv, uint32_t mask, int polarity) { uint32_t regval; - - if ( polarity ) - { - while ( !((regval = qspi_getreg(priv, STM32L4_QUADSPI_SR_OFFSET)) & mask)) ; - } + + if (polarity) + { + while (!((regval = qspi_getreg(priv, STM32L4_QUADSPI_SR_OFFSET)) & mask)); + } else - { - while ( ((regval = qspi_getreg(priv, STM32L4_QUADSPI_SR_OFFSET)) & mask)) ; - } + { + while (((regval = qspi_getreg(priv, STM32L4_QUADSPI_SR_OFFSET)) & mask)); + } } /**************************************************************************** @@ -821,39 +847,39 @@ static void qspi_ccrconfig(struct stm32l4_qspidev_s *priv, uint8_t fctn) { uint32_t regval; - - /* if we have data, and it's not memory mapped, write the length */ - - if ( CCR_DMODE_NONE != xctn->datamode && CCR_FMODE_MEMMAP != fctn ) + + /* If we have data, and it's not memory mapped, write the length */ + + if (CCR_DMODE_NONE != xctn->datamode && CCR_FMODE_MEMMAP != fctn) { qspi_putreg(priv, xctn->datasize-1, STM32L4_QUADSPI_DLR_OFFSET); } - - /* if we have alternate bytes, stick them in now */ - - if ( CCR_ABMODE_NONE != xctn->altbytesmode ) + + /* If we have alternate bytes, stick them in now */ + + if (CCR_ABMODE_NONE != xctn->altbytesmode) { qspi_putreg(priv, xctn->altbytes, STM32L4_QUADSPI_ABR_OFFSET); } - - /* build the CCR value and set it */ - - regval = QSPI_CCR_INST(xctn->instr) | - QSPI_CCR_IMODE(xctn->instrmode) | - QSPI_CCR_ADMODE(xctn->addrmode) | - QSPI_CCR_ADSIZE(xctn->addrsize) | - QSPI_CCR_ABMODE(xctn->altbytesmode) | - QSPI_CCR_ABSIZE(xctn->altbytessize) | - QSPI_CCR_DCYC(xctn->dummycycles) | - QSPI_CCR_DMODE(xctn->datamode) | - QSPI_CCR_FMODE(fctn) | - (xctn->isddr ? QSPI_CCR_SIOO : 0) | + + /* Build the CCR value and set it */ + + regval = QSPI_CCR_INST(xctn->instr) | + QSPI_CCR_IMODE(xctn->instrmode) | + QSPI_CCR_ADMODE(xctn->addrmode) | + QSPI_CCR_ADSIZE(xctn->addrsize) | + QSPI_CCR_ABMODE(xctn->altbytesmode) | + QSPI_CCR_ABSIZE(xctn->altbytessize) | + QSPI_CCR_DCYC(xctn->dummycycles) | + QSPI_CCR_DMODE(xctn->datamode) | + QSPI_CCR_FMODE(fctn) | + (xctn->isddr ? QSPI_CCR_SIOO : 0) | (xctn->issioo ? QSPI_CCR_DDRM : 0); qspi_putreg(priv, regval, STM32L4_QUADSPI_CCR_OFFSET); - /* if we have and need and address, set that now, too */ - - if ( CCR_ADMODE_NONE != xctn->addrmode && CCR_FMODE_MEMMAP != fctn ) + /* If we have and need and address, set that now, too */ + + if (CCR_ADMODE_NONE != xctn->addrmode && CCR_FMODE_MEMMAP != fctn) { qspi_putreg(priv, xctn->addr, STM32L4_QUADSPI_AR_OFFSET); } @@ -884,13 +910,14 @@ static int qspi_receive_blocking(struct stm32l4_qspidev_s *priv, uint32_t regval; addrval = qspi_getreg(priv, STM32L4_QUADSPI_AR_OFFSET); - if(dest != NULL ) + if (dest != NULL) { - /* counter of remaining data */ + /* Counter of remaining data */ + uint32_t remaining = xctn->datasize; - - /* ensure CCR register specifies indirect read */ - + + /* Ensure CCR register specifies indirect read */ + regval = qspi_getreg(priv, STM32L4_QUADSPI_CCR_OFFSET); regval &= ~QSPI_CCR_FMODE_MASK; regval |= QSPI_CCR_FMODE(CCR_FMODE_INDRD); @@ -899,29 +926,29 @@ static int qspi_receive_blocking(struct stm32l4_qspidev_s *priv, /* Start the transfer by re-writing the address in AR register */ qspi_putreg(priv, addrval, STM32L4_QUADSPI_AR_OFFSET); - - /* transfer loop */ - - while(remaining > 0) + + /* Transfer loop */ + + while (remaining > 0) { /* Wait for Fifo Threshold, or Transfer Complete, to read data */ - + qspi_waitstatusflags(priv, QSPI_SR_FTF|QSPI_SR_TCF, 1); - + *dest = *(volatile uint8_t*)datareg; dest++; remaining--; } - + if (ret == OK) { /* Wait for transfer complete, then clear it */ - + qspi_waitstatusflags(priv, QSPI_SR_TCF, 1); qspi_putreg(priv, QSPI_FCR_CTCF, STM32L4_QUADSPI_FCR); - - /* use Abort to clear the busy flag, and ditch any extra bytes in fifo */ - + + /* Use Abort to clear the busy flag, and ditch any extra bytes in fifo */ + regval = qspi_getreg(priv, STM32L4_QUADSPI_CR_OFFSET); regval |= QSPI_CR_ABORT; qspi_putreg(priv, regval, STM32L4_QUADSPI_CR_OFFSET); @@ -949,7 +976,7 @@ static int qspi_receive_blocking(struct stm32l4_qspidev_s *priv, * OK, or -errno on error * ****************************************************************************/ - + static int qspi_transmit_blocking(struct stm32l4_qspidev_s *priv, struct qspi_xctnspec_s* xctn) { @@ -958,32 +985,33 @@ static int qspi_transmit_blocking(struct stm32l4_qspidev_s *priv, uint8_t *src = (uint8_t*)xctn->buffer; uint32_t regval; - if(src != NULL ) + if (src != NULL) { - /* counter of remaining data */ + /* Counter of remaining data */ + uint32_t remaining = xctn->datasize; - - /* transfer loop */ - - while(remaining > 0) + + /* Transfer loop */ + + while (remaining > 0) { /* Wait for Fifo Threshold to write data */ - + qspi_waitstatusflags(priv, QSPI_SR_FTF, 1); - + *(volatile uint8_t*)datareg = *src++; remaining--; } - + if (ret == OK) { /* Wait for transfer complete, then clear it */ - + qspi_waitstatusflags(priv, QSPI_SR_TCF, 1); qspi_putreg(priv, QSPI_FCR_CTCF, STM32L4_QUADSPI_FCR); - - /* use Abort to cler the Busy flag */ - + + /* Use Abort to cler the Busy flag */ + regval = qspi_getreg(priv, STM32L4_QUADSPI_CR_OFFSET); regval |= QSPI_CR_ABORT; qspi_putreg(priv, regval, STM32L4_QUADSPI_CR_OFFSET); @@ -1013,7 +1041,7 @@ static int qspi_transmit_blocking(struct stm32l4_qspidev_s *priv, * ****************************************************************************/ -static int qspi0_interrupt(int irq, void *context) +static int qspi0_interrupt(int irq, void *context) { /* XXX III needs implementation */ (void)g_qspi0dev; @@ -1021,8 +1049,7 @@ static int qspi0_interrupt(int irq, void *context) } #endif - - /**************************************************************************** +/**************************************************************************** * Name: qspi_lock * * Description: @@ -1054,8 +1081,8 @@ static int qspi_lock(struct qspi_dev_s *dev, bool lock) while (sem_wait(&priv->exclsem) != 0) { - /* The only case that an error should occur here is if the wait was awakened - * by a signal. + /* The only case that an error should occur here is if the wait + * was awakened by a signal. */ ASSERT(errno == EINTR); @@ -1083,6 +1110,7 @@ static int qspi_lock(struct qspi_dev_s *dev, bool lock) * Returns the actual frequency selected * ****************************************************************************/ + /*XXX partial*/ static uint32_t qspi_setfrequency(struct qspi_dev_s *dev, uint32_t frequency) { @@ -1245,8 +1273,9 @@ static void qspi_setmode(struct qspi_dev_s *dev, enum qspi_mode_e mode) static void qspi_setbits(struct qspi_dev_s *dev, int nbits) { - /* not meaningful for the STM32L4x6 */ - if ( 8 != nbits ) + /* Not meaningful for the STM32L4x6 */ + + if (8 != nbits) { qspivdbg("unsupported nbits=%d\n", nbits); DEBUGASSERT(FALSE); @@ -1274,31 +1303,34 @@ static int qspi_command(struct qspi_dev_s *dev, struct stm32l4_qspidev_s *priv = (struct stm32l4_qspidev_s *)dev; struct qspi_xctnspec_s xctn; int ret; - + /* Set up the transaction descriptor as per command info */ ret = qspi_setupxctnfromcmd(&xctn, cmdinfo); - if ( OK != ret ) + if (OK != ret) { return ret; } /* Prepare for transaction */ - /* wait 'till non-busy */ - + /* Wait 'till non-busy */ + qspi_waitstatusflags(priv, QSPI_SR_BUSY, 0); - + /* Clear flags */ - - qspi_putreg(priv, QSPI_FCR_CTEF | QSPI_FCR_CTCF | QSPI_FCR_CSMF | QSPI_FCR_CTOF, STM32L4_QUADSPI_FCR); - /* XXX III this is for polling mode; support interrupt and dma modes also and 'autopolling' */ - + qspi_putreg(priv, QSPI_FCR_CTEF | QSPI_FCR_CTCF | QSPI_FCR_CSMF | QSPI_FCR_CTOF, + STM32L4_QUADSPI_FCR); + + /* XXX III this is for polling mode; support interrupt and dma modes also + * and 'autopolling' + */ + /* Set up the Communications Configuration Register as per command info */ - - qspi_ccrconfig(priv, &xctn, - QSPICMD_ISWRITE(cmdinfo->flags) ? CCR_FMODE_INDWR : CCR_FMODE_INDRD ); + + qspi_ccrconfig(priv, &xctn, + QSPICMD_ISWRITE(cmdinfo->flags) ? CCR_FMODE_INDWR : CCR_FMODE_INDRD); /* That may be it, unless there is also data to transfer */ @@ -1309,17 +1341,21 @@ static int qspi_command(struct qspi_dev_s *dev, if (QSPICMD_ISWRITE(cmdinfo->flags)) { - /* XXX III we are going to do polling; revisit when we get interrupt and/or DMA up. */ - + /* XXX III we are going to do polling; revisit when we get + * interrupt and/or DMA up. + */ ret = qspi_transmit_blocking(priv, &xctn); } else { - /* XXX III we are going to do polling; revisit when we get interrupt and/or DMA up. */ + /* XXX III we are going to do polling; revisit when we get + * interrupt and/or DMA up. + */ ret = qspi_receive_blocking(priv, &xctn); } + MEMORY_SYNC(); } else @@ -1329,7 +1365,8 @@ static int qspi_command(struct qspi_dev_s *dev, /* XXX III this is for polling mode; support interrupt and dma modes also */ - /* wait for Transfer complete, and not busy */ + /* Wait for Transfer complete, and not busy */ + qspi_waitstatusflags(priv, QSPI_SR_TCF,1); qspi_waitstatusflags(priv, QSPI_SR_BUSY,0); @@ -1357,31 +1394,34 @@ static int qspi_memory(struct qspi_dev_s *dev, struct stm32l4_qspidev_s *priv = (struct stm32l4_qspidev_s *)dev; struct qspi_xctnspec_s xctn; int ret; - + /* Set up the transaction descriptor as per command info */ ret = qspi_setupxctnfrommem(&xctn, meminfo); - if ( OK != ret ) + if (OK != ret) { return ret; } /* Prepare for transaction */ - /* wait 'till non-busy */ - + /* Wait 'till non-busy */ + qspi_waitstatusflags(priv, QSPI_SR_BUSY, 0); - + /* Clear flags */ - - qspi_putreg(priv, QSPI_FCR_CTEF | QSPI_FCR_CTCF | QSPI_FCR_CSMF | QSPI_FCR_CTOF, STM32L4_QUADSPI_FCR); - /* XXX III this is for polling mode; support interrupt and dma modes also and 'autopolling' */ + qspi_putreg(priv, QSPI_FCR_CTEF | QSPI_FCR_CTCF | QSPI_FCR_CSMF | QSPI_FCR_CTOF, + STM32L4_QUADSPI_FCR); + + /* XXX III this is for polling mode; support interrupt and dma modes also + * nd 'autopolling' + */ /* Set up the Communications Configuration Register as per command info */ - - qspi_ccrconfig(priv, &xctn, - QSPICMD_ISWRITE(meminfo->flags) ? CCR_FMODE_INDWR : CCR_FMODE_INDRD ); + + qspi_ccrconfig(priv, &xctn, + QSPICMD_ISWRITE(meminfo->flags) ? CCR_FMODE_INDWR : CCR_FMODE_INDRD); /* Transfer data */ @@ -1390,13 +1430,17 @@ static int qspi_memory(struct qspi_dev_s *dev, if (QSPICMD_ISWRITE(meminfo->flags)) { - /* XXX III we are going to do polling; revisit when we get interrupt and/or DMA up. */ + /* XXX III we are going to do polling; revisit when we get interrupt + * and/or DMA up. + */ ret = qspi_transmit_blocking(priv, &xctn); } else { - /* XXX III we are going to do polling; revisit when we get interrupt and/or DMA up. */ + /* XXX III we are going to do polling; revisit when we get interrupt + * and/or DMA up. + */ ret = qspi_receive_blocking(priv, &xctn); } @@ -1405,6 +1449,7 @@ static int qspi_memory(struct qspi_dev_s *dev, #if 0 #ifdef CONFIG_STM32L4_QSPI_DMA /* Can we perform DMA? Should we perform DMA? */ + if (priv->candma && meminfo->buflen > CONFIG_STM32L4_QSPI_DMATHRESHOLD && IS_ALIGNED((uintptr_t)meminfo->buffer) && @@ -1421,7 +1466,8 @@ static int qspi_memory(struct qspi_dev_s *dev, /* XXX III this is for polling mode; support interrupt and dma modes also */ - /* wait for Transfer complete, and not busy */ + /* Wait for Transfer complete, and not busy */ + qspi_waitstatusflags(priv, QSPI_SR_TCF,1); qspi_waitstatusflags(priv, QSPI_SR_BUSY,0); @@ -1525,7 +1571,7 @@ static int qspi_hw_initialize(struct stm32l4_qspidev_s *priv) qspi_waitstatusflags(priv, QSPI_SR_BUSY, 0); /* Configure QSPI Clock Prescaler and Sample Shift */ - + regval = qspi_getreg(priv, STM32L4_QUADSPI_CR_OFFSET); regval &= ~(QSPI_CR_PRESCALER_MASK | QSPI_CR_SSHIFT); regval |= (0x01 << QSPI_CR_PRESCALER_SHIFT); @@ -1538,7 +1584,7 @@ static int qspi_hw_initialize(struct stm32l4_qspidev_s *priv) regval &= ~(QSPI_DCR_CKMODE | QSPI_DCR_CSHT_MASK | QSPI_DCR_FSIZE_MASK); regval |= (0x00); regval |= ((CONFIG_STM32L4_QSPI_CSHT-1) << QSPI_DCR_CSHT_SHIFT); - if ( 0 != CONFIG_STM32L4_QSPI_FLASH_SIZE ) + if (0 != CONFIG_STM32L4_QSPI_FLASH_SIZE) { unsigned int nSize = CONFIG_STM32L4_QSPI_FLASH_SIZE; int nLog2Size = 31; @@ -1564,7 +1610,7 @@ static int qspi_hw_initialize(struct stm32l4_qspidev_s *priv) qspi_dumpregs(priv, "After initialization"); qspi_dumpgpioconfig("GPIO"); - + return OK; } @@ -1608,7 +1654,7 @@ struct qspi_dev_s *stm32l4_qspi_initialize(int intf) /* Select QSPI0 */ priv = &g_qspi0dev; - + /* Enable clocking to the QSPI peripheral */ regval = getreg32(STM32L4_RCC_AHB3ENR); @@ -1617,7 +1663,7 @@ struct qspi_dev_s *stm32l4_qspi_initialize(int intf) regval = getreg32(STM32L4_RCC_AHB3ENR); /* Reset the QSPI peripheral */ - + regval = getreg32(STM32L4_RCC_AHB3RSTR); regval |= RCC_AHB3RSTR_QSPIRST; putreg32(regval, STM32L4_RCC_AHB3RSTR); diff --git a/configs/stm32l476vg-disco/include/board.h b/configs/stm32l476vg-disco/include/board.h index 926094ddee..dcf8bf6bdc 100644 --- a/configs/stm32l476vg-disco/include/board.h +++ b/configs/stm32l476vg-disco/include/board.h @@ -122,9 +122,7 @@ #define GPIO_I2C1_SDA_GPIO \ (GPIO_OUTPUT|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN7) -/* - * XXX Is I2C2 used on Disco? - */ +/* XXX Is I2C2 used on Disco? */ #if 0 @@ -146,18 +144,19 @@ #define GPIO_QSPI_IO3 (GPIO_QSPI_BK1_IO3_2 | GPIO_FLOAT | GPIO_PUSHPULL | GPIO_SPEED_100MHz) #define GPIO_QSPI_SCK (GPIO_QSPI_CLK_2 | GPIO_FLOAT | GPIO_PUSHPULL | GPIO_SPEED_100MHz) -//XXX hmm, elsewhere -//#define QSPI_USE_INTERRUPTS 1 -//XXX hmm, better? (2^(23+1)); this is the value that goes into FSIZE -//#define QSPI_FLASH_SIZE 23 +#if 0 +/* XXX hmm, elsewhere */ +#define QSPI_USE_INTERRUPTS 1 -/* SPI - */ +/* XXX hmm, better? (2^(23+1)); this is the value that goes into FSIZE */ -/* - * XXX is SPI1 used on Disco? - */ +#define QSPI_FLASH_SIZE 23 +#endif + +/* SPI */ + +/* XXX is SPI1 used on Disco? */ #if 0 @@ -167,7 +166,6 @@ #endif - /* SPI2 is used for several peripherals on the Discovery board, including * L3GD20 - 3 axis Gyroscope * LSM303CTR - eCompass, comprising an accelerometer and magnetometer diff --git a/configs/stm32l476vg-disco/src/stm32_appinit.c b/configs/stm32l476vg-disco/src/stm32_appinit.c index f1a65067e6..71da004099 100644 --- a/configs/stm32l476vg-disco/src/stm32_appinit.c +++ b/configs/stm32l476vg-disco/src/stm32_appinit.c @@ -125,9 +125,9 @@ int board_app_initialize(void) (void)ret; +#ifdef CONFIG_SCHED_INSTRUMENTATION /* Configure CPU load estimation */ -#ifdef CONFIG_SCHED_INSTRUMENTATION cpuload_initialize_once(); #endif -- GitLab From ca6f8224175236e0588c2353244801571fa971b2 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 18 Apr 2016 06:52:00 -0600 Subject: [PATCH 036/307] File missed in last commit --- configs/stm32l476vg-disco/include/stm32l476vg-disco-clocking.h | 1 - 1 file changed, 1 deletion(-) diff --git a/configs/stm32l476vg-disco/include/stm32l476vg-disco-clocking.h b/configs/stm32l476vg-disco/include/stm32l476vg-disco-clocking.h index 46639ef9c7..d90e38428f 100644 --- a/configs/stm32l476vg-disco/include/stm32l476vg-disco-clocking.h +++ b/configs/stm32l476vg-disco/include/stm32l476vg-disco-clocking.h @@ -69,7 +69,6 @@ #define BOARD_AHB_FREQUENCY 80000000ul - /* XXX review the STM32L4_BOARD_USEHSI usage, it has too much influence in * stm32l4x6xx_rcc.c. I suspect it is fine for it to turn on and off that * ocillator, but really that's all it should do (e.g. it also controls -- GitLab From f5f461da20da5a7d919761f898e493fe5cea7aba Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 18 Apr 2016 10:42:44 -0600 Subject: [PATCH 037/307] VNC: server is code complete --- graphics/vnc/server/vnc_server.h | 34 +-- graphics/vnc/server/vnc_updater.c | 407 ++++++++++++++++++++++++++++-- 2 files changed, 383 insertions(+), 58 deletions(-) diff --git a/graphics/vnc/server/vnc_server.h b/graphics/vnc/server/vnc_server.h index f563423d44..8433924cba 100644 --- a/graphics/vnc/server/vnc_server.h +++ b/graphics/vnc/server/vnc_server.h @@ -102,7 +102,7 @@ # define RFB_GSHIFT 8 # define RFB_BSHIFT 0 #else -# error Unspecified color format +# error Unspecified/unsupported color format #endif #ifndef CONFIG_VNCSERVER_SCREENWIDTH @@ -179,7 +179,8 @@ enum vnc_server_e VNCSERVER_CONNECTED, /* Connect to a client, but not yet configured */ VNCSERVER_CONFIGURED, /* Configured and ready to transfer graphics */ VNCSERVER_RUNNING, /* Running and activly transferring graphics */ - VNCSERVER_STOPPING /* The server has been asked to stop */ + VNCSERVER_STOPPING, /* The updater has been asked to stop */ + VNCSERVER_STOPPED /* The updater has stopped */ }; /* This structure is used to queue FrameBufferUpdate event. It includes a @@ -383,35 +384,6 @@ void vnc_key_map(FAR struct vnc_session_s *session, uint16_t keysym, FAR struct vnc_session_s *vnc_find_session(int display); - -/**************************************************************************** - * Name: vnc_convert_rgbNN - * - * Description: - * Convert the native framebuffer color format (either RGB16 5:6:5 or RGB32 - * 8:8:8) to the remote framebuffer color format (either RGB16 5:6:5, - * RGB16 5:5:5, or RGB32 8:8:) - * - * Input Parameters: - * pixel - The src color in local framebuffer format. - * - * Returned Value: - * The pixel in the remote framebuffer color format. - * - ****************************************************************************/ - -#if defined(CONFIG_VNCSERVER_COLORFMT_RGB16) -uint16_t vnc_convert_rgb16_555(uint16_t rgb); -uint16_t vnc_convert_rgb16_565(uint16_t rgb); -uint32_t vnc_convert_rgb32_888(uint16_t rgb); -#elif defined(CONFIG_VNCSERVER_COLORFMT_RGB32) -uint16_t vnc_convert_rgb16_555(uint32_t rgb); -uint16_t vnc_convert_rgb16_565(uint32_t rgb); -uint32_t vnc_convert_rgb32_888(uint32_t rgb); -#else -# error Unspecified color format -#endif - #undef EXTERN #ifdef __cplusplus } diff --git a/graphics/vnc/server/vnc_updater.c b/graphics/vnc/server/vnc_updater.c index 3a88b0e9ab..067eba160b 100644 --- a/graphics/vnc/server/vnc_updater.c +++ b/graphics/vnc/server/vnc_updater.c @@ -47,8 +47,26 @@ #include #include +#include + #include "vnc_server.h" +/**************************************************************************** + * Private Types + ****************************************************************************/ + +/* Color conversion functions */ + +#if defined(CONFIG_VNCSERVER_COLORFMT_RGB16) +typedef CODE uint16_t(*vnc_convert16_t)(uint16_t rgb); +typedef CODE uint32_t(*vnc_convert32_t)(uint16_t rgb); +#elif defined(CONFIG_VNCSERVER_COLORFMT_RGB32) +typedef CODE uint16_t(*vnc_convert16_t)(uint32_t rgb); +typedef CODE uint32_t(*vnc_convert32_t)(uint32_t rgb); +#else +# error Unspecified/unsupported color format +#endif + /**************************************************************************** * Private Functions ****************************************************************************/ @@ -177,7 +195,8 @@ vnc_remove_queue(FAR struct vnc_session_s *session) * Add one rectangle entry to the list of queued rectangles to be updated. * * Input Parameters: - * Standard pthread arguments. + * session - A reference to the VNC session structure. + * rect - The rectangle to be added to the queue. * * Returned Value: * None @@ -185,7 +204,7 @@ vnc_remove_queue(FAR struct vnc_session_s *session) ****************************************************************************/ static void vnc_add_queue(FAR struct vnc_session_s *session, - FAR struct vnc_fbupdate_s *rect) + FAR struct vnc_fbupdate_s *rect) { /* Lock the scheduler to assure that the sq_addlast() and the sem_post() * are atomic. @@ -207,6 +226,278 @@ static void vnc_add_queue(FAR struct vnc_session_s *session, sched_unlock(); } +/**************************************************************************** + * Name: vnc_convert_rgbNN + * + * Description: + * Convert the native framebuffer color format (either RGB16 5:6:5 or RGB32 + * 8:8:8) to the remote framebuffer color format (either RGB16 5:6:5, + * RGB16 5:5:5, or RGB32 8:8:) + * + * Input Parameters: + * pixel - The src color in local framebuffer format. + * + * Returned Value: + * The pixel in the remote framebuffer color format. + * + ****************************************************************************/ + +#if defined(CONFIG_VNCSERVER_COLORFMT_RGB16) + +uint16_t vnc_convert_rgb16_555(uint16_t rgb) +{ + /* 111111 + * 54321098 76543210 + * ----------------- + * RRRRRGGG GGGBBBBB + * .RRRRRGG GGGBBBBB + */ + + return (((rgb >> 1) & ~0x1f) | (rgb & 0x1f)); +} + +uint16_t vnc_convert_rgb16_565(uint16_t rgb) +{ + /* Identity mapping */ + + return rgb; +} + +uint32_t vnc_convert_rgb32_888(uint16_t rgb) +{ + /* 33222222 22221111 111111 + * 10987654 32109876 54321098 76543210 + * ---------------------------------- + * RRRRRGGG GGGBBBBB + * RRRRR... GGGGGG.. BBBBB... + */ + + return (((uint32_t)rgb << 8) & 0x00f80000) | + (((uint32_t)rgb << 6) & 0x0000fc00) | + (((uint32_t)rgb << 3) & 0x000000f8); +} + +#elif defined(CONFIG_VNCSERVER_COLORFMT_RGB32) +uint16_t vnc_convert_rgb16_555(uint32_t rgb) +{ + /* 33222222 22221111 111111 + * 10987654 32109876 54321098 76543210 + * ---------------------------------- + * RRRRR... GGGGG... BBBBB... + * .RRRRRGG GGGBBBBB + */ + + return (uint16_t) + (((rgb >> 9) & 0x00007c00) | + ((rgb >> 6) & 0x000003e0) | + ((rgb >> 3) & 0x0000001f)); +} + +uint16_t vnc_convert_rgb16_565(uint32_t rgb) +{ + /* 33222222 22221111 111111 + * 10987654 32109876 54321098 76543210 + * ---------------------------------- + * RRRRR... GGGGGG.. BBBBB... + * RRRRRGGG GGGBBBBB + */ + + return (uint16_t) + (((rgb >> 8) & 0x0000f800) | + ((rgb >> 5) & 0x000007e0) | + ((rgb >> 3) & 0x0000001f)); +} + +uint32_t vnc_convert_rgb32_888(uint32_t rgb) +{ + /* Identity mapping */ + + return rgb; +} +#else +# error Unspecified/unsupported color format +#endif + +/**************************************************************************** + * Name: vnc_copy16 + * + * Description: + * Copy a 16/32-bit pixels from the source rectangle to a 16-bit pixel + * destination rectangle. + * + * Input Parameters: + * session - A reference to the VNC session structure. + * row,col - The upper left X/Y (pixel/row) position of the rectangle + * width,height - The width (pixels) and height (rows of the rectangle) + * convert - The function to use to convert from the local framebuffer + * color format to the remote framebuffer color format. + * + * Returned Value: + * The size of the transfer in bytes. + * + ****************************************************************************/ + +static size_t vnc_copy16(FAR struct vnc_session_s *session, + nxgl_coord_t row, nxgl_coord_t col, + nxgl_coord_t height, nxgl_coord_t width, + vnc_convert16_t convert) +{ +#if defined(CONFIG_VNCSERVER_COLORFMT_RGB16) + FAR struct rfb_framebufferupdate_s *update; + FAR const uint16_t *srcleft; + FAR const uint16_t *src; + FAR uint16_t *dest; + nxgl_coord_t x; + nxgl_coord_t y; + + /* Destination rectangle start address */ + + update = (FAR struct rfb_framebufferupdate_s *)session->outbuf; + dest = (FAR uint16_t *)update->rect[0].data; + + /* Source rectangle start address (left/top)*/ + + srcleft = (FAR uint16_t *)(session->fb + RFB_STRIDE * y + RFB_BYTESPERPIXEL * x); + + /* Transfer each row from the source buffer into the update buffer */ + + for (y = 0; y < row; y++) + { + src = srcleft; + for (y = 0; y < row; y++) + { + *dest++ = convert(*src); + src++; + } + + srcleft = (FAR uint16_t *)((uintptr_t)srcleft + RFB_STRIDE); + } + + return (size_t)((uintptr_t)dest - (uintptr_t)update->rect[0].data); + +#elif defined(CONFIG_VNCSERVER_COLORFMT_RGB32) + FAR struct rfb_framebufferupdate_s *update; + FAR const uint32_t *srcleft; + FAR const uint32_t *src; + FAR uint16_t *dest; + nxgl_coord_t x; + nxgl_coord_t y; + + /* Destination rectangle start address */ + + update = (FAR struct rfb_framebufferupdate_s *)session->outbuf; + dest = (FAR uint16_t *)update->rect[0].data; + + /* Source rectangle start address */ + + srcleft = (FAR uint32_t *)(session->fb + RFB_STRIDE * y + RFB_BYTESPERPIXEL * x); + + for (y = 0; y < row; y++) + { + src = srcleft; + for (y = 0; y < row; y++) + { + *dest++ = convert(*src); + src++; + } + + srcleft = (FAR uint32_t *)((uintptr_t)srcleft + RFB_STRIDE); + } + + return (size_t)((uintptr_t)dest - (uintptr_t)update->rect[0].data); +#endif +} + +/**************************************************************************** + * Name: vnc_copy32 + * + * Description: + * Copy a 16/32-bit pixels from the source rectangle to a 32-bit pixel + * destination rectangle. + * + * Input Parameters: + * session - A reference to the VNC session structure. + * row,col - The upper left X/Y (pixel/row) position of the rectangle + * width,height - The width (pixels) and height (rows of the rectangle) + * convert - The function to use to convert from the local framebuffer + * color format to the remote framebuffer color format. + * + * Returned Value: + * The size of the transfer in bytes. + * + ****************************************************************************/ + +static size_t vnc_copy32(FAR struct vnc_session_s *session, + nxgl_coord_t row, nxgl_coord_t col, + nxgl_coord_t height, nxgl_coord_t width, + vnc_convert32_t convert) +{ +#if defined(CONFIG_VNCSERVER_COLORFMT_RGB16) + FAR struct rfb_framebufferupdate_s *update; + FAR const uint16_t *srcleft; + FAR const uint16_t *src; + FAR uint32_t *dest; + nxgl_coord_t x; + nxgl_coord_t y; + + /* Destination rectangle start address */ + + update = (FAR struct rfb_framebufferupdate_s *)session->outbuf; + dest = (FAR uint32_t *)update->rect[0].data; + + /* Source rectangle start address (left/top)*/ + + srcleft = (FAR uint16_t *)(session->fb + RFB_STRIDE * y + RFB_BYTESPERPIXEL * x); + + /* Transfer each row from the source buffer into the update buffer */ + + for (y = 0; y < row; y++) + { + src = srcleft; + for (y = 0; y < row; y++) + { + *dest++ = convert(*src); + src++; + } + + srcleft = (FAR uint16_t *)((uintptr_t)srcleft + RFB_STRIDE); + } + + return (size_t)((uintptr_t)srcleft - (uintptr_t)update->rect[0].data); + +#elif defined(CONFIG_VNCSERVER_COLORFMT_RGB32) + FAR struct rfb_framebufferupdate_s *update; + FAR const uint32_t *srcleft; + FAR const uint32_t *src; + FAR uint32_t *dest; + nxgl_coord_t x; + nxgl_coord_t y; + + /* Destination rectangle start address */ + + update = (FAR struct rfb_framebufferupdate_s *)session->outbuf; + dest = (FAR uint32_t *)update->rect[0].data; + + /* Source rectangle start address */ + + srcleft = (FAR uint32_t *)(session->fb + RFB_STRIDE * y + RFB_BYTESPERPIXEL * x); + + for (y = 0; y < row; y++) + { + src = srcleft; + for (y = 0; y < row; y++) + { + *dest++ = convert(*src); + src++; + } + + srcleft = (FAR uint32_t *)((uintptr_t)srcleft + RFB_STRIDE); + } + + return (size_t)((uintptr_t)srcleft - (uintptr_t)update->rect[0].data); +#endif +} + /**************************************************************************** * Name: vnc_updater * @@ -226,10 +517,11 @@ static FAR void *vnc_updater(FAR void *arg) { FAR struct vnc_session_s *session = (FAR struct vnc_session_s *)arg; FAR struct rfb_framebufferupdate_s *update; + FAR struct rfb_rectangle_s *destrect; FAR struct vnc_fbupdate_s *srcrect; - FAR const uint8_t *srcdata; - FAR uint8_t *destdata; + FAR const uint8_t *srcrow; + FAR const uint8_t *src; nxgl_coord_t srcwidth; nxgl_coord_t srcheight; nxgl_coord_t destwidth; @@ -242,6 +534,17 @@ static FAR void *vnc_updater(FAR void *arg) nxgl_coord_t y; unsigned int bytesperpixel; unsigned int maxwidth; + size_t size; + ssize_t nsent; + + union + { + vnc_convert16_t bpp16; + vnc_convert32_t bpp32; + } convert; + bool color32 = false; + + /* Set up some constant pointers and values */ DEBUGASSERT(session != NULL); update = (FAR struct rfb_framebufferupdate_s *)session->outbuf; @@ -250,6 +553,34 @@ static FAR void *vnc_updater(FAR void *arg) bytesperpixel = (session->bpp + 7) >> 3; maxwidth = CONFIG_VNCSERVER_UPDATE_BUFSIZE / bytesperpixel; + /* Set up the color conversion */ + + switch (session->colorfmt) + { + case FB_FMT_RGB16_555: + convert.bpp16 = vnc_convert_rgb16_555; + break; + + case FB_FMT_RGB16_565: + convert.bpp16 = vnc_convert_rgb16_565; + break; + + case FB_FMT_RGB32: + convert.bpp32 = vnc_convert_rgb32_888; + color32 = true; + break; + + default: + gdbg("ERROR: Unrecognized color format: %d\n", session->colorfmt); + goto errout; + } + + /* Then loop, processing updates until we are asked to stop. + * REVISIT: Probably need some kind of signal mechanism to wake up + * vnc_remove_queue() in order to stop. Or perhaps a special STOP + * message in the queue? + */ + while (session->state == VNCSERVER_RUNNING) { /* Get the next queued rectangle update. This call will block until an @@ -270,9 +601,9 @@ static FAR void *vnc_updater(FAR void *arg) DEBUGASSERT(srcrect->rect.pt1.y <= srcrect->rect.pt2.y); srcheight = srcrect->rect.pt2.y - srcrect->rect.pt1.y + 1; - srcdata = session->fb + - RFB_STRIDE * srcrect->rect.pt1.y + - RFB_BYTESPERPIXEL * srcrect->rect.pt1.x; + srcrow = session->fb + + RFB_STRIDE * srcrect->rect.pt1.y + + RFB_BYTESPERPIXEL * srcrect->rect.pt1.x; deststride = srcwidth * bytesperpixel; if (deststride > maxwidth) @@ -290,20 +621,18 @@ static FAR void *vnc_updater(FAR void *arg) /* Format the rectangle header. We may have to send several update * messages if the pre-allocated outbuf is smaller than the rectangle. + * Each update contains a small "sub-rectangle" of the origin update. * - * Loop until all rows have been output. Start with the top row and - * transfer rectangles horizontally across the each group of - * destheight rows. + * Loop until all sub-rectangles have been output. Start with the + * top row and transfer rectangles horizontally across each swath. + * The height of the swath is destwidth (the last may be shorter). */ for (y = srcrect->rect.pt1.y; srcheight > 0; - srcheight -= updheight, y += updheight) + srcheight -= updheight, y += updheight, + srcrow += RFB_STRIDE * updheight) { - /* Destination rectangle start address */ - - destdata = destrect->data; - /* updheight = Height to update on this pass through the loop. * This will be destheight unless fewer than that number of rows * remain. @@ -315,14 +644,16 @@ static FAR void *vnc_updater(FAR void *arg) updheight = srcheight; } - /* Loop until this row has been ouput. Start with the leftmost - * pixel and transfer rectangles horizontally with width of - * destwidth until all srcwidth columns have been transferred. + /* Loop until this horizontal swath has sent to the VNC client. + * Start with the leftmost pixel and transfer rectangles + * horizontally with width of destwidth until all srcwidth + * columns have been transferred (the last rectangle may be + * narrower). */ - for (width = srcwidth, x = srcrect->rect.pt1.x; + for (width = srcwidth, x = srcrect->rect.pt1.x, src = srcrow; width > 0; - width -= updwidth, x += updwidth) + width -= updwidth, x += updwidth, src += updwidth) { /* updwidth = Width to update on this pass through the loop. * This will be destwidth unless fewer than that number of @@ -335,6 +666,21 @@ static FAR void *vnc_updater(FAR void *arg) updwidth = width; } + /* Transfer the frame buffer data into the rectangle, + * performing the necessary color conversions. + */ + + if (color32) + { + size = vnc_copy32(session, y, x, updheight, updwidth, + convert.bpp32); + } + else + { + size = vnc_copy16(session, y, x, updheight, updwidth, + convert.bpp16); + } + /* Format the FramebufferUpdate message */ update->msgtype = RFB_FBUPDATE_MSG; @@ -347,21 +693,28 @@ static FAR void *vnc_updater(FAR void *arg) rfb_putbe16(destrect->height, updheight); rfb_putbe16(destrect->encoding, RFB_ENCODING_RAW); - /* Transfer the frame buffer data into the rectangle, - * performing the necessary color conversions. - */ -#warning Missing logic + DEBUGASSERT(size <= CONFIG_VNCSERVER_UPDATE_BUFSIZE); + + /* Then send the update packet to the VNC client */ - /* Update the src and destination addresses */ + size += SIZEOF_RFB_FRAMEBUFFERUPDATE_S(0); + nsent = psock_send(&session->connect, session->outbuf, size, 0); + if (nsent < 0) + { + gdbg("ERROR: Send FrameBufferUpdate failed: %d\n", + get_errno()); + goto errout; + } - srcdata += RFB_STRIDE; - destdata += updwidth * bytesperpixel; + DEBUGASSERT(nsent == size); } } vnc_free_update(session, srcrect); } +errout: + session->state = VNCSERVER_STOPPED; return NULL; } -- GitLab From 12f9a27d5420cafa216d4c34f3c6b5d4d809cb83 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 18 Apr 2016 10:50:56 -0600 Subject: [PATCH 038/307] Update ChangeLog --- ChangeLog | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index d2717377b9..3ec4da0f02 100755 --- a/ChangeLog +++ b/ChangeLog @@ -11652,6 +11652,14 @@ * drivers/wireless/nrf24l01.c: Fix backward calculation of relative frequency. Noted by Henry Zhang (2015-04-15). * drivers/sensors/h1750fvi.c: Add a character driver for Rohm Ambient - Light Sensor BH1750FVI. From Alan Carvalho de Assi (2016-04-15). + Light Sensor BH1750FVI. From Alan Carvalho de Assis (2016-04-15). * configs/stm32f4discovery: Integrate BH1750FVI driver in the - STM32F4Discovery board. From Alan Carvalho de Assi (2016-04-15). + STM32F4Discovery board. From Alan Carvalho de Assis (2016-04-15). + * drivers/mtd: Add MTD support for Micron N25Qxxx family of QSPI flash. + From Dave dev@ziggurat29.com (2016-04-17). + * arch/arm/src/stm32l: Add a QSPI driver. From Dave dev@ziggurat29.com + (2016-04-18). + * configs/stm32l476vb-disco: Add support for QSPI based N25Qxxx flash. + From Dave dev@ziggurat29.com (2016-04-18). + * graphics/vnc: Add support for a VNC server. This logic is code + complete, but untested and so not ready for primetime (2016-04-18). -- GitLab From 0a6a4ac9bca7eb9c3bd1567f406c3c7efb10990e Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 18 Apr 2016 12:24:52 -0600 Subject: [PATCH 039/307] Add handshake to coordintate with connection of VNC client. fb_initialize() will not return until the connection is established --- graphics/vnc/server/vnc_fbdev.c | 100 ++++++++++++++++++++++++----- graphics/vnc/server/vnc_receiver.c | 6 +- graphics/vnc/server/vnc_server.c | 13 +++- graphics/vnc/server/vnc_server.h | 16 ++++- 4 files changed, 112 insertions(+), 23 deletions(-) diff --git a/graphics/vnc/server/vnc_fbdev.c b/graphics/vnc/server/vnc_fbdev.c index 2d67f980ca..46bcc47e53 100644 --- a/graphics/vnc/server/vnc_fbdev.c +++ b/graphics/vnc/server/vnc_fbdev.c @@ -80,7 +80,7 @@ struct vnc_fbinfo_s * configuration of each color plane. */ -static int up_getvideoinfo(FAR struct fb_vtable_s *vtable, +static int up_getvideoinfo(FAR struct fb_vtable_s *vtable, FAR struct fb_videoinfo_s *vinfo); static int up_getplaneinfo(FAR struct fb_vtable_s *vtable, int planeno, FAR struct fb_planeinfo_s *pinfo); @@ -123,9 +123,7 @@ static struct fb_cursorsize_s g_csize; #endif #endif -/* The framebuffer object -- There is no private state information in this simple - * framebuffer simulation. - */ +/* The framebuffer objects, one for each configured display. */ static struct vnc_fbinfo_s g_fbinfo[RFB_MAX_DISPLAYS]; @@ -133,6 +131,13 @@ static struct vnc_fbinfo_s g_fbinfo[RFB_MAX_DISPLAYS]; * Public Data ****************************************************************************/ +/* Used to synchronize the server thread with the framebuffer driver. + * NOTE: This depends on the fact that all zero is correct initial state + * for the semaphores. + */ + +sem_t g_fbsem[RFB_MAX_DISPLAYS]; + /**************************************************************************** * Private Functions ****************************************************************************/ @@ -324,7 +329,7 @@ static int up_getcursor(FAR struct fb_vtable_s *vtable, #endif /**************************************************************************** - * Name: + * Name: up_setcursor ****************************************************************************/ #ifdef CONFIG_FB_HWCURSOR @@ -374,6 +379,57 @@ static int up_setcursor(FAR struct fb_vtable_s *vtable, } #endif +/**************************************************************************** + * Name: vnc_wait_server + * + * Description: + * Wait for the server to be connected to the VNC client. We can do + * nothing until that connection is established. + * + * Input parameters: + * display - In the case of hardware with multiple displays, this + * specifies the display. Normally this is zero. + * + * Returned Value: + * Zero is returned on success; a negated errno value is returned on any + * failure. + * + ****************************************************************************/ + +static inline int vnc_wait_server(int display) +{ + /* Check if there has been a session allocated yet. This is one of the + * first things that the VNC server will do with the kernel thread is + * started. But we might be here before the thread has gotten that far. + * + * If it has been allocated, then wait until it is in the RUNNING state. + * The RUNNING state indicates that the server has started, it has + * established a connection with the VNC client, it is negotiated + * encodings and framebuffer characteristics, and it has started the + * updater thread. The server is now ready to recieve Client-to-Server + * messages and to perform remote framebuffer updates. + */ + + while (g_vnc_sessions[display] == NULL || + g_vnc_sessions[display]->state != VNCSERVER_RUNNING) + { + /* The server is not yet running. Wait for the server to post the FB + * semaphore. In certain error situations, the server may post the + * semaphore, then reset it to zero. There are are certainly race + * conditions here, but I think none that are fatal. + */ + + while (sem_wait(&g_fbsem[display]) < 0) + { + /* sem_wait() should fail only if it is interrupt by a signal. */ + + DEBUGASSERT(get_errno() == EINTR); + } + } + + return OK; +} + /**************************************************************************** * Public Functions ****************************************************************************/ @@ -408,23 +464,33 @@ int up_fbinitialize(int display) gvdbg("Starting the VNC server for display %d\n", display); DEBUGASSERT(display >= 0 && display < RFB_MAX_DISPLAYS); - (void)itoa(display, str, 10); - argv[0] = str; - argv[1] = NULL; + /* Check if the server is already running */ - pid = kernel_thread("vnc_server", CONFIG_VNCSERVER_PRIO, - CONFIG_VNCSERVER_STACKSIZE, - (main_t)vnc_server, argv); - if (pid < 0) + if (g_vnc_sessions[display] != NULL) { - gdbg("ERROR: Failed to start the VNC server: %d\n", (int)pid); - return (int)pid; + DEBUGASSERT(g_vnc_sessions[display]->state >= VNCSERVER_INITIALIZED); + } + else + { + /* Format the kernel thread arguments (ASCII.. yech) */ + + (void)itoa(display, str, 10); + argv[0] = str; + argv[1] = NULL; + + pid = kernel_thread("vnc_server", CONFIG_VNCSERVER_PRIO, + CONFIG_VNCSERVER_STACKSIZE, + (main_t)vnc_server, argv); + if (pid < 0) + { + gdbg("ERROR: Failed to start the VNC server: %d\n", (int)pid); + return (int)pid; + } } /* Wait for the VNC client to connect and for the RFB to be ready */ -#warning Missing logic - return OK; + return vnc_wait_server(display); } /**************************************************************************** @@ -503,6 +569,7 @@ FAR struct fb_vtable_s *up_fbgetvplane(int display, int vplane) void up_fbuninitialize(int display) { +#if 0 /* Do nothing */ FAR struct vnc_session_s *session = vnc_find_session(display); FAR struct vnc_fbinfo_s *fbinfo; @@ -511,6 +578,7 @@ void up_fbuninitialize(int display) #warning Missing logic UNUSED(session); UNUSED(fbinfo); +#endif } /**************************************************************************** diff --git a/graphics/vnc/server/vnc_receiver.c b/graphics/vnc/server/vnc_receiver.c index 03749a544f..8715ee69a8 100644 --- a/graphics/vnc/server/vnc_receiver.c +++ b/graphics/vnc/server/vnc_receiver.c @@ -159,7 +159,7 @@ int vnc_receiver(FAR struct vnc_session_s *session) } else { -#warning Missing logic + /* REVISIT: SetPixelFormat is currently ignored */ } } break; @@ -198,7 +198,7 @@ int vnc_receiver(FAR struct vnc_session_s *session) } else { -#warning Missing logic + /* REVISIT: SetEncodings is currently ignored */ } } } @@ -353,7 +353,7 @@ int vnc_receiver(FAR struct vnc_session_s *session) } else { -#warning Missing logic + /* REVISIT: ClientCutText is currently ignored */ } } } diff --git a/graphics/vnc/server/vnc_server.c b/graphics/vnc/server/vnc_server.c index 12043ec5a5..9cd9b8e18e 100644 --- a/graphics/vnc/server/vnc_server.c +++ b/graphics/vnc/server/vnc_server.c @@ -62,14 +62,14 @@ ****************************************************************************/ /**************************************************************************** - * Private Data + * Public Data ****************************************************************************/ /* Given a display number as an index, the following array can be used to * look-up the session structure for that display. */ -static FAR struct vnc_session_s *g_vnc_sessions[RFB_MAX_DISPLAYS]; +FAR struct vnc_session_s *g_vnc_sessions[RFB_MAX_DISPLAYS]; /**************************************************************************** * Private Functions @@ -281,6 +281,7 @@ int vnc_server(int argc, FAR char *argv[]) */ vnc_reset_session(session, fb); + sem_reset(&g_fbsem[display], 0); /* Establish a connection with the VNC client */ @@ -313,7 +314,13 @@ int vnc_server(int argc, FAR char *argv[]) continue; } - /* Start the VNC receiver on this this. The VNC receiver handles + /* Let the framebuffer driver know that we are ready to preform + * updates. + */ + + sem_post(&g_fbsem[display]); + + /* Run the VNC receiver on this trhead. The VNC receiver handles * all Client-to-Server messages. The VNC receiver function does * not return until the session has been terminated (or an error * occurs). diff --git a/graphics/vnc/server/vnc_server.h b/graphics/vnc/server/vnc_server.h index 8433924cba..6129060c0b 100644 --- a/graphics/vnc/server/vnc_server.h +++ b/graphics/vnc/server/vnc_server.h @@ -230,7 +230,7 @@ struct vnc_session_s }; /**************************************************************************** - * Public Function Prototypes + * Public Data ****************************************************************************/ #ifdef __cplusplus @@ -241,6 +241,20 @@ extern "C" #define EXTERN extern #endif +/* Given a display number as an index, the following array can be used to + * look-up the session structure for that display. + */ + +EXTERN FAR struct vnc_session_s *g_vnc_sessions[RFB_MAX_DISPLAYS]; + +/* Used to synchronize the server thread with the framebuffer driver. */ + +EXTERN sem_t g_fbsem[RFB_MAX_DISPLAYS]; + +/**************************************************************************** + * Public Function Prototypes + ****************************************************************************/ + /**************************************************************************** * Name: vnc_server * -- GitLab From 628dd9b18121529e65cea77f170649992f4da58a Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 18 Apr 2016 12:25:23 -0600 Subject: [PATCH 040/307] SAMV71-Xult: Add a configuration that will be used to test VNC --- ChangeLog | 3 + configs/samv71-xult/README.txt | 19 + configs/samv71-xult/vnc/Make.defs | 117 +++ configs/samv71-xult/vnc/defconfig | 1385 +++++++++++++++++++++++++++++ configs/samv71-xult/vnc/setenv.sh | 77 ++ 5 files changed, 1601 insertions(+) create mode 100644 configs/samv71-xult/vnc/Make.defs create mode 100644 configs/samv71-xult/vnc/defconfig create mode 100644 configs/samv71-xult/vnc/setenv.sh diff --git a/ChangeLog b/ChangeLog index 3ec4da0f02..9e5fe24708 100755 --- a/ChangeLog +++ b/ChangeLog @@ -11663,3 +11663,6 @@ From Dave dev@ziggurat29.com (2016-04-18). * graphics/vnc: Add support for a VNC server. This logic is code complete, but untested and so not ready for primetime (2016-04-18). + * configs/samv71-xult/vnc: Add a configuration that will be used to + verify VNC (also untested) (2016-04-18). + diff --git a/configs/samv71-xult/README.txt b/configs/samv71-xult/README.txt index 60d3b6c513..1b9ff29e10 100644 --- a/configs/samv71-xult/README.txt +++ b/configs/samv71-xult/README.txt @@ -2308,3 +2308,22 @@ Configuration sub-directories - Line spacing in the NxTerm window is too much. This is probably a font-related issue too. + vnc: + + This is a special version of an NSH configuration. It has networking + and graphics enabled. It is configured to use the VNC server to provide + a remote desktop for use with VNC client on a PC. It includes the + graphics text at apps/examples/nximage. + + NOTES: + + 1. The RAMLOG is enabled so all debug output will go to the RAMLOG and + can be view using the NSH dmesg command. No debug output is enabled + in the default configuration, however. + + 2. Network confiration: IP address 10.0.0.2. The is easily changed + via 'make menuconfig'. The VNC server address is 10.0.0.2:5900. + + 3. The default (local) framebuffer configuration is 320x240 with 16-bit + RGB color. + diff --git a/configs/samv71-xult/vnc/Make.defs b/configs/samv71-xult/vnc/Make.defs new file mode 100644 index 0000000000..5185c94a9f --- /dev/null +++ b/configs/samv71-xult/vnc/Make.defs @@ -0,0 +1,117 @@ +############################################################################ +# configs/samv71-xult/vnc/Make.defs +# +# Copyright (C) 2016 Gregory Nutt. All rights reserved. +# Author: Gregory Nutt +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# 3. Neither the name NuttX nor the names of its contributors may be +# used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +############################################################################ + +include ${TOPDIR}/.config +include ${TOPDIR}/tools/Config.mk +include ${TOPDIR}/arch/arm/src/armv7-m/Toolchain.defs + +ifeq ($(CONFIG_ARMV7M_DTCM),y) + LDSCRIPT = flash-dtcm.ld +else + LDSCRIPT = flash-sram.ld +endif + +ifeq ($(WINTOOL),y) + # Windows-native toolchains + DIRLINK = $(TOPDIR)/tools/copydir.sh + DIRUNLINK = $(TOPDIR)/tools/unlink.sh + MKDEP = $(TOPDIR)/tools/mkwindeps.sh + ARCHINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)/include}" + ARCHXXINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)/include}" -isystem "${shell cygpath -w $(TOPDIR)/include/cxx}" + ARCHSCRIPT = -T "${shell cygpath -w $(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/$(LDSCRIPT)}" +else + # Linux/Cygwin-native toolchain + MKDEP = $(TOPDIR)/tools/mkdeps$(HOSTEXEEXT) + ARCHINCLUDES = -I. -isystem $(TOPDIR)/include + ARCHXXINCLUDES = -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx + ARCHSCRIPT = -T$(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/$(LDSCRIPT) +endif + +CC = $(CROSSDEV)gcc +CXX = $(CROSSDEV)g++ +CPP = $(CROSSDEV)gcc -E +LD = $(CROSSDEV)ld +AR = $(CROSSDEV)ar rcs +NM = $(CROSSDEV)nm +OBJCOPY = $(CROSSDEV)objcopy +OBJDUMP = $(CROSSDEV)objdump + +ARCHCCVERSION = ${shell $(CC) -v 2>&1 | sed -n '/^gcc version/p' | sed -e 's/^gcc version \([0-9\.]\)/\1/g' -e 's/[-\ ].*//g' -e '1q'} +ARCHCCMAJOR = ${shell echo $(ARCHCCVERSION) | cut -d'.' -f1} + +ifeq ($(CONFIG_DEBUG_SYMBOLS),y) + ARCHOPTIMIZATION = -g +endif + +ifneq ($(CONFIG_DEBUG_NOOPT),y) + ARCHOPTIMIZATION += $(MAXOPTIMIZATION) +endif + +ARCHCFLAGS = -fno-builtin +ARCHCXXFLAGS = -fno-builtin -fno-exceptions -fno-rtti +ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef -fno-strict-aliasing +ARCHWARNINGSXX = -Wall -Wshadow -Wundef +ARCHDEFINES = +ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10 + +CFLAGS = $(ARCHCFLAGS) $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe +CPICFLAGS = $(ARCHPICFLAGS) $(CFLAGS) +CXXFLAGS = $(ARCHCXXFLAGS) $(ARCHWARNINGSXX) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHXXINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe +CXXPICFLAGS = $(ARCHPICFLAGS) $(CXXFLAGS) +CPPFLAGS = $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) +AFLAGS = $(CFLAGS) -D__ASSEMBLY__ + +NXFLATLDFLAGS1 = -r -d -warn-common +NXFLATLDFLAGS2 = $(NXFLATLDFLAGS1) -T$(TOPDIR)/binfmt/libnxflat/gnu-nxflat-pcrel.ld -no-check-sections +LDNXFLATFLAGS = -e main -s 2048 + +ASMEXT = .S +OBJEXT = .o +LIBEXT = .a +EXEEXT = + +ifneq ($(CROSSDEV),arm-nuttx-elf-) + LDFLAGS += -nostartfiles -nodefaultlibs +endif +ifeq ($(CONFIG_DEBUG_SYMBOLS),y) + LDFLAGS += -g +endif + + +HOSTCC = gcc +HOSTINCLUDES = -I. +HOSTCFLAGS = -Wall -Wstrict-prototypes -Wshadow -Wundef -g -pipe +HOSTLDFLAGS = + diff --git a/configs/samv71-xult/vnc/defconfig b/configs/samv71-xult/vnc/defconfig new file mode 100644 index 0000000000..3f66d98714 --- /dev/null +++ b/configs/samv71-xult/vnc/defconfig @@ -0,0 +1,1385 @@ +# +# Automatically generated file; DO NOT EDIT. +# Nuttx/ Configuration +# + +# +# Build Setup +# +CONFIG_EXPERIMENTAL=y +# CONFIG_DEFAULT_SMALL is not set +# CONFIG_HOST_LINUX is not set +# CONFIG_HOST_OSX is not set +CONFIG_HOST_WINDOWS=y +# CONFIG_HOST_OTHER is not set +# CONFIG_WINDOWS_NATIVE is not set +CONFIG_WINDOWS_CYGWIN=y +# CONFIG_WINDOWS_MSYS is not set +# CONFIG_WINDOWS_OTHER is not set + +# +# Build Configuration +# +# CONFIG_APPS_DIR="../apps" +CONFIG_BUILD_FLAT=y +# CONFIG_BUILD_2PASS is not set + +# +# Binary Output Formats +# +# CONFIG_RRLOAD_BINARY is not set +# CONFIG_INTELHEX_BINARY is not set +# CONFIG_MOTOROLA_SREC is not set +CONFIG_RAW_BINARY=y +# CONFIG_UBOOT_UIMAGE is not set + +# +# Customize Header Files +# +# CONFIG_ARCH_STDINT_H is not set +# CONFIG_ARCH_STDBOOL_H is not set +# CONFIG_ARCH_MATH_H is not set +# CONFIG_ARCH_FLOAT_H is not set +# CONFIG_ARCH_STDARG_H is not set +# CONFIG_ARCH_DEBUG_H is not set + +# +# Debug Options +# +# CONFIG_DEBUG is not set +# CONFIG_ARCH_HAVE_HEAPCHECK is not set +CONFIG_ARCH_HAVE_STACKCHECK=y +# CONFIG_STACK_COLORATION is not set +CONFIG_DEBUG_SYMBOLS=y +CONFIG_ARCH_HAVE_CUSTOMOPT=y +# CONFIG_DEBUG_NOOPT is not set +# CONFIG_DEBUG_CUSTOMOPT is not set +CONFIG_DEBUG_FULLOPT=y + +# +# System Type +# +CONFIG_ARCH_ARM=y +# CONFIG_ARCH_AVR is not set +# CONFIG_ARCH_HC is not set +# CONFIG_ARCH_MIPS is not set +# CONFIG_ARCH_RGMP is not set +# CONFIG_ARCH_SH is not set +# CONFIG_ARCH_SIM is not set +# CONFIG_ARCH_X86 is not set +# CONFIG_ARCH_Z16 is not set +# CONFIG_ARCH_Z80 is not set +CONFIG_ARCH="arm" + +# +# ARM Options +# +# CONFIG_ARCH_CHIP_A1X is not set +# CONFIG_ARCH_CHIP_C5471 is not set +# CONFIG_ARCH_CHIP_CALYPSO is not set +# CONFIG_ARCH_CHIP_DM320 is not set +# CONFIG_ARCH_CHIP_EFM32 is not set +# CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set +# CONFIG_ARCH_CHIP_KINETIS is not set +# CONFIG_ARCH_CHIP_KL is not set +# CONFIG_ARCH_CHIP_LM is not set +# CONFIG_ARCH_CHIP_TIVA is not set +# CONFIG_ARCH_CHIP_LPC11XX is not set +# CONFIG_ARCH_CHIP_LPC17XX is not set +# CONFIG_ARCH_CHIP_LPC214X is not set +# CONFIG_ARCH_CHIP_LPC2378 is not set +# CONFIG_ARCH_CHIP_LPC31XX is not set +# CONFIG_ARCH_CHIP_LPC43XX is not set +# CONFIG_ARCH_CHIP_NUC1XX is not set +# CONFIG_ARCH_CHIP_SAMA5 is not set +# CONFIG_ARCH_CHIP_SAMD is not set +# CONFIG_ARCH_CHIP_SAML is not set +# CONFIG_ARCH_CHIP_SAM34 is not set +CONFIG_ARCH_CHIP_SAMV7=y +# CONFIG_ARCH_CHIP_STM32 is not set +# CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set +# CONFIG_ARCH_CHIP_STR71X is not set +# CONFIG_ARCH_CHIP_TMS570 is not set +# CONFIG_ARCH_CHIP_MOXART is not set +# CONFIG_ARCH_ARM7TDMI is not set +# CONFIG_ARCH_ARM926EJS is not set +# CONFIG_ARCH_ARM920T is not set +# CONFIG_ARCH_CORTEXM0 is not set +# CONFIG_ARCH_CORTEXM3 is not set +# CONFIG_ARCH_CORTEXM4 is not set +CONFIG_ARCH_CORTEXM7=y +# CONFIG_ARCH_CORTEXA5 is not set +# CONFIG_ARCH_CORTEXA8 is not set +# CONFIG_ARCH_CORTEXA9 is not set +# CONFIG_ARCH_CORTEXR4 is not set +# CONFIG_ARCH_CORTEXR4F is not set +# CONFIG_ARCH_CORTEXR5 is not set +# CONFIG_ARCH_CORTEX5F is not set +# CONFIG_ARCH_CORTEXR7 is not set +# CONFIG_ARCH_CORTEXR7F is not set +CONFIG_ARCH_FAMILY="armv7-m" +CONFIG_ARCH_CHIP="samv7" +# CONFIG_ARM_TOOLCHAIN_IAR is not set +CONFIG_ARM_TOOLCHAIN_GNU=y +# CONFIG_ARMV7M_USEBASEPRI is not set +CONFIG_ARCH_HAVE_CMNVECTOR=y +CONFIG_ARMV7M_CMNVECTOR=y +CONFIG_ARMV7M_LAZYFPU=y +CONFIG_ARCH_HAVE_FPU=y +CONFIG_ARCH_HAVE_DPFPU=y +CONFIG_ARCH_FPU=y +CONFIG_ARCH_DPFPU=y +# CONFIG_ARCH_HAVE_TRUSTZONE is not set +CONFIG_ARM_HAVE_MPU_UNIFIED=y +# CONFIG_ARM_MPU is not set + +# +# ARMV7M Configuration Options +# +CONFIG_ARMV7M_HAVE_ICACHE=y +CONFIG_ARMV7M_HAVE_DCACHE=y +CONFIG_ARMV7M_ICACHE=y +CONFIG_ARMV7M_DCACHE=y +CONFIG_ARMV7M_DCACHE_WRITETHROUGH=y +CONFIG_ARMV7M_HAVE_ITCM=y +CONFIG_ARMV7M_HAVE_DTCM=y +# CONFIG_ARMV7M_ITCM is not set +# CONFIG_ARMV7M_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARW is not set +# CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC is not set +# CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set +# CONFIG_ARMV7M_TOOLCHAIN_CODEREDW is not set +# CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW is not set +# CONFIG_ARMV7M_TOOLCHAIN_DEVKITARM is not set +# CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL is not set +CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIW=y +# CONFIG_ARMV7M_TOOLCHAIN_RAISONANCE is not set +CONFIG_ARMV7M_HAVE_STACKCHECK=y +# CONFIG_ARMV7M_STACKCHECK is not set +# CONFIG_ARMV7M_ITMSYSLOG is not set +# CONFIG_SERIAL_TERMIOS is not set +CONFIG_SDIO_DMA=y +# CONFIG_SDIO_WIDTH_D1_ONLY is not set + +# +# SAMV7 Configuration Options +# +# CONFIG_ARCH_CHIP_SAME70Q19 is not set +# CONFIG_ARCH_CHIP_SAME70Q20 is not set +# CONFIG_ARCH_CHIP_SAME70Q21 is not set +# CONFIG_ARCH_CHIP_SAME70N19 is not set +# CONFIG_ARCH_CHIP_SAME70N20 is not set +# CONFIG_ARCH_CHIP_SAME70N21 is not set +# CONFIG_ARCH_CHIP_SAME70J19 is not set +# CONFIG_ARCH_CHIP_SAME70J20 is not set +# CONFIG_ARCH_CHIP_SAME70J21 is not set +# CONFIG_ARCH_CHIP_SAMV71Q19 is not set +# CONFIG_ARCH_CHIP_SAMV71Q20 is not set +CONFIG_ARCH_CHIP_SAMV71Q21=y +# CONFIG_ARCH_CHIP_SAMV71N19 is not set +# CONFIG_ARCH_CHIP_SAMV71N20 is not set +# CONFIG_ARCH_CHIP_SAMV71N21 is not set +# CONFIG_ARCH_CHIP_SAMV71J19 is not set +# CONFIG_ARCH_CHIP_SAMV71J20 is not set +# CONFIG_ARCH_CHIP_SAMV71J21 is not set +# CONFIG_ARCH_CHIP_SAME70 is not set +# CONFIG_ARCH_CHIP_SAME70Q is not set +# CONFIG_ARCH_CHIP_SAME70N is not set +# CONFIG_ARCH_CHIP_SAME70J is not set +CONFIG_ARCH_CHIP_SAMV71=y +CONFIG_ARCH_CHIP_SAMV71Q=y +# CONFIG_ARCH_CHIP_SAMV71N is not set +# CONFIG_ARCH_CHIP_SAMV71J is not set +# CONFIG_SAMV7_MCAN is not set +CONFIG_SAMV7_HAVE_MCAN1=y +CONFIG_SAMV7_HAVE_DAC1=y +CONFIG_SAMV7_HAVE_EBI=y +CONFIG_SAMV7_EMAC=y +CONFIG_SAMV7_HSMCI=y +CONFIG_SAMV7_HAVE_HSMCI0=y +# CONFIG_SAMV7_HAVE_ISI8 is not set +CONFIG_SAMV7_HAVE_MEDIALB=y +CONFIG_SAMV7_HAVE_SDRAMC=y +CONFIG_SAMV7_HAVE_SPI0=y +CONFIG_SAMV7_HAVE_SPI1=y +# CONFIG_SAMV7_QSPI_IS_SPI is not set +# CONFIG_SAMV7_SSC is not set +# CONFIG_SAMV7_HAVE_TC is not set +CONFIG_SAMV7_HAVE_TWIHS2=y +# CONFIG_SAMV7_HAVE_USBFS is not set +CONFIG_SAMV7_HAVE_USBHS=y +CONFIG_SAMV7_HAVE_USART0=y +CONFIG_SAMV7_HAVE_USART1=y +CONFIG_SAMV7_HAVE_USART2=y +# CONFIG_SAMV7_SPI is not set +# CONFIG_SAMV7_SPI_MASTER is not set +# CONFIG_SAMV7_SPI_SLAVE is not set + +# +# SAMV7 Peripheral Selection +# +# CONFIG_SAMV7_ACC is not set +# CONFIG_SAMV7_ADC is not set +# CONFIG_SAMV7_AFEC0 is not set +# CONFIG_SAMV7_AFEC1 is not set +# CONFIG_SAMV7_MCAN0 is not set +# CONFIG_SAMV7_MCAN1 is not set +# CONFIG_SAMV7_DAC0 is not set +# CONFIG_SAMV7_DAC1 is not set +# CONFIG_SAMV7_EBI is not set +CONFIG_SAMV7_EMAC0=y +CONFIG_SAMV7_XDMAC=y +CONFIG_SAMV7_HSMCI0=y +# CONFIG_SAMV7_ISI is not set +# CONFIG_SAMV7_MLB is not set +# CONFIG_SAMV7_PWM0 is not set +# CONFIG_SAMV7_PWM1 is not set +# CONFIG_SAMV7_QSPI is not set +# CONFIG_SAMV7_RTC is not set +# CONFIG_SAMV7_RTT is not set +# CONFIG_SAMV7_SDRAMC is not set +# CONFIG_SAMV7_SMC is not set +# CONFIG_SAMV7_SPI0 is not set +# CONFIG_SAMV7_SPI1 is not set +# CONFIG_SAMV7_SSC0 is not set +# CONFIG_SAMV7_TC0 is not set +# CONFIG_SAMV7_TC1 is not set +# CONFIG_SAMV7_TC2 is not set +# CONFIG_SAMV7_TC3 is not set +# CONFIG_SAMV7_TRNG is not set +CONFIG_SAMV7_TWIHS0=y +# CONFIG_SAMV7_TWIHS1 is not set +# CONFIG_SAMV7_TWIHS2 is not set +# CONFIG_SAMV7_UART0 is not set +# CONFIG_SAMV7_UART1 is not set +# CONFIG_SAMV7_UART2 is not set +CONFIG_SAMV7_UART3=y +# CONFIG_SAMV7_UART4 is not set +# CONFIG_SAMV7_USBDEVHS is not set +# CONFIG_SAMV7_USBHOSTHS is not set +# CONFIG_SAMV7_USART0 is not set +# CONFIG_SAMV7_USART1 is not set +# CONFIG_SAMV7_USART2 is not set +# CONFIG_SAMV7_WDT is not set +# CONFIG_SAMV7_RSWDT is not set +CONFIG_SAMV7_GPIO_IRQ=y +CONFIG_SAMV7_GPIOA_IRQ=y +CONFIG_SAMV7_GPIOB_IRQ=y +# CONFIG_SAMV7_GPIOC_IRQ is not set +CONFIG_SAMV7_GPIOD_IRQ=y +# CONFIG_SAMV7_GPIOE_IRQ is not set +# CONFIG_SAMV7_PROGMEM is not set + +# +# TWIHS device driver options +# +CONFIG_SAMV7_TWIHS0_FREQUENCY=100000 + +# +# HSMCI device driver options +# +# CONFIG_SAMV7_HSMCI_RDPROOF is not set +# CONFIG_SAMV7_HSMCI_WRPROOF is not set +# CONFIG_SAMV7_HSMCI_UNALIGNED is not set + +# +# EMAC device driver options +# +CONFIG_SAMV7_EMAC0_NRXBUFFERS=16 +CONFIG_SAMV7_EMAC0_NTXBUFFERS=8 +CONFIG_SAMV7_EMAC0_PHYADDR=1 +# CONFIG_SAMV7_EMAC0_PHYINIT is not set +# CONFIG_SAMV7_EMAC0_MII is not set +CONFIG_SAMV7_EMAC0_RMII=y +CONFIG_SAMV7_EMAC0_AUTONEG=y +CONFIG_SAMV7_EMAC0_PHYSR=30 +CONFIG_SAMV7_EMAC0_PHYSR_ALTCONFIG=y +CONFIG_SAMV7_EMAC0_PHYSR_ALTMODE=0x7 +CONFIG_SAMV7_EMAC0_PHYSR_10HD=0x1 +CONFIG_SAMV7_EMAC0_PHYSR_100HD=0x2 +CONFIG_SAMV7_EMAC0_PHYSR_10FD=0x5 +CONFIG_SAMV7_EMAC0_PHYSR_100FD=0x6 +CONFIG_SAMV7_EMAC0_ISETH0=y +# CONFIG_SAMV7_EMAC_PREALLOCATE is not set +# CONFIG_SAMV7_EMAC_NBC is not set + +# +# Architecture Options +# +# CONFIG_ARCH_NOINTC is not set +# CONFIG_ARCH_VECNOTIRQ is not set +CONFIG_ARCH_DMA=y +CONFIG_ARCH_HAVE_IRQPRIO=y +# CONFIG_ARCH_L2CACHE is not set +# CONFIG_ARCH_HAVE_COHERENT_DCACHE is not set +# CONFIG_ARCH_HAVE_ADDRENV is not set +# CONFIG_ARCH_NEED_ADDRENV_MAPPING is not set +# CONFIG_ARCH_HAVE_MULTICPU is not set +CONFIG_ARCH_HAVE_VFORK=y +# CONFIG_ARCH_HAVE_MMU is not set +CONFIG_ARCH_HAVE_MPU=y +# CONFIG_ARCH_NAND_HWECC is not set +# CONFIG_ARCH_HAVE_EXTCLK is not set +# CONFIG_ARCH_HAVE_POWEROFF is not set +# CONFIG_ARCH_HAVE_RESET is not set +# CONFIG_ARCH_USE_MPU is not set +# CONFIG_ARCH_IRQPRIO is not set +CONFIG_ARCH_STACKDUMP=y +# CONFIG_ENDIAN_BIG is not set +# CONFIG_ARCH_IDLE_CUSTOM is not set +CONFIG_ARCH_HAVE_RAMFUNCS=y +# CONFIG_ARCH_RAMFUNCS is not set +CONFIG_ARCH_HAVE_RAMVECTORS=y +# CONFIG_ARCH_RAMVECTORS is not set + +# +# Board Settings +# +CONFIG_BOARD_LOOPSPERMSEC=51262 +# CONFIG_ARCH_CALIBRATION is not set + +# +# Interrupt options +# +CONFIG_ARCH_HAVE_INTERRUPTSTACK=y +CONFIG_ARCH_INTERRUPTSTACK=2048 +CONFIG_ARCH_HAVE_HIPRI_INTERRUPT=y +# CONFIG_ARCH_HIPRI_INTERRUPT is not set + +# +# Boot options +# +# CONFIG_BOOT_RUNFROMEXTSRAM is not set +CONFIG_BOOT_RUNFROMFLASH=y +# CONFIG_BOOT_RUNFROMISRAM is not set +# CONFIG_BOOT_RUNFROMSDRAM is not set +# CONFIG_BOOT_COPYTORAM is not set + +# +# Boot Memory Configuration +# +CONFIG_RAM_START=0x20400000 +CONFIG_RAM_SIZE=393216 +# CONFIG_ARCH_HAVE_SDRAM is not set + +# +# Board Selection +# +CONFIG_ARCH_BOARD_SAMV71_XULT=y +# CONFIG_ARCH_BOARD_CUSTOM is not set +CONFIG_ARCH_BOARD="samv71-xult" + +# +# Common Board Options +# +CONFIG_ARCH_HAVE_LEDS=y +CONFIG_ARCH_LEDS=y +CONFIG_ARCH_HAVE_BUTTONS=y +CONFIG_ARCH_BUTTONS=y +CONFIG_ARCH_HAVE_IRQBUTTONS=y +CONFIG_ARCH_IRQBUTTONS=y +CONFIG_NSH_MMCSDMINOR=0 +CONFIG_NSH_MMCSDSLOTNO=0 + +# +# Board-Specific Options +# +# CONFIG_SAMV71XULT_MXTXPLND is not set +CONFIG_LIB_BOARDCTL=y +# CONFIG_BOARDCTL_UNIQUEID is not set +# CONFIG_BOARDCTL_TSCTEST is not set +# CONFIG_BOARDCTL_ADCTEST is not set +# CONFIG_BOARDCTL_PWMTEST is not set +# CONFIG_BOARDCTL_GRAPHICS is not set +# CONFIG_BOARDCTL_IOCTL is not set + +# +# RTOS Features +# +CONFIG_DISABLE_OS_API=y +# CONFIG_DISABLE_POSIX_TIMERS is not set +# CONFIG_DISABLE_PTHREAD is not set +# CONFIG_DISABLE_SIGNALS is not set +# CONFIG_DISABLE_MQUEUE is not set +# CONFIG_DISABLE_ENVIRON is not set + +# +# Clocks and Timers +# +CONFIG_ARCH_HAVE_TICKLESS=y +# CONFIG_SCHED_TICKLESS is not set +CONFIG_USEC_PER_TICK=10000 +# CONFIG_SYSTEM_TIME64 is not set +# CONFIG_CLOCK_MONOTONIC is not set +# CONFIG_JULIAN_TIME is not set +CONFIG_START_YEAR=2014 +CONFIG_START_MONTH=3 +CONFIG_START_DAY=10 +CONFIG_MAX_WDOGPARMS=2 +CONFIG_PREALLOC_WDOGS=32 +CONFIG_WDOG_INTRESERVE=4 +CONFIG_PREALLOC_TIMERS=4 + +# +# Tasks and Scheduling +# +# CONFIG_SPINLOCK is not set +# CONFIG_INIT_NONE is not set +CONFIG_INIT_ENTRYPOINT=y +# CONFIG_INIT_FILEPATH is not set +CONFIG_USER_ENTRYPOINT="nsh_main" +CONFIG_RR_INTERVAL=200 +# CONFIG_SCHED_SPORADIC is not set +CONFIG_TASK_NAME_SIZE=31 +CONFIG_MAX_TASKS=16 +# CONFIG_SCHED_HAVE_PARENT is not set +CONFIG_SCHED_WAITPID=y + +# +# Pthread Options +# +# CONFIG_MUTEX_TYPES is not set +CONFIG_NPTHREAD_KEYS=4 + +# +# Performance Monitoring +# +# CONFIG_SCHED_CPULOAD is not set +# CONFIG_SCHED_INSTRUMENTATION is not set + +# +# Files and I/O +# +CONFIG_DEV_CONSOLE=y +# CONFIG_FDCLONE_DISABLE is not set +# CONFIG_FDCLONE_STDIO is not set +CONFIG_SDCLONE_DISABLE=y +CONFIG_NFILE_DESCRIPTORS=8 +CONFIG_NFILE_STREAMS=8 +CONFIG_NAME_MAX=32 +# CONFIG_PRIORITY_INHERITANCE is not set + +# +# RTOS hooks +# +# CONFIG_BOARD_INITIALIZE is not set +# CONFIG_SCHED_STARTHOOK is not set +# CONFIG_SCHED_ATEXIT is not set +# CONFIG_SCHED_ONEXIT is not set +# CONFIG_SIG_EVTHREAD is not set + +# +# Signal Numbers +# +CONFIG_SIG_SIGUSR1=1 +CONFIG_SIG_SIGUSR2=2 +CONFIG_SIG_SIGALARM=3 +CONFIG_SIG_SIGCONDTIMEDOUT=16 +CONFIG_SIG_SIGWORK=17 + +# +# POSIX Message Queue Options +# +CONFIG_PREALLOC_MQ_MSGS=4 +CONFIG_MQ_MAXMSGSIZE=32 +# CONFIG_MODULE is not set + +# +# Work queue support +# +CONFIG_SCHED_WORKQUEUE=y +CONFIG_SCHED_HPWORK=y +CONFIG_SCHED_HPWORKPRIORITY=224 +CONFIG_SCHED_HPWORKPERIOD=50000 +CONFIG_SCHED_HPWORKSTACKSIZE=2048 +# CONFIG_SCHED_LPWORK is not set + +# +# Stack and heap information +# +CONFIG_IDLETHREAD_STACKSIZE=1024 +CONFIG_USERMAIN_STACKSIZE=2048 +CONFIG_PTHREAD_STACK_MIN=256 +CONFIG_PTHREAD_STACK_DEFAULT=2048 +# CONFIG_LIB_SYSCALL is not set + +# +# Device Drivers +# +CONFIG_DISABLE_POLL=y +CONFIG_DEV_NULL=y +# CONFIG_DEV_ZERO is not set +# CONFIG_DEV_LOOP is not set + +# +# Buffering +# +# CONFIG_DRVR_WRITEBUFFER is not set +# CONFIG_DRVR_READAHEAD is not set +# CONFIG_RAMDISK is not set +# CONFIG_CAN is not set +# CONFIG_ARCH_HAVE_PWM_PULSECOUNT is not set +# CONFIG_ARCH_HAVE_PWM_MULTICHAN is not set +# CONFIG_PWM is not set +# CONFIG_ARCH_HAVE_I2CRESET is not set +CONFIG_I2C=y +# CONFIG_I2C_SLAVE is not set +# CONFIG_I2C_POLLED is not set +# CONFIG_I2C_TRACE is not set +CONFIG_I2C_DRIVER=y +CONFIG_SPI=y +# CONFIG_SPI_SLAVE is not set +CONFIG_SPI_EXCHANGE=y +# CONFIG_SPI_CMDDATA is not set +# CONFIG_SPI_CALLBACK is not set +# CONFIG_SPI_BITBANG is not set +# CONFIG_SPI_HWFEATURES is not set +# CONFIG_SPI_CRCGENERATION is not set +# CONFIG_I2S is not set + +# +# Timer Driver Support +# +# CONFIG_TIMER is not set +# CONFIG_RTC is not set +# CONFIG_WATCHDOG is not set +# CONFIG_TIMERS_CS2100CP is not set +# CONFIG_ANALOG is not set +# CONFIG_AUDIO_DEVICES is not set +# CONFIG_VIDEO_DEVICES is not set +# CONFIG_BCH is not set +# CONFIG_INPUT is not set +# CONFIG_IOEXPANDER is not set +# CONFIG_LCD is not set + +# +# LED Support +# +# CONFIG_USERLED is not set +# CONFIG_RGBLED is not set +# CONFIG_PCA9635PW is not set +CONFIG_MMCSD=y +CONFIG_MMCSD_NSLOTS=1 +# CONFIG_MMCSD_READONLY is not set +CONFIG_MMCSD_MULTIBLOCK_DISABLE=y +# CONFIG_MMCSD_MMCSUPPORT is not set +CONFIG_MMCSD_HAVECARDDETECT=y +# CONFIG_MMCSD_SPI is not set +CONFIG_ARCH_HAVE_SDIO=y +# CONFIG_ARCH_HAVE_SDIOWAIT_WRCOMPLETE is not set +CONFIG_MMCSD_SDIO=y +# CONFIG_SDIO_PREFLIGHT is not set +# CONFIG_SDIO_MUXBUS is not set +CONFIG_SDIO_BLOCKSETUP=y +# CONFIG_MODEM is not set +CONFIG_MTD=y + +# +# MTD Configuration +# +# CONFIG_MTD_PARTITION is not set +# CONFIG_MTD_SECT512 is not set +# CONFIG_MTD_BYTE_WRITE is not set +# CONFIG_MTD_PROGMEM is not set +CONFIG_MTD_CONFIG=y +# CONFIG_MTD_CONFIG_RAM_CONSOLIDATE is not set +CONFIG_MTD_CONFIG_ERASEDVALUE=0xff + +# +# MTD Device Drivers +# +# CONFIG_MTD_NAND is not set +# CONFIG_RAMMTD is not set +# CONFIG_FILEMTD is not set +CONFIG_MTD_AT24XX=y +# CONFIG_AT24XX_MULTI is not set +CONFIG_AT24XX_SIZE=2 +CONFIG_AT24XX_ADDR=0x57 +CONFIG_AT24XX_EXTENDED=y +CONFIG_AT24XX_EXTSIZE=160 +CONFIG_AT24XX_FREQUENCY=100000 +CONFIG_MTD_AT25=y +CONFIG_AT25_SPIMODE=0 +CONFIG_AT25_SPIFREQUENCY=20000000 +# CONFIG_MTD_AT45DB is not set +# CONFIG_MTD_M25P is not set +# CONFIG_MTD_S25FL1 is not set +# CONFIG_MTD_N25QXXX is not set +# CONFIG_MTD_SMART is not set +# CONFIG_MTD_RAMTRON is not set +# CONFIG_MTD_SST25 is not set +# CONFIG_MTD_SST25XX is not set +# CONFIG_MTD_SST39FV is not set +# CONFIG_MTD_W25 is not set +# CONFIG_EEPROM is not set +CONFIG_NETDEVICES=y + +# +# General Ethernet MAC Driver Options +# +# CONFIG_NETDEV_LOOPBACK is not set +CONFIG_NETDEV_TELNET=y +CONFIG_TELNET_RXBUFFER_SIZE=256 +CONFIG_TELNET_TXBUFFER_SIZE=256 +# CONFIG_NETDEV_MULTINIC is not set +CONFIG_ARCH_HAVE_NETDEV_STATISTICS=y +CONFIG_NETDEV_STATISTICS=y +# CONFIG_NETDEV_LATEINIT is not set + +# +# External Ethernet MAC Device Support +# +# CONFIG_NET_DM90x0 is not set +# CONFIG_NET_CS89x0 is not set +# CONFIG_ENC28J60 is not set +# CONFIG_ENCX24J600 is not set +# CONFIG_NET_E1000 is not set +# CONFIG_NET_SLIP is not set +# CONFIG_NET_FTMAC100 is not set +# CONFIG_NET_VNET is not set + +# +# External Ethernet PHY Device Support +# +CONFIG_ARCH_PHY_INTERRUPT=y +# CONFIG_ETH0_PHY_NONE is not set +# CONFIG_ETH0_PHY_AM79C874 is not set +# CONFIG_ETH0_PHY_KS8721 is not set +# CONFIG_ETH0_PHY_KSZ8041 is not set +# CONFIG_ETH0_PHY_KSZ8051 is not set +CONFIG_ETH0_PHY_KSZ8061=y +# CONFIG_ETH0_PHY_KSZ8081 is not set +# CONFIG_ETH0_PHY_KSZ90x1 is not set +# CONFIG_ETH0_PHY_DP83848C is not set +# CONFIG_ETH0_PHY_LAN8720 is not set +# CONFIG_ETH0_PHY_LAN8740 is not set +# CONFIG_ETH0_PHY_LAN8740A is not set +# CONFIG_ETH0_PHY_LAN8742A is not set +# CONFIG_ETH0_PHY_DM9161 is not set +# CONFIG_PIPES is not set +# CONFIG_PM is not set +# CONFIG_POWER is not set +# CONFIG_SENSORS is not set +# CONFIG_SERCOMM_CONSOLE is not set +CONFIG_SERIAL=y +# CONFIG_DEV_LOWCONSOLE is not set +# CONFIG_16550_UART is not set +# CONFIG_ARCH_HAVE_UART is not set +# CONFIG_ARCH_HAVE_UART0 is not set +# CONFIG_ARCH_HAVE_UART1 is not set +# CONFIG_ARCH_HAVE_UART2 is not set +CONFIG_ARCH_HAVE_UART3=y +# CONFIG_ARCH_HAVE_UART4 is not set +# CONFIG_ARCH_HAVE_UART5 is not set +# CONFIG_ARCH_HAVE_UART6 is not set +# CONFIG_ARCH_HAVE_UART7 is not set +# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_ARCH_HAVE_SCI0 is not set +# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_ARCH_HAVE_USART0 is not set +# CONFIG_ARCH_HAVE_USART1 is not set +# CONFIG_ARCH_HAVE_USART2 is not set +# CONFIG_ARCH_HAVE_USART3 is not set +# CONFIG_ARCH_HAVE_USART4 is not set +# CONFIG_ARCH_HAVE_USART5 is not set +# CONFIG_ARCH_HAVE_USART6 is not set +# CONFIG_ARCH_HAVE_USART7 is not set +# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_ARCH_HAVE_OTHER_UART is not set + +# +# USART Configuration +# +CONFIG_MCU_SERIAL=y +CONFIG_STANDARD_SERIAL=y +# CONFIG_SERIAL_IFLOWCONTROL is not set +# CONFIG_SERIAL_OFLOWCONTROL is not set +# CONFIG_SERIAL_DMA is not set +CONFIG_ARCH_HAVE_SERIAL_TERMIOS=y +CONFIG_UART3_SERIAL_CONSOLE=y +# CONFIG_OTHER_SERIAL_CONSOLE is not set +# CONFIG_NO_SERIAL_CONSOLE is not set + +# +# UART3 Configuration +# +CONFIG_UART3_RXBUFSIZE=256 +CONFIG_UART3_TXBUFSIZE=256 +CONFIG_UART3_BAUD=115200 +CONFIG_UART3_BITS=8 +CONFIG_UART3_PARITY=0 +CONFIG_UART3_2STOP=0 +# CONFIG_UART3_IFLOWCONTROL is not set +# CONFIG_UART3_OFLOWCONTROL is not set +# CONFIG_UART3_DMA is not set +# CONFIG_USBDEV is not set +# CONFIG_USBHOST is not set +# CONFIG_DRIVERS_WIRELESS is not set + +# +# System Logging Device Options +# + +# +# System Logging +# +CONFIG_RAMLOG=y +CONFIG_RAMLOG_SYSLOG=y +# CONFIG_RAMLOG_CONSOLE is not set +CONFIG_RAMLOG_BUFSIZE=1024 +# CONFIG_RAMLOG_CRLF is not set +CONFIG_RAMLOG_NONBLOCKING=y +# CONFIG_SYSLOG_CONSOLE is not set + +# +# Networking Support +# +CONFIG_ARCH_HAVE_NET=y +CONFIG_ARCH_HAVE_PHY=y +CONFIG_NET=y +CONFIG_NET_NOINTS=y +# CONFIG_NET_PROMISCUOUS is not set + +# +# Driver buffer configuration +# +# CONFIG_NET_MULTIBUFFER is not set +CONFIG_NET_ETH_MTU=590 +CONFIG_NET_ETH_TCP_RECVWNDO=536 +CONFIG_NET_GUARDSIZE=2 + +# +# Data link support +# +# CONFIG_NET_MULTILINK is not set +# CONFIG_NET_USER_DEVFMT is not set +CONFIG_NET_ETHERNET=y +# CONFIG_NET_LOOPBACK is not set +# CONFIG_NET_TUN is not set + +# +# Network Device Operations +# +CONFIG_NETDEV_PHY_IOCTL=y + +# +# Internet Protocol Selection +# +CONFIG_NET_IPv4=y +# CONFIG_NET_IPv6 is not set + +# +# Socket Support +# +CONFIG_NSOCKET_DESCRIPTORS=8 +CONFIG_NET_NACTIVESOCKETS=16 +CONFIG_NET_SOCKOPTS=y +# CONFIG_NET_SOLINGER is not set + +# +# Raw Socket Support +# +# CONFIG_NET_PKT is not set + +# +# Unix Domain Socket Support +# +# CONFIG_NET_LOCAL is not set + +# +# TCP/IP Networking +# +CONFIG_NET_TCP=y +# CONFIG_NET_TCPURGDATA is not set +# CONFIG_NET_TCP_REASSEMBLY is not set +CONFIG_NET_TCP_CONNS=8 +CONFIG_NET_MAX_LISTENPORTS=20 +CONFIG_NET_TCP_READAHEAD=y +CONFIG_NET_TCP_WRITE_BUFFERS=y +CONFIG_NET_TCP_NWRBCHAINS=8 +CONFIG_NET_TCP_RECVDELAY=0 +CONFIG_NET_TCPBACKLOG=y +# CONFIG_NET_SENDFILE is not set + +# +# UDP Networking +# +# CONFIG_NET_UDP is not set + +# +# ICMP Networking Support +# +CONFIG_NET_ICMP=y +CONFIG_NET_ICMP_PING=y + +# +# IGMPv2 Client Support +# +# CONFIG_NET_IGMP is not set + +# +# ARP Configuration +# +CONFIG_NET_ARP=y +CONFIG_NET_ARPTAB_SIZE=16 +CONFIG_NET_ARP_MAXAGE=120 +# CONFIG_NET_ARP_IPIN is not set +CONFIG_NET_ARP_SEND=y +CONFIG_ARP_SEND_MAXTRIES=5 +CONFIG_ARP_SEND_DELAYMSEC=20 + +# +# Network I/O Buffer Support +# +CONFIG_NET_IOB=y +CONFIG_IOB_NBUFFERS=36 +CONFIG_IOB_BUFSIZE=196 +CONFIG_IOB_NCHAINS=8 +CONFIG_IOB_THROTTLE=8 +# CONFIG_NET_ARCH_INCR32 is not set +# CONFIG_NET_ARCH_CHKSUM is not set +CONFIG_NET_STATISTICS=y + +# +# Routing Table Configuration +# +# CONFIG_NET_ROUTE is not set +CONFIG_NET_HOSTNAME="SAMV71-XULT" + +# +# Crypto API +# +# CONFIG_CRYPTO is not set + +# +# File Systems +# + +# +# File system configuration +# +# CONFIG_DISABLE_MOUNTPOINT is not set +# CONFIG_FS_AUTOMOUNTER is not set +# CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +CONFIG_FS_READABLE=y +CONFIG_FS_WRITABLE=y +# CONFIG_FS_NAMED_SEMAPHORES is not set +CONFIG_FS_MQUEUE_MPATH="/var/mqueue" +# CONFIG_FS_RAMMAP is not set +CONFIG_FS_FAT=y +CONFIG_FAT_LCNAMES=y +CONFIG_FAT_LFN=y +CONFIG_FAT_MAXFNAME=32 +# CONFIG_FS_FATTIME is not set +# CONFIG_FAT_FORCE_INDIRECT is not set +# CONFIG_FAT_DMAMEMORY is not set +# CONFIG_FAT_DIRECT_RETRY is not set +# CONFIG_FS_NXFFS is not set +# CONFIG_FS_ROMFS is not set +# CONFIG_FS_TMPFS is not set +# CONFIG_FS_SMARTFS is not set +# CONFIG_FS_BINFS is not set +CONFIG_FS_PROCFS=y +# CONFIG_FS_PROCFS_REGISTER is not set + +# +# Exclude individual procfs entries +# +# CONFIG_FS_PROCFS_EXCLUDE_PROCESS is not set +# CONFIG_FS_PROCFS_EXCLUDE_UPTIME is not set +# CONFIG_FS_PROCFS_EXCLUDE_MOUNTS is not set +# CONFIG_FS_PROCFS_EXCLUDE_NET is not set +# CONFIG_FS_PROCFS_EXCLUDE_MTD is not set +# CONFIG_FS_UNIONFS is not set + +# +# System Logging +# +CONFIG_SYSLOG=y +# CONFIG_SYSLOG_TIMESTAMP is not set +# CONFIG_SYSLOG_CHAR is not set + +# +# Graphics Support +# +CONFIG_NX=y +CONFIG_NX_NPLANES=1 +CONFIG_NX_BGCOLOR=0x0 +# CONFIG_NX_ANTIALIASING is not set +# CONFIG_NX_WRITEONLY is not set +CONFIG_NX_UPDATE=y + +# +# Supported Pixel Depths +# +# CONFIG_NX_DISABLE_1BPP is not set +# CONFIG_NX_DISABLE_2BPP is not set +# CONFIG_NX_DISABLE_4BPP is not set +# CONFIG_NX_DISABLE_8BPP is not set +# CONFIG_NX_DISABLE_16BPP is not set +# CONFIG_NX_DISABLE_24BPP is not set +CONFIG_NX_DISABLE_32BPP=y + +# +# Input Devices +# +CONFIG_NX_XYINPUT=y +# CONFIG_NX_XYINPUT_NONE is not set +CONFIG_NX_XYINPUT_MOUSE=y +# CONFIG_NX_XYINPUT_TOUCHSCREEN is not set +CONFIG_NX_KBD=y + +# +# Framed Window Borders +# +CONFIG_NXTK_BORDERWIDTH=4 +CONFIG_NXTK_DEFAULT_BORDERCOLORS=y +# CONFIG_NXTK_AUTORAISE is not set + +# +# Font Selections +# +CONFIG_NXFONTS_CHARBITS=7 +# CONFIG_NXFONT_MONO5X8 is not set +# CONFIG_NXFONT_SANS17X22 is not set +# CONFIG_NXFONT_SANS20X26 is not set +# CONFIG_NXFONT_SANS23X27 is not set +# CONFIG_NXFONT_SANS22X29 is not set +CONFIG_NXFONT_SANS28X37=y +# CONFIG_NXFONT_SANS39X48 is not set +# CONFIG_NXFONT_SANS17X23B is not set +# CONFIG_NXFONT_SANS20X27B is not set +# CONFIG_NXFONT_SANS22X29B is not set +# CONFIG_NXFONT_SANS28X37B is not set +# CONFIG_NXFONT_SANS40X49B is not set +# CONFIG_NXFONT_SERIF22X29 is not set +# CONFIG_NXFONT_SERIF29X37 is not set +# CONFIG_NXFONT_SERIF38X48 is not set +# CONFIG_NXFONT_SERIF22X28B is not set +# CONFIG_NXFONT_SERIF27X38B is not set +# CONFIG_NXFONT_SERIF38X49B is not set +# CONFIG_NXFONT_PIXEL_UNICODE is not set +# CONFIG_NXFONT_PIXEL_LCD_MACHINE is not set +# CONFIG_NXFONT_X11_MISC_FIXED_4X6 is not set +# CONFIG_NXFONT_X11_MISC_FIXED_5X7 is not set +# CONFIG_NXFONT_X11_MISC_FIXED_5X8 is not set +# CONFIG_NXFONT_X11_MISC_FIXED_6X9 is not set +# CONFIG_NXFONT_X11_MISC_FIXED_6X10 is not set +# CONFIG_NXFONT_X11_MISC_FIXED_6X12 is not set +# CONFIG_NXFONT_X11_MISC_FIXED_6X13 is not set +# CONFIG_NXFONT_X11_MISC_FIXED_6X13B is not set +# CONFIG_NXFONT_X11_MISC_FIXED_6X13O is not set +# CONFIG_NXFONT_X11_MISC_FIXED_7X13 is not set +# CONFIG_NXFONT_X11_MISC_FIXED_7X13B is not set +# CONFIG_NXFONT_X11_MISC_FIXED_7X13O is not set +# CONFIG_NXFONT_X11_MISC_FIXED_7X14 is not set +# CONFIG_NXFONT_X11_MISC_FIXED_7X14B is not set +# CONFIG_NXFONT_X11_MISC_FIXED_8X13 is not set +# CONFIG_NXFONT_X11_MISC_FIXED_8X13B is not set +# CONFIG_NXFONT_X11_MISC_FIXED_8X13O is not set +# CONFIG_NXFONT_X11_MISC_FIXED_9X15 is not set +# CONFIG_NXFONT_X11_MISC_FIXED_9X15B is not set +# CONFIG_NXFONT_X11_MISC_FIXED_9X18 is not set +# CONFIG_NXFONT_X11_MISC_FIXED_9X18B is not set +# CONFIG_NXFONT_X11_MISC_FIXED_10X20 is not set +# CONFIG_NXTERM is not set + +# +# NX Multi-user only options +# +# CONFIG_NX_MULTIUSER is not set +CONFIG_VNCSERVER=y +CONFIG_VNCSERVER_PROTO3p3=y +# CONFIG_VNCSERVER_PROTO3p8 is not set +CONFIG_VNCSERVER_NDISPLAYS=1 +CONFIG_VNCSERVER_PRIO=100 +CONFIG_VNCSERVER_STACKSIZE=2048 +CONFIG_VNCSERVER_UPDATER_PRIO=100 +CONFIG_VNCSERVER_UPDATER_STACKSIZE=2048 +CONFIG_VNCSERVER_COLORFMT_RGB16=y +# CONFIG_VNCSERVER_COLORFMT_RGB32 is not set +CONFIG_VNCSERVER_SCREENWIDTH=320 +CONFIG_VNCSERVER_SCREENHEIGHT=240 +CONFIG_VNCSERVER_NUPDATES=48 +CONFIG_VNCSERVER_UPDATE_BUFSIZE=4096 +CONFIG_VNCSERVER_INBUFFER_SIZE=80 +# CONFIG_VNCCLIENT is not set + +# +# Memory Management +# +# CONFIG_MM_SMALL is not set +CONFIG_MM_REGIONS=1 +# CONFIG_ARCH_HAVE_HEAP2 is not set +# CONFIG_GRAN is not set + +# +# Audio Support +# +# CONFIG_AUDIO is not set + +# +# Wireless Support +# +# CONFIG_WIRELESS is not set + +# +# Binary Loader +# +# CONFIG_BINFMT_DISABLE is not set +# CONFIG_BINFMT_EXEPATH is not set +# CONFIG_NXFLAT is not set +# CONFIG_ELF is not set +CONFIG_BUILTIN=y +# CONFIG_PIC is not set +# CONFIG_SYMTAB_ORDEREDBYNAME is not set + +# +# Library Routines +# + +# +# Standard C Library Options +# +CONFIG_STDIO_BUFFER_SIZE=64 +CONFIG_STDIO_LINEBUFFER=y +CONFIG_NUNGET_CHARS=2 +CONFIG_LIB_HOMEDIR="/" +# CONFIG_LIBM is not set +# CONFIG_NOPRINTF_FIELDWIDTH is not set +# CONFIG_LIBC_FLOATINGPOINT is not set +CONFIG_LIBC_LONG_LONG=y +# CONFIG_LIBC_IOCTL_VARIADIC is not set +CONFIG_LIB_RAND_ORDER=1 +# CONFIG_EOL_IS_CR is not set +# CONFIG_EOL_IS_LF is not set +# CONFIG_EOL_IS_BOTH_CRLF is not set +CONFIG_EOL_IS_EITHER_CRLF=y +# CONFIG_LIBC_EXECFUNCS is not set +CONFIG_POSIX_SPAWN_PROXY_STACKSIZE=1024 +CONFIG_TASK_SPAWN_DEFAULT_STACKSIZE=2048 +# CONFIG_LIBC_STRERROR is not set +# CONFIG_LIBC_PERROR_STDOUT is not set +CONFIG_LIBC_TMPDIR="/tmp" +CONFIG_LIBC_MAX_TMPFILE=32 +CONFIG_ARCH_LOWPUTC=y +# CONFIG_LIBC_LOCALTIME is not set +# CONFIG_TIME_EXTENDED is not set +CONFIG_LIB_SENDFILE_BUFSIZE=512 +# CONFIG_ARCH_ROMGETC is not set +# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set +CONFIG_LIBC_NETDB=y +# CONFIG_NETDB_HOSTFILE is not set + +# +# Non-standard Library Support +# +# CONFIG_LIB_KBDCODEC is not set +# CONFIG_LIB_SLCDCODEC is not set + +# +# Basic CXX Support +# +# CONFIG_C99_BOOL8 is not set +# CONFIG_HAVE_CXX is not set + +# +# Application Configuration +# + +# +# Built-In Applications +# +CONFIG_BUILTIN_PROXY_STACKSIZE=1024 + +# +# CAN Utilities +# + +# +# Examples +# +# CONFIG_EXAMPLES_BUTTONS is not set +# CONFIG_EXAMPLES_CHAT is not set +# CONFIG_EXAMPLES_CONFIGDATA is not set +# CONFIG_EXAMPLES_CPUHOG is not set +# CONFIG_EXAMPLES_DHCPD is not set +# CONFIG_EXAMPLES_ELF is not set +# CONFIG_EXAMPLES_FSTEST is not set +# CONFIG_EXAMPLES_FTPC is not set +# CONFIG_EXAMPLES_FTPD is not set +# CONFIG_EXAMPLES_HELLO is not set +# CONFIG_EXAMPLES_JSON is not set +# CONFIG_EXAMPLES_HIDKBD is not set +# CONFIG_EXAMPLES_KEYPADTEST is not set +# CONFIG_EXAMPLES_IGMP is not set +# CONFIG_EXAMPLES_MEDIA is not set +# CONFIG_EXAMPLES_MM is not set +# CONFIG_EXAMPLES_MODBUS is not set +# CONFIG_EXAMPLES_MOUNT is not set +# CONFIG_EXAMPLES_NETTEST is not set +# CONFIG_EXAMPLES_NRF24L01TERM is not set +CONFIG_EXAMPLES_NSH=y +# CONFIG_EXAMPLES_NULL is not set +# CONFIG_EXAMPLES_NX is not set +# CONFIG_EXAMPLES_NXTERM is not set +# CONFIG_EXAMPLES_NXFFS is not set +# CONFIG_EXAMPLES_NXHELLO is not set +CONFIG_EXAMPLES_NXIMAGE=y +CONFIG_EXAMPLES_NXIMAGE_VPLANE=0 +CONFIG_EXAMPLES_NXIMAGE_DEVNO=0 +CONFIG_EXAMPLES_NXIMAGE_BPP=16 +# CONFIG_EXAMPLES_NXIMAGE_XSCALEp5 is not set +CONFIG_EXAMPLES_NXIMAGE_XSCALE1p0=y +# CONFIG_EXAMPLES_NXIMAGE_XSCALE1p5 is not set +# CONFIG_EXAMPLES_NXIMAGE_XSCALE2p0 is not set +# CONFIG_EXAMPLES_NXIMAGE_YSCALEp5 is not set +CONFIG_EXAMPLES_NXIMAGE_YSCALE1p0=y +# CONFIG_EXAMPLES_NXIMAGE_YSCALE1p5 is not set +# CONFIG_EXAMPLES_NXIMAGE_YSCALE2p0 is not set +# CONFIG_EXAMPLES_NXLINES is not set +# CONFIG_EXAMPLES_NXTEXT is not set +# CONFIG_EXAMPLES_OSTEST is not set +# CONFIG_EXAMPLES_PCA9635 is not set +# CONFIG_EXAMPLES_PIPE is not set +# CONFIG_EXAMPLES_PPPD is not set +# CONFIG_EXAMPLES_POSIXSPAWN is not set +# CONFIG_EXAMPLES_RGBLED is not set +# CONFIG_EXAMPLES_RGMP is not set +# CONFIG_EXAMPLES_SENDMAIL is not set +# CONFIG_EXAMPLES_SERIALBLASTER is not set +# CONFIG_EXAMPLES_SERIALRX is not set +# CONFIG_EXAMPLES_SERLOOP is not set +# CONFIG_EXAMPLES_SLCD is not set +# CONFIG_EXAMPLES_SMART_TEST is not set +# CONFIG_EXAMPLES_SMART is not set +# CONFIG_EXAMPLES_SMP is not set +# CONFIG_EXAMPLES_TCPECHO is not set +# CONFIG_EXAMPLES_TELNETD is not set +# CONFIG_EXAMPLES_TIFF is not set +# CONFIG_EXAMPLES_TOUCHSCREEN is not set +# CONFIG_EXAMPLES_WEBSERVER is not set +# CONFIG_EXAMPLES_USBSERIAL is not set +# CONFIG_EXAMPLES_USBTERM is not set +# CONFIG_EXAMPLES_WATCHDOG is not set + +# +# File System Utilities +# +# CONFIG_FSUTILS_INIFILE is not set +# CONFIG_FSUTILS_PASSWD is not set + +# +# GPS Utilities +# +# CONFIG_GPSUTILS_MINMEA_LIB is not set + +# +# Graphics Support +# +# CONFIG_TIFF is not set +# CONFIG_GRAPHICS_TRAVELER is not set + +# +# Interpreters +# +# CONFIG_INTERPRETERS_BAS is not set +# CONFIG_INTERPRETERS_FICL is not set +# CONFIG_INTERPRETERS_PCODE is not set +# CONFIG_INTERPRETERS_MICROPYTHON is not set + +# +# FreeModBus +# +# CONFIG_MODBUS is not set + +# +# Network Utilities +# +# CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_FTPC is not set +# CONFIG_NETUTILS_JSON is not set +# CONFIG_NETUTILS_SMTP is not set +CONFIG_NETUTILS_TELNETD=y +CONFIG_NETUTILS_NETLIB=y +CONFIG_NETUTILS_WEBCLIENT=y +CONFIG_NSH_WGET_USERAGENT="NuttX/6.xx.x (; http://www.nuttx.org/)" +CONFIG_WEBCLIENT_TIMEOUT=10 +# CONFIG_NETUTILS_WEBSERVER is not set +# CONFIG_NETUTILS_XMLRPC is not set + +# +# NSH Library +# +CONFIG_NSH_LIBRARY=y +CONFIG_NSH_MOTD=y +# CONFIG_NSH_PLATFORM_MOTD is not set +CONFIG_NSH_MOTD_STRING="VNC Server at 10.0.0.2:5900" + +# +# Command Line Configuration +# +CONFIG_NSH_READLINE=y +# CONFIG_NSH_CLE is not set +CONFIG_NSH_LINELEN=64 +# CONFIG_NSH_DISABLE_SEMICOLON is not set +CONFIG_NSH_CMDPARMS=y +CONFIG_NSH_MAXARGUMENTS=6 +CONFIG_NSH_ARGCAT=y +CONFIG_NSH_NESTDEPTH=3 +# CONFIG_NSH_DISABLEBG is not set +CONFIG_NSH_BUILTIN_APPS=y + +# +# Disable Individual commands +# +# CONFIG_NSH_DISABLE_ADDROUTE is not set +# CONFIG_NSH_DISABLE_ARP is not set +# CONFIG_NSH_DISABLE_BASENAME is not set +# CONFIG_NSH_DISABLE_CAT is not set +# CONFIG_NSH_DISABLE_CD is not set +# CONFIG_NSH_DISABLE_CP is not set +# CONFIG_NSH_DISABLE_CMP is not set +CONFIG_NSH_DISABLE_DATE=y +# CONFIG_NSH_DISABLE_DD is not set +# CONFIG_NSH_DISABLE_DF is not set +# CONFIG_NSH_DISABLE_DELROUTE is not set +# CONFIG_NSH_DISABLE_DIRNAME is not set +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_EXEC is not set +# CONFIG_NSH_DISABLE_EXIT is not set +# CONFIG_NSH_DISABLE_FREE is not set +# CONFIG_NSH_DISABLE_GET is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_HEXDUMP is not set +# CONFIG_NSH_DISABLE_IFCONFIG is not set +# CONFIG_NSH_DISABLE_IFUPDOWN is not set +# CONFIG_NSH_DISABLE_KILL is not set +# CONFIG_NSH_DISABLE_LOSETUP is not set +CONFIG_NSH_DISABLE_LOSMART=y +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MB is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MKFATFS is not set +# CONFIG_NSH_DISABLE_MKFIFO is not set +# CONFIG_NSH_DISABLE_MKRD is not set +# CONFIG_NSH_DISABLE_MH is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_MW is not set +# CONFIG_NSH_DISABLE_PS is not set +# CONFIG_NSH_DISABLE_PING is not set +# CONFIG_NSH_DISABLE_PUT is not set +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_RM is not set +# CONFIG_NSH_DISABLE_RMDIR is not set +# CONFIG_NSH_DISABLE_SET is not set +# CONFIG_NSH_DISABLE_SH is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_TIME is not set +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNAME is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set +# CONFIG_NSH_DISABLE_WGET is not set +# CONFIG_NSH_DISABLE_XD is not set + +# +# Configure Command Options +# +# CONFIG_NSH_CMDOPT_DF_H is not set +CONFIG_NSH_CODECS_BUFSIZE=128 +CONFIG_NSH_CMDOPT_HEXDUMP=y +CONFIG_NSH_PROC_MOUNTPOINT="/proc" +CONFIG_NSH_FILEIOSIZE=512 + +# +# Scripting Support +# +# CONFIG_NSH_DISABLESCRIPT is not set +# CONFIG_NSH_DISABLE_ITEF is not set +# CONFIG_NSH_DISABLE_LOOPS is not set + +# +# Console Configuration +# +CONFIG_NSH_CONSOLE=y +CONFIG_NSH_ARCHINIT=y + +# +# Networking Configuration +# +CONFIG_NSH_NETINIT_THREAD=y +CONFIG_NSH_NETINIT_THREAD_STACKSIZE=1568 +CONFIG_NSH_NETINIT_THREAD_PRIORITY=80 + +# +# IP Address Configuration +# + +# +# IPv4 Addresses +# +CONFIG_NSH_IPADDR=0x0a000002 +CONFIG_NSH_DRIPADDR=0x0a000001 +CONFIG_NSH_NETMASK=0xffffff00 +# CONFIG_NSH_NOMAC is not set +CONFIG_NSH_MAX_ROUNDTRIP=20 + +# +# Telnet Configuration +# +CONFIG_NSH_TELNET=y +CONFIG_NSH_TELNETD_PORT=23 +CONFIG_NSH_TELNETD_DAEMONPRIO=100 +CONFIG_NSH_TELNETD_DAEMONSTACKSIZE=2048 +CONFIG_NSH_TELNETD_CLIENTPRIO=100 +CONFIG_NSH_TELNETD_CLIENTSTACKSIZE=2048 +CONFIG_NSH_IOBUFFER_SIZE=512 +# CONFIG_NSH_LOGIN is not set +# CONFIG_NSH_CONSOLE_LOGIN is not set +# CONFIG_NSH_TELNET_LOGIN is not set + +# +# NxWidgets/NxWM +# + +# +# Platform-specific Support +# +# CONFIG_PLATFORM_CONFIGDATA is not set + +# +# System Libraries and NSH Add-Ons +# +# CONFIG_SYSTEM_FREE is not set +# CONFIG_SYSTEM_CLE is not set +# CONFIG_SYSTEM_CUTERM is not set +# CONFIG_SYSTEM_INSTALL is not set +# CONFIG_SYSTEM_FLASH_ERASEALL is not set +# CONFIG_SYSTEM_HEX2BIN is not set +CONFIG_SYSTEM_I2CTOOL=y +CONFIG_I2CTOOL_MINBUS=0 +CONFIG_I2CTOOL_MAXBUS=0 +CONFIG_I2CTOOL_MINADDR=0x03 +CONFIG_I2CTOOL_MAXADDR=0x77 +CONFIG_I2CTOOL_MAXREGADDR=0xff +CONFIG_I2CTOOL_DEFFREQ=400000 +# CONFIG_SYSTEM_HEXED is not set +# CONFIG_SYSTEM_NETDB is not set +# CONFIG_SYSTEM_RAMTEST is not set +CONFIG_READLINE_HAVE_EXTMATCH=y +CONFIG_SYSTEM_READLINE=y +CONFIG_READLINE_ECHO=y +# CONFIG_READLINE_TABCOMPLETION is not set +# CONFIG_READLINE_CMD_HISTORY is not set +# CONFIG_SYSTEM_MDIO is not set +# CONFIG_SYSTEM_SUDOKU is not set +# CONFIG_SYSTEM_VI is not set +# CONFIG_SYSTEM_UBLOXMODEM is not set +# CONFIG_SYSTEM_ZMODEM is not set diff --git a/configs/samv71-xult/vnc/setenv.sh b/configs/samv71-xult/vnc/setenv.sh new file mode 100644 index 0000000000..873796c9b0 --- /dev/null +++ b/configs/samv71-xult/vnc/setenv.sh @@ -0,0 +1,77 @@ +#!/bin/bash +# configs/samv7-xult/vnc/Make.defs +# +# Copyright (C) 2016 Gregory Nutt. All rights reserved. +# Author: Gregory Nutt +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# 3. Neither the name NuttX nor the names of its contributors may be +# used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + +if [ "$_" = "$0" ] ; then + echo "You must source this script, not run it!" 1>&2 + exit 1 +fi + +WD=`pwd` +if [ ! -x "setenv.sh" ]; then + echo "This script must be executed from the top-level NuttX build directory" + exit 1 +fi + +if [ -z "${PATH_ORIG}" ]; then + export PATH_ORIG="${PATH}" +fi + +# This is the Cygwin path to the location where I installed the Atmel GCC +# toolchain under Windows. You will also have to edit this if you install +# this toolchain in any other location +#export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/Atmel/Atmel Toolchain/ARM GCC/Native/4.7.3.99/arm-gnu-toolchain/bin" + +# This is the Cygwin path to the location where I installed the CodeSourcery +# toolchain under windows. You will also have to edit this if you install +# the CodeSourcery toolchain in any other location +#export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/CodeSourcery/Sourcery G++ Lite/bin" +#export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_EABI/bin" +# export TOOLCHAIN_BIN="/cygdrive/c/Users/MyName/MentorGraphics/Sourcery_CodeBench_Lite_for_ARM_EABI/bin" + +# This is the location where I installed the ARM "GNU Tools for ARM Embedded Processors" +# You can this free toolchain here https://launchpad.net/gcc-arm-embedded +export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/GNU Tools ARM Embedded/4.9 2015q2/bin" + +# This is the path to the location where I installed the devkitARM toolchain +# You can get this free toolchain from http://devkitpro.org/ or http://sourceforge.net/projects/devkitpro/ +#export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/devkitARM/bin" + +# This is the Cygwin path to the location where I build the buildroot +# toolchain. +# export TOOLCHAIN_BIN="${WD}/../buildroot/build_arm_nofpu/staging_dir/bin" + +# Add the path to the toolchain to the PATH varialble +export PATH="${TOOLCHAIN_BIN}:/sbin:/usr/sbin:${PATH_ORIG}" + +echo "PATH : ${PATH}" -- GitLab From 8f26e46c404b18ae1a85029a5e39614a1a39a0d4 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 18 Apr 2016 14:07:08 -0600 Subject: [PATCH 041/307] VNC: Fix some compile problems when graphics debug is enabled --- graphics/vnc/server/vnc_keymap.c | 4 ++-- graphics/vnc/server/vnc_negotiate.c | 2 +- graphics/vnc/server/vnc_server.c | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/graphics/vnc/server/vnc_keymap.c b/graphics/vnc/server/vnc_keymap.c index e63f99fe8e..57690183f4 100644 --- a/graphics/vnc/server/vnc_keymap.c +++ b/graphics/vnc/server/vnc_keymap.c @@ -583,7 +583,7 @@ void vnc_key_map(FAR struct vnc_session_s *session, uint16_t keysym, ret = nx_kbdin(session->handle, nch, buffer); if (ret < 0) { - gdbg("ERROR: nx_kbdin() failed: %d\n", ret) + gdbg("ERROR: nx_kbdin() failed: %d\n", ret); } #else /* Inject the single key press into NX */ @@ -591,7 +591,7 @@ void vnc_key_map(FAR struct vnc_session_s *session, uint16_t keysym, ret = nx_kbdchin(session->handle,(uint8_t)keych); if (ret < 0) { - gdbg("ERROR: nx_kbdchin() failed: %d\n", ret) + gdbg("ERROR: nx_kbdchin() failed: %d\n", ret); } #endif } diff --git a/graphics/vnc/server/vnc_negotiate.c b/graphics/vnc/server/vnc_negotiate.c index 34430cf19f..d6c1a9a2f7 100644 --- a/graphics/vnc/server/vnc_negotiate.c +++ b/graphics/vnc/server/vnc_negotiate.c @@ -224,7 +224,7 @@ int vnc_negotiate(FAR struct vnc_session_s *session) } else if (setformat->msgtype != RFB_SETPIXELFMT_MSG) { - gdbg("ERROR: Not a SetFormat message: %d\n", (int)setformat->type); + gdbg("ERROR: Not a SetFormat message: %d\n", (int)setformat->msgtype); return -EPROTO; } diff --git a/graphics/vnc/server/vnc_server.c b/graphics/vnc/server/vnc_server.c index 9cd9b8e18e..4fb802aad6 100644 --- a/graphics/vnc/server/vnc_server.c +++ b/graphics/vnc/server/vnc_server.c @@ -252,8 +252,8 @@ int vnc_server(int argc, FAR char *argv[]) fb = (FAR uint8_t *)kmm_zalloc(RFB_SIZE); if (fb == NULL) { - gdbg("ERROR: Failed to allocate framebuffer memory: %lu\n", - (unsigned long)alloc); + gdbg("ERROR: Failed to allocate framebuffer memory: %lu KB\n", + (unsigned long)(RFB_SIZE / 1024)); return -ENOMEM; } -- GitLab From 5997373b55c4d3b0d2843716483f9f72fd7782ee Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 18 Apr 2016 15:34:39 -0600 Subject: [PATCH 042/307] VNC: Fix some obvious logic and coding errors found in early testing --- configs/samv71-xult/vnc/defconfig | 8 +---- graphics/vnc/server/vnc_fbdev.c | 51 +++++++++++++++++++++++-------- graphics/vnc/server/vnc_server.c | 28 +++++++++++++---- graphics/vnc/server/vnc_server.h | 14 +++++++-- graphics/vnc/server/vnc_updater.c | 28 ++++++++--------- 5 files changed, 87 insertions(+), 42 deletions(-) diff --git a/configs/samv71-xult/vnc/defconfig b/configs/samv71-xult/vnc/defconfig index 3f66d98714..5e5f76362a 100644 --- a/configs/samv71-xult/vnc/defconfig +++ b/configs/samv71-xult/vnc/defconfig @@ -1363,13 +1363,7 @@ CONFIG_NSH_IOBUFFER_SIZE=512 # CONFIG_SYSTEM_INSTALL is not set # CONFIG_SYSTEM_FLASH_ERASEALL is not set # CONFIG_SYSTEM_HEX2BIN is not set -CONFIG_SYSTEM_I2CTOOL=y -CONFIG_I2CTOOL_MINBUS=0 -CONFIG_I2CTOOL_MAXBUS=0 -CONFIG_I2CTOOL_MINADDR=0x03 -CONFIG_I2CTOOL_MAXADDR=0x77 -CONFIG_I2CTOOL_MAXREGADDR=0xff -CONFIG_I2CTOOL_DEFFREQ=400000 +# CONFIG_SYSTEM_I2CTOOL is not set # CONFIG_SYSTEM_HEXED is not set # CONFIG_SYSTEM_NETDB is not set # CONFIG_SYSTEM_RAMTEST is not set diff --git a/graphics/vnc/server/vnc_fbdev.c b/graphics/vnc/server/vnc_fbdev.c index 46bcc47e53..89a976c2c3 100644 --- a/graphics/vnc/server/vnc_fbdev.c +++ b/graphics/vnc/server/vnc_fbdev.c @@ -46,6 +46,7 @@ #include #include +#include #include #include "vnc_server.h" @@ -136,7 +137,7 @@ static struct vnc_fbinfo_s g_fbinfo[RFB_MAX_DISPLAYS]; * for the semaphores. */ -sem_t g_fbsem[RFB_MAX_DISPLAYS]; +struct fb_startup_s g_fbstartup[RFB_MAX_DISPLAYS]; /**************************************************************************** * Private Functions @@ -398,6 +399,9 @@ static int up_setcursor(FAR struct fb_vtable_s *vtable, static inline int vnc_wait_server(int display) { + int errcode; + int result; + /* Check if there has been a session allocated yet. This is one of the * first things that the VNC server will do with the kernel thread is * started. But we might be here before the thread has gotten that far. @@ -412,20 +416,38 @@ static inline int vnc_wait_server(int display) while (g_vnc_sessions[display] == NULL || g_vnc_sessions[display]->state != VNCSERVER_RUNNING) - { - /* The server is not yet running. Wait for the server to post the FB - * semaphore. In certain error situations, the server may post the - * semaphore, then reset it to zero. There are are certainly race - * conditions here, but I think none that are fatal. - */ + { + /* The server is not yet running. Wait for the server to post the FB + * semaphore. In certain error situations, the server may post the + * semaphore, then reset it to zero. There are are certainly race + * conditions here, but I think none that are fatal. + */ - while (sem_wait(&g_fbsem[display]) < 0) - { - /* sem_wait() should fail only if it is interrupt by a signal. */ + while (sem_wait(&g_fbstartup[display].fbsem) < 0) + { + errcode = get_errno(); - DEBUGASSERT(get_errno() == EINTR); - } - } + /* sem_wait() should fail only if it is interrupt by a signal. */ + + DEBUGASSERT(errcode == EINTR); + if (errcode != EINTR) + { + DEBUGASSERT(errcode > 0); + return -errcode; + } + } + + /* We were awakened. A result of -EBUSY means that the negotiation + * is not complete. Why would we be awakened in that case? Some + * counting semaphore screw-up? + */ + + result = g_fbstartup[display].result; + if (result != -EBUSY) + { + return result; + } + } return OK; } @@ -466,6 +488,9 @@ int up_fbinitialize(int display) /* Check if the server is already running */ + g_fbstartup[display].result = -EBUSY; + sem_reset(&g_fbstartup[display].fbsem, 0); + if (g_vnc_sessions[display] != NULL) { DEBUGASSERT(g_vnc_sessions[display]->state >= VNCSERVER_INITIALIZED); diff --git a/graphics/vnc/server/vnc_server.c b/graphics/vnc/server/vnc_server.c index 4fb802aad6..b83ebe6b9e 100644 --- a/graphics/vnc/server/vnc_server.c +++ b/graphics/vnc/server/vnc_server.c @@ -107,6 +107,12 @@ static void vnc_reset_session(FAR struct vnc_session_s *session, } /* [Re-]initialize the session. */ + + memset(&session->connect, 0, sizeof(struct socket)); + session->connect.s_crefs = 1; + memset(&session->listen, 0, sizeof(struct socket)); + session->listen.s_crefs = 1; + /* Put all of the pre-allocated update structures into the freelist */ sq_init(&session->updqueue); @@ -235,14 +241,16 @@ int vnc_server(int argc, FAR char *argv[]) if (argc != 2) { gdbg("ERROR: Unexpected number of arguments: %d\n", argc); - return EXIT_FAILURE; + ret = -EINVAL; + goto errout_with_post; } display = atoi(argv[1]); if (display < 0 || display >= RFB_MAX_DISPLAYS) { gdbg("ERROR: Invalid display number: %d\n", display); - return EXIT_FAILURE; + ret = -EINVAL; + goto errout_with_post; } /* Allocate the framebuffer memory. We rely on the fact that @@ -254,7 +262,8 @@ int vnc_server(int argc, FAR char *argv[]) { gdbg("ERROR: Failed to allocate framebuffer memory: %lu KB\n", (unsigned long)(RFB_SIZE / 1024)); - return -ENOMEM; + ret = -ENOMEM; + goto errout_with_post; } /* Allocate a session structure for this display */ @@ -263,6 +272,7 @@ int vnc_server(int argc, FAR char *argv[]) if (session == NULL) { gdbg("ERROR: Failed to allocate session\n"); + ret = -ENOMEM; goto errout_with_fb; } @@ -276,12 +286,13 @@ int vnc_server(int argc, FAR char *argv[]) for (; ; ) { - /* Release the last sesstion and [Re-]initialize the session structure + /* Release the last session and [Re-]initialize the session structure * for the next connection. */ vnc_reset_session(session, fb); - sem_reset(&g_fbsem[display], 0); + g_fbstartup[display].result = -EBUSY; + sem_reset(&g_fbstartup[display].fbsem, 0); /* Establish a connection with the VNC client */ @@ -318,7 +329,8 @@ int vnc_server(int argc, FAR char *argv[]) * updates. */ - sem_post(&g_fbsem[display]); + g_fbstartup[display].result = OK; + sem_post(&g_fbstartup[display].fbsem); /* Run the VNC receiver on this trhead. The VNC receiver handles * all Client-to-Server messages. The VNC receiver function does @@ -341,6 +353,10 @@ int vnc_server(int argc, FAR char *argv[]) errout_with_fb: kmm_free(fb); + +errout_with_post: + g_fbstartup[display].result = ret; + sem_post(&g_fbstartup[display].fbsem); return EXIT_FAILURE; } diff --git a/graphics/vnc/server/vnc_server.h b/graphics/vnc/server/vnc_server.h index 6129060c0b..41acacd822 100644 --- a/graphics/vnc/server/vnc_server.h +++ b/graphics/vnc/server/vnc_server.h @@ -146,7 +146,7 @@ /* Local framebuffer characteristics in bytes */ -#define RFB_BYTESPERPIXEL ((RFB_BITSPERPIXEL + 7) >> 8) +#define RFB_BYTESPERPIXEL ((RFB_BITSPERPIXEL + 7) >> 3) #define RFB_STRIDE (RFB_BYTESPERPIXEL * CONFIG_VNCSERVER_SCREENWIDTH) #define RFB_SIZE (RFB_STRIDE * CONFIG_VNCSERVER_SCREENHEIGHT) @@ -229,6 +229,16 @@ struct vnc_session_s uint8_t outbuf[VNCSERVER_UPDATE_BUFSIZE]; }; +/* This structure is used to communicate start-up status between the server + * the framebuffer driver. + */ + +struct fb_startup_s +{ + sem_t fbsem; /* Framebuffer driver will wait on this */ + int16_t result; /* OK: successfully initialized */ +}; + /**************************************************************************** * Public Data ****************************************************************************/ @@ -249,7 +259,7 @@ EXTERN FAR struct vnc_session_s *g_vnc_sessions[RFB_MAX_DISPLAYS]; /* Used to synchronize the server thread with the framebuffer driver. */ -EXTERN sem_t g_fbsem[RFB_MAX_DISPLAYS]; +EXTERN struct fb_startup_s g_fbstartup[RFB_MAX_DISPLAYS]; /**************************************************************************** * Public Function Prototypes diff --git a/graphics/vnc/server/vnc_updater.c b/graphics/vnc/server/vnc_updater.c index 067eba160b..1a76c17665 100644 --- a/graphics/vnc/server/vnc_updater.c +++ b/graphics/vnc/server/vnc_updater.c @@ -338,7 +338,7 @@ uint32_t vnc_convert_rgb32_888(uint32_t rgb) ****************************************************************************/ static size_t vnc_copy16(FAR struct vnc_session_s *session, - nxgl_coord_t row, nxgl_coord_t col, + nxgl_coord_t row, nxgl_coord_t col, nxgl_coord_t height, nxgl_coord_t width, vnc_convert16_t convert) { @@ -357,14 +357,14 @@ static size_t vnc_copy16(FAR struct vnc_session_s *session, /* Source rectangle start address (left/top)*/ - srcleft = (FAR uint16_t *)(session->fb + RFB_STRIDE * y + RFB_BYTESPERPIXEL * x); + srcleft = (FAR uint16_t *)(session->fb + RFB_STRIDE * row + RFB_BYTESPERPIXEL * col); /* Transfer each row from the source buffer into the update buffer */ - for (y = 0; y < row; y++) + for (y = 0; y < height; y++) { src = srcleft; - for (y = 0; y < row; y++) + for (x = 0; x < width; x++) { *dest++ = convert(*src); src++; @@ -390,12 +390,12 @@ static size_t vnc_copy16(FAR struct vnc_session_s *session, /* Source rectangle start address */ - srcleft = (FAR uint32_t *)(session->fb + RFB_STRIDE * y + RFB_BYTESPERPIXEL * x); + srcleft = (FAR uint32_t *)(session->fb + RFB_STRIDE * row + RFB_BYTESPERPIXEL * col); - for (y = 0; y < row; y++) + for (y = 0; y < height; y++) { src = srcleft; - for (y = 0; y < row; y++) + for (x = 0; x < width; x++) { *dest++ = convert(*src); src++; @@ -428,7 +428,7 @@ static size_t vnc_copy16(FAR struct vnc_session_s *session, ****************************************************************************/ static size_t vnc_copy32(FAR struct vnc_session_s *session, - nxgl_coord_t row, nxgl_coord_t col, + nxgl_coord_t row, nxgl_coord_t col, nxgl_coord_t height, nxgl_coord_t width, vnc_convert32_t convert) { @@ -447,14 +447,14 @@ static size_t vnc_copy32(FAR struct vnc_session_s *session, /* Source rectangle start address (left/top)*/ - srcleft = (FAR uint16_t *)(session->fb + RFB_STRIDE * y + RFB_BYTESPERPIXEL * x); + srcleft = (FAR uint16_t *)(session->fb + RFB_STRIDE * row + RFB_BYTESPERPIXEL * col); /* Transfer each row from the source buffer into the update buffer */ - for (y = 0; y < row; y++) + for (y = 0; y < height; y++) { src = srcleft; - for (y = 0; y < row; y++) + for (x = 0; x < width; x++) { *dest++ = convert(*src); src++; @@ -480,12 +480,12 @@ static size_t vnc_copy32(FAR struct vnc_session_s *session, /* Source rectangle start address */ - srcleft = (FAR uint32_t *)(session->fb + RFB_STRIDE * y + RFB_BYTESPERPIXEL * x); + srcleft = (FAR uint32_t *)(session->fb + RFB_STRIDE * row + RFB_BYTESPERPIXEL * col); - for (y = 0; y < row; y++) + for (y = 0; y < height; y++) { src = srcleft; - for (y = 0; y < row; y++) + for (x = 0; x < width; x++) { *dest++ = convert(*src); src++; -- GitLab From 6cfe56202db42b6c5d0040f9da01afff0a750df4 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 18 Apr 2016 18:55:36 -0600 Subject: [PATCH 043/307] Backout 3f731241cb07090ed54b3b3b9e7df1fd20d86506. It is a good idea, but has some unpleasant side effect... like SYSLOG and dbg() no longer work --- graphics/vnc/server/vnc_fbdev.c | 12 ++++++++++++ graphics/vnc/server/vnc_negotiate.c | 16 +++++++++++++++- graphics/vnc/server/vnc_receiver.c | 3 +++ graphics/vnc/server/vnc_server.c | 21 +++++++++++++-------- graphics/vnc/server/vnc_server.h | 1 + graphics/vnc/server/vnc_updater.c | 6 +++++- sched/task/task_create.c | 2 ++ 7 files changed, 51 insertions(+), 10 deletions(-) diff --git a/graphics/vnc/server/vnc_fbdev.c b/graphics/vnc/server/vnc_fbdev.c index 89a976c2c3..87fb91b84d 100644 --- a/graphics/vnc/server/vnc_fbdev.c +++ b/graphics/vnc/server/vnc_fbdev.c @@ -445,6 +445,18 @@ static inline int vnc_wait_server(int display) result = g_fbstartup[display].result; if (result != -EBUSY) { +#ifdef CONFIG_DEBUG + if (result < 0) + { + DEBUGASSERT(g_vnc_sessions[display] == NULL); + gdbg("ERROR: VNC server startup failed: %d\n", result); + } + else + { + DEBUGASSERT(g_vnc_sessions[display] != NULL && + g_vnc_sessions[display]->state == VNCSERVER_RUNNING); + } +#endif return result; } } diff --git a/graphics/vnc/server/vnc_negotiate.c b/graphics/vnc/server/vnc_negotiate.c index d6c1a9a2f7..7c229814cb 100644 --- a/graphics/vnc/server/vnc_negotiate.c +++ b/graphics/vnc/server/vnc_negotiate.c @@ -94,6 +94,8 @@ int vnc_negotiate(FAR struct vnc_session_s *session) /* Inform the client of the VNC protocol version */ + gvdbg("Send protocol version: %s\n", g_vncproto); + len = strlen(g_vncproto); nsent = psock_send(&session->connect, g_vncproto, len, 0); if (nsent < 0) @@ -108,6 +110,8 @@ int vnc_negotiate(FAR struct vnc_session_s *session) /* Receive the echo of the protocol string */ + gvdbg("Receive echo from VNC client\n"); + nrecvd = psock_recv(&session->connect, session->inbuf, len, 0); if (nrecvd < 0) { @@ -125,6 +129,8 @@ int vnc_negotiate(FAR struct vnc_session_s *session) * word:" */ + gvdbg("Send security type (None)\n"); + sectype = (FAR struct rfb_sectype_s *)session->outbuf; rfb_putbe32(sectype->type, RFB_SECTYPE_NONE); @@ -150,6 +156,8 @@ int vnc_negotiate(FAR struct vnc_session_s *session) * In this implementation, the sharing flag is ignored. */ + gvdbg("Receive ClientInit\n"); + nrecvd = psock_recv(&session->connect, session->inbuf, sizeof(struct rfb_clientinit_s), 0); if (nrecvd < 0) @@ -162,13 +170,15 @@ int vnc_negotiate(FAR struct vnc_session_s *session) DEBUGASSERT(nrecvd == sizeof(struct rfb_clientinit_s)); - /* Send the ClientInit message + /* Send the ServerInit message * * "After receiving the ClientInit message, the server sends a ServerInit * message. This tells the client the width and height of the server’s * framebuffer, its pixel format and the name associated with the desktop: */ + gvdbg("Receive ServerInit\n"); + serverinit = (FAR struct rfb_serverinit_s *)session->outbuf; rfb_putbe16(serverinit->width, CONFIG_VNCSERVER_SCREENWIDTH); @@ -204,6 +214,8 @@ int vnc_negotiate(FAR struct vnc_session_s *session) * This may override some of our framebuffer settings. */ + gvdbg("Receive SetPixelFormat\n"); + setformat = (FAR struct rfb_setpixelformat_s *)session->inbuf; nrecvd = psock_recv(&session->connect, setformat, @@ -273,6 +285,8 @@ int vnc_negotiate(FAR struct vnc_session_s *session) * we will do only raw format. */ + gvdbg("Receive encoding types\n"); + (void)psock_recv(&session->connect, session->inbuf, CONFIG_VNCSERVER_INBUFFER_SIZE, 0); diff --git a/graphics/vnc/server/vnc_receiver.c b/graphics/vnc/server/vnc_receiver.c index 8715ee69a8..9b9fc0d1d2 100644 --- a/graphics/vnc/server/vnc_receiver.c +++ b/graphics/vnc/server/vnc_receiver.c @@ -119,6 +119,9 @@ int vnc_receiver(FAR struct vnc_session_s *session) int errcode; int ret; + DEBUGASSERT(session); + gvdbg("Receiver running for Display %d\n", session->display); + /* Loop until the client disconnects or an unhandled error occurs */ for (; ; ) diff --git a/graphics/vnc/server/vnc_server.c b/graphics/vnc/server/vnc_server.c index b83ebe6b9e..653e2bc3ac 100644 --- a/graphics/vnc/server/vnc_server.c +++ b/graphics/vnc/server/vnc_server.c @@ -57,10 +57,6 @@ #include "vnc_server.h" -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - /**************************************************************************** * Public Data ****************************************************************************/ @@ -92,7 +88,7 @@ FAR struct vnc_session_s *g_vnc_sessions[RFB_MAX_DISPLAYS]; ****************************************************************************/ static void vnc_reset_session(FAR struct vnc_session_s *session, - FAR uint8_t *fb) + FAR uint8_t *fb, int display) { FAR struct vnc_fbupdate_s *curr; FAR struct vnc_fbupdate_s *next; @@ -136,8 +132,9 @@ static void vnc_reset_session(FAR struct vnc_session_s *session, sem_reset(&session->freesem, CONFIG_VNCSERVER_NUPDATES); sem_reset(&session->queuesem, 0); - session->fb = fb; - session->state = VNCSERVER_INITIALIZED; + session->fb = fb; + session->display = display; + session->state = VNCSERVER_INITIALIZED; } /**************************************************************************** @@ -160,6 +157,8 @@ static int vnc_connect(FAR struct vnc_session_s *session, int port) struct sockaddr_in addr; int ret; + gvdbg("Connecting display %d\n", session->display); + /* Create a listening socket */ addr.sin_family = AF_INET; @@ -194,6 +193,8 @@ static int vnc_connect(FAR struct vnc_session_s *session, int port) /* Connect to the client */ + gvdbg("Acception connection for display %d\n", session->display); + ret = psock_accept(&session->listen, NULL, NULL, &session->connect); if (ret < 0) { @@ -201,6 +202,7 @@ static int vnc_connect(FAR struct vnc_session_s *session, int port) goto errout_with_listener; } + gvdbg("Display %d connected\n", session->display); session->state = VNCSERVER_CONNECTED; return OK; @@ -234,6 +236,7 @@ int vnc_server(int argc, FAR char *argv[]) int display; int ret; + gvdbg("Server Started\n"); DEBUGASSERT(session != NULL); /* A single argument is expected: A diplay port number in ASCII form */ @@ -253,6 +256,8 @@ int vnc_server(int argc, FAR char *argv[]) goto errout_with_post; } + gvdbg("Display %d\n", display); + /* Allocate the framebuffer memory. We rely on the fact that * the KMM allocator will align memory to 32-bits or better. */ @@ -290,7 +295,7 @@ int vnc_server(int argc, FAR char *argv[]) * for the next connection. */ - vnc_reset_session(session, fb); + vnc_reset_session(session, fb, display); g_fbstartup[display].result = -EBUSY; sem_reset(&g_fbstartup[display].fbsem, 0); diff --git a/graphics/vnc/server/vnc_server.h b/graphics/vnc/server/vnc_server.h index 41acacd822..c4bd08ac38 100644 --- a/graphics/vnc/server/vnc_server.h +++ b/graphics/vnc/server/vnc_server.h @@ -207,6 +207,7 @@ struct vnc_session_s /* Display geometry and color characteristics */ + uint8_t display; /* Display number (for debug) */ uint8_t colorfmt; /* Remote color format (See include/nuttx/fb.h) */ uint8_t bpp; /* Remote bits per pixel */ FAR uint8_t *fb; /* Allocated local frame buffer */ diff --git a/graphics/vnc/server/vnc_updater.c b/graphics/vnc/server/vnc_updater.c index 1a76c17665..01e1046a96 100644 --- a/graphics/vnc/server/vnc_updater.c +++ b/graphics/vnc/server/vnc_updater.c @@ -544,9 +544,11 @@ static FAR void *vnc_updater(FAR void *arg) } convert; bool color32 = false; + DEBUGASSERT(session != NULL); + gvdbg("Updater running for Display %d\n", session->display); + /* Set up some constant pointers and values */ - DEBUGASSERT(session != NULL); update = (FAR struct rfb_framebufferupdate_s *)session->outbuf; destrect = update->rect; @@ -743,6 +745,8 @@ int vnc_start_updater(FAR struct vnc_session_s *session) struct sched_param param; int status; + gvdbg("Starting updater for Display %d\n", session->display); + /* Create thread that is gonna send rectangles to the client */ session->state = VNCSERVER_RUNNING; diff --git a/sched/task/task_create.c b/sched/task/task_create.c index 1cc59793cc..c8dc768d5a 100644 --- a/sched/task/task_create.c +++ b/sched/task/task_create.c @@ -117,12 +117,14 @@ static int thread_create(FAR const char *name, uint8_t ttype, int priority, #endif #if CONFIG_NFILE_DESCRIPTORS > 0 || CONFIG_NSOCKET_DESCRIPTORS > 0 +#if 0 /* No... there are side effects */ /* Associate file descriptors with the new task. Exclude kernel threads; * kernel threads do not have file or socket descriptors. They must use * SYSLOG for output and the low-level psock interfaces for network I/O. */ if (ttype != TCB_FLAG_TTYPE_KERNEL) +#endif { ret = group_setuptaskfiles(tcb); if (ret < OK) -- GitLab From 1ae24ddf778ad42d55f0b67a92de095d8c350357 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 18 Apr 2016 19:02:40 -0600 Subject: [PATCH 044/307] VNC: Add more debug output; fix a bad assertion --- graphics/vnc/server/vnc_receiver.c | 11 +++++++++++ graphics/vnc/server/vnc_server.c | 7 ++----- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/graphics/vnc/server/vnc_receiver.c b/graphics/vnc/server/vnc_receiver.c index 9b9fc0d1d2..a74fc1a68d 100644 --- a/graphics/vnc/server/vnc_receiver.c +++ b/graphics/vnc/server/vnc_receiver.c @@ -150,6 +150,8 @@ int vnc_receiver(FAR struct vnc_session_s *session) { case RFB_SETPIXELFMT_MSG: /* SetPixelFormat */ { + gvdbg("Received SetPixelFormat\n"); + /* Read the rest of the SetPixelFormat message */ ret = vnc_read_remainder(session, @@ -172,6 +174,8 @@ int vnc_receiver(FAR struct vnc_session_s *session) FAR struct rfb_setencodings_s *encodings; uint32_t nencodings; + gvdbg("Received SetEncodings\n"); + /* Read the SetEncodings message without the following * encodings. */ @@ -212,6 +216,8 @@ int vnc_receiver(FAR struct vnc_session_s *session) FAR struct rfb_fbupdatereq_s *update; struct nxgl_rect_s rect; + gvdbg("Received FramebufferUpdateRequest\n"); + /* Read the rest of the SetPixelFormat message */ ret = vnc_read_remainder(session, @@ -246,6 +252,8 @@ int vnc_receiver(FAR struct vnc_session_s *session) { FAR struct rfb_keyevent_s *keyevent; + gvdbg("Received KeyEvent\n"); + /* Read the rest of the KeyEvent message */ ret = vnc_read_remainder(session, @@ -273,6 +281,7 @@ int vnc_receiver(FAR struct vnc_session_s *session) FAR struct rfb_pointerevent_s *event; uint8_t buttons; #endif + gvdbg("Received PointerEvent\n"); /* Read the rest of the PointerEvent message */ @@ -328,6 +337,8 @@ int vnc_receiver(FAR struct vnc_session_s *session) FAR struct rfb_clientcuttext_s *cuttext; uint32_t length; + gvdbg("Received ClientCutText\n"); + /* Read the ClientCutText message without the following * text. */ diff --git a/graphics/vnc/server/vnc_server.c b/graphics/vnc/server/vnc_server.c index 653e2bc3ac..eba4afb818 100644 --- a/graphics/vnc/server/vnc_server.c +++ b/graphics/vnc/server/vnc_server.c @@ -193,7 +193,7 @@ static int vnc_connect(FAR struct vnc_session_s *session, int port) /* Connect to the client */ - gvdbg("Acception connection for display %d\n", session->display); + gvdbg("Accepting connection for Display %d\n", session->display); ret = psock_accept(&session->listen, NULL, NULL, &session->connect); if (ret < 0) @@ -236,9 +236,6 @@ int vnc_server(int argc, FAR char *argv[]) int display; int ret; - gvdbg("Server Started\n"); - DEBUGASSERT(session != NULL); - /* A single argument is expected: A diplay port number in ASCII form */ if (argc != 2) @@ -256,7 +253,7 @@ int vnc_server(int argc, FAR char *argv[]) goto errout_with_post; } - gvdbg("Display %d\n", display); + gvdbg("Server started for Display %d\n", display); /* Allocate the framebuffer memory. We rely on the fact that * the KMM allocator will align memory to 32-bits or better. -- GitLab From ca6cb8545610d8b62339c5866893946e13653ead Mon Sep 17 00:00:00 2001 From: ziggurat29 Date: Tue, 19 Apr 2016 06:55:12 -0500 Subject: [PATCH 045/307] QSPI interrupt driven mode is now implemented --- arch/arm/src/stm32l4/chip/stm32l4_qspi.h | 4 +- arch/arm/src/stm32l4/stm32l4_qspi.c | 486 +++++++++++++++++++---- 2 files changed, 409 insertions(+), 81 deletions(-) diff --git a/arch/arm/src/stm32l4/chip/stm32l4_qspi.h b/arch/arm/src/stm32l4/chip/stm32l4_qspi.h index 41c0f24c46..ecb6c927af 100644 --- a/arch/arm/src/stm32l4/chip/stm32l4_qspi.h +++ b/arch/arm/src/stm32l4/chip/stm32l4_qspi.h @@ -95,8 +95,8 @@ #define QSPI_CR_DMAEN (1 << 2) /* Bit 2: DMA enable */ #define QSPI_CR_TCEN (1 << 3) /* Bit 3: Timeout counter enable */ #define QSPI_CR_SSHIFT (1 << 4) /* Bit 4: Sample shift */ -#define QSPI_CR_FTHRES_SHIFT (8) /* Bits 8-15: FIFO threshold level */ -#define QSPI_CR_FTHRES_MASK (0xff << QSPI_CR_FTHRES_SHIFT) +#define QSPI_CR_FTHRES_SHIFT (8) /* Bits 8-11: FIFO threshold level */ +#define QSPI_CR_FTHRES_MASK (0x0f << QSPI_CR_FTHRES_SHIFT) #define QSPI_CR_TEIE (1 << 16) /* Bit 16: Transfer error interrupt enable */ #define QSPI_CR_TCIE (1 << 17) /* Bit 17: Transfer complete interrupt enable */ #define QSPI_CR_FTIE (1 << 18) /* Bit 18: FIFO threshold interrupt enable */ diff --git a/arch/arm/src/stm32l4/stm32l4_qspi.c b/arch/arm/src/stm32l4/stm32l4_qspi.c index 258798388a..cdc8f84302 100644 --- a/arch/arm/src/stm32l4/stm32l4_qspi.c +++ b/arch/arm/src/stm32l4/stm32l4_qspi.c @@ -124,15 +124,14 @@ # error QSPI DMA support not yet implemented #endif -#ifdef QSPI_USE_INTERRUPTS -# error QSPI Interrupt support not yet implemented -#endif - -/* QSPI interrupts and dma are not yet implemented */ +/* QSPI dma is not yet implemented */ -#undef QSPI_USE_INTERRUPTS #undef CONFIG_STM32L4_QSPI_DMA +/* QSPI Interrupt mode is implemented */ + +#define QSPI_USE_INTERRUPTS + /* Sanity check that board.h defines requisite QSPI pinmap options for */ #if (!defined(GPIO_QSPI_CS) || !defined(GPIO_QSPI_IO0) || !defined(GPIO_QSPI_IO1) || \ @@ -181,6 +180,8 @@ struct stm32l4_qspidev_s #ifdef QSPI_USE_INTERRUPTS xcpt_t handler; /* Interrupt handler */ uint8_t irq; /* Interrupt number */ + sem_t op_sem; /* Block until complete */ + struct qspi_xctnspec_s* xctn; /* context of transaction in progress*/ #endif #ifdef CONFIG_STM32L4_QSPI_DMA @@ -227,8 +228,14 @@ struct qspi_xctnspec_s uint32_t datasize; /* number of data bytes (0xffffffff == undefined) */ FAR void *buffer; /* Data buffer */ - uint32_t isddr; /* true if 'double data rate' */ - uint32_t issioo; /* true if 'send instruction only once' mode */ + uint8_t isddr; /* true if 'double data rate' */ + uint8_t issioo; /* true if 'send instruction only once' mode */ + +#ifdef QSPI_USE_INTERRUPTS + uint8_t function; /* functional mode; to distinguish a read or write */ + int8_t disposition; /* how it all turned out */ + uint32_t idxnow; /* index into databuffer of current byte in transfer */ +#endif }; /**************************************************************************** @@ -265,6 +272,7 @@ static void qspi_dumpgpioconfig(const char *msg); #ifdef QSPI_USE_INTERRUPTS static int qspi0_interrupt(int irq, void *context); + #endif /* QSPI methods */ @@ -313,7 +321,7 @@ static struct stm32l4_qspidev_s g_qspi0dev = .base = STM32L4_QSPI_BASE, #ifdef QSPI_USE_INTERRUPTS .handler = qspi0_interrupt, - .irq = STM32L4_IRQ_QSPI, + .irq = STM32L4_IRQ_QUADSPI, #endif .intf = 0, #ifdef CONFIG_STM32L4_QSPI_DMA @@ -672,6 +680,12 @@ static int qspi_setupxctnfromcmd(struct qspi_xctnspec_s *xctn, xctn->isddr = 0; } +#if defined(QSPI_USE_INTERRUPTS) + xctn->function = QSPICMD_ISWRITE(cmdinfo->flags) ? CCR_FMODE_INDWR : CCR_FMODE_INDRD; + xctn->disposition = - EIO; + xctn->idxnow = 0; +#endif + return OK; } @@ -792,6 +806,13 @@ static int qspi_setupxctnfrommem(struct qspi_xctnspec_s *xctn, /* XXX III double data rate option bits */ xctn->isddr = 0; + +#if defined(QSPI_USE_INTERRUPTS) + xctn->function = QSPIMEM_ISWRITE(meminfo->flags) ? CCR_FMODE_INDWR : CCR_FMODE_INDRD; + xctn->disposition = - EIO; + xctn->idxnow = 0; +#endif + return OK; } @@ -826,6 +847,28 @@ static void qspi_waitstatusflags(struct stm32l4_qspidev_s *priv, } } +/**************************************************************************** + * Name: qspi_abort + * + * Description: + * Abort any transaction in progress + * + * Input Parameters: + * priv - The QSPI controller to dump + * + * Returned Value: + * None + * + ****************************************************************************/ + +static void qspi_abort(struct stm32l4_qspidev_s *priv) +{ + uint32_t regval; + regval = qspi_getreg(priv, STM32L4_QUADSPI_CR_OFFSET); + regval |= QSPI_CR_ABORT; + qspi_putreg(priv, regval, STM32L4_QUADSPI_CR_OFFSET); +} + /**************************************************************************** * Name: qspi_ccrconfig * @@ -885,6 +928,208 @@ static void qspi_ccrconfig(struct stm32l4_qspidev_s *priv, } } +#if defined(QSPI_USE_INTERRUPTS) +/**************************************************************************** + * Name: qspi0_interrupt + * + * Description: + * Interrupt handler; we handle all QSPI cases -- reads, writes, + * automatic status polling, etc. + * + * Input Parameters: + * irq - + * context - + * + * Returned Value: + * OK means we handled it + * + ****************************************************************************/ + +static int qspi0_interrupt(int irq, void *context) +{ + uint32_t status; + uint32_t cr; + uint32_t regval; + + /* let's find out what is going on */ + + status = qspi_getreg(&g_qspi0dev, STM32L4_QUADSPI_SR_OFFSET); + cr = qspi_getreg(&g_qspi0dev, STM32L4_QUADSPI_CR_OFFSET); + + /* is it 'FIFO Threshold'? */ + + if((status & QSPI_SR_FTF) && (cr & QSPI_CR_FTIE)) + { + volatile uint32_t *datareg = (volatile uint32_t*)(g_qspi0dev.base + STM32L4_QUADSPI_DR_OFFSET); + if(g_qspi0dev.xctn->function == CCR_FMODE_INDWR) + { + /* Write data until we have no more or have no place to put it */ + + while((regval = qspi_getreg(&g_qspi0dev, STM32L4_QUADSPI_SR_OFFSET)) & QSPI_SR_FTF) + { + if (g_qspi0dev.xctn->idxnow < g_qspi0dev.xctn->datasize) + { + *(volatile uint8_t *)datareg = ((uint8_t *)g_qspi0dev.xctn->buffer)[g_qspi0dev.xctn->idxnow]; + ++g_qspi0dev.xctn->idxnow; + } + else + { + /* fresh out of data to write */ + + break; + } + } + } + else if(g_qspi0dev.xctn->function == CCR_FMODE_INDRD) + { + /* Read data until we have no more or have no place to put it */ + + while((regval = qspi_getreg(&g_qspi0dev, STM32L4_QUADSPI_SR_OFFSET)) & QSPI_SR_FTF) + { + if (g_qspi0dev.xctn->idxnow < g_qspi0dev.xctn->datasize) + { + ((uint8_t *)g_qspi0dev.xctn->buffer)[g_qspi0dev.xctn->idxnow] = *(volatile uint8_t *)datareg; + ++g_qspi0dev.xctn->idxnow; + } + else + { + /* no room at the inn */ + + break; + } + } + } + } + + /* is it 'Transfer Complete'? */ + + if((status & QSPI_SR_TCF) && (cr & QSPI_CR_TCIE)) + { + /* acknowledge interrupt */ + + qspi_putreg(&g_qspi0dev, QSPI_FCR_CTCF, STM32L4_QUADSPI_FCR); + + /* Disable the QSPI FIFO Threshold, Transfer Error and Transfer complete Interrupts */ + + regval = qspi_getreg(&g_qspi0dev, STM32L4_QUADSPI_CR_OFFSET); + regval &= ~(QSPI_CR_TEIE | QSPI_CR_TCIE | QSPI_CR_FTIE); + qspi_putreg(&g_qspi0dev, regval, STM32L4_QUADSPI_CR_OFFSET); + + /* do the last bit of read if needed */ + + if(g_qspi0dev.xctn->function == CCR_FMODE_INDRD) + { + volatile uint32_t *datareg = (volatile uint32_t*)(g_qspi0dev.base + STM32L4_QUADSPI_DR_OFFSET); + + /* Read any remaining data */ + + while(((regval = qspi_getreg(&g_qspi0dev, STM32L4_QUADSPI_SR_OFFSET)) & QSPI_SR_FLEVEL_MASK) != 0) + { + if (g_qspi0dev.xctn->idxnow < g_qspi0dev.xctn->datasize) + { + ((uint8_t *)g_qspi0dev.xctn->buffer)[g_qspi0dev.xctn->idxnow] = *(volatile uint8_t *)datareg; + ++g_qspi0dev.xctn->idxnow; + } + else + { + /* no room at the inn */ + break; + } + } + } + + /* use 'abort' to ditch any stray fifo contents and clear BUSY flag */ + + qspi_abort(&g_qspi0dev); + + /* set success status */ + + g_qspi0dev.xctn->disposition = OK; + + /* signal complete */ + + sem_post(&g_qspi0dev.op_sem); + } + + /* is it 'Status Match'? */ + + if((status & QSPI_SR_SMF) && (cr & QSPI_CR_SMIE)) + { + /* acknowledge interrupt */ + + qspi_putreg(&g_qspi0dev, QSPI_FCR_CSMF, STM32L4_QUADSPI_FCR); + + /* If 'automatic poll mode stop' is activated, we're done */ + + if(cr & QSPI_CR_APMS) + { + /* Disable the QSPI Transfer Error and Status Match Interrupts */ + + regval = qspi_getreg(&g_qspi0dev, STM32L4_QUADSPI_CR_OFFSET); + regval &= ~(QSPI_CR_TEIE | QSPI_CR_SMIE); + qspi_putreg(&g_qspi0dev, regval, STM32L4_QUADSPI_CR_OFFSET); + + /* set success status */ + + g_qspi0dev.xctn->disposition = OK; + + /* signal complete */ + + sem_post(&g_qspi0dev.op_sem); + } + else + { + /* XXX if it's NOT auto stop; something needs to happen here; a callback?*/ + } + } + + /* is it' Transfer Error'? :( */ + + if((status & QSPI_SR_TEF) && (cr & QSPI_CR_TEIE)) + { + /* acknowledge interrupt */ + + qspi_putreg(&g_qspi0dev, QSPI_FCR_CTEF, STM32L4_QUADSPI_FCR); + + /* Disable all the QSPI Interrupts */ + + regval = qspi_getreg(&g_qspi0dev, STM32L4_QUADSPI_CR_OFFSET); + regval &= ~(QSPI_CR_TEIE | QSPI_CR_TCIE | QSPI_CR_FTIE | QSPI_CR_SMIE | QSPI_CR_TOIE); + qspi_putreg(&g_qspi0dev, regval, STM32L4_QUADSPI_CR_OFFSET); + + /* set error status */ + + g_qspi0dev.xctn->disposition = - EIO; + + /* signal complete */ + + sem_post(&g_qspi0dev.op_sem); + } + + /* is it 'Timeout'? (: */ + + if((status & QSPI_SR_TOF) && (cr & QSPI_CR_TOIE)) + { + /* acknowledge interrupt */ + + qspi_putreg(&g_qspi0dev, QSPI_FCR_CTOF, STM32L4_QUADSPI_FCR); + + /* set error status */ + + g_qspi0dev.xctn->disposition = - ETIMEDOUT; + + /* signal complete */ + + sem_post(&g_qspi0dev.op_sem); + } + + return OK; +} + +#elif defined(CONFIG_STM32L4_QSPI_DMA) + /* XXX III dma mode */ + +#else /**************************************************************************** * Name: qspi_receive_blocking * @@ -949,9 +1194,7 @@ static int qspi_receive_blocking(struct stm32l4_qspidev_s *priv, /* Use Abort to clear the busy flag, and ditch any extra bytes in fifo */ - regval = qspi_getreg(priv, STM32L4_QUADSPI_CR_OFFSET); - regval |= QSPI_CR_ABORT; - qspi_putreg(priv, regval, STM32L4_QUADSPI_CR_OFFSET); + qspi_abort(priv); } } else @@ -983,7 +1226,6 @@ static int qspi_transmit_blocking(struct stm32l4_qspidev_s *priv, int ret = OK; volatile uint32_t *datareg = (volatile uint32_t*)(priv->base + STM32L4_QUADSPI_DR_OFFSET); uint8_t *src = (uint8_t*)xctn->buffer; - uint32_t regval; if (src != NULL) { @@ -1010,11 +1252,9 @@ static int qspi_transmit_blocking(struct stm32l4_qspidev_s *priv, qspi_waitstatusflags(priv, QSPI_SR_TCF, 1); qspi_putreg(priv, QSPI_FCR_CTCF, STM32L4_QUADSPI_FCR); - /* Use Abort to cler the Busy flag */ + /* Use Abort to clear the Busy flag */ - regval = qspi_getreg(priv, STM32L4_QUADSPI_CR_OFFSET); - regval |= QSPI_CR_ABORT; - qspi_putreg(priv, regval, STM32L4_QUADSPI_CR_OFFSET); + qspi_abort(priv); } } else @@ -1025,28 +1265,6 @@ static int qspi_transmit_blocking(struct stm32l4_qspidev_s *priv, return ret; } -#ifdef QSPI_USE_INTERRUPTS -/**************************************************************************** - * Name: qspi0_interrupt - * - * Description: - * XXX - * - * Input Parameters: - * irq - XXX - * context - xxx - * - * Returned Value: - * XXX - * - ****************************************************************************/ - -static int qspi0_interrupt(int irq, void *context) -{ - /* XXX III needs implementation */ - (void)g_qspi0dev; - return OK; -} #endif /**************************************************************************** @@ -1111,20 +1329,11 @@ static int qspi_lock(struct qspi_dev_s *dev, bool lock) * ****************************************************************************/ -/*XXX partial*/ static uint32_t qspi_setfrequency(struct qspi_dev_s *dev, uint32_t frequency) { struct stm32l4_qspidev_s *priv = (struct stm32l4_qspidev_s *)dev; uint32_t actual; uint32_t prescaler; -#if 0 -#if CONFIG_STM32L4_QSPI_DLYBS > 0 - uint32_t dlybs; -#endif -#if CONFIG_STM32L4_QSPI_DLYBCT > 0 - uint32_t dlybct; -#endif -#endif uint32_t regval; qspivdbg("frequency=%d\n", frequency); @@ -1132,6 +1341,7 @@ static uint32_t qspi_setfrequency(struct qspi_dev_s *dev, uint32_t frequency) /* Wait till BUSY flag reset */ + qspi_abort(priv); qspi_waitstatusflags(priv, QSPI_SR_BUSY, 0); /* Check if the requested frequency is the same as the frequency selection */ @@ -1316,6 +1526,7 @@ static int qspi_command(struct qspi_dev_s *dev, /* Wait 'till non-busy */ + qspi_abort(priv); qspi_waitstatusflags(priv, QSPI_SR_BUSY, 0); /* Clear flags */ @@ -1323,9 +1534,83 @@ static int qspi_command(struct qspi_dev_s *dev, qspi_putreg(priv, QSPI_FCR_CTEF | QSPI_FCR_CTCF | QSPI_FCR_CSMF | QSPI_FCR_CTOF, STM32L4_QUADSPI_FCR); - /* XXX III this is for polling mode; support interrupt and dma modes also - * and 'autopolling' - */ +#ifdef QSPI_USE_INTERRUPTS + /* interrupt mode will need access to the transaction context */ + + priv->xctn = &xctn; + + if (QSPICMD_ISDATA(cmdinfo->flags)) + { + DEBUGASSERT(cmdinfo->buffer != NULL && cmdinfo->buflen > 0); + DEBUGASSERT(IS_ALIGNED(cmdinfo->buffer)); + + if (QSPICMD_ISWRITE(cmdinfo->flags)) + { + uint32_t regval; + + /* Set up the Communications Configuration Register as per command info */ + + qspi_ccrconfig(priv, &xctn, CCR_FMODE_INDWR); + + /* Enable 'Transfer Error' 'FIFO Threshhold' and 'Transfer Complete' interrupts */ + + regval = qspi_getreg(priv, STM32L4_QUADSPI_CR_OFFSET); + regval |= (QSPI_CR_TEIE | QSPI_CR_FTIE | QSPI_CR_TCIE); + qspi_putreg(priv, regval, STM32L4_QUADSPI_CR_OFFSET); + } + else + { + uint32_t regval; + uint32_t addrval; + + addrval = qspi_getreg(priv, STM32L4_QUADSPI_AR_OFFSET); + + /* Set up the Communications Configuration Register as per command info */ + + qspi_ccrconfig(priv, &xctn, CCR_FMODE_INDRD); + + /* Start the transfer by re-writing the address in AR register */ + + qspi_putreg(priv, addrval, STM32L4_QUADSPI_AR_OFFSET); + + /* Enable 'Transfer Error' 'FIFO Threshhold' and 'Transfer Complete' interrupts */ + + regval = qspi_getreg(priv, STM32L4_QUADSPI_CR_OFFSET); + regval |= (QSPI_CR_TEIE | QSPI_CR_FTIE | QSPI_CR_TCIE); + qspi_putreg(priv, regval, STM32L4_QUADSPI_CR_OFFSET); + } + } + else + { + uint32_t regval; + + /* We have no data phase, the command will execute as soon as we emit the CCR */ + + /* Enable 'Transfer Error' and 'Transfer Complete' interrupts */ + + regval = qspi_getreg(priv, STM32L4_QUADSPI_CR_OFFSET); + regval |= (QSPI_CR_TEIE | QSPI_CR_TCIE); + qspi_putreg(priv, regval, STM32L4_QUADSPI_CR_OFFSET); + + /* Set up the Communications Configuration Register as per command info */ + + qspi_ccrconfig(priv, &xctn, CCR_FMODE_INDRD); + } + + /* Wait for the interrupt routine to finish it's magic */ + + sem_wait(&priv->op_sem); + MEMORY_SYNC(); + + /* convey the result */ + + ret = xctn.disposition; + +#elif defined(CONFIG_STM32L4_QSPI_DMA) + /* XXX III dma mode (and 'autopolling'?) */ + +#else + /* polling mode */ /* Set up the Communications Configuration Register as per command info */ @@ -1341,18 +1626,10 @@ static int qspi_command(struct qspi_dev_s *dev, if (QSPICMD_ISWRITE(cmdinfo->flags)) { - /* XXX III we are going to do polling; revisit when we get - * interrupt and/or DMA up. - */ - ret = qspi_transmit_blocking(priv, &xctn); } else { - /* XXX III we are going to do polling; revisit when we get - * interrupt and/or DMA up. - */ - ret = qspi_receive_blocking(priv, &xctn); } @@ -1363,12 +1640,12 @@ static int qspi_command(struct qspi_dev_s *dev, ret = OK; } - /* XXX III this is for polling mode; support interrupt and dma modes also */ - /* Wait for Transfer complete, and not busy */ qspi_waitstatusflags(priv, QSPI_SR_TCF,1); qspi_waitstatusflags(priv, QSPI_SR_BUSY,0); + +#endif return ret; } @@ -1407,6 +1684,7 @@ static int qspi_memory(struct qspi_dev_s *dev, /* Wait 'till non-busy */ + qspi_abort(priv); qspi_waitstatusflags(priv, QSPI_SR_BUSY, 0); /* Clear flags */ @@ -1414,34 +1692,81 @@ static int qspi_memory(struct qspi_dev_s *dev, qspi_putreg(priv, QSPI_FCR_CTEF | QSPI_FCR_CTCF | QSPI_FCR_CSMF | QSPI_FCR_CTOF, STM32L4_QUADSPI_FCR); - /* XXX III this is for polling mode; support interrupt and dma modes also - * nd 'autopolling' - */ +#ifdef QSPI_USE_INTERRUPTS + /* interrupt mode will need access to the transaction context */ + + priv->xctn = &xctn; + + DEBUGASSERT(meminfo->buffer != NULL && meminfo->buflen > 0); + DEBUGASSERT(IS_ALIGNED(meminfo->buffer)); + + if (QSPIMEM_ISWRITE(meminfo->flags)) + { + uint32_t regval; + + /* Set up the Communications Configuration Register as per command info */ + + qspi_ccrconfig(priv, &xctn, CCR_FMODE_INDWR); + + /* Enable 'Transfer Error' 'FIFO Threshhold' and 'Transfer Complete' interrupts */ + + regval = qspi_getreg(priv, STM32L4_QUADSPI_CR_OFFSET); + regval |= (QSPI_CR_TEIE | QSPI_CR_FTIE | QSPI_CR_TCIE); + qspi_putreg(priv, regval, STM32L4_QUADSPI_CR_OFFSET); + } + else + { + uint32_t regval; + uint32_t addrval; + + addrval = qspi_getreg(priv, STM32L4_QUADSPI_AR_OFFSET); + + /* Set up the Communications Configuration Register as per command info */ + + qspi_ccrconfig(priv, &xctn, CCR_FMODE_INDRD); + + /* Start the transfer by re-writing the address in AR register */ + + qspi_putreg(priv, addrval, STM32L4_QUADSPI_AR_OFFSET); + + /* Enable 'Transfer Error' 'FIFO Threshhold' and 'Transfer Complete' interrupts */ + + regval = qspi_getreg(priv, STM32L4_QUADSPI_CR_OFFSET); + regval |= (QSPI_CR_TEIE | QSPI_CR_FTIE | QSPI_CR_TCIE); + qspi_putreg(priv, regval, STM32L4_QUADSPI_CR_OFFSET); + } + + /* Wait for the interrupt routine to finish it's magic */ + + sem_wait(&priv->op_sem); + MEMORY_SYNC(); + + /* convey the result */ + + ret = xctn.disposition; + +#elif defined(CONFIG_STM32L4_QSPI_DMA) + /* XXX III dma mode (and 'autopolling'?) */ + +#else + /* polling mode */ /* Set up the Communications Configuration Register as per command info */ qspi_ccrconfig(priv, &xctn, - QSPICMD_ISWRITE(meminfo->flags) ? CCR_FMODE_INDWR : CCR_FMODE_INDRD); + QSPIMEM_ISWRITE(meminfo->flags) ? CCR_FMODE_INDWR : CCR_FMODE_INDRD); /* Transfer data */ DEBUGASSERT(meminfo->buffer != NULL && meminfo->buflen > 0); DEBUGASSERT(IS_ALIGNED(meminfo->buffer)); - if (QSPICMD_ISWRITE(meminfo->flags)) + if (QSPIMEM_ISWRITE(meminfo->flags)) { - /* XXX III we are going to do polling; revisit when we get interrupt - * and/or DMA up. - */ - ret = qspi_transmit_blocking(priv, &xctn); } else { - /* XXX III we are going to do polling; revisit when we get interrupt - * and/or DMA up. - */ - ret = qspi_receive_blocking(priv, &xctn); } MEMORY_SYNC(); @@ -1464,12 +1789,12 @@ static int qspi_memory(struct qspi_dev_s *dev, } #endif - /* XXX III this is for polling mode; support interrupt and dma modes also */ - /* Wait for Transfer complete, and not busy */ qspi_waitstatusflags(priv, QSPI_SR_TCF,1); qspi_waitstatusflags(priv, QSPI_SR_BUSY,0); + +#endif return ret; } @@ -1543,9 +1868,7 @@ static int qspi_hw_initialize(struct stm32l4_qspidev_s *priv) /* Disable the QSPI; abort anything happening, disable, wait for not busy */ - regval = qspi_getreg(priv, STM32L4_QUADSPI_CR_OFFSET); - regval |= QSPI_CR_ABORT; - qspi_putreg(priv, regval, STM32L4_QUADSPI_CR_OFFSET); + qspi_abort(priv); regval = qspi_getreg(priv, STM32L4_QUADSPI_CR_OFFSET); regval &= ~(QSPI_CR_EN); @@ -1709,6 +2032,11 @@ struct qspi_dev_s *stm32l4_qspi_initialize(int intf) qspidbg("ERROR: Failed to attach irq %d\n", priv->irq); goto errout_with_dmadog; } + + /* Initialize the semaphore that blocks until the operation completes */ + + sem_init(&priv->op_sem, 0, 0); + #endif /* Perform hardware initialization. Puts the QSPI into an active -- GitLab From fdc6dd95167f6dd0abc14cc63e0ec44220858726 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 19 Apr 2016 06:59:33 -0600 Subject: [PATCH 046/307] VNC: Enable receive timeouts during negotiation phase --- graphics/vnc/server/vnc_negotiate.c | 46 +++++++++++++++++++++++++++++ graphics/vnc/server/vnc_receiver.c | 25 ++++++++++++++++ 2 files changed, 71 insertions(+) diff --git a/graphics/vnc/server/vnc_negotiate.c b/graphics/vnc/server/vnc_negotiate.c index 7c229814cb..fd294f451a 100644 --- a/graphics/vnc/server/vnc_negotiate.c +++ b/graphics/vnc/server/vnc_negotiate.c @@ -45,6 +45,10 @@ #include #include +#ifdef CONFIG_NET_SOCKOPTS +# include +#endif + #include #include @@ -92,6 +96,27 @@ int vnc_negotiate(FAR struct vnc_session_s *session) size_t len; int errcode; +#ifdef CONFIG_NET_SOCKOPTS + struct timeval tv; + int ret; + + /* Set a receive timeout so that we don't hang if the client does not + * respond according to RFB 3.3 protocol. + */ + + tv.tv_sec = 5; + tv.tv_usec = 0; + ret = psock_setsockopt(&session->connect, SOL_SOCKET, SO_RCVTIMEO, + &tv, sizeof(struct timeval)); + if (ret < 0) + { + errcode = get_errno(); + gdbg("ERROR: Failed to set receive timeout: %d\n", errcode); + DEBUGASSERT(errcode > 0); + return -errcode; + } +#endif + /* Inform the client of the VNC protocol version */ gvdbg("Send protocol version: %s\n", g_vncproto); @@ -302,6 +327,27 @@ int vnc_negotiate(FAR struct vnc_session_s *session) ssize_t nrecvd; size_t len; +#ifdef CONFIG_NET_SOCKOPTS + struct timeval tv; + int ret; + + /* Set a receive timeout so that we don't hang if the client does not + * respond according to RFB 3.3 protocol. + */ + + tv.tv_sec = 5; + tv.tv_usec = 0; + ret = psock_setsockopt(&session->connect, SOL_SOCKET, SO_RCVTIMEO, + &tv, sizeof(struct timeval)); + if (ret < 0) + { + errcode = get_errno(); + gdbg("ERROR: Failed to set receive timeout: %d\n", errcode); + DEBUGASSERT(errcode > 0); + return -errcode; + } +#endif + /* Inform the client of the VNC protocol version */ len = strlen(g_vncproto); diff --git a/graphics/vnc/server/vnc_receiver.c b/graphics/vnc/server/vnc_receiver.c index a74fc1a68d..9bb2c34a90 100644 --- a/graphics/vnc/server/vnc_receiver.c +++ b/graphics/vnc/server/vnc_receiver.c @@ -43,6 +43,10 @@ #include #include +#ifdef CONFIG_NET_SOCKOPTS +# include +#endif + #include #include @@ -115,6 +119,9 @@ int vnc_read_remainder(FAR struct vnc_session_s *session, size_t msglen, int vnc_receiver(FAR struct vnc_session_s *session) { +#ifdef CONFIG_NET_SOCKOPTS + struct timeval tv; +#endif ssize_t nrecvd; int errcode; int ret; @@ -122,6 +129,24 @@ int vnc_receiver(FAR struct vnc_session_s *session) DEBUGASSERT(session); gvdbg("Receiver running for Display %d\n", session->display); +#ifdef CONFIG_NET_SOCKOPTS + /* Disable the receive timeout so that we will wait indefinitely for the + * next Client-to-Server message. + */ + + tv.tv_sec = 0; + tv.tv_usec = 0; + ret = psock_setsockopt(&session->connect, SOL_SOCKET, SO_RCVTIMEO, + &tv, sizeof(struct timeval)); + if (ret < 0) + { + errcode = get_errno(); + gdbg("ERROR: Failed to disable receive timeout: %d\n", errcode); + DEBUGASSERT(errcode > 0); + return -errcode; + } +#endif + /* Loop until the client disconnects or an unhandled error occurs */ for (; ; ) -- GitLab From 8bcb5f025110f13e56df2e4a6c4ece3345275772 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 19 Apr 2016 07:11:18 -0600 Subject: [PATCH 047/307] Cosmetic changes from review of last PR --- arch/arm/src/stm32l4/stm32l4_qspi.c | 149 ++++++++++++++++------------ 1 file changed, 88 insertions(+), 61 deletions(-) diff --git a/arch/arm/src/stm32l4/stm32l4_qspi.c b/arch/arm/src/stm32l4/stm32l4_qspi.c index cdc8f84302..68e3d0ccb3 100644 --- a/arch/arm/src/stm32l4/stm32l4_qspi.c +++ b/arch/arm/src/stm32l4/stm32l4_qspi.c @@ -167,21 +167,21 @@ struct stm32l4_qspidev_s { - struct qspi_dev_s qspi; /* Externally visible part of the QSPI interface */ - uint32_t base; /* QSPI controller register base address */ - uint32_t frequency; /* Requested clock frequency */ - uint32_t actual; /* Actual clock frequency */ - uint8_t mode; /* Mode 0,3 */ - uint8_t nbits; /* Width of word in bits (8 to 32) */ - uint8_t intf; /* QSPI controller number (0) */ - bool initialized; /* TRUE: Controller has been initialized */ - sem_t exclsem; /* Assures mutually exclusive access to QSPI */ + struct qspi_dev_s qspi; /* Externally visible part of the QSPI interface */ + uint32_t base; /* QSPI controller register base address */ + uint32_t frequency; /* Requested clock frequency */ + uint32_t actual; /* Actual clock frequency */ + uint8_t mode; /* Mode 0,3 */ + uint8_t nbits; /* Width of word in bits (8 to 32) */ + uint8_t intf; /* QSPI controller number (0) */ + bool initialized; /* TRUE: Controller has been initialized */ + sem_t exclsem; /* Assures mutually exclusive access to QSPI */ #ifdef QSPI_USE_INTERRUPTS - xcpt_t handler; /* Interrupt handler */ - uint8_t irq; /* Interrupt number */ - sem_t op_sem; /* Block until complete */ - struct qspi_xctnspec_s* xctn; /* context of transaction in progress*/ + xcpt_t handler; /* Interrupt handler */ + uint8_t irq; /* Interrupt number */ + sem_t op_sem; /* Block until complete */ + struct qspi_xctnspec_s *xctn; /* context of transaction in progress*/ #endif #ifdef CONFIG_STM32L4_QSPI_DMA @@ -786,7 +786,9 @@ static int qspi_setupxctnfrommem(struct qspi_xctnspec_s *xctn, xctn->buffer = meminfo->buffer; - /* XXX III there should be a separate flags for single/dual/quad for each of i,a,d */ + /* XXX III there should be a separate flags for single/dual/quad for each + * of i,a,d + */ if (QSPIMEM_ISDUALIO(meminfo->flags)) { @@ -864,6 +866,7 @@ static void qspi_waitstatusflags(struct stm32l4_qspidev_s *priv, static void qspi_abort(struct stm32l4_qspidev_s *priv) { uint32_t regval; + regval = qspi_getreg(priv, STM32L4_QUADSPI_CR_OFFSET); regval |= QSPI_CR_ABORT; qspi_putreg(priv, regval, STM32L4_QUADSPI_CR_OFFSET); @@ -951,17 +954,17 @@ static int qspi0_interrupt(int irq, void *context) uint32_t cr; uint32_t regval; - /* let's find out what is going on */ + /* Let's find out what is going on */ status = qspi_getreg(&g_qspi0dev, STM32L4_QUADSPI_SR_OFFSET); cr = qspi_getreg(&g_qspi0dev, STM32L4_QUADSPI_CR_OFFSET); - /* is it 'FIFO Threshold'? */ + /* Is it 'FIFO Threshold'? */ - if((status & QSPI_SR_FTF) && (cr & QSPI_CR_FTIE)) + if ((status & QSPI_SR_FTF) && (cr & QSPI_CR_FTIE)) { volatile uint32_t *datareg = (volatile uint32_t*)(g_qspi0dev.base + STM32L4_QUADSPI_DR_OFFSET); - if(g_qspi0dev.xctn->function == CCR_FMODE_INDWR) + if (g_qspi0dev.xctn->function == CCR_FMODE_INDWR) { /* Write data until we have no more or have no place to put it */ @@ -974,13 +977,13 @@ static int qspi0_interrupt(int irq, void *context) } else { - /* fresh out of data to write */ + /* Fresh out of data to write */ break; } } } - else if(g_qspi0dev.xctn->function == CCR_FMODE_INDRD) + else if (g_qspi0dev.xctn->function == CCR_FMODE_INDRD) { /* Read data until we have no more or have no place to put it */ @@ -1001,11 +1004,11 @@ static int qspi0_interrupt(int irq, void *context) } } - /* is it 'Transfer Complete'? */ + /* Is it 'Transfer Complete'? */ - if((status & QSPI_SR_TCF) && (cr & QSPI_CR_TCIE)) + if ((status & QSPI_SR_TCF) && (cr & QSPI_CR_TCIE)) { - /* acknowledge interrupt */ + /* Acknowledge interrupt */ qspi_putreg(&g_qspi0dev, QSPI_FCR_CTCF, STM32L4_QUADSPI_FCR); @@ -1015,9 +1018,9 @@ static int qspi0_interrupt(int irq, void *context) regval &= ~(QSPI_CR_TEIE | QSPI_CR_TCIE | QSPI_CR_FTIE); qspi_putreg(&g_qspi0dev, regval, STM32L4_QUADSPI_CR_OFFSET); - /* do the last bit of read if needed */ + /* Do the last bit of read if needed */ - if(g_qspi0dev.xctn->function == CCR_FMODE_INDRD) + if (g_qspi0dev.xctn->function == CCR_FMODE_INDRD) { volatile uint32_t *datareg = (volatile uint32_t*)(g_qspi0dev.base + STM32L4_QUADSPI_DR_OFFSET); @@ -1032,36 +1035,37 @@ static int qspi0_interrupt(int irq, void *context) } else { - /* no room at the inn */ + /* No room at the inn */ + break; } } } - /* use 'abort' to ditch any stray fifo contents and clear BUSY flag */ + /* Use 'abort' to ditch any stray fifo contents and clear BUSY flag */ qspi_abort(&g_qspi0dev); - /* set success status */ + /* Set success status */ g_qspi0dev.xctn->disposition = OK; - /* signal complete */ + /* Signal complete */ sem_post(&g_qspi0dev.op_sem); } - /* is it 'Status Match'? */ + /* Is it 'Status Match'? */ - if((status & QSPI_SR_SMF) && (cr & QSPI_CR_SMIE)) + if ((status & QSPI_SR_SMF) && (cr & QSPI_CR_SMIE)) { - /* acknowledge interrupt */ + /* Acknowledge interrupt */ qspi_putreg(&g_qspi0dev, QSPI_FCR_CSMF, STM32L4_QUADSPI_FCR); /* If 'automatic poll mode stop' is activated, we're done */ - if(cr & QSPI_CR_APMS) + if (cr & QSPI_CR_APMS) { /* Disable the QSPI Transfer Error and Status Match Interrupts */ @@ -1069,25 +1073,25 @@ static int qspi0_interrupt(int irq, void *context) regval &= ~(QSPI_CR_TEIE | QSPI_CR_SMIE); qspi_putreg(&g_qspi0dev, regval, STM32L4_QUADSPI_CR_OFFSET); - /* set success status */ + /* Set success status */ g_qspi0dev.xctn->disposition = OK; - /* signal complete */ + /* Signal complete */ sem_post(&g_qspi0dev.op_sem); } else { - /* XXX if it's NOT auto stop; something needs to happen here; a callback?*/ + /* XXX if it's NOT auto stop; something needs to happen here; a callback? */ } } - /* is it' Transfer Error'? :( */ + /* Is it' Transfer Error'? :( */ - if((status & QSPI_SR_TEF) && (cr & QSPI_CR_TEIE)) + if ((status & QSPI_SR_TEF) && (cr & QSPI_CR_TEIE)) { - /* acknowledge interrupt */ + /* Acknowledge interrupt */ qspi_putreg(&g_qspi0dev, QSPI_FCR_CTEF, STM32L4_QUADSPI_FCR); @@ -1097,28 +1101,28 @@ static int qspi0_interrupt(int irq, void *context) regval &= ~(QSPI_CR_TEIE | QSPI_CR_TCIE | QSPI_CR_FTIE | QSPI_CR_SMIE | QSPI_CR_TOIE); qspi_putreg(&g_qspi0dev, regval, STM32L4_QUADSPI_CR_OFFSET); - /* set error status */ + /* Set error status */ g_qspi0dev.xctn->disposition = - EIO; - /* signal complete */ + /* Signal complete */ sem_post(&g_qspi0dev.op_sem); } - /* is it 'Timeout'? (: */ + /* Is it 'Timeout'? (: */ - if((status & QSPI_SR_TOF) && (cr & QSPI_CR_TOIE)) + if ((status & QSPI_SR_TOF) && (cr & QSPI_CR_TOIE)) { - /* acknowledge interrupt */ + /* Acknowledge interrupt */ qspi_putreg(&g_qspi0dev, QSPI_FCR_CTOF, STM32L4_QUADSPI_FCR); - /* set error status */ + /* Set error status */ g_qspi0dev.xctn->disposition = - ETIMEDOUT; - /* signal complete */ + /* Signal complete */ sem_post(&g_qspi0dev.op_sem); } @@ -1531,7 +1535,8 @@ static int qspi_command(struct qspi_dev_s *dev, /* Clear flags */ - qspi_putreg(priv, QSPI_FCR_CTEF | QSPI_FCR_CTCF | QSPI_FCR_CSMF | QSPI_FCR_CTOF, + qspi_putreg(priv, + QSPI_FCR_CTEF | QSPI_FCR_CTCF | QSPI_FCR_CSMF | QSPI_FCR_CTOF, STM32L4_QUADSPI_FCR); #ifdef QSPI_USE_INTERRUPTS @@ -1548,11 +1553,15 @@ static int qspi_command(struct qspi_dev_s *dev, { uint32_t regval; - /* Set up the Communications Configuration Register as per command info */ + /* Set up the Communications Configuration Register as per command + * info + */ qspi_ccrconfig(priv, &xctn, CCR_FMODE_INDWR); - /* Enable 'Transfer Error' 'FIFO Threshhold' and 'Transfer Complete' interrupts */ + /* Enable 'Transfer Error' 'FIFO Threshhold' and 'Transfer Complete' + * interrupts. + */ regval = qspi_getreg(priv, STM32L4_QUADSPI_CR_OFFSET); regval |= (QSPI_CR_TEIE | QSPI_CR_FTIE | QSPI_CR_TCIE); @@ -1565,7 +1574,9 @@ static int qspi_command(struct qspi_dev_s *dev, addrval = qspi_getreg(priv, STM32L4_QUADSPI_AR_OFFSET); - /* Set up the Communications Configuration Register as per command info */ + /* Set up the Communications Configuration Register as per command + * info + */ qspi_ccrconfig(priv, &xctn, CCR_FMODE_INDRD); @@ -1573,7 +1584,9 @@ static int qspi_command(struct qspi_dev_s *dev, qspi_putreg(priv, addrval, STM32L4_QUADSPI_AR_OFFSET); - /* Enable 'Transfer Error' 'FIFO Threshhold' and 'Transfer Complete' interrupts */ + /* Enable 'Transfer Error' 'FIFO Threshhold' and 'Transfer Complete' + * interrupts + */ regval = qspi_getreg(priv, STM32L4_QUADSPI_CR_OFFSET); regval |= (QSPI_CR_TEIE | QSPI_CR_FTIE | QSPI_CR_TCIE); @@ -1584,7 +1597,9 @@ static int qspi_command(struct qspi_dev_s *dev, { uint32_t regval; - /* We have no data phase, the command will execute as soon as we emit the CCR */ + /* We have no data phase, the command will execute as soon as we emit + * the CCR + */ /* Enable 'Transfer Error' and 'Transfer Complete' interrupts */ @@ -1592,7 +1607,9 @@ static int qspi_command(struct qspi_dev_s *dev, regval |= (QSPI_CR_TEIE | QSPI_CR_TCIE); qspi_putreg(priv, regval, STM32L4_QUADSPI_CR_OFFSET); - /* Set up the Communications Configuration Register as per command info */ + /* Set up the Communications Configuration Register as per command + * info + */ qspi_ccrconfig(priv, &xctn, CCR_FMODE_INDRD); } @@ -1602,7 +1619,7 @@ static int qspi_command(struct qspi_dev_s *dev, sem_wait(&priv->op_sem); MEMORY_SYNC(); - /* convey the result */ + /* Convey the result */ ret = xctn.disposition; @@ -1610,7 +1627,7 @@ static int qspi_command(struct qspi_dev_s *dev, /* XXX III dma mode (and 'autopolling'?) */ #else - /* polling mode */ + /* Polling mode */ /* Set up the Communications Configuration Register as per command info */ @@ -1689,7 +1706,8 @@ static int qspi_memory(struct qspi_dev_s *dev, /* Clear flags */ - qspi_putreg(priv, QSPI_FCR_CTEF | QSPI_FCR_CTCF | QSPI_FCR_CSMF | QSPI_FCR_CTOF, + qspi_putreg(priv, + QSPI_FCR_CTEF | QSPI_FCR_CTCF | QSPI_FCR_CSMF | QSPI_FCR_CTOF, STM32L4_QUADSPI_FCR); #ifdef QSPI_USE_INTERRUPTS @@ -1704,11 +1722,15 @@ static int qspi_memory(struct qspi_dev_s *dev, { uint32_t regval; - /* Set up the Communications Configuration Register as per command info */ + /* Set up the Communications Configuration Register as per command + * info + */ qspi_ccrconfig(priv, &xctn, CCR_FMODE_INDWR); - /* Enable 'Transfer Error' 'FIFO Threshhold' and 'Transfer Complete' interrupts */ + /* Enable 'Transfer Error' 'FIFO Threshhold' and 'Transfer Complete' + * interrupts + */ regval = qspi_getreg(priv, STM32L4_QUADSPI_CR_OFFSET); regval |= (QSPI_CR_TEIE | QSPI_CR_FTIE | QSPI_CR_TCIE); @@ -1721,7 +1743,9 @@ static int qspi_memory(struct qspi_dev_s *dev, addrval = qspi_getreg(priv, STM32L4_QUADSPI_AR_OFFSET); - /* Set up the Communications Configuration Register as per command info */ + /* Set up the Communications Configuration Register as per command + * info + */ qspi_ccrconfig(priv, &xctn, CCR_FMODE_INDRD); @@ -1729,7 +1753,9 @@ static int qspi_memory(struct qspi_dev_s *dev, qspi_putreg(priv, addrval, STM32L4_QUADSPI_AR_OFFSET); - /* Enable 'Transfer Error' 'FIFO Threshhold' and 'Transfer Complete' interrupts */ + /* Enable 'Transfer Error' 'FIFO Threshhold' and 'Transfer Complete' + * interrupts + */ regval = qspi_getreg(priv, STM32L4_QUADSPI_CR_OFFSET); regval |= (QSPI_CR_TEIE | QSPI_CR_FTIE | QSPI_CR_TCIE); @@ -1769,6 +1795,7 @@ static int qspi_memory(struct qspi_dev_s *dev, { ret = qspi_receive_blocking(priv, &xctn); } + MEMORY_SYNC(); #if 0 @@ -2035,7 +2062,7 @@ struct qspi_dev_s *stm32l4_qspi_initialize(int intf) /* Initialize the semaphore that blocks until the operation completes */ - sem_init(&priv->op_sem, 0, 0); + sem_init(&priv->op_sem, 0, 0); #endif -- GitLab From f3515a242d7e4f3e422399d8dc68dcc593275b50 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 19 Apr 2016 08:33:16 -0600 Subject: [PATCH 048/307] VNC: Implemented 3.8 protocol. Seems to be required by my RealVNC client --- configs/samv71-xult/vnc/defconfig | 4 +- graphics/vnc/server/Kconfig | 18 ++- graphics/vnc/server/vnc_negotiate.c | 194 +++++++++++++++++----------- 3 files changed, 139 insertions(+), 77 deletions(-) diff --git a/configs/samv71-xult/vnc/defconfig b/configs/samv71-xult/vnc/defconfig index 5e5f76362a..d22ec9f2ce 100644 --- a/configs/samv71-xult/vnc/defconfig +++ b/configs/samv71-xult/vnc/defconfig @@ -991,8 +991,8 @@ CONFIG_NXFONT_SANS28X37=y # # CONFIG_NX_MULTIUSER is not set CONFIG_VNCSERVER=y -CONFIG_VNCSERVER_PROTO3p3=y -# CONFIG_VNCSERVER_PROTO3p8 is not set +# CONFIG_VNCSERVER_PROTO3p3 is not set +CONFIG_VNCSERVER_PROTO3p8=y CONFIG_VNCSERVER_NDISPLAYS=1 CONFIG_VNCSERVER_PRIO=100 CONFIG_VNCSERVER_STACKSIZE=2048 diff --git a/graphics/vnc/server/Kconfig b/graphics/vnc/server/Kconfig index 1a5ad3ad71..ef4e1dfe28 100644 --- a/graphics/vnc/server/Kconfig +++ b/graphics/vnc/server/Kconfig @@ -16,14 +16,14 @@ if VNCSERVER choice prompt "VNC server protocol" - default VNCSERVER_PROTO3p3 + default VNCSERVER_PROTO3p8 config VNCSERVER_PROTO3p3 bool "Version 3.3" + depends on EXPERIMENTAL config VNCSERVER_PROTO3p8 bool "Version 3.8" - depends on EXPERIMENTAL endchoice # VNC server protocol @@ -66,10 +66,24 @@ endchoice # VNC color format config VNCSERVER_SCREENWIDTH int "Framebuffer width (pixels)" default 320 + ---help--- + This setting defines the width in pixels of the local framebuffer. + + Memory usage: PixelWidth * ScreenWidth * ScreenHeight + + So, for example, a 320x240 screen with RGB16 pixels would require + 2x320x240 = 150 KB of RAM. config VNCSERVER_SCREENHEIGHT int "Framebuffer height (rows)" default 240 + ---help--- + This setting defines the height in rows of the local framebuffer. + + Memory usage: PixelWidth * ScreenWidth * ScreenHeight + + So, for example, a 320x240 screen with RGB16 pixels would require + 2x320x240 = 150 KB of RAM. config VNCSERVER_NUPDATES int "Number of pre-allocate update structures" diff --git a/graphics/vnc/server/vnc_negotiate.c b/graphics/vnc/server/vnc_negotiate.c index fd294f451a..36d731c022 100644 --- a/graphics/vnc/server/vnc_negotiate.c +++ b/graphics/vnc/server/vnc_negotiate.c @@ -62,6 +62,7 @@ static const char g_vncproto[] = RFB_PROTOCOL_VERSION_3p3; #elif defined(CONFIG_VNCSERVER_PROTO3p8) static const char g_vncproto[] = RFB_PROTOCOL_VERSION_3p8; +static const char g_nosecurity[] = "No security types are supported"; #endif /**************************************************************************** @@ -84,10 +85,16 @@ static const char g_vncproto[] = RFB_PROTOCOL_VERSION_3p8; * ****************************************************************************/ -#ifdef CONFIG_VNCSERVER_PROTO3p3 int vnc_negotiate(FAR struct vnc_session_s *session) { +#ifdef CONFIG_VNCSERVER_PROTO3p3 FAR struct rfb_sectype_s *sectype; +#else /* ifdef CONFIG_VNCSERVER_PROTO3p8 */ + FAR struct rfb_supported_sectypes_s *sectypes; + FAR struct rfb_selected_sectype_s *sectype; + FAR struct rfb_sectype_result_s *secresult; + FAR struct rfb_sectype_fail_s *secfail; +#endif FAR struct rfb_serverinit_s *serverinit; FAR struct rfb_pixelfmt_s *pixelfmt; FAR struct rfb_setpixelformat_s *setformat; @@ -148,13 +155,13 @@ int vnc_negotiate(FAR struct vnc_session_s *session) DEBUGASSERT(nrecvd == len); - /* Tell the client that we won't use any stinkin' security. - * - * "Version 3.3 The server decides the security type and sends a single - * word:" +#ifdef CONFIG_VNCSERVER_PROTO3p3 + /* Version 3.3: The server decides the security type and sends a single + * word containing the security type: Tell the client that we won't use + * any stinkin' security. */ - gvdbg("Send security type (None)\n"); + gvdbg("Send SecurityType\n"); sectype = (FAR struct rfb_sectype_s *)session->outbuf; rfb_putbe32(sectype->type, RFB_SECTYPE_NONE); @@ -171,6 +178,110 @@ int vnc_negotiate(FAR struct vnc_session_s *session) DEBUGASSERT(nsent == sizeof(struct rfb_sectype_s)); +#else /* ifdef CONFIG_VNCSERVER_PROTO3p8 */ + /* Version 3.8: Offer the client a choice of security -- where None is the + * only option offered. + */ + + gvdbg("Send SupportedSecurityTypes\n"); + + sectypes = (FAR struct rfb_supported_sectypes_s *)session->outbuf; + sectypes->ntypes = 1; + sectypes->type[0] = RFB_SECTYPE_NONE; + + nsent = psock_send(&session->connect, sectypes, + SIZEOF_RFB_SUPPORTED_SECTYPES_S(1), 0); + if (nsent < 0) + { + errcode = get_errno(); + gdbg("ERROR: Send SupportedSecurityTypes failed: %d\n", errcode); + DEBUGASSERT(errcode > 0); + return -errcode; + } + + DEBUGASSERT(nsent == SIZEOF_RFB_SUPPORTED_SECTYPES_S(1)); + + /* If the server listed at least one valid security type supported by the + * client, the client sends back a single byte indicating which security + * type is to be used on the connection. + */ + + gvdbg("Receive SecurityType\n"); + + sectype = (FAR struct rfb_selected_sectype_s *)session->inbuf; + + nrecvd = psock_recv(&session->connect, sectype, + sizeof(struct rfb_selected_sectype_s), 0); + if (nrecvd < 0) + { + errcode = get_errno(); + gdbg("ERROR: Receive SecurityType failed: %d\n", errcode); + DEBUGASSERT(errcode > 0); + return -errcode; + } + + DEBUGASSERT(nrecvd == sizeof(struct rfb_selected_sectype_s)); + + gvdbg("Send SecurityResult\n"); + + secresult = (FAR struct rfb_sectype_result_s *)session->outbuf; + + if (sectype->type != RFB_SECTYPE_NONE) + { + gdbg("ERROR: Received unsupported SecurityType: %d\n", sectype->type); + + /* REVISIT: Should send the reason string here */ + + rfb_putbe32(secresult->result, RFB_SECTYPE_FAIL); + + nsent = psock_send(&session->connect, secresult, + sizeof(struct rfb_sectype_result_s), 0); + if (nsent < 0) + { + errcode = get_errno(); + gdbg("ERROR: Send SecurityResult failed: %d\n", errcode); + DEBUGASSERT(errcode > 0); + return -errcode; + } + + DEBUGASSERT(nsent == sizeof(struct rfb_sectype_result_s)); + + gvdbg("Send failure reason\n"); + + secfail = (FAR struct rfb_sectype_fail_s *)session->outbuf; + len = strlen(g_nosecurity); + rfb_putbe32(secfail->len, len); + memcpy(secfail->str, g_nosecurity, len); + + nsent = psock_send(&session->connect, secfail, + SIZEOF_RFB_SECTYPE_FAIL_S(len), 0); + if (nsent < 0) + { + errcode = get_errno(); + gdbg("ERROR: Send failure reason failed: %d\n", errcode); + DEBUGASSERT(errcode > 0); + return -errcode; + } + + DEBUGASSERT(nsent == SIZEOF_RFB_SECTYPE_FAIL_S(len)); + return -EPROTONOSUPPORT; + } + + rfb_putbe32(secresult->result, RFB_SECTYPE_SUCCESS); + + nsent = psock_send(&session->connect, secresult, + sizeof(struct rfb_sectype_result_s), 0); + if (nsent < 0) + { + errcode = get_errno(); + gdbg("ERROR: Send SecurityResult failed: %d\n", errcode); + DEBUGASSERT(errcode > 0); + return -errcode; + } + + DEBUGASSERT(nsent == sizeof(struct rfb_sectype_result_s)); +#endif + /* Receive the ClientInit message * * "Once the client and server are sure that they’re happy to talk to one @@ -198,11 +309,11 @@ int vnc_negotiate(FAR struct vnc_session_s *session) /* Send the ServerInit message * * "After receiving the ClientInit message, the server sends a ServerInit - * message. This tells the client the width and height of the server’s + * message. This tells the client the width and height of the server’s * framebuffer, its pixel format and the name associated with the desktop: */ - gvdbg("Receive ServerInit\n"); + gvdbg("Send ServerInit\n"); serverinit = (FAR struct rfb_serverinit_s *)session->outbuf; @@ -248,7 +359,7 @@ int vnc_negotiate(FAR struct vnc_session_s *session) if (nrecvd < 0) { errcode = get_errno(); - gdbg("ERROR: Receive SetFormat failed: %d\n", errcode); + gdbg("ERROR: Receive SetPixelFormat failed: %d\n", errcode); DEBUGASSERT(errcode > 0); return -errcode; } @@ -261,7 +372,7 @@ int vnc_negotiate(FAR struct vnc_session_s *session) } else if (setformat->msgtype != RFB_SETPIXELFMT_MSG) { - gdbg("ERROR: Not a SetFormat message: %d\n", (int)setformat->msgtype); + gdbg("ERROR: Not a SetPixelFormat message: %d\n", (int)setformat->msgtype); return -EPROTO; } @@ -318,66 +429,3 @@ int vnc_negotiate(FAR struct vnc_session_s *session) session->state = VNCSERVER_CONFIGURED; return OK; } -#endif - -#ifdef CONFIG_VNCSERVER_PROTO3p8 -int vnc_negotiate(FAR struct vnc_session_s *session) -{ - ssize_t nsent; - ssize_t nrecvd; - size_t len; - -#ifdef CONFIG_NET_SOCKOPTS - struct timeval tv; - int ret; - - /* Set a receive timeout so that we don't hang if the client does not - * respond according to RFB 3.3 protocol. - */ - - tv.tv_sec = 5; - tv.tv_usec = 0; - ret = psock_setsockopt(&session->connect, SOL_SOCKET, SO_RCVTIMEO, - &tv, sizeof(struct timeval)); - if (ret < 0) - { - errcode = get_errno(); - gdbg("ERROR: Failed to set receive timeout: %d\n", errcode); - DEBUGASSERT(errcode > 0); - return -errcode; - } -#endif - - /* Inform the client of the VNC protocol version */ - - len = strlen(g_vncproto); - nsent = psock_send(&session->connect, g_vncproto, len, 0); - if (nsent < 0) - { - errcode = get_errno(); - gdbg("ERROR: Send ProtocolVersion failed: %d\n", errcode); - DEBUGASSERT(errcode > 0); - return -errcode; - } - - DEBUGASSERT(nsent == len); - - /* Receive the echo of the protocol string */ - - nrecvd = psock_recv(&session->connect, session->inbuf, len, 0); - if (nrecvd <= 0) - { - errcode = get_errno(); - gdbg("ERROR: Receive protocol confirmation failed: %d\n", errcode); - DEBUGASSERT(errcode > 0); - return -errcode; - } - - DEBUGASSERT(nrecvd == len); - - /* Offer the client a choice of security -- where None is the only option. */ -#warning Missing logic - - return OK; -} -#endif -- GitLab From fc809d5df0e90e078716bae953c56660bfb6479a Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 19 Apr 2016 09:11:14 -0600 Subject: [PATCH 049/307] VNC: Fix some big-endian access macros --- graphics/vnc/server/vnc_negotiate.c | 1 + include/nuttx/video/rfb.h | 8 +++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/graphics/vnc/server/vnc_negotiate.c b/graphics/vnc/server/vnc_negotiate.c index 36d731c022..0d8362fd1c 100644 --- a/graphics/vnc/server/vnc_negotiate.c +++ b/graphics/vnc/server/vnc_negotiate.c @@ -322,6 +322,7 @@ int vnc_negotiate(FAR struct vnc_session_s *session) rfb_putbe32(serverinit->namelen, 0); pixelfmt = &serverinit->format; + pixelfmt->bpp = RFB_BITSPERPIXEL; pixelfmt->depth = RFB_PIXELDEPTH; pixelfmt->bigendian = 0; diff --git a/include/nuttx/video/rfb.h b/include/nuttx/video/rfb.h index f1bde88a66..3f2efdc8fe 100644 --- a/include/nuttx/video/rfb.h +++ b/include/nuttx/video/rfb.h @@ -1029,7 +1029,9 @@ struct rfb_palettendx_s /* Data Access Helpers ******************************************************/ /* All multiple byte integers (other than pixel values themselves) are in - * big endian order (most significant byte first). + * big endian order (most significant byte first). The following do not + * depend on the endianness of the target nor that they depend on any data + * alignment. */ /* void rfb_putbe16(FAR uint8_t *dest, uint16_t value) */ @@ -1037,7 +1039,7 @@ struct rfb_palettendx_s #define rfb_putbe16(d,v) \ do \ { \ - FAR uint32_t *dest = (d); \ + FAR uint8_t *dest = (d); \ *dest++ = ((uint16_t)(v) >> 8); \ *dest = ((uint16_t)(v) & 0xff); \ } \ @@ -1054,7 +1056,7 @@ struct rfb_palettendx_s #define rfb_putbe32(d,v) \ do \ { \ - FAR uint32_t *dest = (d); \ + FAR uint8_t *dest = (d); \ *dest++ = ((uint32_t)(v) >> 24); \ *dest++ = ((uint32_t)(v) >> 16) & 0xff; \ *dest++ = ((uint32_t)(v) >> 8) & 0xff; \ -- GitLab From 170f906a8bf5a9ad5cbd46dd35f0461bf36a0a00 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 19 Apr 2016 10:10:59 -0600 Subject: [PATCH 050/307] VNC: Add support for RGB8 conversions. These are what are used by RealVNC. --- graphics/vnc/server/vnc_negotiate.c | 20 ++- graphics/vnc/server/vnc_updater.c | 186 ++++++++++++++++++++++++++-- include/nuttx/video/fb.h | 111 +++++++++-------- 3 files changed, 250 insertions(+), 67 deletions(-) diff --git a/graphics/vnc/server/vnc_negotiate.c b/graphics/vnc/server/vnc_negotiate.c index 0d8362fd1c..d50798f6f1 100644 --- a/graphics/vnc/server/vnc_negotiate.c +++ b/graphics/vnc/server/vnc_negotiate.c @@ -310,7 +310,13 @@ int vnc_negotiate(FAR struct vnc_session_s *session) * * "After receiving the ClientInit message, the server sends a ServerInit * message. This tells the client the width and height of the server’s - * framebuffer, its pixel format and the name associated with the desktop: + * framebuffer, its pixel format and the name associated with the desktop:" + * + * RealVNC client supports this resolutions: + * Full (all availlable colors) - Max resolution of the platform (TrueColor) + * Medium (256 colors) - 256 colors (Paletted) + * Low (64 colors) - RGB8 2:2:2 (default, TrueColor) + * Very Low (8 colors) - RGB3 1:1:1 (TrueColor) */ gvdbg("Send ServerInit\n"); @@ -389,7 +395,17 @@ int vnc_negotiate(FAR struct vnc_session_s *session) return -ENOSYS; } - if (pixelfmt->bpp == 16 && pixelfmt->depth == 15) + if (pixelfmt->bpp == 8 && pixelfmt->depth == 6) + { + session->colorfmt = FB_FMT_RGB8_222; + session->bpp = 8; + } + else if (pixelfmt->bpp == 8 && pixelfmt->depth == 8) + { + session->colorfmt = FB_FMT_RGB8_332; + session->bpp = 8; + } + else if (pixelfmt->bpp == 16 && pixelfmt->depth == 15) { session->colorfmt = FB_FMT_RGB16_555; session->bpp = 16; diff --git a/graphics/vnc/server/vnc_updater.c b/graphics/vnc/server/vnc_updater.c index 01e1046a96..d12bf5953c 100644 --- a/graphics/vnc/server/vnc_updater.c +++ b/graphics/vnc/server/vnc_updater.c @@ -58,9 +58,11 @@ /* Color conversion functions */ #if defined(CONFIG_VNCSERVER_COLORFMT_RGB16) +typedef CODE uint8_t(*vnc_convert8_t)(uint16_t rgb); typedef CODE uint16_t(*vnc_convert16_t)(uint16_t rgb); typedef CODE uint32_t(*vnc_convert32_t)(uint16_t rgb); #elif defined(CONFIG_VNCSERVER_COLORFMT_RGB32) +typedef CODE uint8_t(*vnc_convert8_t)(uint32_t rgb); typedef CODE uint16_t(*vnc_convert16_t)(uint32_t rgb); typedef CODE uint32_t(*vnc_convert32_t)(uint32_t rgb); #else @@ -244,6 +246,34 @@ static void vnc_add_queue(FAR struct vnc_session_s *session, #if defined(CONFIG_VNCSERVER_COLORFMT_RGB16) +uint8_t vnc_convert_rgb8_222(uint16_t rgb) +{ + /* 111111 + * 54321098 76543210 + * ----------------- + * RRRRRGGG GGGBBBBB + * ..RRGGBB + */ + + return (uint8_t)(((rgb >> 10) & 0x0030) | + ((rgb >> 7) & 0x000c) | + ((rgb >> 3) & 0x0003)); +} + +uint8_t vnc_convert_rgb8_332(uint16_t rgb) +{ + /* 111111 + * 54321098 76543210 + * ----------------- + * RRRRRGGG GGGBBBBB + * RRRGGGBB + */ + + return (uint8_t)(((rgb >> 8) & 0x0070) | + ((rgb >> 6) & 0x001c) | + ((rgb >> 3) & 0x0003)); +} + uint16_t vnc_convert_rgb16_555(uint16_t rgb) { /* 111111 @@ -278,12 +308,40 @@ uint32_t vnc_convert_rgb32_888(uint16_t rgb) } #elif defined(CONFIG_VNCSERVER_COLORFMT_RGB32) +uint8_t vnc_convert_rgb8_222(uint16_t rgb) +{ + /* 33222222 22221111 111111 + * 10987654 32109876 54321098 76543210 + * ----------------------------------- + * RRRRRRRR GGGGGGGG BBBBBBBB + * ..RRGGBB + */ + + return (uint8_t)(((rgb >> 18) & 0x0030) | + ((rgb >> 12) & 0x000c) | + (rgb >> 6) & 0x0003)); +} + +uint8_t vnc_convert_rgb8_332(uint16_t rgb) +{ + /* 33222222 22221111 111111 + * 10987654 32109876 54321098 76543210 + * ----------------------------------- + * RRRRRRRR GGGGGGGG BBBBBBBB + * RRRGGGBB + */ + + return (uint8_t)(((rgb >> 16) & 0x0070) | + ((rgb >> 11) & 0x001c) | + (rgb >> 6) & 0x0003)); +} + uint16_t vnc_convert_rgb16_555(uint32_t rgb) { /* 33222222 22221111 111111 * 10987654 32109876 54321098 76543210 - * ---------------------------------- - * RRRRR... GGGGG... BBBBB... + * ----------------------------------- + * RRRRRRRR GGGGGGGG BBBBBBBB * .RRRRRGG GGGBBBBB */ @@ -297,8 +355,8 @@ uint16_t vnc_convert_rgb16_565(uint32_t rgb) { /* 33222222 22221111 111111 * 10987654 32109876 54321098 76543210 - * ---------------------------------- - * RRRRR... GGGGGG.. BBBBB... + * ----------------------------------- + * RRRRRRRR GGGGGGGG BBBBBBBB * RRRRRGGG GGGBBBBB */ @@ -318,6 +376,96 @@ uint32_t vnc_convert_rgb32_888(uint32_t rgb) # error Unspecified/unsupported color format #endif +/**************************************************************************** + * Name: vnc_copy8 + * + * Description: + * Copy a 16/32-bit pixels from the source rectangle to a 8-bit pixel + * destination rectangle. + * + * Input Parameters: + * session - A reference to the VNC session structure. + * row,col - The upper left X/Y (pixel/row) position of the rectangle + * width,height - The width (pixels) and height (rows of the rectangle) + * convert - The function to use to convert from the local framebuffer + * color format to the remote framebuffer color format. + * + * Returned Value: + * The size of the transfer in bytes. + * + ****************************************************************************/ + +static size_t vnc_copy8(FAR struct vnc_session_s *session, + nxgl_coord_t row, nxgl_coord_t col, + nxgl_coord_t height, nxgl_coord_t width, + vnc_convert8_t convert) +{ +#if defined(CONFIG_VNCSERVER_COLORFMT_RGB16) + FAR struct rfb_framebufferupdate_s *update; + FAR const uint16_t *srcleft; + FAR const uint16_t *src; + FAR uint8_t *dest; + nxgl_coord_t x; + nxgl_coord_t y; + + /* Destination rectangle start address */ + + update = (FAR struct rfb_framebufferupdate_s *)session->outbuf; + dest = (FAR uint8_t *)update->rect[0].data; + + /* Source rectangle start address (left/top)*/ + + srcleft = (FAR uint16_t *)(session->fb + RFB_STRIDE * row + RFB_BYTESPERPIXEL * col); + + /* Transfer each row from the source buffer into the update buffer */ + + for (y = 0; y < height; y++) + { + src = srcleft; + for (x = 0; x < width; x++) + { + *dest++ = convert(*src); + src++; + } + + srcleft = (FAR uint16_t *)((uintptr_t)srcleft + RFB_STRIDE); + } + + return (size_t)((uintptr_t)dest - (uintptr_t)update->rect[0].data); + +#elif defined(CONFIG_VNCSERVER_COLORFMT_RGB32) + FAR struct rfb_framebufferupdate_s *update; + FAR const uint32_t *srcleft; + FAR const uint32_t *src; + FAR uint8_t *dest; + nxgl_coord_t x; + nxgl_coord_t y; + + /* Destination rectangle start address */ + + update = (FAR struct rfb_framebufferupdate_s *)session->outbuf; + dest = (FAR uint8_t *)update->rect[0].data; + + /* Source rectangle start address */ + + srcleft = (FAR uint32_t *)(session->fb + RFB_STRIDE * row + RFB_BYTESPERPIXEL * col); + + for (y = 0; y < height; y++) + { + src = srcleft; + for (x = 0; x < width; x++) + { + *dest++ = convert(*src); + src++; + } + + srcleft = (FAR uint32_t *)((uintptr_t)srcleft + RFB_STRIDE); + } + + return (size_t)((uintptr_t)dest - (uintptr_t)update->rect[0].data); +#endif +} + /**************************************************************************** * Name: vnc_copy16 * @@ -539,10 +687,11 @@ static FAR void *vnc_updater(FAR void *arg) union { + vnc_convert8_t bpp8; vnc_convert16_t bpp16; vnc_convert32_t bpp32; } convert; - bool color32 = false; + uint8_t bpp; DEBUGASSERT(session != NULL); gvdbg("Updater running for Display %d\n", session->display); @@ -559,17 +708,29 @@ static FAR void *vnc_updater(FAR void *arg) switch (session->colorfmt) { + case FB_FMT_RGB8_222: + convert.bpp8 = vnc_convert_rgb8_222; + bpp = 8; + break; + + case FB_FMT_RGB8_332: + convert.bpp8 = vnc_convert_rgb8_332; + bpp = 8; + break; + case FB_FMT_RGB16_555: convert.bpp16 = vnc_convert_rgb16_555; + bpp = 16; break; case FB_FMT_RGB16_565: convert.bpp16 = vnc_convert_rgb16_565; + bpp = 16; break; case FB_FMT_RGB32: convert.bpp32 = vnc_convert_rgb32_888; - color32 = true; + bpp = 32; break; default: @@ -672,16 +833,21 @@ static FAR void *vnc_updater(FAR void *arg) * performing the necessary color conversions. */ - if (color32) + if (bpp == 8) { - size = vnc_copy32(session, y, x, updheight, updwidth, - convert.bpp32); + size = vnc_copy8(session, y, x, updheight, updwidth, + convert.bpp8); } - else + else if (bpp == 16) { size = vnc_copy16(session, y, x, updheight, updwidth, convert.bpp16); } + else + { + size = vnc_copy32(session, y, x, updheight, updwidth, + convert.bpp32); + } /* Format the FramebufferUpdate message */ diff --git a/include/nuttx/video/fb.h b/include/nuttx/video/fb.h index da702b31fc..1264515ade 100644 --- a/include/nuttx/video/fb.h +++ b/include/nuttx/video/fb.h @@ -69,112 +69,113 @@ #define FB_FMT_RGB1 FB_FMT_Y1 /* BPP=1 */ #define FB_FMT_RGB4 4 /* BPP=4 */ #define FB_FMT_RGB8 5 /* BPP=8 RGB palette index */ -#define FB_FMT_RGB8_332 6 /* BPP=8 R=3, G=3, B=2 */ -#define FB_FMT_RGB12_444 7 /* BPP=12 R=4, G=4, B=4 */ -#define FB_FMT_RGB16_555 8 /* BPP=16 R=5, G=5, B=5 (1 unused bit) */ -#define FB_FMT_RGB16_565 9 /* BPP=16 R=6, G=6, B=5 */ -#define FB_FMT_RGB24 10 /* BPP=24 */ -#define FB_FMT_RGB32 11 /* BPP=32 */ +#define FB_FMT_RGB8_222 6 /* BPP=8 R=2, G=2, B=2 */ +#define FB_FMT_RGB8_332 7 /* BPP=8 R=3, G=3, B=2 */ +#define FB_FMT_RGB12_444 8 /* BPP=12 R=4, G=4, B=4 */ +#define FB_FMT_RGB16_555 9 /* BPP=16 R=5, G=5, B=5 (1 unused bit) */ +#define FB_FMT_RGB16_565 10 /* BPP=16 R=6, G=6, B=5 */ +#define FB_FMT_RGB24 11 /* BPP=24 */ +#define FB_FMT_RGB32 12 /* BPP=32 */ /* Run length encoded RGB */ -#define FB_FMT_RGBRLE4 12 /* BPP=4 */ -#define FB_FMT_RGBRLE8 13 /* BPP=8 */ +#define FB_FMT_RGBRLE4 13 /* BPP=4 */ +#define FB_FMT_RGBRLE8 14 /* BPP=8 */ /* Raw RGB */ -#define FB_FMT_RGBRAW 14 /* BPP=? */ +#define FB_FMT_RGBRAW 15 /* BPP=? */ /* Raw RGB with arbitrary sample packing within a pixel. Packing and precision * of R, G and B components is determined by bit masks for each. */ -#define FB_FMT_RGBBTFLD16 15 /* BPP=16 */ -#define FB_FMT_RGBBTFLD24 16 /* BPP=24 */ -#define FB_FMT_RGBBTFLD32 17 /* BPP=32 */ -#define FB_FMT_RGBA16 18 /* BPP=16 Raw RGB with alpha */ -#define FB_FMT_RGBA32 19 /* BPP=32 Raw RGB with alpha */ +#define FB_FMT_RGBBTFLD16 16 /* BPP=16 */ +#define FB_FMT_RGBBTFLD24 17 /* BPP=24 */ +#define FB_FMT_RGBBTFLD32 18 /* BPP=32 */ +#define FB_FMT_RGBA16 19 /* BPP=16 Raw RGB with alpha */ +#define FB_FMT_RGBA32 20 /* BPP=32 Raw RGB with alpha */ /* Raw RGB with a transparency field. Layout is as for standard RGB at 16 and * 32 bits per pixel but the msb in each pixel indicates whether the pixel is * transparent or not. */ -#define FB_FMT_RGBT16 20 /* BPP=16 */ -#define FB_FMT_RGBT32 21 /* BPP=32 */ +#define FB_FMT_RGBT16 21 /* BPP=16 */ +#define FB_FMT_RGBT32 22 /* BPP=32 */ #define FB_ISRGB(f) ((f) >= FB_FMT_RGB1) && (f) <= FB_FMT_RGBT32) /* Packed YUV Formats *******************************************************/ -#define FB_FMT_AYUV 22 /* BPP=32 Combined YUV and alpha */ -#define FB_FMT_CLJR 23 /* BPP=8 4 pixels packed into a uint32_t. +#define FB_FMT_AYUV 23 /* BPP=32 Combined YUV and alpha */ +#define FB_FMT_CLJR 24 /* BPP=8 4 pixels packed into a uint32_t. * YUV 4:1:1 with l< 8 bits * per YUV sample */ -#define FB_FMT_CYUV 24 /* BPP=16 UYVY except that height is +#define FB_FMT_CYUV 25 /* BPP=16 UYVY except that height is * reversed */ -#define FB_FMT_IRAW 25 /* BPP=? Intel uncompressed YUV */ -#define FB_FMT_IUYV 26 /* BPP=16 Interlaced UYVY (line order +#define FB_FMT_IRAW 26 /* BPP=? Intel uncompressed YUV */ +#define FB_FMT_IUYV 27 /* BPP=16 Interlaced UYVY (line order * 0,2,4,.., 1,3,5...) */ -#define FB_FMT_IY41 27 /* BPP=12 Interlaced Y41P (line order +#define FB_FMT_IY41 28 /* BPP=12 Interlaced Y41P (line order * 0,2,4,.., 1,3,5...) */ -#define FB_FMT_IYU2 28 /* BPP=24 */ -#define FB_FMT_HDYC 29 /* BPP=16 UYVY except uses the BT709 +#define FB_FMT_IYU2 29 /* BPP=24 */ +#define FB_FMT_HDYC 30 /* BPP=16 UYVY except uses the BT709 * color space */ -#define FB_FMT_UYVP 30 /* BPP=24? YCbCr 4:2:2, 10-bits per +#define FB_FMT_UYVP 31 /* BPP=24? YCbCr 4:2:2, 10-bits per * component in U0Y0V0Y1 order */ -#define FB_FMT_UYVY 31 /* BPP=16 YUV 4:2:2 */ +#define FB_FMT_UYVY 32 /* BPP=16 YUV 4:2:2 */ #define FB_FMT_UYNV FB_FMT_UYVY /* BPP=16 */ #define FB_FMT_Y422 FB_FMT_UYVY /* BPP=16 */ -#define FB_FMT_V210 32 /* BPP=32 10-bit 4:2:2 YCrCb */ -#define FB_FMT_V422 33 /* BPP=16 Upside down version of UYVY */ -#define FB_FMT_V655 34 /* BPP=16? 16-bit YUV 4:2:2 */ -#define FB_FMT_VYUY 35 /* BPP=? ATI Packed YUV Data */ -#define FB_FMT_YUYV 36 /* BPP=16 YUV 4:2:2 */ +#define FB_FMT_V210 33 /* BPP=32 10-bit 4:2:2 YCrCb */ +#define FB_FMT_V422 34 /* BPP=16 Upside down version of UYVY */ +#define FB_FMT_V655 35 /* BPP=16? 16-bit YUV 4:2:2 */ +#define FB_FMT_VYUY 36 /* BPP=? ATI Packed YUV Data */ +#define FB_FMT_YUYV 37 /* BPP=16 YUV 4:2:2 */ #define FB_FMT_YUY2 FB_FMT_YUYV /* BPP=16 YUV 4:2:2 */ #define FB_FMT_YUNV FB_FMT_YUYV /* BPP=16 YUV 4:2:2 */ -#define FB_FMT_YVYU 37 /* BPP=16 YUV 4:2:2 */ -#define FB_FMT_Y41P 38 /* BPP=12 YUV 4:1:1 */ -#define FB_FMT_Y411 39 /* BPP=12 YUV 4:1:1 */ -#define FB_FMT_Y211 40 /* BPP=8 */ -#define FB_FMT_Y41T 41 /* BPP=12 Y41P LSB for transparency */ -#define FB_FMT_Y42T 42 /* BPP=16 UYVY LSB for transparency */ -#define FB_FMT_YUVP 43 /* BPP=24? YCbCr 4:2:2 Y0U0Y1V0 order */ +#define FB_FMT_YVYU 38 /* BPP=16 YUV 4:2:2 */ +#define FB_FMT_Y41P 39 /* BPP=12 YUV 4:1:1 */ +#define FB_FMT_Y411 40 /* BPP=12 YUV 4:1:1 */ +#define FB_FMT_Y211 41 /* BPP=8 */ +#define FB_FMT_Y41T 42 /* BPP=12 Y41P LSB for transparency */ +#define FB_FMT_Y42T 43 /* BPP=16 UYVY LSB for transparency */ +#define FB_FMT_YUVP 44 /* BPP=24? YCbCr 4:2:2 Y0U0Y1V0 order */ #define FB_ISYUVPACKED(f) ((f) >= FB_FMT_AYUV) && (f) <= FB_FMT_YUVP) /* Packed Planar YUV Formats ************************************************/ -#define FB_FMT_YVU9 44 /* BPP=9 8-bit Y followed by 8-bit +#define FB_FMT_YVU9 45 /* BPP=9 8-bit Y followed by 8-bit * 4x4 VU */ -#define FB_FMT_YUV9 45 /* BPP=9? */ -#define FB_FMT_IF09 46 /* BPP=9.5 YVU9 + 4x4 plane of delta +#define FB_FMT_YUV9 46 /* BPP=9? */ +#define FB_FMT_IF09 47 /* BPP=9.5 YVU9 + 4x4 plane of delta * relative to tframe. */ -#define FB_FMT_YV16 47 /* BPP=16 8-bit Y followed by 8-bit +#define FB_FMT_YV16 48 /* BPP=16 8-bit Y followed by 8-bit * 2x1 VU */ -#define FB_FMT_YV12 48 /* BPP=12 8-bit Y followed by 8-bit +#define FB_FMT_YV12 49 /* BPP=12 8-bit Y followed by 8-bit * 2x2 VU */ -#define FB_FMT_I420 49 /* BPP=12 8-bit Y followed by 8-bit +#define FB_FMT_I420 50 /* BPP=12 8-bit Y followed by 8-bit * 2x2 UV */ #define FB_FMT_IYUV FB_FMT_I420 /* BPP=12 */ -#define FB_FMT_NV12 50 /* BPP=12 8-bit Y followed by an +#define FB_FMT_NV12 51 /* BPP=12 8-bit Y followed by an * interleaved 2x2 UV */ -#define FB_FMT_NV21 51 /* BPP=12 NV12 with UV reversed */ -#define FB_FMT_IMC1 52 /* BPP=12 YV12 except UV planes same +#define FB_FMT_NV21 52 /* BPP=12 NV12 with UV reversed */ +#define FB_FMT_IMC1 53 /* BPP=12 YV12 except UV planes same * stride as Y */ -#define FB_FMT_IMC2 53 /* BPP=12 IMC1 except UV lines +#define FB_FMT_IMC2 54 /* BPP=12 IMC1 except UV lines * interleaved at half stride * boundaries */ -#define FB_FMT_IMC3 54 /* BPP=12 As IMC1 except that UV +#define FB_FMT_IMC3 55 /* BPP=12 As IMC1 except that UV * swapped */ -#define FB_FMT_IMC4 55 /* BPP=12 As IMC2 except that UV +#define FB_FMT_IMC4 56 /* BPP=12 As IMC2 except that UV * swapped */ -#define FB_FMT_CLPL 56 /* BPP=12 YV12 but including a level +#define FB_FMT_CLPL 57 /* BPP=12 YV12 but including a level * of indirection. */ -#define FB_FMT_Y41B 57 /* BPP=12? 4:1:1 planar. */ -#define FB_FMT_Y42B 58 /* BPP=16? YUV 4:2:2 planar. */ -#define FB_FMT_CXY1 59 /* BPP=12 */ -#define FB_FMT_CXY2 60 /* BPP=16 */ +#define FB_FMT_Y41B 58 /* BPP=12? 4:1:1 planar. */ +#define FB_FMT_Y42B 59 /* BPP=16? YUV 4:2:2 planar. */ +#define FB_FMT_CXY1 60 /* BPP=12 */ +#define FB_FMT_CXY2 61 /* BPP=16 */ #define FB_ISYUVPLANAR(f) ((f) >= FB_FMT_AYUV) && (f) <= FB_FMT_YUVP) #define FB_ISYUV(f) (FB_ISYUVPACKED(f) || FB_ISYUVPLANAR(f)) -- GitLab From 26266ed935eac3c3d7c5157946db4df2a9cfeac1 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 19 Apr 2016 10:18:56 -0600 Subject: [PATCH 051/307] VNC: Fix a structure size macro in the RFB definitions --- include/nuttx/video/rfb.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/nuttx/video/rfb.h b/include/nuttx/video/rfb.h index 3f2efdc8fe..f851e099d3 100644 --- a/include/nuttx/video/rfb.h +++ b/include/nuttx/video/rfb.h @@ -375,8 +375,8 @@ struct rfb_setencodings_s uint8_t encodings[4]; /* S32 Encoding type, size = 4*nencodings */ }; -#define SIZEOF_RFB_SERVERINIT_S(n) \ - (sizeof(struct rfb_serverinit_s) + (((n) - 1) << 2)) +#define SIZEOF_RFB_SETENCODINGS_S(n) \ + (sizeof(struct rfb_setencodings_s) + (((n) - 1) << 2)) /* 6.4.3 FramebufferUpdateRequest * -- GitLab From c4263e4bfe71a68653728b6ebb458bc8027f82e8 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 19 Apr 2016 13:25:10 -0600 Subject: [PATCH 052/307] VNC: various fixes and clean-up during testing. Still not completely functional. --- graphics/vnc/server/vnc_receiver.c | 4 ++- graphics/vnc/server/vnc_updater.c | 45 +++++++++++------------------- 2 files changed, 19 insertions(+), 30 deletions(-) diff --git a/graphics/vnc/server/vnc_receiver.c b/graphics/vnc/server/vnc_receiver.c index 9bb2c34a90..2a9bfd65f1 100644 --- a/graphics/vnc/server/vnc_receiver.c +++ b/graphics/vnc/server/vnc_receiver.c @@ -319,7 +319,9 @@ int vnc_receiver(FAR struct vnc_session_s *session) ret); } #ifdef CONFIG_NX_XYINPUT - else + /* REVISIT: How will be get the NX handle? */ + + else if (session->handle != NULL) { event = (FAR struct rfb_pointerevent_s *)session->inbuf; diff --git a/graphics/vnc/server/vnc_updater.c b/graphics/vnc/server/vnc_updater.c index d12bf5953c..803f6a4678 100644 --- a/graphics/vnc/server/vnc_updater.c +++ b/graphics/vnc/server/vnc_updater.c @@ -665,11 +665,7 @@ static FAR void *vnc_updater(FAR void *arg) { FAR struct vnc_session_s *session = (FAR struct vnc_session_s *)arg; FAR struct rfb_framebufferupdate_s *update; - - FAR struct rfb_rectangle_s *destrect; FAR struct vnc_fbupdate_s *srcrect; - FAR const uint8_t *srcrow; - FAR const uint8_t *src; nxgl_coord_t srcwidth; nxgl_coord_t srcheight; nxgl_coord_t destwidth; @@ -691,16 +687,13 @@ static FAR void *vnc_updater(FAR void *arg) vnc_convert16_t bpp16; vnc_convert32_t bpp32; } convert; - uint8_t bpp; DEBUGASSERT(session != NULL); gvdbg("Updater running for Display %d\n", session->display); - /* Set up some constant pointers and values */ + /* Set up some constant pointers and values for convenience */ update = (FAR struct rfb_framebufferupdate_s *)session->outbuf; - destrect = update->rect; - bytesperpixel = (session->bpp + 7) >> 3; maxwidth = CONFIG_VNCSERVER_UPDATE_BUFSIZE / bytesperpixel; @@ -710,27 +703,22 @@ static FAR void *vnc_updater(FAR void *arg) { case FB_FMT_RGB8_222: convert.bpp8 = vnc_convert_rgb8_222; - bpp = 8; break; case FB_FMT_RGB8_332: convert.bpp8 = vnc_convert_rgb8_332; - bpp = 8; break; case FB_FMT_RGB16_555: convert.bpp16 = vnc_convert_rgb16_555; - bpp = 16; break; case FB_FMT_RGB16_565: convert.bpp16 = vnc_convert_rgb16_565; - bpp = 16; break; case FB_FMT_RGB32: convert.bpp32 = vnc_convert_rgb32_888; - bpp = 32; break; default: @@ -764,10 +752,6 @@ static FAR void *vnc_updater(FAR void *arg) DEBUGASSERT(srcrect->rect.pt1.y <= srcrect->rect.pt2.y); srcheight = srcrect->rect.pt2.y - srcrect->rect.pt1.y + 1; - srcrow = session->fb + - RFB_STRIDE * srcrect->rect.pt1.y + - RFB_BYTESPERPIXEL * srcrect->rect.pt1.x; - deststride = srcwidth * bytesperpixel; if (deststride > maxwidth) { @@ -793,8 +777,7 @@ static FAR void *vnc_updater(FAR void *arg) for (y = srcrect->rect.pt1.y; srcheight > 0; - srcheight -= updheight, y += updheight, - srcrow += RFB_STRIDE * updheight) + srcheight -= updheight, y += updheight) { /* updheight = Height to update on this pass through the loop. * This will be destheight unless fewer than that number of rows @@ -814,9 +797,9 @@ static FAR void *vnc_updater(FAR void *arg) * narrower). */ - for (width = srcwidth, x = srcrect->rect.pt1.x, src = srcrow; + for (width = srcwidth, x = srcrect->rect.pt1.x; width > 0; - width -= updwidth, x += updwidth, src += updwidth) + width -= updwidth, x += updwidth) { /* updwidth = Width to update on this pass through the loop. * This will be destwidth unless fewer than that number of @@ -833,12 +816,12 @@ static FAR void *vnc_updater(FAR void *arg) * performing the necessary color conversions. */ - if (bpp == 8) + if (session->bpp == 8) { size = vnc_copy8(session, y, x, updheight, updwidth, convert.bpp8); } - else if (bpp == 16) + else if (session->bpp == 16) { size = vnc_copy16(session, y, x, updheight, updwidth, convert.bpp16); @@ -855,11 +838,11 @@ static FAR void *vnc_updater(FAR void *arg) update->padding = 0; rfb_putbe16(update->nrect, 1); - rfb_putbe16(destrect->xpos, x); - rfb_putbe16(destrect->ypos, y); - rfb_putbe16(destrect->width, updwidth); - rfb_putbe16(destrect->height, updheight); - rfb_putbe16(destrect->encoding, RFB_ENCODING_RAW); + rfb_putbe16(update->rect[0].xpos, x); + rfb_putbe16(update->rect[0].ypos, y); + rfb_putbe16(update->rect[0].width, updwidth); + rfb_putbe16(update->rect[0].height, updheight); + rfb_putbe32(update->rect[0].encoding, RFB_ENCODING_RAW); DEBUGASSERT(size <= CONFIG_VNCSERVER_UPDATE_BUFSIZE); @@ -1018,5 +1001,9 @@ int vnc_update_rectangle(FAR struct vnc_session_s *session, vnc_add_queue(session, update); } - return -ENOSYS; + /* Since we ignore bad rectangles and wait for updata structures, there is + * really no way a failure can occur. + */ + + return OK; } -- GitLab From e0509b4256b27ff337b6f014198d446026babcf0 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 19 Apr 2016 13:48:17 -0600 Subject: [PATCH 053/307] VNC: Minor naming changes to avoid collisions --- include/nuttx/video/rfb.h | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/include/nuttx/video/rfb.h b/include/nuttx/video/rfb.h index f851e099d3..b53facffce 100644 --- a/include/nuttx/video/rfb.h +++ b/include/nuttx/video/rfb.h @@ -1039,9 +1039,9 @@ struct rfb_palettendx_s #define rfb_putbe16(d,v) \ do \ { \ - FAR uint8_t *dest = (d); \ - *dest++ = ((uint16_t)(v) >> 8); \ - *dest = ((uint16_t)(v) & 0xff); \ + register FAR uint8_t *__d = (FAR uint8_t *)(d); \ + *__d++ = ((uint16_t)(v) >> 8); \ + *__d = ((uint16_t)(v) & 0xff); \ } \ while (0) @@ -1056,11 +1056,11 @@ struct rfb_palettendx_s #define rfb_putbe32(d,v) \ do \ { \ - FAR uint8_t *dest = (d); \ - *dest++ = ((uint32_t)(v) >> 24); \ - *dest++ = ((uint32_t)(v) >> 16) & 0xff; \ - *dest++ = ((uint32_t)(v) >> 8) & 0xff; \ - *dest = ((uint32_t)(v) & 0xff); \ + register FAR uint8_t *__d = (FAR uint8_t *)(d); \ + *__d++ = ((uint32_t)(v) >> 24); \ + *__d++ = ((uint32_t)(v) >> 16) & 0xff; \ + *__d++ = ((uint32_t)(v) >> 8) & 0xff; \ + *__d = ((uint32_t)(v) & 0xff); \ } \ while (0) -- GitLab From 65f21d0edb0c4234b01de4b75adf7aee4fcd916e Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 19 Apr 2016 15:39:58 -0600 Subject: [PATCH 054/307] VNC: More updates from testing. There are issues with high rate, large TCP transfers. --- configs/samv71-xult/README.txt | 8 +-- configs/samv71-xult/vnc/defconfig | 18 ++---- graphics/vnc/server/Kconfig | 9 ++- graphics/vnc/server/vnc_server.c | 17 +---- graphics/vnc/server/vnc_updater.c | 101 +++++++++++++++++++++++++++--- 5 files changed, 110 insertions(+), 43 deletions(-) diff --git a/configs/samv71-xult/README.txt b/configs/samv71-xult/README.txt index 1b9ff29e10..5bab0de4ed 100644 --- a/configs/samv71-xult/README.txt +++ b/configs/samv71-xult/README.txt @@ -2317,13 +2317,9 @@ Configuration sub-directories NOTES: - 1. The RAMLOG is enabled so all debug output will go to the RAMLOG and - can be view using the NSH dmesg command. No debug output is enabled - in the default configuration, however. - - 2. Network confiration: IP address 10.0.0.2. The is easily changed + 1. Network configuration: IP address 10.0.0.2. The is easily changed via 'make menuconfig'. The VNC server address is 10.0.0.2:5900. - 3. The default (local) framebuffer configuration is 320x240 with 16-bit + 2. The default (local) framebuffer configuration is 320x240 with 16-bit RGB color. diff --git a/configs/samv71-xult/vnc/defconfig b/configs/samv71-xult/vnc/defconfig index d22ec9f2ce..f3bd46b62c 100644 --- a/configs/samv71-xult/vnc/defconfig +++ b/configs/samv71-xult/vnc/defconfig @@ -725,12 +725,7 @@ CONFIG_UART3_2STOP=0 # # System Logging # -CONFIG_RAMLOG=y -CONFIG_RAMLOG_SYSLOG=y -# CONFIG_RAMLOG_CONSOLE is not set -CONFIG_RAMLOG_BUFSIZE=1024 -# CONFIG_RAMLOG_CRLF is not set -CONFIG_RAMLOG_NONBLOCKING=y +# CONFIG_RAMLOG is not set # CONFIG_SYSLOG_CONSOLE is not set # @@ -746,8 +741,8 @@ CONFIG_NET_NOINTS=y # Driver buffer configuration # # CONFIG_NET_MULTIBUFFER is not set -CONFIG_NET_ETH_MTU=590 -CONFIG_NET_ETH_TCP_RECVWNDO=536 +CONFIG_NET_ETH_MTU=1508 +CONFIG_NET_ETH_TCP_RECVWNDO=1454 CONFIG_NET_GUARDSIZE=2 # @@ -834,7 +829,7 @@ CONFIG_ARP_SEND_DELAYMSEC=20 # Network I/O Buffer Support # CONFIG_NET_IOB=y -CONFIG_IOB_NBUFFERS=36 +CONFIG_IOB_NBUFFERS=72 CONFIG_IOB_BUFSIZE=196 CONFIG_IOB_NCHAINS=8 CONFIG_IOB_THROTTLE=8 @@ -897,9 +892,8 @@ CONFIG_FS_PROCFS=y # # System Logging # -CONFIG_SYSLOG=y +# CONFIG_SYSLOG is not set # CONFIG_SYSLOG_TIMESTAMP is not set -# CONFIG_SYSLOG_CHAR is not set # # Graphics Support @@ -1003,7 +997,7 @@ CONFIG_VNCSERVER_COLORFMT_RGB16=y CONFIG_VNCSERVER_SCREENWIDTH=320 CONFIG_VNCSERVER_SCREENHEIGHT=240 CONFIG_VNCSERVER_NUPDATES=48 -CONFIG_VNCSERVER_UPDATE_BUFSIZE=4096 +CONFIG_VNCSERVER_UPDATE_BUFSIZE=1024 CONFIG_VNCSERVER_INBUFFER_SIZE=80 # CONFIG_VNCCLIENT is not set diff --git a/graphics/vnc/server/Kconfig b/graphics/vnc/server/Kconfig index ef4e1dfe28..18c075a6f6 100644 --- a/graphics/vnc/server/Kconfig +++ b/graphics/vnc/server/Kconfig @@ -98,12 +98,15 @@ config VNCSERVER_NUPDATES config VNCSERVER_UPDATE_BUFSIZE int "Max update buffer size (bytes)" - default 4096 + default 1024 ---help--- A single buffer is pre-allocated for rendering updates. This setting specifies the maximum in bytes of that update buffer. For - example, an update buffers of 32 pixels at 32-bits per pixel and - 32-rows would yield a buffer size of 4096. + example, an update buffers of 32 pixels at 8-bits per pixel and + 32-rows would yield a buffer size of 1024! + + Ideally, this buffer should fit in one network packet to avoid + accessive re-assembly of partial TCP packets. config VNCSERVER_KBDENCODE bool "Encode keyboard input" diff --git a/graphics/vnc/server/vnc_server.c b/graphics/vnc/server/vnc_server.c index eba4afb818..742a97fa01 100644 --- a/graphics/vnc/server/vnc_server.c +++ b/graphics/vnc/server/vnc_server.c @@ -90,8 +90,6 @@ FAR struct vnc_session_s *g_vnc_sessions[RFB_MAX_DISPLAYS]; static void vnc_reset_session(FAR struct vnc_session_s *session, FAR uint8_t *fb, int display) { - FAR struct vnc_fbupdate_s *curr; - FAR struct vnc_fbupdate_s *next; int i; /* Close any open sockets */ @@ -112,22 +110,13 @@ static void vnc_reset_session(FAR struct vnc_session_s *session, /* Put all of the pre-allocated update structures into the freelist */ sq_init(&session->updqueue); + sq_init(&session->updfree); - session->updfree.head = - (FAR sq_entry_t *)&session->updpool[0]; - session->updfree.tail = - (FAR sq_entry_t *)&session->updpool[CONFIG_VNCSERVER_NUPDATES-1]; - - next = &session->updpool[0]; - for (i = 1; i < CONFIG_VNCSERVER_NUPDATES-1; i++) + for (i = 0; i < CONFIG_VNCSERVER_NUPDATES; i++) { - curr = next; - next = &session->updpool[i]; - curr->flink = next; + sq_addlast((FAR sq_entry_t *)&session->updpool[i], &session->updfree); } - next->flink = NULL; - /* Set the INITIALIZED state */ sem_reset(&session->freesem, CONFIG_VNCSERVER_NUPDATES); diff --git a/graphics/vnc/server/vnc_updater.c b/graphics/vnc/server/vnc_updater.c index 803f6a4678..986e081d72 100644 --- a/graphics/vnc/server/vnc_updater.c +++ b/graphics/vnc/server/vnc_updater.c @@ -51,6 +51,12 @@ #include "vnc_server.h" +/**************************************************************************** + * Pre-processor Definitions + ****************************************************************************/ + +#undef VNCSERVER_SEM_DEBUG + /**************************************************************************** * Private Types ****************************************************************************/ @@ -69,15 +75,73 @@ typedef CODE uint32_t(*vnc_convert32_t)(uint32_t rgb); # error Unspecified/unsupported color format #endif +/**************************************************************************** + * Private Data + ****************************************************************************/ + +#ifdef VNCSERVER_SEM_DEBUG +static sem_t g_dbgsem = SEM_INITIALIZER(1); +#endif + /**************************************************************************** * Private Functions ****************************************************************************/ +/**************************************************************************** + * Name: vnc_sem_debug + * + * Description: + * Dump information about the freesem to verify that it is sync. + * + * Input Parameters: + * session - A reference to the VNC session structure. + * + * Returned Value: + * A non-NULL structure pointer should always be returned. This function + * will wait if no structure is available. + * + ****************************************************************************/ + +#ifdef VNCSERVER_SEM_DEBUG +static void vnc_sem_debug(FAR struct vnc_session_s *session, + FAR const char *msg, unsigned int unattached) +{ + FAR struct vnc_fbupdate_s *update; + unsigned int nqueued; + unsigned int nfree; + + while (sem_wait(&g_dbgsem) < 0) + { + DEBUGASSERT(get_errno() == EINTR); + } + + /* Count structures in the list */ + + for (nqueued = 0, update = (FAR struct vnc_fbupdate_s *)session->updqueue.head; + update != NULL; + nqueued++, update = update->flink); + + for (nfree = 0, update = (FAR struct vnc_fbupdate_s *)session->updfree.head; + update != NULL; + nfree++, update = update->flink); + + syslog(LOG_INFO, "FREESEM DEBUG: %s\n", msg); + syslog(LOG_INFO, " freesem: %d\n", session->freesem.semcount); + syslog(LOG_INFO, " queued: %u\n", nqueued); + syslog(LOG_INFO, " free: %u\n", nfree); + syslog(LOG_INFO, " unattached: %u\n", unattached); + + sem_post(&g_dbgsem); +} +#else +# define vnc_sem_debug(s,m,u) +#endif + /**************************************************************************** * Name: vnc_alloc_update * * Description: - * Allocate one update structure by taking it from the freelist. + * Allocate one update structure by taking it from the freelist. * * Input Parameters: * session - A reference to the VNC session structure. @@ -99,6 +163,8 @@ vnc_alloc_update(FAR struct vnc_session_s *session) */ sched_lock(); + vnc_sem_debug(session, "Before alloc", 0); + while (sem_wait(&session->freesem) < 0) { DEBUGASSERT(get_errno() == EINTR); @@ -107,6 +173,8 @@ vnc_alloc_update(FAR struct vnc_session_s *session) /* It is reserved.. go get it */ update = (FAR struct vnc_fbupdate_s *)sq_remfirst(&session->updfree); + + vnc_sem_debug(session, "After alloc", 1); sched_unlock(); DEBUGASSERT(update != NULL); @@ -135,6 +203,7 @@ static void vnc_free_update(FAR struct vnc_session_s *session, */ sched_lock(); + vnc_sem_debug(session, "Before free", 1); /* Put the entry into the free list */ @@ -143,6 +212,8 @@ static void vnc_free_update(FAR struct vnc_session_s *session, /* Post the semaphore to indicate the availability of one more update */ sem_post(&session->freesem); + + vnc_sem_debug(session, "After free", 0); DEBUGASSERT(session->freesem.semcount <= CONFIG_VNCSERVER_NUPDATES); sched_unlock(); @@ -176,6 +247,8 @@ vnc_remove_queue(FAR struct vnc_session_s *session) */ sched_lock(); + vnc_sem_debug(session, "Before remove", 0); + while (sem_wait(&session->queuesem) < 0) { DEBUGASSERT(get_errno() == EINTR); @@ -184,6 +257,8 @@ vnc_remove_queue(FAR struct vnc_session_s *session) /* It is reserved.. go get it */ rect = (FAR struct vnc_fbupdate_s *)sq_remfirst(&session->updqueue); + + vnc_sem_debug(session, "After remove", 0); sched_unlock(); DEBUGASSERT(rect != NULL); @@ -213,6 +288,7 @@ static void vnc_add_queue(FAR struct vnc_session_s *session, */ sched_lock(); + vnc_sem_debug(session, "Before add", 1); /* Put the entry into the list of queued rectangles. */ @@ -223,6 +299,8 @@ static void vnc_add_queue(FAR struct vnc_session_s *session, */ sem_post(&session->queuesem); + + vnc_sem_debug(session, "After add", 0); DEBUGASSERT(session->queuesem.semcount <= CONFIG_VNCSERVER_NUPDATES); sched_unlock(); @@ -666,6 +744,7 @@ static FAR void *vnc_updater(FAR void *arg) FAR struct vnc_session_s *session = (FAR struct vnc_session_s *)arg; FAR struct rfb_framebufferupdate_s *update; FAR struct vnc_fbupdate_s *srcrect; + FAR const uint8_t *src; nxgl_coord_t srcwidth; nxgl_coord_t srcheight; nxgl_coord_t destwidth; @@ -849,15 +928,21 @@ static FAR void *vnc_updater(FAR void *arg) /* Then send the update packet to the VNC client */ size += SIZEOF_RFB_FRAMEBUFFERUPDATE_S(0); - nsent = psock_send(&session->connect, session->outbuf, size, 0); - if (nsent < 0) + src = session->outbuf; + + while (size > 0) { - gdbg("ERROR: Send FrameBufferUpdate failed: %d\n", - get_errno()); - goto errout; + nsent = psock_send(&session->connect, src, size, 0); + if (nsent < 0) + { + gdbg("ERROR: Send FrameBufferUpdate failed: %d\n", + get_errno()); + goto errout; + } + + src += nsent; + size -= nsent; } - - DEBUGASSERT(nsent == size); } } -- GitLab From 885cd812e6883bdbd8e77d2bf780ee7f290812c6 Mon Sep 17 00:00:00 2001 From: Frank Benkert Date: Wed, 20 Apr 2016 06:22:04 -0600 Subject: [PATCH 055/307] SAME70: USBHS device workaround for errata; EP7 does not support DMA on some parts --- arch/arm/src/samv7/Kconfig | 8 ++++++++ arch/arm/src/samv7/sam_usbdevhs.c | 20 +++++++++++++++----- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/arch/arm/src/samv7/Kconfig b/arch/arm/src/samv7/Kconfig index 1bebc50534..1f9941e315 100644 --- a/arch/arm/src/samv7/Kconfig +++ b/arch/arm/src/samv7/Kconfig @@ -1820,6 +1820,14 @@ config SAMV7_USBHS_PREALLOCATE at start-up time with kmm_malloc(). This might be important if a larger memory pool is available after startup. +config SAMV7_USBHS_EP7DMA_WAR + bool "EP7 DMA errata workaround" + default n + ---help--- + Normally EP1..7 should support, but according an ERRATA in + "Atmel-11296D-ATARM-SAM E70-Datasheet_19-Jan-16" only the EP1..6 + support the DMA transfer. This option suppresses DMA on EP7. + config SAMV7_USBHS_REGDEBUG bool "Enable low-level USBHS register debug" default n diff --git a/arch/arm/src/samv7/sam_usbdevhs.c b/arch/arm/src/samv7/sam_usbdevhs.c index 0c1f242acc..80bf1619c5 100644 --- a/arch/arm/src/samv7/sam_usbdevhs.c +++ b/arch/arm/src/samv7/sam_usbdevhs.c @@ -130,10 +130,20 @@ #define EP0 (0) #define SAM_EPSET_ALL (0xffff) /* All endpoints */ #define SAM_EPSET_NOTEP0 (0xfffe) /* All endpoints except EP0 */ -#define SAM_EPSET_DMA (0x01fe) /* All endpoints that support DMA transfers */ #define SAM_EP_BIT(ep) (1 << (ep)) #define SAM_EP0_MAXPACKET (64) /* EP0 Max. packet size */ +#ifdef CONFIG_SAMV7_USBHS_EP7DMA_WAR +/* Normally EP1..7 should support DMA (0x1fe), but according an ERRATA in + * "Atmel-11296D-ATARM-SAM E70-Datasheet_19-Jan-16" only the EP1..6 support + * the DMA transfer (0x7e) + */ + +# define SAM_EPSET_DMA (0x007e) /* All endpoints that support DMA transfers */ +#else +# define SAM_EPSET_DMA (0x01fe) /* All endpoints that support DMA transfers */ +#endif + /* DMA FIFO */ #define DMA_MAX_FIFO_SIZE (65536/1) /* Max size of the FMA FIFO */ @@ -517,7 +527,7 @@ static int sam_usbhs_interrupt(int irq, void *context); static void sam_ep_reset(struct sam_usbdev_s *priv, uint8_t epno); static void sam_epset_reset(struct sam_usbdev_s *priv, uint16_t epset); static inline struct sam_ep_s * - sam_ep_reserve(struct sam_usbdev_s *priv, uint8_t epset); + sam_ep_reserve(struct sam_usbdev_s *priv, uint16_t epset); static inline void sam_ep_unreserve(struct sam_usbdev_s *priv, struct sam_ep_s *privep); @@ -3394,12 +3404,12 @@ static void sam_epset_reset(struct sam_usbdev_s *priv, uint16_t epset) * Name: sam_ep_reserve * * Description: - * Find and un-reserved endpoint number and reserve it for the caller. + * Find an un-reserved endpoint number and reserve it for the caller. * ****************************************************************************/ static inline struct sam_ep_s * -sam_ep_reserve(struct sam_usbdev_s *priv, uint8_t epset) +sam_ep_reserve(struct sam_usbdev_s *priv, uint16_t epset) { struct sam_ep_s *privep = NULL; irqstate_t flags; @@ -3415,7 +3425,7 @@ sam_ep_reserve(struct sam_usbdev_s *priv, uint8_t epset) for (epndx = 1; epndx < SAM_USBHS_NENDPOINTS; epndx++) { - uint8_t bit = SAM_EP_BIT(epndx); + uint16_t bit = SAM_EP_BIT(epndx); if ((epset & bit) != 0) { /* Mark the endpoint no longer available */ -- GitLab From b8ee28cb5706feda50f66eea42e60fbae845b003 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 20 Apr 2016 06:37:26 -0600 Subject: [PATCH 056/307] lpc4357fet256_pinconfig.h has wrong ethernet pins configuration (slow slew rate, somewhere inbuffer should be used). From Vytautas Lukenskas --- .../lpc43xx/chip/lpc4357fet256_pinconfig.h | 64 +++++++++---------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/arch/arm/src/lpc43xx/chip/lpc4357fet256_pinconfig.h b/arch/arm/src/lpc43xx/chip/lpc4357fet256_pinconfig.h index 6be507c1ce..b29722479a 100644 --- a/arch/arm/src/lpc43xx/chip/lpc4357fet256_pinconfig.h +++ b/arch/arm/src/lpc43xx/chip/lpc4357fet256_pinconfig.h @@ -271,38 +271,38 @@ #define PINCONF_EMC_RAS (PINCONF_FUNC3|PINCONF_PINS6|PINCONF_PIN_5) #define PINCONF_EMC_WE (PINCONF_FUNC3|PINCONF_PINS1|PINCONF_PIN_6) -#define PINCONF_ENET_COL_1 (PINCONF_FUNC2|PINCONF_PINS0|PINCONF_PIN_1) -#define PINCONF_ENET_COL_2 (PINCONF_FUNC5|PINCONF_PINS9|PINCONF_PIN_6) -#define PINCONF_ENET_COL_3 (PINCONF_FUNC7|PINCONF_PINS4|PINCONF_PIN_1) -#define PINCONF_ENET_CRS_1 (PINCONF_FUNC3|PINCONF_PINS1|PINCONF_PIN_16) -#define PINCONF_ENET_CRS_2 (PINCONF_FUNC5|PINCONF_PINS9|PINCONF_PIN_0) -#define PINCONF_ENET_MDC_1 (PINCONF_FUNC3|PINCONF_PINSC|PINCONF_PIN_1) -#define PINCONF_ENET_MDC_2 (PINCONF_FUNC6|PINCONF_PINS7|PINCONF_PIN_7) -#define PINCONF_ENET_MDC_3 (PINCONF_FUNC7|PINCONF_PINS2|PINCONF_PIN_0) -#define PINCONF_ENET_MDIO (PINCONF_FUNC3|PINCONF_PINS1|PINCONF_PIN_17) -#define PINCONF_ENET_REF_CLK (PINCONF_FUNC0|PINCONF_PINS1|PINCONF_PIN_19) -#define PINCONF_ENET_RXD0 (PINCONF_FUNC3|PINCONF_PINS1|PINCONF_PIN_15) -#define PINCONF_ENET_RXD1 (PINCONF_FUNC2|PINCONF_PINS0|PINCONF_PIN_0) -#define PINCONF_ENET_RXD2_1 (PINCONF_FUNC3|PINCONF_PINSC|PINCONF_PIN_6) -#define PINCONF_ENET_RXD2_2 (PINCONF_FUNC5|PINCONF_PINS9|PINCONF_PIN_3) -#define PINCONF_ENET_RXD3_1 (PINCONF_FUNC3|PINCONF_PINSC|PINCONF_PIN_7) -#define PINCONF_ENET_RXD3_2 (PINCONF_FUNC5|PINCONF_PINS9|PINCONF_PIN_2) -#define PINCONF_ENET_RX_CLK (PINCONF_FUNC3|PINCONF_PINSC|PINCONF_PIN_0) -#define PINCONF_ENET_RX_DV_1 (PINCONF_FUNC3|PINCONF_PINSC|PINCONF_PIN_8) -#define PINCONF_ENET_RX_DV_2 (PINCONF_FUNC7|PINCONF_PINS1|PINCONF_PIN_16) -#define PINCONF_ENET_RX_ER_1 (PINCONF_FUNC3|PINCONF_PINSC|PINCONF_PIN_9) -#define PINCONF_ENET_RX_ER_2 (PINCONF_FUNC5|PINCONF_PINS9|PINCONF_PIN_1) -#define PINCONF_ENET_TXD0 (PINCONF_FUNC3|PINCONF_PINS1|PINCONF_PIN_18) -#define PINCONF_ENET_TXD1 (PINCONF_FUNC3|PINCONF_PINS1|PINCONF_PIN_20) -#define PINCONF_ENET_TXD2_1 (PINCONF_FUNC3|PINCONF_PINSC|PINCONF_PIN_2) -#define PINCONF_ENET_TXD2_2 (PINCONF_FUNC5|PINCONF_PINS9|PINCONF_PIN_4) -#define PINCONF_ENET_TXD3_1 (PINCONF_FUNC3|PINCONF_PINSC|PINCONF_PIN_3) -#define PINCONF_ENET_TXD3_2 (PINCONF_FUNC5|PINCONF_PINS9|PINCONF_PIN_5) -#define PINCONF_ENET_TXEN (PINCONF_FUNC6|PINCONF_PINS0|PINCONF_PIN_1) -#define PINCONF_ENET_TX_CLK (PINCONF_FUNC0|PINCONF_PINS1|PINCONF_PIN_19) -#define PINCONF_ENET_TX_EN (PINCONF_FUNC3|PINCONF_PINSC|PINCONF_PIN_4) -#define PINCONF_ENET_TX_ER_1 (PINCONF_FUNC3|PINCONF_PINSC|PINCONF_PIN_5) -#define PINCONF_ENET_TX_ER_2 (PINCONF_FUNC6|PINCONF_PINSC|PINCONF_PIN_14) +#define PINCONF_ENET_COL_1 (PINCONF_FUNC2|PINCONF_INBUFFER|PINCONF_SLEW_FAST|PINCONF_PINS0|PINCONF_PIN_1) +#define PINCONF_ENET_COL_2 (PINCONF_FUNC5|PINCONF_INBUFFER|PINCONF_SLEW_FAST|PINCONF_PINS9|PINCONF_PIN_6) +#define PINCONF_ENET_COL_3 (PINCONF_FUNC7|PINCONF_INBUFFER|PINCONF_SLEW_FAST|PINCONF_PINS4|PINCONF_PIN_1) +#define PINCONF_ENET_CRS_1 (PINCONF_FUNC3|PINCONF_INBUFFER|PINCONF_SLEW_FAST|PINCONF_PINS1|PINCONF_PIN_16) +#define PINCONF_ENET_CRS_2 (PINCONF_FUNC5|PINCONF_INBUFFER|PINCONF_SLEW_FAST|PINCONF_PINS9|PINCONF_PIN_0) +#define PINCONF_ENET_MDC_1 (PINCONF_FUNC3|PINCONF_SLEW_FAST|PINCONF_PINSC|PINCONF_PIN_1) +#define PINCONF_ENET_MDC_2 (PINCONF_FUNC6|PINCONF_SLEW_FAST|PINCONF_PINS7|PINCONF_PIN_7) +#define PINCONF_ENET_MDC_3 (PINCONF_FUNC7|PINCONF_SLEW_FAST|PINCONF_PINS2|PINCONF_PIN_0) +#define PINCONF_ENET_MDIO (PINCONF_FUNC3|PINCONF_INBUFFER|PINCONF_PINS1|PINCONF_PIN_17) +#define PINCONF_ENET_REF_CLK (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_SLEW_FAST|PINCONF_PINS1|PINCONF_PIN_19) +#define PINCONF_ENET_RXD0 (PINCONF_FUNC3|PINCONF_INBUFFER|PINCONF_SLEW_FAST|PINCONF_PINS1|PINCONF_PIN_15) +#define PINCONF_ENET_RXD1 (PINCONF_FUNC2|PINCONF_INBUFFER|PINCONF_SLEW_FAST|PINCONF_PINS0|PINCONF_PIN_0) +#define PINCONF_ENET_RXD2_1 (PINCONF_FUNC3|PINCONF_INBUFFER|PINCONF_SLEW_FAST|PINCONF_PINSC|PINCONF_PIN_6) +#define PINCONF_ENET_RXD2_2 (PINCONF_FUNC5|PINCONF_INBUFFER|PINCONF_SLEW_FAST|PINCONF_PINS9|PINCONF_PIN_3) +#define PINCONF_ENET_RXD3_1 (PINCONF_FUNC3|PINCONF_INBUFFER|PINCONF_SLEW_FAST|PINCONF_PINSC|PINCONF_PIN_7) +#define PINCONF_ENET_RXD3_2 (PINCONF_FUNC5|PINCONF_INBUFFER|PINCONF_SLEW_FAST|PINCONF_PINS9|PINCONF_PIN_2) +#define PINCONF_ENET_RX_CLK (PINCONF_FUNC3|PINCONF_INBUFFER|PINCONF_SLEW_FAST|PINCONF_PINSC|PINCONF_PIN_0) +#define PINCONF_ENET_RX_DV_1 (PINCONF_FUNC3|PINCONF_INBUFFER|PINCONF_SLEW_FAST|PINCONF_PINSC|PINCONF_PIN_8) +#define PINCONF_ENET_RX_DV_2 (PINCONF_FUNC7|PINCONF_INBUFFER|PINCONF_SLEW_FAST|PINCONF_PINS1|PINCONF_PIN_16) +#define PINCONF_ENET_RX_ER_1 (PINCONF_FUNC3|PINCONF_INBUFFER|PINCONF_SLEW_FAST|PINCONF_PINSC|PINCONF_PIN_9) +#define PINCONF_ENET_RX_ER_2 (PINCONF_FUNC5|PINCONF_INBUFFER|PINCONF_SLEW_FAST|PINCONF_PINS9|PINCONF_PIN_1) +#define PINCONF_ENET_TXD0 (PINCONF_FUNC3|PINCONF_SLEW_FAST|PINCONF_PINS1|PINCONF_PIN_18) +#define PINCONF_ENET_TXD1 (PINCONF_FUNC3|PINCONF_SLEW_FAST|PINCONF_PINS1|PINCONF_PIN_20) +#define PINCONF_ENET_TXD2_1 (PINCONF_FUNC3|PINCONF_SLEW_FAST|PINCONF_PINSC|PINCONF_PIN_2) +#define PINCONF_ENET_TXD2_2 (PINCONF_FUNC5|PINCONF_SLEW_FAST|PINCONF_PINS9|PINCONF_PIN_4) +#define PINCONF_ENET_TXD3_1 (PINCONF_FUNC3|PINCONF_SLEW_FAST|PINCONF_PINSC|PINCONF_PIN_3) +#define PINCONF_ENET_TXD3_2 (PINCONF_FUNC5|PINCONF_SLEW_FAST|PINCONF_PINS9|PINCONF_PIN_5) +#define PINCONF_ENET_TXEN (PINCONF_FUNC6|PINCONF_SLEW_FAST|PINCONF_PINS0|PINCONF_PIN_1) +#define PINCONF_ENET_TX_CLK (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_SLEW_FAST|PINCONF_PINS1|PINCONF_PIN_19) +#define PINCONF_ENET_TX_EN (PINCONF_FUNC3|PINCONF_SLEW_FAST|PINCONF_PINSC|PINCONF_PIN_4) +#define PINCONF_ENET_TX_ER_1 (PINCONF_FUNC3|PINCONF_INBUFFER|PINCONF_SLEW_FAST|PINCONF_PINSC|PINCONF_PIN_5) +#define PINCONF_ENET_TX_ER_2 (PINCONF_FUNC6|PINCONF_INBUFFER|PINCONF_SLEW_FAST|PINCONF_PINSC|PINCONF_PIN_14) #define PINCONF_GPIO0p0 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS0|PINCONF_PIN_0) #define PINCONF_GPIO0p1 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS0|PINCONF_PIN_1) -- GitLab From 4e04b3e931dd75e96939a551b8398df3090f0ac2 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 20 Apr 2016 06:41:51 -0600 Subject: [PATCH 057/307] Correct configuration of GPIO pin interrupts on Kinetis K60. Fromo mrechte. --- arch/arm/src/kinetis/kinetis.h | 2 +- arch/arm/src/kinetis/kinetis_irq.c | 2 +- arch/arm/src/kinetis/kinetis_pinirq.c | 18 +++++++++++++++--- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/arch/arm/src/kinetis/kinetis.h b/arch/arm/src/kinetis/kinetis.h index f84dd226b8..b0c016d22a 100644 --- a/arch/arm/src/kinetis/kinetis.h +++ b/arch/arm/src/kinetis/kinetis.h @@ -221,7 +221,7 @@ * (restricted to inputs). */ -#define _PIN_INT_SHIFT (20) +#define _PIN_INT_SHIFT (19) #define _PIN_INT_MASK (31 << _PIN_INT_SHIFT) #define _PIN_INTDMA_MASK (3 << _PIN_INT_SHIFT) diff --git a/arch/arm/src/kinetis/kinetis_irq.c b/arch/arm/src/kinetis/kinetis_irq.c index 456dc140a2..44f21af47d 100644 --- a/arch/arm/src/kinetis/kinetis_irq.c +++ b/arch/arm/src/kinetis/kinetis_irq.c @@ -120,7 +120,7 @@ static void kinetis_dumpnvic(const char *msg, int irq) getreg32(NVIC_SYSHCON_USGFAULTENA), getreg32(NVIC_SYSTICK_CTRL_ENABLE)); #endif lldbg(" IRQ ENABLE: %08x %08x %08x %08x\n", - getreg32(NVIC_IRQ0_31_ENABLE), getreg32(NVIC_IRQ32_63_ENABLE); + getreg32(NVIC_IRQ0_31_ENABLE), getreg32(NVIC_IRQ32_63_ENABLE), getreg32(NVIC_IRQ64_95_ENABLE), getreg32(NVIC_IRQ96_127_ENABLE)); lldbg(" SYSH_PRIO: %08x %08x %08x\n", getreg32(NVIC_SYSH4_7_PRIORITY), getreg32(NVIC_SYSH8_11_PRIORITY), diff --git a/arch/arm/src/kinetis/kinetis_pinirq.c b/arch/arm/src/kinetis/kinetis_pinirq.c index 3c4da9d3c7..0ec0d64176 100644 --- a/arch/arm/src/kinetis/kinetis_pinirq.c +++ b/arch/arm/src/kinetis/kinetis_pinirq.c @@ -379,18 +379,30 @@ void kinetis_pinirqenable(uint32_t pinset) regval |= PORT_PCR_IRQC_RISING; break; - case PIN_INT_BOTH : /* Interrupt on falling edge */ + case PIN_INT_FALLING : /* Interrupt on falling edge */ regval |= PORT_PCR_IRQC_FALLING; break; - case PIN_DMA_FALLING : /* nterrupt on either edge */ + case PIN_INT_BOTH : /* Interrupt on either edge */ regval |= PORT_PCR_IRQC_BOTH; break; - case PIN_INT_ONE : /* IInterrupt when logic one */ + case PIN_INT_ONE : /* Interrupt when logic one */ regval |= PORT_PCR_IRQC_ONE; break; + case PIN_DMA_RISING : /* DMA on rising edge */ + regval |= PORT_PCR_IRQC_DMARISING; + break; + + case PIN_DMA_FALLING : /* DMA on falling edge */ + regval |= PORT_PCR_IRQC_DMAFALLING; + break; + + case PIN_DMA_BOTH : /* DMA on either edge */ + regval |= PORT_PCR_IRQC_DMABOTH; + break; + default: return; } -- GitLab From 2cb52786b61af2f2af3f556a38c54fe2af5de996 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 20 Apr 2016 06:49:21 -0600 Subject: [PATCH 058/307] STM32F7: Add dummy stm32_spi.h header file to workaround some compilation issues. Suggest by Martin Davey. --- arch/arm/src/stm32f7/stm32_spi.h | 208 +++++++++++++++++++++++++++++++ 1 file changed, 208 insertions(+) create mode 100644 arch/arm/src/stm32f7/stm32_spi.h diff --git a/arch/arm/src/stm32f7/stm32_spi.h b/arch/arm/src/stm32f7/stm32_spi.h new file mode 100644 index 0000000000..2d606d2f45 --- /dev/null +++ b/arch/arm/src/stm32f7/stm32_spi.h @@ -0,0 +1,208 @@ +/************************************************************************************ + * arch/arm/src/stm32f7/stm32_spi.h + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ************************************************************************************/ + +#ifndef __ARCH_ARM_STC_STM32F7_STM32_SPI_H +#define __ARCH_ARM_STC_STM32F7_STM32_SPI_H + +/************************************************************************************ + * Included Files + ************************************************************************************/ + +#include + +#include + +#include "chip.h" +//#include "chip/stm32_spi.h" + +/************************************************************************************ + * Public Functions + ************************************************************************************/ + +#ifndef __ASSEMBLY__ + +#undef EXTERN +#if defined(__cplusplus) +#define EXTERN extern "C" +extern "C" +{ +#else +#define EXTERN extern +#endif + +struct spi_dev_s; /* Forward reference */ +enum spi_dev_e; /* Forward reference */ + +/************************************************************************************ + * Name: stm32_spibus_initialize + * + * Description: + * Initialize the selected SPI bus + * + * Input Parameter: + * bus number (for hardware that has mutiple SPI interfaces) + * + * Returned Value: + * Valid SPI device structure reference on succcess; a NULL on failure + * + ************************************************************************************/ + +FAR struct spi_dev_s *stm32_spibus_initialize(int bus); + +/************************************************************************************ + * Name: stm32_spi1/2/...select and stm32_spi1/2/...status + * + * Description: + * The external functions, stm32_spi1/2/...select, stm32_spi1/2/...status, and + * stm32_spi1/2/...cmddata must be provided by board-specific logic. These are + * implementations of the select, status, and cmddata methods of the SPI interface + * defined by struct spi_ops_s (see include/nuttx/spi/spi.h). All other methods + * (including stm32_spibus_initialize()) are provided by common STM32 logic. To use this + * common SPI logic on your board: + * + * 1. Provide logic in stm32_boardinitialize() to configure SPI chip select + * pins. + * 2. Provide stm32_spi1/2/...select() and stm32_spi1/2/...status() functions in your + * board-specific logic. These functions will perform chip selection and + * status operations using GPIOs in the way your board is configured. + * 3. If CONFIG_SPI_CMDDATA is defined in your NuttX configuration file, then + * provide stm32_spi1/2/...cmddata() functions in your board-specific logic. + * These functions will perform cmd/data selection operations using GPIOs in the + * way your board is configured. + * 4. Add a calls to stm32_spibus_initialize() in your low level application + * initialization logic + * 5. The handle returned by stm32_spibus_initialize() may then be used to bind the + * SPI driver to higher level logic (e.g., calling + * mmcsd_spislotinitialize(), for example, will bind the SPI driver to + * the SPI MMC/SD driver). + * + ************************************************************************************/ + +#ifdef CONFIG_STM32_SPI1 +void stm32_spi1select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected); +uint8_t stm32_spi1status(FAR struct spi_dev_s *dev, enum spi_dev_e devid); +int stm32_spi1cmddata(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool cmd); +#endif + +#ifdef CONFIG_STM32_SPI2 +void stm32_spi2select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected); +uint8_t stm32_spi2status(FAR struct spi_dev_s *dev, enum spi_dev_e devid); +int stm32_spi2cmddata(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool cmd); +#endif + +#ifdef CONFIG_STM32_SPI3 +void stm32_spi3select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected); +uint8_t stm32_spi3status(FAR struct spi_dev_s *dev, enum spi_dev_e devid); +int stm32_spi3cmddata(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool cmd); +#endif + +#ifdef CONFIG_STM32_SPI4 +void stm32_spi4select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected); +uint8_t stm32_spi4status(FAR struct spi_dev_s *dev, enum spi_dev_e devid); +int stm32_spi4cmddata(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool cmd); +#endif + +#ifdef CONFIG_STM32_SPI5 +void stm32_spi5select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected); +uint8_t stm32_spi5status(FAR struct spi_dev_s *dev, enum spi_dev_e devid); +int stm32_spi5cmddata(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool cmd); +#endif + +#ifdef CONFIG_STM32_SPI6 +void stm32_spi6select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected); +uint8_t stm32_spi6status(FAR struct spi_dev_s *dev, enum spi_dev_e devid); +int stm32_spi6cmddata(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool cmd); +#endif + +/************************************************************************************ + * Name: stm32_spi1/2/...register + * + * Description: + * If the board supports a card detect callback to inform the SPI-based MMC/SD + * driver when an SD card is inserted or removed, then CONFIG_SPI_CALLBACK should + * be defined and the following function(s) must be implemented. These functions + * implements the registercallback method of the SPI interface (see + * include/nuttx/spi/spi.h for details) + * + * Input Parameters: + * dev - Device-specific state data + * callback - The function to call on the media change + * arg - A caller provided value to return with the callback + * + * Returned Value: + * 0 on success; negated errno on failure. + * + ****************************************************************************/ + +#ifdef CONFIG_SPI_CALLBACK +#ifdef CONFIG_STM32_SPI1 +int stm32_spi1register(FAR struct spi_dev_s *dev, spi_mediachange_t callback, + FAR void *arg); +#endif + +#ifdef CONFIG_STM32_SPI2 +int stm32_spi2register(FAR struct spi_dev_s *dev, spi_mediachange_t callback, + FAR void *arg); +#endif + +#ifdef CONFIG_STM32_SPI3 +int stm32_spi3register(FAR struct spi_dev_s *dev, spi_mediachange_t callback, + FAR void *arg); +#endif + +#ifdef CONFIG_STM32_SPI4 +int stm32_spi4register(FAR struct spi_dev_s *dev, spi_mediachange_t callback, + FAR void *arg); +#endif + +#ifdef CONFIG_STM32_SPI5 +int stm32_spi5register(FAR struct spi_dev_s *dev, spi_mediachange_t callback, + FAR void *arg); +#endif + +#ifdef CONFIG_STM32_SPI6 +int stm32_spi6register(FAR struct spi_dev_s *dev, spi_mediachange_t callback, + FAR void *arg); +#endif +#endif + +#undef EXTERN +#if defined(__cplusplus) +} +#endif + +#endif /* __ASSEMBLY__ */ +#endif /* __ARCH_ARM_STC_STM32F7_STM32_SPI_H */ + -- GitLab From 7134652fea6ed4673b84bb7d76beed1dbd2db3e0 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 20 Apr 2016 09:47:02 -0600 Subject: [PATCH 059/307] VNC: Fixes from debug. One issues is that VNC client is changing color formats after starting. That is now handled. --- configs/samv71-xult/README.txt | 16 ++++++ configs/samv71-xult/vnc/defconfig | 4 +- graphics/vnc/server/vnc_negotiate.c | 60 ++++++++++++++++---- graphics/vnc/server/vnc_receiver.c | 12 +++- graphics/vnc/server/vnc_server.h | 19 +++++++ graphics/vnc/server/vnc_updater.c | 85 +++++++++++++++-------------- 6 files changed, 141 insertions(+), 55 deletions(-) diff --git a/configs/samv71-xult/README.txt b/configs/samv71-xult/README.txt index 5bab0de4ed..0ada8ad010 100644 --- a/configs/samv71-xult/README.txt +++ b/configs/samv71-xult/README.txt @@ -2323,3 +2323,19 @@ Configuration sub-directories 2. The default (local) framebuffer configuration is 320x240 with 16-bit RGB color. + 3. There are complicated interactions between VNC and the network + configuration. The CONFIG_VNCSERVER_UPDATE_BUFSIZE determines the + size of update messages. That is 1024 bytes in that configuration + (the full message with the header will be a little larger). The + MTU (CONFIG_NET_ETH_MTU) is set to 590 so that a full update will + require several packets.i + + Write buffering also effects network performance. This will break + up the large updates into small (196 byte) groups. When we run out + of read-ahead buffers, then partial updates may be sent causing a + loss of synchronization. + + 4. Hint: If you are debugging using the RealVNC clint, turn off all + mouse/keyboard inputs in the options/input menu. That will make + things a little clearer. + diff --git a/configs/samv71-xult/vnc/defconfig b/configs/samv71-xult/vnc/defconfig index f3bd46b62c..4399be7327 100644 --- a/configs/samv71-xult/vnc/defconfig +++ b/configs/samv71-xult/vnc/defconfig @@ -741,8 +741,8 @@ CONFIG_NET_NOINTS=y # Driver buffer configuration # # CONFIG_NET_MULTIBUFFER is not set -CONFIG_NET_ETH_MTU=1508 -CONFIG_NET_ETH_TCP_RECVWNDO=1454 +CONFIG_NET_ETH_MTU=590 +CONFIG_NET_ETH_TCP_RECVWNDO=536 CONFIG_NET_GUARDSIZE=2 # diff --git a/graphics/vnc/server/vnc_negotiate.c b/graphics/vnc/server/vnc_negotiate.c index d50798f6f1..f543f73efb 100644 --- a/graphics/vnc/server/vnc_negotiate.c +++ b/graphics/vnc/server/vnc_negotiate.c @@ -383,10 +383,51 @@ int vnc_negotiate(FAR struct vnc_session_s *session) return -EPROTO; } - /* Check if the client request format is one that we can handle. */ + /* Instantiate the client pixel format, verifying that the client request format + * is one that we can handle. + */ + + ret = vnc_client_pixelformat(session, &setformat->format); + if (ret < 0) + { + /* We do not support this pixel format */ + + gdbg("ERROR: PixelFormat not supported\n"); + return ret; + } - pixelfmt = &setformat->format; + /* Receive supported encoding types from client, but ignore them. + * we will do only raw format. + */ + + gvdbg("Receive encoding types\n"); + (void)psock_recv(&session->connect, session->inbuf, + CONFIG_VNCSERVER_INBUFFER_SIZE, 0); + + session->state = VNCSERVER_CONFIGURED; + return OK; +} + +/**************************************************************************** + * Name: vnc_client_pixelformat + * + * Description: + * A Client-to-Sever SetPixelFormat message has been received. We need to + * immediately switch the output color format that we generate. + * + * Input Parameters: + * session - An instance of the session structure. + * pixelfmt - The pixel from from the received SetPixelFormat message + * + * Returned Value: + * Returns zero (OK) on success; a negated errno value on failure. + * + ****************************************************************************/ + +int vnc_client_pixelformat(FAR struct vnc_session_s *session, + FAR struct rfb_pixelfmt_s *pixelfmt) +{ if (pixelfmt->truecolor == 0) { /* At present, we support only TrueColor formats */ @@ -397,26 +438,31 @@ int vnc_negotiate(FAR struct vnc_session_s *session) if (pixelfmt->bpp == 8 && pixelfmt->depth == 6) { + gvdbg("Client pixel format: RGB8 2:2:2\n"); session->colorfmt = FB_FMT_RGB8_222; session->bpp = 8; } else if (pixelfmt->bpp == 8 && pixelfmt->depth == 8) { + gvdbg("Client pixel format: RGB8 3:3:2\n"); session->colorfmt = FB_FMT_RGB8_332; session->bpp = 8; } else if (pixelfmt->bpp == 16 && pixelfmt->depth == 15) { + gvdbg("Client pixel format: RGB16 5:5:5\n"); session->colorfmt = FB_FMT_RGB16_555; session->bpp = 16; } else if (pixelfmt->bpp == 16 && pixelfmt->depth == 16) { + gvdbg("Client pixel format: RGB16 5:6:5\n"); session->colorfmt = FB_FMT_RGB16_565; session->bpp = 16; } else if (pixelfmt->bpp == 32 && pixelfmt->depth == 24) { + gvdbg("Client pixel format: RGB32 8:8:8\n"); session->colorfmt = FB_FMT_RGB32; session->bpp = 32; } @@ -434,15 +480,5 @@ int vnc_negotiate(FAR struct vnc_session_s *session) return -ENOSYS; } - /* Receive supported encoding types from client, but ignore them. - * we will do only raw format. - */ - - gvdbg("Receive encoding types\n"); - - (void)psock_recv(&session->connect, session->inbuf, - CONFIG_VNCSERVER_INBUFFER_SIZE, 0); - - session->state = VNCSERVER_CONFIGURED; return OK; } diff --git a/graphics/vnc/server/vnc_receiver.c b/graphics/vnc/server/vnc_receiver.c index 2a9bfd65f1..7d269339af 100644 --- a/graphics/vnc/server/vnc_receiver.c +++ b/graphics/vnc/server/vnc_receiver.c @@ -189,7 +189,17 @@ int vnc_receiver(FAR struct vnc_session_s *session) } else { - /* REVISIT: SetPixelFormat is currently ignored */ + FAR struct rfb_setpixelformat_s *setformat = + (FAR struct rfb_setpixelformat_s *)session->inbuf; + + ret = vnc_client_pixelformat(session, &setformat->format); + if (ret < 0) + { + /* We do not support this pixel format */ + /* REVISIT: We are going to be putting garbage on the RFB */ + + gdbg("ERROR: PixelFormat not supported\n"); + } } } break; diff --git a/graphics/vnc/server/vnc_server.h b/graphics/vnc/server/vnc_server.h index c4bd08ac38..feffc55d63 100644 --- a/graphics/vnc/server/vnc_server.h +++ b/graphics/vnc/server/vnc_server.h @@ -300,6 +300,25 @@ int vnc_server(int argc, FAR char *argv[]); int vnc_negotiate(FAR struct vnc_session_s *session); +/**************************************************************************** + * Name: vnc_client_pixelformat + * + * Description: + * A Client-to-Sever SetPixelFormat message has been received. We need to + * immediately switch the output color format that we generate. + * + * Input Parameters: + * session - An instance of the session structure. + * pixelfmt - The pixel from from the received SetPixelFormat message + * + * Returned Value: + * Returns zero (OK) on success; a negated errno value on failure. + * + ****************************************************************************/ + +int vnc_client_pixelformat(FAR struct vnc_session_s *session, + FAR struct rfb_pixelfmt_s *pixelfmt); + /**************************************************************************** * Name: vnc_start_updater * diff --git a/graphics/vnc/server/vnc_updater.c b/graphics/vnc/server/vnc_updater.c index 986e081d72..5a52b6b86c 100644 --- a/graphics/vnc/server/vnc_updater.c +++ b/graphics/vnc/server/vnc_updater.c @@ -770,42 +770,7 @@ static FAR void *vnc_updater(FAR void *arg) DEBUGASSERT(session != NULL); gvdbg("Updater running for Display %d\n", session->display); - /* Set up some constant pointers and values for convenience */ - - update = (FAR struct rfb_framebufferupdate_s *)session->outbuf; - bytesperpixel = (session->bpp + 7) >> 3; - maxwidth = CONFIG_VNCSERVER_UPDATE_BUFSIZE / bytesperpixel; - - /* Set up the color conversion */ - - switch (session->colorfmt) - { - case FB_FMT_RGB8_222: - convert.bpp8 = vnc_convert_rgb8_222; - break; - - case FB_FMT_RGB8_332: - convert.bpp8 = vnc_convert_rgb8_332; - break; - - case FB_FMT_RGB16_555: - convert.bpp16 = vnc_convert_rgb16_555; - break; - - case FB_FMT_RGB16_565: - convert.bpp16 = vnc_convert_rgb16_565; - break; - - case FB_FMT_RGB32: - convert.bpp32 = vnc_convert_rgb32_888; - break; - - default: - gdbg("ERROR: Unrecognized color format: %d\n", session->colorfmt); - goto errout; - } - - /* Then loop, processing updates until we are asked to stop. + /* Loop, processing updates until we are asked to stop. * REVISIT: Probably need some kind of signal mechanism to wake up * vnc_remove_queue() in order to stop. Or perhaps a special STOP * message in the queue? @@ -820,6 +785,43 @@ static FAR void *vnc_updater(FAR void *arg) srcrect = vnc_remove_queue(session); DEBUGASSERT(srcrect != NULL); + /* Set up characteristics of the client pixel format to use on this + * update. These can change at any time if a SetPixelFormat is + * received asynchronously. + */ + + bytesperpixel = (session->bpp + 7) >> 3; + maxwidth = CONFIG_VNCSERVER_UPDATE_BUFSIZE / bytesperpixel; + + /* Set up the color conversion */ + + switch (session->colorfmt) + { + case FB_FMT_RGB8_222: + convert.bpp8 = vnc_convert_rgb8_222; + break; + + case FB_FMT_RGB8_332: + convert.bpp8 = vnc_convert_rgb8_332; + break; + + case FB_FMT_RGB16_555: + convert.bpp16 = vnc_convert_rgb16_555; + break; + + case FB_FMT_RGB16_565: + convert.bpp16 = vnc_convert_rgb16_565; + break; + + case FB_FMT_RGB32: + convert.bpp32 = vnc_convert_rgb32_888; + break; + + default: + gdbg("ERROR: Unrecognized color format: %d\n", session->colorfmt); + goto errout; + } + /* Get with width and height of the source and destination rectangles. * The source rectangle many be larger than the destination rectangle. * In that case, we will have to emit multiple rectangles. @@ -895,17 +897,17 @@ static FAR void *vnc_updater(FAR void *arg) * performing the necessary color conversions. */ - if (session->bpp == 8) + if (bytesperpixel == 1) { size = vnc_copy8(session, y, x, updheight, updwidth, convert.bpp8); } - else if (session->bpp == 16) + else if (bytesperpixel == 2) { size = vnc_copy16(session, y, x, updheight, updwidth, convert.bpp16); } - else + else /* bytesperpixel == 4 */ { size = vnc_copy32(session, y, x, updheight, updwidth, convert.bpp32); @@ -913,6 +915,7 @@ static FAR void *vnc_updater(FAR void *arg) /* Format the FramebufferUpdate message */ + update = (FAR struct rfb_framebufferupdate_s *)session->outbuf; update->msgtype = RFB_FBUPDATE_MSG; update->padding = 0; rfb_putbe16(update->nrect, 1); @@ -930,7 +933,7 @@ static FAR void *vnc_updater(FAR void *arg) size += SIZEOF_RFB_FRAMEBUFFERUPDATE_S(0); src = session->outbuf; - while (size > 0) + do { nsent = psock_send(&session->connect, src, size, 0); if (nsent < 0) @@ -940,9 +943,11 @@ static FAR void *vnc_updater(FAR void *arg) goto errout; } + DEBUGASSERT(nsent <= size); src += nsent; size -= nsent; } + while (size > 0); } } -- GitLab From 9fd3db62938f5db453c2e6aff4d91c8269393fc4 Mon Sep 17 00:00:00 2001 From: Sebastien Lorquet Date: Wed, 20 Apr 2016 09:59:16 -0600 Subject: [PATCH 060/307] PCA9555: Fix condition where GPIO interrupt is not re-enabled. --- drivers/ioexpander/pca9555.c | 55 ++++++++++++++++++------------------ 1 file changed, 27 insertions(+), 28 deletions(-) diff --git a/drivers/ioexpander/pca9555.c b/drivers/ioexpander/pca9555.c index e8273ae817..c01f7c37a5 100644 --- a/drivers/ioexpander/pca9555.c +++ b/drivers/ioexpander/pca9555.c @@ -427,7 +427,7 @@ static int pca9555_getmultibits(FAR struct pca9555_dev_s *pca, uint8_t addr, { return -ENXIO; } - else if(pin > 7) + else if (pin > 7) { index = 1; pin -= 8; @@ -486,7 +486,7 @@ static int pca9555_multiwritepin(FAR struct ioexpander_dev_s *dev, pca9555_unlock(pca); return -ENXIO; } - else if(pin > 7) + else if (pin > 7) { index = 2; pin -= 8; @@ -574,41 +574,35 @@ static int pca9555_multireadbuf(FAR struct ioexpander_dev_s *dev, static void pca9555_irqworker(void *arg) { + FAR struct pca9555_dev_s *pca = (FAR struct pca9555_dev_s *)arg; uint8_t addr = PCA9555_REG_INPUT; uint8_t buf[2]; - int ret, bits; - FAR struct pca9555_dev_s *pca = (FAR struct pca9555_dev_s *)arg; + unsigned int bits; + int ret; /* Read inputs */ ret = pca9555_writeread(pca, &addr, 1, buf, 2); - if (ret != OK) + if (ret == OK) { - return; - } + bits = ((unsigned int)buf[0] << 8) | buf[1]; - bits = (buf[0] << 8) | buf[1]; + /* If signal PID is registered, enqueue signal. */ - /* If signal PID is registered, enqueue signal. */ - - if (pca->dev.sigpid) - { + if (pca->dev.sigpid) + { #ifdef CONFIG_CAN_PASS_STRUCTS - union sigval value; - value.sival_int = bits; - ret = sigqueue(pca->dev.sigpid, pca->dev.sigval, value); + union sigval value; + value.sival_int = (int)bits; + ret = sigqueue(pca->dev.sigpid, pca->dev.sigval, value); #else - ret = sigqueue(pca->dev.sigpid, pca->dev.sigval, (FAR void *)bits); + ret = sigqueue(pca->dev.sigpid, pca->dev.sigval, + (FAR void *)bits); #endif - dbg("pca signal %04X (sig %d to pid %d)\n", - bits, pca->dev.sigval, pca->dev.sigpid); - } - else - { - dbg("no handler registered\n"); + } } - /* Re-enable */ + /* Re-enable interrupts */ pca->config->enable(pca->config, TRUE); } @@ -642,15 +636,20 @@ static int pca9555_interrupt(int irq, FAR void *context) * a good thing to do in any event. */ - DEBUGASSERT(work_available(&pca->dev.work)); - /* Notice that further GPIO interrupts are disabled until the work is * actually performed. This is to prevent overrun of the worker thread. - * Interrupts are re-enabled in pca9555_irqworker() when the work is completed. + * Interrupts are re-enabled in pca9555_irqworker() when the work is + * completed. */ - pca->config->enable(pca->config, FALSE); - return work_queue(HPWORK, &pca->dev.work, pca9555_irqworker, (FAR void *)pca, 0); + if (work_available(&pca->dev.work)) + { + pca->config->enable(pca->config, FALSE); + work_queue(HPWORK, &pca->dev.work, pca9555_irqworker, + (FAR void *)pca, 0); + } + + return OK; } #endif -- GitLab From 363169339bfbd12bd1513eb94a2102d50f472645 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 20 Apr 2016 13:10:09 -0600 Subject: [PATCH 061/307] VNC: Fix error in message header size calculation; Add logic to try copy with pixel format changes. --- graphics/vnc/server/vnc_server.h | 4 +-- graphics/vnc/server/vnc_updater.c | 52 +++++++++++++++++++++---------- include/nuttx/video/rfb.h | 4 +-- 3 files changed, 40 insertions(+), 20 deletions(-) diff --git a/graphics/vnc/server/vnc_server.h b/graphics/vnc/server/vnc_server.h index feffc55d63..e45b5563e2 100644 --- a/graphics/vnc/server/vnc_server.h +++ b/graphics/vnc/server/vnc_server.h @@ -208,8 +208,8 @@ struct vnc_session_s /* Display geometry and color characteristics */ uint8_t display; /* Display number (for debug) */ - uint8_t colorfmt; /* Remote color format (See include/nuttx/fb.h) */ - uint8_t bpp; /* Remote bits per pixel */ + volatile uint8_t colorfmt; /* Remote color format (See include/nuttx/fb.h) */ + volatile uint8_t bpp; /* Remote bits per pixel */ FAR uint8_t *fb; /* Allocated local frame buffer */ /* Updater information */ diff --git a/graphics/vnc/server/vnc_updater.c b/graphics/vnc/server/vnc_updater.c index 5a52b6b86c..ab2fb20083 100644 --- a/graphics/vnc/server/vnc_updater.c +++ b/graphics/vnc/server/vnc_updater.c @@ -759,6 +759,7 @@ static FAR void *vnc_updater(FAR void *arg) unsigned int maxwidth; size_t size; ssize_t nsent; + uint8_t colorfmt; union { @@ -795,7 +796,8 @@ static FAR void *vnc_updater(FAR void *arg) /* Set up the color conversion */ - switch (session->colorfmt) + colorfmt = session->colorfmt; + switch (colorfmt) { case FB_FMT_RGB8_222: convert.bpp8 = vnc_convert_rgb8_222; @@ -854,10 +856,13 @@ static FAR void *vnc_updater(FAR void *arg) * Loop until all sub-rectangles have been output. Start with the * top row and transfer rectangles horizontally across each swath. * The height of the swath is destwidth (the last may be shorter). + * + * NOTE that the loop also terminates of the color format changes + * asynchronously. */ for (y = srcrect->rect.pt1.y; - srcheight > 0; + srcheight > 0 && colorfmt == session->colorfmt; srcheight -= updheight, y += updheight) { /* updheight = Height to update on this pass through the loop. @@ -876,10 +881,13 @@ static FAR void *vnc_updater(FAR void *arg) * horizontally with width of destwidth until all srcwidth * columns have been transferred (the last rectangle may be * narrower). + * + * NOTE that the loop also terminates of the color format + * changes asynchronously. */ for (width = srcwidth, x = srcrect->rect.pt1.x; - width > 0; + width > 0 && colorfmt == session->colorfmt; width -= updwidth, x += updwidth) { /* updwidth = Width to update on this pass through the loop. @@ -928,26 +936,38 @@ static FAR void *vnc_updater(FAR void *arg) DEBUGASSERT(size <= CONFIG_VNCSERVER_UPDATE_BUFSIZE); - /* Then send the update packet to the VNC client */ + /* We are ready to send the update packet to the VNC client */ - size += SIZEOF_RFB_FRAMEBUFFERUPDATE_S(0); + size += SIZEOF_RFB_FRAMEBUFFERUPDATE_S(SIZEOF_RFB_RECTANGE_S(0)); src = session->outbuf; - do + /* At the very last most, make certain that the color format + * has not changed asynchronously. + */ + + if (colorfmt == session->colorfmt) { - nsent = psock_send(&session->connect, src, size, 0); - if (nsent < 0) + /* Okay send until all of the bytes are out. This may + * loop for the case where TCP write buffering is enabled + * and there are a limited number of IOBs available. + */ + + do { - gdbg("ERROR: Send FrameBufferUpdate failed: %d\n", - get_errno()); - goto errout; + nsent = psock_send(&session->connect, src, size, 0); + if (nsent < 0) + { + gdbg("ERROR: Send FrameBufferUpdate failed: %d\n", + get_errno()); + goto errout; + } + + DEBUGASSERT(nsent <= size); + src += nsent; + size -= nsent; } - - DEBUGASSERT(nsent <= size); - src += nsent; - size -= nsent; + while (size > 0); } - while (size > 0); } } diff --git a/include/nuttx/video/rfb.h b/include/nuttx/video/rfb.h index b53facffce..5a2b2aa018 100644 --- a/include/nuttx/video/rfb.h +++ b/include/nuttx/video/rfb.h @@ -547,8 +547,8 @@ struct rfb_rectangle_s uint8_t data[1]; /* Pixel data, actual size varies */ }; -#define SIZEOF_RFB_RECTANGES(d) \ - (sizeof(struct rfb_framebufferupdate_s) + (d) - 1) +#define SIZEOF_RFB_RECTANGE_S(d) \ + (sizeof(struct rfb_rectangle_s) + (d) - 1) struct rfb_framebufferupdate_s { -- GitLab From cf6e791134f4861e080b74f61226cbe56b864d6a Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 20 Apr 2016 14:05:32 -0600 Subject: [PATCH 062/307] VNC: Repartition some function in preparation for supporting other encoding types --- graphics/vnc/server/Make.defs | 3 +- graphics/vnc/server/vnc_color.c | 197 +++++++++ graphics/vnc/server/vnc_raw.c | 462 +++++++++++++++++++++ graphics/vnc/server/vnc_server.h | 58 +++ graphics/vnc/server/vnc_updater.c | 653 +----------------------------- 5 files changed, 729 insertions(+), 644 deletions(-) create mode 100644 graphics/vnc/server/vnc_color.c create mode 100644 graphics/vnc/server/vnc_raw.c diff --git a/graphics/vnc/server/Make.defs b/graphics/vnc/server/Make.defs index 263be54df6..c1b9390ca0 100644 --- a/graphics/vnc/server/Make.defs +++ b/graphics/vnc/server/Make.defs @@ -35,7 +35,8 @@ ifeq ($(CONFIG_VNCSERVER),y) -CSRCS += vnc_server.c vnc_negotiate.c vnc_updater.c vnc_receiver.c vnc_fbdev.c +CSRCS += vnc_server.c vnc_negotiate.c vnc_updater.c vnc_receiver.c +CSRCS += vnc_raw.c vnc_color.c vnc_fbdev.c ifeq ($(CONFIG_NX_KBD),y) CSRCS += vnc_keymap.c diff --git a/graphics/vnc/server/vnc_color.c b/graphics/vnc/server/vnc_color.c new file mode 100644 index 0000000000..eba85ba744 --- /dev/null +++ b/graphics/vnc/server/vnc_color.c @@ -0,0 +1,197 @@ +/**************************************************************************** + * graphics/vnc/vnc_color.c + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include + +#include + +#include "vnc_server.h" + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: vnc_convert_rgbNN + * + * Description: + * Convert the native framebuffer color format (either RGB16 5:6:5 or RGB32 + * 8:8:8) to the remote framebuffer color format (either RGB16 5:6:5, + * RGB16 5:5:5, or RGB32 8:8:) + * + * Input Parameters: + * pixel - The src color in local framebuffer format. + * + * Returned Value: + * The pixel in the remote framebuffer color format. + * + ****************************************************************************/ + +#if defined(CONFIG_VNCSERVER_COLORFMT_RGB16) + +uint8_t vnc_convert_rgb8_222(lfb_color_t rgb) +{ + /* 111111 + * 54321098 76543210 + * ----------------- + * RRRRRGGG GGGBBBBB + * ..RRGGBB + */ + + return (uint8_t)(((rgb >> 10) & 0x0030) | + ((rgb >> 7) & 0x000c) | + ((rgb >> 3) & 0x0003)); +} + +uint8_t vnc_convert_rgb8_332(lfb_color_t rgb) +{ + /* 111111 + * 54321098 76543210 + * ----------------- + * RRRRRGGG GGGBBBBB + * RRRGGGBB + */ + + return (uint8_t)(((rgb >> 8) & 0x0070) | + ((rgb >> 6) & 0x001c) | + ((rgb >> 3) & 0x0003)); +} + +uint16_t vnc_convert_rgb16_555(lfb_color_t rgb) +{ + /* 111111 + * 54321098 76543210 + * ----------------- + * RRRRRGGG GGGBBBBB + * .RRRRRGG GGGBBBBB + */ + + return (((rgb >> 1) & ~0x1f) | (rgb & 0x1f)); +} + +uint16_t vnc_convert_rgb16_565(lfb_color_t rgb) +{ + /* Identity mapping */ + + return rgb; +} + +uint32_t vnc_convert_rgb32_888(lfb_color_t rgb) +{ + /* 33222222 22221111 111111 + * 10987654 32109876 54321098 76543210 + * ---------------------------------- + * RRRRRGGG GGGBBBBB + * RRRRR... GGGGGG.. BBBBB... + */ + + return (((uint32_t)rgb << 8) & 0x00f80000) | + (((uint32_t)rgb << 6) & 0x0000fc00) | + (((uint32_t)rgb << 3) & 0x000000f8); +} + +#elif defined(CONFIG_VNCSERVER_COLORFMT_RGB32) + +uint8_t vnc_convert_rgb8_222(lfb_color_t rgb) +{ + /* 33222222 22221111 111111 + * 10987654 32109876 54321098 76543210 + * ----------------------------------- + * RRRRRRRR GGGGGGGG BBBBBBBB + * ..RRGGBB + */ + + return (uint8_t)(((rgb >> 18) & 0x0030) | + ((rgb >> 12) & 0x000c) | + (rgb >> 6) & 0x0003)); +} + +uint8_t vnc_convert_rgb8_332(lfb_color_t rgb) +{ + /* 33222222 22221111 111111 + * 10987654 32109876 54321098 76543210 + * ----------------------------------- + * RRRRRRRR GGGGGGGG BBBBBBBB + * RRRGGGBB + */ + + return (uint8_t)(((rgb >> 16) & 0x0070) | + ((rgb >> 11) & 0x001c) | + (rgb >> 6) & 0x0003)); +} + +uint16_t vnc_convert_rgb16_555(lfb_color_t rgb) +{ + /* 33222222 22221111 111111 + * 10987654 32109876 54321098 76543210 + * ----------------------------------- + * RRRRRRRR GGGGGGGG BBBBBBBB + * .RRRRRGG GGGBBBBB + */ + + return (uint16_t) + (((rgb >> 9) & 0x00007c00) | + ((rgb >> 6) & 0x000003e0) | + ((rgb >> 3) & 0x0000001f)); +} + +uint16_t vnc_convert_rgb16_565(lfb_color_t rgb) +{ + /* 33222222 22221111 111111 + * 10987654 32109876 54321098 76543210 + * ----------------------------------- + * RRRRRRRR GGGGGGGG BBBBBBBB + * RRRRRGGG GGGBBBBB + */ + + return (uint16_t) + (((rgb >> 8) & 0x0000f800) | + ((rgb >> 5) & 0x000007e0) | + ((rgb >> 3) & 0x0000001f)); +} + +uint32_t vnc_convert_rgb32_888(lfb_color_t rgb) +{ + /* Identity mapping */ + + return rgb; +} +#else +# error Unspecified/unsupported color format +#endif diff --git a/graphics/vnc/server/vnc_raw.c b/graphics/vnc/server/vnc_raw.c new file mode 100644 index 0000000000..ef833f2f90 --- /dev/null +++ b/graphics/vnc/server/vnc_raw.c @@ -0,0 +1,462 @@ +/**************************************************************************** + * graphics/vnc/vnc_raw.c + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include + +#include +#include +#include +#include + +#include "vnc_server.h" + +/**************************************************************************** + * Private Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: vnc_copy8 + * + * Description: + * Copy a 16/32-bit pixels from the source rectangle to a 8-bit pixel + * destination rectangle. + * + * Input Parameters: + * session - A reference to the VNC session structure. + * row,col - The upper left X/Y (pixel/row) position of the rectangle + * width,height - The width (pixels) and height (rows of the rectangle) + * convert - The function to use to convert from the local framebuffer + * color format to the remote framebuffer color format. + * + * Returned Value: + * The size of the transfer in bytes. + * + ****************************************************************************/ + +static size_t vnc_copy8(FAR struct vnc_session_s *session, + nxgl_coord_t row, nxgl_coord_t col, + nxgl_coord_t height, nxgl_coord_t width, + vnc_convert8_t convert) +{ + FAR struct rfb_framebufferupdate_s *update; + FAR const uint16_t *srcleft; + FAR const lfb_color_t *src; + FAR uint8_t *dest; + nxgl_coord_t x; + nxgl_coord_t y; + + /* Destination rectangle start address */ + + update = (FAR struct rfb_framebufferupdate_s *)session->outbuf; + dest = (FAR uint8_t *)update->rect[0].data; + + /* Source rectangle start address (left/top)*/ + + srcleft = (FAR lfb_color_t *) + (session->fb + RFB_STRIDE * row + RFB_BYTESPERPIXEL * col); + + /* Transfer each row from the source buffer into the update buffer */ + + for (y = 0; y < height; y++) + { + src = srcleft; + for (x = 0; x < width; x++) + { + *dest++ = convert(*src); + src++; + } + + srcleft = (FAR lfb_color_t *)((uintptr_t)srcleft + RFB_STRIDE); + } + + return (size_t)((uintptr_t)dest - (uintptr_t)update->rect[0].data); +} + +/**************************************************************************** + * Name: vnc_copy16 + * + * Description: + * Copy a 16/32-bit pixels from the source rectangle to a 16-bit pixel + * destination rectangle. + * + * Input Parameters: + * session - A reference to the VNC session structure. + * row,col - The upper left X/Y (pixel/row) position of the rectangle + * width,height - The width (pixels) and height (rows of the rectangle) + * convert - The function to use to convert from the local framebuffer + * color format to the remote framebuffer color format. + * + * Returned Value: + * The size of the transfer in bytes. + * + ****************************************************************************/ + +static size_t vnc_copy16(FAR struct vnc_session_s *session, + nxgl_coord_t row, nxgl_coord_t col, + nxgl_coord_t height, nxgl_coord_t width, + vnc_convert16_t convert) +{ + FAR struct rfb_framebufferupdate_s *update; + FAR const uint16_t *srcleft; + FAR const lfb_color_t *src; + FAR uint16_t *dest; + nxgl_coord_t x; + nxgl_coord_t y; + + /* Destination rectangle start address */ + + update = (FAR struct rfb_framebufferupdate_s *)session->outbuf; + dest = (FAR lfb_color_t *)update->rect[0].data; + + /* Source rectangle start address (left/top)*/ + + srcleft = (FAR uint16_t *)(session->fb + RFB_STRIDE * row + RFB_BYTESPERPIXEL * col); + + /* Transfer each row from the source buffer into the update buffer */ + + for (y = 0; y < height; y++) + { + src = srcleft; + for (x = 0; x < width; x++) + { + *dest++ = convert(*src); + src++; + } + + srcleft = (FAR lfb_color_t *)((uintptr_t)srcleft + RFB_STRIDE); + } + + return (size_t)((uintptr_t)dest - (uintptr_t)update->rect[0].data); +} + +/**************************************************************************** + * Name: vnc_copy32 + * + * Description: + * Copy a 16/32-bit pixels from the source rectangle to a 32-bit pixel + * destination rectangle. + * + * Input Parameters: + * session - A reference to the VNC session structure. + * row,col - The upper left X/Y (pixel/row) position of the rectangle + * width,height - The width (pixels) and height (rows of the rectangle) + * convert - The function to use to convert from the local framebuffer + * color format to the remote framebuffer color format. + * + * Returned Value: + * The size of the transfer in bytes. + * + ****************************************************************************/ + +static size_t vnc_copy32(FAR struct vnc_session_s *session, + nxgl_coord_t row, nxgl_coord_t col, + nxgl_coord_t height, nxgl_coord_t width, + vnc_convert32_t convert) +{ + FAR struct rfb_framebufferupdate_s *update; + FAR const uint16_t *srcleft; + FAR const lfb_color_t *src; + FAR uint32_t *dest; + nxgl_coord_t x; + nxgl_coord_t y; + + /* Destination rectangle start address */ + + update = (FAR struct rfb_framebufferupdate_s *)session->outbuf; + dest = (FAR uint32_t *)update->rect[0].data; + + /* Source rectangle start address (left/top)*/ + + srcleft = (FAR lfb_color_t *)(session->fb + RFB_STRIDE * row + RFB_BYTESPERPIXEL * col); + + /* Transfer each row from the source buffer into the update buffer */ + + for (y = 0; y < height; y++) + { + src = srcleft; + for (x = 0; x < width; x++) + { + *dest++ = convert(*src); + src++; + } + + srcleft = (FAR lfb_color_t *)((uintptr_t)srcleft + RFB_STRIDE); + } + + return (size_t)((uintptr_t)srcleft - (uintptr_t)update->rect[0].data); +} + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: vnc_raw + * + * Description: + * As a fallback, send the framebuffer update using the RAW encoding which + * must be supported by all VNC clients. + * + * Input Parameters: + * pixel - The src color in local framebuffer format. + * rect - Describes the rectangle in the local framebuffer. + * + * Returned Value: + * Zero (OK) on success; A negated errno value is returned on failure that + * indicates the the natture of the failure. A failure is only returned + * in cases of a network failure and unexpected internal failures. + * + ****************************************************************************/ + +int vnc_raw(FAR struct vnc_session_s *session, FAR struct nxgl_rect_s *rect) +{ + FAR struct rfb_framebufferupdate_s *update; + FAR const uint8_t *src; + nxgl_coord_t srcwidth; + nxgl_coord_t srcheight; + nxgl_coord_t destwidth; + nxgl_coord_t destheight; + nxgl_coord_t deststride; + nxgl_coord_t updwidth; + nxgl_coord_t updheight; + nxgl_coord_t width; + nxgl_coord_t x; + nxgl_coord_t y; + unsigned int bytesperpixel; + unsigned int maxwidth; + size_t size; + ssize_t nsent; + uint8_t colorfmt; + + union + { + vnc_convert8_t bpp8; + vnc_convert16_t bpp16; + vnc_convert32_t bpp32; + } convert; + + /* Set up characteristics of the client pixel format to use on this + * update. These can change at any time if a SetPixelFormat is + * received asynchronously. + */ + + bytesperpixel = (session->bpp + 7) >> 3; + maxwidth = CONFIG_VNCSERVER_UPDATE_BUFSIZE / bytesperpixel; + + /* Set up the color conversion */ + + colorfmt = session->colorfmt; + switch (colorfmt) + { + case FB_FMT_RGB8_222: + convert.bpp8 = vnc_convert_rgb8_222; + break; + + case FB_FMT_RGB8_332: + convert.bpp8 = vnc_convert_rgb8_332; + break; + + case FB_FMT_RGB16_555: + convert.bpp16 = vnc_convert_rgb16_555; + break; + + case FB_FMT_RGB16_565: + convert.bpp16 = vnc_convert_rgb16_565; + break; + + case FB_FMT_RGB32: + convert.bpp32 = vnc_convert_rgb32_888; + break; + + default: + gdbg("ERROR: Unrecognized color format: %d\n", session->colorfmt); + return -EINVAL; + } + + /* Get with width and height of the source and destination rectangles. + * The source rectangle many be larger than the destination rectangle. + * In that case, we will have to emit multiple rectangles. + */ + + DEBUGASSERT(rect->pt1.x <= rect->pt2.x); + srcwidth = rect->pt2.x - rect->pt1.x + 1; + + DEBUGASSERT(rect->pt1.y <= rect->pt2.y); + srcheight = rect->pt2.y - rect->pt1.y + 1; + + deststride = srcwidth * bytesperpixel; + if (deststride > maxwidth) + { + deststride = maxwidth; + } + + destwidth = deststride / bytesperpixel; + destheight = CONFIG_VNCSERVER_UPDATE_BUFSIZE / deststride; + + if (destheight > srcheight) + { + destheight = srcheight; + } + + /* Format the rectangle header. We may have to send several update + * messages if the pre-allocated outbuf is smaller than the rectangle. + * Each update contains a small "sub-rectangle" of the origin update. + * + * Loop until all sub-rectangles have been output. Start with the + * top row and transfer rectangles horizontally across each swath. + * The height of the swath is destwidth (the last may be shorter). + * + * NOTE that the loop also terminates of the color format changes + * asynchronously. + */ + + for (y = rect->pt1.y; + srcheight > 0 && colorfmt == session->colorfmt; + srcheight -= updheight, y += updheight) + { + /* updheight = Height to update on this pass through the loop. + * This will be destheight unless fewer than that number of rows + * remain. + */ + + updheight = destheight; + if (updheight > srcheight) + { + updheight = srcheight; + } + + /* Loop until this horizontal swath has sent to the VNC client. + * Start with the leftmost pixel and transfer rectangles + * horizontally with width of destwidth until all srcwidth + * columns have been transferred (the last rectangle may be + * narrower). + * + * NOTE that the loop also terminates of the color format + * changes asynchronously. + */ + + for (width = srcwidth, x = rect->pt1.x; + width > 0 && colorfmt == session->colorfmt; + width -= updwidth, x += updwidth) + { + /* updwidth = Width to update on this pass through the loop. + * This will be destwidth unless fewer than that number of + * columns remain. + */ + + updwidth = destwidth; + if (updwidth > width) + { + updwidth = width; + } + + /* Transfer the frame buffer data into the rectangle, + * performing the necessary color conversions. + */ + + if (bytesperpixel == 1) + { + size = vnc_copy8(session, y, x, updheight, updwidth, + convert.bpp8); + } + else if (bytesperpixel == 2) + { + size = vnc_copy16(session, y, x, updheight, updwidth, + convert.bpp16); + } + else /* bytesperpixel == 4 */ + { + size = vnc_copy32(session, y, x, updheight, updwidth, + convert.bpp32); + } + + /* Format the FramebufferUpdate message */ + + update = (FAR struct rfb_framebufferupdate_s *)session->outbuf; + update->msgtype = RFB_FBUPDATE_MSG; + update->padding = 0; + rfb_putbe16(update->nrect, 1); + + rfb_putbe16(update->rect[0].xpos, x); + rfb_putbe16(update->rect[0].ypos, y); + rfb_putbe16(update->rect[0].width, updwidth); + rfb_putbe16(update->rect[0].height, updheight); + rfb_putbe32(update->rect[0].encoding, RFB_ENCODING_RAW); + + DEBUGASSERT(size <= CONFIG_VNCSERVER_UPDATE_BUFSIZE); + + /* We are ready to send the update packet to the VNC client */ + + size += SIZEOF_RFB_FRAMEBUFFERUPDATE_S(SIZEOF_RFB_RECTANGE_S(0)); + src = session->outbuf; + + /* At the very last most, make certain that the color format + * has not changed asynchronously. + */ + + if (colorfmt == session->colorfmt) + { + /* Okay send until all of the bytes are out. This may + * loop for the case where TCP write buffering is enabled + * and there are a limited number of IOBs available. + */ + + do + { + nsent = psock_send(&session->connect, src, size, 0); + if (nsent < 0) + { + int errcode = get_errno(); + gdbg("ERROR: Send FrameBufferUpdate failed: %d\n", + errcode); + DEBUGASSERT(errcode > 0); + return -errcode; + } + + DEBUGASSERT(nsent <= size); + src += nsent; + size -= nsent; + } + while (size > 0); + } + } + } + + return OK; +} \ No newline at end of file diff --git a/graphics/vnc/server/vnc_server.h b/graphics/vnc/server/vnc_server.h index e45b5563e2..e26ee7601d 100644 --- a/graphics/vnc/server/vnc_server.h +++ b/graphics/vnc/server/vnc_server.h @@ -240,6 +240,22 @@ struct fb_startup_s int16_t result; /* OK: successfully initialized */ }; +/* The size of the color type in the local framebuffer */ + +#if defined(CONFIG_VNCSERVER_COLORFMT_RGB16) +typedef uint16_t lfb_color_t; +#elif defined(CONFIG_VNCSERVER_COLORFMT_RGB32) +typedef uint32_t lfb_color_t; +#else +# error Unspecified/unsupported color format +#endif + +/* Color conversion function pointer types */ + +typedef CODE uint8_t (*vnc_convert8_t) (lfb_color_t rgb); +typedef CODE uint16_t (*vnc_convert16_t)(lfb_color_t rgb); +typedef CODE uint32_t (*vnc_convert32_t)(lfb_color_t rgb); + /**************************************************************************** * Public Data ****************************************************************************/ @@ -388,6 +404,26 @@ int vnc_update_rectangle(FAR struct vnc_session_s *session, int vnc_receiver(FAR struct vnc_session_s *session); +/**************************************************************************** + * Name: vnc_raw + * + * Description: + * As a fallback, send the framebuffer update using the RAW encoding which + * must be supported by all VNC clients. + * + * Input Parameters: + * pixel - The src color in local framebuffer format. + * rect - Describes the rectangle in the local framebuffer. + * + * Returned Value: + * Zero (OK) on success; A negated errno value is returned on failure that + * indicates the the natture of the failure. A failure is only returned + * in cases of a network failure and unexpected internal failures. + * + ****************************************************************************/ + +int vnc_raw(FAR struct vnc_session_s *session, FAR struct nxgl_rect_s *rect); + /**************************************************************************** * Name: vnc_key_map * @@ -428,6 +464,28 @@ void vnc_key_map(FAR struct vnc_session_s *session, uint16_t keysym, FAR struct vnc_session_s *vnc_find_session(int display); +/**************************************************************************** + * Name: vnc_convert_rgbNN + * + * Description: + * Convert the native framebuffer color format (either RGB16 5:6:5 or RGB32 + * 8:8:8) to the remote framebuffer color format (either RGB16 5:6:5, + * RGB16 5:5:5, or RGB32 8:8:) + * + * Input Parameters: + * rgb - The RGB src color in local framebuffer color format. + * + * Returned Value: + * The pixel in the remote framebuffer color format. + * + ****************************************************************************/ + +uint8_t vnc_convert_rgb8_222(lfb_color_t rgb); +uint8_t vnc_convert_rgb8_332(lfb_color_t rgb); +uint16_t vnc_convert_rgb16_555(lfb_color_t rgb); +uint16_t vnc_convert_rgb16_565(lfb_color_t rgb); +uint32_t vnc_convert_rgb32_888(lfb_color_t rgb); + #undef EXTERN #ifdef __cplusplus } diff --git a/graphics/vnc/server/vnc_updater.c b/graphics/vnc/server/vnc_updater.c index ab2fb20083..6a9d1f0e19 100644 --- a/graphics/vnc/server/vnc_updater.c +++ b/graphics/vnc/server/vnc_updater.c @@ -39,16 +39,14 @@ #include +#include #include #include -#include #include #include #include #include -#include - #include "vnc_server.h" /**************************************************************************** @@ -57,24 +55,6 @@ #undef VNCSERVER_SEM_DEBUG -/**************************************************************************** - * Private Types - ****************************************************************************/ - -/* Color conversion functions */ - -#if defined(CONFIG_VNCSERVER_COLORFMT_RGB16) -typedef CODE uint8_t(*vnc_convert8_t)(uint16_t rgb); -typedef CODE uint16_t(*vnc_convert16_t)(uint16_t rgb); -typedef CODE uint32_t(*vnc_convert32_t)(uint16_t rgb); -#elif defined(CONFIG_VNCSERVER_COLORFMT_RGB32) -typedef CODE uint8_t(*vnc_convert8_t)(uint32_t rgb); -typedef CODE uint16_t(*vnc_convert16_t)(uint32_t rgb); -typedef CODE uint32_t(*vnc_convert32_t)(uint32_t rgb); -#else -# error Unspecified/unsupported color format -#endif - /**************************************************************************** * Private Data ****************************************************************************/ @@ -306,424 +286,6 @@ static void vnc_add_queue(FAR struct vnc_session_s *session, sched_unlock(); } -/**************************************************************************** - * Name: vnc_convert_rgbNN - * - * Description: - * Convert the native framebuffer color format (either RGB16 5:6:5 or RGB32 - * 8:8:8) to the remote framebuffer color format (either RGB16 5:6:5, - * RGB16 5:5:5, or RGB32 8:8:) - * - * Input Parameters: - * pixel - The src color in local framebuffer format. - * - * Returned Value: - * The pixel in the remote framebuffer color format. - * - ****************************************************************************/ - -#if defined(CONFIG_VNCSERVER_COLORFMT_RGB16) - -uint8_t vnc_convert_rgb8_222(uint16_t rgb) -{ - /* 111111 - * 54321098 76543210 - * ----------------- - * RRRRRGGG GGGBBBBB - * ..RRGGBB - */ - - return (uint8_t)(((rgb >> 10) & 0x0030) | - ((rgb >> 7) & 0x000c) | - ((rgb >> 3) & 0x0003)); -} - -uint8_t vnc_convert_rgb8_332(uint16_t rgb) -{ - /* 111111 - * 54321098 76543210 - * ----------------- - * RRRRRGGG GGGBBBBB - * RRRGGGBB - */ - - return (uint8_t)(((rgb >> 8) & 0x0070) | - ((rgb >> 6) & 0x001c) | - ((rgb >> 3) & 0x0003)); -} - -uint16_t vnc_convert_rgb16_555(uint16_t rgb) -{ - /* 111111 - * 54321098 76543210 - * ----------------- - * RRRRRGGG GGGBBBBB - * .RRRRRGG GGGBBBBB - */ - - return (((rgb >> 1) & ~0x1f) | (rgb & 0x1f)); -} - -uint16_t vnc_convert_rgb16_565(uint16_t rgb) -{ - /* Identity mapping */ - - return rgb; -} - -uint32_t vnc_convert_rgb32_888(uint16_t rgb) -{ - /* 33222222 22221111 111111 - * 10987654 32109876 54321098 76543210 - * ---------------------------------- - * RRRRRGGG GGGBBBBB - * RRRRR... GGGGGG.. BBBBB... - */ - - return (((uint32_t)rgb << 8) & 0x00f80000) | - (((uint32_t)rgb << 6) & 0x0000fc00) | - (((uint32_t)rgb << 3) & 0x000000f8); -} - -#elif defined(CONFIG_VNCSERVER_COLORFMT_RGB32) -uint8_t vnc_convert_rgb8_222(uint16_t rgb) -{ - /* 33222222 22221111 111111 - * 10987654 32109876 54321098 76543210 - * ----------------------------------- - * RRRRRRRR GGGGGGGG BBBBBBBB - * ..RRGGBB - */ - - return (uint8_t)(((rgb >> 18) & 0x0030) | - ((rgb >> 12) & 0x000c) | - (rgb >> 6) & 0x0003)); -} - -uint8_t vnc_convert_rgb8_332(uint16_t rgb) -{ - /* 33222222 22221111 111111 - * 10987654 32109876 54321098 76543210 - * ----------------------------------- - * RRRRRRRR GGGGGGGG BBBBBBBB - * RRRGGGBB - */ - - return (uint8_t)(((rgb >> 16) & 0x0070) | - ((rgb >> 11) & 0x001c) | - (rgb >> 6) & 0x0003)); -} - -uint16_t vnc_convert_rgb16_555(uint32_t rgb) -{ - /* 33222222 22221111 111111 - * 10987654 32109876 54321098 76543210 - * ----------------------------------- - * RRRRRRRR GGGGGGGG BBBBBBBB - * .RRRRRGG GGGBBBBB - */ - - return (uint16_t) - (((rgb >> 9) & 0x00007c00) | - ((rgb >> 6) & 0x000003e0) | - ((rgb >> 3) & 0x0000001f)); -} - -uint16_t vnc_convert_rgb16_565(uint32_t rgb) -{ - /* 33222222 22221111 111111 - * 10987654 32109876 54321098 76543210 - * ----------------------------------- - * RRRRRRRR GGGGGGGG BBBBBBBB - * RRRRRGGG GGGBBBBB - */ - - return (uint16_t) - (((rgb >> 8) & 0x0000f800) | - ((rgb >> 5) & 0x000007e0) | - ((rgb >> 3) & 0x0000001f)); -} - -uint32_t vnc_convert_rgb32_888(uint32_t rgb) -{ - /* Identity mapping */ - - return rgb; -} -#else -# error Unspecified/unsupported color format -#endif - -/**************************************************************************** - * Name: vnc_copy8 - * - * Description: - * Copy a 16/32-bit pixels from the source rectangle to a 8-bit pixel - * destination rectangle. - * - * Input Parameters: - * session - A reference to the VNC session structure. - * row,col - The upper left X/Y (pixel/row) position of the rectangle - * width,height - The width (pixels) and height (rows of the rectangle) - * convert - The function to use to convert from the local framebuffer - * color format to the remote framebuffer color format. - * - * Returned Value: - * The size of the transfer in bytes. - * - ****************************************************************************/ - -static size_t vnc_copy8(FAR struct vnc_session_s *session, - nxgl_coord_t row, nxgl_coord_t col, - nxgl_coord_t height, nxgl_coord_t width, - vnc_convert8_t convert) -{ -#if defined(CONFIG_VNCSERVER_COLORFMT_RGB16) - FAR struct rfb_framebufferupdate_s *update; - FAR const uint16_t *srcleft; - FAR const uint16_t *src; - FAR uint8_t *dest; - nxgl_coord_t x; - nxgl_coord_t y; - - /* Destination rectangle start address */ - - update = (FAR struct rfb_framebufferupdate_s *)session->outbuf; - dest = (FAR uint8_t *)update->rect[0].data; - - /* Source rectangle start address (left/top)*/ - - srcleft = (FAR uint16_t *)(session->fb + RFB_STRIDE * row + RFB_BYTESPERPIXEL * col); - - /* Transfer each row from the source buffer into the update buffer */ - - for (y = 0; y < height; y++) - { - src = srcleft; - for (x = 0; x < width; x++) - { - *dest++ = convert(*src); - src++; - } - - srcleft = (FAR uint16_t *)((uintptr_t)srcleft + RFB_STRIDE); - } - - return (size_t)((uintptr_t)dest - (uintptr_t)update->rect[0].data); - -#elif defined(CONFIG_VNCSERVER_COLORFMT_RGB32) - FAR struct rfb_framebufferupdate_s *update; - FAR const uint32_t *srcleft; - FAR const uint32_t *src; - FAR uint8_t *dest; - nxgl_coord_t x; - nxgl_coord_t y; - - /* Destination rectangle start address */ - - update = (FAR struct rfb_framebufferupdate_s *)session->outbuf; - dest = (FAR uint8_t *)update->rect[0].data; - - /* Source rectangle start address */ - - srcleft = (FAR uint32_t *)(session->fb + RFB_STRIDE * row + RFB_BYTESPERPIXEL * col); - - for (y = 0; y < height; y++) - { - src = srcleft; - for (x = 0; x < width; x++) - { - *dest++ = convert(*src); - src++; - } - - srcleft = (FAR uint32_t *)((uintptr_t)srcleft + RFB_STRIDE); - } - - return (size_t)((uintptr_t)dest - (uintptr_t)update->rect[0].data); -#endif -} - -/**************************************************************************** - * Name: vnc_copy16 - * - * Description: - * Copy a 16/32-bit pixels from the source rectangle to a 16-bit pixel - * destination rectangle. - * - * Input Parameters: - * session - A reference to the VNC session structure. - * row,col - The upper left X/Y (pixel/row) position of the rectangle - * width,height - The width (pixels) and height (rows of the rectangle) - * convert - The function to use to convert from the local framebuffer - * color format to the remote framebuffer color format. - * - * Returned Value: - * The size of the transfer in bytes. - * - ****************************************************************************/ - -static size_t vnc_copy16(FAR struct vnc_session_s *session, - nxgl_coord_t row, nxgl_coord_t col, - nxgl_coord_t height, nxgl_coord_t width, - vnc_convert16_t convert) -{ -#if defined(CONFIG_VNCSERVER_COLORFMT_RGB16) - FAR struct rfb_framebufferupdate_s *update; - FAR const uint16_t *srcleft; - FAR const uint16_t *src; - FAR uint16_t *dest; - nxgl_coord_t x; - nxgl_coord_t y; - - /* Destination rectangle start address */ - - update = (FAR struct rfb_framebufferupdate_s *)session->outbuf; - dest = (FAR uint16_t *)update->rect[0].data; - - /* Source rectangle start address (left/top)*/ - - srcleft = (FAR uint16_t *)(session->fb + RFB_STRIDE * row + RFB_BYTESPERPIXEL * col); - - /* Transfer each row from the source buffer into the update buffer */ - - for (y = 0; y < height; y++) - { - src = srcleft; - for (x = 0; x < width; x++) - { - *dest++ = convert(*src); - src++; - } - - srcleft = (FAR uint16_t *)((uintptr_t)srcleft + RFB_STRIDE); - } - - return (size_t)((uintptr_t)dest - (uintptr_t)update->rect[0].data); - -#elif defined(CONFIG_VNCSERVER_COLORFMT_RGB32) - FAR struct rfb_framebufferupdate_s *update; - FAR const uint32_t *srcleft; - FAR const uint32_t *src; - FAR uint16_t *dest; - nxgl_coord_t x; - nxgl_coord_t y; - - /* Destination rectangle start address */ - - update = (FAR struct rfb_framebufferupdate_s *)session->outbuf; - dest = (FAR uint16_t *)update->rect[0].data; - - /* Source rectangle start address */ - - srcleft = (FAR uint32_t *)(session->fb + RFB_STRIDE * row + RFB_BYTESPERPIXEL * col); - - for (y = 0; y < height; y++) - { - src = srcleft; - for (x = 0; x < width; x++) - { - *dest++ = convert(*src); - src++; - } - - srcleft = (FAR uint32_t *)((uintptr_t)srcleft + RFB_STRIDE); - } - - return (size_t)((uintptr_t)dest - (uintptr_t)update->rect[0].data); -#endif -} - -/**************************************************************************** - * Name: vnc_copy32 - * - * Description: - * Copy a 16/32-bit pixels from the source rectangle to a 32-bit pixel - * destination rectangle. - * - * Input Parameters: - * session - A reference to the VNC session structure. - * row,col - The upper left X/Y (pixel/row) position of the rectangle - * width,height - The width (pixels) and height (rows of the rectangle) - * convert - The function to use to convert from the local framebuffer - * color format to the remote framebuffer color format. - * - * Returned Value: - * The size of the transfer in bytes. - * - ****************************************************************************/ - -static size_t vnc_copy32(FAR struct vnc_session_s *session, - nxgl_coord_t row, nxgl_coord_t col, - nxgl_coord_t height, nxgl_coord_t width, - vnc_convert32_t convert) -{ -#if defined(CONFIG_VNCSERVER_COLORFMT_RGB16) - FAR struct rfb_framebufferupdate_s *update; - FAR const uint16_t *srcleft; - FAR const uint16_t *src; - FAR uint32_t *dest; - nxgl_coord_t x; - nxgl_coord_t y; - - /* Destination rectangle start address */ - - update = (FAR struct rfb_framebufferupdate_s *)session->outbuf; - dest = (FAR uint32_t *)update->rect[0].data; - - /* Source rectangle start address (left/top)*/ - - srcleft = (FAR uint16_t *)(session->fb + RFB_STRIDE * row + RFB_BYTESPERPIXEL * col); - - /* Transfer each row from the source buffer into the update buffer */ - - for (y = 0; y < height; y++) - { - src = srcleft; - for (x = 0; x < width; x++) - { - *dest++ = convert(*src); - src++; - } - - srcleft = (FAR uint16_t *)((uintptr_t)srcleft + RFB_STRIDE); - } - - return (size_t)((uintptr_t)srcleft - (uintptr_t)update->rect[0].data); - -#elif defined(CONFIG_VNCSERVER_COLORFMT_RGB32) - FAR struct rfb_framebufferupdate_s *update; - FAR const uint32_t *srcleft; - FAR const uint32_t *src; - FAR uint32_t *dest; - nxgl_coord_t x; - nxgl_coord_t y; - - /* Destination rectangle start address */ - - update = (FAR struct rfb_framebufferupdate_s *)session->outbuf; - dest = (FAR uint32_t *)update->rect[0].data; - - /* Source rectangle start address */ - - srcleft = (FAR uint32_t *)(session->fb + RFB_STRIDE * row + RFB_BYTESPERPIXEL * col); - - for (y = 0; y < height; y++) - { - src = srcleft; - for (x = 0; x < width; x++) - { - *dest++ = convert(*src); - src++; - } - - srcleft = (FAR uint32_t *)((uintptr_t)srcleft + RFB_STRIDE); - } - - return (size_t)((uintptr_t)srcleft - (uintptr_t)update->rect[0].data); -#endif -} - /**************************************************************************** * Name: vnc_updater * @@ -742,31 +304,8 @@ static size_t vnc_copy32(FAR struct vnc_session_s *session, static FAR void *vnc_updater(FAR void *arg) { FAR struct vnc_session_s *session = (FAR struct vnc_session_s *)arg; - FAR struct rfb_framebufferupdate_s *update; FAR struct vnc_fbupdate_s *srcrect; - FAR const uint8_t *src; - nxgl_coord_t srcwidth; - nxgl_coord_t srcheight; - nxgl_coord_t destwidth; - nxgl_coord_t destheight; - nxgl_coord_t deststride; - nxgl_coord_t updwidth; - nxgl_coord_t updheight; - nxgl_coord_t width; - nxgl_coord_t x; - nxgl_coord_t y; - unsigned int bytesperpixel; - unsigned int maxwidth; - size_t size; - ssize_t nsent; - uint8_t colorfmt; - - union - { - vnc_convert8_t bpp8; - vnc_convert16_t bpp16; - vnc_convert32_t bpp32; - } convert; + int ret; DEBUGASSERT(session != NULL); gvdbg("Updater running for Display %d\n", session->display); @@ -786,195 +325,23 @@ static FAR void *vnc_updater(FAR void *arg) srcrect = vnc_remove_queue(session); DEBUGASSERT(srcrect != NULL); - /* Set up characteristics of the client pixel format to use on this - * update. These can change at any time if a SetPixelFormat is - * received asynchronously. - */ - - bytesperpixel = (session->bpp + 7) >> 3; - maxwidth = CONFIG_VNCSERVER_UPDATE_BUFSIZE / bytesperpixel; - - /* Set up the color conversion */ - - colorfmt = session->colorfmt; - switch (colorfmt) - { - case FB_FMT_RGB8_222: - convert.bpp8 = vnc_convert_rgb8_222; - break; - - case FB_FMT_RGB8_332: - convert.bpp8 = vnc_convert_rgb8_332; - break; - - case FB_FMT_RGB16_555: - convert.bpp16 = vnc_convert_rgb16_555; - break; - - case FB_FMT_RGB16_565: - convert.bpp16 = vnc_convert_rgb16_565; - break; - - case FB_FMT_RGB32: - convert.bpp32 = vnc_convert_rgb32_888; - break; - - default: - gdbg("ERROR: Unrecognized color format: %d\n", session->colorfmt); - goto errout; - } - - /* Get with width and height of the source and destination rectangles. - * The source rectangle many be larger than the destination rectangle. - * In that case, we will have to emit multiple rectangles. - */ - - DEBUGASSERT(srcrect->rect.pt1.x <= srcrect->rect.pt2.x); - srcwidth = srcrect->rect.pt2.x - srcrect->rect.pt1.x + 1; + /* Perform the framebuffer update using the RAW encoding */ - DEBUGASSERT(srcrect->rect.pt1.y <= srcrect->rect.pt2.y); - srcheight = srcrect->rect.pt2.y - srcrect->rect.pt1.y + 1; - - deststride = srcwidth * bytesperpixel; - if (deststride > maxwidth) - { - deststride = maxwidth; - } + ret = vnc_raw(session, &srcrect->rect); - destwidth = deststride / bytesperpixel; - destheight = CONFIG_VNCSERVER_UPDATE_BUFSIZE / deststride; + /* Release the update structure */ - if (destheight > srcheight) - { - destheight = srcheight; - } + vnc_free_update(session, srcrect); - /* Format the rectangle header. We may have to send several update - * messages if the pre-allocated outbuf is smaller than the rectangle. - * Each update contains a small "sub-rectangle" of the origin update. - * - * Loop until all sub-rectangles have been output. Start with the - * top row and transfer rectangles horizontally across each swath. - * The height of the swath is destwidth (the last may be shorter). - * - * NOTE that the loop also terminates of the color format changes - * asynchronously. - */ + /* Break out and terminate the server if the encoding failed */ - for (y = srcrect->rect.pt1.y; - srcheight > 0 && colorfmt == session->colorfmt; - srcheight -= updheight, y += updheight) + if (ret < 0) { - /* updheight = Height to update on this pass through the loop. - * This will be destheight unless fewer than that number of rows - * remain. - */ - - updheight = destheight; - if (updheight > srcheight) - { - updheight = srcheight; - } - - /* Loop until this horizontal swath has sent to the VNC client. - * Start with the leftmost pixel and transfer rectangles - * horizontally with width of destwidth until all srcwidth - * columns have been transferred (the last rectangle may be - * narrower). - * - * NOTE that the loop also terminates of the color format - * changes asynchronously. - */ - - for (width = srcwidth, x = srcrect->rect.pt1.x; - width > 0 && colorfmt == session->colorfmt; - width -= updwidth, x += updwidth) - { - /* updwidth = Width to update on this pass through the loop. - * This will be destwidth unless fewer than that number of - * columns remain. - */ - - updwidth = destwidth; - if (updwidth > width) - { - updwidth = width; - } - - /* Transfer the frame buffer data into the rectangle, - * performing the necessary color conversions. - */ - - if (bytesperpixel == 1) - { - size = vnc_copy8(session, y, x, updheight, updwidth, - convert.bpp8); - } - else if (bytesperpixel == 2) - { - size = vnc_copy16(session, y, x, updheight, updwidth, - convert.bpp16); - } - else /* bytesperpixel == 4 */ - { - size = vnc_copy32(session, y, x, updheight, updwidth, - convert.bpp32); - } - - /* Format the FramebufferUpdate message */ - - update = (FAR struct rfb_framebufferupdate_s *)session->outbuf; - update->msgtype = RFB_FBUPDATE_MSG; - update->padding = 0; - rfb_putbe16(update->nrect, 1); - - rfb_putbe16(update->rect[0].xpos, x); - rfb_putbe16(update->rect[0].ypos, y); - rfb_putbe16(update->rect[0].width, updwidth); - rfb_putbe16(update->rect[0].height, updheight); - rfb_putbe32(update->rect[0].encoding, RFB_ENCODING_RAW); - - DEBUGASSERT(size <= CONFIG_VNCSERVER_UPDATE_BUFSIZE); - - /* We are ready to send the update packet to the VNC client */ - - size += SIZEOF_RFB_FRAMEBUFFERUPDATE_S(SIZEOF_RFB_RECTANGE_S(0)); - src = session->outbuf; - - /* At the very last most, make certain that the color format - * has not changed asynchronously. - */ - - if (colorfmt == session->colorfmt) - { - /* Okay send until all of the bytes are out. This may - * loop for the case where TCP write buffering is enabled - * and there are a limited number of IOBs available. - */ - - do - { - nsent = psock_send(&session->connect, src, size, 0); - if (nsent < 0) - { - gdbg("ERROR: Send FrameBufferUpdate failed: %d\n", - get_errno()); - goto errout; - } - - DEBUGASSERT(nsent <= size); - src += nsent; - size -= nsent; - } - while (size > 0); - } - } + gdbg("ERROR: Encoding failed: %d\n", ret); + break; } - - vnc_free_update(session, srcrect); } -errout: session->state = VNCSERVER_STOPPED; return NULL; } -- GitLab From f8604d11a920e93a0078e4b4196bb5510396f1c6 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 20 Apr 2016 17:01:48 -0600 Subject: [PATCH 063/307] VNC: Add some very basic RRE encodings --- graphics/vnc/server/Make.defs | 2 +- graphics/vnc/server/vnc_color.c | 163 +++++++++++++++++++++++ graphics/vnc/server/vnc_negotiate.c | 30 ++++- graphics/vnc/server/vnc_raw.c | 14 +- graphics/vnc/server/vnc_receiver.c | 58 ++++++++- graphics/vnc/server/vnc_rre.c | 192 ++++++++++++++++++++++++++++ graphics/vnc/server/vnc_server.h | 75 ++++++++++- graphics/vnc/server/vnc_updater.c | 32 ++++- include/nuttx/video/rfb.h | 9 ++ 9 files changed, 554 insertions(+), 21 deletions(-) create mode 100644 graphics/vnc/server/vnc_rre.c diff --git a/graphics/vnc/server/Make.defs b/graphics/vnc/server/Make.defs index c1b9390ca0..a0ebad9682 100644 --- a/graphics/vnc/server/Make.defs +++ b/graphics/vnc/server/Make.defs @@ -36,7 +36,7 @@ ifeq ($(CONFIG_VNCSERVER),y) CSRCS += vnc_server.c vnc_negotiate.c vnc_updater.c vnc_receiver.c -CSRCS += vnc_raw.c vnc_color.c vnc_fbdev.c +CSRCS += vnc_raw.c vnc_rre.c vnc_color.c vnc_fbdev.c ifeq ($(CONFIG_NX_KBD),y) CSRCS += vnc_keymap.c diff --git a/graphics/vnc/server/vnc_color.c b/graphics/vnc/server/vnc_color.c index eba85ba744..554cd8b5fd 100644 --- a/graphics/vnc/server/vnc_color.c +++ b/graphics/vnc/server/vnc_color.c @@ -40,6 +40,8 @@ #include #include +#include +#include #include "vnc_server.h" @@ -195,3 +197,164 @@ uint32_t vnc_convert_rgb32_888(lfb_color_t rgb) #else # error Unspecified/unsupported color format #endif + +/**************************************************************************** + * Name: vnc_colors + * + * Description: + * Test the update rectangle to see if it contains complex colors. If it + * contains only a few colors, then it may be a candidate for some type + * run-length encoding. + * + * Input Parameters: + * session - An instance of the session structure. + * rect - The update region in the local frame buffer. + * maxcolors - The maximum number of colors that should be returned. This + * currently cannot exceed eight. + * colors - The top 'maxcolors' most frequency colors are returned. + * + * Returned Value: + * The number of valid colors in the colors[] array are returned, the + * first entry being the most frequent. A negated errno value is returned + * if the colors cannot be determined. This would be the case if the color + * depth is > 8 and there are more than 'maxcolors' colors in the update + * rectangle. + * + ****************************************************************************/ + +int vnc_colors(FAR struct vnc_session_s *session, FAR struct nxgl_rect_s *rect, + unsigned int maxcolors, FAR lfb_color_t *colors) +{ +#if RFB_PIXELDEPTH > 8 + FAR const lfb_color_t *rowstart; + FAR const lfb_color_t *pixptr; + lfb_color_t pixel; + unsigned int counts[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + nxgl_coord_t x; + nxgl_coord_t y; + int ncolors = 0; + int pixndx; + int maxndx; + int cmpndx; + + DEBUGASSERT(session != NULL && rect != NULL && maxcolors <= 8 && colors != NULL); + + /* Pointer to the first pixel in the first row in the local framebuffer */ + + rowstart = (FAR lfb_color_t *) + (session->fb + RFB_STRIDE * rect->pt1.y + RFB_BYTESPERPIXEL * rect->pt1.x); + + /* Loop for each row in the rectangle */ + + for (y = rect->pt1.y; y <= rect->pt2.y; y++) + { + /* Loop for each column in the row */ + + pixptr = rowstart; + for (x = rect->pt1.x; x <= rect->pt2.x; x++) + { + /* Compare this pix to all of the others we have seen */ + + pixel = *pixptr++; + for (pixndx = 0; pixndx < ncolors; pixndx++) + { + if (colors[pixndx] == pixel) + { + break; + } + } + + /* Have we seen this color before? */ + + if (pixndx < ncolors) + { + /* Yes.. just increment the count of the number of times we + * have seen it. + */ + + counts[pixndx]++; + } + + /* Do we have space for another color? */ + + else if (ncolors >= maxcolors) + { + /* No, then bail. We don't have enough memory to deal with + * large number of colors. + */ + + return -E2BIG; + } + + /* Add the new color to the list of colors that we have found */ + + else + { + colors[ncolors] = pixel; + counts[ncolors] = 1; + ncolors++; + } + } + + /* Set the point to the start of the next row */ + + rowstart = (FAR lfb_color_t *)((uintptr_t)rowstart + RFB_STRIDE); + } + + /* Now sort the colors by how often we saw them with the most frequent + * color in the first position. + */ + + /* Loop for colors N={0..(ncolors-1)} */ + + for (pixndx = 0; pixndx < ncolors - 1; pixndx++) + { + /* Compare color N with with colors M={(N_1)..ncolors} */ + + maxndx = pixndx; + for (cmpndx = maxndx + 1; cmpndx < ncolors; cmpndx++) + { + /* Have we seen color M more often that color N? */ + + if (counts[cmpndx] > counts[maxndx]) + { + /* Yes.. then color M has been seen more frequently */ + + maxndx = cmpndx; + } + } + + /* Do nothing if color N is the most often seen */ + + if (maxndx != pixndx) + { + /* Otherwise swap color N and color M */ + /* Remember color N */ + + lfb_color_t tmpcolor = colors[pixndx]; + int tmpcount = counts[pixndx]; + + /* Set color N to color M */ + + colors[pixndx] = colors[maxndx]; + counts[pixndx] = counts[maxndx]; + + /* Set color M to color N */ + + colors[maxndx] = tmpcolor; + counts[maxndx] = tmpcount; + } + } + + /* And return the number of colors that we found */ + + return ncolors; + +#else + /* For small colors, we can keep a local array for all color formats and + * always return the exact result, no matter now many colors. OR we could + * just remove this conditional compilation and live with 8 colors max. + */ +# error No support for small colors +#endif +} diff --git a/graphics/vnc/server/vnc_negotiate.c b/graphics/vnc/server/vnc_negotiate.c index f543f73efb..fb78fdfbe6 100644 --- a/graphics/vnc/server/vnc_negotiate.c +++ b/graphics/vnc/server/vnc_negotiate.c @@ -98,6 +98,7 @@ int vnc_negotiate(FAR struct vnc_session_s *session) FAR struct rfb_serverinit_s *serverinit; FAR struct rfb_pixelfmt_s *pixelfmt; FAR struct rfb_setpixelformat_s *setformat; + FAR struct rfb_setencodings_s *encodings; ssize_t nsent; ssize_t nrecvd; size_t len; @@ -396,14 +397,35 @@ int vnc_negotiate(FAR struct vnc_session_s *session) return ret; } - /* Receive supported encoding types from client, but ignore them. - * we will do only raw format. - */ + /* Receive supported encoding types from client. */ gvdbg("Receive encoding types\n"); - (void)psock_recv(&session->connect, session->inbuf, + encodings = (FAR struct rfb_setencodings_s *)session->inbuf; + + nrecvd = psock_recv(&session->connect, encodings, CONFIG_VNCSERVER_INBUFFER_SIZE, 0); + if (nrecvd < 0) + { + errcode = get_errno(); + gdbg("ERROR: Receive SetEncodings failed: %d\n", errcode); + DEBUGASSERT(errcode > 0); + return -errcode; + } + + if (nrecvd > 0 && encodings->msgtype == RFB_SETENCODINGS_MSG) + { + DEBUGASSERT(nrecvd >= SIZEOF_RFB_SETENCODINGS_S(0)); + + /* Pick out any mutually supported encodings */ + + ret = vnc_client_encodings(session, encodings); + if (ret < 0) + { + gdbg("ERROR: vnc_set_encodings failed: %d\n", ret); + return ret; + } + } session->state = VNCSERVER_CONFIGURED; return OK; diff --git a/graphics/vnc/server/vnc_raw.c b/graphics/vnc/server/vnc_raw.c index ef833f2f90..7d49a013f0 100644 --- a/graphics/vnc/server/vnc_raw.c +++ b/graphics/vnc/server/vnc_raw.c @@ -75,7 +75,7 @@ static size_t vnc_copy8(FAR struct vnc_session_s *session, vnc_convert8_t convert) { FAR struct rfb_framebufferupdate_s *update; - FAR const uint16_t *srcleft; + FAR const lfb_color_t *srcleft; FAR const lfb_color_t *src; FAR uint8_t *dest; nxgl_coord_t x; @@ -133,7 +133,7 @@ static size_t vnc_copy16(FAR struct vnc_session_s *session, vnc_convert16_t convert) { FAR struct rfb_framebufferupdate_s *update; - FAR const uint16_t *srcleft; + FAR const lfb_color_t *srcleft; FAR const lfb_color_t *src; FAR uint16_t *dest; nxgl_coord_t x; @@ -142,11 +142,11 @@ static size_t vnc_copy16(FAR struct vnc_session_s *session, /* Destination rectangle start address */ update = (FAR struct rfb_framebufferupdate_s *)session->outbuf; - dest = (FAR lfb_color_t *)update->rect[0].data; + dest = (FAR uint16_t *)update->rect[0].data; /* Source rectangle start address (left/top)*/ - srcleft = (FAR uint16_t *)(session->fb + RFB_STRIDE * row + RFB_BYTESPERPIXEL * col); + srcleft = (FAR lfb_color_t *)(session->fb + RFB_STRIDE * row + RFB_BYTESPERPIXEL * col); /* Transfer each row from the source buffer into the update buffer */ @@ -190,7 +190,7 @@ static size_t vnc_copy32(FAR struct vnc_session_s *session, vnc_convert32_t convert) { FAR struct rfb_framebufferupdate_s *update; - FAR const uint16_t *srcleft; + FAR const lfb_color_t *srcleft; FAR const lfb_color_t *src; FAR uint32_t *dest; nxgl_coord_t x; @@ -234,12 +234,12 @@ static size_t vnc_copy32(FAR struct vnc_session_s *session, * must be supported by all VNC clients. * * Input Parameters: - * pixel - The src color in local framebuffer format. + * session - An instance of the session structure. * rect - Describes the rectangle in the local framebuffer. * * Returned Value: * Zero (OK) on success; A negated errno value is returned on failure that - * indicates the the natture of the failure. A failure is only returned + * indicates the the nature of the failure. A failure is only returned * in cases of a network failure and unexpected internal failures. * ****************************************************************************/ diff --git a/graphics/vnc/server/vnc_receiver.c b/graphics/vnc/server/vnc_receiver.c index 7d269339af..1df8df72d2 100644 --- a/graphics/vnc/server/vnc_receiver.c +++ b/graphics/vnc/server/vnc_receiver.c @@ -240,7 +240,13 @@ int vnc_receiver(FAR struct vnc_session_s *session) } else { - /* REVISIT: SetEncodings is currently ignored */ + /* Pick out any mutually supported encodings */ + + ret = vnc_client_encodings(session, encodings); + if (ret < 0) + { + gdbg("ERROR: vnc_set_encodings failed: %d\n", ret); + } } } } @@ -418,3 +424,53 @@ int vnc_receiver(FAR struct vnc_session_s *session) return -ENOSYS; } + +/**************************************************************************** + * Name: vnc_client_encodings + * + * Description: + * Pick out any mutually supported encodings from the Client-to-Server + * SetEncodings message + * + * Input Parameters: + * session - An instance of the session structure. + * encodings - The received SetEncodings message + * + * Returned Value: + * At present, always returns OK + * + ****************************************************************************/ + +int vnc_client_encodings(FAR struct vnc_session_s *session, + FAR struct rfb_setencodings_s *encodings) +{ + uint32_t encoding; + unsigned int nencodings; + unsigned int i; + + DEBUGASSERT(session != NULL && encodings != NULL); + + /* Assume that there are no common encodings (other than RAW) */ + + session->rre = false; + + /* Loop for each client supported encoding */ + + nencodings = rfb_getbe32(encodings->nencodings); + for (i = 0; i < nencodings; i++) + { + /* Get the next encoding */ + + encoding = rfb_getbe32(&encodings->encodings[i << 2]); + + /* Only a limited support for of RRE is vailable now. */ + + if (encoding == RFB_ENCODING_RRE) + { + session->rre = true; + return OK; + } + } + + return OK; +} diff --git a/graphics/vnc/server/vnc_rre.c b/graphics/vnc/server/vnc_rre.c new file mode 100644 index 0000000000..a271efa9d6 --- /dev/null +++ b/graphics/vnc/server/vnc_rre.c @@ -0,0 +1,192 @@ +/**************************************************************************** + * graphics/vnc/vnc_rre.c + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include + +#include +#include +#include +#include + +#include "vnc_server.h" + +/**************************************************************************** + * Private Types + ****************************************************************************/ + +struct rre_data_s +{ +#if RFB_BITSPERPIXEL == 16 + struct rfb_rrehdr16_s hdr; /* Header with background pixel */ + struct rfb_rrerect16_s srect; /* Sub-rectangle */ +#elif RFB_BITSPERPIXEL == 32 + struct rfb_rrehdr32_s hdr; /* Header with background pixel */ + struct rfb_rrerect32_s srect; /* Sub-rectangle */ +#endif +}; + +struct rre_rectangle_s +{ + uint8_t xpos[2]; /* U16 X position */ + uint8_t ypos[2]; /* U16 Y position */ + uint8_t width[2]; /* U16 Width */ + uint8_t height[2]; /* U16 Height */ + uint8_t encoding[4]; /* S32 Encoding type = RFB_ENCODING_RRE */ + struct rre_data_s data; /* Pixel data, actual size varies */ +}; + +struct rre_framebufferupdate_s +{ + uint8_t msgtype; /* U8 Message type = RFB_FBUPDATE_MSG*/ + uint8_t padding; + uint8_t nrect[2]; /* U16 Number of rectangles = 1*/ + struct rre_rectangle_s rect; /* RRE encoded rectangle */ +}; + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: vnc_rre + * + * Description: + * This function does not really do RRE encoding. It just checks if the + * update region is one color then uses the RRE encoding format to send + * the constant color rectangle. + * + * Input Parameters: + * session - An instance of the session structure. + * rect - Describes the rectangle in the local framebuffer. + * + * Returned Value: + * Zero is returned if RRE coding was not performed (but not error was) + * encountered. Otherwise, eith the size of the framebuffer update + * message is returned on success or a negated errno value is returned on + * failure that indicates the the nature of the failure. A failure is + * only returned in cases of a network failure and unexpected internal + * failures. + * + ****************************************************************************/ + +int vnc_rre(FAR struct vnc_session_s *session, FAR struct nxgl_rect_s *rect) +{ + FAR struct rre_framebufferupdate_s *rre; + FAR struct rre_rectangle_s *rrect; + FAR struct rre_data_s *rdata; + lfb_color_t bgcolor; + nxgl_coord_t width; + nxgl_coord_t height; + ssize_t nsent; + int ret; + + /* Check if the client supports the RRE encoding */ + + if (session->rre) + { + /* Check if the update region contains only a single color */ + + ret = vnc_colors(session, rect, 1, &bgcolor); + if (ret == 1) + { + width = rect->pt2.x - rect->pt1.x + 1; + height = rect->pt2.y - rect->pt1.y + 1; + + /* Format the FrameBuffer Update with a single RRE encoded + * rectangle. + */ + + rre = (FAR struct rre_framebufferupdate_s *)session->outbuf; + rre->msgtype = RFB_FBUPDATE_MSG; + rre->padding = 0; + rfb_putbe16(rre->nrect, 1); + + rrect = (FAR struct rre_rectangle_s *)&rre->rect; + rfb_putbe16(rrect->xpos, rect->pt1.x); + rfb_putbe16(rrect->ypos, rect->pt1.y); + rfb_putbe16(rrect->width, width); + rfb_putbe16(rrect->height, height); + rfb_putbe32(rrect->encoding, RFB_ENCODING_RRE); + + rdata = (FAR struct rre_data_s *)&rrect->data; + rfb_putbe32(rdata->hdr.nsubrects, 1); +#if RFB_BITSPERPIXEL == 16 + rfb_putbe16(rdata->hdr.pixel, bgcolor); + rfb_putbe16(rdata->srect.pixel, bgcolor); +#elif RFB_BITSPERPIXEL == 32 + rfb_putbe32(rdata->hdr.pixel, bgcolor); + rfb_putbe32(rdata->srect.pixel, bgcolor); +#endif + rfb_putbe16(rdata->srect.xpos, rect->pt1.x); + rfb_putbe16(rdata->srect.ypos, rect->pt1.y); + rfb_putbe16(rdata->srect.width, width); + rfb_putbe16(rdata->srect.height, height); + + /* At the very last most, make certain that the supported encoding + * has not changed asynchronously. + */ + + if (session->rre) + { + /* Okay send until all of the bytes are out. This may + * loop for the case where TCP write buffering is enabled + * and there are a limited number of IOBs available. + */ + + nsent = psock_send(&session->connect, rre, + sizeof(struct rre_framebufferupdate_s), 0); + if (nsent < 0) + { + int errcode = get_errno(); + gdbg("ERROR: Send RRE FrameBufferUpdate failed: %d\n", + errcode); + DEBUGASSERT(errcode > 0); + return -errcode; + } + + DEBUGASSERT(nsent == sizeof(struct rre_framebufferupdate_s)); + return sizeof(struct rre_framebufferupdate_s); + } + + return -EINVAL; + } + } + + return 0; +} \ No newline at end of file diff --git a/graphics/vnc/server/vnc_server.h b/graphics/vnc/server/vnc_server.h index e26ee7601d..709669ff97 100644 --- a/graphics/vnc/server/vnc_server.h +++ b/graphics/vnc/server/vnc_server.h @@ -210,6 +210,7 @@ struct vnc_session_s uint8_t display; /* Display number (for debug) */ volatile uint8_t colorfmt; /* Remote color format (See include/nuttx/fb.h) */ volatile uint8_t bpp; /* Remote bits per pixel */ + volatile bool rre; /* Remote supports RRE encoding */ FAR uint8_t *fb; /* Allocated local frame buffer */ /* Updater information */ @@ -335,6 +336,25 @@ int vnc_negotiate(FAR struct vnc_session_s *session); int vnc_client_pixelformat(FAR struct vnc_session_s *session, FAR struct rfb_pixelfmt_s *pixelfmt); +/**************************************************************************** + * Name: vnc_client_encodings + * + * Description: + * Pick out any mutually supported encodings from the Client-to-Server + * SetEncodings message + * + * Input Parameters: + * session - An instance of the session structure. + * encodings - The received SetEncodings message + * + * Returned Value: + * At present, always returns OK + * + ****************************************************************************/ + +int vnc_client_encodings(FAR struct vnc_session_s *session, + FAR struct rfb_setencodings_s *encodings); + /**************************************************************************** * Name: vnc_start_updater * @@ -404,6 +424,30 @@ int vnc_update_rectangle(FAR struct vnc_session_s *session, int vnc_receiver(FAR struct vnc_session_s *session); +/**************************************************************************** + * Name: vnc_rre + * + * Description: + * This function does not really do RRE encoding. It just checks if the + * update region is one color then uses the RRE encoding format to send + * the constant color rectangle. + * + * Input Parameters: + * session - An instance of the session structure. + * rect - Describes the rectangle in the local framebuffer. + * + * Returned Value: + * Zero is returned if RRE coding was not performed (but not error was) + * encountered. Otherwise, eith the size of the framebuffer update + * message is returned on success or a negated errno value is returned on + * failure that indicates the the nature of the failure. A failure is + * only returned in cases of a network failure and unexpected internal + * failures. + * + ****************************************************************************/ + +int vnc_rre(FAR struct vnc_session_s *session, FAR struct nxgl_rect_s *rect); + /**************************************************************************** * Name: vnc_raw * @@ -412,12 +456,12 @@ int vnc_receiver(FAR struct vnc_session_s *session); * must be supported by all VNC clients. * * Input Parameters: - * pixel - The src color in local framebuffer format. + * session - An instance of the session structure. * rect - Describes the rectangle in the local framebuffer. * * Returned Value: * Zero (OK) on success; A negated errno value is returned on failure that - * indicates the the natture of the failure. A failure is only returned + * indicates the the nature of the failure. A failure is only returned * in cases of a network failure and unexpected internal failures. * ****************************************************************************/ @@ -486,6 +530,33 @@ uint16_t vnc_convert_rgb16_555(lfb_color_t rgb); uint16_t vnc_convert_rgb16_565(lfb_color_t rgb); uint32_t vnc_convert_rgb32_888(lfb_color_t rgb); +/**************************************************************************** + * Name: vnc_colors + * + * Description: + * Test the update rectangle to see if it contains complex colors. If it + * contains only a few colors, then it may be a candidate for some type + * run-length encoding. + * + * Input Parameters: + * session - An instance of the session structure. + * rect - The update region in the local frame buffer. + * maxcolors - The maximum number of colors that should be returned. This + * currently cannot exceed eight. + * colors - The top 'maxcolors' most frequency colors are returned. + * + * Returned Value: + * The number of valid colors in the colors[] array are returned, the + * first entry being the most frequent. A negated errno value is returned + * if the colors cannot be determined. This would be the case if the color + * depth is > 8 and there are more than 'maxcolors' colors in the update + * rectangle. + * + ****************************************************************************/ + +int vnc_colors(FAR struct vnc_session_s *session, FAR struct nxgl_rect_s *rect, + unsigned int maxcolors, FAR lfb_color_t *colors); + #undef EXTERN #ifdef __cplusplus } diff --git a/graphics/vnc/server/vnc_updater.c b/graphics/vnc/server/vnc_updater.c index 6a9d1f0e19..a93f6c3b81 100644 --- a/graphics/vnc/server/vnc_updater.c +++ b/graphics/vnc/server/vnc_updater.c @@ -325,9 +325,15 @@ static FAR void *vnc_updater(FAR void *arg) srcrect = vnc_remove_queue(session); DEBUGASSERT(srcrect != NULL); - /* Perform the framebuffer update using the RAW encoding */ + /* Attempt to use RRE encoding */ - ret = vnc_raw(session, &srcrect->rect); + ret = vnc_rre(session, &srcrect->rect); + if (ret == 0) + { + /* Perform the framebuffer update using the default RAW encoding */ + + ret = vnc_raw(session, &srcrect->rect); + } /* Release the update structure */ @@ -469,13 +475,27 @@ int vnc_update_rectangle(FAR struct vnc_session_s *session, update = vnc_alloc_update(session); DEBUGASSERT(update != NULL); - /* Copy the rectangle into the update structure */ + /* Clip and copy the rectangle into the update structure */ - memcpy(&update->rect, rect, sizeof(struct nxgl_rect_s)); + update->rect.pt1.x = MAX(rect->pt1.x, 0); + update->rect.pt1.y = MAX(rect->pt1.y, 0); + update->rect.pt2.x = MIN(rect->pt2.x, (CONFIG_VNCSERVER_SCREENWIDTH - 1)); + update->rect.pt2.y = MIN(rect->pt2.y, (CONFIG_VNCSERVER_SCREENHEIGHT - 1)); - /* Add the upate to the end of the update queue. */ + /* Make sure that the rectangle still has area after clipping */ + + if (nxgl_nullrect(rect)) + { + /* No.. free the structure and ignore the update */ - vnc_add_queue(session, update); + vnc_free_update(session, update); + } + else + { + /* Yes.. add the upate to the end of the update queue. */ + + vnc_add_queue(session, update); + } } /* Since we ignore bad rectangles and wait for updata structures, there is diff --git a/include/nuttx/video/rfb.h b/include/nuttx/video/rfb.h index 5a2b2aa018..02e15b143f 100644 --- a/include/nuttx/video/rfb.h +++ b/include/nuttx/video/rfb.h @@ -716,6 +716,15 @@ struct rfb_rrerect16_s uint8_t height[2]; /* U16 Height */ }; +struct rfb_rrerect32_s +{ + uint8_t pixel[4]; /* U32 sub-rect pixel value */ + uint8_t xpos[2]; /* U16 X position */ + uint8_t ypos[2]; /* U16 Y position */ + uint8_t width[2]; /* U16 Width */ + uint8_t height[2]; /* U16 Height */ +}; + /* 6.6.4 Hextile encoding * * "Hextile is a variation on the RRE idea. Rectangles are split up into -- GitLab From 79e577eae1527aa38fe5f07c6483b59b46c7fac1 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 20 Apr 2016 17:47:47 -0600 Subject: [PATCH 064/307] VNC: Add support for (1) an 8-bit local frame buffer format and (2) a configurable server name --- graphics/vnc/server/Kconfig | 9 ++- graphics/vnc/server/vnc_color.c | 103 ++++++++++++++++++++++------ graphics/vnc/server/vnc_negotiate.c | 10 ++- graphics/vnc/server/vnc_server.h | 42 ++++++++---- 4 files changed, 128 insertions(+), 36 deletions(-) diff --git a/graphics/vnc/server/Kconfig b/graphics/vnc/server/Kconfig index 18c075a6f6..a7ea00c261 100644 --- a/graphics/vnc/server/Kconfig +++ b/graphics/vnc/server/Kconfig @@ -35,6 +35,10 @@ config VNCSERVER_NDISPLAYS Specifies the number of RFB displays supported by the server. Normally this should be one. +config VNCSERVER_NAME + string "VNC display name" + default "NuttX" + config VNCSERVER_PRIO int "VNC server task priority" default 100 @@ -55,11 +59,14 @@ choice prompt "VNC color format" default VNCSERVER_COLORFMT_RGB16 +config VNCSERVER_COLORFMT_RGB8 + bool "RGB8 3:3:2" + config VNCSERVER_COLORFMT_RGB16 bool "RGB16 5:6:5" config VNCSERVER_COLORFMT_RGB32 - bool "RGB24 (32-bit) or RGB32 (w/tranparency)" + bool "RGB32 8:8:8" endchoice # VNC color format diff --git a/graphics/vnc/server/vnc_color.c b/graphics/vnc/server/vnc_color.c index 554cd8b5fd..597b9686d6 100644 --- a/graphics/vnc/server/vnc_color.c +++ b/graphics/vnc/server/vnc_color.c @@ -53,9 +53,10 @@ * Name: vnc_convert_rgbNN * * Description: - * Convert the native framebuffer color format (either RGB16 5:6:5 or RGB32 - * 8:8:8) to the remote framebuffer color format (either RGB16 5:6:5, - * RGB16 5:5:5, or RGB32 8:8:) + * Convert the native framebuffer color format (either RGB8 3:3:2, + * RGB16 5:6:5, or RGB32 8:8:8) to the remote framebuffer color format + * (either RGB8 2:2:2, RGB8 3:3:2, RGB16 5:5:5, RGB16 5:6:5, or RGB32 + * 8:8:8) * * Input Parameters: * pixel - The src color in local framebuffer format. @@ -65,7 +66,71 @@ * ****************************************************************************/ -#if defined(CONFIG_VNCSERVER_COLORFMT_RGB16) +#if defined(CONFIG_VNCSERVER_COLORFMT_RGB8) + +uint8_t vnc_convert_rgb8_222(lfb_color_t rgb) +{ + /* 76543210 + * -------- + * RRRGGGBB + * ..RRGGBB + */ + + return (uint8_t)(((rgb >> 2) & 0x30) | + ((rgb >> 1) & 0x0c) | + ( rgb & 0x03)); +} + +uint8_t vnc_convert_rgb8_332(lfb_color_t rgb) +{ + /* Identity mapping */ + + return (uint8_t)rgb; +} + +uint16_t vnc_convert_rgb16_555(lfb_color_t rgb) +{ + /* 111111 + * 54321098 76543210 + * ----------------- + * RRRGGGBB + * .RRR..GG G..BB... + */ + + return (uint8_t)((((uint16_t)rgb << 8) & 0x7000) | + (((uint16_t)rgb << 5) & 0x0380) | + (((uint16_t)rgb << 3) & 0x0018)); +} + +uint16_t vnc_convert_rgb16_565(lfb_color_t rgb) +{ + /* 111111 + * 54321098 76543210 + * ----------------- + * RRRGGGBB + * RRR..GGG ...BB... + */ + + return (uint8_t)((((uint16_t)rgb << 8) & 0xe000) | + (((uint16_t)rgb << 6) & 0x0700) | + (((uint16_t)rgb << 3) & 0x0018)); +} + +uint32_t vnc_convert_rgb32_888(lfb_color_t rgb) +{ + /* 33222222 22221111 111111 + * 10987654 32109876 54321098 76543210 + * ---------------------------------- + * RRRGGGBB + * RRR..... GGG..... BB...... + */ + + return (((uint32_t)rgb << 16) & 0x00e00000) | + (((uint32_t)rgb << 11) & 0x0000e000) | + (((uint32_t)rgb << 6) & 0x000000c0); +} + +#elif defined(CONFIG_VNCSERVER_COLORFMT_RGB16) uint8_t vnc_convert_rgb8_222(lfb_color_t rgb) { @@ -104,14 +169,14 @@ uint16_t vnc_convert_rgb16_555(lfb_color_t rgb) * .RRRRRGG GGGBBBBB */ - return (((rgb >> 1) & ~0x1f) | (rgb & 0x1f)); + return (((rgb >> 1) & ~0x001f) | (rgb & 0x001f)); } uint16_t vnc_convert_rgb16_565(lfb_color_t rgb) { /* Identity mapping */ - return rgb; + return (uint32_t)rgb; } uint32_t vnc_convert_rgb32_888(lfb_color_t rgb) @@ -139,9 +204,9 @@ uint8_t vnc_convert_rgb8_222(lfb_color_t rgb) * ..RRGGBB */ - return (uint8_t)(((rgb >> 18) & 0x0030) | - ((rgb >> 12) & 0x000c) | - (rgb >> 6) & 0x0003)); + return (uint8_t)(((rgb >> 18) & 0x00000030) | + ((rgb >> 12) & 0x0000000c) | + (rgb >> 6) & 0x00000003)); } uint8_t vnc_convert_rgb8_332(lfb_color_t rgb) @@ -153,9 +218,9 @@ uint8_t vnc_convert_rgb8_332(lfb_color_t rgb) * RRRGGGBB */ - return (uint8_t)(((rgb >> 16) & 0x0070) | - ((rgb >> 11) & 0x001c) | - (rgb >> 6) & 0x0003)); + return (uint8_t)(((rgb >> 16) & 0x00000070) | + ((rgb >> 11) & 0x0000001c) | + (rgb >> 6) & 0x00000003)); } uint16_t vnc_convert_rgb16_555(lfb_color_t rgb) @@ -167,10 +232,9 @@ uint16_t vnc_convert_rgb16_555(lfb_color_t rgb) * .RRRRRGG GGGBBBBB */ - return (uint16_t) - (((rgb >> 9) & 0x00007c00) | - ((rgb >> 6) & 0x000003e0) | - ((rgb >> 3) & 0x0000001f)); + return (uint16_t)(((rgb >> 9) & 0x00007c00) | + ((rgb >> 6) & 0x000003e0) | + ((rgb >> 3) & 0x0000001f)); } uint16_t vnc_convert_rgb16_565(lfb_color_t rgb) @@ -182,10 +246,9 @@ uint16_t vnc_convert_rgb16_565(lfb_color_t rgb) * RRRRRGGG GGGBBBBB */ - return (uint16_t) - (((rgb >> 8) & 0x0000f800) | - ((rgb >> 5) & 0x000007e0) | - ((rgb >> 3) & 0x0000001f)); + return (uint16_t)(((rgb >> 8) & 0x0000f800) | + ((rgb >> 5) & 0x000007e0) | + ((rgb >> 3) & 0x0000001f)); } uint32_t vnc_convert_rgb32_888(lfb_color_t rgb) diff --git a/graphics/vnc/server/vnc_negotiate.c b/graphics/vnc/server/vnc_negotiate.c index fb78fdfbe6..bf3671bd1d 100644 --- a/graphics/vnc/server/vnc_negotiate.c +++ b/graphics/vnc/server/vnc_negotiate.c @@ -64,6 +64,7 @@ static const char g_vncproto[] = RFB_PROTOCOL_VERSION_3p3; static const char g_vncproto[] = RFB_PROTOCOL_VERSION_3p8; static const char g_nosecurity[] = "No security types are supported"; #endif +static const char g_vncname[] = CONFIG_VNCSERVER_NAME; /**************************************************************************** * Public Functions @@ -326,7 +327,6 @@ int vnc_negotiate(FAR struct vnc_session_s *session) rfb_putbe16(serverinit->width, CONFIG_VNCSERVER_SCREENWIDTH); rfb_putbe16(serverinit->height, CONFIG_VNCSERVER_SCREENHEIGHT); - rfb_putbe32(serverinit->namelen, 0); pixelfmt = &serverinit->format; @@ -343,8 +343,12 @@ int vnc_negotiate(FAR struct vnc_session_s *session) pixelfmt->gshift = RFB_GSHIFT; pixelfmt->bshift = RFB_BSHIFT; + len = strlen(g_vncname); + rfb_putbe32(serverinit->namelen, len); + memcpy(serverinit->name, g_vncname, len); + nsent = psock_send(&session->connect, serverinit, - SIZEOF_RFB_SERVERINIT_S(0), 0); + SIZEOF_RFB_SERVERINIT_S(len), 0); if (nsent < 0) { errcode = get_errno(); @@ -352,7 +356,7 @@ int vnc_negotiate(FAR struct vnc_session_s *session) return -errcode; } - DEBUGASSERT(nsent == SIZEOF_RFB_SERVERINIT_S(0)); + DEBUGASSERT(nsent == SIZEOF_RFB_SERVERINIT_S(len)); /* We now expect to receive the SetPixelFormat message from the client. * This may override some of our framebuffer settings. diff --git a/graphics/vnc/server/vnc_server.h b/graphics/vnc/server/vnc_server.h index 709669ff97..9b7b059615 100644 --- a/graphics/vnc/server/vnc_server.h +++ b/graphics/vnc/server/vnc_server.h @@ -79,14 +79,25 @@ # define CONFIG_VNCSERVER_NDISPLAYS 1 #endif -#if defined(CONFIG_VNCSERVER_COLORFMT_RGB16) +#if defined(CONFIG_VNCSERVER_COLORFMT_RGB8) +# define RFB_COLORFMT FB_FMT_RGB8_332 +# define RFB_BITSPERPIXEL 8 +# define RFB_PIXELDEPTH 8 +# define RFB_TRUECOLOR 1 +# define RFB_RMAX 0x07 +# define RFB_GMAX 0x07 +# define RFB_BMAX 0x03 +# define RFB_RSHIFT 5 +# define RFB_GSHIFT 2 +# define RFB_BSHIFT 0 +#elif defined(CONFIG_VNCSERVER_COLORFMT_RGB16) # define RFB_COLORFMT FB_FMT_RGB16_565 # define RFB_BITSPERPIXEL 16 # define RFB_PIXELDEPTH 16 # define RFB_TRUECOLOR 1 -# define RFB_RMAX 0x1f -# define RFB_GMAX 0x3f -# define RFB_BMAX 0x1f +# define RFB_RMAX 0x001f +# define RFB_GMAX 0x003f +# define RFB_BMAX 0x001f # define RFB_RSHIFT 11 # define RFB_GSHIFT 5 # define RFB_BSHIFT 0 @@ -95,9 +106,9 @@ # define RFB_BITSPERPIXEL 32 # define RFB_PIXELDEPTH 24 # define RFB_TRUECOLOR 1 -# define RFB_RMAX 0xff -# define RFB_GMAX 0xff -# define RFB_BMAX 0xff +# define RFB_RMAX 0x000000ff +# define RFB_GMAX 0x000000ff +# define RFB_BMAX 0x000000ff # define RFB_RSHIFT 16 # define RFB_GSHIFT 8 # define RFB_BSHIFT 0 @@ -113,6 +124,10 @@ # define CONFIG_VNCSERVER_SCREENHEIGHT 240 #endif +#ifndef CONFIG_VNCSERVER_NAME +# define CONFIG_VNCSERVER_NAME "NuttX" +#endif + #ifndef CONFIG_VNCSERVER_PRIO # define CONFIG_VNCSERVER_PRIO 100 #endif @@ -243,7 +258,9 @@ struct fb_startup_s /* The size of the color type in the local framebuffer */ -#if defined(CONFIG_VNCSERVER_COLORFMT_RGB16) +#if defined(CONFIG_VNCSERVER_COLORFMT_RGB8) +typedef uint8_t lfb_color_t; +#elif defined(CONFIG_VNCSERVER_COLORFMT_RGB16) typedef uint16_t lfb_color_t; #elif defined(CONFIG_VNCSERVER_COLORFMT_RGB32) typedef uint32_t lfb_color_t; @@ -512,12 +529,13 @@ FAR struct vnc_session_s *vnc_find_session(int display); * Name: vnc_convert_rgbNN * * Description: - * Convert the native framebuffer color format (either RGB16 5:6:5 or RGB32 - * 8:8:8) to the remote framebuffer color format (either RGB16 5:6:5, - * RGB16 5:5:5, or RGB32 8:8:) + * Convert the native framebuffer color format (either RGB8 3:3:2, + * RGB16 5:6:5, or RGB32 8:8:8) to the remote framebuffer color format + * (either RGB8 2:2:2, RGB8 3:3:2, RGB16 5:5:5, RGB16 5:6:5, or RGB32 + * 8:8:8) * * Input Parameters: - * rgb - The RGB src color in local framebuffer color format. + * pixel - The src color in local framebuffer format. * * Returned Value: * The pixel in the remote framebuffer color format. -- GitLab From eb8c7f16417bd033da75e0ba4edbe2821d1f417a Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 21 Apr 2016 08:16:33 -0600 Subject: [PATCH 065/307] VNC: Correct pixel width in RRE encoding --- graphics/vnc/server/vnc_negotiate.c | 11 +- graphics/vnc/server/vnc_rre.c | 208 +++++++++++++++++++++------- graphics/vnc/server/vnc_server.h | 9 +- include/nuttx/video/rfb.h | 50 +++++++ 4 files changed, 219 insertions(+), 59 deletions(-) diff --git a/graphics/vnc/server/vnc_negotiate.c b/graphics/vnc/server/vnc_negotiate.c index bf3671bd1d..bb6aff34f4 100644 --- a/graphics/vnc/server/vnc_negotiate.c +++ b/graphics/vnc/server/vnc_negotiate.c @@ -384,12 +384,13 @@ int vnc_negotiate(FAR struct vnc_session_s *session) } else if (setformat->msgtype != RFB_SETPIXELFMT_MSG) { - gdbg("ERROR: Not a SetPixelFormat message: %d\n", (int)setformat->msgtype); + gdbg("ERROR: Not a SetPixelFormat message: %d\n", + (int)setformat->msgtype); return -EPROTO; } - /* Instantiate the client pixel format, verifying that the client request format - * is one that we can handle. + /* Instantiate the client pixel format, verifying that the client request + * format is one that we can handle. */ ret = vnc_client_pixelformat(session, &setformat->format); @@ -408,7 +409,7 @@ int vnc_negotiate(FAR struct vnc_session_s *session) encodings = (FAR struct rfb_setencodings_s *)session->inbuf; nrecvd = psock_recv(&session->connect, encodings, - CONFIG_VNCSERVER_INBUFFER_SIZE, 0); + CONFIG_VNCSERVER_INBUFFER_SIZE, 0); if (nrecvd < 0) { errcode = get_errno(); @@ -419,7 +420,7 @@ int vnc_negotiate(FAR struct vnc_session_s *session) if (nrecvd > 0 && encodings->msgtype == RFB_SETENCODINGS_MSG) { - DEBUGASSERT(nrecvd >= SIZEOF_RFB_SETENCODINGS_S(0)); + DEBUGASSERT(nrecvd >= SIZEOF_RFB_SETENCODINGS_S(0)); /* Pick out any mutually supported encodings */ diff --git a/graphics/vnc/server/vnc_rre.c b/graphics/vnc/server/vnc_rre.c index a271efa9d6..f012fae2a4 100644 --- a/graphics/vnc/server/vnc_rre.c +++ b/graphics/vnc/server/vnc_rre.c @@ -50,35 +50,119 @@ * Private Types ****************************************************************************/ -struct rre_data_s +struct rre_encode8_s { -#if RFB_BITSPERPIXEL == 16 - struct rfb_rrehdr16_s hdr; /* Header with background pixel */ - struct rfb_rrerect16_s srect; /* Sub-rectangle */ -#elif RFB_BITSPERPIXEL == 32 - struct rfb_rrehdr32_s hdr; /* Header with background pixel */ - struct rfb_rrerect32_s srect; /* Sub-rectangle */ -#endif + struct rfb_rrehdr8_s hdr; + struct rfb_rrerect8_s rect; }; -struct rre_rectangle_s +struct rre_encode16_s { - uint8_t xpos[2]; /* U16 X position */ - uint8_t ypos[2]; /* U16 Y position */ - uint8_t width[2]; /* U16 Width */ - uint8_t height[2]; /* U16 Height */ - uint8_t encoding[4]; /* S32 Encoding type = RFB_ENCODING_RRE */ - struct rre_data_s data; /* Pixel data, actual size varies */ + struct rfb_rrehdr16_s hdr; + struct rfb_rrerect16_s rect; }; -struct rre_framebufferupdate_s +struct rre_encode32_s { - uint8_t msgtype; /* U8 Message type = RFB_FBUPDATE_MSG*/ - uint8_t padding; - uint8_t nrect[2]; /* U16 Number of rectangles = 1*/ - struct rre_rectangle_s rect; /* RRE encoded rectangle */ + struct rfb_rrehdr32_s hdr; + struct rfb_rrerect32_s rect; }; +/**************************************************************************** + * Private Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: vnc_rreNN + * + * Description: + * Encode a single RRE sub-rectangle, NN=bits-per-pixel + * + * Input Parameters: + * session - An instance of the session structure. + * dest - The locate to save the RRE encoded data + * rect - Describes the rectangle in the local framebuffer. + * bgcolor - The local color of the pixel data + * + * Returned Value: + * The size of the framebuffer update message is returned.. + * + ****************************************************************************/ + +ssize_t vnc_rre8(FAR struct vnc_session_s *session, + FAR struct rre_encode8_s *dest, + FAR struct nxgl_rect_s *rect, + uint8_t bgcolor) +{ + nxgl_coord_t width; + nxgl_coord_t height; + + rfb_putbe32(dest->hdr.nsubrects, 1); + dest->hdr.pixel = bgcolor; + + dest->rect.pixel = bgcolor; + rfb_putbe16(dest->rect.xpos, rect->pt1.x); + rfb_putbe16(dest->rect.ypos, rect->pt1.y); + + width = rect->pt2.x - rect->pt1.x + 1; + height = rect->pt2.y - rect->pt1.y + 1; + + rfb_putbe16(dest->rect.width, width); + rfb_putbe16(dest->rect.height, height); + + return sizeof(struct rre_encode8_s); +} + +ssize_t vnc_rre16(FAR struct vnc_session_s *session, + FAR struct rre_encode16_s *dest, + FAR struct nxgl_rect_s *rect, + uint16_t bgcolor) +{ + nxgl_coord_t width; + nxgl_coord_t height; + + rfb_putbe32(dest->hdr.nsubrects, 1); + rfb_putbe16(dest->hdr.pixel, bgcolor); + + rfb_putbe16(dest->rect.pixel, bgcolor); + rfb_putbe16(dest->rect.xpos, rect->pt1.x); + rfb_putbe16(dest->rect.xpos, rect->pt1.x); + rfb_putbe16(dest->rect.ypos, rect->pt1.y); + + width = rect->pt2.x - rect->pt1.x + 1; + height = rect->pt2.y - rect->pt1.y + 1; + + rfb_putbe16(dest->rect.width, width); + rfb_putbe16(dest->rect.height, height); + + return sizeof(struct rre_encode16_s); +} + +ssize_t vnc_rre32(FAR struct vnc_session_s *session, + FAR struct rre_encode32_s *dest, + FAR struct nxgl_rect_s *rect, + uint32_t bgcolor) +{ + nxgl_coord_t width; + nxgl_coord_t height; + + rfb_putbe32(dest->hdr.nsubrects, 1); + rfb_putbe32(dest->hdr.pixel, bgcolor); + + rfb_putbe32(dest->rect.pixel, bgcolor); + rfb_putbe16(dest->rect.xpos, rect->pt1.x); + rfb_putbe16(dest->rect.xpos, rect->pt1.x); + rfb_putbe16(dest->rect.ypos, rect->pt1.y); + + width = rect->pt2.x - rect->pt1.x + 1; + height = rect->pt2.y - rect->pt1.y + 1; + + rfb_putbe16(dest->rect.width, width); + rfb_putbe16(dest->rect.height, height); + + return sizeof(struct rre_encode32_s); +} + /**************************************************************************** * Public Functions ****************************************************************************/ @@ -97,22 +181,21 @@ struct rre_framebufferupdate_s * * Returned Value: * Zero is returned if RRE coding was not performed (but not error was) - * encountered. Otherwise, eith the size of the framebuffer update - * message is returned on success or a negated errno value is returned on - * failure that indicates the the nature of the failure. A failure is - * only returned in cases of a network failure and unexpected internal - * failures. + * encountered. Otherwise, the size of the framebuffer update message + * is returned on success or a negated errno value is returned on failure + * that indicates the the nature of the failure. A failure is only + * returned in cases of a network failure and unexpected internal failures. * ****************************************************************************/ int vnc_rre(FAR struct vnc_session_s *session, FAR struct nxgl_rect_s *rect) { - FAR struct rre_framebufferupdate_s *rre; - FAR struct rre_rectangle_s *rrect; - FAR struct rre_data_s *rdata; + FAR struct rfb_framebufferupdate_s *rre; + FAR struct rfb_rectangle_s *rrect; lfb_color_t bgcolor; nxgl_coord_t width; nxgl_coord_t height; + size_t nbytes; ssize_t nsent; int ret; @@ -125,38 +208,66 @@ int vnc_rre(FAR struct vnc_session_s *session, FAR struct nxgl_rect_s *rect) ret = vnc_colors(session, rect, 1, &bgcolor); if (ret == 1) { - width = rect->pt2.x - rect->pt1.x + 1; - height = rect->pt2.y - rect->pt1.y + 1; + width = rect->pt2.x - rect->pt1.x + 1; + height = rect->pt2.y - rect->pt1.y + 1; /* Format the FrameBuffer Update with a single RRE encoded * rectangle. */ - rre = (FAR struct rre_framebufferupdate_s *)session->outbuf; + rre = (FAR struct rfb_framebufferupdate_s *)session->outbuf; rre->msgtype = RFB_FBUPDATE_MSG; rre->padding = 0; rfb_putbe16(rre->nrect, 1); - rrect = (FAR struct rre_rectangle_s *)&rre->rect; + rrect = (FAR struct rfb_rectangle_s *)&rre->rect; rfb_putbe16(rrect->xpos, rect->pt1.x); rfb_putbe16(rrect->ypos, rect->pt1.y); rfb_putbe16(rrect->width, width); rfb_putbe16(rrect->height, height); rfb_putbe32(rrect->encoding, RFB_ENCODING_RRE); - rdata = (FAR struct rre_data_s *)&rrect->data; - rfb_putbe32(rdata->hdr.nsubrects, 1); -#if RFB_BITSPERPIXEL == 16 - rfb_putbe16(rdata->hdr.pixel, bgcolor); - rfb_putbe16(rdata->srect.pixel, bgcolor); -#elif RFB_BITSPERPIXEL == 32 - rfb_putbe32(rdata->hdr.pixel, bgcolor); - rfb_putbe32(rdata->srect.pixel, bgcolor); -#endif - rfb_putbe16(rdata->srect.xpos, rect->pt1.x); - rfb_putbe16(rdata->srect.ypos, rect->pt1.y); - rfb_putbe16(rdata->srect.width, width); - rfb_putbe16(rdata->srect.height, height); + /* The sub-rectangle encoding depends of the remote pixel width */ + + nbytes = SIZEOF_RFB_FRAMEBUFFERUPDATE_S(SIZEOF_RFB_RECTANGE_S(0)); + + switch (session->colorfmt) + { + case FB_FMT_RGB8_222: + nbytes += vnc_rre8(session, + (FAR struct rre_encode8_s *)rrect->data, + rect, vnc_convert_rgb8_222(bgcolor)); + break; + + case FB_FMT_RGB8_332: + nbytes += vnc_rre8(session, + (FAR struct rre_encode8_s *)rrect->data, + rect, vnc_convert_rgb8_332(bgcolor)); + break; + + case FB_FMT_RGB16_555: + nbytes += vnc_rre16(session, + (FAR struct rre_encode16_s *)rrect->data, + rect, vnc_convert_rgb16_555(bgcolor)); + break; + + case FB_FMT_RGB16_565: + nbytes += vnc_rre16(session, + (FAR struct rre_encode16_s *)rrect->data, + rect, vnc_convert_rgb16_565(bgcolor)); + break; + + case FB_FMT_RGB32: + nbytes += vnc_rre32(session, + (FAR struct rre_encode32_s *)rrect->data, + rect, vnc_convert_rgb32_888(bgcolor)); + break; + + default: + gdbg("ERROR: Unrecognized color format: %d\n", + session->colorfmt); + return -EINVAL; + } /* At the very last most, make certain that the supported encoding * has not changed asynchronously. @@ -169,8 +280,7 @@ int vnc_rre(FAR struct vnc_session_s *session, FAR struct nxgl_rect_s *rect) * and there are a limited number of IOBs available. */ - nsent = psock_send(&session->connect, rre, - sizeof(struct rre_framebufferupdate_s), 0); + nsent = psock_send(&session->connect, rre, nbytes, 0); if (nsent < 0) { int errcode = get_errno(); @@ -180,8 +290,8 @@ int vnc_rre(FAR struct vnc_session_s *session, FAR struct nxgl_rect_s *rect) return -errcode; } - DEBUGASSERT(nsent == sizeof(struct rre_framebufferupdate_s)); - return sizeof(struct rre_framebufferupdate_s); + DEBUGASSERT(nsent == nbytes); + return nbytes; } return -EINVAL; diff --git a/graphics/vnc/server/vnc_server.h b/graphics/vnc/server/vnc_server.h index 9b7b059615..86e5d46e2e 100644 --- a/graphics/vnc/server/vnc_server.h +++ b/graphics/vnc/server/vnc_server.h @@ -455,11 +455,10 @@ int vnc_receiver(FAR struct vnc_session_s *session); * * Returned Value: * Zero is returned if RRE coding was not performed (but not error was) - * encountered. Otherwise, eith the size of the framebuffer update - * message is returned on success or a negated errno value is returned on - * failure that indicates the the nature of the failure. A failure is - * only returned in cases of a network failure and unexpected internal - * failures. + * encountered. Otherwise, the size of the framebuffer update message + * is returned on success or a negated errno value is returned on failure + * that indicates the the nature of the failure. A failure is only + * returned in cases of a network failure and unexpected internal failures. * ****************************************************************************/ diff --git a/include/nuttx/video/rfb.h b/include/nuttx/video/rfb.h index 02e15b143f..73f5477611 100644 --- a/include/nuttx/video/rfb.h +++ b/include/nuttx/video/rfb.h @@ -691,6 +691,12 @@ struct rfb_copyrect_encoding_s * the header:" */ +struct rfb_rrehdr8_s +{ + uint8_t nsubrects[4]; /* U32 Number of sub-rectangle */ + uint8_t pixel; /* U8 Background pixel */ +}; + struct rfb_rrehdr16_s { uint8_t nsubrects[4]; /* U32 Number of sub-rectangle */ @@ -707,6 +713,15 @@ struct rfb_rrehdr32_s * structure:" */ +struct rfb_rrerect8_s +{ + uint8_t pixel; /* U8 sub-rect pixel value */ + uint8_t xpos[2]; /* U16 X position */ + uint8_t ypos[2]; /* U16 Y position */ + uint8_t width[2]; /* U16 Width */ + uint8_t height[2]; /* U16 Height */ +}; + struct rfb_rrerect16_s { uint8_t pixel[2]; /* U16 sub-rect pixel value */ @@ -771,6 +786,11 @@ struct rfb_rrerect32_s * background colour for this tile:" */ +struct rfb_backpixel8_s +{ + uint8_t pixel; /* U8 Background pixel value */ +}; + struct rfb_backpixel16_s { uint8_t pixel[2]; /* U16 Background pixel value */ @@ -788,6 +808,11 @@ struct rfb_backpixel32_s * foreground colour to be used for all subrectangles in this tile:" */ +struct rfb_forepixel8_s +{ + uint8_t pixel; /* U8 Foreground pixel value */ +}; + struct rfb_forepixel16_s { uint8_t pixel[2]; /* U16 Foreground pixel value */ @@ -816,6 +841,13 @@ struct rfb_nrects_s * value giving the colour of that subrectangle, so a subrectangle is:" */ +struct rfb_subrectscolored8_s +{ + uint8_t pixel; /* U8 Sub-rect pixel value */ + uint8_t xy; /* U8 X and y position */ + uint8_t wh; /* U8 Width and height */ +}; + struct rfb_subrectscolored16_s { uint8_t pixel[2]; /* U16 Sub-rect pixel value */ @@ -916,6 +948,14 @@ struct rfb_srle_s * height are the width and height of the tile):" */ +struct rfb_rawpixel8_s +{ + uint8_t pixels[1]; /* Actual size is w*h */ +}; + +#define SIZEOF_RFB_RAWPIXEL8_S(n,r) \ + (sizeof(struct rfb_rawpixel8_s) + (n) - 1) + struct rfb_rawpixel16_s { uint8_t pixels[2]; /* Actual size is 2*w*h */ @@ -934,6 +974,11 @@ struct rfb_rawpixel32_s /* "A solid tile consisting of a single colour. The pixel value follows:" */ +struct rfb_solid8_s +{ + uint8_t pixels; /* Pixel value */ +}; + struct rfb_solid16_s { uint8_t pixels[2]; /* Pixel value */ @@ -977,6 +1022,11 @@ struct rfb_solid32_s * (subencoding − 128) pixel values:" */ +struct rfb_palette8_s +{ + uint8_t palette[1]; /* Actual size is palleteSize */ +}; + struct rfb_palette16_s { uint8_t palette[2]; /* Actual size is 2*palleteSize */ -- GitLab From a9af1946884651c4ef4ccf79edf259ce8e3aadb0 Mon Sep 17 00:00:00 2001 From: SP Date: Thu, 21 Apr 2016 08:27:27 -0600 Subject: [PATCH 066/307] ChangeLog: Correct typo --- ChangeLog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 9e5fe24708..ed8dd467b1 100755 --- a/ChangeLog +++ b/ChangeLog @@ -11376,7 +11376,7 @@ I2C_READ and I2C_WRITE which are not thread safe (2016-01-26). * SPI: Rename the STM32 up_spiinitialize() to stm32_spibus_initialize() (2016-01-26). - * SPI: Rename the SAM up_spiinitialize() to stm32_spibus_initialize() + * SPI: Rename the SAM up_spiinitialize() to sam_spibus_initialize() (2016-01-26). * SPI: Rename the Tiva up_spiinitialize() to tiva_spibus_intialize() (2016-01-26). -- GitLab From 98e4de73e2dd02807476a839d33334b313422276 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 21 Apr 2016 09:47:26 -0600 Subject: [PATCH 067/307] VNC: Discard previously queued updates if the client requesta a whole screen update --- graphics/vnc/server/Kconfig | 7 ++- graphics/vnc/server/vnc_raw.c | 3 ++ graphics/vnc/server/vnc_rre.c | 2 + graphics/vnc/server/vnc_server.h | 28 +++++++++++ graphics/vnc/server/vnc_updater.c | 79 +++++++++++++++++++++++-------- 5 files changed, 99 insertions(+), 20 deletions(-) diff --git a/graphics/vnc/server/Kconfig b/graphics/vnc/server/Kconfig index a7ea00c261..17a5e3d8ab 100644 --- a/graphics/vnc/server/Kconfig +++ b/graphics/vnc/server/Kconfig @@ -124,7 +124,12 @@ config VNCSERVER_KBDENCODE include/nuttx/input/kbd_coded.h. config VNCSERVER_INBUFFER_SIZE - int "Input buffer size + int "Input buffer size" default 80 +config VNCSERVER_UPDATE_DEBUG + bool "Detailed updater debug" + default n + depends on DEBUG_GRAPHICS + endif # VNCSERVER diff --git a/graphics/vnc/server/vnc_raw.c b/graphics/vnc/server/vnc_raw.c index 7d49a013f0..f54428df42 100644 --- a/graphics/vnc/server/vnc_raw.c +++ b/graphics/vnc/server/vnc_raw.c @@ -454,6 +454,9 @@ int vnc_raw(FAR struct vnc_session_s *session, FAR struct nxgl_rect_s *rect) size -= nsent; } while (size > 0); + + updvdbg("Sent {(%d, %d),(%d, %d)}\n", + x, y, x + updwidth -1, y + updheight - 1); } } } diff --git a/graphics/vnc/server/vnc_rre.c b/graphics/vnc/server/vnc_rre.c index f012fae2a4..0ccb841f86 100644 --- a/graphics/vnc/server/vnc_rre.c +++ b/graphics/vnc/server/vnc_rre.c @@ -291,6 +291,8 @@ int vnc_rre(FAR struct vnc_session_s *session, FAR struct nxgl_rect_s *rect) } DEBUGASSERT(nsent == nbytes); + updvdbg("Sent {(%d, %d),(%d, %d)}\n", + rect->pt1.x, rect->pt1.y, rect->pt2.x, rect->pt2.y); return nbytes; } diff --git a/graphics/vnc/server/vnc_server.h b/graphics/vnc/server/vnc_server.h index 86e5d46e2e..f17dd75255 100644 --- a/graphics/vnc/server/vnc_server.h +++ b/graphics/vnc/server/vnc_server.h @@ -181,6 +181,34 @@ # define MAX(a,b) (((a) > (b)) ? (a) : (b)) #endif +/* Debug */ + +#ifdef CONFIG_VNCSERVER_UPDATE_DEBUG +# ifdef CONFIG_CPP_HAVE_VARARGS +# define upddbg(format, ...) dbg(format, ##__VA_ARGS__) +# define updlldbg(format, ...) lldbg(format, ##__VA_ARGS__) +# define updvdbg(format, ...) vdbg(format, ##__VA_ARGS__) +# define updllvdbg(format, ...) llvdbg(format, ##__VA_ARGS__) +# else +# define upddbg dbg +# define updlldbg lldbg +# define updvdbg vdbg +# define updllvdbg llvdbg +# endif +#else +# ifdef CONFIG_CPP_HAVE_VARARGS +# define upddbg(x...) +# define updlldbg(x...) +# define updvdbg(x...) +# define updllvdbg(x...) +# else +# define upddbg (void) +# define updlldbg (void) +# define updvdbg (void) +# define updllvdbg (void) +# endif +#endif + /**************************************************************************** * Public Types ****************************************************************************/ diff --git a/graphics/vnc/server/vnc_updater.c b/graphics/vnc/server/vnc_updater.c index a93f6c3b81..d41107f15c 100644 --- a/graphics/vnc/server/vnc_updater.c +++ b/graphics/vnc/server/vnc_updater.c @@ -47,6 +47,8 @@ #include #include +#include + #include "vnc_server.h" /**************************************************************************** @@ -63,6 +65,20 @@ static sem_t g_dbgsem = SEM_INITIALIZER(1); #endif +/* A rectangle represent the entire local framebuffer */ + +static const struct nxgl_rect_s g_wholescreen = +{ + { + 0, + 0 + }, + { + CONFIG_VNCSERVER_SCREENWIDTH - 1, + CONFIG_VNCSERVER_SCREENHEIGHT - 1 + } +}; + /**************************************************************************** * Private Functions ****************************************************************************/ @@ -325,6 +341,10 @@ static FAR void *vnc_updater(FAR void *arg) srcrect = vnc_remove_queue(session); DEBUGASSERT(srcrect != NULL); + updvdbg("Dequeued {(%d, %d),(%d, %d)}\n", + srcrect->rect.pt1.x, srcrect->rect.pt1.y, + srcrect->rect.pt2.x, srcrect->rect.pt2.y); + /* Attempt to use RRE encoding */ ret = vnc_rre(session, &srcrect->rect); @@ -465,37 +485,58 @@ int vnc_update_rectangle(FAR struct vnc_session_s *session, FAR const struct nxgl_rect_s *rect) { FAR struct vnc_fbupdate_s *update; + struct nxgl_rect_s intersection; + + /* Clip rectangle to the screen dimensions */ - /* Make sure that the rectangle has a area */ + nxgl_rectintersect(&intersection, rect, &g_wholescreen); - if (!nxgl_nullrect(rect)) + /* Make sure that the clipped rectangle has a area */ + + if (!nxgl_nullrect(&intersection)) { + /* Check for a whole screen update. The RealVNC client sends a lot + * of these (especially when it is confused) + */ + + sched_lock(); + if (memcmp(&intersection, &g_wholescreen, sizeof(struct nxgl_rect_s)) == 0) + { + FAR struct vnc_fbupdate_s *curr; + FAR struct vnc_fbupdate_s *next; + + /* Yes.. discard all of the previously queued updates */ + + updvdbg("Whole screen update...\n"); + + curr = (FAR struct vnc_fbupdate_s *)session->updqueue.head; + sq_init(&session->updqueue); + sem_reset(&session->queuesem, 0); + + for (; curr != NULL; curr = next) + { + next = curr->flink; + vnc_free_update(session, curr); + } + } + /* Allocate an update structure... waiting if necessary */ update = vnc_alloc_update(session); DEBUGASSERT(update != NULL); - /* Clip and copy the rectangle into the update structure */ + /* Copy the clipped rectangle into the update structure */ - update->rect.pt1.x = MAX(rect->pt1.x, 0); - update->rect.pt1.y = MAX(rect->pt1.y, 0); - update->rect.pt2.x = MIN(rect->pt2.x, (CONFIG_VNCSERVER_SCREENWIDTH - 1)); - update->rect.pt2.y = MIN(rect->pt2.y, (CONFIG_VNCSERVER_SCREENHEIGHT - 1)); + nxgl_rectcopy(&update->rect, &intersection); - /* Make sure that the rectangle still has area after clipping */ + /* Add the upate to the end of the update queue. */ - if (nxgl_nullrect(rect)) - { - /* No.. free the structure and ignore the update */ + vnc_add_queue(session, update); + sched_unlock(); - vnc_free_update(session, update); - } - else - { - /* Yes.. add the upate to the end of the update queue. */ - - vnc_add_queue(session, update); - } + updvdbg("Queued {(%d, %d),(%d, %d)}\n", + intersection.pt1.x, intersection.pt1.y, + intersection.pt2.x, intersection.pt2.y); } /* Since we ignore bad rectangles and wait for updata structures, there is -- GitLab From be1677ba257cd87a77173c068a30d94f64c86e7f Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 21 Apr 2016 12:18:35 -0600 Subject: [PATCH 068/307] VNC: Client may request pixel data in either big- or little- endian order --- graphics/vnc/server/vnc_negotiate.c | 30 ++++++++++++--------- graphics/vnc/server/vnc_raw.c | 40 ++++++++++++++++++++++----- graphics/vnc/server/vnc_server.h | 1 + include/nuttx/video/rfb.h | 42 +++++++++++++++++++++++++++++ 4 files changed, 95 insertions(+), 18 deletions(-) diff --git a/graphics/vnc/server/vnc_negotiate.c b/graphics/vnc/server/vnc_negotiate.c index bb6aff34f4..5014e9a83d 100644 --- a/graphics/vnc/server/vnc_negotiate.c +++ b/graphics/vnc/server/vnc_negotiate.c @@ -466,37 +466,43 @@ int vnc_client_pixelformat(FAR struct vnc_session_s *session, if (pixelfmt->bpp == 8 && pixelfmt->depth == 6) { gvdbg("Client pixel format: RGB8 2:2:2\n"); - session->colorfmt = FB_FMT_RGB8_222; - session->bpp = 8; + session->colorfmt = FB_FMT_RGB8_222; + session->bpp = 8; + session->bigendian = false; } else if (pixelfmt->bpp == 8 && pixelfmt->depth == 8) { gvdbg("Client pixel format: RGB8 3:3:2\n"); - session->colorfmt = FB_FMT_RGB8_332; - session->bpp = 8; + session->colorfmt = FB_FMT_RGB8_332; + session->bpp = 8; + session->bigendian = false; } else if (pixelfmt->bpp == 16 && pixelfmt->depth == 15) { gvdbg("Client pixel format: RGB16 5:5:5\n"); - session->colorfmt = FB_FMT_RGB16_555; - session->bpp = 16; + session->colorfmt = FB_FMT_RGB16_555; + session->bpp = 16; + session->bigendian = (pixelfmt->bigendian != 0) ? true : false; } else if (pixelfmt->bpp == 16 && pixelfmt->depth == 16) { gvdbg("Client pixel format: RGB16 5:6:5\n"); - session->colorfmt = FB_FMT_RGB16_565; - session->bpp = 16; + session->colorfmt = FB_FMT_RGB16_565; + session->bpp = 16; + session->bigendian = (pixelfmt->bigendian != 0) ? true : false; } else if (pixelfmt->bpp == 32 && pixelfmt->depth == 24) { gvdbg("Client pixel format: RGB32 8:8:8\n"); - session->colorfmt = FB_FMT_RGB32; - session->bpp = 32; + session->colorfmt = FB_FMT_RGB32; + session->bpp = 32; + session->bigendian = (pixelfmt->bigendian != 0) ? true : false; } else if (pixelfmt->bpp == 32 && pixelfmt->depth == 32) { - session->colorfmt = FB_FMT_RGB32; - session->bpp = 32; + session->colorfmt = FB_FMT_RGB32; + session->bpp = 32; + session->bigendian = (pixelfmt->bigendian != 0) ? true : false; } else { diff --git a/graphics/vnc/server/vnc_raw.c b/graphics/vnc/server/vnc_raw.c index f54428df42..64cfee779e 100644 --- a/graphics/vnc/server/vnc_raw.c +++ b/graphics/vnc/server/vnc_raw.c @@ -135,14 +135,16 @@ static size_t vnc_copy16(FAR struct vnc_session_s *session, FAR struct rfb_framebufferupdate_s *update; FAR const lfb_color_t *srcleft; FAR const lfb_color_t *src; - FAR uint16_t *dest; + FAR uint8_t *dest; + uint16_t pixel; nxgl_coord_t x; nxgl_coord_t y; + bool bigendian; /* Destination rectangle start address */ update = (FAR struct rfb_framebufferupdate_s *)session->outbuf; - dest = (FAR uint16_t *)update->rect[0].data; + dest = (FAR uint8_t *)update->rect[0].data; /* Source rectangle start address (left/top)*/ @@ -150,12 +152,24 @@ static size_t vnc_copy16(FAR struct vnc_session_s *session, /* Transfer each row from the source buffer into the update buffer */ + bigendian = session->bigendian; for (y = 0; y < height; y++) { src = srcleft; for (x = 0; x < width; x++) { - *dest++ = convert(*src); + pixel = convert(*src); + + if (bigendian) + { + rfb_putbe16(dest, pixel); + } + else + { + rfb_putle16(dest, pixel); + } + + dest += sizeof(uint16_t); src++; } @@ -192,14 +206,16 @@ static size_t vnc_copy32(FAR struct vnc_session_s *session, FAR struct rfb_framebufferupdate_s *update; FAR const lfb_color_t *srcleft; FAR const lfb_color_t *src; - FAR uint32_t *dest; + FAR uint8_t *dest; nxgl_coord_t x; nxgl_coord_t y; + uint32_t pixel; + bool bigendian; /* Destination rectangle start address */ update = (FAR struct rfb_framebufferupdate_s *)session->outbuf; - dest = (FAR uint32_t *)update->rect[0].data; + dest = (FAR uint8_t *)update->rect[0].data; /* Source rectangle start address (left/top)*/ @@ -207,12 +223,24 @@ static size_t vnc_copy32(FAR struct vnc_session_s *session, /* Transfer each row from the source buffer into the update buffer */ + bigendian = session->bigendian; for (y = 0; y < height; y++) { src = srcleft; for (x = 0; x < width; x++) { - *dest++ = convert(*src); + pixel = convert(*src); + + if (bigendian) + { + rfb_putbe32(dest, pixel); + } + else + { + rfb_putle32(dest, pixel); + } + + dest += sizeof(uint32_t); src++; } diff --git a/graphics/vnc/server/vnc_server.h b/graphics/vnc/server/vnc_server.h index f17dd75255..7ed5317c2b 100644 --- a/graphics/vnc/server/vnc_server.h +++ b/graphics/vnc/server/vnc_server.h @@ -253,6 +253,7 @@ struct vnc_session_s uint8_t display; /* Display number (for debug) */ volatile uint8_t colorfmt; /* Remote color format (See include/nuttx/fb.h) */ volatile uint8_t bpp; /* Remote bits per pixel */ + volatile bool bigendian; /* Remote expect data in big-endian format */ volatile bool rre; /* Remote supports RRE encoding */ FAR uint8_t *fb; /* Allocated local frame buffer */ diff --git a/include/nuttx/video/rfb.h b/include/nuttx/video/rfb.h index 73f5477611..a8f68c45eb 100644 --- a/include/nuttx/video/rfb.h +++ b/include/nuttx/video/rfb.h @@ -1131,6 +1131,48 @@ struct rfb_palettendx_s ((uint32_t)((s)[2]) << 8) | \ (uint32_t)((s)[3])) +/* There are also cases where the client may request pixel data in its + * little-endian format. + */ + +/* void rfb_putle16(FAR uint8_t *dest, uint16_t value) */ + +#define rfb_putle16(d,v) \ + do \ + { \ + register FAR uint8_t *__d = (FAR uint8_t *)(d); \ + *__d++ = ((uint16_t)(v) & 0xff); \ + *__d = ((uint16_t)(v) >> 8); \ + } \ + while (0) + +/* uin16_t rfb_getle16(FAR const uint8_t *src) */ + +#define rfb_getle16(s) \ + (((uint16_t)((s)[1]) << 8) | \ + (uint16_t)((s)[0])) + +/* void rfb_putle32(FAR uint8_t *dest, uint32_t value) */ + +#define rfb_putle32(d,v) \ + do \ + { \ + register FAR uint8_t *__d = (FAR uint8_t *)(d); \ + *__d++ = ((uint32_t)(v) & 0xff); \ + *__d++ = ((uint32_t)(v) >> 8) & 0xff; \ + *__d++ = ((uint32_t)(v) >> 16) & 0xff; \ + *__d = ((uint32_t)(v) >> 24); \ + } \ + while (0) + +/* uint32_t rfb_getle32(FAR const uint8_t *src) */ + +#define rfb_getle32(s) \ + (((uint32_t)((s)[3]) << 24) | \ + ((uint32_t)((s)[2]) << 16) | \ + ((uint32_t)((s)[1]) << 8) | \ + (uint32_t)((s)[0])) + /**************************************************************************** * Public Function Prototypes ****************************************************************************/ -- GitLab From 05f720f83855f82d128e1d6f5b9ec296af061a31 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 21 Apr 2016 12:38:36 -0600 Subject: [PATCH 069/307] VNC: Flush the update queue whenever the client asks for a whole screen update --- graphics/vnc/server/vnc_server.h | 2 + graphics/vnc/server/vnc_updater.c | 74 ++++++++++++++++++++----------- 2 files changed, 50 insertions(+), 26 deletions(-) diff --git a/graphics/vnc/server/vnc_server.h b/graphics/vnc/server/vnc_server.h index 7ed5317c2b..4929cc35aa 100644 --- a/graphics/vnc/server/vnc_server.h +++ b/graphics/vnc/server/vnc_server.h @@ -233,6 +233,7 @@ enum vnc_server_e struct vnc_fbupdate_s { FAR struct vnc_fbupdate_s *flink; + bool whupd; /* True: whole screen update */ struct nxgl_rect_s rect; /* The enqueued update rectangle */ }; @@ -247,6 +248,7 @@ struct vnc_session_s struct socket listen; /* Listen socket */ struct socket connect; /* Connected socket */ volatile uint8_t state; /* See enum vnc_server_e */ + volatile uint8_t nwhupd; /* Number of whole screen updates queued */ /* Display geometry and color characteristics */ diff --git a/graphics/vnc/server/vnc_updater.c b/graphics/vnc/server/vnc_updater.c index d41107f15c..eb76c99064 100644 --- a/graphics/vnc/server/vnc_updater.c +++ b/graphics/vnc/server/vnc_updater.c @@ -253,11 +253,18 @@ vnc_remove_queue(FAR struct vnc_session_s *session) /* It is reserved.. go get it */ rect = (FAR struct vnc_fbupdate_s *)sq_remfirst(&session->updqueue); + DEBUGASSERT(rect != NULL); + + /* Check if we just removed the whole screen update from the queue */ + + if (session->nwhupd > 0 && rect->whupd) + { + session->nwhupd--; + updvdbg("Whole screen update: nwhupd=%d\n", session->nwhupd); + } vnc_sem_debug(session, "After remove", 0); sched_unlock(); - - DEBUGASSERT(rect != NULL); return rect; } @@ -486,6 +493,7 @@ int vnc_update_rectangle(FAR struct vnc_session_s *session, { FAR struct vnc_fbupdate_s *update; struct nxgl_rect_s intersection; + bool whupd; /* Clip rectangle to the screen dimensions */ @@ -499,44 +507,58 @@ int vnc_update_rectangle(FAR struct vnc_session_s *session, * of these (especially when it is confused) */ + whupd = (memcmp(&intersection, &g_wholescreen, + sizeof(struct nxgl_rect_s)) == 0); + + /* Ignore all updates if there is a queue whole screen update */ + sched_lock(); - if (memcmp(&intersection, &g_wholescreen, sizeof(struct nxgl_rect_s)) == 0) + if (session->nwhupd == 0) { - FAR struct vnc_fbupdate_s *curr; - FAR struct vnc_fbupdate_s *next; + /* Is this a new whole screen update */ - /* Yes.. discard all of the previously queued updates */ + if (whupd) + { + FAR struct vnc_fbupdate_s *curr; + FAR struct vnc_fbupdate_s *next; - updvdbg("Whole screen update...\n"); + /* Yes.. discard all of the previously queued updates */ - curr = (FAR struct vnc_fbupdate_s *)session->updqueue.head; - sq_init(&session->updqueue); - sem_reset(&session->queuesem, 0); + updvdbg("New whole screen update...\n"); - for (; curr != NULL; curr = next) - { - next = curr->flink; - vnc_free_update(session, curr); + curr = (FAR struct vnc_fbupdate_s *)session->updqueue.head; + sq_init(&session->updqueue); + sem_reset(&session->queuesem, 0); + + for (; curr != NULL; curr = next) + { + next = curr->flink; + vnc_free_update(session, curr); + } + + session->nwhupd = 1; } - } - /* Allocate an update structure... waiting if necessary */ + /* Allocate an update structure... waiting if necessary */ - update = vnc_alloc_update(session); - DEBUGASSERT(update != NULL); + update = vnc_alloc_update(session); + DEBUGASSERT(update != NULL); - /* Copy the clipped rectangle into the update structure */ + /* Copy the clipped rectangle into the update structure */ - nxgl_rectcopy(&update->rect, &intersection); + update->whupd = whupd; + nxgl_rectcopy(&update->rect, &intersection); - /* Add the upate to the end of the update queue. */ + /* Add the upate to the end of the update queue. */ - vnc_add_queue(session, update); - sched_unlock(); + vnc_add_queue(session, update); + + updvdbg("Queued {(%d, %d),(%d, %d)}\n", + intersection.pt1.x, intersection.pt1.y, + intersection.pt2.x, intersection.pt2.y); + } - updvdbg("Queued {(%d, %d),(%d, %d)}\n", - intersection.pt1.x, intersection.pt1.y, - intersection.pt2.x, intersection.pt2.y); + sched_unlock(); } /* Since we ignore bad rectangles and wait for updata structures, there is -- GitLab From c25a9b48337dfc3310695952f8bcc1e4073ec5c7 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 21 Apr 2016 13:19:15 -0600 Subject: [PATCH 070/307] Update a configuration --- configs/samv71-xult/vnc/defconfig | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/configs/samv71-xult/vnc/defconfig b/configs/samv71-xult/vnc/defconfig index 4399be7327..6e8a28c4b0 100644 --- a/configs/samv71-xult/vnc/defconfig +++ b/configs/samv71-xult/vnc/defconfig @@ -908,13 +908,14 @@ CONFIG_NX_UPDATE=y # # Supported Pixel Depths # -# CONFIG_NX_DISABLE_1BPP is not set -# CONFIG_NX_DISABLE_2BPP is not set -# CONFIG_NX_DISABLE_4BPP is not set -# CONFIG_NX_DISABLE_8BPP is not set +CONFIG_NX_DISABLE_1BPP=y +CONFIG_NX_DISABLE_2BPP=y +CONFIG_NX_DISABLE_4BPP=y +CONFIG_NX_DISABLE_8BPP=y # CONFIG_NX_DISABLE_16BPP is not set -# CONFIG_NX_DISABLE_24BPP is not set +CONFIG_NX_DISABLE_24BPP=y CONFIG_NX_DISABLE_32BPP=y +CONFIG_NX_PACKEDMSFIRST=y # # Input Devices @@ -988,10 +989,12 @@ CONFIG_VNCSERVER=y # CONFIG_VNCSERVER_PROTO3p3 is not set CONFIG_VNCSERVER_PROTO3p8=y CONFIG_VNCSERVER_NDISPLAYS=1 +CONFIG_VNCSERVER_NAME="NuttX" CONFIG_VNCSERVER_PRIO=100 CONFIG_VNCSERVER_STACKSIZE=2048 CONFIG_VNCSERVER_UPDATER_PRIO=100 CONFIG_VNCSERVER_UPDATER_STACKSIZE=2048 +# CONFIG_VNCSERVER_COLORFMT_RGB8 is not set CONFIG_VNCSERVER_COLORFMT_RGB16=y # CONFIG_VNCSERVER_COLORFMT_RGB32 is not set CONFIG_VNCSERVER_SCREENWIDTH=320 -- GitLab From 1e7b8b80ac8269ddc953e15283b30dcb4d91915c Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 21 Apr 2016 14:52:25 -0600 Subject: [PATCH 071/307] Add a mechanism to get remote keyboard and mouse inputs --- graphics/vnc/server/Kconfig | 2 +- graphics/vnc/server/vnc_fbdev.c | 300 ++++++++++++++++++++++++----- graphics/vnc/server/vnc_keymap.c | 30 ++- graphics/vnc/server/vnc_receiver.c | 14 +- graphics/vnc/server/vnc_server.c | 41 +--- graphics/vnc/server/vnc_server.h | 32 +-- include/nuttx/video/vnc.h | 137 +++++++++++++ 7 files changed, 428 insertions(+), 128 deletions(-) create mode 100644 include/nuttx/video/vnc.h diff --git a/graphics/vnc/server/Kconfig b/graphics/vnc/server/Kconfig index 17a5e3d8ab..3f14b38bc2 100644 --- a/graphics/vnc/server/Kconfig +++ b/graphics/vnc/server/Kconfig @@ -118,7 +118,7 @@ config VNCSERVER_UPDATE_BUFSIZE config VNCSERVER_KBDENCODE bool "Encode keyboard input" default n - depends on NXTERM_NXKBDIN + depends on LIB_KBDCODEC ---help--- Use a special encoding of keyboard characters as defined in include/nuttx/input/kbd_coded.h. diff --git a/graphics/vnc/server/vnc_fbdev.c b/graphics/vnc/server/vnc_fbdev.c index 87fb91b84d..2f98fab21b 100644 --- a/graphics/vnc/server/vnc_fbdev.c +++ b/graphics/vnc/server/vnc_fbdev.c @@ -48,6 +48,7 @@ #include #include #include +#include #include "vnc_server.h" @@ -158,7 +159,9 @@ static int up_getvideoinfo(FAR struct fb_vtable_s *vtable, DEBUGASSERT(fbinfo != NULL && vinfo != NULL); if (fbinfo != NULL && vinfo != NULL) { - session = vnc_find_session(fbinfo->display); + DEBUGASSERT(fbinfo->display >= 0 && fbinfo->display < RFB_MAX_DISPLAYS); + session = g_vnc_sessions[fbinfo->display]; + if (session == NULL || session->state != VNCSERVER_RUNNING) { gdbg("ERROR: session is not connected\n"); @@ -197,7 +200,9 @@ static int up_getplaneinfo(FAR struct fb_vtable_s *vtable, int planeno, DEBUGASSERT(fbinfo != NULL && pinfo != NULL && planeno == 0); if (fbinfo != NULL && pinfo != NULL && planeno == 0) { - session = vnc_find_session(fbinfo->display); + DEBUGASSERT(fbinfo->display >= 0 && fbinfo->display < RFB_MAX_DISPLAYS); + session = g_vnc_sessions[fbinfo->display]; + if (session == NULL || session->state != VNCSERVER_RUNNING) { gdbg("ERROR: session is not connected\n"); @@ -242,7 +247,9 @@ static int up_getcmap(FAR struct fb_vtable_s *vtable, if (fbinfo != NULL && cmap != NULL) { - session = vnc_find_session(fbinfo->display); + DEBUGASSERT(fbinfo->display >= 0 && fbinfo->display < RFB_MAX_DISPLAYS); + session = g_vnc_sessions[fbinfo->display]; + if (session == NULL || session->state != VNCSERVER_RUNNING) { gdbg("ERROR: session is not connected\n"); @@ -277,7 +284,9 @@ static int up_putcmap(FAR struct fb_vtable_s *vtable, FAR const struct fb_cmap_s if (fbinfo != NULL && cmap != NULL) { - session = vnc_find_session(fbinfo->display); + DEBUGASSERT(fbinfo->display >= 0 && fbinfo->display < RFB_MAX_DISPLAYS); + session = g_vnc_sessions[fbinfo->display]; + if (session == NULL || session->state != VNCSERVER_RUNNING) { gdbg("ERROR: session is not connected\n"); @@ -313,7 +322,9 @@ static int up_getcursor(FAR struct fb_vtable_s *vtable, if (fbinfo != NULL && attrib != NULL) { - session = vnc_find_session(fbinfo->display); + DEBUGASSERT(fbinfo->display >= 0 && fbinfo->display < RFB_MAX_DISPLAYS); + session = g_vnc_sessions[fbinfo->display]; + if (session == NULL || session->state != VNCSERVER_RUNNING) { gdbg("ERROR: session is not connected\n"); @@ -347,7 +358,9 @@ static int up_setcursor(FAR struct fb_vtable_s *vtable, if (fbinfo != NULL && settings != NULL) { - session = vnc_find_session(fbinfo->display); + DEBUGASSERT(fbinfo->display >= 0 && fbinfo->display < RFB_MAX_DISPLAYS); + session = g_vnc_sessions[fbinfo->display]; + if (session == NULL || session->state != VNCSERVER_RUNNING) { gdbg("ERROR: session is not connected\n"); @@ -381,7 +394,121 @@ static int up_setcursor(FAR struct fb_vtable_s *vtable, #endif /**************************************************************************** - * Name: vnc_wait_server + * Name: vnc_start_server + * + * Description: + * Start the VNC server. + * + * Input parameters: + * display - In the case of hardware with multiple displays, this + * specifies the display. Normally this is zero. + * + * Returned Value: + * Zero is returned on success; a negated errno value is returned on any + * failure. + * + ****************************************************************************/ + +static int vnc_start_server(int display) +{ + FAR char *argv[2]; + char str[8]; + pid_t pid; + + DEBUGASSERT(display >= 0 && display < RFB_MAX_DISPLAYS); + + /* Check if the server is already running */ + + if (g_vnc_sessions[display] != NULL) + { + DEBUGASSERT(g_vnc_sessions[display]->state >= VNCSERVER_INITIALIZED); + return OK; + } + + /* Start the VNC server kernel thread. */ + + gvdbg("Starting the VNC server for display %d\n", display); + + g_fbstartup[display].result = -EBUSY; + sem_reset(&g_fbstartup[display].fbinit, 0); + sem_reset(&g_fbstartup[display].fbconnect, 0); + + /* Format the kernel thread arguments (ASCII.. yech) */ + + (void)itoa(display, str, 10); + argv[0] = str; + argv[1] = NULL; + + pid = kernel_thread("vnc_server", CONFIG_VNCSERVER_PRIO, + CONFIG_VNCSERVER_STACKSIZE, + (main_t)vnc_server, argv); + if (pid < 0) + { + gdbg("ERROR: Failed to start the VNC server: %d\n", (int)pid); + return (int)pid; + } + + return OK; +} + +/**************************************************************************** + * Name: vnc_wait_start + * + * Description: + * Wait for the server to be started. + * + * Input parameters: + * display - In the case of hardware with multiple displays, this + * specifies the display. Normally this is zero. + * + * Returned Value: + * Zero is returned on success; a negated errno value is returned on any + * failure. + * + ****************************************************************************/ + +static inline int vnc_wait_start(int display) +{ + int errcode; + + /* Check if there has been a session allocated yet. This is one of the + * first things that the VNC server will do with the kernel thread is + * started. But we might be here before the thread has gotten that far. + * + * If it has been allocated, then wait until it is in the INIITIALIZED + * state. The INITIAILIZED states indicates tht the session structure + * has been allocated and fully initialized. + */ + + while (g_vnc_sessions[display] == NULL || + g_vnc_sessions[display]->state != VNCSERVER_UNINITIALIZED) + { + /* The server is not yet running. Wait for the server to post the FB + * semaphore. In certain error situations, the server may post the + * semaphore, then reset it to zero. There are are certainly race + * conditions here, but I think none that are fatal. + */ + + while (sem_wait(&g_fbstartup[display].fbinit) < 0) + { + errcode = get_errno(); + + /* sem_wait() should fail only if it is interrupt by a signal. */ + + DEBUGASSERT(errcode == EINTR); + if (errcode != EINTR) + { + DEBUGASSERT(errcode > 0); + return -errcode; + } + } + } + + return OK; +} + +/**************************************************************************** + * Name: vnc_wait_connect * * Description: * Wait for the server to be connected to the VNC client. We can do @@ -397,7 +524,7 @@ static int up_setcursor(FAR struct fb_vtable_s *vtable, * ****************************************************************************/ -static inline int vnc_wait_server(int display) +static inline int vnc_wait_connect(int display) { int errcode; int result; @@ -423,7 +550,7 @@ static inline int vnc_wait_server(int display) * conditions here, but I think none that are fatal. */ - while (sem_wait(&g_fbstartup[display].fbsem) < 0) + while (sem_wait(&g_fbstartup[display].fbconnect) < 0) { errcode = get_errno(); @@ -486,48 +613,119 @@ static inline int vnc_wait_server(int display) int up_fbinitialize(int display) { - FAR char *argv[2]; - char str[8]; - pid_t pid; - - /* Start the VNC server kernel thread. - * REVISIT: There is no protection for the case where this function is - * called more that once. - */ + int ret; - gvdbg("Starting the VNC server for display %d\n", display); DEBUGASSERT(display >= 0 && display < RFB_MAX_DISPLAYS); - /* Check if the server is already running */ + /* Start the VNC server kernel thread. */ - g_fbstartup[display].result = -EBUSY; - sem_reset(&g_fbstartup[display].fbsem, 0); + ret = vnc_start_server(display); + if (ret < 0) + { + gvdbg("ERROR: vnc_start_server() failed: %d\n", ret); + return ret; + } - if (g_vnc_sessions[display] != NULL) + /* Wait for the VNC client to connect and for the RFB to be ready */ + + ret = vnc_wait_connect(display); + if (ret < 0) { - DEBUGASSERT(g_vnc_sessions[display]->state >= VNCSERVER_INITIALIZED); + gvdbg("ERROR: vnc_wait_connect() failed: %d\n", ret); } - else + + return ret; +} + +/**************************************************************************** + * Function: vnc_fbinitialize + * + * Description: + * Initialize the VNC frame buffer driver. The VNC frame buffer driver + * supports two initialization interfaces: The standard up_fbinitialize() + * that will be called from the graphics layer and this speical + * initialization function that can be used only by VNC aware OS logic. + * + * The two initialization functions may be called separated or together in + * either order. The difference is that standard up_fbinitialize(), if + * used by itself, will not have any remote mouse or keyboard inputs that + * are reported to the VNC framebuffer driver from the remote VNC client. + * + * In the standard graphics architecture, the keyboard/mouse inputs are + * received by some appliation/board specific logic at the highest level + * in the architecture via input drivers. The received keyboard/mouse + * input data must then be "injected" into NX where it can they can be + * assigned to the window that has focus. They will eventually be + * received by the Window instances via NX callback methods. + * + * NX is a middleware layer in the architecture, below the + * application/board specific logic but above the driver level logic. The + * frame buffer driver, on the other hand lies at the very lowest level in + * the graphics architecture. It cannot call upward into the application + * nor can it call upward into NX. So, some other logic. + * + * vnc_fbinitialize() provides an optional, alternative initialization + * function. It is optional becuase it need not be called. If it is not + * called, however, keyboard/mouse inputs from the remote VNC client will + * be lost. By calling vnc_fbinitialize(), you can provide callout + * functions that can be received by logic higher in the architure. This + * higher level level callouts can then call nx_kbdin() or nx_mousein() on + * behalf of the VNC server. + * + * Parameters: + * display - In the case of hardware with multiple displays, this + * specifies the display. Normally this is zero. + * kbdout - If non-NULL, then the pointed-to function will be called to + * handle all keyboard input as it is received. This may be either raw, + * ASCII keypress input or encoded keyboard input as determined by + * CONFIG_VNCSERVER_KBDENCODE. See include/nuttx/input/kbd_codec.h. + * mouseout - If non-NULL, then the pointed-to function will be called to + * handle all mouse input as it is received. + * arg - An opaque user provided argument that will be provided when the + * callouts are performed. + * + * Returned Value: + * Zero (OK) is returned on success. Otherwise, a negated errno value is + * returned to indicate the nature of the failure. + * + ****************************************************************************/ + +int vnc_fbinitialize(int display, vnc_kbdout_t kbdout, + vnc_mouseout_t mouseout, FAR void *arg) +{ + FAR struct vnc_session_s *session; + int ret; + + DEBUGASSERT(display >= 0 && display < RFB_MAX_DISPLAYS); + + /* Start the VNC server kernel thread. */ + + ret = vnc_start_server(display); + if (ret < 0) { - /* Format the kernel thread arguments (ASCII.. yech) */ + gvdbg("ERROR: vnc_start_server() failed: %d\n", ret); + return ret; + } - (void)itoa(display, str, 10); - argv[0] = str; - argv[1] = NULL; + /* Wait for the VNC server to start and complete initialization. */ - pid = kernel_thread("vnc_server", CONFIG_VNCSERVER_PRIO, - CONFIG_VNCSERVER_STACKSIZE, - (main_t)vnc_server, argv); - if (pid < 0) - { - gdbg("ERROR: Failed to start the VNC server: %d\n", (int)pid); - return (int)pid; - } + ret = vnc_wait_start(display); + if (ret < 0) + { + gvdbg("ERROR: vnc_wait_start() failed: %d\n", ret); + return ret; } - /* Wait for the VNC client to connect and for the RFB to be ready */ + /* Save the input callout function information in the session structure. */ + + session = g_vnc_sessions[display]; + DEBUGASSERT(session != NULL); - return vnc_wait_server(display); + session->kbdout = kbdout; + session->mouseout = mouseout; + session->arg = arg; + + return OK; } /**************************************************************************** @@ -550,12 +748,15 @@ int up_fbinitialize(int display) FAR struct fb_vtable_s *up_fbgetvplane(int display, int vplane) { - FAR struct vnc_session_s *session = vnc_find_session(display); + FAR struct vnc_session_s *session; FAR struct vnc_fbinfo_s *fbinfo; + DEBUGASSERT(display >= 0 && display < RFB_MAX_DISPLAYS); + session = g_vnc_sessions[display]; + /* Verify that the session is still valid */ - if (session->state != VNCSERVER_RUNNING) + if (session == NULL || session->state != VNCSERVER_RUNNING) { return NULL; } @@ -607,14 +808,21 @@ FAR struct fb_vtable_s *up_fbgetvplane(int display, int vplane) void up_fbuninitialize(int display) { #if 0 /* Do nothing */ - FAR struct vnc_session_s *session = vnc_find_session(display); + FAR struct vnc_session_s *session; FAR struct vnc_fbinfo_s *fbinfo; - DEBUGASSERT(session != NULL); - fbinfo = &g_fbinfo[display]; + DEBUGASSERT(display >= 0 && display < RFB_MAX_DISPLAYS); + session = g_vnc_sessions[display]; + + /* Verify that the session is still valid */ + + if (session != NULL) + { + fbinfo = &g_fbinfo[display]; #warning Missing logic - UNUSED(session); - UNUSED(fbinfo); + UNUSED(session); + UNUSED(fbinfo); + } #endif } @@ -653,7 +861,7 @@ void nx_notify_rectangle(FAR NX_PLANEINFOTYPE *pinfo, */ DEBUGASSERT(pinfo->display >= 0 && pinfo->display < RFB_MAX_DISPLAYS); - session = vnc_find_session(pinfo->display); + session = g_vnc_sessions[pinfo->display]; /* Verify that the session is still valid */ diff --git a/graphics/vnc/server/vnc_keymap.c b/graphics/vnc/server/vnc_keymap.c index 57690183f4..bb5fe3f623 100644 --- a/graphics/vnc/server/vnc_keymap.c +++ b/graphics/vnc/server/vnc_keymap.c @@ -481,9 +481,10 @@ void vnc_key_map(FAR struct vnc_session_s *session, uint16_t keysym, #ifdef CONFIG_VNCSERVER_KBDENCODE uint8_t buffer[4] int nch; +#else + uint8_t buffer; #endif int16_t keych; - int ret; /* Check for modifier keys */ @@ -505,6 +506,14 @@ void vnc_key_map(FAR struct vnc_session_s *session, uint16_t keysym, } #endif + /* If no external keyboard input handler has been provided, then we have to drop the keyboard input. + */ + + if (session->kbdout == NULL) + { + return; + } + /* Try to convert the keycode to an ASCII value */ keych = vnc_kbd_ascii((char)(keysym & 255)); @@ -580,19 +589,12 @@ void vnc_key_map(FAR struct vnc_session_s *session, uint16_t keysym, /* Inject the normal character sequence into NX */ - ret = nx_kbdin(session->handle, nch, buffer); - if (ret < 0) - { - gdbg("ERROR: nx_kbdin() failed: %d\n", ret); - } + session->kbdout(session->arg, nch, buffer); #else /* Inject the single key press into NX */ - ret = nx_kbdchin(session->handle,(uint8_t)keych); - if (ret < 0) - { - gdbg("ERROR: nx_kbdchin() failed: %d\n", ret); - } + buffer = (uint8_t)keych; + session->kbdout(session->arg, 1, &buffer); #endif } @@ -619,11 +621,7 @@ void vnc_key_map(FAR struct vnc_session_s *session, uint16_t keysym, /* Inject the special character sequence into NX */ - ret = nx_kbdin(session->handle, nch, buffer); - if (ret < 0) - { - gdbg("ERROR: nx_kbdin() failed: %d\n", ret) - } + session->kbdout(session->arg, nch, buffer); } } #endif diff --git a/graphics/vnc/server/vnc_receiver.c b/graphics/vnc/server/vnc_receiver.c index 1df8df72d2..862b39362a 100644 --- a/graphics/vnc/server/vnc_receiver.c +++ b/graphics/vnc/server/vnc_receiver.c @@ -337,7 +337,7 @@ int vnc_receiver(FAR struct vnc_session_s *session) #ifdef CONFIG_NX_XYINPUT /* REVISIT: How will be get the NX handle? */ - else if (session->handle != NULL) + else if (session->mouseout != NULL) { event = (FAR struct rfb_pointerevent_s *)session->inbuf; @@ -362,14 +362,10 @@ int vnc_receiver(FAR struct vnc_session_s *session) buttons |= NX_MOUSE_RIGHTBUTTON; } - ret = nx_mousein(session->handle, - (nxgl_coord_t)rfb_getbe16(event->xpos), - (nxgl_coord_t)rfb_getbe16(event->ypos), - buttons); - if (ret < 0) - { - gdbg("ERROR: nx_mousein failed: %d\n", ret); - } + session->mouseout(session->arg, + (nxgl_coord_t)rfb_getbe16(event->xpos), + (nxgl_coord_t)rfb_getbe16(event->ypos), + buttons); } #endif } diff --git a/graphics/vnc/server/vnc_server.c b/graphics/vnc/server/vnc_server.c index 742a97fa01..c33050f303 100644 --- a/graphics/vnc/server/vnc_server.c +++ b/graphics/vnc/server/vnc_server.c @@ -271,6 +271,11 @@ int vnc_server(int argc, FAR char *argv[]) sem_init(&session->freesem, 0, CONFIG_VNCSERVER_NUPDATES); sem_init(&session->queuesem, 0, 0); + /* Inform any waiter that we have started */ + + vnc_reset_session(session, fb, display); + sem_post(&g_fbstartup[display].fbinit); + /* Loop... handling each each VNC client connection to this display. Only * a single client is allowed for each display. */ @@ -283,7 +288,7 @@ int vnc_server(int argc, FAR char *argv[]) vnc_reset_session(session, fb, display); g_fbstartup[display].result = -EBUSY; - sem_reset(&g_fbstartup[display].fbsem, 0); + sem_reset(&g_fbstartup[display].fbconnect, 0); /* Establish a connection with the VNC client */ @@ -321,7 +326,7 @@ int vnc_server(int argc, FAR char *argv[]) */ g_fbstartup[display].result = OK; - sem_post(&g_fbstartup[display].fbsem); + sem_post(&g_fbstartup[display].fbconnect); /* Run the VNC receiver on this trhead. The VNC receiver handles * all Client-to-Server messages. The VNC receiver function does @@ -347,36 +352,6 @@ errout_with_fb: errout_with_post: g_fbstartup[display].result = ret; - sem_post(&g_fbstartup[display].fbsem); + sem_post(&g_fbstartup[display].fbconnect); return EXIT_FAILURE; } - -/**************************************************************************** - * Name: vnc_find_session - * - * Description: - * Return the session structure associated with this display. - * - * Input Parameters: - * display - The display number of interest. - * - * Returned Value: - * Returns the instance of the session structure for this display. NULL - * will be returned if the server has not yet been started or if the - * display number is out of range. - * - ****************************************************************************/ - -FAR struct vnc_session_s *vnc_find_session(int display) -{ - FAR struct vnc_session_s *session = NULL; - - DEBUGASSERT(display >= 0 && display < RFB_MAX_DISPLAYS); - - if (display >= 0 && display < RFB_MAX_DISPLAYS) - { - session = g_vnc_sessions[display]; - } - - return session; -} diff --git a/graphics/vnc/server/vnc_server.h b/graphics/vnc/server/vnc_server.h index 4929cc35aa..077bc0d6b4 100644 --- a/graphics/vnc/server/vnc_server.h +++ b/graphics/vnc/server/vnc_server.h @@ -49,6 +49,7 @@ #include #include +#include #include #include #include @@ -239,10 +240,6 @@ struct vnc_fbupdate_s struct vnc_session_s { - /* NX graphics system */ - - NXHANDLE handle; /* NX graphics handle */ - /* Connection data */ struct socket listen; /* Listen socket */ @@ -259,6 +256,12 @@ struct vnc_session_s volatile bool rre; /* Remote supports RRE encoding */ FAR uint8_t *fb; /* Allocated local frame buffer */ + /* VNC client input support */ + + vnc_kbdout_t kbdout; /* Callout when keyboard input is received */ + vnc_mouseout_t mouseout; /* Callout when keyboard input is received */ + FAR void *arg; /* Argument that accompanies the callouts */ + /* Updater information */ pthread_t updater; /* Updater thread ID */ @@ -283,7 +286,8 @@ struct vnc_session_s struct fb_startup_s { - sem_t fbsem; /* Framebuffer driver will wait on this */ + sem_t fbinit; /* Wait for session creation */ + sem_t fbconnect; /* Wait for client connection */ int16_t result; /* OK: successfully initialized */ }; @@ -537,24 +541,6 @@ void vnc_key_map(FAR struct vnc_session_s *session, uint16_t keysym, bool keydown); #endif -/**************************************************************************** - * Name: vnc_find_session - * - * Description: - * Return the session structure associated with this display. - * - * Input Parameters: - * display - The display number of interest. - * - * Returned Value: - * Returns the instance of the session structure for this display. NULL - * will be returned if the server has not yet been started or if the - * display number is out of range. - * - ****************************************************************************/ - -FAR struct vnc_session_s *vnc_find_session(int display); - /**************************************************************************** * Name: vnc_convert_rgbNN * diff --git a/include/nuttx/video/vnc.h b/include/nuttx/video/vnc.h new file mode 100644 index 0000000000..a3b9f9e675 --- /dev/null +++ b/include/nuttx/video/vnc.h @@ -0,0 +1,137 @@ +/**************************************************************************** + * include/nuttx/video/vnc.h + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +#ifndef __INCLUDE_NUTTX_VIDEO_VNC_H +#define __INCLUDE_NUTTX_VIDEO_VNC_H + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include + +#include + +#include + +/**************************************************************************** + * Public Function Prototypes + ****************************************************************************/ + +/* These are the types of the function pointers used to support callouts when + * mouse or keyboard inputs are received by the local VNC server from the + * remove VNC client. Notice that these callouts have arguments that match + * the inputs to nx_kbdin() and nx_mousein(). + */ + +typedef CODE void (*vnc_mouseout_t)(FAR void *arg, nxgl_coord_t x, + nxgl_coord_t y, uint8_t buttons); +typedef CODE void (*vnc_kbdout_t)(FAR void *arg, uint8_t nch, + FAR const uint8_t *ch); + +/**************************************************************************** + * Public Function Prototypes + ****************************************************************************/ + +#ifdef __cplusplus +#define EXTERN extern "C" +extern "C" +{ +#else +#define EXTERN extern +#endif + +/**************************************************************************** + * Function: vnc_fbinitialize + * + * Description: + * Initialize the VNC frame buffer driver. The VNC frame buffer driver + * supports two initialization interfaces: The standard up_fbinitialize() + * that will be called from the graphics layer and this speical + * initialization function that can be used only by VNC aware OS logic. + * + * The two initialization functions may be called separated or together in + * either order. The difference is that standard up_fbinitialize(), if + * used by itself, will not have any remote mouse or keyboard inputs that + * are reported to the VNC framebuffer driver from the remote VNC client. + * + * In the standard graphics architecture, the keyboard/mouse inputs are + * received by some appliation/board specific logic at the highest level + * in the architecture via input drivers. The received keyboard/mouse + * input data must then be "injected" into NX where it can they can be + * assigned to the window that has focus. They will eventually be + * received by the Window instances via NX callback methods. + * + * NX is a middleware layer in the architecture, below the + * application/board specific logic but above the driver level logic. The + * frame buffer driver, on the other hand lies at the very lowest level in + * the graphics architecture. It cannot call upward into the application + * nor can it call upward into NX. So, some other logic. + * + * vnc_fbinitialize() provides an optional, alternative initialization + * function. It is optional becuase it need not be called. If it is not + * called, however, keyboard/mouse inputs from the remote VNC client will + * be lost. By calling vnc_fbinitialize(), you can provide callout + * functions that can be received by logic higher in the architure. This + * higher level level callouts can then call nx_kbdin() or nx_mousein() on + * behalf of the VNC server. + * + * Parameters: + * display - In the case of hardware with multiple displays, this + * specifies the display. Normally this is zero. + * kbdout - If non-NULL, then the pointed-to function will be called to + * handle all keyboard input as it is received. This may be either raw, + * ASCII keypress input or encoded keyboard input as determined by + * CONFIG_VNCSERVER_KBDENCODE. See include/nuttx/input/kbd_codec.h. + * mouseout - If non-NULL, then the pointed-to function will be called to + * handle all mouse input as it is received. + * arg - An opaque user provided argument that will be provided when the + * callouts are performed. + * + * Returned Value: + * Zero (OK) is returned on success. Otherwise, a negated errno value is + * returned to indicate the nature of the failure. + * + ****************************************************************************/ + +int vnc_fbinitialize(int display, vnc_kbdout_t kbdout, + vnc_mouseout_t mouseout, FAR void *arg); + +#undef EXTERN +#ifdef __cplusplus +} +#endif + +#endif /* __INCLUDE_NUTTX_VIDEO_VNC_H */ -- GitLab From ceac1dcaeedc86a5381f3e252eba201152a297db Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 21 Apr 2016 16:15:56 -0600 Subject: [PATCH 072/307] Update README --- configs/samv71-xult/README.txt | 12 +++++++++++- configs/samv71-xult/vnc/defconfig | 2 +- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/configs/samv71-xult/README.txt b/configs/samv71-xult/README.txt index 0ada8ad010..39d46eb0f2 100644 --- a/configs/samv71-xult/README.txt +++ b/configs/samv71-xult/README.txt @@ -2328,7 +2328,7 @@ Configuration sub-directories size of update messages. That is 1024 bytes in that configuration (the full message with the header will be a little larger). The MTU (CONFIG_NET_ETH_MTU) is set to 590 so that a full update will - require several packets.i + require several packets. Write buffering also effects network performance. This will break up the large updates into small (196 byte) groups. When we run out @@ -2339,3 +2339,13 @@ Configuration sub-directories mouse/keyboard inputs in the options/input menu. That will make things a little clearer. + STATUS: + 2016-04-21: I have gottent he apps/examples/nximage to work + with lots issues with GRAPHICS and UPDATER debug ON. There + are reliability problems and it hangs at the end of the test. + If I turn UPDATE debug off (only), then the display output is + corrupted and I get a hardfault. + + Mostly likely, the UPDATER debug output slows the updates and + avoids some kind of race condition with the networking. Oddly, + it does not work at all if I turn off TCP write buffering. diff --git a/configs/samv71-xult/vnc/defconfig b/configs/samv71-xult/vnc/defconfig index 6e8a28c4b0..945e47f4f8 100644 --- a/configs/samv71-xult/vnc/defconfig +++ b/configs/samv71-xult/vnc/defconfig @@ -832,7 +832,7 @@ CONFIG_NET_IOB=y CONFIG_IOB_NBUFFERS=72 CONFIG_IOB_BUFSIZE=196 CONFIG_IOB_NCHAINS=8 -CONFIG_IOB_THROTTLE=8 +CONFIG_IOB_THROTTLE=32 # CONFIG_NET_ARCH_INCR32 is not set # CONFIG_NET_ARCH_CHKSUM is not set CONFIG_NET_STATISTICS=y -- GitLab From fd794111adc31281fd8dfe1c70547fdac5f51f50 Mon Sep 17 00:00:00 2001 From: David Sidrane Date: Thu, 21 Apr 2016 16:45:32 -1000 Subject: [PATCH 073/307] Fixed const warning --- include/nuttx/board.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/nuttx/board.h b/include/nuttx/board.h index 0d742257e3..edc23385dc 100644 --- a/include/nuttx/board.h +++ b/include/nuttx/board.h @@ -680,7 +680,7 @@ xcpt_t board_button_irq(int id, xcpt_t irqhandler); ****************************************************************************/ #ifdef CONFIG_BOARD_CRASHDUMP -void board_crashdump(uint32_t currentsp, void *tcb, uint8_t *filename, +void board_crashdump(uint32_t currentsp, void *tcb, const uint8_t *filename, int lineno); #endif -- GitLab From 8b36a83df18d08eae212624307e26be495a663ec Mon Sep 17 00:00:00 2001 From: Marco Krahl Date: Fri, 22 Apr 2016 07:27:00 -0600 Subject: [PATCH 074/307] stm32: fix wrong FSCM pin mapping for stm32f42x --- arch/arm/src/stm32/chip/stm32f40xxx_pinmap.h | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/arch/arm/src/stm32/chip/stm32f40xxx_pinmap.h b/arch/arm/src/stm32/chip/stm32f40xxx_pinmap.h index 02664a0ba9..d8fbe7346c 100644 --- a/arch/arm/src/stm32/chip/stm32f40xxx_pinmap.h +++ b/arch/arm/src/stm32/chip/stm32f40xxx_pinmap.h @@ -329,11 +329,21 @@ # define GPIO_FSMC_NCE4_2 (GPIO_ALT|GPIO_AF12|GPIO_SPEED_100MHz|GPIO_PORTG|GPIO_PIN11) # define GPIO_FSMC_NIORD (GPIO_ALT|GPIO_AF12|GPIO_SPEED_100MHz|GPIO_PORTF|GPIO_PIN6) # define GPIO_FSMC_NIOWR (GPIO_ALT|GPIO_AF12|GPIO_SPEED_100MHz|GPIO_PORTF|GPIO_PIN8) +# define GPIO_FSMC_SDCKE0_1 (GPIO_ALT|GPIO_AF12|GPIO_SPEED_100MHz|GPIO_PORTH|GPIO_PIN2) +# define GPIO_FSMC_SDCKE0_2 (GPIO_ALT|GPIO_AF12|GPIO_SPEED_100MHz|GPIO_PORTC|GPIO_PIN3) +# define GPIO_FSMC_SDNE0_1 (GPIO_ALT|GPIO_AF12|GPIO_SPEED_100MHz|GPIO_PORTH|GPIO_PIN3) +# define GPIO_FSMC_SDNE0_2 (GPIO_ALT|GPIO_AF12|GPIO_SPEED_100MHz|GPIO_PORTC|GPIO_PIN2) +# define GPIO_FSMC_SDNWE_1 (GPIO_ALT|GPIO_AF12|GPIO_SPEED_100MHz|GPIO_PORTC|GPIO_PIN0) +# define GPIO_FSMC_SDNWE_2 (GPIO_ALT|GPIO_AF12|GPIO_SPEED_100MHz|GPIO_PORTH|GPIO_PIN5) +# define GPIO_FSMC_SDNRAS (GPIO_ALT|GPIO_AF12|GPIO_SPEED_100MHz|GPIO_PORTF|GPIO_PIN11) +# define GPIO_FSMC_SDCLK (GPIO_ALT|GPIO_AF12|GPIO_SPEED_100MHz|GPIO_PORTG|GPIO_PIN8) +# define GPIO_FSMC_SDNCAS (GPIO_ALT|GPIO_AF12|GPIO_SPEED_100MHz|GPIO_PORTG|GPIO_PIN15) +# define GPIO_FSMC_BA0 (GPIO_ALT|GPIO_AF12|GPIO_SPEED_100MHz|GPIO_PORTG|GPIO_PIN4) +# define GPIO_FSMC_BA1 (GPIO_ALT|GPIO_AF12|GPIO_SPEED_100MHz|GPIO_PORTG|GPIO_PIN5) # define GPIO_FSMC_NREG (GPIO_ALT|GPIO_AF12|GPIO_SPEED_100MHz|GPIO_PORTF|GPIO_PIN7) #endif -#if defined(CONFIG_STM32_STM32F427) || defined(CONFIG_STM32_STM32F429) || \ - defined(CONFIG_STM32_STM32F446) || defined(CONFIG_STM32_STM32F469) +#if defined(CONFIG_STM32_STM32F446) || defined(CONFIG_STM32_STM32F469) # define GPIO_FSMC_SDCKE0_1 (GPIO_ALT|GPIO_AF12|GPIO_SPEED_100MHz|GPIO_PORTC|GPIO_PIN3) # define GPIO_FSMC_SDCKE0_2 (GPIO_ALT|GPIO_AF12|GPIO_SPEED_100MHz|GPIO_PORTC|GPIO_PIN5) # define GPIO_FSMC_SDNE0_1 (GPIO_ALT|GPIO_AF12|GPIO_SPEED_100MHz|GPIO_PORTC|GPIO_PIN2) -- GitLab From 3537f93cfb668d757864ef8046739ad1ec944074 Mon Sep 17 00:00:00 2001 From: Marco Krahl Date: Fri, 22 Apr 2016 07:28:21 -0600 Subject: [PATCH 075/307] stm32f429i-disco: Set default spi clock frequency for display initializing --- configs/stm32f429i-disco/src/stm32_ili93414ws.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/configs/stm32f429i-disco/src/stm32_ili93414ws.c b/configs/stm32f429i-disco/src/stm32_ili93414ws.c index aea55ea8d6..58dad6eae2 100644 --- a/configs/stm32f429i-disco/src/stm32_ili93414ws.c +++ b/configs/stm32f429i-disco/src/stm32_ili93414ws.c @@ -69,6 +69,10 @@ /* spi frequency based on arch/arm/src/stm32/stm32_spi.c */ +#ifndef CONFIG_STM32F429I_DISCO_ILI9341_SPIFREQUENCY +# define CONFIG_STM32F429I_DISCO_ILI9341_SPIFREQUENCY 20000000 +#endif + #if CONFIG_STM32F429I_DISCO_ILI9341_SPIFREQUENCY >= \ (STM32_PCLK1_FREQUENCY >> 1) # define ILI93414WS_SPI_BR SPI_CR1_FPCLCKd2 /* 000: fPCLK/2 */ -- GitLab From 57449d9c8f1bfdbc93feb0c210ccecd2da7c09b5 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 22 Apr 2016 07:29:44 -0600 Subject: [PATCH 076/307] Updte changelog --- ChangeLog | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/ChangeLog b/ChangeLog index ed8dd467b1..3686531d89 100755 --- a/ChangeLog +++ b/ChangeLog @@ -11665,4 +11665,11 @@ complete, but untested and so not ready for primetime (2016-04-18). * configs/samv71-xult/vnc: Add a configuration that will be used to verify VNC (also untested) (2016-04-18). + * drivers/ioexpander: Fix an error in the PCA9555 driver: Under certain + error conditions, interrupts were not being re-enabled. Sebastien + Lorquet (2016-04-20). + * arch/arm/src/stm32 and configs/stm32f429i-disco: Correct some bad + commits that broke the LTDC display example. From Marco Krahl + (2016-04-22). + -- GitLab From e2f17ce7e7998d234f4df04cea1016cc14100eb2 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 22 Apr 2016 07:42:37 -0600 Subject: [PATCH 077/307] Trivial changes from review --- include/nuttx/board.h | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/include/nuttx/board.h b/include/nuttx/board.h index edc23385dc..9e0ea70ab8 100644 --- a/include/nuttx/board.h +++ b/include/nuttx/board.h @@ -1,7 +1,7 @@ /**************************************************************************** * include/nuttx/board.h * - * Copyright (C) 2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2015-2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -46,7 +46,8 @@ * definitions provide the common interface between NuttX and the * architecture-specific implementation in arch/ * - * These definitions are retained in the the header file nuttx/include/arch.h + * These definitions are retained in the the header file + * nuttx/include/arch.h * * NOTE: up_ is supposed to stand for microprocessor; the u is like the * Greek letter micron: µ. So it would be µP which is a common shortening @@ -680,7 +681,8 @@ xcpt_t board_button_irq(int id, xcpt_t irqhandler); ****************************************************************************/ #ifdef CONFIG_BOARD_CRASHDUMP -void board_crashdump(uint32_t currentsp, void *tcb, const uint8_t *filename, +void board_crashdump(uintptr_t currentsp, FAR void *tcb, + FAR const uint8_t *filename, int lineno); #endif -- GitLab From 2a928cbdbebe64448a398730f2a522cb4b9ce7a0 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 22 Apr 2016 08:57:42 -0600 Subject: [PATCH 078/307] VNC: Verify RGB8 operation; samv71-xult: VNC configuration now uses RGB8 by defualt --- configs/samv71-xult/README.txt | 43 ++++++++++++++++++++++++++----- configs/samv71-xult/vnc/defconfig | 12 ++++----- graphics/vnc/server/vnc_color.c | 23 +++++++---------- 3 files changed, 52 insertions(+), 26 deletions(-) diff --git a/configs/samv71-xult/README.txt b/configs/samv71-xult/README.txt index 39d46eb0f2..67477ec39c 100644 --- a/configs/samv71-xult/README.txt +++ b/configs/samv71-xult/README.txt @@ -2320,7 +2320,7 @@ Configuration sub-directories 1. Network configuration: IP address 10.0.0.2. The is easily changed via 'make menuconfig'. The VNC server address is 10.0.0.2:5900. - 2. The default (local) framebuffer configuration is 320x240 with 16-bit + 2. The default (local) framebuffer configuration is 320x240 with 8-bit RGB color. 3. There are complicated interactions between VNC and the network @@ -2339,13 +2339,44 @@ Configuration sub-directories mouse/keyboard inputs in the options/input menu. That will make things a little clearer. + 5. To select 16-bits per pixel RGB15 5:6:5 + + CONFIG_NX_DISABLE_8BPP=y + # CONFIG_NX_DISABLE_16BPP is not set + + # CONFIG_VNCSERVER_COLORFMT_RGB8 is not set + CONFIG_VNCSERVER_COLORFMT_RGB16=y + + CONFIG_EXAMPLES_NXIMAGE_BPP=16 + + To re-select 8-bits per pixel RGB8 3:3:3 + + # CONFIG_NX_DISABLE_8BPP is not set + CONFIG_NX_DISABLE_16BPP=y + + CONFIG_VNCSERVER_COLORFMT_RGB8=y + # CONFIG_VNCSERVER_COLORFMT_RGB16 is not set + + # CONFIG_EXAMPLES_NXIMAGE_GREYSCALE is not set + CONFIG_EXAMPLES_NXIMAGE_BPP=8 + STATUS: - 2016-04-21: I have gottent he apps/examples/nximage to work - with lots issues with GRAPHICS and UPDATER debug ON. There - are reliability problems and it hangs at the end of the test. - If I turn UPDATE debug off (only), then the display output is - corrupted and I get a hardfault. + 2016-04-21: I have gotten the apps/examples/nximage to work with + lots issues with verbose GRAPHICS and UPDATER debug ON. There are + reliability problems and it hangs at the end of the test. But if + I turn UPDATE debug off (only), then the display output is + corrupted. I have also see hardfaults. Mostly likely, the UPDATER debug output slows the updates and avoids some kind of race condition with the networking. Oddly, it does not work at all if I turn off TCP write buffering. + + 2016-04-22: I added a 100 MS delay at the beginning of the + updater loop and it made no difference. This seems to eliminate + the suspected networking race condition. + + The default configuration now uses RGB8 which needs a lot less + SRAM for the local frame buffer and does not the color quality + in the remote display (since it is also 8 BPP). At 8 BPP, the + remote display is correct (although I still do see problems with + hangs). diff --git a/configs/samv71-xult/vnc/defconfig b/configs/samv71-xult/vnc/defconfig index 945e47f4f8..087f0b0f1d 100644 --- a/configs/samv71-xult/vnc/defconfig +++ b/configs/samv71-xult/vnc/defconfig @@ -901,7 +901,6 @@ CONFIG_FS_PROCFS=y CONFIG_NX=y CONFIG_NX_NPLANES=1 CONFIG_NX_BGCOLOR=0x0 -# CONFIG_NX_ANTIALIASING is not set # CONFIG_NX_WRITEONLY is not set CONFIG_NX_UPDATE=y @@ -911,8 +910,8 @@ CONFIG_NX_UPDATE=y CONFIG_NX_DISABLE_1BPP=y CONFIG_NX_DISABLE_2BPP=y CONFIG_NX_DISABLE_4BPP=y -CONFIG_NX_DISABLE_8BPP=y -# CONFIG_NX_DISABLE_16BPP is not set +# CONFIG_NX_DISABLE_8BPP is not set +CONFIG_NX_DISABLE_16BPP=y CONFIG_NX_DISABLE_24BPP=y CONFIG_NX_DISABLE_32BPP=y CONFIG_NX_PACKEDMSFIRST=y @@ -994,8 +993,8 @@ CONFIG_VNCSERVER_PRIO=100 CONFIG_VNCSERVER_STACKSIZE=2048 CONFIG_VNCSERVER_UPDATER_PRIO=100 CONFIG_VNCSERVER_UPDATER_STACKSIZE=2048 -# CONFIG_VNCSERVER_COLORFMT_RGB8 is not set -CONFIG_VNCSERVER_COLORFMT_RGB16=y +CONFIG_VNCSERVER_COLORFMT_RGB8=y +# CONFIG_VNCSERVER_COLORFMT_RGB16 is not set # CONFIG_VNCSERVER_COLORFMT_RGB32 is not set CONFIG_VNCSERVER_SCREENWIDTH=320 CONFIG_VNCSERVER_SCREENHEIGHT=240 @@ -1129,7 +1128,8 @@ CONFIG_EXAMPLES_NSH=y CONFIG_EXAMPLES_NXIMAGE=y CONFIG_EXAMPLES_NXIMAGE_VPLANE=0 CONFIG_EXAMPLES_NXIMAGE_DEVNO=0 -CONFIG_EXAMPLES_NXIMAGE_BPP=16 +CONFIG_EXAMPLES_NXIMAGE_BPP=8 +# CONFIG_EXAMPLES_NXIMAGE_GREYSCALE is not set # CONFIG_EXAMPLES_NXIMAGE_XSCALEp5 is not set CONFIG_EXAMPLES_NXIMAGE_XSCALE1p0=y # CONFIG_EXAMPLES_NXIMAGE_XSCALE1p5 is not set diff --git a/graphics/vnc/server/vnc_color.c b/graphics/vnc/server/vnc_color.c index 597b9686d6..8543cf7866 100644 --- a/graphics/vnc/server/vnc_color.c +++ b/graphics/vnc/server/vnc_color.c @@ -265,9 +265,14 @@ uint32_t vnc_convert_rgb32_888(lfb_color_t rgb) * Name: vnc_colors * * Description: - * Test the update rectangle to see if it contains complex colors. If it - * contains only a few colors, then it may be a candidate for some type - * run-length encoding. + * Test the update rectangle to see if it contains complex colors. If it + * contains only a few colors, then it may be a candidate for some type + * run-length encoding. + * + * REVISIT: This function is imperfect: It will fail if there are more + * than 8 colors in the region. For small colors, we can keep a local + * array for all color formats and always return the exact result, no + * matter now many colors. * * Input Parameters: * session - An instance of the session structure. @@ -280,15 +285,13 @@ uint32_t vnc_convert_rgb32_888(lfb_color_t rgb) * The number of valid colors in the colors[] array are returned, the * first entry being the most frequent. A negated errno value is returned * if the colors cannot be determined. This would be the case if the color - * depth is > 8 and there are more than 'maxcolors' colors in the update - * rectangle. + * there are more than 'maxcolors' colors in the update rectangle. * ****************************************************************************/ int vnc_colors(FAR struct vnc_session_s *session, FAR struct nxgl_rect_s *rect, unsigned int maxcolors, FAR lfb_color_t *colors) { -#if RFB_PIXELDEPTH > 8 FAR const lfb_color_t *rowstart; FAR const lfb_color_t *pixptr; lfb_color_t pixel; @@ -412,12 +415,4 @@ int vnc_colors(FAR struct vnc_session_s *session, FAR struct nxgl_rect_s *rect, /* And return the number of colors that we found */ return ncolors; - -#else - /* For small colors, we can keep a local array for all color formats and - * always return the exact result, no matter now many colors. OR we could - * just remove this conditional compilation and live with 8 colors max. - */ -# error No support for small colors -#endif } -- GitLab From 3527a5a5d7ac8dea2881919317d2c8b6e8798cd1 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 22 Apr 2016 10:13:53 -0600 Subject: [PATCH 079/307] Update README.txt --- configs/samv71-xult/README.txt | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/configs/samv71-xult/README.txt b/configs/samv71-xult/README.txt index 67477ec39c..2530d33b2e 100644 --- a/configs/samv71-xult/README.txt +++ b/configs/samv71-xult/README.txt @@ -2349,7 +2349,7 @@ Configuration sub-directories CONFIG_EXAMPLES_NXIMAGE_BPP=16 - To re-select 8-bits per pixel RGB8 3:3:3 + To re-select 8-bits per pixel RGB8 3:3:2 # CONFIG_NX_DISABLE_8BPP is not set CONFIG_NX_DISABLE_16BPP=y @@ -2362,10 +2362,10 @@ Configuration sub-directories STATUS: 2016-04-21: I have gotten the apps/examples/nximage to work with - lots issues with verbose GRAPHICS and UPDATER debug ON. There are - reliability problems and it hangs at the end of the test. But if - I turn UPDATE debug off (only), then the display output is - corrupted. I have also see hardfaults. + lots issues with 16-bit RGB and verbose GRAPHICS and UPDATER debug + ON. There are reliability problems and it hangs at the end of the + test. But if I turn UPDATE debug off (only), then the display + output is corrupted. I have also see hardfaults. Mostly likely, the UPDATER debug output slows the updates and avoids some kind of race condition with the networking. Oddly, @@ -2373,10 +2373,11 @@ Configuration sub-directories 2016-04-22: I added a 100 MS delay at the beginning of the updater loop and it made no difference. This seems to eliminate - the suspected networking race condition. + the suspected networking race condition. I am thinking now + either some data overrun or VNC protocol/timing issue? The default configuration now uses RGB8 which needs a lot less - SRAM for the local frame buffer and does not the color quality - in the remote display (since it is also 8 BPP). At 8 BPP, the - remote display is correct (although I still do see problems with - hangs). + SRAM for the local frame buffer and does not degrade the color + quality in the remote display (since it is also 8 BPP). At 8 + BPP, the remote display is correct even with both GRAPHICS and + UPDATER debug OFF -- and there is no hang! -- GitLab From 47c2b3d4a76fc0671eb679e52d6b7621e1fabae7 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 22 Apr 2016 12:48:27 -0600 Subject: [PATCH 080/307] VNC: Add default mouse/keyboard input handlers --- graphics/vnc/server/vnc_keymap.c | 24 ++++++++++ graphics/vnc/server/vnc_receiver.c | 31 ++++++++++++ include/nuttx/video/vnc.h | 75 ++++++++++++++++++++++++++++++ 3 files changed, 130 insertions(+) diff --git a/graphics/vnc/server/vnc_keymap.c b/graphics/vnc/server/vnc_keymap.c index bb5fe3f623..b23e3199a1 100644 --- a/graphics/vnc/server/vnc_keymap.c +++ b/graphics/vnc/server/vnc_keymap.c @@ -48,6 +48,8 @@ #define XK_LATIN1 1 #define XK_XKB_KEYS 1 +#include +#include #include #include @@ -627,4 +629,26 @@ void vnc_key_map(FAR struct vnc_session_s *session, uint16_t keysym, #endif } +/**************************************************************************** + * Function: vnc_kbdout + * + * Description: + * This is the default keyboard callout function. This is simply wrappers around nx_kdbout(), respectively. When configured using vnc_fbinitialize(), the 'arg' must be the correct NXHANDLE value. + * + * Parameters: + * arg - The NXHANDLE from the NX graphics subsystem + * nch - Number of characters + * ch - An array of input characters. + * + * Returned Value: + * None + * + ****************************************************************************/ + +void vnc_kbdout(FAR void *arg, uint8_t nch, FAR const uint8_t *ch) +{ + DEBUGASSERT(arg != NULL); + (void)nx_kbdin((NXHANDLE)arg, nch, ch); +} + #endif /* CONFIG_NX_KBD */ \ No newline at end of file diff --git a/graphics/vnc/server/vnc_receiver.c b/graphics/vnc/server/vnc_receiver.c index 862b39362a..08a001631b 100644 --- a/graphics/vnc/server/vnc_receiver.c +++ b/graphics/vnc/server/vnc_receiver.c @@ -49,6 +49,9 @@ #include #include +#include +#include +#include #include "vnc_server.h" @@ -470,3 +473,31 @@ int vnc_client_encodings(FAR struct vnc_session_s *session, return OK; } + +/**************************************************************************** + * Function: vnc_mouse + * + * Description: + * This is the default keyboard/mouse callout function. This is simply a + * wrapper around nx_mousein(). When + * configured using vnc_fbinitialize(), the 'arg' must be the correct + * NXHANDLE value. + * + * Parameters: + * See vnc_mouseout_t and vnc_kbdout_t typde definitions above. These + * callouts have arguments that match the inputs to nx_kbdin() and + * nx_mousein() (if arg is really of type NXHANDLE). + * + * Returned Value: + * None + * + ****************************************************************************/ + +#ifdef CONFIG_NX_XYINPUT +void vnc_mouseout(FAR void *arg, nxgl_coord_t x, nxgl_coord_t y, + uint8_t buttons) +{ + DEBUGASSERT(arg != NULL); + (void)nx_mousein((NXHANDLE)arg, x, y, buttons); +} +#endif diff --git a/include/nuttx/video/vnc.h b/include/nuttx/video/vnc.h index a3b9f9e675..2dbcbd9e03 100644 --- a/include/nuttx/video/vnc.h +++ b/include/nuttx/video/vnc.h @@ -108,6 +108,8 @@ extern "C" * higher level level callouts can then call nx_kbdin() or nx_mousein() on * behalf of the VNC server. * + * See also vnc_default_fbinitialize() below. + * * Parameters: * display - In the case of hardware with multiple displays, this * specifies the display. Normally this is zero. @@ -129,6 +131,79 @@ extern "C" int vnc_fbinitialize(int display, vnc_kbdout_t kbdout, vnc_mouseout_t mouseout, FAR void *arg); +/**************************************************************************** + * Function: vnc_mouse and vnc_kbdout + * + * Description: + * These are the default keyboard/mouse callout functions. They are + * simply wrappers around nx_mousein() and nx_kdbout(), respectively. When + * configured using vnc_fbinitialize(), the 'arg' must be the correct + * NXHANDLE value. + * + * See also vnc_default_fbinitialize() below. + * + * Parameters: + * See vnc_mouseout_t and vnc_kbdout_t typde definitions above. These + * callouts have arguments that match the inputs to nx_kbdin() and + * nx_mousein() (if arg is really of type NXHANDLE). + * + * Returned Value: + * None + * + ****************************************************************************/ + +#ifdef CONFIG_NX_KBD +void vnc_kbdout(FAR void *arg, uint8_t nch, FAR const uint8_t *ch); +#endif + +#ifdef CONFIG_NX_XYINPUT +void vnc_mouseout(FAR void *arg, nxgl_coord_t x, nxgl_coord_t y, + uint8_t buttons); +#endif + +/**************************************************************************** + * Function: vnc_default_fbinitialize + * + * Description: + * This is just a wrapper around vnc_fbinitialize() that will establish + * the default mouse and keyboard callout functions. + * + * Parameters: + * display - In the case of hardware with multiple displays, this + * specifies the display. Normally this is zero. + * handle - And instance of NXHANDLE returned from initialization of the + * NX graphics system for that display. + * + * Returned Value: + * Zero (OK) is returned on success. Otherwise, a negated errno value is + * returned to indicate the nature of the failure. + * + ****************************************************************************/ + +/* int vnc_default_fbinitialize(nt display, NXHANDLE handle); */ + +#if defined(CONFIG_NX_KBD) && defined(CONFIG_NX_XYINPUT) + +#define vnc_default_fbinitialize(d,h) \ + vnc_fbinitialize((d), vnc_kbdout, vnc_mouseout, (FAR void *)(h)) + +#elif defined(CONFIG_NX_KBD) + +#define vnc_default_fbinitialize(d,h) \ + vnc_fbinitialize((d), vnc_kbdout, NULL, (FAR void *)(h)) + +#elif defined(CONFIG_NX_XYINPUT) + +#define vnc_default_fbinitialize(d,h) \ + vnc_fbinitialize((d), NULL, vnc_mouseout, (FAR void *)(h)) + +#else + +#define vnc_default_fbinitialize(d,h) \ + vnc_fbinitialize((d), NULL, NULL, NULL) + +#endif + #undef EXTERN #ifdef __cplusplus } -- GitLab From 8c1534e3eda71327cfdcc20ac5f1317eb7dff044 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 22 Apr 2016 13:39:35 -0600 Subject: [PATCH 081/307] VNC: Finish initializing the VNC server once we have the NX handle --- configs/sim/src/sim_touchscreen.c | 15 +++++++++++++++ graphics/nxmu/nx_start.c | 16 ---------------- include/nuttx/video/vnc.h | 2 +- 3 files changed, 16 insertions(+), 17 deletions(-) diff --git a/configs/sim/src/sim_touchscreen.c b/configs/sim/src/sim_touchscreen.c index 5187aa411f..c6afc35528 100644 --- a/configs/sim/src/sim_touchscreen.c +++ b/configs/sim/src/sim_touchscreen.c @@ -50,6 +50,10 @@ #include #include +#ifdef CONFIG_VNCSERVER +# include +#endif + /**************************************************************************** * Pre-processor Definitions ****************************************************************************/ @@ -130,6 +134,17 @@ int board_tsc_setup(int minor) goto errout_with_fb; } +#ifdef CONFIG_VNCSERVER + /* Setup the VNC server to support keyboard/mouse inputs */ + + ret = vnc_default_fbinitialize(0, g_simtc.hnx); + if (ret < 0) + { + idbg("vnc_default_fbinitialize failed: %d\n", ret); + goto errout_with_fb; + } +#endif + /* Set the background to the configured background color */ ivdbg("Set background color=%d\n", CONFIG_EXAMPLES_TOUCHSCREEN_BGCOLOR); diff --git a/graphics/nxmu/nx_start.c b/graphics/nxmu/nx_start.c index 78e98132ee..814dc5a70c 100644 --- a/graphics/nxmu/nx_start.c +++ b/graphics/nxmu/nx_start.c @@ -53,22 +53,6 @@ #ifdef CONFIG_NX_NXSTART -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Types - ****************************************************************************/ - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Public Data - ****************************************************************************/ - /**************************************************************************** * Private Functions ****************************************************************************/ diff --git a/include/nuttx/video/vnc.h b/include/nuttx/video/vnc.h index 2dbcbd9e03..fdb1dfd4a9 100644 --- a/include/nuttx/video/vnc.h +++ b/include/nuttx/video/vnc.h @@ -180,7 +180,7 @@ void vnc_mouseout(FAR void *arg, nxgl_coord_t x, nxgl_coord_t y, * ****************************************************************************/ -/* int vnc_default_fbinitialize(nt display, NXHANDLE handle); */ +/* int vnc_default_fbinitialize(int display, NXHANDLE handle); */ #if defined(CONFIG_NX_KBD) && defined(CONFIG_NX_XYINPUT) -- GitLab From fab5a71fe585f4187014e2ea759b23960652dcbd Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 23 Apr 2016 08:21:15 -0600 Subject: [PATCH 082/307] Add a VNC NxWM configuration to support further VNC testing --- ChangeLog | 4 +- configs/samv71-xult/README.txt | 163 ++- configs/samv71-xult/vnxwm/Make.defs | 117 ++ configs/samv71-xult/vnxwm/defconfig | 1567 +++++++++++++++++++++++++++ configs/samv71-xult/vnxwm/setenv.sh | 77 ++ 5 files changed, 1910 insertions(+), 18 deletions(-) create mode 100644 configs/samv71-xult/vnxwm/Make.defs create mode 100644 configs/samv71-xult/vnxwm/defconfig create mode 100644 configs/samv71-xult/vnxwm/setenv.sh diff --git a/ChangeLog b/ChangeLog index 3686531d89..faa17d5bbf 100755 --- a/ChangeLog +++ b/ChangeLog @@ -11671,5 +11671,7 @@ * arch/arm/src/stm32 and configs/stm32f429i-disco: Correct some bad commits that broke the LTDC display example. From Marco Krahl (2016-04-22). - + * configs/samv71-xult/vnwwm: Add a more complex NxWM configuration + to support further VNC testing (particularly of VNC keyboard and + mouse intputs). Initial configuration is not functional (2016-04-23). diff --git a/configs/samv71-xult/README.txt b/configs/samv71-xult/README.txt index 2530d33b2e..1efb630215 100644 --- a/configs/samv71-xult/README.txt +++ b/configs/samv71-xult/README.txt @@ -2206,25 +2206,25 @@ Configuration sub-directories The NxWM window manager can be found here: - nuttx-git/NxWidgets/nxwm + NxWidgets/nxwm The NxWM unit test can be found at: - nuttx-git/NxWidgets/UnitTests/nxwm + NxWidgets/UnitTests/nxwm Documentation for installing the NxWM unit test can be found here: - nuttx-git/NxWidgets/UnitTests/README.txt + NxWidgets/UnitTests/README.txt 2. Here is the quick summary of the build steps. These steps assume - that you have the entire NuttX GIT in some directory ~/nuttx-git. - You may have these components installed elsewhere. In that case, you + that you have the entire NuttX GIT in some directory HOME. You may + have these components installed elsewhere. In that case, you will need to adjust all of the paths in the following accordingly: - a. Install the nxwm configuration + a. Install the VNC nxwm configuration - $ cd ~/nuttx-git/nuttx/tools - $ ./configure.sh samv71-xult/nxwm + $ cd HOME/nuttx/tools + $ ./configure.sh samv71-xult/vnc b. Make the build context (only) @@ -2241,27 +2241,27 @@ Configuration sub-directories c. Install the nxwm unit test - $ cd ~/nuttx-git/NxWidgets - $ tools/install.sh ~/nuttx-git/apps nxwm + $ cd HOME/NxWidgets + $ tools/install.sh HOME/apps nxwm Creating symbolic link - - To ~/nuttx-git/NxWidgets/UnitTests/nxwm - - At ~/nuttx-git/apps/external + - To HOME/NxWidgets/UnitTests/nxwm + - At HOME/apps/external d. Build the NxWidgets library - $ cd ~/nuttx-git/NxWidgets/libnxwidgets - $ make TOPDIR=~/nuttx-git/nuttx + $ cd HOME/NxWidgets/libnxwidgets + $ make TOPDIR=HOME/nuttx ... e. Build the NxWM library - $ cd ~/nuttx-git/NxWidgets/nxwm - $ make TOPDIR=~/nuttx-git/nuttx + $ cd HOME/NxWidgets/nxwm + $ make TOPDIR=HOME/nuttx ... f. Built NuttX with the installed unit test as the application - $ cd ~/nuttx-git/nuttx + $ cd HOME/nuttx $ make 3. Reading from the LCD is not currently functional. The following @@ -2381,3 +2381,132 @@ Configuration sub-directories quality in the remote display (since it is also 8 BPP). At 8 BPP, the remote display is correct even with both GRAPHICS and UPDATER debug OFF -- and there is no hang! + + 2106-04-23: The NxImage example at apps/examplex/nximage. This was + selected because it is a very simple graphics test. Continued + testing, however, requires a more complex configuration. Hence, + the vnxwm configuration was created. + + vnxwm: + + This is a special configuration setup for the NxWM window manager + UnitTest. It provides an interactive windowing experience via a remote + VNC client window running on your PC. The SAMV71-XULT is connected to + the PC via Ethernet. + + NOTES: + + 1. The NxWM window manager is a tiny window manager tailored for use + with smaller LCDs. It supports a task, a start window, and + multiple application windows with toolbars. However, to make the + best use of the visible LCD space, only one application window is + visible at at time. + + The NxWM window manager can be found here: + + NxWidgets/nxwm + + The NxWM unit test can be found at: + + NxWidgets/UnitTests/nxwm + + Documentation for installing the NxWM unit test can be found here: + + NxWidgets/UnitTests/README.txt + + 2. Here is the quick summary of the build steps. These steps assume + that you have the entire NuttX GIT in some directory HOME. You may + have these components installed elsewhere. In that case, you + will need to adjust all of the paths in the following accordingly: + + a. Install the nxwm configuration + + $ cd HOME/nuttx/tools + $ ./configure.sh samv71-xult/nxwm + + b. Make the build context (only) + + $ cd .. + $ . ./setenv.sh + $ make context + ... + + NOTE: the use of the setenv.sh file is optional. All that it will + do is to adjust your PATH variable so that the build system can find + your tools. If you use it, you will most likely need to modify the + script so that it has the correct path to your tool binaries + directory. + + c. Install the nxwm unit test + + $ cd HOME/NxWidgets + $ tools/install.sh HOME/apps nxwm + Creating symbolic link + - To HOME/NxWidgets/UnitTests/nxwm + - At HOME/apps/external + + d. Build the NxWidgets library + + $ cd HOME/NxWidgets/libnxwidgets + $ make TOPDIR=HOME/nuttx + ... + + e. Build the NxWM library + + $ cd HOME/NxWidgets/nxwm + $ make TOPDIR=HOME/nuttx + ... + + f. Built NuttX with the installed unit test as the application + + $ cd HOME/nuttx + $ make + + 3. Network configuration: IP address 10.0.0.2. The is easily changed + via 'make menuconfig'. The VNC server address is 10.0.0.2:5900. + + 4. The default (local) framebuffer configuration is 320x240 with 8-bit + RGB color. + + I had some problems at 16-bits per pixle (see STATUS below). To + select 16-bits per pixel RGB15 5:6:5 + + CONFIG_NX_DISABLE_8BPP=y + # CONFIG_NX_DISABLE_16BPP is not set + + # CONFIG_VNCSERVER_COLORFMT_RGB8 is not set + CONFIG_VNCSERVER_COLORFMT_RGB16=y + + CONFIG_EXAMPLES_NXIMAGE_BPP=16 + + To re-select 8-bits per pixel RGB8 3:3:2 + + # CONFIG_NX_DISABLE_8BPP is not set + CONFIG_NX_DISABLE_16BPP=y + + CONFIG_VNCSERVER_COLORFMT_RGB8=y + # CONFIG_VNCSERVER_COLORFMT_RGB16 is not set + + # CONFIG_EXAMPLES_NXIMAGE_GREYSCALE is not set + CONFIG_EXAMPLES_NXIMAGE_BPP=8 + + 5. There are complicated interactions between VNC and the network + configuration. The CONFIG_VNCSERVER_UPDATE_BUFSIZE determines the + size of update messages. That is 1024 bytes in that configuration + (the full message with the header will be a little larger). The + MTU (CONFIG_NET_ETH_MTU) is set to 590 so that a full update will + require several packets. + + Write buffering also effects network performance. This will break + up the large updates into small (196 byte) groups. When we run out + of read-ahead buffers, then partial updates may be sent causing a + loss of synchronization. + + STATUS: + 2106-04-23: Configuration created. See status up to this data in + the vnc configuration. That probably all applies here as well. + + Only some initial testing has been performed: The configuration + does not work. No crashes or errors are reported, but the VNC + client window stays black. I have not yet dug into this. + \ No newline at end of file diff --git a/configs/samv71-xult/vnxwm/Make.defs b/configs/samv71-xult/vnxwm/Make.defs new file mode 100644 index 0000000000..fe4fd97aeb --- /dev/null +++ b/configs/samv71-xult/vnxwm/Make.defs @@ -0,0 +1,117 @@ +############################################################################ +# configs/samv71-xult/vnxwm/Make.defs +# +# Copyright (C) 2016 Gregory Nutt. All rights reserved. +# Author: Gregory Nutt +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# 3. Neither the name NuttX nor the names of its contributors may be +# used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +############################################################################ + +include ${TOPDIR}/.config +include ${TOPDIR}/tools/Config.mk +include ${TOPDIR}/arch/arm/src/armv7-m/Toolchain.defs + +ifeq ($(CONFIG_ARMV7M_DTCM),y) + LDSCRIPT = flash-dtcm.ld +else + LDSCRIPT = flash-sram.ld +endif + +ifeq ($(WINTOOL),y) + # Windows-native toolchains + DIRLINK = $(TOPDIR)/tools/copydir.sh + DIRUNLINK = $(TOPDIR)/tools/unlink.sh + MKDEP = $(TOPDIR)/tools/mkwindeps.sh + ARCHINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)/include}" + ARCHXXINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)/include}" -isystem "${shell cygpath -w $(TOPDIR)/include/cxx}" + ARCHSCRIPT = -T "${shell cygpath -w $(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/$(LDSCRIPT)}" +else + # Linux/Cygwin-native toolchain + MKDEP = $(TOPDIR)/tools/mkdeps$(HOSTEXEEXT) + ARCHINCLUDES = -I. -isystem $(TOPDIR)/include + ARCHXXINCLUDES = -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx + ARCHSCRIPT = -T$(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/$(LDSCRIPT) +endif + +CC = $(CROSSDEV)gcc +CXX = $(CROSSDEV)g++ +CPP = $(CROSSDEV)gcc -E +LD = $(CROSSDEV)ld +AR = $(CROSSDEV)ar rcs +NM = $(CROSSDEV)nm +OBJCOPY = $(CROSSDEV)objcopy +OBJDUMP = $(CROSSDEV)objdump + +ARCHCCVERSION = ${shell $(CC) -v 2>&1 | sed -n '/^gcc version/p' | sed -e 's/^gcc version \([0-9\.]\)/\1/g' -e 's/[-\ ].*//g' -e '1q'} +ARCHCCMAJOR = ${shell echo $(ARCHCCVERSION) | cut -d'.' -f1} + +ifeq ($(CONFIG_DEBUG_SYMBOLS),y) + ARCHOPTIMIZATION = -g +endif + +ifneq ($(CONFIG_DEBUG_NOOPT),y) + ARCHOPTIMIZATION += $(MAXOPTIMIZATION) +endif + +ARCHCFLAGS = -fno-builtin +ARCHCXXFLAGS = -fno-builtin -fno-exceptions -fno-rtti +ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef -fno-strict-aliasing +ARCHWARNINGSXX = -Wall -Wshadow -Wundef +ARCHDEFINES = +ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10 + +CFLAGS = $(ARCHCFLAGS) $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe +CPICFLAGS = $(ARCHPICFLAGS) $(CFLAGS) +CXXFLAGS = $(ARCHCXXFLAGS) $(ARCHWARNINGSXX) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHXXINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe +CXXPICFLAGS = $(ARCHPICFLAGS) $(CXXFLAGS) +CPPFLAGS = $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) +AFLAGS = $(CFLAGS) -D__ASSEMBLY__ + +NXFLATLDFLAGS1 = -r -d -warn-common +NXFLATLDFLAGS2 = $(NXFLATLDFLAGS1) -T$(TOPDIR)/binfmt/libnxflat/gnu-nxflat-pcrel.ld -no-check-sections +LDNXFLATFLAGS = -e main -s 2048 + +ASMEXT = .S +OBJEXT = .o +LIBEXT = .a +EXEEXT = + +ifneq ($(CROSSDEV),arm-nuttx-elf-) + LDFLAGS += -nostartfiles -nodefaultlibs +endif +ifeq ($(CONFIG_DEBUG_SYMBOLS),y) + LDFLAGS += -g +endif + + +HOSTCC = gcc +HOSTINCLUDES = -I. +HOSTCFLAGS = -Wall -Wstrict-prototypes -Wshadow -Wundef -g -pipe +HOSTLDFLAGS = + diff --git a/configs/samv71-xult/vnxwm/defconfig b/configs/samv71-xult/vnxwm/defconfig new file mode 100644 index 0000000000..3e074f2709 --- /dev/null +++ b/configs/samv71-xult/vnxwm/defconfig @@ -0,0 +1,1567 @@ +# +# Automatically generated file; DO NOT EDIT. +# Nuttx/ Configuration +# + +# +# Build Setup +# +CONFIG_EXPERIMENTAL=y +# CONFIG_DEFAULT_SMALL is not set +# CONFIG_HOST_LINUX is not set +# CONFIG_HOST_OSX is not set +CONFIG_HOST_WINDOWS=y +# CONFIG_HOST_OTHER is not set +# CONFIG_WINDOWS_NATIVE is not set +CONFIG_WINDOWS_CYGWIN=y +# CONFIG_WINDOWS_MSYS is not set +# CONFIG_WINDOWS_OTHER is not set + +# +# Build Configuration +# +# CONFIG_APPS_DIR="../apps" +CONFIG_BUILD_FLAT=y +# CONFIG_BUILD_2PASS is not set + +# +# Binary Output Formats +# +# CONFIG_RRLOAD_BINARY is not set +# CONFIG_INTELHEX_BINARY is not set +# CONFIG_MOTOROLA_SREC is not set +CONFIG_RAW_BINARY=y +# CONFIG_UBOOT_UIMAGE is not set + +# +# Customize Header Files +# +# CONFIG_ARCH_STDINT_H is not set +# CONFIG_ARCH_STDBOOL_H is not set +# CONFIG_ARCH_MATH_H is not set +# CONFIG_ARCH_FLOAT_H is not set +# CONFIG_ARCH_STDARG_H is not set +# CONFIG_ARCH_DEBUG_H is not set + +# +# Debug Options +# +# CONFIG_DEBUG is not set +# CONFIG_ARCH_HAVE_HEAPCHECK is not set +CONFIG_ARCH_HAVE_STACKCHECK=y +# CONFIG_STACK_COLORATION is not set +CONFIG_DEBUG_SYMBOLS=y +CONFIG_ARCH_HAVE_CUSTOMOPT=y +# CONFIG_DEBUG_NOOPT is not set +# CONFIG_DEBUG_CUSTOMOPT is not set +CONFIG_DEBUG_FULLOPT=y + +# +# System Type +# +CONFIG_ARCH_ARM=y +# CONFIG_ARCH_AVR is not set +# CONFIG_ARCH_HC is not set +# CONFIG_ARCH_MIPS is not set +# CONFIG_ARCH_RGMP is not set +# CONFIG_ARCH_SH is not set +# CONFIG_ARCH_SIM is not set +# CONFIG_ARCH_X86 is not set +# CONFIG_ARCH_Z16 is not set +# CONFIG_ARCH_Z80 is not set +CONFIG_ARCH="arm" + +# +# ARM Options +# +# CONFIG_ARCH_CHIP_A1X is not set +# CONFIG_ARCH_CHIP_C5471 is not set +# CONFIG_ARCH_CHIP_CALYPSO is not set +# CONFIG_ARCH_CHIP_DM320 is not set +# CONFIG_ARCH_CHIP_EFM32 is not set +# CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set +# CONFIG_ARCH_CHIP_KINETIS is not set +# CONFIG_ARCH_CHIP_KL is not set +# CONFIG_ARCH_CHIP_LM is not set +# CONFIG_ARCH_CHIP_TIVA is not set +# CONFIG_ARCH_CHIP_LPC11XX is not set +# CONFIG_ARCH_CHIP_LPC17XX is not set +# CONFIG_ARCH_CHIP_LPC214X is not set +# CONFIG_ARCH_CHIP_LPC2378 is not set +# CONFIG_ARCH_CHIP_LPC31XX is not set +# CONFIG_ARCH_CHIP_LPC43XX is not set +# CONFIG_ARCH_CHIP_NUC1XX is not set +# CONFIG_ARCH_CHIP_SAMA5 is not set +# CONFIG_ARCH_CHIP_SAMD is not set +# CONFIG_ARCH_CHIP_SAML is not set +# CONFIG_ARCH_CHIP_SAM34 is not set +CONFIG_ARCH_CHIP_SAMV7=y +# CONFIG_ARCH_CHIP_STM32 is not set +# CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set +# CONFIG_ARCH_CHIP_STR71X is not set +# CONFIG_ARCH_CHIP_TMS570 is not set +# CONFIG_ARCH_CHIP_MOXART is not set +# CONFIG_ARCH_ARM7TDMI is not set +# CONFIG_ARCH_ARM926EJS is not set +# CONFIG_ARCH_ARM920T is not set +# CONFIG_ARCH_CORTEXM0 is not set +# CONFIG_ARCH_CORTEXM3 is not set +# CONFIG_ARCH_CORTEXM4 is not set +CONFIG_ARCH_CORTEXM7=y +# CONFIG_ARCH_CORTEXA5 is not set +# CONFIG_ARCH_CORTEXA8 is not set +# CONFIG_ARCH_CORTEXA9 is not set +# CONFIG_ARCH_CORTEXR4 is not set +# CONFIG_ARCH_CORTEXR4F is not set +# CONFIG_ARCH_CORTEXR5 is not set +# CONFIG_ARCH_CORTEX5F is not set +# CONFIG_ARCH_CORTEXR7 is not set +# CONFIG_ARCH_CORTEXR7F is not set +CONFIG_ARCH_FAMILY="armv7-m" +CONFIG_ARCH_CHIP="samv7" +# CONFIG_ARM_TOOLCHAIN_IAR is not set +CONFIG_ARM_TOOLCHAIN_GNU=y +# CONFIG_ARMV7M_USEBASEPRI is not set +CONFIG_ARCH_HAVE_CMNVECTOR=y +CONFIG_ARMV7M_CMNVECTOR=y +CONFIG_ARMV7M_LAZYFPU=y +CONFIG_ARCH_HAVE_FPU=y +CONFIG_ARCH_HAVE_DPFPU=y +CONFIG_ARCH_FPU=y +CONFIG_ARCH_DPFPU=y +# CONFIG_ARCH_HAVE_TRUSTZONE is not set +CONFIG_ARM_HAVE_MPU_UNIFIED=y +# CONFIG_ARM_MPU is not set + +# +# ARMV7M Configuration Options +# +CONFIG_ARMV7M_HAVE_ICACHE=y +CONFIG_ARMV7M_HAVE_DCACHE=y +CONFIG_ARMV7M_ICACHE=y +CONFIG_ARMV7M_DCACHE=y +CONFIG_ARMV7M_DCACHE_WRITETHROUGH=y +CONFIG_ARMV7M_HAVE_ITCM=y +CONFIG_ARMV7M_HAVE_DTCM=y +# CONFIG_ARMV7M_ITCM is not set +# CONFIG_ARMV7M_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARW is not set +# CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC is not set +# CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set +# CONFIG_ARMV7M_TOOLCHAIN_CODEREDW is not set +# CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW is not set +# CONFIG_ARMV7M_TOOLCHAIN_DEVKITARM is not set +# CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL is not set +CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIW=y +# CONFIG_ARMV7M_TOOLCHAIN_RAISONANCE is not set +CONFIG_ARMV7M_HAVE_STACKCHECK=y +# CONFIG_ARMV7M_STACKCHECK is not set +# CONFIG_ARMV7M_ITMSYSLOG is not set +# CONFIG_SERIAL_TERMIOS is not set +CONFIG_SDIO_DMA=y +# CONFIG_SDIO_WIDTH_D1_ONLY is not set + +# +# SAMV7 Configuration Options +# +# CONFIG_ARCH_CHIP_SAME70Q19 is not set +# CONFIG_ARCH_CHIP_SAME70Q20 is not set +# CONFIG_ARCH_CHIP_SAME70Q21 is not set +# CONFIG_ARCH_CHIP_SAME70N19 is not set +# CONFIG_ARCH_CHIP_SAME70N20 is not set +# CONFIG_ARCH_CHIP_SAME70N21 is not set +# CONFIG_ARCH_CHIP_SAME70J19 is not set +# CONFIG_ARCH_CHIP_SAME70J20 is not set +# CONFIG_ARCH_CHIP_SAME70J21 is not set +# CONFIG_ARCH_CHIP_SAMV71Q19 is not set +# CONFIG_ARCH_CHIP_SAMV71Q20 is not set +CONFIG_ARCH_CHIP_SAMV71Q21=y +# CONFIG_ARCH_CHIP_SAMV71N19 is not set +# CONFIG_ARCH_CHIP_SAMV71N20 is not set +# CONFIG_ARCH_CHIP_SAMV71N21 is not set +# CONFIG_ARCH_CHIP_SAMV71J19 is not set +# CONFIG_ARCH_CHIP_SAMV71J20 is not set +# CONFIG_ARCH_CHIP_SAMV71J21 is not set +# CONFIG_ARCH_CHIP_SAME70 is not set +# CONFIG_ARCH_CHIP_SAME70Q is not set +# CONFIG_ARCH_CHIP_SAME70N is not set +# CONFIG_ARCH_CHIP_SAME70J is not set +CONFIG_ARCH_CHIP_SAMV71=y +CONFIG_ARCH_CHIP_SAMV71Q=y +# CONFIG_ARCH_CHIP_SAMV71N is not set +# CONFIG_ARCH_CHIP_SAMV71J is not set +# CONFIG_SAMV7_MCAN is not set +CONFIG_SAMV7_HAVE_MCAN1=y +CONFIG_SAMV7_HAVE_DAC1=y +CONFIG_SAMV7_HAVE_EBI=y +CONFIG_SAMV7_EMAC=y +CONFIG_SAMV7_HSMCI=y +CONFIG_SAMV7_HAVE_HSMCI0=y +# CONFIG_SAMV7_HAVE_ISI8 is not set +CONFIG_SAMV7_HAVE_MEDIALB=y +CONFIG_SAMV7_HAVE_SDRAMC=y +CONFIG_SAMV7_HAVE_SPI0=y +CONFIG_SAMV7_HAVE_SPI1=y +# CONFIG_SAMV7_QSPI_IS_SPI is not set +# CONFIG_SAMV7_SSC is not set +# CONFIG_SAMV7_HAVE_TC is not set +CONFIG_SAMV7_HAVE_TWIHS2=y +# CONFIG_SAMV7_HAVE_USBFS is not set +CONFIG_SAMV7_HAVE_USBHS=y +CONFIG_SAMV7_HAVE_USART0=y +CONFIG_SAMV7_HAVE_USART1=y +CONFIG_SAMV7_HAVE_USART2=y +# CONFIG_SAMV7_SPI is not set +# CONFIG_SAMV7_SPI_MASTER is not set +# CONFIG_SAMV7_SPI_SLAVE is not set + +# +# SAMV7 Peripheral Selection +# +# CONFIG_SAMV7_ACC is not set +# CONFIG_SAMV7_ADC is not set +# CONFIG_SAMV7_AFEC0 is not set +# CONFIG_SAMV7_AFEC1 is not set +# CONFIG_SAMV7_MCAN0 is not set +# CONFIG_SAMV7_MCAN1 is not set +# CONFIG_SAMV7_DAC0 is not set +# CONFIG_SAMV7_DAC1 is not set +# CONFIG_SAMV7_EBI is not set +CONFIG_SAMV7_EMAC0=y +CONFIG_SAMV7_XDMAC=y +CONFIG_SAMV7_HSMCI0=y +# CONFIG_SAMV7_ISI is not set +# CONFIG_SAMV7_MLB is not set +# CONFIG_SAMV7_PWM0 is not set +# CONFIG_SAMV7_PWM1 is not set +# CONFIG_SAMV7_QSPI is not set +# CONFIG_SAMV7_RTC is not set +# CONFIG_SAMV7_RTT is not set +# CONFIG_SAMV7_SDRAMC is not set +# CONFIG_SAMV7_SMC is not set +# CONFIG_SAMV7_SPI0 is not set +# CONFIG_SAMV7_SPI1 is not set +# CONFIG_SAMV7_SSC0 is not set +# CONFIG_SAMV7_TC0 is not set +# CONFIG_SAMV7_TC1 is not set +# CONFIG_SAMV7_TC2 is not set +# CONFIG_SAMV7_TC3 is not set +# CONFIG_SAMV7_TRNG is not set +CONFIG_SAMV7_TWIHS0=y +# CONFIG_SAMV7_TWIHS1 is not set +# CONFIG_SAMV7_TWIHS2 is not set +# CONFIG_SAMV7_UART0 is not set +# CONFIG_SAMV7_UART1 is not set +# CONFIG_SAMV7_UART2 is not set +CONFIG_SAMV7_UART3=y +# CONFIG_SAMV7_UART4 is not set +# CONFIG_SAMV7_USBDEVHS is not set +# CONFIG_SAMV7_USBHOSTHS is not set +# CONFIG_SAMV7_USART0 is not set +# CONFIG_SAMV7_USART1 is not set +# CONFIG_SAMV7_USART2 is not set +# CONFIG_SAMV7_WDT is not set +# CONFIG_SAMV7_RSWDT is not set +CONFIG_SAMV7_GPIO_IRQ=y +CONFIG_SAMV7_GPIOA_IRQ=y +CONFIG_SAMV7_GPIOB_IRQ=y +# CONFIG_SAMV7_GPIOC_IRQ is not set +CONFIG_SAMV7_GPIOD_IRQ=y +# CONFIG_SAMV7_GPIOE_IRQ is not set +# CONFIG_SAMV7_PROGMEM is not set + +# +# TWIHS device driver options +# +CONFIG_SAMV7_TWIHS0_FREQUENCY=100000 + +# +# HSMCI device driver options +# +# CONFIG_SAMV7_HSMCI_RDPROOF is not set +# CONFIG_SAMV7_HSMCI_WRPROOF is not set +# CONFIG_SAMV7_HSMCI_UNALIGNED is not set + +# +# EMAC device driver options +# +CONFIG_SAMV7_EMAC0_NRXBUFFERS=16 +CONFIG_SAMV7_EMAC0_NTXBUFFERS=8 +CONFIG_SAMV7_EMAC0_PHYADDR=1 +# CONFIG_SAMV7_EMAC0_PHYINIT is not set +# CONFIG_SAMV7_EMAC0_MII is not set +CONFIG_SAMV7_EMAC0_RMII=y +CONFIG_SAMV7_EMAC0_AUTONEG=y +CONFIG_SAMV7_EMAC0_PHYSR=30 +CONFIG_SAMV7_EMAC0_PHYSR_ALTCONFIG=y +CONFIG_SAMV7_EMAC0_PHYSR_ALTMODE=0x7 +CONFIG_SAMV7_EMAC0_PHYSR_10HD=0x1 +CONFIG_SAMV7_EMAC0_PHYSR_100HD=0x2 +CONFIG_SAMV7_EMAC0_PHYSR_10FD=0x5 +CONFIG_SAMV7_EMAC0_PHYSR_100FD=0x6 +CONFIG_SAMV7_EMAC0_ISETH0=y +# CONFIG_SAMV7_EMAC_PREALLOCATE is not set +# CONFIG_SAMV7_EMAC_NBC is not set + +# +# Architecture Options +# +# CONFIG_ARCH_NOINTC is not set +# CONFIG_ARCH_VECNOTIRQ is not set +CONFIG_ARCH_DMA=y +CONFIG_ARCH_HAVE_IRQPRIO=y +# CONFIG_ARCH_L2CACHE is not set +# CONFIG_ARCH_HAVE_COHERENT_DCACHE is not set +# CONFIG_ARCH_HAVE_ADDRENV is not set +# CONFIG_ARCH_NEED_ADDRENV_MAPPING is not set +# CONFIG_ARCH_HAVE_MULTICPU is not set +CONFIG_ARCH_HAVE_VFORK=y +# CONFIG_ARCH_HAVE_MMU is not set +CONFIG_ARCH_HAVE_MPU=y +# CONFIG_ARCH_NAND_HWECC is not set +# CONFIG_ARCH_HAVE_EXTCLK is not set +# CONFIG_ARCH_HAVE_POWEROFF is not set +# CONFIG_ARCH_HAVE_RESET is not set +# CONFIG_ARCH_USE_MPU is not set +# CONFIG_ARCH_IRQPRIO is not set +CONFIG_ARCH_STACKDUMP=y +# CONFIG_ENDIAN_BIG is not set +# CONFIG_ARCH_IDLE_CUSTOM is not set +CONFIG_ARCH_HAVE_RAMFUNCS=y +# CONFIG_ARCH_RAMFUNCS is not set +CONFIG_ARCH_HAVE_RAMVECTORS=y +# CONFIG_ARCH_RAMVECTORS is not set + +# +# Board Settings +# +CONFIG_BOARD_LOOPSPERMSEC=51262 +# CONFIG_ARCH_CALIBRATION is not set + +# +# Interrupt options +# +CONFIG_ARCH_HAVE_INTERRUPTSTACK=y +CONFIG_ARCH_INTERRUPTSTACK=2048 +CONFIG_ARCH_HAVE_HIPRI_INTERRUPT=y +# CONFIG_ARCH_HIPRI_INTERRUPT is not set + +# +# Boot options +# +# CONFIG_BOOT_RUNFROMEXTSRAM is not set +CONFIG_BOOT_RUNFROMFLASH=y +# CONFIG_BOOT_RUNFROMISRAM is not set +# CONFIG_BOOT_RUNFROMSDRAM is not set +# CONFIG_BOOT_COPYTORAM is not set + +# +# Boot Memory Configuration +# +CONFIG_RAM_START=0x20400000 +CONFIG_RAM_SIZE=393216 +# CONFIG_ARCH_HAVE_SDRAM is not set + +# +# Board Selection +# +CONFIG_ARCH_BOARD_SAMV71_XULT=y +# CONFIG_ARCH_BOARD_CUSTOM is not set +CONFIG_ARCH_BOARD="samv71-xult" + +# +# Common Board Options +# +CONFIG_ARCH_HAVE_LEDS=y +CONFIG_ARCH_LEDS=y +CONFIG_ARCH_HAVE_BUTTONS=y +CONFIG_ARCH_BUTTONS=y +CONFIG_ARCH_HAVE_IRQBUTTONS=y +CONFIG_ARCH_IRQBUTTONS=y +CONFIG_NSH_MMCSDMINOR=0 +CONFIG_NSH_MMCSDSLOTNO=0 + +# +# Board-Specific Options +# +# CONFIG_SAMV71XULT_MXTXPLND is not set +CONFIG_LIB_BOARDCTL=y +# CONFIG_BOARDCTL_UNIQUEID is not set +# CONFIG_BOARDCTL_TSCTEST is not set +# CONFIG_BOARDCTL_ADCTEST is not set +# CONFIG_BOARDCTL_PWMTEST is not set +# CONFIG_BOARDCTL_GRAPHICS is not set +# CONFIG_BOARDCTL_IOCTL is not set + +# +# RTOS Features +# +CONFIG_DISABLE_OS_API=y +# CONFIG_DISABLE_POSIX_TIMERS is not set +# CONFIG_DISABLE_PTHREAD is not set +# CONFIG_DISABLE_SIGNALS is not set +# CONFIG_DISABLE_MQUEUE is not set +# CONFIG_DISABLE_ENVIRON is not set + +# +# Clocks and Timers +# +CONFIG_ARCH_HAVE_TICKLESS=y +# CONFIG_SCHED_TICKLESS is not set +CONFIG_USEC_PER_TICK=10000 +# CONFIG_SYSTEM_TIME64 is not set +# CONFIG_CLOCK_MONOTONIC is not set +# CONFIG_JULIAN_TIME is not set +CONFIG_START_YEAR=2014 +CONFIG_START_MONTH=3 +CONFIG_START_DAY=10 +CONFIG_MAX_WDOGPARMS=2 +CONFIG_PREALLOC_WDOGS=32 +CONFIG_WDOG_INTRESERVE=4 +CONFIG_PREALLOC_TIMERS=4 + +# +# Tasks and Scheduling +# +# CONFIG_SPINLOCK is not set +# CONFIG_INIT_NONE is not set +CONFIG_INIT_ENTRYPOINT=y +# CONFIG_INIT_FILEPATH is not set +CONFIG_USER_ENTRYPOINT="nxwm_main" +CONFIG_RR_INTERVAL=200 +# CONFIG_SCHED_SPORADIC is not set +CONFIG_TASK_NAME_SIZE=31 +CONFIG_MAX_TASKS=16 +CONFIG_SCHED_HAVE_PARENT=y +# CONFIG_SCHED_CHILD_STATUS is not set +CONFIG_SCHED_WAITPID=y + +# +# Pthread Options +# +# CONFIG_MUTEX_TYPES is not set +CONFIG_NPTHREAD_KEYS=4 + +# +# Performance Monitoring +# +# CONFIG_SCHED_CPULOAD is not set +# CONFIG_SCHED_INSTRUMENTATION is not set + +# +# Files and I/O +# +CONFIG_DEV_CONSOLE=y +# CONFIG_FDCLONE_DISABLE is not set +# CONFIG_FDCLONE_STDIO is not set +CONFIG_SDCLONE_DISABLE=y +CONFIG_NFILE_DESCRIPTORS=8 +CONFIG_NFILE_STREAMS=8 +CONFIG_NAME_MAX=32 +# CONFIG_PRIORITY_INHERITANCE is not set + +# +# RTOS hooks +# +# CONFIG_BOARD_INITIALIZE is not set +# CONFIG_SCHED_STARTHOOK is not set +# CONFIG_SCHED_ATEXIT is not set +CONFIG_SCHED_ONEXIT=y +CONFIG_SCHED_ONEXIT_MAX=1 +# CONFIG_SIG_EVTHREAD is not set + +# +# Signal Numbers +# +CONFIG_SIG_SIGUSR1=1 +CONFIG_SIG_SIGUSR2=2 +CONFIG_SIG_SIGALARM=3 +CONFIG_SIG_SIGCHLD=4 +CONFIG_SIG_SIGCONDTIMEDOUT=16 +CONFIG_SIG_SIGWORK=17 + +# +# POSIX Message Queue Options +# +CONFIG_PREALLOC_MQ_MSGS=32 +CONFIG_MQ_MAXMSGSIZE=64 +# CONFIG_MODULE is not set + +# +# Work queue support +# +CONFIG_SCHED_WORKQUEUE=y +CONFIG_SCHED_HPWORK=y +CONFIG_SCHED_HPWORKPRIORITY=192 +CONFIG_SCHED_HPWORKPERIOD=50000 +CONFIG_SCHED_HPWORKSTACKSIZE=2048 +# CONFIG_SCHED_LPWORK is not set + +# +# Stack and heap information +# +CONFIG_IDLETHREAD_STACKSIZE=1024 +CONFIG_USERMAIN_STACKSIZE=1526 +CONFIG_PTHREAD_STACK_MIN=256 +CONFIG_PTHREAD_STACK_DEFAULT=2048 +# CONFIG_LIB_SYSCALL is not set + +# +# Device Drivers +# +CONFIG_DISABLE_POLL=y +CONFIG_DEV_NULL=y +# CONFIG_DEV_ZERO is not set +# CONFIG_DEV_LOOP is not set + +# +# Buffering +# +# CONFIG_DRVR_WRITEBUFFER is not set +# CONFIG_DRVR_READAHEAD is not set +# CONFIG_RAMDISK is not set +# CONFIG_CAN is not set +# CONFIG_ARCH_HAVE_PWM_PULSECOUNT is not set +# CONFIG_ARCH_HAVE_PWM_MULTICHAN is not set +# CONFIG_PWM is not set +# CONFIG_ARCH_HAVE_I2CRESET is not set +CONFIG_I2C=y +# CONFIG_I2C_SLAVE is not set +# CONFIG_I2C_POLLED is not set +# CONFIG_I2C_TRACE is not set +CONFIG_I2C_DRIVER=y +CONFIG_SPI=y +# CONFIG_SPI_SLAVE is not set +CONFIG_SPI_EXCHANGE=y +# CONFIG_SPI_CMDDATA is not set +# CONFIG_SPI_CALLBACK is not set +# CONFIG_SPI_BITBANG is not set +# CONFIG_SPI_HWFEATURES is not set +# CONFIG_SPI_CRCGENERATION is not set +# CONFIG_I2S is not set + +# +# Timer Driver Support +# +# CONFIG_TIMER is not set +# CONFIG_RTC is not set +# CONFIG_WATCHDOG is not set +# CONFIG_TIMERS_CS2100CP is not set +# CONFIG_ANALOG is not set +# CONFIG_AUDIO_DEVICES is not set +# CONFIG_VIDEO_DEVICES is not set +# CONFIG_BCH is not set +# CONFIG_INPUT is not set +# CONFIG_IOEXPANDER is not set +# CONFIG_LCD is not set + +# +# LED Support +# +# CONFIG_USERLED is not set +# CONFIG_RGBLED is not set +# CONFIG_PCA9635PW is not set +CONFIG_MMCSD=y +CONFIG_MMCSD_NSLOTS=1 +# CONFIG_MMCSD_READONLY is not set +CONFIG_MMCSD_MULTIBLOCK_DISABLE=y +# CONFIG_MMCSD_MMCSUPPORT is not set +CONFIG_MMCSD_HAVECARDDETECT=y +# CONFIG_MMCSD_SPI is not set +CONFIG_ARCH_HAVE_SDIO=y +# CONFIG_ARCH_HAVE_SDIOWAIT_WRCOMPLETE is not set +CONFIG_MMCSD_SDIO=y +# CONFIG_SDIO_PREFLIGHT is not set +# CONFIG_SDIO_MUXBUS is not set +CONFIG_SDIO_BLOCKSETUP=y +# CONFIG_MODEM is not set +CONFIG_MTD=y + +# +# MTD Configuration +# +# CONFIG_MTD_PARTITION is not set +# CONFIG_MTD_SECT512 is not set +# CONFIG_MTD_BYTE_WRITE is not set +# CONFIG_MTD_PROGMEM is not set +CONFIG_MTD_CONFIG=y +# CONFIG_MTD_CONFIG_RAM_CONSOLIDATE is not set +CONFIG_MTD_CONFIG_ERASEDVALUE=0xff + +# +# MTD Device Drivers +# +# CONFIG_MTD_NAND is not set +# CONFIG_RAMMTD is not set +# CONFIG_FILEMTD is not set +CONFIG_MTD_AT24XX=y +# CONFIG_AT24XX_MULTI is not set +CONFIG_AT24XX_SIZE=2 +CONFIG_AT24XX_ADDR=0x57 +CONFIG_AT24XX_EXTENDED=y +CONFIG_AT24XX_EXTSIZE=160 +CONFIG_AT24XX_FREQUENCY=100000 +CONFIG_MTD_AT25=y +CONFIG_AT25_SPIMODE=0 +CONFIG_AT25_SPIFREQUENCY=20000000 +# CONFIG_MTD_AT45DB is not set +# CONFIG_MTD_M25P is not set +# CONFIG_MTD_S25FL1 is not set +# CONFIG_MTD_N25QXXX is not set +# CONFIG_MTD_SMART is not set +# CONFIG_MTD_RAMTRON is not set +# CONFIG_MTD_SST25 is not set +# CONFIG_MTD_SST25XX is not set +# CONFIG_MTD_SST39FV is not set +# CONFIG_MTD_W25 is not set +# CONFIG_EEPROM is not set +CONFIG_NETDEVICES=y + +# +# General Ethernet MAC Driver Options +# +# CONFIG_NETDEV_LOOPBACK is not set +CONFIG_NETDEV_TELNET=y +CONFIG_TELNET_RXBUFFER_SIZE=256 +CONFIG_TELNET_TXBUFFER_SIZE=256 +# CONFIG_NETDEV_MULTINIC is not set +CONFIG_ARCH_HAVE_NETDEV_STATISTICS=y +CONFIG_NETDEV_STATISTICS=y +# CONFIG_NETDEV_LATEINIT is not set + +# +# External Ethernet MAC Device Support +# +# CONFIG_NET_DM90x0 is not set +# CONFIG_NET_CS89x0 is not set +# CONFIG_ENC28J60 is not set +# CONFIG_ENCX24J600 is not set +# CONFIG_NET_E1000 is not set +# CONFIG_NET_SLIP is not set +# CONFIG_NET_FTMAC100 is not set +# CONFIG_NET_VNET is not set + +# +# External Ethernet PHY Device Support +# +CONFIG_ARCH_PHY_INTERRUPT=y +# CONFIG_ETH0_PHY_NONE is not set +# CONFIG_ETH0_PHY_AM79C874 is not set +# CONFIG_ETH0_PHY_KS8721 is not set +# CONFIG_ETH0_PHY_KSZ8041 is not set +# CONFIG_ETH0_PHY_KSZ8051 is not set +CONFIG_ETH0_PHY_KSZ8061=y +# CONFIG_ETH0_PHY_KSZ8081 is not set +# CONFIG_ETH0_PHY_KSZ90x1 is not set +# CONFIG_ETH0_PHY_DP83848C is not set +# CONFIG_ETH0_PHY_LAN8720 is not set +# CONFIG_ETH0_PHY_LAN8740 is not set +# CONFIG_ETH0_PHY_LAN8740A is not set +# CONFIG_ETH0_PHY_LAN8742A is not set +# CONFIG_ETH0_PHY_DM9161 is not set +# CONFIG_PIPES is not set +# CONFIG_PM is not set +# CONFIG_POWER is not set +# CONFIG_SENSORS is not set +# CONFIG_SERCOMM_CONSOLE is not set +CONFIG_SERIAL=y +# CONFIG_DEV_LOWCONSOLE is not set +# CONFIG_16550_UART is not set +# CONFIG_ARCH_HAVE_UART is not set +# CONFIG_ARCH_HAVE_UART0 is not set +# CONFIG_ARCH_HAVE_UART1 is not set +# CONFIG_ARCH_HAVE_UART2 is not set +CONFIG_ARCH_HAVE_UART3=y +# CONFIG_ARCH_HAVE_UART4 is not set +# CONFIG_ARCH_HAVE_UART5 is not set +# CONFIG_ARCH_HAVE_UART6 is not set +# CONFIG_ARCH_HAVE_UART7 is not set +# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_ARCH_HAVE_SCI0 is not set +# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_ARCH_HAVE_USART0 is not set +# CONFIG_ARCH_HAVE_USART1 is not set +# CONFIG_ARCH_HAVE_USART2 is not set +# CONFIG_ARCH_HAVE_USART3 is not set +# CONFIG_ARCH_HAVE_USART4 is not set +# CONFIG_ARCH_HAVE_USART5 is not set +# CONFIG_ARCH_HAVE_USART6 is not set +# CONFIG_ARCH_HAVE_USART7 is not set +# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_ARCH_HAVE_OTHER_UART is not set + +# +# USART Configuration +# +CONFIG_MCU_SERIAL=y +CONFIG_STANDARD_SERIAL=y +# CONFIG_SERIAL_IFLOWCONTROL is not set +# CONFIG_SERIAL_OFLOWCONTROL is not set +# CONFIG_SERIAL_DMA is not set +CONFIG_ARCH_HAVE_SERIAL_TERMIOS=y +CONFIG_UART3_SERIAL_CONSOLE=y +# CONFIG_OTHER_SERIAL_CONSOLE is not set +# CONFIG_NO_SERIAL_CONSOLE is not set + +# +# UART3 Configuration +# +CONFIG_UART3_RXBUFSIZE=256 +CONFIG_UART3_TXBUFSIZE=256 +CONFIG_UART3_BAUD=115200 +CONFIG_UART3_BITS=8 +CONFIG_UART3_PARITY=0 +CONFIG_UART3_2STOP=0 +# CONFIG_UART3_IFLOWCONTROL is not set +# CONFIG_UART3_OFLOWCONTROL is not set +# CONFIG_UART3_DMA is not set +# CONFIG_USBDEV is not set +# CONFIG_USBHOST is not set +# CONFIG_DRIVERS_WIRELESS is not set + +# +# System Logging Device Options +# + +# +# System Logging +# +# CONFIG_RAMLOG is not set +# CONFIG_SYSLOG_CONSOLE is not set + +# +# Networking Support +# +CONFIG_ARCH_HAVE_NET=y +CONFIG_ARCH_HAVE_PHY=y +CONFIG_NET=y +CONFIG_NET_NOINTS=y +# CONFIG_NET_PROMISCUOUS is not set + +# +# Driver buffer configuration +# +# CONFIG_NET_MULTIBUFFER is not set +CONFIG_NET_ETH_MTU=590 +CONFIG_NET_ETH_TCP_RECVWNDO=536 +CONFIG_NET_GUARDSIZE=2 + +# +# Data link support +# +# CONFIG_NET_MULTILINK is not set +# CONFIG_NET_USER_DEVFMT is not set +CONFIG_NET_ETHERNET=y +# CONFIG_NET_LOOPBACK is not set +# CONFIG_NET_TUN is not set + +# +# Network Device Operations +# +CONFIG_NETDEV_PHY_IOCTL=y + +# +# Internet Protocol Selection +# +CONFIG_NET_IPv4=y +# CONFIG_NET_IPv6 is not set + +# +# Socket Support +# +CONFIG_NSOCKET_DESCRIPTORS=8 +CONFIG_NET_NACTIVESOCKETS=16 +CONFIG_NET_SOCKOPTS=y +# CONFIG_NET_SOLINGER is not set + +# +# Raw Socket Support +# +# CONFIG_NET_PKT is not set + +# +# Unix Domain Socket Support +# +# CONFIG_NET_LOCAL is not set + +# +# TCP/IP Networking +# +CONFIG_NET_TCP=y +# CONFIG_NET_TCPURGDATA is not set +# CONFIG_NET_TCP_REASSEMBLY is not set +CONFIG_NET_TCP_CONNS=8 +CONFIG_NET_MAX_LISTENPORTS=20 +CONFIG_NET_TCP_READAHEAD=y +CONFIG_NET_TCP_WRITE_BUFFERS=y +CONFIG_NET_TCP_NWRBCHAINS=8 +CONFIG_NET_TCP_RECVDELAY=0 +CONFIG_NET_TCPBACKLOG=y +# CONFIG_NET_SENDFILE is not set + +# +# UDP Networking +# +# CONFIG_NET_UDP is not set + +# +# ICMP Networking Support +# +CONFIG_NET_ICMP=y +CONFIG_NET_ICMP_PING=y + +# +# IGMPv2 Client Support +# +# CONFIG_NET_IGMP is not set + +# +# ARP Configuration +# +CONFIG_NET_ARP=y +CONFIG_NET_ARPTAB_SIZE=16 +CONFIG_NET_ARP_MAXAGE=120 +# CONFIG_NET_ARP_IPIN is not set +CONFIG_NET_ARP_SEND=y +CONFIG_ARP_SEND_MAXTRIES=5 +CONFIG_ARP_SEND_DELAYMSEC=20 + +# +# Network I/O Buffer Support +# +CONFIG_NET_IOB=y +CONFIG_IOB_NBUFFERS=72 +CONFIG_IOB_BUFSIZE=196 +CONFIG_IOB_NCHAINS=8 +CONFIG_IOB_THROTTLE=32 +# CONFIG_NET_ARCH_INCR32 is not set +# CONFIG_NET_ARCH_CHKSUM is not set +CONFIG_NET_STATISTICS=y + +# +# Routing Table Configuration +# +# CONFIG_NET_ROUTE is not set +CONFIG_NET_HOSTNAME="SAMV71-XULT" + +# +# Crypto API +# +# CONFIG_CRYPTO is not set + +# +# File Systems +# + +# +# File system configuration +# +# CONFIG_DISABLE_MOUNTPOINT is not set +# CONFIG_FS_AUTOMOUNTER is not set +# CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +CONFIG_FS_READABLE=y +CONFIG_FS_WRITABLE=y +# CONFIG_FS_NAMED_SEMAPHORES is not set +CONFIG_FS_MQUEUE_MPATH="/var/mqueue" +# CONFIG_FS_RAMMAP is not set +CONFIG_FS_FAT=y +CONFIG_FAT_LCNAMES=y +CONFIG_FAT_LFN=y +CONFIG_FAT_MAXFNAME=32 +# CONFIG_FS_FATTIME is not set +# CONFIG_FAT_FORCE_INDIRECT is not set +# CONFIG_FAT_DMAMEMORY is not set +# CONFIG_FAT_DIRECT_RETRY is not set +# CONFIG_FS_NXFFS is not set +# CONFIG_FS_ROMFS is not set +# CONFIG_FS_TMPFS is not set +# CONFIG_FS_SMARTFS is not set +# CONFIG_FS_BINFS is not set +CONFIG_FS_PROCFS=y +# CONFIG_FS_PROCFS_REGISTER is not set + +# +# Exclude individual procfs entries +# +# CONFIG_FS_PROCFS_EXCLUDE_PROCESS is not set +# CONFIG_FS_PROCFS_EXCLUDE_UPTIME is not set +# CONFIG_FS_PROCFS_EXCLUDE_MOUNTS is not set +# CONFIG_FS_PROCFS_EXCLUDE_NET is not set +# CONFIG_FS_PROCFS_EXCLUDE_MTD is not set +# CONFIG_FS_UNIONFS is not set + +# +# System Logging +# +# CONFIG_SYSLOG is not set +# CONFIG_SYSLOG_TIMESTAMP is not set + +# +# Graphics Support +# +CONFIG_NX=y +CONFIG_NX_NPLANES=1 +CONFIG_NX_BGCOLOR=0xbb +# CONFIG_NX_WRITEONLY is not set +CONFIG_NX_UPDATE=y + +# +# Supported Pixel Depths +# +CONFIG_NX_DISABLE_1BPP=y +CONFIG_NX_DISABLE_2BPP=y +CONFIG_NX_DISABLE_4BPP=y +# CONFIG_NX_DISABLE_8BPP is not set +CONFIG_NX_DISABLE_16BPP=y +CONFIG_NX_DISABLE_24BPP=y +CONFIG_NX_DISABLE_32BPP=y +CONFIG_NX_PACKEDMSFIRST=y + +# +# Input Devices +# +CONFIG_NX_XYINPUT=y +# CONFIG_NX_XYINPUT_NONE is not set +CONFIG_NX_XYINPUT_MOUSE=y +# CONFIG_NX_XYINPUT_TOUCHSCREEN is not set +CONFIG_NX_KBD=y + +# +# Framed Window Borders +# +CONFIG_NXTK_BORDERWIDTH=4 +CONFIG_NXTK_DEFAULT_BORDERCOLORS=y +# CONFIG_NXTK_AUTORAISE is not set + +# +# Font Selections +# +CONFIG_NXFONTS_CHARBITS=7 +# CONFIG_NXFONT_MONO5X8 is not set +# CONFIG_NXFONT_SANS17X22 is not set +# CONFIG_NXFONT_SANS20X26 is not set +CONFIG_NXFONT_SANS23X27=y +# CONFIG_NXFONT_SANS22X29 is not set +# CONFIG_NXFONT_SANS28X37 is not set +# CONFIG_NXFONT_SANS39X48 is not set +# CONFIG_NXFONT_SANS17X23B is not set +# CONFIG_NXFONT_SANS20X27B is not set +CONFIG_NXFONT_SANS22X29B=y +# CONFIG_NXFONT_SANS28X37B is not set +# CONFIG_NXFONT_SANS40X49B is not set +# CONFIG_NXFONT_SERIF22X29 is not set +# CONFIG_NXFONT_SERIF29X37 is not set +# CONFIG_NXFONT_SERIF38X48 is not set +# CONFIG_NXFONT_SERIF22X28B is not set +# CONFIG_NXFONT_SERIF27X38B is not set +# CONFIG_NXFONT_SERIF38X49B is not set +# CONFIG_NXFONT_PIXEL_UNICODE is not set +# CONFIG_NXFONT_PIXEL_LCD_MACHINE is not set +# CONFIG_NXFONT_X11_MISC_FIXED_4X6 is not set +# CONFIG_NXFONT_X11_MISC_FIXED_5X7 is not set +# CONFIG_NXFONT_X11_MISC_FIXED_5X8 is not set +# CONFIG_NXFONT_X11_MISC_FIXED_6X9 is not set +# CONFIG_NXFONT_X11_MISC_FIXED_6X10 is not set +# CONFIG_NXFONT_X11_MISC_FIXED_6X12 is not set +# CONFIG_NXFONT_X11_MISC_FIXED_6X13 is not set +# CONFIG_NXFONT_X11_MISC_FIXED_6X13B is not set +# CONFIG_NXFONT_X11_MISC_FIXED_6X13O is not set +# CONFIG_NXFONT_X11_MISC_FIXED_7X13 is not set +# CONFIG_NXFONT_X11_MISC_FIXED_7X13B is not set +# CONFIG_NXFONT_X11_MISC_FIXED_7X13O is not set +# CONFIG_NXFONT_X11_MISC_FIXED_7X14 is not set +# CONFIG_NXFONT_X11_MISC_FIXED_7X14B is not set +# CONFIG_NXFONT_X11_MISC_FIXED_8X13 is not set +# CONFIG_NXFONT_X11_MISC_FIXED_8X13B is not set +# CONFIG_NXFONT_X11_MISC_FIXED_8X13O is not set +# CONFIG_NXFONT_X11_MISC_FIXED_9X15 is not set +# CONFIG_NXFONT_X11_MISC_FIXED_9X15B is not set +# CONFIG_NXFONT_X11_MISC_FIXED_9X18 is not set +# CONFIG_NXFONT_X11_MISC_FIXED_9X18B is not set +# CONFIG_NXFONT_X11_MISC_FIXED_10X20 is not set +CONFIG_NXTERM=y + +# +# NxTerm Output Text/Graphics Options +# +CONFIG_NXTERM_BPP=8 +CONFIG_NXTERM_CURSORCHAR=137 +CONFIG_NXTERM_MXCHARS=396 +CONFIG_NXTERM_CACHESIZE=32 +CONFIG_NXTERM_LINESEPARATION=0 +# CONFIG_NXTERM_NOWRAP is not set + +# +# NxTerm Input options +# +CONFIG_NXTERM_NXKBDIN=y +CONFIG_NXTERM_KBDBUFSIZE=16 +CONFIG_NXTERM_NPOLLWAITERS=4 + +# +# NX Multi-user only options +# +CONFIG_NX_MULTIUSER=y +CONFIG_NX_BLOCKING=y +CONFIG_NX_MXSERVERMSGS=32 +CONFIG_NX_MXCLIENTMSGS=16 +# CONFIG_NX_NXSTART is not set +CONFIG_VNCSERVER=y +# CONFIG_VNCSERVER_PROTO3p3 is not set +CONFIG_VNCSERVER_PROTO3p8=y +CONFIG_VNCSERVER_NDISPLAYS=1 +CONFIG_VNCSERVER_NAME="NuttX" +CONFIG_VNCSERVER_PRIO=100 +CONFIG_VNCSERVER_STACKSIZE=2048 +CONFIG_VNCSERVER_UPDATER_PRIO=100 +CONFIG_VNCSERVER_UPDATER_STACKSIZE=2048 +CONFIG_VNCSERVER_COLORFMT_RGB8=y +# CONFIG_VNCSERVER_COLORFMT_RGB16 is not set +# CONFIG_VNCSERVER_COLORFMT_RGB32 is not set +CONFIG_VNCSERVER_SCREENWIDTH=320 +CONFIG_VNCSERVER_SCREENHEIGHT=240 +CONFIG_VNCSERVER_NUPDATES=48 +CONFIG_VNCSERVER_UPDATE_BUFSIZE=1024 +CONFIG_VNCSERVER_INBUFFER_SIZE=80 +# CONFIG_VNCCLIENT is not set + +# +# Memory Management +# +# CONFIG_MM_SMALL is not set +CONFIG_MM_REGIONS=1 +# CONFIG_ARCH_HAVE_HEAP2 is not set +# CONFIG_GRAN is not set + +# +# Audio Support +# +# CONFIG_AUDIO is not set + +# +# Wireless Support +# +# CONFIG_WIRELESS is not set + +# +# Binary Loader +# +# CONFIG_BINFMT_DISABLE is not set +# CONFIG_BINFMT_EXEPATH is not set +# CONFIG_NXFLAT is not set +# CONFIG_ELF is not set +CONFIG_BUILTIN=y +# CONFIG_PIC is not set +# CONFIG_SYMTAB_ORDEREDBYNAME is not set + +# +# Library Routines +# + +# +# Standard C Library Options +# +CONFIG_STDIO_BUFFER_SIZE=64 +CONFIG_STDIO_LINEBUFFER=y +CONFIG_NUNGET_CHARS=2 +CONFIG_LIB_HOMEDIR="/" +CONFIG_LIBM=y +# CONFIG_NOPRINTF_FIELDWIDTH is not set +CONFIG_LIBC_FLOATINGPOINT=y +CONFIG_LIBC_LONG_LONG=y +# CONFIG_LIBC_IOCTL_VARIADIC is not set +CONFIG_LIB_RAND_ORDER=1 +# CONFIG_EOL_IS_CR is not set +# CONFIG_EOL_IS_LF is not set +# CONFIG_EOL_IS_BOTH_CRLF is not set +CONFIG_EOL_IS_EITHER_CRLF=y +# CONFIG_LIBC_EXECFUNCS is not set +CONFIG_POSIX_SPAWN_PROXY_STACKSIZE=1024 +CONFIG_TASK_SPAWN_DEFAULT_STACKSIZE=2048 +# CONFIG_LIBC_STRERROR is not set +# CONFIG_LIBC_PERROR_STDOUT is not set +CONFIG_LIBC_TMPDIR="/tmp" +CONFIG_LIBC_MAX_TMPFILE=32 +CONFIG_ARCH_LOWPUTC=y +# CONFIG_LIBC_LOCALTIME is not set +# CONFIG_TIME_EXTENDED is not set +CONFIG_LIB_SENDFILE_BUFSIZE=512 +# CONFIG_ARCH_ROMGETC is not set +# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set +CONFIG_LIBC_NETDB=y +# CONFIG_NETDB_HOSTFILE is not set + +# +# Non-standard Library Support +# +# CONFIG_LIB_KBDCODEC is not set +# CONFIG_LIB_SLCDCODEC is not set + +# +# Basic CXX Support +# +# CONFIG_C99_BOOL8 is not set +CONFIG_HAVE_CXX=y +CONFIG_HAVE_CXXINITIALIZE=y +# CONFIG_CXX_NEWLONG is not set + +# +# uClibc++ Standard C++ Library +# +# CONFIG_UCLIBCXX is not set + +# +# Application Configuration +# + +# +# Built-In Applications +# +CONFIG_BUILTIN_PROXY_STACKSIZE=1024 + +# +# CAN Utilities +# + +# +# Examples +# +# CONFIG_EXAMPLES_BUTTONS is not set +# CONFIG_EXAMPLES_CHAT is not set +# CONFIG_EXAMPLES_CONFIGDATA is not set +# CONFIG_EXAMPLES_CPUHOG is not set +# CONFIG_EXAMPLES_CXXTEST is not set +# CONFIG_EXAMPLES_DHCPD is not set +# CONFIG_EXAMPLES_ELF is not set +# CONFIG_EXAMPLES_FSTEST is not set +# CONFIG_EXAMPLES_FTPC is not set +# CONFIG_EXAMPLES_FTPD is not set +# CONFIG_EXAMPLES_HELLO is not set +# CONFIG_EXAMPLES_HELLOXX is not set +# CONFIG_EXAMPLES_JSON is not set +# CONFIG_EXAMPLES_HIDKBD is not set +# CONFIG_EXAMPLES_KEYPADTEST is not set +# CONFIG_EXAMPLES_IGMP is not set +# CONFIG_EXAMPLES_MEDIA is not set +# CONFIG_EXAMPLES_MM is not set +# CONFIG_EXAMPLES_MODBUS is not set +# CONFIG_EXAMPLES_MOUNT is not set +# CONFIG_EXAMPLES_NETTEST is not set +# CONFIG_EXAMPLES_NRF24L01TERM is not set +# CONFIG_EXAMPLES_NSH is not set +# CONFIG_EXAMPLES_NULL is not set +# CONFIG_EXAMPLES_NX is not set +# CONFIG_EXAMPLES_NXTERM is not set +# CONFIG_EXAMPLES_NXFFS is not set +# CONFIG_EXAMPLES_NXHELLO is not set +# CONFIG_EXAMPLES_NXIMAGE is not set +# CONFIG_EXAMPLES_NXLINES is not set +# CONFIG_EXAMPLES_NXTEXT is not set +# CONFIG_EXAMPLES_OSTEST is not set +# CONFIG_EXAMPLES_PCA9635 is not set +# CONFIG_EXAMPLES_PIPE is not set +# CONFIG_EXAMPLES_PPPD is not set +# CONFIG_EXAMPLES_POSIXSPAWN is not set +# CONFIG_EXAMPLES_RGBLED is not set +# CONFIG_EXAMPLES_RGMP is not set +# CONFIG_EXAMPLES_SENDMAIL is not set +# CONFIG_EXAMPLES_SERIALBLASTER is not set +# CONFIG_EXAMPLES_SERIALRX is not set +# CONFIG_EXAMPLES_SERLOOP is not set +# CONFIG_EXAMPLES_SLCD is not set +# CONFIG_EXAMPLES_SMART_TEST is not set +# CONFIG_EXAMPLES_SMART is not set +# CONFIG_EXAMPLES_SMP is not set +# CONFIG_EXAMPLES_TCPECHO is not set +# CONFIG_EXAMPLES_TELNETD is not set +# CONFIG_EXAMPLES_TIFF is not set +# CONFIG_EXAMPLES_TOUCHSCREEN is not set +# CONFIG_EXAMPLES_WEBSERVER is not set +# CONFIG_EXAMPLES_USBSERIAL is not set +# CONFIG_EXAMPLES_USBTERM is not set +# CONFIG_EXAMPLES_WATCHDOG is not set + +# +# File System Utilities +# +# CONFIG_FSUTILS_INIFILE is not set +# CONFIG_FSUTILS_PASSWD is not set + +# +# GPS Utilities +# +# CONFIG_GPSUTILS_MINMEA_LIB is not set + +# +# Graphics Support +# +# CONFIG_TIFF is not set +# CONFIG_GRAPHICS_TRAVELER is not set + +# +# Interpreters +# +# CONFIG_INTERPRETERS_BAS is not set +# CONFIG_INTERPRETERS_FICL is not set +# CONFIG_INTERPRETERS_PCODE is not set +# CONFIG_INTERPRETERS_MICROPYTHON is not set + +# +# FreeModBus +# +# CONFIG_MODBUS is not set + +# +# Network Utilities +# +# CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_FTPC is not set +# CONFIG_NETUTILS_JSON is not set +# CONFIG_NETUTILS_SMTP is not set +CONFIG_NETUTILS_TELNETD=y +CONFIG_NETUTILS_NETLIB=y +CONFIG_NETUTILS_WEBCLIENT=y +CONFIG_NSH_WGET_USERAGENT="NuttX/6.xx.x (; http://www.nuttx.org/)" +CONFIG_WEBCLIENT_TIMEOUT=10 +# CONFIG_NETUTILS_WEBSERVER is not set +# CONFIG_NETUTILS_XMLRPC is not set + +# +# NSH Library +# +CONFIG_NSH_LIBRARY=y +CONFIG_NSH_MOTD=y +# CONFIG_NSH_PLATFORM_MOTD is not set +CONFIG_NSH_MOTD_STRING="VNC Server at 10.0.0.2:5900" + +# +# Command Line Configuration +# +CONFIG_NSH_READLINE=y +# CONFIG_NSH_CLE is not set +CONFIG_NSH_LINELEN=64 +# CONFIG_NSH_DISABLE_SEMICOLON is not set +CONFIG_NSH_CMDPARMS=y +CONFIG_NSH_MAXARGUMENTS=6 +CONFIG_NSH_ARGCAT=y +CONFIG_NSH_NESTDEPTH=3 +# CONFIG_NSH_DISABLEBG is not set +CONFIG_NSH_BUILTIN_APPS=y + +# +# Disable Individual commands +# +# CONFIG_NSH_DISABLE_ADDROUTE is not set +# CONFIG_NSH_DISABLE_ARP is not set +# CONFIG_NSH_DISABLE_BASENAME is not set +# CONFIG_NSH_DISABLE_CAT is not set +# CONFIG_NSH_DISABLE_CD is not set +# CONFIG_NSH_DISABLE_CP is not set +# CONFIG_NSH_DISABLE_CMP is not set +CONFIG_NSH_DISABLE_DATE=y +# CONFIG_NSH_DISABLE_DD is not set +# CONFIG_NSH_DISABLE_DF is not set +# CONFIG_NSH_DISABLE_DELROUTE is not set +# CONFIG_NSH_DISABLE_DIRNAME is not set +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_EXEC is not set +# CONFIG_NSH_DISABLE_EXIT is not set +# CONFIG_NSH_DISABLE_FREE is not set +# CONFIG_NSH_DISABLE_GET is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_HEXDUMP is not set +# CONFIG_NSH_DISABLE_IFCONFIG is not set +# CONFIG_NSH_DISABLE_IFUPDOWN is not set +# CONFIG_NSH_DISABLE_KILL is not set +# CONFIG_NSH_DISABLE_LOSETUP is not set +CONFIG_NSH_DISABLE_LOSMART=y +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MB is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MKFATFS is not set +# CONFIG_NSH_DISABLE_MKFIFO is not set +# CONFIG_NSH_DISABLE_MKRD is not set +# CONFIG_NSH_DISABLE_MH is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_MW is not set +# CONFIG_NSH_DISABLE_PS is not set +# CONFIG_NSH_DISABLE_PING is not set +# CONFIG_NSH_DISABLE_PUT is not set +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_RM is not set +# CONFIG_NSH_DISABLE_RMDIR is not set +# CONFIG_NSH_DISABLE_SET is not set +# CONFIG_NSH_DISABLE_SH is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_TIME is not set +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNAME is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set +# CONFIG_NSH_DISABLE_WGET is not set +# CONFIG_NSH_DISABLE_XD is not set + +# +# Configure Command Options +# +# CONFIG_NSH_CMDOPT_DF_H is not set +CONFIG_NSH_CODECS_BUFSIZE=128 +CONFIG_NSH_CMDOPT_HEXDUMP=y +CONFIG_NSH_PROC_MOUNTPOINT="/proc" +CONFIG_NSH_FILEIOSIZE=512 + +# +# Scripting Support +# +# CONFIG_NSH_DISABLESCRIPT is not set +# CONFIG_NSH_DISABLE_ITEF is not set +# CONFIG_NSH_DISABLE_LOOPS is not set + +# +# Console Configuration +# +CONFIG_NSH_CONSOLE=y +CONFIG_NSH_ARCHINIT=y + +# +# Networking Configuration +# +CONFIG_NSH_NETINIT_THREAD=y +CONFIG_NSH_NETINIT_THREAD_STACKSIZE=1568 +CONFIG_NSH_NETINIT_THREAD_PRIORITY=80 + +# +# IP Address Configuration +# + +# +# IPv4 Addresses +# +CONFIG_NSH_IPADDR=0x0a000002 +CONFIG_NSH_DRIPADDR=0x0a000001 +CONFIG_NSH_NETMASK=0xffffff00 +# CONFIG_NSH_NOMAC is not set +CONFIG_NSH_MAX_ROUNDTRIP=20 + +# +# Telnet Configuration +# +CONFIG_NSH_TELNET=y +CONFIG_NSH_TELNETD_PORT=23 +CONFIG_NSH_TELNETD_DAEMONPRIO=100 +CONFIG_NSH_TELNETD_DAEMONSTACKSIZE=2048 +CONFIG_NSH_TELNETD_CLIENTPRIO=100 +CONFIG_NSH_TELNETD_CLIENTSTACKSIZE=2048 +CONFIG_NSH_IOBUFFER_SIZE=512 +# CONFIG_NSH_LOGIN is not set +# CONFIG_NSH_CONSOLE_LOGIN is not set +# CONFIG_NSH_TELNET_LOGIN is not set + +# +# NxWidgets/NxWM +# +CONFIG_NXWIDGETS=y + +# +# NX Server/Device Configuration +# +# CONFIG_NXWIDGETS_FLICKERFREE is not set +# CONFIG_NXWIDGETS_EXTERNINIT is not set +CONFIG_NXWIDGETS_VPLANE=0 +CONFIG_NXWIDGET_SERVERINIT=y +CONFIG_NXWIDGETS_SERVERPRIO=110 +CONFIG_NXWIDGETS_SERVERSTACK=2048 +CONFIG_NXWIDGETS_CLIENTPRIO=100 +CONFIG_NXWIDGETS_LISTENERPRIO=100 +CONFIG_NXWIDGETS_LISTENERSTACK=2048 +# CONFIG_NXWIDGET_EVENTWAIT is not set + +# +# NXWidget Configuration +# +CONFIG_NXWIDGETS_BPP=8 +# CONFIG_NXWIDGETS_GREYSCALE is not set +CONFIG_NXWIDGETS_SIZEOFCHAR=1 + +# +# NXWidget Default Values +# +# CONFIG_NXWIDGETS_SYSTEM_CUSTOM_FONTID is not set +CONFIG_NXWIDGETS_TNXARRAY_INITIALSIZE=16 +CONFIG_NXWIDGETS_TNXARRAY_SIZEINCREMENT=8 +# CONFIG_NXWIDGETS_CUSTOM_FILLCOLORS is not set +# CONFIG_NXWIDGETS_CUSTOM_EDGECOLORS is not set +# CONFIG_NXWIDGETS_CUSTOM_TEXTCOLORS is not set +CONFIG_NXWIDGETS_TRANSPARENT_COLOR=0x0 + +# +# Keypad behavior +# +CONFIG_NXWIDGETS_FIRST_REPEAT_TIME=500 +CONFIG_NXWIDGETS_CONTINUE_REPEAT_TIME=200 +CONFIG_NXWIDGETS_DOUBLECLICK_TIME=350 +CONFIG_NXWIDGETS_KBDBUFFER_SIZE=16 +CONFIG_NXWIDGETS_CURSORCONTROL_SIZE=4 +# CONFIG_NXWIDGET_MEMMONITOR is not set +CONFIG_NXWM=y + +# +# NxWM General Settings +# +# CONFIG_NXWM_LARGE_ICONS is not set +CONFIG_NXWM_CUSTOM_FONTID=y +CONFIG_NXWM_DEFAULT_FONTID=5 +CONFIG_NXWM_UNITTEST=y + +# +# Color configuration +# +# CONFIG_NXWM_CUSTOM_FILLCOLORS is not set +# CONFIG_NXWM_CUSTOM_EDGECOLORS is not set +# CONFIG_NXWM_CUSTOM_TEXTCOLORS is not set + +# +# Background Image +# +# CONFIG_NXWM_DISABLE_BACKGROUND_IMAGE is not set +CONFIG_NXWM_BACKGROUND_IMAGE="NXWidgets::g_nuttxBitmap160x160" + +# +# NxWM Taskbar Configuration +# + +# +# Horizontal and vertical spacing of icons in the task bar +# +CONFIG_NXWM_TASKBAR_VSPACING=4 +CONFIG_NXWM_TASKBAR_HSPACING=4 +# CONFIG_NXWM_TASKBAR_TOP is not set +# CONFIG_NXWM_TASKBAR_BOTTOM is not set +CONFIG_NXWM_TASKBAR_LEFT=y +# CONFIG_NXWM_TASKBAR_RIGHT is not set +# CONFIG_NXWM_CUSTOM_TASKBAR_WIDTH is not set +# CONFIG_NXWM_TASKBAR_ICONSCALE is not set +# CONFIG_NXWM_DISABLE_MINIMIZE is not set +# CONFIG_NXWM_TASKBAR_NO_BORDER is not set + +# +# NxWM Toolbar Configuration +# +# CONFIG_NXWM_CUSTOM_TOOLBAR_HEIGHT is not set +CONFIG_NXWM_TOOLBAR_CUSTOM_FONTID=y +CONFIG_NXWM_TOOLBAR_FONTID=5 + +# +# NxWM Application Window Configuration +# +# CONFIG_NXWM_CUSTOM_APPWINDOW_ICONS is not set + +# +# NxWM Start Window Configuration +# + +# +# Horizontal and vertical spacing of icons in the task bar +# +CONFIG_NXWM_STARTWINDOW_VSPACING=4 +CONFIG_NXWM_STARTWINDOW_HSPACING=4 +# CONFIG_NXWM_CUSTOM_STARTWINDOW_ICON is not set +CONFIG_NXWM_STARTWINDOW_MQNAME="/dev/nxwm" +CONFIG_NXWM_STARTWINDOW_MXMSGS=32 +CONFIG_NXWM_STARTWINDOW_MXMPRIO=42 +CONFIG_NXWM_STARTWINDOW_PRIO=100 +CONFIG_NXWM_STARTWINDOW_STACKSIZE=2048 + +# +# NxTerm Window Settings +# +CONFIG_NXWM_NXTERM=y +CONFIG_NXWM_NXTERM_PRIO=100 +CONFIG_NXWM_NXTERM_STACKSIZE=2048 +# CONFIG_NXWM_NXTERM_CUSTOM_COLORS is not set +# CONFIG_NXWM_NXTERM_CUSTOM_FONTID is not set +# CONFIG_NXWM_CUSTOM_NXTERM_ICON is not set + +# +# NxWM Touchscreen Configuration +# +# CONFIG_NXWM_TOUCHSCREEN is not set + +# +# NxWM Keyboard Configuration +# +CONFIG_NXWM_KEYBOARD=y + +# +# Keyboard Device Settings +# +CONFIG_NXWM_KEYBOARD_DEVPATH="/dev/console" +# CONFIG_NXWM_KEYBOARD_USBHOST is not set +CONFIG_NXWM_KEYBOARD_SIGNO=6 +CONFIG_NXWM_KEYBOARD_BUFSIZE=16 +CONFIG_NXWM_KEYBOARD_LISTENERPRIO=120 +CONFIG_NXWM_KEYBOARD_LISTENERSTACK=2048 + +# +# NxWM Calibration Display Settings +# +CONFIG_NXWM_CALIBRATION_MARGIN=40 +# CONFIG_NXWM_CALIBRATION_CUSTOM_COLORS is not set +CONFIG_NXWM_CALIBRATION_MESSAGES=y +CONFIG_NXWM_CALIBRATION_CUSTOM_FONTID=y +CONFIG_NXWM_CALIBRATION_FONTID=5 +CONFIG_NXWM_CALIBRATION_AVERAGE=y +CONFIG_NXWM_CALIBRATION_NSAMPLES=2 +# CONFIG_NXWM_CALIBRATION_DISCARD_MINMAX is not set +# CONFIG_NXWM_CALIBRATION_ANISOTROPIC is not set +# CONFIG_NXWM_CUSTOM_CALIBRATION_ICON is not set +CONFIG_NXWM_CALIBRATION_SIGNO=5 +CONFIG_NXWM_CALIBRATION_LISTENERPRIO=100 +CONFIG_NXWM_CALIBRATION_LISTENERSTACK=2048 + +# +# NxWM Hex Calculator Display Settings +# +# CONFIG_NXWM_HEXCALCULATOR_CUSTOM_COLORS is not set +# CONFIG_NXWM_CUSTOM_HEXCALCULATOR_ICON is not set +CONFIG_NXWM_HEXCALCULATOR_CUSTOM_FONTID=y +CONFIG_NXWM_HEXCALCULATOR_FONTID=5 + +# +# NxWM Media Player Display Settings +# + +# +# Platform-specific Support +# +# CONFIG_PLATFORM_CONFIGDATA is not set + +# +# System Libraries and NSH Add-Ons +# +# CONFIG_SYSTEM_FREE is not set +# CONFIG_SYSTEM_CLE is not set +# CONFIG_SYSTEM_CUTERM is not set +# CONFIG_SYSTEM_INSTALL is not set +# CONFIG_SYSTEM_FLASH_ERASEALL is not set +# CONFIG_SYSTEM_HEX2BIN is not set +# CONFIG_SYSTEM_I2CTOOL is not set +# CONFIG_SYSTEM_HEXED is not set +# CONFIG_SYSTEM_NETDB is not set +# CONFIG_SYSTEM_RAMTEST is not set +CONFIG_READLINE_HAVE_EXTMATCH=y +CONFIG_SYSTEM_READLINE=y +CONFIG_READLINE_ECHO=y +# CONFIG_READLINE_TABCOMPLETION is not set +# CONFIG_READLINE_CMD_HISTORY is not set +# CONFIG_SYSTEM_MDIO is not set +# CONFIG_SYSTEM_SUDOKU is not set +# CONFIG_SYSTEM_VI is not set +# CONFIG_SYSTEM_UBLOXMODEM is not set +# CONFIG_SYSTEM_ZMODEM is not set diff --git a/configs/samv71-xult/vnxwm/setenv.sh b/configs/samv71-xult/vnxwm/setenv.sh new file mode 100644 index 0000000000..c3756d2330 --- /dev/null +++ b/configs/samv71-xult/vnxwm/setenv.sh @@ -0,0 +1,77 @@ +#!/bin/bash +# configs/samv7-xult/vnxwm/Make.defs +# +# Copyright (C) 2016 Gregory Nutt. All rights reserved. +# Author: Gregory Nutt +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# 3. Neither the name NuttX nor the names of its contributors may be +# used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + +if [ "$_" = "$0" ] ; then + echo "You must source this script, not run it!" 1>&2 + exit 1 +fi + +WD=`pwd` +if [ ! -x "setenv.sh" ]; then + echo "This script must be executed from the top-level NuttX build directory" + exit 1 +fi + +if [ -z "${PATH_ORIG}" ]; then + export PATH_ORIG="${PATH}" +fi + +# This is the Cygwin path to the location where I installed the Atmel GCC +# toolchain under Windows. You will also have to edit this if you install +# this toolchain in any other location +#export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/Atmel/Atmel Toolchain/ARM GCC/Native/4.7.3.99/arm-gnu-toolchain/bin" + +# This is the Cygwin path to the location where I installed the CodeSourcery +# toolchain under windows. You will also have to edit this if you install +# the CodeSourcery toolchain in any other location +#export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/CodeSourcery/Sourcery G++ Lite/bin" +#export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_EABI/bin" +# export TOOLCHAIN_BIN="/cygdrive/c/Users/MyName/MentorGraphics/Sourcery_CodeBench_Lite_for_ARM_EABI/bin" + +# This is the location where I installed the ARM "GNU Tools for ARM Embedded Processors" +# You can this free toolchain here https://launchpad.net/gcc-arm-embedded +export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/GNU Tools ARM Embedded/4.9 2015q2/bin" + +# This is the path to the location where I installed the devkitARM toolchain +# You can get this free toolchain from http://devkitpro.org/ or http://sourceforge.net/projects/devkitpro/ +#export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/devkitARM/bin" + +# This is the Cygwin path to the location where I build the buildroot +# toolchain. +# export TOOLCHAIN_BIN="${WD}/../buildroot/build_arm_nofpu/staging_dir/bin" + +# Add the path to the toolchain to the PATH varialble +export PATH="${TOOLCHAIN_BIN}:/sbin:/usr/sbin:${PATH_ORIG}" + +echo "PATH : ${PATH}" -- GitLab From e723fc7fd4c77acece744f640b5d2be648c0e2c1 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 23 Apr 2016 09:06:39 -0600 Subject: [PATCH 083/307] VNC: Add option to enable VNC server debug without GRAPHICS debug --- graphics/vnc/server/Kconfig | 13 ++++++++++++- graphics/vnc/server/vnc_fbdev.c | 8 ++++++++ graphics/vnc/server/vnc_negotiate.c | 8 ++++++++ graphics/vnc/server/vnc_raw.c | 8 ++++++++ graphics/vnc/server/vnc_receiver.c | 8 ++++++++ graphics/vnc/server/vnc_rre.c | 8 ++++++++ graphics/vnc/server/vnc_server.c | 8 ++++++++ graphics/vnc/server/vnc_updater.c | 9 +++++++++ 8 files changed, 69 insertions(+), 1 deletion(-) diff --git a/graphics/vnc/server/Kconfig b/graphics/vnc/server/Kconfig index 3f14b38bc2..157b62dfc9 100644 --- a/graphics/vnc/server/Kconfig +++ b/graphics/vnc/server/Kconfig @@ -127,9 +127,20 @@ config VNCSERVER_INBUFFER_SIZE int "Input buffer size" default 80 +config VNCSERVER_DEBUG + bool "VNC Server debug" + default n + depends on DEBUG && !DEBUG_GRAPHICS + ---help--- + Normally VNC debug output is selected with DEBUG_GRAPHICS. The VNC + server server suupport this special option to enable GRAPHICS debug + output for the VNC server while GRAPHICS debug is disabled. This + provides an cleaner, less cluttered output when you only wish to + debug the VNC server versus enabling DEBUG_GRAPHICS globally. + config VNCSERVER_UPDATE_DEBUG bool "Detailed updater debug" default n - depends on DEBUG_GRAPHICS + depends on DEBUG_GRAPHICS || VNCSERVER_DEBUG endif # VNCSERVER diff --git a/graphics/vnc/server/vnc_fbdev.c b/graphics/vnc/server/vnc_fbdev.c index 2f98fab21b..1df96cd9b6 100644 --- a/graphics/vnc/server/vnc_fbdev.c +++ b/graphics/vnc/server/vnc_fbdev.c @@ -43,6 +43,14 @@ #include #include #include + +#if defined(CONFIG_VNCSERVER_DEBUG) && !defined(CONFIG_DEBUG_GRAPHICS) +# undef CONFIG_DEBUG +# undef CONFIG_DEBUG_VERBOSE +# define CONFIG_DEBUG 1 +# define CONFIG_DEBUG_VERBOSE 1 +# define CONFIG_DEBUG_GRAPHICS 1 +#endif #include #include diff --git a/graphics/vnc/server/vnc_negotiate.c b/graphics/vnc/server/vnc_negotiate.c index 5014e9a83d..8b4f6955ed 100644 --- a/graphics/vnc/server/vnc_negotiate.c +++ b/graphics/vnc/server/vnc_negotiate.c @@ -43,6 +43,14 @@ #include #include #include + +#if defined(CONFIG_VNCSERVER_DEBUG) && !defined(CONFIG_DEBUG_GRAPHICS) +# undef CONFIG_DEBUG +# undef CONFIG_DEBUG_VERBOSE +# define CONFIG_DEBUG 1 +# define CONFIG_DEBUG_VERBOSE 1 +# define CONFIG_DEBUG_GRAPHICS 1 +#endif #include #ifdef CONFIG_NET_SOCKOPTS diff --git a/graphics/vnc/server/vnc_raw.c b/graphics/vnc/server/vnc_raw.c index 64cfee779e..947cbfe905 100644 --- a/graphics/vnc/server/vnc_raw.c +++ b/graphics/vnc/server/vnc_raw.c @@ -42,6 +42,14 @@ #include #include #include + +#if defined(CONFIG_VNCSERVER_DEBUG) && !defined(CONFIG_DEBUG_GRAPHICS) +# undef CONFIG_DEBUG +# undef CONFIG_DEBUG_VERBOSE +# define CONFIG_DEBUG 1 +# define CONFIG_DEBUG_VERBOSE 1 +# define CONFIG_DEBUG_GRAPHICS 1 +#endif #include #include "vnc_server.h" diff --git a/graphics/vnc/server/vnc_receiver.c b/graphics/vnc/server/vnc_receiver.c index 08a001631b..2bc3359a50 100644 --- a/graphics/vnc/server/vnc_receiver.c +++ b/graphics/vnc/server/vnc_receiver.c @@ -41,6 +41,14 @@ #include #include + +#if defined(CONFIG_VNCSERVER_DEBUG) && !defined(CONFIG_DEBUG_GRAPHICS) +# undef CONFIG_DEBUG +# undef CONFIG_DEBUG_VERBOSE +# define CONFIG_DEBUG 1 +# define CONFIG_DEBUG_VERBOSE 1 +# define CONFIG_DEBUG_GRAPHICS 1 +#endif #include #ifdef CONFIG_NET_SOCKOPTS diff --git a/graphics/vnc/server/vnc_rre.c b/graphics/vnc/server/vnc_rre.c index 0ccb841f86..a216a49524 100644 --- a/graphics/vnc/server/vnc_rre.c +++ b/graphics/vnc/server/vnc_rre.c @@ -42,6 +42,14 @@ #include #include #include + +#if defined(CONFIG_VNCSERVER_DEBUG) && !defined(CONFIG_DEBUG_GRAPHICS) +# undef CONFIG_DEBUG +# undef CONFIG_DEBUG_VERBOSE +# define CONFIG_DEBUG 1 +# define CONFIG_DEBUG_VERBOSE 1 +# define CONFIG_DEBUG_GRAPHICS 1 +#endif #include #include "vnc_server.h" diff --git a/graphics/vnc/server/vnc_server.c b/graphics/vnc/server/vnc_server.c index c33050f303..10c0a84dd9 100644 --- a/graphics/vnc/server/vnc_server.c +++ b/graphics/vnc/server/vnc_server.c @@ -46,6 +46,14 @@ #include #include #include + +#if defined(CONFIG_VNCSERVER_DEBUG) && !defined(CONFIG_DEBUG_GRAPHICS) +# undef CONFIG_DEBUG +# undef CONFIG_DEBUG_VERBOSE +# define CONFIG_DEBUG 1 +# define CONFIG_DEBUG_VERBOSE 1 +# define CONFIG_DEBUG_GRAPHICS 1 +#endif #include #include diff --git a/graphics/vnc/server/vnc_updater.c b/graphics/vnc/server/vnc_updater.c index eb76c99064..1ac9d4bf6a 100644 --- a/graphics/vnc/server/vnc_updater.c +++ b/graphics/vnc/server/vnc_updater.c @@ -47,6 +47,15 @@ #include #include +#if defined(CONFIG_VNCSERVER_DEBUG) && !defined(CONFIG_DEBUG_GRAPHICS) +# undef CONFIG_DEBUG +# undef CONFIG_DEBUG_VERBOSE +# define CONFIG_DEBUG 1 +# define CONFIG_DEBUG_VERBOSE 1 +# define CONFIG_DEBUG_GRAPHICS 1 +#endif +#include + #include #include "vnc_server.h" -- GitLab From f3499b173adbfc89575709784a440336f2f2e0f7 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 23 Apr 2016 10:21:49 -0600 Subject: [PATCH 084/307] VNC: Fix a memory clobblering bug --- configs/samv71-xult/README.txt | 26 +++++++++----------------- include/nuttx/video/rfb.h | 4 ++-- 2 files changed, 11 insertions(+), 19 deletions(-) diff --git a/configs/samv71-xult/README.txt b/configs/samv71-xult/README.txt index 1efb630215..f08af3deb4 100644 --- a/configs/samv71-xult/README.txt +++ b/configs/samv71-xult/README.txt @@ -2364,28 +2364,20 @@ Configuration sub-directories 2016-04-21: I have gotten the apps/examples/nximage to work with lots issues with 16-bit RGB and verbose GRAPHICS and UPDATER debug ON. There are reliability problems and it hangs at the end of the - test. But if I turn UPDATE debug off (only), then the display - output is corrupted. I have also see hardfaults. + test. - Mostly likely, the UPDATER debug output slows the updates and - avoids some kind of race condition with the networking. Oddly, - it does not work at all if I turn off TCP write buffering. - - 2016-04-22: I added a 100 MS delay at the beginning of the - updater loop and it made no difference. This seems to eliminate - the suspected networking race condition. I am thinking now - either some data overrun or VNC protocol/timing issue? - - The default configuration now uses RGB8 which needs a lot less - SRAM for the local frame buffer and does not degrade the color + 2016-04-22: The default configuration now uses RGB8 which needs a lot + less SRAM for the local frame buffer and does not degrade the color quality in the remote display (since it is also 8 BPP). At 8 BPP, the remote display is correct even with both GRAPHICS and UPDATER debug OFF -- and there is no hang! - 2106-04-23: The NxImage example at apps/examplex/nximage. This was - selected because it is a very simple graphics test. Continued - testing, however, requires a more complex configuration. Hence, - the vnxwm configuration was created. + 2106-04-23: The NxImage test was selected because it is a very simple + graphics test. Continued testing, however, requires a more complex + configuration. Hence, the vnxwm configuration was created. + + A memory clobber error was fixed and this probably corrects some of + the reliability problems noted on 2016-04-21. vnxwm: diff --git a/include/nuttx/video/rfb.h b/include/nuttx/video/rfb.h index a8f68c45eb..c6108715f2 100644 --- a/include/nuttx/video/rfb.h +++ b/include/nuttx/video/rfb.h @@ -370,8 +370,8 @@ struct rfb_setpixelformat_s struct rfb_setencodings_s { uint8_t msgtype; /* U8 Message type */ - uint8_t padding[3]; - uint8_t nencodings[4]; /* U32 Number of encodings */ + uint8_t padding; + uint8_t nencodings[2]; /* U32 Number of encodings */ uint8_t encodings[4]; /* S32 Encoding type, size = 4*nencodings */ }; -- GitLab From 47a33cbb64487525bb943e21f7413b1336a3dd68 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 23 Apr 2016 10:22:54 -0600 Subject: [PATCH 085/307] VNC: Ignore client framebuffer updates if nothing has changed (we can does this because client requests incremental updates --- graphics/vnc/server/vnc_fbdev.c | 2 +- graphics/vnc/server/vnc_negotiate.c | 1 + graphics/vnc/server/vnc_receiver.c | 14 ++++++---- graphics/vnc/server/vnc_server.h | 9 ++++--- graphics/vnc/server/vnc_updater.c | 40 ++++++++++++++++++++++++----- 5 files changed, 51 insertions(+), 15 deletions(-) diff --git a/graphics/vnc/server/vnc_fbdev.c b/graphics/vnc/server/vnc_fbdev.c index 1df96cd9b6..36337cf273 100644 --- a/graphics/vnc/server/vnc_fbdev.c +++ b/graphics/vnc/server/vnc_fbdev.c @@ -877,7 +877,7 @@ void nx_notify_rectangle(FAR NX_PLANEINFOTYPE *pinfo, { /* Queue the rectangular update */ - ret = vnc_update_rectangle(session, rect); + ret = vnc_update_rectangle(session, rect, true); if (ret < 0) { gdbg("ERROR: vnc_update_rectangle failed: %d\n", ret); diff --git a/graphics/vnc/server/vnc_negotiate.c b/graphics/vnc/server/vnc_negotiate.c index 8b4f6955ed..7b4bb67c1a 100644 --- a/graphics/vnc/server/vnc_negotiate.c +++ b/graphics/vnc/server/vnc_negotiate.c @@ -521,5 +521,6 @@ int vnc_client_pixelformat(FAR struct vnc_session_s *session, return -ENOSYS; } + session->change = true; return OK; } diff --git a/graphics/vnc/server/vnc_receiver.c b/graphics/vnc/server/vnc_receiver.c index 2bc3359a50..481f6bed0c 100644 --- a/graphics/vnc/server/vnc_receiver.c +++ b/graphics/vnc/server/vnc_receiver.c @@ -176,6 +176,10 @@ int vnc_receiver(FAR struct vnc_session_s *session) return -errcode; } + /* REVISIT: This assertion sometimes fires when there is a client + * disconnection. + */ + DEBUGASSERT(nrecvd == 1); /* The single byte received should be the message type. Handle the @@ -218,7 +222,7 @@ int vnc_receiver(FAR struct vnc_session_s *session) case RFB_SETENCODINGS_MSG: /* SetEncodings */ { FAR struct rfb_setencodings_s *encodings; - uint32_t nencodings; + unsigned int nencodings; gvdbg("Received SetEncodings\n"); @@ -239,7 +243,7 @@ int vnc_receiver(FAR struct vnc_session_s *session) /* Read the following encodings */ encodings = (FAR struct rfb_setencodings_s *)session->inbuf; - nencodings = rfb_getbe32(encodings->nencodings); + nencodings = rfb_getbe16(encodings->nencodings); ret = vnc_read_remainder(session, nencodings * sizeof(uint32_t), @@ -291,7 +295,7 @@ int vnc_receiver(FAR struct vnc_session_s *session) rect.pt2.x = rect.pt1.x + rfb_getbe16(update->width); rect.pt2.y = rect.pt1.y + rfb_getbe16(update->height); - ret = vnc_update_rectangle(session, &rect); + ret = vnc_update_rectangle(session, &rect, false); if (ret < 0) { gdbg("ERROR: Failed to queue update: %d\n", ret); @@ -463,7 +467,7 @@ int vnc_client_encodings(FAR struct vnc_session_s *session, /* Loop for each client supported encoding */ - nencodings = rfb_getbe32(encodings->nencodings); + nencodings = rfb_getbe16(encodings->nencodings); for (i = 0; i < nencodings; i++) { /* Get the next encoding */ @@ -475,10 +479,10 @@ int vnc_client_encodings(FAR struct vnc_session_s *session, if (encoding == RFB_ENCODING_RRE) { session->rre = true; - return OK; } } + session->change = true; return OK; } diff --git a/graphics/vnc/server/vnc_server.h b/graphics/vnc/server/vnc_server.h index 077bc0d6b4..45d34b5260 100644 --- a/graphics/vnc/server/vnc_server.h +++ b/graphics/vnc/server/vnc_server.h @@ -246,14 +246,15 @@ struct vnc_session_s struct socket connect; /* Connected socket */ volatile uint8_t state; /* See enum vnc_server_e */ volatile uint8_t nwhupd; /* Number of whole screen updates queued */ + volatile bool change; /* True: Frambebuffer data change since last whole screen update */ /* Display geometry and color characteristics */ uint8_t display; /* Display number (for debug) */ volatile uint8_t colorfmt; /* Remote color format (See include/nuttx/fb.h) */ volatile uint8_t bpp; /* Remote bits per pixel */ - volatile bool bigendian; /* Remote expect data in big-endian format */ - volatile bool rre; /* Remote supports RRE encoding */ + volatile bool bigendian; /* True: Remote expect data in big-endian format */ + volatile bool rre; /* True: Remote supports RRE encoding */ FAR uint8_t *fb; /* Allocated local frame buffer */ /* VNC client input support */ @@ -450,6 +451,7 @@ int vnc_stop_updater(FAR struct vnc_session_s *session); * Input Parameters: * session - An instance of the session structure. * rect - The rectanglular region to be updated. + * change - True: Frame buffer data has changed * * Returned Value: * Zero (OK) is returned on success; a negated errno value is returned on @@ -458,7 +460,8 @@ int vnc_stop_updater(FAR struct vnc_session_s *session); ****************************************************************************/ int vnc_update_rectangle(FAR struct vnc_session_s *session, - FAR const struct nxgl_rect_s *rect); + FAR const struct nxgl_rect_s *rect, + bool change); /**************************************************************************** * Name: vnc_receiver diff --git a/graphics/vnc/server/vnc_updater.c b/graphics/vnc/server/vnc_updater.c index 1ac9d4bf6a..0368e46f42 100644 --- a/graphics/vnc/server/vnc_updater.c +++ b/graphics/vnc/server/vnc_updater.c @@ -490,6 +490,7 @@ int vnc_stop_updater(FAR struct vnc_session_s *session) * Input Parameters: * session - An instance of the session structure. * rect - The rectanglular region to be updated. + * change - True: Frame buffer data has changed * * Returned Value: * Zero (OK) is returned on success; a negated errno value is returned on @@ -498,7 +499,7 @@ int vnc_stop_updater(FAR struct vnc_session_s *session) ****************************************************************************/ int vnc_update_rectangle(FAR struct vnc_session_s *session, - FAR const struct nxgl_rect_s *rect) + FAR const struct nxgl_rect_s *rect, bool change) { FAR struct vnc_fbupdate_s *update; struct nxgl_rect_s intersection; @@ -506,7 +507,7 @@ int vnc_update_rectangle(FAR struct vnc_session_s *session, /* Clip rectangle to the screen dimensions */ - nxgl_rectintersect(&intersection, rect, &g_wholescreen); + nxgl_rectintersect(&intersection, rect, &g_wholescreen); /* Make sure that the clipped rectangle has a area */ @@ -519,20 +520,34 @@ int vnc_update_rectangle(FAR struct vnc_session_s *session, whupd = (memcmp(&intersection, &g_wholescreen, sizeof(struct nxgl_rect_s)) == 0); - /* Ignore all updates if there is a queue whole screen update */ + /* Ignore any client update requests if there have been no changes to + * the framebuffer since the last whole screen update. + */ sched_lock(); + if (!change && !session->change) + { + /* No.. ignore the client update. We have nothing new to report. */ + + sched_unlock(); + return OK; + } + + /* Ignore all updates if there is a queued whole screen update */ + if (session->nwhupd == 0) { - /* Is this a new whole screen update */ + /* No whole screen updates in the queue. Is this a new whole + * screen update? + */ if (whupd) { + /* Yes.. Discard all of the previously queued updates */ + FAR struct vnc_fbupdate_s *curr; FAR struct vnc_fbupdate_s *next; - /* Yes.. discard all of the previously queued updates */ - updvdbg("New whole screen update...\n"); curr = (FAR struct vnc_fbupdate_s *)session->updqueue.head; @@ -545,7 +560,20 @@ int vnc_update_rectangle(FAR struct vnc_session_s *session, vnc_free_update(session, curr); } + /* One whole screen update will be queued. There have been + * no frame buffer data changes since this update was queued. + */ + session->nwhupd = 1; + session->change = false; + } + else + { + /* We are not updating the whole screen. Remember if this + * update (OR a preceding update) was due to a data change. + */ + + session->change |= change; } /* Allocate an update structure... waiting if necessary */ -- GitLab From 8c0c70ab12939933c150030e8a7db0a08271e4cb Mon Sep 17 00:00:00 2001 From: ziggurat29 Date: Sat, 23 Apr 2016 11:54:03 -0500 Subject: [PATCH 086/307] add QSPI memory mapped mode support. tested. QSPI may enter and exit memory mapped mode; while in effect, other operations (e.g. command, memory) will fail with -EBUSY. --- arch/arm/src/stm32l4/stm32l4_qspi.c | 188 ++++++++++++++++++++++++++-- arch/arm/src/stm32l4/stm32l4_qspi.h | 36 ++++++ 2 files changed, 215 insertions(+), 9 deletions(-) diff --git a/arch/arm/src/stm32l4/stm32l4_qspi.c b/arch/arm/src/stm32l4/stm32l4_qspi.c index 68e3d0ccb3..fcc58c0d55 100644 --- a/arch/arm/src/stm32l4/stm32l4_qspi.c +++ b/arch/arm/src/stm32l4/stm32l4_qspi.c @@ -140,6 +140,12 @@ GPIO_QSPI_IO1 GPIO_QSPI_IO2 GPIO_QSPI_IO3 GPIO_QSPI_SCK in your board.h #endif +#ifdef CONFIG_STM32L4_QSPI_DMA +#if !defined(DMACHAN_QUADSPI) +# error QSPI DMA channel must be specified via DMACHAN_QUADSPI in your board.h +#endif +#endif + #ifndef BOARD_AHB_FREQUENCY # error your board.h needs to define the value of BOARD_AHB_FREQUENCY #endif @@ -176,6 +182,7 @@ struct stm32l4_qspidev_s uint8_t intf; /* QSPI controller number (0) */ bool initialized; /* TRUE: Controller has been initialized */ sem_t exclsem; /* Assures mutually exclusive access to QSPI */ + bool memmap; /* TRUE: Controller is in memory mapped mode */ #ifdef QSPI_USE_INTERRUPTS xcpt_t handler; /* Interrupt handler */ @@ -1101,7 +1108,11 @@ static int qspi0_interrupt(int irq, void *context) regval &= ~(QSPI_CR_TEIE | QSPI_CR_TCIE | QSPI_CR_FTIE | QSPI_CR_SMIE | QSPI_CR_TOIE); qspi_putreg(&g_qspi0dev, regval, STM32L4_QUADSPI_CR_OFFSET); - /* Set error status */ + /* Set error status; 'transfer error' means that, in 'indirect mode', + * an invalid address is attempted to be accessed. 'Invalid' is + * presumably relative to the FSIZE field in CCR; the manual is not + * explicit, but what else could it be? + */ g_qspi0dev.xctn->disposition = - EIO; @@ -1110,7 +1121,7 @@ static int qspi0_interrupt(int irq, void *context) sem_post(&g_qspi0dev.op_sem); } - /* Is it 'Timeout'? (: */ + /* Is it 'Timeout'? */ if ((status & QSPI_SR_TOF) && (cr & QSPI_CR_TOIE)) { @@ -1118,13 +1129,17 @@ static int qspi0_interrupt(int irq, void *context) qspi_putreg(&g_qspi0dev, QSPI_FCR_CTOF, STM32L4_QUADSPI_FCR); - /* Set error status */ - - g_qspi0dev.xctn->disposition = - ETIMEDOUT; - - /* Signal complete */ - - sem_post(&g_qspi0dev.op_sem); + /* XXX this interrupt simply means that, in 'memory mapped mode', + * the QSPI memory has not been accessed for a while, and the + * IP block was configured to automatically de-assert CS after + * a timeout. And now we're being informed that has happened. + * + * But who cares? If someone does, perhaps a user callback is + * appropriate, or some signal? Either way, realize the xctn + * member is /not/ valid, so you can't set the disposition + * field. Also, note signaling completion has no meaning here + * because in memory mapped mode no one holds the semaphore. + */ } return OK; @@ -1340,6 +1355,14 @@ static uint32_t qspi_setfrequency(struct qspi_dev_s *dev, uint32_t frequency) uint32_t prescaler; uint32_t regval; + if (priv->memmap) + { + /* XXX we have no better return here, but the caller will find out + * in their subsequent calls. + */ + return 0; + } + qspivdbg("frequency=%d\n", frequency); DEBUGASSERT(priv); @@ -1424,6 +1447,14 @@ static void qspi_setmode(struct qspi_dev_s *dev, enum qspi_mode_e mode) struct stm32l4_qspidev_s *priv = (struct stm32l4_qspidev_s *)dev; uint32_t regval; + if (priv->memmap) + { + /* XXX we have no better return here, but the caller will find out + * in their subsequent calls. + */ + return; + } + qspivdbg("mode=%d\n", mode); /* Has the mode changed? */ @@ -1518,6 +1549,16 @@ static int qspi_command(struct qspi_dev_s *dev, struct qspi_xctnspec_s xctn; int ret; + /* Reject commands issued while in memory mapped mode, which will + * automatically cancel the memory mapping. You must exit the + * memory mapped mode first. + */ + + if (priv->memmap) + { + return -EBUSY; + } + /* Set up the transaction descriptor as per command info */ ret = qspi_setupxctnfromcmd(&xctn, cmdinfo); @@ -1689,6 +1730,16 @@ static int qspi_memory(struct qspi_dev_s *dev, struct qspi_xctnspec_s xctn; int ret; + /* Reject commands issued while in memory mapped mode, which will + * automatically cancel the memory mapping. You must exit the + * memory mapped mode first. + */ + + if (priv->memmap) + { + return -EBUSY; + } + /* Set up the transaction descriptor as per command info */ ret = qspi_setupxctnfrommem(&xctn, meminfo); @@ -2080,6 +2131,7 @@ struct qspi_dev_s *stm32l4_qspi_initialize(int intf) /* Enable interrupts at the NVIC */ priv->initialized = true; + priv->memmap = false; #ifdef QSPI_USE_INTERRUPTS up_enable_irq(priv->irq); #endif @@ -2100,4 +2152,122 @@ errout_with_dmadog: sem_destroy(&priv->exclsem); return NULL; } + +/**************************************************************************** + * Name: stm32l4_qspi_enter_memorymapped + * + * Description: + * Put the QSPI device into memory mapped mode + * + * Input Parameter: + * dev - QSPI device + * meminfo - parameters like for a memory transfer used for reading + * + * Returned Value: + * None + * + ****************************************************************************/ + +void stm32l4_qspi_enter_memorymapped(struct qspi_dev_s* dev, + const struct qspi_meminfo_s *meminfo, + uint32_t lpto) +{ + struct stm32l4_qspidev_s *priv = (struct stm32l4_qspidev_s *)dev; + uint32_t regval; + struct qspi_xctnspec_s xctn; + + /* lock during this mode change */ + + qspi_lock(dev, true); + + if (priv->memmap) + { + qspi_lock(dev, false); + return; + } + + /* Abort anything in-progress */ + + qspi_abort(priv); + + /* Wait till BUSY flag reset */ + + qspi_waitstatusflags(priv, QSPI_SR_BUSY, 0); + + /* if we want the 'low-power timeout counter' */ + + if (lpto > 0) + { + /* Set the Low Power Timeout value (automatically de-assert + * CS if memory is not accessed for a while) + */ + + qspi_putreg(priv, lpto, STM32L4_QUADSPI_LPTR_OFFSET); + + /* Clear Timeout interrupt */ + + qspi_putreg(&g_qspi0dev, QSPI_FCR_CTOF, STM32L4_QUADSPI_FCR); + +#ifdef QSPI_USE_INTERRUPTS + /* Enable Timeout interrupt */ + + regval = qspi_getreg(priv, STM32L4_QUADSPI_CR_OFFSET); + regval |= (QSPI_CR_TCEN | QSPI_CR_TOIE); + qspi_putreg(priv, regval, STM32L4_QUADSPI_CR_OFFSET); +#endif + } + else + { + regval = qspi_getreg(priv, STM32L4_QUADSPI_CR_OFFSET); + regval &= ~QSPI_CR_TCEN; + qspi_putreg(priv, regval, STM32L4_QUADSPI_CR_OFFSET); + } + + /* create a transaction object */ + + qspi_setupxctnfrommem(&xctn, meminfo); + priv->xctn = NULL; + + /* set it into the ccr */ + + qspi_ccrconfig(priv, &xctn, CCR_FMODE_MEMMAP); + priv->memmap = true; + + /* we should be in memory mapped mode now */ + + qspi_dumpregs(priv, "After memory mapped:"); + + /* finished this mode change */ + + qspi_lock(dev, false); +} + +/**************************************************************************** + * Name: stm32l4_qspi_exit_memorymapped + * + * Description: + * Take the QSPI device out of memory mapped mode + * + * Input Parameter: + * dev - QSPI device + * + * Returned Value: + * None + * + ****************************************************************************/ + +void stm32l4_qspi_exit_memorymapped(struct qspi_dev_s* dev) +{ + struct stm32l4_qspidev_s *priv = (struct stm32l4_qspidev_s *)dev; + + qspi_lock(dev, true); + + /* A simple abort is sufficient */ + + qspi_abort(priv); + priv->memmap = false; + + qspi_lock(dev, false); +} + #endif /* CONFIG_STM32L4_QSPI */ diff --git a/arch/arm/src/stm32l4/stm32l4_qspi.h b/arch/arm/src/stm32l4/stm32l4_qspi.h index a62fb7635c..ed65850fc5 100644 --- a/arch/arm/src/stm32l4/stm32l4_qspi.h +++ b/arch/arm/src/stm32l4/stm32l4_qspi.h @@ -97,6 +97,42 @@ extern "C" struct qspi_dev_s; FAR struct qspi_dev_s *stm32l4_qspi_initialize(int intf); +/**************************************************************************** + * Name: stm32l4_qspi_enter_memorymapped + * + * Description: + * Put the QSPI device into memory mapped mode + * + * Input Parameter: + * dev - QSPI device + * meminfo - parameters like for a memory transfer used for reading + * lpto - number of cycles to wait to automatically de-assert CS + * + * Returned Value: + * None + * + ****************************************************************************/ + +void stm32l4_qspi_enter_memorymapped(struct qspi_dev_s* dev, + const struct qspi_meminfo_s *meminfo, + uint32_t lpto); + +/**************************************************************************** + * Name: stm32l4_qspi_exit_memorymapped + * + * Description: + * Take the QSPI device out of memory mapped mode + * + * Input Parameter: + * dev - QSPI device + * + * Returned Value: + * None + * + ****************************************************************************/ + +void stm32l4_qspi_exit_memorymapped(struct qspi_dev_s* dev); + #undef EXTERN #if defined(__cplusplus) } -- GitLab From 0d57612d13eb8c63637a972860864f24069a6d17 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 23 Apr 2016 10:57:28 -0600 Subject: [PATCH 087/307] VNC: Need to handle connection closed events --- graphics/vnc/server/vnc_negotiate.c | 27 ++++++++++++++++++++++++++- graphics/vnc/server/vnc_receiver.c | 10 ++++++++-- graphics/vnc/server/vnc_server.c | 3 +++ include/nuttx/video/rfb.h | 2 +- 4 files changed, 38 insertions(+), 4 deletions(-) diff --git a/graphics/vnc/server/vnc_negotiate.c b/graphics/vnc/server/vnc_negotiate.c index 7b4bb67c1a..1d7e28d814 100644 --- a/graphics/vnc/server/vnc_negotiate.c +++ b/graphics/vnc/server/vnc_negotiate.c @@ -162,6 +162,11 @@ int vnc_negotiate(FAR struct vnc_session_s *session) DEBUGASSERT(errcode > 0); return -errcode; } + else if (nrecvd == 0) + { + gdbg("Connection closed\n"); + return -ECONNABORTED; + } DEBUGASSERT(nrecvd == len); @@ -229,6 +234,11 @@ int vnc_negotiate(FAR struct vnc_session_s *session) DEBUGASSERT(errcode > 0); return -errcode; } + else if (nrecvd == 0) + { + gdbg("Connection closed\n"); + return -ECONNABORTED; + } DEBUGASSERT(nrecvd == sizeof(struct rfb_selected_sectype_s)); @@ -313,6 +323,11 @@ int vnc_negotiate(FAR struct vnc_session_s *session) DEBUGASSERT(errcode > 0); return -errcode; } + else if (nrecvd == 0) + { + gdbg("Connection closed\n"); + return -ECONNABORTED; + } DEBUGASSERT(nrecvd == sizeof(struct rfb_clientinit_s)); @@ -383,6 +398,11 @@ int vnc_negotiate(FAR struct vnc_session_s *session) DEBUGASSERT(errcode > 0); return -errcode; } + else if (nrecvd == 0) + { + gdbg("Connection closed\n"); + return -ECONNABORTED; + } else if (nrecvd != sizeof(struct rfb_setpixelformat_s)) { /* Must not be a SetPixelFormat message? */ @@ -425,8 +445,13 @@ int vnc_negotiate(FAR struct vnc_session_s *session) DEBUGASSERT(errcode > 0); return -errcode; } + else if (nrecvd == 0) + { + gdbg("Connection closed\n"); + return -ECONNABORTED; + } - if (nrecvd > 0 && encodings->msgtype == RFB_SETENCODINGS_MSG) + if (encodings->msgtype == RFB_SETENCODINGS_MSG) { DEBUGASSERT(nrecvd >= SIZEOF_RFB_SETENCODINGS_S(0)); diff --git a/graphics/vnc/server/vnc_receiver.c b/graphics/vnc/server/vnc_receiver.c index 481f6bed0c..4f25d4931e 100644 --- a/graphics/vnc/server/vnc_receiver.c +++ b/graphics/vnc/server/vnc_receiver.c @@ -176,10 +176,16 @@ int vnc_receiver(FAR struct vnc_session_s *session) return -errcode; } - /* REVISIT: This assertion sometimes fires when there is a client - * disconnection. + /* A return value of zero means that the connection was gracefully + * closed by the VNC client. */ + else if (nrecvd == 0) + { + gdbg("Connection closed\n", errcode); + return OK; + } + DEBUGASSERT(nrecvd == 1); /* The single byte received should be the message type. Handle the diff --git a/graphics/vnc/server/vnc_server.c b/graphics/vnc/server/vnc_server.c index 10c0a84dd9..db49b55c61 100644 --- a/graphics/vnc/server/vnc_server.c +++ b/graphics/vnc/server/vnc_server.c @@ -129,9 +129,11 @@ static void vnc_reset_session(FAR struct vnc_session_s *session, sem_reset(&session->freesem, CONFIG_VNCSERVER_NUPDATES); sem_reset(&session->queuesem, 0); + session->fb = fb; session->display = display; session->state = VNCSERVER_INITIALIZED; + session->change = true; } /**************************************************************************** @@ -344,6 +346,7 @@ int vnc_server(int argc, FAR char *argv[]) ret = vnc_receiver(session); gvdbg("Session terminated with %d\n", ret); + UNUSED(ret); /* Stop the VNC updater thread. */ diff --git a/include/nuttx/video/rfb.h b/include/nuttx/video/rfb.h index c6108715f2..0b1c13821c 100644 --- a/include/nuttx/video/rfb.h +++ b/include/nuttx/video/rfb.h @@ -371,7 +371,7 @@ struct rfb_setencodings_s { uint8_t msgtype; /* U8 Message type */ uint8_t padding; - uint8_t nencodings[2]; /* U32 Number of encodings */ + uint8_t nencodings[2]; /* U16 Number of encodings */ uint8_t encodings[4]; /* S32 Encoding type, size = 4*nencodings */ }; -- GitLab From b7940e93897797d5136c8c4837022806c737dd1a Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 23 Apr 2016 12:32:42 -0600 Subject: [PATCH 088/307] VNC: Fix some backward logic in a wait loop --- graphics/vnc/server/vnc_fbdev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/graphics/vnc/server/vnc_fbdev.c b/graphics/vnc/server/vnc_fbdev.c index 36337cf273..fb3b71a425 100644 --- a/graphics/vnc/server/vnc_fbdev.c +++ b/graphics/vnc/server/vnc_fbdev.c @@ -489,7 +489,7 @@ static inline int vnc_wait_start(int display) */ while (g_vnc_sessions[display] == NULL || - g_vnc_sessions[display]->state != VNCSERVER_UNINITIALIZED) + g_vnc_sessions[display]->state == VNCSERVER_UNINITIALIZED) { /* The server is not yet running. Wait for the server to post the FB * semaphore. In certain error situations, the server may post the -- GitLab From aed10e0e49f5a236d6f5f709e4063069a038e2ab Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 23 Apr 2016 12:51:46 -0600 Subject: [PATCH 089/307] Cosmetic changes from last PR --- arch/arm/src/stm32l4/stm32l4_qspi.c | 49 +++++++++++++++-------------- 1 file changed, 25 insertions(+), 24 deletions(-) diff --git a/arch/arm/src/stm32l4/stm32l4_qspi.c b/arch/arm/src/stm32l4/stm32l4_qspi.c index fcc58c0d55..d9c9ca5825 100644 --- a/arch/arm/src/stm32l4/stm32l4_qspi.c +++ b/arch/arm/src/stm32l4/stm32l4_qspi.c @@ -121,7 +121,7 @@ #define DMA_NSAMPLES 5 #ifdef CONFIG_STM32L4_QSPI_DMA -# error QSPI DMA support not yet implemented +# error QSPI DMA support not yet implemented #endif /* QSPI dma is not yet implemented */ @@ -136,22 +136,22 @@ #if (!defined(GPIO_QSPI_CS) || !defined(GPIO_QSPI_IO0) || !defined(GPIO_QSPI_IO1) || \ !defined(GPIO_QSPI_IO2) || !defined(GPIO_QSPI_IO3) || !defined(GPIO_QSPI_SCK)) -# error you must define QSPI pinmapping options for GPIO_QSPI_CS GPIO_QSPI_IO0 \ +# error you must define QSPI pinmapping options for GPIO_QSPI_CS GPIO_QSPI_IO0 \ GPIO_QSPI_IO1 GPIO_QSPI_IO2 GPIO_QSPI_IO3 GPIO_QSPI_SCK in your board.h #endif #ifdef CONFIG_STM32L4_QSPI_DMA -#if !defined(DMACHAN_QUADSPI) -# error QSPI DMA channel must be specified via DMACHAN_QUADSPI in your board.h -#endif +# if !defined(DMACHAN_QUADSPI) +# error QSPI DMA channel must be specified via DMACHAN_QUADSPI in your board.h +# endif #endif #ifndef BOARD_AHB_FREQUENCY -# error your board.h needs to define the value of BOARD_AHB_FREQUENCY +# error your board.h needs to define the value of BOARD_AHB_FREQUENCY #endif #if !defined(CONFIG_STM32L4_QSPI_FLASH_SIZE) || 0 == CONFIG_STM32L4_QSPI_FLASH_SIZE -# error you must specify a positive flash size via CONFIG_STM32L4_QSPI_FLASH_SIZE +# error you must specify a positive flash size via CONFIG_STM32L4_QSPI_FLASH_SIZE #endif /* Clocking *****************************************************************/ @@ -1355,13 +1355,14 @@ static uint32_t qspi_setfrequency(struct qspi_dev_s *dev, uint32_t frequency) uint32_t prescaler; uint32_t regval; - if (priv->memmap) - { - /* XXX we have no better return here, but the caller will find out - * in their subsequent calls. - */ - return 0; - } + if (priv->memmap) + { + /* XXX we have no better return here, but the caller will find out + * in their subsequent calls. + */ + + return 0; + } qspivdbg("frequency=%d\n", frequency); DEBUGASSERT(priv); @@ -1555,9 +1556,9 @@ static int qspi_command(struct qspi_dev_s *dev, */ if (priv->memmap) - { - return -EBUSY; - } + { + return -EBUSY; + } /* Set up the transaction descriptor as per command info */ @@ -1736,9 +1737,9 @@ static int qspi_memory(struct qspi_dev_s *dev, */ if (priv->memmap) - { - return -EBUSY; - } + { + return -EBUSY; + } /* Set up the transaction descriptor as per command info */ @@ -2181,10 +2182,10 @@ void stm32l4_qspi_enter_memorymapped(struct qspi_dev_s* dev, qspi_lock(dev, true); if (priv->memmap) - { - qspi_lock(dev, false); - return; - } + { + qspi_lock(dev, false); + return; + } /* Abort anything in-progress */ -- GitLab From b9c2b92b10b99890575f8bcd4cc7783fa8e839fc Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 23 Apr 2016 13:25:46 -0600 Subject: [PATCH 090/307] Add utilities to count the number of nodes in a queue --- include/queue.h | 11 +++++++ libc/queue/Make.defs | 4 +-- libc/queue/dq_count.c | 69 +++++++++++++++++++++++++++++++++++++++++++ libc/queue/sq_count.c | 69 +++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 151 insertions(+), 2 deletions(-) create mode 100644 libc/queue/dq_count.c create mode 100644 libc/queue/sq_count.c diff --git a/include/queue.h b/include/queue.h index e18d9f0b7f..d0953ed848 100644 --- a/include/queue.h +++ b/include/queue.h @@ -135,6 +135,8 @@ extern "C" #define EXTERN extern #endif +/* Add nodes to queues */ + void sq_addfirst(FAR sq_entry_t *node, FAR sq_queue_t *queue); void dq_addfirst(FAR dq_entry_t *node, FAR dq_queue_t *queue); void sq_addlast(FAR sq_entry_t *node, FAR sq_queue_t *queue); @@ -146,9 +148,13 @@ void dq_addafter(FAR dq_entry_t *prev, FAR dq_entry_t *node, void dq_addbefore(FAR dq_entry_t *next, FAR dq_entry_t *node, FAR dq_queue_t *queue); +/* Combine queues */ + void sq_cat(FAR sq_queue_t *queue1, FAR sq_queue_t *queue2); void dq_cat(FAR dq_queue_t *queue1, FAR dq_queue_t *queue2); +/* Remove nodes from queues */ + FAR sq_entry_t *sq_remafter(FAR sq_entry_t *node, FAR sq_queue_t *queue); void sq_rem(FAR sq_entry_t *node, FAR sq_queue_t *queue); void dq_rem(FAR dq_entry_t *node, FAR dq_queue_t *queue); @@ -157,6 +163,11 @@ FAR dq_entry_t *dq_remlast(FAR dq_queue_t *queue); FAR sq_entry_t *sq_remfirst(FAR sq_queue_t *queue); FAR dq_entry_t *dq_remfirst(FAR dq_queue_t *queue); +/* Count nodes in queues */ + +size_t sq_count(FAR sq_queue_t *queue); +size_t dq_count(FAR dq_queue_t *queue); + #undef EXTERN #ifdef __cplusplus } diff --git a/libc/queue/Make.defs b/libc/queue/Make.defs index adc10fd2c5..6b85ffd8a2 100644 --- a/libc/queue/Make.defs +++ b/libc/queue/Make.defs @@ -36,9 +36,9 @@ # Add the queue C files to the build CSRCS += sq_addlast.c sq_addfirst.c sq_addafter.c sq_cat.c -CSRCS += sq_rem.c sq_remlast.c sq_remfirst.c sq_remafter.c +CSRCS += sq_rem.c sq_remlast.c sq_remfirst.c sq_remafter.c sq_count.c CSRCS += dq_addlast.c dq_addfirst.c dq_addafter.c dq_addbefore.c dq_cat.c -CSRCS += dq_rem.c dq_remlast.c dq_remfirst.c +CSRCS += dq_rem.c dq_remlast.c dq_remfirst.c dq_count.c # Add the queue directory to the build diff --git a/libc/queue/dq_count.c b/libc/queue/dq_count.c new file mode 100644 index 0000000000..c62924a360 --- /dev/null +++ b/libc/queue/dq_count.c @@ -0,0 +1,69 @@ +/**************************************************************************** + * libc/queue/dq_count.c + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include + +#include +#include + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: dq_count + * + * Description: + * Return the number of nodes in the queue. + * + ****************************************************************************/ + +size_t dq_count(FAR dq_queue_t *queue) +{ + FAR dq_entry_t *node; + size_t count; + + DEBUGASSERT(queue != NULL); + + for (node = queue->head, count = 0; + node != NULL; + node = node->flink, count++); + + return count; +} diff --git a/libc/queue/sq_count.c b/libc/queue/sq_count.c new file mode 100644 index 0000000000..7f7bb155c4 --- /dev/null +++ b/libc/queue/sq_count.c @@ -0,0 +1,69 @@ +/**************************************************************************** + * libc/queue/sq_count.c + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include + +#include +#include + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: sq_count + * + * Description: + * Return the number of nodes in the queue. + * + ****************************************************************************/ + +size_t sq_count(FAR sq_queue_t *queue) +{ + FAR sq_entry_t *node; + size_t count; + + DEBUGASSERT(queue != NULL); + + for (node = queue->head, count = 0; + node != NULL; + node = node->flink, count++); + + return count; +} -- GitLab From d4ac277df80c92596f76f87d428977c5ddd4203a Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 23 Apr 2016 13:26:52 -0600 Subject: [PATCH 091/307] Mostly costmetic updates to comments, README --- configs/samv71-xult/README.txt | 13 +++++++++++-- graphics/vnc/server/vnc_server.c | 5 +++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/configs/samv71-xult/README.txt b/configs/samv71-xult/README.txt index f08af3deb4..5cec12dc25 100644 --- a/configs/samv71-xult/README.txt +++ b/configs/samv71-xult/README.txt @@ -2499,6 +2499,15 @@ Configuration sub-directories the vnc configuration. That probably all applies here as well. Only some initial testing has been performed: The configuration - does not work. No crashes or errors are reported, but the VNC - client window stays black. I have not yet dug into this. + does not work. The NuttX VNC server is crashing because of this + assertion: + + while (sem_wait(&session->queuesem) < 0) + ... + rect = (FAR struct vnc_fbupdate_s *)sq_remfirst(&session->updqueue); + DEBUGASSERT(rect != NULL); + + I would think that could mean only that the semaphore counting is + out of sync with the number of updates in the queue. + \ No newline at end of file diff --git a/graphics/vnc/server/vnc_server.c b/graphics/vnc/server/vnc_server.c index db49b55c61..cad2f5ca3f 100644 --- a/graphics/vnc/server/vnc_server.c +++ b/graphics/vnc/server/vnc_server.c @@ -133,7 +133,12 @@ static void vnc_reset_session(FAR struct vnc_session_s *session, session->fb = fb; session->display = display; session->state = VNCSERVER_INITIALIZED; + session->nwhupd = 0; session->change = true; + + /* Careful not to disturb the keyboard/mouse callouts set by + * vnc_fbinitialize(). Client related data left in garbage state. + */ } /**************************************************************************** -- GitLab From 422769e85954f4ea8558c45569aa51b917a6a85b Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 23 Apr 2016 14:27:32 -0600 Subject: [PATCH 092/307] Update README. Improve some debug output. --- configs/samv71-xult/README.txt | 13 ++++--- graphics/vnc/server/vnc_updater.c | 59 +++++++++++++++++++++++-------- 2 files changed, 53 insertions(+), 19 deletions(-) diff --git a/configs/samv71-xult/README.txt b/configs/samv71-xult/README.txt index 5cec12dc25..bbde3150da 100644 --- a/configs/samv71-xult/README.txt +++ b/configs/samv71-xult/README.txt @@ -2498,9 +2498,13 @@ Configuration sub-directories 2106-04-23: Configuration created. See status up to this data in the vnc configuration. That probably all applies here as well. - Only some initial testing has been performed: The configuration - does not work. The NuttX VNC server is crashing because of this - assertion: + Only some initial testing has been performed: The configuration + is partially functional. Menus do appear and mouse input is + probably working correctly. + + But there are a lot of instabilities. I see assertions of + various kinds and the RealVNC client often crashes as well. + Some of the assertions I see are: while (sem_wait(&session->queuesem) < 0) ... @@ -2510,4 +2514,5 @@ Configuration sub-directories I would think that could mean only that the semaphore counting is out of sync with the number of updates in the queue. - \ No newline at end of file + But also the assertion at devif/devif_iobsend.c line: 102 which + probably means some kind of memory corruption. diff --git a/graphics/vnc/server/vnc_updater.c b/graphics/vnc/server/vnc_updater.c index 0368e46f42..e1db02f040 100644 --- a/graphics/vnc/server/vnc_updater.c +++ b/graphics/vnc/server/vnc_updater.c @@ -64,7 +64,8 @@ * Pre-processor Definitions ****************************************************************************/ -#undef VNCSERVER_SEM_DEBUG +#undef VNCSERVER_SEM_DEBUG /* Define to dump queue/semaphore state */ +#undef VNCSERVER_SEM_DEBUG_SILENT /* Define to dump only suspicious conditions */ /**************************************************************************** * Private Data @@ -112,8 +113,14 @@ static void vnc_sem_debug(FAR struct vnc_session_s *session, FAR const char *msg, unsigned int unattached) { FAR struct vnc_fbupdate_s *update; - unsigned int nqueued; - unsigned int nfree; + int nqueued; + int nfree; + int freesem; + int queuesem; + int freecount; + int queuecount; + int freewaiting; + int queuewaiting; while (sem_wait(&g_dbgsem) < 0) { @@ -122,19 +129,40 @@ static void vnc_sem_debug(FAR struct vnc_session_s *session, /* Count structures in the list */ - for (nqueued = 0, update = (FAR struct vnc_fbupdate_s *)session->updqueue.head; - update != NULL; - nqueued++, update = update->flink); + nqueued = sq_count(&session->updqueue); + nfree = sq_count(&session->updfree); - for (nfree = 0, update = (FAR struct vnc_fbupdate_s *)session->updfree.head; - update != NULL; - nfree++, update = update->flink); + freesem = session->freesem.semcount; + queuesem = session->queuesem.semcount; - syslog(LOG_INFO, "FREESEM DEBUG: %s\n", msg); - syslog(LOG_INFO, " freesem: %d\n", session->freesem.semcount); - syslog(LOG_INFO, " queued: %u\n", nqueued); - syslog(LOG_INFO, " free: %u\n", nfree); - syslog(LOG_INFO, " unattached: %u\n", unattached); + freecount = freesem > 0 ? freesem : 0; + queuecount = queuesem > 0 ? queuesem : 0; + + freewaiting = freesem < 0 ? -freesem : 0; + queuewaiting = queuesem < 0 ? -queuesem : 0; + +#ifdef VNCSERVER_SEM_DEBUG_SILENT + /* This dumps most false alarms in the case where: + * + * - Updater was waiting on a semaphore (count is -1) + * - New update added to the queue (queue count is 1) + * - queuesem posted. Wakes up Updater and the count is 0. + */ + + if ((nqueued + nfree) != (freecount + queuecount)) +#endif + { + syslog(LOG_INFO, "FREESEM DEBUG: %s\n", msg); + syslog(LOG_INFO, " Free list:\n"); + syslog(LOG_INFO, " semcount: %d\n", freecount); + syslog(LOG_INFO, " queued nodes: %u\n", nfree); + syslog(LOG_INFO, " waiting: %u\n", freewaiting); + syslog(LOG_INFO, " Qeued Updates:\n"); + syslog(LOG_INFO, " semcount: %d\n", queuecount); + syslog(LOG_INFO, " queued nodes: %u\n", nqueued); + syslog(LOG_INFO, " waiting: %u\n", queuewaiting); + syslog(LOG_INFO, " Unqueued: %u\n", unattached); + } sem_post(&g_dbgsem); } @@ -262,6 +290,8 @@ vnc_remove_queue(FAR struct vnc_session_s *session) /* It is reserved.. go get it */ rect = (FAR struct vnc_fbupdate_s *)sq_remfirst(&session->updqueue); + + vnc_sem_debug(session, "After remove", 0); DEBUGASSERT(rect != NULL); /* Check if we just removed the whole screen update from the queue */ @@ -272,7 +302,6 @@ vnc_remove_queue(FAR struct vnc_session_s *session) updvdbg("Whole screen update: nwhupd=%d\n", session->nwhupd); } - vnc_sem_debug(session, "After remove", 0); sched_unlock(); return rect; } -- GitLab From 0f8dc3e7b4a452e01f0ca0ede817422fef377dd5 Mon Sep 17 00:00:00 2001 From: ziggurat29 Date: Sun, 24 Apr 2016 16:23:47 -0500 Subject: [PATCH 093/307] fixed missing DMA peripheral selection and some header defines, updated various comments to be accurate --- arch/arm/src/stm32l4/chip/stm32l4x6xx_dma.h | 11 +++++- arch/arm/src/stm32l4/stm32l4_dma.h | 33 ++++++++-------- arch/arm/src/stm32l4/stm32l4x6xx_dma.c | 44 ++++++++++++++------- 3 files changed, 55 insertions(+), 33 deletions(-) diff --git a/arch/arm/src/stm32l4/chip/stm32l4x6xx_dma.h b/arch/arm/src/stm32l4/chip/stm32l4x6xx_dma.h index c0d136150f..ab63195d2f 100644 --- a/arch/arm/src/stm32l4/chip/stm32l4x6xx_dma.h +++ b/arch/arm/src/stm32l4/chip/stm32l4x6xx_dma.h @@ -39,8 +39,7 @@ /************************************************************************************ * Pre-processor Definitions ************************************************************************************/ -/* These definitions apply to both the STM32 F1 and F3 families */ -/* 12 Channels Total: 7 DMA1 Channels(1-7) and 5 DMA2 channels (1-5) */ +/* 14 Channels Total: 7 DMA1 Channels(1-7) and 7 DMA2 channels (1-7) */ #define DMA1 0 #define DMA2 1 @@ -158,6 +157,8 @@ #define STM32L4_DMA2_CCR3 (STM32L4_DMA2_BASE+STM32L4_DMA_CCR3_OFFSET) #define STM32L4_DMA2_CCR4 (STM32L4_DMA2_BASE+STM32L4_DMA_CCR4_OFFSET) #define STM32L4_DMA2_CCR5 (STM32L4_DMA2_BASE+STM32L4_DMA_CCR5_OFFSET) +#define STM32L4_DMA2_CCR6 (STM32L4_DMA2_BASE+STM32L4_DMA_CCR6_OFFSET) +#define STM32L4_DMA2_CCR7 (STM32L4_DMA2_BASE+STM32L4_DMA_CCR7_OFFSET) #define STM32L4_DMA2_CNDTR(n) (STM32L4_DMA2_BASE+STM32L4_DMA_CNDTR_OFFSET(n)) #define STM32L4_DMA2_CNDTR1 (STM32L4_DMA2_BASE+STM32L4_DMA_CNDTR1_OFFSET) @@ -165,6 +166,8 @@ #define STM32L4_DMA2_CNDTR3 (STM32L4_DMA2_BASE+STM32L4_DMA_CNDTR3_OFFSET) #define STM32L4_DMA2_CNDTR4 (STM32L4_DMA2_BASE+STM32L4_DMA_CNDTR4_OFFSET) #define STM32L4_DMA2_CNDTR5 (STM32L4_DMA2_BASE+STM32L4_DMA_CNDTR5_OFFSET) +#define STM32L4_DMA2_CNDTR6 (STM32L4_DMA2_BASE+STM32L4_DMA_CNDTR6_OFFSET) +#define STM32L4_DMA2_CNDTR7 (STM32L4_DMA2_BASE+STM32L4_DMA_CNDTR7_OFFSET) #define STM32L4_DMA2_CPAR(n) (STM32L4_DMA2_BASE+STM32L4_DMA_CPAR_OFFSET(n)) #define STM32L4_DMA2_CPAR1 (STM32L4_DMA2_BASE+STM32L4_DMA_CPAR1_OFFSET) @@ -172,6 +175,8 @@ #define STM32L4_DMA2_CPAR3 (STM32L4_DMA2_BASE+STM32L4_DMA_CPAR3_OFFSET) #define STM32L4_DMA2_CPAR4 (STM32L4_DMA2_BASE+STM32L4_DMA_CPAR4_OFFSET) #define STM32L4_DMA2_CPAR5 (STM32L4_DMA2_BASE+STM32L4_DMA_CPAR5_OFFSET) +#define STM32L4_DMA2_CPAR6 (STM32L4_DMA2_BASE+STM32L4_DMA_CPAR6_OFFSET) +#define STM32L4_DMA2_CPAR7 (STM32L4_DMA2_BASE+STM32L4_DMA_CPAR7_OFFSET) #define STM32L4_DMA2_CMAR(n) (STM32L4_DMA2_BASE+STM32L4_DMA_CMAR_OFFSET(n)) #define STM32L4_DMA2_CMAR1 (STM32L4_DMA2_BASE+STM32L4_DMA_CMAR1_OFFSET) @@ -179,6 +184,8 @@ #define STM32L4_DMA2_CMAR3 (STM32L4_DMA2_BASE+STM32L4_DMA_CMAR3_OFFSET) #define STM32L4_DMA2_CMAR4 (STM32L4_DMA2_BASE+STM32L4_DMA_CMAR4_OFFSET) #define STM32L4_DMA2_CMAR5 (STM32L4_DMA2_BASE+STM32L4_DMA_CMAR5_OFFSET) +#define STM32L4_DMA2_CMAR6 (STM32L4_DMA2_BASE+STM32L4_DMA_CMAR6_OFFSET) +#define STM32L4_DMA2_CMAR7 (STM32L4_DMA2_BASE+STM32L4_DMA_CMAR7_OFFSET) /* Register Bitfield Definitions ****************************************************/ diff --git a/arch/arm/src/stm32l4/stm32l4_dma.h b/arch/arm/src/stm32l4/stm32l4_dma.h index 9fd36a6337..ee11f8655c 100644 --- a/arch/arm/src/stm32l4/stm32l4_dma.h +++ b/arch/arm/src/stm32l4/stm32l4_dma.h @@ -3,6 +3,8 @@ * * Copyright (C) 2009, 2011-2013 Gregory Nutt. All rights reserved. * Author: Gregory Nutt + * Sebastien Lorquet + * dev@ziggurat29.com * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -57,13 +59,11 @@ * DMA callback function (see dma_callback_t). */ -# define DMA_STATUS_FEIF 0 /* (Not available in F1) */ -# define DMA_STATUS_DMEIF 0 /* (Not available in F1) */ # define DMA_STATUS_TEIF DMA_CHAN_TEIF_BIT /* Channel Transfer Error */ # define DMA_STATUS_HTIF DMA_CHAN_HTIF_BIT /* Channel Half Transfer */ # define DMA_STATUS_TCIF DMA_CHAN_TCIF_BIT /* Channel Transfer Complete */ -#define DMA_STATUS_ERROR (DMA_STATUS_FEIF|DMA_STATUS_DMEIF|DMA_STATUS_TEIF) +#define DMA_STATUS_ERROR (DMA_STATUS_TEIF) #define DMA_STATUS_SUCCESS (DMA_STATUS_TCIF|DMA_STATUS_HTIF) /************************************************************************************ @@ -71,7 +71,7 @@ ************************************************************************************/ /* DMA_HANDLE provides an opaque are reference that can be used to represent a DMA - * channel (F1) or a DMA stream (F4). + * channel. */ typedef FAR void *DMA_HANDLE; @@ -81,7 +81,7 @@ typedef FAR void *DMA_HANDLE; * completion of the DMA. * * Input Parameters: - * handle - Refers tot he DMA channel or stream + * handle - Refers tot he DMA channel * status - A bit encoded value that provides the completion status. See the * DMASTATUS_* definitions above. * arg - A user-provided value that was provided when stm32l4_dmastart() was @@ -93,11 +93,12 @@ typedef void (*dma_callback_t)(DMA_HANDLE handle, uint8_t status, void *arg); #ifdef CONFIG_DEBUG_DMA struct stm32l4_dmaregs_s { - uint32_t isr; - uint32_t ccr; - uint32_t cndtr; - uint32_t cpar; - uint32_t cmar; + uint32_t isr; /* Interrupt Status Register; each channel gets 4 bits */ + uint32_t cselr; /* Channel Selection Register; chooses peripheral bound */ + uint32_t ccr; /* Channel Configuration Register; determines functionality */ + uint32_t cndtr; /* Channel Count Register; determines number of transfers */ + uint32_t cpar; /* Channel Peripheral Address Register; determines start */ + uint32_t cmar; /* Channel Memory Address Register; determines start */ }; #endif @@ -126,7 +127,7 @@ extern "C" * Description: * Allocate a DMA channel. This function gives the caller mutually * exclusive access to the DMA channel specified by the 'chan' argument. - * DMA channels are shared on the STM32: Devices sharing the same DMA + * DMA channels are shared on the STM32L4: Devices sharing the same DMA * channel cannot do DMA concurrently! See the DMACHAN_* definitions in * stm32l4_dma.h. * @@ -142,10 +143,8 @@ extern "C" * * Input parameter: * chan - Identifies the stream/channel resource - * For the STM32 F1, this is simply the channel number as provided by - * the DMACHAN_* definitions in chip/stm32f10xxx_dma.h. - * For the STM32 F4, this is a bit encoded value as provided by the - * the DMAMAP_* definitions in chip/stm32f40xxx_dma.h + * This is a bit encoded value as provided by the DMACHAN_* definitions + * in chip/stm32l4x6xx_dma.h * * Returned Value: * Provided that 'chan' is valid, this function ALWAYS returns a non-NULL, @@ -153,8 +152,8 @@ extern "C" * assert if debug is enabled or do something ignorant otherwise). * * Assumptions: - * - The caller does not hold he DMA channel. - * - The caller can wait for the DMA channel to be freed if it is no + * - The caller does not hold the DMA channel. + * - The caller can wait for the DMA channel to be freed if it is not * available. * ****************************************************************************/ diff --git a/arch/arm/src/stm32l4/stm32l4x6xx_dma.c b/arch/arm/src/stm32l4/stm32l4x6xx_dma.c index 2e6afa2b3b..a45d33970b 100644 --- a/arch/arm/src/stm32l4/stm32l4x6xx_dma.c +++ b/arch/arm/src/stm32l4/stm32l4x6xx_dma.c @@ -3,6 +3,8 @@ * * Copyright (C) 2009, 2011-2013 Gregory Nutt. All rights reserved. * Author: Gregory Nutt + * Sebastien Lorquet + * dev@ziggurat29.com * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -306,16 +308,17 @@ static int stm32l4_dmainterrupt(int irq, void *context) isr = dmabase_getreg(dmach, STM32L4_DMA_ISR_OFFSET) & DMA_ISR_CHAN_MASK(dmach->chan); - /* Clear the interrupts we are handling */ - - dmabase_putreg(dmach, STM32L4_DMA_IFCR_OFFSET, isr); - /* Invoke the callback */ if (dmach->callback) { dmach->callback(dmach, isr >> DMA_ISR_CHAN_SHIFT(dmach->chan), dmach->arg); } + + /* Clear the interrupts we are handling */ + + dmabase_putreg(dmach, STM32L4_DMA_IFCR_OFFSET, isr); + return OK; } @@ -387,9 +390,9 @@ void weak_function up_dmainitialize(void) * version. Feel free to do that if that is what you need. * * Input parameter: - * chndx - Identifies the stream/channel resource. For the STM32 F1, this - * is simply the channel number as provided by the DMACHAN_* definitions - * in chip/stm32f10xxx_dma.h. + * chan - Identifies the stream/channel resource + * This is a bit encoded value as provided by the DMACHAN_* definitions + * in chip/stm32l4x6xx_dma.h * * Returned Value: * Provided that 'chndx' is valid, this function ALWAYS returns a non-NULL, @@ -471,6 +474,9 @@ void stm32l4_dmasetup(DMA_HANDLE handle, uint32_t paddr, uint32_t maddr, struct stm32l4_dma_s *dmach = (struct stm32l4_dma_s *)handle; uint32_t regval; + DEBUGASSERT(handle != NULL); + DEBUGASSERT(ntransfers<65536); + /* Then DMA_CNDTRx register can only be modified if the DMA channel is * disabled. */ @@ -514,7 +520,12 @@ void stm32l4_dmasetup(DMA_HANDLE handle, uint32_t paddr, uint32_t maddr, regval |= ccr; dmachan_putreg(dmach, STM32L4_DMACHAN_CCR_OFFSET, regval); -#warning TODO define peripheral by using dmach->function + /* define peripheral indicated in dmach->function */ + + regval = dmabase_getreg(dmach, STM32L4_DMA_CSELR_OFFSET); + regval &= (0x0f << (dmach->chan << 2)); + regval |= (dmach->function << (dmach->chan << 2)); + dmabase_putreg(dmach, STM32L4_DMA_CSELR_OFFSET, regval); } /**************************************************************************** @@ -641,7 +652,9 @@ bool stm32l4_dmacapable(uint32_t maddr, uint32_t count, uint32_t ccr) * Transfers to/from memory performed by the DMA controller are * required to be aligned to their size. * - * See ST RM0090 rev4, section 9.3.11 + * Datasheet 3.13 claims + * "Access to Flash, SRAM, APB and AHB peripherals as source + * and destination" * * Compute mend inline to avoid a possible non-constant integer * multiply. @@ -682,13 +695,14 @@ bool stm32l4_dmacapable(uint32_t maddr, uint32_t count, uint32_t ccr) switch (maddr & STM32L4_REGION_MASK) { -#if defined(CONFIG_STM32L4_STM32F10XX) + case STM32L4_PERIPH_BASE: + case STM32L4_FSMC_BASE: case STM32L4_FSMC_BANK1: case STM32L4_FSMC_BANK2: case STM32L4_FSMC_BANK3: case STM32L4_FSMC_BANK4: -#endif case STM32L4_SRAM_BASE: + case STM32L4_SRAM2_BASE: case STM32L4_CODE_BASE: /* All RAM and flash is supported */ @@ -719,13 +733,14 @@ void stm32l4_dmasample(DMA_HANDLE handle, struct stm32l4_dmaregs_s *regs) struct stm32l4_dma_s *dmach = (struct stm32l4_dma_s *)handle; irqstate_t flags; - flags = irqsave(); + flags = enter_critical_section(); regs->isr = dmabase_getreg(dmach, STM32L4_DMA_ISR_OFFSET); + regs->cselr = dmabase_getreg(dmach, STM32L4_DMA_CSELR_OFFSET); regs->ccr = dmachan_getreg(dmach, STM32L4_DMACHAN_CCR_OFFSET); regs->cndtr = dmachan_getreg(dmach, STM32L4_DMACHAN_CNDTR_OFFSET); regs->cpar = dmachan_getreg(dmach, STM32L4_DMACHAN_CPAR_OFFSET); regs->cmar = dmachan_getreg(dmach, STM32L4_DMACHAN_CMAR_OFFSET); - irqrestore(flags); + leave_critical_section(flags); } #endif @@ -748,7 +763,8 @@ void stm32l4_dmadump(DMA_HANDLE handle, const struct stm32l4_dmaregs_s *regs, uint32_t dmabase = DMA_BASE(dmach->base); dmadbg("DMA Registers: %s\n", msg); - dmadbg(" ISRC[%08x]: %08x\n", dmabase + STM32L4_DMA_ISR_OFFSET, regs->isr); + dmadbg(" ISR[%08x]: %08x\n", dmabase + STM32L4_DMA_ISR_OFFSET, regs->isr); + dmadbg(" CSELR[%08x]: %08x\n", dmabase + STM32L4_DMA_CSELR_OFFSET, regs->cselr); dmadbg(" CCR[%08x]: %08x\n", dmach->base + STM32L4_DMACHAN_CCR_OFFSET, regs->ccr); dmadbg(" CNDTR[%08x]: %08x\n", dmach->base + STM32L4_DMACHAN_CNDTR_OFFSET, regs->cndtr); dmadbg(" CPAR[%08x]: %08x\n", dmach->base + STM32L4_DMACHAN_CPAR_OFFSET, regs->cpar); -- GitLab From 8d4dccb3b9ecb5b15cee480e51675507873988c2 Mon Sep 17 00:00:00 2001 From: ziggurat29 Date: Sun, 24 Apr 2016 16:28:30 -0500 Subject: [PATCH 094/307] add DMA support to QSPI; tested. Updated Kconfig to more cleanly present the options and defaults. --- arch/arm/src/stm32l4/Kconfig | 117 +++++- arch/arm/src/stm32l4/README.txt | 4 +- arch/arm/src/stm32l4/stm32l4_qspi.c | 563 +++++++++++++++++++++++++--- 3 files changed, 623 insertions(+), 61 deletions(-) diff --git a/arch/arm/src/stm32l4/Kconfig b/arch/arm/src/stm32l4/Kconfig index 5bda5de53a..f982641ed1 100644 --- a/arch/arm/src/stm32l4/Kconfig +++ b/arch/arm/src/stm32l4/Kconfig @@ -79,7 +79,7 @@ config STM32L4_HAVE_LTDC default n # These "hidden" settings are the OR of individual peripheral selections -# indicating that the general capabilitiy is required. +# indicating that the general capability is required. config STM32L4_ADC bool @@ -133,7 +133,6 @@ config STM32L4_DMA2 select STM32L4_DMA select ARCH_DMA - config STM32L4_CRC bool "CRC" default n @@ -209,7 +208,119 @@ config STM32L4_QSPI_CSHT ---help--- The STM32L4 QSPI peripheral requires that it be specified the minimum number of AHB cycles that Chip Select be held inactive between transactions. - + +choice + prompt "Transfer technique" + default STM32L4_QSPI_DMA + ---help--- + You can choose between using polling, interrupts, or DMA to transfer data + over the QSPI interface. + +config STM32L4_QSPI_POLLING + bool "Polling" + ---help--- + Use conventional register I/O with status polling to transfer data. + +config STM32L4_QSPI_INTERRUPTS + bool "Interrupts" + ---help--- + User interrupt driven I/O transfers. + +config STM32L4_QSPI_DMA + bool "DMA" + depends on STM32L4_DMA + ---help--- + Use DMA to improve QSPI transfer performance. + +endchoice + +choice + prompt "DMA Channel" + default STM32L4_QSPI_DMA_CHAN_1_5 + depends on STM32L4_DMA + ---help--- + You can choose between two DMA channels for use with QSPI: + either DMA1 channel 5, or DMA2 channel 7. + If you only see one choice here, it is probably because + you have not also enabled the associated DMA controller. + +config STM32L4_QSPI_DMA_CHAN_1_5 + bool "DMA1 Channel 5" + depends on STM32L4_DMA1 + ---help--- + Use DMA1 channel 5 for QSPI. + +config STM32L4_QSPI_DMA_CHAN_2_7 + bool "DMA2 Channel 7" + depends on STM32L4_DMA2 + ---help--- + Use DMA2 channel 7 for QSPI. + +endchoice + +choice + prompt "DMA Priority" + default STM32L4_QSPI_DMAPRIORITY_MEDIUM + depends on STM32L4_DMA + ---help--- + The DMA controller supports priority levels. You are probably fine + with the default of 'medium' except for special cases. In the event + of contention between to channels at the same priority, the lower + numbered channel has hardware priority over the higher numbered one. + +config STM32L4_QSPI_DMAPRIORITY_VERYHIGH + bool "Very High priority" + depends on STM32L4_DMA + ---help--- + 'Highest' priority. + +config STM32L4_QSPI_DMAPRIORITY_HIGH + bool "High priority" + depends on STM32L4_DMA + ---help--- + 'High' priority. + +config STM32L4_QSPI_DMAPRIORITY_MEDIUM + bool "Medium priority" + depends on STM32L4_DMA + ---help--- + 'Medium' priority. + +config STM32L4_QSPI_DMAPRIORITY_LOW + bool "Low priority" + depends on STM32L4_DMA + ---help--- + 'Low' priority. + +endchoice + +config STM32L4_QSPI_DMATHRESHOLD + int "QSPI DMA threshold" + default 4 + depends on STM32L4_QSPI_DMA + ---help--- + When QSPI DMA is enabled, small DMA transfers will still be performed + by polling logic. This value is the threshold below which transfers + will still be performed by conventional register status polling. + +config STM32L4_QSPI_DMADEBUG + bool "QSPI DMA transfer debug" + depends on STM32L4_QSPI_DMA && DEBUG && DEBUG_DMA + default n + ---help--- + Enable special debug instrumentation to analyze QSPI DMA data transfers. + This logic is as non-invasive as possible: It samples DMA + registers at key points in the data transfer and then dumps all of + the registers at the end of the transfer. + +config STM32L4_QSPI_REGDEBUG + bool "QSPI Register level debug" + depends on DEBUG + default n + ---help--- + Output detailed register-level QSPI device debug information. + Requires also DEBUG. + endif comment "APB1 Peripherals" diff --git a/arch/arm/src/stm32l4/README.txt b/arch/arm/src/stm32l4/README.txt index bf38fb80ae..59f2eb28d9 100644 --- a/arch/arm/src/stm32l4/README.txt +++ b/arch/arm/src/stm32l4/README.txt @@ -23,13 +23,13 @@ LSE : works, but TODO autotrim of MSI, etc RCC : All registers defined, peripherals enabled, basic clock working SYSCTL : All registers defined USART : Working in normal mode (no DMA, to be tested, code is written) -DMA : Ported from STM32, code written, to be tested +DMA : works; at least tested with QSPI SRAM2 : Should work with enough MM regions FIREWALL : Code written, to be tested, requires support from ldscript SPI : Code written, to be tested, including DMA I2C : Registers defined RTC : works -QSPI : TODO (port from stm32f7) +QSPI : works in polling, interrupt, DMA, and also memory-mapped modes CAN : TODO OTGFS : TODO Timers : TODO diff --git a/arch/arm/src/stm32l4/stm32l4_qspi.c b/arch/arm/src/stm32l4/stm32l4_qspi.c index d9c9ca5825..57aa85dac0 100644 --- a/arch/arm/src/stm32l4/stm32l4_qspi.c +++ b/arch/arm/src/stm32l4/stm32l4_qspi.c @@ -120,17 +120,11 @@ #define DMA_END_TRANSFER 4 #define DMA_NSAMPLES 5 -#ifdef CONFIG_STM32L4_QSPI_DMA -# error QSPI DMA support not yet implemented -#endif - -/* QSPI dma is not yet implemented */ - -#undef CONFIG_STM32L4_QSPI_DMA - -/* QSPI Interrupt mode is implemented */ +/* Can't have both interrupt-driven QSPI and DMA QSPI */ -#define QSPI_USE_INTERRUPTS +#if defined(STM32L4_QSPI_INTERRUPTS) && defined(CONFIG_STM32L4_QSPI_DMA) +# error "Cannot enable both interrupt mode and DMA mode for QSPI" +#endif /* Sanity check that board.h defines requisite QSPI pinmap options for */ @@ -141,9 +135,27 @@ #endif #ifdef CONFIG_STM32L4_QSPI_DMA -# if !defined(DMACHAN_QUADSPI) + +# if defined(CONFIG_STM32L4_QSPI_DMA_CHAN_1_5) +# define DMACHAN_QUADSPI DMACHAN_QUADSPI_1 +# elif defined(CONFIG_STM32L4_QSPI_DMA_CHAN_2_7) +# define DMACHAN_QUADSPI DMACHAN_QUADSPI_2 +# else # error QSPI DMA channel must be specified via DMACHAN_QUADSPI in your board.h # endif + +# if defined(CONFIG_STM32L4_QSPI_DMAPRIORITY_LOW) +# define QSPI_DMA_PRIO DMA_CCR_PRILO +# elif defined(CONFIG_STM32L4_QSPI_DMAPRIORITY_MEDIUM) +# define QSPI_DMA_PRIO DMA_CCR_PRIMED +# elif defined(CONFIG_STM32L4_QSPI_DMAPRIORITY_HIGH) +# define QSPI_DMA_PRIO DMA_CCR_PRIHI +# elif defined(CONFIG_STM32L4_QSPI_DMAPRIORITY_VERYHIGH) +# define QSPI_DMA_PRIO DMA_CCR_PRIVERYHI +# else +# define QSPI_DMA_PRIO DMA_CCR_PRIMED +# endif + #endif #ifndef BOARD_AHB_FREQUENCY @@ -154,6 +166,13 @@ # error you must specify a positive flash size via CONFIG_STM32L4_QSPI_FLASH_SIZE #endif +/* DMA timeout. The value is not critical; we just don't want the system to + * hang in the event that a DMA does not finish. + */ + +#define DMA_TIMEOUT_MS (800) +#define DMA_TIMEOUT_TICKS MSEC2TICK(DMA_TIMEOUT_MS) + /* Clocking *****************************************************************/ /* The QSPI bit rate clock is generated by dividing the peripheral clock by * a value between 1 and 255 @@ -184,7 +203,7 @@ struct stm32l4_qspidev_s sem_t exclsem; /* Assures mutually exclusive access to QSPI */ bool memmap; /* TRUE: Controller is in memory mapped mode */ -#ifdef QSPI_USE_INTERRUPTS +#ifdef STM32L4_QSPI_INTERRUPTS xcpt_t handler; /* Interrupt handler */ uint8_t irq; /* Interrupt number */ sem_t op_sem; /* Block until complete */ @@ -192,7 +211,11 @@ struct stm32l4_qspidev_s #endif #ifdef CONFIG_STM32L4_QSPI_DMA - /* XXX III needs implementation */ + bool candma; /* DMA is supported */ + sem_t dmawait; /* Used to wait for DMA completion */ + int result; /* DMA result */ + DMA_HANDLE dmach; /* QSPI DMA handle */ + WDOG_ID dmadog; /* Watchdog that handles DMA timeouts */ #endif /* Debug stuff */ @@ -238,7 +261,7 @@ struct qspi_xctnspec_s uint8_t isddr; /* true if 'double data rate' */ uint8_t issioo; /* true if 'send instruction only once' mode */ -#ifdef QSPI_USE_INTERRUPTS +#ifdef STM32L4_QSPI_INTERRUPTS uint8_t function; /* functional mode; to distinguish a read or write */ int8_t disposition; /* how it all turned out */ uint32_t idxnow; /* index into databuffer of current byte in transfer */ @@ -277,11 +300,37 @@ static void qspi_dumpgpioconfig(const char *msg); /* Interrupts */ -#ifdef QSPI_USE_INTERRUPTS +#ifdef STM32L4_QSPI_INTERRUPTS static int qspi0_interrupt(int irq, void *context); #endif +/* DMA support */ + +#ifdef CONFIG_STM32L4_QSPI_DMA + +# if defined(CONFIG_QSPI_DMAPRIO) +# define QSPI_DMA_PRIO CONFIG_QSPI_DMAPRIO +# else +# define QSPI_DMA_PRIO DMA_CCR_PRIMED +# endif + +# ifdef CONFIG_STM32L4_QSPI_DMADEBUG +# define qspi_dma_sample(s,i) stm32l4_dmasample((s)->dmach, &(s)->dmaregs[i]) +static void qspi_dma_sampleinit(struct stm32l4_qspidev_s *priv); +static void qspi_dma_sampledone(struct stm32l4_qspidev_s *priv); +# else +# define qspi_dma_sample(s,i) +# define qspi_dma_sampleinit(s) +# define qspi_dma_sampledone(s) +# endif + +# ifndef CONFIG_STM32L4_QSPI_DMATHRESHOLD +# define CONFIG_STM32L4_QSPI_DMATHRESHOLD 4 +# endif + +#endif + /* QSPI methods */ static int qspi_lock(struct qspi_dev_s *dev, bool lock); @@ -326,13 +375,13 @@ static struct stm32l4_qspidev_s g_qspi0dev = .ops = &g_qspi0ops, }, .base = STM32L4_QSPI_BASE, -#ifdef QSPI_USE_INTERRUPTS +#ifdef STM32L4_QSPI_INTERRUPTS .handler = qspi0_interrupt, .irq = STM32L4_IRQ_QUADSPI, #endif .intf = 0, #ifdef CONFIG_STM32L4_QSPI_DMA - /* XXX III needs implementation */ + .candma = true, #endif }; @@ -572,6 +621,93 @@ static void qspi_dumpgpioconfig(const char *msg) } #endif +#ifdef CONFIG_STM32L4_QSPI_DMADEBUG +/**************************************************************************** + * Name: qspi_dma_sampleinit + * + * Description: + * Initialize sampling of DMA registers + * + * Input Parameters: + * priv - QSPI driver instance + * + * Returned Value: + * None + * + ****************************************************************************/ + +static void qspi_dma_sampleinit(struct stm32l4_qspidev_s *priv) +{ + /* Put contents of register samples into a known state */ + + memset(priv->dmaregs, 0xff, DMA_NSAMPLES * sizeof(struct stm32l4_dmaregs_s)); + + /* Then get the initial samples */ + + stm32l4_dmasample(priv->dmach, &priv->dmaregs[DMA_INITIAL]); +} + +/**************************************************************************** + * Name: qspi_dma_sampledone + * + * Description: + * Dump sampled DMA registers + * + * Input Parameters: + * priv - QSPI driver instance + * + * Returned Value: + * None + * + ****************************************************************************/ + +static void qspi_dma_sampledone(struct stm32l4_qspidev_s *priv) +{ + /* Sample the final registers */ + + stm32l4_dmasample(priv->dmach, &priv->dmaregs[DMA_END_TRANSFER]); + + /* Then dump the sampled DMA registers */ + /* Initial register values */ + + stm32l4_dmadump(priv->dmach, &priv->dmaregs[DMA_INITIAL], + "Initial Registers"); + + /* Register values after DMA setup */ + + stm32l4_dmadump(priv->dmach, &priv->dmaregs[DMA_AFTER_SETUP], + "After DMA Setup"); + + /* Register values after DMA start */ + + stm32l4_dmadump(priv->dmach, &priv->dmaregs[DMA_AFTER_START], + "After DMA Start"); + + /* Register values at the time of the TX and RX DMA callbacks + * -OR- DMA timeout. + * + * If the DMA timed out, then there will not be any RX DMA + * callback samples. There is probably no TX DMA callback + * samples either, but we don't know for sure. + */ + + if (priv->result == -ETIMEDOUT) + { + stm32l4_dmadump(priv->dmach, &priv->dmaregs[DMA_TIMEOUT], + "At DMA timeout"); + } + else + { + stm32l4_dmadump(priv->dmach, &priv->dmaregs[DMA_CALLBACK], + "At DMA callback"); + } + + stm32l4_dmadump(priv->dmach, &priv->dmaregs[DMA_END_TRANSFER], + "At End-of-Transfer"); +} +#endif + + /**************************************************************************** * Name: qspi_setupxctnfromcmd * @@ -687,7 +823,7 @@ static int qspi_setupxctnfromcmd(struct qspi_xctnspec_s *xctn, xctn->isddr = 0; } -#if defined(QSPI_USE_INTERRUPTS) +#if defined(STM32L4_QSPI_INTERRUPTS) xctn->function = QSPICMD_ISWRITE(cmdinfo->flags) ? CCR_FMODE_INDWR : CCR_FMODE_INDRD; xctn->disposition = - EIO; xctn->idxnow = 0; @@ -816,7 +952,7 @@ static int qspi_setupxctnfrommem(struct qspi_xctnspec_s *xctn, xctn->isddr = 0; -#if defined(QSPI_USE_INTERRUPTS) +#if defined(STM32L4_QSPI_INTERRUPTS) xctn->function = QSPIMEM_ISWRITE(meminfo->flags) ? CCR_FMODE_INDWR : CCR_FMODE_INDRD; xctn->disposition = - EIO; xctn->idxnow = 0; @@ -938,7 +1074,7 @@ static void qspi_ccrconfig(struct stm32l4_qspidev_s *priv, } } -#if defined(QSPI_USE_INTERRUPTS) +#if defined(STM32L4_QSPI_INTERRUPTS) /**************************************************************************** * Name: qspi0_interrupt * @@ -1146,9 +1282,267 @@ static int qspi0_interrupt(int irq, void *context) } #elif defined(CONFIG_STM32L4_QSPI_DMA) - /* XXX III dma mode */ +/**************************************************************************** + * Name: qspi_dma_timeout + * + * Description: + * The watchdog timeout setup when a has expired without completion of a + * DMA. + * + * Input Parameters: + * argc - The number of arguments (should be 1) + * arg - The argument (state structure reference cast to uint32_t) + * + * Returned Value: + * None + * + * Assumptions: + * Always called from the interrupt level with interrupts disabled. + * + ****************************************************************************/ -#else +static void qspi_dma_timeout(int argc, uint32_t arg) +{ + struct stm32l4_qspidev_s *priv = (struct stm32l4_qspidev_s *)arg; + DEBUGASSERT(priv != NULL); + + /* Sample DMA registers at the time of the timeout */ + + qspi_dma_sample(priv, DMA_CALLBACK); + + /* Report timeout result, perhaps overwriting any failure reports from + * the TX callback. + */ + + priv->result = -ETIMEDOUT; + + /* Then wake up the waiting thread */ + + sem_post(&priv->dmawait); +} + +/**************************************************************************** + * Name: qspi_dma_callback + * + * Description: + * This callback function is invoked at the completion of the QSPI DMA. + * + * Input Parameters: + * handle - The DMA handler + * isr - source of the DMA interrupt + * arg - A pointer to the chip select structure + * + * Returned Value: + * None + * + ****************************************************************************/ + +static void qspi_dma_callback(DMA_HANDLE handle, uint8_t isr, void *arg) +{ + struct stm32l4_qspidev_s *priv = (struct stm32l4_qspidev_s *)arg; + DEBUGASSERT(priv != NULL); + + /* Cancel the watchdog timeout */ + + (void)wd_cancel(priv->dmadog); + + /* Sample DMA registers at the time of the callback */ + + qspi_dma_sample(priv, DMA_CALLBACK); + + /* Report the result of the transfer only if the callback has not already + * reported an error. + */ + + if (priv->result == -EBUSY) + { + /* Save the result of the transfer if no error was previously reported */ + + if ( isr & DMA_CHAN_TCIF_BIT ) + { + priv->result = OK; + } + else if ( isr & DMA_CHAN_TEIF_BIT ) + { + priv->result = -EIO; + } + else + { + priv->result = OK; + } + } + + /* Then wake up the waiting thread */ + + sem_post(&priv->dmawait); +} + +/**************************************************************************** + * Name: qspi_regaddr + * + * Description: + * Return the address of an QSPI register + * + ****************************************************************************/ + +static inline uintptr_t qspi_regaddr(struct stm32l4_qspidev_s *priv, + unsigned int offset) +{ + return priv->base + offset; +} + +/**************************************************************************** + * Name: qspi_memory_dma + * + * Description: + * Perform one QSPI memory transfer using DMA + * + * Input Parameters: + * priv - Device-specific state data + * meminfo - Describes the memory transfer to be performed. + * xctn - Describes the transaction context. + * + * Returned Value: + * Zero (OK) on SUCCESS, a negated errno on value of failure + * + ****************************************************************************/ + +static int qspi_memory_dma(struct stm32l4_qspidev_s *priv, + struct qspi_meminfo_s *meminfo, + struct qspi_xctnspec_s *xctn) +{ + uint32_t dmaflags; + uint32_t regval; + int ret; + + /* Initialize register sampling */ + + qspi_dma_sampleinit(priv); + + /* Determine DMA flags and setup the DMA */ + + if (QSPIMEM_ISWRITE(meminfo->flags)) + { + /* Setup the DMA (memory-to-peripheral) */ + + dmaflags = (QSPI_DMA_PRIO | DMA_CCR_MSIZE_8BITS | DMA_CCR_PSIZE_8BITS | DMA_CCR_MINC | DMA_CCR_DIR); + } + else + { + /* Setup the DMA (peripheral-to-memory) */ + + dmaflags = (QSPI_DMA_PRIO | DMA_CCR_MSIZE_8BITS | DMA_CCR_PSIZE_8BITS | DMA_CCR_MINC ); + } + + stm32l4_dmasetup(priv->dmach, qspi_regaddr(priv, STM32L4_QUADSPI_DR_OFFSET), + (uint32_t)meminfo->buffer, meminfo->buflen, dmaflags); + + qspi_dma_sample(priv, DMA_AFTER_SETUP); + + /* Enable the memory transfer */ + + regval = qspi_getreg(priv, STM32L4_QUADSPI_CR_OFFSET); + regval |= QSPI_CR_DMAEN; + qspi_putreg(priv, regval, STM32L4_QUADSPI_CR_OFFSET); + + /* Set up the Communications Configuration Register as per command info */ + + qspi_ccrconfig(priv, xctn, + QSPIMEM_ISWRITE(meminfo->flags) ? CCR_FMODE_INDWR : CCR_FMODE_INDRD); + + /* Start the DMA */ + + priv->result = -EBUSY; + stm32l4_dmastart(priv->dmach, qspi_dma_callback, priv, false); + + qspi_dma_sample(priv, DMA_AFTER_START); + + /* Wait for DMA completion. This is done in a loop because there may be + * false alarm semaphore counts that cause sem_wait() not fail to wait + * or to wake-up prematurely (for example due to the receipt of a signal). + * We know that the DMA has completed when the result is anything other + * that -EBUSY. + */ + + do + { + /* Start (or re-start) the watchdog timeout */ + + ret = wd_start(priv->dmadog, DMA_TIMEOUT_TICKS, + (wdentry_t)qspi_dma_timeout, 1, (uint32_t)priv); + if (ret != OK) + { + qspidbg("ERROR: wd_start failed: %d\n", ret); + } + + /* Wait for the DMA complete */ + + ret = sem_wait(&priv->dmawait); + + /* Cancel the watchdog timeout */ + + (void)wd_cancel(priv->dmadog); + + /* Check if we were awakened by an error of some kind */ + + if (ret < 0) + { + /* EINTR is not a failure. That simply means that the wait + * was awakened by a signal. + */ + + int errorcode = errno; + if (errorcode != EINTR) + { + DEBUGPANIC(); + regval = qspi_getreg(priv, STM32L4_QUADSPI_CR_OFFSET); + regval &= ~QSPI_CR_DMAEN; + qspi_putreg(priv, regval, STM32L4_QUADSPI_CR_OFFSET); + return -errorcode; + } + } + + /* Note that we might be awakened before the wait is over due to + * residual counts on the semaphore. So, to handle, that case, + * we loop until something changes the DMA result to any value other + * than -EBUSY. + */ + } + while (priv->result == -EBUSY); + + /* Wait for Transfer complete, and not busy */ + + qspi_waitstatusflags(priv, QSPI_SR_TCF,1); + qspi_waitstatusflags(priv, QSPI_SR_BUSY,0); + MEMORY_SYNC(); + + /* Dump the sampled DMA registers */ + + qspi_dma_sampledone(priv); + + /* Make sure that the DMA is stopped (it will be stopped automatically + * on normal transfers, but not necessarily when the transfer terminates + * on an error condition). + */ + + stm32l4_dmastop(priv->dmach); + + regval = qspi_getreg(priv, STM32L4_QUADSPI_CR_OFFSET); + regval &= ~QSPI_CR_DMAEN; + qspi_putreg(priv, regval, STM32L4_QUADSPI_CR_OFFSET); + + /* Complain if the DMA fails */ + + if (priv->result) + { + qspidbg("ERROR: DMA failed with result: %d\n", priv->result); + } + + return priv->result; +} +#endif + +#if !defined(STM32L4_QSPI_INTERRUPTS) /**************************************************************************** * Name: qspi_receive_blocking * @@ -1581,7 +1975,7 @@ static int qspi_command(struct qspi_dev_s *dev, QSPI_FCR_CTEF | QSPI_FCR_CTCF | QSPI_FCR_CSMF | QSPI_FCR_CTOF, STM32L4_QUADSPI_FCR); -#ifdef QSPI_USE_INTERRUPTS +#ifdef STM32L4_QSPI_INTERRUPTS /* interrupt mode will need access to the transaction context */ priv->xctn = &xctn; @@ -1665,9 +2059,9 @@ static int qspi_command(struct qspi_dev_s *dev, ret = xctn.disposition; -#elif defined(CONFIG_STM32L4_QSPI_DMA) - /* XXX III dma mode (and 'autopolling'?) */ - + /* because command transfers are so small, we're not going to use + * DMA for them, only interrupts or polling + */ #else /* Polling mode */ @@ -1762,7 +2156,7 @@ static int qspi_memory(struct qspi_dev_s *dev, QSPI_FCR_CTEF | QSPI_FCR_CTCF | QSPI_FCR_CSMF | QSPI_FCR_CTOF, STM32L4_QUADSPI_FCR); -#ifdef QSPI_USE_INTERRUPTS +#ifdef STM32L4_QSPI_INTERRUPTS /* interrupt mode will need access to the transaction context */ priv->xctn = &xctn; @@ -1824,8 +2218,46 @@ static int qspi_memory(struct qspi_dev_s *dev, ret = xctn.disposition; #elif defined(CONFIG_STM32L4_QSPI_DMA) - /* XXX III dma mode (and 'autopolling'?) */ - + /* Can we perform DMA? Should we perform DMA? */ + + if (priv->candma && + meminfo->buflen > CONFIG_STM32L4_QSPI_DMATHRESHOLD && + IS_ALIGNED((uintptr_t)meminfo->buffer) && + IS_ALIGNED(meminfo->buflen)) + { + ret = qspi_memory_dma(priv, meminfo, &xctn); + } + else + { + /* polling mode */ + + /* Set up the Communications Configuration Register as per command info */ + + qspi_ccrconfig(priv, &xctn, + QSPIMEM_ISWRITE(meminfo->flags) ? CCR_FMODE_INDWR : CCR_FMODE_INDRD); + + /* Transfer data */ + + DEBUGASSERT(meminfo->buffer != NULL && meminfo->buflen > 0); + DEBUGASSERT(IS_ALIGNED(meminfo->buffer)); + + if (QSPIMEM_ISWRITE(meminfo->flags)) + { + ret = qspi_transmit_blocking(priv, &xctn); + } + else + { + ret = qspi_receive_blocking(priv, &xctn); + } + + /* Wait for Transfer complete, and not busy */ + + qspi_waitstatusflags(priv, QSPI_SR_TCF,1); + qspi_waitstatusflags(priv, QSPI_SR_BUSY,0); + + MEMORY_SYNC(); + } + #else /* polling mode */ @@ -1848,31 +2280,13 @@ static int qspi_memory(struct qspi_dev_s *dev, ret = qspi_receive_blocking(priv, &xctn); } - MEMORY_SYNC(); - -#if 0 -#ifdef CONFIG_STM32L4_QSPI_DMA - /* Can we perform DMA? Should we perform DMA? */ - - if (priv->candma && - meminfo->buflen > CONFIG_STM32L4_QSPI_DMATHRESHOLD && - IS_ALIGNED((uintptr_t)meminfo->buffer) && - IS_ALIGNED(meminfo->buflen)) - { - return qspi_memory_dma(priv, meminfo); - } - else -#endif - { - return qspi_memory_nodma(priv, meminfo); - } -#endif - /* Wait for Transfer complete, and not busy */ qspi_waitstatusflags(priv, QSPI_SR_TCF,1); qspi_waitstatusflags(priv, QSPI_SR_BUSY,0); + MEMORY_SYNC(); + #endif return ret; @@ -1949,7 +2363,7 @@ static int qspi_hw_initialize(struct stm32l4_qspidev_s *priv) qspi_abort(priv); - regval = qspi_getreg(priv, STM32L4_QUADSPI_CR_OFFSET); + regval = 0; regval &= ~(QSPI_CR_EN); qspi_putreg(priv, regval, STM32L4_QUADSPI_CR_OFFSET); @@ -2099,10 +2513,35 @@ struct qspi_dev_s *stm32l4_qspi_initialize(int intf) sem_init(&priv->exclsem, 0, 1); #ifdef CONFIG_STM32L4_QSPI_DMA - /* XXX III needs implementation */ + /* Pre-allocate DMA channels. */ + + if (priv->candma) + { + priv->dmach = stm32l4_dmachannel(DMACHAN_QUADSPI); + if (!priv->dmach) + { + qspidbg("ERROR: Failed to allocate the DMA channel\n"); + priv->candma = false; + } + } + + /* Initialize the QSPI semaphore that is used to wake up the waiting + * thread when the DMA transfer completes. + */ + + sem_init(&priv->dmawait, 0, 0); + + /* Create a watchdog time to catch DMA timeouts */ + + priv->dmadog = wd_create(); + if (priv->dmadog == NULL) + { + qspidbg("ERROR: Failed to create wdog\n"); + goto errout_with_dmahandles; + } #endif -#ifdef QSPI_USE_INTERRUPTS +#ifdef STM32L4_QSPI_INTERRUPTS /* Attach the interrupt handler */ ret = irq_attach(priv->irq, priv->handler); @@ -2133,7 +2572,7 @@ struct qspi_dev_s *stm32l4_qspi_initialize(int intf) priv->initialized = true; priv->memmap = false; -#ifdef QSPI_USE_INTERRUPTS +#ifdef STM32L4_QSPI_INTERRUPTS up_enable_irq(priv->irq); #endif } @@ -2141,13 +2580,22 @@ struct qspi_dev_s *stm32l4_qspi_initialize(int intf) return &priv->qspi; errout_with_irq: -#ifdef QSPI_USE_INTERRUPTS +#ifdef STM32L4_QSPI_INTERRUPTS irq_detach(priv->irq); errout_with_dmadog: #endif #ifdef CONFIG_STM32L4_QSPI_DMA - /* XXX III needs implementation */ + wd_delete(priv->dmadog); + +errout_with_dmahandles: + sem_destroy(&priv->dmawait); + + if (priv->dmach) + { + stm32l4_dmafree(priv->dmach); + priv->dmach = NULL; + } #endif sem_destroy(&priv->exclsem); @@ -2209,7 +2657,7 @@ void stm32l4_qspi_enter_memorymapped(struct qspi_dev_s* dev, qspi_putreg(&g_qspi0dev, QSPI_FCR_CTOF, STM32L4_QUADSPI_FCR); -#ifdef QSPI_USE_INTERRUPTS +#ifdef STM32L4_QSPI_INTERRUPTS /* Enable Timeout interrupt */ regval = qspi_getreg(priv, STM32L4_QUADSPI_CR_OFFSET); @@ -2227,7 +2675,10 @@ void stm32l4_qspi_enter_memorymapped(struct qspi_dev_s* dev, /* create a transaction object */ qspi_setupxctnfrommem(&xctn, meminfo); + +#ifdef STM32L4_QSPI_INTERRUPTS priv->xctn = NULL; +#endif /* set it into the ccr */ -- GitLab From 1baf943dca349d54dfbeb8cbcb7c4619254e6c37 Mon Sep 17 00:00:00 2001 From: ziggurat29 Date: Sun, 24 Apr 2016 16:29:52 -0500 Subject: [PATCH 095/307] update stm32l4 disco board to reflect QSPI DMA support; refresh defconfig --- configs/stm32l476vg-disco/include/board.h | 10 ---- configs/stm32l476vg-disco/nsh/defconfig | 54 ++++++++----------- configs/stm32l476vg-disco/src/stm32_appinit.c | 18 ++++++- 3 files changed, 39 insertions(+), 43 deletions(-) diff --git a/configs/stm32l476vg-disco/include/board.h b/configs/stm32l476vg-disco/include/board.h index dcf8bf6bdc..c3e1efd354 100644 --- a/configs/stm32l476vg-disco/include/board.h +++ b/configs/stm32l476vg-disco/include/board.h @@ -144,16 +144,6 @@ #define GPIO_QSPI_IO3 (GPIO_QSPI_BK1_IO3_2 | GPIO_FLOAT | GPIO_PUSHPULL | GPIO_SPEED_100MHz) #define GPIO_QSPI_SCK (GPIO_QSPI_CLK_2 | GPIO_FLOAT | GPIO_PUSHPULL | GPIO_SPEED_100MHz) -#if 0 -/* XXX hmm, elsewhere */ - -#define QSPI_USE_INTERRUPTS 1 - -/* XXX hmm, better? (2^(23+1)); this is the value that goes into FSIZE */ - -#define QSPI_FLASH_SIZE 23 -#endif - /* SPI */ /* XXX is SPI1 used on Disco? */ diff --git a/configs/stm32l476vg-disco/nsh/defconfig b/configs/stm32l476vg-disco/nsh/defconfig index 8ee16e46cb..43178e9ec5 100644 --- a/configs/stm32l476vg-disco/nsh/defconfig +++ b/configs/stm32l476vg-disco/nsh/defconfig @@ -59,6 +59,7 @@ CONFIG_DEBUG_VERBOSE=y # # OS Function Debug Options # +# CONFIG_DEBUG_DMA is not set # CONFIG_DEBUG_HEAP is not set # CONFIG_DEBUG_IRQ is not set @@ -176,6 +177,7 @@ CONFIG_ARMV7M_HAVE_STACKCHECK=y # CONFIG_ARMV7M_ITMSYSLOG is not set # CONFIG_SERIAL_TERMIOS is not set # CONFIG_USART2_RS485 is not set +# CONFIG_USART2_RXDMA is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # @@ -197,7 +199,7 @@ CONFIG_STM32L4_FLASH_1024KB=y # CONFIG_STM32L4_ADC is not set # CONFIG_STM32L4_CAN is not set # CONFIG_STM32L4_DAC is not set -# CONFIG_STM32L4_DMA is not set +CONFIG_STM32L4_DMA=y # CONFIG_STM32L4_I2C is not set # CONFIG_STM32L4_SAI is not set # CONFIG_STM32L4_SPI is not set @@ -207,8 +209,8 @@ CONFIG_STM32L4_USART=y # # AHB1 Peripherals # -# CONFIG_STM32L4_DMA1 is not set -# CONFIG_STM32L4_DMA2 is not set +CONFIG_STM32L4_DMA1=y +CONFIG_STM32L4_DMA2=y # CONFIG_STM32L4_CRC is not set # CONFIG_STM32L4_TSC is not set @@ -230,6 +232,17 @@ CONFIG_STM32L4_QSPI=y CONFIG_STM32L4_QSPI_FLASH_SIZE=16777216 CONFIG_STM32L4_QSPI_FIFO_THESHOLD=4 CONFIG_STM32L4_QSPI_CSHT=1 +# CONFIG_STM32L4_QSPI_POLLING is not set +# CONFIG_STM32L4_QSPI_INTERRUPTS is not set +CONFIG_STM32L4_QSPI_DMA=y +CONFIG_STM32L4_QSPI_DMA_CHAN_1_5=y +# CONFIG_STM32L4_QSPI_DMA_CHAN_2_7 is not set +# CONFIG_STM32L4_QSPI_DMAPRIORITY_VERYHIGH is not set +# CONFIG_STM32L4_QSPI_DMAPRIORITY_HIGH is not set +CONFIG_STM32L4_QSPI_DMAPRIORITY_MEDIUM=y +# CONFIG_STM32L4_QSPI_DMAPRIORITY_LOW is not set +CONFIG_STM32L4_QSPI_DMATHRESHOLD=4 +# CONFIG_STM32L4_QSPI_REGDEBUG is not set # # APB1 Peripherals @@ -302,7 +315,7 @@ CONFIG_STM32L4_SAI1PLL=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_ARCH_L2CACHE is not set # CONFIG_ARCH_HAVE_COHERENT_DCACHE is not set @@ -384,7 +397,7 @@ CONFIG_LIB_BOARDCTL=y # CONFIG_BOARDCTL_ADCTEST is not set # CONFIG_BOARDCTL_PWMTEST is not set # CONFIG_BOARDCTL_GRAPHICS is not set -# CONFIG_BOARDCTL_IOCTL is not set +CONFIG_BOARDCTL_IOCTL=y # # RTOS Features @@ -646,12 +659,7 @@ CONFIG_USART2_2STOP=0 # # System Logging # -CONFIG_RAMLOG=y -CONFIG_RAMLOG_SYSLOG=y -# CONFIG_RAMLOG_CONSOLE is not set -CONFIG_RAMLOG_BUFSIZE=8192 -# CONFIG_RAMLOG_CRLF is not set -CONFIG_RAMLOG_NONBLOCKING=y +# CONFIG_RAMLOG is not set # CONFIG_SYSLOG_CONSOLE is not set # @@ -708,9 +716,8 @@ CONFIG_FS_PROCFS_REGISTER=y # # System Logging # -CONFIG_SYSLOG=y +# CONFIG_SYSLOG is not set # CONFIG_SYSLOG_TIMESTAMP is not set -# CONFIG_SYSLOG_CHAR is not set # # Graphics Support @@ -838,14 +845,7 @@ CONFIG_EXAMPLES_BUTTONS_NAME7="Button 7" # CONFIG_EXAMPLES_CXXTEST is not set # CONFIG_EXAMPLES_DHCPD is not set # CONFIG_EXAMPLES_ELF is not set -CONFIG_EXAMPLES_FSTEST=y -CONFIG_EXAMPLES_FSTEST_MAXNAME=32 -CONFIG_EXAMPLES_FSTEST_MAXFILE=8192 -CONFIG_EXAMPLES_FSTEST_MAXIO=347 -CONFIG_EXAMPLES_FSTEST_MAXOPEN=512 -CONFIG_EXAMPLES_FSTEST_MOUNTPT="/mnt/n25qxxx" -CONFIG_EXAMPLES_FSTEST_NLOOPS=1 -CONFIG_EXAMPLES_FSTEST_VERBOSE=y +# CONFIG_EXAMPLES_FSTEST is not set # CONFIG_EXAMPLES_FTPC is not set # CONFIG_EXAMPLES_FTPD is not set # CONFIG_EXAMPLES_HELLO is not set @@ -871,20 +871,12 @@ CONFIG_EXAMPLES_NSH_CXXINITIALIZE=y # CONFIG_EXAMPLES_NXIMAGE is not set # CONFIG_EXAMPLES_NXLINES is not set # CONFIG_EXAMPLES_NXTEXT is not set -CONFIG_EXAMPLES_OSTEST=y -CONFIG_EXAMPLES_OSTEST_LOOPS=1 -CONFIG_EXAMPLES_OSTEST_STACKSIZE=8192 -CONFIG_EXAMPLES_OSTEST_NBARRIER_THREADS=8 -CONFIG_EXAMPLES_OSTEST_RR_RANGE=10000 -CONFIG_EXAMPLES_OSTEST_RR_RUNS=10 -CONFIG_EXAMPLES_OSTEST_WAITRESULT=y +# CONFIG_EXAMPLES_OSTEST is not set # CONFIG_EXAMPLES_PCA9635 is not set # CONFIG_EXAMPLES_PIPE is not set # CONFIG_EXAMPLES_PPPD is not set # CONFIG_EXAMPLES_POSIXSPAWN is not set -CONFIG_EXAMPLES_RANDOM=y -CONFIG_EXAMPLES_MAXSAMPLES=64 -CONFIG_EXAMPLES_NSAMPLES=8 +# CONFIG_EXAMPLES_RANDOM is not set # CONFIG_EXAMPLES_RGBLED is not set # CONFIG_EXAMPLES_RGMP is not set # CONFIG_EXAMPLES_SENDMAIL is not set diff --git a/configs/stm32l476vg-disco/src/stm32_appinit.c b/configs/stm32l476vg-disco/src/stm32_appinit.c index 71da004099..5e277507ec 100644 --- a/configs/stm32l476vg-disco/src/stm32_appinit.c +++ b/configs/stm32l476vg-disco/src/stm32_appinit.c @@ -45,6 +45,8 @@ #include #include #include +#include +#include #include #include @@ -57,6 +59,7 @@ #include #include #include +#include #include #include @@ -193,6 +196,7 @@ int board_app_initialize(void) #ifdef HAVE_N25QXXX_SMARTFS /* Configure the device with no partition support */ + SYSLOG("doing smart_initialize()\n"); ret = smart_initialize(N25QXXX_SMART_MINOR, mtd, NULL); if (ret != OK) { @@ -202,6 +206,7 @@ int board_app_initialize(void) #elif defined(HAVE_N25QXXX_NXFFS) /* Initialize to provide NXFFS on the N25QXXX MTD interface */ + SYSLOG("doing nxffs_initialize()\n"); ret = nxffs_initialize(mtd); if (ret < 0) { @@ -237,9 +242,9 @@ int board_app_initialize(void) /* NOTE: for this to work, you will need to make sure that * CONFIG_FS_WRITABLE is set in the config. It's not a user- * visible setting, but you can make it set by selecting an - * arbitrary writeable file system (you don't have to actually + * arbitrary writable file system (you don't have to actually * use it, just select it so that the block device created via - * ftl_initialize() will be writeable). Personally, I chose FAT, + * ftl_initialize() will be writable). Personally, I chose FAT, * because SMARTFS and NXFFS will cause the other code branches * above to become active. */ @@ -257,3 +262,12 @@ int board_app_initialize(void) return OK; } #endif /* CONFIG_LIB_BOARDCTL */ + + + +#ifdef CONFIG_BOARDCTL_IOCTL +int board_ioctl(unsigned int cmd, uintptr_t arg) +{ + return OK; +} +#endif -- GitLab From 533aa4d97d7b7c265acd041c44e9df58a1193f3f Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 24 Apr 2016 15:33:59 -0600 Subject: [PATCH 096/307] Update README and NuttX.html --- Documentation/NuttX.html | 8 ++++++-- README.txt | 19 +++++++++++++++++-- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index 03b8fc720a..9910e4c275 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -680,7 +680,10 @@

-

  • Graphics: framebuffer drivers, graphic- and segment-LCD drivers.
  • +
  • + Graphics: framebuffer drivers, graphic- and segment-LCD drivers. + VNC server. +
  • @@ -831,7 +834,8 @@

  • Networking utilities (DHCP server and client, SMTP client, TELNET client, FTP server and client, TFTP client, HTTP server and client, PPPD, NTP client). - Inheritable TELNET sessions (as "controlling terminal")
  • + Inheritable TELNET sessions (as "controlling terminal"). + VNC server.

    diff --git a/README.txt b/README.txt index 570cf1478d..cbba0da1d0 100644 --- a/README.txt +++ b/README.txt @@ -833,14 +833,29 @@ Re-building a file in one of the linked (i.e., copied) directories, re-build NuttX, and then not see your changes when you run the program. That is because build is still using the version of the file in the copied directory, not - your modified file! To work around this annoying behavior, do the - following when you re-build: + your modified file! + + Older versions of NuttX did not support dependiencies in this + configuration. So a simple work around this annoying behavior in this + case was the following when you re-build: make clean_context all This 'make' command will remove of the copied directories, re-copy them, then make NuttX. + However, more recent versions of NuttX do support dependencies for the + Cygwin build. As a result, the above command will cause everything to be + rebuilt (beause it removes and will cause recreating the + include/nuttx/config.h header file). A much less gracefully but still + effective command in this case is the following for the ARM configuration: + + rm -rf arch/arm/src/chip arch/arm/src/board + + This "kludge" simple removes the copied directories. These directories + will be re-created when you do a normal 'make' and your edits will then be + effective. + Build Targets and Options ------------------------- -- GitLab From 1218ee5f51fdc5c822c6c9c0d933e33332f0d1a0 Mon Sep 17 00:00:00 2001 From: ziggurat29 Date: Mon, 25 Apr 2016 10:27:02 -0500 Subject: [PATCH 097/307] bug in binding peripheral to dma channel; inverted sense of a bitmask --- arch/arm/src/stm32l4/stm32l4x6xx_dma.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/src/stm32l4/stm32l4x6xx_dma.c b/arch/arm/src/stm32l4/stm32l4x6xx_dma.c index a45d33970b..eb91e3a754 100644 --- a/arch/arm/src/stm32l4/stm32l4x6xx_dma.c +++ b/arch/arm/src/stm32l4/stm32l4x6xx_dma.c @@ -523,7 +523,7 @@ void stm32l4_dmasetup(DMA_HANDLE handle, uint32_t paddr, uint32_t maddr, /* define peripheral indicated in dmach->function */ regval = dmabase_getreg(dmach, STM32L4_DMA_CSELR_OFFSET); - regval &= (0x0f << (dmach->chan << 2)); + regval &= ~(0x0f << (dmach->chan << 2)); regval |= (dmach->function << (dmach->chan << 2)); dmabase_putreg(dmach, STM32L4_DMA_CSELR_OFFSET, regval); } -- GitLab From 31e7f6fd0079878736e33016678949da0de7b198 Mon Sep 17 00:00:00 2001 From: ziggurat29 Date: Tue, 26 Apr 2016 10:12:13 -0500 Subject: [PATCH 098/307] add configuration options to allow SRAM2 to be used for heap, or not at all, and to zero-init it on OS start, or not at all. --- arch/arm/src/stm32l4/Kconfig | 28 +++++++++ arch/arm/src/stm32l4/stm32l4_allocateheap.c | 69 ++++++--------------- arch/arm/src/stm32l4/stm32l4_start.c | 20 ++++++ 3 files changed, 67 insertions(+), 50 deletions(-) diff --git a/arch/arm/src/stm32l4/Kconfig b/arch/arm/src/stm32l4/Kconfig index f982641ed1..f334ca32bc 100644 --- a/arch/arm/src/stm32l4/Kconfig +++ b/arch/arm/src/stm32l4/Kconfig @@ -69,6 +69,34 @@ config STM32L4_FLASH_1024KB endchoice # Embedded FLASH size +comment "SRAM2 Options" + +config STM32L4_SRAM2_HEAP + bool "SRAM2 is used for heap" + default n + select STM32L4_SRAM2_INIT + ---help--- + The STM32L4 SRAM2 region has special properties (power, protection, parity) + which may be used by the application for special purposes. But if these + special properties are not needed, it may be instead added to the heap for + use by malloc(). + NOTE: you must also select an appropriate number of memory regions in the + 'Memory Management' section. + +config STM32L4_SRAM2_INIT + bool "SRAM2 is initialized to zero" + default n + ---help--- + The STM32L4 SRAM2 region has parity checking. However, when the system + powers on, the memory is in an unknown state, and reads from uninitialized + memory can trigger parity faults from the random data. This can be + avoided by first writing to all locations to force the parity into a valid + state. + However, if the SRAM2 is being used for it's battery-backed capability, + this may be undesireable (because it will destroy the contents). In that + case, the board should handle the initialization itself at the appropriate + time. + menu "STM32L4 Peripheral Support" # These "hidden" settings determine is a peripheral option is available for the diff --git a/arch/arm/src/stm32l4/stm32l4_allocateheap.c b/arch/arm/src/stm32l4/stm32l4_allocateheap.c index e1c2e1acaf..9e37373adf 100644 --- a/arch/arm/src/stm32l4/stm32l4_allocateheap.c +++ b/arch/arm/src/stm32l4/stm32l4_allocateheap.c @@ -62,13 +62,13 @@ ****************************************************************************/ /* Internal SRAM is available in all members of the STM32L4 family. The * following definitions must be provided to specify the size and - * location of internal(system) SRAM: + * location of internal (system) SRAM1 and SRAM2: * * SRAM1_END 0x20018000 * SRAM2_START 0x10000000 * SRAM2_END 0x10008000 * - * In addition to internal SRAM, SRAM may also be available through the FSMC. + * In addition to internal SRAM, memory may also be available through the FSMC. * In order to use FSMC SRAM, the following additional things need to be * present in the NuttX configuration file: * @@ -80,15 +80,14 @@ * CONFIG_HEAP2_SIZE : The size of the SRAM in the FSMC * address space * CONFIG_MM_REGIONS : Must be set to a large enough value to - * include the FSMC SRAM (as determined by - * the rules provided below) + * include the additional regions. */ #ifndef CONFIG_STM32L4_FSMC # undef CONFIG_STM32L4_FSMC_SRAM #endif -/* MSTM32L4x6xx have 128Kib in two banks, both accessible to DMA: +/* STM32L4x6xx have 128Kib in two banks, both accessible to DMA: * * 1) 96KiB of System SRAM beginning at address 0x2000:0000 - 0x2001:8000 * 2) 32KiB of System SRAM beginning at address 0x1000:0000 - 0x1000:8000 @@ -105,55 +104,21 @@ #define SRAM2_START 0x10000000 #define SRAM2_END 0x10008000 -/* Allocations according to the number of memory regions: - * - * 1 region available: - * - map it to SRAM1 - * - warn that SRAM2 is not available for heap - * - if FMC is enabled, warn that it is not available for heap - * - * 2 regions available: map them to SRAM1 and SRAM2 - * - map region 1 to SRAM1 - * - map region 2 to SRAM2 - * - if FMC is enabled, warn that it is not available for heap - * - * 3 or more regions - * - * - map them to SRAM1, SRAM2, FMC - */ - -#if CONFIG_MM_REGIONS < 1 -# warning heap is not usable - -#elif CONFIG_MM_REGIONS < 2 - -# warning SRAM2 (32k) is NOT available for heap, only SRAM1 (96k) : not enough MM regions -# undef SRAM2_START -# undef SRAM2_END - -# if defined(CONFIG_STM32L4_FSMC_SRAM) -# warning FMC SRAM is NOT available for heap : not enough MM regions (1) -# undef CONFIG_STM32L4_FSMC_SRAM +#if defined(STM32L4_SRAM2_HEAP) && defined(CONFIG_STM32L4_FSMC_SRAM_HEAP) +# if CONFIG_MM_REGIONS < 3 +# error you need at least 3 memory manager regions to support SRAM2 and FSMC # endif +#endif -#elif CONFIG_MM_REGIONS < 3 - -# if defined(CONFIG_STM32L4_FSMC_SRAM) -# warning FMC SRAM is NOT available for heap : not enough MM regions (2) -# undef CONFIG_STM32L4_FSMC_SRAM +#if defined(STM32L4_SRAM2_HEAP) || defined(CONFIG_STM32L4_FSMC_SRAM_HEAP) +# if CONFIG_MM_REGIONS < 2 +# error you need at least 2 memory manager regions to support SRAM2 or FSMC # endif - -#elif CONFIG_MM_REGIONS > 3 - -/*Everything can be mapped but some entries wont be used -> warn and correct*/ -# warning "CONFIG_MM_REGIONS > 3 but I don't know what some of the region(s) are" -# undef CONFIG_MM_REGIONS -# define CONFIG_MM_REGIONS 3 - -#else -/*Everything can be mapped*/ #endif +#if CONFIG_MM_REGIONS < 1 +# warning you have no heap; malloc() will fail. are you sure? +#endif /* If FSMC SRAM is going to be used as heap, then verify that the starting * address and size of the external SRAM region has been provided in the @@ -338,6 +303,8 @@ void up_allocate_kheap(FAR void **heap_start, size_t *heap_size) void up_addregion(void) { +#ifdef CONFIG_STM32L4_SRAM2_HEAP + #if defined(CONFIG_BUILD_PROTECTED) && defined(CONFIG_MM_KERNEL_HEAP) /* Allow user-mode access to the SRAM2 heap */ @@ -354,7 +321,9 @@ void up_addregion(void) kumm_addregion((FAR void *)SRAM2_START, SRAM2_END-SRAM2_START); -#ifdef CONFIG_STM32L4_FSMC_SRAM +#endif + +#ifdef CONFIG_STM32L4_FSMC_SRAM_HEAP #if defined(CONFIG_BUILD_PROTECTED) && defined(CONFIG_MM_KERNEL_HEAP) /* Allow user-mode access to the FSMC SRAM user heap memory */ diff --git a/arch/arm/src/stm32l4/stm32l4_start.c b/arch/arm/src/stm32l4/stm32l4_start.c index ee1f894d8d..6209cde541 100644 --- a/arch/arm/src/stm32l4/stm32l4_start.c +++ b/arch/arm/src/stm32l4/stm32l4_start.c @@ -79,6 +79,8 @@ * 0x2001:7fff - End of internal SRAM and end of heap */ +#define SRAM2_START 0x10000000 +#define SRAM2_END 0x10008000 #define IDLE_STACK ((uintptr_t)&_ebss+CONFIG_IDLETHREAD_STACKSIZE-4) #define HEAP_BASE ((uintptr_t)&_ebss+CONFIG_IDLETHREAD_STACKSIZE) @@ -287,6 +289,24 @@ void __start(void) __asm__ volatile ("sub r10, sp, %0" : : "r" (CONFIG_IDLETHREAD_STACKSIZE - 64) : ); #endif +#ifdef CONFIG_STM32L4_SRAM2_INIT + /* The SRAM2 region is parity checked, but upon power up, it will be in + * a random state and probably invalid with respect to parity, potentially + * generating faults if accessed. If elected, we will write zeros to the + * memory, forcing the parity to be set to a valid state. + * NOTE: this is optional because this may be inappropriate, especially + * if the memory is being used for it's battery backed purpose. In that + * case, the first-time initialization needs to be performed by the board + * under application-specific circumstances. On the other hand, if we're + * using this memory for, say, additional heap space, then this is handy. + */ + + for (dest = (uint32_t *)SRAM2_START; dest < (uint32_t *)SRAM2_END; ) + { + *dest++ = 0; + } +#endif + /* Configure the UART so that we can get debug output as soon as possible */ stm32l4_clockconfig(); -- GitLab From 6a6a089af4da46d7b5dc7b41a727c28fde88ed3e Mon Sep 17 00:00:00 2001 From: David Sidrane Date: Wed, 27 Apr 2016 00:19:00 -0600 Subject: [PATCH 099/307] Fix a warning --- fs/procfs/fs_procfsproc.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/fs/procfs/fs_procfsproc.c b/fs/procfs/fs_procfsproc.c index eb93fc5a55..84484a593d 100644 --- a/fs/procfs/fs_procfsproc.c +++ b/fs/procfs/fs_procfsproc.c @@ -919,8 +919,7 @@ static ssize_t proc_groupfd(FAR struct proc_file_s *procfile, totalsize = 0; #if CONFIG_NFILE_DESCRIPTORS > 0 /* Guaranteed to be true */ - linesize = snprintf(procfile->line, STATUS_LINELEN, "\n%3-s %-8s %s\n", - "FD", "POS", "OFLAGS"); + linesize = snprintf(procfile->line, STATUS_LINELEN, "\n%-3s %-8s %s\n", copysize = procfs_memcpy(procfile->line, linesize, buffer, remaining, &offset); totalsize += copysize; -- GitLab From d3fbd866576e393a0eef81ee890e72c6558c4dbf Mon Sep 17 00:00:00 2001 From: ziggurat29 Date: Wed, 27 Apr 2016 19:33:45 -0500 Subject: [PATCH 100/307] bug in smart.c; return code of smart_scan not checked, can cause success result in failure case, leading to 'dev' pointer being invalid. --- drivers/mtd/smart.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/mtd/smart.c b/drivers/mtd/smart.c index cb188c1854..50804cc3ab 100644 --- a/drivers/mtd/smart.c +++ b/drivers/mtd/smart.c @@ -5433,7 +5433,12 @@ int smart_initialize(int minor, FAR struct mtd_dev_s *mtd, FAR const char *partn /* Do a scan of the device */ - smart_scan(dev); + ret = smart_scan(dev); + if (ret < 0) + { + fdbg("smart_scan failed: %d\n", -ret); + goto errout; + } } #ifdef CONFIG_SMART_DEV_LOOP -- GitLab From 05df5a0336202f467131bfd81abfed2fa2fdf91a Mon Sep 17 00:00:00 2001 From: ziggurat29 Date: Wed, 27 Apr 2016 19:35:10 -0500 Subject: [PATCH 101/307] booboo in previous commit 6a6a089 whereby a printf statement was botched, breaking build --- fs/procfs/fs_procfsproc.c | 1 + 1 file changed, 1 insertion(+) diff --git a/fs/procfs/fs_procfsproc.c b/fs/procfs/fs_procfsproc.c index 84484a593d..f5f6c0397f 100644 --- a/fs/procfs/fs_procfsproc.c +++ b/fs/procfs/fs_procfsproc.c @@ -920,6 +920,7 @@ static ssize_t proc_groupfd(FAR struct proc_file_s *procfile, #if CONFIG_NFILE_DESCRIPTORS > 0 /* Guaranteed to be true */ linesize = snprintf(procfile->line, STATUS_LINELEN, "\n%-3s %-8s %s\n", + "FD", "POS", "OFLAGS"); copysize = procfs_memcpy(procfile->line, linesize, buffer, remaining, &offset); totalsize += copysize; -- GitLab From 2bfb32699491281cd3cb457fa08ac833ceee5395 Mon Sep 17 00:00:00 2001 From: ziggurat29 Date: Wed, 27 Apr 2016 19:36:43 -0500 Subject: [PATCH 102/307] add board ioctls for allowing user application to cause qspi memory mapped mode to be engaged and disengaged. Also partitioned qspi flash for filesystem and other purposes (eventually xip). --- configs/stm32l476vg-disco/include/boardctl.h | 52 +++++++ configs/stm32l476vg-disco/src/stm32_appinit.c | 135 +++++++++++------- .../stm32l476vg-disco/src/stm32l476vg-disco.h | 7 - 3 files changed, 139 insertions(+), 55 deletions(-) create mode 100644 configs/stm32l476vg-disco/include/boardctl.h diff --git a/configs/stm32l476vg-disco/include/boardctl.h b/configs/stm32l476vg-disco/include/boardctl.h new file mode 100644 index 0000000000..a5c7b5bf7b --- /dev/null +++ b/configs/stm32l476vg-disco/include/boardctl.h @@ -0,0 +1,52 @@ +/************************************************************************************ + * configs/stm32l476vg-disco/include/boardctl.h + * + * Copyright (C) 2016 dev@ziggurat29.com. All rights reserved. + * Author: dev@ziggurat29.com + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ************************************************************************************/ + +#ifndef __CONFIGS_STM32L476VG_DISCO_INCLUDE_BOARDCTL_H +#define __CONFIGS_STM32L476VG_DISCO_INCLUDE_BOARDCTL_H + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include + +/**************************************************************************** + * Pre-processor Definitions + ****************************************************************************/ + +#define BIOC_ENTER_MEMMAP BOARDIOC_USER+1 +#define BIOC_EXIT_MEMMAP BOARDIOC_USER+2 + +#endif /* __CONFIGS_STM32L476VG_DISCO_INCLUDE_BOARDCTL_H */ diff --git a/configs/stm32l476vg-disco/src/stm32_appinit.c b/configs/stm32l476vg-disco/src/stm32_appinit.c index 5e277507ec..0f1d37e4d2 100644 --- a/configs/stm32l476vg-disco/src/stm32_appinit.c +++ b/configs/stm32l476vg-disco/src/stm32_appinit.c @@ -55,6 +55,7 @@ #include #include +#include #include #include @@ -75,7 +76,7 @@ # include "stm32l4_rtc.h" #endif -#if defined(HAVE_N25QXXX) || defined(HAVE_PROGMEM_CHARDEV) +#if defined(HAVE_N25QXXX) # include #endif @@ -96,6 +97,23 @@ # define SYSLOG dbg #endif +/**************************************************************************** + * Private Type Definitions + ****************************************************************************/ + +/**************************************************************************** + * Private Function Prototypes + ****************************************************************************/ + + /**************************************************************************** + * Private Data + ****************************************************************************/ + +#ifdef HAVE_N25QXXX +FAR struct qspi_dev_s *g_qspi; +FAR struct mtd_dev_s *g_mtd_fs; +#endif + /**************************************************************************** * Public Functions ****************************************************************************/ @@ -112,15 +130,12 @@ int board_app_initialize(void) { #ifdef HAVE_RTC_DRIVER - FAR struct rtc_lowerhalf_s *lower; -#endif -#ifdef HAVE_N25QXXX - FAR struct qspi_dev_s *qspi; + FAR struct rtc_lowerhalf_s *rtclower; #endif -#if defined(HAVE_N25QXXX) || defined(HAVE_PROGMEM_CHARDEV) - FAR struct mtd_dev_s *mtd; +#if defined(HAVE_N25QXXX) +FAR struct mtd_dev_s *mtd_temp; #endif -#if defined(HAVE_N25QXXX_CHARDEV) || defined(HAVE_PROGMEM_CHARDEV) +#if defined(HAVE_N25QXXX_CHARDEV) char blockdev[18]; char chardev[12]; #endif @@ -152,8 +167,8 @@ int board_app_initialize(void) #ifdef HAVE_RTC_DRIVER /* Instantiate the STM32 lower-half RTC driver */ - lower = stm32l4_rtc_lowerhalf(); - if (!lower) + rtclower = stm32l4_rtc_lowerhalf(); + if (!rtclower) { sdbg("ERROR: Failed to instantiate the RTC lower-half driver\n"); return -ENOMEM; @@ -164,7 +179,7 @@ int board_app_initialize(void) * as /dev/rtc0 */ - ret = rtc_initialize(0, lower); + ret = rtc_initialize(0, rtclower); if (ret < 0) { sdbg("ERROR: Failed to bind/register the RTC driver: %d\n", ret); @@ -176,10 +191,11 @@ int board_app_initialize(void) #ifdef HAVE_N25QXXX /* Create an instance of the STM32L4 QSPI device driver */ - qspi = stm32l4_qspi_initialize(0); - if (!qspi) + g_qspi = stm32l4_qspi_initialize(0); + if (!g_qspi) { - SYSLOG("ERROR: sam_qspi_initialize failed\n"); + SYSLOG("ERROR: stm32l4_qspi_initialize failed\n"); + return ret; } else { @@ -187,45 +203,34 @@ int board_app_initialize(void) * N25QXXX device. */ - mtd = n25qxxx_initialize(qspi, true); - if (!mtd) + mtd_temp = n25qxxx_initialize(g_qspi, true); + if (!mtd_temp) { SYSLOG("ERROR: n25qxxx_initialize failed\n"); + return ret; } - -#ifdef HAVE_N25QXXX_SMARTFS - /* Configure the device with no partition support */ - - SYSLOG("doing smart_initialize()\n"); - ret = smart_initialize(N25QXXX_SMART_MINOR, mtd, NULL); - if (ret != OK) - { - SYSLOG("ERROR: Failed to initialize SmartFS: %d\n", ret); - } - -#elif defined(HAVE_N25QXXX_NXFFS) - /* Initialize to provide NXFFS on the N25QXXX MTD interface */ - - SYSLOG("doing nxffs_initialize()\n"); - ret = nxffs_initialize(mtd); - if (ret < 0) - { - SYSLOG("ERROR: NXFFS initialization failed: %d\n", ret); - } - - /* Mount the file system at /mnt/n25qxxx */ - - ret = mount(NULL, "/mnt/n25qxxx", "nxffs", 0, NULL); - if (ret < 0) + g_mtd_fs = mtd_temp; + +#ifdef CONFIG_MTD_PARTITION + /* Setup a partition of 256KiB for our file system. + * + */ +#if defined(CONFIG_N25QXXX_SECTOR512) + mtd_temp = mtd_partition(g_mtd_fs, 0, 512); +#else + mtd_temp = mtd_partition(g_mtd_fs, 0, 64); +#endif + if (!g_mtd_fs) { - SYSLOG("ERROR: Failed to mount the NXFFS volume: %d\n", errno); + SYSLOG("ERROR: mtd_partition failed\n"); return ret; } + g_mtd_fs = mtd_temp; +#endif -#else /* if defined(HAVE_N25QXXX_CHARDEV) */ /* Use the FTL layer to wrap the MTD driver as a block driver */ - ret = ftl_initialize(N25QXXX_MTD_MINOR, mtd); + ret = ftl_initialize(N25QXXX_MTD_MINOR, g_mtd_fs); if (ret < 0) { SYSLOG("ERROR: Failed to initialize the FTL layer: %d\n", ret); @@ -244,9 +249,7 @@ int board_app_initialize(void) * visible setting, but you can make it set by selecting an * arbitrary writable file system (you don't have to actually * use it, just select it so that the block device created via - * ftl_initialize() will be writable). Personally, I chose FAT, - * because SMARTFS and NXFFS will cause the other code branches - * above to become active. + * ftl_initialize() will be writable). */ ret = bchdev_register(blockdev, chardev, false); @@ -255,7 +258,6 @@ int board_app_initialize(void) SYSLOG("ERROR: bchdev_register %s failed: %d\n", chardev, ret); return ret; } -#endif } #endif @@ -268,6 +270,43 @@ int board_app_initialize(void) #ifdef CONFIG_BOARDCTL_IOCTL int board_ioctl(unsigned int cmd, uintptr_t arg) { + switch(cmd) + { +#ifdef HAVE_N25QXXX + case BIOC_ENTER_MEMMAP: + { + struct qspi_meminfo_s meminfo; + + /* set up the meminfo like a regular memory transaction, many of the fields + * are not used, the others are to set up for the 'read' command that will + * automatically be issued by the controller as needed. + * 6 = CONFIG_N25QXXX_DUMMIES; + * 0xeb = N25QXXX_FAST_READ_QUADIO; + */ + + meminfo.flags = QSPIMEM_READ | QSPIMEM_QUADIO; + meminfo.addrlen = 3; + meminfo.dummies = 6; //CONFIG_N25QXXX_DUMMIES; + meminfo.cmd = 0xeb;//N25QXXX_FAST_READ_QUADIO; + meminfo.addr = 0; + meminfo.buflen = 0; + meminfo.buffer = NULL; + + stm32l4_qspi_enter_memorymapped(g_qspi, &meminfo, 80000000); + } + break; + + case BIOC_EXIT_MEMMAP: + stm32l4_qspi_exit_memorymapped(g_qspi); + break; + +#endif + + default: + return -EINVAL; + break; + } + return OK; } #endif diff --git a/configs/stm32l476vg-disco/src/stm32l476vg-disco.h b/configs/stm32l476vg-disco/src/stm32l476vg-disco.h index 03c63bc3ea..4331d064d5 100644 --- a/configs/stm32l476vg-disco/src/stm32l476vg-disco.h +++ b/configs/stm32l476vg-disco/src/stm32l476vg-disco.h @@ -59,7 +59,6 @@ #define HAVE_N25QXXX_NXFFS 1 #define HAVE_N25QXXX_SMARTFS 1 #define HAVE_N25QXXX_CHARDEV 1 -#define HAVE_PROGMEM_CHARDEV 1 #if !defined(CONFIG_FS_PROCFS) # undef HAVE_PROC @@ -108,12 +107,6 @@ # undef HAVE_N25QXXX_CHARDEV #endif -/* On-chip Programming Memory */ - -#if !defined(CONFIG_STM32L4_PROGMEM) || !defined(CONFIG_MTD_PROGMEM) -# undef HAVE_PROGMEM_CHARDEV -#endif - /* If both the N25QXXX FLASH and SmartFS, then this is the minor device * number of the Smart block driver (/dev/smartN) */ -- GitLab From 97ea667a7ac95ca99570793bd486c9441823959b Mon Sep 17 00:00:00 2001 From: ziggurat29 Date: Wed, 27 Apr 2016 19:51:49 -0500 Subject: [PATCH 103/307] refresh defconfig --- configs/stm32l476vg-disco/nsh/defconfig | 31 +++++++++++++++++++------ 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/configs/stm32l476vg-disco/nsh/defconfig b/configs/stm32l476vg-disco/nsh/defconfig index 43178e9ec5..4f889363a7 100644 --- a/configs/stm32l476vg-disco/nsh/defconfig +++ b/configs/stm32l476vg-disco/nsh/defconfig @@ -44,13 +44,13 @@ CONFIG_RAW_BINARY=y # CONFIG_DEBUG=y CONFIG_ARCH_HAVE_HEAPCHECK=y -CONFIG_DEBUG_VERBOSE=y +# CONFIG_DEBUG_VERBOSE is not set # # Subsystem Debug Options # # CONFIG_DEBUG_BINFMT is not set -# CONFIG_DEBUG_FS is not set +CONFIG_DEBUG_FS=y # CONFIG_DEBUG_GRAPHICS is not set # CONFIG_DEBUG_LIB is not set # CONFIG_DEBUG_MM is not set @@ -192,6 +192,12 @@ CONFIG_STM32L4_STM32L476XX=y # CONFIG_STM32L4_FLASH_512KB is not set CONFIG_STM32L4_FLASH_1024KB=y +# +# SRAM2 Options +# +# CONFIG_STM32L4_SRAM2_HEAP is not set +# CONFIG_STM32L4_SRAM2_INIT is not set + # # STM32L4 Peripheral Support # @@ -506,7 +512,7 @@ CONFIG_DEV_NULL=y CONFIG_DEV_ZERO=y CONFIG_ARCH_HAVE_RNG=y CONFIG_DEV_RANDOM=y -# CONFIG_DEV_LOOP is not set +CONFIG_DEV_LOOP=y # # Buffering @@ -562,8 +568,9 @@ CONFIG_MTD=y # # MTD Configuration # -# CONFIG_MTD_PARTITION is not set +CONFIG_MTD_PARTITION=y # CONFIG_MTD_SECT512 is not set +# CONFIG_MTD_PARTITION_NAMES is not set # CONFIG_MTD_BYTE_WRITE is not set # CONFIG_MTD_PROGMEM is not set # CONFIG_MTD_CONFIG is not set @@ -581,8 +588,8 @@ CONFIG_MTD=y # CONFIG_MTD_S25FL1 is not set CONFIG_MTD_N25QXXX=y CONFIG_N25QXXX_QSPIMODE=0 -CONFIG_N25QXXX_QSPI_FREQUENCY=80000000 -# CONFIG_N25QXXX_SECTOR512 is not set +CONFIG_N25QXXX_QSPI_FREQUENCY=108000000 +CONFIG_N25QXXX_SECTOR512=y # CONFIG_MTD_SMART is not set # CONFIG_MTD_RAMTRON is not set # CONFIG_MTD_SST25 is not set @@ -711,6 +718,7 @@ CONFIG_FS_PROCFS_REGISTER=y # CONFIG_FS_PROCFS_EXCLUDE_UPTIME is not set # CONFIG_FS_PROCFS_EXCLUDE_MOUNTS is not set # CONFIG_FS_PROCFS_EXCLUDE_MTD is not set +# CONFIG_FS_PROCFS_EXCLUDE_PARTITIONS is not set # CONFIG_FS_UNIONFS is not set # @@ -845,7 +853,14 @@ CONFIG_EXAMPLES_BUTTONS_NAME7="Button 7" # CONFIG_EXAMPLES_CXXTEST is not set # CONFIG_EXAMPLES_DHCPD is not set # CONFIG_EXAMPLES_ELF is not set -# CONFIG_EXAMPLES_FSTEST is not set +CONFIG_EXAMPLES_FSTEST=y +CONFIG_EXAMPLES_FSTEST_MAXNAME=32 +CONFIG_EXAMPLES_FSTEST_MAXFILE=8192 +CONFIG_EXAMPLES_FSTEST_MAXIO=347 +CONFIG_EXAMPLES_FSTEST_MAXOPEN=2 +CONFIG_EXAMPLES_FSTEST_MOUNTPT="/mnt/n25qxxx" +CONFIG_EXAMPLES_FSTEST_NLOOPS=1 +# CONFIG_EXAMPLES_FSTEST_VERBOSE is not set # CONFIG_EXAMPLES_FTPC is not set # CONFIG_EXAMPLES_FTPD is not set # CONFIG_EXAMPLES_HELLO is not set @@ -860,6 +875,7 @@ CONFIG_EXAMPLES_MEDIA_BLOCKSIZE=512 # CONFIG_EXAMPLES_MM is not set # CONFIG_EXAMPLES_MODBUS is not set # CONFIG_EXAMPLES_MOUNT is not set +# CONFIG_EXAMPLES_MTDPART is not set # CONFIG_EXAMPLES_NRF24L01TERM is not set CONFIG_EXAMPLES_NSH=y CONFIG_EXAMPLES_NSH_CXXINITIALIZE=y @@ -1061,3 +1077,4 @@ CONFIG_READLINE_ECHO=y # CONFIG_SYSTEM_VI is not set # CONFIG_SYSTEM_UBLOXMODEM is not set # CONFIG_SYSTEM_ZMODEM is not set +CONFIG_SYSTEM_DISCOTEST=y -- GitLab From ecba6ad0db357fbc993d0df501f4d289ace61d92 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 28 Apr 2016 08:04:38 +0000 Subject: [PATCH 104/307] fs_procfsproc.c edited online with Bitbucket. Fix problem introduced in last patch --- fs/procfs/fs_procfsproc.c | 1 + 1 file changed, 1 insertion(+) diff --git a/fs/procfs/fs_procfsproc.c b/fs/procfs/fs_procfsproc.c index 84484a593d..f5f6c0397f 100644 --- a/fs/procfs/fs_procfsproc.c +++ b/fs/procfs/fs_procfsproc.c @@ -920,6 +920,7 @@ static ssize_t proc_groupfd(FAR struct proc_file_s *procfile, #if CONFIG_NFILE_DESCRIPTORS > 0 /* Guaranteed to be true */ linesize = snprintf(procfile->line, STATUS_LINELEN, "\n%-3s %-8s %s\n", + "FD", "POS", "OFLAGS"); copysize = procfs_memcpy(procfile->line, linesize, buffer, remaining, &offset); totalsize += copysize; -- GitLab From 61fbef572707289af01c0841527678169c9e6ecf Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 28 Apr 2016 02:39:27 -0600 Subject: [PATCH 105/307] Costmetic changes from review or PR --- configs/stm32l476vg-disco/src/stm32_appinit.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/configs/stm32l476vg-disco/src/stm32_appinit.c b/configs/stm32l476vg-disco/src/stm32_appinit.c index 0f1d37e4d2..79cdbb9f3c 100644 --- a/configs/stm32l476vg-disco/src/stm32_appinit.c +++ b/configs/stm32l476vg-disco/src/stm32_appinit.c @@ -212,9 +212,8 @@ FAR struct mtd_dev_s *mtd_temp; g_mtd_fs = mtd_temp; #ifdef CONFIG_MTD_PARTITION - /* Setup a partition of 256KiB for our file system. - * - */ + /* Setup a partition of 256KiB for our file system. */ + #if defined(CONFIG_N25QXXX_SECTOR512) mtd_temp = mtd_partition(g_mtd_fs, 0, 512); #else @@ -225,6 +224,7 @@ FAR struct mtd_dev_s *mtd_temp; SYSLOG("ERROR: mtd_partition failed\n"); return ret; } + g_mtd_fs = mtd_temp; #endif @@ -265,8 +265,6 @@ FAR struct mtd_dev_s *mtd_temp; } #endif /* CONFIG_LIB_BOARDCTL */ - - #ifdef CONFIG_BOARDCTL_IOCTL int board_ioctl(unsigned int cmd, uintptr_t arg) { @@ -277,7 +275,7 @@ int board_ioctl(unsigned int cmd, uintptr_t arg) { struct qspi_meminfo_s meminfo; - /* set up the meminfo like a regular memory transaction, many of the fields + /* Set up the meminfo like a regular memory transaction, many of the fields * are not used, the others are to set up for the 'read' command that will * automatically be issued by the controller as needed. * 6 = CONFIG_N25QXXX_DUMMIES; -- GitLab From 972181697a6b824b86d0bff2812e1058ae241803 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 29 Apr 2016 07:11:42 +0000 Subject: [PATCH 106/307] fs_mount.c edited online with Bitbucket. Fix problem noted by David Sidrane. --- fs/mount/fs_mount.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/mount/fs_mount.c b/fs/mount/fs_mount.c index 1fd2864c35..8357aabcb1 100644 --- a/fs/mount/fs_mount.c +++ b/fs/mount/fs_mount.c @@ -298,7 +298,7 @@ int mount(FAR const char *source, FAR const char *target, * incremented. */ - DEBUGASSERT(mountpt_inode->u.i_mops == NULL); + DEBUGASSERT(mountpt_inode->u.i_mops != NULL); } else #endif -- GitLab From 31870b22f55d236952193c33f33afe7e37d3b4b9 Mon Sep 17 00:00:00 2001 From: ziggurat29 Date: Fri, 29 Apr 2016 07:29:17 -0500 Subject: [PATCH 107/307] booboo in config sanity check; wasn't preventing insanity --- arch/arm/src/stm32l4/stm32l4_allocateheap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm/src/stm32l4/stm32l4_allocateheap.c b/arch/arm/src/stm32l4/stm32l4_allocateheap.c index 9e37373adf..d5ac105436 100644 --- a/arch/arm/src/stm32l4/stm32l4_allocateheap.c +++ b/arch/arm/src/stm32l4/stm32l4_allocateheap.c @@ -104,13 +104,13 @@ #define SRAM2_START 0x10000000 #define SRAM2_END 0x10008000 -#if defined(STM32L4_SRAM2_HEAP) && defined(CONFIG_STM32L4_FSMC_SRAM_HEAP) +#if defined(CONFIG_STM32L4_SRAM2_HEAP) && defined(CONFIG_STM32L4_FSMC_SRAM_HEAP) # if CONFIG_MM_REGIONS < 3 # error you need at least 3 memory manager regions to support SRAM2 and FSMC # endif #endif -#if defined(STM32L4_SRAM2_HEAP) || defined(CONFIG_STM32L4_FSMC_SRAM_HEAP) +#if defined(CONFIG_STM32L4_SRAM2_HEAP) || defined(CONFIG_STM32L4_FSMC_SRAM_HEAP) # if CONFIG_MM_REGIONS < 2 # error you need at least 2 memory manager regions to support SRAM2 or FSMC # endif -- GitLab From 2fe056543744ee2226eac734a99580f5e91a5f56 Mon Sep 17 00:00:00 2001 From: ziggurat29 Date: Fri, 29 Apr 2016 22:13:32 -0500 Subject: [PATCH 108/307] added support for HSE and MSI clocks, and auto trim of MSI to LSE (needed for USB). --- arch/arm/src/stm32l4/chip/stm32l4x6xx_rcc.h | 8 +- arch/arm/src/stm32l4/stm32l4x6xx_rcc.c | 43 +++- configs/nucleo-l476rg/include/nucleo-l476rg.h | 178 ++++++++++++++++- configs/nucleo-l476rg/nsh/defconfig | 73 +++++-- .../include/stm32l476vg-disco-clocking.h | 189 +++++++++++++++++- 5 files changed, 454 insertions(+), 37 deletions(-) diff --git a/arch/arm/src/stm32l4/chip/stm32l4x6xx_rcc.h b/arch/arm/src/stm32l4/chip/stm32l4x6xx_rcc.h index 134ee2844c..0b184230b4 100644 --- a/arch/arm/src/stm32l4/chip/stm32l4x6xx_rcc.h +++ b/arch/arm/src/stm32l4/chip/stm32l4x6xx_rcc.h @@ -120,8 +120,8 @@ /* Clock control register */ -#define RCC_CR_MSION (1 << 0) /* Bit 0: Internal Medium Speed clock enable */ -#define RCC_CR_MSIRDY (1 << 1) /* Bit 1: Internal Medium Speed clock ready flag */ +#define RCC_CR_MSION (1 << 0) /* Bit 0: Internal Multi Speed clock enable */ +#define RCC_CR_MSIRDY (1 << 1) /* Bit 1: Internal Multi Speed clock ready flag */ #define RCC_CR_MSIPLLEN (1 << 2) /* Bit 2: MSI clock PLL enable */ #define RCC_CR_MSIRGSEL (1 << 3) /* Bit 2: MSI clock range selection */ #define RCC_CR_MSIRANGE_SHIFT (4) /* Bits 7-4: MSI clock range */ @@ -161,9 +161,9 @@ #define RCC_CR_HSITRIM_MASK (0x1f << RCC_CR_HSITRIM_SHIFT) #define RCC_CR_HSICAL_SHIFT (16) /* Bits 23-16: Internal High Speed clock Calibration */ #define RCC_CR_HSICAL_MASK (0xff << RCC_CR_HSICAL_SHIFT) -#define RCC_CR_MSITRIM_SHIFT (8) /* Bits 15-8: Internal Medium Speed clock trimming */ +#define RCC_CR_MSITRIM_SHIFT (8) /* Bits 15-8: Internal Multi Speed clock trimming */ #define RCC_CR_MSITRIM_MASK (0xff << RCC_CR_MSITRIM_SHIFT) -#define RCC_CR_MSICAL_SHIFT (0) /* Bits 7-0: Internal Menium Speed clock Calibration */ +#define RCC_CR_MSICAL_SHIFT (0) /* Bits 7-0: Internal Multi Speed clock Calibration */ #define RCC_CR_MSICAL_MASK (0xff << RCC_CR_MSICAL_SHIFT) /* Clock configuration register */ diff --git a/arch/arm/src/stm32l4/stm32l4x6xx_rcc.c b/arch/arm/src/stm32l4/stm32l4x6xx_rcc.c index 64c8021f95..52dac87401 100644 --- a/arch/arm/src/stm32l4/stm32l4x6xx_rcc.c +++ b/arch/arm/src/stm32l4/stm32l4x6xx_rcc.c @@ -57,9 +57,10 @@ #define HSERDY_TIMEOUT (100 * CONFIG_BOARD_LOOPSPERMSEC) -/* Same for HSI */ +/* Same for HSI and MSI */ #define HSIRDY_TIMEOUT HSERDY_TIMEOUT +#define MSIRDY_TIMEOUT HSERDY_TIMEOUT /* HSE divisor to yield ~1MHz RTC clock */ @@ -578,14 +579,38 @@ static void stm32l4_stdclockconfig(void) #elif defined(STM32L4_BOARD_USEMSI) /* Enable Internal Multi-Speed Clock (MSI) */ -# error STM32L4_BOARD_USEMSI not yet implemented in arch/arm/src/stm32l4/stm32l4x6xx_rcc.c + /* Wait until the MSI is either off or ready (or until a timeout elapsed) */ + + for (timeout = MSIRDY_TIMEOUT; timeout > 0; timeout--) + { + if ((regval = getreg32(STM32L4_RCC_CR)), (regval & RCC_CR_MSIRDY) || ~(regval & RCC_CR_MSION)) + { + /* If so, then break-out with timeout > 0 */ + + break; + } + } + /* setting MSIRANGE */ - /* setting MSIPLLEN */ regval = getreg32(STM32L4_RCC_CR); - regval |= RCC_CR_MSION; /* Enable MSI */ + regval |= (STM32L4_BOARD_MSIRANGE | RCC_CR_MSION); /* Enable MSI and frequ */ putreg32(regval, STM32L4_RCC_CR); + /* Wait until the MSI is ready (or until a timeout elapsed) */ + + for (timeout = MSIRDY_TIMEOUT; timeout > 0; timeout--) + { + /* Check if the MSIRDY flag is the set in the CR */ + + if ((getreg32(STM32L4_RCC_CR) & RCC_CR_MSIRDY) != 0) + { + /* If so, then break-out with timeout > 0 */ + + break; + } + } + #elif defined(STM32L4_BOARD_USEHSE) /* Enable External High-Speed Clock (HSE) */ @@ -696,6 +721,8 @@ static void stm32l4_stdclockconfig(void) #ifdef STM32L4_BOARD_USEHSI regval |= RCC_PLLCFG_PLLSRC_HSI; +#elif defined(STM32L4_BOARD_USEMSI) + regval |= RCC_PLLCFG_PLLSRC_MSI; #else /* if STM32L4_BOARD_USEHSE */ regval |= RCC_PLLCFG_PLLSRC_HSE; #endif @@ -833,6 +860,14 @@ static void stm32l4_stdclockconfig(void) */ stm32l4_rcc_enablelse(); + +# if defined(STM32L4_BOARD_USEMSI) + /* now that LSE is up, auto trim the MSI */ + + regval = getreg32(STM32L4_RCC_CR); + regval |= RCC_CR_MSIPLLEN; + putreg32(regval, STM32L4_RCC_CR); +# endif #endif #if defined(STM32L4_USE_CLK48) diff --git a/configs/nucleo-l476rg/include/nucleo-l476rg.h b/configs/nucleo-l476rg/include/nucleo-l476rg.h index 4e4ec25d1f..ced2c805ed 100644 --- a/configs/nucleo-l476rg/include/nucleo-l476rg.h +++ b/configs/nucleo-l476rg/include/nucleo-l476rg.h @@ -49,8 +49,19 @@ * Pre-processor Definitions ************************************************************************************/ +#if 1 +#define HSI_CLOCK_CONFIG /* HSI-16 clock configuration */ +#elif 0 +/* make sure you installed one! */ +#define HSE_CLOCK_CONFIG /* HSE with 8 MHz xtal */ +#else +#define MSI_CLOCK_CONFIG /* MSI @ 4 MHz autotrimmed via LSE */ +#endif + /* Clocking *************************************************************************/ +#if defined(HSI_CLOCK_CONFIG) + /* The NUCLEOL476RG supports both HSE and LSE crystals (X2 and X3). However, as * shipped, the X3 crystal is not populated. Therefore the Nucleo-L476RG * will need to run off the 16MHz HSI clock, or the 32khz-synced MSI. @@ -88,6 +99,10 @@ #define STM32L4_BOARD_USEHSI 1 +/* XXX sysclk mux = pllclk */ + +/* XXX pll source mux = hsi */ + /* REVISIT: Trimming of the HSI and MSI is not yet supported. */ /* Main PLL Configuration. @@ -245,7 +260,7 @@ /* enable the LSE oscillator, used automatically trim the MSI, and for RTC */ -//#define STM32L4_USE_LSE 1 +#define STM32L4_USE_LSE 1 /* AHB clock (HCLK) is SYSCLK (80MHz) */ @@ -287,6 +302,167 @@ /* TODO SDMMC */ +#elif defined(HSE_CLOCK_CONFIG) + +/* use the HSE */ + +#define STM32L4_BOARD_USEHSE 1 + +/* XXX sysclk mux = pllclk */ + +/* XXX pll source mux = hse */ + +/* prescaler common to all PLL inputs */ + +#define STM32L4_PLLCFG_PLLM RCC_PLLCFG_PLLM(1) + +/* 'main' PLL config; we use this to generate our system clock */ + +#define STM32L4_PLLCFG_PLLN RCC_PLLCFG_PLLN(20) +#define STM32L4_PLLCFG_PLLP 0 +#undef STM32L4_PLLCFG_PLLP_ENABLED +#define STM32L4_PLLCFG_PLLQ 0 +#undef STM32L4_PLLCFG_PLLQ_ENABLED +#define STM32L4_PLLCFG_PLLR RCC_PLLCFG_PLLR_2 +#define STM32L4_PLLCFG_PLLR_ENABLED + +/* 'SAIPLL1' is used to generate the 48 MHz clock */ + +#define STM32L4_PLLSAI1CFG_PLLN RCC_PLLSAI1CFG_PLLN(12) +#define STM32L4_PLLSAI1CFG_PLLP 0 +#undef STM32L4_PLLSAI1CFG_PLLP_ENABLED +#define STM32L4_PLLSAI1CFG_PLLQ RCC_PLLSAI1CFG_PLLQ_2 +#define STM32L4_PLLSAI1CFG_PLLQ_ENABLED +#define STM32L4_PLLSAI1CFG_PLLR 0 +#undef STM32L4_PLLSAI1CFG_PLLR_ENABLED + +/* 'SAIPLL2' is not used in this application */ + +#define STM32L4_PLLSAI2CFG_PLLN RCC_PLLSAI2CFG_PLLN(8) +#define STM32L4_PLLSAI2CFG_PLLP 0 +#undef STM32L4_PLLSAI2CFG_PLLP_ENABLED +#define STM32L4_PLLSAI2CFG_PLLR 0 +#undef STM32L4_PLLSAI2CFG_PLLR_ENABLED + +#define STM32L4_SYSCLK_FREQUENCY 80000000ul + +/* enable CLK48; get it from PLLSAI1 */ + +#define STM32L4_USE_CLK48 +#define STM32L4_CLK48_SEL RCC_CCIPR_CLK48SEL_PLLSAI1 + +/* enable LSE (for the RTC) */ + +#define STM32L4_USE_LSE 1 + +/* configure the HCLK divisor (for the AHB bus, core, memory, and DMA */ + +#define STM32L4_RCC_CFGR_HPRE RCC_CFGR_HPRE_SYSCLK /* HCLK = SYSCLK / 1 */ +#define STM32L4_HCLK_FREQUENCY STM32L4_SYSCLK_FREQUENCY +#define STM32L4_BOARD_HCLK STM32L4_HCLK_FREQUENCY /* Same as above, to satisfy compiler */ + +/* configure the APB1 prescaler */ + +#define STM32L4_RCC_CFGR_PPRE1 RCC_CFGR_PPRE1_HCLK /* PCLK1 = HCLK / 1 */ +#define STM32L4_PCLK1_FREQUENCY (STM32L4_HCLK_FREQUENCY/1) + +#define STM32L4_APB1_TIM2_CLKIN (2*STM32L4_PCLK1_FREQUENCY) +#define STM32L4_APB1_TIM3_CLKIN (2*STM32L4_PCLK1_FREQUENCY) +#define STM32L4_APB1_TIM4_CLKIN (2*STM32L4_PCLK1_FREQUENCY) +#define STM32L4_APB1_TIM5_CLKIN (2*STM32L4_PCLK1_FREQUENCY) +#define STM32L4_APB1_TIM6_CLKIN (2*STM32L4_PCLK1_FREQUENCY) +#define STM32L4_APB1_TIM7_CLKIN (2*STM32L4_PCLK1_FREQUENCY) + +/* configure the APB2 prescaler */ + +#define STM32L4_RCC_CFGR_PPRE2 RCC_CFGR_PPRE2_HCLK /* PCLK2 = HCLK / 1 */ +#define STM32L4_PCLK2_FREQUENCY (STM32L4_HCLK_FREQUENCY/1) + +#define STM32L4_APB2_TIM1_CLKIN (2*STM32L4_PCLK2_FREQUENCY) +#define STM32L4_APB2_TIM8_CLKIN (2*STM32L4_PCLK2_FREQUENCY) + +#elif defined(MSI_CLOCK_CONFIG) + +/* use the MSI; frequ = 4 MHz; autotrim from LSE */ + +#define STM32L4_BOARD_USEMSI 1 +#define STM32L4_BOARD_MSIRANGE RCC_CR_MSIRANGE_4M + +/* XXX sysclk mux = pllclk */ + +/* XXX pll source mux = msi */ + +/* prescaler common to all PLL inputs */ + +#define STM32L4_PLLCFG_PLLM RCC_PLLCFG_PLLM(1) + +/* 'main' PLL config; we use this to generate our system clock */ + +#define STM32L4_PLLCFG_PLLN RCC_PLLCFG_PLLN(40) +#define STM32L4_PLLCFG_PLLP 0 +#undef STM32L4_PLLCFG_PLLP_ENABLED +#define STM32L4_PLLCFG_PLLQ 0 +#undef STM32L4_PLLCFG_PLLQ_ENABLED +#define STM32L4_PLLCFG_PLLR RCC_PLLCFG_PLLR_2 +#define STM32L4_PLLCFG_PLLR_ENABLED + +/* 'SAIPLL1' is used to generate the 48 MHz clock */ + +#define STM32L4_PLLSAI1CFG_PLLN RCC_PLLSAI1CFG_PLLN(24) +#define STM32L4_PLLSAI1CFG_PLLP 0 +#undef STM32L4_PLLSAI1CFG_PLLP_ENABLED +#define STM32L4_PLLSAI1CFG_PLLQ RCC_PLLSAI1CFG_PLLQ_2 +#define STM32L4_PLLSAI1CFG_PLLQ_ENABLED +#define STM32L4_PLLSAI1CFG_PLLR 0 +#undef STM32L4_PLLSAI1CFG_PLLR_ENABLED + +/* 'SAIPLL2' is not used in this application */ + +#define STM32L4_PLLSAI2CFG_PLLN RCC_PLLSAI2CFG_PLLN(8) +#define STM32L4_PLLSAI2CFG_PLLP 0 +#undef STM32L4_PLLSAI2CFG_PLLP_ENABLED +#define STM32L4_PLLSAI2CFG_PLLR 0 +#undef STM32L4_PLLSAI2CFG_PLLR_ENABLED + +#define STM32L4_SYSCLK_FREQUENCY 80000000ul + +/* enable CLK48; get it from PLLSAI1 */ + +#define STM32L4_USE_CLK48 +#define STM32L4_CLK48_SEL RCC_CCIPR_CLK48SEL_PLLSAI1 + +/* enable LSE (for the RTC) */ + +#define STM32L4_USE_LSE 1 + +/* configure the HCLK divisor (for the AHB bus, core, memory, and DMA */ + +#define STM32L4_RCC_CFGR_HPRE RCC_CFGR_HPRE_SYSCLK /* HCLK = SYSCLK / 1 */ +#define STM32L4_HCLK_FREQUENCY STM32L4_SYSCLK_FREQUENCY +#define STM32L4_BOARD_HCLK STM32L4_HCLK_FREQUENCY /* Same as above, to satisfy compiler */ + +/* configure the APB1 prescaler */ + +#define STM32L4_RCC_CFGR_PPRE1 RCC_CFGR_PPRE1_HCLK /* PCLK1 = HCLK / 1 */ +#define STM32L4_PCLK1_FREQUENCY (STM32L4_HCLK_FREQUENCY/1) + +#define STM32L4_APB1_TIM2_CLKIN (2*STM32L4_PCLK1_FREQUENCY) +#define STM32L4_APB1_TIM3_CLKIN (2*STM32L4_PCLK1_FREQUENCY) +#define STM32L4_APB1_TIM4_CLKIN (2*STM32L4_PCLK1_FREQUENCY) +#define STM32L4_APB1_TIM5_CLKIN (2*STM32L4_PCLK1_FREQUENCY) +#define STM32L4_APB1_TIM6_CLKIN (2*STM32L4_PCLK1_FREQUENCY) +#define STM32L4_APB1_TIM7_CLKIN (2*STM32L4_PCLK1_FREQUENCY) + +/* configure the APB2 prescaler */ + +#define STM32L4_RCC_CFGR_PPRE2 RCC_CFGR_PPRE2_HCLK /* PCLK2 = HCLK / 1 */ +#define STM32L4_PCLK2_FREQUENCY (STM32L4_HCLK_FREQUENCY/1) + +#define STM32L4_APB2_TIM1_CLKIN (2*STM32L4_PCLK2_FREQUENCY) +#define STM32L4_APB2_TIM8_CLKIN (2*STM32L4_PCLK2_FREQUENCY) + +#endif + /************************************************************************************ * Public Data ************************************************************************************/ diff --git a/configs/nucleo-l476rg/nsh/defconfig b/configs/nucleo-l476rg/nsh/defconfig index 10abc31849..b6954d05d5 100644 --- a/configs/nucleo-l476rg/nsh/defconfig +++ b/configs/nucleo-l476rg/nsh/defconfig @@ -16,7 +16,7 @@ CONFIG_HOST_LINUX=y # # Build Configuration # -CONFIG_APPS_DIR="../apps" +# CONFIG_APPS_DIR="../apps" CONFIG_BUILD_FLAT=y # CONFIG_BUILD_2PASS is not set @@ -49,7 +49,6 @@ CONFIG_DEBUG_VERBOSE=y # # Subsystem Debug Options # -CONFIG_DEBUG_AUDIO=y CONFIG_DEBUG_BINFMT=y CONFIG_DEBUG_FS=y CONFIG_DEBUG_GRAPHICS=y @@ -60,6 +59,7 @@ CONFIG_DEBUG_LIB=y # # OS Function Debug Options # +# CONFIG_DEBUG_DMA is not set # CONFIG_DEBUG_HEAP is not set # CONFIG_DEBUG_IRQ is not set @@ -101,7 +101,8 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_CALYPSO is not set # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set -# CONFIG_ARCH_CHIP_IMX is not set +# CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -133,6 +134,7 @@ CONFIG_ARCH_CORTEXM4=y # CONFIG_ARCH_CORTEXM7 is not set # CONFIG_ARCH_CORTEXA5 is not set # CONFIG_ARCH_CORTEXA8 is not set +# CONFIG_ARCH_CORTEXA9 is not set # CONFIG_ARCH_CORTEXR4 is not set # CONFIG_ARCH_CORTEXR4F is not set # CONFIG_ARCH_CORTEXR5 is not set @@ -141,6 +143,7 @@ CONFIG_ARCH_CORTEXM4=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32l4" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -149,6 +152,7 @@ CONFIG_ARMV7M_CMNVECTOR=y CONFIG_ARCH_HAVE_FPU=y CONFIG_ARCH_HAVE_DPFPU=y # CONFIG_ARCH_FPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set # CONFIG_DEBUG_HARDFAULT is not set @@ -162,6 +166,7 @@ CONFIG_ARMV7M_HAVE_ITCM=y CONFIG_ARMV7M_HAVE_DTCM=y # CONFIG_ARMV7M_ITCM is not set # CONFIG_ARMV7M_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL=y @@ -171,6 +176,7 @@ CONFIG_ARMV7M_HAVE_STACKCHECK=y # CONFIG_ARMV7M_ITMSYSLOG is not set # CONFIG_SERIAL_TERMIOS is not set # CONFIG_USART2_RS485 is not set +# CONFIG_USART2_RXDMA is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # @@ -185,6 +191,12 @@ CONFIG_STM32L4_STM32L476XX=y # CONFIG_STM32L4_FLASH_512KB is not set CONFIG_STM32L4_FLASH_1024KB=y +# +# SRAM2 Options +# +CONFIG_STM32L4_SRAM2_HEAP=y +CONFIG_STM32L4_SRAM2_INIT=y + # # STM32L4 Peripheral Support # @@ -192,7 +204,7 @@ CONFIG_STM32L4_FLASH_1024KB=y # CONFIG_STM32L4_ADC is not set # CONFIG_STM32L4_CAN is not set # CONFIG_STM32L4_DAC is not set -# CONFIG_STM32L4_DMA is not set +CONFIG_STM32L4_DMA=y # CONFIG_STM32L4_I2C is not set # CONFIG_STM32L4_SAI is not set # CONFIG_STM32L4_SPI is not set @@ -202,8 +214,8 @@ CONFIG_STM32L4_USART=y # # AHB1 Peripherals # -# CONFIG_STM32L4_DMA1 is not set -# CONFIG_STM32L4_DMA2 is not set +CONFIG_STM32L4_DMA1=y +CONFIG_STM32L4_DMA2=y # CONFIG_STM32L4_CRC is not set # CONFIG_STM32L4_TSC is not set @@ -215,17 +227,18 @@ CONFIG_STM32L4_USART=y # CONFIG_STM32L4_ADC2 is not set # CONFIG_STM32L4_ADC3 is not set # CONFIG_STM32L4_AES is not set -# CONFIG_STM32L4_RNG is not set +CONFIG_STM32L4_RNG=y # # AHB3 Peripherals # # CONFIG_STM32L4_FMC is not set -# CONFIG_STM32L4_QUADSPI is not set +# CONFIG_STM32L4_QSPI is not set # # APB1 Peripherals # +CONFIG_STM32L4_PWR=y # CONFIG_STM32L4_TIM2 is not set # CONFIG_STM32L4_TIM3 is not set # CONFIG_STM32L4_TIM4 is not set @@ -276,8 +289,8 @@ CONFIG_STM32L4_FIREWALL=y # CONFIG_STM32L4_WWDG is not set CONFIG_STM32L4_FLASH_PREFETCH=y CONFIG_STM32L4_DISABLE_IDLE_SLEEP_DURING_DEBUG=y -# CONFIG_STM32L4_CUSTOM_CLOCKCONFIG is not set -# CONFIG_STM32L4_SAI1PLL is not set +# CONFIG_ARCH_BOARD_STM32L4_CUSTOM_CLOCKCONFIG is not set +CONFIG_STM32L4_SAI1PLL=y # CONFIG_STM32L4_SAI2PLL is not set # @@ -290,12 +303,13 @@ CONFIG_STM32L4_DISABLE_IDLE_SLEEP_DURING_DEBUG=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_ARCH_L2CACHE is not set # CONFIG_ARCH_HAVE_COHERENT_DCACHE is not set # CONFIG_ARCH_HAVE_ADDRENV is not set # CONFIG_ARCH_NEED_ADDRENV_MAPPING is not set +# CONFIG_ARCH_HAVE_MULTICPU is not set CONFIG_ARCH_HAVE_VFORK=y # CONFIG_ARCH_HAVE_MMU is not set CONFIG_ARCH_HAVE_MPU=y @@ -346,6 +360,7 @@ CONFIG_RAM_SIZE=98304 # Board Selection # CONFIG_ARCH_BOARD_NUCLEO_L476RG=y +# CONFIG_ARCH_BOARD_STM32L476VG_DISCO is not set # CONFIG_ARCH_BOARD_CUSTOM is not set CONFIG_ARCH_BOARD="nucleo-l476rg" @@ -472,6 +487,8 @@ CONFIG_PTHREAD_STACK_DEFAULT=2048 CONFIG_DISABLE_POLL=y CONFIG_DEV_NULL=y # CONFIG_DEV_ZERO is not set +CONFIG_ARCH_HAVE_RNG=y +CONFIG_DEV_RANDOM=y # CONFIG_DEV_LOOP is not set # @@ -514,6 +531,7 @@ CONFIG_SPI_EXCHANGE=y # LED Support # # CONFIG_USERLED is not set +# CONFIG_RGBLED is not set # CONFIG_PCA9635PW is not set # CONFIG_MMCSD is not set # CONFIG_MODEM is not set @@ -579,7 +597,7 @@ CONFIG_USART2_2STOP=0 # CONFIG_USART2_DMA is not set # CONFIG_USBDEV is not set # CONFIG_USBHOST is not set -# CONFIG_WIRELESS is not set +# CONFIG_DRIVERS_WIRELESS is not set # # System Logging Device Options @@ -642,7 +660,7 @@ CONFIG_FS_MQUEUE_MPATH="/var/mqueue" # Memory Management # # CONFIG_MM_SMALL is not set -CONFIG_MM_REGIONS=1 +CONFIG_MM_REGIONS=2 # CONFIG_ARCH_HAVE_HEAP2 is not set # CONFIG_GRAN is not set @@ -651,6 +669,10 @@ CONFIG_MM_REGIONS=1 # # CONFIG_AUDIO is not set +# +# Wireless Support +# + # # Binary Loader # @@ -694,6 +716,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # @@ -731,6 +755,7 @@ CONFIG_BUILTIN_PROXY_STACKSIZE=1024 # # Examples # +# CONFIG_EXAMPLES_CHAT is not set # CONFIG_EXAMPLES_CONFIGDATA is not set # CONFIG_EXAMPLES_CPUHOG is not set # CONFIG_EXAMPLES_CXXTEST is not set @@ -770,7 +795,10 @@ CONFIG_EXAMPLES_OSTEST_WAITRESULT=y # CONFIG_EXAMPLES_PIPE is not set # CONFIG_EXAMPLES_PPPD is not set # CONFIG_EXAMPLES_POSIXSPAWN is not set -# CONFIG_EXAMPLES_QENCODER is not set +CONFIG_EXAMPLES_RANDOM=y +CONFIG_EXAMPLES_MAXSAMPLES=64 +CONFIG_EXAMPLES_NSAMPLES=8 +# CONFIG_EXAMPLES_RGBLED is not set # CONFIG_EXAMPLES_RGMP is not set # CONFIG_EXAMPLES_SENDMAIL is not set # CONFIG_EXAMPLES_SERIALBLASTER is not set @@ -779,18 +807,24 @@ CONFIG_EXAMPLES_OSTEST_WAITRESULT=y # CONFIG_EXAMPLES_SLCD is not set # CONFIG_EXAMPLES_SMART_TEST is not set # CONFIG_EXAMPLES_SMART is not set +# CONFIG_EXAMPLES_SMP is not set # CONFIG_EXAMPLES_TCPECHO is not set # CONFIG_EXAMPLES_TELNETD is not set # CONFIG_EXAMPLES_TIFF is not set # CONFIG_EXAMPLES_TOUCHSCREEN is not set # CONFIG_EXAMPLES_WEBSERVER is not set -# CONFIG_EXAMPLES_USBSERIAL is not set # CONFIG_EXAMPLES_USBTERM is not set # CONFIG_EXAMPLES_WATCHDOG is not set # # File System Utilities # +# CONFIG_FSUTILS_INIFILE is not set + +# +# GPS Utilities +# +# CONFIG_GPSUTILS_MINMEA_LIB is not set # # Graphics Support @@ -822,6 +856,7 @@ CONFIG_EXAMPLES_OSTEST_WAITRESULT=y # NSH Library # CONFIG_NSH_LIBRARY=y +# CONFIG_NSH_MOTD is not set # # Command Line Configuration @@ -846,7 +881,7 @@ CONFIG_NSH_BUILTIN_APPS=y # CONFIG_NSH_DISABLE_CD is not set # CONFIG_NSH_DISABLE_CP is not set # CONFIG_NSH_DISABLE_CMP is not set -CONFIG_NSH_DISABLE_DATE=y +# CONFIG_NSH_DISABLE_DATE is not set # CONFIG_NSH_DISABLE_DD is not set # CONFIG_NSH_DISABLE_DF is not set # CONFIG_NSH_DISABLE_DELROUTE is not set @@ -910,6 +945,8 @@ CONFIG_NSH_FILEIOSIZE=512 CONFIG_NSH_CONSOLE=y # CONFIG_NSH_ALTCONDEV is not set # CONFIG_NSH_ARCHINIT is not set +# CONFIG_NSH_LOGIN is not set +# CONFIG_NSH_CONSOLE_LOGIN is not set # # NxWidgets/NxWM @@ -928,7 +965,6 @@ CONFIG_NSH_CONSOLE=y # CONFIG_SYSTEM_CUTERM is not set # CONFIG_SYSTEM_INSTALL is not set # CONFIG_SYSTEM_HEX2BIN is not set -# CONFIG_SYSTEM_INIFILE is not set # CONFIG_SYSTEM_HEXED is not set # CONFIG_SYSTEM_RAMTEST is not set CONFIG_READLINE_HAVE_EXTMATCH=y @@ -936,7 +972,8 @@ CONFIG_SYSTEM_READLINE=y CONFIG_READLINE_ECHO=y # CONFIG_READLINE_TABCOMPLETION is not set # CONFIG_READLINE_CMD_HISTORY is not set -# CONFIG_SYSTEM_RAMTRON is not set # CONFIG_SYSTEM_SUDOKU is not set # CONFIG_SYSTEM_VI is not set +# CONFIG_SYSTEM_UBLOXMODEM is not set # CONFIG_SYSTEM_ZMODEM is not set +# CONFIG_SYSTEM_DISCOTEST is not set diff --git a/configs/stm32l476vg-disco/include/stm32l476vg-disco-clocking.h b/configs/stm32l476vg-disco/include/stm32l476vg-disco-clocking.h index d90e38428f..76c5251557 100644 --- a/configs/stm32l476vg-disco/include/stm32l476vg-disco-clocking.h +++ b/configs/stm32l476vg-disco/include/stm32l476vg-disco-clocking.h @@ -51,9 +51,9 @@ /* Clocking *************************************************************************/ -/* The stm32l476vg-disco supports both HSE and LSE crystals (X2 and X3). However, as - * shipped, the HSE X2 crystal is not populated. Therefore the stm32l476vg-disco - * will need to run off the 16MHz HSI clock, or the 32khz-synced MSI. +/* The stm32l476vg-disco supports both HSE and LSE crystals. As shipped, the HSE + crystal is not populated. Therefore the stm32l476vg-disco will need to run off the + 16MHz HSI clock, or the 32khz-synced MSI, unless you install the HSE xtal. */ /* HSI - 16 MHz RC factory-trimmed @@ -69,15 +69,23 @@ #define BOARD_AHB_FREQUENCY 80000000ul -/* XXX review the STM32L4_BOARD_USEHSI usage, it has too much influence in - * stm32l4x6xx_rcc.c. I suspect it is fine for it to turn on and off that - * ocillator, but really that's all it should do (e.g. it also controls - * input of teh PLLs. Also, it should be fine/desireable to support things - * like turning on both HSI and MSI, because they plausibly can both be - * used at the same time; currently those choices HSE/HSI16/MSI are - * mutually exclusive. +/* XXX there needs to be independent selections for the System Clock Mux and + the PLL Source Mux; currently System Clock Mux always is PLL, and PLL + Source Mux is chosen by the following define. This is probably OK in many + cases, but should be separated to support other power configurations. */ +#if 0 +#define HSI_CLOCK_CONFIG /* HSI-16 clock configuration */ +#elif 0 +/* make sure you actually installed one! */ +#define HSE_CLOCK_CONFIG /* HSE with 8 MHz xtal */ +#else +#define MSI_CLOCK_CONFIG /* MSI @ 4 MHz autotrimmed via LSE */ +#endif + +#if defined(HSI_CLOCK_CONFIG) + #define STM32L4_BOARD_USEHSI 1 /* prescaler common to all PLL inputs; will be 1 (XXX source is implicitly @@ -178,6 +186,167 @@ */ /* REVISIT : this can be configured */ +#elif defined(HSE_CLOCK_CONFIG) + +/* use the HSE */ + +#define STM32L4_BOARD_USEHSE 1 + +/* XXX sysclk mux = pllclk */ + +/* XXX pll source mux = hse */ + +/* prescaler common to all PLL inputs */ + +#define STM32L4_PLLCFG_PLLM RCC_PLLCFG_PLLM(1) + +/* 'main' PLL config; we use this to generate our system clock */ + +#define STM32L4_PLLCFG_PLLN RCC_PLLCFG_PLLN(20) +#define STM32L4_PLLCFG_PLLP 0 +#undef STM32L4_PLLCFG_PLLP_ENABLED +#define STM32L4_PLLCFG_PLLQ 0 +#undef STM32L4_PLLCFG_PLLQ_ENABLED +#define STM32L4_PLLCFG_PLLR RCC_PLLCFG_PLLR_2 +#define STM32L4_PLLCFG_PLLR_ENABLED + +/* 'SAIPLL1' is used to generate the 48 MHz clock */ + +#define STM32L4_PLLSAI1CFG_PLLN RCC_PLLSAI1CFG_PLLN(12) +#define STM32L4_PLLSAI1CFG_PLLP 0 +#undef STM32L4_PLLSAI1CFG_PLLP_ENABLED +#define STM32L4_PLLSAI1CFG_PLLQ RCC_PLLSAI1CFG_PLLQ_2 +#define STM32L4_PLLSAI1CFG_PLLQ_ENABLED +#define STM32L4_PLLSAI1CFG_PLLR 0 +#undef STM32L4_PLLSAI1CFG_PLLR_ENABLED + +/* 'SAIPLL2' is not used in this application */ + +#define STM32L4_PLLSAI2CFG_PLLN RCC_PLLSAI2CFG_PLLN(8) +#define STM32L4_PLLSAI2CFG_PLLP 0 +#undef STM32L4_PLLSAI2CFG_PLLP_ENABLED +#define STM32L4_PLLSAI2CFG_PLLR 0 +#undef STM32L4_PLLSAI2CFG_PLLR_ENABLED + +#define STM32L4_SYSCLK_FREQUENCY 80000000ul + +/* enable CLK48; get it from PLLSAI1 */ + +#define STM32L4_USE_CLK48 +#define STM32L4_CLK48_SEL RCC_CCIPR_CLK48SEL_PLLSAI1 + +/* enable LSE (for the RTC) */ + +#define STM32L4_USE_LSE 1 + +/* configure the HCLK divisor (for the AHB bus, core, memory, and DMA */ + +#define STM32L4_RCC_CFGR_HPRE RCC_CFGR_HPRE_SYSCLK /* HCLK = SYSCLK / 1 */ +#define STM32L4_HCLK_FREQUENCY STM32L4_SYSCLK_FREQUENCY +#define STM32L4_BOARD_HCLK STM32L4_HCLK_FREQUENCY /* Same as above, to satisfy compiler */ + +/* configure the APB1 prescaler */ + +#define STM32L4_RCC_CFGR_PPRE1 RCC_CFGR_PPRE1_HCLK /* PCLK1 = HCLK / 1 */ +#define STM32L4_PCLK1_FREQUENCY (STM32L4_HCLK_FREQUENCY/1) + +#define STM32L4_APB1_TIM2_CLKIN (2*STM32L4_PCLK1_FREQUENCY) +#define STM32L4_APB1_TIM3_CLKIN (2*STM32L4_PCLK1_FREQUENCY) +#define STM32L4_APB1_TIM4_CLKIN (2*STM32L4_PCLK1_FREQUENCY) +#define STM32L4_APB1_TIM5_CLKIN (2*STM32L4_PCLK1_FREQUENCY) +#define STM32L4_APB1_TIM6_CLKIN (2*STM32L4_PCLK1_FREQUENCY) +#define STM32L4_APB1_TIM7_CLKIN (2*STM32L4_PCLK1_FREQUENCY) + +/* configure the APB2 prescaler */ + +#define STM32L4_RCC_CFGR_PPRE2 RCC_CFGR_PPRE2_HCLK /* PCLK2 = HCLK / 1 */ +#define STM32L4_PCLK2_FREQUENCY (STM32L4_HCLK_FREQUENCY/1) + +#define STM32L4_APB2_TIM1_CLKIN (2*STM32L4_PCLK2_FREQUENCY) +#define STM32L4_APB2_TIM8_CLKIN (2*STM32L4_PCLK2_FREQUENCY) + +#elif defined(MSI_CLOCK_CONFIG) + +/* use the MSI; frequ = 4 MHz; autotrim from LSE */ + +#define STM32L4_BOARD_USEMSI 1 +#define STM32L4_BOARD_MSIRANGE RCC_CR_MSIRANGE_4M + +/* XXX sysclk mux = pllclk */ + +/* XXX pll source mux = msi */ + +/* prescaler common to all PLL inputs */ + +#define STM32L4_PLLCFG_PLLM RCC_PLLCFG_PLLM(1) + +/* 'main' PLL config; we use this to generate our system clock */ + +#define STM32L4_PLLCFG_PLLN RCC_PLLCFG_PLLN(40) +#define STM32L4_PLLCFG_PLLP 0 +#undef STM32L4_PLLCFG_PLLP_ENABLED +#define STM32L4_PLLCFG_PLLQ 0 +#undef STM32L4_PLLCFG_PLLQ_ENABLED +#define STM32L4_PLLCFG_PLLR RCC_PLLCFG_PLLR_2 +#define STM32L4_PLLCFG_PLLR_ENABLED + +/* 'SAIPLL1' is used to generate the 48 MHz clock */ + +#define STM32L4_PLLSAI1CFG_PLLN RCC_PLLSAI1CFG_PLLN(24) +#define STM32L4_PLLSAI1CFG_PLLP 0 +#undef STM32L4_PLLSAI1CFG_PLLP_ENABLED +#define STM32L4_PLLSAI1CFG_PLLQ RCC_PLLSAI1CFG_PLLQ_2 +#define STM32L4_PLLSAI1CFG_PLLQ_ENABLED +#define STM32L4_PLLSAI1CFG_PLLR 0 +#undef STM32L4_PLLSAI1CFG_PLLR_ENABLED + +/* 'SAIPLL2' is not used in this application */ + +#define STM32L4_PLLSAI2CFG_PLLN RCC_PLLSAI2CFG_PLLN(8) +#define STM32L4_PLLSAI2CFG_PLLP 0 +#undef STM32L4_PLLSAI2CFG_PLLP_ENABLED +#define STM32L4_PLLSAI2CFG_PLLR 0 +#undef STM32L4_PLLSAI2CFG_PLLR_ENABLED + +#define STM32L4_SYSCLK_FREQUENCY 80000000ul + +/* enable CLK48; get it from PLLSAI1 */ + +#define STM32L4_USE_CLK48 +#define STM32L4_CLK48_SEL RCC_CCIPR_CLK48SEL_PLLSAI1 + +/* enable LSE (for the RTC) */ + +#define STM32L4_USE_LSE 1 + +/* configure the HCLK divisor (for the AHB bus, core, memory, and DMA */ + +#define STM32L4_RCC_CFGR_HPRE RCC_CFGR_HPRE_SYSCLK /* HCLK = SYSCLK / 1 */ +#define STM32L4_HCLK_FREQUENCY STM32L4_SYSCLK_FREQUENCY +#define STM32L4_BOARD_HCLK STM32L4_HCLK_FREQUENCY /* Same as above, to satisfy compiler */ + +/* configure the APB1 prescaler */ + +#define STM32L4_RCC_CFGR_PPRE1 RCC_CFGR_PPRE1_HCLK /* PCLK1 = HCLK / 1 */ +#define STM32L4_PCLK1_FREQUENCY (STM32L4_HCLK_FREQUENCY/1) + +#define STM32L4_APB1_TIM2_CLKIN (2*STM32L4_PCLK1_FREQUENCY) +#define STM32L4_APB1_TIM3_CLKIN (2*STM32L4_PCLK1_FREQUENCY) +#define STM32L4_APB1_TIM4_CLKIN (2*STM32L4_PCLK1_FREQUENCY) +#define STM32L4_APB1_TIM5_CLKIN (2*STM32L4_PCLK1_FREQUENCY) +#define STM32L4_APB1_TIM6_CLKIN (2*STM32L4_PCLK1_FREQUENCY) +#define STM32L4_APB1_TIM7_CLKIN (2*STM32L4_PCLK1_FREQUENCY) + +/* configure the APB2 prescaler */ + +#define STM32L4_RCC_CFGR_PPRE2 RCC_CFGR_PPRE2_HCLK /* PCLK2 = HCLK / 1 */ +#define STM32L4_PCLK2_FREQUENCY (STM32L4_HCLK_FREQUENCY/1) + +#define STM32L4_APB2_TIM1_CLKIN (2*STM32L4_PCLK2_FREQUENCY) +#define STM32L4_APB2_TIM8_CLKIN (2*STM32L4_PCLK2_FREQUENCY) + +#endif + /************************************************************************************ * Public Data ************************************************************************************/ -- GitLab From a95e426d35f3cd84a57d4b08f22970238d576a28 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 30 Apr 2016 09:04:38 -0600 Subject: [PATCH 109/307] Costmetic changes from last PR --- arch/arm/src/stm32l4/stm32l4x6xx_rcc.c | 6 +-- configs/nucleo-l476rg/include/nucleo-l476rg.h | 38 ++++++------- .../include/stm32l476vg-disco-clocking.h | 53 ++++++++++--------- 3 files changed, 49 insertions(+), 48 deletions(-) diff --git a/arch/arm/src/stm32l4/stm32l4x6xx_rcc.c b/arch/arm/src/stm32l4/stm32l4x6xx_rcc.c index 52dac87401..b97fd002dc 100644 --- a/arch/arm/src/stm32l4/stm32l4x6xx_rcc.c +++ b/arch/arm/src/stm32l4/stm32l4x6xx_rcc.c @@ -594,7 +594,7 @@ static void stm32l4_stdclockconfig(void) /* setting MSIRANGE */ regval = getreg32(STM32L4_RCC_CR); - regval |= (STM32L4_BOARD_MSIRANGE | RCC_CR_MSION); /* Enable MSI and frequ */ + regval |= (STM32L4_BOARD_MSIRANGE | RCC_CR_MSION); /* Enable MSI and frequency */ putreg32(regval, STM32L4_RCC_CR); /* Wait until the MSI is ready (or until a timeout elapsed) */ @@ -854,7 +854,7 @@ static void stm32l4_stdclockconfig(void) * and we need to ensure it is first off before doing so. */ - /* turn on the LSE oscillator + /* Turn on the LSE oscillator * XXX this will almost surely get moved since we also want to use * this for automatically trimming MSI, etc. */ @@ -862,7 +862,7 @@ static void stm32l4_stdclockconfig(void) stm32l4_rcc_enablelse(); # if defined(STM32L4_BOARD_USEMSI) - /* now that LSE is up, auto trim the MSI */ + /* Now that LSE is up, auto trim the MSI */ regval = getreg32(STM32L4_RCC_CR); regval |= RCC_CR_MSIPLLEN; diff --git a/configs/nucleo-l476rg/include/nucleo-l476rg.h b/configs/nucleo-l476rg/include/nucleo-l476rg.h index ced2c805ed..e661f5965f 100644 --- a/configs/nucleo-l476rg/include/nucleo-l476rg.h +++ b/configs/nucleo-l476rg/include/nucleo-l476rg.h @@ -1,7 +1,7 @@ /************************************************************************************ * configs/nucleo-l476rg/include/nucleo-l476rg.h * - * Copyright (C) 2014 Gregory Nutt. All rights reserved. + * Copyright (C) 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -50,18 +50,18 @@ ************************************************************************************/ #if 1 -#define HSI_CLOCK_CONFIG /* HSI-16 clock configuration */ +# define HSI_CLOCK_CONFIG /* HSI-16 clock configuration */ #elif 0 -/* make sure you installed one! */ -#define HSE_CLOCK_CONFIG /* HSE with 8 MHz xtal */ +/* Make sure you installed one! */ + +# define HSE_CLOCK_CONFIG /* HSE with 8 MHz xtal */ #else -#define MSI_CLOCK_CONFIG /* MSI @ 4 MHz autotrimmed via LSE */ +# define MSI_CLOCK_CONFIG /* MSI @ 4 MHz autotrimmed via LSE */ #endif /* Clocking *************************************************************************/ #if defined(HSI_CLOCK_CONFIG) - /* The NUCLEOL476RG supports both HSE and LSE crystals (X2 and X3). However, as * shipped, the X3 crystal is not populated. Therefore the Nucleo-L476RG * will need to run off the 16MHz HSI clock, or the 32khz-synced MSI. @@ -304,7 +304,7 @@ #elif defined(HSE_CLOCK_CONFIG) -/* use the HSE */ +/* Use the HSE */ #define STM32L4_BOARD_USEHSE 1 @@ -312,7 +312,7 @@ /* XXX pll source mux = hse */ -/* prescaler common to all PLL inputs */ +/* Prescaler common to all PLL inputs */ #define STM32L4_PLLCFG_PLLM RCC_PLLCFG_PLLM(1) @@ -346,22 +346,22 @@ #define STM32L4_SYSCLK_FREQUENCY 80000000ul -/* enable CLK48; get it from PLLSAI1 */ +/* Enable CLK48; get it from PLLSAI1 */ #define STM32L4_USE_CLK48 #define STM32L4_CLK48_SEL RCC_CCIPR_CLK48SEL_PLLSAI1 -/* enable LSE (for the RTC) */ +/* Enable LSE (for the RTC) */ #define STM32L4_USE_LSE 1 -/* configure the HCLK divisor (for the AHB bus, core, memory, and DMA */ +/* Configure the HCLK divisor (for the AHB bus, core, memory, and DMA */ #define STM32L4_RCC_CFGR_HPRE RCC_CFGR_HPRE_SYSCLK /* HCLK = SYSCLK / 1 */ #define STM32L4_HCLK_FREQUENCY STM32L4_SYSCLK_FREQUENCY #define STM32L4_BOARD_HCLK STM32L4_HCLK_FREQUENCY /* Same as above, to satisfy compiler */ -/* configure the APB1 prescaler */ +/* Configure the APB1 prescaler */ #define STM32L4_RCC_CFGR_PPRE1 RCC_CFGR_PPRE1_HCLK /* PCLK1 = HCLK / 1 */ #define STM32L4_PCLK1_FREQUENCY (STM32L4_HCLK_FREQUENCY/1) @@ -373,7 +373,7 @@ #define STM32L4_APB1_TIM6_CLKIN (2*STM32L4_PCLK1_FREQUENCY) #define STM32L4_APB1_TIM7_CLKIN (2*STM32L4_PCLK1_FREQUENCY) -/* configure the APB2 prescaler */ +/* Configure the APB2 prescaler */ #define STM32L4_RCC_CFGR_PPRE2 RCC_CFGR_PPRE2_HCLK /* PCLK2 = HCLK / 1 */ #define STM32L4_PCLK2_FREQUENCY (STM32L4_HCLK_FREQUENCY/1) @@ -383,7 +383,7 @@ #elif defined(MSI_CLOCK_CONFIG) -/* use the MSI; frequ = 4 MHz; autotrim from LSE */ +/* Use the MSI; frequ = 4 MHz; autotrim from LSE */ #define STM32L4_BOARD_USEMSI 1 #define STM32L4_BOARD_MSIRANGE RCC_CR_MSIRANGE_4M @@ -426,22 +426,22 @@ #define STM32L4_SYSCLK_FREQUENCY 80000000ul -/* enable CLK48; get it from PLLSAI1 */ +/* Enable CLK48; get it from PLLSAI1 */ #define STM32L4_USE_CLK48 #define STM32L4_CLK48_SEL RCC_CCIPR_CLK48SEL_PLLSAI1 -/* enable LSE (for the RTC) */ +/* Enable LSE (for the RTC) */ #define STM32L4_USE_LSE 1 -/* configure the HCLK divisor (for the AHB bus, core, memory, and DMA */ +/* Configure the HCLK divisor (for the AHB bus, core, memory, and DMA */ #define STM32L4_RCC_CFGR_HPRE RCC_CFGR_HPRE_SYSCLK /* HCLK = SYSCLK / 1 */ #define STM32L4_HCLK_FREQUENCY STM32L4_SYSCLK_FREQUENCY #define STM32L4_BOARD_HCLK STM32L4_HCLK_FREQUENCY /* Same as above, to satisfy compiler */ -/* configure the APB1 prescaler */ +/* Configure the APB1 prescaler */ #define STM32L4_RCC_CFGR_PPRE1 RCC_CFGR_PPRE1_HCLK /* PCLK1 = HCLK / 1 */ #define STM32L4_PCLK1_FREQUENCY (STM32L4_HCLK_FREQUENCY/1) @@ -453,7 +453,7 @@ #define STM32L4_APB1_TIM6_CLKIN (2*STM32L4_PCLK1_FREQUENCY) #define STM32L4_APB1_TIM7_CLKIN (2*STM32L4_PCLK1_FREQUENCY) -/* configure the APB2 prescaler */ +/* Configure the APB2 prescaler */ #define STM32L4_RCC_CFGR_PPRE2 RCC_CFGR_PPRE2_HCLK /* PCLK2 = HCLK / 1 */ #define STM32L4_PCLK2_FREQUENCY (STM32L4_HCLK_FREQUENCY/1) diff --git a/configs/stm32l476vg-disco/include/stm32l476vg-disco-clocking.h b/configs/stm32l476vg-disco/include/stm32l476vg-disco-clocking.h index 76c5251557..7db8d8603e 100644 --- a/configs/stm32l476vg-disco/include/stm32l476vg-disco-clocking.h +++ b/configs/stm32l476vg-disco/include/stm32l476vg-disco-clocking.h @@ -52,8 +52,8 @@ /* Clocking *************************************************************************/ /* The stm32l476vg-disco supports both HSE and LSE crystals. As shipped, the HSE - crystal is not populated. Therefore the stm32l476vg-disco will need to run off the - 16MHz HSI clock, or the 32khz-synced MSI, unless you install the HSE xtal. + * crystal is not populated. Therefore the stm32l476vg-disco will need to run off the + * 16MHz HSI clock, or the 32khz-synced MSI, unless you install the HSE xtal. */ /* HSI - 16 MHz RC factory-trimmed @@ -70,25 +70,26 @@ #define BOARD_AHB_FREQUENCY 80000000ul /* XXX there needs to be independent selections for the System Clock Mux and - the PLL Source Mux; currently System Clock Mux always is PLL, and PLL - Source Mux is chosen by the following define. This is probably OK in many - cases, but should be separated to support other power configurations. + * the PLL Source Mux; currently System Clock Mux always is PLL, and PLL + * Source Mux is chosen by the following define. This is probably OK in many + * cases, but should be separated to support other power configurations. */ #if 0 -#define HSI_CLOCK_CONFIG /* HSI-16 clock configuration */ +# define HSI_CLOCK_CONFIG /* HSI-16 clock configuration */ #elif 0 -/* make sure you actually installed one! */ -#define HSE_CLOCK_CONFIG /* HSE with 8 MHz xtal */ +/* Make sure you actually installed one! */ + +# define HSE_CLOCK_CONFIG /* HSE with 8 MHz xtal */ #else -#define MSI_CLOCK_CONFIG /* MSI @ 4 MHz autotrimmed via LSE */ +# define MSI_CLOCK_CONFIG /* MSI @ 4 MHz autotrimmed via LSE */ #endif #if defined(HSI_CLOCK_CONFIG) -#define STM32L4_BOARD_USEHSI 1 +#define STM32L4_BOARD_USEHSI 1 -/* prescaler common to all PLL inputs; will be 1 (XXX source is implicitly +/* Prescaler common to all PLL inputs; will be 1 (XXX source is implicitly as per comment above HSI) */ #define STM32L4_PLLCFG_PLLM RCC_PLLCFG_PLLM(1) @@ -144,7 +145,7 @@ #define STM32L4_USE_CLK48 1 #define STM32L4_CLK48_SEL RCC_CCIPR_CLK48SEL_PLLSAI1 -/* enable the LSE oscillator, used automatically trim the MSI, and for RTC */ +/* Enable the LSE oscillator, used automatically trim the MSI, and for RTC */ #define STM32L4_USE_LSE 1 @@ -188,7 +189,7 @@ #elif defined(HSE_CLOCK_CONFIG) -/* use the HSE */ +/* Use the HSE */ #define STM32L4_BOARD_USEHSE 1 @@ -196,7 +197,7 @@ /* XXX pll source mux = hse */ -/* prescaler common to all PLL inputs */ +/* Prescaler common to all PLL inputs */ #define STM32L4_PLLCFG_PLLM RCC_PLLCFG_PLLM(1) @@ -230,22 +231,22 @@ #define STM32L4_SYSCLK_FREQUENCY 80000000ul -/* enable CLK48; get it from PLLSAI1 */ +/* Enable CLK48; get it from PLLSAI1 */ #define STM32L4_USE_CLK48 #define STM32L4_CLK48_SEL RCC_CCIPR_CLK48SEL_PLLSAI1 -/* enable LSE (for the RTC) */ +/* Enable LSE (for the RTC) */ #define STM32L4_USE_LSE 1 -/* configure the HCLK divisor (for the AHB bus, core, memory, and DMA */ +/* Configure the HCLK divisor (for the AHB bus, core, memory, and DMA */ #define STM32L4_RCC_CFGR_HPRE RCC_CFGR_HPRE_SYSCLK /* HCLK = SYSCLK / 1 */ #define STM32L4_HCLK_FREQUENCY STM32L4_SYSCLK_FREQUENCY #define STM32L4_BOARD_HCLK STM32L4_HCLK_FREQUENCY /* Same as above, to satisfy compiler */ -/* configure the APB1 prescaler */ +/* Configure the APB1 prescaler */ #define STM32L4_RCC_CFGR_PPRE1 RCC_CFGR_PPRE1_HCLK /* PCLK1 = HCLK / 1 */ #define STM32L4_PCLK1_FREQUENCY (STM32L4_HCLK_FREQUENCY/1) @@ -257,7 +258,7 @@ #define STM32L4_APB1_TIM6_CLKIN (2*STM32L4_PCLK1_FREQUENCY) #define STM32L4_APB1_TIM7_CLKIN (2*STM32L4_PCLK1_FREQUENCY) -/* configure the APB2 prescaler */ +/* Configure the APB2 prescaler */ #define STM32L4_RCC_CFGR_PPRE2 RCC_CFGR_PPRE2_HCLK /* PCLK2 = HCLK / 1 */ #define STM32L4_PCLK2_FREQUENCY (STM32L4_HCLK_FREQUENCY/1) @@ -267,7 +268,7 @@ #elif defined(MSI_CLOCK_CONFIG) -/* use the MSI; frequ = 4 MHz; autotrim from LSE */ +/* Use the MSI; frequ = 4 MHz; autotrim from LSE */ #define STM32L4_BOARD_USEMSI 1 #define STM32L4_BOARD_MSIRANGE RCC_CR_MSIRANGE_4M @@ -276,7 +277,7 @@ /* XXX pll source mux = msi */ -/* prescaler common to all PLL inputs */ +/* Prescaler common to all PLL inputs */ #define STM32L4_PLLCFG_PLLM RCC_PLLCFG_PLLM(1) @@ -310,22 +311,22 @@ #define STM32L4_SYSCLK_FREQUENCY 80000000ul -/* enable CLK48; get it from PLLSAI1 */ +/* Enable CLK48; get it from PLLSAI1 */ #define STM32L4_USE_CLK48 #define STM32L4_CLK48_SEL RCC_CCIPR_CLK48SEL_PLLSAI1 -/* enable LSE (for the RTC) */ +/* Enable LSE (for the RTC) */ #define STM32L4_USE_LSE 1 -/* configure the HCLK divisor (for the AHB bus, core, memory, and DMA */ +/* Configure the HCLK divisor (for the AHB bus, core, memory, and DMA */ #define STM32L4_RCC_CFGR_HPRE RCC_CFGR_HPRE_SYSCLK /* HCLK = SYSCLK / 1 */ #define STM32L4_HCLK_FREQUENCY STM32L4_SYSCLK_FREQUENCY #define STM32L4_BOARD_HCLK STM32L4_HCLK_FREQUENCY /* Same as above, to satisfy compiler */ -/* configure the APB1 prescaler */ +/* Configure the APB1 prescaler */ #define STM32L4_RCC_CFGR_PPRE1 RCC_CFGR_PPRE1_HCLK /* PCLK1 = HCLK / 1 */ #define STM32L4_PCLK1_FREQUENCY (STM32L4_HCLK_FREQUENCY/1) @@ -337,7 +338,7 @@ #define STM32L4_APB1_TIM6_CLKIN (2*STM32L4_PCLK1_FREQUENCY) #define STM32L4_APB1_TIM7_CLKIN (2*STM32L4_PCLK1_FREQUENCY) -/* configure the APB2 prescaler */ +/* Configure the APB2 prescaler */ #define STM32L4_RCC_CFGR_PPRE2 RCC_CFGR_PPRE2_HCLK /* PCLK2 = HCLK / 1 */ #define STM32L4_PCLK2_FREQUENCY (STM32L4_HCLK_FREQUENCY/1) -- GitLab From dedcbeba2edaef14909e1e9c9cb77324a319970e Mon Sep 17 00:00:00 2001 From: ziggurat29 Date: Tue, 3 May 2016 11:09:23 -0500 Subject: [PATCH 110/307] add unique id function to arch, modded board to support unique id boardctl --- arch/arm/src/stm32l4/Make.defs | 2 +- arch/arm/src/stm32l4/stm32l4_uid.c | 63 +++++++++++++ arch/arm/src/stm32l4/stm32l4_uid.h | 52 +++++++++++ .../stm32l476vg-disco/include/nsh_romfsimg.h | 89 +++++++++++++++++++ .../stm32l476vg-disco/include/rcS.template | 3 + configs/stm32l476vg-disco/nsh/defconfig | 44 ++++----- configs/stm32l476vg-disco/src/stm32_appinit.c | 14 +++ 7 files changed, 246 insertions(+), 21 deletions(-) create mode 100644 arch/arm/src/stm32l4/stm32l4_uid.c create mode 100644 arch/arm/src/stm32l4/stm32l4_uid.h create mode 100644 configs/stm32l476vg-disco/include/nsh_romfsimg.h create mode 100644 configs/stm32l476vg-disco/include/rcS.template diff --git a/arch/arm/src/stm32l4/Make.defs b/arch/arm/src/stm32l4/Make.defs index d9f3fb8341..561cfedf28 100644 --- a/arch/arm/src/stm32l4/Make.defs +++ b/arch/arm/src/stm32l4/Make.defs @@ -114,7 +114,7 @@ endif CHIP_ASRCS = CHIP_CSRCS = stm32l4_allocateheap.c stm32l4_exti_gpio.c stm32l4_gpio.c CHIP_CSRCS += stm32l4_idle.c stm32l4_irq.c stm32l4_lowputc.c stm32l4_rcc.c -CHIP_CSRCS += stm32l4_serial.c stm32l4_start.c stm32l4_waste.c +CHIP_CSRCS += stm32l4_serial.c stm32l4_start.c stm32l4_waste.c stm32l4_uid.c CHIP_CSRCS += stm32l4_spi.c stm32l4_i2c.c stm32l4_lse.c stm32l4_pwr.c ifneq ($(CONFIG_SCHED_TICKLESS),y) diff --git a/arch/arm/src/stm32l4/stm32l4_uid.c b/arch/arm/src/stm32l4/stm32l4_uid.c new file mode 100644 index 0000000000..4547dcc456 --- /dev/null +++ b/arch/arm/src/stm32l4/stm32l4_uid.c @@ -0,0 +1,63 @@ +/************************************************************************************ + * arch/arm/src/stm32l4/stm32l4_uid.c + * + * Copyright (C) 2015 Marawan Ragab. All rights reserved. + * Author: Marawan Ragab + * dev@ziggurat9.com + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ************************************************************************************/ + +/************************************************************************************ + * Included Files + ************************************************************************************/ + +#include + +#include + +#include "stm32l4_uid.h" + +#ifdef STM32L4_SYSMEM_UID + +/************************************************************************************ + * Public Functions + ************************************************************************************/ + +void stm32l4_get_uniqueid(uint8_t uniqueid[12]) +{ + int i; + + for (i = 0; i < 12; i++) + { + uniqueid[i] = *((uint8_t*)(STM32L4_SYSMEM_UID)+i); + } +} + +#endif /* STM32L4_SYSMEM_UID */ diff --git a/arch/arm/src/stm32l4/stm32l4_uid.h b/arch/arm/src/stm32l4/stm32l4_uid.h new file mode 100644 index 0000000000..50805c1509 --- /dev/null +++ b/arch/arm/src/stm32l4/stm32l4_uid.h @@ -0,0 +1,52 @@ +/************************************************************************************ + * arch/arm/src/stm32l4/stm32l4_uid.h + * + * Copyright (C) 2015 Marawan Ragab. All rights reserved. + * Author: Marawan Ragab + * dev@ziggurat9.com + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ************************************************************************************/ + +#ifndef __ARCH_ARM_SRC_STM32L4_STM32L4_UID_H +#define __ARCH_ARM_SRC_STM32L4_STM32L4_UID_H + +/************************************************************************************ + * Included Files + ************************************************************************************/ + +#include + +/************************************************************************************ + * Public Function Prototypes + ************************************************************************************/ + +void stm32l4_get_uniqueid(uint8_t uniqueid[12]); + +#endif /* __ARCH_ARM_SRC_STM32L4_STM32L4_UID_H */ diff --git a/configs/stm32l476vg-disco/include/nsh_romfsimg.h b/configs/stm32l476vg-disco/include/nsh_romfsimg.h new file mode 100644 index 0000000000..6bf0d908f0 --- /dev/null +++ b/configs/stm32l476vg-disco/include/nsh_romfsimg.h @@ -0,0 +1,89 @@ +unsigned char romfs_img[] = { + 0x2d, 0x72, 0x6f, 0x6d, 0x31, 0x66, 0x73, 0x2d, 0x00, 0x00, 0x01, 0x80, + 0x42, 0x56, 0x48, 0x93, 0x4e, 0x53, 0x48, 0x49, 0x6e, 0x69, 0x74, 0x56, + 0x6f, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, + 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0xd1, 0xff, 0xff, 0x97, + 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x20, + 0x00, 0x00, 0x00, 0x00, 0xd1, 0xd1, 0xff, 0x80, 0x2e, 0x2e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x68, 0x2d, 0x96, 0x03, 0x69, 0x6e, 0x69, 0x74, 0x2e, 0x64, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, + 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0xd1, 0xff, 0xff, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x6a, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x9a, 0x8d, 0x9c, 0xaa, 0xfc, 0x72, 0x63, 0x53, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x20, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x20, 0x72, 0x63, 0x53, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x3b, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x6d, + 0x75, 0x73, 0x74, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x74, 0x6f, 0x6f, 0x6c, + 0x73, 0x2f, 0x67, 0x65, 0x6e, 0x72, 0x6f, 0x6d, 0x66, 0x73, 0x20, 0x3c, + 0x6e, 0x75, 0x74, 0x74, 0x78, 0x20, 0x64, 0x69, 0x72, 0x3e, 0x20, 0x66, + 0x72, 0x6f, 0x6d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x69, 0x73, 0x0a, 0x23, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, + 0x74, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, + 0x74, 0x6f, 0x20, 0x6e, 0x73, 0x68, 0x5f, 0x72, 0x6f, 0x6d, 0x66, 0x73, + 0x69, 0x6d, 0x67, 0x2e, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, 0x6e, + 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x0a, 0x0a, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, + 0x00, 0x00, 0x00, 0x00, 0xd1, 0xd1, 0xff, 0xe0, 0x2e, 0x2e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00 +}; +unsigned int romfs_img_len = 1024; diff --git a/configs/stm32l476vg-disco/include/rcS.template b/configs/stm32l476vg-disco/include/rcS.template new file mode 100644 index 0000000000..ba8d905ae4 --- /dev/null +++ b/configs/stm32l476vg-disco/include/rcS.template @@ -0,0 +1,3 @@ +# sample rcS file; you must run tools/genromfs from within this +# location to convert this file to nsh_romfsimg.h for inclusion in the build + diff --git a/configs/stm32l476vg-disco/nsh/defconfig b/configs/stm32l476vg-disco/nsh/defconfig index 4f889363a7..1ad001dd86 100644 --- a/configs/stm32l476vg-disco/nsh/defconfig +++ b/configs/stm32l476vg-disco/nsh/defconfig @@ -50,7 +50,7 @@ CONFIG_ARCH_HAVE_HEAPCHECK=y # Subsystem Debug Options # # CONFIG_DEBUG_BINFMT is not set -CONFIG_DEBUG_FS=y +# CONFIG_DEBUG_FS is not set # CONFIG_DEBUG_GRAPHICS is not set # CONFIG_DEBUG_LIB is not set # CONFIG_DEBUG_MM is not set @@ -398,7 +398,8 @@ CONFIG_NSH_MMCSDMINOR=0 # CONFIG_LIB_BOARDCTL=y # CONFIG_BOARDCTL_RESET is not set -# CONFIG_BOARDCTL_UNIQUEID is not set +CONFIG_BOARDCTL_UNIQUEID=y +CONFIG_BOARDCTL_UNIQUEID_SIZE=12 # CONFIG_BOARDCTL_TSCTEST is not set # CONFIG_BOARDCTL_ADCTEST is not set # CONFIG_BOARDCTL_PWMTEST is not set @@ -696,16 +697,15 @@ CONFIG_FS_WRITABLE=y # CONFIG_FS_NAMED_SEMAPHORES is not set CONFIG_FS_MQUEUE_MPATH="/var/mqueue" # CONFIG_FS_RAMMAP is not set -CONFIG_FS_FAT=y -# CONFIG_FAT_LCNAMES is not set -# CONFIG_FAT_LFN is not set -# CONFIG_FS_FATTIME is not set -# CONFIG_FAT_FORCE_INDIRECT is not set -# CONFIG_FAT_DMAMEMORY is not set -# CONFIG_FAT_DIRECT_RETRY is not set +# CONFIG_FS_FAT is not set # CONFIG_FS_NXFFS is not set -# CONFIG_FS_ROMFS is not set -# CONFIG_FS_TMPFS is not set +CONFIG_FS_ROMFS=y +CONFIG_FS_TMPFS=y +CONFIG_FS_TMPFS_BLOCKSIZE=512 +CONFIG_FS_TMPFS_DIRECTORY_ALLOCGUARD=64 +CONFIG_FS_TMPFS_DIRECTORY_FREEGUARD=128 +CONFIG_FS_TMPFS_FILE_ALLOCGUARD=512 +CONFIG_FS_TMPFS_FILE_FREEGUARD=1024 # CONFIG_FS_SMARTFS is not set # CONFIG_FS_BINFS is not set CONFIG_FS_PROCFS=y @@ -853,14 +853,7 @@ CONFIG_EXAMPLES_BUTTONS_NAME7="Button 7" # CONFIG_EXAMPLES_CXXTEST is not set # CONFIG_EXAMPLES_DHCPD is not set # CONFIG_EXAMPLES_ELF is not set -CONFIG_EXAMPLES_FSTEST=y -CONFIG_EXAMPLES_FSTEST_MAXNAME=32 -CONFIG_EXAMPLES_FSTEST_MAXFILE=8192 -CONFIG_EXAMPLES_FSTEST_MAXIO=347 -CONFIG_EXAMPLES_FSTEST_MAXOPEN=2 -CONFIG_EXAMPLES_FSTEST_MOUNTPT="/mnt/n25qxxx" -CONFIG_EXAMPLES_FSTEST_NLOOPS=1 -# CONFIG_EXAMPLES_FSTEST_VERBOSE is not set +# CONFIG_EXAMPLES_FSTEST is not set # CONFIG_EXAMPLES_FTPC is not set # CONFIG_EXAMPLES_FTPD is not set # CONFIG_EXAMPLES_HELLO is not set @@ -895,6 +888,7 @@ CONFIG_EXAMPLES_NSH_CXXINITIALIZE=y # CONFIG_EXAMPLES_RANDOM is not set # CONFIG_EXAMPLES_RGBLED is not set # CONFIG_EXAMPLES_RGMP is not set +# CONFIG_EXAMPLES_ROMFS is not set # CONFIG_EXAMPLES_SENDMAIL is not set # CONFIG_EXAMPLES_SERIALBLASTER is not set # CONFIG_EXAMPLES_SERIALRX is not set @@ -905,9 +899,11 @@ CONFIG_EXAMPLES_NSH_CXXINITIALIZE=y # CONFIG_EXAMPLES_SMP is not set # CONFIG_EXAMPLES_TCPECHO is not set # CONFIG_EXAMPLES_TELNETD is not set +# CONFIG_EXAMPLES_THTTPD is not set # CONFIG_EXAMPLES_TIFF is not set # CONFIG_EXAMPLES_TOUCHSCREEN is not set # CONFIG_EXAMPLES_WEBSERVER is not set +# CONFIG_EXAMPLES_UNIONFS is not set # CONFIG_EXAMPLES_USBSERIAL is not set # CONFIG_EXAMPLES_USBTERM is not set # CONFIG_EXAMPLES_WATCHDOG is not set @@ -999,7 +995,6 @@ CONFIG_NSH_DISABLE_LOSMART=y # CONFIG_NSH_DISABLE_LS is not set # CONFIG_NSH_DISABLE_MB is not set # CONFIG_NSH_DISABLE_MKDIR is not set -# CONFIG_NSH_DISABLE_MKFATFS is not set # CONFIG_NSH_DISABLE_MKFIFO is not set # CONFIG_NSH_DISABLE_MKRD is not set # CONFIG_NSH_DISABLE_MH is not set @@ -1038,6 +1033,15 @@ CONFIG_NSH_FILEIOSIZE=512 # CONFIG_NSH_DISABLESCRIPT is not set # CONFIG_NSH_DISABLE_ITEF is not set # CONFIG_NSH_DISABLE_LOOPS is not set +CONFIG_NSH_ROMFSETC=y +# CONFIG_NSH_ROMFSRC is not set +CONFIG_NSH_ROMFSMOUNTPT="/etc" +CONFIG_NSH_INITSCRIPT="init.d/rcS" +CONFIG_NSH_ROMFSDEVNO=0 +CONFIG_NSH_ROMFSSECTSIZE=64 +# CONFIG_NSH_DEFAULTROMFS is not set +CONFIG_NSH_ARCHROMFS=y +# CONFIG_NSH_CUSTOMROMFS is not set # # Console Configuration diff --git a/configs/stm32l476vg-disco/src/stm32_appinit.c b/configs/stm32l476vg-disco/src/stm32_appinit.c index 79cdbb9f3c..ec485fa1f1 100644 --- a/configs/stm32l476vg-disco/src/stm32_appinit.c +++ b/configs/stm32l476vg-disco/src/stm32_appinit.c @@ -53,6 +53,7 @@ #include #include +#include #include #include @@ -308,3 +309,16 @@ int board_ioctl(unsigned int cmd, uintptr_t arg) return OK; } #endif + +#if defined(CONFIG_BOARDCTL_UNIQUEID) +int board_uniqueid(uint8_t *uniqueid) +{ + if (uniqueid == 0) + { + return -EINVAL; + } + + stm32l4_get_uniqueid(uniqueid); + return OK; +} +#endif -- GitLab From e6e2552a129caed5c5a78e42ea94983e2ebb985a Mon Sep 17 00:00:00 2001 From: "Paul A. Patience" Date: Tue, 3 May 2016 17:18:57 -0400 Subject: [PATCH 111/307] UAVCAN: Update version --- configs/nucleo-f303re/uavcan/defconfig | 2 +- configs/stm32f4discovery/uavcan/defconfig | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/configs/nucleo-f303re/uavcan/defconfig b/configs/nucleo-f303re/uavcan/defconfig index 11737a5671..6fe165d461 100644 --- a/configs/nucleo-f303re/uavcan/defconfig +++ b/configs/nucleo-f303re/uavcan/defconfig @@ -814,7 +814,7 @@ CONFIG_HAVE_CXXINITIALIZE=y # CONFIG_CANUTILS_UAVCAN=y CONFIG_UAVCAN_LIBUAVCAN_URL="https://github.com/UAVCAN/libuavcan/archive" -CONFIG_UAVCAN_LIBUAVCAN_VERSION="c152f28a620ceec9f63581a7c99fe77c89938048" +CONFIG_UAVCAN_LIBUAVCAN_VERSION="b04396ace50155573e545ed9bf2fb09964ee2367" CONFIG_UAVCAN_DSDL_URL="https://github.com/UAVCAN/dsdl/archive" CONFIG_UAVCAN_DSDL_VERSION="9804a3e6972825586be252ce08dd899f44994b14" CONFIG_UAVCAN_PYUAVCAN_URL="https://github.com/UAVCAN/pyuavcan/archive" diff --git a/configs/stm32f4discovery/uavcan/defconfig b/configs/stm32f4discovery/uavcan/defconfig index abdde2ee94..1bc92535c7 100644 --- a/configs/stm32f4discovery/uavcan/defconfig +++ b/configs/stm32f4discovery/uavcan/defconfig @@ -843,11 +843,11 @@ CONFIG_HAVE_CXXINITIALIZE=y # CONFIG_CANUTILS_UAVCAN=y CONFIG_UAVCAN_LIBUAVCAN_URL="https://github.com/UAVCAN/libuavcan/archive" -CONFIG_UAVCAN_LIBUAVCAN_VERSION="531433a3261ff1568e824c240d0f1c6ecef73be1" +CONFIG_UAVCAN_LIBUAVCAN_VERSION="b04396ace50155573e545ed9bf2fb09964ee2367" CONFIG_UAVCAN_DSDL_URL="https://github.com/UAVCAN/dsdl/archive" CONFIG_UAVCAN_DSDL_VERSION="9804a3e6972825586be252ce08dd899f44994b14" CONFIG_UAVCAN_PYUAVCAN_URL="https://github.com/UAVCAN/pyuavcan/archive" -CONFIG_UAVCAN_PYUAVCAN_VERSION="4e2798ec3da8e8493b769da514f3b96eea5773e2" +CONFIG_UAVCAN_PYUAVCAN_VERSION="c58477a644d20ccf95a20c151f3a0402f271c3b8" CONFIG_UAVCAN_STM32_NUM_IFACES=1 # CONFIG_UAVCAN_STM32_TIM2 is not set # CONFIG_UAVCAN_STM32_TIM3 is not set -- GitLab From aecc03313130b3f3ad5261806c78970d8b66bf13 Mon Sep 17 00:00:00 2001 From: David Sidrane Date: Thu, 5 May 2016 03:40:16 -0600 Subject: [PATCH 112/307] Pass toplevel make to the script to allow -j greater than 1 --- Makefile.unix | 2 +- tools/mkexport.sh | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Makefile.unix b/Makefile.unix index 96179c419b..022c796216 100644 --- a/Makefile.unix +++ b/Makefile.unix @@ -507,7 +507,7 @@ gconfig: apps_preconfig # that the archiver is 'ar' export: pass2deps - $(Q) $(MKEXPORT) $(MKEXPORT_ARGS) -l "$(EXPORTLIBS)" + $(Q) MAKE=${MAKE} $(MKEXPORT) $(MKEXPORT_ARGS) -l "$(EXPORTLIBS)" # General housekeeping targets: dependencies, cleaning, etc. # diff --git a/tools/mkexport.sh b/tools/mkexport.sh index 37a78394bd..ebaff91b88 100755 --- a/tools/mkexport.sh +++ b/tools/mkexport.sh @@ -162,7 +162,7 @@ grep -v "WINTOOL[ \t]*=[ \t]y" "${TOPDIR}/Make.defs" > "${EXPORTDIR}/Make.defs" # Extract information from the Make.defs file. A Makefile can do this best -make -C "${TOPDIR}/tools" -f Makefile.export TOPDIR="${TOPDIR}" EXPORTDIR="${EXPORTDIR}" +${MAKE} -C "${TOPDIR}/tools" -f Makefile.export TOPDIR="${TOPDIR}" EXPORTDIR="${EXPORTDIR}" source "${EXPORTDIR}/makeinfo.sh" rm -f "${EXPORTDIR}/makeinfo.sh" rm -f "${EXPORTDIR}/Make.defs" @@ -236,7 +236,7 @@ cp -LR -p "${TOPDIR}/include" "${EXPORTDIR}/." || \ # Copy the startup object file(s) -make -C ${ARCHDIR} export_startup TOPDIR=${TOPDIR} EXPORT_DIR="${EXPORTDIR}" +${MAKE} -C ${ARCHDIR} export_startup TOPDIR=${TOPDIR} EXPORT_DIR="${EXPORTDIR}" # Copy architecture-specific header files into the arch export sub-directory. # This is tricky because each architecture does things in a little different -- GitLab From 273680a6e9d7a3f17c0215b88ccd8e442ef9e3a4 Mon Sep 17 00:00:00 2001 From: ziggurat29 Date: Thu, 5 May 2016 11:16:00 -0500 Subject: [PATCH 113/307] update RTC implementation to include the various alarm related stuff recently added to STM32 arch --- arch/arm/src/stm32l4/stm32l4_rtc.h | 47 +- arch/arm/src/stm32l4/stm32l4_rtc_lowerhalf.c | 275 ++++++++++- arch/arm/src/stm32l4/stm32l4_rtcc.c | 458 +++++++++++++++++-- 3 files changed, 728 insertions(+), 52 deletions(-) diff --git a/arch/arm/src/stm32l4/stm32l4_rtc.h b/arch/arm/src/stm32l4/stm32l4_rtc.h index 5292f6f4eb..b155bef8b0 100644 --- a/arch/arm/src/stm32l4/stm32l4_rtc.h +++ b/arch/arm/src/stm32l4/stm32l4_rtc.h @@ -43,6 +43,7 @@ #ifndef __ARCH_ARM_SRC_STM32L4_STM32L4_RTC_H #define __ARCH_ARM_SRC_STM32L4_STM32L4_RTC_H +#include #include #include "chip.h" @@ -62,9 +63,30 @@ #ifndef __ASSEMBLY__ +#ifdef CONFIG_RTC_ALARM + /* The form of an alarm callback */ -typedef CODE void (*alarmcb_t)(void); +typedef CODE void (*alm_callback_t)(FAR void *arg, unsigned int alarmid); + +enum alm_id_e +{ + RTC_ALARMA = 0, /* RTC ALARM A */ + RTC_ALARMB, /* RTC ALARM B */ + RTC_ALARM_LAST +}; + +/* Structure used to pass parmaters to set an alarm */ + +struct alm_setalarm_s +{ + int as_id; /* enum alm_id_e */ + struct tm as_time; /* Alarm expiration time */ + alm_callback_t as_cb; /* Callback (if non-NULL) */ + FAR void *as_arg; /* Argument for callback */ +}; + +#endif /* CONFIG_RTC_ALARM */ /**************************************************************************** * Public Data @@ -93,8 +115,7 @@ extern "C" * during initialization to set up the system time when CONFIG_RTC and * CONFIG_RTC_DATETIME are selected (and CONFIG_RTC_HIRES is not). * - * NOTE: Some date/time RTC hardware is capability of sub-second accuracy. - * That sub-second accuracy is returned through 'nsec'. + * NOTE: The sub-second accuracy is returned through 'nsec'. * * Input Parameters: * tp - The location to return the high resolution time value. @@ -130,43 +151,39 @@ struct tm; int stm32l4_rtc_setdatetime(FAR const struct tm *tp); #endif +#ifdef CONFIG_RTC_ALARM /**************************************************************************** * Name: stm32l4_rtc_setalarm * * Description: - * Set up an alarm. + * Set an alarm to an asbolute time using associated hardware. * * Input Parameters: - * tp - the time to set the alarm - * callback - the function to call when the alarm expires. + * alminfo - Information about the alarm configuration. * * Returned Value: * Zero (OK) on success; a negated errno on failure * ****************************************************************************/ -#ifdef CONFIG_RTC_ALARM -struct timespec; -int stm32l4_rtc_setalarm(FAR const struct timespec *tp, alarmcb_t callback); -#endif +int stm32l4_rtc_setalarm(FAR struct alm_setalarm_s *alminfo); /**************************************************************************** * Name: stm32l4_rtc_cancelalarm * * Description: - * Cancel a pending alarm alarm + * Cancel an alaram. * * Input Parameters: - * none + * alarmid - Identifies the alarm to be cancelled * * Returned Value: * Zero (OK) on success; a negated errno on failure * ****************************************************************************/ -#ifdef CONFIG_RTC_ALARM -int stm32l4_rtc_cancelalarm(void); -#endif +int stm32l4_rtc_cancelalarm(enum alm_id_e alarmid); +#endif /* CONFIG_RTC_ALARM */ /**************************************************************************** * Name: stm32l4_rtc_lowerhalf diff --git a/arch/arm/src/stm32l4/stm32l4_rtc_lowerhalf.c b/arch/arm/src/stm32l4/stm32l4_rtc_lowerhalf.c index 033a191e41..13f6553846 100644 --- a/arch/arm/src/stm32l4/stm32l4_rtc_lowerhalf.c +++ b/arch/arm/src/stm32l4/stm32l4_rtc_lowerhalf.c @@ -44,6 +44,7 @@ #include #include +#include #include #include @@ -54,10 +55,25 @@ #ifdef CONFIG_RTC_DRIVER +/**************************************************************************** + * Pre-processor Definitions + ****************************************************************************/ + +#define STM32_NALARMS 2 + /**************************************************************************** * Private Types ****************************************************************************/ +#ifdef CONFIG_RTC_ALARM +struct stm32l4_cbinfo_s +{ + volatile rtc_alarm_callback_t cb; /* Callback when the alarm expires */ + volatile FAR void *priv; /* Private argurment to accompany callback */ + uint8_t id; /* Identifies the alarm */ +}; +#endif + /* This is the private type for the RTC state. It must be cast compatible * with struct rtc_lowerhalf_s. */ @@ -73,6 +89,12 @@ struct stm32l4_lowerhalf_s /* Data following is private to this driver and not visible outside of * this file. */ + +#ifdef CONFIG_RTC_ALARM + /* Alarm callback information */ + + struct stm32l4_cbinfo_s cbinfo[STM32_NALARMS]; +#endif }; /**************************************************************************** @@ -85,6 +107,15 @@ static int stm32l4_rdtime(FAR struct rtc_lowerhalf_s *lower, static int stm32l4_settime(FAR struct rtc_lowerhalf_s *lower, FAR const struct rtc_time *rtctime); +#ifdef CONFIG_RTC_ALARM +static int stm32l4_setalarm(FAR struct rtc_lowerhalf_s *lower, + FAR const struct lower_setalarm_s *alarminfo); +static int stm32l4_setrelative(FAR struct rtc_lowerhalf_s *lower, + FAR const struct lower_setrelative_s *alarminfo); +static int stm32l4_cancelalarm(FAR struct rtc_lowerhalf_s *lower, + int alarmid); +#endif + /**************************************************************************** * Private Data ****************************************************************************/ @@ -96,9 +127,9 @@ static const struct rtc_ops_s g_rtc_ops = .rdtime = stm32l4_rdtime, .settime = stm32l4_settime, #ifdef CONFIG_RTC_ALARM - .setalarm = NULL, - .setrelative = NULL, - .cancelalarm = NULL, + .setalarm = stm32l4_setalarm, + .setrelative = stm32l4_setrelative, + .cancelalarm = stm32l4_cancelalarm, #endif #ifdef CONFIG_RTC_IOCTL .ioctl = NULL, @@ -120,7 +151,56 @@ static struct stm32l4_lowerhalf_s g_rtc_lowerhalf = ****************************************************************************/ /**************************************************************************** - * Name: stm32l4_rdtime + * Name: stm32l4_alarm_callback + * + * Description: + * This is the function that is called from the RTC driver when the alarm + * goes off. It just invokes the upper half drivers callback. + * + * Input Parameters: + * None + * + * Returned Value: + * None + * + ****************************************************************************/ + +#ifdef CONFIG_RTC_ALARM +static void stm32l4_alarm_callback(FAR void *arg, unsigned int alarmid) +{ + FAR struct stm32l4_lowerhalf_s *lower; + FAR struct stm32l4_cbinfo_s *cbinfo; + rtc_alarm_callback_t cb; + FAR void *priv; + + DEBUGASSERT(priv != NULL); + DEBUGASSERT(alarmid == RTC_ALARMA || alarmid == RTC_ALARMB); + + lower = (struct stm32l4_lowerhalf_s *)arg; + cbinfo = &lower->cbinfo[alarmid]; + + /* Sample and clear the callback information to minimize the window in + * time in which race conditions can occur. + */ + + cb = (rtc_alarm_callback_t)cbinfo->cb; + priv = (FAR void *)cbinfo->priv; + + cbinfo->cb = NULL; + cbinfo->priv = NULL; + + /* Perform the callback */ + + if (cb != NULL) + { + cb(priv, alarmid); + } + +} +#endif /* CONFIG_RTC_ALARM */ + +/**************************************************************************** + * Name: stm32_rdtime * * Description: * Implements the rdtime() method of the RTC driver interface @@ -143,6 +223,7 @@ static int stm32l4_rdtime(FAR struct rtc_lowerhalf_s *lower, */ return up_rtc_getdatetime((FAR struct tm *)rtctime); + } /**************************************************************************** @@ -164,13 +245,197 @@ static int stm32l4_rdtime(FAR struct rtc_lowerhalf_s *lower, static int stm32l4_settime(FAR struct rtc_lowerhalf_s *lower, FAR const struct rtc_time *rtctime) { - /* This operation depends on the fact that struct rtc_time is cast + /* This operation depends on the fact that struct rtc_time is cast * compatible with struct tm. */ return stm32l4_rtc_setdatetime((FAR const struct tm *)rtctime); } +/**************************************************************************** + * Name: stm32l4_setalarm + * + * Description: + * Set a new alarm. This function implements the setalarm() method of the + * RTC driver interface + * + * Input Parameters: + * lower - A reference to RTC lower half driver state structure + * alarminfo - Provided information needed to set the alarm + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned + * on any failure. + * + ****************************************************************************/ + +#ifdef CONFIG_RTC_ALARM +static int stm32l4_setalarm(FAR struct rtc_lowerhalf_s *lower, + FAR const struct lower_setalarm_s *alarminfo) +{ + FAR struct stm32l4_lowerhalf_s *priv; + FAR struct stm32l4_cbinfo_s *cbinfo; + struct alm_setalarm_s lowerinfo; + int ret = -EINVAL; + + /* ID0-> Alarm A; ID1 -> Alarm B */ + + DEBUGASSERT(lower != NULL && alarminfo != NULL); + DEBUGASSERT(alarminfo->id == RTC_ALARMA || alarminfo->id == RTC_ALARMB); + priv = (FAR struct stm32l4_lowerhalf_s *)lower; + + if (alarminfo->id == RTC_ALARMA || alarminfo->id == RTC_ALARMB) + { + /* Remember the callback information */ + + cbinfo = &priv->cbinfo[alarminfo->id]; + cbinfo->cb = alarminfo->cb; + cbinfo->priv = alarminfo->priv; + cbinfo->id = alarminfo->id; + + /* Set the alarm */ + + lowerinfo.as_id = alarminfo->id; + lowerinfo.as_cb = stm32l4_alarm_callback; + lowerinfo.as_arg = priv; + memcpy(&lowerinfo.as_time, &alarminfo->time, sizeof(struct tm)); + + /* And set the alarm */ + + ret = stm32l4_rtc_setalarm(&lowerinfo); + if (ret < 0) + { + cbinfo->cb = NULL; + cbinfo->priv = NULL; + } + } + + + + return ret; +} +#endif + +/**************************************************************************** + * Name: stm32l4_setrelative + * + * Description: + * Set a new alarm relative to the current time. This function implements + * the setrelative() method of the RTC driver interface + * + * Input Parameters: + * lower - A reference to RTC lower half driver state structure + * alarminfo - Provided information needed to set the alarm + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned + * on any failure. + * + ****************************************************************************/ + +#ifdef CONFIG_RTC_ALARM +static int stm32l4_setrelative(FAR struct rtc_lowerhalf_s *lower, + FAR const struct lower_setrelative_s *alarminfo) +{ + struct lower_setalarm_s setalarm; + struct tm time; + time_t seconds; + int ret = -EINVAL; + + ASSERT(lower != NULL && alarminfo != NULL); + DEBUGASSERT(alarminfo->id == RTC_ALARMA || alarminfo->id == RTC_ALARMB); + + if ((alarminfo->id == RTC_ALARMA || alarminfo->id == RTC_ALARMB) && + alarminfo->reltime > 0) + { + /* Disable preemption while we do this so that we don't have to worry + * about being suspended and working on an old time. + */ + + sched_lock(); + + /* Get the current time in broken out format */ + + ret = up_rtc_getdatetime(&time); + if (ret >= 0) + { + /* Convert to seconds since the epoch */ + + seconds = mktime(&time); + + /* Add the seconds offset. Add one to the number of seconds + * because we are unsure of the phase of the timer. + */ + + seconds += (alarminfo->reltime + 1); + + /* And convert the time back to broken out format */ + + (void)gmtime_r(&seconds, (FAR struct tm *)&setalarm.time); + + /* The set the alarm using this absolute time */ + + setalarm.id = alarminfo->id; + setalarm.cb = alarminfo->cb; + setalarm.priv = alarminfo->priv; + + ret = stm32l4_setalarm(lower, &setalarm); + } + + sched_unlock(); + } + + return ret; +} +#endif + +/**************************************************************************** + * Name: stm32l4_cancelalarm + * + * Description: + * Cancel the current alarm. This function implements the cancelalarm() + * method of the RTC driver interface + * + * Input Parameters: + * lower - A reference to RTC lower half driver state structure + * alarminfo - Provided information needed to set the alarm + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned + * on any failure. + * + ****************************************************************************/ + +#ifdef CONFIG_RTC_ALARM +static int stm32l4_cancelalarm(FAR struct rtc_lowerhalf_s *lower, int alarmid) +{ + FAR struct stm32l4_lowerhalf_s *priv; + FAR struct stm32l4_cbinfo_s *cbinfo; + int ret = -EINVAL; + + DEBUGASSERT(lower != NULL); + DEBUGASSERT(alarmid == RTC_ALARMA || alarmid == RTC_ALARMB); + priv = (FAR struct stm32l4_lowerhalf_s *)lower; + + /* ID0-> Alarm A; ID1 -> Alarm B */ + + if (alarmid == RTC_ALARMA || alarmid == RTC_ALARMB) + { + /* Nullify callback information to reduce window for race conditions */ + + cbinfo = &priv->cbinfo[alarmid]; + cbinfo->cb = NULL; + cbinfo->priv = NULL; + + /* Then cancel the alarm */ + + ret = stm32l4_rtc_cancelalarm((enum alm_id_e)alarmid); + } + + return ret; +} +#endif + /**************************************************************************** * Public Functions ****************************************************************************/ diff --git a/arch/arm/src/stm32l4/stm32l4_rtcc.c b/arch/arm/src/stm32l4/stm32l4_rtcc.c index 1b7bb5f12a..befe1043a2 100644 --- a/arch/arm/src/stm32l4/stm32l4_rtcc.c +++ b/arch/arm/src/stm32l4/stm32l4_rtcc.c @@ -42,6 +42,7 @@ #include "chip.h" #include +#include #include #include #include @@ -65,7 +66,10 @@ ************************************************************************************/ /* Configuration ********************************************************************/ -/* This RTC implementation supports only date/time RTC hardware */ +/* This RTC implementation supports + * - date/time RTC hardware + * - extended functions Alarm A and B + * */ #ifndef CONFIG_RTC_DATETIME # error "CONFIG_RTC_DATETIME must be set to use this driver" @@ -98,6 +102,21 @@ #define RTC_MAGIC CONFIG_RTC_MAGIC #define RTC_MAGIC_REG STM32L4_RTC_BKR(CONFIG_RTC_MAGIC_REG) +/* BCD conversions */ + +#define rtc_reg_tr_bin2bcd(tp) \ + ((rtc_bin2bcd((tp)->tm_sec) << RTC_TR_SU_SHIFT) | \ + (rtc_bin2bcd((tp)->tm_min) << RTC_TR_MNU_SHIFT) | \ + (rtc_bin2bcd((tp)->tm_hour) << RTC_TR_HU_SHIFT)) + +#define rtc_reg_alrmr_bin2bcd(tm) \ + ((rtc_bin2bcd((tm)->tm_sec) << RTC_ALRMR_SU_SHIFT) | \ + (rtc_bin2bcd((tm)->tm_min) << RTC_ALRMR_MNU_SHIFT) | \ + (rtc_bin2bcd((tm)->tm_hour) << RTC_ALRMR_HU_SHIFT)) + +#define RTC_ALRMR_ENABLE (0) + + /* Debug ****************************************************************************/ #ifdef CONFIG_DEBUG_RTC @@ -113,13 +132,27 @@ #endif /************************************************************************************ - * Private Data + * Private Types ************************************************************************************/ -/* Callback to use when the alarm expires */ +#ifdef CONFIG_RTC_ALARM +typedef unsigned int rtc_alarmreg_t; + +struct alm_cbinfo_s +{ + volatile alm_callback_t ac_cb; /* Client callback function */ + volatile FAR void *ac_arg; /* Argument to pass with the callback function */ +}; +#endif + +/************************************************************************************ + * Private Data + ************************************************************************************/ #ifdef CONFIG_RTC_ALARM -static alarmcb_t g_alarmcb; +/* Callback to use when an EXTI is activated */ + +static struct alm_cbinfo_s g_alarmcb[RTC_ALARM_LAST]; #endif /************************************************************************************ @@ -130,6 +163,17 @@ static alarmcb_t g_alarmcb; volatile bool g_rtc_enabled = false; +/************************************************************************************ + * Private Function Prototypes + ************************************************************************************/ + +#ifdef CONFIG_RTC_ALARM +static int rtchw_check_alrawf(void); +static int rtchw_check_alrbwf(void); +static int rtchw_set_alrmar(rtc_alarmreg_t alarmreg); +static int rtchw_set_alrmbr(rtc_alarmreg_t alarmreg); +#endif + /************************************************************************************ * Private Functions ************************************************************************************/ @@ -166,7 +210,7 @@ static void rtc_dumpregs(FAR const char *msg) rtclldbg(" TSDR: %08x\n", getreg32(STM32L4_RTC_TSDR)); rtclldbg(" TSSSR: %08x\n", getreg32(STM32L4_RTC_TSSSR)); rtclldbg(" CALR: %08x\n", getreg32(STM32L4_RTC_CALR)); - rtclldbg(" TAFCR: %08x\n", getreg32(STM32L4_RTC_TAMPCR_OFFSET)); + rtclldbg(" TAMPCR: %08x\n", getreg32(STM32L4_RTC_TAMPCR)); rtclldbg("ALRMASSR: %08x\n", getreg32(STM32L4_RTC_ALRMASSR)); rtclldbg("ALRMBSSR: %08x\n", getreg32(STM32L4_RTC_ALRMBSSR)); rtclldbg("MAGICREG: %08x\n", getreg32(RTC_MAGIC_REG)); @@ -193,12 +237,18 @@ static void rtc_dumpregs(FAR const char *msg) static void rtc_dumptime(FAR const struct tm *tp, FAR const char *msg) { rtclldbg("%s:\n", msg); +#if 0 rtclldbg(" tm_sec: %08x\n", tp->tm_sec); rtclldbg(" tm_min: %08x\n", tp->tm_min); rtclldbg(" tm_hour: %08x\n", tp->tm_hour); rtclldbg(" tm_mday: %08x\n", tp->tm_mday); rtclldbg(" tm_mon: %08x\n", tp->tm_mon); rtclldbg(" tm_year: %08x\n", tp->tm_year); +#else + rtclldbg(" tm: %04d-%02d-%02d %02d:%02d:%02d\n", + tp->tm_year+1900, tp->tm_mon+1, tp->tm_mday, + tp->tm_hour, tp->tm_min, tp->tm_sec); +#endif } #else # define rtc_dumptime(tp, msg) @@ -533,10 +583,10 @@ static void rtc_resume(void) } /************************************************************************************ - * Name: rtc_interrupt + * Name: stm32l4_rtc_alarm_handler * * Description: - * RTC interrupt service routine + * RTC ALARM interrupt service routine through the EXTI line * * Input Parameters: * irq - The IRQ number that generated the interrupt @@ -548,10 +598,223 @@ static void rtc_resume(void) ************************************************************************************/ #ifdef CONFIG_RTC_ALARM -static int rtc_interrupt(int irq, void *context) +static int stm32l4_rtc_alarm_handler(int irq, void *context) { -#warning "Missing logic" - return OK; + FAR struct alm_cbinfo_s *cbinfo; + alm_callback_t cb; + FAR void *arg; + uint32_t isr; + uint32_t cr; + int ret = OK; + + isr = getreg32(STM32L4_RTC_ISR); + + /* Check for EXTI from Alarm A or B and handle according */ + + if ((isr & RTC_ISR_ALRAF) != 0) + { + cr = getreg32(STM32L4_RTC_CR); + if ((cr & RTC_CR_ALRAIE) != 0) + { + cbinfo = &g_alarmcb[RTC_ALARMA]; + if (cbinfo->ac_cb != NULL) + { + /* Alarm A callback */ + + cb = cbinfo->ac_cb; + arg = (FAR void *)cbinfo->ac_arg; + + cbinfo->ac_cb = NULL; + cbinfo->ac_arg = NULL; + + cb(arg, RTC_ALARMA); + } + + isr = getreg32(STM32L4_RTC_ISR) & ~RTC_ISR_ALRAF; + putreg32(isr, STM32L4_RTC_CR); + } + } + + if ((isr & RTC_ISR_ALRBF) != 0) + { + cr = getreg32(STM32L4_RTC_CR); + if ((cr & RTC_CR_ALRBIE) != 0) + { + cbinfo = &g_alarmcb[RTC_ALARMB]; + if (cbinfo->ac_cb != NULL) + { + /* Alarm B callback */ + + cb = cbinfo->ac_cb; + arg = (FAR void *)cbinfo->ac_arg; + + cbinfo->ac_cb = NULL; + cbinfo->ac_arg = NULL; + + cb(arg, RTC_ALARMB); + } + + isr = getreg32(STM32L4_RTC_ISR) & ~RTC_ISR_ALRBF; + putreg32(isr, STM32L4_RTC_CR); + } + } + + return ret; +} +#endif + +/************************************************************************************ + * Name: rtchw_check_alrXwf X= a or B + * + * Description: + * Check registers + * + * Input Parameters: + * None + * + * Returned Value: + * Zero (OK) on success; a negated errno on failure + * + ************************************************************************************/ + +#ifdef CONFIG_RTC_ALARM +static int rtchw_check_alrawf(void) +{ + volatile uint32_t timeout; + uint32_t regval; + int ret = -ETIMEDOUT; + + /* Check RTC_ISR ALRAWF for access to alarm register, + * Can take 2 RTCCLK cycles or timeout + * CubeMX use GetTick. + */ + + for (timeout = 0; timeout < INITMODE_TIMEOUT; timeout++) + { + regval = getreg32(STM32L4_RTC_ISR); + if ((regval & RTC_ISR_ALRAWF) != 0) + { + ret = OK; + break; + } + } + + return ret; +} +#endif + +#ifdef CONFIG_RTC_ALARM +static int rtchw_check_alrbwf(void) +{ + volatile uint32_t timeout; + uint32_t regval; + int ret = -ETIMEDOUT; + + /* Check RTC_ISR ALRAWF for access to alarm register, + * can take 2 RTCCLK cycles or timeout + * CubeMX use GetTick. + */ + + for (timeout = 0; timeout < INITMODE_TIMEOUT; timeout++) + { + regval = getreg32(STM32L4_RTC_ISR); + if ((regval & RTC_ISR_ALRBWF) != 0) + { + ret = OK; + break; + } + } + + return ret; +} +#endif + +/************************************************************************************ + * Name: stm32_rtchw_set_alrmXr X is a or b + * + * Description: + * Set the alarm (A or B) hardware registers, using the required hardware access + * protocol + * + * Input Parameters: + * alarmreg - the register + * + * Returned Value: + * Zero (OK) on success; a negated errno on failure + * + ************************************************************************************/ + +#ifdef CONFIG_RTC_ALARM +static int rtchw_set_alrmar(rtc_alarmreg_t alarmreg) +{ + int ret = -EBUSY; + + /* Need to allow RTC register write + * Disable the write protection for RTC registers + */ + + rtc_wprunlock(); + + /* Disable RTC alarm A & Interrupt A */ + + modifyreg32(STM32L4_RTC_CR, (RTC_CR_ALRAE | RTC_CR_ALRAIE), 0); + + ret = rtchw_check_alrawf(); + if (ret != OK) + { + goto errout_with_wprunlock; + } + + /* Set the RTC Alarm A register */ + + putreg32(alarmreg, STM32L4_RTC_ALRMAR); + rtcvdbg(" TR: %08x ALRMAR: %08x\n", + getreg32(STM32L4_RTC_TR), getreg32(STM32L4_RTC_ALRMAR)); + + /* Enable RTC alarm A */ + + modifyreg32(STM32L4_RTC_CR, 0, (RTC_CR_ALRAE | RTC_CR_ALRAIE)); + +errout_with_wprunlock: + rtc_wprlock(); + return ret; +} +#endif + +#ifdef CONFIG_RTC_ALARM +static int rtchw_set_alrmbr(rtc_alarmreg_t alarmreg) +{ + int ret = -EBUSY; + + /* Need to allow RTC register write + * Disable the write protection for RTC registers + */ + + rtc_wprunlock(); + + /* Disable RTC alarm B & Interrupt B */ + + modifyreg32(STM32L4_RTC_CR, (RTC_CR_ALRBE | RTC_CR_ALRBIE), 0); + + ret = rtchw_check_alrbwf(); + if (ret != OK) + { + goto rtchw_set_alrmbr_exit; + } + + /* Set the RTC Alarm register */ + + putreg32(alarmreg, STM32L4_RTC_ALRMBR); + rtcvdbg(" TR: %08x ALRMBR: %08x\n", + getreg32(STM32L4_RTC_TR), getreg32(STM32L4_RTC_ALRMBR)); + + /* Enable RTC alarm B */ + + modifyreg32(STM32L4_RTC_CR, 0, (RTC_CR_ALRBE | RTC_CR_ALRBIE)); + +rtchw_set_alrmbr_exit: + rtc_wprlock(); + return ret; } #endif @@ -605,8 +868,8 @@ int up_rtc_initialize(void) modifyreg32(STM32L4_RCC_BDCR, RCC_BDCR_BDRST, 0); /* Some boards do not have the external 32khz oscillator installed, for those - * boards we must fallback to the crummy internal RC clock or the external high - * rate clock + * boards we must fall back to the crummy internal RC clock or the external high + * rate clock (which for the STM32L4 must not exceed 4MHz). */ #ifdef CONFIG_STM32L4_RTC_HSECLOCK @@ -755,23 +1018,20 @@ int up_rtc_initialize(void) return -ETIMEDOUT; } +#ifdef CONFIG_RTC_ALARM /* Configure RTC interrupt to catch alarm interrupts. All RTC interrupts are * connected to the EXTI controller. To enable the RTC Alarm interrupt, the * following sequence is required: * * 1. Configure and enable the EXTI Line 18 in interrupt mode and select the * rising edge sensitivity. + * EXTI line 19 RTC Tamper or Timestamp or CSS_LSE + * EXTI line 20 RTC Wakeup * 2. Configure and enable the RTC_Alarm IRQ channel in the NVIC. * 3. Configure the RTC to generate RTC alarms (Alarm A or Alarm B). */ -#ifdef CONFIG_RTC_ALARM -# warning "Missing EXTI setup logic" - - /* Then attach the ALARM interrupt handler */ - - irq_attach(STM32L4_IRQ_RTC_WKUP, rtc_interrupt); - up_enable_irq(STM32L4_IRQ_RTC_WKUP); + stm32l4_exti_alarm(true, false, true, stm32l4_rtc_alarm_handler); #endif g_rtc_enabled = true; @@ -1029,11 +1289,10 @@ int up_rtc_settime(FAR const struct timespec *tp) * Name: stm32l4_rtc_setalarm * * Description: - * Set up an alarm. Up to two alarms can be supported (ALARM A and ALARM B). + * Set an alarm to an absolute time using associated hardware. * * Input Parameters: - * tp - the time to set the alarm - * callback - the function to call when the alarm expires. + * alminfo - Information about the alarm configuration. * * Returned Value: * Zero (OK) on success; a negated errno on failure @@ -1041,28 +1300,163 @@ int up_rtc_settime(FAR const struct timespec *tp) ************************************************************************************/ #ifdef CONFIG_RTC_ALARM -int stm32l4_rtc_setalarm(FAR const struct timespec *tp, alarmcb_t callback) +int stm32l4_rtc_setalarm(FAR struct alm_setalarm_s *alminfo) { - int ret = -EBUSY; + FAR struct alm_cbinfo_s *cbinfo; + rtc_alarmreg_t alarmreg; + int ret = -EINVAL; + + ASSERT(alminfo != NULL); + DEBUGASSERT(RTC_ALARM_LAST > alminfo->as_id); + + /* REVISIT: Should test that the time is in the future */ - /* Is there already something waiting on the ALARM? */ + rtc_dumptime(&alminfo->as_time, "New alarm time"); - if (g_alarmcb == NULL) + /* Break out the values to the HW alarm register format */ + + alarmreg = rtc_reg_alrmr_bin2bcd(&alminfo->as_time); + + /* Set the alarm in hardware and enable interrupts */ + + switch (alminfo->as_id) { - /* No.. Save the callback function pointer */ + case RTC_ALARMA: + { + cbinfo = &g_alarmcb[RTC_ALARMA]; + cbinfo->ac_cb = alminfo->as_cb; + cbinfo->ac_arg = alminfo->as_arg; - g_alarmcb = callback; + ret = rtchw_set_alrmar(alarmreg | RTC_ALRMR_ENABLE); + if (ret < 0) + { + cbinfo->ac_cb = NULL; + cbinfo->ac_arg = NULL; + } + } + break; - /* Break out the time values */ -#warning "Missing logic" + case RTC_ALARMB: + { + cbinfo = &g_alarmcb[RTC_ALARMB]; + cbinfo->ac_cb = alminfo->as_cb; + cbinfo->ac_arg = alminfo->as_arg; + + ret = rtchw_set_alrmbr(alarmreg | RTC_ALRMR_ENABLE); + if (ret < 0) + { + cbinfo->ac_cb = NULL; + cbinfo->ac_arg = NULL; + } + } + break; + + default: + rtcvdbg("ERROR: Invalid ALARM%d\n", alminfo->as_id); + break; + } + + return ret; +} +#endif + +/**************************************************************************** + * Name: stm32l4_rtc_cancelalarm + * + * Description: + * Cancel an alaram. + * + * Input Parameters: + * alarmid - Identifies the alarm to be cancelled + * + * Returned Value: + * Zero (OK) on success; a negated errno on failure + * + ****************************************************************************/ + +#ifdef CONFIG_RTC_ALARM +int stm32l4_rtc_cancelalarm(enum alm_id_e alarmid) +{ + int ret = -EINVAL; + + DEBUGASSERT(RTC_ALARM_LAST > alarmid); + + /* Cancel the alarm in hardware and disable interrupts */ + + switch (alarmid) + { + case RTC_ALARMA: + { + /* Cancel the global callback function */ - /* The set the alarm */ -#warning "Missing logic" + g_alarmcb[alarmid].ac_cb = NULL; + g_alarmcb[alarmid].ac_arg = NULL; + /* Need to follow RTC register wrote protection. + * Disable the write protection for RTC registers + */ + + rtc_wprunlock(); + + /* Disable RTC alarm and interrupt */ + + modifyreg32(STM32L4_RTC_CR, (RTC_CR_ALRAE | RTC_CR_ALRAIE), 0); + + ret = rtchw_check_alrawf(); + if (ret < 0) + { + goto errout_with_wprunlock; + } + + /* Unset the alarm */ + + putreg32(-1, STM32L4_RTC_ALRMAR); + rtc_wprlock(); + ret = OK; + } + break; + + case RTC_ALARMB: + { + /* Cancel the global callback function */ + + g_alarmcb[alarmid].ac_cb = NULL; + g_alarmcb[alarmid].ac_arg = NULL; + + /* Need to follow RTC register wrote protection. + * Disable the write protection for RTC registers + */ + + rtc_wprunlock(); + + /* Disable RTC alarm and interrupt */ + + modifyreg32(STM32L4_RTC_CR, (RTC_CR_ALRBE | RTC_CR_ALRBIE), 0); + + ret = rtchw_check_alrbwf(); + if (ret < 0) + { + goto errout_with_wprunlock; + } + + /* Unset the alarm */ + + putreg32(-1, STM32L4_RTC_ALRMBR); + rtc_wprlock(); ret = OK; + } + break; + + default: + rtcvdbg("ERROR: Invalid ALARM%d\n", alarmid); + break; } return ret; + +errout_with_wprunlock: + rtc_wprlock(); + return ret; } #endif -- GitLab From 67b1f89159929ca145f96dfbd658f109b9c1306a Mon Sep 17 00:00:00 2001 From: ziggurat29 Date: Thu, 5 May 2016 11:22:09 -0500 Subject: [PATCH 114/307] address thread safety in lower half driver with a driver mutex acquired/released in public api --- arch/arm/src/stm32l4/stm32l4_rtc_lowerhalf.c | 51 ++++++++++++++++++-- 1 file changed, 46 insertions(+), 5 deletions(-) diff --git a/arch/arm/src/stm32l4/stm32l4_rtc_lowerhalf.c b/arch/arm/src/stm32l4/stm32l4_rtc_lowerhalf.c index 13f6553846..bb0b7551fd 100644 --- a/arch/arm/src/stm32l4/stm32l4_rtc_lowerhalf.c +++ b/arch/arm/src/stm32l4/stm32l4_rtc_lowerhalf.c @@ -34,8 +34,6 @@ * ****************************************************************************/ -/* REVISIT: This driver is *not* thread-safe! */ - /**************************************************************************** * Included Files ****************************************************************************/ @@ -90,6 +88,8 @@ struct stm32l4_lowerhalf_s * this file. */ + sem_t devsem; /* Threads can only exclusively access the RTC */ + #ifdef CONFIG_RTC_ALARM /* Alarm callback information */ @@ -218,12 +218,25 @@ static void stm32l4_alarm_callback(FAR void *arg, unsigned int alarmid) static int stm32l4_rdtime(FAR struct rtc_lowerhalf_s *lower, FAR struct rtc_time *rtctime) { + FAR struct stm32l4_lowerhalf_s *priv; + int ret; + + priv = (FAR struct stm32l4_lowerhalf_s *)lower; + + if (sem_wait(&priv->devsem) != OK) + { + return -errno; + } + /* This operation depends on the fact that struct rtc_time is cast * compatible with struct tm. */ - return up_rtc_getdatetime((FAR struct tm *)rtctime); + ret = up_rtc_getdatetime((FAR struct tm *)rtctime); + sem_post(&priv->devsem); + + return ret; } /**************************************************************************** @@ -245,11 +258,25 @@ static int stm32l4_rdtime(FAR struct rtc_lowerhalf_s *lower, static int stm32l4_settime(FAR struct rtc_lowerhalf_s *lower, FAR const struct rtc_time *rtctime) { + FAR struct stm32l4_lowerhalf_s *priv; + int ret; + + priv = (FAR struct stm32l4_lowerhalf_s *)lower; + + if (sem_wait(&priv->devsem) != OK) + { + return -errno; + } + /* This operation depends on the fact that struct rtc_time is cast * compatible with struct tm. */ - return stm32l4_rtc_setdatetime((FAR const struct tm *)rtctime); + ret = stm32l4_rtc_setdatetime((FAR const struct tm *)rtctime); + + sem_post(&priv->devsem); + + return ret; } /**************************************************************************** @@ -284,6 +311,11 @@ static int stm32l4_setalarm(FAR struct rtc_lowerhalf_s *lower, DEBUGASSERT(alarminfo->id == RTC_ALARMA || alarminfo->id == RTC_ALARMB); priv = (FAR struct stm32l4_lowerhalf_s *)lower; + if (sem_wait(&priv->devsem) != OK) + { + return -errno; + } + if (alarminfo->id == RTC_ALARMA || alarminfo->id == RTC_ALARMB) { /* Remember the callback information */ @@ -310,7 +342,7 @@ static int stm32l4_setalarm(FAR struct rtc_lowerhalf_s *lower, } } - + sem_post(&priv->devsem); return ret; } @@ -417,6 +449,11 @@ static int stm32l4_cancelalarm(FAR struct rtc_lowerhalf_s *lower, int alarmid) DEBUGASSERT(alarmid == RTC_ALARMA || alarmid == RTC_ALARMB); priv = (FAR struct stm32l4_lowerhalf_s *)lower; + if (sem_wait(&priv->devsem) != OK) + { + return -errno; + } + /* ID0-> Alarm A; ID1 -> Alarm B */ if (alarmid == RTC_ALARMA || alarmid == RTC_ALARMB) @@ -432,6 +469,8 @@ static int stm32l4_cancelalarm(FAR struct rtc_lowerhalf_s *lower, int alarmid) ret = stm32l4_rtc_cancelalarm((enum alm_id_e)alarmid); } + sem_post(&priv->devsem); + return ret; } #endif @@ -464,6 +503,8 @@ static int stm32l4_cancelalarm(FAR struct rtc_lowerhalf_s *lower, int alarmid) FAR struct rtc_lowerhalf_s *stm32l4_rtc_lowerhalf(void) { + sem_init(&g_rtc_lowerhalf.devsem, 0, 1); + return (FAR struct rtc_lowerhalf_s *)&g_rtc_lowerhalf; } -- GitLab From e0371de24dac83fd30add51ae6d51ee2400d5a8e Mon Sep 17 00:00:00 2001 From: ziggurat29 Date: Thu, 5 May 2016 11:28:41 -0500 Subject: [PATCH 115/307] correct the RTC_ALRMR_ENABLE value, it needs to ignore the date/dow component since that is not set. Also, the prescaler value for HSE (which presumes 1 MHz, anyway) had transposed digits. --- arch/arm/src/stm32l4/stm32l4_rtcc.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/arm/src/stm32l4/stm32l4_rtcc.c b/arch/arm/src/stm32l4/stm32l4_rtcc.c index befe1043a2..072da11a8f 100644 --- a/arch/arm/src/stm32l4/stm32l4_rtcc.c +++ b/arch/arm/src/stm32l4/stm32l4_rtcc.c @@ -114,8 +114,8 @@ (rtc_bin2bcd((tm)->tm_min) << RTC_ALRMR_MNU_SHIFT) | \ (rtc_bin2bcd((tm)->tm_hour) << RTC_ALRMR_HU_SHIFT)) -#define RTC_ALRMR_ENABLE (0) - +/* need to ignore DATE/DOW part of alarm; rtc_reg_alrmr_bin2bcd only encodes hms */ +#define RTC_ALRMR_ENABLE (0x80000000) /* Debug ****************************************************************************/ @@ -527,7 +527,7 @@ static int rtc_setup(void) * timer - which is pretty close. */ - putreg32(((uint32_t)7182 << RTC_PRER_PREDIV_S_SHIFT) | + putreg32(((uint32_t)7812 << RTC_PRER_PREDIV_S_SHIFT) | ((uint32_t)0x7f << RTC_PRER_PREDIV_A_SHIFT), STM32L4_RTC_PRER); #else -- GitLab From dfff78d7abea86116945d498d5ef2d60d09b5f9b Mon Sep 17 00:00:00 2001 From: "Paul A. Patience" Date: Thu, 5 May 2016 12:29:43 -0400 Subject: [PATCH 116/307] userleds: Don't select ARCH_LEDS with BOARD_CUSTOM_LEDS, otherwise we can't use the board_userled* functions --- configs/Kconfig | 1 - 1 file changed, 1 deletion(-) diff --git a/configs/Kconfig b/configs/Kconfig index 7b9618bfda..17d7a9ba85 100644 --- a/configs/Kconfig +++ b/configs/Kconfig @@ -1274,7 +1274,6 @@ config BOARD_CUSTOM_LEDS bool "Custom board LEDs" default n select ARCH_HAVE_LEDS - select ARCH_LEDS config BOARD_CUSTOM_BUTTONS bool "Custom board buttons" -- GitLab From 0d659de226f418a482dd6898cfce5c9e4864345f Mon Sep 17 00:00:00 2001 From: ziggurat29 Date: Thu, 5 May 2016 11:39:19 -0500 Subject: [PATCH 117/307] fix nasty bug in ISR handler, where interrupt was not properly acknowleged (write to CR instead of ISR, as intended). Also, minor, set the LSI prescaler values more appropriately (though not critical since LSI is so low precision anyway). --- arch/arm/src/stm32l4/stm32l4_rtcc.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/arch/arm/src/stm32l4/stm32l4_rtcc.c b/arch/arm/src/stm32l4/stm32l4_rtcc.c index 072da11a8f..16a183e401 100644 --- a/arch/arm/src/stm32l4/stm32l4_rtcc.c +++ b/arch/arm/src/stm32l4/stm32l4_rtcc.c @@ -525,13 +525,20 @@ static int rtc_setup(void) #ifdef CONFIG_STM32L4_RTC_HSECLOCK /* For a 1 MHz clock this yields 0.9999360041 Hz on the second * timer - which is pretty close. + * NOTE: max HSE is 4 MHz if it is to be used with RTC */ putreg32(((uint32_t)7812 << RTC_PRER_PREDIV_S_SHIFT) | ((uint32_t)0x7f << RTC_PRER_PREDIV_A_SHIFT), STM32L4_RTC_PRER); -#else - /* Correct values for 32.768 KHz LSE clock and inaccurate LSI clock */ +#elif defined(CONFIG_STM32L4_RTC_LSICLOCK) + /* Suitable values for 32.000 KHz LSI clock (29.5 - 34 KHz, though) */ + + putreg32(((uint32_t)0xf9 << RTC_PRER_PREDIV_S_SHIFT) | + ((uint32_t)0x7f << RTC_PRER_PREDIV_A_SHIFT), + STM32L4_RTC_PRER); +#else /* defined(CONFIG_STM32L4_RTC_LSECLOCK) */ + /* Correct values for 32.768 KHz LSE clock */ putreg32(((uint32_t)0xff << RTC_PRER_PREDIV_S_SHIFT) | ((uint32_t)0x7f << RTC_PRER_PREDIV_A_SHIFT), @@ -631,7 +638,7 @@ static int stm32l4_rtc_alarm_handler(int irq, void *context) } isr = getreg32(STM32L4_RTC_ISR) & ~RTC_ISR_ALRAF; - putreg32(isr, STM32L4_RTC_CR); + putreg32(isr, STM32L4_RTC_ISR); } } @@ -655,7 +662,7 @@ static int stm32l4_rtc_alarm_handler(int irq, void *context) } isr = getreg32(STM32L4_RTC_ISR) & ~RTC_ISR_ALRBF; - putreg32(isr, STM32L4_RTC_CR); + putreg32(isr, STM32L4_RTC_ISR); } } @@ -1356,6 +1363,8 @@ int stm32l4_rtc_setalarm(FAR struct alm_setalarm_s *alminfo) break; } + rtc_dumpregs("After alarm setting"); + return ret; } #endif -- GitLab From 4e57c36a8c8eb92ebb62ab7fb799a1a7c910196c Mon Sep 17 00:00:00 2001 From: ziggurat29 Date: Thu, 5 May 2016 11:47:58 -0500 Subject: [PATCH 118/307] when setting an alarm, ensure that the respective alarm triggered flag is reset, because the alarms are edge-triggered interrupts --- arch/arm/src/stm32l4/stm32l4_rtcc.c | 30 +++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/arch/arm/src/stm32l4/stm32l4_rtcc.c b/arch/arm/src/stm32l4/stm32l4_rtcc.c index 16a183e401..423ed92dd8 100644 --- a/arch/arm/src/stm32l4/stm32l4_rtcc.c +++ b/arch/arm/src/stm32l4/stm32l4_rtcc.c @@ -636,10 +636,12 @@ static int stm32l4_rtc_alarm_handler(int irq, void *context) cb(arg, RTC_ALARMA); } - - isr = getreg32(STM32L4_RTC_ISR) & ~RTC_ISR_ALRAF; - putreg32(isr, STM32L4_RTC_ISR); } + + /* note, bits 8-13 do /not/ require the write enable procedure */ + + isr = getreg32(STM32L4_RTC_ISR) & ~RTC_ISR_ALRAF; + putreg32(isr, STM32L4_RTC_ISR); } if ((isr & RTC_ISR_ALRBF) != 0) @@ -660,10 +662,12 @@ static int stm32l4_rtc_alarm_handler(int irq, void *context) cb(arg, RTC_ALARMB); } - - isr = getreg32(STM32L4_RTC_ISR) & ~RTC_ISR_ALRBF; - putreg32(isr, STM32L4_RTC_ISR); } + + /* note, bits 8-13 do /not/ require the write enable procedure */ + + isr = getreg32(STM32L4_RTC_ISR) & ~RTC_ISR_ALRBF; + putreg32(isr, STM32L4_RTC_ISR); } return ret; @@ -754,6 +758,7 @@ static int rtchw_check_alrbwf(void) #ifdef CONFIG_RTC_ALARM static int rtchw_set_alrmar(rtc_alarmreg_t alarmreg) { + int isr; int ret = -EBUSY; /* Need to allow RTC register write @@ -778,6 +783,11 @@ static int rtchw_set_alrmar(rtc_alarmreg_t alarmreg) rtcvdbg(" TR: %08x ALRMAR: %08x\n", getreg32(STM32L4_RTC_TR), getreg32(STM32L4_RTC_ALRMAR)); + /* ensure Alarm A flag reset; this is edge triggered */ + + isr = getreg32(STM32L4_RTC_ISR) & ~RTC_ISR_ALRAF; + putreg32(isr, STM32L4_RTC_ISR); + /* Enable RTC alarm A */ modifyreg32(STM32L4_RTC_CR, 0, (RTC_CR_ALRAE | RTC_CR_ALRAIE)); @@ -791,6 +801,7 @@ errout_with_wprunlock: #ifdef CONFIG_RTC_ALARM static int rtchw_set_alrmbr(rtc_alarmreg_t alarmreg) { + int isr; int ret = -EBUSY; /* Need to allow RTC register write @@ -815,6 +826,11 @@ static int rtchw_set_alrmbr(rtc_alarmreg_t alarmreg) rtcvdbg(" TR: %08x ALRMBR: %08x\n", getreg32(STM32L4_RTC_TR), getreg32(STM32L4_RTC_ALRMBR)); + /* ensure Alarm B flag reset; this is edge triggered */ + + isr = getreg32(STM32L4_RTC_ISR) & ~RTC_ISR_ALRBF; + putreg32(isr, STM32L4_RTC_ISR); + /* Enable RTC alarm B */ modifyreg32(STM32L4_RTC_CR, 0, (RTC_CR_ALRBE | RTC_CR_ALRBIE)); @@ -1420,6 +1436,7 @@ int stm32l4_rtc_cancelalarm(enum alm_id_e alarmid) /* Unset the alarm */ putreg32(-1, STM32L4_RTC_ALRMAR); + modifyreg32(STM32L4_RTC_ISR, RTC_ISR_ALRAF, 0); rtc_wprlock(); ret = OK; } @@ -1451,6 +1468,7 @@ int stm32l4_rtc_cancelalarm(enum alm_id_e alarmid) /* Unset the alarm */ putreg32(-1, STM32L4_RTC_ALRMBR); + modifyreg32(STM32L4_RTC_ISR, RTC_ISR_ALRBF, 0); rtc_wprlock(); ret = OK; } -- GitLab From 050f5447824d0a5f1c44077721ecec7d67f116a6 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 5 May 2016 11:30:47 -0600 Subject: [PATCH 119/307] Fix typo in variable name in serial BREAK logic. Review other serial implementations for similar naming problems. --- arch/arm/src/dm320/dm320_serial.c | 2 ++ arch/arm/src/lpc214x/lpc214x_serial.c | 2 ++ arch/arm/src/lpc2378/lpc23xx_serial.c | 2 ++ arch/arm/src/lpc43xx/lpc43_serial.c | 2 ++ arch/arm/src/stm32/stm32_serial.c | 11 ++++++++--- arch/arm/src/stm32f7/stm32_serial.c | 11 ++++++++--- arch/arm/src/stm32l4/stm32l4_serial.c | 11 ++++++++--- drivers/serial/uart_16550.c | 2 ++ 8 files changed, 34 insertions(+), 9 deletions(-) diff --git a/arch/arm/src/dm320/dm320_serial.c b/arch/arm/src/dm320/dm320_serial.c index dcceafb28a..19e5c9d7bd 100644 --- a/arch/arm/src/dm320/dm320_serial.c +++ b/arch/arm/src/dm320/dm320_serial.c @@ -268,6 +268,7 @@ static inline void up_waittxready(struct up_dev_s *priv) static inline void up_enablebreaks(struct up_dev_s *priv, bool enable) { uint16_t lcr = up_serialin(priv, UART_LCR); + if (enable) { lcr |= UART_LCR_BOC; @@ -276,6 +277,7 @@ static inline void up_enablebreaks(struct up_dev_s *priv, bool enable) { lcr &= ~UART_LCR_BOC; } + up_serialout(priv, UART_LCR, lcr); } diff --git a/arch/arm/src/lpc214x/lpc214x_serial.c b/arch/arm/src/lpc214x/lpc214x_serial.c index 041f9b8c05..62b18ecfe3 100644 --- a/arch/arm/src/lpc214x/lpc214x_serial.c +++ b/arch/arm/src/lpc214x/lpc214x_serial.c @@ -272,6 +272,7 @@ static inline void up_waittxready(struct up_dev_s *priv) static inline void up_enablebreaks(struct up_dev_s *priv, bool enable) { uint8_t lcr = up_serialin(priv, LPC214X_UART_LCR_OFFSET); + if (enable) { lcr |= LPC214X_LCR_BREAK_ENABLE; @@ -280,6 +281,7 @@ static inline void up_enablebreaks(struct up_dev_s *priv, bool enable) { lcr &= ~LPC214X_LCR_BREAK_ENABLE; } + up_serialout(priv, LPC214X_UART_LCR_OFFSET, lcr); } diff --git a/arch/arm/src/lpc2378/lpc23xx_serial.c b/arch/arm/src/lpc2378/lpc23xx_serial.c index 389d713284..9650a0827a 100644 --- a/arch/arm/src/lpc2378/lpc23xx_serial.c +++ b/arch/arm/src/lpc2378/lpc23xx_serial.c @@ -290,6 +290,7 @@ static inline void up_waittxready(struct up_dev_s *priv) static inline void up_enablebreaks(struct up_dev_s *priv, bool enable) { uint8_t lcr = up_serialin(priv, UART_LCR_OFFSET); + if (enable) { lcr |= LCR_BREAK_ENABLE; @@ -298,6 +299,7 @@ static inline void up_enablebreaks(struct up_dev_s *priv, bool enable) { lcr &= ~LCR_BREAK_ENABLE; } + up_serialout(priv, UART_LCR_OFFSET, lcr); } diff --git a/arch/arm/src/lpc43xx/lpc43_serial.c b/arch/arm/src/lpc43xx/lpc43_serial.c index 0dda586af1..c12d65597b 100644 --- a/arch/arm/src/lpc43xx/lpc43_serial.c +++ b/arch/arm/src/lpc43xx/lpc43_serial.c @@ -551,6 +551,7 @@ static inline void up_restoreuartint(struct up_dev_s *priv, uint32_t ier) static inline void up_enablebreaks(struct up_dev_s *priv, bool enable) { uint32_t lcr = up_serialin(priv, LPC43_UART_LCR_OFFSET); + if (enable) { lcr |= UART_LCR_BRK; @@ -559,6 +560,7 @@ static inline void up_enablebreaks(struct up_dev_s *priv, bool enable) { lcr &= ~UART_LCR_BRK; } + up_serialout(priv, LPC43_UART_LCR_OFFSET, lcr); } diff --git a/arch/arm/src/stm32/stm32_serial.c b/arch/arm/src/stm32/stm32_serial.c index 2e11d52609..73039dcf6d 100644 --- a/arch/arm/src/stm32/stm32_serial.c +++ b/arch/arm/src/stm32/stm32_serial.c @@ -2060,8 +2060,11 @@ static int up_ioctl(struct file *filep, int cmd, unsigned long arg) #ifdef CONFIG_USART_BREAKS case TIOCSBRK: /* BSD compatibility: Turn break on, unconditionally */ { - irqstate_t flags = enter_critical_section(); - uint32_t cr2 = up_serialin(priv, STM32_USART_CR2_OFFSET); + uint32_t cr2; + irqstate_t flags; + + flags = enter_critical_section(); + cr2 = up_serialin(priv, STM32_USART_CR2_OFFSET); up_serialout(priv, STM32_USART_CR2_OFFSET, cr2 | USART_CR2_LINEN); leave_critical_section(flags); } @@ -2069,9 +2072,11 @@ static int up_ioctl(struct file *filep, int cmd, unsigned long arg) case TIOCCBRK: /* BSD compatibility: Turn break off, unconditionally */ { + uint32_t cr2; irqstate_t flags; + flags = enter_critical_section(); - uint32_t cr1 = up_serialin(priv, STM32_USART_CR2_OFFSET); + cr2 = up_serialin(priv, STM32_USART_CR2_OFFSET); up_serialout(priv, STM32_USART_CR2_OFFSET, cr2 & ~USART_CR2_LINEN); leave_critical_section(flags); } diff --git a/arch/arm/src/stm32f7/stm32_serial.c b/arch/arm/src/stm32f7/stm32_serial.c index d62b78fd6e..78810f52f3 100644 --- a/arch/arm/src/stm32f7/stm32_serial.c +++ b/arch/arm/src/stm32f7/stm32_serial.c @@ -1967,8 +1967,11 @@ static int up_ioctl(struct file *filep, int cmd, unsigned long arg) #ifdef CONFIG_USART_BREAKS case TIOCSBRK: /* BSD compatibility: Turn break on, unconditionally */ { - irqstate_t flags = enter_critical_section(); - uint32_t cr2 = up_serialin(priv, STM32_USART_CR2_OFFSET); + uint32_t cr2; + irqstate_t flags; + + flags = enter_critical_section(); + cr2 = up_serialin(priv, STM32_USART_CR2_OFFSET); up_serialout(priv, STM32_USART_CR2_OFFSET, cr2 | USART_CR2_LINEN); leave_critical_section(flags); } @@ -1976,9 +1979,11 @@ static int up_ioctl(struct file *filep, int cmd, unsigned long arg) case TIOCCBRK: /* BSD compatibility: Turn break off, unconditionally */ { + uint32_t cr2; irqstate_t flags; + flags = enter_critical_section(); - uint32_t cr1 = up_serialin(priv, STM32_USART_CR2_OFFSET); + cr2 = up_serialin(priv, STM32_USART_CR2_OFFSET); up_serialout(priv, STM32_USART_CR2_OFFSET, cr2 & ~USART_CR2_LINEN); leave_critical_section(flags); } diff --git a/arch/arm/src/stm32l4/stm32l4_serial.c b/arch/arm/src/stm32l4/stm32l4_serial.c index 68e9e75245..8f68409dba 100644 --- a/arch/arm/src/stm32l4/stm32l4_serial.c +++ b/arch/arm/src/stm32l4/stm32l4_serial.c @@ -1723,8 +1723,11 @@ static int up_ioctl(struct file *filep, int cmd, unsigned long arg) #ifdef CONFIG_USART_BREAKS case TIOCSBRK: /* BSD compatibility: Turn break on, unconditionally */ { - irqstate_t flags = enter_critical_section(); - uint32_t cr2 = up_serialin(priv, STM32L4_USART_CR2_OFFSET); + uint32_t cr2; + irqstate_t flags; + + flags = enter_critical_section(); + cr2 = up_serialin(priv, STM32L4_USART_CR2_OFFSET); up_serialout(priv, STM32L4_USART_CR2_OFFSET, cr2 | USART_CR2_LINEN); leave_critical_section(flags); } @@ -1732,9 +1735,11 @@ static int up_ioctl(struct file *filep, int cmd, unsigned long arg) case TIOCCBRK: /* BSD compatibility: Turn break off, unconditionally */ { + uint32_t cr2; irqstate_t flags; + flags = enter_critical_section(); - uint32_t cr1 = up_serialin(priv, STM32L4_USART_CR2_OFFSET); + cr2 = up_serialin(priv, STM32L4_USART_CR2_OFFSET); up_serialout(priv, STM32L4_USART_CR2_OFFSET, cr2 & ~USART_CR2_LINEN); leave_critical_section(flags); } diff --git a/drivers/serial/uart_16550.c b/drivers/serial/uart_16550.c index 8b8eb82564..c7de1031a3 100644 --- a/drivers/serial/uart_16550.c +++ b/drivers/serial/uart_16550.c @@ -520,6 +520,7 @@ static inline void u16550_restoreuartint(FAR struct u16550_s *priv, uint32_t ier static inline void u16550_enablebreaks(FAR struct u16550_s *priv, bool enable) { uint32_t lcr = u16550_serialin(priv, UART_LCR_OFFSET); + if (enable) { lcr |= UART_LCR_BRK; @@ -528,6 +529,7 @@ static inline void u16550_enablebreaks(FAR struct u16550_s *priv, bool enable) { lcr &= ~UART_LCR_BRK; } + u16550_serialout(priv, UART_LCR_OFFSET, lcr); } -- GitLab From da1fc98a51f9f73b4f9dcec34dec53732bef5e74 Mon Sep 17 00:00:00 2001 From: Stefan Kolb Date: Fri, 6 May 2016 04:02:28 -0600 Subject: [PATCH 120/307] Fix a copy and paste error concerning the CAN driver. In the file sam_matrix.h the define SAM_MATRIX_CAN0_OFFSET is set to the wrong value. Error is only triggered if the global variable g_mcan0_msgram is located in RAM at an address beyond 0x20400000 + 0x0000ffff. In this case all send CAN messages have the length zero and the CAN-ID is zero as well. --- arch/arm/src/samv7/chip/sam_matrix.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/src/samv7/chip/sam_matrix.h b/arch/arm/src/samv7/chip/sam_matrix.h index e399ef3cc1..2de2cd538c 100644 --- a/arch/arm/src/samv7/chip/sam_matrix.h +++ b/arch/arm/src/samv7/chip/sam_matrix.h @@ -101,7 +101,7 @@ /* 0x006c8-0x00fc: Reserved */ #define SAM_MATRIX_MRCR_OFFSET 0x0100 /* Master Remap Control Register */ /* 0x0104-0x010c: Reserved */ -#define SAM_MATRIX_CAN0_OFFSET 0x0100 /* Master Remap Control Register */ +#define SAM_MATRIX_CAN0_OFFSET 0x0110 /* CAN0 Configuration Register */ #define SAM_MATRIX_CCFG_SYSIO_OFFSET 0x0114 /* System I/O Configuration Register */ /* 0x0118-0x0120: Reserved */ #define SAM_MATRIX_CCFG_SMCNFCS_OFFSET 0x0124 /* SMC Chip Select NAND Flash Assignment Register */ -- GitLab From 443bf7fc9302c0617331ae806be03abeda4f46ea Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 6 May 2016 04:47:35 -0600 Subject: [PATCH 121/307] Update ChangeLog --- ChangeLog | 38 ++++++++++++++++++++++++++++++++++---- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index faa17d5bbf..12412d5265 100755 --- a/ChangeLog +++ b/ChangeLog @@ -11670,8 +11670,38 @@ Lorquet (2016-04-20). * arch/arm/src/stm32 and configs/stm32f429i-disco: Correct some bad commits that broke the LTDC display example. From Marco Krahl - (2016-04-22). - * configs/samv71-xult/vnwwm: Add a more complex NxWM configuration + (2016-04-22). + * configs/samv71-xult/vncwwm: Add a more complex NxWM configuration to support further VNC testing (particularly of VNC keyboard and - mouse intputs). Initial configuration is not functional (2016-04-23). - + mouse inputs). Initial configuration is not functional (2016-04-23). + * arch/arm/src/stm32l4: Add support for QSPI DMA. From Dave + dev@ziggurat29.com (2016-04-24). + * configs/stm32l476vg-disco: Update stm32l4 disco board to reflect QSPI + DMA support. From Dave dev@ziggurat29.com (2016-04-24). + * arch/arm/src/stm32l4: Add configuration options to allow SRAM2 to be + used for heap, or not at all, and to zero-init it on OS start, or not + at all. From Dave dev@ziggurat29.com (2016-04-24). + * drviers/mtd/smart.c: Return code of smart_scan not checked, can + cause success result in failure case, leading to 'dev' pointer being + invalid. From Dave dev@ziggurat29.com (2016-04-27). + * arch/arm/src/stm32l4: Add support for QSPI memory mapped mode. From + Dave dev@ziggurat29.com (2016-04-27). + * configs/stm32l476vg-disco: Add board ioctls for allowing user + application to cause QSPI memory mapped mode to be engaged and + disengaged. Also partitioned QSPI flash for file system and other + (eventually xip). From Dave dev@ziggurat29.com (2016-04-27). + * fs/mount: Fix a backward debug assertion. Noted by David Sidrane + (2016-04-29). + * arch/arm/src/stm32l4: Add support for HSE and MSI clocks, and auto + trim of MSI to LSE (needed for USB). From Dave dev@ziggurat29.com + (2016-04-29). + * arch/arm/src/stm32l4: Add support for unique id function to arch; + modified board to support unique id boardctl. From Dave + dev@ziggurat29.com (2016-05-03). + * Makefile.unix and tools/mkexport.sh: Pass toplevel make to the + script to allow -j greater than 1. From David Sidrane (2016-05-04). + * arch/arm/src/stm32, sm32f7, stm32l4: Fix typo in variable name in + serial BREAK logic. Review other serial implementations for similar + naming problems. (2016-05-05). + * arch/arm/src/samv7: Fix typo in MATRIX register definitions. From + Stefan Kolb (2016-05-06). -- GitLab From 78b10bdf0ea9fbb033983656899ae6dd49a90f8f Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 6 May 2016 04:49:25 -0600 Subject: [PATCH 122/307] tools/export.sh: If MAKE not defined use 'which make'. Update README from last change. --- tools/README.txt | 6 ++++++ tools/mkexport.sh | 8 +++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/tools/README.txt b/tools/README.txt index 55140d7fad..44b0427427 100644 --- a/tools/README.txt +++ b/tools/README.txt @@ -135,6 +135,12 @@ mkexport.sh and Makefile.export Makefile.export is used only by the mkexport.sh script to parse out options from the top-level Make.defs file. + USAGE: tools/mkexport.sh [-d] [-z] [-u] [-w|wy|wn] -t [-x ] -l "lib1 [lib2 [lib3 ...]]" + + Thais script also depends on the environment variable MAKE which is set + in the top-level Makefile before starting mkexport.sh. If MAKE is not + defined, the script will set it to `which make`. + mkfsdata.pl ----------- diff --git a/tools/mkexport.sh b/tools/mkexport.sh index ebaff91b88..348a14cf5c 100755 --- a/tools/mkexport.sh +++ b/tools/mkexport.sh @@ -1,7 +1,7 @@ #!/bin/bash # tools/mkexport.sh # -# Copyright (C) 2011-2012, 2014 Gregory Nutt. All rights reserved. +# Copyright (C) 2011-2012, 2014, 2016 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -115,6 +115,12 @@ if [ ! -f "${TOPDIR}/.version" ]; then exit 1 fi +# Check if the make environment variable has been defined + +if [ -z "${MAKE}" ]; then + MAKE=`which make` +fi + # Get the version string source "${TOPDIR}/.version" -- GitLab From 6d03f132a153359d3e263799efd59db770df9ec9 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 6 May 2016 04:56:25 -0600 Subject: [PATCH 123/307] Fix some typos in ChangeLog --- ChangeLog | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 12412d5265..4f2191bba4 100755 --- a/ChangeLog +++ b/ChangeLog @@ -10401,7 +10401,7 @@ * arch/arm/src/efm32/efm32_rtc_burtc.c: Updated EFM32 RTC driver from Pierre-noel Bouteville (2015-05-19). * arch/arm/src/tiva/chip/tm4c_memorymap.h, tm4c_pinmap.h, and vectors.h. - configs/tm4c1294-launchpad/include/board.h and src/tm4c_autoleds.c: + configs/tm4c1294-launchpad/include/board.h and src/tm4c_autoleds.c: Fixes for Tiva TM4C1294NCPDT. From Frank Sautter. (2015-05-20). * configs/tm4c1294-launchpad/include/board.h: Added TM4C1294NCPDT EN0_LED2 (10/100-Base-Tx); removed all booster pack pin definitions. @@ -11625,13 +11625,13 @@ * configs/nucleus2g: Removed the Nucleus2G configuration. There has not been any activity with the commercial board in a few years and it no longer appears to be available from the 2g-eng.com website. - Since the board is commercial and no longer publically available, it + Since the board is commercial and no longer publicly available, it no longer qualifies for inclusion in the open source repositories. The code as of this data is still available in the Obsoleted repository at configs/nucleus2g (2016-04-12). * arch/arm/src/stm32l4: Fix the STM32L4 SPI driver. That SPI driver is quite different. They now handle frames of arbitrary size between 4 - and 16 bits. It was broken before a new bit has to be set (rx fifo + and 16 bits. It was broken before a new bit has to be set (RX fifo threshold) to handle <= 8-bit transactions. If not set, the default is 16-bit packed >=8-bit frames and the RXNE bit is never set (it is set when 16-bits are received). weird things as always. @@ -11662,7 +11662,7 @@ * configs/stm32l476vb-disco: Add support for QSPI based N25Qxxx flash. From Dave dev@ziggurat29.com (2016-04-18). * graphics/vnc: Add support for a VNC server. This logic is code - complete, but untested and so not ready for primetime (2016-04-18). + complete, but untested and so not ready for prime time (2016-04-18). * configs/samv71-xult/vnc: Add a configuration that will be used to verify VNC (also untested) (2016-04-18). * drivers/ioexpander: Fix an error in the PCA9555 driver: Under certain @@ -11679,16 +11679,16 @@ * configs/stm32l476vg-disco: Update stm32l4 disco board to reflect QSPI DMA support. From Dave dev@ziggurat29.com (2016-04-24). * arch/arm/src/stm32l4: Add configuration options to allow SRAM2 to be - used for heap, or not at all, and to zero-init it on OS start, or not - at all. From Dave dev@ziggurat29.com (2016-04-24). - * drviers/mtd/smart.c: Return code of smart_scan not checked, can + used for heap, or not at all, and to zero-initialize it on OS start, + or not at all. From Dave dev@ziggurat29.com (2016-04-24). + * drivers/mtd/smart.c: Return code of smart_scan not checked, can cause success result in failure case, leading to 'dev' pointer being invalid. From Dave dev@ziggurat29.com (2016-04-27). * arch/arm/src/stm32l4: Add support for QSPI memory mapped mode. From Dave dev@ziggurat29.com (2016-04-27). * configs/stm32l476vg-disco: Add board ioctls for allowing user application to cause QSPI memory mapped mode to be engaged and - disengaged. Also partitioned QSPI flash for file system and other + disengaged. Also partitioned QSPI flash for file system and other (eventually xip). From Dave dev@ziggurat29.com (2016-04-27). * fs/mount: Fix a backward debug assertion. Noted by David Sidrane (2016-04-29). @@ -11698,7 +11698,7 @@ * arch/arm/src/stm32l4: Add support for unique id function to arch; modified board to support unique id boardctl. From Dave dev@ziggurat29.com (2016-05-03). - * Makefile.unix and tools/mkexport.sh: Pass toplevel make to the + * Makefile.unix and tools/mkexport.sh: Pass top-level make to the script to allow -j greater than 1. From David Sidrane (2016-05-04). * arch/arm/src/stm32, sm32f7, stm32l4: Fix typo in variable name in serial BREAK logic. Review other serial implementations for similar -- GitLab From 48fc8b9dd75230d3f61458ce16eef8a8e356daa6 Mon Sep 17 00:00:00 2001 From: ziggurat29 Date: Sat, 7 May 2016 11:35:08 -0500 Subject: [PATCH 124/307] problem with resetting backup domain clears clocking options set up before in *rcc.c use INITS flag to avoid magic reg value to detect power up reset state of rtc correct a problem clearing interrupt flags (they weren't) which prevented an alarm from ever being used more than once per reset cycle --- arch/arm/src/stm32l4/stm32l4_exti_alarm.c | 10 +- arch/arm/src/stm32l4/stm32l4_rtcc.c | 393 +++++++++------------- 2 files changed, 169 insertions(+), 234 deletions(-) diff --git a/arch/arm/src/stm32l4/stm32l4_exti_alarm.c b/arch/arm/src/stm32l4/stm32l4_exti_alarm.c index 8f145ccd4f..2935cacef8 100644 --- a/arch/arm/src/stm32l4/stm32l4_exti_alarm.c +++ b/arch/arm/src/stm32l4/stm32l4_exti_alarm.c @@ -86,17 +86,17 @@ static int stm32l4_exti_alarm_isr(int irq, void *context) { int ret = OK; - /* Clear the pending EXTI interrupt */ - - putreg32(EXTI1_RTC_ALARM, STM32L4_EXTI1_PR); - - /* And dispatch the interrupt to the handler */ + /* Dispatch the interrupt to the handler */ if (stm32l4_exti_callback) { ret = stm32l4_exti_callback(irq, context); } + /* Clear the pending EXTI interrupt */ + + putreg32(EXTI1_RTC_ALARM, STM32L4_EXTI1_PR); + return ret; } diff --git a/arch/arm/src/stm32l4/stm32l4_rtcc.c b/arch/arm/src/stm32l4/stm32l4_rtcc.c index 423ed92dd8..5dacc7a62d 100644 --- a/arch/arm/src/stm32l4/stm32l4_rtcc.c +++ b/arch/arm/src/stm32l4/stm32l4_rtcc.c @@ -99,8 +99,6 @@ #define SYNCHRO_TIMEOUT (0x00020000) #define INITMODE_TIMEOUT (0x00010000) -#define RTC_MAGIC CONFIG_RTC_MAGIC -#define RTC_MAGIC_REG STM32L4_RTC_BKR(CONFIG_RTC_MAGIC_REG) /* BCD conversions */ @@ -213,7 +211,6 @@ static void rtc_dumpregs(FAR const char *msg) rtclldbg(" TAMPCR: %08x\n", getreg32(STM32L4_RTC_TAMPCR)); rtclldbg("ALRMASSR: %08x\n", getreg32(STM32L4_RTC_ALRMASSR)); rtclldbg("ALRMBSSR: %08x\n", getreg32(STM32L4_RTC_ALRMBSSR)); - rtclldbg("MAGICREG: %08x\n", getreg32(RTC_MAGIC_REG)); } #else # define rtc_dumpregs(msg) @@ -254,6 +251,31 @@ static void rtc_dumptime(FAR const struct tm *tp, FAR const char *msg) # define rtc_dumptime(tp, msg) #endif +/************************************************************************************ + * Name: rtc_is_inits + * + * Description: + * Returns 'true' if the RTC has been initialized (according to the RTC itself). + * It will be 'false' if the RTC has never been initialized since first time power + * up, and the counters are stopped until it is first initialized. + * + * Input Parameters: + * None + * + * Returned Value: + * bool -- true if the INITS flag is set in the ISR. + * + ************************************************************************************/ + +static bool rtc_is_inits(void) +{ + uint32_t regval; + + regval = getreg32(STM32L4_RTC_ISR); + + return (regval & RTC_ISR_INITS) ? true : false; +} + /************************************************************************************ * Name: rtc_wprunlock * @@ -482,81 +504,6 @@ static int rtc_bcd2bin(uint32_t value) return (int)(tens + (value & 0x0f)); } -/************************************************************************************ - * Name: rtc_setup - * - * Description: - * Performs first time configuration of the RTC. A special value written into - * back-up register 0 will prevent this function from being called on sub-sequent - * resets or power up. - * - * Input Parameters: - * None - * - * Returned Value: - * Zero (OK) on success; a negated errno on failure - * - ************************************************************************************/ - -static int rtc_setup(void) -{ - uint32_t regval; - int ret; - - /* Disable the write protection for RTC registers */ - - rtc_wprunlock(); - - /* Set Initialization mode */ - - ret = rtc_enterinit(); - if (ret == OK) - { - /* Set the 24 hour format by clearing the FMT bit in the RTC - * control register - */ - - regval = getreg32(STM32L4_RTC_CR); - regval &= ~RTC_CR_FMT; - putreg32(regval, STM32L4_RTC_CR); - - /* Configure RTC pre-scaler with the required values */ - -#ifdef CONFIG_STM32L4_RTC_HSECLOCK - /* For a 1 MHz clock this yields 0.9999360041 Hz on the second - * timer - which is pretty close. - * NOTE: max HSE is 4 MHz if it is to be used with RTC - */ - - putreg32(((uint32_t)7812 << RTC_PRER_PREDIV_S_SHIFT) | - ((uint32_t)0x7f << RTC_PRER_PREDIV_A_SHIFT), - STM32L4_RTC_PRER); -#elif defined(CONFIG_STM32L4_RTC_LSICLOCK) - /* Suitable values for 32.000 KHz LSI clock (29.5 - 34 KHz, though) */ - - putreg32(((uint32_t)0xf9 << RTC_PRER_PREDIV_S_SHIFT) | - ((uint32_t)0x7f << RTC_PRER_PREDIV_A_SHIFT), - STM32L4_RTC_PRER); -#else /* defined(CONFIG_STM32L4_RTC_LSECLOCK) */ - /* Correct values for 32.768 KHz LSE clock */ - - putreg32(((uint32_t)0xff << RTC_PRER_PREDIV_S_SHIFT) | - ((uint32_t)0x7f << RTC_PRER_PREDIV_A_SHIFT), - STM32L4_RTC_PRER); -#endif - - /* Exit RTC initialization mode */ - - rtc_exitinit(); - } - - /* Re-enable the write protection for RTC registers */ - - rtc_wprlock(); - - return ret; -} - /************************************************************************************ * Name: rtc_resume * @@ -585,7 +532,7 @@ static void rtc_resume(void) /* Clear the EXTI Line 18 Pending bit (Connected internally to RTC Alarm) */ - putreg32((1 << 18), STM32L4_EXTI1_PR); + putreg32(EXTI1_RTC_ALARM, STM32L4_EXTI1_PR); #endif } @@ -614,14 +561,19 @@ static int stm32l4_rtc_alarm_handler(int irq, void *context) uint32_t cr; int ret = OK; - isr = getreg32(STM32L4_RTC_ISR); + /* Enable write access to the backup domain (RTC registers, RTC + * backup data registers and backup SRAM). + */ + + (void)stm32l4_pwr_enablebkp(true); /* Check for EXTI from Alarm A or B and handle according */ - if ((isr & RTC_ISR_ALRAF) != 0) + cr = getreg32(STM32L4_RTC_CR); + if ((cr & RTC_CR_ALRAIE) != 0) { - cr = getreg32(STM32L4_RTC_CR); - if ((cr & RTC_CR_ALRAIE) != 0) + isr = getreg32(STM32L4_RTC_ISR); + if ((isr & RTC_ISR_ALRAF) != 0) { cbinfo = &g_alarmcb[RTC_ALARMA]; if (cbinfo->ac_cb != NULL) @@ -636,18 +588,20 @@ static int stm32l4_rtc_alarm_handler(int irq, void *context) cb(arg, RTC_ALARMA); } - } - /* note, bits 8-13 do /not/ require the write enable procedure */ + /* note, bits 8-13 do /not/ require the write enable procedure */ - isr = getreg32(STM32L4_RTC_ISR) & ~RTC_ISR_ALRAF; - putreg32(isr, STM32L4_RTC_ISR); + isr = getreg32(STM32L4_RTC_ISR); + isr &= ~RTC_ISR_ALRAF; + putreg32(isr, STM32L4_RTC_ISR); + } } - if ((isr & RTC_ISR_ALRBF) != 0) + cr = getreg32(STM32L4_RTC_CR); + if ((cr & RTC_CR_ALRBIE) != 0) { - cr = getreg32(STM32L4_RTC_CR); - if ((cr & RTC_CR_ALRBIE) != 0) + isr = getreg32(STM32L4_RTC_ISR); + if ((isr & RTC_ISR_ALRBF) != 0) { cbinfo = &g_alarmcb[RTC_ALARMB]; if (cbinfo->ac_cb != NULL) @@ -662,14 +616,21 @@ static int stm32l4_rtc_alarm_handler(int irq, void *context) cb(arg, RTC_ALARMB); } - } - /* note, bits 8-13 do /not/ require the write enable procedure */ + /* note, bits 8-13 do /not/ require the write enable procedure */ - isr = getreg32(STM32L4_RTC_ISR) & ~RTC_ISR_ALRBF; - putreg32(isr, STM32L4_RTC_ISR); + isr = getreg32(STM32L4_RTC_ISR); + isr &= ~RTC_ISR_ALRBF; + putreg32(isr, STM32L4_RTC_ISR); + } } + /* Disable write access to the backup domain (RTC registers, RTC backup + * data registers and backup SRAM). + */ + + (void)stm32l4_pwr_enablebkp(false); + return ret; } #endif @@ -771,6 +732,13 @@ static int rtchw_set_alrmar(rtc_alarmreg_t alarmreg) modifyreg32(STM32L4_RTC_CR, (RTC_CR_ALRAE | RTC_CR_ALRAIE), 0); + /* Ensure Alarm A flag reset; this is edge triggered */ + + isr = getreg32(STM32L4_RTC_ISR) & ~RTC_ISR_ALRAF; + putreg32(isr, STM32L4_RTC_ISR); + + /* Wait for Alarm A to be writable */ + ret = rtchw_check_alrawf(); if (ret != OK) { @@ -780,14 +748,10 @@ static int rtchw_set_alrmar(rtc_alarmreg_t alarmreg) /* Set the RTC Alarm A register */ putreg32(alarmreg, STM32L4_RTC_ALRMAR); + putreg32(0, STM32L4_RTC_ALRMASSR); rtcvdbg(" TR: %08x ALRMAR: %08x\n", getreg32(STM32L4_RTC_TR), getreg32(STM32L4_RTC_ALRMAR)); - /* ensure Alarm A flag reset; this is edge triggered */ - - isr = getreg32(STM32L4_RTC_ISR) & ~RTC_ISR_ALRAF; - putreg32(isr, STM32L4_RTC_ISR); - /* Enable RTC alarm A */ modifyreg32(STM32L4_RTC_CR, 0, (RTC_CR_ALRAE | RTC_CR_ALRAIE)); @@ -814,23 +778,26 @@ static int rtchw_set_alrmbr(rtc_alarmreg_t alarmreg) modifyreg32(STM32L4_RTC_CR, (RTC_CR_ALRBE | RTC_CR_ALRBIE), 0); + /* Ensure Alarm B flag reset; this is edge triggered */ + + isr = getreg32(STM32L4_RTC_ISR) & ~RTC_ISR_ALRBF; + putreg32(isr, STM32L4_RTC_ISR); + + /* Wait for Alarm B to be writable */ + ret = rtchw_check_alrbwf(); if (ret != OK) { goto rtchw_set_alrmbr_exit; } - /* Set the RTC Alarm register */ + /* Set the RTC Alarm B register */ putreg32(alarmreg, STM32L4_RTC_ALRMBR); + putreg32(0, STM32L4_RTC_ALRMBSSR); rtcvdbg(" TR: %08x ALRMBR: %08x\n", getreg32(STM32L4_RTC_TR), getreg32(STM32L4_RTC_ALRMBR)); - /* ensure Alarm B flag reset; this is edge triggered */ - - isr = getreg32(STM32L4_RTC_ISR) & ~RTC_ISR_ALRBF; - putreg32(isr, STM32L4_RTC_ISR); - /* Enable RTC alarm B */ modifyreg32(STM32L4_RTC_CR, 0, (RTC_CR_ALRBE | RTC_CR_ALRBIE)); @@ -862,183 +829,148 @@ rtchw_set_alrmbr_exit: int up_rtc_initialize(void) { + bool init_stat; uint32_t regval; - uint32_t tr_bkp; - uint32_t dr_bkp; int ret; - int maxretry = 10; - int nretry = 0; - - /* Clocking for the PWR block must be provided. - */ - rtc_dumpregs("On reset"); + rtc_dumpregs("Before Initialization"); - /* Select the clock source */ - /* Save the token before losing it when resetting */ - - regval = getreg32(RTC_MAGIC_REG); + /* See if the clock has already been initialized; since it is battery + * backed, we don't need or want to re-initialize on each reset. + */ - (void)stm32l4_pwr_enablebkp(true); + init_stat = rtc_is_inits(); - if (regval != RTC_MAGIC) + if(!init_stat) { - /* We might be changing RTCSEL - to ensure such changes work, we must reset the - * backup domain (having backed up the RTC_MAGIC token) + /* Enable write access to the backup domain (RTC registers, RTC + * backup data registers and backup SRAM). */ - modifyreg32(STM32L4_RCC_BDCR, 0, RCC_BDCR_BDRST); - modifyreg32(STM32L4_RCC_BDCR, RCC_BDCR_BDRST, 0); + (void)stm32l4_pwr_enablebkp(true); - /* Some boards do not have the external 32khz oscillator installed, for those - * boards we must fall back to the crummy internal RC clock or the external high - * rate clock (which for the STM32L4 must not exceed 4MHz). - */ +#if 0 + /* Do not reset the backup domain; you will lose your clock setup done in *rcc.c */ -#ifdef CONFIG_STM32L4_RTC_HSECLOCK - /* Use the HSE clock as the input to the RTC block */ + modifyreg32(STM32L4_RCC_BDCR, 0, RCC_BDCR_BDRST); + modifyreg32(STM32L4_RCC_BDCR, RCC_BDCR_BDRST, 0); +#endif +#if defined(CONFIG_STM32L4_RTC_HSECLOCK) modifyreg32(STM32L4_RCC_BDCR, RCC_BDCR_RTCSEL_MASK, RCC_BDCR_RTCSEL_HSE); - #elif defined(CONFIG_STM32L4_RTC_LSICLOCK) - /* Use the LSI clock as the input to the RTC block */ - modifyreg32(STM32L4_RCC_BDCR, RCC_BDCR_RTCSEL_MASK, RCC_BDCR_RTCSEL_LSI); - #elif defined(CONFIG_STM32L4_RTC_LSECLOCK) - /* Use the LSE clock as the input to the RTC block */ - modifyreg32(STM32L4_RCC_BDCR, RCC_BDCR_RTCSEL_MASK, RCC_BDCR_RTCSEL_LSE); - #endif + /* Enable the RTC Clock by setting the RTCEN bit in the RCC register */ modifyreg32(STM32L4_RCC_BDCR, 0, RCC_BDCR_RTCEN); - } - else /* The RTC is already in use: check if the clock source is changed */ - { -#if defined(CONFIG_STM32L4_RTC_HSECLOCK) || defined(CONFIG_STM32L4_RTC_LSICLOCK) || \ - defined(CONFIG_STM32L4_RTC_LSECLOCK) - uint32_t clksrc = getreg32(STM32L4_RCC_BDCR); + /* Disable the write protection for RTC registers */ -#if defined(CONFIG_STM32L4_RTC_HSECLOCK) - if ((clksrc & RCC_BDCR_RTCSEL_MASK) != RCC_BDCR_RTCSEL_HSE) -#elif defined(CONFIG_STM32L4_RTC_LSICLOCK) - if ((clksrc & RCC_BDCR_RTCSEL_MASK) != RCC_BDCR_RTCSEL_LSI) -#elif defined(CONFIG_STM32L4_RTC_LSECLOCK) - if ((clksrc & RCC_BDCR_RTCSEL_MASK) != RCC_BDCR_RTCSEL_LSE) -#endif -#endif - { - tr_bkp = getreg32(STM32L4_RTC_TR); - dr_bkp = getreg32(STM32L4_RTC_DR); - modifyreg32(STM32L4_RCC_BDCR, 0, RCC_BDCR_BDRST); - modifyreg32(STM32L4_RCC_BDCR, RCC_BDCR_BDRST, 0); + rtc_wprunlock(); -#if defined(CONFIG_STM32L4_RTC_HSECLOCK) - /* Change to the new clock as the input to the RTC block */ + /* Set Initialization mode */ - modifyreg32(STM32L4_RCC_BDCR, RCC_BDCR_RTCSEL_MASK, RCC_BDCR_RTCSEL_HSE); - -#elif defined(CONFIG_STM32L4_RTC_LSICLOCK) - modifyreg32(STM32L4_RCC_BDCR, RCC_BDCR_RTCSEL_MASK, RCC_BDCR_RTCSEL_LSI); - -#elif defined(CONFIG_STM32L4_RTC_LSECLOCK) - modifyreg32(STM32L4_RCC_BDCR, RCC_BDCR_RTCSEL_MASK, RCC_BDCR_RTCSEL_LSE); -#endif + if (OK != rtc_enterinit()) + { + /* Enable the write protection for RTC registers */ - putreg32(tr_bkp, STM32L4_RTC_TR); - putreg32(dr_bkp, STM32L4_RTC_DR); + rtc_wprlock(); - /* Remember that the RTC is initialized */ + /* Disable write access to the backup domain (RTC registers, RTC backup + * data registers and backup SRAM). + */ - putreg32(RTC_MAGIC, RTC_MAGIC_REG); + (void)stm32l4_pwr_enablebkp(false); - /* Enable the RTC Clock by setting the RTCEN bit in the RCC register */ + rtc_dumpregs("After Failed Initialization"); - modifyreg32(STM32L4_RCC_BDCR, 0, RCC_BDCR_RTCEN); + return -1; } - } + else + { + /* Clear RTC_CR FMT, OSEL and POL Bits */ - (void)stm32l4_pwr_enablebkp(false); + regval = getreg32(STM32L4_RTC_CR); + regval &= ~(RTC_CR_FMT | RTC_CR_OSEL_MASK | RTC_CR_POL); - /* Loop, attempting to initialize/resume the RTC. This loop is necessary - * because it seems that occasionally it takes longer to initialize the RTC - * (the actual failure is in rtc_synchwait()). - */ + /* Configure RTC pre-scaler with the required values */ - do - { - /* Wait for the RTC Time and Date registers to be synchronized with RTC APB - * clock. - */ +#ifdef CONFIG_STM32L4_RTC_HSECLOCK + /* The HSE is divided by 32 prior to the prescaler we set here. + * 1953 + * NOTE: max HSE/32 is 4 MHz if it is to be used with RTC + */ - ret = rtc_synchwait(); + /* For a 1 MHz clock this yields 0.9999360041 Hz on the second + * timer - which is pretty close. + */ - /* Check that rtc_syncwait() returned successfully */ + putreg32(((uint32_t)7812 << RTC_PRER_PREDIV_S_SHIFT) | + ((uint32_t)0x7f << RTC_PRER_PREDIV_A_SHIFT), + STM32L4_RTC_PRER); +#elif defined(CONFIG_STM32L4_RTC_LSICLOCK) + /* Suitable values for 32.000 KHz LSI clock (29.5 - 34 KHz, though) */ - switch (ret) - { - case OK: - { - rtclldbg("rtc_syncwait() okay\n"); - break; - } + putreg32(((uint32_t)0xf9 << RTC_PRER_PREDIV_S_SHIFT) | + ((uint32_t)0x7f << RTC_PRER_PREDIV_A_SHIFT), + STM32L4_RTC_PRER); +#else /* defined(CONFIG_STM32L4_RTC_LSECLOCK) */ + /* Correct values for 32.768 KHz LSE clock */ - default: - { - rtclldbg("rtc_syncwait() failed (%d)\n", ret); - break; - } - } - } - while (ret != OK && ++nretry < maxretry); + putreg32(((uint32_t)0xff << RTC_PRER_PREDIV_S_SHIFT) | + ((uint32_t)0x7f << RTC_PRER_PREDIV_A_SHIFT), + STM32L4_RTC_PRER); +#endif - /* Check if the one-time initialization of the RTC has already been - * performed. We can determine this by checking if the magic number - * has been writing to to back-up date register DR0. - */ + /* Wait for the RTC Time and Date registers to be synchronized with RTC APB + * clock. + */ - if (regval != RTC_MAGIC) - { - rtclldbg("Do setup\n"); + ret = rtc_synchwait(); + (void)ret; - /* Perform the one-time setup of the LSE clocking to the RTC */ + /* Exit Initialization mode */ + + rtc_exitinit(); - ret = rtc_setup(); + /* Enable the write protection for RTC registers */ + + rtc_wprlock(); + + /* Disable write access to the backup domain (RTC registers, RTC backup + * data registers and backup SRAM). + */ + (void)stm32l4_pwr_enablebkp(false); + } + } + else + { /* Enable write access to the backup domain (RTC registers, RTC * backup data registers and backup SRAM). */ (void)stm32l4_pwr_enablebkp(true); - /* Remember that the RTC is initialized */ - - putreg32(RTC_MAGIC, RTC_MAGIC_REG); - } - else - { - rtclldbg("Do resume\n"); + /* Disable the write protection for RTC registers */ - /* RTC already set-up, just resume normal operation */ + //rtc_wprunlock(); rtc_resume(); - rtc_dumpregs("Did resume"); - } - - /* Disable write access to the backup domain (RTC registers, RTC backup - * data registers and backup SRAM). - */ - - (void)stm32l4_pwr_enablebkp(false); + + /* Enable the write protection for RTC registers */ + + //rtc_wprlock(); + + /* Disable write access to the backup domain (RTC registers, RTC backup + * data registers and backup SRAM). + */ - if (ret != OK && nretry > 0) - { - rtclldbg("setup/resume ran %d times and failed with %d\n", - nretry, ret); - return -ETIMEDOUT; + (void)stm32l4_pwr_enablebkp(false); } #ifdef CONFIG_RTC_ALARM @@ -1059,9 +991,12 @@ int up_rtc_initialize(void) g_rtc_enabled = true; rtc_dumpregs("After Initialization"); + return OK; } + + /************************************************************************************ * Name: stm32l4_rtc_getdatetime_with_subseconds * -- GitLab From 1e5910a99d55f0870daf1b435b5ad832df117b78 Mon Sep 17 00:00:00 2001 From: ziggurat29 Date: Sat, 7 May 2016 12:03:18 -0500 Subject: [PATCH 125/307] update nucleo l476 config and code to support the RTC and the alarms functionality --- configs/nucleo-l476rg/nsh/defconfig | 32 ++++++++++++++++---- configs/nucleo-l476rg/src/nucleo-l476rg.h | 8 +++++ configs/nucleo-l476rg/src/stm32_appinit.c | 36 +++++++++++++++++++++-- 3 files changed, 68 insertions(+), 8 deletions(-) diff --git a/configs/nucleo-l476rg/nsh/defconfig b/configs/nucleo-l476rg/nsh/defconfig index b6954d05d5..a4c6871564 100644 --- a/configs/nucleo-l476rg/nsh/defconfig +++ b/configs/nucleo-l476rg/nsh/defconfig @@ -69,6 +69,7 @@ CONFIG_DEBUG_LIB=y CONFIG_DEBUG_LEDS=y CONFIG_DEBUG_ANALOG=y CONFIG_DEBUG_GPIO=y +# CONFIG_DEBUG_RTC is not set CONFIG_DEBUG_SPI=y CONFIG_ARCH_HAVE_STACKCHECK=y # CONFIG_STACK_COLORATION is not set @@ -290,6 +291,9 @@ CONFIG_STM32L4_FIREWALL=y CONFIG_STM32L4_FLASH_PREFETCH=y CONFIG_STM32L4_DISABLE_IDLE_SLEEP_DURING_DEBUG=y # CONFIG_ARCH_BOARD_STM32L4_CUSTOM_CLOCKCONFIG is not set +CONFIG_STM32L4_RTC_LSECLOCK=y +# CONFIG_STM32L4_RTC_LSICLOCK is not set +# CONFIG_STM32L4_RTC_HSECLOCK is not set CONFIG_STM32L4_SAI1PLL=y # CONFIG_STM32L4_SAI2PLL is not set @@ -377,7 +381,14 @@ CONFIG_NSH_MMCSDMINOR=0 # # Board-Specific Options # -# CONFIG_LIB_BOARDCTL is not set +CONFIG_LIB_BOARDCTL=y +# CONFIG_BOARDCTL_RESET is not set +# CONFIG_BOARDCTL_UNIQUEID is not set +# CONFIG_BOARDCTL_TSCTEST is not set +# CONFIG_BOARDCTL_ADCTEST is not set +# CONFIG_BOARDCTL_PWMTEST is not set +# CONFIG_BOARDCTL_GRAPHICS is not set +# CONFIG_BOARDCTL_IOCTL is not set # # RTOS Features @@ -396,9 +407,6 @@ CONFIG_USEC_PER_TICK=10000 # CONFIG_SYSTEM_TIME64 is not set # CONFIG_CLOCK_MONOTONIC is not set # CONFIG_JULIAN_TIME is not set -CONFIG_START_YEAR=2014 -CONFIG_START_MONTH=5 -CONFIG_START_DAY=5 CONFIG_MAX_WDOGPARMS=2 CONFIG_PREALLOC_WDOGS=8 CONFIG_WDOG_INTRESERVE=1 @@ -517,7 +525,13 @@ CONFIG_SPI_EXCHANGE=y # Timer Driver Support # # CONFIG_TIMER is not set -# CONFIG_RTC is not set +CONFIG_RTC=y +CONFIG_RTC_DATETIME=y +CONFIG_RTC_ALARM=y +CONFIG_RTC_NALARMS=2 +CONFIG_RTC_DRIVER=y +CONFIG_RTC_IOCTL=y +# CONFIG_RTC_EXTERNAL is not set # CONFIG_WATCHDOG is not set # CONFIG_ANALOG is not set # CONFIG_AUDIO_DEVICES is not set @@ -755,6 +769,11 @@ CONFIG_BUILTIN_PROXY_STACKSIZE=1024 # # Examples # +CONFIG_EXAMPLES_ALARM=y +CONFIG_EXAMPLES_ALARM_PRIORITY=100 +CONFIG_EXAMPLES_ALARM_STACKSIZE=2048 +CONFIG_EXAMPLES_ALARM_DEVPATH="/dev/rtc0" +CONFIG_EXAMPLES_ALARM_SIGNO=1 # CONFIG_EXAMPLES_CHAT is not set # CONFIG_EXAMPLES_CONFIGDATA is not set # CONFIG_EXAMPLES_CPUHOG is not set @@ -813,6 +832,7 @@ CONFIG_EXAMPLES_NSAMPLES=8 # CONFIG_EXAMPLES_TIFF is not set # CONFIG_EXAMPLES_TOUCHSCREEN is not set # CONFIG_EXAMPLES_WEBSERVER is not set +# CONFIG_EXAMPLES_USBSERIAL is not set # CONFIG_EXAMPLES_USBTERM is not set # CONFIG_EXAMPLES_WATCHDOG is not set @@ -944,7 +964,7 @@ CONFIG_NSH_FILEIOSIZE=512 # CONFIG_NSH_CONSOLE=y # CONFIG_NSH_ALTCONDEV is not set -# CONFIG_NSH_ARCHINIT is not set +CONFIG_NSH_ARCHINIT=y # CONFIG_NSH_LOGIN is not set # CONFIG_NSH_CONSOLE_LOGIN is not set diff --git a/configs/nucleo-l476rg/src/nucleo-l476rg.h b/configs/nucleo-l476rg/src/nucleo-l476rg.h index b5b56eb5a0..7f1ef0feef 100644 --- a/configs/nucleo-l476rg/src/nucleo-l476rg.h +++ b/configs/nucleo-l476rg/src/nucleo-l476rg.h @@ -52,7 +52,15 @@ ************************************************************************************/ /* Configuration ********************************************************************/ +#define HAVE_RTC_DRIVER 1 #define HAVE_MMCSD 1 + +/* Check if we can support the RTC driver */ + +#if !defined(CONFIG_RTC) || !defined(CONFIG_RTC_DRIVER) +# undef HAVE_RTC_DRIVER +#endif + #if !defined(CONFIG_STM32_SDIO) || !defined(CONFIG_MMCSD) || \ !defined(CONFIG_MMCSD_SDIO) # undef HAVE_MMCSD diff --git a/configs/nucleo-l476rg/src/stm32_appinit.c b/configs/nucleo-l476rg/src/stm32_appinit.c index b7f5f1e6b4..5a8b78513a 100644 --- a/configs/nucleo-l476rg/src/stm32_appinit.c +++ b/configs/nucleo-l476rg/src/stm32_appinit.c @@ -55,6 +55,11 @@ #include "nucleo-l476rg.h" +#ifdef HAVE_RTC_DRIVER +# include +# include "stm32l4_rtc.h" +#endif + /**************************************************************************** * Public Functions ****************************************************************************/ @@ -83,9 +88,12 @@ void up_netinitialize(void) int board_app_initialize(void) { -#if defined(HAVE_MMCSD) || defined(CONFIG_AJOYSTICK) - int ret; +#ifdef HAVE_RTC_DRIVER + FAR struct rtc_lowerhalf_s *rtclower; #endif + int ret; + + (void)ret; /* Configure CPU load estimation */ @@ -93,6 +101,30 @@ int board_app_initialize(void) cpuload_initialize_once(); #endif +#ifdef HAVE_RTC_DRIVER + /* Instantiate the STM32L4 lower-half RTC driver */ + + rtclower = stm32l4_rtc_lowerhalf(); + if (!rtclower) + { + sdbg("ERROR: Failed to instantiate the RTC lower-half driver\n"); + return -ENOMEM; + } + else + { + /* Bind the lower half driver and register the combined RTC driver + * as /dev/rtc0 + */ + + ret = rtc_initialize(0, rtclower); + if (ret < 0) + { + sdbg("ERROR: Failed to bind/register the RTC driver: %d\n", ret); + return ret; + } + } +#endif + #ifdef HAVE_MMCSD /* First, get an instance of the SDIO interface */ -- GitLab From 523591736f415ff9707b258ca8a8280a5ff7c972 Mon Sep 17 00:00:00 2001 From: ziggurat29 Date: Sat, 7 May 2016 12:24:15 -0500 Subject: [PATCH 126/307] trivial; enable the 'alarms' example app in the STL32L4-disco config, since it is now working --- configs/stm32l476vg-disco/nsh/defconfig | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/configs/stm32l476vg-disco/nsh/defconfig b/configs/stm32l476vg-disco/nsh/defconfig index 1ad001dd86..78242a4deb 100644 --- a/configs/stm32l476vg-disco/nsh/defconfig +++ b/configs/stm32l476vg-disco/nsh/defconfig @@ -543,7 +543,8 @@ CONFIG_SPI_EXCHANGE=y # CONFIG_TIMER is not set CONFIG_RTC=y CONFIG_RTC_DATETIME=y -# CONFIG_RTC_ALARM is not set +CONFIG_RTC_ALARM=y +CONFIG_RTC_NALARMS=2 CONFIG_RTC_DRIVER=y CONFIG_RTC_IOCTL=y # CONFIG_RTC_EXTERNAL is not set @@ -834,6 +835,11 @@ CONFIG_BUILTIN_PROXY_STACKSIZE=1024 # # Examples # +CONFIG_EXAMPLES_ALARM=y +CONFIG_EXAMPLES_ALARM_PRIORITY=100 +CONFIG_EXAMPLES_ALARM_STACKSIZE=2048 +CONFIG_EXAMPLES_ALARM_DEVPATH="/dev/rtc0" +CONFIG_EXAMPLES_ALARM_SIGNO=1 CONFIG_EXAMPLES_BUTTONS=y CONFIG_EXAMPLES_BUTTONS_MIN=0 CONFIG_EXAMPLES_BUTTONS_MAX=4 -- GitLab From 863db15b5656ed511a39ea586052e2a696d71794 Mon Sep 17 00:00:00 2001 From: Young Date: Sun, 8 May 2016 13:54:51 +0800 Subject: [PATCH 127/307] Fix a bug of GPIO falling-edge interrupt for tiva --- arch/arm/src/tiva/tiva_gpio.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm/src/tiva/tiva_gpio.c b/arch/arm/src/tiva/tiva_gpio.c index 1ca011909a..6ce03bdae5 100644 --- a/arch/arm/src/tiva/tiva_gpio.c +++ b/arch/arm/src/tiva/tiva_gpio.c @@ -661,9 +661,9 @@ static inline void tiva_interrupt(uint32_t pinset) { case GPIO_INT_FALLINGEDGE: { - isset = pin; + isclr = pin; ibeclr = pin; - ievset = pin; + ievclr = pin; } break; -- GitLab From 5c1c5079eaec0330d339fa64e4d9c7245f2a83fe Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 8 May 2016 01:40:31 -0600 Subject: [PATCH 128/307] Cosmetic changes from review of last PR --- arch/arm/src/stm32l4/stm32l4_exti_alarm.c | 8 -------- arch/arm/src/stm32l4/stm32l4_rtc_lowerhalf.c | 10 +++++----- arch/arm/src/stm32l4/stm32l4_rtcc.c | 13 ++++++------- 3 files changed, 11 insertions(+), 20 deletions(-) diff --git a/arch/arm/src/stm32l4/stm32l4_exti_alarm.c b/arch/arm/src/stm32l4/stm32l4_exti_alarm.c index 2935cacef8..c71d975283 100644 --- a/arch/arm/src/stm32l4/stm32l4_exti_alarm.c +++ b/arch/arm/src/stm32l4/stm32l4_exti_alarm.c @@ -54,10 +54,6 @@ #include "stm32l4_gpio.h" #include "stm32l4_exti.h" -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - /**************************************************************************** * Private Data ****************************************************************************/ @@ -66,10 +62,6 @@ static xcpt_t stm32l4_exti_callback; -/**************************************************************************** - * Public Data - ****************************************************************************/ - /**************************************************************************** * Private Functions ****************************************************************************/ diff --git a/arch/arm/src/stm32l4/stm32l4_rtc_lowerhalf.c b/arch/arm/src/stm32l4/stm32l4_rtc_lowerhalf.c index bb0b7551fd..558aa2533b 100644 --- a/arch/arm/src/stm32l4/stm32l4_rtc_lowerhalf.c +++ b/arch/arm/src/stm32l4/stm32l4_rtc_lowerhalf.c @@ -100,6 +100,7 @@ struct stm32l4_lowerhalf_s /**************************************************************************** * Private Function Prototypes ****************************************************************************/ + /* Prototypes for static methods in struct rtc_ops_s */ static int stm32l4_rdtime(FAR struct rtc_lowerhalf_s *lower, @@ -179,7 +180,7 @@ static void stm32l4_alarm_callback(FAR void *arg, unsigned int alarmid) lower = (struct stm32l4_lowerhalf_s *)arg; cbinfo = &lower->cbinfo[alarmid]; - /* Sample and clear the callback information to minimize the window in + /* Sample and clear the callback information to minimize the window in * time in which race conditions can occur. */ @@ -195,7 +196,6 @@ static void stm32l4_alarm_callback(FAR void *arg, unsigned int alarmid) { cb(priv, alarmid); } - } #endif /* CONFIG_RTC_ALARM */ @@ -298,7 +298,7 @@ static int stm32l4_settime(FAR struct rtc_lowerhalf_s *lower, #ifdef CONFIG_RTC_ALARM static int stm32l4_setalarm(FAR struct rtc_lowerhalf_s *lower, - FAR const struct lower_setalarm_s *alarminfo) + FAR const struct lower_setalarm_s *alarminfo) { FAR struct stm32l4_lowerhalf_s *priv; FAR struct stm32l4_cbinfo_s *cbinfo; @@ -367,7 +367,7 @@ static int stm32l4_setalarm(FAR struct rtc_lowerhalf_s *lower, #ifdef CONFIG_RTC_ALARM static int stm32l4_setrelative(FAR struct rtc_lowerhalf_s *lower, - FAR const struct lower_setrelative_s *alarminfo) + FAR const struct lower_setrelative_s *alarminfo) { struct lower_setalarm_s setalarm; struct tm time; @@ -380,7 +380,7 @@ static int stm32l4_setrelative(FAR struct rtc_lowerhalf_s *lower, if ((alarminfo->id == RTC_ALARMA || alarminfo->id == RTC_ALARMB) && alarminfo->reltime > 0) { - /* Disable preemption while we do this so that we don't have to worry + /* Disable pre-emption while we do this so that we don't have to worry * about being suspended and working on an old time. */ diff --git a/arch/arm/src/stm32l4/stm32l4_rtcc.c b/arch/arm/src/stm32l4/stm32l4_rtcc.c index 5dacc7a62d..eab4fa45e8 100644 --- a/arch/arm/src/stm32l4/stm32l4_rtcc.c +++ b/arch/arm/src/stm32l4/stm32l4_rtcc.c @@ -112,7 +112,8 @@ (rtc_bin2bcd((tm)->tm_min) << RTC_ALRMR_MNU_SHIFT) | \ (rtc_bin2bcd((tm)->tm_hour) << RTC_ALRMR_HU_SHIFT)) -/* need to ignore DATE/DOW part of alarm; rtc_reg_alrmr_bin2bcd only encodes hms */ +/* Need to ignore DATE/DOW part of alarm; rtc_reg_alrmr_bin2bcd only encodes hms */ + #define RTC_ALRMR_ENABLE (0x80000000) /* Debug ****************************************************************************/ @@ -995,8 +996,6 @@ int up_rtc_initialize(void) return OK; } - - /************************************************************************************ * Name: stm32l4_rtc_getdatetime_with_subseconds * @@ -1324,7 +1323,7 @@ int stm32l4_rtc_setalarm(FAR struct alm_setalarm_s *alminfo) * Name: stm32l4_rtc_cancelalarm * * Description: - * Cancel an alaram. + * Cancel an alarm. * * Input Parameters: * alarmid - Identifies the alarm to be cancelled @@ -1378,7 +1377,7 @@ int stm32l4_rtc_cancelalarm(enum alm_id_e alarmid) break; case RTC_ALARMB: - { + { /* Cancel the global callback function */ g_alarmcb[alarmid].ac_cb = NULL; @@ -1405,8 +1404,8 @@ int stm32l4_rtc_cancelalarm(enum alm_id_e alarmid) putreg32(-1, STM32L4_RTC_ALRMBR); modifyreg32(STM32L4_RTC_ISR, RTC_ISR_ALRBF, 0); rtc_wprlock(); - ret = OK; - } + ret = OK; + } break; default: -- GitLab From f4fa4799f76572ef0c77d2076b6aa22178f5bbee Mon Sep 17 00:00:00 2001 From: Sebastien Lorquet Date: Tue, 10 May 2016 11:09:15 -0600 Subject: [PATCH 129/307] Add a driver for SST26F spi/qspi flash devices (SPI mode only) --- drivers/mtd/Kconfig | 33 ++ drivers/mtd/Make.defs | 4 + drivers/mtd/sst26.c | 946 ++++++++++++++++++++++++++++++++++++++++ include/nuttx/mtd/mtd.h | 12 + 4 files changed, 995 insertions(+) create mode 100644 drivers/mtd/sst26.c diff --git a/drivers/mtd/Kconfig b/drivers/mtd/Kconfig index 3a3b8b7709..89f130ccb1 100644 --- a/drivers/mtd/Kconfig +++ b/drivers/mtd/Kconfig @@ -783,6 +783,39 @@ config SST25XX_MEMORY_TYPE endif # MTD_SST25XX +config MTD_SST26 + bool "SPI/QSPI-based SST26XX FLASHes (16,32,64-MBit)" + default n + select SPI + ---help--- + These part are also different from SST25 and SST25XX, they support both SPI and QSPI. + +if MTD_SST26 + +config SST26_SPIMODE + int "SST26 (Q)SPI Mode" + default 0 + +config SST26_SPIFREQUENCY + int "SST26 (Q)SPI Frequency" + default 64000000 + +config SST26_MANUFACTURER + hex "Manufacturers ID" + default 0xBF + ---help--- + Various manufacturers may have produced the parts. 0xBF is the manufacturer ID + for the parts manufactured by SST. + +config SST26_MEMORY_TYPE + hex "Memory type ID" + default 0x26 + ---help--- + The memory type for SST26VF0xx series is 0x26, but this can be modified if needed + to support compatible devices from different manufacturers. + +endif # MTD_SST26 + config MTD_SST39FV bool "SST39FV NOR FLASH" default n diff --git a/drivers/mtd/Make.defs b/drivers/mtd/Make.defs index a3a6eb7f20..1d1ba6d26b 100644 --- a/drivers/mtd/Make.defs +++ b/drivers/mtd/Make.defs @@ -88,6 +88,10 @@ ifeq ($(CONFIG_MTD_SST25XX),y) CSRCS += sst25xx.c endif +ifeq ($(CONFIG_MTD_SST26),y) +CSRCS += sst26.c +endif + ifeq ($(CONFIG_MTD_SST39FV),y) CSRCS += sst39vf.c endif diff --git a/drivers/mtd/sst26.c b/drivers/mtd/sst26.c new file mode 100644 index 0000000000..6790af7376 --- /dev/null +++ b/drivers/mtd/sst26.c @@ -0,0 +1,946 @@ +/************************************************************************************ + * drivers/mtd/sst26.c + * Driver for SPI-based or QSPI-based SST26VF parts of 32 or 64MBit. + * + * For smaller SST25 parts, use the sst25.c driver instead as support + * a different program mechanism (byte or word writing vs page writing + * supported in this driver). + * + * For SST25VF064, see sst25cxx.c driver instead. + * + * Copyright (C) 2009-2011, 2013, 2016 Gregory Nutt. All rights reserved. + * Author: Ken Pettit + * Author: Sebastien Lorquet + * + * Copied from / based on sst25.c driver written by + * Gregory Nutt + * Ken Pettit + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ************************************************************************************/ + +/************************************************************************************ + * Included Files + ************************************************************************************/ + +#include + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +/************************************************************************************ + * Pre-processor Definitions + ************************************************************************************/ + +/* Configuration ********************************************************************/ +/* Per the data sheet, SST26 parts can be driven with either SPI mode 0 (CPOL=0 and + * CPHA=0) or mode 3 (CPOL=1 and CPHA=1). So you may need to specify + * CONFIG_SST26_SPIMODE to select the best mode for your device. If + * CONFIG_SST26_SPIMODE is not defined, mode 0 will be used. + */ + +#ifndef CONFIG_SST26_SPIMODE +# define CONFIG_SST26_SPIMODE SPIDEV_MODE0 +#endif + +/* SPI Frequency. May be up to 104 MHz. */ + +#ifndef CONFIG_SST26_SPIFREQUENCY +# define CONFIG_SST26_SPIFREQUENCY 20000000 +#endif + +/* Various manufacturers may have produced the parts. 0xBF is the manufacturer ID + * for the SST serial FLASH. + */ + +#ifndef CONFIG_SST26_MANUFACTURER +# define CONFIG_SST26_MANUFACTURER 0xBF +#endif + +#ifndef CONFIG_SST26_MEMORY_TYPE +# define CONFIG_SST26_MEMORY_TYPE 0x25 +#endif + +/* SST26 Registers *******************************************************************/ +/* Indentification register values */ + +#define SST26_MANUFACTURER CONFIG_SST26_MANUFACTURER +#define SST26_MEMORY_TYPE CONFIG_SST26_MEMORY_TYPE + +#define SST26_SST26VF016_CAPACITY 0x41 /* 16 M-bit */ +#define SST26_SST26VF032_CAPACITY 0x42 /* 32 M-bit */ +#define SST26_SST26VF064_CAPACITY 0x43 /* 64 M-bit */ + +/* SST26VF016 capacity is 2,097,152 bytes: + * (512 sectors) * (4,096 bytes per sector) + * (8192 pages) * (256 bytes per page) + */ + +#define SST26_SST26VF016_SECTOR_SHIFT 12 /* Sector size 1 << 15 = 65,536 */ +#define SST26_SST26VF016_NSECTORS 512 +#define SST26_SST26VF016_PAGE_SHIFT 8 /* Page size 1 << 8 = 256 */ +#define SST26_SST26VF016_NPAGES 8192 + +/* SST26VF032 capacity is 4,194,304 bytes: + * (1,024 sectors) * (4,096 bytes per sector) + * (16,384 pages) * (256 bytes per page) + */ + +#define SST26_SST26VF032_SECTOR_SHIFT 12 /* Sector size 1 << 15 = 65,536 */ +#define SST26_SST26VF032_NSECTORS 1024 +#define SST26_SST26VF032_PAGE_SHIFT 8 /* Page size 1 << 8 = 256 */ +#define SST26_SST26VF032_NPAGES 16384 + +/* SST26VF064 capacity is 8,388,608 bytes: + * (2,048 sectors) * (4,096 bytes per sector) + * (32,768 pages) * (256 bytes per page) + */ + +#define SST26_SST26VF064_SECTOR_SHIFT 12 /* Sector size 1 << 15 = 65,536 */ +#define SST26_SST26VF064_NSECTORS 2048 +#define SST26_SST26VF064_PAGE_SHIFT 8 /* Page size 1 << 8 = 256 */ +#define SST26_SST26VF064_NPAGES 32768 + +/* Instructions */ +/* Command Value NN Description Addr Dummy Data */ +#define SST26_NOP 0x00 /* 14 No Operation 0 0 0 */ +#define SST26_RSTEN 0x66 /* 14 Reset Enable 0 0 0 */ +#define SST26_RST 0x99 /* 14 Reset Memory 0 0 0 */ +#define SST26_EQIO 0x38 /* 1 Enable Quad I/O 0 0 0 */ +#define SST26_RSTQIO 0xFF /* 4 Reset Quad I/O 0 0 0 */ +#define SST26_RDSR 0x05 /* 1 Read Status Register 0 0 >=1 */ + /* 4 Read Status Register 0 1 >=1 */ +#define SST26_WRSR 0x01 /* 14 Write Status Register 0 0 2 */ +#define SST26_RDCR 0x35 /* 1 Read Config Register 0 0 >=1 */ + /* 4 Read Config Register 0 1 >=1 */ + +#define SST26_READ 0x03 /* 1 Read Data Bytes 3 0 >=1 */ +#define SST26_FAST_READ 0x0b /* 1 Higher speed read 3 1 >=1 */ + /* 4 Higher speed read 3 3 >=1 */ +#define SST26_SQOR 0x6b /* 1 SQI Output Read 3 1 >=1 */ +#define SST26_SQIOR 0xeb /* 1 SQI I/O Read 3 3 >=1 */ +#define SST26_SDOR 0x3b /* 1 SDI Output Read 3 1 >=1 */ +#define SST26_SDIOR 0xbb /* 1 SDI I/O Read 3 1 >=1 */ +#define SST26_SB 0xc0 /* 14 Set Burst Length 0 0 1 */ +#define SST26_RBSQI 0x0c /* 4 SQI Read Burst w/ Wrap 3 3 >=1 */ +#define SST26_RBSPI 0xec /* 1 SPI Read Burst w/ Wrap 3 3 >=1 */ + +#define SST26_RDID 0x9f /* 1 Read Identification 0 0 >=3 */ +#define SST26_QRDID 0xaf /* 4 Quad Read Identification 0 1 >=3 */ +#define SST26_SFDP 0x5a /* 1 Serial Flash Discov. Par. 3 1 >=1 */ + +#define SST26_WREN 0x06 /* 14 Write Enable 0 0 0 */ +#define SST26_WRDI 0x04 /* 14 Write Disable 0 0 0 */ +#define SST26_SE 0x20 /* 14 Sector Erase 3 0 0 */ +#define SST26_BE 0xd8 /* 14 8/32/64K Block Erase 3 0 0 */ +#define SST26_CE 0xc7 /* 14 Chip Erase 0 0 0 */ +#define SST26_PP 0x02 /* 1 Page Program 3 0 1-256 */ +#define SST26_QPP 0x32 /* 1 Quad Page Program 3 0 1-256 */ +#define SST26_WRSU 0xb0 /* 14 Suspend Program/Erase 0 0 0 */ +#define SST26_WRRE 0x30 /* 14 Resume Program/Erase 0 0 0 */ + +#define SST26_RBPR 0x72 /* 1 Read Block-Protection reg 0 0 1-18 */ + /* 4 Read Block-Protection reg 0 1 1-18 */ +#define SST26_WBPR 0x42 /* 14 Write Block-Protection reg 0 0 1-18 */ +#define SST26_LBPR 0x8d /* 14 Lock down Block-Prot. reg 0 0 0 */ +#define SST26_NVWLDR 0xe8 /* 14 non-Volatile Write L-D reg 0 0 1-18 */ +#define SST26_ULBPR 0x98 /* 14 Global Block Protection unlock 0 0 0 */ +#define SST26_RSID 0x88 /* 14 Read Security ID 2 1 1-2048*/ + /* 4 Read Security ID 2 3 1-2048*/ +#define SST26_PSID 0xa5 /* 14 Program User Security ID area 2 0 1-256 */ +#define SST26_LSID 0x85 /* 14 Lockout Security ID programming 0 0 0 */ + +/* NOTE 1: All parts. + * NOTE 2: In SST26VF064 terminology, 0xd8 is block erase and 0x20 + * is a sector erase. Block erase provides a faster way to erase + * multiple 4K sectors at once. + */ + +/* Status register bit definitions */ + +#define SST26_SR_WIP (1 << 0) /* Bit 0: Write in progress */ +#define SST26_SR_WEL (1 << 1) /* Bit 1: Write enable latch */ +#define SST26_SR_WSE (1 << 2) /* Bit 2: Write Suspend-Erase Status */ +#define SST26_SR_WSP (1 << 3) /* Bit 3: Write Suspend-Program Status */ +#define SST26_SR_WPLD (1 << 4) /* Bit 4: Write Protection Lock-Down Status */ +#define SST26_SR_SEC (1 << 5) /* Bit 5: Security ID status */ +#define SST26_SR_RES (1 << 6) /* Bit 6: RFU */ +#define SST26_SR_WIP2 (1 << 7) /* Bit 7: Write in progress */ + +#define SST26_DUMMY 0xa5 + +/************************************************************************************ + * Private Types + ************************************************************************************/ + +/* This type represents the state of the MTD device. The struct mtd_dev_s + * must appear at the beginning of the definition so that you can freely + * cast between pointers to struct mtd_dev_s and struct sst26_dev_s. + */ + +struct sst26_dev_s +{ + struct mtd_dev_s mtd; /* MTD interface */ + FAR struct spi_dev_s *dev; /* Saved SPI interface instance */ + uint8_t sectorshift; + uint8_t pageshift; + uint16_t nsectors; + uint32_t npages; +}; + +/************************************************************************************ + * Private Function Prototypes + ************************************************************************************/ + +/* Helpers */ + +static void sst26_lock(FAR struct spi_dev_s *dev); +static inline void sst26_unlock(FAR struct spi_dev_s *dev); +static inline int sst26_readid(struct sst26_dev_s *priv); +static void sst26_waitwritecomplete(struct sst26_dev_s *priv); +static void sst26_writeenable(struct sst26_dev_s *priv); +static void sst26_globalunlock(struct sst26_dev_s *priv); +static inline void sst26_sectorerase(struct sst26_dev_s *priv, off_t offset, uint8_t type); +static inline int sst26_chiperase(struct sst26_dev_s *priv); +static inline void sst26_pagewrite(struct sst26_dev_s *priv, FAR const uint8_t *buffer, + off_t offset); + +/* MTD driver methods */ + +static int sst26_erase(FAR struct mtd_dev_s *dev, off_t startblock, size_t nblocks); +static ssize_t sst26_bread(FAR struct mtd_dev_s *dev, off_t startblock, + size_t nblocks, FAR uint8_t *buf); +static ssize_t sst26_bwrite(FAR struct mtd_dev_s *dev, off_t startblock, + size_t nblocks, FAR const uint8_t *buf); +static ssize_t sst26_read(FAR struct mtd_dev_s *dev, off_t offset, size_t nbytes, + FAR uint8_t *buffer); +#ifdef CONFIG_MTD_BYTE_WRITE +static ssize_t sst26_write(FAR struct mtd_dev_s *dev, off_t offset, size_t nbytes, + FAR const uint8_t *buffer); +#endif +static int sst26_ioctl(FAR struct mtd_dev_s *dev, int cmd, unsigned long arg); + +/************************************************************************************ + * Private Functions + ************************************************************************************/ + +/************************************************************************************ + * Name: sst26_lock + ************************************************************************************/ + +static void sst26_lock(FAR struct spi_dev_s *dev) +{ + /* On SPI busses where there are multiple devices, it will be necessary to + * lock SPI to have exclusive access to the busses for a sequence of + * transfers. The bus should be locked before the chip is selected. + * + * This is a blocking call and will not return until we have exclusiv access to + * the SPI buss. We will retain that exclusive access until the bus is unlocked. + */ + + (void)SPI_LOCK(dev, true); + + /* After locking the SPI bus, the we also need call the setfrequency, setbits, and + * setmode methods to make sure that the SPI is properly configured for the device. + * If the SPI buss is being shared, then it may have been left in an incompatible + * state. + */ + + SPI_SETMODE(dev, CONFIG_SST26_SPIMODE); + SPI_SETBITS(dev, 8); + (void)SPI_HWFEATURES(dev, 0); + (void)SPI_SETFREQUENCY(dev, CONFIG_SST26_SPIFREQUENCY); +} + +/************************************************************************************ + * Name: sst26_unlock + ************************************************************************************/ + +static inline void sst26_unlock(FAR struct spi_dev_s *dev) +{ + (void)SPI_LOCK(dev, false); +} + +/************************************************************************************ + * Name: sst26_readid + ************************************************************************************/ + +static inline int sst26_readid(struct sst26_dev_s *priv) +{ + uint16_t manufacturer; + uint16_t memory; + uint16_t capacity; + + fvdbg("priv: %p\n", priv); + + /* Lock the SPI bus, configure the bus, and select this FLASH part. */ + + sst26_lock(priv->dev); + SPI_SELECT(priv->dev, SPIDEV_FLASH, true); + + /* Send the "Read ID (RDID)" command and read the first three ID bytes */ + + (void)SPI_SEND(priv->dev, SST26_RDID); + manufacturer = SPI_SEND(priv->dev, SST26_DUMMY); + memory = SPI_SEND(priv->dev, SST26_DUMMY); + capacity = SPI_SEND(priv->dev, SST26_DUMMY); + + /* Deselect the FLASH and unlock the bus */ + + SPI_SELECT(priv->dev, SPIDEV_FLASH, false); + sst26_unlock(priv->dev); + + lldbg("manufacturer: %02x memory: %02x capacity: %02x\n", + manufacturer, memory, capacity); + + /* Check for a valid manufacturer and memory type */ + + if (manufacturer == SST26_MANUFACTURER && memory == SST26_MEMORY_TYPE) + { + /* Okay.. is it a FLASH capacity that we understand? */ + + if (capacity == SST26_SST26VF064_CAPACITY) + { + /* Save the FLASH geometry */ + + priv->sectorshift = SST26_SST26VF064_SECTOR_SHIFT; + priv->nsectors = SST26_SST26VF064_NSECTORS; + priv->pageshift = SST26_SST26VF064_PAGE_SHIFT; + priv->npages = SST26_SST26VF064_NPAGES; + return OK; + } + else if (capacity == SST26_SST26VF032_CAPACITY) + { + /* Save the FLASH geometry */ + + priv->sectorshift = SST26_SST26VF032_SECTOR_SHIFT; + priv->nsectors = SST26_SST26VF032_NSECTORS; + priv->pageshift = SST26_SST26VF032_PAGE_SHIFT; + priv->npages = SST26_SST26VF032_NPAGES; + return OK; + } + } + + return -ENODEV; +} + +/************************************************************************************ + * Name: sst26_waitwritecomplete + ************************************************************************************/ + +static void sst26_waitwritecomplete(struct sst26_dev_s *priv) +{ + uint8_t status; + + /* Loop as long as the memory is busy with a write cycle */ + + do + { + /* Select this FLASH part */ + + SPI_SELECT(priv->dev, SPIDEV_FLASH, true); + + /* Send "Read Status Register (RDSR)" command */ + + (void)SPI_SEND(priv->dev, SST26_RDSR); + + /* Send a dummy byte to generate the clock needed to shift out the status */ + + status = SPI_SEND(priv->dev, SST26_DUMMY); + + /* Deselect the FLASH */ + + SPI_SELECT(priv->dev, SPIDEV_FLASH, false); + + /* Given that writing could take up to few tens of milliseconds, and erasing + * could take more. The following short delay in the "busy" case will allow + * other peripherals to access the SPI bus. + */ + + if ((status & SST26_SR_WIP) != 0) + { + sst26_unlock(priv->dev); + usleep(1000); + sst26_lock(priv->dev); + } + } + while ((status & SST26_SR_WIP) != 0); + + fvdbg("Complete\n"); +} + +/************************************************************************************ + * Name: sst26_globalunlock + * Description: SST26 flashes are globally locked after startup. To allow writing, + * this command must be sent once. + ************************************************************************************/ + +static void sst26_globalunlock(struct sst26_dev_s *priv) +{ + /* Select this FLASH part */ + + SPI_SELECT(priv->dev, SPIDEV_FLASH, true); + + /* Send "Write Enable (WREN)" command */ + + (void)SPI_SEND(priv->dev, SST26_ULBPR); + + /* Deselect the FLASH */ + + SPI_SELECT(priv->dev, SPIDEV_FLASH, false); + + fvdbg("Device unlocked.\n"); +} + +/************************************************************************************ + * Name: sst26_writeenable + ************************************************************************************/ + +static void sst26_writeenable(struct sst26_dev_s *priv) +{ + /* Select this FLASH part */ + + SPI_SELECT(priv->dev, SPIDEV_FLASH, true); + + /* Send "Write Enable (WREN)" command */ + + (void)SPI_SEND(priv->dev, SST26_WREN); + + /* Deselect the FLASH */ + + SPI_SELECT(priv->dev, SPIDEV_FLASH, false); + + fvdbg("Enabled\n"); +} + +/************************************************************************************ + * Name: sst26_sectorerase (4k) + ************************************************************************************/ + +static void sst26_sectorerase(struct sst26_dev_s *priv, off_t sector, uint8_t type) +{ + off_t offset; + + offset = sector << priv->sectorshift; + + fvdbg("sector: %08lx\n", (long)sector); + + /* Send write enable instruction */ + + sst26_writeenable(priv); + + /* Select this FLASH part */ + + SPI_SELECT(priv->dev, SPIDEV_FLASH, true); + + /* Send the "Sector Erase (SE)" or "Block Erase (BE)" instruction + * that was passed in as the erase type. + */ + + (void)SPI_SEND(priv->dev, type); + + /* Send the sector offset high byte first. For all of the supported + * parts, the sector number is completely contained in the first byte + * and the values used in the following two bytes don't really matter. + */ + + (void)SPI_SEND(priv->dev, (offset >> 16) & 0xff); + (void)SPI_SEND(priv->dev, (offset >> 8) & 0xff); + (void)SPI_SEND(priv->dev, offset & 0xff); + + /* Deselect the FLASH */ + + SPI_SELECT(priv->dev, SPIDEV_FLASH, false); + + sst26_waitwritecomplete(priv); + + fvdbg("Erased\n"); +} + +/************************************************************************************ + * Name: sst26_chiperase + ************************************************************************************/ + +static inline int sst26_chiperase(struct sst26_dev_s *priv) +{ + fvdbg("priv: %p\n", priv); + + /* Send write enable instruction */ + + sst26_writeenable(priv); + + /* Select this FLASH part */ + + SPI_SELECT(priv->dev, SPIDEV_FLASH, true); + + /* Send the "Chip Erase (CE)" instruction */ + + (void)SPI_SEND(priv->dev, SST26_CE); + + /* Deselect the FLASH */ + + SPI_SELECT(priv->dev, SPIDEV_FLASH, false); + + sst26_waitwritecomplete(priv); + + fvdbg("Return: OK\n"); + return OK; +} + +/************************************************************************************ + * Name: sst26_pagewrite + ************************************************************************************/ + +static inline void sst26_pagewrite(struct sst26_dev_s *priv, + FAR const uint8_t *buffer, off_t page) +{ + off_t offset = page << priv->pageshift; + + fvdbg("page: %08lx offset: %08lx\n", (long)page, (long)offset); + + /* Enable the write access to the FLASH */ + + sst26_writeenable(priv); + + /* Select this FLASH part */ + + SPI_SELECT(priv->dev, SPIDEV_FLASH, true); + + /* Send "Page Program (PP)" command */ + + (void)SPI_SEND(priv->dev, SST26_PP); + + /* Send the page offset high byte first. */ + + (void)SPI_SEND(priv->dev, (offset >> 16) & 0xff); + (void)SPI_SEND(priv->dev, (offset >> 8) & 0xff); + (void)SPI_SEND(priv->dev, offset & 0xff); + + /* Then write the specified number of bytes */ + + SPI_SNDBLOCK(priv->dev, buffer, 1 << priv->pageshift); + + /* Deselect the FLASH: Chip Select high */ + + SPI_SELECT(priv->dev, SPIDEV_FLASH, false); + + sst26_waitwritecomplete(priv); + + fvdbg("Written\n"); +} + +/************************************************************************************ + * Name: sst26_bytewrite + ************************************************************************************/ + +#ifdef CONFIG_MTD_BYTE_WRITE +static inline void sst26_bytewrite(struct sst26_dev_s *priv, + FAR const uint8_t *buffer, off_t offset, + uint16_t count) +{ + fvdbg("offset: %08lx count:%d\n", (long)offset, count); + + /* Enable the write access to the FLASH */ + + sst26_writeenable(priv); + + /* Select this FLASH part */ + + SPI_SELECT(priv->dev, SPIDEV_FLASH, true); + + /* Send "Page Program (PP)" command */ + + (void)SPI_SEND(priv->dev, SST26_PP); + + /* Send the page offset high byte first. */ + + (void)SPI_SEND(priv->dev, (offset >> 16) & 0xff); + (void)SPI_SEND(priv->dev, (offset >> 8) & 0xff); + (void)SPI_SEND(priv->dev, offset & 0xff); + + /* Then write the specified number of bytes */ + + SPI_SNDBLOCK(priv->dev, buffer, count); + priv->lastwaswrite = true; + + /* Deselect the FLASH: Chip Select high */ + + SPI_SELECT(priv->dev, SPIDEV_FLASH, false); + + sst26_waitwritecomplete(priv); + + fvdbg("Written\n"); +} +#endif + +/* Driver routines */ + +/************************************************************************************ + * Name: sst26_erase + ************************************************************************************/ + +static int sst26_erase(FAR struct mtd_dev_s *dev, off_t startblock, size_t nblocks) +{ + FAR struct sst26_dev_s *priv = (FAR struct sst26_dev_s *)dev; + size_t blocksleft = nblocks; + + fvdbg("startblock: %08lx nblocks: %d\n", (long)startblock, (int)nblocks); + + /* Lock access to the SPI bus until we complete the erase */ + + sst26_lock(priv->dev); + while (blocksleft > 0) + { + /* SST26VF parts have complex block overlay structure for the moment + * we just erase in 4k blocks. + */ + + sst26_sectorerase(priv, startblock, SST26_SE); + startblock++; + blocksleft--; + } + + sst26_unlock(priv->dev); + return (int)nblocks; +} + +/************************************************************************************ + * Name: sst26_bread + ************************************************************************************/ + +static ssize_t sst26_bread(FAR struct mtd_dev_s *dev, off_t startblock, + size_t nblocks, FAR uint8_t *buffer) +{ + FAR struct sst26_dev_s *priv = (FAR struct sst26_dev_s *)dev; + ssize_t nbytes; + + fvdbg("startblock: %08lx nblocks: %d\n", (long)startblock, (int)nblocks); + + /* On this device, we can handle the block read just like the byte-oriented read */ + + nbytes = sst26_read(dev, startblock << priv->pageshift, nblocks << priv->pageshift, + buffer); + if (nbytes > 0) + { + return nbytes >> priv->pageshift; + } + + return (int)nbytes; +} + +/************************************************************************************ + * Name: sst26_bwrite + ************************************************************************************/ + +static ssize_t sst26_bwrite(FAR struct mtd_dev_s *dev, off_t startblock, size_t nblocks, + FAR const uint8_t *buffer) +{ + FAR struct sst26_dev_s *priv = (FAR struct sst26_dev_s *)dev; + size_t blocksleft = nblocks; + size_t pagesize = 1 << priv->pageshift; + + fvdbg("startblock: %08lx nblocks: %d\n", (long)startblock, (int)nblocks); + + /* Lock the SPI bus and write each page to FLASH */ + + sst26_lock(priv->dev); + while (blocksleft-- > 0) + { + sst26_pagewrite(priv, buffer, startblock); + buffer += pagesize; + startblock++; + } + + sst26_unlock(priv->dev); + return nblocks; +} + +/************************************************************************************ + * Name: sst26_read + ************************************************************************************/ + +static ssize_t sst26_read(FAR struct mtd_dev_s *dev, off_t offset, size_t nbytes, + FAR uint8_t *buffer) +{ + FAR struct sst26_dev_s *priv = (FAR struct sst26_dev_s *)dev; + + fvdbg("offset: %08lx nbytes: %d\n", (long)offset, (int)nbytes); + + /* Lock the SPI bus and select this FLASH part */ + + sst26_lock(priv->dev); + SPI_SELECT(priv->dev, SPIDEV_FLASH, true); + + /* Send "Read from Memory " instruction */ + + (void)SPI_SEND(priv->dev, SST26_FAST_READ); + + /* Send the page offset high byte first. */ + + (void)SPI_SEND(priv->dev, (offset >> 16) & 0xff); + (void)SPI_SEND(priv->dev, (offset >> 8) & 0xff); + (void)SPI_SEND(priv->dev, offset & 0xff); + + /* dummy read */ + (void)SPI_SEND(priv->dev, SST26_DUMMY); + + /* Then read all of the requested bytes */ + + SPI_RECVBLOCK(priv->dev, buffer, nbytes); + + /* Deselect the FLASH and unlock the SPI bus */ + + SPI_SELECT(priv->dev, SPIDEV_FLASH, false); + sst26_unlock(priv->dev); + fvdbg("return nbytes: %d\n", (int)nbytes); + return nbytes; +} + +/************************************************************************************ + * Name: sst26_write + ************************************************************************************/ + +#ifdef CONFIG_MTD_BYTE_WRITE +static ssize_t sst26_write(FAR struct mtd_dev_s *dev, off_t offset, size_t nbytes, + FAR const uint8_t *buffer) +{ + FAR struct sst26_dev_s *priv = (FAR struct sst26_dev_s *)dev; + int startpage; + int endpage; + int count; + int index; + int pagesize; + int bytestowrite; + + fvdbg("offset: %08lx nbytes: %d\n", (long)offset, (int)nbytes); + + /* We must test if the offset + count crosses one or more pages + * and perform individual writes. The devices can only write in + * page increments. + */ + + startpage = offset / (1 << priv->pageshift); + endpage = (offset + nbytes) / (1 << priv->pageshift); + + if (startpage == endpage) + { + /* All bytes within one programmable page. Just do the write. */ + + sst26_bytewrite(priv, buffer, offset, nbytes); + } + else + { + /* Write the 1st partial-page */ + + count = nbytes; + pagesize = (1 << priv->pageshift); + bytestowrite = pagesize - (offset & (pagesize-1)); + sst26_bytewrite(priv, buffer, offset, bytestowrite); + + /* Update offset and count */ + + offset += bytestowrite; + count -= bytestowrite; + index = bytestowrite; + + /* Write full pages */ + + while (count >= pagesize) + { + sst26_bytewrite(priv, &buffer[index], offset, pagesize); + + /* Update offset and count */ + + offset += pagesize; + count -= pagesize; + index += pagesize; + } + + /* Now write any partial page at the end */ + + if (count > 0) + { + sst26_bytewrite(priv, &buffer[index], offset, count); + } + + priv->lastwaswrite = true; + } + + return nbytes; +} +#endif /* CONFIG_MTD_BYTE_WRITE */ + +/************************************************************************************ + * Name: sst26_ioctl + ************************************************************************************/ + +static int sst26_ioctl(FAR struct mtd_dev_s *dev, int cmd, unsigned long arg) +{ + FAR struct sst26_dev_s *priv = (FAR struct sst26_dev_s *)dev; + int ret = -EINVAL; /* Assume good command with bad parameters */ + + fvdbg("cmd: %d \n", cmd); + + switch (cmd) + { + case MTDIOC_GEOMETRY: + { + FAR struct mtd_geometry_s *geo = (FAR struct mtd_geometry_s *)((uintptr_t)arg); + if (geo) + { + /* Populate the geometry structure with information need to know + * the capacity and how to access the device. + * + * NOTE: that the device is treated as though it where just an array + * of fixed size blocks. That is most likely not true, but the client + * will expect the device logic to do whatever is necessary to make it + * appear so. + */ + + geo->blocksize = (1 << priv->pageshift); + geo->erasesize = (1 << priv->sectorshift); + geo->neraseblocks = priv->nsectors; + + ret = OK; + + fvdbg("blocksize: %d erasesize: %d neraseblocks: %d\n", + geo->blocksize, geo->erasesize, geo->neraseblocks); + } + } + break; + + case MTDIOC_BULKERASE: + { + /* Erase the entire device */ + + sst26_lock(priv->dev); + ret = sst26_chiperase(priv); + sst26_unlock(priv->dev); + } + break; + + case MTDIOC_XIPBASE: + default: + ret = -ENOTTY; /* Bad command */ + break; + } + + fvdbg("return %d\n", ret); + return ret; +} + +/************************************************************************************ + * Public Functions + ************************************************************************************/ + +/************************************************************************************ + * Name: sst26_initialize + * + * Description: + * Create an initialize MTD device instance. MTD devices are not registered + * in the file system, but are created as instances that can be bound to + * other functions (such as a block or character driver front end). + * + ************************************************************************************/ + +FAR struct mtd_dev_s *sst26_initialize_spi(FAR struct spi_dev_s *dev) +{ + FAR struct sst26_dev_s *priv; + int ret; + + fvdbg("dev: %p\n", dev); + + /* Allocate a state structure (we allocate the structure instead of using + * a fixed, static allocation so that we can handle multiple FLASH devices. + * The current implementation would handle only one FLASH part per SPI + * device (only because of the SPIDEV_FLASH definition) and so would have + * to be extended to handle multiple FLASH parts on the same SPI bus. + */ + + priv = (FAR struct sst26_dev_s *)kmm_zalloc(sizeof(struct sst26_dev_s)); + if (priv) + { + /* Initialize the allocated structure. (unsupported methods were + * nullified by kmm_zalloc). + */ + + priv->mtd.erase = sst26_erase; + priv->mtd.bread = sst26_bread; + priv->mtd.bwrite = sst26_bwrite; + priv->mtd.read = sst26_read; +#ifdef CONFIG_MTD_BYTE_WRITE + priv->mtd.write = sst26_write; +#endif + priv->mtd.ioctl = sst26_ioctl; + priv->dev = dev; + + /* Deselect the FLASH */ + + SPI_SELECT(dev, SPIDEV_FLASH, false); + + /* Identify the FLASH chip and get its capacity */ + + ret = sst26_readid(priv); + if (ret != OK) + { + /* Unrecognized! Discard all of that work we just did and return NULL */ + + fdbg("Unrecognized\n"); + kmm_free(priv); + priv = NULL; + } + else + { + /* Make sure that the FLASH is unprotected so that we can write into it */ + + sst26_globalunlock(priv); + +#ifdef CONFIG_MTD_REGISTRATION + /* Register the MTD with the procfs system if enabled */ + + mtd_register(&priv->mtd, "sst26"); +#endif + } + } + + /* Return the implementation-specific state structure as the MTD device */ + + fvdbg("Return %p\n", priv); + return (FAR struct mtd_dev_s *)priv; +} diff --git a/include/nuttx/mtd/mtd.h b/include/nuttx/mtd/mtd.h index 80b1c4215d..8d1ee6db70 100644 --- a/include/nuttx/mtd/mtd.h +++ b/include/nuttx/mtd/mtd.h @@ -476,6 +476,18 @@ FAR struct mtd_dev_s *sst25_initialize(FAR struct spi_dev_s *dev); FAR struct mtd_dev_s *sst25xx_initialize(FAR struct spi_dev_s *dev); +/**************************************************************************** + * Name: sst26_initialize_spi + * + * Description: + * Initializes the driver for SPI-based SST26 FLASH + * + * Supports SST26VF016 SST26VF032 SST26VF064 + * + ****************************************************************************/ + +FAR struct mtd_dev_s *sst26_initialize_spi(FAR struct spi_dev_s *dev); + /**************************************************************************** * Name: sst39vf_initialize * -- GitLab From 88b79d305f0ef55a6682720e32055a3e5cf451fe Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 10 May 2016 11:14:27 -0600 Subject: [PATCH 130/307] Update ChangeLog --- ChangeLog | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/ChangeLog b/ChangeLog index 4f2191bba4..36062acd6e 100755 --- a/ChangeLog +++ b/ChangeLog @@ -11705,3 +11705,13 @@ naming problems. (2016-05-05). * arch/arm/src/samv7: Fix typo in MATRIX register definitions. From Stefan Kolb (2016-05-06). + * arch/arm/src/stm32l4: Problem with resetting backup domain clears + clocking options set up before in *rcc.c use INITS flag to avoid magic + reg value to detect power up reset state of RTC correct a problem + clearing interrupt flags (they weren't) which prevented an alarm from + ever being used more than once per reset cycl.e From Dave + dev@ziggurat29.com (2016-05-07). + * arch/arm/src/tiva: Fix a bug of GPIO falling-edge interrupt for tiva. + From Young (2016-05-07). + * drivrs/mtd: Add a driver for SST26F spi/qspi flash devices (SPI mode + only). From Sebastien Lorquet (2016-05-10). -- GitLab From e523c9339128079501ec5857161637b4b8d607f5 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 10 May 2016 15:44:06 -0600 Subject: [PATCH 131/307] Several Makefiles: Add .PHONY definitions to prevent 'clean up to date' message weirdness. --- ChangeLog | 2 ++ audio/Makefile | 1 + binfmt/Makefile | 3 ++- configs/Makefile | 5 +++-- crypto/Makefile | 3 ++- drivers/Makefile | 3 ++- fs/Makefile | 3 ++- lib/Makefile | 3 ++- libxx/Makefile | 3 ++- net/Makefile | 19 ++++++++++--------- wireless/Makefile | 1 + 11 files changed, 29 insertions(+), 17 deletions(-) diff --git a/ChangeLog b/ChangeLog index 36062acd6e..3c2bb980f5 100755 --- a/ChangeLog +++ b/ChangeLog @@ -11715,3 +11715,5 @@ From Young (2016-05-07). * drivrs/mtd: Add a driver for SST26F spi/qspi flash devices (SPI mode only). From Sebastien Lorquet (2016-05-10). + * Several Makefiles: Add .PHONY definitions to prevent 'clean up to date' + message weirdness (2016-05-10). diff --git a/audio/Makefile b/audio/Makefile index 33b3a26a79..42ee4ea319 100644 --- a/audio/Makefile +++ b/audio/Makefile @@ -62,6 +62,7 @@ OBJS = $(AOBJS) $(COBJS) BIN = libaudio$(LIBEXT) all: $(BIN) +.PHONY: depend clean distclean $(AOBJS): %$(OBJEXT): %.S $(call ASSEMBLE, $<, $@) diff --git a/binfmt/Makefile b/binfmt/Makefile index 5c5244d89b..7240ca9b15 100644 --- a/binfmt/Makefile +++ b/binfmt/Makefile @@ -1,7 +1,7 @@ ############################################################################ # nxflat/Makefile # -# Copyright (C) 2007-2009, 2012-2015 Gregory Nutt. All rights reserved. +# Copyright (C) 2007-2009, 2012-2016 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -80,6 +80,7 @@ BINFMT_OBJS = $(BINFMT_AOBJS) $(BINFMT_COBJS) BIN = libbinfmt$(LIBEXT) all: $(BIN) +.PHONY: depend clean distclean $(BINFMT_AOBJS): %$(OBJEXT): %.S $(call ASSEMBLE, $<, $@) diff --git a/configs/Makefile b/configs/Makefile index 4e96cc8dfd..496601da0b 100644 --- a/configs/Makefile +++ b/configs/Makefile @@ -1,7 +1,7 @@ ############################################################################ # configs/Makefile # -# Copyright (C) 2015 Gregory Nutt. All rights reserved. +# Copyright (C) 2015-2016 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -58,6 +58,7 @@ OBJS = $(AOBJS) $(COBJS) BIN = libconfigs$(LIBEXT) all: $(BIN) +.PHONY: depend clean distclean $(AOBJS): %$(OBJEXT): %.S $(call ASSEMBLE, $<, $@) @@ -84,4 +85,4 @@ distclean: clean $(call DELFILE, Make.dep) $(call DELFILE, .depend) --include Make.dep \ No newline at end of file +-include Make.dep diff --git a/crypto/Makefile b/crypto/Makefile index c56640534e..23b4cf137e 100644 --- a/crypto/Makefile +++ b/crypto/Makefile @@ -1,7 +1,7 @@ ############################################################################ # crypto/Makefile # -# Copyright (C) 2007, 2008, 2011-2014 Gregory Nutt. All rights reserved. +# Copyright (C) 2007, 2008, 2011-2014, 2016 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -70,6 +70,7 @@ OBJS = $(AOBJS) $(COBJS) BIN = libcrypto$(LIBEXT) all: $(BIN) +.PHONY: depend clean distclean $(AOBJS): %$(OBJEXT): %.S $(call ASSEMBLE, $<, $@) diff --git a/drivers/Makefile b/drivers/Makefile index 025444990f..224cd78f6e 100644 --- a/drivers/Makefile +++ b/drivers/Makefile @@ -1,7 +1,7 @@ ############################################################################ # drivers/Makefile # -# Copyright (C) 2007-2014 Gregory Nutt. All rights reserved. +# Copyright (C) 2007-2014, 2016 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -108,6 +108,7 @@ OBJS = $(AOBJS) $(COBJS) BIN = libdrivers$(LIBEXT) all: $(BIN) +.PHONY: depend clean distclean $(AOBJS): %$(OBJEXT): %.S $(call ASSEMBLE, $<, $@) diff --git a/fs/Makefile b/fs/Makefile index e60af07ae0..5ef45f84ee 100644 --- a/fs/Makefile +++ b/fs/Makefile @@ -1,7 +1,7 @@ ############################################################################ # fs/Makefile # -# Copyright (C) 2007, 2008, 2011-2014 Gregory Nutt. All rights reserved. +# Copyright (C) 2007, 2008, 2011-2014, 2016 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -84,6 +84,7 @@ OBJS = $(AOBJS) $(COBJS) BIN = libfs$(LIBEXT) all: $(BIN) +.PHONY: depend clean distclean $(AOBJS): %$(OBJEXT): %.S $(call ASSEMBLE, $<, $@) diff --git a/lib/Makefile b/lib/Makefile index 58857dbd41..92a774d28a 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -1,7 +1,7 @@ ############################################################################ # lib/Makefile # -# Copyright (C) 2012 Gregory Nutt. All rights reserved. +# Copyright (C) 2012, 2016 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -36,6 +36,7 @@ -include $(TOPDIR)/Make.defs all: +.PHONY: depend clean distclean depend: diff --git a/libxx/Makefile b/libxx/Makefile index 2fee701186..02402dbf7d 100644 --- a/libxx/Makefile +++ b/libxx/Makefile @@ -1,7 +1,7 @@ ############################################################################ # libxx/Makefile # -# Copyright (C) 2009, 2012 Gregory Nutt. All rights reserved. +# Copyright (C) 2009, 2012, 2016 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -88,6 +88,7 @@ OBJS = $(AOBJS) $(COBJS) $(CXXOBJS) BIN = libcxx$(LIBEXT) all: $(BIN) +.PHONY: depend clean distclean $(AOBJS): %$(OBJEXT): %.S $(call ASSEMBLE, $<, $@) diff --git a/net/Makefile b/net/Makefile index 5cfc2349e2..2487ce9609 100644 --- a/net/Makefile +++ b/net/Makefile @@ -1,7 +1,7 @@ ############################################################################ # net/Makefile # -# Copyright (C) 2007, 2008, 2011-2015 Gregory Nutt. All rights reserved. +# Copyright (C) 2007, 2008, 2011-2016 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -75,18 +75,19 @@ include procfs/Make.defs include utils/Make.defs endif -ASRCS = $(SOCK_ASRCS) $(NETDEV_ASRCS) $(NET_ASRCS) -AOBJS = $(ASRCS:.S=$(OBJEXT)) +ASRCS = $(SOCK_ASRCS) $(NETDEV_ASRCS) $(NET_ASRCS) +AOBJS = $(ASRCS:.S=$(OBJEXT)) -CSRCS = $(SOCK_CSRCS) $(NETDEV_CSRCS) $(NET_CSRCS) -COBJS = $(CSRCS:.c=$(OBJEXT)) +CSRCS = $(SOCK_CSRCS) $(NETDEV_CSRCS) $(NET_CSRCS) +COBJS = $(CSRCS:.c=$(OBJEXT)) -SRCS = $(ASRCS) $(CSRCS) -OBJS = $(AOBJS) $(COBJS) +SRCS = $(ASRCS) $(CSRCS) +OBJS = $(AOBJS) $(COBJS) -BIN = libnet$(LIBEXT) +BIN = libnet$(LIBEXT) -all: $(BIN) +all: $(BIN) +.PHONY: depend clean distclean $(AOBJS): %$(OBJEXT): %.S $(call ASSEMBLE, $<, $@) diff --git a/wireless/Makefile b/wireless/Makefile index 85f69bd118..008d23ff1c 100644 --- a/wireless/Makefile +++ b/wireless/Makefile @@ -69,6 +69,7 @@ OBJS = $(AOBJS) $(COBJS) BIN = libwireless$(LIBEXT) all: $(BIN) +.PHONY: depend clean distclean $(AOBJS): %$(OBJEXT): %.S $(call ASSEMBLE, $<, $@) -- GitLab From b096ea077f53445d41435aa95f3318a2350a0e02 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 10 May 2016 16:40:47 -0600 Subject: [PATCH 132/307] Fix some typos in the ChangeLog --- ChangeLog | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3c2bb980f5..455ccb8c46 100755 --- a/ChangeLog +++ b/ChangeLog @@ -11700,7 +11700,7 @@ dev@ziggurat29.com (2016-05-03). * Makefile.unix and tools/mkexport.sh: Pass top-level make to the script to allow -j greater than 1. From David Sidrane (2016-05-04). - * arch/arm/src/stm32, sm32f7, stm32l4: Fix typo in variable name in + * arch/arm/src/stm32, stm32f7, stm32l4: Fix typo in variable name in serial BREAK logic. Review other serial implementations for similar naming problems. (2016-05-05). * arch/arm/src/samv7: Fix typo in MATRIX register definitions. From @@ -11709,11 +11709,12 @@ clocking options set up before in *rcc.c use INITS flag to avoid magic reg value to detect power up reset state of RTC correct a problem clearing interrupt flags (they weren't) which prevented an alarm from - ever being used more than once per reset cycl.e From Dave + ever being used more than once per reset cycle. From Dave dev@ziggurat29.com (2016-05-07). * arch/arm/src/tiva: Fix a bug of GPIO falling-edge interrupt for tiva. From Young (2016-05-07). * drivrs/mtd: Add a driver for SST26F spi/qspi flash devices (SPI mode only). From Sebastien Lorquet (2016-05-10). * Several Makefiles: Add .PHONY definitions to prevent 'clean up to date' - message weirdness (2016-05-10). + message weirdness when 'make clean' is done with no .config or Make.defs + file (2016-05-10). -- GitLab From 3c594b5ba1c70031b1412527f782a1b8c2e9ddde Mon Sep 17 00:00:00 2001 From: Sebastien Lorquet Date: Wed, 11 May 2016 06:48:30 -0600 Subject: [PATCH 133/307] Allows the use of tmpfs when no block driver is available. This is correctly done to define NONBDFS but below the structure is not where it should be. --- fs/mount/fs_mount.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/fs/mount/fs_mount.c b/fs/mount/fs_mount.c index 8357aabcb1..f3ab72bc93 100644 --- a/fs/mount/fs_mount.c +++ b/fs/mount/fs_mount.c @@ -103,9 +103,6 @@ extern const struct mountpt_operations fat_operations; #ifdef CONFIG_FS_ROMFS extern const struct mountpt_operations romfs_operations; #endif -#ifdef CONFIG_FS_TMPFS -extern const struct mountpt_operations tmpfs_operations; -#endif #ifdef CONFIG_FS_SMARTFS extern const struct mountpt_operations smartfs_operations; #endif @@ -129,6 +126,9 @@ static const struct fsmap_t g_bdfsmap[] = #ifdef CONFIG_FS_NXFFS extern const struct mountpt_operations nxffs_operations; #endif +#ifdef CONFIG_FS_TMPFS +extern const struct mountpt_operations tmpfs_operations; +#endif #ifdef CONFIG_NFS extern const struct mountpt_operations nfs_operations; #endif -- GitLab From 9eeb8634fc29974f65a35503f2be2a9e761a6f62 Mon Sep 17 00:00:00 2001 From: Frank Benkert Date: Wed, 11 May 2016 07:10:17 -0600 Subject: [PATCH 134/307] Improve the CAN error reporting by also report internal device driver errors. --- drivers/can.c | 50 +++++++++++++++++++++++++++++++++++++++++++++ include/nuttx/can.h | 11 +++++++++- 2 files changed, 60 insertions(+), 1 deletion(-) diff --git a/drivers/can.c b/drivers/can.c index 4cca6c0dbb..2454f06c2d 100644 --- a/drivers/can.c +++ b/drivers/can.c @@ -522,6 +522,44 @@ static ssize_t can_read(FAR struct file *filep, FAR char *buffer, /* Interrupts must be disabled while accessing the cd_recv FIFO */ flags = enter_critical_section(); + +#ifdef CONFIG_CAN_ERRORS + /* Check for internal errors */ + + if (dev->cd_error != 0) + { + FAR struct can_msg_s *msg; + + /* Detected an internal driver error. Generate a + * CAN_ERROR_MESSAGE + */ + + if (buflen < CAN_MSGLEN(CAN_ERROR_DLC)) + { + goto return_with_irqdisabled; + } + + msg = (FAR struct can_msg_s *)buffer; + msg->cm_hdr.ch_id = CAN_ERROR_INTERNAL; + msg->cm_hdr.ch_dlc = CAN_ERROR_DLC; + msg->cm_hdr.ch_rtr = 0; + msg->cm_hdr.ch_error = 1; +#ifdef CONFIG_CAN_EXTID + msg->cm_hdr.ch_extid = 0; +#endif + msg->cm_hdr.ch_unused = 0; + memset(&(msg->cm_data), 0, CAN_ERROR_DLC); + msg->cm_data[5] = dev->cd_error; + + /* Reset the error flag */ + + dev->cd_error = 0; + + ret = CAN_MSGLEN(CAN_ERROR_DLC); + goto return_with_irqdisabled; + } +#endif /* CONFIG_CAN_ERRORS */ + while (dev->cd_recv.rx_head == dev->cd_recv.rx_tail) { /* The receive FIFO is empty -- was non-blocking mode selected? */ @@ -540,6 +578,7 @@ static ssize_t can_read(FAR struct file *filep, FAR char *buffer, ret = sem_wait(&dev->cd_recv.rx_sem); } while (ret >= 0 && dev->cd_recv.rx_head == dev->cd_recv.rx_tail); + dev->cd_nrxwaiters--; if (ret < 0) @@ -927,6 +966,9 @@ int can_register(FAR const char *path, FAR struct can_dev_s *dev) dev->cd_ntxwaiters = 0; dev->cd_nrxwaiters = 0; dev->cd_npendrtr = 0; +#ifdef CONFIG_CAN_ERRORS + dev->cd_error = 0; +#endif sem_init(&dev->cd_xmit.tx_sem, 0, 0); sem_init(&dev->cd_recv.rx_sem, 0, 0); @@ -1073,6 +1115,14 @@ int can_receive(FAR struct can_dev_s *dev, FAR struct can_hdr_s *hdr, err = OK; } +#ifdef CONFIG_CAN_ERRORS + else + { + /* Report rx overflow error */ + + dev->cd_error |= CAN_ERROR5_RXOVERFLOW; + } +#endif return err; } diff --git a/include/nuttx/can.h b/include/nuttx/can.h index 6f8b3d72aa..573edd16b2 100644 --- a/include/nuttx/can.h +++ b/include/nuttx/can.h @@ -219,7 +219,8 @@ # define CAN_ERROR_BUSOFF (1 << 6) /* Bit 6: Bus off */ # define CAN_ERROR_BUSERROR (1 << 7) /* Bit 7: Bus error */ # define CAN_ERROR_RESTARTED (1 << 8) /* Bit 8: Controller restarted */ - /* Bits 9-10: Available */ +# define CAN_ERROR_INTERNAL (1 << 9) /* Bit 9: Stack internal error (See CAN_ERROR5_* definitions) */ + /* Bit 10: Available */ /* The remaining definitions described the error report payload that follows the * CAN header. @@ -295,6 +296,11 @@ # define CANL_ERROR4_SHORT2GND 0x40 # define CANL_ERROR4_SHORT2CANH 0x50 +/* Data[5]: Error status of stack internals */ + +# define CAN_ERROR5_UNSPEC 0x00 /* Unspecified error */ +# define CAN_ERROR5_RXOVERFLOW (1 << 0) /* Bit 0: RX buffer overflow */ + #endif /* CONFIG_CAN_ERRORS */ /* CAN filter support ***************************************************************/ @@ -494,6 +500,9 @@ struct can_dev_s uint8_t cd_npendrtr; /* Number of pending RTR messages */ volatile uint8_t cd_ntxwaiters; /* Number of threads waiting to enqueue a message */ volatile uint8_t cd_nrxwaiters; /* Number of threads waiting to receive a message */ +#ifdef CONFIG_CAN_ERRORS + uint8_t cd_error; /* Flags to indicate internal device errors */ +#endif sem_t cd_closesem; /* Locks out new opens while close is in progress */ struct can_txfifo_s cd_xmit; /* Describes transmit FIFO */ struct can_rxfifo_s cd_recv; /* Describes receive FIFO */ -- GitLab From 60382e7dcffe37c853036a21b0172cfc6878e60c Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 11 May 2016 09:52:32 -0600 Subject: [PATCH 135/307] fs/Kconfig: Allow CONFIG_FS_WRITABLE to be manually selected --- fs/Kconfig | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/fs/Kconfig b/fs/Kconfig index 8f25c3d43f..d9f987fe08 100644 --- a/fs/Kconfig +++ b/fs/Kconfig @@ -43,10 +43,20 @@ config DISABLE_PSEUDOFS_OPERATIONS config FS_READABLE bool default n + ---help--- + Automatically selected if any readable file system is selected config FS_WRITABLE - bool + bool "Writable file system" default n + ---help--- + Automatically selected if any writable file system is selected. + This selection will disable support for writing in all block drivers + and also the block-to-character (BCH) layer and the MTD FTL layer. + + This selection can also be manually selected. You might want to do + this if there are no writable file systems enabled, but you still + want support for write access in block drivers and/or FTL. source fs/aio/Kconfig source fs/semaphore/Kconfig -- GitLab From a2a6c0b9a5a716dd5401173d3dadc7f7416b238d Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 11 May 2016 09:54:33 -0600 Subject: [PATCH 136/307] Improve some Kconfig help comments --- fs/Kconfig | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/fs/Kconfig b/fs/Kconfig index d9f987fe08..85c7c20fd2 100644 --- a/fs/Kconfig +++ b/fs/Kconfig @@ -50,9 +50,10 @@ config FS_WRITABLE bool "Writable file system" default n ---help--- - Automatically selected if any writable file system is selected. - This selection will disable support for writing in all block drivers - and also the block-to-character (BCH) layer and the MTD FTL layer. + Automatically selected if any writable file system is selected. If + not selected, disable support for writing will be disabled in all + block drivers and also the block-to-character (BCH) layer and the + MTD FTL layer. This selection can also be manually selected. You might want to do this if there are no writable file systems enabled, but you still -- GitLab From d5be40be5fe88b701c66094d38f8500a674944d3 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 11 May 2016 10:01:43 -0600 Subject: [PATCH 137/307] Remove CONFIG_FS_READABLE/WRITABLE logic from tools/mkconfig.c. This logic has been replaced with proper logic in the Kconfig files, it is out of date and an ongoing maintenance problem, and it shoulw not be necessary. --- fs/Kconfig | 6 +++--- tools/mkconfig.c | 12 ------------ 2 files changed, 3 insertions(+), 15 deletions(-) diff --git a/fs/Kconfig b/fs/Kconfig index 85c7c20fd2..150bbcdde9 100644 --- a/fs/Kconfig +++ b/fs/Kconfig @@ -51,9 +51,9 @@ config FS_WRITABLE default n ---help--- Automatically selected if any writable file system is selected. If - not selected, disable support for writing will be disabled in all - block drivers and also the block-to-character (BCH) layer and the - MTD FTL layer. + not selected, support for writing will be disabled in all block + drivers and also the block-to-character (BCH) layer and the MTD FTL + layer. This selection can also be manually selected. You might want to do this if there are no writable file systems enabled, but you still diff --git a/tools/mkconfig.c b/tools/mkconfig.c index 70160aa0bb..68f9e770e5 100644 --- a/tools/mkconfig.c +++ b/tools/mkconfig.c @@ -225,18 +225,6 @@ int main(int argc, char **argv, char **envp) printf("# undef CONFIG_FS_BINFS\n"); printf("# undef CONFIG_NFS\n"); printf("#endif\n\n"); - printf("/* Check if any readable and writable filesystem (OR USB storage) is supported */\n\n"); - printf("#if defined(CONFIG_FS_FAT) || defined(CONFIG_FS_ROMFS) || defined(CONFIG_USBMSC) || \\\n"); - printf(" defined(CONFIG_FS_NXFFS) || defined(CONFIG_FS_SMARTFS) || defined(CONFIG_FS_BINFS) || \\\n"); - printf(" defined(CONFIG_NFS) || defined(CONFIG_FS_PROCFS)\n"); - printf("# undef CONFIG_FS_READABLE\n"); - printf("# define CONFIG_FS_READABLE 1\n"); - printf("#endif\n\n"); - printf("#if defined(CONFIG_FS_FAT) || defined(CONFIG_USBMSC) || defined(CONFIG_FS_NXFFS) || \\\n"); - printf(" defined(CONFIG_FS_SMARTFS) || defined(CONFIG_NFS)\n"); - printf("# undef CONFIG_FS_WRITABLE\n"); - printf("# define CONFIG_FS_WRITABLE 1\n"); - printf("#endif\n\n"); printf("/* There can be no network support with no socket descriptors */\n\n"); printf("#if CONFIG_NSOCKET_DESCRIPTORS <= 0\n"); printf("# undef CONFIG_NET\n"); -- GitLab From ef6edb60947680c39cacc5d04b840bea160dc4fa Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 11 May 2016 10:10:14 -0600 Subject: [PATCH 138/307] tools/mkconfig.c: Go further... remove all autogenerated sanity checks from the config.h header file --- tools/mkconfig.c | 172 +---------------------------------------------- 1 file changed, 1 insertion(+), 171 deletions(-) diff --git a/tools/mkconfig.c b/tools/mkconfig.c index 68f9e770e5..15a2a34304 100644 --- a/tools/mkconfig.c +++ b/tools/mkconfig.c @@ -98,178 +98,8 @@ int main(int argc, char **argv, char **envp) printf("/* config.h -- Autogenerated! Do not edit. */\n\n"); printf("#ifndef __INCLUDE_NUTTX_CONFIG_H\n"); printf("#define __INCLUDE_NUTTX_CONFIG_H\n\n"); - printf("/* Architecture-specific options *************************/\n\n"); generate_definitions(stream); - printf("\n/* Sanity Checks *****************************************/\n\n"); - printf("/* If this is an NXFLAT, external build, then make sure that\n"); - printf(" * NXFLAT support is enabled in the base code.\n"); - printf(" */\n\n"); - printf("#if defined(__NXFLAT__) && !defined(CONFIG_NXFLAT)\n"); - printf("# error \"NXFLAT support not enabled in this configuration\"\n"); - printf("#endif\n\n"); - printf("/* NXFLAT requires PIC support in the TCBs. */\n\n"); - printf("#if defined(CONFIG_NXFLAT)\n"); - printf("# undef CONFIG_PIC\n"); - printf("# define CONFIG_PIC 1\n"); - printf("#endif\n\n"); - printf("/* Binary format support is disabled if no binary formats are\n"); - printf(" * configured (at present, NXFLAT is the only supported binary.\n"); - printf(" * format).\n"); - printf(" */\n\n"); - printf("#if !defined(CONFIG_NXFLAT) && !defined(CONFIG_ELF) && !defined(CONFIG_BUILTIN)\n"); - printf("# undef CONFIG_BINFMT_DISABLE\n"); - printf("# define CONFIG_BINFMT_DISABLE 1\n"); - printf("#endif\n\n"); - printf("/* The correct way to disable RR scheduling is to set the\n"); - printf(" * timeslice to zero.\n"); - printf(" */\n\n"); - printf("#ifndef CONFIG_RR_INTERVAL\n"); - printf("# define CONFIG_RR_INTERVAL 0\n"); - printf("#endif\n\n"); - printf("/* The correct way to disable filesystem supuport is to set the number of\n"); - printf(" * file descriptors to zero.\n"); - printf(" */\n\n"); - printf("#ifndef CONFIG_NFILE_DESCRIPTORS\n"); - printf("# define CONFIG_NFILE_DESCRIPTORS 0\n"); - printf("#endif\n\n"); - printf("/* If a console is selected, then make sure that there are resources for\n"); - printf(" * three file descriptors and, if any streams are selected, also for three\n"); - printf(" * file streams.\n"); - printf(" *\n"); - printf(" * CONFIG_DEV_CONSOLE means that a builtin console device exists at /dev/console\n"); - printf(" * and can be opened during boot-up. Other consoles, such as USB consoles, may\n"); - printf(" * not exist at boot-upand have to be handled in a different way. Three file\n"); - printf(" * descriptors and three file streams are still needed.\n"); - printf(" */\n\n"); - printf("#if defined(CONFIG_DEV_CONSOLE) || defined(CONFIG_CDCACM_CONSOLE) || \\\n"); - printf(" defined(CONFIG_PL2303_CONSOLE)\n"); - printf("# if CONFIG_NFILE_DESCRIPTORS < 3\n"); - printf("# undef CONFIG_NFILE_DESCRIPTORS\n"); - printf("# define CONFIG_NFILE_DESCRIPTORS 3\n"); - printf("# endif\n\n"); - printf("# if CONFIG_NFILE_STREAMS > 0 && CONFIG_NFILE_STREAMS < 3\n"); - printf("# undef CONFIG_NFILE_STREAMS\n"); - printf("# define CONFIG_NFILE_STREAMS 3\n"); - printf("# endif\n\n"); - printf("/* If no console is selected, then disable all builtin console devices */\n\n"); - printf("#else\n"); - printf("# undef CONFIG_DEV_LOWCONSOLE\n"); - printf("# undef CONFIG_RAMLOG_CONSOLE\n"); - printf("#endif\n\n"); - printf("/* If priority inheritance is disabled, then do not allocate any\n"); - printf(" * associated resources.\n"); - printf(" */\n\n"); - printf("#if !defined(CONFIG_PRIORITY_INHERITANCE) || !defined(CONFIG_SEM_PREALLOCHOLDERS)\n"); - printf("# undef CONFIG_SEM_PREALLOCHOLDERS\n"); - printf("# define CONFIG_SEM_PREALLOCHOLDERS 0\n"); - printf("#endif\n\n"); - printf("#if !defined(CONFIG_PRIORITY_INHERITANCE) || !defined(CONFIG_SEM_NNESTPRIO)\n"); - printf("# undef CONFIG_SEM_NNESTPRIO\n"); - printf("# define CONFIG_SEM_NNESTPRIO 0\n"); - printf("#endif\n\n"); - printf("/* If no file descriptors are configured, then make certain no\n"); - printf(" * streams are configured either.\n"); - printf(" */\n\n"); - printf("#if CONFIG_NFILE_DESCRIPTORS == 0\n"); - printf("# undef CONFIG_NFILE_STREAMS\n"); - printf("# define CONFIG_NFILE_STREAMS 0\n"); - printf("#endif\n\n"); - printf("/* There must be at least one memory region. */\n\n"); - printf("#ifndef CONFIG_MM_REGIONS\n"); - printf("# define CONFIG_MM_REGIONS 1\n"); - printf("#endif\n\n"); - printf("/* If the end of RAM is not specified then it is assumed to be the beginning\n"); - printf(" * of RAM plus the RAM size.\n"); - printf(" */\n\n"); - printf("#ifndef CONFIG_RAM_END\n"); - printf("# define CONFIG_RAM_END (CONFIG_RAM_START+CONFIG_RAM_SIZE)\n"); - printf("#endif\n\n"); - printf("#ifndef CONFIG_RAM_VEND\n"); - printf("# define CONFIG_RAM_VEND (CONFIG_RAM_VSTART+CONFIG_RAM_SIZE)\n"); - printf("#endif\n\n"); - printf("/* If the end of FLASH is not specified then it is assumed to be the beginning\n"); - printf(" * of FLASH plus the FLASH size.\n"); - printf(" */\n\n"); - printf("#ifndef CONFIG_FLASH_END\n"); - printf("# define CONFIG_FLASH_END (CONFIG_FLASH_START+CONFIG_FLASH_SIZE)\n"); - printf("#endif\n\n"); - printf("/* If no file streams are configured, then make certain that buffered I/O\n"); - printf(" * support is disabled\n"); - printf(" */\n\n"); - printf("#if CONFIG_NFILE_STREAMS == 0\n"); - printf("# undef CONFIG_STDIO_BUFFER_SIZE\n"); - printf("# define CONFIG_STDIO_BUFFER_SIZE 0\n"); - printf("#endif\n\n"); - printf("/* If no standard C buffered I/O is not supported, then line-oriented buffering\n"); - printf(" * cannot be supported.\n"); - printf(" */\n\n"); - printf("#if CONFIG_STDIO_BUFFER_SIZE == 0\n"); - printf("# undef CONFIG_STDIO_LINEBUFFER\n"); - printf("#endif\n\n"); - printf("/* If the maximum message size is zero, then we assume that message queues\n"); - printf(" * support should be disabled\n"); - printf(" */\n\n"); - printf("#if !defined(CONFIG_MQ_MAXMSGSIZE) || defined(CONFIG_DISABLE_MQUEUE)\n"); - printf("# undef CONFIG_MQ_MAXMSGSIZE\n"); - printf("# define CONFIG_MQ_MAXMSGSIZE 0\n"); - printf("#endif\n\n"); - printf("#if CONFIG_MQ_MAXMSGSIZE <= 0 && !defined(CONFIG_DISABLE_MQUEUE)\n"); - printf("# define CONFIG_DISABLE_MQUEUE 1\n"); - printf("#endif\n\n"); - printf("/* If mountpoint support in not included, then no filesystem can be supported */\n\n"); - printf("#ifdef CONFIG_DISABLE_MOUNTPOINT\n"); - printf("# undef CONFIG_FS_FAT\n"); - printf("# undef CONFIG_FS_ROMFS\n"); - printf("# undef CONFIG_FS_NXFFS\n"); - printf("# undef CONFIG_FS_SMARTFS\n"); - printf("# undef CONFIG_FS_BINFS\n"); - printf("# undef CONFIG_NFS\n"); - printf("#endif\n\n"); - printf("/* There can be no network support with no socket descriptors */\n\n"); - printf("#if CONFIG_NSOCKET_DESCRIPTORS <= 0\n"); - printf("# undef CONFIG_NET\n"); - printf("#endif\n\n"); - printf("/* Conversely, if there is no network support, there is no need for\n"); - printf(" * socket descriptors\n"); - printf(" */\n\n"); - printf("#ifndef CONFIG_NET\n"); - printf("# undef CONFIG_NSOCKET_DESCRIPTORS\n"); - printf("# define CONFIG_NSOCKET_DESCRIPTORS 0\n"); - printf("#endif\n\n"); - printf("/* Protocol support can only be provided on top of basic network support */\n\n"); - printf("#ifndef CONFIG_NET\n"); - printf("# undef CONFIG_NET_TCP\n"); - printf("# undef CONFIG_NET_UDP\n"); - printf("# undef CONFIG_NET_ICMP\n"); - printf("#endif\n\n"); - printf("/* NFS client can only be provided on top of UDP network support */\n\n"); - printf("#if !defined(CONFIG_NET) || !defined(CONFIG_NET_UDP)\n"); - printf("# undef CONFIG_NFS\n"); - printf("#endif\n\n"); - printf("/* Verbose debug and sub-system debug only make sense if debug is enabled */\n\n"); - printf("#ifndef CONFIG_DEBUG\n"); - printf("# undef CONFIG_DEBUG_VERBOSE\n"); - printf("# undef CONFIG_DEBUG_SCHED\n"); - printf("# undef CONFIG_DEBUG_MM\n"); - printf("# undef CONFIG_DEBUG_PAGING\n"); - printf("# undef CONFIG_DEBUG_DMA\n"); - printf("# undef CONFIG_DEBUG_FS\n"); - printf("# undef CONFIG_DEBUG_LIB\n"); - printf("# undef CONFIG_DEBUG_BINFMT\n"); - printf("# undef CONFIG_DEBUG_NET\n"); - printf("# undef CONFIG_DEBUG_USB\n"); - printf("# undef CONFIG_DEBUG_GRAPHICS\n"); - printf("# undef CONFIG_DEBUG_GPIO\n"); - printf("# undef CONFIG_DEBUG_SPI\n"); - printf("# undef CONFIG_DEBUG_HEAP\n"); - printf("#endif\n\n"); - printf("/* User entry point. This is provided as a fall-back to keep compatibility\n"); - printf(" * with existing code, for builds which do not define CONFIG_USER_ENTRYPOINT.\n"); - printf(" */\n\n"); - printf("#ifndef CONFIG_USER_ENTRYPOINT\n"); - printf("# define CONFIG_USER_ENTRYPOINT main\n"); - printf("#endif\n\n"); - printf("#endif /* __INCLUDE_NUTTX_CONFIG_H */\n"); + printf("/n#endif /* __INCLUDE_NUTTX_CONFIG_H */\n"); fclose(stream); /* Exit (without bothering to clean up allocations) */ -- GitLab From cf489a60834639ae2483a7bdfb369790cdec39fe Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 11 May 2016 10:06:12 -0600 Subject: [PATCH 139/307] Fix a typo in the last commit --- tools/mkconfig.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/mkconfig.c b/tools/mkconfig.c index 15a2a34304..28b0c0351f 100644 --- a/tools/mkconfig.c +++ b/tools/mkconfig.c @@ -99,7 +99,7 @@ int main(int argc, char **argv, char **envp) printf("#ifndef __INCLUDE_NUTTX_CONFIG_H\n"); printf("#define __INCLUDE_NUTTX_CONFIG_H\n\n"); generate_definitions(stream); - printf("/n#endif /* __INCLUDE_NUTTX_CONFIG_H */\n"); + printf("\n#endif /* __INCLUDE_NUTTX_CONFIG_H */\n"); fclose(stream); /* Exit (without bothering to clean up allocations) */ -- GitLab From b77672a049e3979016d07b2d40593021dbb14673 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 11 May 2016 10:25:06 -0600 Subject: [PATCH 140/307] Backout d5be40be5fe88b701c66094d38f8500a674944d3. This change is logically correct but unmasks a lot of issues. Reverted for now. --- tools/mkconfig.c | 174 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 173 insertions(+), 1 deletion(-) diff --git a/tools/mkconfig.c b/tools/mkconfig.c index 28b0c0351f..4a64c7867c 100644 --- a/tools/mkconfig.c +++ b/tools/mkconfig.c @@ -98,8 +98,180 @@ int main(int argc, char **argv, char **envp) printf("/* config.h -- Autogenerated! Do not edit. */\n\n"); printf("#ifndef __INCLUDE_NUTTX_CONFIG_H\n"); printf("#define __INCLUDE_NUTTX_CONFIG_H\n\n"); + printf("/* Architecture-specific options *************************/\n\n"); + generate_definitions(stream); - printf("\n#endif /* __INCLUDE_NUTTX_CONFIG_H */\n"); + + printf("\n/* Sanity Checks *****************************************/\n\n"); + printf("/* If this is an NXFLAT, external build, then make sure that\n"); + printf(" * NXFLAT support is enabled in the base code.\n"); + printf(" */\n\n"); + printf("#if defined(__NXFLAT__) && !defined(CONFIG_NXFLAT)\n"); + printf("# error \"NXFLAT support not enabled in this configuration\"\n"); + printf("#endif\n\n"); + printf("/* NXFLAT requires PIC support in the TCBs. */\n\n"); + printf("#if defined(CONFIG_NXFLAT)\n"); + printf("# undef CONFIG_PIC\n"); + printf("# define CONFIG_PIC 1\n"); + printf("#endif\n\n"); + printf("/* Binary format support is disabled if no binary formats are\n"); + printf(" * configured (at present, NXFLAT is the only supported binary.\n"); + printf(" * format).\n"); + printf(" */\n\n"); + printf("#if !defined(CONFIG_NXFLAT) && !defined(CONFIG_ELF) && !defined(CONFIG_BUILTIN)\n"); + printf("# undef CONFIG_BINFMT_DISABLE\n"); + printf("# define CONFIG_BINFMT_DISABLE 1\n"); + printf("#endif\n\n"); + printf("/* The correct way to disable RR scheduling is to set the\n"); + printf(" * timeslice to zero.\n"); + printf(" */\n\n"); + printf("#ifndef CONFIG_RR_INTERVAL\n"); + printf("# define CONFIG_RR_INTERVAL 0\n"); + printf("#endif\n\n"); + printf("/* The correct way to disable filesystem supuport is to set the number of\n"); + printf(" * file descriptors to zero.\n"); + printf(" */\n\n"); + printf("#ifndef CONFIG_NFILE_DESCRIPTORS\n"); + printf("# define CONFIG_NFILE_DESCRIPTORS 0\n"); + printf("#endif\n\n"); + printf("/* If a console is selected, then make sure that there are resources for\n"); + printf(" * three file descriptors and, if any streams are selected, also for three\n"); + printf(" * file streams.\n"); + printf(" *\n"); + printf(" * CONFIG_DEV_CONSOLE means that a builtin console device exists at /dev/console\n"); + printf(" * and can be opened during boot-up. Other consoles, such as USB consoles, may\n"); + printf(" * not exist at boot-upand have to be handled in a different way. Three file\n"); + printf(" * descriptors and three file streams are still needed.\n"); + printf(" */\n\n"); + printf("#if defined(CONFIG_DEV_CONSOLE) || defined(CONFIG_CDCACM_CONSOLE) || \\\n"); + printf(" defined(CONFIG_PL2303_CONSOLE)\n"); + printf("# if CONFIG_NFILE_DESCRIPTORS < 3\n"); + printf("# undef CONFIG_NFILE_DESCRIPTORS\n"); + printf("# define CONFIG_NFILE_DESCRIPTORS 3\n"); + printf("# endif\n\n"); + printf("# if CONFIG_NFILE_STREAMS > 0 && CONFIG_NFILE_STREAMS < 3\n"); + printf("# undef CONFIG_NFILE_STREAMS\n"); + printf("# define CONFIG_NFILE_STREAMS 3\n"); + printf("# endif\n\n"); + printf("/* If no console is selected, then disable all builtin console devices */\n\n"); + printf("#else\n"); + printf("# undef CONFIG_DEV_LOWCONSOLE\n"); + printf("# undef CONFIG_RAMLOG_CONSOLE\n"); + printf("#endif\n\n"); + printf("/* If priority inheritance is disabled, then do not allocate any\n"); + printf(" * associated resources.\n"); + printf(" */\n\n"); + printf("#if !defined(CONFIG_PRIORITY_INHERITANCE) || !defined(CONFIG_SEM_PREALLOCHOLDERS)\n"); + printf("# undef CONFIG_SEM_PREALLOCHOLDERS\n"); + printf("# define CONFIG_SEM_PREALLOCHOLDERS 0\n"); + printf("#endif\n\n"); + printf("#if !defined(CONFIG_PRIORITY_INHERITANCE) || !defined(CONFIG_SEM_NNESTPRIO)\n"); + printf("# undef CONFIG_SEM_NNESTPRIO\n"); + printf("# define CONFIG_SEM_NNESTPRIO 0\n"); + printf("#endif\n\n"); + printf("/* If no file descriptors are configured, then make certain no\n"); + printf(" * streams are configured either.\n"); + printf(" */\n\n"); + printf("#if CONFIG_NFILE_DESCRIPTORS == 0\n"); + printf("# undef CONFIG_NFILE_STREAMS\n"); + printf("# define CONFIG_NFILE_STREAMS 0\n"); + printf("#endif\n\n"); + printf("/* There must be at least one memory region. */\n\n"); + printf("#ifndef CONFIG_MM_REGIONS\n"); + printf("# define CONFIG_MM_REGIONS 1\n"); + printf("#endif\n\n"); + printf("/* If the end of RAM is not specified then it is assumed to be the beginning\n"); + printf(" * of RAM plus the RAM size.\n"); + printf(" */\n\n"); + printf("#ifndef CONFIG_RAM_END\n"); + printf("# define CONFIG_RAM_END (CONFIG_RAM_START+CONFIG_RAM_SIZE)\n"); + printf("#endif\n\n"); + printf("#ifndef CONFIG_RAM_VEND\n"); + printf("# define CONFIG_RAM_VEND (CONFIG_RAM_VSTART+CONFIG_RAM_SIZE)\n"); + printf("#endif\n\n"); + printf("/* If the end of FLASH is not specified then it is assumed to be the beginning\n"); + printf(" * of FLASH plus the FLASH size.\n"); + printf(" */\n\n"); + printf("#ifndef CONFIG_FLASH_END\n"); + printf("# define CONFIG_FLASH_END (CONFIG_FLASH_START+CONFIG_FLASH_SIZE)\n"); + printf("#endif\n\n"); + printf("/* If no file streams are configured, then make certain that buffered I/O\n"); + printf(" * support is disabled\n"); + printf(" */\n\n"); + printf("#if CONFIG_NFILE_STREAMS == 0\n"); + printf("# undef CONFIG_STDIO_BUFFER_SIZE\n"); + printf("# define CONFIG_STDIO_BUFFER_SIZE 0\n"); + printf("#endif\n\n"); + printf("/* If no standard C buffered I/O is not supported, then line-oriented buffering\n"); + printf(" * cannot be supported.\n"); + printf(" */\n\n"); + printf("#if CONFIG_STDIO_BUFFER_SIZE == 0\n"); + printf("# undef CONFIG_STDIO_LINEBUFFER\n"); + printf("#endif\n\n"); + printf("/* If the maximum message size is zero, then we assume that message queues\n"); + printf(" * support should be disabled\n"); + printf(" */\n\n"); + printf("#if !defined(CONFIG_MQ_MAXMSGSIZE) || defined(CONFIG_DISABLE_MQUEUE)\n"); + printf("# undef CONFIG_MQ_MAXMSGSIZE\n"); + printf("# define CONFIG_MQ_MAXMSGSIZE 0\n"); + printf("#endif\n\n"); + printf("#if CONFIG_MQ_MAXMSGSIZE <= 0 && !defined(CONFIG_DISABLE_MQUEUE)\n"); + printf("# define CONFIG_DISABLE_MQUEUE 1\n"); + printf("#endif\n\n"); + printf("/* If mountpoint support in not included, then no filesystem can be supported */\n\n"); + printf("#ifdef CONFIG_DISABLE_MOUNTPOINT\n"); + printf("# undef CONFIG_FS_FAT\n"); + printf("# undef CONFIG_FS_ROMFS\n"); + printf("# undef CONFIG_FS_NXFFS\n"); + printf("# undef CONFIG_FS_SMARTFS\n"); + printf("# undef CONFIG_FS_BINFS\n"); + printf("# undef CONFIG_NFS\n"); + printf("#endif\n\n"); + printf("/* There can be no network support with no socket descriptors */\n\n"); + printf("#if CONFIG_NSOCKET_DESCRIPTORS <= 0\n"); + printf("# undef CONFIG_NET\n"); + printf("#endif\n\n"); + printf("/* Conversely, if there is no network support, there is no need for\n"); + printf(" * socket descriptors\n"); + printf(" */\n\n"); + printf("#ifndef CONFIG_NET\n"); + printf("# undef CONFIG_NSOCKET_DESCRIPTORS\n"); + printf("# define CONFIG_NSOCKET_DESCRIPTORS 0\n"); + printf("#endif\n\n"); + printf("/* Protocol support can only be provided on top of basic network support */\n\n"); + printf("#ifndef CONFIG_NET\n"); + printf("# undef CONFIG_NET_TCP\n"); + printf("# undef CONFIG_NET_UDP\n"); + printf("# undef CONFIG_NET_ICMP\n"); + printf("#endif\n\n"); + printf("/* NFS client can only be provided on top of UDP network support */\n\n"); + printf("#if !defined(CONFIG_NET) || !defined(CONFIG_NET_UDP)\n"); + printf("# undef CONFIG_NFS\n"); + printf("#endif\n\n"); + printf("/* Verbose debug and sub-system debug only make sense if debug is enabled */\n\n"); + printf("#ifndef CONFIG_DEBUG\n"); + printf("# undef CONFIG_DEBUG_VERBOSE\n"); + printf("# undef CONFIG_DEBUG_SCHED\n"); + printf("# undef CONFIG_DEBUG_MM\n"); + printf("# undef CONFIG_DEBUG_PAGING\n"); + printf("# undef CONFIG_DEBUG_DMA\n"); + printf("# undef CONFIG_DEBUG_FS\n"); + printf("# undef CONFIG_DEBUG_LIB\n"); + printf("# undef CONFIG_DEBUG_BINFMT\n"); + printf("# undef CONFIG_DEBUG_NET\n"); + printf("# undef CONFIG_DEBUG_USB\n"); + printf("# undef CONFIG_DEBUG_GRAPHICS\n"); + printf("# undef CONFIG_DEBUG_GPIO\n"); + printf("# undef CONFIG_DEBUG_SPI\n"); + printf("# undef CONFIG_DEBUG_HEAP\n"); + printf("#endif\n\n"); + printf("/* User entry point. This is provided as a fall-back to keep compatibility\n"); + printf(" * with existing code, for builds which do not define CONFIG_USER_ENTRYPOINT.\n"); + printf(" */\n\n"); + printf("#ifndef CONFIG_USER_ENTRYPOINT\n"); + printf("# define CONFIG_USER_ENTRYPOINT main\n"); + printf("#endif\n\n"); + printf("#endif /* __INCLUDE_NUTTX_CONFIG_H */\n"); fclose(stream); /* Exit (without bothering to clean up allocations) */ -- GitLab From 5356e3d74792f602a9a1026a1d9041a56d0a60d5 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 11 May 2016 11:07:00 -0600 Subject: [PATCH 141/307] Since I can't (yet) get rid of the sanity checks in config.h, I suppose I should at least update the checks. --- Kconfig | 10 --- drivers/leds/userled_upper.c | 4 +- tools/mkconfig.c | 145 ++++++++++++++++++++++------------- 3 files changed, 92 insertions(+), 67 deletions(-) diff --git a/Kconfig b/Kconfig index 11e734ab2a..17d6e351f9 100644 --- a/Kconfig +++ b/Kconfig @@ -574,16 +574,6 @@ config DEBUG_INPUT this debug option is board-specific and may not be available for some boards. -config DEBUG_DISCRETE - bool "Discrete I/O Debug Output" - default n - depends on DISCRETE_IO - ---help--- - Enable low level debug SYSLOG output from the discrete I/O device - drivers such as LEDs and I/O expanders (disabled by default). - Support for this debug option is board-specific and may not be - available for some boards. - config DEBUG_ANALOG bool "Analog Device Debug Output" default n diff --git a/drivers/leds/userled_upper.c b/drivers/leds/userled_upper.c index 0d2377b624..5c8f0a0997 100644 --- a/drivers/leds/userled_upper.c +++ b/drivers/leds/userled_upper.c @@ -63,10 +63,10 @@ #ifndef CONFIG_DEBUG # undef CONFIG_DEBUG_VERBOSE -# undef CONFIG_DEBUG_DISCRETE +# undef CONFIG_DEBUG_LEDS #endif -#ifdef CONFIG_DEBUG_DISCRETE +#ifdef CONFIG_DEBUG_LEDS # define ddbg lldbg # ifdef CONFIG_DEBUG_VERBOSE # define dvdbg lldbg diff --git a/tools/mkconfig.c b/tools/mkconfig.c index 4a64c7867c..710a0926e2 100644 --- a/tools/mkconfig.c +++ b/tools/mkconfig.c @@ -109,31 +109,36 @@ int main(int argc, char **argv, char **envp) printf("#if defined(__NXFLAT__) && !defined(CONFIG_NXFLAT)\n"); printf("# error \"NXFLAT support not enabled in this configuration\"\n"); printf("#endif\n\n"); + printf("/* NXFLAT requires PIC support in the TCBs. */\n\n"); printf("#if defined(CONFIG_NXFLAT)\n"); - printf("# undef CONFIG_PIC\n"); - printf("# define CONFIG_PIC 1\n"); + printf("# undef CONFIG_PIC\n"); + printf("# define CONFIG_PIC 1\n"); printf("#endif\n\n"); + printf("/* Binary format support is disabled if no binary formats are\n"); printf(" * configured (at present, NXFLAT is the only supported binary.\n"); printf(" * format).\n"); printf(" */\n\n"); printf("#if !defined(CONFIG_NXFLAT) && !defined(CONFIG_ELF) && !defined(CONFIG_BUILTIN)\n"); - printf("# undef CONFIG_BINFMT_DISABLE\n"); - printf("# define CONFIG_BINFMT_DISABLE 1\n"); + printf("# undef CONFIG_BINFMT_DISABLE\n"); + printf("# define CONFIG_BINFMT_DISABLE 1\n"); printf("#endif\n\n"); + printf("/* The correct way to disable RR scheduling is to set the\n"); printf(" * timeslice to zero.\n"); printf(" */\n\n"); printf("#ifndef CONFIG_RR_INTERVAL\n"); - printf("# define CONFIG_RR_INTERVAL 0\n"); + printf("# define CONFIG_RR_INTERVAL 0\n"); printf("#endif\n\n"); + printf("/* The correct way to disable filesystem supuport is to set the number of\n"); printf(" * file descriptors to zero.\n"); printf(" */\n\n"); printf("#ifndef CONFIG_NFILE_DESCRIPTORS\n"); - printf("# define CONFIG_NFILE_DESCRIPTORS 0\n"); + printf("# define CONFIG_NFILE_DESCRIPTORS 0\n"); printf("#endif\n\n"); + printf("/* If a console is selected, then make sure that there are resources for\n"); printf(" * three file descriptors and, if any streams are selected, also for three\n"); printf(" * file streams.\n"); @@ -158,119 +163,149 @@ int main(int argc, char **argv, char **envp) printf("# undef CONFIG_DEV_LOWCONSOLE\n"); printf("# undef CONFIG_RAMLOG_CONSOLE\n"); printf("#endif\n\n"); + printf("/* If priority inheritance is disabled, then do not allocate any\n"); printf(" * associated resources.\n"); printf(" */\n\n"); printf("#if !defined(CONFIG_PRIORITY_INHERITANCE) || !defined(CONFIG_SEM_PREALLOCHOLDERS)\n"); - printf("# undef CONFIG_SEM_PREALLOCHOLDERS\n"); - printf("# define CONFIG_SEM_PREALLOCHOLDERS 0\n"); + printf("# undef CONFIG_SEM_PREALLOCHOLDERS\n"); + printf("# define CONFIG_SEM_PREALLOCHOLDERS 0\n"); printf("#endif\n\n"); printf("#if !defined(CONFIG_PRIORITY_INHERITANCE) || !defined(CONFIG_SEM_NNESTPRIO)\n"); - printf("# undef CONFIG_SEM_NNESTPRIO\n"); - printf("# define CONFIG_SEM_NNESTPRIO 0\n"); + printf("# undef CONFIG_SEM_NNESTPRIO\n"); + printf("# define CONFIG_SEM_NNESTPRIO 0\n"); printf("#endif\n\n"); + printf("/* If no file descriptors are configured, then make certain no\n"); printf(" * streams are configured either.\n"); printf(" */\n\n"); printf("#if CONFIG_NFILE_DESCRIPTORS == 0\n"); - printf("# undef CONFIG_NFILE_STREAMS\n"); - printf("# define CONFIG_NFILE_STREAMS 0\n"); + printf("# undef CONFIG_NFILE_STREAMS\n"); + printf("# define CONFIG_NFILE_STREAMS 0\n"); printf("#endif\n\n"); + printf("/* There must be at least one memory region. */\n\n"); printf("#ifndef CONFIG_MM_REGIONS\n"); - printf("# define CONFIG_MM_REGIONS 1\n"); + printf("# define CONFIG_MM_REGIONS 1\n"); printf("#endif\n\n"); + printf("/* If the end of RAM is not specified then it is assumed to be the beginning\n"); printf(" * of RAM plus the RAM size.\n"); printf(" */\n\n"); printf("#ifndef CONFIG_RAM_END\n"); - printf("# define CONFIG_RAM_END (CONFIG_RAM_START+CONFIG_RAM_SIZE)\n"); + printf("# define CONFIG_RAM_END (CONFIG_RAM_START+CONFIG_RAM_SIZE)\n"); printf("#endif\n\n"); printf("#ifndef CONFIG_RAM_VEND\n"); - printf("# define CONFIG_RAM_VEND (CONFIG_RAM_VSTART+CONFIG_RAM_SIZE)\n"); + printf("# define CONFIG_RAM_VEND (CONFIG_RAM_VSTART+CONFIG_RAM_SIZE)\n"); printf("#endif\n\n"); + printf("/* If the end of FLASH is not specified then it is assumed to be the beginning\n"); printf(" * of FLASH plus the FLASH size.\n"); printf(" */\n\n"); printf("#ifndef CONFIG_FLASH_END\n"); - printf("# define CONFIG_FLASH_END (CONFIG_FLASH_START+CONFIG_FLASH_SIZE)\n"); + printf("# define CONFIG_FLASH_END (CONFIG_FLASH_START+CONFIG_FLASH_SIZE)\n"); printf("#endif\n\n"); + printf("/* If no file streams are configured, then make certain that buffered I/O\n"); printf(" * support is disabled\n"); printf(" */\n\n"); printf("#if CONFIG_NFILE_STREAMS == 0\n"); - printf("# undef CONFIG_STDIO_BUFFER_SIZE\n"); - printf("# define CONFIG_STDIO_BUFFER_SIZE 0\n"); + printf("# undef CONFIG_STDIO_BUFFER_SIZE\n"); + printf("# define CONFIG_STDIO_BUFFER_SIZE 0\n"); printf("#endif\n\n"); + printf("/* If no standard C buffered I/O is not supported, then line-oriented buffering\n"); printf(" * cannot be supported.\n"); printf(" */\n\n"); printf("#if CONFIG_STDIO_BUFFER_SIZE == 0\n"); - printf("# undef CONFIG_STDIO_LINEBUFFER\n"); + printf("# undef CONFIG_STDIO_LINEBUFFER\n"); printf("#endif\n\n"); + printf("/* If the maximum message size is zero, then we assume that message queues\n"); printf(" * support should be disabled\n"); printf(" */\n\n"); printf("#if !defined(CONFIG_MQ_MAXMSGSIZE) || defined(CONFIG_DISABLE_MQUEUE)\n"); - printf("# undef CONFIG_MQ_MAXMSGSIZE\n"); - printf("# define CONFIG_MQ_MAXMSGSIZE 0\n"); + printf("# undef CONFIG_MQ_MAXMSGSIZE\n"); + printf("# define CONFIG_MQ_MAXMSGSIZE 0\n"); printf("#endif\n\n"); printf("#if CONFIG_MQ_MAXMSGSIZE <= 0 && !defined(CONFIG_DISABLE_MQUEUE)\n"); - printf("# define CONFIG_DISABLE_MQUEUE 1\n"); + printf("# define CONFIG_DISABLE_MQUEUE 1\n"); printf("#endif\n\n"); + printf("/* If mountpoint support in not included, then no filesystem can be supported */\n\n"); printf("#ifdef CONFIG_DISABLE_MOUNTPOINT\n"); - printf("# undef CONFIG_FS_FAT\n"); - printf("# undef CONFIG_FS_ROMFS\n"); - printf("# undef CONFIG_FS_NXFFS\n"); - printf("# undef CONFIG_FS_SMARTFS\n"); - printf("# undef CONFIG_FS_BINFS\n"); - printf("# undef CONFIG_NFS\n"); + printf("# undef CONFIG_FS_BINFS\n"); + printf("# undef CONFIG_FS_FAT\n"); + printf("# undef CONFIG_FS_HOSTFS\n"); + printf("# undef CONFIG_NFS\n"); + printf("# undef CONFIG_FS_NXFFS\n"); + printf("# undef CONFIG_FS_PROCFS\n"); + printf("# undef CONFIG_FS_ROMFS\n"); + printf("# undef CONFIG_FS_SMARTFS\n"); + printf("# undef CONFIG_FS_TMPFS\n"); printf("#endif\n\n"); + printf("/* There can be no network support with no socket descriptors */\n\n"); printf("#if CONFIG_NSOCKET_DESCRIPTORS <= 0\n"); - printf("# undef CONFIG_NET\n"); + printf("# undef CONFIG_NET\n"); printf("#endif\n\n"); printf("/* Conversely, if there is no network support, there is no need for\n"); printf(" * socket descriptors\n"); printf(" */\n\n"); printf("#ifndef CONFIG_NET\n"); - printf("# undef CONFIG_NSOCKET_DESCRIPTORS\n"); - printf("# define CONFIG_NSOCKET_DESCRIPTORS 0\n"); + printf("# undef CONFIG_NSOCKET_DESCRIPTORS\n"); + printf("# define CONFIG_NSOCKET_DESCRIPTORS 0\n"); printf("#endif\n\n"); + printf("/* Protocol support can only be provided on top of basic network support */\n\n"); printf("#ifndef CONFIG_NET\n"); - printf("# undef CONFIG_NET_TCP\n"); - printf("# undef CONFIG_NET_UDP\n"); - printf("# undef CONFIG_NET_ICMP\n"); + printf("# undef CONFIG_NET_TCP\n"); + printf("# undef CONFIG_NET_UDP\n"); + printf("# undef CONFIG_NET_ICMP\n"); printf("#endif\n\n"); + printf("/* NFS client can only be provided on top of UDP network support */\n\n"); printf("#if !defined(CONFIG_NET) || !defined(CONFIG_NET_UDP)\n"); - printf("# undef CONFIG_NFS\n"); + printf("# undef CONFIG_NFS\n"); printf("#endif\n\n"); + printf("/* Verbose debug and sub-system debug only make sense if debug is enabled */\n\n"); printf("#ifndef CONFIG_DEBUG\n"); - printf("# undef CONFIG_DEBUG_VERBOSE\n"); - printf("# undef CONFIG_DEBUG_SCHED\n"); - printf("# undef CONFIG_DEBUG_MM\n"); - printf("# undef CONFIG_DEBUG_PAGING\n"); - printf("# undef CONFIG_DEBUG_DMA\n"); - printf("# undef CONFIG_DEBUG_FS\n"); - printf("# undef CONFIG_DEBUG_LIB\n"); - printf("# undef CONFIG_DEBUG_BINFMT\n"); - printf("# undef CONFIG_DEBUG_NET\n"); - printf("# undef CONFIG_DEBUG_USB\n"); - printf("# undef CONFIG_DEBUG_GRAPHICS\n"); - printf("# undef CONFIG_DEBUG_GPIO\n"); - printf("# undef CONFIG_DEBUG_SPI\n"); - printf("# undef CONFIG_DEBUG_HEAP\n"); - printf("#endif\n\n"); - printf("/* User entry point. This is provided as a fall-back to keep compatibility\n"); - printf(" * with existing code, for builds which do not define CONFIG_USER_ENTRYPOINT.\n"); - printf(" */\n\n"); - printf("#ifndef CONFIG_USER_ENTRYPOINT\n"); - printf("# define CONFIG_USER_ENTRYPOINT main\n"); + printf("# undef CONFIG_DEBUG_VERBOSE\n"); + printf("# undef CONFIG_DEBUG_ANALOG\n"); + printf("# undef CONFIG_DEBUG_AUDIO\n"); + printf("# undef CONFIG_DEBUG_BINFMT\n"); + printf("# undef CONFIG_DEBUG_CRYPTO\n"); + printf("# undef CONFIG_DEBUG_CAN\n"); + printf("# undef CONFIG_DEBUG_DMA\n"); + printf("# undef CONFIG_DEBUG_FS\n"); + printf("# undef CONFIG_DEBUG_GPIO\n"); + printf("# undef CONFIG_DEBUG_GRAPHICS\n"); + printf("# undef CONFIG_DEBUG_HEAP\n"); + printf("# undef CONFIG_DEBUG_I2C\n"); + printf("# undef CONFIG_DEBUG_I2S\n"); + printf("# undef CONFIG_DEBUG_INPUT\n"); + printf("# undef CONFIG_DEBUG_IRQ\n"); + printf("# undef CONFIG_DEBUG_LCD\n"); + printf("# undef CONFIG_DEBUG_LEDS\n"); + printf("# undef CONFIG_DEBUG_LIB\n"); + printf("# undef CONFIG_DEBUG_MM\n"); + printf("# undef CONFIG_DEBUG_NET\n"); + printf("# undef CONFIG_DEBUG_PAGING\n"); + printf("# undef CONFIG_DEBUG_PWM\n"); + printf("# undef CONFIG_DEBUG_RTC\n"); + printf("# undef CONFIG_DEBUG_SCHED\n"); + printf("# undef CONFIG_DEBUG_SDIO\n"); + printf("# undef CONFIG_DEBUG_SENSORS\n"); + printf("# undef CONFIG_DEBUG_SHM\n"); + printf("# undef CONFIG_DEBUG_SPI\n"); + printf("# undef CONFIG_DEBUG_SYSCALL\n"); + printf("# undef CONFIG_DEBUG_TIMER\n"); + printf("# undef CONFIG_DEBUG_USB\n"); + printf("# undef CONFIG_DEBUG_WATCHDOG\n"); + printf("# undef CONFIG_DEBUG_WIRELESS\n"); printf("#endif\n\n"); + printf("#endif /* __INCLUDE_NUTTX_CONFIG_H */\n"); fclose(stream); -- GitLab From 8517a303a5134db236dd63883a85baf15839e84d Mon Sep 17 00:00:00 2001 From: David Sidrane Date: Wed, 11 May 2016 23:13:24 +0000 Subject: [PATCH 142/307] sam_xdmac.c edited online with Bitbucket --- arch/arm/src/samv7/sam_xdmac.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/src/samv7/sam_xdmac.c b/arch/arm/src/samv7/sam_xdmac.c index 5519c87c79..de7127f5bc 100644 --- a/arch/arm/src/samv7/sam_xdmac.c +++ b/arch/arm/src/samv7/sam_xdmac.c @@ -1809,7 +1809,7 @@ int sam_dmatxsetup(DMA_HANDLE handle, uint32_t paddr, uint32_t maddr, /* Set up the maximum size transfer */ ret = sam_txbuffer(xdmach, paddr, maddr, maxtransfer); - if (ret == OK); + if (ret == OK) { /* Decrement the number of bytes left to transfer */ -- GitLab From 1ac3d2128a94dbe81f3abf566926c45f98bb0262 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 11 May 2016 17:18:16 -0600 Subject: [PATCH 143/307] Trivial fix to comment --- configs/samv71-xult/src/sam_boot.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configs/samv71-xult/src/sam_boot.c b/configs/samv71-xult/src/sam_boot.c index 92f07ddc6e..9f703718eb 100644 --- a/configs/samv71-xult/src/sam_boot.c +++ b/configs/samv71-xult/src/sam_boot.c @@ -103,7 +103,7 @@ void sam_boardinitialize(void) #ifdef CONFIG_SAMV7_SDRAMC /* Configure SDRAM if it has been enabled in the NuttX configuration. - * Here we assume, of course, that we are not running out SDRAM. + * Here we assume, of course, that we are not running out of SDRAM. */ sam_sdram_config(); -- GitLab From f07ea1bb94ed6a4dac271771ea5d4511cba3bab2 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 11 May 2016 17:26:59 -0600 Subject: [PATCH 144/307] SAM (all): Fix several places in DMA logic where a spurious semicolon causes bad conditional logic --- arch/arm/src/sam34/sam_dmac.c | 4 ++-- arch/arm/src/sama5/sam_dmac.c | 4 ++-- arch/arm/src/sama5/sam_xdmac.c | 4 ++-- arch/arm/src/samv7/sam_xdmac.c | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/arch/arm/src/sam34/sam_dmac.c b/arch/arm/src/sam34/sam_dmac.c index 26bd9c3a49..bcc8fb03f0 100644 --- a/arch/arm/src/sam34/sam_dmac.c +++ b/arch/arm/src/sam34/sam_dmac.c @@ -1554,7 +1554,7 @@ int sam_dmatxsetup(DMA_HANDLE handle, uint32_t paddr, uint32_t maddr, size_t nby /* Set up the maximum size transfer */ ret = sam_txbuffer(dmach, paddr, maddr, maxtransfer); - if (ret == OK); + if (ret == OK) { /* Decrement the number of bytes left to transfer */ @@ -1622,7 +1622,7 @@ int sam_dmarxsetup(DMA_HANDLE handle, uint32_t paddr, uint32_t maddr, size_t nby /* Set up the maximum size transfer */ ret = sam_rxbuffer(dmach, paddr, maddr, maxtransfer); - if (ret == OK); + if (ret == OK) { /* Decrement the number of bytes left to transfer */ diff --git a/arch/arm/src/sama5/sam_dmac.c b/arch/arm/src/sama5/sam_dmac.c index 990e05df54..bf3f148168 100644 --- a/arch/arm/src/sama5/sam_dmac.c +++ b/arch/arm/src/sama5/sam_dmac.c @@ -2159,7 +2159,7 @@ int sam_dmatxsetup(DMA_HANDLE handle, uint32_t paddr, uint32_t maddr, /* Set up the maximum size transfer */ ret = sam_txbuffer(dmach, paddr, maddr, maxtransfer); - if (ret == OK); + if (ret == OK) { /* Decrement the number of bytes left to transfer */ @@ -2238,7 +2238,7 @@ int sam_dmarxsetup(DMA_HANDLE handle, uint32_t paddr, uint32_t maddr, /* Set up the maximum size transfer */ ret = sam_rxbuffer(dmach, paddr, maddr, maxtransfer); - if (ret == OK); + if (ret == OK) { /* Decrement the number of bytes left to transfer */ diff --git a/arch/arm/src/sama5/sam_xdmac.c b/arch/arm/src/sama5/sam_xdmac.c index 651624d63a..bb4ce4e1dd 100644 --- a/arch/arm/src/sama5/sam_xdmac.c +++ b/arch/arm/src/sama5/sam_xdmac.c @@ -2205,7 +2205,7 @@ int sam_dmatxsetup(DMA_HANDLE handle, uint32_t paddr, uint32_t maddr, /* Set up the maximum size transfer */ ret = sam_txbuffer(xdmach, paddr, maddr, maxtransfer); - if (ret == OK); + if (ret == OK) { /* Decrement the number of bytes left to transfer */ @@ -2284,7 +2284,7 @@ int sam_dmarxsetup(DMA_HANDLE handle, uint32_t paddr, uint32_t maddr, /* Set up the maximum size transfer */ ret = sam_rxbuffer(xdmach, paddr, maddr, maxtransfer); - if (ret == OK); + if (ret == OK) { /* Decrement the number of bytes left to transfer */ diff --git a/arch/arm/src/samv7/sam_xdmac.c b/arch/arm/src/samv7/sam_xdmac.c index de7127f5bc..886de898fe 100644 --- a/arch/arm/src/samv7/sam_xdmac.c +++ b/arch/arm/src/samv7/sam_xdmac.c @@ -1888,7 +1888,7 @@ int sam_dmarxsetup(DMA_HANDLE handle, uint32_t paddr, uint32_t maddr, /* Set up the maximum size transfer */ ret = sam_rxbuffer(xdmach, paddr, maddr, maxtransfer); - if (ret == OK); + if (ret == OK) { /* Decrement the number of bytes left to transfer */ -- GitLab From f64f7407bac6661df554605283d104bf2d17a38e Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 11 May 2016 17:30:04 -0600 Subject: [PATCH 145/307] SAMDL DMAC: Fix several places in DMA logic where a spurious semicolon causes bad conditional logic --- arch/arm/src/samdl/sam_dmac.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm/src/samdl/sam_dmac.c b/arch/arm/src/samdl/sam_dmac.c index 0d1cb43041..de5004f2d7 100644 --- a/arch/arm/src/samdl/sam_dmac.c +++ b/arch/arm/src/samdl/sam_dmac.c @@ -986,7 +986,7 @@ int sam_dmatxsetup(DMA_HANDLE handle, uint32_t paddr, uint32_t maddr, /* Set up the maximum size transfer */ ret = sam_txbuffer(dmach, paddr, maddr, maxtransfer); - if (ret == OK); + if (ret == OK) { /* Decrement the number of bytes left to transfer */ @@ -1060,7 +1060,7 @@ int sam_dmarxsetup(DMA_HANDLE handle, uint32_t paddr, uint32_t maddr, /* Set up the maximum size transfer */ ret = sam_rxbuffer(dmach, paddr, maddr, maxtransfer); - if (ret == OK); + if (ret == OK) { /* Decrement the number of bytes left to transfer */ -- GitLab From c00e3e55dce748be1d2d01ae326c86376c08e620 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 11 May 2016 17:42:59 -0600 Subject: [PATCH 146/307] Fix several places in DMA logic where a spurious semicolon causes bad conditional logic --- arch/arm/src/stm32/stm32_tim.c | 17 ++++++++++++----- arch/sh/src/m16c/m16c_serial.c | 2 +- fs/unionfs/fs_unionfs.c | 2 +- sched/group/group_signal.c | 2 +- 4 files changed, 15 insertions(+), 8 deletions(-) diff --git a/arch/arm/src/stm32/stm32_tim.c b/arch/arm/src/stm32/stm32_tim.c index c7d3b8350c..14359625f8 100644 --- a/arch/arm/src/stm32/stm32_tim.c +++ b/arch/arm/src/stm32/stm32_tim.c @@ -516,7 +516,8 @@ static int stm32_tim_setmode(FAR struct stm32_tim_dev_s *dev, stm32_tim_mode_t m val |= ATIM_CR1_OPM; break; - default: return ERROR; + default: + return ERROR; } stm32_tim_reload_counter(dev); @@ -548,7 +549,10 @@ static int stm32_tim_setchannel(FAR struct stm32_tim_dev_s *dev, uint8_t channel /* Further we use range as 0..3; if channel=0 it will also overflow here */ - if (--channel > 4) return ERROR; + if (--channel > 4) + { + return ERROR; + } /* Assume that channel is disabled and polarity is active high */ @@ -699,7 +703,8 @@ static int stm32_tim_setchannel(FAR struct stm32_tim_dev_s *dev, uint8_t channel stm32_tim_gpioconfig(GPIO_TIM4_CH4OUT, mode); break; #endif - default: return ERROR; + default: + return ERROR; } break; #endif @@ -727,7 +732,8 @@ static int stm32_tim_setchannel(FAR struct stm32_tim_dev_s *dev, uint8_t channel stm32_tim_gpioconfig(GPIO_TIM5_CH4OUT, mode); break; #endif - default: return ERROR; + default: + return ERROR; } break; #endif @@ -753,7 +759,8 @@ static int stm32_tim_setchannel(FAR struct stm32_tim_dev_s *dev, uint8_t channel case 3: stm32_tim_gpioconfig(GPIO_TIM1_CH4OUT, mode); break; #endif - default: return ERROR; + default: + return ERROR; } break; #endif diff --git a/arch/sh/src/m16c/m16c_serial.c b/arch/sh/src/m16c/m16c_serial.c index 6aeb973f75..a366e3b57d 100644 --- a/arch/sh/src/m16c/m16c_serial.c +++ b/arch/sh/src/m16c/m16c_serial.c @@ -492,7 +492,7 @@ static inline void up_waittxready(struct up_dev_s *priv) { /* Check the TI bit in the CI register. 1=Transmit buffer empty */ - if ((up_serialin(priv, M16C_UART_C1) & UART_C1_TI) != 0); + if ((up_serialin(priv, M16C_UART_C1) & UART_C1_TI) != 0) { /* The transmit buffer is empty... return */ break; diff --git a/fs/unionfs/fs_unionfs.c b/fs/unionfs/fs_unionfs.c index 3ebc6d2fdb..b0a0920e83 100644 --- a/fs/unionfs/fs_unionfs.c +++ b/fs/unionfs/fs_unionfs.c @@ -1506,7 +1506,7 @@ static int unionfs_closedir(FAR struct inode *mountpt, { /* Was this file system opened? */ - if (fu->fu_lower[i] != NULL); + if (fu->fu_lower[i] != NULL) { um = &ui->ui_fs[i]; diff --git a/sched/group/group_signal.c b/sched/group/group_signal.c index 1f681928d9..ac8afca3e5 100644 --- a/sched/group/group_signal.c +++ b/sched/group/group_signal.c @@ -131,7 +131,7 @@ static int group_signal_handler(pid_t pid, FAR void *arg) /* Limit to one thread */ info->atcb = tcb; - if (info->ptcb != NULL); + if (info->ptcb != NULL) { return 1; /* Terminate the search */ } -- GitLab From abc0481a57fc9fd704d6e4dc019a5ed9c4e8928c Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 12 May 2016 09:47:54 -0600 Subject: [PATCH 147/307] Port for the Nucleo-144 board with the STM32F476ZG MCU. From Kconstantin Berezenko. --- ChangeLog | 3 + configs/Kconfig | 17 +- configs/nucleo-144/Kconfig | 8 + configs/nucleo-144/include/board.h | 356 ++++++++ configs/nucleo-144/nsh/Make.defs | 113 +++ configs/nucleo-144/nsh/defconfig | 908 +++++++++++++++++++ configs/nucleo-144/nsh/setenv.sh | 77 ++ configs/nucleo-144/scripts/flash.ld | 147 +++ configs/nucleo-144/scripts/kernel-space.ld | 109 +++ configs/nucleo-144/scripts/memory.ld | 129 +++ configs/nucleo-144/scripts/user-space.ld | 111 +++ configs/nucleo-144/src/.gitignore | 2 + configs/nucleo-144/src/Makefile | 55 ++ configs/nucleo-144/src/nucleo-144.h | 100 ++ configs/nucleo-144/src/stm32_appinitialize.c | 87 ++ configs/nucleo-144/src/stm32_autoleds.c | 144 +++ configs/nucleo-144/src/stm32_boot.c | 119 +++ configs/nucleo-144/src/stm32_buttons.c | 112 +++ configs/nucleo-144/src/stm32_spi.c | 246 +++++ configs/nucleo-144/src/stm32_userleds.c | 120 +++ 20 files changed, 2962 insertions(+), 1 deletion(-) create mode 100644 configs/nucleo-144/Kconfig create mode 100644 configs/nucleo-144/include/board.h create mode 100644 configs/nucleo-144/nsh/Make.defs create mode 100644 configs/nucleo-144/nsh/defconfig create mode 100644 configs/nucleo-144/nsh/setenv.sh create mode 100644 configs/nucleo-144/scripts/flash.ld create mode 100644 configs/nucleo-144/scripts/kernel-space.ld create mode 100644 configs/nucleo-144/scripts/memory.ld create mode 100644 configs/nucleo-144/scripts/user-space.ld create mode 100644 configs/nucleo-144/src/.gitignore create mode 100644 configs/nucleo-144/src/Makefile create mode 100644 configs/nucleo-144/src/nucleo-144.h create mode 100644 configs/nucleo-144/src/stm32_appinitialize.c create mode 100644 configs/nucleo-144/src/stm32_autoleds.c create mode 100644 configs/nucleo-144/src/stm32_boot.c create mode 100644 configs/nucleo-144/src/stm32_buttons.c create mode 100644 configs/nucleo-144/src/stm32_spi.c create mode 100644 configs/nucleo-144/src/stm32_userleds.c diff --git a/ChangeLog b/ChangeLog index 455ccb8c46..87f923ce2a 100755 --- a/ChangeLog +++ b/ChangeLog @@ -11718,3 +11718,6 @@ * Several Makefiles: Add .PHONY definitions to prevent 'clean up to date' message weirdness when 'make clean' is done with no .config or Make.defs file (2016-05-10). + * configs/nucleo-144: Basic port for the Nucleo-144 board with the + STM32F746ZG MCU. From Kconstantin Berezenko (2015-05-12). + diff --git a/configs/Kconfig b/configs/Kconfig index 17d7a9ba85..c2d650557c 100644 --- a/configs/Kconfig +++ b/configs/Kconfig @@ -647,6 +647,17 @@ config ARCH_BOARD_PIRELLI_DPL10 This directory contains the board support for Pirelli dpl10 phones. The additions were made by Craig Comstock (with help form Alan Carvalho de Assis). +config ARCH_BOARD_NUCLEO_144 + bool "STMicro NUCLEO-144" + depends on ARCH_CHIP_STM32F746 + select ARCH_HAVE_LEDS + select ARCH_HAVE_BUTTONS + select ARCH_HAVE_IRQBUTTONS + ---help--- + STMicro Nucleo-144 development board featuring the STM32F746ZGT6U + MCU. The STM32F746ZGT6U is a 216MHz Cortex-M7 operation with 1024Kb Flash + memory and 300Kb SRAM. + config ARCH_BOARD_NUCLEO_F303RE bool "STM32F303 Nucleo F303RE" depends on ARCH_CHIP_STM32F303RE @@ -963,7 +974,7 @@ config ARCH_BOARD_STM32F746G_DISCO ---help--- STMicro STM32F746G-DISCO development board featuring the STM32F746NGH6 MCU. The STM32F746NGH6 is a 216MHz Cortex-M7 operation with 1024Kb Flash - memory and 300Kb SRAM. + memory and 320Kb SRAM. config ARCH_BOARD_STM32L476VG_DISCO bool "STMicro STM32F746VG-Discovery board" @@ -1363,6 +1374,7 @@ config ARCH_BOARD default "pic32mx7mmb" if ARCH_BOARD_PIC32MX7MMB default "pic32mz-starterkit" if ARCH_BOARD_PIC32MZ_STARTERKIT default "pirelli_dpl10" if ARCH_BOARD_PIRELLI_DPL10 + default "nucleo-144" if ARCH_BOARD_NUCLEO_144 default "nucleo-f303re" if ARCH_BOARD_NUCLEO_F303RE default "nucleo-f4x1re" if ARCH_BOARD_NUCLEO_F401RE || ARCH_BOARD_NUCLEO_F411RE default "nucleo-l476rg" if ARCH_BOARD_NUCLEO_L476RG @@ -1669,6 +1681,9 @@ endif if ARCH_BOARD_PIRELLI_DPL10 source "configs/pirelli_dpl10/Kconfig" endif +if ARCH_BOARD_NUCLEO_144 +source "configs/nucleo-144/Kconfig" +endif if ARCH_BOARD_NUCLEO_F303RE source "configs/nucleo-f303re/Kconfig" endif diff --git a/configs/nucleo-144/Kconfig b/configs/nucleo-144/Kconfig new file mode 100644 index 0000000000..57585efaff --- /dev/null +++ b/configs/nucleo-144/Kconfig @@ -0,0 +1,8 @@ +# +# For a description of the syntax of this configuration file, +# see the file kconfig-language.txt in the NuttX tools repository. +# + +if ARCH_BOARD_NUCLEO_144 + +endif # ARCH_BOARD_NUCLEO_144 diff --git a/configs/nucleo-144/include/board.h b/configs/nucleo-144/include/board.h new file mode 100644 index 0000000000..0e9020c0de --- /dev/null +++ b/configs/nucleo-144/include/board.h @@ -0,0 +1,356 @@ +/************************************************************************************ + * configs/nucleo-144/include/board.h + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ************************************************************************************/ + +#ifndef __CONFIG_NUCLEO_144_INCLUDE_BOARD_H +#define __CONFIG_NUCLEO_144_INCLUDE_BOARD_H + +/************************************************************************************ + * Included Files + ************************************************************************************/ + +#include + +#ifndef __ASSEMBLY__ +# include +#endif + +#include "stm32_rcc.h" +#ifdef CONFIG_STM32F7_SDMMC1 +# include "stm32_sdmmc.h" +#endif + +/************************************************************************************ + * Pre-processor Definitions + ************************************************************************************/ + +/* Clocking *************************************************************************/ +/* The STM32F7 Discovery board provides the following clock sources: + * + * X1: 24 MHz oscillator for USB OTG HS PHY and camera module (daughter board) + * X2: 25 MHz oscillator for STM32F746NGH6 microcontroller and Ethernet PHY. + * X3: 32.768 KHz crystal for STM32F746NGH6 embedded RTC + * + * So we have these clock source available within the STM32 + * + * HSI: 16 MHz RC factory-trimmed + * LSI: 32 KHz RC + * HSE: On-board crystal frequency is 25MHz + * LSE: 32.768 kHz + */ + +#define STM32_BOARD_XTAL 8000000ul + +#define STM32_HSI_FREQUENCY 16000000ul +#define STM32_LSI_FREQUENCY 32000 +#define STM32_HSE_FREQUENCY STM32_BOARD_XTAL +#define STM32_LSE_FREQUENCY 32768 + +/* Main PLL Configuration. + * + * PLL source is HSE = 8,000,000 + * + * PLL_VCO = (STM32_HSE_FREQUENCY / PLLM) * PLLN + * Subject to: + * + * 2 <= PLLM <= 63 + * 192 <= PLLN <= 432 + * 192 MHz <= PLL_VCO <= 432MHz + * + * SYSCLK = PLL_VCO / PLLP + * Subject to + * + * PLLP = {2, 4, 6, 8} + * SYSCLK <= 216 MHz + * + * USB OTG FS, SDMMC and RNG Clock = PLL_VCO / PLLQ + * Subject to + * The USB OTG FS requires a 48 MHz clock to work correctly. The SDMMC + * and the random number generator need a frequency lower than or equal + * to 48 MHz to work correctly. + * + * 2 <= PLLQ <= 15 + */ + +#if defined(CONFIG_STM32F7_USBOTHFS) +/* Highest SYSCLK with USB OTG FS clock = 48 MHz + * + * PLL_VCO = (8,000,000 / 8) * 384 = 384 MHz + * SYSCLK = 384 MHz / 2 = 192 MHz + * USB OTG FS, SDMMC and RNG Clock = 384 MHz / 8 = 48MHz + */ + +#define STM32_PLLCFG_PLLM RCC_PLLCFG_PLLM(8) +#define STM32_PLLCFG_PLLN RCC_PLLCFG_PLLN(384) +#define STM32_PLLCFG_PLLP RCC_PLLCFG_PLLP_2 +#define STM32_PLLCFG_PLLQ RCC_PLLCFG_PLLQ(8) + +#define STM32_VCO_FREQUENCY ((STM32_HSE_FREQUENCY / 8) * 384) +#define STM32_SYSCLK_FREQUENCY (STM32_VCO_FREQUENCY / 2) +#define STM32_OTGFS_FREQUENCY (STM32_VCO_FREQUENCY / 8) + +#elif defined(CONFIG_STM32F7_SDMMC1) || defined(CONFIG_STM32F7_RNG) +/* Highest SYSCLK with USB OTG FS clock <= 48MHz + * + * PLL_VCO = (8,000,000 / 8) * 432 = 432 MHz + * SYSCLK = 432 MHz / 2 = 216 MHz + * USB OTG FS, SDMMC and RNG Clock = 432 MHz / 10 = 43.2 MHz + */ + +#define STM32_PLLCFG_PLLM RCC_PLLCFG_PLLM(8) +#define STM32_PLLCFG_PLLN RCC_PLLCFG_PLLN(432) +#define STM32_PLLCFG_PLLP RCC_PLLCFG_PLLP_2 +#define STM32_PLLCFG_PLLQ RCC_PLLCFG_PLLQ(10) + +#define STM32_VCO_FREQUENCY ((STM32_HSE_FREQUENCY / 8) * 432) +#define STM32_SYSCLK_FREQUENCY (STM32_VCO_FREQUENCY / 2) +#define STM32_OTGFS_FREQUENCY (STM32_VCO_FREQUENCY / 10) + +#else +/* Highest SYSCLK + * + * PLL_VCO = (8,000,000 / 8) * 432 = 432 MHz + * SYSCLK = 432 MHz / 2 = 216 MHz + */ + +#define STM32_PLLCFG_PLLM RCC_PLLCFG_PLLM(8) +#define STM32_PLLCFG_PLLN RCC_PLLCFG_PLLN(432) +#define STM32_PLLCFG_PLLP RCC_PLLCFG_PLLP_2 +#define STM32_PLLCFG_PLLQ RCC_PLLCFG_PLLQ(10) + +#define STM32_VCO_FREQUENCY ((STM32_HSE_FREQUENCY / 8) * 432) +#define STM32_SYSCLK_FREQUENCY (STM32_VCO_FREQUENCY / 2) +#define STM32_OTGFS_FREQUENCY (STM32_VCO_FREQUENCY / 10) +#endif + +/* Several prescalers allow the configuration of the two AHB buses, the + * high-speed APB (APB2) and the low-speed APB (APB1) domains. The maximum + * frequency of the two AHB buses is 216 MHz while the maximum frequency of + * the high-speed APB domains is 108 MHz. The maximum allowed frequency of + * the low-speed APB domain is 54 MHz. + */ + +/* AHB clock (HCLK) is SYSCLK (216 MHz) */ + +#define STM32_RCC_CFGR_HPRE RCC_CFGR_HPRE_SYSCLK /* HCLK = SYSCLK / 1 */ +#define STM32_HCLK_FREQUENCY STM32_SYSCLK_FREQUENCY +#define STM32_BOARD_HCLK STM32_HCLK_FREQUENCY /* same as above, to satisfy compiler */ + +/* APB1 clock (PCLK1) is HCLK/4 (54 MHz) */ + +#define STM32_RCC_CFGR_PPRE1 RCC_CFGR_PPRE1_HCLKd4 /* PCLK1 = HCLK / 4 */ +#define STM32_PCLK1_FREQUENCY (STM32_HCLK_FREQUENCY/4) + +/* Timers driven from APB1 will be twice PCLK1 */ + +#define STM32_APB1_TIM2_CLKIN (2*STM32_PCLK1_FREQUENCY) +#define STM32_APB1_TIM3_CLKIN (2*STM32_PCLK1_FREQUENCY) +#define STM32_APB1_TIM4_CLKIN (2*STM32_PCLK1_FREQUENCY) +#define STM32_APB1_TIM5_CLKIN (2*STM32_PCLK1_FREQUENCY) +#define STM32_APB1_TIM6_CLKIN (2*STM32_PCLK1_FREQUENCY) +#define STM32_APB1_TIM7_CLKIN (2*STM32_PCLK1_FREQUENCY) +#define STM32_APB1_TIM12_CLKIN (2*STM32_PCLK1_FREQUENCY) +#define STM32_APB1_TIM13_CLKIN (2*STM32_PCLK1_FREQUENCY) +#define STM32_APB1_TIM14_CLKIN (2*STM32_PCLK1_FREQUENCY) + +/* APB2 clock (PCLK2) is HCLK/2 (108MHz) */ + +#define STM32_RCC_CFGR_PPRE2 RCC_CFGR_PPRE2_HCLKd2 /* PCLK2 = HCLK / 2 */ +#define STM32_PCLK2_FREQUENCY (STM32_HCLK_FREQUENCY/2) + +/* Timers driven from APB2 will be twice PCLK2 */ + +#define STM32_APB2_TIM1_CLKIN (2*STM32_PCLK2_FREQUENCY) +#define STM32_APB2_TIM8_CLKIN (2*STM32_PCLK2_FREQUENCY) +#define STM32_APB2_TIM9_CLKIN (2*STM32_PCLK2_FREQUENCY) +#define STM32_APB2_TIM10_CLKIN (2*STM32_PCLK2_FREQUENCY) +#define STM32_APB2_TIM11_CLKIN (2*STM32_PCLK2_FREQUENCY) + +/* FLASH wait states + * + * --------- ---------- ----------- + * VDD MAX SYSCLK WAIT STATES + * --------- ---------- ----------- + * 1.7-2.1 V 180 MHz 8 + * 2.1-2.4 V 216 MHz 9 + * 2.4-2.7 V 216 MHz 8 + * 2.7-3.6 V 216 MHz 7 + * --------- ---------- ----------- + */ + +#define BOARD_FLASH_WAITSTATES 7 + +/* LED definitions ******************************************************************/ +/* The STM32F746G-DISCO board has numerous LEDs but only one, LD1 located near the + * reset button, that can be controlled by software (LD2 is a power indicator, LD3-6 + * indicate USB status, LD7 is controlled by the ST-Link). + * + * LD1 is controlled by PI1 which is also the SPI2_SCK at the Arduino interface. + * One end of LD1 is grounded so a high output on PI1 will illuminate the LED. + * + * If CONFIG_ARCH_LEDS is not defined, then the user can control the LEDs in any way. + * The following definitions are used to access individual LEDs. + */ + +/* LED index values for use with board_userled() */ + +#define BOARD_LED1 0 +#define BOARD_NLEDS 1 + +#define BOARD_LD1 BOARD_LED1 + +/* LED bits for use with board_userled_all() */ + +#define BOARD_LED1_BIT (1 << BOARD_LED1) + +/* If CONFIG_ARCH_LEDS is defined, the usage by the board port is defined in + * include/board.h and src/stm32_leds.c. The LEDs are used to encode OS-related + * events as follows: + * + * SYMBOL Meaning LD1 + * ------------------- ----------------------- ------ + * LED_STARTED NuttX has been started OFF + * LED_HEAPALLOCATE Heap has been allocated OFF + * LED_IRQSENABLED Interrupts enabled OFF + * LED_STACKCREATED Idle stack created ON + * LED_INIRQ In an interrupt N/C + * LED_SIGNAL In a signal handler N/C + * LED_ASSERTION An assertion failed N/C + * LED_PANIC The system has crashed FLASH + * + * Thus is LD1 is statically on, NuttX has successfully booted and is, + * apparently, running normally. If LD1 is flashing at approximately + * 2Hz, then a fatal error has been detected and the system has halted. + */ + +#define LED_STARTED 0 /* LD1=OFF */ +#define LED_HEAPALLOCATE 0 /* LD1=OFF */ +#define LED_IRQSENABLED 0 /* LD1=OFF */ +#define LED_STACKCREATED 1 /* LD1=ON */ +#define LED_INIRQ 2 /* LD1=no change */ +#define LED_SIGNAL 2 /* LD1=no change */ +#define LED_ASSERTION 2 /* LD1=no change */ +#define LED_PANIC 3 /* LD1=flashing */ + +/* Button definitions ***************************************************************/ +/* The STM32F7 Discovery supports one button: Pushbutton B1, labelled "User", is + * connected to GPIO PI11. A high value will be sensed when the button is depressed. + */ + +#define BUTTON_USER 0 +#define NUM_BUTTONS 1 +#define BUTTON_USER_BIT (1 << BUTTON_USER) + +/* Alternate function pin selections ************************************************/ + +/* USART6: + * + * These configurations assume that you are using a standard Arduio RS-232 shield + * with the serial interface with RX on pin D0 and TX on pin D1: + * + * -------- --------------- + * STM32F7 + * ARDUIONO FUNCTION GPIO + * -- ----- --------- ----- + * DO RX USART6_RX PC7 + * D1 TX USART6_TX PC6 + * -- ----- --------- ----- + */ + +#define GPIO_USART6_RX GPIO_USART6_RX_1 +#define GPIO_USART6_TX GPIO_USART6_TX_1 + +/* The STM32 F7 connects to a SMSC LAN8742A PHY using these pins: + * + * STM32 F7 BOARD LAN8742A + * GPIO SIGNAL PIN NAME + * -------- ------------ ------------- + * PG11 RMII_TX_EN TXEN + * PG13 RMII_TXD0 TXD0 + * PG14 RMII_TXD1 TXD1 + * PC4 RMII_RXD0 RXD0/MODE0 + * PC5 RMII_RXD1 RXD1/MODE1 + * PG2 RMII_RXER RXER/PHYAD0 -- Not used + * PA7 RMII_CRS_DV CRS_DV/MODE2 + * PC1 RMII_MDC MDC + * PA2 RMII_MDIO MDIO + * N/A NRST nRST + * PA1 RMII_REF_CLK nINT/REFCLK0 + * N/A OSC_25M XTAL1/CLKIN + * + * The PHY address is either 0 or 1, depending on the state of PG2 on reset. + * PG2 is not controlled but appears to result in a PHY address of 0. + */ + +#define GPIO_ETH_RMII_TX_EN GPIO_ETH_RMII_TX_EN_2 +#define GPIO_ETH_RMII_TXD0 GPIO_ETH_RMII_TXD0_2 +#define GPIO_ETH_RMII_TXD1 GPIO_ETH_RMII_TXD1_2 + +/************************************************************************************ + * Public Data + ************************************************************************************/ +#ifndef __ASSEMBLY__ + +#undef EXTERN +#if defined(__cplusplus) +#define EXTERN extern "C" +extern "C" +{ +#else +#define EXTERN extern +#endif + +/************************************************************************************ + * Public Function Prototypes + ************************************************************************************/ + +/************************************************************************************ + * Name: stm32_boardinitialize + * + * Description: + * All STM32 architectures must provide the following entry point. This entry point + * is called early in the initialization -- after all memory has been configured + * and mapped but before any devices have been initialized. + * + ************************************************************************************/ + +void stm32_boardinitialize(void); + +#undef EXTERN +#if defined(__cplusplus) +} +#endif + +#endif /* __ASSEMBLY__ */ +#endif /* __CONFIG_NUCLEO_144_INCLUDE_BOARD_H */ diff --git a/configs/nucleo-144/nsh/Make.defs b/configs/nucleo-144/nsh/Make.defs new file mode 100644 index 0000000000..45b3f5f4ae --- /dev/null +++ b/configs/nucleo-144/nsh/Make.defs @@ -0,0 +1,113 @@ +############################################################################ +# configs/nucleo-144/nsh/Make.defs +# +# Copyright (C) 2016 Gregory Nutt. All rights reserved. +# Author: Gregory Nutt +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# 3. Neither the name NuttX nor the names of its contributors may be +# used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +############################################################################ + +include ${TOPDIR}/.config +include ${TOPDIR}/tools/Config.mk +include ${TOPDIR}/arch/arm/src/armv7-m/Toolchain.defs + +LDSCRIPT = flash.ld + +ifeq ($(WINTOOL),y) + # Windows-native toolchains + DIRLINK = $(TOPDIR)/tools/copydir.sh + DIRUNLINK = $(TOPDIR)/tools/unlink.sh + MKDEP = $(TOPDIR)/tools/mkwindeps.sh + ARCHINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)/include}" + ARCHXXINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)/include}" -isystem "${shell cygpath -w $(TOPDIR)/include/cxx}" + ARCHSCRIPT = -T "${shell cygpath -w $(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/$(LDSCRIPT)}" +else + # Linux/Cygwin-native toolchain + MKDEP = $(TOPDIR)/tools/mkdeps$(HOSTEXEEXT) + ARCHINCLUDES = -I. -isystem $(TOPDIR)/include + ARCHXXINCLUDES = -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx + ARCHSCRIPT = -T$(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/$(LDSCRIPT) +endif + +CC = $(CROSSDEV)gcc +CXX = $(CROSSDEV)g++ +CPP = $(CROSSDEV)gcc -E +LD = $(CROSSDEV)ld +AR = $(ARCROSSDEV)ar rcs +NM = $(ARCROSSDEV)nm +OBJCOPY = $(CROSSDEV)objcopy +OBJDUMP = $(CROSSDEV)objdump + +ARCHCCVERSION = ${shell $(CC) -v 2>&1 | sed -n '/^gcc version/p' | sed -e 's/^gcc version \([0-9\.]\)/\1/g' -e 's/[-\ ].*//g' -e '1q'} +ARCHCCMAJOR = ${shell echo $(ARCHCCVERSION) | cut -d'.' -f1} + +ifeq ($(CONFIG_DEBUG_SYMBOLS),y) + ARCHOPTIMIZATION = -g +endif + +ifneq ($(CONFIG_DEBUG_NOOPT),y) + ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing -fno-strength-reduce -fomit-frame-pointer +endif + +ARCHCFLAGS = -fno-builtin +ARCHCXXFLAGS = -fno-builtin -fno-exceptions -fno-rtti +ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef +ARCHWARNINGSXX = -Wall -Wshadow -Wundef +ARCHDEFINES = +ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10 + +CFLAGS = $(ARCHCFLAGS) $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe +CPICFLAGS = $(ARCHPICFLAGS) $(CFLAGS) +CXXFLAGS = $(ARCHCXXFLAGS) $(ARCHWARNINGSXX) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHXXINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe +CXXPICFLAGS = $(ARCHPICFLAGS) $(CXXFLAGS) +CPPFLAGS = $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) +AFLAGS = $(CFLAGS) -D__ASSEMBLY__ + +NXFLATLDFLAGS1 = -r -d -warn-common +NXFLATLDFLAGS2 = $(NXFLATLDFLAGS1) -T$(TOPDIR)/binfmt/libnxflat/gnu-nxflat-pcrel.ld -no-check-sections +LDNXFLATFLAGS = -e main -s 2048 + +ASMEXT = .S +OBJEXT = .o +LIBEXT = .a +EXEEXT = + +ifneq ($(CROSSDEV),arm-nuttx-elf-) + LDFLAGS += -nostartfiles -nodefaultlibs +endif +ifeq ($(CONFIG_DEBUG_SYMBOLS),y) + LDFLAGS += -g +endif + + +HOSTCC = gcc +HOSTINCLUDES = -I. +HOSTCFLAGS = -Wall -Wstrict-prototypes -Wshadow -Wundef -g -pipe +HOSTLDFLAGS = + diff --git a/configs/nucleo-144/nsh/defconfig b/configs/nucleo-144/nsh/defconfig new file mode 100644 index 0000000000..f7fe7e2ebb --- /dev/null +++ b/configs/nucleo-144/nsh/defconfig @@ -0,0 +1,908 @@ +# +# Automatically generated file; DO NOT EDIT. +# Nuttx/ Configuration +# + +# +# Build Setup +# +# CONFIG_EXPERIMENTAL is not set +# CONFIG_DEFAULT_SMALL is not set +CONFIG_HOST_LINUX=y +# CONFIG_HOST_OSX is not set +# CONFIG_HOST_WINDOWS is not set +# CONFIG_HOST_OTHER is not set + +# +# Build Configuration +# +CONFIG_APPS_DIR="../apps" +CONFIG_BUILD_FLAT=y +# CONFIG_BUILD_2PASS is not set + +# +# Binary Output Formats +# +# CONFIG_RRLOAD_BINARY is not set +CONFIG_INTELHEX_BINARY=y +# CONFIG_MOTOROLA_SREC is not set +CONFIG_RAW_BINARY=y +# CONFIG_UBOOT_UIMAGE is not set + +# +# Customize Header Files +# +# CONFIG_ARCH_STDINT_H is not set +# CONFIG_ARCH_STDBOOL_H is not set +# CONFIG_ARCH_MATH_H is not set +# CONFIG_ARCH_FLOAT_H is not set +# CONFIG_ARCH_STDARG_H is not set +# CONFIG_ARCH_DEBUG_H is not set + +# +# Debug Options +# +# CONFIG_DEBUG is not set +CONFIG_ARCH_HAVE_HEAPCHECK=y +CONFIG_ARCH_HAVE_STACKCHECK=y +# CONFIG_STACK_COLORATION is not set +CONFIG_DEBUG_SYMBOLS=y +CONFIG_ARCH_HAVE_CUSTOMOPT=y +CONFIG_DEBUG_NOOPT=y +# CONFIG_DEBUG_CUSTOMOPT is not set +# CONFIG_DEBUG_FULLOPT is not set + +# +# System Type +# +CONFIG_ARCH_ARM=y +# CONFIG_ARCH_AVR is not set +# CONFIG_ARCH_HC is not set +# CONFIG_ARCH_MIPS is not set +# CONFIG_ARCH_RGMP is not set +# CONFIG_ARCH_SH is not set +# CONFIG_ARCH_SIM is not set +# CONFIG_ARCH_X86 is not set +# CONFIG_ARCH_Z16 is not set +# CONFIG_ARCH_Z80 is not set +CONFIG_ARCH="arm" + +# +# ARM Options +# +# CONFIG_ARCH_CHIP_A1X is not set +# CONFIG_ARCH_CHIP_C5471 is not set +# CONFIG_ARCH_CHIP_CALYPSO is not set +# CONFIG_ARCH_CHIP_DM320 is not set +# CONFIG_ARCH_CHIP_EFM32 is not set +# CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set +# CONFIG_ARCH_CHIP_KINETIS is not set +# CONFIG_ARCH_CHIP_KL is not set +# CONFIG_ARCH_CHIP_LM is not set +# CONFIG_ARCH_CHIP_TIVA is not set +# CONFIG_ARCH_CHIP_LPC11XX is not set +# CONFIG_ARCH_CHIP_LPC17XX is not set +# CONFIG_ARCH_CHIP_LPC214X is not set +# CONFIG_ARCH_CHIP_LPC2378 is not set +# CONFIG_ARCH_CHIP_LPC31XX is not set +# CONFIG_ARCH_CHIP_LPC43XX is not set +# CONFIG_ARCH_CHIP_NUC1XX is not set +# CONFIG_ARCH_CHIP_SAMA5 is not set +# CONFIG_ARCH_CHIP_SAMD is not set +# CONFIG_ARCH_CHIP_SAML is not set +# CONFIG_ARCH_CHIP_SAM34 is not set +# CONFIG_ARCH_CHIP_SAMV7 is not set +# CONFIG_ARCH_CHIP_STM32 is not set +CONFIG_ARCH_CHIP_STM32F7=y +# CONFIG_ARCH_CHIP_STM32L4 is not set +# CONFIG_ARCH_CHIP_STR71X is not set +# CONFIG_ARCH_CHIP_TMS570 is not set +# CONFIG_ARCH_CHIP_MOXART is not set +# CONFIG_ARCH_ARM7TDMI is not set +# CONFIG_ARCH_ARM926EJS is not set +# CONFIG_ARCH_ARM920T is not set +# CONFIG_ARCH_CORTEXM0 is not set +# CONFIG_ARCH_CORTEXM3 is not set +# CONFIG_ARCH_CORTEXM4 is not set +CONFIG_ARCH_CORTEXM7=y +# CONFIG_ARCH_CORTEXA5 is not set +# CONFIG_ARCH_CORTEXA8 is not set +# CONFIG_ARCH_CORTEXA9 is not set +# CONFIG_ARCH_CORTEXR4 is not set +# CONFIG_ARCH_CORTEXR4F is not set +# CONFIG_ARCH_CORTEXR5 is not set +# CONFIG_ARCH_CORTEX5F is not set +# CONFIG_ARCH_CORTEXR7 is not set +# CONFIG_ARCH_CORTEXR7F is not set +CONFIG_ARCH_FAMILY="armv7-m" +CONFIG_ARCH_CHIP="stm32f7" +# CONFIG_ARM_TOOLCHAIN_IAR is not set +CONFIG_ARM_TOOLCHAIN_GNU=y +# CONFIG_ARMV7M_USEBASEPRI is not set +CONFIG_ARCH_HAVE_CMNVECTOR=y +CONFIG_ARMV7M_CMNVECTOR=y +# CONFIG_ARMV7M_LAZYFPU is not set +CONFIG_ARCH_HAVE_FPU=y +CONFIG_ARCH_HAVE_DPFPU=y +# CONFIG_ARCH_FPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set +CONFIG_ARM_HAVE_MPU_UNIFIED=y +# CONFIG_ARM_MPU is not set + +# +# ARMV7M Configuration Options +# +CONFIG_ARMV7M_HAVE_ICACHE=y +CONFIG_ARMV7M_HAVE_DCACHE=y +CONFIG_ARMV7M_ICACHE=y +CONFIG_ARMV7M_DCACHE=y +CONFIG_ARMV7M_DCACHE_WRITETHROUGH=y +CONFIG_ARMV7M_HAVE_ITCM=y +CONFIG_ARMV7M_HAVE_DTCM=y +# CONFIG_ARMV7M_ITCM is not set +CONFIG_ARMV7M_DTCM=y +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set +# CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set +# CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set +# CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set +CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL=y +CONFIG_ARMV7M_HAVE_STACKCHECK=y +# CONFIG_ARMV7M_STACKCHECK is not set +# CONFIG_ARMV7M_ITMSYSLOG is not set +# CONFIG_SERIAL_TERMIOS is not set + +# +# STM32 F7 Configuration Options +# +# CONFIG_ARCH_CHIP_STM32F745 is not set +CONFIG_ARCH_CHIP_STM32F746=y +# CONFIG_ARCH_CHIP_STM32F756 is not set +CONFIG_STM32F7_STM32F74XX=y +# CONFIG_STM32F7_STM32F75XX is not set +# CONFIG_STM32F7_FLASH_512KB is not set +CONFIG_STM32F7_FLASH_1024KB=y + +# +# STM32 Peripheral Support +# +CONFIG_STM32F7_HAVE_LTDC=y +# CONFIG_STM32F7_ADC is not set +# CONFIG_STM32F7_CAN is not set +# CONFIG_STM32F7_DAC is not set +# CONFIG_STM32F7_DMA is not set +# CONFIG_STM32F7_I2C is not set +# CONFIG_STM32F7_SAI is not set +# CONFIG_STM32F7_SPI is not set +CONFIG_STM32F7_USART=y +# CONFIG_STM32F7_ADC1 is not set +# CONFIG_STM32F7_ADC2 is not set +# CONFIG_STM32F7_ADC3 is not set +# CONFIG_STM32F7_BKPSRAM is not set +# CONFIG_STM32F7_CAN1 is not set +# CONFIG_STM32F7_CAN2 is not set +# CONFIG_STM32F7_CEC is not set +# CONFIG_STM32F7_CRC is not set +# CONFIG_STM32F7_CRYP is not set +# CONFIG_STM32F7_DMA1 is not set +# CONFIG_STM32F7_DMA2 is not set +# CONFIG_STM32F7_DAC1 is not set +# CONFIG_STM32F7_DAC2 is not set +# CONFIG_STM32F7_DCMI is not set +# CONFIG_STM32F7_ETHMAC is not set +# CONFIG_STM32F7_FSMC is not set +# CONFIG_STM32F7_I2C1 is not set +# CONFIG_STM32F7_I2C2 is not set +# CONFIG_STM32F7_I2C3 is not set +# CONFIG_STM32F7_LPTIM1 is not set +# CONFIG_STM32F7_LTDC is not set +# CONFIG_STM32F7_DMA2D is not set +# CONFIG_STM32F7_OTGFS is not set +# CONFIG_STM32F7_OTGHS is not set +# CONFIG_STM32F7_QUADSPI is not set +# CONFIG_STM32F7_SAI1 is not set +# CONFIG_STM32F7_RNG is not set +# CONFIG_STM32F7_SAI2 is not set +# CONFIG_STM32F7_SDMMC1 is not set +# CONFIG_STM32F7_SPDIFRX is not set +# CONFIG_STM32F7_SPI1 is not set +# CONFIG_STM32F7_SPI2 is not set +# CONFIG_STM32F7_SPI3 is not set +# CONFIG_STM32F7_SPI4 is not set +# CONFIG_STM32F7_SPI5 is not set +# CONFIG_STM32F7_SPI6 is not set +# CONFIG_STM32F7_TIM1 is not set +# CONFIG_STM32F7_TIM2 is not set +# CONFIG_STM32F7_TIM3 is not set +# CONFIG_STM32F7_TIM4 is not set +# CONFIG_STM32F7_TIM5 is not set +# CONFIG_STM32F7_TIM6 is not set +# CONFIG_STM32F7_TIM7 is not set +# CONFIG_STM32F7_TIM8 is not set +# CONFIG_STM32F7_TIM9 is not set +# CONFIG_STM32F7_TIM10 is not set +# CONFIG_STM32F7_TIM11 is not set +# CONFIG_STM32F7_TIM12 is not set +# CONFIG_STM32F7_TIM13 is not set +# CONFIG_STM32F7_TIM14 is not set +# CONFIG_STM32F7_TIM15 is not set +# CONFIG_STM32F7_USART1 is not set +# CONFIG_STM32F7_USART2 is not set +# CONFIG_STM32F7_USART3 is not set +# CONFIG_STM32F7_UART4 is not set +# CONFIG_STM32F7_UART5 is not set +CONFIG_STM32F7_USART6=y +# CONFIG_STM32F7_UART7 is not set +# CONFIG_STM32F7_UART8 is not set +# CONFIG_STM32F7_IWDG is not set +# CONFIG_STM32F7_WWDG is not set +# CONFIG_STM32F7_CUSTOM_CLOCKCONFIG is not set + +# +# Architecture Options +# +# CONFIG_ARCH_NOINTC is not set +# CONFIG_ARCH_VECNOTIRQ is not set +# CONFIG_ARCH_DMA is not set +CONFIG_ARCH_HAVE_IRQPRIO=y +# CONFIG_ARCH_L2CACHE is not set +# CONFIG_ARCH_HAVE_COHERENT_DCACHE is not set +# CONFIG_ARCH_HAVE_ADDRENV is not set +# CONFIG_ARCH_NEED_ADDRENV_MAPPING is not set +# CONFIG_ARCH_HAVE_MULTICPU is not set +CONFIG_ARCH_HAVE_VFORK=y +# CONFIG_ARCH_HAVE_MMU is not set +CONFIG_ARCH_HAVE_MPU=y +# CONFIG_ARCH_NAND_HWECC is not set +# CONFIG_ARCH_HAVE_EXTCLK is not set +# CONFIG_ARCH_HAVE_POWEROFF is not set +# CONFIG_ARCH_HAVE_RESET is not set +# CONFIG_ARCH_USE_MPU is not set +# CONFIG_ARCH_IRQPRIO is not set +CONFIG_ARCH_STACKDUMP=y +# CONFIG_ENDIAN_BIG is not set +# CONFIG_ARCH_IDLE_CUSTOM is not set +# CONFIG_ARCH_HAVE_RAMFUNCS is not set +CONFIG_ARCH_HAVE_RAMVECTORS=y +# CONFIG_ARCH_RAMVECTORS is not set + +# +# Board Settings +# +CONFIG_BOARD_LOOPSPERMSEC=43103 +# CONFIG_ARCH_CALIBRATION is not set + +# +# Interrupt options +# +CONFIG_ARCH_HAVE_INTERRUPTSTACK=y +CONFIG_ARCH_INTERRUPTSTACK=0 +CONFIG_ARCH_HAVE_HIPRI_INTERRUPT=y +# CONFIG_ARCH_HIPRI_INTERRUPT is not set + +# +# Boot options +# +# CONFIG_BOOT_RUNFROMEXTSRAM is not set +CONFIG_BOOT_RUNFROMFLASH=y +# CONFIG_BOOT_RUNFROMISRAM is not set +# CONFIG_BOOT_RUNFROMSDRAM is not set +# CONFIG_BOOT_COPYTORAM is not set + +# +# Boot Memory Configuration +# +CONFIG_RAM_START=0x20010000 +CONFIG_RAM_SIZE=245760 +# CONFIG_ARCH_HAVE_SDRAM is not set + +# +# Board Selection +# +# CONFIG_ARCH_BOARD_STM32F746G_DISCO is not set +CONFIG_ARCH_BOARD_NUCLEO_144=y +# CONFIG_ARCH_BOARD_CUSTOM is not set +CONFIG_ARCH_BOARD="nucleo-144" + +# +# Common Board Options +# +CONFIG_ARCH_HAVE_LEDS=y +CONFIG_ARCH_LEDS=y +CONFIG_ARCH_HAVE_BUTTONS=y +CONFIG_ARCH_BUTTONS=y +CONFIG_ARCH_HAVE_IRQBUTTONS=y +# CONFIG_ARCH_IRQBUTTONS is not set +CONFIG_NSH_MMCSDMINOR=0 + +# +# Board-Specific Options +# +# CONFIG_LIB_BOARDCTL is not set + +# +# RTOS Features +# +CONFIG_DISABLE_OS_API=y +# CONFIG_DISABLE_POSIX_TIMERS is not set +# CONFIG_DISABLE_PTHREAD is not set +# CONFIG_DISABLE_SIGNALS is not set +# CONFIG_DISABLE_MQUEUE is not set +# CONFIG_DISABLE_ENVIRON is not set + +# +# Clocks and Timers +# +CONFIG_USEC_PER_TICK=10000 +# CONFIG_SYSTEM_TIME64 is not set +# CONFIG_CLOCK_MONOTONIC is not set +# CONFIG_JULIAN_TIME is not set +CONFIG_START_YEAR=2011 +CONFIG_START_MONTH=12 +CONFIG_START_DAY=6 +CONFIG_MAX_WDOGPARMS=2 +CONFIG_PREALLOC_WDOGS=4 +CONFIG_WDOG_INTRESERVE=0 +CONFIG_PREALLOC_TIMERS=4 + +# +# Tasks and Scheduling +# +# CONFIG_INIT_NONE is not set +CONFIG_INIT_ENTRYPOINT=y +# CONFIG_INIT_FILEPATH is not set +CONFIG_USER_ENTRYPOINT="nsh_main" +CONFIG_RR_INTERVAL=200 +# CONFIG_SCHED_SPORADIC is not set +CONFIG_TASK_NAME_SIZE=0 +CONFIG_MAX_TASKS=16 +# CONFIG_SCHED_HAVE_PARENT is not set +CONFIG_SCHED_WAITPID=y + +# +# Pthread Options +# +# CONFIG_MUTEX_TYPES is not set +CONFIG_NPTHREAD_KEYS=4 + +# +# Performance Monitoring +# +# CONFIG_SCHED_CPULOAD is not set +# CONFIG_SCHED_INSTRUMENTATION is not set + +# +# Files and I/O +# +CONFIG_DEV_CONSOLE=y +# CONFIG_FDCLONE_DISABLE is not set +# CONFIG_FDCLONE_STDIO is not set +CONFIG_SDCLONE_DISABLE=y +CONFIG_NFILE_DESCRIPTORS=8 +CONFIG_NFILE_STREAMS=8 +CONFIG_NAME_MAX=32 +# CONFIG_PRIORITY_INHERITANCE is not set + +# +# RTOS hooks +# +# CONFIG_BOARD_INITIALIZE is not set +# CONFIG_SCHED_STARTHOOK is not set +# CONFIG_SCHED_ATEXIT is not set +# CONFIG_SCHED_ONEXIT is not set + +# +# Signal Numbers +# +CONFIG_SIG_SIGUSR1=1 +CONFIG_SIG_SIGUSR2=2 +CONFIG_SIG_SIGALARM=3 +CONFIG_SIG_SIGCONDTIMEDOUT=16 + +# +# POSIX Message Queue Options +# +CONFIG_PREALLOC_MQ_MSGS=4 +CONFIG_MQ_MAXMSGSIZE=32 +# CONFIG_MODULE is not set + +# +# Work queue support +# +# CONFIG_SCHED_WORKQUEUE is not set +# CONFIG_SCHED_HPWORK is not set +# CONFIG_SCHED_LPWORK is not set + +# +# Stack and heap information +# +CONFIG_IDLETHREAD_STACKSIZE=1024 +CONFIG_USERMAIN_STACKSIZE=2048 +CONFIG_PTHREAD_STACK_MIN=256 +CONFIG_PTHREAD_STACK_DEFAULT=2048 +# CONFIG_LIB_SYSCALL is not set + +# +# Device Drivers +# +CONFIG_DISABLE_POLL=y +CONFIG_DEV_NULL=y +# CONFIG_DEV_ZERO is not set +# CONFIG_DEV_LOOP is not set + +# +# Buffering +# +# CONFIG_DRVR_WRITEBUFFER is not set +# CONFIG_DRVR_READAHEAD is not set +# CONFIG_RAMDISK is not set +# CONFIG_CAN is not set +# CONFIG_ARCH_HAVE_PWM_PULSECOUNT is not set +# CONFIG_ARCH_HAVE_PWM_MULTICHAN is not set +# CONFIG_PWM is not set +CONFIG_ARCH_HAVE_I2CRESET=y +# CONFIG_I2C is not set +CONFIG_SPI=y +# CONFIG_SPI_SLAVE is not set +CONFIG_SPI_EXCHANGE=y +# CONFIG_SPI_CMDDATA is not set +# CONFIG_SPI_CALLBACK is not set +# CONFIG_SPI_BITBANG is not set +# CONFIG_SPI_HWFEATURES is not set +# CONFIG_SPI_CRCGENERATION is not set +# CONFIG_I2S is not set + +# +# Timer Driver Support +# +# CONFIG_TIMER is not set +# CONFIG_RTC is not set +# CONFIG_WATCHDOG is not set +# CONFIG_ANALOG is not set +# CONFIG_AUDIO_DEVICES is not set +# CONFIG_VIDEO_DEVICES is not set +# CONFIG_BCH is not set +# CONFIG_INPUT is not set +# CONFIG_IOEXPANDER is not set +# CONFIG_LCD is not set + +# +# LED Support +# +# CONFIG_USERLED is not set +# CONFIG_RGBLED is not set +# CONFIG_PCA9635PW is not set +# CONFIG_MMCSD is not set +# CONFIG_MODEM is not set +# CONFIG_MTD is not set +# CONFIG_EEPROM is not set +# CONFIG_PIPES is not set +# CONFIG_PM is not set +# CONFIG_POWER is not set +# CONFIG_SENSORS is not set +# CONFIG_SERCOMM_CONSOLE is not set +CONFIG_SERIAL=y +# CONFIG_DEV_LOWCONSOLE is not set +# CONFIG_16550_UART is not set +# CONFIG_ARCH_HAVE_UART is not set +# CONFIG_ARCH_HAVE_UART0 is not set +# CONFIG_ARCH_HAVE_UART1 is not set +# CONFIG_ARCH_HAVE_UART2 is not set +# CONFIG_ARCH_HAVE_UART3 is not set +# CONFIG_ARCH_HAVE_UART4 is not set +# CONFIG_ARCH_HAVE_UART5 is not set +# CONFIG_ARCH_HAVE_UART6 is not set +# CONFIG_ARCH_HAVE_UART7 is not set +# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_ARCH_HAVE_SCI0 is not set +# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_ARCH_HAVE_USART0 is not set +# CONFIG_ARCH_HAVE_USART1 is not set +# CONFIG_ARCH_HAVE_USART2 is not set +# CONFIG_ARCH_HAVE_USART3 is not set +# CONFIG_ARCH_HAVE_USART4 is not set +# CONFIG_ARCH_HAVE_USART5 is not set +CONFIG_ARCH_HAVE_USART6=y +# CONFIG_ARCH_HAVE_USART7 is not set +# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_ARCH_HAVE_OTHER_UART is not set + +# +# USART Configuration +# +CONFIG_USART6_ISUART=y +CONFIG_MCU_SERIAL=y +CONFIG_STANDARD_SERIAL=y +# CONFIG_SERIAL_IFLOWCONTROL is not set +# CONFIG_SERIAL_OFLOWCONTROL is not set +# CONFIG_SERIAL_DMA is not set +CONFIG_ARCH_HAVE_SERIAL_TERMIOS=y +CONFIG_USART6_SERIAL_CONSOLE=y +# CONFIG_OTHER_SERIAL_CONSOLE is not set +# CONFIG_NO_SERIAL_CONSOLE is not set + +# +# USART6 Configuration +# +CONFIG_USART6_RXBUFSIZE=256 +CONFIG_USART6_TXBUFSIZE=256 +CONFIG_USART6_BAUD=115200 +CONFIG_USART6_BITS=8 +CONFIG_USART6_PARITY=0 +CONFIG_USART6_2STOP=0 +# CONFIG_USART6_IFLOWCONTROL is not set +# CONFIG_USART6_OFLOWCONTROL is not set +# CONFIG_USART6_DMA is not set +# CONFIG_USBDEV is not set +# CONFIG_USBHOST is not set +# CONFIG_DRIVERS_WIRELESS is not set + +# +# System Logging Device Options +# + +# +# System Logging +# +# CONFIG_RAMLOG is not set +# CONFIG_SYSLOG_CONSOLE is not set + +# +# Networking Support +# +# CONFIG_ARCH_HAVE_NET is not set +# CONFIG_ARCH_HAVE_PHY is not set +# CONFIG_NET is not set + +# +# Crypto API +# +# CONFIG_CRYPTO is not set + +# +# File Systems +# + +# +# File system configuration +# +# CONFIG_DISABLE_MOUNTPOINT is not set +# CONFIG_FS_AUTOMOUNTER is not set +# CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_FS_READABLE is not set +# CONFIG_FS_WRITABLE is not set +# CONFIG_FS_NAMED_SEMAPHORES is not set +CONFIG_FS_MQUEUE_MPATH="/var/mqueue" +# CONFIG_FS_RAMMAP is not set +# CONFIG_FS_FAT is not set +# CONFIG_FS_NXFFS is not set +# CONFIG_FS_ROMFS is not set +# CONFIG_FS_TMPFS is not set +# CONFIG_FS_SMARTFS is not set +# CONFIG_FS_BINFS is not set +# CONFIG_FS_PROCFS is not set +# CONFIG_FS_UNIONFS is not set + +# +# System Logging +# +# CONFIG_SYSLOG is not set +# CONFIG_SYSLOG_TIMESTAMP is not set + +# +# Graphics Support +# +# CONFIG_NX is not set + +# +# Memory Management +# +# CONFIG_MM_SMALL is not set +CONFIG_MM_REGIONS=2 +# CONFIG_ARCH_HAVE_HEAP2 is not set +# CONFIG_GRAN is not set + +# +# Audio Support +# +# CONFIG_AUDIO is not set + +# +# Wireless Support +# + +# +# Binary Loader +# +# CONFIG_BINFMT_DISABLE is not set +# CONFIG_BINFMT_EXEPATH is not set +# CONFIG_NXFLAT is not set +# CONFIG_ELF is not set +CONFIG_BUILTIN=y +# CONFIG_PIC is not set +# CONFIG_SYMTAB_ORDEREDBYNAME is not set + +# +# Library Routines +# + +# +# Standard C Library Options +# +CONFIG_STDIO_BUFFER_SIZE=64 +CONFIG_STDIO_LINEBUFFER=y +CONFIG_NUNGET_CHARS=2 +CONFIG_LIB_HOMEDIR="/" +# CONFIG_LIBM is not set +# CONFIG_NOPRINTF_FIELDWIDTH is not set +# CONFIG_LIBC_FLOATINGPOINT is not set +CONFIG_LIBC_LONG_LONG=y +# CONFIG_LIBC_IOCTL_VARIADIC is not set +CONFIG_LIB_RAND_ORDER=1 +# CONFIG_EOL_IS_CR is not set +# CONFIG_EOL_IS_LF is not set +# CONFIG_EOL_IS_BOTH_CRLF is not set +CONFIG_EOL_IS_EITHER_CRLF=y +# CONFIG_LIBC_EXECFUNCS is not set +CONFIG_POSIX_SPAWN_PROXY_STACKSIZE=1024 +CONFIG_TASK_SPAWN_DEFAULT_STACKSIZE=2048 +# CONFIG_LIBC_STRERROR is not set +# CONFIG_LIBC_PERROR_STDOUT is not set +CONFIG_ARCH_LOWPUTC=y +# CONFIG_LIBC_LOCALTIME is not set +# CONFIG_TIME_EXTENDED is not set +CONFIG_LIB_SENDFILE_BUFSIZE=512 +# CONFIG_ARCH_ROMGETC is not set +# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set +# CONFIG_LIBC_NETDB is not set + +# +# Non-standard Library Support +# +# CONFIG_LIB_KBDCODEC is not set +# CONFIG_LIB_SLCDCODEC is not set + +# +# Basic CXX Support +# +# CONFIG_C99_BOOL8 is not set +CONFIG_HAVE_CXX=y +CONFIG_HAVE_CXXINITIALIZE=y +# CONFIG_CXX_NEWLONG is not set + +# +# uClibc++ Standard C++ Library +# +# CONFIG_UCLIBCXX is not set + +# +# Application Configuration +# + +# +# Built-In Applications +# +CONFIG_BUILTIN_PROXY_STACKSIZE=1024 + +# +# CAN Utilities +# + +# +# Examples +# +# CONFIG_EXAMPLES_BUTTONS is not set +# CONFIG_EXAMPLES_CHAT is not set +# CONFIG_EXAMPLES_CONFIGDATA is not set +# CONFIG_EXAMPLES_CPUHOG is not set +# CONFIG_EXAMPLES_CXXTEST is not set +# CONFIG_EXAMPLES_DHCPD is not set +# CONFIG_EXAMPLES_ELF is not set +# CONFIG_EXAMPLES_FTPC is not set +# CONFIG_EXAMPLES_FTPD is not set +# CONFIG_EXAMPLES_HELLO is not set +# CONFIG_EXAMPLES_HELLOXX is not set +# CONFIG_EXAMPLES_JSON is not set +# CONFIG_EXAMPLES_HIDKBD is not set +# CONFIG_EXAMPLES_KEYPADTEST is not set +# CONFIG_EXAMPLES_IGMP is not set +# CONFIG_EXAMPLES_MEDIA is not set +# CONFIG_EXAMPLES_MM is not set +# CONFIG_EXAMPLES_MODBUS is not set +# CONFIG_EXAMPLES_MOUNT is not set +# CONFIG_EXAMPLES_NRF24L01TERM is not set +CONFIG_EXAMPLES_NSH=y +# CONFIG_EXAMPLES_NSH_CXXINITIALIZE is not set +# CONFIG_EXAMPLES_NULL is not set +# CONFIG_EXAMPLES_NX is not set +# CONFIG_EXAMPLES_NXTERM is not set +# CONFIG_EXAMPLES_NXFFS is not set +# CONFIG_EXAMPLES_NXHELLO is not set +# CONFIG_EXAMPLES_NXIMAGE is not set +# CONFIG_EXAMPLES_NXLINES is not set +# CONFIG_EXAMPLES_NXTEXT is not set +# CONFIG_EXAMPLES_OSTEST is not set +# CONFIG_EXAMPLES_PCA9635 is not set +# CONFIG_EXAMPLES_PIPE is not set +# CONFIG_EXAMPLES_PPPD is not set +# CONFIG_EXAMPLES_POSIXSPAWN is not set +# CONFIG_EXAMPLES_RGBLED is not set +# CONFIG_EXAMPLES_RGMP is not set +# CONFIG_EXAMPLES_SENDMAIL is not set +# CONFIG_EXAMPLES_SERIALBLASTER is not set +# CONFIG_EXAMPLES_SERIALRX is not set +# CONFIG_EXAMPLES_SERLOOP is not set +# CONFIG_EXAMPLES_SLCD is not set +# CONFIG_EXAMPLES_SMART_TEST is not set +# CONFIG_EXAMPLES_SMART is not set +# CONFIG_EXAMPLES_SMP is not set +# CONFIG_EXAMPLES_TCPECHO is not set +# CONFIG_EXAMPLES_TELNETD is not set +# CONFIG_EXAMPLES_TIFF is not set +# CONFIG_EXAMPLES_TOUCHSCREEN is not set +# CONFIG_EXAMPLES_WEBSERVER is not set +# CONFIG_EXAMPLES_USBTERM is not set +# CONFIG_EXAMPLES_WATCHDOG is not set + +# +# File System Utilities +# +# CONFIG_FSUTILS_INIFILE is not set + +# +# GPS Utilities +# +# CONFIG_GPSUTILS_MINMEA_LIB is not set + +# +# Graphics Support +# +# CONFIG_TIFF is not set +# CONFIG_GRAPHICS_TRAVELER is not set + +# +# Interpreters +# +# CONFIG_INTERPRETERS_FICL is not set +# CONFIG_INTERPRETERS_PCODE is not set +# CONFIG_INTERPRETERS_MICROPYTHON is not set + +# +# FreeModBus +# +# CONFIG_MODBUS is not set + +# +# Network Utilities +# +# CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_FTPC is not set +# CONFIG_NETUTILS_JSON is not set +# CONFIG_NETUTILS_SMTP is not set + +# +# NSH Library +# +CONFIG_NSH_LIBRARY=y +# CONFIG_NSH_MOTD is not set + +# +# Command Line Configuration +# +CONFIG_NSH_READLINE=y +# CONFIG_NSH_CLE is not set +CONFIG_NSH_LINELEN=64 +# CONFIG_NSH_DISABLE_SEMICOLON is not set +CONFIG_NSH_CMDPARMS=y +CONFIG_NSH_MAXARGUMENTS=6 +CONFIG_NSH_ARGCAT=y +CONFIG_NSH_NESTDEPTH=3 +# CONFIG_NSH_DISABLEBG is not set +CONFIG_NSH_BUILTIN_APPS=y + +# +# Disable Individual commands +# +# CONFIG_NSH_DISABLE_ADDROUTE is not set +# CONFIG_NSH_DISABLE_BASENAME is not set +# CONFIG_NSH_DISABLE_CAT is not set +# CONFIG_NSH_DISABLE_CD is not set +# CONFIG_NSH_DISABLE_CP is not set +# CONFIG_NSH_DISABLE_CMP is not set +CONFIG_NSH_DISABLE_DATE=y +# CONFIG_NSH_DISABLE_DD is not set +# CONFIG_NSH_DISABLE_DF is not set +# CONFIG_NSH_DISABLE_DELROUTE is not set +# CONFIG_NSH_DISABLE_DIRNAME is not set +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_EXEC is not set +# CONFIG_NSH_DISABLE_EXIT is not set +# CONFIG_NSH_DISABLE_FREE is not set +# CONFIG_NSH_DISABLE_GET is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_HEXDUMP is not set +# CONFIG_NSH_DISABLE_IFCONFIG is not set +CONFIG_NSH_DISABLE_IFUPDOWN=y +# CONFIG_NSH_DISABLE_KILL is not set +# CONFIG_NSH_DISABLE_LOSETUP is not set +CONFIG_NSH_DISABLE_LOSMART=y +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MB is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MKFIFO is not set +# CONFIG_NSH_DISABLE_MKRD is not set +# CONFIG_NSH_DISABLE_MH is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_MW is not set +# CONFIG_NSH_DISABLE_PS is not set +# CONFIG_NSH_DISABLE_PUT is not set +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_RM is not set +# CONFIG_NSH_DISABLE_RMDIR is not set +# CONFIG_NSH_DISABLE_SET is not set +# CONFIG_NSH_DISABLE_SH is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_TIME is not set +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNAME is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set +# CONFIG_NSH_DISABLE_WGET is not set +# CONFIG_NSH_DISABLE_XD is not set + +# +# Configure Command Options +# +CONFIG_NSH_CMDOPT_DF_H=y +CONFIG_NSH_CODECS_BUFSIZE=128 +CONFIG_NSH_CMDOPT_HEXDUMP=y +CONFIG_NSH_FILEIOSIZE=512 + +# +# Scripting Support +# +# CONFIG_NSH_DISABLESCRIPT is not set +# CONFIG_NSH_DISABLE_ITEF is not set +# CONFIG_NSH_DISABLE_LOOPS is not set + +# +# Console Configuration +# +CONFIG_NSH_CONSOLE=y +# CONFIG_NSH_ALTCONDEV is not set +# CONFIG_NSH_ARCHINIT is not set +# CONFIG_NSH_LOGIN is not set +# CONFIG_NSH_CONSOLE_LOGIN is not set + +# +# NxWidgets/NxWM +# + +# +# Platform-specific Support +# +# CONFIG_PLATFORM_CONFIGDATA is not set + +# +# System Libraries and NSH Add-Ons +# +# CONFIG_SYSTEM_FREE is not set +# CONFIG_SYSTEM_CLE is not set +# CONFIG_SYSTEM_CUTERM is not set +# CONFIG_SYSTEM_INSTALL is not set +# CONFIG_SYSTEM_HEX2BIN is not set +# CONFIG_SYSTEM_HEXED is not set +# CONFIG_SYSTEM_RAMTEST is not set +CONFIG_READLINE_HAVE_EXTMATCH=y +CONFIG_SYSTEM_READLINE=y +CONFIG_READLINE_ECHO=y +# CONFIG_READLINE_TABCOMPLETION is not set +# CONFIG_READLINE_CMD_HISTORY is not set +# CONFIG_SYSTEM_SUDOKU is not set +# CONFIG_SYSTEM_VI is not set +# CONFIG_SYSTEM_UBLOXMODEM is not set +# CONFIG_SYSTEM_ZMODEM is not set diff --git a/configs/nucleo-144/nsh/setenv.sh b/configs/nucleo-144/nsh/setenv.sh new file mode 100644 index 0000000000..8498950aed --- /dev/null +++ b/configs/nucleo-144/nsh/setenv.sh @@ -0,0 +1,77 @@ +#!/bin/bash +# configs/nucleo-144/nsh/setenv.sh +# +# Copyright (C) 2016 Gregory Nutt. All rights reserved. +# Author: Gregory Nutt +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# 3. Neither the name NuttX nor the names of its contributors may be +# used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + +if [ "$_" = "$0" ] ; then + echo "You must source this script, not run it!" 1>&2 + exit 1 +fi + +WD=`pwd` +if [ ! -x "setenv.sh" ]; then + echo "This script must be executed from the top-level NuttX build directory" + exit 1 +fi + +if [ -z "${PATH_ORIG}" ]; then + export PATH_ORIG="${PATH}" +fi + +# This is the Cygwin path to the location where I installed the Atmel GCC +# toolchain under Windows. You will also have to edit this if you install +# this toolchain in any other location +#export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/Atmel/Atmel Toolchain/ARM GCC/Native/4.7.3.99/arm-gnu-toolchain/bin" + +# This is the Cygwin path to the location where I installed the CodeSourcery +# toolchain under windows. You will also have to edit this if you install +# the CodeSourcery toolchain in any other location +#export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/CodeSourcery/Sourcery G++ Lite/bin" +#export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_EABI/bin" +# export TOOLCHAIN_BIN="/cygdrive/c/Users/MyName/MentorGraphics/Sourcery_CodeBench_Lite_for_ARM_EABI/bin" + +# This is the location where I installed the ARM "GNU Tools for ARM Embedded Processors" +# You can this free toolchain here https://launchpad.net/gcc-arm-embedded +export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/GNU Tools ARM Embedded/4.9 2015q2/bin" + +# This is the path to the location where I installed the devkitARM toolchain +# You can get this free toolchain from http://devkitpro.org/ or http://sourceforge.net/projects/devkitpro/ +#export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/devkitARM/bin" + +# This is the Cygwin path to the location where I build the buildroot +# toolchain. +# export TOOLCHAIN_BIN="${WD}/../buildroot/build_arm_nofpu/staging_dir/bin" + +# Add the path to the toolchain to the PATH varialble +export PATH="${TOOLCHAIN_BIN}:/sbin:/usr/sbin:${PATH_ORIG}" + +echo "PATH : ${PATH}" diff --git a/configs/nucleo-144/scripts/flash.ld b/configs/nucleo-144/scripts/flash.ld new file mode 100644 index 0000000000..90e589ed8a --- /dev/null +++ b/configs/nucleo-144/scripts/flash.ld @@ -0,0 +1,147 @@ +/**************************************************************************** + * configs/nucleo-144/scripts/flash.ld + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Modified 11/4/2013 for STM32F429 support + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +/* The STM32F746NGH6 has 1024Kb of main FLASH memory. This FLASH memory can + * be accessed from either the AXIM interface at address 0x0800:0000 or from + * the ITCM interface at address 0x0020:0000. + * + * Additional information, including the option bytes, is available at at + * FLASH at address 0x1ff0:0000 (AXIM) or 0x0010:0000 (ITCM). + * + * In the STM32F746NGH6, two different boot spaces can be selected through + * the BOOT pin and the boot base address programmed in the BOOT_ADD0 and + * BOOT_ADD1 option bytes: + * + * 1) BOOT=0: Boot address defined by user option byte BOOT_ADD0[15:0]. + * ST programmed value: Flash on ITCM at 0x0020:0000 + * 2) BOOT=1: Boot address defined by user option byte BOOT_ADD1[15:0]. + * ST programmed value: System bootloader at 0x0010:0000 + * + * NuttX does not modify these option byes. On the unmodified STM32F746G + * DISCO board, the BOOT0 pin is at ground so by default, the STM32 will boot + * to address 0x0020:0000 in ITCM FLASH. + * + * The STM32F746NGH6 also has 320Kb of data SRAM (in addition to ITCM SRAM). + * SRAM is split up into three blocks: + * + * 1) 64Kb of DTCM SRM beginning at address 0x2000:0000 + * 2) 240Kb of SRAM1 beginning at address 0x2001:0000 + * 3) 16Kb of SRAM2 beginning at address 0x2004:c000 + * + * When booting from FLASH, FLASH memory is aliased to address 0x0000:0000 + * where the code expects to begin execution by jumping to the entry point in + * the 0x0800:0000 address range. + */ + +MEMORY +{ + itcm (rwx) : ORIGIN = 0x00200000, LENGTH = 1024K + flash (rx) : ORIGIN = 0x08000000, LENGTH = 1024K + dtcm (rwx) : ORIGIN = 0x20000000, LENGTH = 64K + sram1 (rwx) : ORIGIN = 0x20010000, LENGTH = 240K + sram2 (rwx) : ORIGIN = 0x2004c000, LENGTH = 16K +} + +OUTPUT_ARCH(arm) +EXTERN(_vectors) +ENTRY(_stext) +SECTIONS +{ + .text : { + _stext = ABSOLUTE(.); + *(.vectors) + *(.text .text.*) + *(.fixup) + *(.gnu.warning) + *(.rodata .rodata.*) + *(.gnu.linkonce.t.*) + *(.glue_7) + *(.glue_7t) + *(.got) + *(.gcc_except_table) + *(.gnu.linkonce.r.*) + _etext = ABSOLUTE(.); + } > flash + + .init_section : { + _sinit = ABSOLUTE(.); + *(.init_array .init_array.*) + _einit = ABSOLUTE(.); + } > flash + + .ARM.extab : { + *(.ARM.extab*) + } > flash + + __exidx_start = ABSOLUTE(.); + .ARM.exidx : { + *(.ARM.exidx*) + } > flash + __exidx_end = ABSOLUTE(.); + + _eronly = ABSOLUTE(.); + + .data : { + _sdata = ABSOLUTE(.); + *(.data .data.*) + *(.gnu.linkonce.d.*) + CONSTRUCTORS + _edata = ABSOLUTE(.); + } > sram1 AT > flash + + .bss : { + _sbss = ABSOLUTE(.); + *(.bss .bss.*) + *(.gnu.linkonce.b.*) + *(COMMON) + _ebss = ABSOLUTE(.); + } > sram1 + + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } + .stabstr 0 : { *(.stabstr) } + .stab.excl 0 : { *(.stab.excl) } + .stab.exclstr 0 : { *(.stab.exclstr) } + .stab.index 0 : { *(.stab.index) } + .stab.indexstr 0 : { *(.stab.indexstr) } + .comment 0 : { *(.comment) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_info 0 : { *(.debug_info) } + .debug_line 0 : { *(.debug_line) } + .debug_pubnames 0 : { *(.debug_pubnames) } + .debug_aranges 0 : { *(.debug_aranges) } +} diff --git a/configs/nucleo-144/scripts/kernel-space.ld b/configs/nucleo-144/scripts/kernel-space.ld new file mode 100644 index 0000000000..166d4f0bbc --- /dev/null +++ b/configs/nucleo-144/scripts/kernel-space.ld @@ -0,0 +1,109 @@ +/**************************************************************************** + * configs/nucleo-144/scripts/kernel-space.ld + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +/* NOTE: This depends on the memory.ld script having been included prior to + * this script. + */ + +OUTPUT_ARCH(arm) +ENTRY(_stext) +SECTIONS +{ + .text : { + _stext = ABSOLUTE(.); + *(.vectors) + *(.text .text.*) + *(.fixup) + *(.gnu.warning) + *(.rodata .rodata.*) + *(.gnu.linkonce.t.*) + *(.glue_7) + *(.glue_7t) + *(.got) + *(.gcc_except_table) + *(.gnu.linkonce.r.*) + _etext = ABSOLUTE(.); + } > kflash + + .init_section : { + _sinit = ABSOLUTE(.); + *(.init_array .init_array.*) + _einit = ABSOLUTE(.); + } > kflash + + .ARM.extab : { + *(.ARM.extab*) + } > kflash + + __exidx_start = ABSOLUTE(.); + .ARM.exidx : { + *(.ARM.exidx*) + } > kflash + + __exidx_end = ABSOLUTE(.); + + _eronly = ABSOLUTE(.); + + .data : { + _sdata = ABSOLUTE(.); + *(.data .data.*) + *(.gnu.linkonce.d.*) + CONSTRUCTORS + _edata = ABSOLUTE(.); + } > ksram AT > kflash + + .bss : { + _sbss = ABSOLUTE(.); + *(.bss .bss.*) + *(.gnu.linkonce.b.*) + *(COMMON) + _ebss = ABSOLUTE(.); + } > ksram + + /* Stabs debugging sections */ + + .stab 0 : { *(.stab) } + .stabstr 0 : { *(.stabstr) } + .stab.excl 0 : { *(.stab.excl) } + .stab.exclstr 0 : { *(.stab.exclstr) } + .stab.index 0 : { *(.stab.index) } + .stab.indexstr 0 : { *(.stab.indexstr) } + .comment 0 : { *(.comment) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_info 0 : { *(.debug_info) } + .debug_line 0 : { *(.debug_line) } + .debug_pubnames 0 : { *(.debug_pubnames) } + .debug_aranges 0 : { *(.debug_aranges) } +} diff --git a/configs/nucleo-144/scripts/memory.ld b/configs/nucleo-144/scripts/memory.ld new file mode 100644 index 0000000000..2308c38ec8 --- /dev/null +++ b/configs/nucleo-144/scripts/memory.ld @@ -0,0 +1,129 @@ +/**************************************************************************** + * configs/nucleo-144/scripts/memory.ld + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +/* The STM32F746NGH6 has 1024Kb of main FLASH memory. This FLASH memory can + * be accessed from either the AXIM interface at address 0x0800:0000 or from + * the ITCM interface at address 0x0020:0000. + * + * Additional information, including the option bytes, is available at at + * FLASH at address 0x1ff0:0000 (AXIM) or 0x0010:0000 (ITCM). + * + * In the STM32F746NGH6, two different boot spaces can be selected through + * the BOOT pin and the boot base address programmed in the BOOT_ADD0 and + * BOOT_ADD1 option bytes: + * + * 1) BOOT=0: Boot address defined by user option byte BOOT_ADD0[15:0]. + * ST programmed value: Flash on ITCM at 0x0020:0000 + * 2) BOOT=1: Boot address defined by user option byte BOOT_ADD1[15:0]. + * ST programmed value: System bootloader at 0x0010:0000 + * + * NuttX does not modify these option byes. On the unmodified STM32F746G + * DISCO board, the BOOT0 pin is at ground so by default, the STM32 will boot + * to address 0x0020:0000 in ITCM FLASH. + * + * The STM32F746NGH6 also has 320Kb of data SRAM (in addition to ITCM SRAM). + * SRAM is split up into three blocks: + * + * 1) 64Kb of DTCM SRM beginning at address 0x2000:0000 + * 2) 240Kb of SRAM1 beginning at address 0x2001:0000 + * 3) 16Kb of SRAM2 beginning at address 0x2004:c000 + * + * When booting from FLASH, FLASH memory is aliased to address 0x0000:0000 + * where the code expects to begin execution by jumping to the entry point in + * the 0x0800:0000 address range. + * + * For MPU support, the kernel-mode NuttX section is assumed to be 128Kb of + * FLASH and 4Kb of SRAM. That is an excessive amount for the kernel which + * should fit into 64KB and, of course, can be optimized as needed (See + * also configs/stm32f746g-disco/scripts/kernel-space.ld). Allowing the + * additional does permit addition debug instrumentation to be added to the + * kernel space without overflowing the partition. + * + * Alignment of the user space FLASH partition is also a critical factor: + * The user space FLASH partition will be spanned with a single region of + * size 2**n bytes. The alignment of the user-space region must be the same. + * As a consequence, as the user-space increases in size, the alignment + * requirement also increases. + * + * This alignment requirement means that the largest user space FLASH region + * you can have will be 512KB at it would have to be positioned at + * 0x08800000. If you change this address, don't forget to change the + * CONFIG_NUTTX_USERSPACE configuration setting to match and to modify + * the check in kernel/userspace.c. + * + * For the same reasons, the maximum size of the SRAM mapping is limited to + * 4KB. Both of these alignment limitations could be reduced by using + * multiple regions to map the FLASH/SDRAM range or perhaps with some + * clever use of subregions. + * + * A detailed memory map for the 112KB SRAM region is as follows: + * + * 0x20001 0000: Kernel .data region. Typical size: 0.1KB + * ------- ---- Kernel .bss region. Typical size: 1.8KB + * 0x20001 0800: Kernel IDLE thread stack (approximate). Size is + * determined by CONFIG_IDLETHREAD_STACKSIZE and + * adjustments for alignment. Typical is 1KB. + * ------- ---- Padded to 4KB + * 0x20001 1000: User .data region. Size is variable. + * ------- ---- User .bss region Size is variable. + * 0x20001 2000: Beginning of kernel heap. Size determined by + * CONFIG_MM_KERNEL_HEAPSIZE. + * ------- ---- Beginning of user heap. Can vary with other settings. + * 0x20004 c000: End+1 of SRAM1 + */ + +MEMORY +{ + /* ITCM boot address */ + + itcm (rwx) : ORIGIN = 0x00200000, LENGTH = 1024K + + /* 1024KB FLASH */ + + kflash (rx) : ORIGIN = 0x08000000, LENGTH = 128K + uflash (rx) : ORIGIN = 0x08020000, LENGTH = 128K + xflash (rx) : ORIGIN = 0x08040000, LENGTH = 768K + + /* 240KB of contiguous SRAM1 */ + + ksram (rwx) : ORIGIN = 0x20010000, LENGTH = 4K + usram (rwx) : ORIGIN = 0x20011000, LENGTH = 4K + xsram (rwx) : ORIGIN = 0x20012000, LENGTH = 240K - 8K + + /* DTCM SRAM */ + + dtcm (rwx) : ORIGIN = 0x20000000, LENGTH = 64K + sram2 (rwx) : ORIGIN = 0x2004c000, LENGTH = 16K +} diff --git a/configs/nucleo-144/scripts/user-space.ld b/configs/nucleo-144/scripts/user-space.ld new file mode 100644 index 0000000000..871d8e055f --- /dev/null +++ b/configs/nucleo-144/scripts/user-space.ld @@ -0,0 +1,111 @@ +/**************************************************************************** + * configs/nucleo-144/scripts/user-space.ld + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +/* NOTE: This depends on the memory.ld script having been included prior to + * this script. + */ + +OUTPUT_ARCH(arm) +SECTIONS +{ + .userspace : { + *(.userspace) + } > uflash + + .text : { + _stext = ABSOLUTE(.); + *(.text .text.*) + *(.fixup) + *(.gnu.warning) + *(.rodata .rodata.*) + *(.gnu.linkonce.t.*) + *(.glue_7) + *(.glue_7t) + *(.got) + *(.gcc_except_table) + *(.gnu.linkonce.r.*) + _etext = ABSOLUTE(.); + } > uflash + + .init_section : { + _sinit = ABSOLUTE(.); + *(.init_array .init_array.*) + _einit = ABSOLUTE(.); + } > uflash + + .ARM.extab : { + *(.ARM.extab*) + } > uflash + + __exidx_start = ABSOLUTE(.); + .ARM.exidx : { + *(.ARM.exidx*) + } > uflash + + __exidx_end = ABSOLUTE(.); + + _eronly = ABSOLUTE(.); + + .data : { + _sdata = ABSOLUTE(.); + *(.data .data.*) + *(.gnu.linkonce.d.*) + CONSTRUCTORS + _edata = ABSOLUTE(.); + } > usram AT > uflash + + .bss : { + _sbss = ABSOLUTE(.); + *(.bss .bss.*) + *(.gnu.linkonce.b.*) + *(COMMON) + _ebss = ABSOLUTE(.); + } > usram + + /* Stabs debugging sections */ + + .stab 0 : { *(.stab) } + .stabstr 0 : { *(.stabstr) } + .stab.excl 0 : { *(.stab.excl) } + .stab.exclstr 0 : { *(.stab.exclstr) } + .stab.index 0 : { *(.stab.index) } + .stab.indexstr 0 : { *(.stab.indexstr) } + .comment 0 : { *(.comment) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_info 0 : { *(.debug_info) } + .debug_line 0 : { *(.debug_line) } + .debug_pubnames 0 : { *(.debug_pubnames) } + .debug_aranges 0 : { *(.debug_aranges) } +} diff --git a/configs/nucleo-144/src/.gitignore b/configs/nucleo-144/src/.gitignore new file mode 100644 index 0000000000..726d936e1e --- /dev/null +++ b/configs/nucleo-144/src/.gitignore @@ -0,0 +1,2 @@ +/.depend +/Make.dep diff --git a/configs/nucleo-144/src/Makefile b/configs/nucleo-144/src/Makefile new file mode 100644 index 0000000000..2f742b273b --- /dev/null +++ b/configs/nucleo-144/src/Makefile @@ -0,0 +1,55 @@ +############################################################################ +# configs/nucleo-144/src/Makefile +# +# Copyright (C) 2015 Gregory Nutt. All rights reserved. +# Author: Gregory Nutt +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# 3. Neither the name NuttX nor the names of its contributors may be +# used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +############################################################################ + +-include $(TOPDIR)/Make.defs + +ASRCS = +CSRCS = stm32_boot.c stm32_spi.c + +ifeq ($(CONFIG_ARCH_LEDS),y) +CSRCS += stm32_autoleds.c +else +CSRCS += stm32_userleds.c +endif + +ifeq ($(CONFIG_ARCH_BUTTONS),y) +CSRCS += stm32_buttons.c +endif + +ifeq ($(CONFIG_LIB_BOARDCTL),y) +CSRCS += stm32_appinitialize.c +endif + +include $(TOPDIR)/configs/Board.mk diff --git a/configs/nucleo-144/src/nucleo-144.h b/configs/nucleo-144/src/nucleo-144.h new file mode 100644 index 0000000000..7628bd120b --- /dev/null +++ b/configs/nucleo-144/src/nucleo-144.h @@ -0,0 +1,100 @@ +/**************************************************************************************************** + * configs/nucleo-144/src/nucleo-144.h + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Authors: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************************************/ + +#ifndef __CONFIGS_NUCLEO_144_SRC_NUCLEO_144_H +#define __CONFIGS_NUCLEO_144_SRC_NUCLEO_144_H + +/**************************************************************************************************** + * Included Files + ****************************************************************************************************/ + +#include +#include +#include + +/**************************************************************************************************** + * Pre-processor Definitions + ****************************************************************************************************/ +/* procfs File System */ + +#ifdef CONFIG_FS_PROCFS +# ifdef CONFIG_NSH_PROC_MOUNTPOINT +# define STM32_PROCFS_MOUNTPOINT CONFIG_NSH_PROC_MOUNTPOINT +# else +# define STM32_PROCFS_MOUNTPOINT "/proc" +# endif +#endif + +/* STM32F736G Discovery GPIOs ***********************************************************************/ +/* The STM32F746G-DISCO board has numerous LEDs but only one, LD1 located near the reset button, that + * can be controlled by software (LD2 is a power indicator, LD3-6 indicate USB status, LD7 is + * controlled by the ST-Link). + * + * LD1 is controlled by PI1 which is also the SPI2_SCK at the Arduino interface. One end of LD1 is + * grounded so a high output on PI1 will illuminate the LED. + */ + +#define GPIO_LD1 (GPIO_OUTPUT | GPIO_PUSHPULL | GPIO_SPEED_50MHz | GPIO_OUTPUT_CLEAR | \ + GPIO_PORTI | GPIO_PIN1) + +/* Pushbutton B1, labelled "User", is connected to GPIO PI11. A high value will be sensed when the + * button is depressed. Note that the EXTI interrupt is configured. + */ + +#define GPIO_BTN_USER (GPIO_INPUT | GPIO_FLOAT | GPIO_EXTI | GPIO_PORTI | GPIO_PIN11) + +/**************************************************************************************************** + * Public data + ****************************************************************************************************/ + +#ifndef __ASSEMBLY__ + +/**************************************************************************************************** + * Public Functions + ****************************************************************************************************/ + +/**************************************************************************************************** + * Name: stm32_spidev_initialize + * + * Description: + * Called to configure SPI chip select GPIO pins for the stm32f746g-disco board. + * + ****************************************************************************************************/ + +void weak_function stm32_spidev_initialize(void); + +#endif /* __ASSEMBLY__ */ +#endif /* __CONFIGS_NUCLEO_144_SRC_NUCLEO_144_H */ + diff --git a/configs/nucleo-144/src/stm32_appinitialize.c b/configs/nucleo-144/src/stm32_appinitialize.c new file mode 100644 index 0000000000..6c80705c3a --- /dev/null +++ b/configs/nucleo-144/src/stm32_appinitialize.c @@ -0,0 +1,87 @@ +/**************************************************************************** + * config/nucleo-144/src/stm32_appinitilaize.c + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include + +#include "stm32_ccm.h" +#include "nucleo-144.h" + +/**************************************************************************** + * Pre-processor Definitions + ****************************************************************************/ + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: board_app_initialize + * + * Description: + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. + * + ****************************************************************************/ + +int board_app_initialize(void) +{ +#ifdef CONFIG_FS_PROCFS + int ret; + +#ifdef CONFIG_STM32_CCM_PROCFS + /* Register the CCM procfs entry. This must be done before the procfs is + * mounted. + */ + + (void)ccm_procfs_register(); +#endif + + /* Mount the procfs file system */ + + ret = mount(NULL, SAMV71_PROCFS_MOUNTPOINT, "procfs", 0, NULL); + if (ret < 0) + { + SYSLOG("ERROR: Failed to mount procfs at %s: %d\n", + SAMV71_PROCFS_MOUNTPOINT, ret); + } +#endif + + return OK; +} diff --git a/configs/nucleo-144/src/stm32_autoleds.c b/configs/nucleo-144/src/stm32_autoleds.c new file mode 100644 index 0000000000..0e7a19d6ad --- /dev/null +++ b/configs/nucleo-144/src/stm32_autoleds.c @@ -0,0 +1,144 @@ +/**************************************************************************** + * configs/nucleo-144/src/stm32_autoleds.c + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include + +#include +#include + +#include + +#include "stm32_gpio.h" +#include "nucleo-144.h" + +#ifdef CONFIG_ARCH_LEDS + +/**************************************************************************** + * Pre-processor Definitions + ****************************************************************************/ + +/* CONFIG_DEBUG_LEDS enables debug output from this file (needs CONFIG_DEBUG + * with CONFIG_DEBUG_VERBOSE too) + */ + +#ifdef CONFIG_DEBUG_LEDS +# define leddbg lldbg +# define ledvdbg llvdbg +#else +# define leddbg(x...) +# define ledvdbg(x...) +#endif + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: board_autoled_initialize + ****************************************************************************/ + +void board_autoled_initialize(void) +{ + /* Configure the LD1 GPIO for output. Initial state is OFF */ + + stm32_configgpio(GPIO_LD1); +} + +/**************************************************************************** + * Name: board_autoled_on + ****************************************************************************/ + +void board_autoled_on(int led) +{ + bool ledstate = false; + + switch (led) + { + case 0: /* LED_STARTED: NuttX has been started STATUS LED=OFF */ + /* LED_HEAPALLOCATE: Heap has been allocated STATUS LED=OFF */ + /* LED_IRQSENABLED: Interrupts enabled STATUS LED=OFF */ + break; /* Leave ledstate == true to turn OFF */ + + default: + case 2: /* LED_INIRQ: In an interrupt STATUS LED=N/C */ + /* LED_SIGNAL: In a signal handler STATUS LED=N/C */ + /* LED_ASSERTION: An assertion failed STATUS LED=N/C */ + return; /* Return to leave STATUS LED unchanged */ + + case 3: /* LED_PANIC: The system has crashed STATUS LED=FLASH */ + case 1: /* LED_STACKCREATED: Idle stack created STATUS LED=ON */ + ledstate = true; /* Set ledstate == false to turn ON */ + break; + } + + stm32_gpiowrite(GPIO_LD1, ledstate); +} + +/**************************************************************************** + * Name: board_autoled_off + ****************************************************************************/ + +void board_autoled_off(int led) +{ + switch (led) + { + /* These should not happen and are ignored */ + + default: + case 0: /* LED_STARTED: NuttX has been started STATUS LED=OFF */ + /* LED_HEAPALLOCATE: Heap has been allocated STATUS LED=OFF */ + /* LED_IRQSENABLED: Interrupts enabled STATUS LED=OFF */ + case 1: /* LED_STACKCREATED: Idle stack created STATUS LED=ON */ + + /* These result in no-change */ + + case 2: /* LED_INIRQ: In an interrupt STATUS LED=N/C */ + /* LED_SIGNAL: In a signal handler STATUS LED=N/C */ + /* LED_ASSERTION: An assertion failed STATUS LED=N/C */ + return; /* Return to leave STATUS LED unchanged */ + + /* Turn STATUS LED off set driving the output high */ + + case 3: /* LED_PANIC: The system has crashed STATUS LED=FLASH */ + stm32_gpiowrite(GPIO_LD1, false); + break; + } +} + +#endif /* CONFIG_ARCH_LEDS */ diff --git a/configs/nucleo-144/src/stm32_boot.c b/configs/nucleo-144/src/stm32_boot.c new file mode 100644 index 0000000000..6024e76b22 --- /dev/null +++ b/configs/nucleo-144/src/stm32_boot.c @@ -0,0 +1,119 @@ +/************************************************************************************ + * configs/nucleo-144/src/stm32_boot.c + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ************************************************************************************/ + +/************************************************************************************ + * Included Files + ************************************************************************************/ + +#include + +#include + +#include +#include + +#include "up_arch.h" +#include "nucleo-144.h" + +/************************************************************************************ + * Pre-processor Definitions + ************************************************************************************/ + +/************************************************************************************ + * Private Functions + ************************************************************************************/ + +/************************************************************************************ + * Public Functions + ************************************************************************************/ + +/************************************************************************************ + * Name: stm32_boardinitialize + * + * Description: + * All STM32 architectures must provide the following entry point. This entry point + * is called early in the initialization -- after all memory has been configured + * and mapped but before any devices have been initialized. + * + ************************************************************************************/ + +void stm32_boardinitialize(void) +{ +#if defined(CONFIG_STM32F7_SPI1) || defined(CONFIG_STM32F7_SPI2) || \ + defined(CONFIG_STM32F7_SPI3) || defined(CONFIG_STM32F7_SPI4) || \ + defined(CONFIG_STM32F7_SPI5) + /* Configure SPI chip selects if 1) SPI is not disabled, and 2) the weak function + * stm32_spidev_initialize() has been brought into the link. + */ + + if (stm32_spidev_initialize) + { + stm32_spidev_initialize(); + } +#endif + +#ifdef CONFIG_ARCH_LEDS + /* Configure on-board LEDs if LED support has been selected. */ + + board_autoled_initialize(); +#endif +} + +/************************************************************************************ + * Name: board_initialize + * + * Description: + * If CONFIG_BOARD_INITIALIZE is selected, then an additional initialization call + * will be performed in the boot-up sequence to a function called + * board_initialize(). board_initialize() will be called immediately after + * up_initialize() is called and just before the initial application is started. + * This additional initialization phase may be used, for example, to initialize + * board-specific device drivers. + * + ************************************************************************************/ + +#ifdef CONFIG_BOARD_INITIALIZE +void board_initialize(void) +{ +#if defined(CONFIG_NSH_LIBRARY) && !defined(CONFIG_LIB_BOARDCTL) + /* Perform NSH initialization here instead of from the NSH. This + * alternative NSH initialization is necessary when NSH is ran in user-space + * but the initialization function must run in kernel space. + */ + + (void)board_app_initialize(); +#endif +} +#endif diff --git a/configs/nucleo-144/src/stm32_buttons.c b/configs/nucleo-144/src/stm32_buttons.c new file mode 100644 index 0000000000..0421caeec7 --- /dev/null +++ b/configs/nucleo-144/src/stm32_buttons.c @@ -0,0 +1,112 @@ +/**************************************************************************** + * configs/nucleo-144/src/stm32_buttons.c + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include + +#include +#include + +#include "stm32_gpio.h" +#include "nucleo-144.h" + +#ifdef CONFIG_ARCH_BUTTONS + +/**************************************************************************** + * Pre-processor Definitions + ****************************************************************************/ + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: board_button_initialize + * + * Description: + * board_button_initialize() must be called to initialize button resources. + * After that, board_buttons() may be called to collect the current state + * of all buttons or board_button_irq() may be called to register button + * interrupt handlers. + * + ****************************************************************************/ + +void board_button_initialize(void) +{ + stm32_configgpio(GPIO_BTN_USER); +} + +/**************************************************************************** + * Name: board_buttons + ****************************************************************************/ + +uint8_t board_buttons(void) +{ + return stm32_gpioread(GPIO_BTN_USER) ? 1 : 0; +} + +/************************************************************************************ + * Button support. + * + * Description: + * board_button_initialize() must be called to initialize button resources. After + * that, board_buttons() may be called to collect the current state of all + * buttons or board_button_irq() may be called to register button interrupt + * handlers. + * + * After board_button_initialize() has been called, board_buttons() may be called to + * collect the state of all buttons. board_buttons() returns an 8-bit bit set + * with each bit associated with a button. See the BUTTON_*_BIT + * definitions in board.h for the meaning of each bit. + * + * board_button_irq() may be called to register an interrupt handler that will + * be called when a button is depressed or released. The ID value is a + * button enumeration value that uniquely identifies a button resource. See the + * BUTTON_* definitions in board.h for the meaning of enumeration + * value. The previous interrupt handler address is returned (so that it may + * restored, if so desired). + * + ************************************************************************************/ + +#ifdef CONFIG_ARCH_IRQBUTTONS +xcpt_t board_button_irq(int id, xcpt_t irqhandler) +{ +#warning Missing logic +} +#endif +#endif /* CONFIG_ARCH_BUTTONS */ diff --git a/configs/nucleo-144/src/stm32_spi.c b/configs/nucleo-144/src/stm32_spi.c new file mode 100644 index 0000000000..d3b5e9160e --- /dev/null +++ b/configs/nucleo-144/src/stm32_spi.c @@ -0,0 +1,246 @@ +/************************************************************************************ + * configs/nucleo-144/src/stm32_spi.c + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Authors: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ************************************************************************************/ + +/************************************************************************************ + * Included Files + ************************************************************************************/ + +#include + +#include +#include +#include +#include + +#include +#include + +#include "up_arch.h" +#include "chip.h" +#include "stm32_spi.h" + +#include "nucleo-144.h" + +#if defined(CONFIG_STM32F7_SPI1) || defined(CONFIG_STM32F7_SPI2) || \ + defined(CONFIG_STM32F7_SPI3) || defined(CONFIG_STM32F7_SPI4) || \ + defined(CONFIG_STM32F7_SPI5) + +/************************************************************************************ + * Pre-processor Definitions + ************************************************************************************/ + +#ifdef CONFIG_DEBUG_SPI +# define spidbg lldbg +# ifdef SPI_VERBOSE +# define spivdbg lldbg +# else +# define spivdbg(x...) +# endif +#else +# undef SPI_VERBOSE +# define spidbg(x...) +# define spivdbg(x...) +#endif + +/************************************************************************************ + * Private Data + ************************************************************************************/ + +/************************************************************************************ + * Private Functions + ************************************************************************************/ + +/************************************************************************************ + * Public Functions + ************************************************************************************/ + +/************************************************************************************ + * Name: stm32_spidev_initialize + * + * Description: + * Called to configure SPI chip select GPIO pins for the stm32f746g-disco board. + * + ************************************************************************************/ + +void weak_function stm32_spidev_initialize(void) +{ +} + +/**************************************************************************** + * Name: stm32_spi1/2/3/4/5select and stm32_spi1/2/3/4/5status + * + * Description: + * The external functions, stm32_spi1/2/3select and stm32_spi1/2/3status must be + * provided by board-specific logic. They are implementations of the select + * and status methods of the SPI interface defined by struct spi_ops_s (see + * include/nuttx/spi/spi.h). All other methods (including stm32_spibus_initialize()) + * are provided by common STM32 logic. To use this common SPI logic on your + * board: + * + * 1. Provide logic in stm32_boardinitialize() to configure SPI chip select + * pins. + * 2. Provide stm32_spi1/2/3select() and stm32_spi1/2/3status() functions in your + * board-specific logic. These functions will perform chip selection and + * status operations using GPIOs in the way your board is configured. + * 3. Add a calls to stm32_spibus_initialize() in your low level application + * initialization logic + * 4. The handle returned by stm32_spibus_initialize() may then be used to bind the + * SPI driver to higher level logic (e.g., calling + * mmcsd_spislotinitialize(), for example, will bind the SPI driver to + * the SPI MMC/SD driver). + * + ****************************************************************************/ + +#ifdef CONFIG_STM32F7_SPI1 +void stm32_spi1select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected) +{ + spidbg("devid: %d CS: %s\n", (int)devid, selected ? "assert" : "de-assert"); +} + +uint8_t stm32_spi1status(FAR struct spi_dev_s *dev, enum spi_dev_e devid) +{ + return 0; +} +#endif + +#ifdef CONFIG_STM32F7_SPI2 +void stm32_spi2select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected) +{ + spidbg("devid: %d CS: %s\n", (int)devid, selected ? "assert" : "de-assert"); +} + +uint8_t stm32_spi2status(FAR struct spi_dev_s *dev, enum spi_dev_e devid) +{ + return 0; +} +#endif + +#ifdef CONFIG_STM32F7_SPI3 +void stm32_spi3select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected) +{ + spidbg("devid: %d CS: %s\n", (int)devid, selected ? "assert" : "de-assert"); +} + +uint8_t stm32_spi3status(FAR struct spi_dev_s *dev, enum spi_dev_e devid) +{ + return 0; +} +#endif + +#ifdef CONFIG_STM32F7_SPI4 +void stm32_spi4select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected) +{ + spidbg("devid: %d CS: %s\n", (int)devid, selected ? "assert" : "de-assert"); +} + +uint8_t stm32_spi4status(FAR struct spi_dev_s *dev, enum spi_dev_e devid) +{ + return 0; +} +#endif + +#ifdef CONFIG_STM32F7_SPI5 +void stm32_spi5select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected) +{ + spidbg("devid: %d CS: %s\n", (int)devid, selected ? "assert" : "de-assert"); +} + +uint8_t stm32_spi5status(FAR struct spi_dev_s *dev, enum spi_dev_e devid) +{ + return 0; +} +#endif + +/**************************************************************************** + * Name: stm32_spi1cmddata + * + * Description: + * Set or clear the SH1101A A0 or SD1306 D/C n bit to select data (true) + * or command (false). This function must be provided by platform-specific + * logic. This is an implementation of the cmddata method of the SPI + * interface defined by struct spi_ops_s (see include/nuttx/spi/spi.h). + * + * Input Parameters: + * + * spi - SPI device that controls the bus the device that requires the CMD/ + * DATA selection. + * devid - If there are multiple devices on the bus, this selects which one + * to select cmd or data. NOTE: This design restricts, for example, + * one one SPI display per SPI bus. + * cmd - true: select command; false: select data + * + * Returned Value: + * None + * + ****************************************************************************/ + +#ifdef CONFIG_SPI_CMDDATA +#ifdef CONFIG_STM32F7_SPI1 +int stm32_spi1cmddata(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool cmd) +{ + return -ENODEV; +} +#endif + +#ifdef CONFIG_STM32F7_SPI2 +int stm32_spi2cmddata(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool cmd) +{ + return -ENODEV; +} +#endif + +#ifdef CONFIG_STM32F7_SPI3 +int stm32_spi3cmddata(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool cmd) +{ + return -ENODEV; +} +#endif + +#ifdef CONFIG_STM32F7_SPI4 +int stm32_spi4cmddata(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool cmd) +{ + return -ENODEV; +} +#endif + +#ifdef CONFIG_STM32F7_SPI5 +int stm32_spi5cmddata(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool cmd) +{ + return -ENODEV; +} +#endif + +#endif /* CONFIG_SPI_CMDDATA */ +#endif /* CONFIG_STM32F7_SPI1 || ... CONFIG_STM32F7_SPI5 */ diff --git a/configs/nucleo-144/src/stm32_userleds.c b/configs/nucleo-144/src/stm32_userleds.c new file mode 100644 index 0000000000..19146d241d --- /dev/null +++ b/configs/nucleo-144/src/stm32_userleds.c @@ -0,0 +1,120 @@ +/**************************************************************************** + * configs/nucleo-144/src/stm32_userleds.c + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include + +#include +#include + +#include "stm32_gpio.h" +#include "nucleo-144.h" + +#ifndef CONFIG_ARCH_LEDS + +/**************************************************************************** + * Pre-processor Definitions + ****************************************************************************/ + +/* CONFIG_DEBUG_LEDS enables debug output from this file (needs CONFIG_DEBUG + * with CONFIG_DEBUG_VERBOSE too) + */ + +#ifdef CONFIG_DEBUG_LEDS +# define leddbg lldbg +# define ledvdbg llvdbg +#else +# define leddbg(x...) +# define ledvdbg(x...) +#endif + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: board_userled_initialize + * + * Description: + * If CONFIG_ARCH_LEDS is defined, then NuttX will control the on-board + * LEDs. If CONFIG_ARCH_LEDS is not defined, then the + * board_userled_initialize() is available to initialize the LED from user + * application logic. + * + ****************************************************************************/ + +void board_userled_initialize(void) +{ + stm32_configgpio(GPIO_LD1); +} + +/**************************************************************************** + * Name: board_userled + * + * Description: + * If CONFIG_ARCH_LEDS is defined, then NuttX will control the on-board + * LEDs. If CONFIG_ARCH_LEDS is not defined, then the board_userled() is + * available to control the LED from user application logic. + * + ****************************************************************************/ + +void board_userled(int led, bool ledon) +{ + if (led == BOARD_STATUS_LED) + { + stm32_gpiowrite(GPIO_LD1, !ledon); + } +} + +/**************************************************************************** + * Name: board_userled_all + * + * Description: + * If CONFIG_ARCH_LEDS is defined, then NuttX will control the on-board + * LEDs. If CONFIG_ARCH_LEDS is not defined, then the board_userled_all() is + * available to control the LED from user application logic. NOTE: since + * there is only a single LED on-board, this is function is not very useful. + * + ****************************************************************************/ + +void board_userled_all(uint8_t ledset) +{ + stm32_gpiowrite(GPIO_LD1, (ledset & BOARD_STATUS_LED_BIT) != 0); +} + +#endif /* !CONFIG_ARCH_LEDS */ -- GitLab From d03b0f518886e3eb9536a3cf7f5db4beb4b7b168 Mon Sep 17 00:00:00 2001 From: David Sidrane Date: Thu, 12 May 2016 09:56:32 -0600 Subject: [PATCH 148/307] README.txt file for the nucleo-144 --- configs/nucleo-144/README.txt | 306 ++++++++++++++++++++++++++++++++++ 1 file changed, 306 insertions(+) create mode 100644 configs/nucleo-144/README.txt diff --git a/configs/nucleo-144/README.txt b/configs/nucleo-144/README.txt new file mode 100644 index 0000000000..0eca17d582 --- /dev/null +++ b/configs/nucleo-144/README.txt @@ -0,0 +1,306 @@ +README +====== + +This README discusses issues unique to NuttX configurations for the ST +Nucleo F746ZG board from ST Micro. See + +http://www.st.com/web/catalog/tools/FM116/CL1620/SC959/SS1532/LN1847/PF261636 + +The Nucleo F746ZG order part number is NUCLEO-F746ZG. It is clumped together +under the STM32 Nucleo-144 board family. This does provide uniformity in the +documentation from ST and should allow us to quickly change configurations +but just cloning this configuration and changing the CPU choice and board +init. Unfortunately for the developer, the CPU specific information must be +extracted from the common information in the documentation. + +Please read the User Manaul UM1727: Getting started with STM32 Nucleo board +software development tools and take note of the Powering options for the +board (6.3 Power supply and power selection) and the Solder bridges based +hardware configuration changes that are configurable (6.11 Solder bridges). + +NUCLEO-F746ZG: + + Microprocessor: STM32F746ZGT6 Core: ARM 32-bit Cortex®-M7 CPU with FPU, + L1-cache: 4KB data cache and 4KB instruction cache, up to + 216 MHz, MPU, and DSP instructions. + Memory: 1024 KB Flash 320KB of SRAM (including 64KB of data TCM RAM) + + 16KB of instruction TCM RAM + 4KB of backup SRAM + ADC: 3×12-bit, 2.4 MSPS ADC: up to 24 channels and 7.2 MSPS in + triple interleaved mode + DMA: 16-stream DMA controllers with FIFOs and burst support + Timers: Up to 18 timers: up to thirteen 16-bit (1x 16-bit lowpower), + two 32-bit timers, 2x watchdogs, SysTick + GPIO: 114 I/O ports with interrupt capability + LCD: LCD-TFT Controllerwith (DMA2D), Parallel interface + I2C: 4 × I2C interfaces (SMBus/PMBus) + U[S]ARTs: 4 USARTs, 4 UARTs (27 Mbit/s, ISO7816 interface, LIN, IrDA, + modem control) + SPI/12Ss: 6/3 (simplex) (up to 50 Mbit/s), 3 with muxed simplex I2S + for audio class accuracy via internal audio PLL or external + clock + QSPI: Dual mode Quad-SPI + SAIs: 2 Serial Audio Interfaces + CAN: 2 X CAN interface + SDMMC interface + SPDIFRX interface + USB: USB 2.0 full-speed device/host/OTG controller with on-chip + PHY + 10/100 Ethernet: MAC with dedicated DMA: supports IEEE 1588v2 hardware, + MII/RMII + Camera Interface: 8/14 Bit + CRC calculation unit + TRG: True random number generator + RTC + +Board features: + + Peripherals: 8 leds, 2 push button (3 LEDs, 1 button) under software + control + Debug: STLINK/V2-1 debugger/programmer Uses a STM32F103CB to + provide a ST-Link for programming, debug similar to the + OpenOcd FTDI function - USB to JTAG front-end. + + Expansion I/F ST Zio an Extended Ardino and Morpho Headers + +See https://developer.mbed.org/platforms/ST-Nucleo-F746ZG form additional information about this board. + +Contents +======== + + - Development Environment + - IDEs + - Basic configuaration & build steps + - Hardware + - Button + - LED + - U[S]ARTs and Serial Consoles + - Configurations + +Development Environment +======================= + + Either Linux or Cygwin on Windows can be used for the development environment. + The source has been built only using the GNU toolchain (see below). Other + toolchains will likely cause problems. + + All testing has been conducted using the GNU toolchain from ARM for Linux. + found here https://launchpad.net/gcc-arm-embedded/4.9/4.9-2015-q3-update/+download/gcc-arm-none-eabi-4_9-2015q3-20150921-linux.tar.bz2 + + If you change the default toolchain, then you may also have to modify the PATH in + the setenv.h file if your make cannot find the tools. + + +IDEs +==== + + NuttX is built using command-line make. It can be used with an IDE, but some + effort will be required to create the project. + + Makefile Build + -------------- + Under Eclipse, it is pretty easy to set up an "empty makefile project" and + simply use the NuttX makefile to build the system. That is almost for free + under Linux. Under Windows, you will need to set up the "Cygwin GCC" empty + makefile project in order to work with Windows (Google for "Eclipse Cygwin" - + there is a lot of help on the internet). + + +Basic configuration & build steps +================================== + + A GNU GCC-based toolchain is assumed. The files */setenv.sh should + be modified to point to the correct path to the Cortex-M7 GCC toolchain (if + different from the default in your PATH variable). + + - Configures nuttx creating .config file in the nuttx directory + $ cd tools && ./configure.sh nucleo-f746zg/nsh && cd .. + - Refreshes the .config file with the latest features addes sice this writting + $ make oldconfig + - Select the features you want in the build. + $ make menuconfig + - Builds Nuttx with the features you selected. + $ make + +Hardware +======== + + GPIO - there are 144 I/O lines on the STM32F746ZGT6 with various pins pined out + on the Nucleo F746ZG + + See https://developer.mbed.org/platforms/ST-Nucleo-F746ZG/ for slick graphic + pinouts. + + Keep in mind that: + 1) The I/O is 3.3 Volt not 5 Volt like on the Arduino products. + 2) The Nucleo-144 board family has 3 pages of Solder Bridges AKA Solder + Blobs (SB) that can alter the factory configuration. We will note SB + in effect but will assume the facitory defualt settings. + + Our main concern is establishing a console and LED utilization for + debugging. Because so many pins can be multiplexed with so many functions, + the above mentioned graphic is super helpful in indentifying a serial port + that will not rob us of another IO feature. Namely Serial Port 8 (UART8) + with TX on PE1 and RX on PE0. Of course if your design has used those + pins you can choose another IO configuration to bring out Serial Port 8 + or choose a completely different U[S]ART to use as the console. + In that Case, You will need to edit the include/board.h to select different + U[S]ART and / or pin selections. + + + Serial + ---- + + SERIAL_RX PE_0 + SERIAL_TX PE_1 + + Buttons + ------- + B1 USER: the user button is connected to the I/O PC13 (Tamper support, SB173 + ON and SB180 OFF) + + LEDs + ---- + The Board provides a 3 user LEDs, LD1-LD3 + LED1 (Green) PB_0 (SB120 ON and SB119 OFF) + LED2 (Blue) PB_7 (SB139 ON) + LED3 (Red) PB_14 (SP118 ON) + + - When the I/O is HIGH value, the LEDs are on. + - When the I/O is LOW, the LEDs are off. + + These LEDs are not used by the board port unless CONFIG_ARCH_LEDS is + defined. In that case, the usage by the board port is defined in + include/board.h and src/stm32_autoleds.c. The LEDs are used to encode OS + related events as follows when the LEDs are available: + + SYMBOL Meaning RED GREEN BLUE + ------------------- ----------------------- ----------- + + LED_STARTED 0 OFF OFF OFF + LED_HEAPALLOCATE 0 OFF OFF OFF + LED_IRQSENABLED 0 OFF OFF OFF + LED_STACKCREATED 1 OFF ON OFF + LED_INIRQ 2 NC NC ON (momentary) + LED_SIGNAL 2 NC NC ON (momentary) + LED_ASSERTION 3 ON NC NC (momentary) + LED_PANIC 4 ON OFF OFF (flashing 2Hz) + +OFF - means that the OS is still initializing. Initialization is very fast so + if you see this at all, it probably means that the system is hanging up + somewhere in the initialization phases. + +GREEN - This means that the OS completed initialization. + +BLUE - Whenever and interrupt or signal handler is entered, the BLUE LED is + illuminated and extinguished when the interrupt or signal handler exits. + +RED - If a recovered assertion occurs, the RED LED will be illuminated + briefly while the assertion is handled. You will probably never see this. + +Flashing RED - In the event of a fatal crash, all other LEDs will be +extinguished and RED LED will FLASH at a 2Hz rate. + + + Thus if the GREEN LED is lit, NuttX has successfully booted and is, + apparently, running normally. If the RED LED is flashing at + approximately 2Hz, then a fatal error has been detected and the system has + halted. + +Serial Consoles +=============== + + USART8 + ------ + Pins and Connectors: + GPIO Connector NAME + RXD: PE0 CN11 pin 64, PE0 + CN10 pin 33, D34 + + TXD: PE1 CN11 pin 61, PE1 + + You must use a 3.3 TTL to RS-232 converter or a USB to 3.3V TTL + + Nucleo 144 FTDI TTL-232R-3V3 + ----------- ------------ + TXD - CN11 pin 64 - RXD - Pin 5 (Yellow) + RXD - CN11 pin 61 - TXD - Pin 4 (Orange) + GND CN11 pin 63 GND Pin 1 (Black) + + *Note you will be reverse RX/TX + + Use make menuconfig to configure USART8 as the console: + + CONFIG_STM32F7_UART8=y + CONFIG_USART8_ISUART=y + CONFIG_USART8_SERIAL_CONSOLE=y + CONFIG_UART8_RXBUFSIZE=256 + CONFIG_UART8_TXBUFSIZE=256 + CONFIG_UART8_BAUD=115200 + CONFIG_UART8_BITS=8 + CONFIG_UART8_PARITY=0 + CONFIG_UART8_2STOP=0 + + Virtual COM Port + ---------------- + Yet another option is to use USART3 and the USB virtual COM port. This + option may be more convenient for long term development, but is painful + to use during board bring-up. + + Solder Bridges. This configuration requires: + + PD8 USART3 TX SB5 ON and SB7 OFF (Default) + PD9 USART3 RX SB6 ON and SB4 OFF (Default) + + Configuring USART3 is the same as given above but add the S and #3. + + Question: What BAUD should be configure to interface with the Virtual + COM port? 115200 8N1? + + Default + ------- + As shipped, SB4 and SB7 are open and SB5 and SB6 closed, so the + virtual COM port is enabled. + + +Configurations +============== + + nsh: + --------- + Configures the NuttShell (nsh) located at apps/examples/nsh for the + Nucleo-144 boards. The Configuration enables the serial interfaces + on UART8. Support for builtin applications is enabled, but in the base + configuration no builtin applications are selected (see NOTES below). + + NOTES: + + 1. This configuration uses the mconf-based configuration tool. To + change this configuration using that tool, you should: + + a. Build and install the kconfig-mconf tool. See nuttx/README.txt + see additional README.txt files in the NuttX tools repository. + + b. If this is the intall configuration then Execute + 'cd tools && ./configure.sh stm32f746g-disco/nsh && cd ..' + in nuttx/ in order to start configuration process. + Caution: Doing this step more than once will overwrite .config with + the contents of the stm32f746g-disco/nsh/defconfig file. + + c. Execute 'make oldconfig' in nuttx/ in order to refresh the + configuration. + + d. Execute 'make menuconfig' in nuttx/ in order to start the + reconfiguration process. + + e. Save the .config file to reuse it in the future starting at step d. + + 2. By default, this configuration uses the ARM GNU toolchain + for Linux. That can easily be reconfigured, of course. + + CONFIG_HOST_LINUX=y : Builds under Linux + CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL=y : ARM GNU for Linux + + 3. Although the default console is USART3 (which would correspond to + the Virtual COM port) I have done all testing with the console + device configured for UART8 (see instruction above under "Serial + Consoles). -- GitLab From 61f6915898de8948f65f7edb910797011939ed66 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 12 May 2016 10:01:43 -0600 Subject: [PATCH 149/307] Update README files --- Documentation/README.html | 4 +++- README.txt | 2 ++ configs/README.txt | 5 +++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/Documentation/README.html b/Documentation/README.html index ed18b43593..ce2d5eef2a 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -8,7 +8,7 @@

    NuttX README Files

    -

    Last Updated: April 12, 2016

    +

    Last Updated: May 12, 2016

    @@ -157,6 +157,8 @@ nuttx/ | |- ntosd-dm320/ | | |- doc/README.txt | | `- README.txt + | |- nucleo-144/ + | | `- README.txt | |- nucleo-f4x1re/ | | `- README.txt | |- nutiny-nuc120/ diff --git a/README.txt b/README.txt index cbba0da1d0..ed3d0141f5 100644 --- a/README.txt +++ b/README.txt @@ -1332,6 +1332,8 @@ nuttx/ | |- ntosd-dm320/ | | |- doc/README.txt | | `- README.txt + | |- nucleo-144/ + | | `- README.txt | |- nucleo-f4x1re/ | | `- README.txt | |- nutiny-nuc120/ diff --git a/configs/README.txt b/configs/README.txt index 4df80fa814..4b1b201707 100644 --- a/configs/README.txt +++ b/configs/README.txt @@ -392,6 +392,11 @@ configs/ntosd-dm320 STATUS: This port is code complete, verified, and included in the NuttX 0.2.1 release. +configs/nucleo-144 + STMicro Nucleo-144 development board featuring the STM32F746ZGT6U MCU. The + STM32F746ZGT6U is a 216MHz Cortex-M7 operation with 1024Kb Flash memory + and 300Kb SRAM. + configs/nucleo-f4x1re STMicro ST Nucleo F401RE and F411RE boards. See http://mbed.org/platforms/ST-Nucleo-F401RE and -- GitLab From 7887b2d1642606bbc4b4453321d2777cdc05bf48 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 12 May 2016 12:23:07 -0600 Subject: [PATCH 150/307] i.MX6: Add SRC register definition header file --- arch/arm/src/imx6/chip/imx_src.h | 211 +++++++++++++++++++++++++++++++ 1 file changed, 211 insertions(+) create mode 100644 arch/arm/src/imx6/chip/imx_src.h diff --git a/arch/arm/src/imx6/chip/imx_src.h b/arch/arm/src/imx6/chip/imx_src.h new file mode 100644 index 0000000000..fb8e3c0e9a --- /dev/null +++ b/arch/arm/src/imx6/chip/imx_src.h @@ -0,0 +1,211 @@ +/**************************************************************************************************** + * arch/arm/src/imx6/imx_src.h + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Reference: + * "i.MX 6Dual/6Quad ApplicationsProcessor Reference Manual," Document Number + * IMX6DQRM, Rev. 3, 07/2015, FreeScale. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************************************/ + +#ifndef __ARCH_ARM_SRC_IMX6_CHIP_IMX_SRC_H +#define __ARCH_ARM_SRC_IMX6_CHIP_IMX_SRC_H + +/**************************************************************************************************** + * Included Files + ****************************************************************************************************/ + +#include +#include + +/**************************************************************************************************** + * Pre-processor Definitions + ****************************************************************************************************/ + +/* SRC Register Offsets *****************************************************************************/ + +#define IMX_SRC_SCR_OFFSET 0x0000 /* SRC Control Register */ +#define IMX_SRC_SBMR1_OFFSET 0x0004 /* SRC Boot Mode Register 1 */ +#define IMX_SRC_SRSR_OFFSET 0x0008 /* SRC Reset Status Register */ +#define IMX_SRC_SISR_OFFSET 0x0014 /* SRC Interrupt Status Register */ +#define IMX_SRC_SIMR_OFFSET 0x0018 /* SRC Interrupt Mask Register */ +#define IMX_SRC_SBMR2_OFFSET 0x001c /* SRC Boot Mode Register 2 */ +#define IMX_SRC_GPR1_OFFSET 0x0020 /* SRC General Purpose Register 1 */ +#define IMX_SRC_GPR2_OFFSET 0x0024 /* SRC General Purpose Register 2 */ +#define IMX_SRC_GPR3_OFFSET 0x0028 /* SRC General Purpose Register 3 */ +#define IMX_SRC_GPR4_OFFSET 0x002c /* SRC General Purpose Register 4 */ +#define IMX_SRC_GPR5_OFFSET 0x0030 /* SRC General Purpose Register 5 */ +#define IMX_SRC_GPR6_OFFSET 0x0034 /* SRC General Purpose Register 6 */ +#define IMX_SRC_GPR7_OFFSET 0x0038 /* SRC General Purpose Register 7 */ +#define IMX_SRC_GPR8_OFFSET 0x003c /* SRC General Purpose Register 8 */ +#define IMX_SRC_GPR9_OFFSET 0x0040 /* SRC General Purpose Register 9 */ +#define IMX_SRC_GPR10_OFFSET 0x0044 /* SRC General Purpose Register 10 */ + +/* SRC Register Addresses ***************************************************************************/ + +#define IMX_SRC_SCR (IMX_SRC_VBASE+IMX_SRC_SCR_OFFSET) +#define IMX_SRC_SBMR1 (IMX_SRC_VBASE+IMX_SRC_SBMR1_OFFSET) +#define IMX_SRC_SRSR (IMX_SRC_VBASE+IMX_SRC_SRSR_OFFSET) +#define IMX_SRC_SISR (IMX_SRC_VBASE+IMX_SRC_SISR_OFFSET) +#define IMX_SRC_SIMR (IMX_SRC_VBASE+IMX_SRC_SIMR_OFFSET) +#define IMX_SRC_SBMR2 (IMX_SRC_VBASE+IMX_SRC_SBMR2_OFFSET) +#define IMX_SRC_GPR1 (IMX_SRC_VBASE+IMX_SRC_GPR1_OFFSET) +#define IMX_SRC_GPR2 (IMX_SRC_VBASE+IMX_SRC_GPR2_OFFSET) +#define IMX_SRC_GPR3 (IMX_SRC_VBASE+IMX_SRC_GPR3_OFFSET) +#define IMX_SRC_GPR4 (IMX_SRC_VBASE+IMX_SRC_GPR4_OFFSET) +#define IMX_SRC_GPR5 (IMX_SRC_VBASE+IMX_SRC_GPR5_OFFSET) +#define IMX_SRC_GPR6 (IMX_SRC_VBASE+IMX_SRC_GPR6_OFFSET) +#define IMX_SRC_GPR7 (IMX_SRC_VBASE+IMX_SRC_GPR7_OFFSET) +#define IMX_SRC_GPR8 (IMX_SRC_VBASE+IMX_SRC_GPR8_OFFSET) +#define IMX_SRC_GPR9 (IMX_SRC_VBASE+IMX_SRC_GPR9_OFFSET) +#define IMX_SRC_GPR10 (IMX_SRC_VBASE+IMX_SRC_GPR10_OFFSET) + +/* SRC Register Bit Definitions *********************************************************************/ + +/* SRC Control Register: Reset value 0x00000521 */ +#define SRC_SCR_WARM_RESET_ENABLE (1 << 0) /* Bit 0: WARM reset enable bit */ +#define SRC_SCR_SW_GPU_RST (1 << 1) /* Bit 1: Software reset for GPU */ +#define SRC_SCR_SW_VPU_RST (1 << 2) /* Bit 2: Software reset for VPU */ +#define SRC_SCR_SW_IPU1_RST (1 << 3) /* Bit 3: Software reset for IPU1 */ +#define SRC_SCR_SW_OPEN_VG_RST (1 << 4) /* Bit 4: Software reset for open_vg */ +#define SRC_SCR_WARM_RST_BYPASS_COUNT_SHIFT (5) /* Bits 5-6: XTALI cycles before bypassing the MMDC ack */ +#define SRC_SCR_WARM_RST_BYPASS_COUNT_MASK (3 << SRC_SCR_WARM_RST_BYPASS_COUNT_SHIFT) +# define SRC_SCR_WARM_RST_BYPASS_COUNT_NONE (0 << SRC_SCR_WARM_RST_BYPASS_COUNT_SHIFT) /* Counter not used */ +# define SRC_SCR_WARM_RST_BYPASS_COUNT_16 (1 << SRC_SCR_WARM_RST_BYPASS_COUNT_SHIFT) /* 16 XTALI cycles before WARM to COLD reset */ +# define SRC_SCR_WARM_RST_BYPASS_COUNT_32 (2 << SRC_SCR_WARM_RST_BYPASS_COUNT_SHIFT) /* 32 XTALI cycles before WARM to COLD reset */ +# define SRC_SCR_WARM_RST_BYPASS_COUNT_64 (3 << SRC_SCR_WARM_RST_BYPASS_COUNT_SHIFT) /* 64 XTALI cycles before WARM to COLD reset */ +#define SRC_SCR_MASK_WDOG_RST_SHIFT (7) /* Bits 7-10: Mask wdog_rst_b source */ +#define SRC_SCR_MASK_WDOG_RST_MASK (15 << SRC_SCR_MASK_WDOG_RST_SHIFT) +# define SRC_SCR_MASK_WDOG_RST_MASKED (15 << SRC_SCR_MASK_WDOG_RST_SHIFT) /* wdog_rst_b is masked */ +# define SRC_SCR_MASK_WDOG_RST_UNMASKED (15 << SRC_SCR_MASK_WDOG_RST_SHIFT) /* wdog_rst_b is not masked */ +#define SRC_SCR_EIM_RST (1 << 11) /* Bit 11: EIM reset is needed in order to reconfigure the eim chip select */ +#define SRC_SCR_SW_IPU2_RST (1 << 12) /* Bit 12: Software reset for ipu2 */ +#define SRC_SCR_CORE0_RST (1 << 13) /* Bit 13: Software reset for core0 */ +#define SRC_SCR_CORE1_RST (1 << 14) /* Bit 14: Software reset for core1 */ +#define SRC_SCR_CORE2_RST (1 << 15) /* Bit 15: Software reset for core2 */ +#define SRC_SCR_CORE3_RST (1 << 16) /* Bit 16: Software reset for core3 */ +#define SRC_SCR_CORE0_DBG_RST (1 << 17) /* Bit 17: Software reset for core0 debug */ +#define SRC_SCR_CORE1_DBG_RST (1 << 18) /* Bit 18: Software reset for core1 debug */ +#define SRC_SCR_CORE2_DBG_RST (1 << 19) /* Bit 19: Software reset for core2 debug */ +#define SRC_SCR_CORE3_DBG_RST (1 << 20) /* Bit 20: Software reset for core3 debug */ +#define SRC_SCR_CORES_DBG_RST (1 << 21) /* Bit 21: Software reset for debug of arm platform */ +#define SRC_SCR_CORE1_ENABLE (1 << 22) /* Bit 22: core1 enable */ +#define SRC_SCR_CORE2_ENABLE (1 << 23) /* Bit 23: core2 enable */ +#define SRC_SCR_CORE3_ENABLE (1 << 24) /* Bit 24: core3 enable */ +#define SRC_SCR_DBG_RST_MSK_PG (1 << 25) /* Bit 25: No debug resets after core power gating event */ + /* Bits 26-31: Reserved */ + +/* SRC Boot Mode Register 1 */ + +#define SRC_SBMR1_BOOT_CFG1_SHIFT (0) /* Bits 0-7: Refer to fusemap */ +#define SRC_SBMR1_BOOT_CFG1_MASK (0xff << SRC_SBMR1_BOOT_CFG1_SHIFT) +# define SRC_SBMR1_BOOT_CFG1(n) ((uint32_t)(n) << SRC_SBMR1_BOOT_CFG1_SHIFT) +#define SRC_SBMR1_BOOT_CFG2_SHIFT (8) /* Bits 8-15: Refer to fusemap */ +#define SRC_SBMR1_BOOT_CFG2_MASK (0xff << SRC_SBMR1_BOOT_CFG2_SHIFT) +# define SRC_SBMR1_BOOT_CFG2(n) ((uint32_t)(n) << SRC_SBMR1_BOOT_CFG2_SHIFT) +#define SRC_SBMR1_BOOT_CFG3_SHIFT (16) /* Bits 16-23: Refer to fusemap */ +#define SRC_SBMR1_BOOT_CFG3_MASK (0xff << SRC_SBMR1_BOOT_CFG3_SHIFT) +# define SRC_SBMR1_BOOT_CFG3(n) ((uint32_t)(n) << SRC_SBMR1_BOOT_CFG3_SHIFT) +#define SRC_SBMR1_BOOT_CFG4_SHIFT (24) /* Bits 24-31: Refer to fusemap */ +#define SRC_SBMR1_BOOT_CFG4_MASK (0xff << SRC_SBMR1_BOOT_CFG4_SHIFT) +# define SRC_SBMR1_BOOT_CFG4(n) ((uint32_t)(n) << SRC_SBMR1_BOOT_CFG4_SHIFT) + +/* SRC Reset Status Register */ + +#define SRC_SRSR_IPP_RESET (1 << 0) /* Bit 0: Reset result of ipp_reset_b pin (Power-up sequence) */ + /* Bit 1: Reserved */ +#define SRC_SRSR_CSU_RESET (1 << 2) /* Bit 2: Reset result of the csu_reset_b input */ +#define SRC_SRSR_IPP_USER_RESET (1 << 3) /* Bit 3: Reset result of ipp_user_reset_b qualified reset */ +#define SRC_SRSR_WDOG_RST (1 << 4) /* Bit 4: IC Watchdog Time-out reset */ +#define SRC_SRSR_JTAG_RST (1 << 5) /* Bit 5: HIGH - Z JTAG reset */ +#define SRC_SRSR_JTAG_SW_RST (1 << 6) /* Bit 6: JTAG software reset */ + /* Bits 7-15: Reserved */ +#define SRC_SRSR_WARM_BOOT (1 << 16) /* Bit 16: WARM boot indication shows that WARM boot was initiated by software */ + /* Bits 17-31: Reserved */ + +/* SRC Interrupt Status Register */ + +#define SRC_SISR_GPU_PASSED_RESET (1 << 0) /* Bit 0: GPU passed software reset and is ready */ +#define SRC_SISR_VPU_PASSED_RESET (1 << 1) /* Bit 1: VPU passed software reset and is ready */ +#define SRC_SISR_IPU1_PASSED_RESET (1 << 2) /* Bit 2: ipu passed software reset and is ready */ +#define SRC_SISR_OPEN_VG_PASSED_RESET (1 << 3) /* Bit 3: open_vg passed software reset and is ready */ +#define SRC_SISR_IPU2_PASSED_RESET (1 << 4) /* Bit 4: ipu2 passed software reset and is ready */ +#define SRC_SISR_CORE0_WDOG_RST_REQ (1 << 5) /* Bit 5: WDOG reset request from core0 */ +#define SRC_SISR_CORE1_WDOG_RST_REQ (1 << 6) /* Bit 6: WDOG reset request from core1 */ +#define SRC_SISR_CORE2_WDOG_RST_REQ (1 << 7) /* Bit 7: WDOG reset request from core2 */ +#define SRC_SISR_CORE3_WDOG_RST_REQ (1 << 8) /* Bit 8: WDOG reset request from core3 */ + /* Bits 9-31: Reserved */ + +/* SRC Interrupt Mask Register */ +#define SRC_SIMR_ + +#define SRC_SIMR_GPU_PASSED_RESET (1 << 0) /* Bit 0: Mask GPU passed software reset interrupt */ +#define SRC_SIMR_VPU_PASSED_RESET (1 << 1) /* Bit 1: Mask VPU passed software reset interrupt */ +#define SRC_SIMR_IPU1_PASSED_RESET (1 << 2) /* Bit 2: Mask ipu passed software reset interrupt */ +#define SRC_SIMR_OPEN_VG_PASSED_RESET (1 << 3) /* Bit 3: Mask open_vg passed software reset interrupt */ +#define SRC_SIMR_IPU2_PASSED_RESET (1 << 4) /* Bit 4: Mask ipu2 passed software reset interrupt */ + /* Bits 5-31: Reserved */ + +/* SRC Boot Mode Register 2 */ + +#define SRC_SBMR2_SEC_CONFIG_SHIFT (0) /* Bits 0-1: State of the SECONFIG fuses */ + /* Bit 2: Reserved */ +#define SRC_SBMR2_DIR_BT_DIS (1 << 3) /* Bit 3: State of the DIR_BT_DIS fuse */ +#define SRC_SBMR2_BT_FUSE_SEL (1 << 4) /* Bit 4: State of the BT_FUSE_SEL fuse */ + /* Bits 5-23: Reserved */ +#define SRC_SBMR2_BMOD_SHIFT (24) /* Bits 24-25: Latched state of the BOOT_MODE1 and BOOT_MODE0 */ +#define SRC_SBMR2_BMOD_MASK (3 << SRC_SBMR2_BMOD_SHIFT) + /* Bits 26-31: Reserved */ + +/* SRC General Purpose Register 1: 32-bit PERSISTENT_ENTRY0: core0 entry function for waking-up from low power mode */ +/* SRC General Purpose Register 2: 32-bit PERSISTENT_ARG0: core0 entry function argument */ +/* SRC General Purpose Register 3: 32-bit PERSISTENT_ENTRY1: core1 entry function for waking-up from low power mode */ +/* SRC General Purpose Register 4: 32-bit PERSISTENT_ARG1: core1 entry function argument */ +/* SRC General Purpose Register 5: 32-bit PERSISTENT_ENTRY2: core2 entry function for waking-up from low power mode */ +/* SRC General Purpose Register 6: 32-bit PERSISTENT_ARG2: core1 entry function argument */ +/* SRC General Purpose Register 7: 32-bit PERSISTENT_ENTRY3: core3 entry function for waking-up from low power mode */ +/* SRC General Purpose Register 8: 32-bit PERSISTENT_ARG3: core1 entry function argument */ +/* SRC General Purpose Register 9: Reserved */ + +/* SRC General Purpose Register 10 */ + +#define SRC_GPR10_RW1_SHIFT (0) /* Bits 0-24: General purpose R/W bits */ +#define SRC_GPR10_RW1_MASK (0x01ffffff << SRC_GPR10_RW1_SHIFT) +# define SRC_GPR10_RW1(n) ((uint32_t)(n) << SRC_GPR10_RW1_SHIFT) +#define SRC_GPR10_CORE1_ERROR_STATUS (1 << 25) /* Bit 25: core1 error status bit */ +#define SRC_GPR10_CORE2_ERROR_STATUS (1 << 26) /* Bit 26: core2 error status bit */ +#define SRC_GPR10_CORE3_ERROR_STATUS (1 << 27) /* Bit 27: core3 error status bit */ +#define SRC_GPR10_RW2_SHIFT (28) /* Bits 28-31: General purpose R/W bits */ +#define SRC_GPR10_RW2_MASK (15 << SRC_GPR10_RW2_SHIFT) +# define SRC_GPR10_RW2(n) ((uint32_t)(n) << SRC_GPR10_RW2_SHIFT) + +#endif /* __ARCH_ARM_SRC_IMX6_CHIP_IMX_SRC_H */ -- GitLab From 365df152c57d21ffca5d775dc45b32c907bbb5ff Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 12 May 2016 12:26:56 -0600 Subject: [PATCH 151/307] Remove TABs and while space from end of line in README file --- configs/nucleo-144/README.txt | 98 +++++++++++++++++------------------ 1 file changed, 49 insertions(+), 49 deletions(-) diff --git a/configs/nucleo-144/README.txt b/configs/nucleo-144/README.txt index 0eca17d582..b826f78680 100644 --- a/configs/nucleo-144/README.txt +++ b/configs/nucleo-144/README.txt @@ -5,7 +5,7 @@ This README discusses issues unique to NuttX configurations for the ST Nucleo F746ZG board from ST Micro. See http://www.st.com/web/catalog/tools/FM116/CL1620/SC959/SS1532/LN1847/PF261636 - + The Nucleo F746ZG order part number is NUCLEO-F746ZG. It is clumped together under the STM32 Nucleo-144 board family. This does provide uniformity in the documentation from ST and should allow us to quickly change configurations @@ -25,28 +25,28 @@ NUCLEO-F746ZG: 216 MHz, MPU, and DSP instructions. Memory: 1024 KB Flash 320KB of SRAM (including 64KB of data TCM RAM) + 16KB of instruction TCM RAM + 4KB of backup SRAM - ADC: 3×12-bit, 2.4 MSPS ADC: up to 24 channels and 7.2 MSPS in + ADC: 3×12-bit, 2.4 MSPS ADC: up to 24 channels and 7.2 MSPS in triple interleaved mode DMA: 16-stream DMA controllers with FIFOs and burst support Timers: Up to 18 timers: up to thirteen 16-bit (1x 16-bit lowpower), two 32-bit timers, 2x watchdogs, SysTick GPIO: 114 I/O ports with interrupt capability - LCD: LCD-TFT Controllerwith (DMA2D), Parallel interface + LCD: LCD-TFT Controllerwith (DMA2D), Parallel interface I2C: 4 × I2C interfaces (SMBus/PMBus) U[S]ARTs: 4 USARTs, 4 UARTs (27 Mbit/s, ISO7816 interface, LIN, IrDA, modem control) - SPI/12Ss: 6/3 (simplex) (up to 50 Mbit/s), 3 with muxed simplex I2S - for audio class accuracy via internal audio PLL or external + SPI/12Ss: 6/3 (simplex) (up to 50 Mbit/s), 3 with muxed simplex I2S + for audio class accuracy via internal audio PLL or external clock QSPI: Dual mode Quad-SPI SAIs: 2 Serial Audio Interfaces CAN: 2 X CAN interface SDMMC interface SPDIFRX interface - USB: USB 2.0 full-speed device/host/OTG controller with on-chip + USB: USB 2.0 full-speed device/host/OTG controller with on-chip PHY - 10/100 Ethernet: MAC with dedicated DMA: supports IEEE 1588v2 hardware, - MII/RMII + 10/100 Ethernet: MAC with dedicated DMA: supports IEEE 1588v2 hardware, + MII/RMII Camera Interface: 8/14 Bit CRC calculation unit TRG: True random number generator @@ -54,12 +54,12 @@ NUCLEO-F746ZG: Board features: - Peripherals: 8 leds, 2 push button (3 LEDs, 1 button) under software + Peripherals: 8 leds, 2 push button (3 LEDs, 1 button) under software control - Debug: STLINK/V2-1 debugger/programmer Uses a STM32F103CB to + Debug: STLINK/V2-1 debugger/programmer Uses a STM32F103CB to provide a ST-Link for programming, debug similar to the - OpenOcd FTDI function - USB to JTAG front-end. - + OpenOcd FTDI function - USB to JTAG front-end. + Expansion I/F ST Zio an Extended Ardino and Morpho Headers See https://developer.mbed.org/platforms/ST-Nucleo-F746ZG form additional information about this board. @@ -85,11 +85,11 @@ Development Environment All testing has been conducted using the GNU toolchain from ARM for Linux. found here https://launchpad.net/gcc-arm-embedded/4.9/4.9-2015-q3-update/+download/gcc-arm-none-eabi-4_9-2015q3-20150921-linux.tar.bz2 - + If you change the default toolchain, then you may also have to modify the PATH in the setenv.h file if your make cannot find the tools. - + IDEs ==== @@ -117,25 +117,25 @@ Basic configuration & build steps - Refreshes the .config file with the latest features addes sice this writting $ make oldconfig - Select the features you want in the build. - $ make menuconfig - - Builds Nuttx with the features you selected. - $ make + $ make menuconfig + - Builds Nuttx with the features you selected. + $ make Hardware ======== GPIO - there are 144 I/O lines on the STM32F746ZGT6 with various pins pined out on the Nucleo F746ZG - + See https://developer.mbed.org/platforms/ST-Nucleo-F746ZG/ for slick graphic pinouts. - + Keep in mind that: 1) The I/O is 3.3 Volt not 5 Volt like on the Arduino products. 2) The Nucleo-144 board family has 3 pages of Solder Bridges AKA Solder Blobs (SB) that can alter the factory configuration. We will note SB in effect but will assume the facitory defualt settings. - + Our main concern is establishing a console and LED utilization for debugging. Because so many pins can be multiplexed with so many functions, the above mentioned graphic is super helpful in indentifying a serial port @@ -145,10 +145,10 @@ Hardware or choose a completely different U[S]ART to use as the console. In that Case, You will need to edit the include/board.h to select different U[S]ART and / or pin selections. - - Serial - ---- + + Serial + ------ SERIAL_RX PE_0 SERIAL_TX PE_1 @@ -156,12 +156,12 @@ Hardware Buttons ------- B1 USER: the user button is connected to the I/O PC13 (Tamper support, SB173 - ON and SB180 OFF) + ON and SB180 OFF) LEDs ---- The Board provides a 3 user LEDs, LD1-LD3 - LED1 (Green) PB_0 (SB120 ON and SB119 OFF) + LED1 (Green) PB_0 (SB120 ON and SB119 OFF) LED2 (Blue) PB_7 (SB139 ON) LED3 (Red) PB_14 (SP118 ON) @@ -176,33 +176,33 @@ Hardware SYMBOL Meaning RED GREEN BLUE ------------------- ----------------------- ----------- - LED_STARTED 0 OFF OFF OFF - LED_HEAPALLOCATE 0 OFF OFF OFF - LED_IRQSENABLED 0 OFF OFF OFF - LED_STACKCREATED 1 OFF ON OFF - LED_INIRQ 2 NC NC ON (momentary) - LED_SIGNAL 2 NC NC ON (momentary) - LED_ASSERTION 3 ON NC NC (momentary) - LED_PANIC 4 ON OFF OFF (flashing 2Hz) + LED_STARTED 0 OFF OFF OFF + LED_HEAPALLOCATE 0 OFF OFF OFF + LED_IRQSENABLED 0 OFF OFF OFF + LED_STACKCREATED 1 OFF ON OFF + LED_INIRQ 2 NC NC ON (momentary) + LED_SIGNAL 2 NC NC ON (momentary) + LED_ASSERTION 3 ON NC NC (momentary) + LED_PANIC 4 ON OFF OFF (flashing 2Hz) OFF - means that the OS is still initializing. Initialization is very fast so if you see this at all, it probably means that the system is hanging up somewhere in the initialization phases. GREEN - This means that the OS completed initialization. - + BLUE - Whenever and interrupt or signal handler is entered, the BLUE LED is illuminated and extinguished when the interrupt or signal handler exits. - + RED - If a recovered assertion occurs, the RED LED will be illuminated briefly while the assertion is handled. You will probably never see this. - -Flashing RED - In the event of a fatal crash, all other LEDs will be + +Flashing RED - In the event of a fatal crash, all other LEDs will be extinguished and RED LED will FLASH at a 2Hz rate. - - Thus if the GREEN LED is lit, NuttX has successfully booted and is, - apparently, running normally. If the RED LED is flashing at + + Thus if the GREEN LED is lit, NuttX has successfully booted and is, + apparently, running normally. If the RED LED is flashing at approximately 2Hz, then a fatal error has been detected and the system has halted. @@ -214,19 +214,19 @@ Serial Consoles Pins and Connectors: GPIO Connector NAME RXD: PE0 CN11 pin 64, PE0 - CN10 pin 33, D34 + CN10 pin 33, D34 TXD: PE1 CN11 pin 61, PE1 You must use a 3.3 TTL to RS-232 converter or a USB to 3.3V TTL - Nucleo 144 FTDI TTL-232R-3V3 + Nucleo 144 FTDI TTL-232R-3V3 ----------- ------------ TXD - CN11 pin 64 - RXD - Pin 5 (Yellow) RXD - CN11 pin 61 - TXD - Pin 4 (Orange) GND CN11 pin 63 GND Pin 1 (Black) - *Note you will be reverse RX/TX + *Note you will be reverse RX/TX Use make menuconfig to configure USART8 as the console: @@ -248,8 +248,8 @@ Serial Consoles Solder Bridges. This configuration requires: - PD8 USART3 TX SB5 ON and SB7 OFF (Default) - PD9 USART3 RX SB6 ON and SB4 OFF (Default) + PD8 USART3 TX SB5 ON and SB7 OFF (Default) + PD9 USART3 RX SB6 ON and SB4 OFF (Default) Configuring USART3 is the same as given above but add the S and #3. @@ -280,9 +280,9 @@ Configurations a. Build and install the kconfig-mconf tool. See nuttx/README.txt see additional README.txt files in the NuttX tools repository. - b. If this is the intall configuration then Execute - 'cd tools && ./configure.sh stm32f746g-disco/nsh && cd ..' - in nuttx/ in order to start configuration process. + b. If this is the intall configuration then Execute + 'cd tools && ./configure.sh stm32f746g-disco/nsh && cd ..' + in nuttx/ in order to start configuration process. Caution: Doing this step more than once will overwrite .config with the contents of the stm32f746g-disco/nsh/defconfig file. @@ -291,7 +291,7 @@ Configurations d. Execute 'make menuconfig' in nuttx/ in order to start the reconfiguration process. - + e. Save the .config file to reuse it in the future starting at step d. 2. By default, this configuration uses the ARM GNU toolchain -- GitLab From 8a4e185c84fc8a1918afbaafec3c9cd714caefca Mon Sep 17 00:00:00 2001 From: David Sidrane Date: Thu, 12 May 2016 18:50:43 +0000 Subject: [PATCH 152/307] Kconfig edited online with Bitbucket --- arch/arm/src/samv7/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/src/samv7/Kconfig b/arch/arm/src/samv7/Kconfig index 1f9941e315..5a68712427 100644 --- a/arch/arm/src/samv7/Kconfig +++ b/arch/arm/src/samv7/Kconfig @@ -26,7 +26,7 @@ config ARCH_CHIP_SAME70Q21 select ARCH_CHIP_SAME70Q config ARCH_CHIP_SAME70N19 - bool "SAME70N10" + bool "SAME70N19" select ARCH_CHIP_SAME70N config ARCH_CHIP_SAME70N20 -- GitLab From ba4ae6fdc4d2286b88864b4105622fc97c7af060 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 12 May 2016 13:14:48 -0600 Subject: [PATCH 153/307] Cosmetic fixes to last commit --- arch/arm/src/imx6/chip/imx_src.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/arch/arm/src/imx6/chip/imx_src.h b/arch/arm/src/imx6/chip/imx_src.h index fb8e3c0e9a..b49a9b4425 100644 --- a/arch/arm/src/imx6/chip/imx_src.h +++ b/arch/arm/src/imx6/chip/imx_src.h @@ -92,6 +92,7 @@ /* SRC Register Bit Definitions *********************************************************************/ /* SRC Control Register: Reset value 0x00000521 */ + #define SRC_SCR_WARM_RESET_ENABLE (1 << 0) /* Bit 0: WARM reset enable bit */ #define SRC_SCR_SW_GPU_RST (1 << 1) /* Bit 1: Software reset for GPU */ #define SRC_SCR_SW_VPU_RST (1 << 2) /* Bit 2: Software reset for VPU */ @@ -193,18 +194,18 @@ /* SRC General Purpose Register 5: 32-bit PERSISTENT_ENTRY2: core2 entry function for waking-up from low power mode */ /* SRC General Purpose Register 6: 32-bit PERSISTENT_ARG2: core1 entry function argument */ /* SRC General Purpose Register 7: 32-bit PERSISTENT_ENTRY3: core3 entry function for waking-up from low power mode */ -/* SRC General Purpose Register 8: 32-bit PERSISTENT_ARG3: core1 entry function argument */ +/* SRC General Purpose Register 8: 32-bit PERSISTENT_ARG3: core3 entry function argument */ /* SRC General Purpose Register 9: Reserved */ /* SRC General Purpose Register 10 */ -#define SRC_GPR10_RW1_SHIFT (0) /* Bits 0-24: General purpose R/W bits */ +#define SRC_GPR10_RW1_SHIFT (0) /* Bits 0-24: General purpose R/W bits */ #define SRC_GPR10_RW1_MASK (0x01ffffff << SRC_GPR10_RW1_SHIFT) # define SRC_GPR10_RW1(n) ((uint32_t)(n) << SRC_GPR10_RW1_SHIFT) #define SRC_GPR10_CORE1_ERROR_STATUS (1 << 25) /* Bit 25: core1 error status bit */ #define SRC_GPR10_CORE2_ERROR_STATUS (1 << 26) /* Bit 26: core2 error status bit */ #define SRC_GPR10_CORE3_ERROR_STATUS (1 << 27) /* Bit 27: core3 error status bit */ -#define SRC_GPR10_RW2_SHIFT (28) /* Bits 28-31: General purpose R/W bits */ +#define SRC_GPR10_RW2_SHIFT (28) /* Bits 28-31: General purpose R/W bits */ #define SRC_GPR10_RW2_MASK (15 << SRC_GPR10_RW2_SHIFT) # define SRC_GPR10_RW2(n) ((uint32_t)(n) << SRC_GPR10_RW2_SHIFT) -- GitLab From 99e695398cf78ccb07d46db48d49166100453a7b Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 12 May 2016 13:42:19 -0600 Subject: [PATCH 154/307] Rename up_boot to arm_boot --- arch/arm/src/a1x/a1x_boot.c | 4 ++-- arch/arm/src/arm/up_head.S | 2 +- arch/arm/src/arm/up_pginitialize.c | 2 +- arch/arm/src/armv7-a/arm_head.S | 8 ++++---- arch/arm/src/armv7-a/arm_pghead.S | 12 ++++++------ arch/arm/src/armv7-a/arm_pginitialize.c | 2 +- arch/arm/src/common/up_internal.h | 2 +- arch/arm/src/dm320/dm320_boot.c | 2 +- arch/arm/src/imx1/imx_boot.c | 2 +- arch/arm/src/imx6/imx_boot.c | 4 ++-- arch/arm/src/lpc31xx/lpc31.h | 2 +- arch/arm/src/lpc31xx/lpc31_boot.c | 4 ++-- arch/arm/src/lpc31xx/lpc31_lowputc.c | 2 +- arch/arm/src/sama5/sam_boot.c | 4 ++-- arch/avr/src/common/up_internal.h | 1 - arch/hc/src/common/up_internal.h | 4 ---- arch/mips/src/pic32mx/pic32mx.h | 2 +- arch/sh/src/common/up_internal.h | 1 - arch/x86/src/common/up_internal.h | 1 - configs/ea3131/locked/mklocked.sh | 6 +++--- configs/freedom-kl25z/src/kl_boardinitialize.c | 3 +-- configs/freedom-kl26z/src/kl_boardinitialize.c | 2 +- configs/mirtoo/README.txt | 4 ++-- configs/mirtoo/src/pic32_boot.c | 4 ++-- configs/nutiny-nuc120/src/nuc_boardinitialize.c | 3 +-- configs/pcduino-a10/nsh/pcduino-140107.patch | 10 +++++----- configs/stm32ldiscovery/src/stm32_boot.c | 2 +- configs/teensy-lc/src/kl_boardinitialize.c | 2 +- 28 files changed, 44 insertions(+), 53 deletions(-) diff --git a/arch/arm/src/a1x/a1x_boot.c b/arch/arm/src/a1x/a1x_boot.c index c999ea6ef5..b7ceee33f7 100644 --- a/arch/arm/src/a1x/a1x_boot.c +++ b/arch/arm/src/a1x/a1x_boot.c @@ -289,7 +289,7 @@ static void a1x_copyvectorblock(void) ****************************************************************************/ /**************************************************************************** - * Name: up_boot + * Name: arm_boot * * Description: * Complete boot operations started in arm_head.S @@ -305,7 +305,7 @@ static void a1x_copyvectorblock(void) * ****************************************************************************/ -void up_boot(void) +void arm_boot(void) { #ifndef CONFIG_ARCH_ROMPGTABLE /* __start provided the basic MMU mappings for SRAM. Now provide mappings diff --git a/arch/arm/src/arm/up_head.S b/arch/arm/src/arm/up_head.S index 296c30656f..53f94a2e0f 100644 --- a/arch/arm/src/arm/up_head.S +++ b/arch/arm/src/arm/up_head.S @@ -609,7 +609,7 @@ __start: /* Perform early C-level, platform-specific initialization */ - bl up_boot + bl arm_boot #ifdef CONFIG_STACK_COLORATION /* Write a known value to the IDLE thread stack to support stack diff --git a/arch/arm/src/arm/up_pginitialize.c b/arch/arm/src/arm/up_pginitialize.c index 5470f73e35..25cb917809 100644 --- a/arch/arm/src/arm/up_pginitialize.c +++ b/arch/arm/src/arm/up_pginitialize.c @@ -88,7 +88,7 @@ void up_pginitialize(void) { /* None needed at present. This file is just retained in case the need * arises in the future. Nothing calls up_pginitialize() now. If needed, - * if should be called early in up_boot.c to assure that all paging is + * if should be called early in arm_boot.c to assure that all paging is * ready. */ } diff --git a/arch/arm/src/armv7-a/arm_head.S b/arch/arm/src/armv7-a/arm_head.S index 5af4f17ddf..220026da34 100644 --- a/arch/arm/src/armv7-a/arm_head.S +++ b/arch/arm/src/armv7-a/arm_head.S @@ -630,18 +630,18 @@ __start: #ifndef CONFIG_BOOT_SDRAM_DATA /* Initialize .bss and .data ONLY if .bss and .data lie in SRAM that is * ready to use. Other memory, such as SDRAM, must be initialized before - * it can be used. up_boot() will perform that memory initialization and - * .bss and .data can be initialized after up_boot() returns. + * it can be used. arm_boot() will perform that memory initialization and + * .bss and .data can be initialized after arm_boot() returns. */ bl arm_data_initialize #endif /* Perform early C-level, platform-specific initialization. Logic - * within up_boot() must configure SDRAM and call arm_ram_initailize. + * within arm_boot() must configure SDRAM and call arm_ram_initailize. */ - bl up_boot + bl arm_boot #ifdef CONFIG_STACK_COLORATION /* Write a known value to the IDLE thread stack to support stack diff --git a/arch/arm/src/armv7-a/arm_pghead.S b/arch/arm/src/armv7-a/arm_pghead.S index e785360dfe..bc4c99ce26 100644 --- a/arch/arm/src/armv7-a/arm_pghead.S +++ b/arch/arm/src/armv7-a/arm_pghead.S @@ -650,8 +650,8 @@ __start: /* Initialize .bss and .data ONLY if .bss and .data lie in SRAM that is * ready to use. Other memory, such as SDRAM, must be initialized before - * it can be used. up_boot() will perform that memory initialization and - * .bss and .data can be initialized after up_boot() returns. + * it can be used. arm_boot() will perform that memory initialization and + * .bss and .data can be initialized after arm_boot() returns. */ /* Set up the stack pointer and clear the frame pointer */ @@ -662,18 +662,18 @@ __start: #ifndef CONFIG_BOOT_SDRAM_DATA /* Initialize .bss and .data ONLY if .bss and .data lie in SRAM that is * ready to use. Other memory, such as SDRAM, must be initialized before - * it can be used. up_boot() will perform that memory initialization and - * .bss and .data can be initialized after up_boot() returns. + * it can be used. arm_boot() will perform that memory initialization and + * .bss and .data can be initialized after arm_boot() returns. */ bl arm_data_initialize #endif /* Perform early C-level, platform-specific initialization. Logic - * within up_boot() must configure SDRAM and call arm_ram_initailize. + * within arm_boot() must configure SDRAM and call arm_ram_initailize. */ - bl up_boot + bl arm_boot #ifdef CONFIG_STACK_COLORATION /* Write a known value to the IDLE thread stack to support stack diff --git a/arch/arm/src/armv7-a/arm_pginitialize.c b/arch/arm/src/armv7-a/arm_pginitialize.c index f419a28ba4..94b44449ed 100644 --- a/arch/arm/src/armv7-a/arm_pginitialize.c +++ b/arch/arm/src/armv7-a/arm_pginitialize.c @@ -88,7 +88,7 @@ void up_pginitialize(void) { /* None needed at present. This file is just retained in case the need * arises in the future. Nothing calls up_pginitialize() now. If needed, - * if should be called early in up_boot.c to assure that all paging is + * if should be called early in arm_boot.c to assure that all paging is * ready. */ } diff --git a/arch/arm/src/common/up_internal.h b/arch/arm/src/common/up_internal.h index 0e8650c76c..8dccf8a1ef 100644 --- a/arch/arm/src/common/up_internal.h +++ b/arch/arm/src/common/up_internal.h @@ -331,7 +331,7 @@ EXTERN uint32_t _eramfuncs; /* Copy destination end address in RAM */ /* Low level initialization provided by board-level logic ******************/ -void up_boot(void); +void arm_boot(void); /* Context switching */ diff --git a/arch/arm/src/dm320/dm320_boot.c b/arch/arm/src/dm320/dm320_boot.c index 4ba55ac172..aba87ed240 100644 --- a/arch/arm/src/dm320/dm320_boot.c +++ b/arch/arm/src/dm320/dm320_boot.c @@ -202,7 +202,7 @@ static void up_copyvectorblock(void) * Public Functions ************************************************************************************/ -void up_boot(void) +void arm_boot(void) { /* __start provided the basic MMU mappings for SDRAM. Now provide mappings for all * IO regions (Including the vector region). diff --git a/arch/arm/src/imx1/imx_boot.c b/arch/arm/src/imx1/imx_boot.c index f28d2cd7ee..c429a31749 100644 --- a/arch/arm/src/imx1/imx_boot.c +++ b/arch/arm/src/imx1/imx_boot.c @@ -195,7 +195,7 @@ static void up_copyvectorblock(void) * Public Functions ************************************************************************************/ -void up_boot(void) +void arm_boot(void) { /* __start provided the basic MMU mappings for SDRAM. Now provide mappings for all * IO regions (Including the vector region). diff --git a/arch/arm/src/imx6/imx_boot.c b/arch/arm/src/imx6/imx_boot.c index ae3cc1a123..89fe54cac9 100644 --- a/arch/arm/src/imx6/imx_boot.c +++ b/arch/arm/src/imx6/imx_boot.c @@ -320,7 +320,7 @@ static inline void imx_wdtdisable(void) ****************************************************************************/ /**************************************************************************** - * Name: up_boot + * Name: arm_boot * * Description: * Complete boot operations started in arm_head.S @@ -386,7 +386,7 @@ static inline void imx_wdtdisable(void) * ****************************************************************************/ -void up_boot(void) +void arm_boot(void) { #ifdef CONFIG_ARCH_RAMFUNCS const uint32_t *src; diff --git a/arch/arm/src/lpc31xx/lpc31.h b/arch/arm/src/lpc31xx/lpc31.h index d16058a35c..4a342a9a83 100644 --- a/arch/arm/src/lpc31xx/lpc31.h +++ b/arch/arm/src/lpc31xx/lpc31.h @@ -154,7 +154,7 @@ static inline void gpio_outputhigh(uint32_t ioconfig, uint32_t bit) * Name: lpc31_lowsetup * * Description: - * Called early in up_boot. Performs chip-common low level initialization. + * Called early in arm_boot. Performs chip-common low level initialization. * ************************************************************************************/ diff --git a/arch/arm/src/lpc31xx/lpc31_boot.c b/arch/arm/src/lpc31xx/lpc31_boot.c index 1932b8fee7..11a3e71302 100644 --- a/arch/arm/src/lpc31xx/lpc31_boot.c +++ b/arch/arm/src/lpc31xx/lpc31_boot.c @@ -333,14 +333,14 @@ static void up_copyvectorblock(void) ************************************************************************************/ /************************************************************************************ - * Name: up_boot + * Name: arm_boot * * Description: * Complete boot operations started in up_head.S * ************************************************************************************/ -void up_boot(void) +void arm_boot(void) { /* __start provided the basic MMU mappings for SRAM. Now provide mappings for all * IO regions (Including the vector region). diff --git a/arch/arm/src/lpc31xx/lpc31_lowputc.c b/arch/arm/src/lpc31xx/lpc31_lowputc.c index 189ad0b9c7..3e3213927f 100644 --- a/arch/arm/src/lpc31xx/lpc31_lowputc.c +++ b/arch/arm/src/lpc31xx/lpc31_lowputc.c @@ -271,7 +271,7 @@ static inline void up_configbaud(void) * Name: lpc31_lowsetup * * Description: - * Called early in up_boot. Performs chip-common low level initialization. + * Called early in arm_boot. Performs chip-common low level initialization. * ****************************************************************************/ diff --git a/arch/arm/src/sama5/sam_boot.c b/arch/arm/src/sama5/sam_boot.c index 58cae33824..d2d154613c 100644 --- a/arch/arm/src/sama5/sam_boot.c +++ b/arch/arm/src/sama5/sam_boot.c @@ -338,7 +338,7 @@ static inline void sam_wdtdisable(void) ****************************************************************************/ /**************************************************************************** - * Name: up_boot + * Name: arm_boot * * Description: * Complete boot operations started in arm_head.S @@ -407,7 +407,7 @@ static inline void sam_wdtdisable(void) * ****************************************************************************/ -void up_boot(void) +void arm_boot(void) { #ifdef CONFIG_ARCH_RAMFUNCS const uint32_t *src; diff --git a/arch/avr/src/common/up_internal.h b/arch/avr/src/common/up_internal.h index bc6a7ebf25..92a160ee90 100644 --- a/arch/avr/src/common/up_internal.h +++ b/arch/avr/src/common/up_internal.h @@ -134,7 +134,6 @@ extern uint32_t _ebss; /* End+1 of .bss */ /* Defined in files with the same name as the function */ -void up_boot(void); void up_irqinitialize(void); #ifdef CONFIG_ARCH_DMA void weak_function up_dmainitialize(void); diff --git a/arch/hc/src/common/up_internal.h b/arch/hc/src/common/up_internal.h index a2d4434155..1650711f3a 100644 --- a/arch/hc/src/common/up_internal.h +++ b/arch/hc/src/common/up_internal.h @@ -157,10 +157,6 @@ extern uint32_t g_intstackbase; * Public Functions ****************************************************************************/ -/* Start-up functions */ - -void up_boot(void); - /* Context switching functions */ void up_copystate(uint8_t *dest, uint8_t *src); diff --git a/arch/mips/src/pic32mx/pic32mx.h b/arch/mips/src/pic32mx/pic32mx.h index ab8e50b491..d636293703 100644 --- a/arch/mips/src/pic32mx/pic32mx.h +++ b/arch/mips/src/pic32mx/pic32mx.h @@ -234,7 +234,7 @@ void pic32mx_uartconfigure(uintptr_t uart_base, uint32_t baudrate, * * Description: * This function must be provided by the board-specific logic in the directory - * configs//up_boot.c. + * configs//pic32_boot.c. * ************************************************************************************/ diff --git a/arch/sh/src/common/up_internal.h b/arch/sh/src/common/up_internal.h index 724efbca93..5f1a54bb3e 100644 --- a/arch/sh/src/common/up_internal.h +++ b/arch/sh/src/common/up_internal.h @@ -155,7 +155,6 @@ extern uint32_t g_idle_topstack; /* Defined in files with the same name as the function */ -void up_boot(void); void up_copystate(uint32_t *dest, uint32_t *src); void up_dataabort(uint32_t *regs); void up_decodeirq(uint32_t *regs); diff --git a/arch/x86/src/common/up_internal.h b/arch/x86/src/common/up_internal.h index db35e68035..d0eb1570c3 100644 --- a/arch/x86/src/common/up_internal.h +++ b/arch/x86/src/common/up_internal.h @@ -192,7 +192,6 @@ void x86_boardinitialize(void); /* Defined in files with the same name as the function */ -void up_boot(void); void up_copystate(uint32_t *dest, uint32_t *src); void up_savestate(uint32_t *regs); void up_decodeirq(uint32_t *regs); diff --git a/configs/ea3131/locked/mklocked.sh b/configs/ea3131/locked/mklocked.sh index 29b357ae39..97a126015d 100755 --- a/configs/ea3131/locked/mklocked.sh +++ b/configs/ea3131/locked/mklocked.sh @@ -140,9 +140,9 @@ fi # consequence, the 1-time initialization code takes up precious memory # in the locked memory region. # -# up_boot is a low-level initialization function called by __start: +# arm_boot is a low-level initialization function called by __start: -echo "EXTERN(up_boot)" >>ld-locked.inc +echo "EXTERN(arm_boot)" >>ld-locked.inc # All of the initialization functions that are called by os_start up to # the point where the page fill worker thread is started must also be @@ -150,7 +150,7 @@ echo "EXTERN(up_boot)" >>ld-locked.inc answer=$(checkzero CONFIG_TASK_NAME_SIZE) if [ "$answer" = n ]; then - echo "EXTERN(up_boot)" >>ld-locked.inc + echo "EXTERN(arm_boot)" >>ld-locked.inc fi echo "EXTERN(dq_addfirst)" >>ld-locked.inc diff --git a/configs/freedom-kl25z/src/kl_boardinitialize.c b/configs/freedom-kl25z/src/kl_boardinitialize.c index a3036bd907..2ab54047be 100644 --- a/configs/freedom-kl25z/src/kl_boardinitialize.c +++ b/configs/freedom-kl25z/src/kl_boardinitialize.c @@ -1,6 +1,5 @@ /************************************************************************************ - * configs/freedom-kl25z/src/up_boot.c - * arch/arm/src/board/up_boot.c + * configs/freedom-kl25z/src/kl_boardinitialize.c * * Copyright (C) 2013 Gregory Nutt. All rights reserved. * Author: Gregory Nutt diff --git a/configs/freedom-kl26z/src/kl_boardinitialize.c b/configs/freedom-kl26z/src/kl_boardinitialize.c index 4d80f64591..004274c6f6 100644 --- a/configs/freedom-kl26z/src/kl_boardinitialize.c +++ b/configs/freedom-kl26z/src/kl_boardinitialize.c @@ -1,5 +1,5 @@ /************************************************************************************ - * configs/freedom-kl26z/src/up_boot.c + * configs/freedom-kl26z/src/kl_boardinitialize.c * * Copyright (C) 2015 Gregory Nutt. All rights reserved. * Author: Gregory Nutt diff --git a/configs/mirtoo/README.txt b/configs/mirtoo/README.txt index 799d77ccd0..483e1d50a2 100644 --- a/configs/mirtoo/README.txt +++ b/configs/mirtoo/README.txt @@ -530,7 +530,7 @@ UART Usage When mounted on the DTX1-4000L EV-kit1 board, serial output is avaiable through an FT230X device via the FUNC0 and FUNC1 module outputs. If CONFIG_PIC32MX_UART2 - is enabled, the src/up_boot will configure the UART2 pins as follows: + is enabled, the src/pic32_boot will configure the UART2 pins as follows: ---------- ------ ----- ------ ------------------------- BOARD MODULE PIN SIGNAL NOTES @@ -542,7 +542,7 @@ UART Usage for UART2 if you are also debugging with the ICD3. In that case, you may need to switch to UART1. - If CONFIG_PIC32MX_UART1 is enabled, the src/up_boot will configure the UART + If CONFIG_PIC32MX_UART1 is enabled, the src/pic32_boot will configure the UART pins as follows. This will support communictions (via an external RS-232 driver) through X3 pins 4 and 5: diff --git a/configs/mirtoo/src/pic32_boot.c b/configs/mirtoo/src/pic32_boot.c index 221377fd5a..01d7b57a4b 100644 --- a/configs/mirtoo/src/pic32_boot.c +++ b/configs/mirtoo/src/pic32_boot.c @@ -70,7 +70,7 @@ * Description: * When mounted on the DTX1-4000L EV-kit1 board, serial output is avaiable through * an FT230X device via the FUNC0 and FUNC1 module outputs. If CONFIG_PIC32MX_UART2 - * is enabled, the src/up_boot will configure the UART2 pins as follows. + * is enabled, the src/pic32_boot will configure the UART2 pins as follows. * * ---------- ------ ----- ------ ------------------------- * BOARD OUTPUT PIN SIGNAL NOTES @@ -78,7 +78,7 @@ * FT230X RXD FUNC0 RPB11 U2RX UART2 RX (Also PGEC2) * FT230X TXD FUNC1 RPB10 U2TX UART2 TX (Also PGED2) * - * If CONFIG_PIC32MX_UART1 is enabled, the src/up_boot will configure the UART + * If CONFIG_PIC32MX_UART1 is enabled, the src/pic32_boot will configure the UART * pins as follows. This will support communictions (via an external RS-232 * driver) through X3 pins 4 and 5: * diff --git a/configs/nutiny-nuc120/src/nuc_boardinitialize.c b/configs/nutiny-nuc120/src/nuc_boardinitialize.c index ef4ec1a7e8..add4e9290f 100644 --- a/configs/nutiny-nuc120/src/nuc_boardinitialize.c +++ b/configs/nutiny-nuc120/src/nuc_boardinitialize.c @@ -1,6 +1,5 @@ /************************************************************************************ - * configs/nutiny-nuc120/src/up_boot.c - * arch/arm/src/board/up_boot.c + * configs/nutiny-nuc120/src/nuc_boardinitialize.c * * Copyright (C) 2013 Gregory Nutt. All rights reserved. * Author: Gregory Nutt diff --git a/configs/pcduino-a10/nsh/pcduino-140107.patch b/configs/pcduino-a10/nsh/pcduino-140107.patch index 50d4a0aca1..1d0b665184 100644 --- a/configs/pcduino-a10/nsh/pcduino-140107.patch +++ b/configs/pcduino-a10/nsh/pcduino-140107.patch @@ -2,7 +2,7 @@ diff --git a/nuttx/arch/arm/src/a1x/a1x_boot.c b/nuttx/arch/arm/src/a1x/a1x_boot index 3cc6323..ad42790 100644 --- a/nuttx/arch/arm/src/a1x/a1x_boot.c +++ b/nuttx/arch/arm/src/a1x/a1x_boot.c -@@ -312,12 +312,14 @@ void up_boot(void) +@@ -312,12 +312,14 @@ void arm_boot(void) * for all IO regions (Including the vector region). */ @@ -17,7 +17,7 @@ index 3cc6323..ad42790 100644 a1x_vectormapping(); #endif /* CONFIG_ARCH_ROMPGTABLE */ -@@ -326,16 +328,19 @@ void up_boot(void) +@@ -326,16 +328,19 @@ void arm_boot(void) * arm_vector.S */ @@ -37,7 +37,7 @@ index 3cc6323..ad42790 100644 a1x_lowsetup(); /* Perform early serial initialization if we are going to use the serial -@@ -343,6 +348,7 @@ void up_boot(void) +@@ -343,6 +348,7 @@ void arm_boot(void) */ #ifdef USE_EARLYSERIALINIT @@ -45,7 +45,7 @@ index 3cc6323..ad42790 100644 up_earlyserialinit(); #endif -@@ -353,6 +359,7 @@ void up_boot(void) +@@ -353,6 +359,7 @@ void arm_boot(void) */ #ifdef CONFIG_BUILD_PROTECTED @@ -53,7 +53,7 @@ index 3cc6323..ad42790 100644 a1x_userspace(); #endif -@@ -362,5 +369,7 @@ void up_boot(void) +@@ -362,5 +369,7 @@ void arm_boot(void) * - Configuration of board specific resources (PIOs, LEDs, etc). */ diff --git a/configs/stm32ldiscovery/src/stm32_boot.c b/configs/stm32ldiscovery/src/stm32_boot.c index 375d9de329..df34cb340a 100644 --- a/configs/stm32ldiscovery/src/stm32_boot.c +++ b/configs/stm32ldiscovery/src/stm32_boot.c @@ -1,5 +1,5 @@ /************************************************************************************ - * configs/stm32ldiscovery/src/up_boot.c + * configs/stm32ldiscovery/src/stm32_boot.c * * Copyright (C) 2013, 2015 Gregory Nutt. All rights reserved. * Author: Gregory Nutt diff --git a/configs/teensy-lc/src/kl_boardinitialize.c b/configs/teensy-lc/src/kl_boardinitialize.c index c99ef36673..119a2d4ca6 100644 --- a/configs/teensy-lc/src/kl_boardinitialize.c +++ b/configs/teensy-lc/src/kl_boardinitialize.c @@ -1,5 +1,5 @@ /************************************************************************************ - * configs/teensy-lc/src/up_boot.c + * configs/teensy-lc/src/kl_boardinitialize.c * * Copyright (C) 2015 Gregory Nutt. All rights reserved. * Author: Gregory Nutt -- GitLab From 70782b0f14cc763a25d002084c729a1b7e5c3e14 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 12 May 2016 15:04:46 -0600 Subject: [PATCH 155/307] ARMv7-A i.MX6: More SMP logic. Still untested. --- Documentation/NuttxPortingGuide.html | 36 +-- .../src/{imx6/imx_cpuinit.c => armv7-a/smp.h} | 74 +++-- arch/arm/src/imx6/Make.defs | 2 +- arch/arm/src/imx6/imx_boot.c | 15 + arch/arm/src/imx6/imx_boot.h | 57 +++- arch/arm/src/imx6/imx_cpuboot.c | 265 ++++++++++++++++++ arch/sim/src/up_smphook.c | 23 -- include/nuttx/arch.h | 22 -- sched/init/os_smpstart.c | 6 - 9 files changed, 381 insertions(+), 119 deletions(-) rename arch/arm/src/{imx6/imx_cpuinit.c => armv7-a/smp.h} (59%) create mode 100644 arch/arm/src/imx6/imx_cpuboot.c diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index d935ad37a1..e44d380fc0 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -154,9 +154,8 @@ 4.7.1 up_testset()
    4.7.2 up_cpu_index()
    4.7.3 up_cpu_start()
    - 4.7.4 up_cpu_initialize()
    - 4.7.5 up_cpu_pause()
    - 4.7.6 up_cpu_resume() + 4.7.4 up_cpu_pause()
    + 4.7.5 up_cpu_resume() 4.8 APIs Exported by NuttX to Architecture-Specific Logic
      @@ -3722,34 +3721,7 @@ int up_cpu_start(int cpu);

    -

    4.7.4 up_cpu_initialize()

    -

    Function Prototype:

    -

      -#include <nuttx/arch.h>
      -#ifdef CONFIG_SMP
      -int up_cpu_initialize(void);
      -#endif
      -
    - -

    Description:

    -
      -

      - After the CPU has been started (via up_cpu_start()) the system will call back into the architecture-specific code with this function on the thread of execution of the newly started CPU. - This gives the architecture-specific a chance to perform ny initial, CPU-specific initialize on that thread. -

      -
    -

    Input Parameters:

    -
      - None -
    -

    Returned Value:

    -
      -

      - Zero (OK) is returned on success; a negated errno value on failure. -

      -
    - -

    4.7.5 up_cpu_pause()

    +

    4.7.4 up_cpu_pause()

    Function Prototype:

       #include <nuttx/arch.h>
      @@ -3781,7 +3753,7 @@ int up_cpu_pause(int cpu);
         

    -

    4.7.6 up_cpu_resume()

    +

    4.7.5 up_cpu_resume()

    Function Prototype:

       #include <nuttx/arch.h>
      diff --git a/arch/arm/src/imx6/imx_cpuinit.c b/arch/arm/src/armv7-a/smp.h
      similarity index 59%
      rename from arch/arm/src/imx6/imx_cpuinit.c
      rename to arch/arm/src/armv7-a/smp.h
      index d928781408..42b3eda0ed 100644
      --- a/arch/arm/src/imx6/imx_cpuinit.c
      +++ b/arch/arm/src/armv7-a/smp.h
      @@ -1,5 +1,6 @@
       /****************************************************************************
      - * arch/arm/src/imx6/imx_clockconfig.c
      + * arch/arm/src/armv7-a/smp.h
      + * Common ARM support for SMP on multi-core CPUs.
        *
        *   Copyright (C) 2016 Gregory Nutt. All rights reserved.
        *   Author: Gregory Nutt 
      @@ -33,46 +34,77 @@
        *
        ****************************************************************************/
       
      +#ifndef __ARCH_ARM_SRC_ARMV7_A_SMP_H
      +#define __ARCH_ARM_SRC_ARMV7_A_SMP_H
      +
       /****************************************************************************
        * Included Files
        ****************************************************************************/
       
       #include 
       
      -#include 
      -
      -#include "gic.h"
      -
       #ifdef CONFIG_SMP
       
       /****************************************************************************
      - * Public Functions
      + * Public Function Prototypes
        ****************************************************************************/
       
       /****************************************************************************
      - * Name: up_cpu_initialize
      + * Name: __cpu[n]_start
        *
        * Description:
      - *   After the CPU has been started (via up_cpu_start()) the system will
      - *   call back into the architecture-specific code with this function on the
      - *   thread of execution of the newly started CPU.  This gives the
      - *   architecture-specific a chance to perform ny initial, CPU-specific
      - *   initialize on that thread.
      + *   Boot functions for each CPU (other than CPU0).  These functions set up
      + *   the ARM operating mode, the initial stack, and configure co-processor
      + *   registers.  At the end of the boot, arm_cpu_boot() is called.
        *
      - * Input Parameters:
      + *   These functions are provided by the common ARMv7-A logic.
      + *
      + * Input parameters:
        *   None
        *
        * Returned Value:
      - *   Zero on success; a negated errno value on failure.
      + *   Do not return.
        *
        ****************************************************************************/
       
      -int up_cpu_initialize(void)
      -{
      -  /* Initialize the Generic Interrupt Controller (GIC) for CPUn (n != 0) */
      +#if CONFIG_SMP_NCPUS > 1
      +void __cpu1_start(void);
      +#endif
      +
      +#if CONFIG_SMP_NCPUS > 2
      +void __cpu2_start(void);
      +#endif
      +
      +#if CONFIG_SMP_NCPUS > 3
      +void __cpu3_start(void);
      +#endif
      +
      +#if CONFIG_SMP_NCPUS > 4
      +#  error This logic needs to extended for CONFIG_SMP_NCPUS > 4
      +#endif
      +
      +/****************************************************************************
      + * Name: arm_cpu_boot
      + *
      + * Description:
      + *   Continues the C-level initialization started by the assembly language
      + *   __cpu[n]_start function.  At a minimum, this function needs to initialize
      + *   interrupt handling and, perhaps, wait on WFI for arm_cpu_start() to
      + *   issue an SGI.
      + *
      + *   This function must be provided by the each ARMv7-A MCU and implement
      + *   MCU-specific initialization logic.
      + *
      + * Input parameters:
      + *   cpu - The CPU index.  This is the same value that would be obtained by
      + *      calling up_cpu_index();
      + *
      + * Returned Value:
      + *   Does not return.
      + *
      + ****************************************************************************/
       
      -  arm_gic_initialize();
      -  return OK;
      -}
      +void arm_cpu_boot(int cpu);
       
      -#endif /* CONFIG_SMP */
      +#endif  /* CONFIG_SMP */
      +#endif  /* __ARCH_ARM_SRC_ARMV7_A_SMP_H */
      diff --git a/arch/arm/src/imx6/Make.defs b/arch/arm/src/imx6/Make.defs
      index 8ddf77b5e8..c33085a1bc 100644
      --- a/arch/arm/src/imx6/Make.defs
      +++ b/arch/arm/src/imx6/Make.defs
      @@ -145,5 +145,5 @@ CHIP_CSRCS += imx_timerisr.c imx_gpio.c imx_iomuxc.c
       CHIP_CSRCS += imx_serial.c imx_lowputc.c
       
       ifeq ($(CONFIG_SMP),y)
      -CHIP_CSRCS += imx_cpuinit.c
      +CHIP_CSRCS += imx_cpuboot.c
       endif
      diff --git a/arch/arm/src/imx6/imx_boot.c b/arch/arm/src/imx6/imx_boot.c
      index 89fe54cac9..8e5c56232f 100644
      --- a/arch/arm/src/imx6/imx_boot.c
      +++ b/arch/arm/src/imx6/imx_boot.c
      @@ -400,6 +400,13 @@ void arm_boot(void)
         imx_setupmappings();
         imx_lowputc('A');
       
      +  /* Make sure that all other CPUs are in the disabled state.  This is a
      +   * formality because the other CPUs are actually running then we have
      +   * probably already crashed.
      +   */
      +
      +  imx_cpu_disable();
      +
         /* Provide a special mapping for the OCRAM interrupt vector positioned in
          * high memory.
          */
      @@ -498,5 +505,13 @@ void arm_boot(void)
         imx_earlyserialinit();
         imx_lowputc('M');
       #endif
      +
      +  /* Now we can enable all other CPUs.  The enabled CPUs will start execution
      +   * at __cpuN_start and, after very low-level CPU initialzation has been
      +   * performed, will branch to arm_cpu_boot() (see arch/arm/src/armv7-a/smp.h)
      +   */
      +
      +  imx_cpu_enable();
      +  imx_lowputc('N');
         imx_lowputc('\n');
       }
      diff --git a/arch/arm/src/imx6/imx_boot.h b/arch/arm/src/imx6/imx_boot.h
      index 8e63cc9e9d..11c1ef56fe 100644
      --- a/arch/arm/src/imx6/imx_boot.h
      +++ b/arch/arm/src/imx6/imx_boot.h
      @@ -51,23 +51,11 @@
       #include "chip.h"
       
       /****************************************************************************
      - * Pre-processor Definitions
      - ****************************************************************************/
      -
      -/****************************************************************************
      - * Public Types
      - ****************************************************************************/
      -
      -/****************************************************************************
      - * Inline Functions
      + * Public Function Prototypes
        ****************************************************************************/
       
       #ifndef __ASSEMBLY__
       
      -/****************************************************************************
      - * Public Data
      - ****************************************************************************/
      -
       #undef EXTERN
       #if defined(__cplusplus)
       #define EXTERN extern "C"
      @@ -78,9 +66,50 @@ extern "C"
       #endif
       
       /****************************************************************************
      - * Public Function Prototypes
      + * Name: imx_cpu_disable
      + *
      + * Description:
      + *   Called from CPU0 to make sure that all other CPUs are in the disabled
      + *   state.  This is a formality because the other CPUs are actually running
      + *   then we have probably already crashed.
      + *
      + * Input Parameters:
      + *   None
      + *
      + * Returned Value:
      + *   None
      + *
        ****************************************************************************/
       
      +#ifdef CONFIG_SMP
      +void imx_cpu_disable(void);
      +#else
      +#  define imx_cpu_disable()
      +#endif
      +
      +/****************************************************************************
      + * Name: imx_cpu_enable
      + *
      + * Description:
      + *   Called from CPU0 to enable all other CPUs.  The enabled CPUs will start
      + *   execution at __cpuN_start and, after very low-level CPU initialzation
      + *   has been performed, will branch to arm_cpu_boot()
      + *   (see arch/arm/src/armv7-a/smp.h)
      + *
      + * Input Parameters:
      + *   None
      + *
      + * Returned Value:
      + *   None
      + *
      + ****************************************************************************/
      +
      +#ifdef CONFIG_SMP
      +void imx_cpu_enable(void);
      +#else
      +#  define imx_cpu_enable()
      +#endif
      +
       /****************************************************************************
        * Name: imx_board_initialize
        *
      diff --git a/arch/arm/src/imx6/imx_cpuboot.c b/arch/arm/src/imx6/imx_cpuboot.c
      new file mode 100644
      index 0000000000..650b9ddf5e
      --- /dev/null
      +++ b/arch/arm/src/imx6/imx_cpuboot.c
      @@ -0,0 +1,265 @@
      +/****************************************************************************
      + * arch/arm/src/imx6/imx_cpuboot.c
      + *
      + *   Copyright (C) 2016 Gregory Nutt. All rights reserved.
      + *   Author: Gregory Nutt 
      + *
      + * Redistribution and use in source and binary forms, with or without
      + * modification, are permitted provided that the following conditions
      + * are met:
      + *
      + * 1. Redistributions of source code must retain the above copyright
      + *    notice, this list of conditions and the following disclaimer.
      + * 2. Redistributions in binary form must reproduce the above copyright
      + *    notice, this list of conditions and the following disclaimer in
      + *    the documentation and/or other materials provided with the
      + *    distribution.
      + * 3. Neither the name NuttX nor the names of its contributors may be
      + *    used to endorse or promote products derived from this software
      + *    without specific prior written permission.
      + *
      + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
      + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
      + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
      + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
      + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
      + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
      + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
      + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
      + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
      + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
      + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
      + * POSSIBILITY OF SUCH DAMAGE.
      + *
      + ****************************************************************************/
      +
      +/****************************************************************************
      + * Included Files
      + ****************************************************************************/
      +
      +#include 
      +
      +#include 
      +#include 
      +
      +#include 
      +
      +#include "up_arch.h"
      +
      +#include "chip/imx_src.h"
      +#include "smp.h"
      +#include "gic.h"
      +
      +#ifdef CONFIG_SMP
      +
      +/****************************************************************************
      + * Private Types
      + ****************************************************************************/
      +
      +typedef CODE void (*cpu_start_t)(void);
      +
      +/****************************************************************************
      + * Private Data
      + ****************************************************************************/
      +
      +#if 0 /* Not used */
      +static const uint32_t g_cpu_reset[CONFIG_SMP_NCPUS] =
      +{
      +  0,
      +#if CONFIG_SMP_NCPUS > 1
      +  SRC_SCR_CORE1_RST,
      +#endif
      +#if CONFIG_SMP_NCPUS > 2
      +  SRC_SCR_CORE2_RST,
      +#endif
      +#if CONFIG_SMP_NCPUS > 3
      +  SRC_SCR_CORE3_RST
      +#endif
      +};
      +#endif
      +
      +static const uint32_t g_cpu_ctrl[CONFIG_SMP_NCPUS] =
      +{
      +  0,
      +#if CONFIG_SMP_NCPUS > 1
      +  SRC_SCR_CORE1_ENABLE,
      +#endif
      +#if CONFIG_SMP_NCPUS > 2
      +  SRC_SCR_CORE2_ENABLE,
      +#endif
      +#if CONFIG_SMP_NCPUS > 3
      +  SRC_SCR_CORE3_ENABLE
      +#endif
      +};
      +
      +static const uintptr_t g_cpu_gpr[CONFIG_SMP_NCPUS] =
      +{
      +  0,
      +#if CONFIG_SMP_NCPUS > 1
      +  IMX_SRC_GPR3,
      +#endif
      +#if CONFIG_SMP_NCPUS > 2
      +  IMX_SRC_GPR5,
      +#endif
      +#if CONFIG_SMP_NCPUS > 3
      +  IMX_SRC_GPR7
      +#endif
      +};
      +
      +static const cpu_start_t g_cpu_boot[CONFIG_SMP_NCPUS] =
      +{
      +  0,
      +#if CONFIG_SMP_NCPUS > 1
      +  __cpu1_start,
      +#endif
      +#if CONFIG_SMP_NCPUS > 2
      +  __cpu2_start,
      +#endif
      +#if CONFIG_SMP_NCPUS > 3
      +  __cpu3_start
      +#endif
      +};
      +
      +/****************************************************************************
      + * Public Functions
      + ****************************************************************************/
      +
      +/****************************************************************************
      + * Name: imx_cpu_reset
      + *
      + * Description:
      + *   CPUn software reset
      + *
      + ****************************************************************************/
      +
      +#if 0 /* Not used */
      +static void imx_cpu_reset(int cpu)
      +{
      +  uint32_t regval;
      +
      +  regval  = getreg32(IMX_SRC_SCR);
      +  regval |= g_cpu_reset[cpu];
      +  putreg32(regval, IMX_SRC_SCR);
      +}
      +#endif
      +
      +/****************************************************************************
      + * Public Functions
      + ****************************************************************************/
      +
      +/****************************************************************************
      + * Name: imx_cpu_disable
      + *
      + * Description:
      + *   Called from CPU0 to make sure that all other CPUs are in the disabled
      + *   state.  This is a formality because the other CPUs are actually running
      + *   then we have probably already crashed.
      + *
      + * Input Parameters:
      + *   None
      + *
      + * Returned Value:
      + *   None
      + *
      + ****************************************************************************/
      +
      +void imx_cpu_disable(void)
      +{
      +  uint32_t regval;
      +  uint32_t cpumask;
      +
      +  cpumask  = 0;
      +#if CONFIG_SMP_NCPUS > 1
      +  cpumask |= SRC_SCR_CORE1_ENABLE;
      +#endif
      +#if CONFIG_SMP_NCPUS > 2
      +  cpumask |= SRC_SCR_CORE2_ENABLE;
      +#endif
      +#if CONFIG_SMP_NCPUS > 3
      +  cpumask |= SRC_SCR_CORE3_ENABLE;
      +#endif
      +
      +  regval  = getreg32(IMX_SRC_SCR);
      +  regval &= ~cpumask;
      +  putreg32(regval, IMX_SRC_SCR);
      +}
      +
      +/****************************************************************************
      + * Name: imx_cpu_enable
      + *
      + * Description:
      + *   Called from CPU0 to enable all other CPUs.  The enabled CPUs will start
      + *   execution at __cpuN_start and, after very low-level CPU initialzation
      + *   has been performed, will branch to arm_cpu_boot()
      + *   (see arch/arm/src/armv7-a/smp.h)
      + *
      + * Input Parameters:
      + *   None
      + *
      + * Returned Value:
      + *   None
      + *
      + ****************************************************************************/
      +
      +void imx_cpu_enable(void)
      +{
      +  cpu_start_t bootaddr;
      +  uintptr_t regaddr;
      +  uint32_t regval;
      +  int cpu;
      +
      +  for (cpu = 1; cpu < CONFIG_SMP_NCPUS; cpu++)
      +    {
      +      /* Set the start up address */
      +
      +      regaddr  = g_cpu_gpr[cpu];
      +      bootaddr = g_cpu_boot[cpu];
      +      putreg32((uint32_t)bootaddr, regaddr);
      +
      +      /* Then enable the CPU */
      +
      +      regval   = getreg32(IMX_SRC_SCR);
      +      regval  |= g_cpu_ctrl[cpu];
      +      putreg32(regval, IMX_SRC_SCR);
      +    }
      +}
      +
      +/****************************************************************************
      + * Name: arm_cpu_boot
      + *
      + * Description:
      + *   Continues the C-level initialization started by the assembly language
      + *   __cpu[n]_start function.  At a minimum, this function needs to initialize
      + *   interrupt handling and, perhaps, wait on WFI for arm_cpu_start() to
      + *   issue an SGI.
      + *
      + *   This function must be provided by the each ARMv7-A MCU and implement
      + *   MCU-specific initialization logic.
      + *
      + * Input parameters:
      + *   cpu - The CPU index.  This is the same value that would be obtained by
      + *      calling up_cpu_index();
      + *
      + * Returned Value:
      + *   Does not return.
      + *
      + ****************************************************************************/
      +
      +void arm_cpu_boot(int cpu)
      +{
      +  /* Initialize the Generic Interrupt Controller (GIC) for CPUn (n != 0) */
      +
      +  arm_gic_initialize();
      +
      +  /* The next thing that we expect to happen is for logic running on CPU0
      +   * to call up_cpu_start() which generate an SGI and a context switch to
      +   * the configured NuttX IDLE task.
      +   */
      +
      +  for (; ; )
      +    {
      +      asm("WFI");
      +    }
      +}
      +
      +#endif /* CONFIG_SMP */
      diff --git a/arch/sim/src/up_smphook.c b/arch/sim/src/up_smphook.c
      index 7c008a7d3d..e871c42f0f 100644
      --- a/arch/sim/src/up_smphook.c
      +++ b/arch/sim/src/up_smphook.c
      @@ -51,29 +51,6 @@
        * Public Functions
        ****************************************************************************/
       
      -/****************************************************************************
      - * Name: up_cpu_initialize
      - *
      - * Description:
      - *   After the CPU has been started (via up_cpu_start()) the system will
      - *   call back into the architecture-specific code with this function on the
      - *   thread of execution of the newly started CPU.  This gives the
      - *   architecture-specific a chance to perform ny initial, CPU-specific
      - *   initialize on that thread.
      - *
      - * Input Parameters:
      - *   None
      - *
      - * Returned Value:
      - *   Zero on success; a negated errno value on failure.
      - *
      - ****************************************************************************/
      -
      -int up_cpu_initialize(void)
      -{
      -  return OK;
      -}
      -
       /****************************************************************************
        * Name: sim_smp_hook
        *
      diff --git a/include/nuttx/arch.h b/include/nuttx/arch.h
      index da9296af2d..02fb699744 100644
      --- a/include/nuttx/arch.h
      +++ b/include/nuttx/arch.h
      @@ -1753,28 +1753,6 @@ int up_cpu_index(void);
       int up_cpu_start(int cpu);
       #endif
       
      -/****************************************************************************
      - * Name: up_cpu_initialize
      - *
      - * Description:
      - *   After the CPU has been started (via up_cpu_start()) the system will
      - *   call back into the architecture-specific code with this function on the
      - *   thread of execution of the newly started CPU.  This gives the
      - *   architecture-specific a chance to perform ny initial, CPU-specific
      - *   initialize on that thread.
      - *
      - * Input Parameters:
      - *   None
      - *
      - * Returned Value:
      - *   Zero on success; a negated errno value on failure.
      - *
      - ****************************************************************************/
      -
      -#ifdef CONFIG_SMP
      -int up_cpu_initialize(void);
      -#endif
      -
       /****************************************************************************
        * Name: up_cpu_pause
        *
      diff --git a/sched/init/os_smpstart.c b/sched/init/os_smpstart.c
      index f613344b5f..baf91a2e37 100644
      --- a/sched/init/os_smpstart.c
      +++ b/sched/init/os_smpstart.c
      @@ -98,13 +98,7 @@ void os_idle_trampoline(void)
       {
       #ifdef CONFIG_SCHED_INSTRUMENTATION
         FAR struct tcb_s *tcb = this_task();
      -#endif
      -
      -  /* Perform architecture-specific initialization for this CPU */
       
      -  up_cpu_initialize();
      -
      -#ifdef CONFIG_SCHED_INSTRUMENTATION
         /* Announce that the IDLE task has started */
       
         sched_note_start(tcb);
      -- 
      GitLab
      
      
      From e5388ad12713ba1804bece7834062ba686659365 Mon Sep 17 00:00:00 2001
      From: Gregory Nutt 
      Date: Thu, 12 May 2016 15:32:53 -0600
      Subject: [PATCH 156/307] i.MX6:  Need to set VBAR register for each CPU
      
      ---
       arch/arm/src/imx6/imx_cpuboot.c | 39 ++++++++++++++++++++++++++++++++-
       1 file changed, 38 insertions(+), 1 deletion(-)
      
      diff --git a/arch/arm/src/imx6/imx_cpuboot.c b/arch/arm/src/imx6/imx_cpuboot.c
      index 650b9ddf5e..cc8494782e 100644
      --- a/arch/arm/src/imx6/imx_cpuboot.c
      +++ b/arch/arm/src/imx6/imx_cpuboot.c
      @@ -43,10 +43,13 @@
       #include 
       
       #include 
      +#include 
       
       #include "up_arch.h"
      +#include "up_internal.h"
       
       #include "chip/imx_src.h"
      +#include "sctlr.h"
       #include "smp.h"
       #include "gic.h"
       
      @@ -120,6 +123,14 @@ static const cpu_start_t g_cpu_boot[CONFIG_SMP_NCPUS] =
       #endif
       };
       
      +/****************************************************************************
      + * Public Data
      + ****************************************************************************/
      +
      +/* Symbols defined via the linker script */
      +
      +extern uint32_t _vector_start; /* Beginning of vector block */
      +
       /****************************************************************************
        * Public Functions
        ****************************************************************************/
      @@ -251,6 +262,33 @@ void arm_cpu_boot(int cpu)
       
         arm_gic_initialize();
       
      +#ifdef CONFIG_ARCH_LOWVECTORS
      +  /* If CONFIG_ARCH_LOWVECTORS is defined, then the vectors located at the
      +   * beginning of the .text region must appear at address at the address
      +   * specified in the VBAR.  There are two ways to accomplish this:
      +   *
      +   *   1. By explicitly mapping the beginning of .text region with a page
      +   *      table entry so that the virtual address zero maps to the beginning
      +   *      of the .text region.  VBAR == 0x0000:0000.
      +   *
      +   *   2. Set the Cortex-A5 VBAR register so that the vector table address
      +   *      is moved to a location other than 0x0000:0000.
      +   *
      +   *  The second method is used by this logic.
      +   */
      +
      +  /* Set the VBAR register to the address of the vector table */
      +
      +  DEBUGASSERT((((uintptr_t)&_vector_start) & ~VBAR_MASK) == 0);
      +  cp15_wrvbar((uint32_t)&_vector_start);
      +#endif /* CONFIG_ARCH_LOWVECTORS */
      +
      +#ifndef CONFIG_SUPPRESS_INTERRUPTS
      +  /* And finally, enable interrupts */
      +
      +  (void)up_irq_enable();
      +#endif
      +
         /* The next thing that we expect to happen is for logic running on CPU0
          * to call up_cpu_start() which generate an SGI and a context switch to
          * the configured NuttX IDLE task.
      @@ -261,5 +299,4 @@ void arm_cpu_boot(int cpu)
             asm("WFI");
           }
       }
      -
       #endif /* CONFIG_SMP */
      -- 
      GitLab
      
      
      From 7c52b8ddaeaf6f30b3c5c4b371602c6b12ea8a81 Mon Sep 17 00:00:00 2001
      From: Gregory Nutt 
      Date: Fri, 13 May 2016 08:05:21 -0600
      Subject: [PATCH 157/307] Add a .noinit section to all ARMv7-A linker scripts
      
      ---
       Documentation/NuttxPortingGuide.html        |  2 +-
       configs/pcduino-a10/scripts/sdram.ld        | 27 ++++++++++++++-----
       configs/sabre-6quad/scripts/dramboot.ld     | 24 +++++++++++++----
       configs/sama5d2-xult/scripts/dramboot.ld    | 27 ++++++++++++++-----
       configs/sama5d2-xult/scripts/gnu-elf.ld     | 11 +++++++-
       configs/sama5d2-xult/scripts/isram.ld       | 24 +++++++++++++----
       configs/sama5d2-xult/scripts/uboot.ld       | 27 ++++++++++++++-----
       configs/sama5d3-xplained/scripts/ddram.ld   | 27 ++++++++++++++-----
       configs/sama5d3-xplained/scripts/gnu-elf.ld | 11 +++++++-
       configs/sama5d3-xplained/scripts/isram.ld   | 27 ++++++++++++++-----
       configs/sama5d3x-ek/scripts/ddram.ld        | 27 ++++++++++++++-----
       configs/sama5d3x-ek/scripts/gnu-elf.ld      | 11 +++++++-
       configs/sama5d3x-ek/scripts/isram.ld        | 27 ++++++++++++++-----
       configs/sama5d3x-ek/scripts/nor-ddram.ld    | 27 ++++++++++++++-----
       configs/sama5d3x-ek/scripts/nor-isram.ld    | 30 ++++++++++++++++-----
       configs/sama5d3x-ek/scripts/pg-sram.ld      | 30 ++++++++++++++++-----
       configs/sama5d4-ek/scripts/dramboot.ld      | 27 ++++++++++++++-----
       configs/sama5d4-ek/scripts/gnu-elf.ld       | 11 +++++++-
       configs/sama5d4-ek/scripts/isram.ld         | 27 ++++++++++++++-----
       configs/sama5d4-ek/scripts/uboot.ld         | 27 ++++++++++++++-----
       20 files changed, 356 insertions(+), 95 deletions(-)
      
      diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html
      index e44d380fc0..ff3990c9d9 100644
      --- a/Documentation/NuttxPortingGuide.html
      +++ b/Documentation/NuttxPortingGuide.html
      @@ -12,7 +12,7 @@
             

      NuttX RTOS Porting Guide

      -

      Last Updated: March 28, 2016

      +

      Last Updated: May 12, 2016

      diff --git a/configs/pcduino-a10/scripts/sdram.ld b/configs/pcduino-a10/scripts/sdram.ld index 414c408a4a..b4eaeef8d7 100644 --- a/configs/pcduino-a10/scripts/sdram.ld +++ b/configs/pcduino-a10/scripts/sdram.ld @@ -1,7 +1,7 @@ /**************************************************************************** * configs/pcduino-a10/scripts/sdram.ld * - * Copyright (C) 2013 Gregory Nutt. All rights reserved. + * Copyright (C) 2013, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -49,7 +49,8 @@ ENTRY(_stext) SECTIONS { - .text : { + .text : + { _stext = ABSOLUTE(.); *(.vectors) *(.text .text.*) @@ -67,13 +68,15 @@ SECTIONS _etext = ABSOLUTE(.); } > sdram - .init_section : { + .init_section : + { _sinit = ABSOLUTE(.); *(.init_array .init_array.*) _einit = ABSOLUTE(.); } > sdram - .ARM.extab : { + .ARM.extab : + { *(.ARM.extab*) } > sdram @@ -86,7 +89,8 @@ SECTIONS } > sdram PROVIDE_HIDDEN (__exidx_end = .); - .data : { + .data : + { _sdata = ABSOLUTE(.); *(.data .data.*) *(.gnu.linkonce.d.*) @@ -94,7 +98,8 @@ SECTIONS _edata = ABSOLUTE(.); } > sdram - .bss : { + .bss : + { _sbss = ABSOLUTE(.); *(.bss .bss.*) *(.gnu.linkonce.b.*) @@ -102,7 +107,17 @@ SECTIONS _ebss = ABSOLUTE(.); } > sdram + /* Uninitialized data */ + + .noinit : + { + _snoinit = ABSOLUTE(.); + *(.noinit*) + _enoinit = ABSOLUTE(.); + } > sdram + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } diff --git a/configs/sabre-6quad/scripts/dramboot.ld b/configs/sabre-6quad/scripts/dramboot.ld index ef87268ff6..f1134bcc92 100644 --- a/configs/sabre-6quad/scripts/dramboot.ld +++ b/configs/sabre-6quad/scripts/dramboot.ld @@ -55,7 +55,8 @@ ENTRY(_stext) SECTIONS { - .text : { + .text : + { _stext = ABSOLUTE(.); *(.vectors) *(.text .text.*) @@ -73,13 +74,15 @@ SECTIONS _etext = ABSOLUTE(.); } > ddr3 - .init_section : { + .init_section : + { _sinit = ABSOLUTE(.); *(.init_array .init_array.*) _einit = ABSOLUTE(.); } > ddr3 - .ARM.extab : { + .ARM.extab : + { *(.ARM.extab*) } > ddr3 @@ -92,7 +95,10 @@ SECTIONS } > ddr3 PROVIDE_HIDDEN (__exidx_end = .); - .data : { + /* Uninitialized data */ + + .data : + { _sdata = ABSOLUTE(.); *(.data .data.*) *(.gnu.linkonce.d.*) @@ -100,7 +106,8 @@ SECTIONS _edata = ABSOLUTE(.); } > ddr3 - .bss : { + .bss : + { _sbss = ABSOLUTE(.); *(.bss .bss.*) *(.gnu.linkonce.b.*) @@ -108,6 +115,13 @@ SECTIONS _ebss = ABSOLUTE(.); } > ddr3 + .noinit : + { + _snoinit = ABSOLUTE(.); + *(.noinit*) + _enoinit = ABSOLUTE(.); + } > ddr3 + /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } diff --git a/configs/sama5d2-xult/scripts/dramboot.ld b/configs/sama5d2-xult/scripts/dramboot.ld index 0494ff0a91..e921c5e8aa 100644 --- a/configs/sama5d2-xult/scripts/dramboot.ld +++ b/configs/sama5d2-xult/scripts/dramboot.ld @@ -1,7 +1,7 @@ /**************************************************************************** * configs/sama5d2-xult/scripts/dramboot.ld * - * Copyright (C) 2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2015-2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -54,7 +54,8 @@ ENTRY(_stext) SECTIONS { - .text : { + .text : + { _stext = ABSOLUTE(.); *(.vectors) *(.text .text.*) @@ -72,13 +73,15 @@ SECTIONS _etext = ABSOLUTE(.); } > sdram - .init_section : { + .init_section : + { _sinit = ABSOLUTE(.); *(.init_array .init_array.*) _einit = ABSOLUTE(.); } > sdram - .ARM.extab : { + .ARM.extab : + { *(.ARM.extab*) } > sdram @@ -91,7 +94,8 @@ SECTIONS } > sdram PROVIDE_HIDDEN (__exidx_end = .); - .data : { + .data : + { _sdata = ABSOLUTE(.); *(.data .data.*) *(.gnu.linkonce.d.*) @@ -99,7 +103,8 @@ SECTIONS _edata = ABSOLUTE(.); } > sdram - .bss : { + .bss : + { _sbss = ABSOLUTE(.); *(.bss .bss.*) *(.gnu.linkonce.b.*) @@ -107,7 +112,17 @@ SECTIONS _ebss = ABSOLUTE(.); } > sdram + /* Uninitialized data */ + + .noinit : + { + _snoinit = ABSOLUTE(.); + *(.noinit*) + _enoinit = ABSOLUTE(.); + } > sdram + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } diff --git a/configs/sama5d2-xult/scripts/gnu-elf.ld b/configs/sama5d2-xult/scripts/gnu-elf.ld index d84460b4c0..7f35d218bc 100644 --- a/configs/sama5d2-xult/scripts/gnu-elf.ld +++ b/configs/sama5d2-xult/scripts/gnu-elf.ld @@ -1,7 +1,7 @@ /**************************************************************************** * configs/sama5d2-xult/scripts/gnu-elf.ld * - * Copyright (C) 2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2015-2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -76,6 +76,15 @@ SECTIONS _edata = . ; } + /* Uninitialized data */ + + .noinit : + { + _snoinit = . ; + *(.noinit*) + _enoinit = . ; + } + /* C++ support. For each global and static local C++ object, * GCC creates a small subroutine to construct the object. Pointers * to these routines (not the routines themselves) are stored as diff --git a/configs/sama5d2-xult/scripts/isram.ld b/configs/sama5d2-xult/scripts/isram.ld index a170e02260..a5b1afe9a0 100644 --- a/configs/sama5d2-xult/scripts/isram.ld +++ b/configs/sama5d2-xult/scripts/isram.ld @@ -1,7 +1,7 @@ /**************************************************************************** * configs/sama5d2-xult/scripts/isram.ld * - * Copyright (C) 2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2015-2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -51,7 +51,8 @@ ENTRY(_stext) SECTIONS { - .text : { + .text : + { _stext = ABSOLUTE(.); *(.vectors) *(.text .text.*) @@ -69,7 +70,8 @@ SECTIONS _etext = ABSOLUTE(.); } > isram - .init_section : { + .init_section : + { _sinit = ABSOLUTE(.); *(.init_array .init_array.*) _einit = ABSOLUTE(.); @@ -88,7 +90,8 @@ SECTIONS } > isram PROVIDE_HIDDEN (__exidx_end = .); - .data : { + .data : + { _sdata = ABSOLUTE(.); *(.data .data.*) *(.gnu.linkonce.d.*) @@ -96,7 +99,8 @@ SECTIONS _edata = ABSOLUTE(.); } > isram - .bss : { + .bss : + { _sbss = ABSOLUTE(.); *(.bss .bss.*) *(.gnu.linkonce.b.*) @@ -104,7 +108,17 @@ SECTIONS _ebss = ABSOLUTE(.); } > isram + /* Uninitialized data */ + + .noinit : + { + _snoinit = ABSOLUTE(.); + *(.noinit*) + _enoinit = ABSOLUTE(.); + } > isram + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } diff --git a/configs/sama5d2-xult/scripts/uboot.ld b/configs/sama5d2-xult/scripts/uboot.ld index 66e524d922..3ad820747d 100644 --- a/configs/sama5d2-xult/scripts/uboot.ld +++ b/configs/sama5d2-xult/scripts/uboot.ld @@ -1,7 +1,7 @@ /**************************************************************************** * configs/sama5d2-xult/scripts/uboot.ld * - * Copyright (C) 2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2015-2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -55,7 +55,8 @@ ENTRY(_stext) SECTIONS { - .text : { + .text : + { _stext = ABSOLUTE(.); *(.vectors) *(.text .text.*) @@ -73,13 +74,15 @@ SECTIONS _etext = ABSOLUTE(.); } > sdram - .init_section : { + .init_section : + { _sinit = ABSOLUTE(.); *(.init_array .init_array.*) _einit = ABSOLUTE(.); } > sdram - .ARM.extab : { + .ARM.extab : + { *(.ARM.extab*) } > sdram @@ -92,7 +95,8 @@ SECTIONS } > sdram PROVIDE_HIDDEN (__exidx_end = .); - .data : { + .data : + { _sdata = ABSOLUTE(.); *(.data .data.*) *(.gnu.linkonce.d.*) @@ -100,7 +104,8 @@ SECTIONS _edata = ABSOLUTE(.); } > sdram - .bss : { + .bss : + { _sbss = ABSOLUTE(.); *(.bss .bss.*) *(.gnu.linkonce.b.*) @@ -108,7 +113,17 @@ SECTIONS _ebss = ABSOLUTE(.); } > sdram + /* Uninitialized data */ + + .noinit : + { + _snoinit = ABSOLUTE(.); + *(.noinit*) + _enoinit = ABSOLUTE(.); + } > sdram + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } diff --git a/configs/sama5d3-xplained/scripts/ddram.ld b/configs/sama5d3-xplained/scripts/ddram.ld index edb3f63a49..9c3243d04e 100644 --- a/configs/sama5d3-xplained/scripts/ddram.ld +++ b/configs/sama5d3-xplained/scripts/ddram.ld @@ -1,7 +1,7 @@ /**************************************************************************** * configs/sama5d3-xplained/scripts/ddram.ld * - * Copyright (C) 2014 Gregory Nutt. All rights reserved. + * Copyright (C) 2014, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -55,7 +55,8 @@ ENTRY(_stext) SECTIONS { - .text : { + .text : + { _stext = ABSOLUTE(.); *(.vectors) *(.text .text.*) @@ -73,13 +74,15 @@ SECTIONS _etext = ABSOLUTE(.); } > sdram - .init_section : { + .init_section : + { _sinit = ABSOLUTE(.); *(.init_array .init_array.*) _einit = ABSOLUTE(.); } > sdram - .ARM.extab : { + .ARM.extab : + { *(.ARM.extab*) } > sdram @@ -92,7 +95,8 @@ SECTIONS } > sdram PROVIDE_HIDDEN (__exidx_end = .); - .data : { + .data : + { _sdata = ABSOLUTE(.); *(.data .data.*) *(.gnu.linkonce.d.*) @@ -100,7 +104,8 @@ SECTIONS _edata = ABSOLUTE(.); } > sdram - .bss : { + .bss : + { _sbss = ABSOLUTE(.); *(.bss .bss.*) *(.gnu.linkonce.b.*) @@ -108,7 +113,17 @@ SECTIONS _ebss = ABSOLUTE(.); } > sdram + /* Uninitialized data */ + + .noinit : + { + _snoinit = ABSOLUTE(.); + *(.noinit*) + _enoinit = ABSOLUTE(.); + } > sdram + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } diff --git a/configs/sama5d3-xplained/scripts/gnu-elf.ld b/configs/sama5d3-xplained/scripts/gnu-elf.ld index 88c53fe05f..ffd6dc04b3 100644 --- a/configs/sama5d3-xplained/scripts/gnu-elf.ld +++ b/configs/sama5d3-xplained/scripts/gnu-elf.ld @@ -1,7 +1,7 @@ /**************************************************************************** * configs/sama5d3-xplained/scripts/gnu-elf.ld * - * Copyright (C) 2014 Gregory Nutt. All rights reserved. + * Copyright (C) 2014, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -76,6 +76,15 @@ SECTIONS _edata = . ; } + /* Uninitialized data */ + + .noinit : + { + _snoinit = . ; + *(.noinit*) + _enoinit = . ; + } + /* C++ support. For each global and static local C++ object, * GCC creates a small subroutine to construct the object. Pointers * to these routines (not the routines themselves) are stored as diff --git a/configs/sama5d3-xplained/scripts/isram.ld b/configs/sama5d3-xplained/scripts/isram.ld index dae430c308..847d3e58b3 100644 --- a/configs/sama5d3-xplained/scripts/isram.ld +++ b/configs/sama5d3-xplained/scripts/isram.ld @@ -1,7 +1,7 @@ /**************************************************************************** * configs/sama5d3-xplained/scripts/isram.ld * - * Copyright (C) 2014 Gregory Nutt. All rights reserved. + * Copyright (C) 2014, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -51,7 +51,8 @@ ENTRY(_stext) SECTIONS { - .text : { + .text : + { _stext = ABSOLUTE(.); *(.vectors) *(.text .text.*) @@ -69,13 +70,15 @@ SECTIONS _etext = ABSOLUTE(.); } > isram - .init_section : { + .init_section : + { _sinit = ABSOLUTE(.); *(.init_array .init_array.*) _einit = ABSOLUTE(.); } > isram - .ARM.extab : { + .ARM.extab : + { *(.ARM.extab*) } > isram @@ -88,7 +91,8 @@ SECTIONS } > isram PROVIDE_HIDDEN (__exidx_end = .); - .data : { + .data : + { _sdata = ABSOLUTE(.); *(.data .data.*) *(.gnu.linkonce.d.*) @@ -96,7 +100,8 @@ SECTIONS _edata = ABSOLUTE(.); } > isram - .bss : { + .bss : + { _sbss = ABSOLUTE(.); *(.bss .bss.*) *(.gnu.linkonce.b.*) @@ -104,7 +109,17 @@ SECTIONS _ebss = ABSOLUTE(.); } > isram + /* Uninitialized data */ + + .noinit : + { + _snoinit = ABSOLUTE(.); + *(.noinit*) + _enoinit = ABSOLUTE(.); + } > isram + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } diff --git a/configs/sama5d3x-ek/scripts/ddram.ld b/configs/sama5d3x-ek/scripts/ddram.ld index 8735df50a6..6376646ba2 100644 --- a/configs/sama5d3x-ek/scripts/ddram.ld +++ b/configs/sama5d3x-ek/scripts/ddram.ld @@ -1,7 +1,7 @@ /**************************************************************************** * configs/sama5d3x-ek/scripts/ddram.ld * - * Copyright (C) 2013-2014 Gregory Nutt. All rights reserved. + * Copyright (C) 2013-2014, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -55,7 +55,8 @@ ENTRY(_stext) SECTIONS { - .text : { + .text : + { _stext = ABSOLUTE(.); *(.vectors) *(.text .text.*) @@ -73,13 +74,15 @@ SECTIONS _etext = ABSOLUTE(.); } > sdram - .init_section : { + .init_section : + { _sinit = ABSOLUTE(.); *(.init_array .init_array.*) _einit = ABSOLUTE(.); } > sdram - .ARM.extab : { + .ARM.extab : + { *(.ARM.extab*) } > sdram @@ -92,7 +95,8 @@ SECTIONS } > sdram PROVIDE_HIDDEN (__exidx_end = .); - .data : { + .data : + { _sdata = ABSOLUTE(.); *(.data .data.*) *(.gnu.linkonce.d.*) @@ -100,7 +104,8 @@ SECTIONS _edata = ABSOLUTE(.); } > sdram - .bss : { + .bss : + { _sbss = ABSOLUTE(.); *(.bss .bss.*) *(.gnu.linkonce.b.*) @@ -108,7 +113,17 @@ SECTIONS _ebss = ABSOLUTE(.); } > sdram + /* Uninitialized data */ + + .noinit : + { + _snoinit = ABSOLUTE(.); + *(.noinit*) + _enoinit = ABSOLUTE(.); + } > sdram + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } diff --git a/configs/sama5d3x-ek/scripts/gnu-elf.ld b/configs/sama5d3x-ek/scripts/gnu-elf.ld index 82c9b37e2f..6b77f5dffd 100644 --- a/configs/sama5d3x-ek/scripts/gnu-elf.ld +++ b/configs/sama5d3x-ek/scripts/gnu-elf.ld @@ -1,7 +1,7 @@ /**************************************************************************** * configs/sama5d3x-ek/scripts/gnu-elf.ld * - * Copyright (C) 2014 Gregory Nutt. All rights reserved. + * Copyright (C) 2014, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -76,6 +76,15 @@ SECTIONS _edata = . ; } + /* Uninitialized data */ + + .noinit : + { + _snoinit = . ; + *(.noinit*) + _enoinit = . ; + } + /* C++ support. For each global and static local C++ object, * GCC creates a small subroutine to construct the object. Pointers * to these routines (not the routines themselves) are stored as diff --git a/configs/sama5d3x-ek/scripts/isram.ld b/configs/sama5d3x-ek/scripts/isram.ld index 0dde103d99..c7c3ac1799 100644 --- a/configs/sama5d3x-ek/scripts/isram.ld +++ b/configs/sama5d3x-ek/scripts/isram.ld @@ -1,7 +1,7 @@ /**************************************************************************** * configs/sama5d3x-ek/scripts/isram.ld * - * Copyright (C) 2013 Gregory Nutt. All rights reserved. + * Copyright (C) 2013, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -51,7 +51,8 @@ ENTRY(_stext) SECTIONS { - .text : { + .text : + { _stext = ABSOLUTE(.); *(.vectors) *(.text .text.*) @@ -69,13 +70,15 @@ SECTIONS _etext = ABSOLUTE(.); } > isram - .init_section : { + .init_section : + { _sinit = ABSOLUTE(.); *(.init_array .init_array.*) _einit = ABSOLUTE(.); } > isram - .ARM.extab : { + .ARM.extab : + { *(.ARM.extab*) } > isram @@ -88,7 +91,8 @@ SECTIONS } > isram PROVIDE_HIDDEN (__exidx_end = .); - .data : { + .data : + { _sdata = ABSOLUTE(.); *(.data .data.*) *(.gnu.linkonce.d.*) @@ -96,7 +100,8 @@ SECTIONS _edata = ABSOLUTE(.); } > isram - .bss : { + .bss : + { _sbss = ABSOLUTE(.); *(.bss .bss.*) *(.gnu.linkonce.b.*) @@ -104,7 +109,17 @@ SECTIONS _ebss = ABSOLUTE(.); } > isram + /* Uninitialized data */ + + .noinit : + { + _snoinit = ABSOLUTE(.); + *(.noinit*) + _enoinit = ABSOLUTE(.); + } > isram + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } diff --git a/configs/sama5d3x-ek/scripts/nor-ddram.ld b/configs/sama5d3x-ek/scripts/nor-ddram.ld index ecebee5930..1787e05a19 100644 --- a/configs/sama5d3x-ek/scripts/nor-ddram.ld +++ b/configs/sama5d3x-ek/scripts/nor-ddram.ld @@ -1,7 +1,7 @@ /**************************************************************************** * configs/sama5d3x-ek/scripts/nor-ddram.ld * - * Copyright (C) 2014 Gregory Nutt. All rights reserved. + * Copyright (C) 2014, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -60,7 +60,8 @@ ENTRY(_stext) SECTIONS { - .text : { + .text : + { _stext = ABSOLUTE(.); *(.vectors) *(.text .text.*) @@ -78,13 +79,15 @@ SECTIONS _etext = ABSOLUTE(.); } > norflash - .init_section : { + .init_section : + { _sinit = ABSOLUTE(.); *(.init_array .init_array.*) _einit = ABSOLUTE(.); } > norflash - .ARM.extab : { + .ARM.extab : + { *(.ARM.extab*) } > norflash @@ -97,7 +100,8 @@ SECTIONS } > norflash PROVIDE_HIDDEN (__exidx_end = .); - .data : { + .data : + { _sdata = ABSOLUTE(.); *(.data .data.*) *(.gnu.linkonce.d.*) @@ -107,7 +111,8 @@ SECTIONS _eronly = LOADADDR(.data); - .bss : { + .bss : + { _sbss = ABSOLUTE(.); *(.bss .bss.*) *(.gnu.linkonce.b.*) @@ -115,7 +120,17 @@ SECTIONS _ebss = ABSOLUTE(.); } > sdram + /* Uninitialized data */ + + .noinit : + { + _snoinit = ABSOLUTE(.); + *(.noinit*) + _enoinit = ABSOLUTE(.); + } > sdram + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } diff --git a/configs/sama5d3x-ek/scripts/nor-isram.ld b/configs/sama5d3x-ek/scripts/nor-isram.ld index c8681562e2..6d667f5e09 100644 --- a/configs/sama5d3x-ek/scripts/nor-isram.ld +++ b/configs/sama5d3x-ek/scripts/nor-isram.ld @@ -1,7 +1,7 @@ /**************************************************************************** * configs/sama5d3x-ek/scripts/nor-isram.ld * - * Copyright (C) 2013-2014 Gregory Nutt. All rights reserved. + * Copyright (C) 2013-2014, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -56,7 +56,8 @@ ENTRY(_stext) SECTIONS { - .text : { + .text : + { _stext = ABSOLUTE(.); *(.vectors) *(.text .text.*) @@ -74,13 +75,15 @@ SECTIONS _etext = ABSOLUTE(.); } > norflash - .init_section : { + .init_section : + { _sinit = ABSOLUTE(.); *(.init_array .init_array.*) _einit = ABSOLUTE(.); } > norflash - .ARM.extab : { + .ARM.extab : + { *(.ARM.extab*) } > norflash @@ -93,7 +96,8 @@ SECTIONS } > norflash PROVIDE_HIDDEN (__exidx_end = .); - .data : { + .data : + { _sdata = ABSOLUTE(.); *(.data .data.*) *(.gnu.linkonce.d.*) @@ -103,7 +107,8 @@ SECTIONS _eronly = LOADADDR(.data); - .bss : { + .bss : + { _sbss = ABSOLUTE(.); *(.bss .bss.*) *(.gnu.linkonce.b.*) @@ -111,7 +116,8 @@ SECTIONS _ebss = ABSOLUTE(.); } > isram - .ramfunc ALIGN(4): { + .ramfunc ALIGN(4): + { _sramfuncs = ABSOLUTE(.); *(.ramfunc .ramfunc.*) _eramfuncs = ABSOLUTE(.); @@ -119,7 +125,17 @@ SECTIONS _framfuncs = LOADADDR(.ramfunc); + /* Uninitialized data */ + + .noinit : + { + _snoinit = ABSOLUTE(.); + *(.noinit*) + _enoinit = ABSOLUTE(.); + } > isram + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } diff --git a/configs/sama5d3x-ek/scripts/pg-sram.ld b/configs/sama5d3x-ek/scripts/pg-sram.ld index 549802619f..31c49abb34 100644 --- a/configs/sama5d3x-ek/scripts/pg-sram.ld +++ b/configs/sama5d3x-ek/scripts/pg-sram.ld @@ -1,7 +1,7 @@ /**************************************************************************** * configs/sama5d3x-ek/scripts/pg-isram.ld * - * Copyright (C) 2013 Gregory Nutt. All rights reserved. + * Copyright (C) 2013, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -79,7 +79,8 @@ ENTRY(_stext) SECTIONS { - .locked : { + .locked : + { _slocked = ABSOLUTE(.); *(.vectors) up_head.o locked.r (.text .text.*) @@ -95,7 +96,8 @@ SECTIONS _elocked = ABSOLUTE(.); } >locked - .init_section : { + .init_section : + { _sinit = ABSOLUTE(.); *(.init_array .init_array.*) _einit = ABSOLUTE(.); @@ -110,7 +112,8 @@ SECTIONS } > isram PROVIDE_HIDDEN (__exidx_end = .); - .paged : { + .paged : + { _spaged = ABSOLUTE(.); *(.text .text.*) *(.fixup) @@ -127,7 +130,8 @@ SECTIONS _epaged = ABSOLUTE(.); } > paged - .data : { + .data : + { _sdata = ABSOLUTE(.); *(.data .data.*) *(.gnu.linkonce.d.*) @@ -135,14 +139,26 @@ SECTIONS _edata = ABSOLUTE(.); } > data AT > locked - .bss : { + .bss : + { _sbss = ABSOLUTE(.); *(.bss .bss.*) *(.gnu.linkonce.b.*) *(COMMON) _ebss = ABSOLUTE(.); } > data - /* Stabs debugging sections. */ + + /* Uninitialized data */ + + .noinit : + { + _snoinit = ABSOLUTE(.); + *(.noinit*) + _enoinit = ABSOLUTE(.); + } > data + + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } diff --git a/configs/sama5d4-ek/scripts/dramboot.ld b/configs/sama5d4-ek/scripts/dramboot.ld index 4ca01c6b88..2e19a34be3 100644 --- a/configs/sama5d4-ek/scripts/dramboot.ld +++ b/configs/sama5d4-ek/scripts/dramboot.ld @@ -1,7 +1,7 @@ /**************************************************************************** * configs/sama5d4-ek/scripts/dramboot.ld * - * Copyright (C) 2014 Gregory Nutt. All rights reserved. + * Copyright (C) 2014, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -54,7 +54,8 @@ ENTRY(_stext) SECTIONS { - .text : { + .text : + { _stext = ABSOLUTE(.); *(.vectors) *(.text .text.*) @@ -72,13 +73,15 @@ SECTIONS _etext = ABSOLUTE(.); } > sdram - .init_section : { + .init_section : + { _sinit = ABSOLUTE(.); *(.init_array .init_array.*) _einit = ABSOLUTE(.); } > sdram - .ARM.extab : { + .ARM.extab : + { *(.ARM.extab*) } > sdram @@ -91,7 +94,8 @@ SECTIONS } > sdram PROVIDE_HIDDEN (__exidx_end = .); - .data : { + .data : + { _sdata = ABSOLUTE(.); *(.data .data.*) *(.gnu.linkonce.d.*) @@ -99,7 +103,8 @@ SECTIONS _edata = ABSOLUTE(.); } > sdram - .bss : { + .bss : + { _sbss = ABSOLUTE(.); *(.bss .bss.*) *(.gnu.linkonce.b.*) @@ -107,7 +112,17 @@ SECTIONS _ebss = ABSOLUTE(.); } > sdram + /* Uninitialized data */ + + .noinit : + { + _snoinit = ABSOLUTE(.); + *(.noinit*) + _enoinit = ABSOLUTE(.); + } > sdram + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } diff --git a/configs/sama5d4-ek/scripts/gnu-elf.ld b/configs/sama5d4-ek/scripts/gnu-elf.ld index 6d402a750d..6cab7801d1 100644 --- a/configs/sama5d4-ek/scripts/gnu-elf.ld +++ b/configs/sama5d4-ek/scripts/gnu-elf.ld @@ -1,7 +1,7 @@ /**************************************************************************** * configs/sama5d4-ek/scripts/gnu-elf.ld * - * Copyright (C) 2014 Gregory Nutt. All rights reserved. + * Copyright (C) 2014, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -76,6 +76,15 @@ SECTIONS _edata = . ; } + /* Uninitialized data */ + + .noinit : + { + _snoinit = . ; + *(.noinit*) + _enoinit = . ; + } + /* C++ support. For each global and static local C++ object, * GCC creates a small subroutine to construct the object. Pointers * to these routines (not the routines themselves) are stored as diff --git a/configs/sama5d4-ek/scripts/isram.ld b/configs/sama5d4-ek/scripts/isram.ld index 85bc4dfc4f..70689842f2 100644 --- a/configs/sama5d4-ek/scripts/isram.ld +++ b/configs/sama5d4-ek/scripts/isram.ld @@ -1,7 +1,7 @@ /**************************************************************************** * configs/sama5d4-ek/scripts/isram.ld * - * Copyright (C) 2014 Gregory Nutt. All rights reserved. + * Copyright (C) 2014, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -51,7 +51,8 @@ ENTRY(_stext) SECTIONS { - .text : { + .text : + { _stext = ABSOLUTE(.); *(.vectors) *(.text .text.*) @@ -69,13 +70,15 @@ SECTIONS _etext = ABSOLUTE(.); } > isram - .init_section : { + .init_section : + { _sinit = ABSOLUTE(.); *(.init_array .init_array.*) _einit = ABSOLUTE(.); } > isram - .ARM.extab : { + .ARM.extab : + { *(.ARM.extab*) } > isram @@ -88,7 +91,8 @@ SECTIONS } > isram PROVIDE_HIDDEN (__exidx_end = .); - .data : { + .data : + { _sdata = ABSOLUTE(.); *(.data .data.*) *(.gnu.linkonce.d.*) @@ -96,7 +100,8 @@ SECTIONS _edata = ABSOLUTE(.); } > isram - .bss : { + .bss : + { _sbss = ABSOLUTE(.); *(.bss .bss.*) *(.gnu.linkonce.b.*) @@ -104,7 +109,17 @@ SECTIONS _ebss = ABSOLUTE(.); } > isram + /* Uninitialized data */ + + .noinit : + { + _snoinit = ABSOLUTE(.); + *(.noinit*) + _enoinit = ABSOLUTE(.); + } > isram + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } diff --git a/configs/sama5d4-ek/scripts/uboot.ld b/configs/sama5d4-ek/scripts/uboot.ld index 530be22418..2a76487ccf 100644 --- a/configs/sama5d4-ek/scripts/uboot.ld +++ b/configs/sama5d4-ek/scripts/uboot.ld @@ -1,7 +1,7 @@ /**************************************************************************** * configs/sama5d4-ek/scripts/uboot.ld * - * Copyright (C) 2014 Gregory Nutt. All rights reserved. + * Copyright (C) 2014, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -55,7 +55,8 @@ ENTRY(_stext) SECTIONS { - .text : { + .text : + { _stext = ABSOLUTE(.); *(.vectors) *(.text .text.*) @@ -73,13 +74,15 @@ SECTIONS _etext = ABSOLUTE(.); } > sdram - .init_section : { + .init_section : + { _sinit = ABSOLUTE(.); *(.init_array .init_array.*) _einit = ABSOLUTE(.); } > sdram - .ARM.extab : { + .ARM.extab : + { *(.ARM.extab*) } > sdram @@ -92,7 +95,8 @@ SECTIONS } > sdram PROVIDE_HIDDEN (__exidx_end = .); - .data : { + .data : + { _sdata = ABSOLUTE(.); *(.data .data.*) *(.gnu.linkonce.d.*) @@ -100,7 +104,8 @@ SECTIONS _edata = ABSOLUTE(.); } > sdram - .bss : { + .bss : + { _sbss = ABSOLUTE(.); *(.bss .bss.*) *(.gnu.linkonce.b.*) @@ -108,7 +113,17 @@ SECTIONS _ebss = ABSOLUTE(.); } > sdram + /* Uninitialized data */ + + .noinit : + { + _snoinit = ABSOLUTE(.); + *(.noinit*) + _enoinit = ABSOLUTE(.); + } > sdram + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } -- GitLab From d14d84c1a6acfa5dfb84f247a5f4f2f4146e1c4e Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 13 May 2016 09:11:55 -0600 Subject: [PATCH 158/307] ARMv7M/i.MX6: Implement CPUn n=1,2,3 startup logic --- arch/arm/src/armv7-a/arm_cpuhead.S | 487 +++++++++++++++++++++++++++++ arch/arm/src/imx6/Make.defs | 3 + 2 files changed, 490 insertions(+) create mode 100644 arch/arm/src/armv7-a/arm_cpuhead.S diff --git a/arch/arm/src/armv7-a/arm_cpuhead.S b/arch/arm/src/armv7-a/arm_cpuhead.S new file mode 100644 index 0000000000..9019f2e140 --- /dev/null +++ b/arch/arm/src/armv7-a/arm_cpuhead.S @@ -0,0 +1,487 @@ +/**************************************************************************** + * arch/arm/src/armv7-a/arm_cpuhead.S + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include + +#include + +#include "arm.h" +#include "cp15.h" +#include "sctlr.h" +#include "mmu.h" +#include "chip.h" +#include "up_internal.h" + + .file "arm_cpuhead.S" + +/********************************************************************************** + * Configuration + **********************************************************************************/ + +/* Hard-coded options */ + +#undef CPU_ALIGNMENT_TRAP +#undef CPU_CACHE_ROUND_ROBIN +#undef CPU_DCACHE_DISABLE +#undef CPU_ICACHE_DISABLE +#undef CPU_AFE_ENABLE + +/* Check for the identity mapping: For this configuration, this would be + * the case where the virtual beginning of RAM is the same as the physical + * beginning of RAM. + */ + +#if !defined(CONFIG_RAM_START) || !defined(CONFIG_RAM_VSTART) +# error "CONFIG_RAM_START or CONFIG_RAM_VSTART is not defined" +#endif + +#if CONFIG_RAM_START == CONFIG_RAM_VSTART +# define CONFIG_IDENTITY_TEXTMAP 1 +#endif + +/**************************************************************************** + * .text + ****************************************************************************/ + + .text + +/**************************************************************************** + * Name: __cpu[n]_start + * + * Description: + * Boot functions for each CPU (other than CPU0). These functions set up + * the ARM operating mode, the initial stack, and configure co-processor + * registers. At the end of the boot, arm_cpu_boot() is called. + * + * These functions are provided by the common ARMv7-A logic. + * + * Input parameters: + * None + * + * Returned Value: + * Do not return. + * + ****************************************************************************/ + +#if CONFIG_SMP_NCPUS > 1 + .global __cpu1_start + .type __cpu1_start, #function + +__cpu1_start: + /* Set up the stack pointer and the CPU index */ + + ldr sp, .Lcpu1_stackpointer + mov r5, #1 + + /* Then branch to the common startup logic (PC-relative) */ + + b .Lcpu_start + +.Lcpu1_stackpointer: + .long .Lcpu1_stackbottom + .size __cpu1_start, .-__cpu1_start + +#if CONFIG_SMP_NCPUS > 2 + .global __cpu2_start + .type __cpu2_start, #function + +__cpu2_start: + /* Set up the stack pointer and the CPU index */ + + ldr sp, .Lcpu2_stackpointer + mov r5, #2 + + /* Then branch to the common startup logic (PC-relative) */ + + b .Lcpu_start + +.Lcpu2_stackpointer: + .long .Lcpu2_stackbottom + .size __cpu2_start, .-__cpu2_start + +#if CONFIG_SMP_NCPUS > 3 + .global __cpu3_start + .type __cpu3_start, #function + +__cpu3_start: + /* Set up the stack pointer and the CPU index */ + + ldr sp, .Lcpu3_stackpointer + mov r5, #3 + + /* Then branch to the common startup logic (PC-relative) */ + + b .Lcpu_start + +.Lcpu3_stackpointer: + .long .Lcpu3_stackbottom + .size __cpu3_start, .-__cpu3_start + +#if CONFIG_SMP_NCPUS > 4 +# error This logic needs to extended for CONFIG_SMP_NCPUS > 4 + +#endif /* CONFIG_SMP_NCPUS > 4 */ +#endif /* CONFIG_SMP_NCPUS > 3 */ +#endif /* CONFIG_SMP_NCPUS > 2 */ +#endif /* CONFIG_SMP_NCPUS > 1 */ + +/**************************************************************************** + * Name: .Lcpu_start + * + * Description: + * Common CPUn startup logic (n > 0) + * + * On input: + * SP = Set to bottom of CPU IDLE stack (virtual) + * R5 = CPU number + * + ****************************************************************************/ + + .type .Lcpu_start, #function + +.Lcpu_start: + /* Make sure that we are in SVC mode with IRQs and FIQs disabled */ + + mov r0, #(PSR_MODE_SVC | PSR_I_BIT | PSR_F_BIT) + msr cpsr_c, r0 + + /* The MMU and caches should be disabled */ + + mrc CP15_SCTLR(r0) + bic r0, r0, #(SCTLR_M | SCTLR_C) + bic r0, r0, #(SCTLR_I) + mcr CP15_SCTLR(r0) + + /* Invalidate caches and TLBs. + * + * NOTE: "The ARMv7 Virtual Memory System Architecture (VMSA) does not + * support a CP15 operation to invalidate the entire data cache. ... + * In normal usage the only time the entire data cache has to be + * invalidated is on reset." + * + * The instruction cache is virtually indexed and physically tagged but + * the data cache is physically indexed and physically tagged. So it + * should not be an issue if the system comes up with a dirty Dcache; + * the ICache, however, must be invalidated. + */ + + mov r0, #0 + mcr CP15_TLBIALL(r0,c7) /* Invalidate the entire unified TLB */ + mcr CP15_TLBIALL(r0,c6) + mcr CP15_TLBIALL(r0,c5) + mcr CP15_BPIALL(r0) /* Invalidate entire branch prediction array */ + mcr CP15_ICIALLU(r0) /* Invalidate I-cache */ + + /* Load the page table address. + * + * NOTES: + * - Here we assume that the page table address is aligned to at least + * least a 16KB boundary (bits 0-13 are zero). No masking is provided + * to protect against an unaligned page table address. + * - The ARMv7-A has two page table address registers, TTBR0 and 1. + * Only TTBR0 is used in this implementation but both are initialized. + */ + + ldr r1, .LCppgtable /* r1=phys. page table */ + orr r1, r1, #(TTBR0_RGN_WBWA | TTBR0_IRGN0) /* Select cache properties */ + mcr CP15_TTBR0(r1) + mcr CP15_TTBR1(r1) + + /* Set the TTB control register (TTBCR) to indicate that we are using + * TTBR0. r0 still holds the value of zero. + * + * N : 0=Selects TTBR0 and 16KB page table size indexed by VA[31:20] + * PD0 : 0=Perform translation table walks using TTBR0 + * PD1 : 0=Perform translation table walks using TTBR1 (but it is disabled) + * EAE : 0=Use 32-bit translation system + */ + + mcr CP15_TTBCR(r0) + + /* Enable the MMU and caches + * lr = Resume at .Lcpu_vstart with the MMU enabled + */ + + ldr lr, .LCcpu_vstart /* Abs. virtual address */ + + /* Configure the domain access register (see mmu.h). Only domain 0 is + * supported and it uses the permissions in the TLB. + */ + + mov r0, #DACR_CLIENT(0) + mcr CP15_DACR(r0) /* Set domain access register */ + + /* Configure the system control register (see sctrl.h) */ + + mrc CP15_SCTLR(r0) /* Get control register */ + + /* Clear bits to reset values. This is only necessary in situations like, for + * example, we get here via a bootloader and the control register is in some + * unknown state. + * + * SCTLR_M Bit 0: Enable the MMU + * SCTLR_A Bit 1: Strict alignment disabled (reset value) + * SCTLR_C Bit 2: DCache disabled (reset value) + * + * SCTLR_SW Bit 10: SWP/SWPB not enabled (reset value) + * SCTLR_I Bit 12: ICache disabled (reset value) + * SCTLR_V Bit 13: Assume low vectors (reset value) + * SCTLR_RR Bit 14: The Cortex-A5 processor only supports a fixed random + * replacement strategy. + * SCTLR_HA Bit 17: Not supported by A5 + * + * SCTLR_EE Bit 25: 0=Little endian (reset value). + * SCTLR_TRE Bit 28: No memory region remapping (reset value) + * SCTLR_AFE Bit 29: Full, legacy access permissions behavior (reset value). + * SCTLR_TE Bit 30: All exceptions handled in ARM state (reset value). + */ + + bic r0, r0, #(SCTLR_A | SCTLR_C) + bic r0, r0, #(SCTLR_SW | SCTLR_I | SCTLR_V | SCTLR_RR | SCTLR_HA) + bic r0, r0, #(SCTLR_EE | SCTLR_TRE | SCTLR_AFE | SCTLR_TE) + + /* Set bits to enable the MMU + * + * SCTLR_M Bit 0: Enable the MMU + * SCTLR_Z Bit 11: Program flow prediction control always enabled on A5 + */ + + orr r0, r0, #(SCTLR_M) +#ifndef CONFIG_ARCH_CORTEXA5 + orr r0, r0, #(SCTLR_Z) +#endif + +#ifndef CONFIG_ARCH_LOWVECTORS + /* Position vectors to 0xffff0000 if so configured. + * + * SCTLR_V Bit 13: High vectors + */ + + orr r0, r0, #(SCTLR_V) +#endif + +#if defined(CPU_CACHE_ROUND_ROBIN) && !defined(CONFIG_ARCH_CORTEXA5) + /* Round Robin cache replacement + * + * SCTLR_RR Bit 14: The Cortex-A5 processor only supports a fixed random + * replacement strategy. + */ + + orr r0, r0, #(SCTLR_RR) +#endif + +#ifndef CPU_DCACHE_DISABLE + /* Dcache enable + * + * SCTLR_C Bit 2: DCache enable + */ + + orr r0, r0, #(SCTLR_C) +#endif + +#ifndef CPU_ICACHE_DISABLE + /* Icache enable + * + * SCTLR_I Bit 12: ICache enable + */ + + orr r0, r0, #(SCTLR_I) +#endif + +#ifdef CPU_ALIGNMENT_TRAP + /* Alignment abort enable + * + * SCTLR_A Bit 1: Strict alignment enabled + */ + + orr r0, r0, #(SCTLR_A) +#endif + +#ifdef CONFIG_ENDIAN_BIG + /* Big endian mode + * + * SCTLR_EE Bit 25: 1=Big endian. + */ + + orr r0, r0, #(SCTLR_EE) +#endif + +#ifdef CPU_AFE_ENABLE + /* AP[0:2] Permissions model + * + * SCTLR_AFE Bit 29: Full, legacy access permissions behavior (reset value). + * + * When AFE=1, the page table AP[0] is used as an access flag and AP[2:1] + * control. When AFE=0, AP[2:0] control access permissions. + */ + + orr r0, r0, #(SCTLR_AFE) +#endif + + /* Then write the configured control register */ + + mcr CP15_SCTLR(r0) /* Write control reg */ + .rept 12 /* Cortex A8 wants lots of NOPs here */ + nop + .endr + + /* And "jump" to .Lcpu_vstart in the newly mapped virtual address space */ + + mov pc, lr + +/**************************************************************************** + * PC_Relative Data + ****************************************************************************/ + + /* The physical base address of the page table */ + + .type .LCppgtable, %object +.LCppgtable: + .long PGTABLE_BASE_PADDR /* Physical start of page table */ + .size .LCppgtable, . -.LCppgtable + + /* The virtual start address of the second phase boot logic */ + + .type .LCcpu_vstart, %object +.LCcpu_vstart: + .long .Lcpu_vstart + .size .LCcpu_vstart, . -.LCcpu_vstart + + .size .Lcpu_start, .-.Lcpu_start + +/**************************************************************************** + * Name: .Lcpu_vstart + * + * Description: + * Continue initialization after the MMU has been enabled. + * + * The following is executed after the MMU has been enabled. This uses + * absolute addresses; this is not position independent. + * + * On input: + * SP = Set to bottom of CPU IDLE stack (virtual) + * R5 = CPU number + * + ****************************************************************************/ + + .align 8 + .globl arm_cpu_boot + .type .Lcpu_vstart, %function + +.Lcpu_vstart: + +#ifdef CONFIG_STACK_COLORATION + /* Write a known value to the IDLE thread stack to support stack + * monitoring logic + */ + + adr r3, .Lstkinit + ldmia r3, {r0, r1, r2} /* R0 = start of IDLE stack; R1 = Size of stack; R2 = coloration */ + +1: /* Top of the loop */ + sub r1, r1, #1 /* R1 = Number of words remaining */ + cmp r1, #0 /* Check (nwords == 0) */ + str r2, [r0], #4 /* Save stack color word, increment stack address */ + bne 1b /* Bottom of the loop */ +#endif + + /* Branch to continue C level CPU initialization */ + + mov fp, #0 /* Clear framepointer */ + mov lr, #0 /* LR = return address (none) */ + mov r0, r5 /* Input parameter = CPU index */ + b arm_cpu_boot /* Branch to C level CPU initialization */ + .size .Lcpu_vstart, .-.Lcpu_vstart + +/*************************************************************************** + * Text-section constants + ***************************************************************************/ + + /* Text-section constants: */ + +#ifdef CONFIG_STACK_COLORATION + .type .Lstkinit, %object +.Lstkinit: + .long ((CONFIG_IDLETHREAD_STACKSIZE + 7) & ~7) >> 2) + .long STACK_COLOR /* Stack coloration word */ + .size .Lstkinit, . -.Lstkinit +#endif + +/*************************************************************************** + * .noinit section data + ***************************************************************************/ + + .section .noinit, "aw" + +#if CONFIG_SMP_NCPUS > 1 + .align 8 + .type .Lcpu1_idlestack, object + +.Lcpu1_idlestack: + .space ((CONFIG_SMP_IDLETHREAD_STACKSIZE + 7) & ~7) +.Lcpu1_stackbottom: + .size .Lcpu1_idlestack, .Lcpu1_stackbottom-.Lcpu1_idlestack + +#if CONFIG_SMP_NCPUS > 2 + .align 8 + .type .Lcpu2_idlestack, object + +.Lcpu2_idlestack: + .space ((CONFIG_SMP_IDLETHREAD_STACKSIZE + 7) & ~7) +.Lcpu2_stackbottom: + .size .Lcpu2_idlestack, .Lcpu2_stackbottom-.Lcpu2_idlestack + +#if CONFIG_SMP_NCPUS > 3 + .align 8 + .type .Lcpu3_idlestack, object + +.Lcpu3_idlestack: + .space ((CONFIG_SMP_IDLETHREAD_STACKSIZE + 7) & ~7) +.Lcpu3_stackbottom: + .size .Lcpu3_idlestack, .Lcpu3_stackbottom-.Lcpu3_idlestack + +#if CONFIG_SMP_NCPUS > 4 +# error This logic needs to extended for CONFIG_SMP_NCPUS > 4 + +#endif /* CONFIG_SMP_NCPUS > 4 */ +#endif /* CONFIG_SMP_NCPUS > 3 */ +#endif /* CONFIG_SMP_NCPUS > 2 */ +#endif /* CONFIG_SMP_NCPUS > 1 */ + + .end diff --git a/arch/arm/src/imx6/Make.defs b/arch/arm/src/imx6/Make.defs index c33085a1bc..d4db520910 100644 --- a/arch/arm/src/imx6/Make.defs +++ b/arch/arm/src/imx6/Make.defs @@ -49,6 +49,9 @@ ifeq ($(CONFIG_PAGING),y) CMN_ASRCS = arm_pghead.S else CMN_ASRCS = arm_head.S +ifeq ($(CONFIG_SMP),y) +CMN_ASRCS += arm_cpuhead.S +endif endif # Common assembly language files -- GitLab From faca2fb1e70154337215a9eddb5b89694a966a9c Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 13 May 2016 11:39:42 -0600 Subject: [PATCH 159/307] ARMv7-A/i.MX6: Add logic to handle allocation of CPU IDLE thread stacks more efficiently --- arch/arm/src/armv7-a/arm_cpuhead.S | 47 ++++---- arch/arm/src/armv7-a/arm_cpuidlestack.c | 145 ++++++++++++++++++++++++ arch/arm/src/armv7-a/smp.h | 35 ++++++ arch/arm/src/imx6/Make.defs | 2 +- arch/arm/src/imx6/imx_boot.c | 2 +- arch/sim/src/Makefile | 2 +- arch/sim/src/up_cpuidlestack.c | 108 ++++++++++++++++++ include/nuttx/arch.h | 47 +++++++- sched/init/os_smpstart.c | 3 +- 9 files changed, 364 insertions(+), 27 deletions(-) create mode 100644 arch/arm/src/armv7-a/arm_cpuidlestack.c create mode 100644 arch/sim/src/up_cpuidlestack.c diff --git a/arch/arm/src/armv7-a/arm_cpuhead.S b/arch/arm/src/armv7-a/arm_cpuhead.S index 9019f2e140..487fee0a46 100644 --- a/arch/arm/src/armv7-a/arm_cpuhead.S +++ b/arch/arm/src/armv7-a/arm_cpuhead.S @@ -45,6 +45,8 @@ #include "cp15.h" #include "sctlr.h" #include "mmu.h" +#include "smp.h" + #include "chip.h" #include "up_internal.h" @@ -114,7 +116,7 @@ __cpu1_start: b .Lcpu_start .Lcpu1_stackpointer: - .long .Lcpu1_stackbottom + .long .Lcpu1_stacktop .size __cpu1_start, .-__cpu1_start #if CONFIG_SMP_NCPUS > 2 @@ -132,7 +134,7 @@ __cpu2_start: b .Lcpu_start .Lcpu2_stackpointer: - .long .Lcpu2_stackbottom + .long .Lcpu2_stacktop .size __cpu2_start, .-__cpu2_start #if CONFIG_SMP_NCPUS > 3 @@ -150,7 +152,7 @@ __cpu3_start: b .Lcpu_start .Lcpu3_stackpointer: - .long .Lcpu3_stackbottom + .long .Lcpu3_stacktop .size __cpu3_start, .-__cpu3_start #if CONFIG_SMP_NCPUS > 4 @@ -168,7 +170,7 @@ __cpu3_start: * Common CPUn startup logic (n > 0) * * On input: - * SP = Set to bottom of CPU IDLE stack (virtual) + * SP = Set to top of CPU IDLE stack (virtual) * R5 = CPU number * ****************************************************************************/ @@ -395,7 +397,7 @@ __cpu3_start: * absolute addresses; this is not position independent. * * On input: - * SP = Set to bottom of CPU IDLE stack (virtual) + * SP = Set to top of CPU IDLE stack (virtual) * R5 = CPU number * ****************************************************************************/ @@ -438,7 +440,7 @@ __cpu3_start: #ifdef CONFIG_STACK_COLORATION .type .Lstkinit, %object .Lstkinit: - .long ((CONFIG_IDLETHREAD_STACKSIZE + 7) & ~7) >> 2) + .long SMP_STACK_WORDS .long STACK_COLOR /* Stack coloration word */ .size .Lstkinit, . -.Lstkinit #endif @@ -451,30 +453,33 @@ __cpu3_start: #if CONFIG_SMP_NCPUS > 1 .align 8 - .type .Lcpu1_idlestack, object + .globl g_cpu1_idlestack + .type g_cpu1_idlestack, object -.Lcpu1_idlestack: - .space ((CONFIG_SMP_IDLETHREAD_STACKSIZE + 7) & ~7) -.Lcpu1_stackbottom: - .size .Lcpu1_idlestack, .Lcpu1_stackbottom-.Lcpu1_idlestack +g_cpu1_idlestack: + .space SMP_STACK_SIZE +.Lcpu1_stacktop: + .size g_cpu1_idlestack, .Lcpu1_stacktop-g_cpu1_idlestack #if CONFIG_SMP_NCPUS > 2 .align 8 - .type .Lcpu2_idlestack, object + .globl g_cpu2_idlestack + .type g_cpu2_idlestack, object -.Lcpu2_idlestack: - .space ((CONFIG_SMP_IDLETHREAD_STACKSIZE + 7) & ~7) -.Lcpu2_stackbottom: - .size .Lcpu2_idlestack, .Lcpu2_stackbottom-.Lcpu2_idlestack +g_cpu2_idlestack: + .space SMP_STACK_SIZE +.Lcpu2_stacktop: + .size g_cpu2_idlestack, .Lcpu2_stacktop-g_cpu2_idlestack #if CONFIG_SMP_NCPUS > 3 .align 8 - .type .Lcpu3_idlestack, object + .globl g_cpu3_idlestack + .type g_cpu3_idlestack, object -.Lcpu3_idlestack: - .space ((CONFIG_SMP_IDLETHREAD_STACKSIZE + 7) & ~7) -.Lcpu3_stackbottom: - .size .Lcpu3_idlestack, .Lcpu3_stackbottom-.Lcpu3_idlestack +g_cpu3_idlestack: + .space SMP_STACK_SIZE +.Lcpu3_stacktop: + .size g_cpu3_idlestack, .Lcpu3_stacktop-g_cpu3_idlestack #if CONFIG_SMP_NCPUS > 4 # error This logic needs to extended for CONFIG_SMP_NCPUS > 4 diff --git a/arch/arm/src/armv7-a/arm_cpuidlestack.c b/arch/arm/src/armv7-a/arm_cpuidlestack.c new file mode 100644 index 0000000000..fe19123321 --- /dev/null +++ b/arch/arm/src/armv7-a/arm_cpuidlestack.c @@ -0,0 +1,145 @@ +/**************************************************************************** + * arch/arm/src/armv7-a/arm_cpuidlestack.c + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include + +#include + +#include +#include + +#include "smp.h" +#include "up_internal.h" + +#if defined(CONFIG_SMP) && CONFIG_SMP_NCPUS > 1 + +/**************************************************************************** + * Pre-processor Definitions + ****************************************************************************/ + +/* Stack alignment macros */ + +#define STACK_ISALIGNED(a) ((uintptr_t)(a) & ~SMP_STACK_MASK) + +/**************************************************************************** + * Private Data + ****************************************************************************/ + +static FAR const uint32_t *g_cpu_stackalloc[CONFIG_SMP_NCPUS] = +{ + 0 + , g_cpu1_idlestack +#if CONFIG_SMP_NCPUS > 2 + , g_cpu2_idlestack +#if CONFIG_SMP_NCPUS > 3 + , g_cpu3_idlestack +#endif /* CONFIG_SMP_NCPUS > 3 */ +#endif /* CONFIG_SMP_NCPUS > 2 */ +}; + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: up_cpu_idlestack + * + * Description: + * Allocate a stack for the CPU[n] IDLE task (n > 0) if appropriate and + * setup up stack-related information in the IDLE task's TCB. This + * function is always called before up_cpu_start(). This function is + * only called for the CPU's initial IDLE task; up_create_task is used for + * all normal tasks, pthreads, and kernel threads for all CPUs. + * + * The initial IDLE task is a special case because the CPUs can be started + * in different wans in different environments: + * + * 1. The CPU may already have been started and waiting in a low power + * state for up_cpu_start(). In this case, the IDLE thread's stack + * has already been allocated and is already in use. Here + * up_cpu_idlestack() only has to provide information about the + * already allocated stack. + * + * 2. The CPU may be disabled but started when up_cpu_start() is called. + * In this case, a new stack will need to be created for the IDLE + * thread and this function is then equivalent to: + * + * up_create_stack(tcb, stack_size, TCB_FLAG_TTYPE_KERNEL); + * + * The following TCB fields must be initialized by this function: + * + * - adj_stack_size: Stack size after adjustment for hardware, processor, + * etc. This value is retained only for debug purposes. + * - stack_alloc_ptr: Pointer to allocated stack + * - adj_stack_ptr: Adjusted stack_alloc_ptr for HW. The initial value of + * the stack pointer. + * + * Inputs: + * - cpu: CPU index that indicates which CPU the IDLE task is + * being created for. + * - tcb: The TCB of new CPU IDLE task + * - stack_size: The requested stack size for the IDLE task. At least + * this much must be allocated. This should be + * CONFIG_SMP_STACK_SIZE. + * + ****************************************************************************/ + +int up_cpu_idlestack(int cpu, FAR struct tcb_s *tcb, size_t stack_size) +{ + uintptr_t stack_alloc; + uintptr_t top_of_stack; + + DEBUGASSERT(cpu > 0 && cpu < CONFIG_SMP_NCPUS && tcb != NULL && + stack_size <= SMP_STACK_SIZE); + + /* Get the top of the stack */ + + + stack_alloc = (uintptr_t)g_cpu_stackalloc[cpu]; + DEBUGASSERT(stack_alloc != 0 && STACK_ISALIGNED(stack_alloc)); + top_of_stack = stack_alloc + SMP_STACK_TOP; + + tcb->adj_stack_size = SMP_STACK_SIZE; + tcb->stack_alloc_ptr = (FAR uint32_t *)stack_alloc; + tcb->adj_stack_ptr = (FAR uint32_t *)top_of_stack; + + return OK; +} + +#endif /* CONFIG_SMP && CONFIG_SMP_NCPUS > 1 */ diff --git a/arch/arm/src/armv7-a/smp.h b/arch/arm/src/armv7-a/smp.h index 42b3eda0ed..7c9d1cc72a 100644 --- a/arch/arm/src/armv7-a/smp.h +++ b/arch/arm/src/armv7-a/smp.h @@ -45,6 +45,40 @@ #ifdef CONFIG_SMP +/**************************************************************************** + * Pre-processor Definitions + ****************************************************************************/ + +/* ARM requires at least a 4-byte stack alignment. For use with EABI and + * floating point, the stack must be aligned to 8-byte addresses. We will + * always use the EABI stack alignment + */ + +#define SMP_STACK_ALIGNMENT 8 +#define SMP_STACK_MASK 7 +#define SMP_STACK_SIZE ((CONFIG_SMP_IDLETHREAD_STACKSIZE + 7) & ~7) +#define SMP_STACK_WORDS (SMP_STACK_SIZE >> 2) +#define SMP_STACK_TOP (SMP_STACK_SIZE - 8) + +/**************************************************************************** + * Public Data + ****************************************************************************/ + +#ifndef __ASSEMBLY__ + +#if CONFIG_SMP_NCPUS > 1 +extern uint32_t g_cpu1_idlestack[SMP_STACK_WORDS]; +#if CONFIG_SMP_NCPUS > 2 +extern uint32_t g_cpu2_idlestack[SMP_STACK_WORDS]; +#if CONFIG_SMP_NCPUS > 3 +extern uint32_t g_cpu3_idlestack[SMP_STACK_WORDS]; +#if CONFIG_SMP_NCPUS > 4 +# error This logic needs to extended for CONFIG_SMP_NCPUS > 4 +#endif /* CONFIG_SMP_NCPUS > 4 */ +#endif /* CONFIG_SMP_NCPUS > 3 */ +#endif /* CONFIG_SMP_NCPUS > 2 */ +#endif /* CONFIG_SMP_NCPUS > 1 */ + /**************************************************************************** * Public Function Prototypes ****************************************************************************/ @@ -106,5 +140,6 @@ void __cpu3_start(void); void arm_cpu_boot(int cpu); +#endif /* __ASSEMBLY__ */ #endif /* CONFIG_SMP */ #endif /* __ARCH_ARM_SRC_ARMV7_A_SMP_H */ diff --git a/arch/arm/src/imx6/Make.defs b/arch/arm/src/imx6/Make.defs index d4db520910..3f949158e3 100644 --- a/arch/arm/src/imx6/Make.defs +++ b/arch/arm/src/imx6/Make.defs @@ -80,7 +80,7 @@ CMN_CSRCS += arm_schedulesigaction.c arm_sigdeliver.c arm_syscall.c CMN_CSRCS += arm_unblocktask.c arm_undefinedinsn.c ifeq ($(CONFIG_SMP),y) -CMN_CSRCS += arm_cpuindex.c arm_cpustart.c arm_cpupause.c +CMN_CSRCS += arm_cpuindex.c arm_cpustart.c arm_cpupause.c arm_cpuidlestack.c endif ifeq ($(CONFIG_DEBUG_IRQ),y) diff --git a/arch/arm/src/imx6/imx_boot.c b/arch/arm/src/imx6/imx_boot.c index 8e5c56232f..edfd5304a1 100644 --- a/arch/arm/src/imx6/imx_boot.c +++ b/arch/arm/src/imx6/imx_boot.c @@ -309,7 +309,7 @@ static void imx_copyvectorblock(void) #ifndef CONFIG_IMX6_WDT static inline void imx_wdtdisable(void) { -# warning REVISIT WDT initialization + /* REVISIT: WDT initialization */ } #else # define imx_wdtdisable() diff --git a/arch/sim/src/Makefile b/arch/sim/src/Makefile index f4f6270660..406ac4ee93 100644 --- a/arch/sim/src/Makefile +++ b/arch/sim/src/Makefile @@ -70,7 +70,7 @@ ifeq ($(CONFIG_SPINLOCK),y) endif ifeq ($(CONFIG_SMP),y) - CSRCS += up_smpsignal.c up_smphook.c + CSRCS += up_smpsignal.c up_smphook.c up_cpuidlestack.c HOSTSRCS += up_simsmp.c endif diff --git a/arch/sim/src/up_cpuidlestack.c b/arch/sim/src/up_cpuidlestack.c new file mode 100644 index 0000000000..ee728849a9 --- /dev/null +++ b/arch/sim/src/up_cpuidlestack.c @@ -0,0 +1,108 @@ +/**************************************************************************** + * arch/sim/src/up_cpuidlestack.c + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include + +#include + +#include +#include + +#include "up_internal.h" + +#ifdef CONFIG_SMP + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: up_cpu_idlestack + * + * Description: + * Allocate a stack for the CPU[n] IDLE task (n > 0) if appropriate and + * setup up stack-related information in the IDLE task's TCB. This + * function is always called before up_cpu_start(). This function is + * only called for the CPU's initial IDLE task; up_create_task is used for + * all normal tasks, pthreads, and kernel threads for all CPUs. + * + * The initial IDLE task is a special case because the CPUs can be started + * in different wans in different environments: + * + * 1. The CPU may already have been started and waiting in a low power + * state for up_cpu_start(). In this case, the IDLE thread's stack + * has already been allocated and is already in use. Here + * up_cpu_idlestack() only has to provide information about the + * already allocated stack. + * + * 2. The CPU may be disabled but started when up_cpu_start() is called. + * In this case, a new stack will need to be created for the IDLE + * thread and this function is then equivalent to: + * + * up_create_stack(tcb, stack_size, TCB_FLAG_TTYPE_KERNEL); + * + * The following TCB fields must be initialized by this function: + * + * - adj_stack_size: Stack size after adjustment for hardware, processor, + * etc. This value is retained only for debug purposes. + * - stack_alloc_ptr: Pointer to allocated stack + * - adj_stack_ptr: Adjusted stack_alloc_ptr for HW. The initial value of + * the stack pointer. + * + * Inputs: + * - cpu: CPU index that indicates which CPU the IDLE task is + * being created for. + * - tcb: The TCB of new CPU IDLE task + * - stack_size: The requested stack size for the IDLE task. At least + * this much must be allocated. This should be + * CONFIG_SMP_IDLETHREAD_STACKSIZE. + * + ****************************************************************************/ + +int up_cpu_idlestack(int cpu, FAR struct tcb_s *tcb, size_t stack_size) +{ + /* REVISIT: I don't think anything is needed here */ + + tcb->adj_stack_size = stack_size; + tcb->stack_alloc_ptr = NULL; + tcb->adj_stack_ptr = NULL; + return OK; +} + +#endif /* CONFIG_SMP */ diff --git a/include/nuttx/arch.h b/include/nuttx/arch.h index 02fb699744..b2066b162a 100644 --- a/include/nuttx/arch.h +++ b/include/nuttx/arch.h @@ -1644,7 +1644,7 @@ int up_timer_start(FAR const struct timespec *ts); * * Description: * Return the TLS information structure for the currently executing thread. - * When TLS is enabled, up_createstack() will align allocated stacks to + * When TLS is enabled, up_create_stack() will align allocated stacks to * the TLS_STACK_ALIGN value. An instance of the following structure will * be implicitly positioned at the "lower" end of the stack. Assuming a * "push down" stack, this is at the "far" end of the stack (and can be @@ -1722,6 +1722,51 @@ int up_cpu_index(void); # define up_cpu_index() (0) #endif +/**************************************************************************** + * Name: up_cpu_idlestack + * + * Description: + * Allocate a stack for the CPU[n] IDLE task (n > 0) if appropriate and + * setup up stack-related information in the IDLE task's TCB. This + * function is always called before up_cpu_start(). This function is + * only called for the CPU's initial IDLE task; up_create_task is used for + * all normal tasks, pthreads, and kernel threads for all CPUs. + * + * The initial IDLE task is a special case because the CPUs can be started + * in different wans in different environments: + * + * 1. The CPU may already have been started and waiting in a low power + * state for up_cpu_start(). In this case, the IDLE thread's stack + * has already been allocated and is already in use. Here + * up_cpu_idlestack() only has to provide information about the + * already allocated stack. + * + * 2. The CPU may be disabled but started when up_cpu_start() is called. + * In this case, a new stack will need to be created for the IDLE + * thread and this function is then equivalent to: + * + * up_create_stack(tcb, stack_size, TCB_FLAG_TTYPE_KERNEL); + * + * The following TCB fields must be initialized by this function: + * + * - adj_stack_size: Stack size after adjustment for hardware, processor, + * etc. This value is retained only for debug purposes. + * - stack_alloc_ptr: Pointer to allocated stack + * - adj_stack_ptr: Adjusted stack_alloc_ptr for HW. The initial value of + * the stack pointer. + * + * Inputs: + * - cpu: CPU index that indicates which CPU the IDLE task is + * being created for. + * - tcb: The TCB of new CPU IDLE task + * - stack_size: The requested stack size for the IDLE task. At least + * this much must be allocated. This should be + * CONFIG_SMP_IDLETHREAD_STACKSIZE. + * + ****************************************************************************/ + +int up_cpu_idlestack(int cpu, FAR struct tcb_s *tcb, size_t stack_size); + /**************************************************************************** * Name: up_cpu_start * diff --git a/sched/init/os_smpstart.c b/sched/init/os_smpstart.c index baf91a2e37..c8be9c1cb1 100644 --- a/sched/init/os_smpstart.c +++ b/sched/init/os_smpstart.c @@ -203,8 +203,7 @@ int os_smp_start(void) FAR struct tcb_s *tcb = current_task(cpu); DEBUGASSERT(tcb != NULL); - ret = up_create_stack(tcb, CONFIG_SMP_IDLETHREAD_STACKSIZE, - TCB_FLAG_TTYPE_KERNEL); + ret = up_cpu_idlestack(cpu, tcb, CONFIG_SMP_IDLETHREAD_STACKSIZE); if (ret < 0) { sdbg("ERROR: Failed to allocate stack for CPU%d\n", cpu); -- GitLab From 09a58263c85940b8cc420b5bae715399b44e875c Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 13 May 2016 12:19:26 -0600 Subject: [PATCH 160/307] Update ChangeLog --- ChangeLog | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 87f923ce2a..5be696ba87 100755 --- a/ChangeLog +++ b/ChangeLog @@ -11718,6 +11718,14 @@ * Several Makefiles: Add .PHONY definitions to prevent 'clean up to date' message weirdness when 'make clean' is done with no .config or Make.defs file (2016-05-10). + * include/nuttx/can.h and drivers/can.c: Improve CAN error reporting. + From Frank Benkert (2016-05-11). + * fs/Kconfig: Allow CONFIG_FS_WRITABLE to be manually selectable + (2016-05-11). + * Various file: Search for places where a stray semicolon following an + if condition cause the if body to be executed unconditionally. Fixes + in all SAM DMA logic, unionfs, OS signalling logic, * configs/nucleo-144: Basic port for the Nucleo-144 board with the STM32F746ZG MCU. From Kconstantin Berezenko (2015-05-12). - + * arch/arm-src/armv7-a: Complete logic to initialize each CPUn, n > 0, + when CONFIG_SMP=y (2016-05-13). -- GitLab From a3f3cc12c0c6667194050e2503175c3c90932d0c Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 13 May 2016 17:36:08 -0600 Subject: [PATCH 161/307] Update some comments; Fix grammatic error in ChangeLog. --- ChangeLog | 4 ++-- arch/arm/src/armv7-a/arm_cpuidlestack.c | 2 +- arch/sim/src/up_cpuidlestack.c | 2 +- include/nuttx/arch.h | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5be696ba87..6504de162e 100755 --- a/ChangeLog +++ b/ChangeLog @@ -11727,5 +11727,5 @@ in all SAM DMA logic, unionfs, OS signalling logic, * configs/nucleo-144: Basic port for the Nucleo-144 board with the STM32F746ZG MCU. From Kconstantin Berezenko (2015-05-12). - * arch/arm-src/armv7-a: Complete logic to initialize each CPUn, n > 0, - when CONFIG_SMP=y (2016-05-13). + * arch/arm-src/armv7-a: Complete re-design of logic to initialize each + CPUn, n > 0, when CONFIG_SMP=y (2016-05-13). diff --git a/arch/arm/src/armv7-a/arm_cpuidlestack.c b/arch/arm/src/armv7-a/arm_cpuidlestack.c index fe19123321..09e9f0d12e 100644 --- a/arch/arm/src/armv7-a/arm_cpuidlestack.c +++ b/arch/arm/src/armv7-a/arm_cpuidlestack.c @@ -100,7 +100,7 @@ static FAR const uint32_t *g_cpu_stackalloc[CONFIG_SMP_NCPUS] = * In this case, a new stack will need to be created for the IDLE * thread and this function is then equivalent to: * - * up_create_stack(tcb, stack_size, TCB_FLAG_TTYPE_KERNEL); + * return up_create_stack(tcb, stack_size, TCB_FLAG_TTYPE_KERNEL); * * The following TCB fields must be initialized by this function: * diff --git a/arch/sim/src/up_cpuidlestack.c b/arch/sim/src/up_cpuidlestack.c index ee728849a9..c11d14e4a9 100644 --- a/arch/sim/src/up_cpuidlestack.c +++ b/arch/sim/src/up_cpuidlestack.c @@ -75,7 +75,7 @@ * In this case, a new stack will need to be created for the IDLE * thread and this function is then equivalent to: * - * up_create_stack(tcb, stack_size, TCB_FLAG_TTYPE_KERNEL); + * return up_create_stack(tcb, stack_size, TCB_FLAG_TTYPE_KERNEL); * * The following TCB fields must be initialized by this function: * diff --git a/include/nuttx/arch.h b/include/nuttx/arch.h index b2066b162a..24925c05ec 100644 --- a/include/nuttx/arch.h +++ b/include/nuttx/arch.h @@ -1745,7 +1745,7 @@ int up_cpu_index(void); * In this case, a new stack will need to be created for the IDLE * thread and this function is then equivalent to: * - * up_create_stack(tcb, stack_size, TCB_FLAG_TTYPE_KERNEL); + * return up_create_stack(tcb, stack_size, TCB_FLAG_TTYPE_KERNEL); * * The following TCB fields must be initialized by this function: * -- GitLab From a0cdbcb58f09991019bae98dd29b740ad0e3cea7 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 16 May 2016 08:44:18 -0600 Subject: [PATCH 162/307] Update README --- arch/arm/src/imx6/chip/imx_uart.h | 8 ++++---- configs/sabre-6quad/README.txt | 24 ++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/arch/arm/src/imx6/chip/imx_uart.h b/arch/arm/src/imx6/chip/imx_uart.h index 8f21d9768f..81c2801ca8 100644 --- a/arch/arm/src/imx6/chip/imx_uart.h +++ b/arch/arm/src/imx6/chip/imx_uart.h @@ -195,10 +195,10 @@ #define UART_UCR1_RRDYEN (1 << 9) /* Bit 9: Receiver ready interrupt enable */ #define UART_UCR1_ICD_SHIFT 10 /* Bit 10-11: Idle condition detect */ #define UART_UCR1_ICD_MASK (3 << UART_UCR1_ICD_SHIFT) -# define UART_UCR1_ICD_4FRMS (0 << UART_UCR1_ICD_SHIFT) /* Idle for more than 4 frames */ -# define UART_UCR1_ICD_8FRMS (1 << UART_UCR1_ICD_SHIFT) /* Idle for more than 8 frames */ -# define UART_UCR1_ICD_16FRMS (2 << UART_UCR1_ICD_SHIFT) /* Idle for more than 16 frames */ -# define UART_UCR1_ICD_32FRMS (3 << UART_UCR1_ICD_SHIFT) /* Idle for more than 32 frames */ +# define UART_UCR1_ICD_4FRMS (0 << UART_UCR1_ICD_SHIFT) /* Idle for more than 4 frames */ +# define UART_UCR1_ICD_8FRMS (1 << UART_UCR1_ICD_SHIFT) /* Idle for more than 8 frames */ +# define UART_UCR1_ICD_16FRMS (2 << UART_UCR1_ICD_SHIFT) /* Idle for more than 16 frames */ +# define UART_UCR1_ICD_32FRMS (3 << UART_UCR1_ICD_SHIFT) /* Idle for more than 32 frames */ #define UART_UCR1_IDEN (1 << 12) /* Bit 12: Idle condition detected interrupt enable */ #define UART_UCR1_TRDYEN (1 << 13) /* Bit 13: Transmitter ready interrupt enable */ #define UART_UCR1_ADBR (1 << 14) /* Bit 14: Automatic detection of baud rate */ diff --git a/configs/sabre-6quad/README.txt b/configs/sabre-6quad/README.txt index bf8fe28c2b..982b47d9a9 100644 --- a/configs/sabre-6quad/README.txt +++ b/configs/sabre-6quad/README.txt @@ -484,3 +484,27 @@ Configuration sub-directories at apps/nshlib with the start logic at apps/examples/nsh. NOTES: + + 1. This configuration assumes that we are loaded into SDRAM and + started via U-Boot. + + 2. The serial console is configured by default for use UART1, the + USB VCOM port (UART1), same as the serial port used by U-Boot. + You will need to reconfigure if you want to use a different UART. + + 3. NSH built-in applications are supported, but no built-in + applications are enabled. + + Binary Formats: + CONFIG_BUILTIN=y : Enable support for built-in programs + + Application Configuration: + CONFIG_NSH_BUILTIN_APPS=y : Enable starting apps from NSH command line + + 4. The RAMLOG is enabled. All SYSLOG (DEBUG) output will go to the + RAMLOG and will not be visible unless you use the nsh 'dmesg' + command. To disable this RAMLOG feature, disable the following: + + File Systems: CONFIG_SYSLOG + Device Drivers: CONFIG_RAMLOG + -- GitLab From 4feeb0c2b475699eae9061ac197fcb72844e0b05 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 16 May 2016 12:50:35 -0600 Subject: [PATCH 163/307] Cortex-A9 GIC: Some fixes that I don't fully understand but do indeed give me serial interrupts --- arch/arm/src/armv7-a/arm_gicv2.c | 37 ++++++++++++++++++++++++++------ configs/sabre-6quad/README.txt | 3 +++ 2 files changed, 34 insertions(+), 6 deletions(-) diff --git a/arch/arm/src/armv7-a/arm_gicv2.c b/arch/arm/src/armv7-a/arm_gicv2.c index c03ef01c7a..5db74cff91 100644 --- a/arch/arm/src/armv7-a/arm_gicv2.c +++ b/arch/arm/src/armv7-a/arm_gicv2.c @@ -211,7 +211,16 @@ void arm_gic_initialize(void) #endif -#if defined(CONFIG_ARCH_TRUSTZONE_SECURE) || defined(CONFIG_ARCH_TRUSTZONE_BOTH) +#if defined(CONFIG_ARCH_TRUSTZONE_SECURE) + /* Set FIQn=1 if secure interrupts are to signal using nfiq_c. + * + * NOTE: Only for processors that operate in secure state. + * REVISIT: Do I need to do this? + */ + + //iccicr |= GIC_ICCICRS_FIQEN; + +#elif defined(CONFIG_ARCH_TRUSTZONE_BOTH) /* Set FIQn=1 if secure interrupts are to signal using nfiq_c. * * NOTE: Only for processors that operate in secure state. @@ -221,25 +230,35 @@ void arm_gic_initialize(void) iccicr |= GIC_ICCICRS_FIQEN; #endif -#if defined(ONFIG_ARCH_TRUSTZONE_BOTH) +#if defined(CONFIG_ARCH_TRUSTZONE_SECURE) + /* Program the AckCtl bit to select the required interrupt acknowledge + * behavior. + * + * NOTE: Only for processors that operate in both secure and non-secure + * state. + * REVISIT: This is here only for superstituous reasons. I don't think + * I need this setting in this configuration. + */ + + iccicr |= GIC_ICCICRS_ACKTCTL; + +#elif defined(CONFIG_ARCH_TRUSTZONE_BOTH) /* Program the AckCtl bit to select the required interrupt acknowledge * behavior. * * NOTE: Only for processors that operate in both secure and non-secure * state. - * REVISIT: I don't yet fully understand this setting. */ - // iccicr |= GIC_ICCICRS_ACKTCTL; + iccicr |= GIC_ICCICRS_ACKTCTL; /* Program the SBPR bit to select the required binary pointer behavior. * * NOTE: Only for processors that operate in both secure and non-secure * state. - * REVISIT: I don't yet fully understand this setting. */ - // iccicr |= GIC_ICCICRS_CBPR; + iccicr |= GIC_ICCICRS_CBPR; #endif #if defined(CONFIG_ARCH_TRUSTZONE_SECURE) || defined(CONFIG_ARCH_TRUSTZONE_BOTH) @@ -291,9 +310,15 @@ void arm_gic_initialize(void) * bypass. */ +#if 0 /* REVISIT -- I don't know why this needs to be like this */ iccicr |= (GIC_ICCICRS_ENABLEGRP0 | GIC_ICCICRS_FIQBYPDISGRP0 | GIC_ICCICRS_IRQBYPDISGRP0 | GIC_ICCICRS_FIQBYPDISGRP1 | GIC_ICCICRS_IRQBYPDISGRP1); +#else + iccicr |= (GIC_ICCICRS_ENABLEGRP0 | GIC_ICCICRS_ENABLEGRP1 | + GIC_ICCICRS_FIQBYPDISGRP0 | GIC_ICCICRS_IRQBYPDISGRP0 | + GIC_ICCICRS_FIQBYPDISGRP1 | GIC_ICCICRS_IRQBYPDISGRP1); +#endif icddcr = GIC_ICDDCR_ENABLEGRP0; #elif defined(CONFIG_ARCH_TRUSTZONE_BOTH) diff --git a/configs/sabre-6quad/README.txt b/configs/sabre-6quad/README.txt index 982b47d9a9..c29b7b6dcb 100644 --- a/configs/sabre-6quad/README.txt +++ b/configs/sabre-6quad/README.txt @@ -44,6 +44,9 @@ driver serial output to the VCOM console is working (llsyslog). However, there does not appear to be any interrupt activity: No timer interrupts, no interrupt driver serial console output (syslog, printf). +2016-05-16: I know get serial interrupts (but not timer interrupts). This +involves a few changes to GIC bit settings that I do not fully understand. + Platform Features ================= -- GitLab From e6728bac297159dce178913204997de90e3ec049 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 16 May 2016 14:42:55 -0600 Subject: [PATCH 164/307] Cortex-A9 GIC: Add an interface to set interrupt edge/level trigger --- arch/arm/src/armv7-a/arm_gicv2.c | 52 ++++++++++++++++++++++++++++++++ arch/arm/src/armv7-a/gic.h | 22 +++++++++++++- arch/arm/src/imx6/imx_serial.c | 5 +++ arch/arm/src/imx6/imx_timerisr.c | 5 +++ configs/sabre-6quad/README.txt | 8 +++++ 5 files changed, 91 insertions(+), 1 deletion(-) diff --git a/arch/arm/src/armv7-a/arm_gicv2.c b/arch/arm/src/armv7-a/arm_gicv2.c index 5db74cff91..fbdc7eca1d 100644 --- a/arch/arm/src/armv7-a/arm_gicv2.c +++ b/arch/arm/src/armv7-a/arm_gicv2.c @@ -523,4 +523,56 @@ int up_prioritize_irq(int irq, int priority) return -EINVAL; } +/**************************************************************************** + * Name: arm_gic_irq_trigger + * + * Description: + * Set the trigger type for the specificd IRQ source and the current CPU. + * + * Since this API is not supported on all architectures, it should be + * avoided in common implementations where possible. + * + * Input Paramters: + * irq - The interrupt request to modify. + * edge - False: Active HIGH level sensitive, True: Rising edge sensitive + * + * Returned Value: + * Zero (OK) on success; a negated errno value is returned on any failure. + * + ****************************************************************************/ + +int arm_gic_irq_trigger(int irq, bool edge) +{ + uintptr_t regaddr; + uint32_t regval; + uint32_t intcfg; + + if (irq > GIC_IRQ_SGI15 && irq < NR_IRQS) + { + /* Get the address of the Interrupt Configuration Register for this + * irq. + */ + + regaddr = GIC_ICDICFR(irq); + + /* Get the new Interrupt configuration bit setting */ + + intcfg = (edge ? (INT_ICDICFR_EDGE | INT_ICDICFR_1N) : INT_ICDICFR_1N); + + /* Write the correct interrupt trigger to the Interrupt Configuration + * Register. + */ + + regval = getreg32(regaddr); + regval &= ~GIC_ICDICFR_ID_MASK(irq); + regval |= GIC_ICDICFR_ID(irq, intcfg); + putreg32(regval, regaddr); + + return OK; + } + + return -EINVAL; +} + + #endif /* CONFIG_ARMV7A_HAVE_GICv2 */ diff --git a/arch/arm/src/armv7-a/gic.h b/arch/arm/src/armv7-a/gic.h index 45f8a606cb..cc6ee48330 100644 --- a/arch/arm/src/armv7-a/gic.h +++ b/arch/arm/src/armv7-a/gic.h @@ -495,7 +495,7 @@ #define INT_ICDICFR_EDGE 2 /* Bit n+2: 1=Edge sensitive */ #define GIC_ICDICFR_ID_SHIFT(n) GIC_SHIFT16(n) -#define GIC_ICDICFR_ID_MASK(n) GIC_MASK16(n +#define GIC_ICDICFR_ID_MASK(n) GIC_MASK16(n) # define GIC_ICDICFR_ID(n,c) ((uint32_t)(c) << GIC_SHIFT16(n)) /* PPI Status Register */ @@ -720,6 +720,26 @@ void arm_gic0_initialize(void); void arm_gic_initialize(void); +/**************************************************************************** + * Name: arm_gic_irq_trigger + * + * Description: + * Set the trigger type for the specificd IRQ source and the current CPU. + * + * Since this API is not supported on all architectures, it should be + * avoided in common implementations where possible. + * + * Input Paramters: + * irq - The interrupt request to modify. + * edge - False: Active HIGH level sensitive, True: Rising edge sensitive + * + * Returned Value: + * Zero (OK) on success; a negated errno value is returned on any failure. + * + ****************************************************************************/ + +int arm_gic_irq_trigger(int irq, bool edge); + /**************************************************************************** * Name: arm_decodeirq * diff --git a/arch/arm/src/imx6/imx_serial.c b/arch/arm/src/imx6/imx_serial.c index 39a61fddff..f5da98d917 100644 --- a/arch/arm/src/imx6/imx_serial.c +++ b/arch/arm/src/imx6/imx_serial.c @@ -57,6 +57,7 @@ #include "up_arch.h" #include "up_internal.h" +#include "gic.h" #include "chip/imx_uart.h" #include "imx_config.h" #include "imx_lowputc.h" @@ -613,6 +614,10 @@ static int imx_attach(struct uart_dev_s *dev) ret = irq_attach(priv->irq, priv->handler); if (ret == OK) { + /* Configure as a (high) level interrupt */ + + (void)arm_gic_irq_trigger(priv->irq, false); + /* Enable the interrupt (RX and TX interrupts are still disabled * in the UART */ diff --git a/arch/arm/src/imx6/imx_timerisr.c b/arch/arm/src/imx6/imx_timerisr.c index 50d405973f..4b01fae8d1 100644 --- a/arch/arm/src/imx6/imx_timerisr.c +++ b/arch/arm/src/imx6/imx_timerisr.c @@ -46,6 +46,7 @@ #include #include "up_arch.h" +#include "gic.h" #include "chip/imx_ccm.h" #include "chip/imx_gpt.h" @@ -235,6 +236,10 @@ void up_timer_initialize(void) cr |= GPT_CR_EN; putreg32(cr, IMX_GPT_CR); + /* Configure as a (rising) edge-triggered interrupt */ + + (void)arm_gic_irq_trigger(IMX_IRQ_GPT, true); + /* Attach the timer interrupt vector */ (void)irq_attach(IMX_IRQ_GPT, (xcpt_t)up_timerisr); diff --git a/configs/sabre-6quad/README.txt b/configs/sabre-6quad/README.txt index c29b7b6dcb..19afbcd032 100644 --- a/configs/sabre-6quad/README.txt +++ b/configs/sabre-6quad/README.txt @@ -46,6 +46,14 @@ no interrupt driver serial console output (syslog, printf). 2016-05-16: I know get serial interrupts (but not timer interrupts). This involves a few changes to GIC bit settings that I do not fully understand. +With this change, the NSH serial console works: + + MX6Q SABRESD U-Boot > ABEFGHILMN + + NuttShell (NSH) + nsh> + +But there are still no timer interrupts. Platform Features ================= -- GitLab From 80a9357b6f6fff59949677de50d72130639cf862 Mon Sep 17 00:00:00 2001 From: Aleksandr Vyhovanec Date: Tue, 17 May 2016 06:45:00 -0600 Subject: [PATCH 165/307] wfi.mac should be copied into the directory with the IAR project. Then set it to "Options -> Debugger -> Setup macro file(s)". This will allow debugging via JTAG when calling the WFI instruction. --- configs/stm3220g-eval/ide/nsh/iar/wfi.mac | 24 +++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 configs/stm3220g-eval/ide/nsh/iar/wfi.mac diff --git a/configs/stm3220g-eval/ide/nsh/iar/wfi.mac b/configs/stm3220g-eval/ide/nsh/iar/wfi.mac new file mode 100644 index 0000000000..f063baac72 --- /dev/null +++ b/configs/stm3220g-eval/ide/nsh/iar/wfi.mac @@ -0,0 +1,24 @@ +/* + * Debug support for low-power modes + * To enter low-power mode, the instruction WFI or WFE must be executed. + * The MCU implements several low-power modes which can either deactivate the CPU clock + * or reduce the power of the CPU. + * The core does not allow FCLK or HCLK to be turned off during a debug session. As these + * are required for the debugger connection, during a debug, they must remain active. The + * MCU integrates special means to allow the user to debug software in low-power modes. + * For this, the debugger host must first set some debug configuration registers to change the + * low-power mode behavior: + * In Sleep mode, DBG_SLEEP bit of DBGMCU_CR register must be previously set by + * the debugger. This will feed HCLK with the same clock that is provided to FCLK + * (system clock previously configured by the software). + * In Stop mode, the bit DBG_STOP must be previously set by the debugger. This will + * enable the internal RC oscillator clock to feed FCLK and HCLK in STOP mode. + */ + +execUserExecutionStarted() +{ + if (!__driverType("sim")) + { + __writeMemory32(__readMemory32(0xE0042004, "Memory") | 0x3, 0xE0042004, "Memory"); // Set DBG_SLEEP and DBG_STOP in DBGMCU_CR + } +} \ No newline at end of file -- GitLab From 4c08492c0f9feb573df8749101dead3959f84bea Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 17 May 2016 07:21:18 -0600 Subject: [PATCH 166/307] i.MX6: Fix a bit setting in the timer configuration --- arch/arm/src/imx6/imx_timerisr.c | 4 ++-- configs/sabre-6quad/README.txt | 5 ++++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/arch/arm/src/imx6/imx_timerisr.c b/arch/arm/src/imx6/imx_timerisr.c index 4b01fae8d1..f75cecde38 100644 --- a/arch/arm/src/imx6/imx_timerisr.c +++ b/arch/arm/src/imx6/imx_timerisr.c @@ -165,7 +165,7 @@ void up_timer_initialize(void) /* Disable GPT by setting EN=0 in GPT_CR register */ - cr = getreg32(IMX_GPT_CR); + cr = getreg32(IMX_GPT_CR); cr &= ~GPT_CR_EN; putreg32(cr, IMX_GPT_CR); @@ -221,7 +221,7 @@ void up_timer_initialize(void) */ cr &= ~GPT_CR_FFR; - putreg32(cr | GPT_CR_SWR, IMX_GPT_CR); + putreg32(cr, IMX_GPT_CR); /* Set ENMOD=1 in GPT_CR register, to bring GPT counter to 0x00000000. If * the ENMOD bit is 1, then the Main Counter and Prescaler Counter values diff --git a/configs/sabre-6quad/README.txt b/configs/sabre-6quad/README.txt index 19afbcd032..2cc5bc5dee 100644 --- a/configs/sabre-6quad/README.txt +++ b/configs/sabre-6quad/README.txt @@ -53,7 +53,10 @@ With this change, the NSH serial console works: NuttShell (NSH) nsh> -But there are still no timer interrupts. +But there are still no timer interrupts. LEDs do not appear to be working. + +2016-05-17: Timer interrupts now work. This turned out to be just a minor +bit setting error in the timer configuration. Platform Features ================= -- GitLab From 5d44fd6a001f4b3edd8eb0d7435d9bf24aefeb38 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 17 May 2016 08:10:49 -0600 Subject: [PATCH 167/307] i.MX6: LEDs were not working because board_autoled_initialize() was not being called --- configs/sabre-6quad/README.txt | 6 +++++- configs/sabre-6quad/src/imx_boardinit.c | 5 +++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/configs/sabre-6quad/README.txt b/configs/sabre-6quad/README.txt index 2cc5bc5dee..84571090f7 100644 --- a/configs/sabre-6quad/README.txt +++ b/configs/sabre-6quad/README.txt @@ -56,7 +56,11 @@ With this change, the NSH serial console works: But there are still no timer interrupts. LEDs do not appear to be working. 2016-05-17: Timer interrupts now work. This turned out to be just a minor -bit setting error in the timer configuration. +bit setting error in the timer configuration. Timer appears to be too fast +be about a factor of three, however. + +LEDs were not working simply because board_autoled_initialize() was not being +called in the board startup logic. Platform Features ================= diff --git a/configs/sabre-6quad/src/imx_boardinit.c b/configs/sabre-6quad/src/imx_boardinit.c index e287ed2c86..7fa71f3238 100644 --- a/configs/sabre-6quad/src/imx_boardinit.c +++ b/configs/sabre-6quad/src/imx_boardinit.c @@ -80,6 +80,11 @@ void imx_board_initialize(void) { +#ifdef CONFIG_ARCH_LEDS + /* Configure on-board LEDs if LED support has been selected. */ + + board_autoled_initialize(); +#endif } /**************************************************************************** -- GitLab From b416f6cc1b09d848e7bf2bf999259afdf20adf38 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 17 May 2016 08:22:38 -0600 Subject: [PATCH 168/307] i.MX6: Calibrate delay loop --- configs/sabre-6quad/nsh/defconfig | 2 +- configs/sabre-6quad/src/imx_boardinit.c | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/configs/sabre-6quad/nsh/defconfig b/configs/sabre-6quad/nsh/defconfig index 1c9f8ba338..d5726e1d2f 100644 --- a/configs/sabre-6quad/nsh/defconfig +++ b/configs/sabre-6quad/nsh/defconfig @@ -208,7 +208,7 @@ CONFIG_ARCH_STACKDUMP=y # # Board Settings # -CONFIG_BOARD_LOOPSPERMSEC=65775 +CONFIG_BOARD_LOOPSPERMSEC=99369 # CONFIG_ARCH_CALIBRATION is not set # diff --git a/configs/sabre-6quad/src/imx_boardinit.c b/configs/sabre-6quad/src/imx_boardinit.c index 7fa71f3238..f67592caf8 100644 --- a/configs/sabre-6quad/src/imx_boardinit.c +++ b/configs/sabre-6quad/src/imx_boardinit.c @@ -41,6 +41,7 @@ #include +#include #include #include "chip.h" -- GitLab From 1047d63f524fa9aa92fdfe085c4b4f191fd373c5 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 17 May 2016 08:24:09 -0600 Subject: [PATCH 169/307] Update ChangeLog --- ChangeLog | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ChangeLog b/ChangeLog index 6504de162e..102457e8d1 100755 --- a/ChangeLog +++ b/ChangeLog @@ -11729,3 +11729,7 @@ STM32F746ZG MCU. From Kconstantin Berezenko (2015-05-12). * arch/arm-src/armv7-a: Complete re-design of logic to initialize each CPUn, n > 0, when CONFIG_SMP=y (2016-05-13). + * arch/arm/src/imx6 and configs/sabre-6quad: The basic i.MX6 port is + complete. This is a very minimal port at present and probably still + has some as-of-yet-undiscovered issues (2016-05-17). + -- GitLab From 0fe64839dbab1c00ad51baa87feb186d4b051c4c Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 17 May 2016 10:08:06 -0600 Subject: [PATCH 170/307] i.MX6: Fix comparison values in system timer setup. Clock was running 3x too fast. --- arch/arm/src/imx6/imx_timerisr.c | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/arch/arm/src/imx6/imx_timerisr.c b/arch/arm/src/imx6/imx_timerisr.c index f75cecde38..60f8864177 100644 --- a/arch/arm/src/imx6/imx_timerisr.c +++ b/arch/arm/src/imx6/imx_timerisr.c @@ -77,10 +77,25 @@ * We should be able to use a prescaler of 1. */ -#define GPT_PR_VALUE 1 -#define GPT_OCR3_VALUE ((GPT_CLOCK + ((1*CLK_TCK) >> 1)) / (1*CLK_TCK)) -#define GPT_OCR2_VALUE ((GPT_CLOCK + ((2*CLK_TCK) >> 1)) / (2*CLK_TCK)) -#define GPT_OCR1_VALUE ((GPT_CLOCK + ((3*CLK_TCK) >> 1)) / (3*CLK_TCK)) +#define GPT_PR_VALUE 1 + +/* Timer counter comparison settings: + * + * - OCR3 will interrupt at CLK_TCK ticks/second after the timer counter + * has been reset. + * - OCR2 will interrupt at 2*CLK_TCK ticks/second after the timer counter + * has been reset. + * - OCR2 will interrupt at 3*CLK_TCK ticks/second after the timer counter + * has been reset and then will reset the timer, starting the 3 interrupt + * sequence again. + * + * Using three comparisons virtually eliminates the possibility of timer + * interrupt overrun. + */ + +#define GPT_OCR3_VALUE ((1 * GPT_CLOCK + (CLK_TCK >> 1)) / CLK_TCK) +#define GPT_OCR2_VALUE ((2 * GPT_CLOCK + (CLK_TCK >> 1)) / CLK_TCK) +#define GPT_OCR1_VALUE ((3 * GPT_CLOCK + (CLK_TCK >> 1)) / CLK_TCK) /**************************************************************************** * Private Functions -- GitLab From 8bd57a7fbc141a69566daeeb276fc1ad1b08e196 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 17 May 2016 10:08:44 -0600 Subject: [PATCH 171/307] Sabre-6Quad: Fix sense of LED discrete output. It appears that a high value illuminates the LED. --- configs/sabre-6quad/README.txt | 10 +++++----- configs/sabre-6quad/include/board.h | 2 +- configs/sabre-6quad/src/imx_autoleds.c | 4 ++-- configs/sabre-6quad/src/sabre-6quad.h | 4 ++-- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/configs/sabre-6quad/README.txt b/configs/sabre-6quad/README.txt index 84571090f7..6c492857b2 100644 --- a/configs/sabre-6quad/README.txt +++ b/configs/sabre-6quad/README.txt @@ -56,11 +56,11 @@ With this change, the NSH serial console works: But there are still no timer interrupts. LEDs do not appear to be working. 2016-05-17: Timer interrupts now work. This turned out to be just a minor -bit setting error in the timer configuration. Timer appears to be too fast -be about a factor of three, however. +bit setting error in the timer configuration. LEDs were not working simply +because board_autoled_initialize() was not being called in the board startup +logic. -LEDs were not working simply because board_autoled_initialize() was not being -called in the board startup logic. +At this point, I would say that the basic NSH port is complete. Platform Features ================= @@ -129,7 +129,7 @@ LEDs ---- A single LED is available driven GPIO1_IO02. On the schematic this is USR_DEF_RED_LED signal to pin T1 (GPIO_2). This signal is shared with -KEY_ROW6 (ALT2). A low value illuminates the LED. +KEY_ROW6 (ALT2). A high value illuminates the LED. This LED is not used by the board port unless CONFIG_ARCH_LEDS is defined. In that case, the usage by the board port is defined in diff --git a/configs/sabre-6quad/include/board.h b/configs/sabre-6quad/include/board.h index f9d7d8e95b..e6d4dd4ade 100644 --- a/configs/sabre-6quad/include/board.h +++ b/configs/sabre-6quad/include/board.h @@ -88,7 +88,7 @@ * * A single LED is available driven GPIO1_IO02. On the schematic this is * USR_DEF_RED_LED signal to pin T1 (GPIO_2). This signal is shared with KEY_ROW6 - * (ALT2). A low value illuminates the LED. + * (ALT2). A high value illuminates the LED. */ /* LED index values for use with board_userled() */ diff --git a/configs/sabre-6quad/src/imx_autoleds.c b/configs/sabre-6quad/src/imx_autoleds.c index ce31d0a93e..10a3a556d9 100644 --- a/configs/sabre-6quad/src/imx_autoleds.c +++ b/configs/sabre-6quad/src/imx_autoleds.c @@ -117,7 +117,7 @@ void board_autoled_on(int led) { if (led == 1 || led == 3) { - imx_gpio_write(GPIO_LED, false); /* Low illuminates */ + imx_gpio_write(GPIO_LED, true); /* High illuminates */ } } @@ -129,7 +129,7 @@ void board_autoled_off(int led) { if (led == 3) { - imx_gpio_write(GPIO_LED, true); /* High extinguishes */ + imx_gpio_write(GPIO_LED, false); /* Low extinguishes */ } } diff --git a/configs/sabre-6quad/src/sabre-6quad.h b/configs/sabre-6quad/src/sabre-6quad.h index 5ae480d637..b70589dbe3 100644 --- a/configs/sabre-6quad/src/sabre-6quad.h +++ b/configs/sabre-6quad/src/sabre-6quad.h @@ -57,12 +57,12 @@ * * A single LED is available driven GPIO1_IO02. On the schematic this is * USR_DEF_RED_LED signal to pin T1 (GPIO_2). This signal is shared with KEY_ROW6 - * (ALT2). A low value illuminates the LED. + * (ALT2). A high value illuminates the LED. */ #define IOMUX_LED (IOMUX_PULL_NONE | IOMUX_CMOS_OUTPUT | IOMUX_DRIVE_40OHM | \ IOMUX_SPEED_MEDIUM | IOMUX_SLEW_SLOW) -#define GPIO_LED (GPIO_OUTPUT | GPIO_OUTPUT_ONE | GPIO_PORT1 | GPIO_PIN2 | \ +#define GPIO_LED (GPIO_OUTPUT | GPIO_OUTPUT_ZERO | GPIO_PORT1 | GPIO_PIN2 | \ IOMUX_LED) /************************************************************************************ -- GitLab From fb484a581f24d016172683ee122771c3e7009c30 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 17 May 2016 10:43:15 -0600 Subject: [PATCH 172/307] All GCC final arch/*/src/Makefiles: Allow --start-group and --end-group to be redefined for the case where GCC is used to link (instead of LD). Suggested by Paul Alexander Patience. --- arch/arm/src/Makefile | 9 +++++++-- arch/avr/src/Makefile | 9 +++++++-- arch/hc/src/Makefile | 9 +++++++-- arch/mips/src/Makefile | 9 +++++++-- arch/rgmp/src/Makefile | 39 ++++++++++++++++++++++----------------- arch/sh/src/Makefile | 9 +++++++-- arch/sim/src/Makefile | 9 +++++++-- arch/x86/src/Makefile | 9 +++++++-- 8 files changed, 71 insertions(+), 31 deletions(-) diff --git a/arch/arm/src/Makefile b/arch/arm/src/Makefile index e74c0cfc28..e505b956da 100644 --- a/arch/arm/src/Makefile +++ b/arch/arm/src/Makefile @@ -1,7 +1,7 @@ ############################################################################ # arch/arm/src/Makefile # -# Copyright (C) 2007-2009, 2011-2012, 2014-2015 Gregory Nutt. All rights reserved. +# Copyright (C) 2007-2009, 2011-2012, 2014-2016 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -127,6 +127,11 @@ BIN = libarch$(LIBEXT) LDFLAGS += $(ARCHSCRIPT) +# Override in Make.defs if linker is not 'ld' + +LDSTARTGROUP ?= --start-group +LDENDGROUP ?= --end-group + EXTRA_LIBS ?= EXTRA_LIBPATHS ?= LINKLIBS ?= @@ -198,7 +203,7 @@ nuttx$(EXEEXT): $(HEAD_OBJ) board$(DELIM)libboard$(LIBEXT) $(Q) echo "LD: nuttx" $(Q) $(LD) --entry=__start $(LDFLAGS) $(LIBPATHS) $(EXTRA_LIBPATHS) \ -o $(NUTTX) $(HEAD_OBJ) $(EXTRA_OBJS) \ - --start-group $(LDLIBS) $(EXTRA_LIBS) $(LIBGCC) --end-group + $(LDSTARTGROUP) $(LDLIBS) $(EXTRA_LIBS) $(LIBGCC) $(LDENDGROUP) ifneq ($(CONFIG_WINDOWS_NATIVE),y) $(Q) $(NM) $(NUTTX) | \ grep -v '\(compiled\)\|\(\$(OBJEXT)$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \ diff --git a/arch/avr/src/Makefile b/arch/avr/src/Makefile index 2905a75565..84c19eca52 100644 --- a/arch/avr/src/Makefile +++ b/arch/avr/src/Makefile @@ -1,7 +1,7 @@ ############################################################################ # arch/avr/src/Makefile # -# Copyright (C) 2010-2012, 2014 Gregory Nutt. All rights reserved. +# Copyright (C) 2010-2012, 2014, 2016 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -83,6 +83,11 @@ COBJS = $(CSRCS:.c=$(OBJEXT)) SRCS = $(ASRCS) $(CSRCS) OBJS = $(AOBJS) $(COBJS) +# Override in Make.defs if linker is not 'ld' + +LDSTARTGROUP ?= --start-group +LDENDGROUP ?= --end-group + LDFLAGS += $(ARCHSCRIPT) EXTRA_LIBS ?= LINKLIBS ?= @@ -139,7 +144,7 @@ board/libboard$(LIBEXT): nuttx$(EXEEXT): $(HEAD_OBJ) board/libboard$(LIBEXT) @echo "LD: nuttx" $(Q) $(LD) --entry=__start $(LDFLAGS) $(LIBPATHS) -o $(NUTTX) $(HEAD_OBJ) $(EXTRA_OBJS) \ - --start-group $(LDLIBS) $(EXTRA_LIBS) $(LIBGCC) --end-group + $(LDSTARTGROUP) $(LDLIBS) $(EXTRA_LIBS) $(LIBGCC) $(LDENDGROUP) ifneq ($(CONFIG_WINDOWS_NATIVE),y) $(Q) $(NM) $(NUTTX) | \ grep -v '\(compiled\)\|\(\$(OBJEXT)$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \ diff --git a/arch/hc/src/Makefile b/arch/hc/src/Makefile index fb165188fe..efe3876f18 100644 --- a/arch/hc/src/Makefile +++ b/arch/hc/src/Makefile @@ -1,7 +1,7 @@ ############################################################################ # arch/hc/src/Makefile # -# Copyright (C) 2009, 2011-2012, 2014 Gregory Nutt. All rights reserved. +# Copyright (C) 2009, 2011-2012, 2014, 2016 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -83,6 +83,11 @@ COBJS = $(CSRCS:.c=$(OBJEXT)) SRCS = $(ASRCS) $(CSRCS) OBJS = $(AOBJS) $(COBJS) +# Override in Make.defs if linker is not 'ld' + +LDSTARTGROUP ?= --start-group +LDENDGROUP ?= --end-group + LDFLAGS += $(ARCHSCRIPT) EXTRA_LIBS ?= LINKLIBS ?= @@ -138,7 +143,7 @@ board/libboard$(LIBEXT): nuttx$(EXEEXT): $(HEAD_OBJ) board/libboard$(LIBEXT) $(Q) echo "LD: nuttx" $(Q) $(LD) --entry=__start $(LDFLAGS) $(LIBPATHS) -o $(NUTTX)$(EXEEXT) $(HEAD_OBJ) \ - --start-group $(LDLIBS) $(EXTRA_LIBS) $(LIBGCC) --end-group + $(LDSTARTGROUP) $(LDLIBS) $(EXTRA_LIBS) $(LIBGCC) $(LDENDGROUP) ifneq ($(CONFIG_WINDOWS_NATIVE),y) $(Q) $(NM) $(NUTTX)$(EXEEXT) | \ grep -v '\(compiled\)\|\(\$(OBJEXT)$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \ diff --git a/arch/mips/src/Makefile b/arch/mips/src/Makefile index a746fd2230..9efc9af577 100644 --- a/arch/mips/src/Makefile +++ b/arch/mips/src/Makefile @@ -1,7 +1,7 @@ ############################################################################ # arch/mips/src/Makefile # -# Copyright (C) 2011-2012, 2014 Gregory Nutt. All rights reserved. +# Copyright (C) 2011-2012, 2014, 2016 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -80,6 +80,11 @@ COBJS = $(CSRCS:.c=$(OBJEXT)) SRCS = $(ASRCS) $(CSRCS) OBJS = $(AOBJS) $(COBJS) +# Override in Make.defs if linker is not 'ld' + +LDSTARTGROUP ?= --start-group +LDENDGROUP ?= --end-group + LDFLAGS += $(ARCHSCRIPT) EXTRA_LIBS ?= LINKLIBS ?= @@ -136,7 +141,7 @@ board/libboard$(LIBEXT): nuttx$(EXEEXT): $(HEAD_OBJ) board/libboard$(LIBEXT) @echo "LD: nuttx" $(Q) $(LD) --entry=__start $(LDFLAGS) $(LIBPATHS) -o $(NUTTX)$(EXEEXT) $(HEAD_OBJ) $(EXTRA_OBJS) \ - --start-group $(LDLIBS) $(EXTRA_LIBS) $(LIBGCC) --end-group + $(LDSTARTGROUP) $(LDLIBS) $(EXTRA_LIBS) $(LIBGCC) $(LDENDGROUP) ifneq ($(CONFIG_WINDOWS_NATIVE),y) $(Q) $(NM) $(NUTTX)$(EXEEXT) | \ grep -v '\(compiled\)\|\(\$(OBJEXT)$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \ diff --git a/arch/rgmp/src/Makefile b/arch/rgmp/src/Makefile index 1fb3618d96..4fe3bbfbfd 100644 --- a/arch/rgmp/src/Makefile +++ b/arch/rgmp/src/Makefile @@ -1,7 +1,7 @@ ############################################################################ # arch/rgmp/src/Makefile # -# Copyright (C) 2011-2012, 2014 Gregory Nutt. All rights reserved. +# Copyright (C) 2011-2012, 2014, 2016 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -39,25 +39,30 @@ include $(CONFIG_RGMP_SUBARCH)/Make.defs RGMP_ARCH_ASRCS := $(addprefix $(CONFIG_RGMP_SUBARCH)/,$(RGMP_ARCH_ASRCS)) RGMP_ARCH_CSRCS := $(addprefix $(CONFIG_RGMP_SUBARCH)/,$(RGMP_ARCH_CSRCS)) -CPPFLAGS += -I$(TOPDIR)/sched -I$(TOPDIR)/fs $(EXTRADEFINES) -CFLAGS += -I$(TOPDIR)/sched -I$(TOPDIR)/fs $(EXTRADEFINES) -CXXFLAGS += -I$(TOPDIR)/sched -I$(TOPDIR)/fs $(EXTRADEFINES) +CPPFLAGS += -I$(TOPDIR)/sched -I$(TOPDIR)/fs $(EXTRADEFINES) +CFLAGS += -I$(TOPDIR)/sched -I$(TOPDIR)/fs $(EXTRADEFINES) +CXXFLAGS += -I$(TOPDIR)/sched -I$(TOPDIR)/fs $(EXTRADEFINES) -ASRCS = $(RGMP_ARCH_ASRCS) -CSRCS = nuttx.c cxx.c $(RGMP_ARCH_CSRCS) -AOBJS = $(ASRCS:.S=$(OBJEXT)) -COBJS = $(CSRCS:.c=$(OBJEXT)) +ASRCS = $(RGMP_ARCH_ASRCS) +CSRCS = nuttx.c cxx.c $(RGMP_ARCH_CSRCS) +AOBJS = $(ASRCS:.S=$(OBJEXT)) +COBJS = $(CSRCS:.c=$(OBJEXT)) -SRCS = $(ASRCS) $(CSRCS) -OBJS = $(AOBJS) $(COBJS) +SRCS = $(ASRCS) $(CSRCS) +OBJS = $(AOBJS) $(COBJS) -LINKSRCS = rgmp.c bridge.c -LINKOBJS = $(LINKSRCS:.c=$(OBJEXT)) +LINKSRCS = rgmp.c bridge.c +LINKOBJS = $(LINKSRCS:.c=$(OBJEXT)) -LDFLAGS += -T$(RGMPLKSCPT) -LDLIBS = $(patsubst %.a,%,$(patsubst lib%,-l%,$(LINKLIBS))) -LIBPATHS += -L"$(TOPDIR)/lib" -L$(RGMPLIBDIR) -LDLIBS += -lrgmp $(shell "$(CC)" -print-libgcc-file-name) +# Override in Make.defs if linker is not 'ld' + +LDSTARTGROUP ?= --start-group +LDENDGROUP ?= --end-group + +LDFLAGS += -T$(RGMPLKSCPT) +LDLIBS = $(patsubst %.a,%,$(patsubst lib%,-l%,$(LINKLIBS))) +LIBPATHS += -L"$(TOPDIR)/lib" -L$(RGMPLIBDIR) +LDLIBS += -lrgmp $(shell "$(CC)" -print-libgcc-file-name) all: libarch$(LIBEXT) @@ -79,7 +84,7 @@ libarch$(LIBEXT): $(OBJS) nuttx$(EXEEXT): $(LINKOBJS) @echo "LD: nuttx$(EXEEXT)" - @$(LD) $(LDFLAGS) $(LIBPATHS) $(LINKOBJS) --start-group $(LDLIBS) $(EXTRA_LIBS) --end-group -o $(TOPDIR)/$@ + @$(LD) $(LDFLAGS) $(LIBPATHS) $(LINKOBJS) $(LDSTARTGROUP) $(LDLIBS) $(EXTRA_LIBS) $(LDENDGROUP) -o $(TOPDIR)/$@ @$(OBJDUMP) -S $(TOPDIR)/$@ > $(TOPDIR)/nuttx.asm @$(NM) -n $(TOPDIR)/$@ > $(TOPDIR)/nuttx.sym @$(OBJCOPY) -S -O binary $(TOPDIR)/$@ nuttx.img diff --git a/arch/sh/src/Makefile b/arch/sh/src/Makefile index 967818df2a..81e0b5b8c1 100644 --- a/arch/sh/src/Makefile +++ b/arch/sh/src/Makefile @@ -1,7 +1,7 @@ ############################################################################ # arch/sh/src/Makefile # -# Copyright (C) 2008, 2011-2012, 2014 Gregory Nutt. All rights reserved. +# Copyright (C) 2008, 2011-2012, 2014, 2016 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -78,6 +78,11 @@ COBJS = $(CSRCS:.c=$(OBJEXT)) SRCS = $(ASRCS) $(CSRCS) OBJS = $(AOBJS) $(COBJS) +# Override in Make.defs if linker is not 'ld' + +LDSTARTGROUP ?= --start-group +LDENDGROUP ?= --end-group + LDFLAGS += $(ARCHSCRIPT) EXTRA_LIBS ?= LINKLIBS ?= @@ -134,7 +139,7 @@ board/libboard$(LIBEXT): nuttx$(EXEEXT): $(HEAD_OBJ) board/libboard$(LIBEXT) @echo "LD: nuttx" $(Q) $(LD) --entry=__start $(LDFLAGS) $(LIBPATHS) -o $(TOPDIR)/$@ $(HEAD_OBJ) \ - --start-group $(LDLIBS) $(EXTRA_LIBS) $(LIBGCC) --end-group + $(LDSTARTGROUP) $(LDLIBS) $(EXTRA_LIBS) $(LIBGCC) $(LDENDGROUP) ifneq ($(CONFIG_WINDOWS_NATIVE),y) $(Q) $(NM) $(TOPDIR)/$@ | \ grep -v '\(compiled\)\|\(\$(OBJEXT)$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \ diff --git a/arch/sim/src/Makefile b/arch/sim/src/Makefile index 406ac4ee93..1e3f52744a 100644 --- a/arch/sim/src/Makefile +++ b/arch/sim/src/Makefile @@ -1,7 +1,7 @@ ############################################################################ # arch/sim/src/Makefile # -# Copyright (C) 2007, 2008, 2011-2012, 2014 Gregory Nutt. All rights reserved. +# Copyright (C) 2007, 2008, 2011-2012, 2014, 2016 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -154,6 +154,11 @@ ifeq ($(CONFIG_SIM_X11FB),y) STDLIBS += -lX11 -lXext endif +# Override in Make.defs if linker is not 'ld' + +LDSTARTGROUP ?= --start-group +LDENDGROUP ?= --end-group + EXTRA_LIBS ?= EXTRA_LIBPATHS ?= @@ -245,7 +250,7 @@ endif nuttx.rel : libarch$(LIBEXT) board/libboard$(LIBEXT) $(HOSTOS)-names.dat $(LINKOBJS) $(Q) echo "LD: nuttx.rel" - $(Q) $(LD) -r $(LDLINKFLAGS) $(RELPATHS) $(EXTRA_LIBPATHS) -o $@ $(REQUIREDOBJS) --start-group $(RELLIBS) $(EXTRA_LIBS) --end-group + $(Q) $(LD) -r $(LDLINKFLAGS) $(RELPATHS) $(EXTRA_LIBPATHS) -o $@ $(REQUIREDOBJS) $(LDSTARTGROUP) $(RELLIBS) $(EXTRA_LIBS) $(LDENDGROUP) $(Q) $(OBJCOPY) --redefine-syms=$(HOSTOS)-names.dat $@ # Generate the final NuttX binary by linking the host-specific objects with the NuttX diff --git a/arch/x86/src/Makefile b/arch/x86/src/Makefile index f38bcee148..16fbc8206c 100644 --- a/arch/x86/src/Makefile +++ b/arch/x86/src/Makefile @@ -1,7 +1,7 @@ ############################################################################ # arch/x86/src/Makefile # -# Copyright (C) 2011-2012, 2014 Gregory Nutt. All rights reserved. +# Copyright (C) 2011-2012, 2014, 2016 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -80,6 +80,11 @@ COBJS = $(CSRCS:.c=$(OBJEXT)) SRCS = $(ASRCS) $(CSRCS) OBJS = $(AOBJS) $(COBJS) +# Override in Make.defs if linker is not 'ld' + +LDSTARTGROUP ?= --start-group +LDENDGROUP ?= --end-group + LDFLAGS += $(ARCHSCRIPT) EXTRA_LIBS ?= LINKLIBS ?= @@ -144,7 +149,7 @@ board/libboard$(LIBEXT): nuttx$(EXEEXT): $(HEAD_OBJ) board/libboard$(LIBEXT) @echo "LD: nuttx$(EXEEXT)" $(Q) $(LD) --entry=__start $(LDFLAGS) $(LIBPATHS) -o $(NUTTX)$(EXEEXT) $(HEAD_OBJ) $(EXTRA_OBJS) \ - --start-group $(LDLIBS) $(EXTRA_LIBS) $(LIBGCC) --end-group + $(LDSTARTGROUP) $(LDLIBS) $(EXTRA_LIBS) $(LIBGCC) $(LDENDGROUP) ifneq ($(CONFIG_WINDOWS_NATIVE),y) $(Q) $(NM) $(NUTTX)$(EXEEXT) | \ grep -v '\(compiled\)\|\(\$(OBJEXT)$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \ -- GitLab From 55d8b0e277af11a58338cd74e98b98744a02a07b Mon Sep 17 00:00:00 2001 From: David Sidrane Date: Tue, 17 May 2016 07:54:26 -1000 Subject: [PATCH 173/307] Use the correct register and bit to send an STM32 non-bsd compatible break --- arch/arm/src/stm32/stm32_serial.c | 12 ++++++------ arch/arm/src/stm32f7/stm32_serial.c | 12 ++++++------ arch/arm/src/stm32l4/stm32l4_serial.c | 12 ++++++------ 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/arch/arm/src/stm32/stm32_serial.c b/arch/arm/src/stm32/stm32_serial.c index 73039dcf6d..f58501715e 100644 --- a/arch/arm/src/stm32/stm32_serial.c +++ b/arch/arm/src/stm32/stm32_serial.c @@ -2060,24 +2060,24 @@ static int up_ioctl(struct file *filep, int cmd, unsigned long arg) #ifdef CONFIG_USART_BREAKS case TIOCSBRK: /* BSD compatibility: Turn break on, unconditionally */ { - uint32_t cr2; + uint32_t cr1; irqstate_t flags; flags = enter_critical_section(); - cr2 = up_serialin(priv, STM32_USART_CR2_OFFSET); - up_serialout(priv, STM32_USART_CR2_OFFSET, cr2 | USART_CR2_LINEN); + cr1 = up_serialin(priv, STM32_USART_CR1_OFFSET); + up_serialout(priv, STM32_USART_CR1_OFFSET, cr1 | USART_CR1_SBK); leave_critical_section(flags); } break; case TIOCCBRK: /* BSD compatibility: Turn break off, unconditionally */ { - uint32_t cr2; + uint32_t cr1; irqstate_t flags; flags = enter_critical_section(); - cr2 = up_serialin(priv, STM32_USART_CR2_OFFSET); - up_serialout(priv, STM32_USART_CR2_OFFSET, cr2 & ~USART_CR2_LINEN); + cr1 = up_serialin(priv, STM32_USART_CR1_OFFSET); + up_serialout(priv, STM32_USART_CR1_OFFSET, cr1 & ~USART_CR1_SBK); leave_critical_section(flags); } break; diff --git a/arch/arm/src/stm32f7/stm32_serial.c b/arch/arm/src/stm32f7/stm32_serial.c index 78810f52f3..7beff19bde 100644 --- a/arch/arm/src/stm32f7/stm32_serial.c +++ b/arch/arm/src/stm32f7/stm32_serial.c @@ -1967,24 +1967,24 @@ static int up_ioctl(struct file *filep, int cmd, unsigned long arg) #ifdef CONFIG_USART_BREAKS case TIOCSBRK: /* BSD compatibility: Turn break on, unconditionally */ { - uint32_t cr2; + uint32_t cr1; irqstate_t flags; flags = enter_critical_section(); - cr2 = up_serialin(priv, STM32_USART_CR2_OFFSET); - up_serialout(priv, STM32_USART_CR2_OFFSET, cr2 | USART_CR2_LINEN); + cr1 = up_serialin(priv, STM32_USART_CR1_OFFSET); + up_serialout(priv, STM32_USART_CR1_OFFSET, cr1 | USART_CR1_SBK); leave_critical_section(flags); } break; case TIOCCBRK: /* BSD compatibility: Turn break off, unconditionally */ { - uint32_t cr2; + uint32_t cr1; irqstate_t flags; flags = enter_critical_section(); - cr2 = up_serialin(priv, STM32_USART_CR2_OFFSET); - up_serialout(priv, STM32_USART_CR2_OFFSET, cr2 & ~USART_CR2_LINEN); + cr1 = up_serialin(priv, STM32_USART_CR1_OFFSET); + up_serialout(priv, STM32_USART_CR1_OFFSET, cr1 & ~USART_CR1_SBK); leave_critical_section(flags); } break; diff --git a/arch/arm/src/stm32l4/stm32l4_serial.c b/arch/arm/src/stm32l4/stm32l4_serial.c index 8f68409dba..047db9f87e 100644 --- a/arch/arm/src/stm32l4/stm32l4_serial.c +++ b/arch/arm/src/stm32l4/stm32l4_serial.c @@ -1723,24 +1723,24 @@ static int up_ioctl(struct file *filep, int cmd, unsigned long arg) #ifdef CONFIG_USART_BREAKS case TIOCSBRK: /* BSD compatibility: Turn break on, unconditionally */ { - uint32_t cr2; + uint32_t cr1; irqstate_t flags; flags = enter_critical_section(); - cr2 = up_serialin(priv, STM32L4_USART_CR2_OFFSET); - up_serialout(priv, STM32L4_USART_CR2_OFFSET, cr2 | USART_CR2_LINEN); + cr1 = up_serialin(priv, STM32_USART_CR1_OFFSET); + up_serialout(priv, STM32_USART_CR1_OFFSET, cr1 | USART_CR1_SBK); leave_critical_section(flags); } break; case TIOCCBRK: /* BSD compatibility: Turn break off, unconditionally */ { - uint32_t cr2; + uint32_t cr1; irqstate_t flags; flags = enter_critical_section(); - cr2 = up_serialin(priv, STM32L4_USART_CR2_OFFSET); - up_serialout(priv, STM32L4_USART_CR2_OFFSET, cr2 & ~USART_CR2_LINEN); + cr1 = up_serialin(priv, STM32_USART_CR1_OFFSET); + up_serialout(priv, STM32_USART_CR1_OFFSET, cr1 & ~USART_CR1_SBK); leave_critical_section(flags); } break; -- GitLab From 3d87005e5aead0d43351136c628a90d2d9e502f4 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 17 May 2016 12:06:32 -0600 Subject: [PATCH 174/307] Fix some compilation issues when certain combinations of debug options are selected. --- configs/sabre-6quad/README.txt | 17 +++++++++++++++++ sched/init/os_smpstart.c | 1 + sched/sched/sched_note.c | 1 - 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/configs/sabre-6quad/README.txt b/configs/sabre-6quad/README.txt index 6c492857b2..62739fadd0 100644 --- a/configs/sabre-6quad/README.txt +++ b/configs/sabre-6quad/README.txt @@ -13,6 +13,7 @@ Contents - LEDs and Buttons - Using U-Boot to Run NuttX - Debugging with the Segger J-Link + - SMP - Configurations Status @@ -436,6 +437,22 @@ A: Yes with the following modifications to the prodecure above. gdb> mon set pc 0x10800040 gdb> s +SMP +=== + +The i.MX6 6Quad has 4 CPUs. Support is included for testing an SMP +configuration. That configuration is still not yet ready for usage but can +be enabled with the following configuration settings: + + Build Setup: + CONFIG_EXPERIMENTAL=y + + RTOS Features -> Tasks and Scheduling + CONFIG_SPINLOCK=y + CONFIG_SMP=y + CONFIG_SMP_NCPUS=4 + CONFIG_SMP_IDLETHREAD_STACKSIZE=2048 + Configurations ============== diff --git a/sched/init/os_smpstart.c b/sched/init/os_smpstart.c index c8be9c1cb1..5ed82fb878 100644 --- a/sched/init/os_smpstart.c +++ b/sched/init/os_smpstart.c @@ -47,6 +47,7 @@ #include #include #include +#include #include "group/group.h" #include "sched/sched.h" diff --git a/sched/sched/sched_note.c b/sched/sched/sched_note.c index ae414b096f..4dc1bd262e 100644 --- a/sched/sched/sched_note.c +++ b/sched/sched/sched_note.c @@ -516,7 +516,6 @@ ssize_t sched_note_size(void) ssize_t notelen; size_t circlen; - DEBUGASSERT(buffer != NULL); flags = enter_critical_section(); /* Verify that the circular buffer is not empty */ -- GitLab From b11f49e7f15255791746e32aecb6e06838be41e4 Mon Sep 17 00:00:00 2001 From: David Sidrane Date: Tue, 17 May 2016 12:22:25 -1000 Subject: [PATCH 175/307] Support BSD compatible breaks on stm32 U[S]ART --- arch/arm/src/stm32/Kconfig | 19 ++++++++ arch/arm/src/stm32/stm32_serial.c | 72 ++++++++++++++++++++++++++++++- 2 files changed, 89 insertions(+), 2 deletions(-) diff --git a/arch/arm/src/stm32/Kconfig b/arch/arm/src/stm32/Kconfig index 4c4dd327c0..f45579d1dd 100644 --- a/arch/arm/src/stm32/Kconfig +++ b/arch/arm/src/stm32/Kconfig @@ -5634,6 +5634,25 @@ config STM32_FLOWCONTROL_BROKEN nRTS after every byte received) Enable this setting workaround this issue by useing software based management of RTS +config STM32_USART_BREAKS + bool "Add TIOxSBRK to support sending Breaks" + depends on STM32_USART + default n + ---help--- + Add TIOCxBRK routines to send a line break per the STM32 manual, the + break will be a pulse based on the value M. This is not a BSD compatible + break. + +config STM32_SERIALBRK_BSDCOMPAT + bool "Use GPIO To send Break" + depends on STM32_USART && STM32_USART_BREAKS + default n + ---help--- + Enable using GPIO on the TX pin to send a BSD compatible break: + TIOCSBRK will start the break and TIOCCBRK will end the break. + The current STM32 U[S]ARTS have no way to leave the break (TX=LOW) + on because the SW starts the break and then the HW automatically clears + the break. This makes it is difficult to sent a long break. endmenu config STM32_USART_SINGLEWIRE diff --git a/arch/arm/src/stm32/stm32_serial.c b/arch/arm/src/stm32/stm32_serial.c index f58501715e..510523f4be 100644 --- a/arch/arm/src/stm32/stm32_serial.c +++ b/arch/arm/src/stm32/stm32_serial.c @@ -255,6 +255,23 @@ # define PM_IDLE_DOMAIN 0 /* Revisit */ #endif +/* + * Keep track if a Break was set + * + * Note: + * + * 1) This value is set in the priv->ie but never written to the control + * register. It must not collide with USART_CR1_USED_INTS or USART_CR3_EIE + * 2) USART_CR3_EIE is also carried in the up_dev_s ie member. + * + * see up_restoreusartint where the masking is done. + */ + +#ifdef CONFIG_STM32_SERIALBRK_BSDCOMPAT +# define USART_CR1_IE_BREAK_INPROGRESS_SHFTS 15 +# define USART_CR1_IE_BREAK_INPROGRESS (1 << USART_CR1_IE_BREAK_INPROGRESS_SHFTS) +#endif + #ifdef USE_SERIALDRIVER #ifdef HAVE_UART @@ -2057,8 +2074,52 @@ static int up_ioctl(struct file *filep, int cmd, unsigned long arg) break; #endif /* CONFIG_SERIAL_TERMIOS */ -#ifdef CONFIG_USART_BREAKS +#ifdef CONFIG_STM32_USART_BREAKS +# ifdef CONFIG_STM32_SERIALBRK_BSDCOMPAT case TIOCSBRK: /* BSD compatibility: Turn break on, unconditionally */ + { + irqstate_t flags; + uint32_t tx_break; + + flags = enter_critical_section(); + + /* Disable any further tx activity */ + + priv->ie |= USART_CR1_IE_BREAK_INPROGRESS; + + up_txint(dev, false); + + /* Configure TX as a GPIO output pin and Send a break signal*/ + + tx_break = GPIO_OUTPUT | (~(GPIO_MODE_MASK|GPIO_OUTPUT_SET) & priv->tx_gpio); + stm32_configgpio(tx_break); + + leave_critical_section(flags); + } + break; + + case TIOCCBRK: /* BSD compatibility: Turn break off, unconditionally */ + { + uint32_t cr1; + irqstate_t flags; + + flags = enter_critical_section(); + + /* Configure TX back to U(S)ART */ + + stm32_configgpio(priv->tx_gpio); + + priv->ie &= ~USART_CR1_IE_BREAK_INPROGRESS; + + /* Enable further tx activity */ + + up_txint(dev, true); + + leave_critical_section(flags); + } + break; +# else + case TIOCSBRK: /* No BSD compatibility: Turn break on for M bit times */ { uint32_t cr1; irqstate_t flags; @@ -2070,7 +2131,7 @@ static int up_ioctl(struct file *filep, int cmd, unsigned long arg) } break; - case TIOCCBRK: /* BSD compatibility: Turn break off, unconditionally */ + case TIOCCBRK: /* No BSD compatibility: May turn off break too soon */ { uint32_t cr1; irqstate_t flags; @@ -2081,6 +2142,7 @@ static int up_ioctl(struct file *filep, int cmd, unsigned long arg) leave_critical_section(flags); } break; +# endif #endif default: @@ -2469,6 +2531,12 @@ static void up_txint(struct uart_dev_s *dev, bool enable) ie |= USART_CR1_TCIE; } # endif +# ifdef CONFIG_STM32_SERIALBRK_BSDCOMPAT + if (priv->ie & USART_CR1_IE_BREAK_INPROGRESS) + { + return; + } +# endif up_restoreusartint(priv, ie); -- GitLab From 3ffe7c378f36fc46a2a1443850e706361ad7b632 Mon Sep 17 00:00:00 2001 From: David Sidrane Date: Tue, 17 May 2016 13:08:24 -1000 Subject: [PATCH 176/307] Support BSD compatible breaks on stm32f7 U[S]ART --- arch/arm/src/stm32f7/Kconfig | 248 ++++++++++++++++++++++++++++ arch/arm/src/stm32f7/stm32_serial.c | 72 +++++++- 2 files changed, 318 insertions(+), 2 deletions(-) diff --git a/arch/arm/src/stm32f7/Kconfig b/arch/arm/src/stm32f7/Kconfig index d31b3a6ea5..24e3da9946 100644 --- a/arch/arm/src/stm32f7/Kconfig +++ b/arch/arm/src/stm32f7/Kconfig @@ -435,6 +435,254 @@ config STM32F7_WWDG endmenu +menu "U[S]ART Configuration" + depends on STM32F7_USART + +config USART1_RS485 + bool "RS-485 on USART1" + default n + depends on STM32F7_USART1 + ---help--- + Enable RS-485 interface on USART1. Your board config will have to + provide GPIO_USART1_RS485_DIR pin definition. Currently it cannot be + used with USART1_RXDMA. + +config USART1_RS485_DIR_POLARITY + int "USART1 RS-485 DIR pin polarity" + default 1 + range 0 1 + depends on USART1_RS485 + ---help--- + Polarity of DIR pin for RS-485 on USART1. Set to state on DIR pin which + enables TX (0 - low / nTXEN, 1 - high / TXEN). + +config USART1_RXDMA + bool "USART1 Rx DMA" + default n + depends on STM32F7_USART1 && STM32F7_DMA1 + ---help--- + In high data rate usage, Rx DMA may eliminate Rx overrun errors + +config USART2_RS485 + bool "RS-485 on USART2" + default n + depends on STM32F7_USART2 + ---help--- + Enable RS-485 interface on USART2. Your board config will have to + provide GPIO_USART2_RS485_DIR pin definition. Currently it cannot be + used with USART2_RXDMA. + +config USART2_RS485_DIR_POLARITY + int "USART2 RS-485 DIR pin polarity" + default 1 + range 0 1 + depends on USART2_RS485 + ---help--- + Polarity of DIR pin for RS-485 on USART2. Set to state on DIR pin which + enables TX (0 - low / nTXEN, 1 - high / TXEN). + +config USART2_RXDMA + bool "USART2 Rx DMA" + default n + depends on STM32F7_USART2 && STM32F7_DMA1 + ---help--- + In high data rate usage, Rx DMA may eliminate Rx overrun errors + +config USART3_RS485 + bool "RS-485 on USART3" + default n + depends on STM32F7_USART3 + ---help--- + Enable RS-485 interface on USART3. Your board config will have to + provide GPIO_USART3_RS485_DIR pin definition. Currently it cannot be + used with USART3_RXDMA. + +config USART3_RS485_DIR_POLARITY + int "USART3 RS-485 DIR pin polarity" + default 1 + range 0 1 + depends on USART3_RS485 + ---help--- + Polarity of DIR pin for RS-485 on USART3. Set to state on DIR pin which + enables TX (0 - low / nTXEN, 1 - high / TXEN). + +config USART3_RXDMA + bool "USART3 Rx DMA" + default n + depends on STM32F7_USART3 && STM32F7_DMA1 + ---help--- + In high data rate usage, Rx DMA may eliminate Rx overrun errors + +config UART4_RS485 + bool "RS-485 on UART4" + default n + depends on STM32F7_UART4 + ---help--- + Enable RS-485 interface on UART4. Your board config will have to + provide GPIO_UART4_RS485_DIR pin definition. Currently it cannot be + used with UART4_RXDMA. + +config UART4_RS485_DIR_POLARITY + int "UART4 RS-485 DIR pin polarity" + default 1 + range 0 1 + depends on UART4_RS485 + ---help--- + Polarity of DIR pin for RS-485 on UART4. Set to state on DIR pin which + enables TX (0 - low / nTXEN, 1 - high / TXEN). + +config UART4_RXDMA + bool "UART4 Rx DMA" + default n + depends on STM32F7_UART4 && STM32F7_DMA1 + ---help--- + In high data rate usage, Rx DMA may eliminate Rx overrun errors + +config UART5_RS485 + bool "RS-485 on UART5" + default n + depends on STM32F7_UART5 + ---help--- + Enable RS-485 interface on UART5. Your board config will have to + provide GPIO_UART5_RS485_DIR pin definition. Currently it cannot be + used with UART5_RXDMA. + +config UART5_RS485_DIR_POLARITY + int "UART5 RS-485 DIR pin polarity" + default 1 + range 0 1 + depends on UART5_RS485 + ---help--- + Polarity of DIR pin for RS-485 on UART5. Set to state on DIR pin which + enables TX (0 - low / nTXEN, 1 - high / TXEN). + +config UART5_RXDMA + bool "UART5 Rx DMA" + default n + depends on STM32F7_UART5 && STM32F7_DMA1 + ---help--- + In high data rate usage, Rx DMA may eliminate Rx overrun errors + +config USART6_RS485 + bool "RS-485 on USART6" + default n + depends on STM32F7_USART6 + ---help--- + Enable RS-485 interface on USART6. Your board config will have to + provide GPIO_USART6_RS485_DIR pin definition. Currently it cannot be + used with USART6_RXDMA. + +config USART6_RS485_DIR_POLARITY + int "USART6 RS-485 DIR pin polarity" + default 1 + range 0 1 + depends on USART6_RS485 + ---help--- + Polarity of DIR pin for RS-485 on USART6. Set to state on DIR pin which + enables TX (0 - low / nTXEN, 1 - high / TXEN). + +config USART6_RXDMA + bool "USART6 Rx DMA" + default n + depends on STM32F7_USART6 && STM32F7_DMA2 + ---help--- + In high data rate usage, Rx DMA may eliminate Rx overrun errors + +config UART7_RS485 + bool "RS-485 on UART7" + default n + depends on STM32F7_UART7 + ---help--- + Enable RS-485 interface on UART7. Your board config will have to + provide GPIO_UART7_RS485_DIR pin definition. Currently it cannot be + used with UART7_RXDMA. + +config UART7_RS485_DIR_POLARITY + int "UART7 RS-485 DIR pin polarity" + default 1 + range 0 1 + depends on UART7_RS485 + ---help--- + Polarity of DIR pin for RS-485 on UART7. Set to state on DIR pin which + enables TX (0 - low / nTXEN, 1 - high / TXEN). + +config UART7_RXDMA + bool "UART7 Rx DMA" + default n + depends on STM32F7_UART7 && STM32F7_DMA2 + ---help--- + In high data rate usage, Rx DMA may eliminate Rx overrun errors + +config UART8_RS485 + bool "RS-485 on UART8" + default n + depends on STM32F7_UART8 + ---help--- + Enable RS-485 interface on UART8. Your board config will have to + provide GPIO_UART8_RS485_DIR pin definition. Currently it cannot be + used with UART8_RXDMA. + +config UART8_RS485_DIR_POLARITY + int "UART8 RS-485 DIR pin polarity" + default 1 + range 0 1 + depends on UART8_RS485 + ---help--- + Polarity of DIR pin for RS-485 on UART8. Set to state on DIR pin which + enables TX (0 - low / nTXEN, 1 - high / TXEN). + +config UART8_RXDMA + bool "UART8 Rx DMA" + default n + depends on STM32F7_UART8 && STM32F7_DMA2 + ---help--- + In high data rate usage, Rx DMA may eliminate Rx overrun errors + +config SERIAL_DISABLE_REORDERING + bool "Disable reordering of ttySx devices." + depends on STM32F7_USART1 || STM32F7_USART2 || STM32F7_USART3 || STM32F7_UART4 || STM32F7_UART5 || STM32F7_USART6 || STM32F7_UART7 || STM32F7_UART8 + default n + ---help--- + NuttX per default reorders the serial ports (/dev/ttySx) so that the + console is always on /dev/ttyS0. If more than one UART is in use this + can, however, have the side-effect that all port mappings + (hardware USART1 -> /dev/ttyS0) change if the console is moved to another + UART. This is in particular relevant if a project uses the USB console + in some configs and a serial console in other configs, but does not + want the side effect of having all serial port names change when just + the console is moved from serial to USB. + +config STM32F7_FLOWCONTROL_BROKEN + bool "Use Software UART RTS flow control" + depends on STM32F7_USART + default n + ---help--- + Enable UART RTS flow control using Software. Because STM + Current STM32 have broken HW based RTS behavior (they assert + nRTS after every byte received) Enable this setting workaround + this issue by useing software based management of RTS + +config STM32F7_USART_BREAKS + bool "Add TIOxSBRK to support sending Breaks" + depends on STM32F7_USART + default n + ---help--- + Add TIOCxBRK routines to send a line break per the STM32 manual, the + break will be a pulse based on the value M. This is not a BSD compatible + break. + +config STM32F7_SERIALBRK_BSDCOMPAT + bool "Use GPIO To send Break" + depends on STM32F7_USART && STM32F7_USART_BREAKS + default n + ---help--- + Enable using GPIO on the TX pin to send a BSD compatible break: + TIOCSBRK will start the break and TIOCCBRK will end the break. + The current STM32 U[S]ARTS have no way to leave the break (TX=LOW) + on because the SW starts the break and then the HW automatically clears + the break. This makes it is difficult to sent a long break. +endmenu + config STM32F7_CUSTOM_CLOCKCONFIG bool "Custom clock configuration" default n diff --git a/arch/arm/src/stm32f7/stm32_serial.c b/arch/arm/src/stm32f7/stm32_serial.c index 7beff19bde..ad7d80dce0 100644 --- a/arch/arm/src/stm32f7/stm32_serial.c +++ b/arch/arm/src/stm32f7/stm32_serial.c @@ -208,6 +208,23 @@ # define PM_IDLE_DOMAIN 0 /* Revisit */ #endif +/* + * Keep track if a Break was set + * + * Note: + * + * 1) This value is set in the priv->ie but never written to the control + * register. It must not collide with USART_CR1_USED_INTS or USART_CR3_EIE + * 2) USART_CR3_EIE is also carried in the up_dev_s ie member. + * + * see up_restoreusartint where the masking is done. + */ + +#ifdef CONFIG_STM32F7_SERIALBRK_BSDCOMPAT +# define USART_CR1_IE_BREAK_INPROGRESS_SHFTS 15 +# define USART_CR1_IE_BREAK_INPROGRESS (1 << USART_CR1_IE_BREAK_INPROGRESS_SHFTS) +#endif + #ifdef USE_SERIALDRIVER #ifdef HAVE_UART @@ -1964,8 +1981,52 @@ static int up_ioctl(struct file *filep, int cmd, unsigned long arg) break; #endif /* CONFIG_SERIAL_TERMIOS */ -#ifdef CONFIG_USART_BREAKS +#ifdef CONFIG_STM32F7_USART_BREAKS +# ifdef CONFIG_STM32F7_SERIALBRK_BSDCOMPAT case TIOCSBRK: /* BSD compatibility: Turn break on, unconditionally */ + { + irqstate_t flags; + uint32_t tx_break; + + flags = enter_critical_section(); + + /* Disable any further tx activity */ + + priv->ie |= USART_CR1_IE_BREAK_INPROGRESS; + + up_txint(dev, false); + + /* Configure TX as a GPIO output pin and Send a break signal*/ + + tx_break = GPIO_OUTPUT | (~(GPIO_MODE_MASK|GPIO_OUTPUT_SET) & priv->tx_gpio); + stm32_configgpio(tx_break); + + leave_critical_section(flags); + } + break; + + case TIOCCBRK: /* BSD compatibility: Turn break off, unconditionally */ + { + uint32_t cr1; + irqstate_t flags; + + flags = enter_critical_section(); + + /* Configure TX back to U(S)ART */ + + stm32_configgpio(priv->tx_gpio); + + priv->ie &= ~USART_CR1_IE_BREAK_INPROGRESS; + + /* Enable further tx activity */ + + up_txint(dev, true); + + leave_critical_section(flags); + } + break; +# else + case TIOCSBRK: /* No BSD compatibility: Turn break on for M bit times */ { uint32_t cr1; irqstate_t flags; @@ -1977,7 +2038,7 @@ static int up_ioctl(struct file *filep, int cmd, unsigned long arg) } break; - case TIOCCBRK: /* BSD compatibility: Turn break off, unconditionally */ + case TIOCCBRK: /* No BSD compatibility: May turn off break too soon */ { uint32_t cr1; irqstate_t flags; @@ -1988,6 +2049,7 @@ static int up_ioctl(struct file *filep, int cmd, unsigned long arg) leave_critical_section(flags); } break; +# endif #endif default: @@ -2399,6 +2461,12 @@ static void up_txint(struct uart_dev_s *dev, bool enable) ie |= USART_CR1_TCIE; } # endif +# ifdef CONFIG_STM32_SERIALBRK_BSDCOMPAT + if (priv->ie & USART_CR1_IE_BREAK_INPROGRESS) + { + return; + } +# endif up_restoreusartint(priv, ie); -- GitLab From bef5552eba99c5070ec9fb6861200130d4e18562 Mon Sep 17 00:00:00 2001 From: David Sidrane Date: Tue, 17 May 2016 13:08:50 -1000 Subject: [PATCH 177/307] Support BSD compatible breaks on stm32fl4 U[S]ART --- arch/arm/src/stm32l4/Kconfig | 20 ++++++++ arch/arm/src/stm32l4/stm32l4_serial.c | 72 ++++++++++++++++++++++++++- 2 files changed, 90 insertions(+), 2 deletions(-) diff --git a/arch/arm/src/stm32l4/Kconfig b/arch/arm/src/stm32l4/Kconfig index f334ca32bc..11b622785c 100644 --- a/arch/arm/src/stm32l4/Kconfig +++ b/arch/arm/src/stm32l4/Kconfig @@ -782,6 +782,26 @@ config STM32L4_FLOWCONTROL_BROKEN nRTS after every byte received) Enable this setting workaround this issue by useing software based management of RTS +config STM32L4_USART_BREAKS + bool "Add TIOxSBRK to support sending Breaks" + depends on STM32_USART + default n + ---help--- + Add TIOCxBRK routines to send a line break per the STM32 manual, the + break will be a pulse based on the value M. This is not a BSD compatible + break. + +config STM32L4_SERIALBRK_BSDCOMPAT + bool "Use GPIO To send Break" + depends on STM32_USART && STM32_USART_BREAKS + default n + ---help--- + Enable using GPIO on the TX pin to send a BSD compatible break: + TIOCSBRK will start the break and TIOCCBRK will end the break. + The current STM32 U[S]ARTS have no way to leave the break (TX=LOW) + on because the SW starts the break and then the HW automatically clears + the break. This makes it is difficult to sent a long break. + endmenu menu "SPI Configuration" diff --git a/arch/arm/src/stm32l4/stm32l4_serial.c b/arch/arm/src/stm32l4/stm32l4_serial.c index 047db9f87e..629ed59e15 100644 --- a/arch/arm/src/stm32l4/stm32l4_serial.c +++ b/arch/arm/src/stm32l4/stm32l4_serial.c @@ -208,6 +208,23 @@ # define PM_IDLE_DOMAIN 0 /* Revisit */ #endif +/* + * Keep track if a Break was set + * + * Note: + * + * 1) This value is set in the priv->ie but never written to the control + * register. It must not collide with USART_CR1_USED_INTS or USART_CR3_EIE + * 2) USART_CR3_EIE is also carried in the up_dev_s ie member. + * + * see up_restoreusartint where the masking is done. + */ + +#ifdef CONFIG_STM32L4_SERIALBRK_BSDCOMPAT +# define USART_CR1_IE_BREAK_INPROGRESS_SHFTS 15 +# define USART_CR1_IE_BREAK_INPROGRESS (1 << USART_CR1_IE_BREAK_INPROGRESS_SHFTS) +#endif + #ifdef USE_SERIALDRIVER #ifdef HAVE_UART @@ -1720,8 +1737,52 @@ static int up_ioctl(struct file *filep, int cmd, unsigned long arg) break; #endif /* CONFIG_SERIAL_TERMIOS */ -#ifdef CONFIG_USART_BREAKS +#ifdef CONFIG_STM32L4_USART_BREAKS +# ifdef CONFIG_STM32L4_SERIALBRK_BSDCOMPAT case TIOCSBRK: /* BSD compatibility: Turn break on, unconditionally */ + { + irqstate_t flags; + uint32_t tx_break; + + flags = enter_critical_section(); + + /* Disable any further tx activity */ + + priv->ie |= USART_CR1_IE_BREAK_INPROGRESS; + + up_txint(dev, false); + + /* Configure TX as a GPIO output pin and Send a break signal*/ + + tx_break = GPIO_OUTPUT | (~(GPIO_MODE_MASK|GPIO_OUTPUT_SET) & priv->tx_gpio); + stm32_configgpio(tx_break); + + leave_critical_section(flags); + } + break; + + case TIOCCBRK: /* BSD compatibility: Turn break off, unconditionally */ + { + uint32_t cr1; + irqstate_t flags; + + flags = enter_critical_section(); + + /* Configure TX back to U(S)ART */ + + stm32_configgpio(priv->tx_gpio); + + priv->ie &= ~USART_CR1_IE_BREAK_INPROGRESS; + + /* Enable further tx activity */ + + up_txint(dev, true); + + leave_critical_section(flags); + } + break; +# else + case TIOCSBRK: /* No BSD compatibility: Turn break on for M bit times */ { uint32_t cr1; irqstate_t flags; @@ -1733,7 +1794,7 @@ static int up_ioctl(struct file *filep, int cmd, unsigned long arg) } break; - case TIOCCBRK: /* BSD compatibility: Turn break off, unconditionally */ + case TIOCCBRK: /* No BSD compatibility: May turn off break too soon */ { uint32_t cr1; irqstate_t flags; @@ -1744,6 +1805,7 @@ static int up_ioctl(struct file *filep, int cmd, unsigned long arg) leave_critical_section(flags); } break; +# endif #endif default: @@ -2132,6 +2194,12 @@ static void up_txint(struct uart_dev_s *dev, bool enable) ie |= USART_CR1_TCIE; } # endif +# ifdef CONFIG_STM32L4_SERIALBRK_BSDCOMPAT + if (priv->ie & USART_CR1_IE_BREAK_INPROGRESS) + { + return; + } +# endif up_restoreusartint(priv, ie); -- GitLab From 5fc619eb1b2bb3b259f57d97cb9c1565578a27df Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 17 May 2016 17:39:27 -0600 Subject: [PATCH 178/307] Changes from review of last PR --- arch/arm/src/stm32/Kconfig | 3 ++- arch/arm/src/stm32/stm32_serial.c | 17 ++++++++--------- arch/arm/src/stm32f7/Kconfig | 3 ++- arch/arm/src/stm32f7/stm32_serial.c | 17 ++++++++--------- arch/arm/src/stm32l4/Kconfig | 2 +- arch/arm/src/stm32l4/stm32l4_serial.c | 17 ++++++++--------- 6 files changed, 29 insertions(+), 30 deletions(-) diff --git a/arch/arm/src/stm32/Kconfig b/arch/arm/src/stm32/Kconfig index f45579d1dd..aa1d579d66 100644 --- a/arch/arm/src/stm32/Kconfig +++ b/arch/arm/src/stm32/Kconfig @@ -5653,7 +5653,8 @@ config STM32_SERIALBRK_BSDCOMPAT The current STM32 U[S]ARTS have no way to leave the break (TX=LOW) on because the SW starts the break and then the HW automatically clears the break. This makes it is difficult to sent a long break. -endmenu + +endmenu # U[S]ART Configuration config STM32_USART_SINGLEWIRE bool "Single Wire Support" diff --git a/arch/arm/src/stm32/stm32_serial.c b/arch/arm/src/stm32/stm32_serial.c index 510523f4be..ac3fd76b14 100644 --- a/arch/arm/src/stm32/stm32_serial.c +++ b/arch/arm/src/stm32/stm32_serial.c @@ -255,8 +255,7 @@ # define PM_IDLE_DOMAIN 0 /* Revisit */ #endif -/* - * Keep track if a Break was set +/* Keep track if a Break was set * * Note: * @@ -264,12 +263,12 @@ * register. It must not collide with USART_CR1_USED_INTS or USART_CR3_EIE * 2) USART_CR3_EIE is also carried in the up_dev_s ie member. * - * see up_restoreusartint where the masking is done. + * See up_restoreusartint where the masking is done. */ #ifdef CONFIG_STM32_SERIALBRK_BSDCOMPAT -# define USART_CR1_IE_BREAK_INPROGRESS_SHFTS 15 -# define USART_CR1_IE_BREAK_INPROGRESS (1 << USART_CR1_IE_BREAK_INPROGRESS_SHFTS) +# define USART_CR1_IE_BREAK_INPROGRESS_SHFTS 15 +# define USART_CR1_IE_BREAK_INPROGRESS (1 << USART_CR1_IE_BREAK_INPROGRESS_SHFTS) #endif #ifdef USE_SERIALDRIVER @@ -2075,7 +2074,7 @@ static int up_ioctl(struct file *filep, int cmd, unsigned long arg) #endif /* CONFIG_SERIAL_TERMIOS */ #ifdef CONFIG_STM32_USART_BREAKS -# ifdef CONFIG_STM32_SERIALBRK_BSDCOMPAT +# ifdef CONFIG_STM32_SERIALBRK_BSDCOMPAT case TIOCSBRK: /* BSD compatibility: Turn break on, unconditionally */ { irqstate_t flags; @@ -2100,7 +2099,6 @@ static int up_ioctl(struct file *filep, int cmd, unsigned long arg) case TIOCCBRK: /* BSD compatibility: Turn break off, unconditionally */ { - uint32_t cr1; irqstate_t flags; flags = enter_critical_section(); @@ -2118,7 +2116,7 @@ static int up_ioctl(struct file *filep, int cmd, unsigned long arg) leave_critical_section(flags); } break; -# else +# else case TIOCSBRK: /* No BSD compatibility: Turn break on for M bit times */ { uint32_t cr1; @@ -2142,7 +2140,7 @@ static int up_ioctl(struct file *filep, int cmd, unsigned long arg) leave_critical_section(flags); } break; -# endif +# endif #endif default: @@ -2531,6 +2529,7 @@ static void up_txint(struct uart_dev_s *dev, bool enable) ie |= USART_CR1_TCIE; } # endif + # ifdef CONFIG_STM32_SERIALBRK_BSDCOMPAT if (priv->ie & USART_CR1_IE_BREAK_INPROGRESS) { diff --git a/arch/arm/src/stm32f7/Kconfig b/arch/arm/src/stm32f7/Kconfig index 24e3da9946..ce9edbfc22 100644 --- a/arch/arm/src/stm32f7/Kconfig +++ b/arch/arm/src/stm32f7/Kconfig @@ -681,7 +681,8 @@ config STM32F7_SERIALBRK_BSDCOMPAT The current STM32 U[S]ARTS have no way to leave the break (TX=LOW) on because the SW starts the break and then the HW automatically clears the break. This makes it is difficult to sent a long break. -endmenu + +endmenu # U[S]ART Configuration config STM32F7_CUSTOM_CLOCKCONFIG bool "Custom clock configuration" diff --git a/arch/arm/src/stm32f7/stm32_serial.c b/arch/arm/src/stm32f7/stm32_serial.c index ad7d80dce0..c429bd5ca6 100644 --- a/arch/arm/src/stm32f7/stm32_serial.c +++ b/arch/arm/src/stm32f7/stm32_serial.c @@ -208,8 +208,7 @@ # define PM_IDLE_DOMAIN 0 /* Revisit */ #endif -/* - * Keep track if a Break was set +/* Keep track if a Break was set * * Note: * @@ -217,12 +216,12 @@ * register. It must not collide with USART_CR1_USED_INTS or USART_CR3_EIE * 2) USART_CR3_EIE is also carried in the up_dev_s ie member. * - * see up_restoreusartint where the masking is done. + * See up_restoreusartint where the masking is done. */ #ifdef CONFIG_STM32F7_SERIALBRK_BSDCOMPAT -# define USART_CR1_IE_BREAK_INPROGRESS_SHFTS 15 -# define USART_CR1_IE_BREAK_INPROGRESS (1 << USART_CR1_IE_BREAK_INPROGRESS_SHFTS) +# define USART_CR1_IE_BREAK_INPROGRESS_SHFTS 15 +# define USART_CR1_IE_BREAK_INPROGRESS (1 << USART_CR1_IE_BREAK_INPROGRESS_SHFTS) #endif #ifdef USE_SERIALDRIVER @@ -1982,7 +1981,7 @@ static int up_ioctl(struct file *filep, int cmd, unsigned long arg) #endif /* CONFIG_SERIAL_TERMIOS */ #ifdef CONFIG_STM32F7_USART_BREAKS -# ifdef CONFIG_STM32F7_SERIALBRK_BSDCOMPAT +# ifdef CONFIG_STM32F7_SERIALBRK_BSDCOMPAT case TIOCSBRK: /* BSD compatibility: Turn break on, unconditionally */ { irqstate_t flags; @@ -2007,7 +2006,6 @@ static int up_ioctl(struct file *filep, int cmd, unsigned long arg) case TIOCCBRK: /* BSD compatibility: Turn break off, unconditionally */ { - uint32_t cr1; irqstate_t flags; flags = enter_critical_section(); @@ -2025,7 +2023,7 @@ static int up_ioctl(struct file *filep, int cmd, unsigned long arg) leave_critical_section(flags); } break; -# else +# else case TIOCSBRK: /* No BSD compatibility: Turn break on for M bit times */ { uint32_t cr1; @@ -2049,7 +2047,7 @@ static int up_ioctl(struct file *filep, int cmd, unsigned long arg) leave_critical_section(flags); } break; -# endif +# endif #endif default: @@ -2461,6 +2459,7 @@ static void up_txint(struct uart_dev_s *dev, bool enable) ie |= USART_CR1_TCIE; } # endif + # ifdef CONFIG_STM32_SERIALBRK_BSDCOMPAT if (priv->ie & USART_CR1_IE_BREAK_INPROGRESS) { diff --git a/arch/arm/src/stm32l4/Kconfig b/arch/arm/src/stm32l4/Kconfig index 11b622785c..40b93d3e89 100644 --- a/arch/arm/src/stm32l4/Kconfig +++ b/arch/arm/src/stm32l4/Kconfig @@ -802,7 +802,7 @@ config STM32L4_SERIALBRK_BSDCOMPAT on because the SW starts the break and then the HW automatically clears the break. This makes it is difficult to sent a long break. -endmenu +endmenu # U[S]ART Configuration menu "SPI Configuration" depends on STM32L4_SPI diff --git a/arch/arm/src/stm32l4/stm32l4_serial.c b/arch/arm/src/stm32l4/stm32l4_serial.c index 629ed59e15..06d7ce00f4 100644 --- a/arch/arm/src/stm32l4/stm32l4_serial.c +++ b/arch/arm/src/stm32l4/stm32l4_serial.c @@ -208,8 +208,7 @@ # define PM_IDLE_DOMAIN 0 /* Revisit */ #endif -/* - * Keep track if a Break was set +/* Keep track if a Break was set * * Note: * @@ -217,12 +216,12 @@ * register. It must not collide with USART_CR1_USED_INTS or USART_CR3_EIE * 2) USART_CR3_EIE is also carried in the up_dev_s ie member. * - * see up_restoreusartint where the masking is done. + * See up_restoreusartint where the masking is done. */ #ifdef CONFIG_STM32L4_SERIALBRK_BSDCOMPAT -# define USART_CR1_IE_BREAK_INPROGRESS_SHFTS 15 -# define USART_CR1_IE_BREAK_INPROGRESS (1 << USART_CR1_IE_BREAK_INPROGRESS_SHFTS) +# define USART_CR1_IE_BREAK_INPROGRESS_SHFTS 15 +# define USART_CR1_IE_BREAK_INPROGRESS (1 << USART_CR1_IE_BREAK_INPROGRESS_SHFTS) #endif #ifdef USE_SERIALDRIVER @@ -1738,7 +1737,7 @@ static int up_ioctl(struct file *filep, int cmd, unsigned long arg) #endif /* CONFIG_SERIAL_TERMIOS */ #ifdef CONFIG_STM32L4_USART_BREAKS -# ifdef CONFIG_STM32L4_SERIALBRK_BSDCOMPAT +# ifdef CONFIG_STM32L4_SERIALBRK_BSDCOMPAT case TIOCSBRK: /* BSD compatibility: Turn break on, unconditionally */ { irqstate_t flags; @@ -1763,7 +1762,6 @@ static int up_ioctl(struct file *filep, int cmd, unsigned long arg) case TIOCCBRK: /* BSD compatibility: Turn break off, unconditionally */ { - uint32_t cr1; irqstate_t flags; flags = enter_critical_section(); @@ -1781,7 +1779,7 @@ static int up_ioctl(struct file *filep, int cmd, unsigned long arg) leave_critical_section(flags); } break; -# else +# else case TIOCSBRK: /* No BSD compatibility: Turn break on for M bit times */ { uint32_t cr1; @@ -1805,7 +1803,7 @@ static int up_ioctl(struct file *filep, int cmd, unsigned long arg) leave_critical_section(flags); } break; -# endif +# endif #endif default: @@ -2194,6 +2192,7 @@ static void up_txint(struct uart_dev_s *dev, bool enable) ie |= USART_CR1_TCIE; } # endif + # ifdef CONFIG_STM32L4_SERIALBRK_BSDCOMPAT if (priv->ie & USART_CR1_IE_BREAK_INPROGRESS) { -- GitLab From f444f061d65960b22a95e122bf2b3ac7184c5356 Mon Sep 17 00:00:00 2001 From: David Sidrane Date: Tue, 17 May 2016 14:04:51 -1000 Subject: [PATCH 179/307] Fixed Break changes needed CONFIG_SERIAL_TERMIOS to build --- arch/arm/src/stm32/stm32_serial.c | 5 +++-- arch/arm/src/stm32f7/stm32_serial.c | 5 +++-- arch/arm/src/stm32l4/stm32l4_serial.c | 5 +++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/arch/arm/src/stm32/stm32_serial.c b/arch/arm/src/stm32/stm32_serial.c index 510523f4be..b79d72419d 100644 --- a/arch/arm/src/stm32/stm32_serial.c +++ b/arch/arm/src/stm32/stm32_serial.c @@ -1914,11 +1914,12 @@ static int up_interrupt_common(struct up_dev_s *priv) static int up_ioctl(struct file *filep, int cmd, unsigned long arg) { -#if defined(CONFIG_SERIAL_TERMIOS) || defined(CONFIG_SERIAL_TIOCSERGSTRUCT) +#if defined(CONFIG_SERIAL_TERMIOS) || defined(CONFIG_SERIAL_TIOCSERGSTRUCT) \ + || defined(CONFIG_STM32F7_SERIALBRK_BSDCOMPAT) struct inode *inode = filep->f_inode; struct uart_dev_s *dev = inode->i_private; #endif -#ifdef CONFIG_SERIAL_TERMIOS +#if defined(CONFIG_SERIAL_TERMIOS) || defined(CONFIG_STM32F7_SERIALBRK_BSDCOMPAT) struct up_dev_s *priv = (struct up_dev_s *)dev->priv; #endif int ret = OK; diff --git a/arch/arm/src/stm32f7/stm32_serial.c b/arch/arm/src/stm32f7/stm32_serial.c index ad7d80dce0..7e18869060 100644 --- a/arch/arm/src/stm32f7/stm32_serial.c +++ b/arch/arm/src/stm32f7/stm32_serial.c @@ -1834,11 +1834,12 @@ static int up_interrupt_common(struct up_dev_s *priv) static int up_ioctl(struct file *filep, int cmd, unsigned long arg) { -#if defined(CONFIG_SERIAL_TERMIOS) || defined(CONFIG_SERIAL_TIOCSERGSTRUCT) +#if defined(CONFIG_SERIAL_TERMIOS) || defined(CONFIG_SERIAL_TIOCSERGSTRUCT) \ + || defined(CONFIG_STM32F7_SERIALBRK_BSDCOMPAT) struct inode *inode = filep->f_inode; struct uart_dev_s *dev = inode->i_private; #endif -#ifdef CONFIG_SERIAL_TERMIOS +#if defined(CONFIG_SERIAL_TERMIOS) || defined(CONFIG_STM32F7_SERIALBRK_BSDCOMPAT) struct up_dev_s *priv = (struct up_dev_s *)dev->priv; #endif int ret = OK; diff --git a/arch/arm/src/stm32l4/stm32l4_serial.c b/arch/arm/src/stm32l4/stm32l4_serial.c index 629ed59e15..6a9ef972d2 100644 --- a/arch/arm/src/stm32l4/stm32l4_serial.c +++ b/arch/arm/src/stm32l4/stm32l4_serial.c @@ -1577,11 +1577,12 @@ static int up_interrupt_common(struct up_dev_s *priv) static int up_ioctl(struct file *filep, int cmd, unsigned long arg) { -#if defined(CONFIG_SERIAL_TERMIOS) || defined(CONFIG_SERIAL_TIOCSERGSTRUCT) +#if defined(CONFIG_SERIAL_TERMIOS) || defined(CONFIG_SERIAL_TIOCSERGSTRUCT) \ + || defined(CONFIG_STM32F7_SERIALBRK_BSDCOMPAT) struct inode *inode = filep->f_inode; struct uart_dev_s *dev = inode->i_private; #endif -#ifdef CONFIG_SERIAL_TERMIOS +#if defined(CONFIG_SERIAL_TERMIOS) || defined(CONFIG_STM32F7_SERIALBRK_BSDCOMPAT) struct up_dev_s *priv = (struct up_dev_s *)dev->priv; #endif int ret = OK; -- GitLab From 32838fcc2cfc4eb31d5e0f8a19f450ef2979f9be Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 18 May 2016 08:21:28 -0600 Subject: [PATCH 180/307] enter/leave_critical_section: In SMP configuration, may attempt to access the task lists before they have been initialized --- include/nuttx/init.h | 31 ++++++------ sched/init/os_start.c | 4 ++ sched/irq/irq_csection.c | 101 ++++++++++++++++++++------------------- 3 files changed, 72 insertions(+), 64 deletions(-) diff --git a/include/nuttx/init.h b/include/nuttx/init.h index cc1f4f72a9..54eb9033d0 100644 --- a/include/nuttx/init.h +++ b/include/nuttx/init.h @@ -65,21 +65,22 @@ enum os_initstate_e { - OSINIT_POWERUP = 0, /* Power-up. No initialization yet performed. - * Depends on .bss initialization logic for this - * value. */ - OSINIT_BOOT = 1, /* Basic boot up initialization is complete. OS - * services and hardware resources are not yet - * available. */ - OSINIT_MEMORY = 2, /* The memory manager has been initialized */ - OSINIT_HARDWARE = 3, /* MCU-specific hardware is initialized. Hardware - * resources such as timers and device drivers are - * now avaiable. Low-level OS services sufficient - * to support the hardware are also available but - * the OS has not yet completed its full - * initialization. */ - OSINIT_OSREADY = 4 /* The OS is fully initialized and multi-tasking is - * active. */ + OSINIT_POWERUP = 0, /* Power-up. No initialization yet performed. + * Depends on .bss initialization logic for this + * value. */ + OSINIT_BOOT = 1, /* Basic boot up initialization is complete. OS + * services and hardware resources are not yet + * available. */ + OSINIT_TASKLISTS = 2, /* Head of ready-to-run/assigned task lists valid */ + OSINIT_MEMORY = 3, /* The memory manager has been initialized */ + OSINIT_HARDWARE = 4, /* MCU-specific hardware is initialized. Hardware + * resources such as timers and device drivers are + * now avaiable. Low-level OS services sufficient + * to support the hardware are also available but + * the OS has not yet completed its full + * initialization. */ + OSINIT_OSREADY = 5 /* The OS is fully initialized and multi-tasking is + * active. */ }; /**************************************************************************** diff --git a/sched/init/os_start.c b/sched/init/os_start.c index a8456c008a..5a50c1b2fc 100644 --- a/sched/init/os_start.c +++ b/sched/init/os_start.c @@ -530,6 +530,10 @@ void os_start(void) up_initial_state(&g_idletcb[cpu].cmn); } + /* Task lists are initialized */ + + g_os_initstate = OSINIT_TASKLISTS; + /* Initialize RTOS facilities *********************************************/ /* Initialize the semaphore facility. This has to be done very early * because many subsystems depend upon fully functional semaphores. diff --git a/sched/irq/irq_csection.c b/sched/irq/irq_csection.c index 573e193039..4cc2412ae7 100644 --- a/sched/irq/irq_csection.c +++ b/sched/irq/irq_csection.c @@ -41,6 +41,7 @@ #include +#include #include #include #include @@ -86,54 +87,50 @@ irqstate_t enter_critical_section(void) { FAR struct tcb_s *rtcb; - /* Do nothing if called from an interrupt handler */ + /* Check if we were called from an interrupt handler and that the tasks + * lists have been initialized. + */ - if (up_interrupt_context()) + if (!up_interrupt_context() && g_os_initstate >= OSINIT_TASKLISTS) { - /* The value returned does not matter. We assume only that it is a - * scalar here. - */ - - return (irqstate_t)0; - } + /* Do we already have interrupts disabled? */ - /* Do we already have interrupts disabled? */ - - rtcb = this_task(); - DEBUGASSERT(rtcb != NULL); + rtcb = this_task(); + DEBUGASSERT(rtcb != NULL); - if (rtcb->irqcount > 0) - { - /* Yes... make sure that the spinlock is set and increment the IRQ - * lock count. - */ + if (rtcb->irqcount > 0) + { + /* Yes... make sure that the spinlock is set and increment the IRQ + * lock count. + */ - DEBUGASSERT(g_cpu_irqlock == SP_LOCKED && rtcb->irqcount < INT16_MAX); - rtcb->irqcount++; - } - else - { - /* NO.. Take the spinlock to get exclusive access and set the lock - * count to 1. - * - * We must avoid that case where a context occurs between taking the - * g_cpu_irqlock and disabling interrupts. Also interrupts disables - * must follow a stacked order. We cannot other context switches to - * re-order the enabling/disabling of interrupts. - * - * The scheduler accomplishes this by treating the irqcount like - * lockcount: Both will disable pre-emption. - */ + DEBUGASSERT(g_cpu_irqlock == SP_LOCKED && rtcb->irqcount < INT16_MAX); + rtcb->irqcount++; + } + else + { + /* NO.. Take the spinlock to get exclusive access and set the lock + * count to 1. + * + * We must avoid that case where a context occurs between taking the + * g_cpu_irqlock and disabling interrupts. Also interrupts disables + * must follow a stacked order. We cannot other context switches to + * re-order the enabling/disabling of interrupts. + * + * The scheduler accomplishes this by treating the irqcount like + * lockcount: Both will disable pre-emption. + */ - spin_setbit(&g_cpu_irqset, this_cpu(), &g_cpu_irqsetlock, - &g_cpu_irqlock); - rtcb->irqcount = 1; + spin_setbit(&g_cpu_irqset, this_cpu(), &g_cpu_irqsetlock, + &g_cpu_irqlock); + rtcb->irqcount = 1; #ifdef CONFIG_SCHED_INSTRUMENTATION_CSECTION - /* Note that we have entered the critical section */ + /* Note that we have entered the critical section */ - sched_note_csection(rtcb, true); + sched_note_csection(rtcb, true); #endif + } } /* Then disable interrupts (they may already be disabled, be we need to @@ -145,9 +142,11 @@ irqstate_t enter_critical_section(void) #else /* defined(CONFIG_SCHED_INSTRUMENTATION_CSECTION) */ irqstate_t enter_critical_section(void) { - /* Check if we were called from an interrupt handler */ + /* Check if we were called from an interrupt handler and that the tasks + * lists have been initialized. + */ - if (!up_interrupt_context()) + if (!up_interrupt_context() && g_os_initstate >= OSINIT_TASKLISTS) { FAR struct tcb_s *rtcb = this_task(); DEBUGASSERT(rtcb != NULL); @@ -175,9 +174,11 @@ irqstate_t enter_critical_section(void) #ifdef CONFIG_SMP void leave_critical_section(irqstate_t flags) { - /* Do nothing if called from an interrupt handler */ + /* Check if we were called from an interrupt handler and that the tasks + * lists have been initialized. + */ - if (!up_interrupt_context()) + if (!up_interrupt_context() && g_os_initstate >= OSINIT_TASKLISTS) { FAR struct tcb_s *rtcb = this_task(); DEBUGASSERT(rtcb != 0 && rtcb->irqcount > 0); @@ -229,20 +230,22 @@ void leave_critical_section(irqstate_t flags) } } } + } - /* Restore the previous interrupt state which may still be interrupts - * disabled (but we don't have a mechanism to verify that now) - */ + /* Restore the previous interrupt state which may still be interrupts + * disabled (but we don't have a mechanism to verify that now) + */ - up_irq_restore(flags); - } + up_irq_restore(flags); } #else /* defined(CONFIG_SCHED_INSTRUMENTATION_CSECTION) */ void leave_critical_section(irqstate_t flags) { - /* Check if we were called from an interrupt handler */ + /* Check if we were called from an interrupt handler and that the tasks + * lists have been initialized. + */ - if (!up_interrupt_context()) + if (!up_interrupt_context() && g_os_initstate >= OSINIT_TASKLISTS) { FAR struct tcb_s *rtcb = this_task(); DEBUGASSERT(rtcb != NULL); -- GitLab From f454b38d6ed1dec77ae6ebcf2f17991950814468 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 18 May 2016 08:35:27 -0600 Subject: [PATCH 181/307] ARMv7-A SMP: Allow CONFIG_SMP_NCPUS=1 for testing purposes --- arch/arm/src/armv7-a/arm_cpuidlestack.c | 8 ++++++-- configs/sabre-6quad/README.txt | 4 ++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/arch/arm/src/armv7-a/arm_cpuidlestack.c b/arch/arm/src/armv7-a/arm_cpuidlestack.c index 09e9f0d12e..dd264d25c1 100644 --- a/arch/arm/src/armv7-a/arm_cpuidlestack.c +++ b/arch/arm/src/armv7-a/arm_cpuidlestack.c @@ -47,7 +47,7 @@ #include "smp.h" #include "up_internal.h" -#if defined(CONFIG_SMP) && CONFIG_SMP_NCPUS > 1 +#ifdef CONFIG_SMP /**************************************************************************** * Pre-processor Definitions @@ -61,6 +61,7 @@ * Private Data ****************************************************************************/ +#if CONFIG_SMP_NCPUS > 1 static FAR const uint32_t *g_cpu_stackalloc[CONFIG_SMP_NCPUS] = { 0 @@ -72,6 +73,7 @@ static FAR const uint32_t *g_cpu_stackalloc[CONFIG_SMP_NCPUS] = #endif /* CONFIG_SMP_NCPUS > 3 */ #endif /* CONFIG_SMP_NCPUS > 2 */ }; +#endif /**************************************************************************** * Public Functions @@ -122,6 +124,7 @@ static FAR const uint32_t *g_cpu_stackalloc[CONFIG_SMP_NCPUS] = int up_cpu_idlestack(int cpu, FAR struct tcb_s *tcb, size_t stack_size) { +#if CONFIG_SMP_NCPUS > 1 uintptr_t stack_alloc; uintptr_t top_of_stack; @@ -138,8 +141,9 @@ int up_cpu_idlestack(int cpu, FAR struct tcb_s *tcb, size_t stack_size) tcb->adj_stack_size = SMP_STACK_SIZE; tcb->stack_alloc_ptr = (FAR uint32_t *)stack_alloc; tcb->adj_stack_ptr = (FAR uint32_t *)top_of_stack; +#endif return OK; } -#endif /* CONFIG_SMP && CONFIG_SMP_NCPUS > 1 */ +#endif /* CONFIG_SMP */ diff --git a/configs/sabre-6quad/README.txt b/configs/sabre-6quad/README.txt index 62739fadd0..462fbad32a 100644 --- a/configs/sabre-6quad/README.txt +++ b/configs/sabre-6quad/README.txt @@ -63,6 +63,10 @@ logic. At this point, I would say that the basic NSH port is complete. +2016-05-18: Started looking at the SMP configuration. Initially, I verfied +that the NSH configuration works with CONFIG_SMP_NCPUS=1. Not a very +interesting case, but this does exercise a lot of the basic SMP logic. + Platform Features ================= -- GitLab From f7fd8c6539bfab4bd7382e4ae6f9ebfc1a01c0ef Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 18 May 2016 11:56:19 -0600 Subject: [PATCH 182/307] Trivial typo fix --- configs/sabre-6quad/README.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configs/sabre-6quad/README.txt b/configs/sabre-6quad/README.txt index 462fbad32a..d265d9907c 100644 --- a/configs/sabre-6quad/README.txt +++ b/configs/sabre-6quad/README.txt @@ -45,7 +45,7 @@ driver serial output to the VCOM console is working (llsyslog). However, there does not appear to be any interrupt activity: No timer interrupts, no interrupt driver serial console output (syslog, printf). -2016-05-16: I know get serial interrupts (but not timer interrupts). This +2016-05-16: I now get serial interrupts (but not timer interrupts). This involves a few changes to GIC bit settings that I do not fully understand. With this change, the NSH serial console works: -- GitLab From 4e71c4c9efebc4772fdfe44ebccce78c31b87d29 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 18 May 2016 12:49:07 -0600 Subject: [PATCH 183/307] Correct some typos in comments --- libc/stdio/lib_lowinstream.c | 4 ++-- libc/stdio/lib_lowoutstream.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/libc/stdio/lib_lowinstream.c b/libc/stdio/lib_lowinstream.c index 8964b56749..ad3231784d 100644 --- a/libc/stdio/lib_lowinstream.c +++ b/libc/stdio/lib_lowinstream.c @@ -85,8 +85,8 @@ static int lowinstream_getc(FAR struct lib_instream_s *this) * Initializes a stream for use with low-level, architecture-specific I/O. * * Input parameters: - * lowoutstream - User allocated, uninitialized instance of struct - * lib_lowoutstream_s to be initialized. + * stream - User allocated, uninitialized instance of struct + * lib_lowinstream_s to be initialized. * * Returned Value: * None (User allocated instance initialized). diff --git a/libc/stdio/lib_lowoutstream.c b/libc/stdio/lib_lowoutstream.c index 91604c90c4..788f3f1814 100644 --- a/libc/stdio/lib_lowoutstream.c +++ b/libc/stdio/lib_lowoutstream.c @@ -77,8 +77,8 @@ static void lowoutstream_putc(FAR struct lib_outstream_s *this, int ch) * Initializes a stream for use with low-level, architecture-specific I/O. * * Input parameters: - * lowoutstream - User allocated, uninitialized instance of struct - * lib_lowoutstream_s to be initialized. + * stream - User allocated, uninitialized instance of struct + * lib_lowoutstream_s to be initialized. * * Returned Value: * None (User allocated instance initialized). -- GitLab From ca04284750db223e16ff6b9667f8d9769185172b Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 18 May 2016 13:00:36 -0600 Subject: [PATCH 184/307] Remove comment blocks for empty file sections --- libc/syslog/lib_lowsyslog.c | 32 -------------------------------- libc/syslog/lib_setlogmask.c | 4 ---- libc/syslog/syslog.h | 8 -------- 3 files changed, 44 deletions(-) diff --git a/libc/syslog/lib_lowsyslog.c b/libc/syslog/lib_lowsyslog.c index 1ea8540781..8c9c84c177 100644 --- a/libc/syslog/lib_lowsyslog.c +++ b/libc/syslog/lib_lowsyslog.c @@ -48,38 +48,6 @@ #if defined(CONFIG_ARCH_LOWPUTC) || defined(CONFIG_SYSLOG) -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Public Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Public Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Public Data - ****************************************************************************/ - -/**************************************************************************** - * Private Constant Data - ****************************************************************************/ - -/**************************************************************************** - * Private Data - ****************************************************************************/ - /**************************************************************************** * Private Functions ****************************************************************************/ diff --git a/libc/syslog/lib_setlogmask.c b/libc/syslog/lib_setlogmask.c index 2179b7b6a9..84352411bd 100644 --- a/libc/syslog/lib_setlogmask.c +++ b/libc/syslog/lib_setlogmask.c @@ -46,10 +46,6 @@ #include "syslog/syslog.h" -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - /**************************************************************************** * Public Data ****************************************************************************/ diff --git a/libc/syslog/syslog.h b/libc/syslog/syslog.h index eb31ebd84b..3188d3f2d6 100644 --- a/libc/syslog/syslog.h +++ b/libc/syslog/syslog.h @@ -43,14 +43,6 @@ #include #include -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Public Types - ****************************************************************************/ - /**************************************************************************** * Public Data ****************************************************************************/ -- GitLab From 104b6956453f913c21d2fb7c2e3f7ed7934545d9 Mon Sep 17 00:00:00 2001 From: Alan Carvalho de Assis Date: Wed, 18 May 2016 13:33:17 -0600 Subject: [PATCH 185/307] configs: Add support for the generic STM32F103CBT6 Minimum Board --- Documentation/README.html | 4 +- README.txt | 2 + configs/Kconfig | 11 + configs/README.txt | 3 + configs/stm32f103-minimum/Kconfig | 7 + configs/stm32f103-minimum/README.txt | 372 ++++++ configs/stm32f103-minimum/include/board.h | 196 +++ configs/stm32f103-minimum/nsh/Make.defs | 113 ++ configs/stm32f103-minimum/nsh/defconfig | 1096 ++++++++++++++++ configs/stm32f103-minimum/nsh/setenv.sh | 100 ++ configs/stm32f103-minimum/scripts/ld.script | 119 ++ configs/stm32f103-minimum/src/.gitignore | 2 + configs/stm32f103-minimum/src/Makefile | 50 + configs/stm32f103-minimum/src/stm32_appinit.c | 67 + .../stm32f103-minimum/src/stm32_autoleds.c | 140 ++ configs/stm32f103-minimum/src/stm32_boot.c | 89 ++ configs/stm32f103-minimum/src/stm32_spi.c | 148 +++ configs/stm32f103-minimum/src/stm32_usbdev.c | 107 ++ .../stm32f103-minimum/src/stm32_watchdog.c | 140 ++ .../stm32f103-minimum/src/stm32f103_minimum.h | 102 ++ configs/stm32f103-minimum/usbnsh/Make.defs | 113 ++ configs/stm32f103-minimum/usbnsh/defconfig | 1124 +++++++++++++++++ configs/stm32f103-minimum/usbnsh/setenv.sh | 72 ++ 23 files changed, 4176 insertions(+), 1 deletion(-) create mode 100644 configs/stm32f103-minimum/Kconfig create mode 100644 configs/stm32f103-minimum/README.txt create mode 100644 configs/stm32f103-minimum/include/board.h create mode 100644 configs/stm32f103-minimum/nsh/Make.defs create mode 100644 configs/stm32f103-minimum/nsh/defconfig create mode 100644 configs/stm32f103-minimum/nsh/setenv.sh create mode 100644 configs/stm32f103-minimum/scripts/ld.script create mode 100644 configs/stm32f103-minimum/src/.gitignore create mode 100644 configs/stm32f103-minimum/src/Makefile create mode 100644 configs/stm32f103-minimum/src/stm32_appinit.c create mode 100644 configs/stm32f103-minimum/src/stm32_autoleds.c create mode 100644 configs/stm32f103-minimum/src/stm32_boot.c create mode 100644 configs/stm32f103-minimum/src/stm32_spi.c create mode 100644 configs/stm32f103-minimum/src/stm32_usbdev.c create mode 100644 configs/stm32f103-minimum/src/stm32_watchdog.c create mode 100644 configs/stm32f103-minimum/src/stm32f103_minimum.h create mode 100644 configs/stm32f103-minimum/usbnsh/Make.defs create mode 100644 configs/stm32f103-minimum/usbnsh/defconfig create mode 100644 configs/stm32f103-minimum/usbnsh/setenv.sh diff --git a/Documentation/README.html b/Documentation/README.html index ce2d5eef2a..2e51d5b9ff 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -8,7 +8,7 @@

      NuttX README Files

      -

      Last Updated: May 12, 2016

      +

      Last Updated: May 18, 2016

      @@ -251,6 +251,8 @@ nuttx/ | | `- README.txt | |- stm32_tiny/ | | `- README.txt + | |- stm32f103-minumum/ + | | `- README.txt | |- stm32f3discovery/ | | `- README.txt | |- stm32f4discovery/ diff --git a/README.txt b/README.txt index ed3d0141f5..3b7043f1cd 100644 --- a/README.txt +++ b/README.txt @@ -1426,6 +1426,8 @@ nuttx/ | | `- README.txt | |- stm32_tiny/ | | `- README.txt + | |- stm32f103-minumum/ + | | `- README.txt | |- stm32f3discovery/ | | `- README.txt | |- stm32f4discovery/ diff --git a/configs/Kconfig b/configs/Kconfig index c2d650557c..aea6074bdd 100644 --- a/configs/Kconfig +++ b/configs/Kconfig @@ -906,6 +906,13 @@ config ARCH_BOARD_STM32_TINY STM32F103C8T6 micro-controller chip, and is (always ?) bundled with an nRF24L01+ wireless module. +config ARCH_BOARD_STM32F103_MINIMUM + bool "STM32F103C8T6 Minimum ARM Development Board" + depends on ARCH_CHIP_STM32F103C8 + select ARCH_HAVE_LEDS + ---help--- + A configuration for the STM32F103 Minimum board. + config ARCH_BOARD_STM3210E_EVAL bool "STMicro STM3210E-EVAL development board" depends on ARCH_CHIP_STM32F103ZE @@ -1399,6 +1406,7 @@ config ARCH_BOARD default "skp16c26" if ARCH_BOARD_SKP16C26 default "spark" if ARCH_BOARD_SPARK default "stm32_tiny" if ARCH_BOARD_STM32_TINY + default "stm32f103-minimum" if ARCH_BOARD_STM32F103_MINIMUM default "stm3210e-eval" if ARCH_BOARD_STM3210E_EVAL default "stm3220g-eval" if ARCH_BOARD_STM3220G_EVAL default "stm3240g-eval" if ARCH_BOARD_STM3240G_EVAL @@ -1756,6 +1764,9 @@ endif if ARCH_BOARD_STM32_TINY source "configs/stm32_tiny/Kconfig" endif +if ARCH_BOARD_STM32F103_MINIMUM +source "configs/stm32f103-minimum/Kconfig" +endif if ARCH_BOARD_STM3210E_EVAL source "configs/stm3210e-eval/Kconfig" endif diff --git a/configs/README.txt b/configs/README.txt index 4b1b201707..f3a28e9a11 100644 --- a/configs/README.txt +++ b/configs/README.txt @@ -637,6 +637,9 @@ configs/stm3240g-eval microcontroller (ARM Cortex-M4 with FPU). This port uses a GNU Cortex-M4 toolchain (such as CodeSourcery). +configs/stm32f103-minimum + Generic STM32F103C8T6 Minimum ARM Development Board. + configs/stm32f4discovery STMicro STM32F4-Discovery board based on the STMIcro STM32F407VGT6 MCU. diff --git a/configs/stm32f103-minimum/Kconfig b/configs/stm32f103-minimum/Kconfig new file mode 100644 index 0000000000..15ead9d2c2 --- /dev/null +++ b/configs/stm32f103-minimum/Kconfig @@ -0,0 +1,7 @@ +# +# For a description of the syntax of this configuration file, +# see the file kconfig-language.txt in the NuttX tools repository. +# + +if ARCH_BOARD_STM32F103_MINIMUM +endif diff --git a/configs/stm32f103-minimum/README.txt b/configs/stm32f103-minimum/README.txt new file mode 100644 index 0000000000..cd99063a34 --- /dev/null +++ b/configs/stm32f103-minimum/README.txt @@ -0,0 +1,372 @@ +README +====== + +This README discusses issues unique to NuttX configurations for the +STM32F103C8T6 Minimum System Development Board for ARM Microcontroller. + +This board is available from several vendors on the net, and may +be sold under different names or no name at all. It is based on a +STM32F103C8T6 and has a DIP-40 form-factor. + +This is the board pinout based on its form-factor: + + USB + ___ +-----/ _ \----- +|B12 GND| +|B13 GND| +|B14 3.3V| +|B15 RST| +|A8 B11| +|A9 B10| +|A10 B1| +|A11 B0| +|A12 A7| +|A15 A6| +|B3 A5| +|B4 A4| +|B5 A3| +|B6 A2| +|B7 A1| +|B8 A0| +|B9 C15| +|5V C14| +|GND C13| +|3.3V VB| +|_____________| + +Contents +======== + + - LEDs + - UARTs + - Timer Inputs/Outputs + - STM32F103 Minimum - specific Configuration Options + - Configurations + +LEDs +==== + +The STM32F103 Minimum board has only one software controllable LED. +This LED can be used by the board port when CONFIG_ARCH_LEDS option is +enabled. + +If enabled the LED is simply turned on when the board boots +succesfully, and is blinking on panic / assertion failed. + +UARTs +===== + +UART/USART PINS +--------------- + +USART1 + RX PA10 + TX PA9 +USART2 + CK PA4 + CTS PA0 + RTS PA1 + RX PA3 + TX PA2 +USART3 + CK PB12 + CTS PB13 + RTS PB14 + RX PB11 + TX PB10 + +Default USART/UART Configuration +-------------------------------- + +USART1 (RX & TX only) is available through pins PA9 (TX) and PA10 (RX). + +Timer Inputs/Outputs +==================== + +TIM1 + CH1 PA8 + CH2 PA9* + CH3 PA10* + CH4 PA11* +TIM2 + CH1 PA0*, PA15, PA5 + CH2 PA1, PB3 + CH3 PA2, PB10* + CH4 PA3, PB11 +TIM3 + CH1 PA6, PB4 + CH2 PA7, PB5* + CH3 PB0 + CH4 PB1* +TIM4 + CH1 PB6* + CH2 PB7 + CH3 PB8 + CH4 PB9* + + * Indicates pins that have other on-board functions and should be used only + with care (See board datasheet). + +STM32F103 Minimum - specific Configuration Options +=============================================== + + CONFIG_ARCH - Identifies the arch/ subdirectory. This should + be set to: + + CONFIG_ARCH=arm + + CONFIG_ARCH_family - For use in C code: + + CONFIG_ARCH_ARM=y + + CONFIG_ARCH_architecture - For use in C code: + + CONFIG_ARCH_CORTEXM3=y + + CONFIG_ARCH_CHIP - Identifies the arch/*/chip subdirectory + + CONFIG_ARCH_CHIP=stm32 + + CONFIG_ARCH_CHIP_name - For use in C code to identify the exact + chip: + + CONFIG_ARCH_CHIP_STM32F103C8=y + + CONFIG_ARCH_BOARD_STM32_CUSTOM_CLOCKCONFIG - Enables special STM32 clock + configuration features. + + CONFIG_ARCH_BOARD_STM32_CUSTOM_CLOCKCONFIG=n + + CONFIG_ARCH_BOARD - Identifies the configs subdirectory and + hence, the board that supports the particular chip or SoC. + + CONFIG_ARCH_BOARD=stm32f103-minium + + CONFIG_ARCH_BOARD_name - For use in C code + + CONFIG_ARCH_BOARD_STM32_MINIMUM=y + + CONFIG_ARCH_LOOPSPERMSEC - Must be calibrated for correct operation + of delay loops + + CONFIG_ENDIAN_BIG - define if big endian (default is little + endian) + + CONFIG_RAM_SIZE - Describes the installed DRAM (SRAM in this case): + + CONFIG_RAM_SIZE=20480 (20Kb) + + CONFIG_RAM_START - The start address of installed DRAM + + CONFIG_RAM_START=0x20000000 + + CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to boards that + have LEDs + + CONFIG_ARCH_INTERRUPTSTACK - This architecture supports an interrupt + stack. If defined, this symbol is the size of the interrupt + stack in bytes. If not defined, the user task stacks will be + used during interrupt handling. + + CONFIG_ARCH_STACKDUMP - Do stack dumps after assertions + + CONFIG_ARCH_CALIBRATION - Enables some build in instrumentation that + cause a 100 second delay during boot-up. This 100 second delay + serves no purpose other than it allows you to calibratre + CONFIG_ARCH_LOOPSPERMSEC. You simply use a stop watch to measure + the 100 second delay then adjust CONFIG_ARCH_LOOPSPERMSEC until + the delay actually is 100 seconds. + + Individual subsystems can be enabled: + + AHB + --- + CONFIG_STM32_CRC + CONFIG_STM32_BKPSRAM + + APB1 + ---- + CONFIG_STM32_TIM2 + CONFIG_STM32_TIM3 + CONFIG_STM32_TIM4 + CONFIG_STM32_WWDG + CONFIG_STM32_IWDG + CONFIG_STM32_SPI2 + CONFIG_STM32_USART2 + CONFIG_STM32_USART3 + CONFIG_STM32_I2C1 + CONFIG_STM32_I2C2 + CONFIG_STM32_CAN1 + CONFIG_STM32_PWR -- Required for RTC + + APB2 + ---- + CONFIG_STM32_TIM1 + CONFIG_STM32_USART1 + CONFIG_STM32_ADC1 + CONFIG_STM32_ADC2 + CONFIG_STM32_SPI1 + + Timer devices may be used for different purposes. One special purpose is + to generate modulated outputs for such things as motor control. If CONFIG_STM32_TIMn + is defined (as above) then the following may also be defined to indicate that + the timer is intended to be used for pulsed output modulation or ADC conversion. + Note that ADC require two definitions: Not only do you have + to assign the timer (n) for used by the ADC, but then you also have to + configure which ADC (m) it is assigned to. + + CONFIG_STM32_TIMn_PWM Reserve timer n for use by PWM, n=1,..,14 + CONFIG_STM32_TIMn_ADC Reserve timer n for use by ADC, n=1,..,14 + CONFIG_STM32_TIMn_ADCm Reserve timer n to trigger ADCm, n=1,..,14, m=1,..,3 + + For each timer that is enabled for PWM usage, we need the following additional + configuration settings: + + CONFIG_STM32_TIMx_CHANNEL - Specifies the timer output channel {1,..,4} + + NOTE: The STM32 timers are each capable of generating different signals on + each of the four channels with different duty cycles. That capability is + not supported by this driver: Only one output channel per timer. + + JTAG Enable settings (by default only SW-DP is enabled): + + CONFIG_STM32_JTAG_FULL_ENABLE - Enables full SWJ (JTAG-DP + SW-DP) + CONFIG_STM32_JTAG_NOJNTRST_ENABLE - Enables full SWJ (JTAG-DP + SW-DP) + but without JNTRST. + CONFIG_STM32_JTAG_SW_ENABLE - Set JTAG-DP disabled and SW-DP enabled + + STM32F103 Minimum specific device driver settings + + CONFIG_U[S]ARTn_SERIAL_CONSOLE - selects the USARTn (n=1,2,3) + for the console and ttys0 (default is the USART1). + CONFIG_U[S]ARTn_RXBUFSIZE - Characters are buffered as received. + This specific the size of the receive buffer + CONFIG_U[S]ARTn_TXBUFSIZE - Characters are buffered before + being sent. This specific the size of the transmit buffer + CONFIG_U[S]ARTn_BAUD - The configure BAUD of the UART. Must be + CONFIG_U[S]ARTn_BITS - The number of bits. Must be either 7 or 8. + CONFIG_U[S]ARTn_PARTIY - 0=no parity, 1=odd parity, 2=even parity + CONFIG_U[S]ARTn_2STOP - Two stop bits + + STM32F103 Minimum CAN Configuration + + CONFIG_CAN - Enables CAN support (one or both of CONFIG_STM32_CAN1 or + CONFIG_STM32_CAN2 must also be defined) + CONFIG_CAN_EXTID - Enables support for the 29-bit extended ID. Default + Standard 11-bit IDs. + CONFIG_CAN_FIFOSIZE - The size of the circular buffer of CAN messages. + Default: 8 + CONFIG_CAN_NPENDINGRTR - The size of the list of pending RTR requests. + Default: 4 + CONFIG_CAN_LOOPBACK - A CAN driver may or may not support a loopback + mode for testing. The STM32 CAN driver does support loopback mode. + CONFIG_CAN1_BAUD - CAN1 BAUD rate. Required if CONFIG_STM32_CAN1 is defined. + CONFIG_CAN2_BAUD - CAN1 BAUD rate. Required if CONFIG_STM32_CAN2 is defined. + CONFIG_CAN_TSEG1 - The number of CAN time quanta in segment 1. Default: 6 + CONFIG_CAN_TSEG2 - the number of CAN time quanta in segment 2. Default: 7 + CONFIG_CAN_REGDEBUG - If CONFIG_DEBUG is set, this will generate an + dump of all CAN registers. + + STM32F103 Minimum SPI Configuration + + CONFIG_STM32_SPI_INTERRUPTS - Select to enable interrupt driven SPI + support. Non-interrupt-driven, poll-waiting is recommended if the + interrupt rate would be to high in the interrupt driven case. + CONFIG_STM32_SPI_DMA - Use DMA to improve SPI transfer performance. + Cannot be used with CONFIG_STM32_SPI_INTERRUPT. + +Configurations +============== + +Each STM32F103 Minimum configuration is maintained in a sub-directory and +can be selected as follow: + + cd tools + ./configure.sh STM32F103 Minimum/ + cd - + . ./setenv.sh + +If this is a Windows native build, then configure.bat should be used +instead of configure.sh: + + configure.bat STM32F103-Minimum\ + +Where is one of the following: + + nsh: + --- + Configures the NuttShell (nsh) located at apps/examples/nsh. This + configuration enables a console on UART1. Support for + builtin applications is enabled, but in the base configuration no + builtin applications are selected. + + usbnsh: + ------- + + This is another NSH example. If differs from other 'nsh' configurations + in that this configurations uses a USB serial device for console I/O. + + NOTES: + + 1. This configuration uses the mconf-based configuration tool. To + change this configuration using that tool, you should: + + a. Build and install the kconfig-mconf tool. See nuttx/README.txt + see additional README.txt files in the NuttX tools repository. + + b. Execute 'make menuconfig' in nuttx/ in order to start the + reconfiguration process. + + 2. By default, this configuration uses the CodeSourcery toolchain + for Windows and builds under Cygwin (or probably MSYS). That + can easily be reconfigured, of course. + + CONFIG_HOST_WINDOWS=y : Builds under Windows + CONFIG_WINDOWS_CYGWIN=y : Using Cygwin + CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW=y : CodeSourcery for Windows + + 3. This configuration does have UART2 output enabled and set up as + the system logging device: + + CONFIG_SYSLOG=y : Enable output to syslog, not console + CONFIG_SYSLOG_CHAR=y : Use a character device for system logging + CONFIG_SYSLOG_DEVPATH="/dev/ttyS0" : UART2 will be /dev/ttyS0 + + However, there is nothing to generate SYLOG output in the default + configuration so nothing should appear on UART2 unless you enable + some debug output or enable the USB monitor. + + 4. Enabling USB monitor SYSLOG output. If tracing is enabled, the USB + device will save encoded trace output in in-memory buffer; if the + USB monitor is enabled, that trace buffer will be periodically + emptied and dumped to the system loggin device (UART2 in this + configuraion): + + CONFIG_USBDEV_TRACE=y : Enable USB trace feature + CONFIG_USBDEV_TRACE_NRECORDS=128 : Buffer 128 records in memory + CONFIG_NSH_USBDEV_TRACE=n : No builtin tracing from NSH + CONFIG_NSH_ARCHINIT=y : Automatically start the USB monitor + CONFIG_SYSTEM_USBMONITOR=y : Enable the USB monitor daemon + CONFIG_SYSTEM_USBMONITOR_STACKSIZE=2048 : USB monitor daemon stack size + CONFIG_SYSTEM_USBMONITOR_PRIORITY=50 : USB monitor daemon priority + CONFIG_SYSTEM_USBMONITOR_INTERVAL=2 : Dump trace data every 2 seconds + + CONFIG_SYSTEM_USBMONITOR_TRACEINIT=y : Enable TRACE output + CONFIG_SYSTEM_USBMONITOR_TRACECLASS=y + CONFIG_SYSTEM_USBMONITOR_TRACETRANSFERS=y + CONFIG_SYSTEM_USBMONITOR_TRACECONTROLLER=y + CONFIG_SYSTEM_USBMONITOR_TRACEINTERRUPTS=y + + 5. By default, this project assumes that you are *NOT* using the DFU + bootloader. + + Using the Prolifics PL2303 Emulation + ------------------------------------ + You could also use the non-standard PL2303 serial device instead of + the standard CDC/ACM serial device by changing: + + CONFIG_CDCACM=y : Disable the CDC/ACM serial device class + CONFIG_CDCACM_CONSOLE=y : The CDC/ACM serial device is NOT the console + CONFIG_PL2303=y : The Prolifics PL2303 emulation is enabled + CONFIG_PL2303_CONSOLE=y : The PL2303 serial device is the console diff --git a/configs/stm32f103-minimum/include/board.h b/configs/stm32f103-minimum/include/board.h new file mode 100644 index 0000000000..8c5385e45b --- /dev/null +++ b/configs/stm32f103-minimum/include/board.h @@ -0,0 +1,196 @@ +/************************************************************************************ + * configs/stm32f103-minimum/include/board.h + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Authors: Gregory Nutt + * Laurent Latil + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ************************************************************************************/ + +#ifndef __CONFIGS_STM32F103_MINIMUM_BOARD_H +#define __CONFIGS_STM32F103_MINIMUM_BOARD_H + +/************************************************************************************ + * Included Files + ************************************************************************************/ + +#include +#ifndef __ASSEMBLY__ +# include +#endif +#include "stm32_rcc.h" +#include "stm32_sdio.h" +#include "stm32.h" + +/************************************************************************************ + * Pre-processor Definitions + ************************************************************************************/ + +/* Clocking *************************************************************************/ + +/* On-board crystal frequency is 8MHz (HSE) */ + +#define STM32_BOARD_XTAL 8000000ul + +/* PLL source is HSE/1, PLL multipler is 9: PLL frequency is 8MHz (XTAL) x 9 = 72MHz */ + +#define STM32_CFGR_PLLSRC RCC_CFGR_PLLSRC +#define STM32_CFGR_PLLXTPRE 0 +#define STM32_CFGR_PLLMUL RCC_CFGR_PLLMUL_CLKx9 +#define STM32_PLL_FREQUENCY (9*STM32_BOARD_XTAL) + +/* Use the PLL and set the SYSCLK source to be the PLL */ + +#define STM32_SYSCLK_SW RCC_CFGR_SW_PLL +#define STM32_SYSCLK_SWS RCC_CFGR_SWS_PLL +#define STM32_SYSCLK_FREQUENCY STM32_PLL_FREQUENCY + +/* AHB clock (HCLK) is SYSCLK (72MHz) */ + +#define STM32_RCC_CFGR_HPRE RCC_CFGR_HPRE_SYSCLK +#define STM32_HCLK_FREQUENCY STM32_PLL_FREQUENCY +#define STM32_BOARD_HCLK STM32_HCLK_FREQUENCY /* same as above, to satisfy compiler */ + +/* APB2 clock (PCLK2) is HCLK (72MHz) */ + +#define STM32_RCC_CFGR_PPRE2 RCC_CFGR_PPRE2_HCLK +#define STM32_PCLK2_FREQUENCY STM32_HCLK_FREQUENCY + +/* APB2 timers 1 and 8 will receive PCLK2. */ + +#define STM32_APB2_TIM1_CLKIN (STM32_PCLK2_FREQUENCY) +#define STM32_APB2_TIM8_CLKIN (STM32_PCLK2_FREQUENCY) + +/* APB1 clock (PCLK1) is HCLK/2 (36MHz) */ + +#define STM32_RCC_CFGR_PPRE1 RCC_CFGR_PPRE1_HCLKd2 +#define STM32_PCLK1_FREQUENCY (STM32_HCLK_FREQUENCY/2) + +/* APB1 timers 2-4 will be twice PCLK1 (I presume the remaining will receive PCLK1) */ + +#define STM32_APB1_TIM2_CLKIN (2*STM32_PCLK1_FREQUENCY) +#define STM32_APB1_TIM3_CLKIN (2*STM32_PCLK1_FREQUENCY) +#define STM32_APB1_TIM4_CLKIN (2*STM32_PCLK1_FREQUENCY) +#define STM32_APB1_TIM5_CLKIN (STM32_PCLK1_FREQUENCY) +#define STM32_APB1_TIM6_CLKIN (STM32_PCLK1_FREQUENCY) +#define STM32_APB1_TIM7_CLKIN (STM32_PCLK1_FREQUENCY) + +/* USB divider -- Divide PLL clock by 1.5 */ + +#define STM32_CFGR_USBPRE 0 + +/* Timer Frequencies, if APBx is set to 1, frequency is same to APBx + * otherwise frequency is 2xAPBx. + * Note: TIM1,8 are on APB2, others on APB1 */ + +#define STM32_TIM18_FREQUENCY STM32_HCLK_FREQUENCY +#define STM32_TIM27_FREQUENCY STM32_HCLK_FREQUENCY + +/* SDIO dividers. Note that slower clocking is required when DMA is disabled + * in order to avoid RX overrun/TX underrun errors due to delayed responses + * to service FIFOs in interrupt driven mode. These values have not been + * tuned!!! + * + * HCLK=72MHz, SDIOCLK=72MHz, SDIO_CK=HCLK/(178+2)=400 KHz + */ + +#define SDIO_INIT_CLKDIV (178 << SDIO_CLKCR_CLKDIV_SHIFT) + +/* DMA ON: HCLK=72 MHz, SDIOCLK=72MHz, SDIO_CK=HCLK/(2+2)=18 MHz + * DMA OFF: HCLK=72 MHz, SDIOCLK=72MHz, SDIO_CK=HCLK/(3+2)=14.4 MHz + */ + +#ifdef CONFIG_SDIO_DMA +# define SDIO_MMCXFR_CLKDIV (2 << SDIO_CLKCR_CLKDIV_SHIFT) +#else +# define SDIO_MMCXFR_CLKDIV (3 << SDIO_CLKCR_CLKDIV_SHIFT) +#endif + +/* DMA ON: HCLK=72 MHz, SDIOCLK=72MHz, SDIO_CK=HCLK/(1+2)=24 MHz + * DMA OFF: HCLK=72 MHz, SDIOCLK=72MHz, SDIO_CK=HCLK/(3+2)=14.4 MHz + */ + +#ifdef CONFIG_SDIO_DMA +# define SDIO_SDXFR_CLKDIV (1 << SDIO_CLKCR_CLKDIV_SHIFT) +#else +# define SDIO_SDXFR_CLKDIV (3 << SDIO_CLKCR_CLKDIV_SHIFT) +#endif + +/* LED definitions ******************************************************************/ + +/* The board has only one controllable LED */ + +#define LED_STARTED 0 /* No LEDs */ +#define LED_HEAPALLOCATE 1 /* LED1 on */ +#define LED_IRQSENABLED 2 /* LED2 on */ +#define LED_STACKCREATED 3 /* LED1 on */ +#define LED_INIRQ 4 /* LED1 off */ +#define LED_SIGNAL 5 /* LED2 on */ +#define LED_ASSERTION 6 /* LED1 + LED2 */ +#define LED_PANIC 7 /* LED1 / LED2 blinking */ + +/************************************************************************************ + * Public Data + ************************************************************************************/ + +#ifndef __ASSEMBLY__ + +#undef EXTERN +#if defined(__cplusplus) +#define EXTERN extern "C" +extern "C" +{ +#else +#define EXTERN extern +#endif + +/************************************************************************************ + * Public Function Prototypes + ************************************************************************************/ + +/************************************************************************************ + * Name: stm32_boardinitialize + * + * Description: + * All STM32 architectures must provide the following entry point. This entry point + * is called early in the initialization -- after all memory has been configured + * and mapped but before any devices have been initialized. + * + ************************************************************************************/ + +void stm32_boardinitialize(void); + +#undef EXTERN +#if defined(__cplusplus) +} +#endif + +#endif /* __ASSEMBLY__ */ +#endif /* __CONFIGS_STM32F103_MINIMUM_BOARD_H */ diff --git a/configs/stm32f103-minimum/nsh/Make.defs b/configs/stm32f103-minimum/nsh/Make.defs new file mode 100644 index 0000000000..b77741df25 --- /dev/null +++ b/configs/stm32f103-minimum/nsh/Make.defs @@ -0,0 +1,113 @@ +############################################################################ +# configs/stm32f103-minimum/nsh/Make.defs +# +# Copyright (C) 2016 Gregory Nutt. All rights reserved. +# Author: Gregory Nutt +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# 3. Neither the name NuttX nor the names of its contributors may be +# used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +############################################################################ + +include ${TOPDIR}/.config +include ${TOPDIR}/tools/Config.mk +include ${TOPDIR}/arch/arm/src/armv7-m/Toolchain.defs + +LDSCRIPT = ld.script + +ifeq ($(WINTOOL),y) + # Windows-native toolchains + DIRLINK = $(TOPDIR)/tools/copydir.sh + DIRUNLINK = $(TOPDIR)/tools/unlink.sh + MKDEP = $(TOPDIR)/tools/mkwindeps.sh + ARCHINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)/include}" + ARCHXXINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)/include}" -isystem "${shell cygpath -w $(TOPDIR)/include/cxx}" + ARCHSCRIPT = -T "${shell cygpath -w $(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/$(LDSCRIPT)}" +else + # Linux/Cygwin-native toolchain + MKDEP = $(TOPDIR)/tools/mkdeps$(HOSTEXEEXT) + ARCHINCLUDES = -I. -isystem $(TOPDIR)/include + ARCHXXINCLUDES = -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx + ARCHSCRIPT = -T$(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/$(LDSCRIPT) +endif + +CC = $(CROSSDEV)gcc +CXX = $(CROSSDEV)g++ +CPP = $(CROSSDEV)gcc -E +LD = $(CROSSDEV)ld +AR = $(CROSSDEV)ar rcs +NM = $(CROSSDEV)nm +OBJCOPY = $(CROSSDEV)objcopy +OBJDUMP = $(CROSSDEV)objdump + +ARCHCCVERSION = ${shell $(CC) -v 2>&1 | sed -n '/^gcc version/p' | sed -e 's/^gcc version \([0-9\.]\)/\1/g' -e 's/[-\ ].*//g' -e '1q'} +ARCHCCMAJOR = ${shell echo $(ARCHCCVERSION) | cut -d'.' -f1} + +ifeq ($(CONFIG_DEBUG_SYMBOLS),y) + ARCHOPTIMIZATION = -g +endif + +ifneq ($(CONFIG_DEBUG_NOOPT),y) + ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing -fno-strength-reduce -fomit-frame-pointer +endif + +ARCHCFLAGS = -fno-builtin +ARCHCXXFLAGS = -fno-builtin -fno-exceptions +ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef +ARCHWARNINGSXX = -Wall -Wshadow -Wundef +ARCHDEFINES = +ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10 + +CFLAGS = $(ARCHCFLAGS) $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe +CPICFLAGS = $(ARCHPICFLAGS) $(CFLAGS) +CXXFLAGS = $(ARCHCXXFLAGS) $(ARCHWARNINGSXX) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHXXINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe +CXXPICFLAGS = $(ARCHPICFLAGS) $(CXXFLAGS) +CPPFLAGS = $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) +AFLAGS = $(CFLAGS) -D__ASSEMBLY__ + +NXFLATLDFLAGS1 = -r -d -warn-common +NXFLATLDFLAGS2 = $(NXFLATLDFLAGS1) -T$(TOPDIR)/binfmt/libnxflat/gnu-nxflat-pcrel.ld -no-check-sections +LDNXFLATFLAGS = -e main -s 2048 + +ASMEXT = .S +OBJEXT = .o +LIBEXT = .a +EXEEXT = + +ifneq ($(CROSSDEV),arm-nuttx-elf-) + LDFLAGS += -nostartfiles -nodefaultlibs +endif +ifeq ($(CONFIG_DEBUG_SYMBOLS),y) + LDFLAGS += -g +endif + + +HOSTCC = gcc +HOSTINCLUDES = -I. +HOSTCFLAGS = -Wall -Wstrict-prototypes -Wshadow -Wundef -g -pipe +HOSTLDFLAGS = + diff --git a/configs/stm32f103-minimum/nsh/defconfig b/configs/stm32f103-minimum/nsh/defconfig new file mode 100644 index 0000000000..a46824aa38 --- /dev/null +++ b/configs/stm32f103-minimum/nsh/defconfig @@ -0,0 +1,1096 @@ +# +# Automatically generated file; DO NOT EDIT. +# Nuttx/ Configuration +# + +# +# Build Setup +# +# CONFIG_EXPERIMENTAL is not set +CONFIG_DEFAULT_SMALL=y +CONFIG_HOST_LINUX=y +# CONFIG_HOST_OSX is not set +# CONFIG_HOST_WINDOWS is not set +# CONFIG_HOST_OTHER is not set + +# +# Build Configuration +# +CONFIG_APPS_DIR="../apps" +CONFIG_BUILD_FLAT=y +# CONFIG_BUILD_2PASS is not set + +# +# Binary Output Formats +# +# CONFIG_RRLOAD_BINARY is not set +# CONFIG_INTELHEX_BINARY is not set +# CONFIG_MOTOROLA_SREC is not set +CONFIG_RAW_BINARY=y +# CONFIG_UBOOT_UIMAGE is not set + +# +# Customize Header Files +# +# CONFIG_ARCH_STDINT_H is not set +# CONFIG_ARCH_STDBOOL_H is not set +# CONFIG_ARCH_MATH_H is not set +# CONFIG_ARCH_FLOAT_H is not set +# CONFIG_ARCH_STDARG_H is not set +# CONFIG_ARCH_DEBUG_H is not set + +# +# Debug Options +# +# CONFIG_DEBUG is not set +CONFIG_ARCH_HAVE_HEAPCHECK=y +CONFIG_ARCH_HAVE_STACKCHECK=y +# CONFIG_STACK_COLORATION is not set +# CONFIG_DEBUG_SYMBOLS is not set +CONFIG_ARCH_HAVE_CUSTOMOPT=y +# CONFIG_DEBUG_NOOPT is not set +# CONFIG_DEBUG_CUSTOMOPT is not set +CONFIG_DEBUG_FULLOPT=y + +# +# System Type +# +CONFIG_ARCH_ARM=y +# CONFIG_ARCH_AVR is not set +# CONFIG_ARCH_HC is not set +# CONFIG_ARCH_MIPS is not set +# CONFIG_ARCH_RGMP is not set +# CONFIG_ARCH_SH is not set +# CONFIG_ARCH_SIM is not set +# CONFIG_ARCH_X86 is not set +# CONFIG_ARCH_Z16 is not set +# CONFIG_ARCH_Z80 is not set +CONFIG_ARCH="arm" + +# +# ARM Options +# +# CONFIG_ARCH_CHIP_A1X is not set +# CONFIG_ARCH_CHIP_C5471 is not set +# CONFIG_ARCH_CHIP_CALYPSO is not set +# CONFIG_ARCH_CHIP_DM320 is not set +# CONFIG_ARCH_CHIP_EFM32 is not set +# CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set +# CONFIG_ARCH_CHIP_KINETIS is not set +# CONFIG_ARCH_CHIP_KL is not set +# CONFIG_ARCH_CHIP_LM is not set +# CONFIG_ARCH_CHIP_TIVA is not set +# CONFIG_ARCH_CHIP_LPC11XX is not set +# CONFIG_ARCH_CHIP_LPC17XX is not set +# CONFIG_ARCH_CHIP_LPC214X is not set +# CONFIG_ARCH_CHIP_LPC2378 is not set +# CONFIG_ARCH_CHIP_LPC31XX is not set +# CONFIG_ARCH_CHIP_LPC43XX is not set +# CONFIG_ARCH_CHIP_NUC1XX is not set +# CONFIG_ARCH_CHIP_SAMA5 is not set +# CONFIG_ARCH_CHIP_SAMD is not set +# CONFIG_ARCH_CHIP_SAML is not set +# CONFIG_ARCH_CHIP_SAM34 is not set +# CONFIG_ARCH_CHIP_SAMV7 is not set +CONFIG_ARCH_CHIP_STM32=y +# CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set +# CONFIG_ARCH_CHIP_STR71X is not set +# CONFIG_ARCH_CHIP_TMS570 is not set +# CONFIG_ARCH_CHIP_MOXART is not set +# CONFIG_ARCH_ARM7TDMI is not set +# CONFIG_ARCH_ARM926EJS is not set +# CONFIG_ARCH_ARM920T is not set +# CONFIG_ARCH_CORTEXM0 is not set +CONFIG_ARCH_CORTEXM3=y +# CONFIG_ARCH_CORTEXM4 is not set +# CONFIG_ARCH_CORTEXM7 is not set +# CONFIG_ARCH_CORTEXA5 is not set +# CONFIG_ARCH_CORTEXA8 is not set +# CONFIG_ARCH_CORTEXA9 is not set +# CONFIG_ARCH_CORTEXR4 is not set +# CONFIG_ARCH_CORTEXR4F is not set +# CONFIG_ARCH_CORTEXR5 is not set +# CONFIG_ARCH_CORTEX5F is not set +# CONFIG_ARCH_CORTEXR7 is not set +# CONFIG_ARCH_CORTEXR7F is not set +CONFIG_ARCH_FAMILY="armv7-m" +CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set +CONFIG_ARM_TOOLCHAIN_GNU=y +# CONFIG_ARMV7M_USEBASEPRI is not set +CONFIG_ARCH_HAVE_CMNVECTOR=y +# CONFIG_ARMV7M_CMNVECTOR is not set +# CONFIG_ARMV7M_LAZYFPU is not set +# CONFIG_ARCH_HAVE_FPU is not set +# CONFIG_ARCH_HAVE_DPFPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set +CONFIG_ARM_HAVE_MPU_UNIFIED=y +# CONFIG_ARM_MPU is not set + +# +# ARMV7M Configuration Options +# +# CONFIG_ARMV7M_HAVE_ICACHE is not set +# CONFIG_ARMV7M_HAVE_DCACHE is not set +# CONFIG_ARMV7M_HAVE_ITCM is not set +# CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set +# CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set +# CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set +# CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set +CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL=y +CONFIG_ARMV7M_HAVE_STACKCHECK=y +# CONFIG_ARMV7M_STACKCHECK is not set +# CONFIG_ARMV7M_ITMSYSLOG is not set +CONFIG_SERIAL_TERMIOS=y + +# +# STM32 Configuration Options +# +# CONFIG_ARCH_CHIP_STM32L151C6 is not set +# CONFIG_ARCH_CHIP_STM32L151C8 is not set +# CONFIG_ARCH_CHIP_STM32L151CB is not set +# CONFIG_ARCH_CHIP_STM32L151R6 is not set +# CONFIG_ARCH_CHIP_STM32L151R8 is not set +# CONFIG_ARCH_CHIP_STM32L151RB is not set +# CONFIG_ARCH_CHIP_STM32L151V6 is not set +# CONFIG_ARCH_CHIP_STM32L151V8 is not set +# CONFIG_ARCH_CHIP_STM32L151VB is not set +# CONFIG_ARCH_CHIP_STM32L152C6 is not set +# CONFIG_ARCH_CHIP_STM32L152C8 is not set +# CONFIG_ARCH_CHIP_STM32L152CB is not set +# CONFIG_ARCH_CHIP_STM32L152R6 is not set +# CONFIG_ARCH_CHIP_STM32L152R8 is not set +# CONFIG_ARCH_CHIP_STM32L152RB is not set +# CONFIG_ARCH_CHIP_STM32L152V6 is not set +# CONFIG_ARCH_CHIP_STM32L152V8 is not set +# CONFIG_ARCH_CHIP_STM32L152VB is not set +# CONFIG_ARCH_CHIP_STM32L162ZD is not set +# CONFIG_ARCH_CHIP_STM32L162VE is not set +# CONFIG_ARCH_CHIP_STM32F100C8 is not set +# CONFIG_ARCH_CHIP_STM32F100CB is not set +# CONFIG_ARCH_CHIP_STM32F100R8 is not set +# CONFIG_ARCH_CHIP_STM32F100RB is not set +# CONFIG_ARCH_CHIP_STM32F100RC is not set +# CONFIG_ARCH_CHIP_STM32F100RD is not set +# CONFIG_ARCH_CHIP_STM32F100RE is not set +# CONFIG_ARCH_CHIP_STM32F100V8 is not set +# CONFIG_ARCH_CHIP_STM32F100VB is not set +# CONFIG_ARCH_CHIP_STM32F100VC is not set +# CONFIG_ARCH_CHIP_STM32F100VD is not set +# CONFIG_ARCH_CHIP_STM32F100VE is not set +# CONFIG_ARCH_CHIP_STM32F102CB is not set +# CONFIG_ARCH_CHIP_STM32F103T8 is not set +# CONFIG_ARCH_CHIP_STM32F103TB is not set +# CONFIG_ARCH_CHIP_STM32F103C4 is not set +CONFIG_ARCH_CHIP_STM32F103C8=y +# CONFIG_ARCH_CHIP_STM32F103CB is not set +# CONFIG_ARCH_CHIP_STM32F103R8 is not set +# CONFIG_ARCH_CHIP_STM32F103RB is not set +# CONFIG_ARCH_CHIP_STM32F103RC is not set +# CONFIG_ARCH_CHIP_STM32F103RD is not set +# CONFIG_ARCH_CHIP_STM32F103RE is not set +# CONFIG_ARCH_CHIP_STM32F103RG is not set +# CONFIG_ARCH_CHIP_STM32F103V8 is not set +# CONFIG_ARCH_CHIP_STM32F103VB is not set +# CONFIG_ARCH_CHIP_STM32F103VC is not set +# CONFIG_ARCH_CHIP_STM32F103VE is not set +# CONFIG_ARCH_CHIP_STM32F103ZE is not set +# CONFIG_ARCH_CHIP_STM32F105VB is not set +# CONFIG_ARCH_CHIP_STM32F107VC is not set +# CONFIG_ARCH_CHIP_STM32F205RG is not set +# CONFIG_ARCH_CHIP_STM32F207IG is not set +# CONFIG_ARCH_CHIP_STM32F207ZE is not set +# CONFIG_ARCH_CHIP_STM32F302K6 is not set +# CONFIG_ARCH_CHIP_STM32F302K8 is not set +# CONFIG_ARCH_CHIP_STM32F302CB is not set +# CONFIG_ARCH_CHIP_STM32F302CC is not set +# CONFIG_ARCH_CHIP_STM32F302RB is not set +# CONFIG_ARCH_CHIP_STM32F302RC is not set +# CONFIG_ARCH_CHIP_STM32F302VB is not set +# CONFIG_ARCH_CHIP_STM32F302VC is not set +# CONFIG_ARCH_CHIP_STM32F303K6 is not set +# CONFIG_ARCH_CHIP_STM32F303K8 is not set +# CONFIG_ARCH_CHIP_STM32F303C6 is not set +# CONFIG_ARCH_CHIP_STM32F303C8 is not set +# CONFIG_ARCH_CHIP_STM32F303CB is not set +# CONFIG_ARCH_CHIP_STM32F303CC is not set +# CONFIG_ARCH_CHIP_STM32F303RB is not set +# CONFIG_ARCH_CHIP_STM32F303RC is not set +# CONFIG_ARCH_CHIP_STM32F303RD is not set +# CONFIG_ARCH_CHIP_STM32F303RE is not set +# CONFIG_ARCH_CHIP_STM32F303VB is not set +# CONFIG_ARCH_CHIP_STM32F303VC is not set +# CONFIG_ARCH_CHIP_STM32F372C8 is not set +# CONFIG_ARCH_CHIP_STM32F372R8 is not set +# CONFIG_ARCH_CHIP_STM32F372V8 is not set +# CONFIG_ARCH_CHIP_STM32F372CB is not set +# CONFIG_ARCH_CHIP_STM32F372RB is not set +# CONFIG_ARCH_CHIP_STM32F372VB is not set +# CONFIG_ARCH_CHIP_STM32F372CC is not set +# CONFIG_ARCH_CHIP_STM32F372RC is not set +# CONFIG_ARCH_CHIP_STM32F372VC is not set +# CONFIG_ARCH_CHIP_STM32F373C8 is not set +# CONFIG_ARCH_CHIP_STM32F373R8 is not set +# CONFIG_ARCH_CHIP_STM32F373V8 is not set +# CONFIG_ARCH_CHIP_STM32F373CB is not set +# CONFIG_ARCH_CHIP_STM32F373RB is not set +# CONFIG_ARCH_CHIP_STM32F373VB is not set +# CONFIG_ARCH_CHIP_STM32F373CC is not set +# CONFIG_ARCH_CHIP_STM32F373RC is not set +# CONFIG_ARCH_CHIP_STM32F373VC is not set +# CONFIG_ARCH_CHIP_STM32F401RE is not set +# CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F405RG is not set +# CONFIG_ARCH_CHIP_STM32F405VG is not set +# CONFIG_ARCH_CHIP_STM32F405ZG is not set +# CONFIG_ARCH_CHIP_STM32F407VE is not set +# CONFIG_ARCH_CHIP_STM32F407VG is not set +# CONFIG_ARCH_CHIP_STM32F407ZE is not set +# CONFIG_ARCH_CHIP_STM32F407ZG is not set +# CONFIG_ARCH_CHIP_STM32F407IE is not set +# CONFIG_ARCH_CHIP_STM32F407IG is not set +# CONFIG_ARCH_CHIP_STM32F427V is not set +# CONFIG_ARCH_CHIP_STM32F427Z is not set +# CONFIG_ARCH_CHIP_STM32F427I is not set +# CONFIG_ARCH_CHIP_STM32F429V is not set +# CONFIG_ARCH_CHIP_STM32F429Z is not set +# CONFIG_ARCH_CHIP_STM32F429I is not set +# CONFIG_ARCH_CHIP_STM32F429B is not set +# CONFIG_ARCH_CHIP_STM32F429N is not set +# CONFIG_ARCH_CHIP_STM32F446M is not set +# CONFIG_ARCH_CHIP_STM32F446R is not set +# CONFIG_ARCH_CHIP_STM32F446V is not set +# CONFIG_ARCH_CHIP_STM32F446Z is not set +# CONFIG_ARCH_CHIP_STM32F469A is not set +# CONFIG_ARCH_CHIP_STM32F469I is not set +# CONFIG_ARCH_CHIP_STM32F469B is not set +# CONFIG_ARCH_CHIP_STM32F469N is not set +CONFIG_STM32_FLASH_CONFIG_DEFAULT=y +# CONFIG_STM32_FLASH_CONFIG_4 is not set +# CONFIG_STM32_FLASH_CONFIG_6 is not set +# CONFIG_STM32_FLASH_CONFIG_8 is not set +# CONFIG_STM32_FLASH_CONFIG_B is not set +# CONFIG_STM32_FLASH_CONFIG_C is not set +# CONFIG_STM32_FLASH_CONFIG_D is not set +# CONFIG_STM32_FLASH_CONFIG_E is not set +# CONFIG_STM32_FLASH_CONFIG_F is not set +# CONFIG_STM32_FLASH_CONFIG_G is not set +# CONFIG_STM32_FLASH_CONFIG_I is not set +# CONFIG_STM32_STM32L15XX is not set +# CONFIG_STM32_ENERGYLITE is not set +CONFIG_STM32_STM32F10XX=y +# CONFIG_STM32_VALUELINE is not set +# CONFIG_STM32_CONNECTIVITYLINE is not set +CONFIG_STM32_PERFORMANCELINE=y +# CONFIG_STM32_USBACCESSLINE is not set +# CONFIG_STM32_HIGHDENSITY is not set +CONFIG_STM32_MEDIUMDENSITY=y +# CONFIG_STM32_LOWDENSITY is not set +# CONFIG_STM32_STM32F20XX is not set +# CONFIG_STM32_STM32F205 is not set +# CONFIG_STM32_STM32F207 is not set +# CONFIG_STM32_STM32F30XX is not set +# CONFIG_STM32_STM32F302 is not set +# CONFIG_STM32_STM32F303 is not set +# CONFIG_STM32_STM32F37XX is not set +# CONFIG_STM32_STM32F40XX is not set +# CONFIG_STM32_STM32F401 is not set +# CONFIG_STM32_STM32F411 is not set +# CONFIG_STM32_STM32F405 is not set +# CONFIG_STM32_STM32F407 is not set +# CONFIG_STM32_STM32F427 is not set +# CONFIG_STM32_STM32F429 is not set +# CONFIG_STM32_STM32F446 is not set +# CONFIG_STM32_STM32F469 is not set +# CONFIG_STM32_DFU is not set + +# +# STM32 Peripheral Support +# +# CONFIG_STM32_HAVE_CCM is not set +CONFIG_STM32_HAVE_USBDEV=y +# CONFIG_STM32_HAVE_OTGFS is not set +# CONFIG_STM32_HAVE_FSMC is not set +# CONFIG_STM32_HAVE_LTDC is not set +CONFIG_STM32_HAVE_USART3=y +CONFIG_STM32_HAVE_UART4=y +CONFIG_STM32_HAVE_UART5=y +# CONFIG_STM32_HAVE_USART6 is not set +# CONFIG_STM32_HAVE_UART7 is not set +# CONFIG_STM32_HAVE_UART8 is not set +CONFIG_STM32_HAVE_TIM1=y +# CONFIG_STM32_HAVE_TIM2 is not set +CONFIG_STM32_HAVE_TIM3=y +CONFIG_STM32_HAVE_TIM4=y +CONFIG_STM32_HAVE_TIM5=y +CONFIG_STM32_HAVE_TIM6=y +CONFIG_STM32_HAVE_TIM7=y +CONFIG_STM32_HAVE_TIM8=y +# CONFIG_STM32_HAVE_TIM9 is not set +# CONFIG_STM32_HAVE_TIM10 is not set +# CONFIG_STM32_HAVE_TIM11 is not set +# CONFIG_STM32_HAVE_TIM12 is not set +# CONFIG_STM32_HAVE_TIM13 is not set +# CONFIG_STM32_HAVE_TIM14 is not set +# CONFIG_STM32_HAVE_TIM15 is not set +# CONFIG_STM32_HAVE_TIM16 is not set +# CONFIG_STM32_HAVE_TIM17 is not set +CONFIG_STM32_HAVE_ADC2=y +CONFIG_STM32_HAVE_ADC3=y +# CONFIG_STM32_HAVE_ADC4 is not set +# CONFIG_STM32_HAVE_ADC1_DMA is not set +# CONFIG_STM32_HAVE_ADC2_DMA is not set +# CONFIG_STM32_HAVE_ADC3_DMA is not set +# CONFIG_STM32_HAVE_ADC4_DMA is not set +CONFIG_STM32_HAVE_CAN1=y +# CONFIG_STM32_HAVE_CAN2 is not set +# CONFIG_STM32_HAVE_DAC1 is not set +# CONFIG_STM32_HAVE_DAC2 is not set +# CONFIG_STM32_HAVE_RNG is not set +# CONFIG_STM32_HAVE_ETHMAC is not set +CONFIG_STM32_HAVE_I2C2=y +# CONFIG_STM32_HAVE_I2C3 is not set +CONFIG_STM32_HAVE_SPI2=y +CONFIG_STM32_HAVE_SPI3=y +# CONFIG_STM32_HAVE_SPI4 is not set +# CONFIG_STM32_HAVE_SPI5 is not set +# CONFIG_STM32_HAVE_SPI6 is not set +# CONFIG_STM32_HAVE_SAIPLL is not set +# CONFIG_STM32_HAVE_I2SPLL is not set +# CONFIG_STM32_ADC1 is not set +# CONFIG_STM32_ADC2 is not set +# CONFIG_STM32_ADC3 is not set +# CONFIG_STM32_BKP is not set +# CONFIG_STM32_CAN1 is not set +# CONFIG_STM32_CRC is not set +# CONFIG_STM32_DMA1 is not set +# CONFIG_STM32_DMA2 is not set +# CONFIG_STM32_I2C1 is not set +# CONFIG_STM32_I2C2 is not set +# CONFIG_STM32_PWR is not set +# CONFIG_STM32_SDIO is not set +# CONFIG_STM32_SPI1 is not set +# CONFIG_STM32_SPI2 is not set +# CONFIG_STM32_SPI3 is not set +# CONFIG_STM32_TIM1 is not set +# CONFIG_STM32_TIM2 is not set +# CONFIG_STM32_TIM3 is not set +# CONFIG_STM32_TIM4 is not set +# CONFIG_STM32_TIM5 is not set +# CONFIG_STM32_TIM6 is not set +# CONFIG_STM32_TIM7 is not set +# CONFIG_STM32_TIM8 is not set +CONFIG_STM32_USART1=y +# CONFIG_STM32_USART2 is not set +# CONFIG_STM32_USART3 is not set +# CONFIG_STM32_UART4 is not set +# CONFIG_STM32_UART5 is not set +# CONFIG_STM32_USB is not set +# CONFIG_STM32_IWDG is not set +# CONFIG_STM32_WWDG is not set +# CONFIG_STM32_NOEXT_VECTORS is not set + +# +# Alternate Pin Mapping +# +# CONFIG_STM32_USART1_REMAP is not set +# CONFIG_STM32_JTAG_DISABLE is not set +CONFIG_STM32_JTAG_FULL_ENABLE=y +# CONFIG_STM32_JTAG_NOJNTRST_ENABLE is not set +# CONFIG_STM32_JTAG_SW_ENABLE is not set +CONFIG_STM32_DISABLE_IDLE_SLEEP_DURING_DEBUG=y +# CONFIG_STM32_FORCEPOWER is not set +# CONFIG_ARCH_BOARD_STM32_CUSTOM_CLOCKCONFIG is not set +# CONFIG_STM32_TIM1_CAP is not set +# CONFIG_STM32_TIM3_CAP is not set +# CONFIG_STM32_TIM4_CAP is not set +# CONFIG_STM32_TIM5_CAP is not set +# CONFIG_STM32_TIM8_CAP is not set +CONFIG_STM32_USART=y + +# +# U[S]ART Configuration +# +# CONFIG_USART1_RS485 is not set +# CONFIG_SERIAL_DISABLE_REORDERING is not set +# CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set +# CONFIG_STM32_USART_SINGLEWIRE is not set +CONFIG_STM32_HAVE_RTC_COUNTER=y +# CONFIG_STM32_HAVE_RTC_SUBSECONDS is not set + +# +# USB FS Host Configuration +# + +# +# USB HS Host Configuration +# + +# +# USB Host Debug Configuration +# + +# +# USB Device Configuration +# + +# +# Architecture Options +# +# CONFIG_ARCH_NOINTC is not set +# CONFIG_ARCH_VECNOTIRQ is not set +# CONFIG_ARCH_DMA is not set +CONFIG_ARCH_HAVE_IRQPRIO=y +# CONFIG_ARCH_L2CACHE is not set +# CONFIG_ARCH_HAVE_COHERENT_DCACHE is not set +# CONFIG_ARCH_HAVE_ADDRENV is not set +# CONFIG_ARCH_NEED_ADDRENV_MAPPING is not set +# CONFIG_ARCH_HAVE_MULTICPU is not set +CONFIG_ARCH_HAVE_VFORK=y +# CONFIG_ARCH_HAVE_MMU is not set +CONFIG_ARCH_HAVE_MPU=y +# CONFIG_ARCH_NAND_HWECC is not set +# CONFIG_ARCH_HAVE_EXTCLK is not set +# CONFIG_ARCH_HAVE_POWEROFF is not set +CONFIG_ARCH_HAVE_RESET=y +# CONFIG_ARCH_USE_MPU is not set +# CONFIG_ARCH_IRQPRIO is not set +CONFIG_ARCH_STACKDUMP=y +# CONFIG_ENDIAN_BIG is not set +# CONFIG_ARCH_IDLE_CUSTOM is not set +# CONFIG_ARCH_HAVE_RAMFUNCS is not set +CONFIG_ARCH_HAVE_RAMVECTORS=y +# CONFIG_ARCH_RAMVECTORS is not set + +# +# Board Settings +# +CONFIG_BOARD_LOOPSPERMSEC=5483 +# CONFIG_ARCH_CALIBRATION is not set + +# +# Interrupt options +# +CONFIG_ARCH_HAVE_INTERRUPTSTACK=y +CONFIG_ARCH_INTERRUPTSTACK=0 +CONFIG_ARCH_HAVE_HIPRI_INTERRUPT=y +# CONFIG_ARCH_HIPRI_INTERRUPT is not set + +# +# Boot options +# +# CONFIG_BOOT_RUNFROMEXTSRAM is not set +CONFIG_BOOT_RUNFROMFLASH=y +# CONFIG_BOOT_RUNFROMISRAM is not set +# CONFIG_BOOT_RUNFROMSDRAM is not set +# CONFIG_BOOT_COPYTORAM is not set + +# +# Boot Memory Configuration +# +CONFIG_RAM_START=0x20000000 +CONFIG_RAM_SIZE=20480 +# CONFIG_ARCH_HAVE_SDRAM is not set + +# +# Board Selection +# +# CONFIG_ARCH_BOARD_STM32_TINY is not set +CONFIG_ARCH_BOARD_STM32F103_MINIMUM_BOARD=y +# CONFIG_ARCH_BOARD_CUSTOM is not set +CONFIG_ARCH_BOARD="stm32f103-minimum" + +# +# Common Board Options +# +CONFIG_ARCH_HAVE_LEDS=y +CONFIG_ARCH_LEDS=y +CONFIG_NSH_MMCSDMINOR=0 + +# +# Board-Specific Options +# +CONFIG_LIB_BOARDCTL=y +# CONFIG_BOARDCTL_RESET is not set +# CONFIG_BOARDCTL_UNIQUEID is not set +# CONFIG_BOARDCTL_TSCTEST is not set +# CONFIG_BOARDCTL_ADCTEST is not set +# CONFIG_BOARDCTL_PWMTEST is not set +# CONFIG_BOARDCTL_GRAPHICS is not set +# CONFIG_BOARDCTL_IOCTL is not set + +# +# RTOS Features +# +# CONFIG_DISABLE_OS_API is not set + +# +# Clocks and Timers +# +CONFIG_USEC_PER_TICK=10000 +# CONFIG_SYSTEM_TIME64 is not set +# CONFIG_CLOCK_MONOTONIC is not set +# CONFIG_JULIAN_TIME is not set +CONFIG_START_YEAR=2011 +CONFIG_START_MONTH=7 +CONFIG_START_DAY=5 +CONFIG_MAX_WDOGPARMS=2 +CONFIG_PREALLOC_WDOGS=4 +CONFIG_WDOG_INTRESERVE=0 +CONFIG_PREALLOC_TIMERS=4 + +# +# Tasks and Scheduling +# +# CONFIG_INIT_NONE is not set +CONFIG_INIT_ENTRYPOINT=y +# CONFIG_INIT_FILEPATH is not set +CONFIG_USER_ENTRYPOINT="nsh_main" +CONFIG_RR_INTERVAL=200 +# CONFIG_SCHED_SPORADIC is not set +CONFIG_TASK_NAME_SIZE=0 +CONFIG_MAX_TASKS=16 +# CONFIG_SCHED_HAVE_PARENT is not set +CONFIG_SCHED_WAITPID=y + +# +# Pthread Options +# +# CONFIG_MUTEX_TYPES is not set +CONFIG_NPTHREAD_KEYS=4 + +# +# Performance Monitoring +# +# CONFIG_SCHED_CPULOAD is not set +# CONFIG_SCHED_INSTRUMENTATION is not set + +# +# Files and I/O +# +CONFIG_DEV_CONSOLE=y +# CONFIG_FDCLONE_DISABLE is not set +# CONFIG_FDCLONE_STDIO is not set +CONFIG_SDCLONE_DISABLE=y +CONFIG_NFILE_DESCRIPTORS=8 +CONFIG_NFILE_STREAMS=8 +CONFIG_NAME_MAX=32 +# CONFIG_PRIORITY_INHERITANCE is not set + +# +# RTOS hooks +# +# CONFIG_BOARD_INITIALIZE is not set +# CONFIG_SCHED_STARTHOOK is not set +# CONFIG_SCHED_ATEXIT is not set +# CONFIG_SCHED_ONEXIT is not set +# CONFIG_SIG_EVTHREAD is not set + +# +# Signal Numbers +# +CONFIG_SIG_SIGUSR1=1 +CONFIG_SIG_SIGUSR2=2 +CONFIG_SIG_SIGALARM=3 +CONFIG_SIG_SIGCONDTIMEDOUT=16 +CONFIG_SIG_SIGWORK=17 + +# +# POSIX Message Queue Options +# +CONFIG_PREALLOC_MQ_MSGS=4 +CONFIG_MQ_MAXMSGSIZE=32 +# CONFIG_MODULE is not set + +# +# Work queue support +# +CONFIG_SCHED_WORKQUEUE=y +CONFIG_SCHED_HPWORK=y +CONFIG_SCHED_HPWORKPRIORITY=192 +CONFIG_SCHED_HPWORKPERIOD=50000 +CONFIG_SCHED_HPWORKSTACKSIZE=2048 +# CONFIG_SCHED_LPWORK is not set + +# +# Stack and heap information +# +CONFIG_IDLETHREAD_STACKSIZE=1024 +CONFIG_USERMAIN_STACKSIZE=2048 +CONFIG_PTHREAD_STACK_MIN=256 +CONFIG_PTHREAD_STACK_DEFAULT=2048 +# CONFIG_LIB_SYSCALL is not set + +# +# Device Drivers +# +# CONFIG_DISABLE_POLL is not set +CONFIG_DEV_NULL=y +# CONFIG_DEV_ZERO is not set +# CONFIG_DEV_LOOP is not set + +# +# Buffering +# +# CONFIG_DRVR_WRITEBUFFER is not set +# CONFIG_DRVR_READAHEAD is not set +# CONFIG_RAMDISK is not set +# CONFIG_CAN is not set +# CONFIG_ARCH_HAVE_PWM_PULSECOUNT is not set +# CONFIG_ARCH_HAVE_PWM_MULTICHAN is not set +# CONFIG_PWM is not set +CONFIG_ARCH_HAVE_I2CRESET=y +# CONFIG_I2C is not set +# CONFIG_SPI is not set +# CONFIG_I2S is not set + +# +# Timer Driver Support +# +# CONFIG_TIMER is not set +# CONFIG_RTC is not set +# CONFIG_WATCHDOG is not set +# CONFIG_ANALOG is not set +# CONFIG_AUDIO_DEVICES is not set +# CONFIG_VIDEO_DEVICES is not set +# CONFIG_BCH is not set +# CONFIG_INPUT is not set +# CONFIG_IOEXPANDER is not set +# CONFIG_LCD is not set + +# +# LED Support +# +# CONFIG_USERLED is not set +# CONFIG_RGBLED is not set +# CONFIG_PCA9635PW is not set +# CONFIG_MMCSD is not set +# CONFIG_MODEM is not set +# CONFIG_MTD is not set +# CONFIG_EEPROM is not set +# CONFIG_PIPES is not set +# CONFIG_PM is not set +# CONFIG_POWER is not set +# CONFIG_SENSORS is not set +# CONFIG_SERCOMM_CONSOLE is not set +CONFIG_SERIAL=y +# CONFIG_DEV_LOWCONSOLE is not set +# CONFIG_16550_UART is not set +# CONFIG_ARCH_HAVE_UART is not set +# CONFIG_ARCH_HAVE_UART0 is not set +# CONFIG_ARCH_HAVE_UART1 is not set +# CONFIG_ARCH_HAVE_UART2 is not set +# CONFIG_ARCH_HAVE_UART3 is not set +# CONFIG_ARCH_HAVE_UART4 is not set +# CONFIG_ARCH_HAVE_UART5 is not set +# CONFIG_ARCH_HAVE_UART6 is not set +# CONFIG_ARCH_HAVE_UART7 is not set +# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_ARCH_HAVE_SCI0 is not set +# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_ARCH_HAVE_USART0 is not set +CONFIG_ARCH_HAVE_USART1=y +# CONFIG_ARCH_HAVE_USART2 is not set +# CONFIG_ARCH_HAVE_USART3 is not set +# CONFIG_ARCH_HAVE_USART4 is not set +# CONFIG_ARCH_HAVE_USART5 is not set +# CONFIG_ARCH_HAVE_USART6 is not set +# CONFIG_ARCH_HAVE_USART7 is not set +# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_ARCH_HAVE_OTHER_UART is not set + +# +# USART Configuration +# +CONFIG_USART1_ISUART=y +CONFIG_MCU_SERIAL=y +CONFIG_STANDARD_SERIAL=y +CONFIG_SERIAL_NPOLLWAITERS=2 +# CONFIG_SERIAL_IFLOWCONTROL is not set +# CONFIG_SERIAL_OFLOWCONTROL is not set +# CONFIG_SERIAL_DMA is not set +CONFIG_ARCH_HAVE_SERIAL_TERMIOS=y +CONFIG_USART1_SERIAL_CONSOLE=y +# CONFIG_OTHER_SERIAL_CONSOLE is not set +# CONFIG_NO_SERIAL_CONSOLE is not set + +# +# USART1 Configuration +# +CONFIG_USART1_RXBUFSIZE=256 +CONFIG_USART1_TXBUFSIZE=256 +CONFIG_USART1_BAUD=115200 +CONFIG_USART1_BITS=8 +CONFIG_USART1_PARITY=0 +CONFIG_USART1_2STOP=0 +# CONFIG_USART1_IFLOWCONTROL is not set +# CONFIG_USART1_OFLOWCONTROL is not set +# CONFIG_USART1_DMA is not set +# CONFIG_USBDEV is not set +# CONFIG_USBHOST is not set +# CONFIG_DRIVERS_WIRELESS is not set + +# +# System Logging Device Options +# + +# +# System Logging +# +# CONFIG_RAMLOG is not set +# CONFIG_SYSLOG_CONSOLE is not set + +# +# Networking Support +# +# CONFIG_ARCH_HAVE_NET is not set +# CONFIG_ARCH_HAVE_PHY is not set +# CONFIG_NET is not set + +# +# Crypto API +# +# CONFIG_CRYPTO is not set + +# +# File Systems +# + +# +# File system configuration +# +# CONFIG_DISABLE_MOUNTPOINT is not set +# CONFIG_FS_AUTOMOUNTER is not set +CONFIG_DISABLE_PSEUDOFS_OPERATIONS=y +# CONFIG_FS_READABLE is not set +# CONFIG_FS_WRITABLE is not set +# CONFIG_FS_NAMED_SEMAPHORES is not set +CONFIG_FS_MQUEUE_MPATH="/var/mqueue" +# CONFIG_FS_RAMMAP is not set +# CONFIG_FS_FAT is not set +# CONFIG_FS_NXFFS is not set +# CONFIG_FS_ROMFS is not set +# CONFIG_FS_TMPFS is not set +# CONFIG_FS_SMARTFS is not set +# CONFIG_FS_BINFS is not set +# CONFIG_FS_PROCFS is not set +# CONFIG_FS_UNIONFS is not set + +# +# System Logging +# +# CONFIG_SYSLOG is not set +# CONFIG_SYSLOG_TIMESTAMP is not set + +# +# Graphics Support +# +# CONFIG_NX is not set + +# +# Memory Management +# +# CONFIG_MM_SMALL is not set +CONFIG_MM_REGIONS=1 +# CONFIG_ARCH_HAVE_HEAP2 is not set +# CONFIG_GRAN is not set + +# +# Audio Support +# +# CONFIG_AUDIO is not set + +# +# Wireless Support +# + +# +# Binary Loader +# +# CONFIG_BINFMT_DISABLE is not set +# CONFIG_BINFMT_EXEPATH is not set +# CONFIG_NXFLAT is not set +# CONFIG_ELF is not set +CONFIG_BUILTIN=y +# CONFIG_PIC is not set +CONFIG_SYMTAB_ORDEREDBYNAME=y + +# +# Library Routines +# + +# +# Standard C Library Options +# +CONFIG_STDIO_BUFFER_SIZE=64 +CONFIG_STDIO_LINEBUFFER=y +CONFIG_NUNGET_CHARS=2 +CONFIG_LIB_HOMEDIR="/" +# CONFIG_LIBM is not set +# CONFIG_NOPRINTF_FIELDWIDTH is not set +# CONFIG_LIBC_FLOATINGPOINT is not set +# CONFIG_LIBC_LONG_LONG is not set +# CONFIG_LIBC_IOCTL_VARIADIC is not set +CONFIG_LIB_RAND_ORDER=1 +# CONFIG_EOL_IS_CR is not set +# CONFIG_EOL_IS_LF is not set +# CONFIG_EOL_IS_BOTH_CRLF is not set +CONFIG_EOL_IS_EITHER_CRLF=y +# CONFIG_LIBC_EXECFUNCS is not set +CONFIG_POSIX_SPAWN_PROXY_STACKSIZE=1024 +CONFIG_TASK_SPAWN_DEFAULT_STACKSIZE=2048 +# CONFIG_LIBC_STRERROR is not set +# CONFIG_LIBC_PERROR_STDOUT is not set +CONFIG_ARCH_LOWPUTC=y +# CONFIG_LIBC_LOCALTIME is not set +# CONFIG_TIME_EXTENDED is not set +CONFIG_LIB_SENDFILE_BUFSIZE=512 +# CONFIG_ARCH_ROMGETC is not set +# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set +# CONFIG_LIBC_NETDB is not set + +# +# Non-standard Library Support +# +# CONFIG_LIB_KBDCODEC is not set +# CONFIG_LIB_SLCDCODEC is not set + +# +# Basic CXX Support +# +# CONFIG_C99_BOOL8 is not set +# CONFIG_HAVE_CXX is not set + +# +# Application Configuration +# + +# +# Built-In Applications +# +CONFIG_BUILTIN_PROXY_STACKSIZE=1024 + +# +# CAN Utilities +# + +# +# Examples +# +# CONFIG_EXAMPLES_CHAT is not set +# CONFIG_EXAMPLES_CONFIGDATA is not set +# CONFIG_EXAMPLES_CPUHOG is not set +# CONFIG_EXAMPLES_DHCPD is not set +# CONFIG_EXAMPLES_ELF is not set +# CONFIG_EXAMPLES_FTPC is not set +# CONFIG_EXAMPLES_FTPD is not set +# CONFIG_EXAMPLES_HELLO is not set +# CONFIG_EXAMPLES_JSON is not set +# CONFIG_EXAMPLES_HIDKBD is not set +# CONFIG_EXAMPLES_KEYPADTEST is not set +# CONFIG_EXAMPLES_IGMP is not set +# CONFIG_EXAMPLES_MEDIA is not set +# CONFIG_EXAMPLES_MM is not set +# CONFIG_EXAMPLES_MODBUS is not set +# CONFIG_EXAMPLES_MOUNT is not set +# CONFIG_EXAMPLES_NRF24L01TERM is not set +CONFIG_EXAMPLES_NSH=y +# CONFIG_EXAMPLES_NULL is not set +# CONFIG_EXAMPLES_NX is not set +# CONFIG_EXAMPLES_NXTERM is not set +# CONFIG_EXAMPLES_NXFFS is not set +# CONFIG_EXAMPLES_NXHELLO is not set +# CONFIG_EXAMPLES_NXIMAGE is not set +# CONFIG_EXAMPLES_NXLINES is not set +# CONFIG_EXAMPLES_NXTEXT is not set +# CONFIG_EXAMPLES_OSTEST is not set +# CONFIG_EXAMPLES_PCA9635 is not set +# CONFIG_EXAMPLES_PIPE is not set +# CONFIG_EXAMPLES_PPPD is not set +# CONFIG_EXAMPLES_POSIXSPAWN is not set +# CONFIG_EXAMPLES_RGBLED is not set +# CONFIG_EXAMPLES_RGMP is not set +# CONFIG_EXAMPLES_SENDMAIL is not set +# CONFIG_EXAMPLES_SERIALBLASTER is not set +# CONFIG_EXAMPLES_SERIALRX is not set +# CONFIG_EXAMPLES_SERLOOP is not set +# CONFIG_EXAMPLES_SLCD is not set +# CONFIG_EXAMPLES_SMART_TEST is not set +# CONFIG_EXAMPLES_SMART is not set +# CONFIG_EXAMPLES_SMP is not set +# CONFIG_EXAMPLES_TCPECHO is not set +# CONFIG_EXAMPLES_TELNETD is not set +# CONFIG_EXAMPLES_TIFF is not set +# CONFIG_EXAMPLES_TOUCHSCREEN is not set +# CONFIG_EXAMPLES_WEBSERVER is not set +# CONFIG_EXAMPLES_USBSERIAL is not set +# CONFIG_EXAMPLES_USBTERM is not set +# CONFIG_EXAMPLES_WATCHDOG is not set + +# +# File System Utilities +# +# CONFIG_FSUTILS_INIFILE is not set + +# +# GPS Utilities +# +# CONFIG_GPSUTILS_MINMEA_LIB is not set + +# +# Graphics Support +# +# CONFIG_TIFF is not set +# CONFIG_GRAPHICS_TRAVELER is not set + +# +# Interpreters +# +# CONFIG_INTERPRETERS_FICL is not set +# CONFIG_INTERPRETERS_PCODE is not set +# CONFIG_INTERPRETERS_MICROPYTHON is not set + +# +# FreeModBus +# +# CONFIG_MODBUS is not set + +# +# Network Utilities +# +# CONFIG_NETUTILS_CHAT is not set +# CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_FTPC is not set +# CONFIG_NETUTILS_JSON is not set +# CONFIG_NETUTILS_SMTP is not set + +# +# NSH Library +# +CONFIG_NSH_LIBRARY=y +# CONFIG_NSH_MOTD is not set + +# +# Command Line Configuration +# +CONFIG_NSH_READLINE=y +# CONFIG_NSH_CLE is not set +CONFIG_NSH_LINELEN=80 +CONFIG_NSH_DISABLE_SEMICOLON=y +# CONFIG_NSH_CMDPARMS is not set +CONFIG_NSH_MAXARGUMENTS=6 +# CONFIG_NSH_ARGCAT is not set +CONFIG_NSH_NESTDEPTH=3 +CONFIG_NSH_DISABLEBG=y +CONFIG_NSH_BUILTIN_APPS=y + +# +# Disable Individual commands +# +CONFIG_NSH_DISABLE_ADDROUTE=y +CONFIG_NSH_DISABLE_BASENAME=y +# CONFIG_NSH_DISABLE_CAT is not set +# CONFIG_NSH_DISABLE_CD is not set +# CONFIG_NSH_DISABLE_CP is not set +CONFIG_NSH_DISABLE_CMP=y +CONFIG_NSH_DISABLE_DATE=y +# CONFIG_NSH_DISABLE_DD is not set +CONFIG_NSH_DISABLE_DF=y +CONFIG_NSH_DISABLE_DELROUTE=y +CONFIG_NSH_DISABLE_DIRNAME=y +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_EXEC is not set +# CONFIG_NSH_DISABLE_EXIT is not set +# CONFIG_NSH_DISABLE_FREE is not set +# CONFIG_NSH_DISABLE_GET is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_HEXDUMP is not set +CONFIG_NSH_DISABLE_IFCONFIG=y +CONFIG_NSH_DISABLE_IFUPDOWN=y +# CONFIG_NSH_DISABLE_KILL is not set +CONFIG_NSH_DISABLE_LOSETUP=y +CONFIG_NSH_DISABLE_LOSMART=y +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MB is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MKFIFO is not set +# CONFIG_NSH_DISABLE_MKRD is not set +# CONFIG_NSH_DISABLE_MH is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_MW is not set +# CONFIG_NSH_DISABLE_PS is not set +# CONFIG_NSH_DISABLE_PUT is not set +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_RM is not set +# CONFIG_NSH_DISABLE_RMDIR is not set +# CONFIG_NSH_DISABLE_SET is not set +# CONFIG_NSH_DISABLE_SH is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +CONFIG_NSH_DISABLE_TIME=y +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +CONFIG_NSH_DISABLE_UNAME=y +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set +# CONFIG_NSH_DISABLE_WGET is not set +# CONFIG_NSH_DISABLE_XD is not set + +# +# Configure Command Options +# +CONFIG_NSH_CODECS_BUFSIZE=128 +# CONFIG_NSH_CMDOPT_HEXDUMP is not set +CONFIG_NSH_FILEIOSIZE=1024 + +# +# Scripting Support +# +# CONFIG_NSH_DISABLESCRIPT is not set +CONFIG_NSH_DISABLE_ITEF=y +CONFIG_NSH_DISABLE_LOOPS=y + +# +# Console Configuration +# +CONFIG_NSH_CONSOLE=y +# CONFIG_NSH_ALTCONDEV is not set +CONFIG_NSH_ARCHINIT=y +# CONFIG_NSH_LOGIN is not set +# CONFIG_NSH_CONSOLE_LOGIN is not set + +# +# NxWidgets/NxWM +# +# CONFIG_PICOTTS is not set + +# +# Platform-specific Support +# +# CONFIG_PLATFORM_CONFIGDATA is not set + +# +# System Libraries and NSH Add-Ons +# +# CONFIG_SYSTEM_FREE is not set +# CONFIG_SYSTEM_CLE is not set +# CONFIG_SYSTEM_CUTERM is not set +# CONFIG_SYSTEM_INSTALL is not set +# CONFIG_SYSTEM_HEX2BIN is not set +# CONFIG_SYSTEM_HEXED is not set +# CONFIG_SYSTEM_RAMTEST is not set +CONFIG_READLINE_HAVE_EXTMATCH=y +CONFIG_SYSTEM_READLINE=y +CONFIG_READLINE_ECHO=y +# CONFIG_READLINE_TABCOMPLETION is not set +# CONFIG_READLINE_CMD_HISTORY is not set +# CONFIG_SYSTEM_SUDOKU is not set +# CONFIG_SYSTEM_VI is not set +# CONFIG_SYSTEM_UBLOXMODEM is not set +# CONFIG_SYSTEM_ZMODEM is not set diff --git a/configs/stm32f103-minimum/nsh/setenv.sh b/configs/stm32f103-minimum/nsh/setenv.sh new file mode 100644 index 0000000000..73dfab5a4d --- /dev/null +++ b/configs/stm32f103-minimum/nsh/setenv.sh @@ -0,0 +1,100 @@ +#!/bin/bash +# configs//stm32f103-minimum/nsh/setenv.sh +# +# Copyright (C) 2016 Gregory Nutt. All rights reserved. +# Author: Gregory Nutt +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# 3. Neither the name NuttX nor the names of its contributors may be +# used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# 3. Neither the name NuttX nor the names of its contributors may be +# used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + +if [ "$_" = "$0" ] ; then + echo "You must source this script, not run it!" 1>&2 + exit 1 +fi + +WD=`pwd` +if [ ! -x "setenv.sh" ]; then + echo "This script must be executed from the top-level NuttX build directory" + exit 1 +fi + +if [ -z "${PATH_ORIG}" ]; then + export PATH_ORIG="${PATH}" +fi + +# This is the Cygwin path to the location where I installed the CodeSourcery +# toolchain under windows. You will also have to edit this if you install +# the CodeSourcery toolchain in any other location +#export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/CodeSourcery/Sourcery G++ Lite/bin" +#export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_EABI/bin" +# export TOOLCHAIN_BIN="/cygdrive/c/Users/MyName/MentorGraphics/Sourcery_CodeBench_Lite_for_ARM_EABI/bin" + +# This is the location where I installed the ARM "GNU Tools for ARM Embedded Processors" +# You can this free toolchain here https://launchpad.net/gcc-arm-embedded +export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/GNU Tools ARM Embedded/4.9 2015q2/bin" + +# This is the path to the location where I installed the devkitARM toolchain +# You can get this free toolchain from http://devkitpro.org/ or http://sourceforge.net/projects/devkitpro/ +#export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/devkitARM/bin" + +# This is the Cygwin path to the location where I build the buildroot +# toolchain. +# export TOOLCHAIN_BIN="${WD}/../buildroot/build_arm_nofpu/staging_dir/bin" + +# Add the path to the toolchain to the PATH varialble +export PATH="${TOOLCHAIN_BIN}:/sbin:/usr/sbin:${PATH_ORIG}" + +echo "PATH : ${PATH}" diff --git a/configs/stm32f103-minimum/scripts/ld.script b/configs/stm32f103-minimum/scripts/ld.script new file mode 100644 index 0000000000..e674b60d21 --- /dev/null +++ b/configs/stm32f103-minimum/scripts/ld.script @@ -0,0 +1,119 @@ +/**************************************************************************** + * configs/stm32f103-minimum/scripts/ld.script + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * Laurent Latil + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +/* The STM32F103C8T6 has 64Kb of FLASH beginning at address 0x0800:0000 and + * 20Kb of SRAM beginning at address 0x2000:0000. When booting from FLASH, + * FLASH memory is aliased to address 0x0000:0000 where the code expects to + * begin execution by jumping to the entry point in the 0x0800:0000 address + * range. + */ + +MEMORY +{ + flash (rx) : ORIGIN = 0x08000000, LENGTH = 64K + sram (rwx) : ORIGIN = 0x20000000, LENGTH = 20K +} + +OUTPUT_ARCH(arm) +ENTRY(_stext) +SECTIONS +{ + .text : { + _stext = ABSOLUTE(.); + *(.vectors) + *(.text .text.*) + *(.fixup) + *(.gnu.warning) + *(.rodata .rodata.*) + *(.gnu.linkonce.t.*) + *(.glue_7) + *(.glue_7t) + *(.got) + *(.gcc_except_table) + *(.gnu.linkonce.r.*) + _etext = ABSOLUTE(.); + } > flash + + .init_section : { + _sinit = ABSOLUTE(.); + *(.init_array .init_array.*) + _einit = ABSOLUTE(.); + } > flash + + .ARM.extab : { + *(.ARM.extab*) + } > flash + + __exidx_start = ABSOLUTE(.); + .ARM.exidx : { + *(.ARM.exidx*) + } > flash + __exidx_end = ABSOLUTE(.); + + _eronly = ABSOLUTE(.); + + /* The STM32F103C8T6 has 20Kb of SRAM beginning at the following address */ + + .data : { + _sdata = ABSOLUTE(.); + *(.data .data.*) + *(.gnu.linkonce.d.*) + CONSTRUCTORS + _edata = ABSOLUTE(.); + } > sram AT > flash + + .bss : { + _sbss = ABSOLUTE(.); + *(.bss .bss.*) + *(.gnu.linkonce.b.*) + *(COMMON) + _ebss = ABSOLUTE(.); + } > sram + + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } + .stabstr 0 : { *(.stabstr) } + .stab.excl 0 : { *(.stab.excl) } + .stab.exclstr 0 : { *(.stab.exclstr) } + .stab.index 0 : { *(.stab.index) } + .stab.indexstr 0 : { *(.stab.indexstr) } + .comment 0 : { *(.comment) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_info 0 : { *(.debug_info) } + .debug_line 0 : { *(.debug_line) } + .debug_pubnames 0 : { *(.debug_pubnames) } + .debug_aranges 0 : { *(.debug_aranges) } +} diff --git a/configs/stm32f103-minimum/src/.gitignore b/configs/stm32f103-minimum/src/.gitignore new file mode 100644 index 0000000000..726d936e1e --- /dev/null +++ b/configs/stm32f103-minimum/src/.gitignore @@ -0,0 +1,2 @@ +/.depend +/Make.dep diff --git a/configs/stm32f103-minimum/src/Makefile b/configs/stm32f103-minimum/src/Makefile new file mode 100644 index 0000000000..67129fc524 --- /dev/null +++ b/configs/stm32f103-minimum/src/Makefile @@ -0,0 +1,50 @@ +############################################################################ +# configs/stm32f103-minimum/src/Makefile +# +# Copyright (C) 2016 Gregory Nutt. All rights reserved. +# Author: Gregory Nutt +# Laurent Latil +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# 3. Neither the name NuttX nor the names of its contributors may be +# used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +############################################################################ + +-include $(TOPDIR)/Make.defs + +ASRCS = +CSRCS = stm32_boot.c stm32_autoleds.c stm32_spi.c stm32_usbdev.c + +ifeq ($(CONFIG_LIB_BOARDCTL),y) +CSRCS += stm32_appinit.c +endif + +ifeq ($(CONFIG_WATCHDOG),y) +CSRCS += stm32_watchdog.c +endif + +include $(TOPDIR)/configs/Board.mk diff --git a/configs/stm32f103-minimum/src/stm32_appinit.c b/configs/stm32f103-minimum/src/stm32_appinit.c new file mode 100644 index 0000000000..73544527b1 --- /dev/null +++ b/configs/stm32f103-minimum/src/stm32_appinit.c @@ -0,0 +1,67 @@ +/**************************************************************************** + * config/stm32f103-minimum/src/stm32_appinit.c + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include + +#include +#include +#include +#include + +#include + +#include "stm32.h" +#include "stm32f103_minimum.h" + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: board_app_initialize + * + * Description: + * Perform architecture specific initialization + * + ****************************************************************************/ + +int board_app_initialize(void) +{ + return OK; +} diff --git a/configs/stm32f103-minimum/src/stm32_autoleds.c b/configs/stm32f103-minimum/src/stm32_autoleds.c new file mode 100644 index 0000000000..71d2bfdb05 --- /dev/null +++ b/configs/stm32f103-minimum/src/stm32_autoleds.c @@ -0,0 +1,140 @@ +/**************************************************************************** + * configs/stm32f103-minimum/src/stm32_autoleds.c + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: Laurent Latil + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include + +#include +#include +#include + +#include +#include + +#include "chip.h" +#include "up_arch.h" +#include "up_internal.h" +#include "stm32.h" +#include "stm32f103_minimum.h" + +/**************************************************************************** + * Pre-processor Definitions + ****************************************************************************/ + +/* CONFIG_DEBUG_LEDS enables debug output from this file (needs CONFIG_DEBUG + * with CONFIG_DEBUG_VERBOSE too) + */ + +#ifdef CONFIG_DEBUG_LEDS +# define leddbg lldbg +# define ledvdbg llvdbg +#else +# define leddbg(x...) +# define ledvdbg(x...) +#endif + +/**************************************************************************** + * Private Functions + ****************************************************************************/ + +static inline void set_led(bool v) +{ + ledvdbg("Turn LED %s\n", v? "on":"off"); + stm32_gpiowrite(GPIO_LED, !v); +} + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: board_autoled_initialize + ****************************************************************************/ + +#ifdef CONFIG_ARCH_LEDS +void board_autoled_initialize(void) +{ + /* Configure LED GPIO for output */ + + stm32_configgpio(GPIO_LED); +} + +/**************************************************************************** + * Name: board_autoled_on + ****************************************************************************/ + +void board_autoled_on(int led) +{ + ledvdbg("board_autoled_on(%d)\n",led); + + switch (led) + { + case LED_STARTED: + case LED_HEAPALLOCATE: + /* As the board provides only one soft controllable LED, we simply + * turn it on when the board boots. + */ + + set_led(true); + break; + + case LED_PANIC: + /* For panic state, the LED is blinking */ + + set_led(true); + break; + } +} + +/**************************************************************************** + * Name: board_autoled_off + ****************************************************************************/ + +void board_autoled_off(int led) +{ + switch (led) + { + case LED_PANIC: + /* For panic state, the LED is blinking */ + + set_led(false); + break; + } +} + +#endif /* CONFIG_ARCH_LEDS */ diff --git a/configs/stm32f103-minimum/src/stm32_boot.c b/configs/stm32f103-minimum/src/stm32_boot.c new file mode 100644 index 0000000000..c7b9b4df99 --- /dev/null +++ b/configs/stm32f103-minimum/src/stm32_boot.c @@ -0,0 +1,89 @@ +/************************************************************************************ + * configs/stm32f103-minimum/src/stm32_boot.c + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * Laurent Latil + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ************************************************************************************/ + +/************************************************************************************ + * Included Files + ************************************************************************************/ + +#include +#include +#include + +#include +#include + +#include "up_arch.h" +#include "stm32f103_minimum.h" + +/************************************************************************************ + * Public Functions + ************************************************************************************/ + +/************************************************************************************ + * Name: stm32_boardinitialize + * + * Description: + * All STM32 architectures must provide the following entry point. This entry point + * is called early in the initialization -- after all memory has been configured + * and mapped but before any devices have been initialized. + * + ************************************************************************************/ + +void stm32_boardinitialize(void) +{ + /* Configure on-board LEDs if LED support has been selected. */ + +#ifdef CONFIG_ARCH_LEDS + board_autoled_initialize(); +#endif + + /* Configure SPI chip selects if 1) SPI is not disabled, and 2) the weak function + * stm32_spidev_initialize() has been brought into the link. + */ + +#if defined(CONFIG_STM32_SPI1) || defined(CONFIG_STM32_SPI2) + stm32_spidev_initialize(); +#endif + + /* Initialize USB is 1) USBDEV is selected, 2) the USB controller is not + * disabled, and 3) the weak function stm32_usbinitialize() has been brought + * into the build. + */ + +#if defined(CONFIG_USBDEV) && defined(CONFIG_STM32_USB) + stm32_usbinitialize(); +#endif +} diff --git a/configs/stm32f103-minimum/src/stm32_spi.c b/configs/stm32f103-minimum/src/stm32_spi.c new file mode 100644 index 0000000000..791bf94cc1 --- /dev/null +++ b/configs/stm32f103-minimum/src/stm32_spi.c @@ -0,0 +1,148 @@ +/************************************************************************************ + * configs/stm32f103-minimum/src/stm32_spi.c + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * Laurent Latil + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ************************************************************************************/ + +/************************************************************************************ + * Included Files + ************************************************************************************/ + +#include + +#include +#include +#include + +#include +#include + +#include "up_arch.h" +#include "chip.h" +#include "stm32.h" +#include "stm32f103_minimum.h" + +#if defined(CONFIG_STM32_SPI1) || defined(CONFIG_STM32_SPI2) + +/************************************************************************************ + * Pre-processor Definitions + ************************************************************************************/ + +/* Enables debug output from this file (needs CONFIG_DEBUG too) */ + +#ifndef CONFIG_DEBUG +# undef CONFIG_DEBUG_VERBOSE +# undef CONFIG_DEBUG_SPI +#endif + +#ifdef CONFIG_DEBUG_SPI +# define spidbg lldbg +# ifdef CONFIG_DEBUG_VERBOSE +# define spivdbg lldbg +# else +# define spivdbg(x...) +# endif +#else +# define spidbg(x...) +# define spivdbg(x...) +#endif + +/************************************************************************************ + * Public Functions + ************************************************************************************/ + +/************************************************************************************ + * Name: stm32_spidev_initialize + * + * Description: + * Called to configure SPI chip select GPIO pins for the HY-MiniSTM32 board. + * + ************************************************************************************/ + +void stm32_spidev_initialize(void) +{ + /* NOTE: Clocking for SPI1 and/or SPI2 was already provided in stm32_rcc.c. + * Configurations of SPI pins is performed in stm32_spi.c. + * Here, we only initialize chip select pins unique to the board + * architecture. + */ +} + +/**************************************************************************** + * Name: stm32_spi1/2select and stm32_spi1/2status + * + * Description: + * The external functions, stm32_spi1/2/3select and stm32_spi1/2/3status must be + * provided by board-specific logic. They are implementations of the select + * and status methods of the SPI interface defined by struct spi_ops_s (see + * include/nuttx/spi/spi.h). All other methods (including stm32_spibus_initialize()) + * are provided by common STM32 logic. To use this common SPI logic on your + * board: + * + * 1. Provide logic in stm32_boardinitialize() to configure SPI chip select + * pins. + * 2. Provide stm32_spi1/2/3select() and stm32_spi1/2/3status() functions in your + * board-specific logic. These functions will perform chip selection and + * status operations using GPIOs in the way your board is configured. + * 3. Add a calls to stm32_spibus_initialize() in your low level application + * initialization logic + * 4. The handle returned by stm32_spibus_initialize() may then be used to bind the + * SPI driver to higher level logic (e.g., calling + * mmcsd_spislotinitialize(), for example, will bind the SPI driver to + * the SPI MMC/SD driver). + * + ****************************************************************************/ + +#ifdef CONFIG_STM32_SPI1 +void stm32_spi1select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected) +{ +} + +uint8_t stm32_spi1status(FAR struct spi_dev_s *dev, enum spi_dev_e devid) +{ + return 0; +} +#endif + +#ifdef CONFIG_STM32_SPI2 +void stm32_spi2select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected) +{ +} + +uint8_t stm32_spi2status(FAR struct spi_dev_s *dev, enum spi_dev_e devid) +{ + return 0; +} +#endif + +#endif /* CONFIG_STM32_SPI1 || CONFIG_STM32_SPI2 */ diff --git a/configs/stm32f103-minimum/src/stm32_usbdev.c b/configs/stm32f103-minimum/src/stm32_usbdev.c new file mode 100644 index 0000000000..cc1d00df73 --- /dev/null +++ b/configs/stm32f103-minimum/src/stm32_usbdev.c @@ -0,0 +1,107 @@ +/************************************************************************************ + * configs/stm32f103-minimum/src/stm32_usbdev.c + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * Laurent Latil + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ************************************************************************************/ + +/************************************************************************************ + * Included Files + ************************************************************************************/ + +#include + +#include +#include +#include +#include + +#include +#include + +#include "up_arch.h" +#include "stm32.h" +#include "stm32f103_minimum.h" + +/************************************************************************************ + * Public Functions + ************************************************************************************/ + +/************************************************************************************ + * Name: stm32_usbinitialize + * + * Description: + * Called to setup USB-related GPIO pins for the Hy-Mini STM32v board. + * + ************************************************************************************/ + +void stm32_usbinitialize(void) +{ + /* USB Soft Connect Pullup */ + + stm32_configgpio(GPIO_USB_PULLUP); +} + +/************************************************************************************ + * Name: stm32_usbpullup + * + * Description: + * If USB is supported and the board supports a pullup via GPIO (for USB software + * connect and disconnect), then the board software must provide stm32_pullup. + * See include/nuttx/usb/usbdev.h for additional description of this method. + * Alternatively, if no pull-up GPIO the following EXTERN can be redefined to be + * NULL. + * + ************************************************************************************/ + +int stm32_usbpullup(FAR struct usbdev_s *dev, bool enable) +{ + usbtrace(TRACE_DEVPULLUP, (uint16_t)enable); + stm32_gpiowrite(GPIO_USB_PULLUP, !enable); + return OK; +} + +/************************************************************************************ + * Name: stm32_usbsuspend + * + * Description: + * Board logic must provide the stm32_usbsuspend logic if the USBDEV driver is + * used. This function is called whenever the USB enters or leaves suspend mode. + * This is an opportunity for the board logic to shutdown clocks, power, etc. + * while the USB is suspended. + * + ************************************************************************************/ + +void stm32_usbsuspend(FAR struct usbdev_s *dev, bool resume) +{ + ulldbg("resume: %d\n", resume); +} diff --git a/configs/stm32f103-minimum/src/stm32_watchdog.c b/configs/stm32f103-minimum/src/stm32_watchdog.c new file mode 100644 index 0000000000..f3847de58a --- /dev/null +++ b/configs/stm32f103-minimum/src/stm32_watchdog.c @@ -0,0 +1,140 @@ +/**************************************************************************** + * configs/stm32f103-minimum/src/stm32_watchdog.c + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include + +#include +#include + +#include +#include + +#include "stm32_wdg.h" + +#ifdef CONFIG_WATCHDOG + +/**************************************************************************** + * Pre-processor Definitions + ****************************************************************************/ + +/* Configuration ************************************************************/ +/* Wathdog hardware should be enabled */ + +#if !defined(CONFIG_STM32_WWDG) && !defined(CONFIG_STM32_IWDG) +# warning "One of CONFIG_STM32_WWDG or CONFIG_STM32_IWDG must be defined" +#endif + +/* Select the path to the registered watchdog timer device */ + +#ifndef CONFIG_STM32_WDG_DEVPATH +# ifdef CONFIG_EXAMPLES_WATCHDOG_DEVPATH +# define CONFIG_STM32_WDG_DEVPATH CONFIG_EXAMPLES_WATCHDOG_DEVPATH +# else +# define CONFIG_STM32_WDG_DEVPATH "/dev/watchdog0" +# endif +#endif + +/* Use the un-calibrated LSI frequency if we have nothing better */ + +#if defined(CONFIG_STM32_IWDG) && !defined(CONFIG_STM32_LSIFREQ) +# define CONFIG_STM32_LSIFREQ STM32_LSI_FREQUENCY +#endif + +/* Debug ********************************************************************/ +/* Non-standard debug that may be enabled just for testing the watchdog + * timer. + */ + +#ifndef CONFIG_DEBUG +# undef CONFIG_DEBUG_WATCHDOG +#endif + +#ifdef CONFIG_DEBUG_WATCHDOG +# define wdgdbg dbg +# define wdglldbg lldbg +# ifdef CONFIG_DEBUG_VERBOSE +# define wdgvdbg vdbg +# define wdgllvdbg llvdbg +# else +# define wdgvdbg(x...) +# define wdgllvdbg(x...) +# endif +#else +# define wdgdbg(x...) +# define wdglldbg(x...) +# define wdgvdbg(x...) +# define wdgllvdbg(x...) +#endif + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: up_wdginitialize() + * + * Description: + * Perform architecuture-specific initialization of the Watchdog hardware. + * This interface must be provided by all configurations using + * apps/examples/watchdog + * + ****************************************************************************/ + +int up_wdginitialize(void) +{ + /* Initialize and register the watchdog timer device */ + +#if defined(CONFIG_STM32_WWDG) + + stm32_wwdginitialize(CONFIG_STM32_WDG_DEVPATH); + return OK; + +#elif defined(CONFIG_STM32_IWDG) + + stm32_iwdginitialize(CONFIG_STM32_WDG_DEVPATH, CONFIG_STM32_LSIFREQ); + return OK; + +#else + + return -ENODEV; + +#endif +} + +#endif /* CONFIG_WATCHDOG */ diff --git a/configs/stm32f103-minimum/src/stm32f103_minimum.h b/configs/stm32f103-minimum/src/stm32f103_minimum.h new file mode 100644 index 0000000000..47691a195c --- /dev/null +++ b/configs/stm32f103-minimum/src/stm32f103_minimum.h @@ -0,0 +1,102 @@ +/************************************************************************************ + * configs/stm32f103-minimum/src/stm32f103_minimum.h + * + * Copyright (C) 2013 Gregory Nutt. All rights reserved. + * Author: Laurent Latil + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ************************************************************************************/ + +#ifndef __CONFIGS_STM32F103_MINIMUM_SRC_STM32F103_MINIMUM_H +#define __CONFIGS_STM32F103_MINIMUM_SRC_STM32F103_MINIMUM_H + +/************************************************************************************ + * Included Files + ************************************************************************************/ + +#include +#include +#include + +/************************************************************************************ + * Pre-processor Definitions + ************************************************************************************/ + +/* How many SPI modules does this chip support? The LM3S6918 supports 2 SPI + * modules (others may support more -- in such case, the following must be + * expanded). + */ + +#if STM32_NSPI < 1 +# undef CONFIG_STM32_SPI1 +# undef CONFIG_STM32_SPI2 +#elif STM32_NSPI < 2 +# undef CONFIG_STM32_SPI2 +#endif + +/* GPIOs **************************************************************/ +/* LEDs */ + +#define GPIO_LED (GPIO_OUTPUT|GPIO_CNF_OUTPP|GPIO_MODE_50MHz|\ + GPIO_OUTPUT_CLEAR|GPIO_PORTC|GPIO_PIN13) + +/* USB Soft Connect Pullup: PC.13 */ + +#define GPIO_USB_PULLUP (GPIO_OUTPUT|GPIO_CNF_OUTPP|GPIO_MODE_50MHz|\ + GPIO_OUTPUT_SET|GPIO_PORTC|GPIO_PIN13) + +/************************************************************************************ + * Public Functions + ************************************************************************************/ + +#ifndef __ASSEMBLY__ + +/************************************************************************************ + * Name: stm32_spidev_initialize + * + * Description: + * Called to configure SPI chip select GPIO pins for the Hy-Mini STM32v board. + * + ************************************************************************************/ + +void stm32_spidev_initialize(void); + +/************************************************************************************ + * Name: stm32_usbinitialize + * + * Description: + * Called to setup USB-related GPIO pins for the Hy-Mini STM32v board. + * + ************************************************************************************/ + +void stm32_usbinitialize(void); + +#endif /* __ASSEMBLY__ */ +#endif /* __CONFIGS_STM32F103_MINIMUM_SRC_STM32F103_MINIMUM_H */ + diff --git a/configs/stm32f103-minimum/usbnsh/Make.defs b/configs/stm32f103-minimum/usbnsh/Make.defs new file mode 100644 index 0000000000..9f134fbf13 --- /dev/null +++ b/configs/stm32f103-minimum/usbnsh/Make.defs @@ -0,0 +1,113 @@ +############################################################################ +# configs/stm32f103-minimum/usbnsh/Make.defs +# +# Copyright (C) 2016 Gregory Nutt. All rights reserved. +# Author: Gregory Nutt +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# 3. Neither the name NuttX nor the names of its contributors may be +# used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +############################################################################ + +include ${TOPDIR}/.config +include ${TOPDIR}/tools/Config.mk +include ${TOPDIR}/arch/arm/src/armv7-m/Toolchain.defs + +LDSCRIPT = ld.script + +ifeq ($(WINTOOL),y) + # Windows-native toolchains + DIRLINK = $(TOPDIR)/tools/copydir.sh + DIRUNLINK = $(TOPDIR)/tools/unlink.sh + MKDEP = $(TOPDIR)/tools/mkwindeps.sh + ARCHINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)/include}" + ARCHXXINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)/include}" -isystem "${shell cygpath -w $(TOPDIR)/include/cxx}" + ARCHSCRIPT = -T "${shell cygpath -w $(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/$(LDSCRIPT)}" +else + # Linux/Cygwin-native toolchain + MKDEP = $(TOPDIR)/tools/mkdeps$(HOSTEXEEXT) + ARCHINCLUDES = -I. -isystem $(TOPDIR)/include + ARCHXXINCLUDES = -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx + ARCHSCRIPT = -T$(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/$(LDSCRIPT) +endif + +CC = $(CROSSDEV)gcc +CXX = $(CROSSDEV)g++ +CPP = $(CROSSDEV)gcc -E +LD = $(CROSSDEV)ld +AR = $(CROSSDEV)ar rcs +NM = $(CROSSDEV)nm +OBJCOPY = $(CROSSDEV)objcopy +OBJDUMP = $(CROSSDEV)objdump + +ARCHCCVERSION = ${shell $(CC) -v 2>&1 | sed -n '/^gcc version/p' | sed -e 's/^gcc version \([0-9\.]\)/\1/g' -e 's/[-\ ].*//g' -e '1q'} +ARCHCCMAJOR = ${shell echo $(ARCHCCVERSION) | cut -d'.' -f1} + +ifeq ($(CONFIG_DEBUG_SYMBOLS),y) + ARCHOPTIMIZATION = -g +endif + +ifneq ($(CONFIG_DEBUG_NOOPT),y) + ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing -fno-strength-reduce -fomit-frame-pointer +endif + +ARCHCFLAGS = -fno-builtin +ARCHCXXFLAGS = -fno-builtin -fno-exceptions +ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef +ARCHWARNINGSXX = -Wall -Wshadow -Wundef +ARCHDEFINES = +ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10 + +CFLAGS = $(ARCHCFLAGS) $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe +CPICFLAGS = $(ARCHPICFLAGS) $(CFLAGS) +CXXFLAGS = $(ARCHCXXFLAGS) $(ARCHWARNINGSXX) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHXXINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe +CXXPICFLAGS = $(ARCHPICFLAGS) $(CXXFLAGS) +CPPFLAGS = $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) +AFLAGS = $(CFLAGS) -D__ASSEMBLY__ + +NXFLATLDFLAGS1 = -r -d -warn-common +NXFLATLDFLAGS2 = $(NXFLATLDFLAGS1) -T$(TOPDIR)/binfmt/libnxflat/gnu-nxflat-pcrel.ld -no-check-sections +LDNXFLATFLAGS = -e main -s 2048 + +ASMEXT = .S +OBJEXT = .o +LIBEXT = .a +EXEEXT = + +ifneq ($(CROSSDEV),arm-nuttx-elf-) + LDFLAGS += -nostartfiles -nodefaultlibs +endif +ifeq ($(CONFIG_DEBUG_SYMBOLS),y) + LDFLAGS += -g +endif + + +HOSTCC = gcc +HOSTINCLUDES = -I. +HOSTCFLAGS = -Wall -Wstrict-prototypes -Wshadow -Wundef -g -pipe +HOSTLDFLAGS = + diff --git a/configs/stm32f103-minimum/usbnsh/defconfig b/configs/stm32f103-minimum/usbnsh/defconfig new file mode 100644 index 0000000000..7a338a1214 --- /dev/null +++ b/configs/stm32f103-minimum/usbnsh/defconfig @@ -0,0 +1,1124 @@ +# +# Automatically generated file; DO NOT EDIT. +# Nuttx/ Configuration +# + +# +# Build Setup +# +# CONFIG_EXPERIMENTAL is not set +CONFIG_DEFAULT_SMALL=y +CONFIG_HOST_LINUX=y +# CONFIG_HOST_OSX is not set +# CONFIG_HOST_WINDOWS is not set +# CONFIG_HOST_OTHER is not set + +# +# Build Configuration +# +# CONFIG_APPS_DIR="../apps" +CONFIG_BUILD_FLAT=y +# CONFIG_BUILD_2PASS is not set + +# +# Binary Output Formats +# +# CONFIG_RRLOAD_BINARY is not set +# CONFIG_INTELHEX_BINARY is not set +# CONFIG_MOTOROLA_SREC is not set +CONFIG_RAW_BINARY=y +# CONFIG_UBOOT_UIMAGE is not set + +# +# Customize Header Files +# +# CONFIG_ARCH_STDINT_H is not set +# CONFIG_ARCH_STDBOOL_H is not set +# CONFIG_ARCH_MATH_H is not set +# CONFIG_ARCH_FLOAT_H is not set +# CONFIG_ARCH_STDARG_H is not set +# CONFIG_ARCH_DEBUG_H is not set + +# +# Debug Options +# +# CONFIG_DEBUG is not set +CONFIG_ARCH_HAVE_HEAPCHECK=y +CONFIG_ARCH_HAVE_STACKCHECK=y +# CONFIG_STACK_COLORATION is not set +# CONFIG_DEBUG_SYMBOLS is not set +CONFIG_ARCH_HAVE_CUSTOMOPT=y +# CONFIG_DEBUG_NOOPT is not set +# CONFIG_DEBUG_CUSTOMOPT is not set +CONFIG_DEBUG_FULLOPT=y + +# +# System Type +# +CONFIG_ARCH_ARM=y +# CONFIG_ARCH_AVR is not set +# CONFIG_ARCH_HC is not set +# CONFIG_ARCH_MIPS is not set +# CONFIG_ARCH_RGMP is not set +# CONFIG_ARCH_SH is not set +# CONFIG_ARCH_SIM is not set +# CONFIG_ARCH_X86 is not set +# CONFIG_ARCH_Z16 is not set +# CONFIG_ARCH_Z80 is not set +CONFIG_ARCH="arm" + +# +# ARM Options +# +# CONFIG_ARCH_CHIP_A1X is not set +# CONFIG_ARCH_CHIP_C5471 is not set +# CONFIG_ARCH_CHIP_CALYPSO is not set +# CONFIG_ARCH_CHIP_DM320 is not set +# CONFIG_ARCH_CHIP_EFM32 is not set +# CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_KINETIS is not set +# CONFIG_ARCH_CHIP_KL is not set +# CONFIG_ARCH_CHIP_LM is not set +# CONFIG_ARCH_CHIP_TIVA is not set +# CONFIG_ARCH_CHIP_LPC11XX is not set +# CONFIG_ARCH_CHIP_LPC17XX is not set +# CONFIG_ARCH_CHIP_LPC214X is not set +# CONFIG_ARCH_CHIP_LPC2378 is not set +# CONFIG_ARCH_CHIP_LPC31XX is not set +# CONFIG_ARCH_CHIP_LPC43XX is not set +# CONFIG_ARCH_CHIP_NUC1XX is not set +# CONFIG_ARCH_CHIP_SAMA5 is not set +# CONFIG_ARCH_CHIP_SAMD is not set +# CONFIG_ARCH_CHIP_SAML is not set +# CONFIG_ARCH_CHIP_SAM34 is not set +# CONFIG_ARCH_CHIP_SAMV7 is not set +CONFIG_ARCH_CHIP_STM32=y +# CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STR71X is not set +# CONFIG_ARCH_CHIP_TMS570 is not set +# CONFIG_ARCH_CHIP_MOXART is not set +# CONFIG_ARCH_ARM7TDMI is not set +# CONFIG_ARCH_ARM926EJS is not set +# CONFIG_ARCH_ARM920T is not set +# CONFIG_ARCH_CORTEXM0 is not set +CONFIG_ARCH_CORTEXM3=y +# CONFIG_ARCH_CORTEXM4 is not set +# CONFIG_ARCH_CORTEXM7 is not set +# CONFIG_ARCH_CORTEXA5 is not set +# CONFIG_ARCH_CORTEXA8 is not set +# CONFIG_ARCH_CORTEXA9 is not set +# CONFIG_ARCH_CORTEXR4 is not set +# CONFIG_ARCH_CORTEXR4F is not set +# CONFIG_ARCH_CORTEXR5 is not set +# CONFIG_ARCH_CORTEX5F is not set +# CONFIG_ARCH_CORTEXR7 is not set +# CONFIG_ARCH_CORTEXR7F is not set +CONFIG_ARCH_FAMILY="armv7-m" +CONFIG_ARCH_CHIP="stm32" +CONFIG_ARM_TOOLCHAIN_GNU=y +# CONFIG_ARMV7M_USEBASEPRI is not set +CONFIG_ARCH_HAVE_CMNVECTOR=y +# CONFIG_ARMV7M_CMNVECTOR is not set +# CONFIG_ARMV7M_LAZYFPU is not set +# CONFIG_ARCH_HAVE_FPU is not set +# CONFIG_ARCH_HAVE_DPFPU is not set +CONFIG_ARM_HAVE_MPU_UNIFIED=y +# CONFIG_ARM_MPU is not set + +# +# ARMV7M Configuration Options +# +# CONFIG_ARMV7M_HAVE_ICACHE is not set +# CONFIG_ARMV7M_HAVE_DCACHE is not set +# CONFIG_ARMV7M_HAVE_ITCM is not set +# CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set +# CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set +# CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set +CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL=y +CONFIG_ARMV7M_HAVE_STACKCHECK=y +# CONFIG_ARMV7M_STACKCHECK is not set +# CONFIG_ARMV7M_ITMSYSLOG is not set +# CONFIG_SERIAL_TERMIOS is not set + +# +# STM32 Configuration Options +# +# CONFIG_ARCH_CHIP_STM32L151C6 is not set +# CONFIG_ARCH_CHIP_STM32L151C8 is not set +# CONFIG_ARCH_CHIP_STM32L151CB is not set +# CONFIG_ARCH_CHIP_STM32L151R6 is not set +# CONFIG_ARCH_CHIP_STM32L151R8 is not set +# CONFIG_ARCH_CHIP_STM32L151RB is not set +# CONFIG_ARCH_CHIP_STM32L151V6 is not set +# CONFIG_ARCH_CHIP_STM32L151V8 is not set +# CONFIG_ARCH_CHIP_STM32L151VB is not set +# CONFIG_ARCH_CHIP_STM32L152C6 is not set +# CONFIG_ARCH_CHIP_STM32L152C8 is not set +# CONFIG_ARCH_CHIP_STM32L152CB is not set +# CONFIG_ARCH_CHIP_STM32L152R6 is not set +# CONFIG_ARCH_CHIP_STM32L152R8 is not set +# CONFIG_ARCH_CHIP_STM32L152RB is not set +# CONFIG_ARCH_CHIP_STM32L152V6 is not set +# CONFIG_ARCH_CHIP_STM32L152V8 is not set +# CONFIG_ARCH_CHIP_STM32L152VB is not set +# CONFIG_ARCH_CHIP_STM32L162ZD is not set +# CONFIG_ARCH_CHIP_STM32L162VE is not set +# CONFIG_ARCH_CHIP_STM32F100C8 is not set +# CONFIG_ARCH_CHIP_STM32F100CB is not set +# CONFIG_ARCH_CHIP_STM32F100R8 is not set +# CONFIG_ARCH_CHIP_STM32F100RB is not set +# CONFIG_ARCH_CHIP_STM32F100RC is not set +# CONFIG_ARCH_CHIP_STM32F100RD is not set +# CONFIG_ARCH_CHIP_STM32F100RE is not set +# CONFIG_ARCH_CHIP_STM32F100V8 is not set +# CONFIG_ARCH_CHIP_STM32F100VB is not set +# CONFIG_ARCH_CHIP_STM32F100VC is not set +# CONFIG_ARCH_CHIP_STM32F100VD is not set +# CONFIG_ARCH_CHIP_STM32F100VE is not set +# CONFIG_ARCH_CHIP_STM32F102CB is not set +# CONFIG_ARCH_CHIP_STM32F103T8 is not set +# CONFIG_ARCH_CHIP_STM32F103TB is not set +# CONFIG_ARCH_CHIP_STM32F103C4 is not set +CONFIG_ARCH_CHIP_STM32F103C8=y +# CONFIG_ARCH_CHIP_STM32F103CB is not set +# CONFIG_ARCH_CHIP_STM32F103R8 is not set +# CONFIG_ARCH_CHIP_STM32F103RB is not set +# CONFIG_ARCH_CHIP_STM32F103RC is not set +# CONFIG_ARCH_CHIP_STM32F103RD is not set +# CONFIG_ARCH_CHIP_STM32F103RE is not set +# CONFIG_ARCH_CHIP_STM32F103RG is not set +# CONFIG_ARCH_CHIP_STM32F103V8 is not set +# CONFIG_ARCH_CHIP_STM32F103VB is not set +# CONFIG_ARCH_CHIP_STM32F103VC is not set +# CONFIG_ARCH_CHIP_STM32F103VE is not set +# CONFIG_ARCH_CHIP_STM32F103ZE is not set +# CONFIG_ARCH_CHIP_STM32F105VB is not set +# CONFIG_ARCH_CHIP_STM32F107VC is not set +# CONFIG_ARCH_CHIP_STM32F205RG is not set +# CONFIG_ARCH_CHIP_STM32F207IG is not set +# CONFIG_ARCH_CHIP_STM32F207ZE is not set +# CONFIG_ARCH_CHIP_STM32F302K6 is not set +# CONFIG_ARCH_CHIP_STM32F302K8 is not set +# CONFIG_ARCH_CHIP_STM32F302CB is not set +# CONFIG_ARCH_CHIP_STM32F302CC is not set +# CONFIG_ARCH_CHIP_STM32F302RB is not set +# CONFIG_ARCH_CHIP_STM32F302RC is not set +# CONFIG_ARCH_CHIP_STM32F302VB is not set +# CONFIG_ARCH_CHIP_STM32F302VC is not set +# CONFIG_ARCH_CHIP_STM32F303K6 is not set +# CONFIG_ARCH_CHIP_STM32F303K8 is not set +# CONFIG_ARCH_CHIP_STM32F303C6 is not set +# CONFIG_ARCH_CHIP_STM32F303C8 is not set +# CONFIG_ARCH_CHIP_STM32F303CB is not set +# CONFIG_ARCH_CHIP_STM32F303CC is not set +# CONFIG_ARCH_CHIP_STM32F303RB is not set +# CONFIG_ARCH_CHIP_STM32F303RC is not set +# CONFIG_ARCH_CHIP_STM32F303RD is not set +# CONFIG_ARCH_CHIP_STM32F303RE is not set +# CONFIG_ARCH_CHIP_STM32F303VB is not set +# CONFIG_ARCH_CHIP_STM32F303VC is not set +# CONFIG_ARCH_CHIP_STM32F372C8 is not set +# CONFIG_ARCH_CHIP_STM32F372R8 is not set +# CONFIG_ARCH_CHIP_STM32F372V8 is not set +# CONFIG_ARCH_CHIP_STM32F372CB is not set +# CONFIG_ARCH_CHIP_STM32F372RB is not set +# CONFIG_ARCH_CHIP_STM32F372VB is not set +# CONFIG_ARCH_CHIP_STM32F372CC is not set +# CONFIG_ARCH_CHIP_STM32F372RC is not set +# CONFIG_ARCH_CHIP_STM32F372VC is not set +# CONFIG_ARCH_CHIP_STM32F373C8 is not set +# CONFIG_ARCH_CHIP_STM32F373R8 is not set +# CONFIG_ARCH_CHIP_STM32F373V8 is not set +# CONFIG_ARCH_CHIP_STM32F373CB is not set +# CONFIG_ARCH_CHIP_STM32F373RB is not set +# CONFIG_ARCH_CHIP_STM32F373VB is not set +# CONFIG_ARCH_CHIP_STM32F373CC is not set +# CONFIG_ARCH_CHIP_STM32F373RC is not set +# CONFIG_ARCH_CHIP_STM32F373VC is not set +# CONFIG_ARCH_CHIP_STM32F401RE is not set +# CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F405RG is not set +# CONFIG_ARCH_CHIP_STM32F405VG is not set +# CONFIG_ARCH_CHIP_STM32F405ZG is not set +# CONFIG_ARCH_CHIP_STM32F407VE is not set +# CONFIG_ARCH_CHIP_STM32F407VG is not set +# CONFIG_ARCH_CHIP_STM32F407ZE is not set +# CONFIG_ARCH_CHIP_STM32F407ZG is not set +# CONFIG_ARCH_CHIP_STM32F407IE is not set +# CONFIG_ARCH_CHIP_STM32F407IG is not set +# CONFIG_ARCH_CHIP_STM32F427V is not set +# CONFIG_ARCH_CHIP_STM32F427Z is not set +# CONFIG_ARCH_CHIP_STM32F427I is not set +# CONFIG_ARCH_CHIP_STM32F429V is not set +# CONFIG_ARCH_CHIP_STM32F429Z is not set +# CONFIG_ARCH_CHIP_STM32F429I is not set +# CONFIG_ARCH_CHIP_STM32F429B is not set +# CONFIG_ARCH_CHIP_STM32F429N is not set +# CONFIG_ARCH_CHIP_STM32F446M is not set +# CONFIG_ARCH_CHIP_STM32F446R is not set +# CONFIG_ARCH_CHIP_STM32F446V is not set +# CONFIG_ARCH_CHIP_STM32F446Z is not set +# CONFIG_ARCH_CHIP_STM32F469A is not set +# CONFIG_ARCH_CHIP_STM32F469I is not set +# CONFIG_ARCH_CHIP_STM32F469B is not set +# CONFIG_ARCH_CHIP_STM32F469N is not set +CONFIG_STM32_FLASH_CONFIG_DEFAULT=y +# CONFIG_STM32_FLASH_CONFIG_4 is not set +# CONFIG_STM32_FLASH_CONFIG_6 is not set +# CONFIG_STM32_FLASH_CONFIG_8 is not set +# CONFIG_STM32_FLASH_CONFIG_B is not set +# CONFIG_STM32_FLASH_CONFIG_C is not set +# CONFIG_STM32_FLASH_CONFIG_D is not set +# CONFIG_STM32_FLASH_CONFIG_E is not set +# CONFIG_STM32_FLASH_CONFIG_F is not set +# CONFIG_STM32_FLASH_CONFIG_G is not set +# CONFIG_STM32_FLASH_CONFIG_I is not set +# CONFIG_STM32_STM32L15XX is not set +# CONFIG_STM32_ENERGYLITE is not set +CONFIG_STM32_STM32F10XX=y +# CONFIG_STM32_VALUELINE is not set +# CONFIG_STM32_CONNECTIVITYLINE is not set +CONFIG_STM32_PERFORMANCELINE=y +# CONFIG_STM32_USBACCESSLINE is not set +# CONFIG_STM32_HIGHDENSITY is not set +CONFIG_STM32_MEDIUMDENSITY=y +# CONFIG_STM32_LOWDENSITY is not set +# CONFIG_STM32_STM32F20XX is not set +# CONFIG_STM32_STM32F205 is not set +# CONFIG_STM32_STM32F207 is not set +# CONFIG_STM32_STM32F30XX is not set +# CONFIG_STM32_STM32F302 is not set +# CONFIG_STM32_STM32F303 is not set +# CONFIG_STM32_STM32F37XX is not set +# CONFIG_STM32_STM32F40XX is not set +# CONFIG_STM32_STM32F401 is not set +# CONFIG_STM32_STM32F411 is not set +# CONFIG_STM32_STM32F405 is not set +# CONFIG_STM32_STM32F407 is not set +# CONFIG_STM32_STM32F427 is not set +# CONFIG_STM32_STM32F429 is not set +# CONFIG_STM32_STM32F446 is not set +# CONFIG_STM32_STM32F469 is not set +# CONFIG_STM32_DFU is not set + +# +# STM32 Peripheral Support +# +# CONFIG_STM32_HAVE_CCM is not set +CONFIG_STM32_HAVE_USBDEV=y +# CONFIG_STM32_HAVE_OTGFS is not set +# CONFIG_STM32_HAVE_FSMC is not set +# CONFIG_STM32_HAVE_LTDC is not set +CONFIG_STM32_HAVE_USART3=y +CONFIG_STM32_HAVE_UART4=y +CONFIG_STM32_HAVE_UART5=y +# CONFIG_STM32_HAVE_USART6 is not set +# CONFIG_STM32_HAVE_UART7 is not set +# CONFIG_STM32_HAVE_UART8 is not set +CONFIG_STM32_HAVE_TIM1=y +# CONFIG_STM32_HAVE_TIM2 is not set +CONFIG_STM32_HAVE_TIM3=y +CONFIG_STM32_HAVE_TIM4=y +CONFIG_STM32_HAVE_TIM5=y +CONFIG_STM32_HAVE_TIM6=y +CONFIG_STM32_HAVE_TIM7=y +CONFIG_STM32_HAVE_TIM8=y +# CONFIG_STM32_HAVE_TIM9 is not set +# CONFIG_STM32_HAVE_TIM10 is not set +# CONFIG_STM32_HAVE_TIM11 is not set +# CONFIG_STM32_HAVE_TIM12 is not set +# CONFIG_STM32_HAVE_TIM13 is not set +# CONFIG_STM32_HAVE_TIM14 is not set +# CONFIG_STM32_HAVE_TIM15 is not set +# CONFIG_STM32_HAVE_TIM16 is not set +# CONFIG_STM32_HAVE_TIM17 is not set +CONFIG_STM32_HAVE_ADC2=y +CONFIG_STM32_HAVE_ADC3=y +# CONFIG_STM32_HAVE_ADC4 is not set +# CONFIG_STM32_HAVE_ADC1_DMA is not set +# CONFIG_STM32_HAVE_ADC2_DMA is not set +# CONFIG_STM32_HAVE_ADC3_DMA is not set +# CONFIG_STM32_HAVE_ADC4_DMA is not set +CONFIG_STM32_HAVE_CAN1=y +# CONFIG_STM32_HAVE_CAN2 is not set +# CONFIG_STM32_HAVE_DAC1 is not set +# CONFIG_STM32_HAVE_DAC2 is not set +# CONFIG_STM32_HAVE_RNG is not set +# CONFIG_STM32_HAVE_ETHMAC is not set +CONFIG_STM32_HAVE_I2C2=y +# CONFIG_STM32_HAVE_I2C3 is not set +CONFIG_STM32_HAVE_SPI2=y +CONFIG_STM32_HAVE_SPI3=y +# CONFIG_STM32_HAVE_SPI4 is not set +# CONFIG_STM32_HAVE_SPI5 is not set +# CONFIG_STM32_HAVE_SPI6 is not set +# CONFIG_STM32_HAVE_SAIPLL is not set +# CONFIG_STM32_HAVE_I2SPLL is not set +# CONFIG_STM32_ADC1 is not set +# CONFIG_STM32_ADC2 is not set +# CONFIG_STM32_ADC3 is not set +# CONFIG_STM32_BKP is not set +# CONFIG_STM32_CAN1 is not set +# CONFIG_STM32_CRC is not set +# CONFIG_STM32_DMA1 is not set +# CONFIG_STM32_DMA2 is not set +# CONFIG_STM32_I2C1 is not set +# CONFIG_STM32_I2C2 is not set +# CONFIG_STM32_PWR is not set +# CONFIG_STM32_SDIO is not set +# CONFIG_STM32_SPI1 is not set +# CONFIG_STM32_SPI2 is not set +# CONFIG_STM32_SPI3 is not set +# CONFIG_STM32_TIM1 is not set +# CONFIG_STM32_TIM2 is not set +# CONFIG_STM32_TIM3 is not set +# CONFIG_STM32_TIM4 is not set +# CONFIG_STM32_TIM5 is not set +# CONFIG_STM32_TIM6 is not set +# CONFIG_STM32_TIM7 is not set +# CONFIG_STM32_TIM8 is not set +CONFIG_STM32_USART1=y +# CONFIG_STM32_USART2 is not set +# CONFIG_STM32_USART3 is not set +# CONFIG_STM32_UART4 is not set +# CONFIG_STM32_UART5 is not set +CONFIG_STM32_USB=y +# CONFIG_STM32_IWDG is not set +# CONFIG_STM32_WWDG is not set +# CONFIG_STM32_NOEXT_VECTORS is not set + +# +# Alternate Pin Mapping +# +# CONFIG_STM32_USART1_REMAP is not set +# CONFIG_STM32_JTAG_DISABLE is not set +CONFIG_STM32_JTAG_FULL_ENABLE=y +# CONFIG_STM32_JTAG_NOJNTRST_ENABLE is not set +# CONFIG_STM32_JTAG_SW_ENABLE is not set +# CONFIG_STM32_DISABLE_IDLE_SLEEP_DURING_DEBUG is not set +# CONFIG_STM32_FORCEPOWER is not set +# CONFIG_ARCH_BOARD_STM32_CUSTOM_CLOCKCONFIG is not set +# CONFIG_STM32_TIM1_CAP is not set +# CONFIG_STM32_TIM3_CAP is not set +# CONFIG_STM32_TIM4_CAP is not set +# CONFIG_STM32_TIM5_CAP is not set +# CONFIG_STM32_TIM8_CAP is not set +CONFIG_STM32_USART=y + +# +# U[S]ART Configuration +# +# CONFIG_USART1_RS485 is not set +# CONFIG_SERIAL_DISABLE_REORDERING is not set +# CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_SINGLEWIRE is not set +CONFIG_STM32_HAVE_RTC_COUNTER=y +# CONFIG_STM32_HAVE_RTC_SUBSECONDS is not set + +# +# USB FS Host Configuration +# + +# +# USB HS Host Configuration +# + +# +# USB Host Debug Configuration +# + +# +# USB Device Configuration +# + +# +# Architecture Options +# +# CONFIG_ARCH_NOINTC is not set +# CONFIG_ARCH_VECNOTIRQ is not set +# CONFIG_ARCH_DMA is not set +CONFIG_ARCH_HAVE_IRQPRIO=y +# CONFIG_ARCH_L2CACHE is not set +# CONFIG_ARCH_HAVE_COHERENT_DCACHE is not set +# CONFIG_ARCH_HAVE_ADDRENV is not set +# CONFIG_ARCH_NEED_ADDRENV_MAPPING is not set +# CONFIG_ARCH_HAVE_MULTICPU is not set +CONFIG_ARCH_HAVE_VFORK=y +# CONFIG_ARCH_HAVE_MMU is not set +CONFIG_ARCH_HAVE_MPU=y +# CONFIG_ARCH_NAND_HWECC is not set +# CONFIG_ARCH_HAVE_EXTCLK is not set +# CONFIG_ARCH_HAVE_POWEROFF is not set +CONFIG_ARCH_HAVE_RESET=y +# CONFIG_ARCH_USE_MPU is not set +# CONFIG_ARCH_IRQPRIO is not set +CONFIG_ARCH_STACKDUMP=y +# CONFIG_ARCH_USBDUMP is not set +# CONFIG_ENDIAN_BIG is not set +# CONFIG_ARCH_IDLE_CUSTOM is not set +# CONFIG_ARCH_HAVE_RAMFUNCS is not set +CONFIG_ARCH_HAVE_RAMVECTORS=y +# CONFIG_ARCH_RAMVECTORS is not set + +# +# Board Settings +# +CONFIG_BOARD_LOOPSPERMSEC=5483 +# CONFIG_ARCH_CALIBRATION is not set + +# +# Interrupt options +# +CONFIG_ARCH_HAVE_INTERRUPTSTACK=y +CONFIG_ARCH_INTERRUPTSTACK=0 +CONFIG_ARCH_HAVE_HIPRI_INTERRUPT=y +# CONFIG_ARCH_HIPRI_INTERRUPT is not set + +# +# Boot options +# +# CONFIG_BOOT_RUNFROMEXTSRAM is not set +CONFIG_BOOT_RUNFROMFLASH=y +# CONFIG_BOOT_RUNFROMISRAM is not set +# CONFIG_BOOT_RUNFROMSDRAM is not set +# CONFIG_BOOT_COPYTORAM is not set + +# +# Boot Memory Configuration +# +CONFIG_RAM_START=0x20000000 +CONFIG_RAM_SIZE=20480 +# CONFIG_ARCH_HAVE_SDRAM is not set + +# +# Board Selection +# +CONFIG_ARCH_BOARD_STM32F103_MINIMUM_BOARD=y +# CONFIG_ARCH_BOARD_CUSTOM is not set +CONFIG_ARCH_BOARD="stm32f103-minimum" + +# +# Common Board Options +# +CONFIG_ARCH_HAVE_LEDS=y +CONFIG_ARCH_LEDS=y +CONFIG_NSH_MMCSDMINOR=0 + +# +# Board-Specific Options +# +CONFIG_LIB_BOARDCTL=y +CONFIG_BOARDCTL_USBDEVCTRL=y + +# +# RTOS Features +# +# CONFIG_DISABLE_OS_API is not set + +# +# Clocks and Timers +# +CONFIG_USEC_PER_TICK=10000 +# CONFIG_SYSTEM_TIME64 is not set +# CONFIG_CLOCK_MONOTONIC is not set +# CONFIG_JULIAN_TIME is not set +CONFIG_START_YEAR=2011 +CONFIG_START_MONTH=7 +CONFIG_START_DAY=5 +CONFIG_MAX_WDOGPARMS=2 +CONFIG_PREALLOC_WDOGS=6 +CONFIG_WDOG_INTRESERVE=0 +CONFIG_PREALLOC_TIMERS=4 + +# +# Tasks and Scheduling +# +# CONFIG_INIT_NONE is not set +CONFIG_INIT_ENTRYPOINT=y +# CONFIG_INIT_FILEPATH is not set +CONFIG_USER_ENTRYPOINT="nsh_main" +CONFIG_RR_INTERVAL=200 +# CONFIG_SCHED_SPORADIC is not set +CONFIG_TASK_NAME_SIZE=0 +CONFIG_MAX_TASKS=16 +# CONFIG_SCHED_HAVE_PARENT is not set +CONFIG_SCHED_WAITPID=y + +# +# Pthread Options +# +# CONFIG_MUTEX_TYPES is not set +CONFIG_NPTHREAD_KEYS=4 + +# +# Performance Monitoring +# +# CONFIG_SCHED_CPULOAD is not set +# CONFIG_SCHED_INSTRUMENTATION is not set + +# +# Files and I/O +# +# CONFIG_DEV_CONSOLE is not set +# CONFIG_FDCLONE_DISABLE is not set +# CONFIG_FDCLONE_STDIO is not set +CONFIG_SDCLONE_DISABLE=y +CONFIG_NFILE_DESCRIPTORS=8 +CONFIG_NFILE_STREAMS=8 +CONFIG_NAME_MAX=32 +# CONFIG_PRIORITY_INHERITANCE is not set + +# +# RTOS hooks +# +# CONFIG_BOARD_INITIALIZE is not set +# CONFIG_SCHED_STARTHOOK is not set +# CONFIG_SCHED_ATEXIT is not set +# CONFIG_SCHED_ONEXIT is not set + +# +# Signal Numbers +# +CONFIG_SIG_SIGUSR1=1 +CONFIG_SIG_SIGUSR2=2 +CONFIG_SIG_SIGALARM=3 +CONFIG_SIG_SIGCONDTIMEDOUT=16 + +# +# POSIX Message Queue Options +# +CONFIG_PREALLOC_MQ_MSGS=4 +CONFIG_MQ_MAXMSGSIZE=32 +# CONFIG_MODULE is not set + +# +# Work queue support +# +# CONFIG_SCHED_WORKQUEUE is not set +# CONFIG_SCHED_HPWORK is not set +# CONFIG_SCHED_LPWORK is not set + +# +# Stack and heap information +# +CONFIG_IDLETHREAD_STACKSIZE=1024 +CONFIG_USERMAIN_STACKSIZE=2048 +CONFIG_PTHREAD_STACK_MIN=256 +CONFIG_PTHREAD_STACK_DEFAULT=2048 +# CONFIG_LIB_SYSCALL is not set + +# +# Device Drivers +# +CONFIG_DISABLE_POLL=y +CONFIG_DEV_NULL=y +# CONFIG_DEV_ZERO is not set +# CONFIG_DEV_LOOP is not set + +# +# Buffering +# +# CONFIG_DRVR_WRITEBUFFER is not set +# CONFIG_DRVR_READAHEAD is not set +# CONFIG_RAMDISK is not set +# CONFIG_CAN is not set +# CONFIG_ARCH_HAVE_PWM_PULSECOUNT is not set +# CONFIG_ARCH_HAVE_PWM_MULTICHAN is not set +# CONFIG_PWM is not set +CONFIG_ARCH_HAVE_I2CRESET=y +# CONFIG_I2C is not set +# CONFIG_SPI is not set +# CONFIG_I2S is not set + +# +# Timer Driver Support +# +# CONFIG_TIMER is not set +# CONFIG_RTC is not set +# CONFIG_WATCHDOG is not set +# CONFIG_ANALOG is not set +# CONFIG_AUDIO_DEVICES is not set +# CONFIG_VIDEO_DEVICES is not set +# CONFIG_BCH is not set +# CONFIG_INPUT is not set +# CONFIG_IOEXPANDER is not set +# CONFIG_LCD is not set + +# +# LED Support +# +# CONFIG_USERLED is not set +# CONFIG_RGBLED is not set +# CONFIG_PCA9635PW is not set +# CONFIG_MMCSD is not set +# CONFIG_MODEM is not set +# CONFIG_MTD is not set +# CONFIG_EEPROM is not set +# CONFIG_PIPES is not set +# CONFIG_PM is not set +# CONFIG_POWER is not set +# CONFIG_SENSORS is not set +# CONFIG_SERCOMM_CONSOLE is not set +CONFIG_SERIAL=y +CONFIG_SERIAL_REMOVABLE=y +# CONFIG_16550_UART is not set +# CONFIG_ARCH_HAVE_UART is not set +# CONFIG_ARCH_HAVE_UART0 is not set +# CONFIG_ARCH_HAVE_UART1 is not set +# CONFIG_ARCH_HAVE_UART2 is not set +# CONFIG_ARCH_HAVE_UART3 is not set +# CONFIG_ARCH_HAVE_UART4 is not set +# CONFIG_ARCH_HAVE_UART5 is not set +# CONFIG_ARCH_HAVE_UART6 is not set +# CONFIG_ARCH_HAVE_UART7 is not set +# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_ARCH_HAVE_SCI0 is not set +# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_ARCH_HAVE_USART0 is not set +CONFIG_ARCH_HAVE_USART1=y +# CONFIG_ARCH_HAVE_USART2 is not set +# CONFIG_ARCH_HAVE_USART3 is not set +# CONFIG_ARCH_HAVE_USART4 is not set +# CONFIG_ARCH_HAVE_USART5 is not set +# CONFIG_ARCH_HAVE_USART6 is not set +# CONFIG_ARCH_HAVE_USART7 is not set +# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_ARCH_HAVE_OTHER_UART is not set + +# +# USART Configuration +# +CONFIG_USART1_ISUART=y +CONFIG_MCU_SERIAL=y +CONFIG_STANDARD_SERIAL=y +# CONFIG_SERIAL_IFLOWCONTROL is not set +# CONFIG_SERIAL_OFLOWCONTROL is not set +# CONFIG_SERIAL_DMA is not set +CONFIG_ARCH_HAVE_SERIAL_TERMIOS=y +CONFIG_USART1_SERIAL_CONSOLE=y +# CONFIG_OTHER_SERIAL_CONSOLE is not set +# CONFIG_NO_SERIAL_CONSOLE is not set + +# +# USART1 Configuration +# +CONFIG_USART1_RXBUFSIZE=256 +CONFIG_USART1_TXBUFSIZE=256 +CONFIG_USART1_BAUD=115200 +CONFIG_USART1_BITS=8 +CONFIG_USART1_PARITY=0 +CONFIG_USART1_2STOP=0 +# CONFIG_USART1_IFLOWCONTROL is not set +# CONFIG_USART1_OFLOWCONTROL is not set +# CONFIG_USART1_DMA is not set +CONFIG_USBDEV=y + +# +# USB Device Controller Driver Options +# +# CONFIG_USBDEV_ISOCHRONOUS is not set +# CONFIG_USBDEV_DUALSPEED is not set +CONFIG_USBDEV_SELFPOWERED=y +# CONFIG_USBDEV_BUSPOWERED is not set +CONFIG_USBDEV_MAXPOWER=100 +# CONFIG_USBDEV_DMA is not set +# CONFIG_ARCH_USBDEV_STALLQUEUE is not set +CONFIG_USBDEV_TRACE=y +CONFIG_USBDEV_TRACE_NRECORDS=32 +# CONFIG_USBDEV_TRACE_STRINGS is not set +# CONFIG_USBDEV_TRACE_INITIALIDSET is not set + +# +# USB Device Class Driver Options +# +# CONFIG_USBDEV_COMPOSITE is not set +# CONFIG_PL2303 is not set +CONFIG_CDCACM=y +CONFIG_CDCACM_CONSOLE=y +CONFIG_CDCACM_EP0MAXPACKET=64 +CONFIG_CDCACM_EPINTIN=1 +CONFIG_CDCACM_EPINTIN_FSSIZE=64 +CONFIG_CDCACM_EPINTIN_HSSIZE=64 +CONFIG_CDCACM_EPBULKOUT=3 +CONFIG_CDCACM_EPBULKOUT_FSSIZE=64 +CONFIG_CDCACM_EPBULKOUT_HSSIZE=512 +CONFIG_CDCACM_EPBULKIN=2 +CONFIG_CDCACM_EPBULKIN_FSSIZE=64 +CONFIG_CDCACM_EPBULKIN_HSSIZE=512 +CONFIG_CDCACM_NWRREQS=4 +CONFIG_CDCACM_NRDREQS=4 +CONFIG_CDCACM_BULKIN_REQLEN=96 +CONFIG_CDCACM_RXBUFSIZE=256 +CONFIG_CDCACM_TXBUFSIZE=256 +CONFIG_CDCACM_VENDORID=0x0525 +CONFIG_CDCACM_PRODUCTID=0xa4a7 +CONFIG_CDCACM_VENDORSTR="NuttX" +CONFIG_CDCACM_PRODUCTSTR="CDC/ACM Serial" +# CONFIG_USBMSC is not set +# CONFIG_USBHOST is not set +# CONFIG_DRIVERS_WIRELESS is not set + +# +# System Logging Device Options +# + +# +# System Logging +# +# CONFIG_RAMLOG is not set + +# +# Networking Support +# +# CONFIG_ARCH_HAVE_NET is not set +# CONFIG_ARCH_HAVE_PHY is not set +# CONFIG_NET is not set + +# +# Crypto API +# +# CONFIG_CRYPTO is not set + +# +# File Systems +# + +# +# File system configuration +# +# CONFIG_DISABLE_MOUNTPOINT is not set +# CONFIG_FS_AUTOMOUNTER is not set +CONFIG_DISABLE_PSEUDOFS_OPERATIONS=y +# CONFIG_FS_READABLE is not set +# CONFIG_FS_WRITABLE is not set +# CONFIG_FS_NAMED_SEMAPHORES is not set +CONFIG_FS_MQUEUE_MPATH="/var/mqueue" +# CONFIG_FS_RAMMAP is not set +# CONFIG_FS_FAT is not set +# CONFIG_FS_NXFFS is not set +# CONFIG_FS_ROMFS is not set +# CONFIG_FS_TMPFS is not set +# CONFIG_FS_SMARTFS is not set +# CONFIG_FS_BINFS is not set +# CONFIG_FS_PROCFS is not set +# CONFIG_FS_UNIONFS is not set + +# +# System Logging +# +# CONFIG_SYSLOG is not set +# CONFIG_SYSLOG_TIMESTAMP is not set + +# +# Graphics Support +# +# CONFIG_NX is not set + +# +# Memory Management +# +# CONFIG_MM_SMALL is not set +CONFIG_MM_REGIONS=1 +# CONFIG_ARCH_HAVE_HEAP2 is not set +# CONFIG_GRAN is not set + +# +# Audio Support +# +# CONFIG_AUDIO is not set + +# +# Wireless Support +# + +# +# Binary Loader +# +# CONFIG_BINFMT_DISABLE is not set +# CONFIG_BINFMT_EXEPATH is not set +# CONFIG_NXFLAT is not set +# CONFIG_ELF is not set +CONFIG_BUILTIN=y +# CONFIG_PIC is not set +CONFIG_SYMTAB_ORDEREDBYNAME=y + +# +# Library Routines +# + +# +# Standard C Library Options +# +CONFIG_STDIO_BUFFER_SIZE=64 +CONFIG_STDIO_LINEBUFFER=y +CONFIG_NUNGET_CHARS=2 +CONFIG_LIB_HOMEDIR="/" +# CONFIG_LIBM is not set +# CONFIG_NOPRINTF_FIELDWIDTH is not set +# CONFIG_LIBC_FLOATINGPOINT is not set +# CONFIG_LIBC_LONG_LONG is not set +# CONFIG_LIBC_IOCTL_VARIADIC is not set +CONFIG_LIB_RAND_ORDER=1 +# CONFIG_EOL_IS_CR is not set +# CONFIG_EOL_IS_LF is not set +# CONFIG_EOL_IS_BOTH_CRLF is not set +CONFIG_EOL_IS_EITHER_CRLF=y +# CONFIG_LIBC_EXECFUNCS is not set +CONFIG_POSIX_SPAWN_PROXY_STACKSIZE=1024 +CONFIG_TASK_SPAWN_DEFAULT_STACKSIZE=2048 +# CONFIG_LIBC_STRERROR is not set +# CONFIG_LIBC_PERROR_STDOUT is not set +CONFIG_ARCH_LOWPUTC=y +# CONFIG_LIBC_LOCALTIME is not set +# CONFIG_TIME_EXTENDED is not set +CONFIG_LIB_SENDFILE_BUFSIZE=512 +# CONFIG_ARCH_ROMGETC is not set +# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +# CONFIG_LIBC_NETDB is not set + +# +# Non-standard Library Support +# +# CONFIG_LIB_KBDCODEC is not set +# CONFIG_LIB_SLCDCODEC is not set + +# +# Basic CXX Support +# +# CONFIG_C99_BOOL8 is not set +# CONFIG_HAVE_CXX is not set + +# +# Application Configuration +# + +# +# Built-In Applications +# +CONFIG_BUILTIN_PROXY_STACKSIZE=1024 + +# +# CAN Utilities +# + +# +# Examples +# +# CONFIG_EXAMPLES_CHAT is not set +# CONFIG_EXAMPLES_CONFIGDATA is not set +# CONFIG_EXAMPLES_CPUHOG is not set +# CONFIG_EXAMPLES_DHCPD is not set +# CONFIG_EXAMPLES_ELF is not set +# CONFIG_EXAMPLES_FTPC is not set +# CONFIG_EXAMPLES_FTPD is not set +# CONFIG_EXAMPLES_HELLO is not set +# CONFIG_EXAMPLES_JSON is not set +# CONFIG_EXAMPLES_HIDKBD is not set +# CONFIG_EXAMPLES_KEYPADTEST is not set +# CONFIG_EXAMPLES_IGMP is not set +# CONFIG_EXAMPLES_MEDIA is not set +# CONFIG_EXAMPLES_MM is not set +# CONFIG_EXAMPLES_MODBUS is not set +# CONFIG_EXAMPLES_MOUNT is not set +# CONFIG_EXAMPLES_NRF24L01TERM is not set +CONFIG_EXAMPLES_NSH=y +# CONFIG_EXAMPLES_NULL is not set +# CONFIG_EXAMPLES_NX is not set +# CONFIG_EXAMPLES_NXTERM is not set +# CONFIG_EXAMPLES_NXFFS is not set +# CONFIG_EXAMPLES_NXHELLO is not set +# CONFIG_EXAMPLES_NXIMAGE is not set +# CONFIG_EXAMPLES_NXLINES is not set +# CONFIG_EXAMPLES_NXTEXT is not set +# CONFIG_EXAMPLES_OSTEST is not set +# CONFIG_EXAMPLES_PCA9635 is not set +# CONFIG_EXAMPLES_PIPE is not set +# CONFIG_EXAMPLES_PPPD is not set +# CONFIG_EXAMPLES_POSIXSPAWN is not set +# CONFIG_EXAMPLES_RGBLED is not set +# CONFIG_EXAMPLES_RGMP is not set +# CONFIG_EXAMPLES_SENDMAIL is not set +# CONFIG_EXAMPLES_SERIALBLASTER is not set +# CONFIG_EXAMPLES_SERIALRX is not set +# CONFIG_EXAMPLES_SERLOOP is not set +# CONFIG_EXAMPLES_SLCD is not set +# CONFIG_EXAMPLES_SMART_TEST is not set +# CONFIG_EXAMPLES_SMART is not set +# CONFIG_EXAMPLES_SMP is not set +# CONFIG_EXAMPLES_TCPECHO is not set +# CONFIG_EXAMPLES_TELNETD is not set +# CONFIG_EXAMPLES_TIFF is not set +# CONFIG_EXAMPLES_TOUCHSCREEN is not set +# CONFIG_EXAMPLES_WEBSERVER is not set +# CONFIG_EXAMPLES_USBSERIAL is not set +# CONFIG_EXAMPLES_USBTERM is not set +# CONFIG_EXAMPLES_WATCHDOG is not set + +# +# File System Utilities +# +# CONFIG_FSUTILS_INIFILE is not set + +# +# GPS Utilities +# +# CONFIG_GPSUTILS_MINMEA_LIB is not set + +# +# Graphics Support +# +# CONFIG_TIFF is not set +# CONFIG_GRAPHICS_TRAVELER is not set + +# +# Interpreters +# +# CONFIG_INTERPRETERS_FICL is not set +# CONFIG_INTERPRETERS_PCODE is not set +# CONFIG_INTERPRETERS_MICROPYTHON is not set + +# +# FreeModBus +# +# CONFIG_MODBUS is not set + +# +# Network Utilities +# +# CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_FTPC is not set +# CONFIG_NETUTILS_JSON is not set +# CONFIG_NETUTILS_SMTP is not set + +# +# NSH Library +# +CONFIG_NSH_LIBRARY=y +# CONFIG_NSH_MOTD is not set + +# +# Command Line Configuration +# +CONFIG_NSH_READLINE=y +# CONFIG_NSH_CLE is not set +CONFIG_NSH_LINELEN=80 +CONFIG_NSH_DISABLE_SEMICOLON=y +# CONFIG_NSH_CMDPARMS is not set +CONFIG_NSH_MAXARGUMENTS=6 +# CONFIG_NSH_ARGCAT is not set +CONFIG_NSH_NESTDEPTH=3 +# CONFIG_NSH_DISABLEBG is not set +CONFIG_NSH_BUILTIN_APPS=y + +# +# Disable Individual commands +# +CONFIG_NSH_DISABLE_ADDROUTE=y +CONFIG_NSH_DISABLE_BASENAME=y +# CONFIG_NSH_DISABLE_CAT is not set +# CONFIG_NSH_DISABLE_CD is not set +# CONFIG_NSH_DISABLE_CP is not set +CONFIG_NSH_DISABLE_CMP=y +CONFIG_NSH_DISABLE_DATE=y +# CONFIG_NSH_DISABLE_DD is not set +CONFIG_NSH_DISABLE_DF=y +CONFIG_NSH_DISABLE_DELROUTE=y +CONFIG_NSH_DISABLE_DIRNAME=y +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_EXEC is not set +# CONFIG_NSH_DISABLE_EXIT is not set +# CONFIG_NSH_DISABLE_FREE is not set +# CONFIG_NSH_DISABLE_GET is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_HEXDUMP is not set +CONFIG_NSH_DISABLE_IFCONFIG=y +CONFIG_NSH_DISABLE_IFUPDOWN=y +# CONFIG_NSH_DISABLE_KILL is not set +CONFIG_NSH_DISABLE_LOSETUP=y +CONFIG_NSH_DISABLE_LOSMART=y +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MB is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MKFIFO is not set +# CONFIG_NSH_DISABLE_MKRD is not set +# CONFIG_NSH_DISABLE_MH is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_MW is not set +# CONFIG_NSH_DISABLE_PS is not set +# CONFIG_NSH_DISABLE_PUT is not set +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_RM is not set +# CONFIG_NSH_DISABLE_RMDIR is not set +# CONFIG_NSH_DISABLE_SET is not set +# CONFIG_NSH_DISABLE_SH is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +CONFIG_NSH_DISABLE_TIME=y +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +CONFIG_NSH_DISABLE_UNAME=y +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set +# CONFIG_NSH_DISABLE_WGET is not set +# CONFIG_NSH_DISABLE_XD is not set + +# +# Configure Command Options +# +CONFIG_NSH_CODECS_BUFSIZE=128 +# CONFIG_NSH_CMDOPT_HEXDUMP is not set +CONFIG_NSH_FILEIOSIZE=1024 + +# +# Scripting Support +# +# CONFIG_NSH_DISABLESCRIPT is not set +CONFIG_NSH_DISABLE_ITEF=y +CONFIG_NSH_DISABLE_LOOPS=y + +# +# Console Configuration +# +CONFIG_NSH_CONSOLE=y +# CONFIG_NSH_USBCONSOLE is not set +# CONFIG_NSH_ALTCONDEV is not set + +# +# USB Device Trace Support +# +# CONFIG_NSH_USBDEV_TRACE is not set +# CONFIG_NSH_ARCHINIT is not set +# CONFIG_NSH_LOGIN is not set +# CONFIG_NSH_CONSOLE_LOGIN is not set + +# +# NxWidgets/NxWM +# + +# +# Platform-specific Support +# +# CONFIG_PLATFORM_CONFIGDATA is not set + +# +# System Libraries and NSH Add-Ons +# +# CONFIG_SYSTEM_FREE is not set +# CONFIG_SYSTEM_CLE is not set +# CONFIG_SYSTEM_CUTERM is not set +# CONFIG_SYSTEM_INSTALL is not set +# CONFIG_SYSTEM_HEX2BIN is not set +# CONFIG_SYSTEM_HEXED is not set +# CONFIG_SYSTEM_RAMTEST is not set +CONFIG_READLINE_HAVE_EXTMATCH=y +CONFIG_SYSTEM_READLINE=y +CONFIG_READLINE_ECHO=y +# CONFIG_READLINE_TABCOMPLETION is not set +# CONFIG_READLINE_CMD_HISTORY is not set +# CONFIG_SYSTEM_SUDOKU is not set +# CONFIG_SYSTEM_VI is not set +# CONFIG_SYSTEM_CDCACM is not set +# CONFIG_SYSTEM_UBLOXMODEM is not set +# CONFIG_SYSTEM_USBMONITOR is not set +# CONFIG_SYSTEM_ZMODEM is not set diff --git a/configs/stm32f103-minimum/usbnsh/setenv.sh b/configs/stm32f103-minimum/usbnsh/setenv.sh new file mode 100644 index 0000000000..aaf02b991b --- /dev/null +++ b/configs/stm32f103-minimum/usbnsh/setenv.sh @@ -0,0 +1,72 @@ +#!/bin/bash +# configs/stm32f103-minimum/usbnsh/setenv.sh +# +# Copyright (C) 2016 Gregory Nutt. All rights reserved. +# Author: Gregory Nutt +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# 3. Neither the name NuttX nor the names of its contributors may be +# used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + +if [ "$_" = "$0" ] ; then + echo "You must source this script, not run it!" 1>&2 + exit 1 +fi + +WD=`pwd` +if [ ! -x "setenv.sh" ]; then + echo "This script must be executed from the top-level NuttX build directory" + exit 1 +fi + +if [ -z "${PATH_ORIG}" ]; then + export PATH_ORIG="${PATH}" +fi + +# This is the Cygwin path to the location where I installed the CodeSourcery +# toolchain under windows. You will also have to edit this if you install +# the CodeSourcery toolchain in any other location +#export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/CodeSourcery/Sourcery G++ Lite/bin" +#export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_EABI/bin" +# export TOOLCHAIN_BIN="/cygdrive/c/Users/MyName/MentorGraphics/Sourcery_CodeBench_Lite_for_ARM_EABI/bin" + +# This is the location where I installed the ARM "GNU Tools for ARM Embedded Processors" +# You can this free toolchain here https://launchpad.net/gcc-arm-embedded +export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/GNU Tools ARM Embedded/4.9 2015q2/bin" + +# This is the path to the location where I installed the devkitARM toolchain +# You can get this free toolchain from http://devkitpro.org/ or http://sourceforge.net/projects/devkitpro/ +#export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/devkitARM/bin" + +# This is the Cygwin path to the location where I build the buildroot +# toolchain. +# export TOOLCHAIN_BIN="${WD}/../buildroot/build_arm_nofpu/staging_dir/bin" + +# Add the path to the toolchain to the PATH varialble +export PATH="${TOOLCHAIN_BIN}:/sbin:/usr/sbin:${PATH_ORIG}" + +echo "PATH : ${PATH}" -- GitLab From 67756f1f70c8a61104acd85dcad47f8437664491 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 18 May 2016 13:49:38 -0600 Subject: [PATCH 186/307] Refresh configurations --- configs/stm32f103-minimum/nsh/defconfig | 5 ++--- configs/stm32f103-minimum/usbnsh/defconfig | 21 ++++++++++++++++++--- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/configs/stm32f103-minimum/nsh/defconfig b/configs/stm32f103-minimum/nsh/defconfig index a46824aa38..75bd71a887 100644 --- a/configs/stm32f103-minimum/nsh/defconfig +++ b/configs/stm32f103-minimum/nsh/defconfig @@ -16,7 +16,7 @@ CONFIG_HOST_LINUX=y # # Build Configuration # -CONFIG_APPS_DIR="../apps" +# CONFIG_APPS_DIR="../apps" CONFIG_BUILD_FLAT=y # CONFIG_BUILD_2PASS is not set @@ -500,7 +500,7 @@ CONFIG_RAM_SIZE=20480 # Board Selection # # CONFIG_ARCH_BOARD_STM32_TINY is not set -CONFIG_ARCH_BOARD_STM32F103_MINIMUM_BOARD=y +CONFIG_ARCH_BOARD_STM32F103_MINIMUM=y # CONFIG_ARCH_BOARD_CUSTOM is not set CONFIG_ARCH_BOARD="stm32f103-minimum" @@ -1068,7 +1068,6 @@ CONFIG_NSH_ARCHINIT=y # # NxWidgets/NxWM # -# CONFIG_PICOTTS is not set # # Platform-specific Support diff --git a/configs/stm32f103-minimum/usbnsh/defconfig b/configs/stm32f103-minimum/usbnsh/defconfig index 7a338a1214..e84a34454e 100644 --- a/configs/stm32f103-minimum/usbnsh/defconfig +++ b/configs/stm32f103-minimum/usbnsh/defconfig @@ -76,6 +76,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -94,6 +95,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -115,6 +117,7 @@ CONFIG_ARCH_CORTEXM3=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -122,6 +125,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y # CONFIG_ARMV7M_LAZYFPU is not set # CONFIG_ARCH_HAVE_FPU is not set # CONFIG_ARCH_HAVE_DPFPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -132,6 +136,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set # CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set @@ -412,6 +417,7 @@ CONFIG_STM32_USART=y # CONFIG_USART1_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set CONFIG_STM32_HAVE_RTC_COUNTER=y # CONFIG_STM32_HAVE_RTC_SUBSECONDS is not set @@ -494,7 +500,8 @@ CONFIG_RAM_SIZE=20480 # # Board Selection # -CONFIG_ARCH_BOARD_STM32F103_MINIMUM_BOARD=y +# CONFIG_ARCH_BOARD_STM32_TINY is not set +CONFIG_ARCH_BOARD_STM32F103_MINIMUM=y # CONFIG_ARCH_BOARD_CUSTOM is not set CONFIG_ARCH_BOARD="stm32f103-minimum" @@ -509,7 +516,14 @@ CONFIG_NSH_MMCSDMINOR=0 # Board-Specific Options # CONFIG_LIB_BOARDCTL=y +# CONFIG_BOARDCTL_RESET is not set +# CONFIG_BOARDCTL_UNIQUEID is not set CONFIG_BOARDCTL_USBDEVCTRL=y +# CONFIG_BOARDCTL_TSCTEST is not set +# CONFIG_BOARDCTL_ADCTEST is not set +# CONFIG_BOARDCTL_PWMTEST is not set +# CONFIG_BOARDCTL_GRAPHICS is not set +# CONFIG_BOARDCTL_IOCTL is not set # # RTOS Features @@ -726,7 +740,6 @@ CONFIG_USBDEV_MAXPOWER=100 # CONFIG_ARCH_USBDEV_STALLQUEUE is not set CONFIG_USBDEV_TRACE=y CONFIG_USBDEV_TRACE_NRECORDS=32 -# CONFIG_USBDEV_TRACE_STRINGS is not set # CONFIG_USBDEV_TRACE_INITIALIDSET is not set # @@ -746,8 +759,8 @@ CONFIG_CDCACM_EPBULKOUT_HSSIZE=512 CONFIG_CDCACM_EPBULKIN=2 CONFIG_CDCACM_EPBULKIN_FSSIZE=64 CONFIG_CDCACM_EPBULKIN_HSSIZE=512 -CONFIG_CDCACM_NWRREQS=4 CONFIG_CDCACM_NRDREQS=4 +CONFIG_CDCACM_NWRREQS=4 CONFIG_CDCACM_BULKIN_REQLEN=96 CONFIG_CDCACM_RXBUFSIZE=256 CONFIG_CDCACM_TXBUFSIZE=256 @@ -875,6 +888,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # -- GitLab From 5d574549bda1646cc9eba9810f1c0ea920a61caa Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 18 May 2016 15:37:42 -0600 Subject: [PATCH 187/307] stm32f103-minimum: Add schematic; remove unused watchdog driver logic --- arch/arm/src/imx6/imx_serial.c | 34 +++++ configs/stm32f103-minimum/schematic.jpg | Bin 0 -> 134524 bytes configs/stm32f103-minimum/src/Makefile | 4 - .../stm32f103-minimum/src/stm32_watchdog.c | 140 ------------------ 4 files changed, 34 insertions(+), 144 deletions(-) create mode 100644 configs/stm32f103-minimum/schematic.jpg delete mode 100644 configs/stm32f103-minimum/src/stm32_watchdog.c diff --git a/arch/arm/src/imx6/imx_serial.c b/arch/arm/src/imx6/imx_serial.c index f5da98d917..a34d2f988a 100644 --- a/arch/arm/src/imx6/imx_serial.c +++ b/arch/arm/src/imx6/imx_serial.c @@ -50,6 +50,7 @@ #include #include +#include #include #include @@ -259,6 +260,12 @@ static bool imx_txempty(struct uart_dev_s *dev); * Private Data ****************************************************************************/ +/* Used to assure mutually exclusive access up_putc() */ + +static sem_t g_putc_lock = SEM_INITIALIZER(1); + +/* Serial driver UART operations */ + static const struct uart_ops_s g_uart_ops = { .setup = imx_setup, @@ -1006,6 +1013,27 @@ int up_putc(int ch) { struct imx_uart_s *priv = (struct imx_uart_s *)CONSOLE_DEV.priv; uint32_t ier; + bool locked; + int ret; + + /* Only one thread may enter up_putc at a time. */ + + locked = false; + + if (!up_interrupt_context() && g_os_initstate >= OSINIT_HARDWARE) + { + ret = sem_wait(&g_putc_lock); + if (ret < 0) + { + return ERROR; + } + + locked = true; + } + + /* Disable UART interrupts and wait until the hardware is ready to send + * a byte. + */ imx_disableuartint(priv, &ier); imx_waittxready(priv); @@ -1023,6 +1051,12 @@ int up_putc(int ch) imx_serialout(priv, UART_TXD_OFFSET, (uint32_t)ch); imx_waittxready(priv); imx_restoreuartint(priv, ier); + + if (locked) + { + sem_post(&g_putc_lock); + } + return ch; } diff --git a/configs/stm32f103-minimum/schematic.jpg b/configs/stm32f103-minimum/schematic.jpg new file mode 100644 index 0000000000000000000000000000000000000000..672c3184bfbead685ff5bd89ca7ee95f015f74e6 GIT binary patch literal 134524 zcmeFZcUV*3wkR6Apr9Z{iXbIGKu|h__LH838bW{su}}jBBs3{v2kDZ8-UJdts8T{l zRGM@N0i-HjiXb3J6E1t7z4y<3&pz*d_k8brx4bj+#~K-Ptuf}DYmPFk z99&$ymwqC=$f;AOm`^ibU}nA`!OO)f z@jqP--U8T8AG0{#bnJ*Q;3(UXV{AtbngINV-2)su?BWr?-^*cZPaQdS^z>mZ_B;S^ z;@FX6Cr_U_ew_I@(+M`fk)y{Bd&9RHb8 z>LEMczqI2oI=r*x^HL$JhW`fc@M*ss5h{9RmolnN+!lmjVsRBR?z~ zUGL^b73nz+q}sjPD0NlHkqlE+>Rip;d24&?n&_TT;Lm`OAM5+G0_W>@>#;lj2LP`V z^s*z5#V5{ut{wPH$@qEg`}38tMUTFo-9%pGfAq{TXy?h}8PBc;ub_j|AC5M@=Wg&T zY%tYYzJ;-Q^p@}^iTm0=mp3Zs=YDmvNL{{aH9x19MLQ(mF@=b#_?uebAm<77J->N(DtCW-pptP+AX>1Rg&OHKcuYjwW;%?{t!-u#;pHBPonWHNd9S1Z1_KdTf^wq4w$@s^a# z?z27XtdFh_)W~A52fwyyDR4fT?G6AOH6?gN^r>$k_ul_ez#fzmWS2CTS2@dmJfHJ2 zK={$W^LfNn4HD!soV$`t;+Jg9yUsvALey7DQQ}nbsx?r{2^7Jkpi#vqAPBO`qMLok z0_4LZlTFWhd-l7a7_YmUbZG}h$C!kFCZqy2tar**O5rh4^u&^tJ= zSTGWKHQjda%`NJ`x);EXuv%cT+c3O3z#1gu8pg+s#xh4wrrKaUpoU$%hILqdgJ>Bc zlp?X6Q#ei%k#|GpxT;)So=)$S5UtL?8%c_{9C#3H#&_*sQa>WyR@^)k?4KWe`!XWT z-8fjLW4#N#&UBRYuWmp7P!gBN(E;``iIeemo>21OX@;G8uUBt!fvTRVDN9x{-(=1$ zy3m{KBLyV80NKO9J`QE6XTkOCai~xC?Tilm&I2`+oikG!JmZ?6;Y8;uc|gWb#LkhGoOGmq2SOdn%cC=h_IiK}>U; zViHYjd2qKnv#me~1O4bgnvpcWm*JAnK1vR{5jK}>I?L9yZSjhjK^{#nVQ5r&vlD*Q z5(dDbm7JH4qW@pQTOHELvHdIk#yr&KjHD!qk=OsJ1b^S6c(m^$eqU^>LbHTY-4Eh$ z?mMYI_t{fTVVzSh!8{{1Eia6(Vc$^OcnmSRz(PIB?{DEoyT3X;b!V#5Xd2kLfsuds z;!dq;X|fZ#do)f#k!39MdEP>*Zbwo}oS@1Ca%$9m&hoLXsn{xZ6N6*LWh%7~vU$?q zTTxCv|Hhf7R#i@++KR|HR%^SL{%=AWd z=C{T_N0bWqKON7uf(z7s(8BLOyc>P3K3np}JM}K|Jlsco;-^3yNL8j;koaJS39@se zZSj)MNchVm(jTFw^kq})1%XlUf8qc49|u7`LOTbttEzi&SUbLwMSAoCU7wcAAiF;- zgu;o=!%j|`zy2|`n+*Z+UxDKDe&Pi_=iD#-7yf_CanL;XKa^Q(0F(Pa)YrtHB8zzR zU--YMuK#u8a5~?P4Su!#7g!;W@UhSMv5<6U`d5DbGMB z))kdk=MHu5f7*%o(?Mu9jGvL3TryRsKfD$#-k$fzZ{Er&wHemlO4j7C(CcJkW!_8Q zVlSnQVvH=_&N4DR3;trSTK1;iEAy{`7TNGGZ%6DgUG|xU_ZRv}l^Yp9qi#yfVk)zE z1G({&pwDJJp&=NkVcPF(A=TL)~<4?IZh9MUztM-*bJd=^e8x-jMn(~EjvRRL{ ztFk_3BdDu=6YpbzppnADtWOW@)LNpC!4byAp|jZ#581RqOlwT=G69y`n19_Bt7IWJ zS>>EL%MZ-7Ru|wv$M|3DlAeowtdmn>Kx(AuiHHf8$H%6Zi6+?mvRAJZIDvZ;2mna_ zHp2gF!K0{@HS)df-%Gp<6g#&)`NI^}lq6YwAyhl>z{?QX*mVW>w z{~uO8!f0Y~M2Y%3WbeHS^`HDu%fo2?-^)coGscZ;CS<(;;stP5H=Z1G=FW^r1po=m| z2Y|^3sQA=hIvytFQAs6fnx(K^SXQ=8|UlkM3sQmaA=)GAUhIo z&Nfwfzwe{;0-2MO%YFcjlL}dzkeilkJmcA{;(D(QmHIx8fl>*6Bb4IU`?<0ZYAIlp zGgE!!nZEdl!w`^sf~*dXdrH?!muV0;>&6AKdkEJra;_dlqgnM?L zYQl?ha5IO8w_dR&JZCSH%%zrJpcHz%^*z>>IQh{SPt;GiK$h%}mJ#4zo)jwZSwjv# z_qK4uD_!Fj$8?Plb@!Zk81!|rULi1pqvePGM;A*;%Yo3SYYB#~#HQnF-JF&16h#5! zdS1gAtCh_MfdxL?#An@8SM5#z@W-!(z}n^eH3$C=U$R*0`zYX0mrYj>nfd+*z^p)v zxbxJ82zUK~x;xLL-z5VH4@E#0`{KBf>-(#+Z8wUqJAJHhz1xe)rC!ohOP!ZRi~CSX z3&=Xxw&|b0>|Y5iCB00XF7L8U8itM$NKNv)z7i}!G`UiY836F%@3Z7Tyz-oV1aOc8 z9C`Txa8l{vp0Yx%1<} zVSXgl2xq!xgj%I5j>fWNGWp(Su&HFT@? zLXSd5r$~6Lbh}mar*wbP{%wBKIK-ph+R0=G55B6q-X*?%dg>gphKRa765W=Y!`yG_ z$kZ?8kiZ@+XH=@2wX1icL*KmtqQcrn;GRf&89FsTEYy+)%Qbg{5~hSSFtP<-yU-O| zRl$>|YFVay#-mkP%VEJsU9DIw^DOe+8dvz|V!Iq%6280I;acAViC<0dtA3syn@R2J z+k0sjd={EjDqd!UQ&RlR$%?=V_C+T$e$O6BntzYWI#jg2GLikYEBB@j0J6u%o@R5p z?~ZDD9vd^rTDK48>37=}2?NzST8OFB^4vle9W1%UXk`o9FDED^9(?{aLNJ z9Fy}Aqxi;rQQ%_E^>icp#NBO%w_3IZeVtSt=5aEKDFSh%6)Q-SY8E+V4 zDjG`_&2IhSQQ(h#7i-$!w$zc=m8atUm06rjCKg1vT@C$`qV2ig?Y9xbT~ISw0lvlP zifUtUOS!~h`v_l<_#ge87eH9%EBF^}byB{jp&AC$eBlqM4v6!v5$+#}Br-GF*%T|~ z0f#_%ZhwC<%pLaqJ0D!@H zK^`T`3<0&`qQPt`OD4=**%<38C%go;h!bRJzdps(mN2|wB^h7}T>48eii6k9Y{95% z&)G^>4k%RG9=U%m)c40+%NRujXuRf{93Uq7IR{8?Q+YPjdk#y3`he6l(%*1Q_czv_ zirr4SW$IHi0+bWd7mM#_JJbJS*9tPnKG$C;q3u0)+VneLc%jm4dNbFnn4?>+$0-gR zUOwXW9MDipXg0~;+_fm=lgT!T0$-}swY9lIo+Wy3_7Oo~ z{C$PxQ3ttg+1t4lrJus-Jh$_ru2+m`dy|GvXKIcChh(pyJg$&V6_<@{0vZR&! z8Sy9k!n|Ft7-TxRUSO%{I>r(laxt1Af)(r&SQxwn-T9ec9-wj3>dJCwVHK_NS0_TM zrr-sqcbWQEQnsThU&^r&ve;&$$`>s3rd4>_?sF|sdV*XJrd5=`OHL3g@7t}Cgn@-a z)CrzYWSqSU1M_RFQ6I5LR&MJf+4&uJ)y|G>@ie0@A}Cc+4ki~a>J#TD;BrMGBJY^t z6_U*d06Ta21Hf0%{(@#cJ{PuTwPug;&k_GZ0?S*i)HnV-uki`{m7~SQThd2Nc+~d3 zY;yQ;s+=PAG(@y4(&OEk5uH1LqrYjC-@rY-T;Nwm+RfUuFaE)AgN-4=^72=>?N)b0 zM1^CH9#_*-D znFoN@vYn?z57M~jO{9Nh@fL%oRIr~d(K z*6K~~{{d&t{|^}t{rc~^+?byW`?3FVMep3cMg~KfBfMUzk_QgrJYALut#HN3xA}+` z)j5g})-}}G5Z_$L>5+bPuA8(dI!*KW5)cPG)MstF4@e3zf1K(Z_Ygz%;TJzMgxe}V zp8Aq@onkJ1acw$y|DCZ50Px3elk-0h9{+8n6f14K4X+C7GT!r_BmsUi&=z6QkbT&d z&+JtwOSe{{d2@23M!g^Tz@vmV&S6g&PHqVZeU+b;H!1w z6V2$RoqUesLqDMCO{Vj0>7HVfm683_z_DZL<7uBO>s5Z%uskVp<#jM}v`qF?J4>WW zs7iDkPXk8sA;M5e-fBsS2gA_@+LKK zwB?dn(GD4`%M-r=m@>RxF`?`U!RQkfCylhtA0Fd+CEJk6260~|S=d{A87b#zj(mbG z^_?OvgaH|-g!7DtO|9L-zPaCaZ(6$YOW=d}0QeX9IN-^sg8Cieh;!5VMl3z*76V!9Dk8^@M!b+a29Q}AeOYbVN-1ruRv zl#^K={a*+K?VU{vcDSn>gWQ$^w_6}85yu(j5h8D*ch55kYmynB>*Pz zrhHN-CRL;@2>TdI<*r8Ec&c3!bTI)~G**r6j(|UFnG=j&;Dg!rV|1NK^C<7w`EHK7 zD}*OVgd^jr$Q$)vDvSCVr)Sr)E2yV+Jd$B9&mq$dqiAYP z-h!UHnUySr4#iCq%U{)c1I@j&wT6U0eBxLfQTw*&)mI#tn0I88A3wUYvHYukzP0{i z5Nm^{PGRru0g3V)dj?rj@D5y4XR_~lpqf2%n%=V3POcZtWV8krz0 zEnD%j=|0?!Dsy2(+d`($4JHK(u!W~6jhMT3r;VbFfrEiYo`JnigP>?_99hID+F|OR zO>U24D||5z)5WKH{K-edVRw(*9<4gyU`H|Q&!MO0xY8dZ+v>$7GMiX1hT^y2Yx8-ITq&9gqgh*jz_m+LM_O~r4%HV)VF@`sp+|{h4YAK z=8K&9@dQ>f0(8yHEi$Xhxyq5m7;bAKMweGT9jkrr!ZAS0H_018P}hJ~ZS&@+2M!TW zUO^ZnwscLwMJCyipdq{T6z=!(aV_v)5gKnC_6CiyDbliRI3x^6+F&<}6Zp2|UEdo{4$)sq%KIy&qeDq3i(Dp)%kZ)`T9x!69UjL4Zzl*V%v-EVV*NG~id zm?!y02aUJiUXE(+w>7TS4Iov)oho`M7Uo^Y>v+rOq98J#CHgtnP27o$q19P!`P?|^ z0RgD--TM6CY-kkNu!_bWSsq!t7BbW3+C@^9eE}gtbYj%o)1-OY;+b4N*A|np6Q6dlJBcutM)DF->$>zgb^}U)YGAg zWzY;P)kH{*d!QYk08f{;70X)1>)uy)aN7wQghYpaL1lnJMel&giBLqjoGB1J+8w9l zFa6p4iyL;?gxvA~c(ZDhnpyUsiHJ-%F_zt-JwR3oHNN4pV3NUO)8@_xi*CMCjLNk{ zr7l5AFLNM~&s;x&6WGfe2J3Bf^rGqdCo5ZJ2({*>GfvXi%a^2w-+l1Ov5VqQxHyJS zKwwO|M3;ZH!6SF@#Oan+O1BqsOs~uu9gX160cQCsW&4B6_WgKqaa<2eWo@T7y)L8? z3<`B0Rb(|snA%t{DusbjpA@k#;^TlYD1j8wtd-Irlp>isN>cIp)P9@lj!1ESH@B}; zaj4~D-0BP6;G2PQLj|rg%?(<+Y8Aeg69Nk^jDE29iBzPxQdpqY^V^fiuBK#;tk0R~ zm=`5=&+Sedta&=>mbw_d$6yG`P9ZlFLQjuD<+Go=UxjdGPe99OpmL&fN8kEym!>^@ zzErlG^3?C;Q=!<_yk8+Jm)+M+>In4*H~PI)_CF@{a-rdN?FaQyjSmjs;!o}@Lz1BQxLmp$Fg*>@&FlcOQ zr@Ygs0rt9OUPBC_cmXgVIpg8=(TM|g)p?MDO9I!~tXnV2ft>n{g8K{F!&Ju35Q@7M&$Onxe zW62V8l%V1aVz=o$(VV`2*Rx$@mcV=PC} zw}~A$T{{k4E4SpMn{f4t26fBMoni#;o~>1X8XSE9Sif=KZ3h)>&g<&fb0)=N0X~L{ zH4mq9Y<2Xv5Wjk)vU>~ZW9-tP6I$g?Ytl?+h5nfD_KfMgJH+^YPV@7nLltS**F|FZ z08@}AjXjQ$#kQO3QY`+XsH)HXkNAcOPbqRjTKFEzII$#S*vs z(ns3lqp{SA4relh>P&baliLHCCW4i(g9Kq!zy6XlZO`wjKDj`p+atwPDr_6g<1DFs zRF_Z6kbXh%B-E%peR6S$r`$!yYB| z+|Ja#1aOo!@|)_VBD#~Un;pJcH=&2`1zljE5ISHeZKF9h6-8(Ay1V$qza!tP-5y&v zJZM3E4HI!mg&UJ0{WHRL_Z~Phz)ez`DO@l)9)hi6c@_#XJUwXUbh9oFj4^+pZ_P^( ze7>RT80bI-0Q?{Q&1n63`M_#nR4;{dZ!hG2&yjT1z&2+St8*_k+?Xth9n|F50HVtG z#(o(LT>S=)=nq82nBxt_XLX!(o;`UFfnJwb-Ee4GpQ`d#8hHeG`zO`EK}Q~+d%xj= zBnTswdEyO#v=vx%rDW!bWb&KJ$x0!Q53?qCAy7h8DU3S2GAv5tX7|QhPO(h2;^KRr zy4OD9UBo$rM>QCwD9JX*iOGAYx9$L`qOPXjH5%{87T)-G?Ea2m`YmoH{9E`JlEiKE zi0MyfnA!8U+`=78GXV3W-}WI${q7}8HaYUMg zr`d;NvQ@_xn1-XZY}1%^MTMz8pVdc6*UA?we{l6*6*Bgi)oXAu92@CxP~i*kF&qTT z1(*ibCa|NG3%{`xKZM71MnHooxo_xv`*3A+@7Y>6j>DkU&u5;ybu+MMd3-O)D(_U` zj-h5m5`BRiuaJINyK+yhbJhZ7tWd!Kr}2tzex_Xz`Wg+vsfUc)W3IXZO~}#N{y5PE*cD8gpezUT-^W1a;83^g8tcv>oP)yOC0t5~8j}3|~q960GoUYNMeM{Z9Xw zjZ!7_siry)?V{)Ghn5z#VzP{C97Y#J(uNeekvsrKk?h0;UAw2^72 z#|68$rJ>wm^bv3oz}rTvvE^C)(w*BFqol8N1-t{FNm|!uK|=UM?Q=}>#*e0<&M@X3+`0L}VdOz-+BTlvK87kwXHPj1-Bferj2jD`g#vx+Ol z3-Ik^g@j$m#fnbeF5zZl)ed)C*GTIt7R<(~TNGjaE=dtjF&aBlsXQaiIX}u4I8xo< zO32-i6#4E@C|xiE{4`5Uai0%g4C}8&&M2jmxm{*gZd6_fw8qpRvR#w&s4yk_MR>a$ z|ECPrv~+~)st;znvErib9&3YxcARm!%STt~Ym5)8Xe>i^5~!QD#rLk&)oR0u>{2x; zq6$sT%_lZ~&%jRElmV~QM9E|`wNb?~DrdjkSPSye8!^_f^~KH9O%9eNhtStS{ZF*Z zfgsI-X~M|JfGW<@M#gF>&IE8Q{L!J1Gp`z*I;U5ONNc~;qd7`$q)2M$j=SFt5eQjI z^JMP`gLV<1DZ_4F=B`r^DF{AH=hd2}fVZY;ZmetXc0rD{C@336%o1Mcr-C%>%=0R8 z&GWD2bY{quSN6lxW1i-BU_^;9A0`M;h8?a;Bvo?X>Im~duLGemTok1LR-UNlh|hLN z4l(cp5shu^YTHTI?7HufB_nsU?s{$=Npyz?wqxwqSN0(HQWC6ntLqS~&z;aRf4@op zq33MF_VQxt^csv_a0aKFVC(-A(>pK~Ed`Iy#)>&*YnE|5{VX&4slMnDfK$MCh5yNP zp$T~{0;!9(aHkAMa1ImVekR==@z)=@d7LO^@SeSoNCC;iD_z?*SwH7`Mx+t>{et@mysfju-Kq zH!F7wp`USar_!CRvn%JL9WI}}!92_i!%9OCBuA)K?ZnBprt~fYaw>1+cY~+Hf<)A? zRg|z|^$AinD)(|MRW5s^EUeP72TTZwt9`g45R{_~JOGg2+;F40`)~a9phNL)V*CuR zV@p2VG!zT9ZO2ISIc3`7dF&LqIH|HP0}NMdt-i~e_tlv8%9vV73cQ7_#rXA7hVi$n zmGbqm8=0phu{1N(nHQ0SsMC}3SH~~j^EXArdl+!a9mal}mN+X}7>v{aev&+?!WG`5 zMl4_D1DP+tBao{V_5Bv#SyYHoo_iqUks=70^#Bl6RxkSG-KssVd^3_+!z1Iynk%$e zH?0%2>`JB?;}mk>PR~J5teeHqmPVUcUq0L~on6Ul##qMu_O*3a*fL_C60*+*{3T2H z95sI>Xoek@TWjbwvx$8D)1Wn8Wpte|Okkqqz1sP4_o74uAr2pLip&Hr8EiPpOEs*r zH=FFuy@$SIZW!=}D96Z|XrgCXToFPGD7wlcd!T-?%O*=dG!bG(6zhHvV;+|Ui6pAT zwPa4I{ig|Irj9Hq7>YM3Nf`2 zm{{Ga>{Zl6y+M!Iy&5wmaxWOuC0|z02tDzHQ;SQ!=XwUbBvX$Q;BeCBucw(Wqo14M zXBN+;AltDrLEH}Oj=)lwwFO#H!2#7zEJV>jH$ofVYd3{vWQ+~n0vzl9hr#{}a4a78 z)S^mgyg(<@BtIoaN2jwXimftHS*ZK5udX@F!g7GD!<__FV=*K;ptZy}ni zc1nNLf&%3vW@6&pk4j3uv&B@qPt8W-!@kMBdC$!ii!{e}(hH9}!WB_eR;4wx!Z&t^ z7lfBEIK@>UWzj~ybZt4WoNSg6rLD4|k*#?&Kqe+LY0;?gcX$NXu0tB z4~w*;#L~}_dK)7bx|L&WJ1DHlJ@M=KA61{lmHMuhh{-Qm4BZ|eU8}Iw{`drn$C$I% z&>wo(xC@?fne)c4iHe46JxdvXM;hzzoC^NQnx?XrzRt&LItR(KuK1=M81kbHv9(e+ zK_V2oV#TuGxi89wx^=_+fTQhZWN=NE0zUHP%}Miyz~cNet@X=48hYYK(iw5v>eOQW ze5-jMc#?p62;oZJRe83C$LJ!ZI5|?Wd1l#`j>8r{{R%0B-clu##F%HhHB=sc=aoj+ z=Lor~<^D5p_GJXA#ax1sz+Q-o+^Sr;sN7Ul$xqbH8EpPJm_=gXuSwkv$@#g65|2JdEguDi=Y{cfw( zgc{HHi+}YKd$?U~ws|ZLQ3O+5jGszU`f@MNgKa4V7iuQsNG`kE)v`|3Cpy2N6RzYh zaW^#ieHmE(oOgGgjzyIlB9HPrbkU4nSV=A5E4oVI=iJIxy}1+9xoh{@e zK;xr-5=8*u)bO!pAHh$|vkHdmW6#lgTu-?ZjZ;7g3BptHCRI6OXsAsPdsHFnT$9yH z?ANeriSjDO!h@rcFJfcMFsxP%U=pPSoWS3In8r=G_3$Oxe}KHVKKU}p-Qz}wT-CQh zc#wD<(C+~7N#UxI+VZ;zsfPV`nE|&y`wB`;+E$r^uD*+3^0|cMlL3Mtgu<$|^Q3%p zfhDQgFU=Q^La?_>IR#KY|^4?;0=mLj$#?&`?pGH-cp4)SPJfoqPYw_ zL8fj_iQEmo-np$_M~%IrhEt1mo2{7d{h00kRJCb3*)*I~dbp5ttTOjrCStD$ zuLa!%R=c;IZzwjK3CW8mLQ+lMgfOu&h9rnIjEN5wIK{)gdeL)5(yN!sS`|73CM-tB z58#0c<-GVTyI-RiQTHBp!VFs~<;K7-?PpCG8gCpIn5-~StMobda=Z(YM3xk-z#!r1 zHk$*$fI^%=WIvC6GD32xkMSOz#Sy?_`X#M<(2c4_l3+yTtZhGg5H9aM6WHpmey^&V zVoqEBK-<15*97tWQDIt6q2tAe;6!3oD$jDeDXu&}{~lQ@*K^!7pCivGbdv_IN9pRL zDarOD7RjI3S)laNk3}+C`M%1&(ZxooUC=YQ>?|m+7uZ5rEmFl=-9sk~O4u{JVWU>P zX5@4;Cd3+WcxLn8%63hfA>8lFhYrs#xWM2HGpfybo5volt^}1>Gi^>E6IhcwSN-w@ z)J~6B8p^BACwrW*d$`PVcvzNi-xb@yB+|O@OFu}?8+===Fo;@Y`(xPK`WklOg1Nmy zJj$c-ssK^6oUAtGf7)RSx^e(`ookoqH>P(wrFsSyW>?;>KtVZKUjI zHwEq4Xe0xF1<>ScQPQ zl9$Fd->1XBU4PpF)-)%TU&u&(4ynje$4$oeTLK5Bg`O1_FZ33&P^HZCBb-Ml zi&uL4f)Pc6@)i#T?o*ExzCwhT7=)Qg&?ou6;o}6*%#H&wG)d@-$ir=S4{h9ei~f;Z z`=5y?{L_}if6BW3`z)KVo^NR9M7ygf5gGxiyx}l*9hAgUhr&ZmvNY1w?=152(u(gP znV#gElv6I88CHN7wq6>_|4GP0PI23uJtJ54b}stUhJkfrW3&y-$vy=mo%hL{yfFuk zw_OaoX%p$Q<^wbW#VOw5lk#%S>F(E%w3E%}pKIA^g}uGy_ESzF=DB|DWnI@Ryv=32 z@}Q3+#%7na&u0k3;XltkM~zkIpYLZahL=;C%wwrx$f=@Noi$aKSC5Xmju*pG-yf^N zLt;*`TgqFs$=roriSPUAwGoMK5P|T<-PesAz29GZJDv|BR59{O{qQ_DgBWWxs>3|& zn%lp7)7aG(gbTU^pjUZX@*Gbqs2@g5g{IC07k`odvlBD6`wq>4UbC?bc2S1z5xYJw>u@?l9NhVMio(;cUtT% zN}}Y<=ws?2koY}Ff9m%PHt~xlmi>?XQU@;>S+k8sFy+|A@3o${wphU{7VPDHBvN+q z+G3qyKC008Jgifgz}069ynL~S{xbTPknoM0X!$~*6ET=I} zQkZ7oKg&)lec-Q6v@tdJ@jof9TiE!-Ec!8I7896yfxoLheejo9s=d`_P0RP=3$N)| zUqw=Gm%e4O4#Jm67Aku*Kuj*l{ZRg;jI6c%a(m1|lA|BZSbSi1M<%E*1V-R7RqDe; zuGdMET@C=+kkwi}{o}N;)$kANwHY5^yh-T5WYwto@iT!RJpw;@@%7bl9ROa9|17D` z>xqKo80Gfd8xCcQ`{3UtR(M+52V^ZhS5WouV#x+x@`yPjy5Hc|QOa0p^p zSr&)xp&MGB{d{vSzzcG94>_?B{IEpe(#9bSpW5g8rt|5HFGaR~w-LL;bN~oC_B8O; z0pLBK$4ArMFFz^Xhg8#x5E_rZuhc*iw#aP@GdiEnO7RiA-=ttL#3}a=l5u~ep^Z~q z;MI%6Q6PCFeupMF%)#Yc88{mAA;<6z2eDOR4KXDa>WfjxKOUFdQ9LL5l;GDVIgHbB zm_+-M%}|gQ#_)$|w{bayE-8cI7(2r=|82Zq<*H@%56#0vapH%E;%@h=l+wrXA_^Gc zRT__gN@YwBE^y8JjpZ|S&1`{}-*+PYOV$+B6ZcY4`)(0iAdX*8>H^XnT_Np027uI@Li02<_b=sHiMYMmS>%>>H|+D(UgB-lx> zl(|73`_LC~3q^f7hQ^KwP~H2fL+2VjWduHSnP|FrqPR%YwS4-9XlpYki$ZV^ieTt! zfkBp2O#E_tB1~E91i8|NX}559j9({JUT`VRU1n2qw>bOl7eqsH=&DKl8&1)HOYJ`Q zsyEJ{1-i?nlze!DB21oDett1LWI1poT79DYQsCEu*|D?Cx1_fsWVZ_S;@ewutBe6N4HgCQ##+YET@x#Ryd8fRvJiP zgGTyKL3m9qoU7K(sogHkP$uTmKtJXtEo`1FGD#9*5ouY(;TNC8805KU8@vrZVEy-- zIN@(D^N(_jiIyO8h$pEbr)2tq(r{KjQSuj+H#yJeO(IBCTTjvW_39$Z79M5%m0rvV zHieMts)aw}o!Lr>ETc?k7mN(mhvr7$git|wAE)|n=@}d^y0lkb-R>m`U}ssXy{H~ohltyC;rDrCrEzgcoBmw2 z2ThNY0>g?cp$%iQnK!DB7W#QpEt75EC--6D7cv{MR~6z4Y3T_+v?wxCyoMd7%!H@% zo2x$dBU)z%YT~SEQUfEqe4LdwF#-yclxkisr8BS;ahTLcYw4URIXEszT}Q4GU4iIo z(6uB_7{ZfpZ+-8+z^6i*L}C}Pjnb0zky`vsg{Cg%u~#GB3u$j6D(I?o-k6g{ey_wG zNHi*Ms=Y_k4zZL`W`%;I^m}CsBiyT*!s}N}jgs9;267zhh6UwZW!gxEP^&n1mB7kx zYO)P);2x_70OIn-VrhgT%_OC*>pC0n1qni6^bFx`0uYn%yXxG5xYC*145nrLZLY@YQQIXP=Jt1SCW zsfGM1>NFj1@;L^MzWd>4(6^Be)0qu(6fDlFct^-qcERQ4k3nB&9vZ<^E?!9uPESit zA1g*?!D#}=34T`lmJb{njAA|Hyiu+gb3V^m6LuRN^r`cc_(|{VP%yoi+jAo_5OY_o z#Ggo0FqX_6HcFMF7k`!Y^AOBGkywb9mSjO{+&K4U?|D}=L~P8nHJ&yvn*16MCt9~n zU9uPGd(<}ilNevx`82m;sA`DISiM`WeC5jhcKLnb9n-nC;(3#`P)P9C+%g#XEq+EL z$6>uN;$>SU`;s5J0|Vbo3Cf2e3MD3yMwV-Vx)~5kcdRwq08TXonP%p+mA`6>9~PYl zN|cea%qR41%vUr^x>Zf{?(=&65c>ieRsdg_k1_~OCb!te4-bn3pg&?Ml@W#3NEILV zYW0$DR^1IJv8?0yIVl>lLy0v;h{7gGdDc}IEJz*H&o#O5c4yh-wR224F1)|?M((K9 z@#e;tFC^}fbZ_C`69m0rbL z-=*(q;-2V;651Aq?ygy1alCIn?ZfvVG^_WrEa^3$H@@FK|s+liCBZ&T^Ek&3EYl1?N8UY^t$h zg)R1mLof&=c>qW{0}ci)h*^wM0Y?Px{Vx88@cp7}ff!E49dq%v1Hkr4t2Eb}-ETn0 zKZ_p#rg`jqs1LzgB*EmledxC!vg#kPhA}3Niy@!EU8-^4ZlJQtcZ9hkXmF(eSpFZK=meba|Mg(UE^)_-ywT)vZkfmpu5^mlm>-t|wxILggEP!bl(?-(i z7&wOwko#rJ8(Gu%guhwUhC{1b-YP%6*;o$zgq%+DB_G*7XOUesRb-Kb`fEI%%!_l9 zH~{?Ro&43j7<_%b*{WXmhCfF?&nUCS^*LMH1!gza*lZ_aG1shoVDBijC4VZ{py#B(f<{$zx!S;J)#^1aY;TJeFuQ7P6H%dDRFpcWdE zm2`=g3RZBoMR85SvqY(6S9K}hGpZNhx6J0RNv~%((~*-1%7R$lnSgds6}F<%yONy! z(P^QK5(qVAC~oZyQX=wmylWn$TV5!#A|o*D)TIv31eEfqW58>=nd5hNsbIKN*);!~ z@e=8*8p#sTUhH-+yz#1#6uB9ij3Q2eK=dc=*N9s~pVLJ?M@PUY+N8JcoHG0_X2acG zFTMdQ`Uq_kpiy*Zr`_;3TUF)$u|&YpYkzy!=eQ^Hm)L`ngVN9fccZo-oDr)C(QU#G^Mc){`OxPQgxbT5LSAobA$lPr3x+K*vvo?-6~EyLGGLEE8N)<9v`zU{ zTPCbUibmV2TwW&N;PW3;Su_*RmBM1B4ZW<6q&(lPTIGB?DI;u>k<_@1bOvRJ`xzup z@3TL@6NCs8u%O4Sd3oXS(5ojQqmCKtP(k?gLR)LoqSwQHnEj6!%8p+}POvcPC)X-x z`xR!!yzh{iHL^FUWxW&;GKzh6*Vbi2$mDW=T5;DB@BswrytL4^>{I!*Ld!5@2HaTz z3V)Tya`ddyw2`fIpK)gMgJ#kv9|wo$a@p#j@(u2A*L^_~w;7fCv2b99^;5q;Fja*1 z7}J-%nQg4CpK3y~?m{|+&^IzO%-v1EA8uIR?T%s2N{&+9lEekBR3yX?(}di4Uu&W`p z+*Kh9n~+Lwh9w)9OSI{R&@*_T@8+dHk7N2)-Fg?mw9j@Tlt-=4xzsNf>OE^TpDM-c zU=^NdpT{pi;Wu>Uj@CW;XVLwS^8JQ@#OaLb(yny{t+#(rF7Olf;%(kIg>IeZ0$LuP z&tuXwesk4mz5g%YYIqG$H6r{{f6G-NM0{EP$qjZD*D&!S9{V7RzdU-5K|R-(a$ z8OzIm<9&?zbyY5@>&EpyCte$yH?zIQU-b!$LcON6p>gzwdpgF~4IJs1KFR!QF*EkH z6kPd~n-e4jCZ2|M_l$L1qCl$*J4`M#_Qgayuaic0L@o>atK~MQnAK+M<>uVh%Lj=@ zdsQgmbI=px&SdarN=+$L=G|Q#9+Tu(fYXOKWmzn6c$ z@ayZu2&Op{P^mr1jsig$MG^;sPl3I++Iphu)J|lL#$!=B@>$jF7P4qe3qPEL1OkaB zIWogd^Ix}AaJTFEb=}kAy_GUO`@YQa6T@JvQhIxK+95x+D6yS5;p>P}i4jzr^Vy6d zm+9x2tqlJ_Nh@)J<)|O|EzB>%Boz5dJCMX!u6ue73j$i`Jqv)hcq2n=p{*vl$UchU({!Aq^b6sg1wtFtkSZ_eKy0{?wc>TSK!ybe$mfDk}9hW zYM-P0*n7lDjt#<3RwR1U=e5~Tx1TpkLNr@A;wD_%jn#~8C9I;>gOa-A^&Ug2*`(u( z+UuSfmaaGC&W0Hm{)!{OgjBiv3 z^Whp#-!(_(jA~!jgbuSK0yRbBIp333?O#O39AibeA-_>AT|J90l?Y3rohD$>E-&Kw zhcoFKCrQb+CIwXe43Pc3EpdVyF5lFG&8=UVH&;mhl7$@VrkbL(+nj(<0$0DC%!LL| zccHI!LAYRx8f-6!K9XyZ-RUTkSvdj=gXO}xbhCQcP5mzp;Cxnn4gg@p;m(D-p!0Di zIfvUur;U^>NEt5;#W`*y9Y#710Hq=Y9b)}dx?=|w&7q1P%|kGG7(VKVK#HmB#qoME zbafi$cNW`lo25liODBpy)aYW5?u%bQv-X@)ELO<%9+9*}U%0V~OO02~upU~w3CT4p z0Bgt<8H?FELCSOt=|t`>)5wA^wK&zTV8%54s)W}o1}MHs-%3|m;C7$8oLONe2Dx;% z$F$qz+%f+TWa?ec{F7wfagwmT9O;5w@1;spCVz)GxouK>Ic61EBqFqtI)?bGPJoRa z04^3hRIA>5R$>NRJ^(}_wbDlSwXLiCrMfLOjoeohV0)a*_yzXSyr9IfahHTGNluL? z2LK}hcY$Ti%&w&lrJ;QIoN*qS=wEiJ0I|^^e8EJez~lk&@M9DjO}ff+ZDT|So3d|> zyO_xRSeaMUV+*p@sF*7N~jFI1|Vc6Ba;chUH( zw4EP|rXp(uvjqq{#EvNf!n{yK3~Z)MJM8}Cc60OKOvm)F+O=;9BD#(hBJ%KDr4eJ% zmqgK=I$b=(=X@u5B&xBvy`VwUd%LI9oK97fgGsYTq1cTx)k+_@G9Fs*{R9%OjN#Tk zzx=*uK7a09v%uY;cbU_z(~|@1wm07yQkE|8{}wuUx^Xekp2r^mK-#(Y45-wP$k2`v z1MtGyWg}5S=ZA2J@PM(zMLF9~?3Uld#81b6W^-=t+hpynBC2u*JOHI5#8j$$c>24Z z2peFp(%&3=#)!L?V0)NzsG_@n~(v=(( zCR7-j9i)DWrv0%XcsWq-K}FYu@N=dCH)J+Tii4r6^remRXYrFz(^QJ*!#wK+_WwrP zdq*{uuYKRljH82!2m%Ts3M4>)fYONqLni?ONhm@n7Fq(KNoWEd3%w_yH-Ur@LO>z( zq9PsX0i-(8gdj>+Df(p2%zfYIob^6y-RoWJ$v@d4izI9B-`@Kw-|y!d0_Cw|dz@FShMC$mTB(D2$FSVzmf5%JdfvoxMw%9U+;q^7?fv3c{YWV}@V zkp+3%W4S}K;W=hSA9XRQp8Vm{$E-EmC-Q8Sdg$CP~Bq$S=xruFA=(?(Tmw`%FO zJDm|hcWUlNP#$c2Gb$60YjZ5sQMFDlVt66hNQojN?Z6(M+b2~qF#N?#i@l&^$~wv_ zJ|dUk>77wVdKaC^CyYF0BHhRBT4X9PQt*8KwmF#H9&#Ik6V=1EvWWWWaek1RIe`M~H~jV9J!vE%`=K>B5QYBy~5PlSS72`Ox?? zklTeT!vjxa;{#?;y?SFCE~M05Ifkso*-4~)PPSya%PyD^FgZdtN!Z5tEdoCUP{5|9 zG+l;EZHfyi3+PUhCXS`X0Q0Gg=swHAbW6rYZG3&-z)kZ&1X9z3MKE%6zItkncr2#1rLh;z^1wWa< z-!J4B%V2ue_SO*xZx$sd`N-$hb#lP6zCn*E_V&aGD${Pf3xLv7t<1s!g$t zS;AJx+?~*AEbP2i ze9yXjnb^DbTt*>HB>vt+VGH=1=(_*vnJ~#Dkr@e;B1IcQs-)Wzk2$;cSo->eh25?l z{67ES-3buGtbtZjwy65@nd9_}{zZA3H~&)UB&tUpQ8P!Bu*E(LSzEh=rU>5Y$&2^D z`-4lz;!9z_luaqccZMH`Vz1D9^>RYsu%h+CD?|!ZcfAI{{39WaPX8MHAljS9r+J!x zhB1*>jg2EtKv3%6lw-c#L-1v0~eJd3^oL-AdSu z0TxA}X_2GPK!0%kiuwNY&ogDug(4x23gF(Id&raKP~}o~+eKYK4l;I~8$i9d0o(7G zec?!03=InoOmoxH7@E2mjuZzo)gQIhyMT;xBUWWPsWwfyQ|~+~xPHnw`#z;~BX->mRhX zth4F@^--vPFw;)Bvvo z{vZ{R2#BLl(~klU|9vm9@W0P#l093m&93&`vWyD|pe)Zlg4%fz+w+jnn>yt&9lTKX zY)6Ck_kz#*J2&s&?CUipdDMAYm3sFF_LfWLRgKse7=`?X^On=IG4enELUs$!bIqcx z2YYOFmT!9Ek^^Yq5;xqp@V=Ppc0r_WLpAJPVz1=Kmor<*XtVw6*D9_@{6YEM>WQ2} zH<=)Y3?@Y4oRMaA?w2hmti)edU{aRoj{fp*d*aPay+?TJ+ez862wohCevINSJ$6J| zK+)g7JCl_#E!!38+f`u;Vs*S_b#zW%tU$>O2y4=9NcD!|$J6+Hy7>I?Nfc9q<@aiF zxin62x+1Z; z>m&d9(#Z_aYD!M10r%NUPWQz0a*)F>>f9*OYcmx?O@51GebraFj=B83Uc}@&EQyN~ zi|n`C4nA!r<+gE!(mj30E9#sZrh(+m?HGvEr|mQ~c7e^hUs1 zcvqT>H9!-DGY-WAmmBC$rt*M5qy5diWV^dD#6vK|!balj-_eJ&Oiew?u{faOq1{8V z8<8eh6`DXIiNYU{C6gC!A48}KuHW3AAos2Q;CeFu1%P8OxfKQ)sukY!vY@33L*h_z z>CDE?Y5UuT`r|e9=SMa)ozqok{;)JspA>D2gE8;={7#!e}lTb zm#89=r;VSglXzWEwwM-8UtJ$4eoy6QWPw1YQ}qazk(-l4T)cguQm*xh;%Rj)m>KOj zP05L9rg||JDhVa}P=I8D;Ukl~V_Tp5{U$IK0}p>yLhzCM@l*=GsmH>fJ+&q?0v17T zWf&=)XuCLI64y7-87dbK1(`uGs9ymA_H*4~3`bCvmZ3ouHlrip5{0@II9$__Qmmjb^R5C(# zg(5T_-8(^zM?Np-;4C0M)3rAjDu&5JRBcYAsUUk6dJ=8U-vWy7gSyi&ym+$@S54Eb#dDy)H-l zI>fU?xpqn$6Z~MBrKsQXS+`%2_aHQSC8%ZPwm$-arQAi$xdmwtaioyb;Z^kxHry~} zW#v(7C0pov*JB;q{>1UADc>Te%X_=LL!a*tZOl7e{K2(4b-r-!OJQ=aS(%HelYUKH zF>^c~Ffx_xCr}rVPa^a{5Bzey-_?7AyDo*!QaGv?5__IWdGU0(Mp@U@-Xg@k@)u`z z2wq{-Coc_|W%YEOZPZ3lm$h=GMX{y?t5OyWil8(jI{@F;PMH&GRTU>m_BYZqnVwZc z){uw9H(I|DLNYfOlJu;b==AEq(9Xk8aSa*mf9+iDaiJO4ijWZZS=N3BGO2WL{oYGd zKL%m897BAvN7eh{BMM{Y+kkdsS)C#JZU!Z@Pi9b%8!o^(UvD7?E$L!-kCQ_4r%Mkg zf)VpG1rIne!=R74ppX@N-6=Mr(~2rlNa}P1V=>DU8`lMZ9bjzlL>nUnNC(z4*Ttqt z3MkLLLrCgYk)O?$1zOt2&?%B)lqPKxv|>ExFiW!`=A&5JR|>y$!}X<5Jyx{c|tFP=3(#7)>Ax4G);Un zV-WB{__xejtM>$gTMMUBKW{~_A<ifz_qSx{80Eid=w_~f#lQSFmQ z1J#O#oYVK{MTz4-6RI5_ArX}I zHc3au2^n9w`$XRRH})ISkXLk+j@5Me`40YOuMVnNRYp*e)(2fI718I)+@(9QV<%^N z@4y3sv+YaEB(eI*#U8~YWVVv7TwSD8v8Yn-2hwZcExUm1b*UQJYGk3+oVsJ_z2M$d zf!vsA7g?iolzv&$g5wS_RvP*Hof@I2Jnz|mXd9>bAo|6MwXFk6rfD% z_p%y5%>$ntfv5KsD)GBkXABaaKBy+Gyhokp2qA_R z{UMEqHRHl#UQ`!Ml7ye$d~v-B_;G622q=rbwhozD9r_OI$*73PD)%c-SkHrh{O4JkbyopDh%0A1T#yT8!gA}{=7W5>}F2_E2^c)`Y zGGobNv3LDl(<^>XsDHP^0gqd>!QcD*^x!3W(k~~X0V0nc3ECYib3fWH5d5XUeoSOZ zD*YoyDDt+a)ujJ#Lx=MGjwuVYA6%V~jjF+kRD@Akf9}?F#_y%0NGJ;q_2=ZVM3hzj4=FSkYUoZp0pIa5Cb9^F^_*Lce9OI^MgG`}rqB&M_RM=Xxzxa$wI$CE<#3_v*4XBJI z`NJ4(9>AA+)9kd2i_VgD)o-!=oC4`$GKeB-%wB1(gXhRFi*_)fF zY+}WA&1o}fWo9%cZ0XX7OIlKhUK(FD(%irWi=K^2<9jbVnz*p_86e>95an$p>#fRH zl9lv&HQ@kP$SCQDIJnx4WY`eK@~d<%#OjqLddsHzT!+Tqq+wC`1+YxEZh9^SDQO`HM7%yT(UyJ1MU5I>%^Es`ZpdWCWXumH%cKc=av{ zhmhnH$_A7xU(hBl`+ew_s&lYUgdv%!fGYQGq=DM}5@T;;u;2>UZ7ygw!Z(z0zE0iVzP?7uJR>gD zKh2lTlICcHE`6?s;9CO0{sn=VJEdba0QT8zzY@pW;1>)TR8E*YYlJk1N)mXQ_HeX3 zbM!s>Z1EVLL?&!yT$%#^#$s?I<2#WEid6Y$r8Vv6oghmunkp=79G9(Z1*0oKOB$o@ zN_##-P%yWqwOnZzRWa{v7oYH!t z*OS~4@S%5y-N==`q#(aK?(&sX%4?Cn_k@yeGbOkHc(cVJ4Gqdf43sB*Ku5&i-H92n zm8bJ(+_6Ysf8m1~pUP2tXXbWOD|EC8!RKBV%@lJVAB(q&?lm+jl)X{9Zh~TGeukK? zgvhGgbICD5)?#r0GR+7Io+cHVN0=u|&BmBFL{?DEk(Tr3r<6XF`;0Ia&?YsdpB(+; zlID7&vLpIe%5M}$i(4#kODR`Lm}0)s<}6&?w;r0u#T`2@FnME56^5x@n8E69cbb9* z`enh+?{sX{hd@WRDXmJB73vOj*3BjY5~SxS6>%$QBA^zb{m5IIgMvKE3ihw6^u! zjj&;*Bat3D3N+%XZ3y$R7E#sudYU<^66l;)lgQ=>@_6~f4{$4C{lG}ghu<$*fWCS^Gt_j9zjBV*LQY(}|^N9iDS z)Y4<`2F%BcsgX`dqeGP2%iW*7=`s}!A!k&*=YFwF5DFDk4^uPv8WW-F{R)vA3bZ6{%`pAW-ngf{6hqrbxETjW`qYL89eiru1i5{gE6D8S+E;}2- z36;<0Q`WtUX3^Q2XU#LRop0z5f}fN?R2fRhL}(kcG*&}mMw@zB>^#rg&ROlD^1N3* z9klvsbMU%LNw%M-RKKiBwl(cHo1)Q3K8`CirLAVMs^e8KrDHSCyoR6Op5*$bXcthI zJp0IMzV-s-`Y6B%HAsW^>!oZb<1%WHBV_8yDbHDQe7F7*=Jjn`!TI-qp%0Ph1+N|9 zA6)tg_czDwly6)nb?gw}_e(f8&f;=ZNzW1_&l#)F4=Rn7kS*2{nD!mP7{9tQg9q6$ z3@RkxA8$LW3k04Hp_%*RU`e|Y2Kx_t)I>vSXok-*BCR|y=mXp2ixGL~8jQ?zl#a^M z@hqcKl%rvGSpc&>vc6YBn4e?zA+Mi;O4<|%JkK-04xUj5*qEnjr`=RRt8k}g)9Pn} zYQY1p<}14CJ-bxoX!CYHWew^raoMqFGGd^x*HdUckm~24G{&=|r%ygKSxo2g&y`v3 z5pkH>phozTsnsDq;^+g&e>Gh+@*)PAd5xa}P%Es?!qJ&2Xc)OR>ZaF1e#u^F6>)0e zI84rb38Q{b~tr0{#b2`A6(r^&HuC(n@D}r`N4IicbmZh`E*=4oKWAg^<2^lnkXn# zx6s&3+3Y2lfhJhBZ*OZTk1xdPG1E;5cHer%^}>y$DvfVRUE~=nQ_f5jH+uCtW_%c> zim#){prV^JhpB=7GR`<&l?CrYISfXHCd;9qb>CTQQ)$i&%e9~LSj!%sLyBQd`Os)E z&~BthI+hzD4Q0bsvAr>M?o{OJ5bbJCq-nH>fZBHTo$F8>(`73d>J46YQy}N%YT_Ea ztGT#DU;cHJf0{qE=4c-x;Ooh%ori$9j<01LNz7s1wAi0J{Ic?{qF2D{HWGYB@B=Na zO#b+tLXZ6SlpaMIjycRnX0ib?i5=MY(A6>Wm)(=%%Ki#JS+AP0u*xxW_~ZSM>u7^! zraTEQ2jg)e(V^Kjz+WGY?H*Pr>^f~_Z3P8{R9L*1v5}_f+)7>20#v{`q;9C;A3f5K z<$rKxTkdB_+rUq$;T!%`vh2U0-p9Jn%OuSfXYmSe-Jb=++%{uV)9UvlfMx@}rB={-R?w?$<{pCCo?B?D%nGr8v+HiNJ#e%TGd-Tya^~w}i!AfHMcD1V>3job zvy1CFg~Okydgv*9Wgv0(;m9|gXW(CTv!hFej?7I662|Gah*kiez8{>$5 z#E6vgM_O$V$NH{cpY*yZ{T=Ug{D7j{P2C%9`Y<9kmv+p_EP`_@MyC@|`V&c4>ux?b+#l z3%wby8JI;cMiN>uNf1dweTOR)sP-NLd6;jzv-sYAzSx6nUqw{0r<}AYPdRlOldira z{Q-r{1N)0VH%PVklvyoR(Rg}7A&Ip@uQudI?5FIqb8NIRS#f^l9Mz`fAEGc%SzNIn zymXwMhmJ=q!I0x_6q&=aYt@$(iMHSlqb*8MNgtEUO6^a=9E!R?eN!S8k4GQ}_+eVW z<}c?x=*i+VzwA_D7UXrQ^w|Y$uMJT?HFYoL>lkRWj5TSs{}_FffL5FJ;iT;rKkDqGWVDYK^otrXxsq zcX{7QJD(?qjQnYb%lN~QKEG>Z#jH<3L;Pw&8ENR8~+EK>vRPxW8wbPlbbh6S9 zuBb_uw@AS}*9F3hF{E$#-kHo_imou4T007d3PoJKtutt}!c=A7bBZ#=-TNm9yu0aZA*{F0$3OE1BR z8jRQtQAASMGZ?h73R_QPjE= zlF&`LFKM~z4L53?LB|d?y_>|_89thp1gc4&bKLs|8gQe+6{I9N9&%Y(%t>j*!5By!AqKt3T99ZPUKb<+XWjq8kZ7FsjKOylj`hePHIl*mtTT(^$1yA*ZPB zCLJZPt2!Z(o1P|_3F*Cn_UDW)BF}17*^o3U&Pl*hFsi&`IwVZFdC5!q2%tMlJ`Y#( z64yeC6z@W&6{8yoX%vP5OflEtrU1`dp#wzRbu$Y+ZXZQEt0kP$>QdVjPF2LJLJ}Up zp5LrXCOYJz<@+Cl>WOh?syPXYZT|IESR|`*O+AZ-RUS+%-MT*KB)5@WCM$@D8xsP; z#fFMu9(lSNd9o7PuN7YN3%RagM^=$VRux!LO&p7Tyw=6SwT7xJrqpY0$5y)LXh3c& zLLq+6jJ_B*nN@fy#Cx^p!!b|g8{v)yR~s~SHvEnAWSs}KA^SY|B}ywxQ1->|iMEV35r_btz+R?f!___d?V^UcQL=zrGbA^Dl3SeINSRx;H&XaNj+daQxSg z6?c2hcQJ1kw^kDQR|<82Y=@F*OygryB&&o3g&|>cZg(Hxr>x3)$HY|*!q`|OzNd8b zoXmJ`aI2DFer4WUIkSY(df&43D>ET`@JDrJKtzFr=jRcz2Ohn()4z(dvVdWy^j-3` zAk}2%>81ODNzFGueH(qCTTSy{x<~-+Wf!Zg)~=Z{CwMyUei2y9bDjc}M#CQp0c3DS z)T%eZ{Zvz&5&_2Vj1YR?hP47Ibi~S58>U+MWOeB)IZ(l?#?e!%wQLnnAP`W+a&0fD z)Lfm(GqiHUVw2ApoYb!}_m$8l>g5;_ST2v}rmR|EfXg}z_`z}cOcv;{KM-_(Bu2k1vQ zP6`ceylcY@w->2ooKG;yf0ki-tsyw<%w$=HLlf4F>Wa|exhyO6N>agv$)ttOM-siH zBAl!e^t^qt-){-l!@zA|)e_RIEAjZ0OZQO5+3+L`EYOIYzxDMRx#gCL+uS3{4Kr~; zh+By;f^i}?Azi70ythHo(#OM^W$^aX%+hn_s~)g~XCpmzDytLKzI}TA5Mn98Js~++ z=H2{>cWw5+t-UJXd{MpF1KO~ZGUOuz;l3$0}o!5s0jG*T8A1!PqR6#O4c&&Cd%^>H@!_VZ7Nu-|16J?bwsHDfjHq(-7E{}&l zX!ihjS6=s>JE{L<9!7rjw%(0I-xu{}{oo4Rq0`p|zay@DgxzXxUU|25&A52ypw;ke zc?=U8^C%sK2vuHX!3aGRxT5p|MulkKI?mF*be{f&y?7A!pfRy;%;VbHH4wa8*Mc;f ztTZ@)Lo-9F`?{25|?Gk5;AGf#7I?YkgZ`P7t_`wq|gE?@h? z^^@>_9KaKC>}xBVjz&QKu!0|4DXxDL56rh7eAi9;V4tx)7^nNK!e_B!qW2dPT`hcA z>C`iLL3(l1Wrt!rS&8%o80hq>SR=Y zaB=HX+pz}YQYPt9b`BW$wWrPQ0-*wSuRZRGRM~ZrtW1zYuj#HWbQ&}pK^IBx$$!Q8 zbeBKm_pSThW1JAN%f8ujGsh7EA&h#xQhAz4-k@6DwK=t>e9d?`^hHF4MLqSP^n;M< zbg$@rg-37Bn1w7F{c$zQW#`fL`!44&BQ3{sslXS%+#mHuJ@`&|@Ev-7Cwch&drnFi zq8IIpW*JdCmyXje0YT}G{$4T);xhIsorv1rVgw2nC zJWU@Tb%_>%6|>t&B@@%H=bDrR!OG9z6|Lo;#*$`E zt5@{SS|y>HGwa#jQr}|vD@f!#05HTWwaLYm5;8+%VHGcY+3h<0alP{J`g_03{{Awr zI=L^u+T8b<9s62-&LcwPjQlUCavBWgIBq8FhuI7uj~*3{uBJLgbJqd}QneP{tzx-x za!wX?ZX_yuCjV7ic~jCnh2{RTt^r7zsYUDFKzg6fQm2ImfEGU+6*rE{@^;}P>T=5z2v%g>+kg=rudiq z;nUyp2j{=!53~O+e=zuU+TEhu$rn2um-oyk+x1JLp@c%4-YlZ}(W`Z2OLi6clVToA zu{~}2mx77)<+l-@NEm$9sGWKdcGL5e6B%fb#(!3*vVP|LeyrR1=vSRt<3Z8_GDNe{oSRkoYfsy~ghT!(lTNuMw_a?R z7JRQVJd$KbSue_yF)*Olk9}8Jgj6(LGTz~_s zCpDP#NYdTd7M=BQ^j4^6ueZ8CH2KdDlCarsRVa}jc5!eZ4VtAFApant|1r}?eyr*$ zFMU$$7^C-FXYg7Mw0Vs$C{|(@|3!4Lj@&)Uh8w-l~E|EM5y*9 z5vcL*DNo_}r26&++U(d0;cYO%52kXOnIv6}hF`0b$$wl={&kklzfKML|4Uf>-w+X0$Jn0MW%Bzj zks47_&lcSU9!nsA7?phG>1Isa+p;g6O<%6I%vcBVs%LgO1b_GxuT?B=W*f20 z+Z1htZP}_gdZQR5c=Pn>h_1^=U_7ht?>}A+5({vnzmxqu)Aq&B>Zb$I2Rl?pETd6R z#){nLt-lo^IFY`+k7symPzBt{gaToAmVw$+Al7=O9xU zi$D;}?w-b5xt?+T3XMafpjI|Vz_I2t)e z)Nb)>d{-B)@ueXV7YH15q~^*}s(m1x%tm_!VKDdpJWqhG9FmcvXH*R6+Jm--e#Hv)bJ=yR~^D(kMFStZjqK3r%1;Ns)34?EDW zmz=z7?W^WbSvXmZQ9LnwV~Ws$YMd2bAY;Xkb=I3zU1aM$$M_ zi^9o)nJZQ*CdsC^V=d?PQHIs}XJ=82LT=7%%ItI7eogTAo62owL2~9XT*J=dYm-#0uu_w?;#8~b8^xcE%~L&|;Z@#VZGDaLi1-4N9?zoN*L zwWu2$s*zGWTt6izSxU79NHdeKjapuqErir3yAkerlKbr~bO?2K4J*MxhJ?k8nZVF| zb0yM3x9@m5l%mE)JYgdpkY+5R5o0<3IY(A&4jdo#S<(Lsx%lxf|59FUMyY7ku@u8k6~f~G5P08J^c1LMD!nACI5;<|GXao8OXYi zp4^Qq_pHKcE6cxeRiX4JUIGox&%u~0Qy_ca%4g4)glipE(=LW8j~SnBjIxRa8Q`y) z*Qeb!8N%AekL4M`Hsk$bLjurAjyP*~92@CQOY&i2*K?pYji`tGbW={fZzK{y1fp zA0*A0qobOW9eGljZ$bR5tsO3{ar+Etd2gN8Oo8OiQk>Ok_RI{YbY zK2M04ny9>}^|{4VGaWn^Nppa*jB;1Shr!ne#!JvccdUHmTzhcEXTW9gkb4EY@j7d_ zswbKxl!~l-Dh5JvYB1Vv7ay=zP{gzW#hZRHWm0tmuwc)(P232rOa06qH&kUCR-X|d zQR)y3G=Pq@hoxgpU3Y=90FFTvi%(BmPrs=m z_`YFgEsEI?dLCLlv`q6=w~X7Bg*f>`uJlgp-&Vk==Sy3W2&R8*7bBUQK3kUWc7+6g ze-w?sy0B}HQJd~aG#(VTAr&C<3Cgc7-~M*YG2SqozREjLIQURgHoNRe9kS(2?R@s~ z`gRia8DW$vO@&n_O~RzANmD^A8f_}L7jbV~JIL-&IQqEQ?Os)T*PjOptf^YU z(M1#mk;N)1f{Ng;N0JMCNJeH$P^%m`7+ENhbtQvC@gmLHVI6G7I=4ZpV%A9<)w!Kz z&C)L~DPB4w0sYpB_G*!5-%Tv|ez@C}u)r2+BVzi^LPx7yQ=78+Ltby8kybVQR=wGX zREk@XeCa6NPt3S|VRiMe*tT!m$6*W``Nfjbz472GMgc??mz7qLb}ejgpqr8zSQZrO z^%d&qTJ|v-Qbns(75Na6=dHGeH(A9u-}sn;mKRZ@;owTaHA;jCLT9-g?&CTv1@fu+ZAY=xmdWK9;PCIofiQzfybF;c^jizej4I(({ zxt2jLAY)}!F<&L%#qeTVTkeAXb1F;z9+qr7Yzb6F10JkjkQ1lvpI6f5*}?n(QT6&- zn|-h2;jTuB*16#4jwkzQF#5Egw1t&xcfhz&eLF_4M*#$~Au6k6kz@L$LZD01tg8$= zoYec~Y$K}UMmDd$Yr!G>nvZtToDq7Hbr@XOnd>PMh`vdosEj5;0v7@Hqcsa8a& zg(-1NY!ujlQQELN1H&Z z-Y`>Ht=HD~M-`%c+}MFLLar+P68C&YpXJOmI7ESd zsV#j>y7JUrw@tzyM&=<^82CAgTV7qV>i*lyn_hv@Wg@+bccHPnd(y~WFW!#^=nRE>3NM#X3i{ib_ z{o`;IDaZ?&43R5M@K8D40#y|`aF(1d1vbWXK1m|XrOvEeoqK3NZBN;3J>Z+hcxQdE zClDlUH_r=e=j^IKxbF2kmzd>$Eam^bx;?D0!JvLk0K_bzVIG-vk9#X1t%~e>a1`(& ziF4tzZxysB5CQ2*UIr;(PEH^ZZA?1O zuM2g*`+ni?613E1X|)&G3lS#`HFq7c~WyEQ)_ywh(Dei1TNuHZ72H{m4_)^TM#3d;cV z06_o_7?qhF-)S3%9xwFa%+xG<>FuiE5|T1I(Es%lWqjiCtM|~E``z95T8-zuO03_> zx_phn%V?47*OI8bXlgWn5xDpXOupXH1p{AzexOqQZh79%7Y%W%8lU?ISJJJ&5Bp|> zY%6E(9`#RIdN)Uwe)EN(GiR#$=prX=bK$7gzZKAelQM&mF`h*W^idzIxsu4Ol4E&E z#o@B55YK=SCZWgPUWHsEjSw5!B7GM3mr%IJgxodVm>0koO?sKdu4hLG>|J*hy*!Q` zW`3I-Z4R5`e%EaO)<3_QWeJrI;xE{XU$wS`q+%AFApVni@ZzdqfP^0CriqRPtP@0aAS6TS|z-C4Nqq>e1awDwSov z(8{O~hb43Pk55}!F@u2gQHFeaBzd2dCbS@)!UYa~`R^w(KkHqZT=W~(yRLlM|NUTG z#A=eOt0h($gg>$1h%e<)sJ0pvQ?_JHUDMi{W!{Fpn`m)-@iJhP-ytW=DeFUa-7^0% z`u~(e4USgzO4~|M?}+&EG9HO)(=jnq%aN%cT-0aiJue`-@rz93i+`;C>mbxP+Q0v9 zuGw8~`=H*$mk+*)WjpU^kdVEqZMKYR zQxo`38s!jZ`AzUe+D8I4FvM7C#-8-)(C6La?1UJ&KL?LZSYf_}zbS>f$s5I^l5bS$ zoprWPE)BbDy*e_Lu!tGX^G33!PwLYU5Hg!Z`o5W-hL2c{5#})~M>uVS^&a8B5^wh{ zkKN>cgf;cyXQd~aDW%EuXqC7&Xe;<@Cr?{9*t!MHcTgB^lzc|da;F=AF1BRs}7JV%P_ijqyag`@cfhH?5!6O_r2(b6xw8DHW* z6^UklBflZ`n%-OQPF8nHgnt#r#=O5epJ+tHd9MytK1L?Qj4c2qqa4m<2e<}|Yhuu& z)27WkI$!r*SZ-6tlS5V>Y_3NXzBwmU-p?>2qg5~oedGp-vi-#l;)OgvYCV6Nmz4zw zqw0J3F?}>oF_;}dQV0?Wpx!-#BD;d4kTY^tA)HJR}&St!aLC&hRBA@Ua%Rv?u+QXAIesX5!1>R`~FfwLVS93-|lsgtShM+vBJfR=E`XLe$7rS=-xN(J5T@BvF*FXnOXe%f2`qu zzWg|+(XvwQNvacXK&6%#EBTdzt)#0KO7UYV%Za&I{8yLGD^NHNSmS!(4vzN>6J zO!kQo6c%2FACtJYG7?&Icq()>amv5^LkHiIJ3_p1{k2q*KT#rg9hl`+zc6SL&Y&?) zNiEX)gWvaB*MCW9S|*qct$t#x%VBBeTG#sSOh*q2%QH0Rze^g!@bgWC116N&xEL2o zJeHmQzAdDLc_<_}47W1o0EQ(N2=FA+OmdBqDgH|X;f|{&*0EL5_ok3KKz2|LY z>iS2~Z{caaUyOoeSPi>PYT-)hrQK;Vgh&1ckxC??A}xa=y{~oN@A<7OEM!$pWT;X_ z^H)H;W}(hnF!Bq{H+&-1m-Wz4S4axf=BWMVyVj*7^&5+Oh?)4IQ-5&rTDiZu zGsifGx-x2gEp4O#2dB`;byGHEY5Q7Du#QHZw8RfCqQ-zeGsk0Ii<_7R>K@M5tu4v4 ziWV3N5Zeh8rbaLCp1$YzT`M5Xp6i$Pr~iINobWiLLG{dGoTeBi|HKN^pCPRDO|_v| zRN7r*=LFg{s<=###U@7W6aw4{PQ(EXKYE}N#P9AHsWYvt84R^meP@CHW^(5rmU;0& zdGnzif}aQC=@3pP@$zxf219mU>);tJvpLshLV>2_hsq*tc84&#%352_T-Q`enYXI- z9q7~bhMmqu2$lbKP&G)3>DTB#t|SFdmen`=y%0)xV~)F;o~@Vo+uM3dVaE~_-fwDy znhLD@2yAjx5fq~WGT>3MB`j$t>1l&b2Yd~LwCaZzXn38kc>dysHhE5@&E`g1FUY)ARcfYWUIa)t*iLkh` zzvV929hhS-D>;;<>7Sb@ym%3di8S#um)8Ak{3=@`!pHI(+A}jJX#=1ZHp5O_GFwHC zgbk>DmlwK5EhU9N@aQ714-%b6Z`QyJjRc+If8wobbf`-c9!c_1zOJiQrxq=Zp+i9+ zc)|Ml^9bI^crRnRR@=R!^ z3{RBb_)eW>thRZh%M_BRAnAjN=7|)t5UJ8yoO5mOhfw&59=}t|R6d+j0K=Av;^Xf) z7`(L7x4sD^I51516!*Sf-6{CuL!@IwmGrkV>tVrWWr|4glnyXfM^7jw;JI9inzkgwpgZovjd*SZ7-` z#V7g4RzfX0frAHtbH?j^4cz(egKJfJ+eZaRHw>3{v#cdq%zg0=9 zbCZ~hD{BplvU<~MBV@6moEuc*{wX|PdfverICJ}tcivqq6g7F$)o6!|_a7F8`rRoo z+)4K?tpcHd?1Z|~{SKl|9UPv2lxM>muxP5%-1KpPL96Kgw{0npymPSrEj0(PSe&bTZwbj)Gj=MM=r(_-NZQ^eomc9g0 zVwq1+)pB#7o5+k(^Fn43sBUzHd5`(`X6I^ablKkGm+*` z@b~qOEjKI}Oo6`0eWWR5KZ}&vPU_)tyR$<(_;i&|Q#=Lok(zhkU z;>zecU-nKt7o2(rj1*`^=?8VAwDf!%rv2elTPWG%w3oGv3;M7q6>u$Ph&SAGA* zDHPUU96*9=bnbi{aqleJ^jj1kVL*z<`T`5AQeK~yMFaLNU-#kxX+o%W@|8n}u#rVYY(2LaNl?1HuMbVa6Q0v65kP zyKCsUKw~;WE`kCWWfh`jrr%z#)2$yTvIx4B zNWW%gM&jNXZUc(;+Kv}`*QMLzkGh{GK%bbI_aX5W&^dB?H>oXWt+VR?@b;czO(uWe zKDz3PF1n)NQbd6SNEDFXaiu4rn9xI0dIAAKLKAQmq}Md03nU}~g3`OJN=qn82q0DI zQkABFqEFoY)%&?${NMbaydei1M{G1`JCsptlgg<_kGoxtD4?|$k4gvMafrt ziWcy!d)c<>ktaIH@7gF6QI#B>hP}-^TBAmja)!{ZqJ{nJS9TnS>ip)4!|^`x5(&WmR>Ks? z-Wyx?(6dwAl^q0Rb!o7i_>#Nnw(@7)+mwir#@LBoH7t!lKAu~P`S zuIl;FH|?RpgTbK}YTomQ>#vuHUm1PPAKQ<}^DTn~bPilF$jnEkq)JF4LY5IjWwZ{w zd_9!}Q&Cu7c|9uuFe+B062?&g@+8*0yt^&TM+uR(q9pW_*oip}UScn%#GMZCQyq+* z;g2%-K@y1!H*r6{@n2&N56>mwAdnLVXWY@8H^N~C==+WMfRWmstq4q+Io54qwtT;H zoNK5*a4g`SQMgg^mF}qPS@KPL198})SRm@}U&HtR|6`>6<8rli3uR5^ze-Q=u7Y*A zX9TtfAKu6;$^3TKXJwO(Vt!lXrUN$kvd289%Z9QWOW0Wqoihmnza;|?a*P_@JIKjG z{1HJLpei{D+hoZl$D#?oj%Yjl4Rnz?R7TG7>9{QYsKBW;ToHtpN&DIqS{bvG+9k!Q zCpW8%o)fmLFz?btOxG3P`x!UpH#228eC;gbBs!4OIJ_gF*H=?be{WX4E!|D*O=UNybl;CXCpdp+UR5Lo*)_qJv!Q<_iE-kT>BxKjm|H z4h3`X-(UZrNIm3-w*miHlN7_zIy0`T@Sw!LE9)PN3z$&epoYFuo-nSrN#{rH<^Otw zM&6ABHH?-N$l%e|(qQ=pPVl3Y3#EM57sdjP`H6SPK8e120!d8KdYUV2#x0#yXOT!%^8%avVTiE0UH9oxa$qQHN-%9p!{KpmY!qhkk!->K|Dk&qKnI0?m2uCj>1{$ z9@VQ$Oe%lI`7BnuTv2~%!nuYno4-&)y@lvmM9q)|xe?Ltx~R!21ufvL%2x(!&~00-oXf>=({Jp=QYPXz*Ml zt+zd_`Hb!fdc93*&ym$)s`f+07-cfOR-K#y)T}0CeOmk(ce-o2X?|$SdQyvgz(4nw z*I@FCBfrsUoqu7;;u8U~x|wnTtc{r06n!`_ zaIWRI5{mk^^l!@DJ$677=d)Kn3!S0bu1*fXTa{#-i_|>1?{l%a z;V%~R)W3;x=wGU&j{j06CI3(*sZ^f1t69#ByMbLuSVlJvZhs;eF^av7pVN`J zJSa50`}4_XHvpDJqyh)@C0@js;E%?T|V~1=C_54JO)2+_) ze>E~2R-5G#F+iiJnQ1uHWVa=J>4WOf<{N$5HF%3xN0L>T)u>f4&{&n(_5d+F6CAH( zkpZ$5Ec(vFQQEs!AVGH>uU>5MhY>AOxB7+nu?#aZCscOQQ~BZH(URfPpf{?HxJ7i~9OA8jlUdO>CoECy$v8#8&*Z8t6oh^mbF6BDoON^i-Dj-O z4mJ^S_VYyiuWQ2PO&v0&+wXgG6MpThn;4D>klAi<#}B5stggSkKOX(|NNqfr{@5 zbA#eQzxv*UnChnir$BO-*s1)ANNbJ)=4H~f&uglP)=#CX&~Y~|l1DFTUU<8JyEuAqN6hWA0V-PON`7?RRQJ>n~d&Fi$EX zPt$bcIeum^CYy+x+`I)d6MHBn@{4ACJb@9tDX|sCh3RTw=cc9n(40IYE>8v!deJFv zg3Hjy>NgxX(e55Pq@Ya4vew|AOM9}ev=yW4z}c=}#a@Ap6KhdQZz<9(-=2@1E|XG! z7(Vs!;rJaEI&tjQ(}husJdL#$y!ygej&EJ)KPo@{T*-voGtbG^YdLQ%K$R%M7o%!O zl3WRE83IEGfX(TDgaW};Rz(X-RpU|c~FUJc7(OW z<&-i{Dk;zITCFCLDoHI!)bx^?Rd}VL)3TJ|%heoJay3Wvf%N}PbJVsE{7Zpw`mNNp zABCWqZzl||q0(O8T1)m=5B#!OYu@O+b{)l91rTDVkhyiGXpV_Z6(IXYG-Mvw4iyHM zpSW^>QCy2sHdzHWIba-W_0&`O6FirDpIXQa6UyS7*ahW7EFx@K zVi>4*`+pRH7<#hdM6s+BdAwaCei^SqJja(XM)fMbk`Y4qCM04^f>R*c7Svt4`?ae$ zEmFxIwTIo&(pioshU2`X5Wt$5E6WMur_P?ZWkAly0$vwC=N`4oqy>$GXafwSqqp?c zS>sy@;~D|EsY`f|VlV~;#m{{E@HI}i+!rkPL57)TLd*72gr&0S78DEh5`F?5WElY+ zJO4$U6S{H%@zYWUZ(O=LQ0@`|7f`EO#Eh7uB|xsxJ}1#XcFER-lt1P<)Bcaf@c#*8 zB;$0QQ47dL{L&+gPtF`^xzi-;OgqqgnSKEId|t6o0#JnzX^%OpXoa^q+h|Y%pIKVF za2U$pP*G@#XDSPc7#V)dX>s~ef8ds{k4J~))2ENM2tZf?xG>Ge-mPz@IEVOGU)e3u%eF((M-TXCe|)e1JWF_mFDvfD z-Q(4()CHXmS$f7@OaPm(kk0oZ(q+WcH-YlmMDSv8YMkg3!=w|o8rbT3Fv?-#gb|@3 zrqE;>+0wlI$pgHc=M<@*`=frutj+OE?%>vsTz;XYYQ7M$loNL_EUbNRPEi{fGl+yJ z$y3L?5P8G$vH4&fo-Zi@GuR3P`hQg@8_k@QJlB=SwZ)6E;cRIs% zkT0yoErkOxNR`7tC6I|FO+ryyUPczYEI+BRRflP`8vm3(s33+cGQlWHg~|?FZAghd zZ0xswK^7@c3Zv~-smYz?t#-yV85*SIWHkPwnr*qC{(zLp*Iw*J!&d`0&IB*5XdhYH z53io6w#N)T?)I~ia`DcGnR9P`7)80|;s@a03M4>i!MV6X=S%-R3j9B%6{Y{@d;i39 zNbz9N)MKcwVW(PIh8^x*ea@jJ*6e2cSCOK#wzbZW=QNiLqK+7e-1!r)PKpC$Cy88H zmp*eaQ?gK`V(o@H03qz5b!N4e8N4TzRuS3P_LgjZ)`T_ zYx33TS~>=fh6i&>PPZSuX`?z>Eyr}u8o5?viY}|s6-SM2(Zi#_Ywexic_bZ-D25bc z)mx2x!ti)C&aUIL0O(8Fp8YhY~-^ zHDKiRQe?B^@hzKoyE|pmj0J`48%B{FgW*qsrYS)k88g1m5q!Izg50RfFV+h4;F_t4y1NVE1+L58z%P(mM9(Vnl-g#>8FWP>WU$C`4?mLOuILYM^k1C zNt=>_8k;@xA&+^K7yk3Z|MmRXtSDlO0=r988%?rm8qS0tzHX49vTdMewUyFV{u(t( z>T89}Tq(14Nz}4;dm3=J$;q#Pr2;u4Zok%*9`D--HaOa>Fznv=6i{{wkSpO30eO`~ zT|K_?a(=U@J#z*+n%f8+WYRnM_)ke~M*dj0X;r0IY++ODw%Ln#W& zeM6O8OM76_%Rn=ttm*QU1L8J;f)%!axP_fA{uM279vxI7TqUZhgjUCB`OD-W&(kjt z900Zj2TqCGNp9R3(+xT@bk?S}FH@VNHP8ey`0@+)4sif5H#wl6xfv+7e2 z4_*>&mgLyu0Vf0K293vx5jGpo)@_i_JTtY_#29uZZSQ-D5;?M;FGiW7DeBp`hl(Mh zohCg{Wn9t$M*o!LXUR-O39|%qjkH0lWiNwwsx@3jFSbC$oKhB30Kcr)6l=K92RSEm z%ufWKNHrVgJjCQGE+(%7&nJdI4Nrkh;yS;QG$M)R5uL_hg`)l{svgbe(m)Y}J%}rz zB92$jeCM%CSxlQctLR%Q5SVfN5#xH`q=SXxm|fV1rL$sipap0qgFYoOScq)ut-4!j z$qIrJ^}1;?;|Q-h3#1k3R*%^_i~jw%BfLl{_KM#}kD;Yzn2YYu7&}Lmdf1kEui`2=;&LVN zTeX+Fjlc7V*A)(X4|kNAX}0!31L&8ronAird?uWk%;&_*>O;xPh%|3UnG7|@-Anfdky1M6!Y#2U0=R*!RBvRy58_v> zSn!url(tB0>~GMT9R{@P)JAhMD~juhG-+F!r__c$!wu9WXXGR-rp*5~QT}1_ekS<+ z#m14@i#46Qyln%PjW?m4Nr86pJ=If*V zol~5m478gATP>5IX67+|5|aHaK&5!B*tnctuz#7wp_W*7y}$!D<+2$3Q=W&l zkMg)zzER3C2)+_bODR0|s3$=F>(qrp28qqks@1HPePOPvv5-?HWIIIVcgXN?tO@o| zZ9R!%rcfa8U?F$U#=rsL97U1Z(BnkDiU1(d1Og&`G-ep)pPM#p`AXJk4)P(1zNrNb zj}sGP68PWd$GRKCz#NuaO+k$PZMrPb8T=HwxqeX)Bl6(N3F6fy7|x``GTURV+TdkR z8ka@DQjxcphA}ZxHROiVnlN+h7wvnVD`g1q_83Q>Xu{pfcZENmNL_Y>T>c!GKTyd} z3bJ3cZb0Lg`UlV6NM~o?S`=}3qz^Kp_;Sb}6c1(v+?dSd&gCmSJa_&Y2oI^SBu$x> zD*+xux7d=fWLiZ(DaEWRPW_xG65n>>c|d5VQ=}fjY%@X7N$+LD%|Y=-Mc?kzh90q; z7-7;3-;ppRE?2NT|67r^`{z>=7nvugnJaZWSvRQcqRP;*WMj+IKy-R)P<=i(2i!8A z%2WYDMkyd>nYm`K^RR=XR<_lf&mLkYD?x@AxJIPf0D^Elb5WqqqW>H7_}x-glZOI5 z7K|trklA$1kx+Cs(i06MAz_#GCS7=exM8wz+PxFaN839~Usu$0r|8p6l7}v4oqg?; z>~ew&CauE0(7m{J-pl)Qp!1e3mr!o>t^1b3T0F{+DqQ+7Cza6M4X9hMKUX0Na%oM@ zCU_-hWzG4lp?zRY{z90B6+{bQ{H{Tn?P;ZChPn-`{8ia^o}0|M#YU|VLA%H5~|=@_>~ ztt?$DkX1WSDVhgT9MWBNn`%bSz3+}30hQhJM57wko9Xh@>ALK6yIu40kLyYoQ%xBJ zt3vCsiXlH<6?My$Oj1XWNd3JUge%Y44{+H|;-j6HWbU6o3+;SDC z!E9(wHPZ=JGFT=bJ=K~@pljt@*neDF*}`|%Qy-Lc-s%A-iHUYeif3bl=DThWrubNF z$A0JO_kn!edE7M;Xf2Qgx%SoX?;4rZlN+A3*x_52DJf@imQ4NSax6ajuG=hM<9q3z?>w_VgUfpxmxi+E3@umB2Y=WKI|+7+nWKn+!=#o~ zo7wKrHJj5qk**%!g0{mk>&uuFlM-fBPvabIz1E=(qY+R)oRWDlk?k&@`SPVC=A@A|!&c zRlj!rdcZ9M<7QEbp7EZDoDZX%KY7G{{~vRS|K)t*|DxNO|DoGyyr!yHyrtJB+c|5s zoTh7jM`G9O+>*?g5&btMC^u}eBB6M&PTO){@e?;H;+ms%z{>f$#j|uU$yh?YnV0{8ouDl=ITKM!$p3r8Z~oc7Kwxw2qeI@>>-EKCU--Xyy)Qmp+y93I@Z#NzXOdgUVUSu0_Ip!kv|V#idCArBIKg^_9mdH3 z5S-tpcJ3qN&6NZ?-vuxq&+_R>pWEEPmlRerwJ6z71jCq=TXNqPYARovV&ivCIKy2h zQxJuXDm~z*(WF5LI#Os(yq1CFuTn~H-Lu7)Nt#YrvkMyyMFlUfz5G-Iq^(u%C|ng`B{TsKkKSPFot@P|;ZhmHkm zi;A77o>xzB%yT*t_MJxxvaBTkL*83xN5D&b%M94(mcC{eS;56~%kSCl#_yOqf2n`; zxHibj+vE8UxNPp%2U_E%UyUiQh`SyW`9F$lar25}X)x=fH+*c#HgmmJA%n*lim)=s z)8%gFN#v`*9E+qaGnW^$kERy6^D|7_^=ls?&6e%t>Nd*6lFcB*jtOEu250NGgH;t_Az=Ddws;_ zS@A}|up3r!)WrZ@jci<3E%`lDmQR+&$&>e;u!+(5_y};bfq=9SMb`7_RJt(CTW+cM z`UnG!$leHdB?z)4+sO@6g9vU94|q{LGBPh@Ib%IDzHSzr#TM|3m4bu{-oT zcX6ex1<1#G_4rBMGgi3?wJ4;D@UH|~W*3bRZV@21{mxXbOajX71Bd>I}kyG^f^Tik83L{=Bb4?-Yq#8u2V(Gak zPu5%PB2k==r6_BnpQxlXJw={lN`GnmbLpmm_LX2h2vw9D@($-YT=mxl9@CdN)f{RA zs&H%uoBo_lrVuX;X`s{~uRy+O<{xT&evu1#+VabBn-8@bW({ODGsIhp=7eW9>=DS1 zAu~ws(*-fYA$C)a`lpORzMU2AumKURD90lfX!3X`S^_CpLor*LEc2|AlYC2lcKhwB z*LF^j>!ChO^QT&S8e+EeKEI}vYFwJN{>jm7BHfJq+QIAyj$;rei3slr9cvBgLnrA5 z(ktuIOB4Q>jhMGX@U=@Kt&5+eXsd62I4dVw*;Mjr%2C3HP`Y+76zKB>kfgZDhi&Dy1$~vF4|Vpa&lGc9OI67b5<~1gabjp}l#*QWD*v?m zm}7;r3wKxVpDpWOKM%c|Q(1lpO8uclu@)Md{7Z|1_}{cBBb7U;80W{s;QH;6z2?;c zhZMf>gkQ?%n}z0E2$%ZUmJu+B2juy*!{Ccz|1X*WK9Pgvf1~FNP%HfN$gu7&mi_p{W))kcJZH1(u{D2LX@tXfx2U?-If*n_!J6kp|8ko9ShOa+P}QO_~RchlvX zZ;|ZJGiBzKo3F%fgpHL2wn03t4ND`iN;XLsO7bX>N6%T9l8ldLg&-s@jKf%VLGFKa zKVOSMcn2-8gLKL+np9E#?*_q(85V_8E~=-!jXoU>53iqD{~CtpT#sR zbRn{!QD*>*6C*Vcpr$4HbD45|?`{?2J@XcO3`{YzSFXuEpBmA50Dhht@r>1Qw|I*c z!z8Q-7i;FpSwR$Var_P4dK0#1&X93jvaQDEaaPK#OR>Wl+v?KZN7$d8z4J@Ta@#CW z2Iw)>mnxNitE+XWTay;Ik-8q)O<0s}d9+s8l}7}Xoa7BS zX2;F~%YvRygRf947<_C@S?be7>ta*X`*T%U7sh<82ytx6l@uKGhLNMmvZVGL+RHJ; zk{)DBubXU>aLv+Z>C1bgLE>{pD3DE;P0=`Aot>xYXtI=Mx@%k|+K9sT6z)v&dsLfH zbGO@rF9Qa144BHr4*^vJ)jmqThoc)s@oeUOFr1PgI;3!9lsai6BbQIL;|;E5|;ZQps`eYGeb?$0s2 z4{Hva>*6#9&f(murm5bsEJ^no6f76UhRGsxbnKRY!zOn0R6TAqY+P0vu#Y8osLos+ zt%ofY!*&r(!un`inO+|?*^#(xl3f5phcnGtn z<;*dnt{Erlc7aA@j!tmh|gaa4{k!`B!KS4JMzDJCHt7 z^sq(cqjh(vrm&2h0Hz7jvJyi@a6CjrHZun)+S&$1`(4)ybg#fl-Dm5HTj8FmcSZ?= znhOnvFP}b_w7IJ$)73^Yd({y?y6JBd-g?VnM+1!wBtJ*_Gdj(REwf>Wns@cW)zPw@ z4n4PD)R%e*&$l2gkFX;E>`$BLtG&2kK{vQpQt<8233oNs2tsciYQ3)gx4zZw!uZQ7 zRRe%NK+HU-GuO==$9DI4a}|@2F+1|%oaQp*CH*mbER2qR;0e2{*t?<xwoNPiC~JZ#1kuCn~HeF2}kSb{m{iM~HW^ zxsF`Q|8V4<|EhI+B_zb`2!t~~TI*iPKNo(kFE`9uvA{$LiXarq&gH+(7d@X;mQ;=y zUmu)#3$jOY?MQoP(laNqER?)a1?VKq!e`2>9c6w1Z16$ZOuiImHVI{zXMf#~<}Atn5bhb9#1S*X7)6Y4j0M2NGr3YQaa_EPJCxJ5|%zF?+}0nUg(L9dq$i3lB0v6bK+Kawy^A@2ugLkJo8^d`e|lk5;d$*1 zX+1LF(7h@kzv{gsQ#d59{5(7hXgBlciiNBRsss3+UYl&g((5H~hlOBV)&uz4Z*oD`}bP^Di{ma|40rVy+(-qs;x0U&)hSvP}5EA^})Su z0NpUxJO2>}0>p9h0fi2>9HJmheLwbDgo(hUe4~$TZi=d+>mXvhCMDMuYGy#A*0HP~ zAgb}p-&g?wEcfv8CQ(mXfN0b$vs-M0s;3!F6qrqb{hKLj#0?H(B$UHpPs>7Hjf~RCtpmTUYi(HK)s_X7~EH0D~T>*zK&# zY0%Jsg6gM1D{z8AJ!&AE%A_j41l?+=vKgDe$V{74#G#ON2_2R~|2mTIWgtTClW<9^ znd2N~A&2DK*st6LSdAaQcOS{db0V~!1#fVsfeX`56U@b#yn2w1LScT2TNo~o0nG0$ z7?b$0RPKV7pB~m}{b=j|P?xX50>QGh-R4Df4>%831RG@?8>zZ1sZxtc|5RMHH zG>(o#HYZu-me2;7L;ddfYx|1kGhO?@Fk?~FQvBFl?8Ik3RI7E_2U5V&^p z^S7KedOt7ZTiAKYU>yOq%D8UElBcUHk_2Co~vM)sjPi7jdEOQKqw1$A$#V3$V z=VfuOd>7oi6g=i_Dpuzu($7MO1l0ZN+c1!wPW=_#KeF(N{~5V#iF&@dNi5HX3T^pR ze*H=Bqb$*-bM5_PlpcGyHyIbl425c`L^fWmp<6QcuAGB4?rV>lpNj?sVdNP@I4dSy zZk;RN<;7K%d(k4_lO8(rO=ZtvG~ac-+l`fydi!mo^q*RN>x(ihwn!Gc2_ zHWc8M&X0G>ZNoP0AH`0N0TDN98jQwwWqC&k`8)m+&zElC-cqR=YASg8bF9CC$B3ks z0E}z3(MGA%9}rP0($`#*V@)=+a0WU8v;Si(fLTUaRa{iEyeAe)|IY;C??<}0_yZux zKdbQD;iKyR;n(F>0(g%8{vR4$fd>|N|D-|f9hU~Y2oqFT+W zjo)QxP=0a$RTuAX5s%HKWdy>x>t%FeG*O^Y$afUbYM+|@b&Qni|in}}YM-kWK`M0*Ed-L9tnfe~5i<7o( zKMlNEx3`THoGP`}R?xqfWf*MU^V~w(IYzi!;)m9+*z4cmrg@cx^(aj`R1m4!bl&*PPD zoU@|Oko|7s6syAypW-||H%)EhuhF7J=LLH(VEf6MpCE#vXg=Px+zoT3ZCH<+-ri4+wOBjV^8wSgBz5mb(CFQl=s&n3gBmUQ*5U6w zIb6^k4;;bpPDSMUlYv%C)?p~Dfbq606y?L1<2h3 z*`A@A2hq|r4RcT3xUz7m)6?*SpY9fhBBwPib(Ue^FqGm@rO|fZYw9yGnCjn4)-o~k z(_$6~7ExruXkJyQzdl+oMQYPJ+D7FP`)SQmN0)g@#m)r(?7h|Iemzm|@vj#- z3hY|#J1EkK$gxoLuOsHzksQpa%Sk7L`hLTp`tv&Nn5QYwH%;jCU^#uyII$wujUM<3 zhcb+})Et0A4Tjj1cW(qm^tXPg6-ZRF$(v!eIGDWayes0b(|H}g5sWJx2orZ4yE#a z=V`tV@w0kt?LFWzFrjvdE*0C$CT9objDxU^8 z#IDu%oXYrvpWBmVdVnG0oi5hgc7E|kXRG_Gv+1D|)6Zb#ELX!Lq&;-7@Ci&2hipuW z%jLRRRgNnm+V1}n+h|lZas5ig*dhKT0F3V z?_t3_8yxtLVdCwNVZt>Nta>fR{4|s{jvQv1dDC25uBd=d&?M8=*H6JrX zjUlY|rRt*Z=vPkol5mPZ&WdKtxCUc;bX32SU?Z>9xH<-6yF_)Jj4~Y(ta9K9=O)$Y z>v;JU4{t#EAT6Fy^rFEuE#$*_0w$`G*VR#VMpB7S&G0bBkDLDAHpm~(F(!p6Kd$CN z4qjL`cR)@)o1DDP2)oncu)582h==FUBEiDSx7nGhGD^Jcmn7%VJQ2Aot6uvl00dzs z@}J3c8dptId^{oSrkGXo+)U4P5{Hq=fj7Pw<+rBWd3d!!LYv#U!N@KVBFE#~E8mu{ zH|kr3UoD*;T_bsH7)@>aTqC3L5wE0Ha4yAl@r2?0J4dh7Es({2CDx(d4dYY*n?-~7 zE%k|3xR+fvR2AMi4GIWtG%6YnO0$zC8@Y78h9%w(Qrq%5W%PH?#mC)b7EwwW^_#TSb5%6rPM)?m+-;Zd z$~SZGJ9}k{{IScaH-Csfbvm1rhlRPBBA9H4CCEzlKO{i1YE`k$PIe(qk4T={8J zp01Mz+~~+(lQkzU@#QrS5Bd+z1Sfd?WK^L^lKi&C8g)&(2)zqc&K}KdXbWD(D96-Mn2Q)=*u#ZaQS zippPU88ahsPHN2kk)^jU!MNE0tv%OlYRR(_7AB8}-#4b#!XCu;$&MT+)H1p(zyUsR zI@H$F45~EQ;LY$h)d-l90}uxD&-tfNgin8kDtzclY2k$0z`_z+c)#e+9-Ut_`p%P) zsN+KAp4^GB={t7u z2`{BIn&y61F(r5JT4_}~WR0RWu8xuz_OJRnHw<(KaSq&8{#o-c5&B7d&t)1zBxHcA zOoylJ^=}A?%`}L%oHubgq3BATKDTGy6T_sVVA;xUVZ|Lo`4VT#%-kOKg#X7JGH-Vuv=fIS43k;Z9zTt%t10=T zCv9RHi2N3e@c6bNo!P_wAPZT3C$eR6o0zgH`59f2z$}C*?rQT3v;sWJuHCH1f2mKS z_V1= z@}u@XdH|OvZyxx*iUFNSN;i2h8OqrHgjiVO$o+uoXX9fSkE}bT#NHIeY(cvUxOY=IBi)h z+vP-6td%tyGv!c(13hKhyll9Q=cDGt57j+aed}*E^%p$0Y~yuPkjGhBr6cT7U;K+a zc#55Td2h#Q!{y2SM%|f$_2Lh+Gu%yqldPQ_H%r;>w7h!5~|g1Y+~oP?=|ArKX@MUl^MA!iZT@oF{+kZeM*H$t z$=rUSe?vX_(kn{{hrGT5xw(1o&o1r9YI-S<`eL=)HdH;lB#K|863-Z-Od?67H&8Y~ zBU(uZBs&&o7&IZ3Sp~IOI1RO80KDdup1*7RV~((HzA~?xArUB(;OJr8v-WH@wNr|s zzMq0u9n33r8l|OKoQMiZ)D~3|k+%jf66Pood5&{6xTNQ}5FxK0Nzz8ms@pE_{_g*K zTqx|1zeBlmuYXZtDSuO8xk&GWw+AflG>3W@RSV^;Er%VAqo92V$8b^FDaQ zquH5Y!OE=*BkK^P0gp%T1e?4zj#G8=8g?(pi+<1L%QpYb1J^HB3H;9UVB+ za8_T)IEOf{Oogzx3i-8L==OhgbsnDo*K2uh(14qE+Edxns?#17`G~tLFjKb5@0cBt z=OE_$w_)bunZeU1{00OftXv1zlP(p|2*w5U2BtDyYE<{3(cPGVvXi@J3I38V2)Uu- zYX(Dux|QacX2JQlb7NOaB(*Mda{SfJH7HQM1Ov$H{A&XCfU=H@O3_YE!)@ABAu2v6 zmnn5`+dZ!%Z5z6oMt9utJ-^Er7XE`fxEc;Z&ZSW~Ry;)^NRJG8qS>{w9yqpKg7L?eEhJANBZm zh8-JEQO|=QEy|OVBT3{!DM}U)*wXvu2y-*qGxGrTc>j6<=L%`}w~6%5l=HY1h=M(a zpaDzXpzum?YHNrf7gSc(qbCR)UP9%JP^y4_DclR`m?!MNs~m^AT6`ydDf3st7)y8z zo}vCwY)}rRXnTq)(7M^-ut6V^yJ457mrss9vZ-A|gx|0qrS)h# zssm5epU#1^6Cf%={PCRps!d)w+uuBmf%RyBa@>tzBvEOo1^gbaBwAfDFdU5du0x+Jp=V9?a#p zW#5~SVu&anVieheu$_*=n5@I!SRy&iQ=%%h@GWuI)l+4x|fAFxTaahk`6tUokHug~@;TYZrS zf1Y^$Ibd;nDpO9x4`EZDIo|=woJ1G%i|+SvcEmFsN(2WoC8e~Qz0PHFh@hX_36FQA z7Z{iK8ZO+$m*&)JMq06Gr7bc$M=MW-CtN%=+*j*`;04(b>Fvvqh=GTKdC2gsQUoz% zxUt3V3{c#lUB`&(h$Ei)&SSj%62$%bnGABJzZL%LGTw3mrW}1Ab>kqLkEdMhavQ7J zFty+hyp3N8h1>5tEdRdnX|bV*(we2}b#To$*X4YV%mE>p;gaDg3s1K7Ohd)M?DV$A zbS|s5fzESiC-;v-X{uJCa3{RN!kbiYmAlnFlfW=n#0Mdy%9-fMn$fC557zSUVJ898;)?AY{VNoVvrZ{@`Oax4e{eYOYuZ zxNlXLjcV)z!H`*SAi#jJ;Ppmfnb;iV@xg+j#M05!w%eHUfDfpOtwG(lNo1iVo9-PC zWQ&tj-fV@shv$E@0Nqv6DL9?B&z6~@ybDOqfa4w9|ZZ+%ZMeSJFBwzX`X3}Rk4=M|VT8<3+KE?UL z?~Z9G7$&=XQ}(R7RfM%EnHYIo<+F%X@%mizago`8O&#dDeeaukjr zopiFeq_6->J0@9GqCI{l3&QAff&*nBSX%FXyw6$ejdM48%Yp_$sUq+;a`E)Y7uwtQ zyFFzr0BKj`DbKHe4eg;0-2wfU%O52jm5TdHoZ8J_z$|S|Wy)^tk}2;dRk(J`Kq}1k zc|l5BFs$k#M?+o)`x}U1D^VYa9I!={6lKYlJ~X?cbN<-U3gG6>?PnEd2RRO(lT?>F z+*`*4*TGur!#SCHE%UDDNcn-V0cGXRLAlk5@iUj9$@oTSCr)Bbgmq!@cAk=1wWlMN zQnxuMyUf|Gyr9>|C4S*)-_S_`K!A(=oX?PTu}P9s^4f}5dz$X$K41yh1aWSY#E_$d zZ4WICmRTfIKu$3-BJ=1W%60d380kS^KB7;CqTLv;2NNNXGx9@rvMqN6-{B54y$G$; zAbo-18Jq6q8i(o8`1IvD1O1?-GbxKAJ;|7}RAzJ6-3xrkpm9LhK}Zd zC7v(KRm1)E8ZRbZ2uwNj$gDNg-dqX~3(Px?xA$%AWaJC3e~6x7he+EdyX8N5X)_&B zjmd}q*5IeYq>hKw8tI#f^-;582Ne*l;1xB?R>)uqT1k1gP5p*5k+MZDeaG;OenFdQXhH+5;xb+9hfBU9wcLf+8SSG8GhAKL0o5ubP!%6UOh{@0f_ zn)dPI9DkvW(zCur`Bi_cvs#MFJ0xLdlsSK=CYSMFP`7WUJ}gUvK4QwQOv zU)Az&ajtsRx@o@7B~heBdU%K0s>=g4*K8goSSuse6O)F&Vlj{WbjOCeDiv?^pTH}q=ENkG7Wu-Y6mOhBT-8btts0*tuwJC-U;-vXIzrBQ? z?|+*m78zc7yZ^z^y3>ol;lT_d5l@MBWD%r)A*_a-^s?P~2ChL5j^?_{mOa?Yut~Je8s4+q zi?)VnsaF(2ZiRof7Je09L;mXMuk)q;b7TKPhT2iouw!mwWOzjxreQF*um@!BX?7jt z<<4^Ir?R1HL0o^FqhSX%WLqgr889@GvL~vuj*ttU&-odgoKR8K9!qD%Ot+BoJp7iG zq}5ipNsNw9q-luQTElO}Ln8U}3ap$U7ryrNmtd)F)C{IGB|LryD?@BI9;N=2rmJJu zZESHU$vg}J+Hi4JXJt)m5Z#E zURaXr{AuXR=1LW+S6i1IW^Vh(g{V6AJ6V4tsx@R2`YGk+1ZD{Dn*lUJvHuTo?;Y0E zwyujumrDf~C{^iF0wfSrx(KL9OK2tp5CYg}2?PvHKtPuwy+}wvx3ZW{`<}J-Is12i&%Nh9&z*n381u=TbIdWu{KhxF^1iuhIL|Yxn{atH zEC@o*!Sb7Lz^On|eTUTH zyAWPvR~!{~FQugGIHToVZ0O45^R!KRyjf9-VnN}|6dF`??HYWn$-spWxtQqb5mNV$M-2W))FxZ5bP%W}jz?YLpvrL4p#` zHienjtkbVQ#a0TEvQKkD!Aft&egGsg-}+fkBQa~BnEXs-qLeh}?N&my%rZ@wV9wi~ z`1szdrZRpn(Or)TP=O*5s5+X%@*8kWI((s3Z}!ECM!XY0#FC3t#X23~AloTyHNDTE zQ!&@`W=d#wfr}zMatOnJYX)W*cza9&dAX7Sgq7~V+nalVn z&w1!_HVq)1|VjT}r0&-TlIViexZ6 zhnN(NGlqMqNkYeCC1@$P)Z98KEwx1!mX2i^pfaLuTlyWatWFNf%rHO7j6#J01uaQ? z-XVG;**AhHH=fvPTJRgFl_&C4swc4*a4Zx-Y|awfnJ_V*;`I}0nk0>tcWks2B3LEc z8fmTJq;}c()0bGhRnhF2xd^CSjQNt#JfCQ(_q5!Trl~>sj_MZ~96quws0W55Q#FxN zpiv=#s&6zpv+xHURX$to?FgZ@_T*7C4kX<)0%|in#g2bqN3*IZz1o_Ys8Dab;-91C zBos#R7QX%2gOWeQ@TAa+gP56iYJU4uduEs(^y~07J-@myVWUmL=6OE=e6grKzWUgj zSA(}d&snI&1zU&bA#BG9whYHIC4Vx1&?Qs#ZohLb^#vZJ&vqLN)^W7~_ld?2|T4qc=O&Sj%)6(ZOk6G1@~O> z{XgR>j%&4y;XHQ|E*Ur6=?S`YJvkh1fx1wc{Wi6h3e~HW@2)JK^SgU^{acLF{npXG zOg00f;Ol#EpcTeA;=b*i8Kpf=ayX+nN2#KGfC9Setk9vJfs-q_v~T1nh8mX>cmB20 zrwk!qopJPzQ9`d{Y|BN?=Z0VYsH4KRok4Ds2$kXk>RurJ^X60a&|mA_zJhy2K_>|T z_8)F)>R=woR$N_HF-ZQ-W+Qwqo& z-yxG!EChcxhV(phU#R~@TP;@2!nA5at+`|s==2FnQ`UdrQ4kTyXpDjS9W7%tblFro zH&?k;|FR;>=16DMJ^@7+c3*Q*Z%>F!CQ##`Y7#sU&2!@tmjXVk#yo|Klv;Pb7@U1M zU7qK5t@PZaI;YPaf`V3ML1?Lxz-`o)?+(5&39Kf92XpuchO^8dseAP(dKP3PrAL(^bT<#`zFYurQlO7HTutkjhIHt%x! z-JdPS8Qb#()8BPE_t5+*TC>U_P{p`1&m+uCQ>#X^Al16Z&J^#=z;ox0knu!3^Po&V z58HfB_NmPGcOt~OJ~33;$@c)x_P?wK$LeDN$Aoj%9*=XYzK=)Q$l%Q|PQI_jrF^-Z^yE)9p#wTA6gDX2`TP`>8o-x&2pJ8&N+|4|#d#Yj^2Rt^g zCk}3Yi)cLwB-X@KW!?#P5hc^sVNxNs?ijMWCFYtLJ|;5u8CuFbmgkGwZyy*9>JN!^ z?px>RRRW7j9`pUvEWha_4yehzU9PlwZs$GBL(X&5i$Z)#(HS?qU_pIlB4%fYsA-cm zC8rZX!QDRqkLI3s==fy(p=Ow?!Fl0jWpf-m48B)ALzo@oweR7y<@7DaytKmRS_QS% zdiGHo>O9EI3i?E^^HQ|Qx!M9Yn*7qHA5So&^{C3hCC2mz;R^hLu6?$(exIyIT?jE7v?Ls;O&ud3R_VgEaAzTyoaJ+RI9jU{c-5CCHPlk*o&&S7bPR?QS-8S zlqBb)Zsw?)oPC;aXK2OV5q9FSt8HSYHzrotcpZOrJ-c+7yAV%Q2>ckkC1`Z!Rjr<; zdS#i3Rk6=SNo;N!JxPF;)0TP_=uFhKGiHko+IGsGbhy!QKYRGij z`;W+9n9HEVx8DpWYjsF&)ae_e&D^B7on6D~Z!U{V%x~Ae_Acq{NdO*&mz zdezE_Vpdlz$M?WMvWh^f%Id*L(PO{y#>O^}b=lqaw$d8Uzm{)U*zu?)8fK3;GerAr z8BVG$>n3aBQcQq^D%u}lvFX3r?$^9fDvO~Q#NMv$j z%pS3kZ#z0N@CN|-FXQsh%Kvq1+Fjn!M(H8qm<0sf{+o9hNe2C|(pU1`vm0Nc`qdM=3FSUz*%{HH$s6vs%CW+x2Q?nWTu>3LYN zjC=Twn^MVV|tJnA><;IEiZ=;~RTEU@FxkS~X?58i3{$>TaYAD}#$?9^+0#eG1)i^O=vz?XZhV20Ji%_UZ+ z2|F`eUJ>B_TV3$m9*Ty}_yDKhTX2F!;k!@~A2H7prRuu~67SdWK^TmkuwHrUgXOtS z0X;J)vQh*n)#pJM&8FFCi zd_%dgmp7N5M<#Xng;G4Xc}cTEg$d^;n9Z8go!C#gU}aS@JIVPnv$i;l9;hfj%e^+4 z{klSDTzIh#O;gc_CLo1FEj>L_xKH4bnZO2nd4%8To2R#qYxNjrUa$U?Pq}~d7&KAH zX_tAWf1<@$$Ix9K6=QyXCQv#ly2t!YH5iA!FkkMPu_M~_VqFP{iD$SsK{FMmJ($g< z5LCPU8s%L_$V4t=KCfGO4@wN*{+i?%YNec(GdJyUknkP*1MoePWl5<>tDmjg6jGtA zkKI9F5d18&OrCEKMwN$YgAP$L^LEt*Etl#~eX4G7p<2|E^&+hN6$2p*deTT$DYlY; zg&21R^#Io^1@+sMiVFj7jHB9&<3U zVd*l{)21qOeOQ~~s=H{AJZi82=_QSLX^2&fq-{EFu88PbS%^M&SWu!3e3E}dcfKoi zkUt3iMr-E}pHi~?6qceDXm&P|U>FS5OQ>kqIkR@xPtnz4>_lmTR^6tQHd*vjWg^)O zA`j0KrV~@qh$MQojK@Cn#qH3>tsE^c(!L?A(v!23*DJ{Mz){RZFgu*fhjX{` zw9DkN${gS6?2W3;dAalN=f6rctvlqGEY)Vml+B@c%P-xVP5l8_&mMTp=s$Sami5tG z*VJVeCEks(@{fW?9WB5yXYh7`7chfOVf1fak}iajX>~gSl<~w`;|G9u$DSbEV(us9 zWMccgbs;&`!zbK#9!WU2Ys4a?txb^K$D1?lO24?03~368TOHnt$&z*JUg}UaNn>bX z{T=0{HEt{43FfX3lLJ=_x~jaTY-&(G@*?JK@S^8~N(?I`$TwN_Tiog>ap_W&A7Dnc z_04s>vKK< zg^GrWc&e6?*}aw1u81(acEBy_b!M{OV$_71Y-WzGB;zp-M=+J(}=G3|Hraux4LP z7L+$jFF8ek(p*C-Q{p8y=vP=S-SdC{iS;5OO)~R$}6R4*Y3>sj#Jf?NuQ{qgr&S5dB5M^y6 zhHwz?7*VusaIp~POO~B4bHrP4XWnQvp|xB&wlen(9b*yRqkDo!8mq2&Hr;T5sabN` z8kwgiv3h}U=1}kGgMPrFUk+bnW97G*JJRi+k1@GxCOgB{FODdfgk?e@7-%XF`J&EL zn{-lTM~^j9Yj5)+R*DSVId{dGm#|^2UJ86SUar^P-OrBT^-sfPaPM25IES$Qo(iuV zNtLY@uoA08+yRwyZFH(GCmbPw$X_d`d4rLgA3^Gy1z@hAv4U&K*Si_wo}zd{Nn|7C z8mk_e!X2gnGw#uxaMDfrRco%OAN?7{?~Jsgs9YH8G$}-L(N-ZK*f$J<*i|MM>HDjv$k3MJln4x$x!PqAk99{b3KsY&2F{n5 z6zB37Vn=vFhwetSQe5rvr=D|Fdo`FPAX6>T-a`vLE4b=yIboSwQQEV?`W3x|6~&c4 z1q&s!o}zQXUI1*b1WPG6ob<1s}fPEn|7_)h-} zJG#3yFP;-(;9n1HtCiN76heq4SCB1ddptHvRw>OY(+`iVw5|+XRwzxQ3>W(<;O5)h z2UECOAdD2*Jd13E=@VBiIwO3+&u#k}0znR*ZsUx--9=&JDH806A*{J@d$`rmy4m2U zv$+THE2*~<2rSoQkk-S1&{dOPJgluS!TuopctNGnZB|$~DaTVZBCt~ehR7#`k%a@B zDw<2?AuWj;nV2!AFfc@g&(O@!SwPjTrxMtcC>NW&Foaz=Cn56~x?RI;1P+VNEPH*o zwPEu@D;I_xyy;ART>U{OE!9#s#lMI(%PEDhKo|QT1(pe=tekjjUX_HvxY6H`<#vC& zDd6Cw@pb3zyIZqW3~ygKx9}l%J*#*rwg&;fyOHu}n+TvVo^+c>jC{?!j+(HF-KV6=+CpX?r4d z`E+P$vh=Vsm30U~L{SW-%(Fr`dSY9=cKW=S-{(2{-hW|7B74FQ*pBv(CtuDi7{y5w z9B4BQK1}4YxP5dn{WduB0*~Mn3M(7uWWj@WKWZ+NNV&)yP24<){{h%Dn3ZN^e+L|d zwx2w5lO}$>L5+Q*6Ebhy?E^O)XubK&p7!EASO5>plxftKzFOEcU->>r)@Q}++BHyoH z)Z6G|?_pKkGM)#3%LMP6c?D*SH~FM@6)g+h-%~Kpl8G6J&2l)WR_&L5ON~PSwm#VD zTNf-RIFy_fS<`M8B@4rWY-KhjdbR!KLVcn}qn}5VcBWo5A{^N6mYlxTBOh&tipJl? zpn}nQ0Zz`cxxJ-%%tn&6yl>Gcw%RuTUDhaOFs$>o65gWIE;8h!UYtebpc{N7PAHc? zYWm_C;q)MWL3HzLQi=_w{e9&;-aHkW?NR$GA1T{SD7}^IHlkD7rx*G16V>!|Ah0315pT=W7Ua7eDBx@A5qs5tcYS!)hm zvp45V*O{nwj>A^biIBf`c*rPE#2cmN^&YwP<5R&!q`zL?Wbln8^#?!|`B3;&AxhGAr`WXg$r0pCBHpIJ;pQ<%*G|j@>g(2 zMUFR-g`5~Q)e_I#=C$(%z{r}4yDc?bwOr)psR*?Y=e>3`)MgK?yxZ#fAAO)d-wEHK zju7mq7vV|V+Hx>ZlMC`jchbNJ9BqlE7_%veRLn21_+Kmiepp9GoU@=kl(QP_5GBz zVG_ff|K5D}=ZOFNhYFkp*0FB_{PQMaKWD|C4NDU(`ZDw8>p6({?T4SO!A9U&$Ai4Q zqzA-GBWe!ftd7vpO<~mWp(!qo&M_?L=ODExDqSzExP1W>$=obocbejl{%w|>B+zji z>eS8_YUA&eGUwG_9)kSr49}mPaq6$OwwYNO&*tC!?z3C*17OL1pDj1ae2?_ypEG3r zATlwxX8CT)>`?BNqG}T}8jjnv&Sw=~HK$LN;0&AD$a?q#@Z`qy+}-@aTg{Yf-eNEX z-YKmcxQJ1c$eX(z*3)McQL36NIqx^@+|6_1F~nR2G{Tl0ERhkAJ+dGYd-N#qrBTz& z_bBce3{@=r*(etu?nS<$Z(AJMkc#Eepn?a_E#$dPATT^N<>Dfc8~}~%I3Brh9BM)_D?Ja?fX)6 zm6lwK1Ik3BR|>8@Bmj|fjhZ`kxp+(Q_s{p@lE9YFJrNwnQ;2RNSyzc~$d=D~+bf~q zVcH*Mn&0_9b^d$xjG1Mg6ay?eIg3puRab1i;OI%P(zTgf5^zx%na8bjQeC z1=e3CI2u!Q&9moGEj70~>s+s&K@6+&`_Je)*&k;K(+Vy(yvu$CJ!7Any?sgIA6p(? z{->kJ^fzWf()Ys)rjm}nqXoUDFsU%acE59@jdkW|-`trGH#ZIAV-8{X-ju^hW=Ym5ziut!=f4=U$vxe$`QvsdI3C&ihJS{hq!B4lZC}AtY)K6pp5M`sA5!W)EtY^wqsEE-^D>?V=Ja z5)ki|L`3-cQ)Ke4-dosKHZg=D60`)0TPFuMM#ouxm#%Z54*S+#$9R~f6+M12C>|N5 z0ORnK)Kq4^h|-F&&TMwjD-2v~%b#a+5&ZGjGV_npsY8Igx0l_5Z`TKZ{;+nz0FX`7 zJwKuA>$P(x?{jGOenboM5n#{r%741-zgPW#!72aG7K;Fsfr7u4Upe$@HTE6+u4=P? zKLbK~7T%u;f}V!+u-TSg0z4n>7&}+L$E7@r5W=zDw&+fz(U76z)lI;-M3^Mx#k0pU zWZ+||1<5@C*CW8uKLEen9@18kS{9GIR5Y&HT>C6ha;RnkUwdEwGnVEMC}mE=2YZdn zd~AHos_7Z(OoJYfhppaa|N4g_no>?1kZKf`(_6YoqeBy-ZI)WDPqmBFTCb_M^-OpqiC%;*qh-rjq+>p z3MTqbWZYL#zD$bIv|M3GpyBrGKV`)~IpLa$O$vr2Gwf(*DsoftajA;rL8rO|Sj;a% zUEbldVs$123})Uei}Vg@-9yOo!Fve@ea}hN3fA&5Qwq+%D>=;Dg$Z4{?RD*08W_f5;(qjjp5hnt<9(N}AM~%-i3JX$a+n{H)^w=3tit@gej{e4tWvGa z$Vj&N@4Ts8HH7zxlPzA&x5McyzQ$Lev1^J?0Ggv-K>&dAU$f#Lr6YhV@?R}j5@)<5 zv^4f(;aB9APsVB_WQu$@l;4&3nbWaqbrzsI`s_bl_us1mDUD#8lc|)(1Z`v##;cR~ z?i0pqx=-Nj;k$oRw=+z=E!J#ZcG4t1p1nat0uH~B*-_taQ0cSs>XzYT^W^@A9u9kj z0M^2`U-R{;W_L^fiym%4WJ|dJ)$z6O*TmC)4r_%B4A(18-svl`qkRoZI74a6XuIo# zS=lU_ml{YXBzO3*-N%Y)>-_d-vwAr~wWhh+t!EG%wQNERG^|o)Fk8sr5484~l!sia zW6t}DU(2FnM|xhHBP2q0j{P?O1qQoQP-e1JldR58iB}Ue-4e=L$$>hLuN7y!6@cA2 zTbjqAc0Ahopj?!V#e{Srq*-U?YTOk?C6r0zmuNzrMPOlD5aY>B-U9J*xpO&Svq(2)q-SU zB5oiLn)Ytf7~A;kk(uP7HK^&?)u)PY&|XT7@?IvuH@uivMTSww5hZ!pEsi<7f78pw zrx~D|^y=cstpgX`at~Jbb8K^xRFA)cr$|rvEUi*fL3>s|%P$Vq_i*S=e1dO(u~#~O zP%}pYP^*V$28fYb`u*?kPwpER>6Pf4);U!HTj8mEC7LGCRKG8hX%2TTxU&2%C_wZRY2MOF znHJm4hU#XNaZQtWb@Bo|L(YG2&EWU^22_^yJ|7~kinG9!rM?^0vhuulN_pYKlR=El zNF(r84~&lq;{Qf|Sv%05A|9V|d<+X-MUuWbx$PMIT^^Naw@QFsI$J5G#p!bCEX2^E zTuUM-Hx=_-H7`57gTd@6HI(6!{+g*{@Pd7cK>PZrz29Yl{E@&j0hx}1v~-HJDw_~D zb?*8yaPaD5iR`wtNtWS~H_H2crZ_tg(>m!onxbm-96_ppM5JS%p3Q_=D8SaJpvxIg ztZ4=JC^Ktm8?u=A-rUl3;0RrCVpiP%2QKlOLP@qcHZ{=ePiW6vddg06%4FiXR7BNh`t0k5wwbHwma>W zN>Zf})}iWDS+tsKwX8aM2*}RRGV-CacXD;_4+%v88a4WtF$|TXX?WYHZ>p)Z7I3e6DM$IO6$>hGIU*9>xlh&5;^!Acbok4>SWp z=Hh~)z^f)P#f7m(@~|Q>&`^;c4SU(4+I0Tcc-8GqvRSN-F}P zrrT{GUW!wEK+`gc<;I*!i6?Jv=ibSht|+S9G^tj?ke*7vrNbpzL5O!4=%sS=2unPD z!9uR^2cU9D#s5o$QM%wDXLDVq9qnDBou}w&`nz*E)3){0BV=bbSb8Q@snUx%BeJG5 zZG)xT<-+sc-nLLoq`+{SycswQJI&WN#V(Ewq;Dm)lsFlb!HKQBK?%^AdAYti7R|;v zC0%;Vdh;}(RPGZyZBVr2gY$Kc&?Kw9#Csw8CxgU&lgq|pBEEcl(B7aXAZ_H2T;LB< zj2i5Gz&9**BCz!Xv8VkRVb;!yY-{uErNJ!xHzk7AUd%s|x583DHZs-NHXh5WvN|We z-f`Al->pG6dLVFLA~DH5h^+e&h-6HcQ})ty6=;LDRU9zvIxzu#u z?GxV4cVD+hE`CsMtIwusax#NRAHVdG`;b&=M^`~W=v48$EZf=m|_#rJ43{($(V#-VmP?cvKTFc#1{iEUW*$pzpFki+SlP;@#uSCqOJ%(klgjS zBC_mKl^)pJw_8y!Ga<6V#nyHs1fGOMJ?EHoxoHA`c1~=pIwb zjt1^Z!!;A7a5S!s|8VYOJI*3PO< z$1rp@l9A}%DXDWW!-~b^O}vS#{&HF9%g>EYj`SpsEqV=jgeK|)+4?ugrdp(%RDFKw zqGn58nlXIDFqc+&FHI*E0BgD%Bctc9{F|3NBI%596C@+{!kW^4<99hUdH`j;knpuQLAWTjB_1@p8GVN2p+{khQ)Q(n~j zI`rU_X&gv{Be&P2Oe~jsxKPRr%P4n#^ncW3qiMDN>e2MHWdmUYOKZS%L0YqDW^OXU+8zxg+>C z?t@EfvOC5_O;7v=eeGcdeHd+^s?l`>fOo~@HkQp;Yq|qpheHF{LAk|=sp4Y1(vBmv#P+QS!w>fMn`5IYT|PBR_XF6qn4_*crolSvEMkeho(NFMEM#79eo z;ij|tE?VZL2|Pzo@uJStOM_F)gyl113`@J$YrX8-hOAT{$n-6UhxRX(zDYq%;9WO4 zU+`5kKwd1h#1A4~^w`jxbDh9RtPM8Rx5$BsuA!jShpJcjTi$#BFgipn1Bc$cnogHgk2tIP)@o_VHm zK0*}rC>8%AJ$#B~rcCliu?274E*|_vgg#VkDcM9Gqe08Z*s89FVHTtG9G{R%6QU$* z>H@WV!P9sa^GaypseuJL#65Dl6JclZ$NaU}nSOSbgAC;I&;ooeBD#xkGp0L`p1!~M zOZK_)Qt`Ro-Bhc5Rz<;eE75!d!?BKU{Hq|^7e`(gG>tYVvUhO1YS_OP44WP(B<+3*R2We5V%THX0SrvSxvV*@K# zo_9ehaKe)RwiR-aFFbY@aSNSZU%3%UM4n>Ss6?+?VUKm)RbuCUt8+J*@eo z=Av97(+b?sVE*xrYA82|19!y51!{*N3a*dk)C-HqQ-Ii(&-1k(8J78(MHw1u%L24v z+BB0k%tk3nd?T)V(+>jxT>KZ|@=V#v3=idg@u8=!qp*o$+zbEox8# znovya^&FRqZ<*uyvzJz+PnAJu-uiCVZ3L2@SccI=_@L9UG`(bux!Te7qco~hLtx;XrdDJY5-DUEmZg@j zOdRZ7*dUo5^D&|Bj~#ItIBR^{#)`~SAfX}jl(&TbJUR|!-cz4;-&vO00d+R22`Tmy z9$xm3v(T&<&DG(Aad_0xQMdq)!TEjJH=^^cnIj#TKJE`mk@lnF6HV5ZsA zJ^L~<`B?rY(iNRoXQKj9jHLRtg-EH zuX$aY?Rygo8ITE|0|7`e2IE1W2&MNq{ zz$i=*YI;}`KKjka>HeRfLBAURZ3ns^+FKGohYF3kyK(Zv-{L%?tgZmShyR9hS;8Bf z9_*MpS5*Cp_ek--pj=XT$H>7BQFCb)pLm-8Y4S<|OaYSVH1D$f)>Z>eX*|%V=%-JR1B(Pg0y^l_^{`$;gd5 zA4+-wisHnAYiFi@_A*(Rf);KGF7N73RXe*cvBdPSVE2KQv>qL@6~^vvD@HO$g5kKp zI#2dmoXA@gp;v*&cm4sblN;JwPf5%%CQ%9`hhV|UOtC4Phfj)=cCOSjv-uH9k5f`> zsHd9XQ7_s1wBin4dwWf;^G!SyoGj=-Ng=SRK1UNSXJK9Xs(yRz3o+|xU!Iyr@co)M zpN_pg-g`rFH>}i5Nua&HxG!JS$i>56A1T>`Hw&^Vcji>qx!f?r#vwYoc;^+E-^C5l zD-webYk$T%RW0Hgn&**h80UB{*66kMwD$4Q6<{bZ`=KoPI&$~wDE(sH(5Rao8#Dko zgC}ejKzCF!(5ps@KIJQ18z@+Tu!^bFRxN)x-55$em0WU~4H$?~+3gG1+i;2mt z@DvsT7Aq0sXNvDnOzk}vUl2P}v^6og7b(5~zG7Y^Rpf8K8*9*-6zm|6y`iEx$Mf_D z;7#N_{9(X8q9kyzrnT8*YSE6%t^$a2Qn%One=w|E#HM#Bt{Frf}_OICwrVF0!l;zjnT(l1&umTISMZv$+EI z>{ z+(GNMP#d8$)lsXRaHAvS&LP3dVIkG%hy$+crPbH%cX}IuLn4mSN-D;N$%FuUgAubC zw#dZKQx+sY?|&B^j{oLc;dx^`-G@PH1K%as_`M@^MmK4e@;r7Og>nYo#im{8Ed9WP89sMk?vADR-PF2OMolxYoPZW^+fSo_5>XC z?Z=wDdAwBDe30{VwO#nR+LratF}u(Qas~?r ze}Ze}{55ed1sZsMHE8TEfH3TYk!)0(PEnM*pS&(4R2rkBpLzKPMZ&p5;jiCsu|M|H z+c?}q!LtuuQhp1o`zrTYaGs7yDpCe-3YTDZAC_`vFo#q6A8dVJ6`bTz;%WoyYs}95dB z%xc(IfP1aQKfw(#3|(ZU+EZmwvtp5}8w++D6xRkA%!EUaSig5nz4X!*ij}Aa7UPRa ztHN7HX980kGr|Yajy)*kq`g)ob112U=gXPWeM<#x4O&gL>IlWfbg%V(8%{AeN+bl6MQ zI1Cx5Pwz9QLZ=w9g^}I9q213b_AYcOHcUJMFrNQ?M*X|8IQ&AVn4JUn`=A_7Q@2j% z*2-E*qSj-*WGH+R3|(Pny?JXfD7l038^StK>lBD#KKY26&lDxj7;uvnRirO=;N9lj zOYQ2mFOhQ>uazn9+i-p6y+geLOMSc&#Q_q5Ja7oIgW-dsV4b0rC)^!ZU1|etD5kG@ z%&wR`kirg9Tg1s^2ApT536F0Z*=s)QY7v@SD3C^_96I?L!atrgEZP96NjVS2(OzQH z{7BWSJgLtny6O~YL6t2^W@QF<^v@_l2|L4Ls`Y(MpZo1cO9&|^0_7g2+%r|$ZxGE? z$J`xf0-BwbUj_9(?#_zsf6gj^tIztqW21uc8zLUo8Y)NoEsrmHG0OIySD|OVQWh3? zw)7SdN}W2&0*(%95x2XZP35U~5-KHe^z20u$1hK9uJ8Gb4wp|<>uCJ|)W%s_3{A`m zCQPzI)WtzQRrb9P@P6V$vVIundjG(OkJfk7ann_5ZL{TC0#>s6#l1C#A-0&)uM>hU zTYrhWzjFIQ&G1^haZkTvBI}z}3Nt{&ia6cQE~iU}oObY+skm>(X?yjZo?b z;V)xNY^b0|;E^`dVs>gvkKPu}SQ6ZQ)rU|g{R(ZFgmCr*8(gh1=fikRm*DAHj28o$ zas}42_<;L`^mo}w=hCnnWkw|fQq9j}ii#D!KMQXf33;9-7~w=?MQ*$#1{CY&Nd_A= zNneB^2`C6y#7t`kIlp^qF`R`AUd`Ys#Fq%-8jt+|ymTgvzK@yOtezh}=nk>CmSsEX zX%)L~06kvZO11m_o>77+k)yCHzwJ0baf z*aBk3kq%{vq}l0Y3AAKMDMR%17dJ0%6uz`b0@gIQGELle^=LJVXrLB$*%yPjNB@r7 z6b|(lu=FVUwaqeo-24fsmiIPZP&l$^XZLeu1G*S}FF?MZ)bnK3`@_*8y~s-T8p17c%T zpov*uB)O=<>B0%72^Nnccm%b4)roZlT%aWgOa=Y}5CC-yUT^I&?qj1mp8Y8R{vR=W ziwk`$54rZ${6$}zxkdZktDV2O&e}2!rD%&Q)I3O%qZT7eCM5;byE4!PWC+gw(HyO& zWS}IWi#`7#?%K01s$hp*9Q3k415D5AkFYZEno#WM-7*Q$UeDosATHsJWuENKh%&8F zGfJDaF&0RH!9PaU=RH>Qst_!i!c;w3DAbG!_!=yb=HD4|v@=l>B$MZjBoz*30*8MO ze4u8R&{6-*m6C#w@wRi-a#SWI$0N?i``Sf^je?|`B}LL^H9N8&`XlVw&?=L1_Y9qk;fKS}0l~((D3rzc~wWiID2CDoN%~m>C$y>=Hj7QXz^zEp|i&XaMg@Je{Vw z=vl*xquSAC*``yIfS!~|Mgl1A%c(wx6w#odyA4vwKI1NmRX6qhgw;K3k_Vq^RCXeX z=VYii;HTlg?Zz#u$9WCKlj^*lQp$3b#Wd7$9}sk6jy z4g~9+KY=FN1I=i;^x|hgMqKNZ(H%Sft_021v=6wav$B=qgniB$6Mw63(edN&1+iTU zabJ_?$Jz1g62-)mw{-qdl>1o(UqMGG=5)QV^o)+f;T9K@fNToX3M{gJ6zZ4>qvsEz z3_KVVC?iw%+>P$~(#{ZA3b$ealcY6^$Rs1&Dx|BwYj%9Wwc-hEL=`cKm!{q^t9}Vu zmJhRT`OJQ^ez|4zKMkY(|6v%N|Nk(I9?mlaUs{J-IB(s8Olw?BFBc5LuldPTp&=jU zPi|?};nK`BRiq{5XMe|nQ!ENJcuh{tFXGyJTC*kN(#8g1*8hXJ_l{~R>-YcB8681E zK|le)p#(^1(jl~wo&*Af5F|8}nm|ChfWTPjO;SL*Kmvpi5C|P~q!&SjfYMaDgrXoQ zpfJDaJokBK-RIuBe!uTp-{0kraB{NFIs2Tm_dff4_UHY2Ti2@U0wHhn_=qM=&u-~o zDAn9boj`cE`-RgYEL2O>re&?n2?FCxOhCW_FpF&=5{ajCA&}l%?tZ0#@!ZL^uS zM%Cla%-vtTXC-b0fVx40+G;09s@D~s$iD7dIDCcQ4ihb-8He8Q3>XD2DAyS#LN3?B zCaBsb{PnI6ts!X(xL+ z83MymYE{|B0m+C|vxDVv{cI)RX+Y0`-1bk;$_6eI_srobkK-R2Xe$Aa!v-#o!auw? zJxty+SC?Ubv2We}=@V5S!428EA3XX$eUVngl1#H48kwUt!X^F008ijJl0tz(Q`_Wh z_#jY-Ot{#Nlr2^X$Q|NGI@$`!u&k&>{Mx6WsDV{m{ssT$ipm?~aPh}FqhZ$_oCa=( zzCG(Qsh^`C@N>>QeMWNBh2;Og(g?}EnOLBPVnUuETLn-lem#7Er^OE=d~*kIjEI8 z-V}D+geIoE{C=j;(4%kFQ>V|CZ#W{@;%2?x9R=9@{4^fISBr;WBzk67+w#I@)g3~k zLiL7xM&*=GHP~K(wLlzRROc0bwqsY#BRb~I4-tMoPZMoe8wz&PV-FbFfwqS-=i5AU z5HK3eV82^kIQ3`>wSWgkCpMoXvh2ls`TW>2N;014o|m0Ht0f-qRd}HH7wr<+S`%~Qm11|J0Ox~fZmAw0thu3B zfR>C!szBlK z7>~z}lqi^Wu~YL_g;qYyJlWxcDZ_qyhaLJZk>AdR?JIlVr*Z8Vi&haZO{!=Rz}w zz{ZQ$WU7VFtDtYWiWq!S5tNW4EuEDf46iNQy?oFL!W4Kf++o6{o-v64sMHF;eRHgp zVY+*;c@}m1a`_`0&aj`5<8v)>LVj;6@cm!7LAJwMjx%%cVA{cKO&RK9vVE>~beX;XU{Sr)yD0<{W}q0F<~Q@{R^Al>P*kXZw18p;M|0OX(aIbV<9lXaJU&L;vNBT<^Z#V^#5i-SUEToFPc9D6AT=>bz9@FQu+&ZR>A@82lMuezue;^LJ zI93R}G^HT26Q<6cOf;nk6a1b-JfP}gM1l^1FkR5`$Mcmj$(U^&!q`Ckql;DW^AQRp zsHc-hcep~f2o#EUN2fzp^xpSh-M%%wvc`XCW3cwgL!AT*-XNrJ!qUHQC0y!LBX_IB zW-nJ=`ZKb5vUw3~Y_a&dKyi$7Z0xmC7u|7D`0i5kpB%}j!Vl~>QIEE|p7_{to$@{_ z-Y#@X(a}OTey(ZGBC{6G9!SO^ObP%1lRU1MLQy19+xGz#HJ(VRXN0;`ZfXUlJ}3GN zbKY~#dd`;IC`*jGBJOE4>s6J9(p45*T)p_2J^N$y;^U3{kRdA>tbb-d#5W@^>nR<| znp@jMD(D#JRm=!E6ptQ5%^-t)vtzJWPdtJrM_S4bD5a{nz8Vfjo(6A#;Eo(;WUQWX$-%*&97f;DE*7lt z!!%YHvYQp7FQu~qE5P72R#IZO0?)6>R-T;8I##-RSM-pdamr+55%VgOd_jwDAi7kc z)>~p8{t9KKwc+%#Y3%Owo5J%?#^OzA7SZWGM3DSz0U0cu9>@!e;!4Bd=5XCNZpe6- z9~$ZzOz0VKGBn?ok4;xi5wHST$UwoDhK?EefErO9(Hb`{wj*ItR}O<$t7IBbH>VdS z6b3GQ;r`RsoesV$y-Wkcw*P33|4UMp^K7pyA$fI>PGujC=h2+yNu$I8Bw-bjv2*|H z5st*R_wXvCvGY^*c?6031KCENblK~nFJUtilrgV9NMAj~PyBsoLc<0&o~a!s^H!m) z;!lnl*Fo8kv#blPgg-el-`K@$R4+1h0wUS`^NXK^_Cxsi*ttHXE{J!dB)DHb$Nc)p zS07C$01J@{0$kIQkdRO-bP1G8u&`SRK3`rC~ zgs>RYiM#PCgbEs44lp6161kC`5hp)gnA8!CKz5!|S1fql>IF=e;Z zRwf&=)b>;yc&*n4q3=B1YZDa~+SLzg^YbO8S^N#oN~@Xxv|0`<76J{t0u2bB;B?r8+OjT* z>CU8`bF8;7FtJ{EH1|+X9E#Mi7o{|$7Tib|GWLWhKmp;um?+N7Te9PsCRjxY^K1!r zJTp#mg;~FXcpi}olm~F3KCKCZJ-&6rA5NPyl8VQwJ)}P4=0H32+|M!7Jq=I)hrq7w(iLrS3peoO1FL;^b}ef z%4;cuunBYx*-zJnSKoe&Z4G2BPljFJ5DF9mE5MJam{9}qZ}Lr2N`UA`^aE4r$uVfn-*lNFC^f?-1(B0bH$iQjj&Z9)J3;T0s{s^r0;BK)W|bx2 zeC7OBag8#;(~(<$ASGoggl#CDvCw#N-1zz+ttEe&dkX6Q8X1Q9GBf!KT&`^qAorlX z1TN$2Rhob*2*T>4aXM9U*0^kykmA_@S_GD;s#a_vGeb|j{4h2t_XB6IFgVK_&6=*`BH&RU>OZX=AgJuz=wkGq?rL|V) z2B}9gjV4BX!GxjGlg3%WyDiC9g8DTCt47)232L@giS6}4m~n@zr<}KghGU{|LS5O< zj*pA73(mfq`FaDL=b()76LKOg&HO%tHf;nwXJrkQt~ugv-5f0ocrQg;74gC2EA0H5 z;g+FG9-xmg8iAG$W4`ylF>2>ig`GALqY?P;Zn;<5IwwQyTOS9`E$vi{H7{KCTOfyIg++_!Hlqq zC-bdGad_9I_8MwEJH0`>vwOTy`f&awOS$3*dx|+HW;gqjdkouXWN3q(2IhW?;PZm- z*^;d>g`i5Ra`WJBR}sitWD8@%RrTg}X6fED=C4D?RBF6OJ=+!MLtZ)R6~Cz(KoE;n zAs>tqAs-Zah?%p$p-dzX)PqI|?T?Dm*h0gGF3oBzpS z<-EP{!55?=bb6}yJ&PKBcf?@yRg|{Q)Gz4hM4(;8`vl3UTcOQhpYWNYAXU&c)XsYR`= zp%AXLvDdOeLg+KgPi04nb#rXzK64LUCy8-G=aAskA?3`K7Ykh&fuy_rI6wNf@T1Wj zX5n4K^yjt^hkwTBBnYh>!x!D*BH;aeWl7173~ z<8xU~DMz_8=J){D>rf`+pr^sO>}nk>Xdswv}90GVS4iu2zuW{(mOgKx!>sTSFfyA0Nd^*m_k2$nNID*WA(%e51~$M>!LMSFc}2l>0$j{X(SaHpmd& zmbQD;d*Y4b7%L&E9Uxh7`*XqZuH1?j?)+RKqt?+sJ(ASlLBJLPr+}UqZO%!)F^Z$g z>{t<)Sw)|><12Fr%n-~KenS=oyT@uU^-~#{P60r~7G!zy)W;F_FmZo0Ct+))RNt0=ZTTfu)-$R?5891^G0Y87YN@2k&5qLQgl`6_-U^Sv)qY7UJW(Tnp8|gSH5p6S zcKIL@%1)`X?%PVmwKOT({HkM)X}}C$ikEDdid3W2%K$r~{pMLB;x0P>p)&cq^Q>{b z<|1_Vle*^Sa?<@H%KZlY9=S{2F~8r2OKZ#Q$=BT)I{opCJhX!2i1pvHaE@Ii{K!An zvt#EU1Frl%3#Z#W^Iw!qnSqMm{&Q#ZOZ>PI{>2h#dhsq1QV$KeTEx^99db>F5&(^% z0nf5x)h3ez$`e8!3HRz}d%Y(8D{84$ADMX!yi}t@q`51zZ=W23gx1`So$qv*dbuh^Wmp(jqwRQp$?Lb32=rg?4I4O zP3H5JSwJfO(x0dZ)f3EH8pj5}9223R9bj0*7xIoDH0*O)pGWJ>t5&@$)P7=4n!Q=G zW5cflQtH9uZh$MvTzd7uvNI$Fs2&W>39>)uV%w~*XnG9VU@wA~uI(PW>{MQM6m}LD z9?0KN>j}GD-$4o}Z%TD#?L}U+IsVh;tGiVn{QP0X^^UnxD+CrV6-p9xdN7JP-5b&? zB;7B3AvmKW^7sxfz}eZO+z!2s3BF6c&|e8%4kQ6|WCwgqt2zh9Xyt8pZ=HW*tV*q2 z_Q!5>9CQEAmFfT5_n$b9EU8@K{Z`&>F=fN%uzz-pS{kWWw#?AJ0$J^eJC#{@u7{n% z?k;ck;Pe(OpfybdLALQ=UekIy_8?IRI6`2s;C;}~WY)A1OHz#vRXX2q_Jn~zR6LTH zsiWcBROyL*>r2{qXiX2VI33%x2Q|wGz@S6W6h25FkF&9feD2CNj10Pe_ z0Xu=FsPBZKACbi9ACbiAqmKILq1*pQv6dSCCYL#dcvX9+HlxObLIhVT z%GRbvyzMSgL?(LL9W7@ffAWKBdF)p!&Z;#jH@ ziNB*Rw2bnDnn-f^|dEPlo%8Z9Mab zt7JK2bB(X7BTA=}+_T7pGEXEii=Ux&M?vp_jQ!M;c-k*HT$Yci_lx=)umlP7v_#&w zq1DiEP?VK|V$;%4B!GAIjj5B)vzpd0)6)mnDjg4|AE==Nf&AWTOGrv1?>#fatZ|GX z1W>pkv~Ywe$-%+(qXqo$%lCP_T(76JZu)B*QNb3SF&%uulr{zo%3!ylg6an|?#aMHBC zC%D}bn;}f1*{tqOtSNK`=5z}e99(Z2Yw~5H%O$ckjC^aevS=O@tb-iLOeCu1NnMlE z=L4fg8HL&*tm`gB?01e&vj5+^mLvZz#rS`>lQSF~*8i{{{r>+}VMx=nrcWE<4Y?31 z%;6p0xztmith@xCSI!S;aJoOohlN?@Kwt(l@Di!zbrt?=ny%zlsGVgCQQg*d9x5|h ztFXISmsYdsw^GzpU(~`lMpbT}OH|>z=~az+HTNfnPr0SFW95iKQpR8z^PHkZSw4Iy zfD3`ByyjO>>pkwcUyDX$RQgR;n>KoX8_JxlXzFC_m6D1;m@E`lhLk3tm41GELtWvf z&`em~&2O(DWy7g93DZqV^%AO7<`i8vlXQ;ht`euGFL_B^nNQAr>Xb%i?&S~wP@ebH zZ72Q9!+WSk%sBzni)6bbgbVmi|A~RR+Shd0w5ukSdS8a8>K*$A7JG9>E~-!r~8xaN|6IN!S@tf%quPo%kzd83hUxvoTjCm<#^80$t_oxMAZD?{E_JkX z{`3=|>$&UUON7090Ro7BtMfHZv#TOFX>CZNrLO)c-^ctUTmvhA}Jb98Ga=5I?6|dq;KlDgKN9>|<}DB{@$8@yOWIHF$jwQ$!O7Aqg z3v8jo91)(3$Bb5ZYfk@3(X2PCks}s|MTv+- z!`?E(K-*V#qCHa*18##x!x#6qot{NPeDDN$M0&T^) zW$_@Sikj6;r;K7L=4v^~()ojW`&Qv0oJp20xnfn*y-Fe=l{`{oRNsy}HBwyx>nM{4 zV1BqP#e|HK%I`HTHaba*>Qu3x(P<0)yuzWd=a1kyc%~T&IspXUz`N(kk5DMmkl}B8 zrzGDXF(-e|T+lgS9}bEPu@1rPcT6K~Cs!=lr$+8pV&#ic#ar9)bBJ`VbeSj4ELD_I`g}Fpr z87Z*=LLp*0+?82nzt}V>YN?&OCh^dgzu5;NWN|a?u@AzweDn{(TXG6J3Do|6Z;$8{ zBws&QP-LUe&g3pZsONQnC7rQT(1wAlI7sS#Py+IVp%*nKo3LtL^uas7*Ofw?$_REj z3rA66VQXvsp*j*4m+m5ymWaBIfN9C_ND=iOKBu7wx*_K$7K7^N`A-o)DQ!wSN7<%K2!eW4A0We$p`Dc zj;p(Fqb)xP&H2jBAA(AU%>N-uL7qZO5! z*>1tdtG!W+Ba6N1QPbSuRTz#(zUnVX!hWAa%9{p-CkZ@m{q;xd(76x(19;}PE`OjGs{j$mEEP)Xt=3Ime4u=r4z7z z-~A88fK9$ty=}S~pd4NQWRlKn66GWU7zI=xPw4Wf3m|4=q!X(YTC5W5?4M>H(lwlg zXkl}+Y;nYzdH|u@vV!AFl;M^2oCbYer|*up_rgGe^bpjxy6IzDpZ&dA4flq5nf?9~ z-s$gha84k!UAw81o-?^u$d4}S{d0}u4^>F?+%K)CBa~4e+PlA8(qqE2KUdtIJ^#I| z>~mCVVxObRw|bvp`^ql%Ua2zJxXDypuL9VuWdr6pa$*;axKWF^x!=k&pVElR4f%ub zfL%tmY=d1!(SI&Um%V0g(Q(#`4qw#amSTD9mi({AvtcQ*U?>bULcckNf9kfzkIY5A zB@bFuSn_0XL8M0O(|H@l(xu7w^IGMxL)b~Gtz-MDX|shwp80jLA$0O_lJ_;xNR$&u zoM2M7YK^gxXpfraX&HpzVA9vJW&2uoUn8EpL8PyqD-reg84IC2;*3ri`|DnY^89m2 zi22pT^y3@AzAF0?bh0nOYw$mpoULkX+B6gYtIfFo$Dgc^x|V!bf_%R#cmK6yyN2}V zp8G%e=||mp{N?oYZ(pvm@611zRtm2_{JGH-+vWOKZR}j>|JGcm(5*;O?#H7G!NA9J z*0FR2SP0quKCujJT|mB{!+cHoG4A|3#piF)A^mev@V2BGa5_#ghuLpk3Y&b6^YNF@ z1wyrurVh3%s;Gm0)|;b${0$3cD+7k1RHtsM{wtDn-OieW>-WC}jO2bUlzw}zG@M1> zyLTJZ6MWJo{b)0&hEHsm?PYATj>623R*u|75px(aHsoX!e%SQ%zs47T=ZYn6Rs826 z_eD;GP|Ad&Q90%~Lj#ItWKv}D#1HH0LcCF)`dwG`^h++Z{IQ2ybUb7oIvbT2+NAxE ze)+SdU#?p$(VOkfG3k4W+bjw6#%{Mq;h|mFo{%9q$i=#1N7%y;;fCbS96l@OJB_QC zmP^LRAz6WiB1TD@DSdEYTdROc|MTt%{ZQ(k9J;&Z7b2z~W96TK6M@|3n53*r9|`^q ziN7>PjpqirTfRs1o3jVvk-xOXO=UE{;znIa+?fb5bI_QCnJ70v6tl|^`8Z2}uFm#~ zZsBP!>$fu8_(|NzM@en>yTUPmFtq2TseWv>v>_*EIP1&^G4|XzR6@D2W&M4lyzC3s zc_-6_qA%ysA&tKh3hxFOXzP4R2g+2Jo4JM(xd4UH%#}oG5t6@wsLlO6aUBik5sz;I zWuo`+5;ILVGS{6YbQF5irsOr^vT;)P#5p?#((Ri|GO0yfd#I+ zS}nS-WIiH+wsU8)7mc4atF~I|c|fvuK^O6hf_)OZ^SFJRbf)5C`zS_!=)%L7%}%s> zM3paDkEc-d0XC;TODp6Rf=o#@H7I~+ffm?iciY8_oi_?!9Qz!#k;7jI%v$*|B5G4kL82r z)I+Xb>#LZ#FSj;Hz28M8oG3^|1xoWJtc=xbo*`ju6IC#PRG@0Ou1-osgr@EnH^0oE za-9f14v&Qxt;_v)NXA6Bb*qK1CFWPemwmqml1BN2jbyUxzKz510e zvi{U^XTYb(?#b<+MSVy#LHr<3Yv8EVx(f__4PqQCW3xLTCA0zweK5fm=C|GQ`ytXl z|9;TX4rL_a_&MI=%U>`61Mg7RNZbdA>i)fzV)E~>ELjw`QF`s6?6+8i*Uo7kHUd8K zxzY1Hp#wvQYB|7Tf#XqER>dAH5L+8&ug_qS{WhY}c3f(&g-e9!dmt!+K|3j7aL+ap z4>@esx7-WA^yeMtpl<-Fjl7P-^-H>tQM|$^E^8#ztZ@olM1{r;$ zljSjz*6yv8mnYX43t_+ZTGs&`29xDI#~yOX{WpRiKsa=_{q$eh!o1BWqk?`iywxX+ z-@*PETnZEdS2jx(XqrTnPNV|31||_H{bSh8n%47wWMMxxuiPqTt}~F(N@jRQ&NY?U z3^2hvW=H!8ICJ)>Mbk=P>^s|c$|ngSu1QyKWeRY$hC#?^Z9Wf&zYTy{^f zuI+oA9%RPXQaaYGl8YSyhMg+&-Y^a)SnQr4+Du)|krGC9I0jsSrfVY_{S9Or(;b>E z=;3^?%NRMgi>NmcBp?%LNyP>z`ixS*x12#UpW>a^L+@u_Cdo867TTXERQNSGSPvafxw4qlXaU!eoGcweQP z=-ch6q~LR1nJ>=?ib8I8n!P(?lw z4r1sEgKH5pJ88DwtNkB$b`m$(Q~vbfl+iDz z5^BY3jvz|gYy?CtrE(4NOZ7@dIjK+x1*jnNwcRLabehui_V`Q_bc?VVAsw^+U2NP* za3pR_+2xcZC-~=nP-987z{TreNl@GJ^cWt(bHAWTwGp7I-{efMpz~8?B3Hg`ip{)< zp9YcI;07_QZ6KDYgrM7e{dz8GKhv3r{>A7I9*OnY;Fta_smEII*r7Uw%#u=fiOF_q z6AQt;)PQR|z_OElqW!euArvOd-+4z%{by-4H5sJfPyz6SglS_a8!`R5u%%aT0hPzRt~;3$=7n|rxOSPSH)i9@d3{_moQhoVfRV!ySBz*QpLig zA<4X8T?$>tw>q*MZabF&ys{=L>!Yjq>vzV{(I3QaS+t^qHl-&Lw?HkqTnIaP7p8kM4uxoL8?P{>Y}HQh1`q9Wf{wfvl&6=5a6C{3JD zl3koGyviPt*&nVRIvdg+GSVqd`j4J}?)U|tBZqv9ZnnTBhWuh9dWjED0Qh4k)qLg< zDa;bM8krd`m3@DE)2B>n^G^=to^LwJ+!lkO$tpp0l$R^dp9Pd$3%rmL+f@4Ok+(YA z#vtu!!;udES(_K(dPT-nPY_Gb+9n^!KI;gS6gffP6wFM>1;~K23KSL03Z5Yl)EmGv z89W3oweyLpYBfSc#vRqwS@>+u(M8f@OJxwD#1=SGHhg0;QGn9+>4EBtdznc3TN@s? z0q$4edc(?>7&Qzm(fZD|AwlApN&UlV97J`3sLnfY|G|Ghc4o&a168}qd=CK(W*zw~ z1fdCMmNFsopZ%4eVZT*5F)*NH`??itHcPe6)8siXkK2Lm8$JEPlzcf(G13 zOX>h;lV{G3qMaTbJS8s@AWc8%nDl~3_3OdO4iJf%Rw7@2VQXYtpG~Fvjf>@dt*%{= z9=kA;h64f-Ssz;<(pb0vO=NJuP#UljWtHF&jS0%w;coG3bzWM3D~m<1vl{^a1I%glZJ_IADs4vZZm#7wfCVT@ay z97E!Km~myjm?chF0Ht={JP*?|jS!5z`m7cTO%9m9F?ohm(tj6wxy)v@zK@G)9uO(% z@?dFye5K&b1Qn{cDz!U+NUwbM%&GPjrupLws%_nUOP*#+Tix9ikffk@#(UpB%t8)0$rJ%aG-@kW255IqK92YHd za1Dj=Cn|OZDCkdeyO*R;MUtzziy(+}mgG^(8I35<=*!DltTT0f;H`?ZcoHAsiID1Wf&7m9Rm*0dHIhTz!YEHc*fP}p1j|Gl;ywtIKmw@y(1S$uEIWeZVJ}zr((Kf zNev#p_&~Y~aJ_}G9AABN{Ex-sc6$3`;Pzwv1dJlDw)9cHDR=|@f^lp!RXV>oM9_-0 zCE$T&mW;E^^O0%W@h^q??h)`SYB=qAiY1;QhuUC#V;-^sR9za`4WdR&o!#&^Ze%6$ zz^F}w=?gFXupw~1JQcmdl#4Ew2|dToxKYSJxDC!uf$d1wFLv?vUyW+Nva#4~a?3@Aj#B$yFcwjDS03BBUXuTB%kpX) z!*v!2^@k+#un$l-rj{bJW|MrRubCZj9ZokbeKZz*s#mn)a`0Yme@3klA}7Sh<*pup z^2_JXC)KtRJ#vCZRwHSLFTHlSrvo2!*>QZQU;TsNa{7A!cj`v~H;rv2qB0F&7w{hg z;P@xsi!=Tw2OAD^c?7ptgbr|M#3h70SnJC+NgJ?c0MQ7Rh?H!M~L4($rZvdQp>`yh|tK>`-bCM)dR|8&lh$QnI8l zmaoPpEQ(w^n-|Yd64zHcLW9TDr+hE~rk1&SN5x6qZ}zzL>LJGuTf2X+aYtQV_L^5a z#Z1!w`HkjcQhGg4*VKO}UrU@klT$$^D!Ne!6kBsGhr9@K86`>!zwY zx~i>5vz>-uCw_ z0Us;GSxfbi;w4o)B)J zyu!C<;=!zMa!xTgG$MOmU-T9lw)8<^Ub#7>!X$boH>?u?W^%sF3r!Zb=-C1Gm8KeJ z*8lq4@T+p?tJi{VQIE}5iO84xQ5f@T{$fvEjE{#ea3M#`_Qi|4sKMw0JzXcAFDZ6| z3x`>Vz{`qdjAG$wn0H`MrFv1sg^5N2jvag&p#xR?18%&#?zH9lq=FGvxjSrr?UM72 z1*T+wyeI^j;8y}ma^Jy9lTt$czs7{<@GWMDm3Eq$+4^`EGo29^Ahd#h*y`jhp_P~9 zkt<`guadUTTF>6kINOWr*TDj%e!}~ARE&f!ta%Ab2``zUZAnteD1v-hWvginX!CWJ zXI?laz-Fe<3fI*@0hp33+(~z>c*S&cyVl_(r{Wi42`#rwtRECwWp>`+-_BORWOk-Y zy|5Hyl+E%(HyPwwvx%%=XX_2&Knz1`%t8Hl#SQg_MUbPp_e(&$MIJh*L;p0_++L~K zq_T8n(?N<%j8{dXm51M$b=UZr5$oyf_kafIgiIdB{=+RHk@lNX-(K39wtJr~DEqCH z*abq3H4TaCEhQx80m7MgUJwg;td8Y(7%C(N5w8sCyz~5=fXha^x3qKm+4Mm(K4O?y zCOO9ne#wk;+rIu1uah8bc|#5gEAWh#K#d4ju0UhG@-HR*u(7) zilS4i!XHaV6yyR^ZBiXQ%ZHSSirOzdg&%XDfIaAR><1ytpEU-YBYM+MLRo&Pra2FY z<6@~|d7tE=c$OeVUC2_Q(YAJ1a@QmT`?Tyl=cGrC!|`24`A2tk&VEc>r*{EGlgEhd zV-p5M*pYXz0oYk3iR25Qo}Qrq#aI3^=0u2{4TV=hniP}Jy(-D#y}u@hFI1;yI2P+@ zaDy-0R1w9`3QkbKem?&0Hw_8mT^lyE+cK^8Jd@c0^*Fl?b!T2L;|OO%@JRV103?l_ z%Zo~s4NvhX}< zUJ$RM*QKc@k~5MHl33ZWb0%nSxKEPnl$ZJFKhH{iCS!3RGqD380)gEtOYG;5$RBm0 z!{Rz55ENLH2s+6nX_GP#c}jT71Lt831%%`TmF=caPf6F?1oF{RUrc*UypMLX914)i zB=FiKdwRYSPDkfGU6B|eZerC1x0)Ql)t$B?o1%(SRZp9N3dj{~cz~$t1btlaB~6q} z$`I49p|>7hnh*;M+T(Ov_inZK!%t}{-94*b?``-{mr~T_7MPAWOL4Uk)E_P$54>#? z3#U$e0;x)NCUiSs!@tbHa1Cb15imr0fCm&3RjPYX>YPg$cilk5q{ z$gifgI)4SKF6E2{Kr4+a3~aCx`IEK_c@R!VsPBs-LnNLILs1ld&O2)wQST*ng>Srm(f@L_vkKPUqaa~SsE=@d{*_1o zn=kA;i&23{eH^fB8k-loHBD2Yg-q2?6~9O|u0~*0&e{ZYYx24I%i^ucnUw&u*6^5{ z%Y&rOlf+Nwgj#mHwA}v z`eCW2Ww6j>iL*71Wr{%otmB_RX#7;t2uZ3RGTMWITj}dp=RQ^}9LT+&-2||I_jvn6 z;FA()(v+n}(}q^*gw1MXIMv+#9H$%Cw5fimJ}p^7o; zJ`_d%G47zLZuq_mHDiJ7DKfUTG*K^-UW-*A>oJ&Fr=h`G1!t{>tpw>1%ZJPTtJ*g= zsxp06^hVH)L90)qPQLkxT<^F1DtiB18`p)?$~!4BO@X412?u{W4(cDr*?VgzOp+#c zv3zRK*Rm~$W9A-kOd5p`Rog*G)gCJpKTilEHUjO0_mCx3x6B9be^ZH@@~xcjo!(EG z2~O+=xX;~4-StOlCB*ycS!o2_T+xY=|9%=FVILlT{X<}oeL_E$3JM2&uc#*t>9M#y z;D}7(cj!T<^ZyOrlo?g zbBBHT^B($Z;+Ijvs_QOx0+c&Ccw)sc)omjr*bhWKqqAv|` z!S)_O64#yO2wgqjP(LKLi0q6PgjtxpF7umh@D5?8Al=9Z83-uKXm5Q^HEIO#+#b+# zr;#c=)MhA8Cy4#Hx@w-mVRa!d;pDG<{-gV87R_K4`5Yvw3hW{5WWIAQ9}}2oWLfzj z07rqLi1=~*NGfy|ULs#;J)Pzl?y?Qep?+LxG`YWMkgu}cJxFgLVQ@?(PMlOko6DF? zw2lfW#(UiC7VZgDc|ZPT5HilVab2+QLu%uSslk=#m-21Aq#1vqC_8B@HgZG#$#eX6{|#jq~kDYSR?GoETeVTd0DtXz3gL2|cdY zeUsx9dmR10q#64@k~$i_^iaC=&4>!xxE^w6K22#^Qw-`dy8B?CDSPr~S8LuQx4olG ze`vy{X)!Y~KO|wwgUtqeem`D#9gM2aHU4;gRq8BH3sN+;-?NDjh0_tKK-~%CdtcqT zGh3W;h^@(+$b6Ho64nTwnfKv+k6Jw|_XVioo9F#li4ygIY4s2aKxjFzu-X=K_(|xg zQ$w9=v8G9TZp5mSS26O9tZ7m$zH~-wJtu-hg~0B8c=`dpC`eHGV{NnES7f{$JK})K z^V$vNwxiibR6|2yD~5uJwe!4^G#J7OBlCIXve1EB$ZMgQ&*q#ic89R)i%PdkqmTAX zwwq!bg?0EmkdlniR@)`SbV`{PG9TpV2_5aG{apNpn2YD#7S+}Hx`au;g~v!cv8D(oyZc&1`$ki5SJRBzycv|nRO2REIDSBq(QWybjUgEQ2TrZG!Kpi4Ihj_|2tec8=ev^J4 zPd7`ukm1)en+AuGW-iUK3Y?u%(#s>P@OI2ekQy=s5 zC7-tvj0DHqDRj4Osp^#8v{0l>u@S}WHp>3HW`}t;CUF4+!e=twJp&fB*lv|?4e`}` zDKEZq1gORdYY3;|1+0Aiu3Gw1Ek4*R`u zWbB=`wUAe2wKBoLXUPK1fdUe`sO*4w49M|$Q8BX^`pBeOAGmYsr^0Yv_xBo`QT2`O zFTDMAY71>ke@hh8!=2Vfm12-N@_p+Yc~3VLdhqvlLLUr8$iS*t3^3sXNg}QE!4eK! z+W#eU(n-Auqk_Og&?g9U%c!7M(WcEzzi*Q6*(t}A zz~G5kfi5$A*_4X|X2b?)et8FMlB##tNIxeTTn8Z;1$?H~0gCx6!docyz2*1kG4=^$ z8a#MIZ8>yK#OJp^IXXn9hS{P6@iVGDkfz!S4vv5yclbYjoSp+<4M3Zd>AIML{Q6s)$>*^-rd?=>L(kK{r|NTkF$eF5 zdhHEkh~v3|Z-4jGh@}ctAn;iE75(U^?oV!)Kkig^`c=`?pKD0Fyn^hwh6i+$XdNHq zB9$683OD^`3REXDnvykEo#F_fR3qG71f;tW6@rCES^~AY%Ma-$pHqXKCGyy9BiYnh z!$hJHROCVh6%X>AMPl~S#LLU-T~0sBMxAZKV`kr`?xzb*Hu;>z=H-hxZP`hi=)my8 zQItmU_4E#4r>1rj4RidMN_uhlwH=hq>0Q3w=r3S4?7UQ8;xA(m!{tm;s|`q9

      >NcQYI1HMf z#EvXlf}mDXQMZ2{`v8kaG$||&QA&f9(~O=smAASVwI>nE%C|fzGMoy_Wwaa1#9WV{ zYu5Qqz|%}%hPZC=@}<0G-f1{N+OiJLo<+2H*~%ClOL^&na*ICyu#+;asjg@16kg9K z$DS<4c=!OW`3Y?xY?&V80D>3XQhS2OrI9T=UkSE-GEjw2Xddnx%bSm|Xa$dcJ1(Ca zsa0EdQR!JOT#}fKR#$n;w!pBR*3O06wj>U51JFn^9v${>9D`^I@!#8zmEuy+pau3t zJ3p}@@!0xN_XJM()owv#4FhQOF4}qNA#g&!8Pm=7w}*MGbrtZ2NX9Px89~5G9Ze*{ zVcyV0uimB|;rsOCkO6@d9%87v)aYZoE?19E>(5W6f&GJ-;M5o?;sdo+e;iNFqQ23F zoL{^|6_|)YFbZOMZ;dMKo@2vkfG^M}gPsk8D=e|;2)49LWN|vWhN;)Y%*jbtbO>?u zf%Uf`>qDFae;pa)$`-d_4i<0+7LdvtatO5!f)p8`Y8V8|H2Gx8`l$5r&hV#_!oC5% z&-6S()vMWYR+egY1Iy)F!v-Yj{~_+Zqnb*;xL;W)dIAIq5F|8_ zn$S^D`iz3~mO?KA2}!65By=5-A{{~kQk4#&sB{6H_c*`$zVE$v-F4T!>z+Tz35(<$ z&U(&yp1r?&f4**{Ud!lFj5tT@JtKB`_|~lE)q!$5f6~5Ik+8_FhrP8yJFjV34>s?i zq>joMCt7Rz$@_VxPD+)a-DFOY?>3S%F`?*}=ZiPP3`M~v5KEMndSVD~057*m{fWFc z!p|<2+Yr^<><`>BX!CJcPw(s$V(`Tq$y?*%RyN8q@mg+2$8ejSL3d10t2PYo@f~)bVGc*rTLXDrL0S=lwh-(Xg{H+Tu0zsB%XEo&W)n~UOitRzNyEk65iXy;>L5L+W z(162_Q8t%otnuIz`@ZU%C3?33t8&vDQ>| z(2JK7Pv(zM4<_|y8(GLCYGiig`6uA*w(Xi$DY|6p!o4(}Q>Lu~kdSG^7{31LCj+I! z+d5&r&6?THKJ`D0i7da&B2(3+m7L$lOV%|D?9oS(%gJDi`@Kie29Y>F%Yvfel$lH` z#U!SP9=G~-Nsy|o|p_Pwbc z#fc!)7V+WhLFwrWp;}s_h`K5rG1=2vsOo!P!dH3{ArAsc7}bObI!KbXwJm{eJv{;T zA;k^e@rcB+;Zh+bZ@>>?97-9&R*vCwwXlFOKIFK9Rf%5I2}whs7`ny~Pk?~Qn)-U7 zA4TtCjC0MbA&SWIr+voER36vu^FC6tgGZWg^AYgIz0@F%K()W-;#T4B4FeC=x;%GqK;8#U9V`4~UKcD8)}#t^m=2GNUN zojnH&sK6294vg!QCX9My!}|SoxbN@vmGl)`iW(NGYc3093tQZ3ce{z6R3}>Hi_INo zP=a?|x-oQ(JMp%Qe06~{WK|#9r`08#q(bO)=2%UDdQ)@c8_A@@h$zyO*P&xz?72_4 zAjBowyozux#|x7X%~?-H3+gOi2DYw>lSoD+#^3AQQr=;I_f3~bF=<#Gx=)w8`eovS zaRJ_b1a=e`wB^R?oiT?lX3Re+dz*n{Pe~nunA0}Rf8M_lnJUJ?@xD)Ck(mL9KzHZ- zyz@PBv@ zm(|hCLW5^ePnaP8(&W9Z)x;>bSAM$w_}3{dq{En%`}TnidxgUHKFv)2tEY9CF>f#H zpo%J2LD-iBZgm+vV!~8vmiZyh zOIKcW-$GDY3OHueI(&~nUKJ~km9UNF_)&?k#rg1(qDJL!Fu zV%J|R_k7;m(fRyr*%^{BT`sI2axQI5D_;n#XClsCWm4r$pFo>{0H_EwZ{fLH^%Iz{ z2Rs2$%7>;o$+oCvfrJcQA>c|7sXq98!EHO=mP>!UZPj?|cgXfR?8-I#-A28#ah!UP zT;-jN_0ANHWZ}F8H%W?rHDvUVW`rNC)OJ{SBJkU3g@Im*KBUM22YIYgLEiw&HlQbO zZm^E!szgzwLp+W|W;uo`_3h3lN)0#%^j;u0`yf?Y{CGGT!rh`;A}zw`T5DIza%*c& z9qCeTEah%hEJJ;74_8ehsE6SW#GNXc2$#7K$+$eLN@%gBA)%DckoZAx}b*wp@&;0yA>_trxM&5ySf3v1Wp-=?yCQ}uc! z5_Pw2gOckLRaOub4IsqA_0RkfS}99W)2*LLwu~g+lM*e^Z(SWl#mdKW+?aiLUk}a2L8GyD zA7h1t_Mn_4f$mcNX5oo!Ow@Uz5l0-&-cf-sv_oQEt$4P+#~yGk>VGBhK7CG16TF+8 z-9W|87hV|16W53UJ8__W2>M23u)wWX*^VnrD<+)}`z>8az1}{q@{+8qv^y@Ch)kBU z2*#&MZt&mfXjCB$$&$CPlN?kNUDw!NeLshPcH0CpTG`xGcPxZPJ86`6GKGePKf>{i zW=4sD!;WcNv`HVe+XP7z;QyiznQ?cQ7ZN zQbY#GcwdI9)($snIM{-b+SM}(ozv<8vtw`8nQt3nMa;Tv6Im08&$%RF;|0q~0n|M+ zen~`n2?QKghc<`dMitg9ea{XpZ`;+_>mewRn(6 z_T+Z!T@IUKOK|lTRhDwkox2;ZWn^v5cc|vM;kTo8>fi*V3=@1mZUo?5Yf2 zncF4>%t;AZ0GZl)0qvfz(ML^qyXSgbLde3Aj!Bb0+{uy3>=h4to|vh?@+sa4y~`XQ zl27feu4TZA^xRG}IqHPW#DP)**zj2NcbDZO7@=lsBG;U(FHx=+#3N|pnh?^!%<)52 zJ^_N%aAUf@-QWrJFSVui*3Zz^?hiVaQ%#-C$1#=kkPlvX+IG_bq$5Jk&n zn!a^ernwo>diLCxxCsqt^K+&^a5$+rb-rpkVG)7O6ahmVZv~yc+bTXz)&##_!lsxo zxgcyet9a&ATNTpf3Z)7%uhcpd>N0j!f2f3uBuseh-^8x|xvnswcR{t+jZi0wMsKlS z2z=Cifbo48WvhyZaC(SLD#P;}V0pvj23gUaDzCE^Pg)Ie5=qU*ecokO=ONSC#u4R) z8PGQhRK9e<^Q@}Zbl7dDs%qAtUkiJ{OVjZwZ!XZ@+)PpQoe-U%NfJ(nKMAMV1v01! zM9K;ix_pKB!{yeppI4Y1CMl3`+QjT3LdAKU#yczCT}bM#EI4VLI!ckC*XpuChA=R! zYrYYYZkEA5S_Gd5}7A)YJ&p+?@}2St`W9m$PS7uyX4i_W`GOj)K@ z;za9i`5?7&6O^;bQX_e&p^Biho$FHbW8tF&&DU;{GVe2COUd3dL6>ryRnw^|b&kS; z#Wo4m>m&ql+u%FW!huXh!L_FWf82#jd=4I96qd+_fT+pmFrIy zP3AvmqW|TEH4>&RufN?Y|LtJzMN{+}$?H7DAv2lB#{qX8bpK*8{^j?pcjUXBx|2(m z;tHSsaaY#~{RYEt)X%PS>em;~t>iXs2ls+WCSsnk0@uBTCT?=o$ZlR?zNQu+kF6AY-B2Js}|s7B}s^0jFca zV7V$B5I>Ihz0ghB1-UAX%?}S+4RF>Z>-(h&E%OQ=i~4-bWrj=OR%0+2!B==g{zkg{ z*B8A-y}l}=v1uLpWvSZJ^(vm8$vm&ZSj8>ZYxUsk}Q+UZO2^A6{vv?s7jO zYih(ms5?8DC2 z45lpS30M$EPwegKSL`kpr0lk&<07#rneDzHb=%|4{m*RmE8^e3+)n;H^A9@9_J42$ z`~P8_rmDk+r14B^lodz)3X#pM>CKlgUBL+yt#}-&Eh9p{2j@(GRo2yz-MDcI&ctS? z9}CZdF0WP@T1aPuKa$NGo2!F$;tmkuFA%A6Rf}@gj`$-C_X4G}2ZKJ9dS+q@nt61htevz_lFsq~SNm!kO>OBdo@?_#ekU%qAi zy>wOd2GlBqO-!9HZh>$EyX`)^qHDcb^f#D2A?u-ujl0#C#m9UcfYt^-HA{7 zEu6lt=q9HbIPkcEhNBllsCREVJhdry%6fO-UVuHnCG_f*9;tz z2C?z*ql=a@s+v(tK<#4)R|6@YTfWT@$u9|0A=Dqh?irT8$J*+wo$1;6=5<}#S~Jri zm9t9Q&oubg{4({~+%z5@6s8l$jVD?>nbutiSmUTgV63SF)sI?*8Y^zrIJ0#j90L6J zdfhf8L3K-3z92`rXo9xFqC@O^%^yU;yv)liXR`IK?PKFA8y!k|NU)Ej-`qv%;s#pX zs}EpQejd)=a7QVJwtAOa^nAUdv%Q^Tk!lj;l$+4HLg=ejLAceg7PiEAtB1H=r zhLQ3K_F$k0F?YswL5r{Iwx7)n!(u)`hl|pFw4S^*3wv8o6r(aU-kg&0ghFBv9PkKF z*#u3)wX@cOlO#*Frle&LW5Dx>Kd_+0G2_t+xCwQjB?*=oAujEGY7U=Dnot3|sh2ho zjT05J*B+?5-aLwTjFGJ47=HE8)u{!)w)TAj!3C#We05Q&UbHDwtIU*;XUnEU@hMFX zb-gh(@t6n+LV-kqGSj_fMmhCCCWhNZ<#b(Hkg9{+2@2P(cB45dDLZIKu~sfhG+UGo zvG|gXQke&}N5$T&(&|z1_%n#lTT#khfT;QVLcY^^>8rG(CmUP4nV3j(@gUyX;?aBL zZk(__U&8zY1fO^=G+F{(;`NC!&+G}~1Z%A-ByEHW@MA-}P2BObjV8~CIhL+H%wQ+S zZVGa3Do*!I9#w~ zD>2d~Y#(4lUHNe!RE=8XBLvyiOqJV6rYLV_h*VAF`8MIn((t#2!+;G8o>ti_a%cB4 znXpClvK}yc>R3K-Yi+!>pM=RDm*2N06kIt>iilN>QfxhX=X1#V7fbk+sdV8*RDA>& zZC7hqQz}nNm@}z5SLs6pc-;G@9V6dXX^m4n0(eFThBg9{M;KZozd5Hiys7V8lA=_N z^>^7A6$Woc-RBv|!4(Vqe!8Scsm3a4^*+mO($5Lzf3gVsZ+({Kzpz4*?Op$0*?s}1 zusoLk%AsP+F_P8Nf!fB_gD-Qg+y&qsr~GE11>SS~{Tm&x|uZ^!g2VM}y3%UQbf`$C@M2O8!e zUzHyID=zU(RDF4y8 zfARXkmV#y>c{U}Bc`=vo_v z#5XV}@3^LV`O7~> zytq#yy3lW|>O-c_JAL=kGW0bdSZ0?tS4xfnQ5p#BzFkRS?|-}b8gR};UI5k?8<&A-crj2iphrBq& zZVdUVOYa($S#706gY}N>zhVaZr9l#jyow^S?P2eAb*y}>uliWX@d&yULJTw)7!Hb& z>b9PP;M^F>yXRj)5KWY<`b)j)tsup8#lhdpgGt|Ezgpr6#u4V4gdo6BDgf2J8yump z?vbJy=ys;B$g$Jusw^OUHaP9SEq5QPRI#?UXjBbEp_G&|a*=IM`g+fF4N%T+&J?Yt zs#!aoHKyhVgLL%|YGqH08xKtA1<%I^Ozko)Al*ss>j=zUS3Ms%Oz3s7WuMpw3)NL( zhl+Uq{k~YejSJkTnB|Pf5i9u24 zd^go5)FZe{j8o>XpQA0;9Koz;@88p?X42r!x5UKGtM$3c%!rAF#VH=~=#Tnt0%GV9 zU&+pF1U)(%RN|it!!DJ;-UAg012+wDUT~j7{c{xSNp$$TfCWx8sYoIyQz5$km5HZ? z#J=wc=}SSI&`Oqrul{5ZfZF+DHxnH;^DfKrpUb=$!CgEZCHZ?**lD|_b;rEN5ju18Z8B8JMS8)-;P5-4B zrzmp-)A?wZjl9d+6tU_z7&DMtW}th8w=t!t3l>vDqd_2f;DZ(^xi=Eul|t?O6pz-& zkcrOG=;;8(T;&(3S5*Wb2W9RjP40~uIzfb%49|1jQxq{u>wCXxlvXLz6w871KaSTf zVJZ~nrRg&OQpxZCe(3#AJDH0jb35k$cy>vhCz))ee+?D?nH%fkIz^Y?DLie|Y4yC= zFjznH?uhJ-(fLF;mH-+p(Qdo$TvZLbF-GQC4Z63AIc*uHW@lrO2~d?QOvCs2pb!DQ zyex!a3_;&2i`*^v7y}mJ$_5A!Km_y5Q>(kb>Nxj7qR{^8tC^s&S=G5wiYiVL0*mY0 z&rXOM-^iTi4;!xdk>1ku_)$V$CiWRe3RXM8s?!_0qD4u3F`OWKq)ugJq#oX8FUWW;cV-tk$h?{`)sccIv4Kq zt41mvY$ly!NHlcroHQY&wB-*|#>vK(h3B6smq((t#^3tNUrOTk%fI%+@NQOJg`M?b z|0K5?q@)On1>UJo>)FJb=@+k5VZaI zq?GdZZE+$DW>?R%fAOE;!fp>f(}m`Oq9TKsAx-&BQc!|y4Mp~>_f8HEX=`@RS6Cs2 z^&8uiv9CZX#Jy%gqKW~JozzRFuJ!ockxBo8$JS7Id5In1%Ts|#P10ER7gId!ce5iF z8e)U{s6;jjM_mR(O8zQ3!Xa9P5|WW4mu0!=DDh0o^d|1+^qtZXl{&JChiybg_`TxjL?4a=|R~?Z!2c&UML|H#|VYORI62X`qTK z`JDap3B6uqCXE83;IT2hJpC3DNvUgBcW-U(nxE&t&mssqX)YoEF4$TD+yz!f*TvuOgH|U)3PmJqeNm z$|>#~G|GZnLbX(zjxyVR$z4inmulbhNeog6f(?s~3GCdWQ|k(7>Ug1AkgNvi%U6(o zN^8$Z4OJZQl%A0yWctDG52TA>cba^01gKg$Oc2_ArWPLa>7c3MRr=1#V%*|s5^+;? zVUiikeV!C-ce>AtTKGE*4yNM*T$3SMh@;0B5~0Z+45m3}*o&(CbCDKr(}gwqRqKBjQM!ehr{C%(F0!o@)Ak=Vw74bVG##hk;LrDiS35ED9H@F@`Mf;nwFE8?xqUHl!g|O9?USoY-OGp|X>e-I0&`BiE0fQp{&>Z#A1^!>Z z7qy5ojC5IkiTQh)_&*_1Nd0#5zhj15|79oqN{YmC%BWPdQT3ozX;8(lPxRc#wa%Vq zN&1BS0a^r}!IW0fgOymg8~cUt4+5Pf_(CV=@4D70*#9aZiG{A}=r?NF1L#k!P=`l{ zIK@H^%}|;^V66#_tc*;boYs0aGoK7%opK=Vo~^?EPgB}I-kdNG7#-G27U(d*D14JI zRbrn<2Q^S!zqTX6{shRJ#gmdVgruS#u-PA~SAtFpMA>5r{A{drd;)v)E%>$kj6-@ZnOpG25w;k#F^t3hF1@0PGkGiv-K^R25wc z+vy3ViCOci5t`ohjij|r1zj6o4z#l>549Q={G3}Jm}-0kv#;o>oLCEP@MHclfRgDj zLB%bFZxO?{(-Vpsl z$qFSohJJ`Q_4sj_)zTD_&M{P%H)>2nYS&!XT{!HeIeq%a^kx=b)$9WkzOP?yyr^zq zwxXCts6F*QKJYc*5*f(!l*x2s$rgUXdSMVO@EY69LUM3$BEc z(LgoeV}8B9*U_F6qCg`Q7zTT)Et5{H*J%FgW&HILTsEiUc0#^cPpep1-nim*<_s5C5=?U>B<aq4nlC$DF4*UyELQn{@&lkyRfPTMSamh{Twe)%z+Kuh+1d5b@EBq@qx2 zr#jLG)go4D1_}hBaa-VmY$(AX_0WN?wCecY1X>Yh7YhY>S&g_g| zxphuii`axsM8+*)l?oq)t7s_wu* zi|t{CnB^EqD&Qni{0d>|i+jGL_8WHLmx{M%Oe>qeIouA~_x!kj0r60ws!8dT;6p{Y zDQwC^Lj_GMp>OBZktHoeqLX?<5(57SWe<0*AN(;NHq&wUjKgSj{mqsmK(J^39Cpz; z^zrkLJNz?yKaI3OBd52%?H+~qGK)2x{$k@Ad3Z-RJ^bB5D ziQB@<$UYn;42f4atZ)@*PuDaYM{iH4)s~uHZ@f;9cE243PTNLO_be{g-4>8QcTOno zmD!SU^QX~MmFK_pbS0=Kx$`HzGc`i8DNcaT>Rus8f`i!EgDxNWZCoLY>~96480VPf z7D#_vV%P5*+PC{hpHJ99usDzzHJU(QwMoYDdd}Tlt&9DLF-zHb@7tD!UwpqQD`n}i z&|^xA`m@vh>q-qWuTjp@>R%G*zXtTbUr+v&Hy(WZhrFTd3z!Zmx;0@(0N9?M(x)DY z4f0t8jZV#XWJ5t763(qzTuQg6L@wCtM4gz4**;~=8i}z!O81XAz7%@#-+Me(UL@{~ zNxh;G^4(1-zWKLFQ*ins`@BUFt7t}mMB*)>mrFdvC;!kZTxS0M-1nc~fMx*S^>dG> z>Dtd2uJvaO7t$vW{W3Z842W&<3}4{T5hrGz{b#RX|L=&m^{24$cbFOq)L;lc%Bh@6 zjQ#u~Z0J9Gj|Bmlq=kF`#mxRcj{kRPIe@Wl1`fLO_doEjz4;knOgx?WIVS$=L};k` zK)LI0{`h?7KYLS9hbtla1k=(kq8U}Z43+02+7z}(RZ^+PYu1_E9XAnd;b^9z;a++p$%ZQ`iqBRgsua;Q0qu>S>^2nzZo_mLDdwqsW2jK3r>JWO2*BD0F_6tWtYHYAtL3%D@Z^t=9 zeYCm8uHo~yQ+&#{+_P{V(EGv8bZ7`$4PMnmX+lhwB1*&a`R5T`ACKIv7@9X% z?|&oU%MouTz`MADutHj(mc#96VeMRy+%;IP=uIaZ6Oc+pt@dmqRiePhqK1cl`Qq~OQhA_g~TXa zMip-?H^$RJ?zP#5|Gb5*i221WmDgyUwaZZ(mpfafYuxCSbvkT#B+G!Z= z{|qNfdL~L)eLSOz9+wQY^Dz#hju9Xa)q{9>XN~B3e((w?$$|SBY@>%FSwp^6S=S{@ zmeO_;kNs4Ds6AF_t_WQIq23S@*=SxmDwSj*GBlZ!nOk697Zru9xOBX~~5w~J(2 zVN$vs!lwEZ6v7#oh z!dXl8Itgs_t7^$9oYyRa6kfo~cwWpnWf+T)cKm{;c!R#d_{+qu(T!c~j=wHSNcsCkIF32lK604Ulw%y(i99M~i8@*uBgq&?26)-KY z>&aKm6)Vno(H~vc9uTeBGo#8TC+_X~th3u-a-Qd0qVULxfM#8Xhm7X{)#&8Ue`E4_~1{aDflI>gCsRLUPa~@885nNvny{ ztPfFbcAg`63H#A8P9&7 zx|yZms-EfK3=kyI1W`tTux%zsgPF$B`Fm?zU5!Q+2Nz4so*S4xt6NUv5w~gU=~Ql+ z(FkvKTll!Okl=+OF_aw4-?91zq7#bYv&FXjKIJeNMIsHX!lzsk3*&k!yP#cdEoKRP z)3!Pr1Q|UwLR)qObpmCH+M8iT)vPU6=Qw`Iw^1!V&)*Ge~2#WHgs#% z0DLZEHhUs3zw`j=%wFfDpjl3!fB!k9{x@|zB}%TDBe5sht3V0%*vE*7T(Vl__)7Tp zTDAM!$k_I)`~xO`WIpYmdJ>D2{(psWXO{mX9e)or-?DZ8mUI2nje9sNmS10pe)~I~ zv;G;+y%q1S?^rDeEsu1*0eSV`B*27p*&dsY5C5pdH^*81eSSaB@gEx-$emeFLSy(S z4up{fGQU1W%FajDxI3dl;{8{&&L;n>6LKGm#~RHmp9H2t$=*oL@0prOv300W_e%A+ zuX#NC=aULNCxG_F*L#yc0A9tVD9;SA;L+=8@b@6qsJr`nAwb@52FUy2pM>X+i-l-t zPbnR)CjCe+ANivBz1S8dBI+=@HTWJtyG4Ef5>GAXoDhvP6CD+AeY^e17Y0Ho!o-ya#KMA*)(=|zhEw4zKut9Xp63_QU&~Tussf7=|fgP zRbQKlno$pUwAQTVu3^R|N6ieb_sYnZHoNd6Jud3{J!K%jYotX`c_PyU&9{F(7Io?h9&ha4Hy zYE1ea8WhqswJp5!7aqqn812%>zw7NDY1SMS`Gu+!(loW9>ln@aLSNo*uL@}jp^;o_ zh;o>p#_QPA<0OPNn7!nE9>BUyKo`qiylFgKL|^Ym^lcYzyDjjC1~vMRr~+NxcI>Q! zSF>K+O16iX39iGn~RIfvBVQFqY6gjdg&>G&s2_6w-hswNjJn zK9HmqQ6esyPp}oZVW*WrJbS1Mg+IQ$#f6WE*+|@!Wp*fr)hync>{kF?ly=V=l-Cq< zH>f;2qk8JTZMTdV{Y83&)t<>;ERXJ+y&_wzDN9m!h4W2=Wr*BIUqw`VqiH3YGn)d( zUWW72&CF|`_kucSw+5(Hyw(jW2HT$YOZ;oj8oarN*AOtH@9s}6?his59^XIg%t;LI zCv``o{($YJtO;EU|#yPJUM~_*G}#s$1Hq=zUSRdLgl>6t7+4r)h35r<+DeY} z87Q~d$bL$RCGKAR3%Wg?soR88i&~HsqH~ zkq#u0pe5NZelBDVEE{FJ3bFj&EtGcOu2=MgpQ0MhhLyWkzqHH*L>EF^o2#ml9_HPc zuzBb2f-)o4cW${F8&+BukaW(sjWu1@OH~}^f0QhLYm^NMp*}G`M+rd6u_m) z@}izJ$O`=~DKjg%4rXT?PIAkPFh9q_^5?%MiGRKZfAT6iImTSg;6 z*(4$5=(8nWb<(FF34tY3*xA{oLlQU^e;uaTHm*c{-H0q=wXK__UDs12@3qnEm?DWT z#%Q#BrCC$4$YJd0AD(Z^U)Q+jdxO}JD%eEHgPcSi6=;)w)Vo_(nun{j)Nx|u)2}!Q zuqDInt8}EeOH<~R0vcUUxt8v74rlU*QG$h}e~Dg_Axf;IE@QZ0gqEJ;5W=i$aT2{IGYcyhxksC9e1^mWW2PlRwv7cZMpv0SH@41dwszw_yUBW$_BrZ zR+a{=&SnAVzjEf~3PBS|_~y%vE$Empzm>x;ZZ|$TP>XFd`;sl7uQMQW9gLfbh+5J5=`RUzs$E-S5GW#^#D2)_iFlIEDOLSH2U%&sO8&uSq??s#P`DCHif@x$fpq#^6qqp zPyHom|Jk; znPc5=+ckZd7;`8zE40FH40`C8MK2_ZWvCCZ{zLa6w>40F?du1Aw z@Wngg>8@h<`2^Ip&Kbbl04$4ul}xw1Y4MWTG?D2n=eaPtkz@HXKP{_IO-$VhiWnGf z=h*e^O+Y*%p85jjSErQw-Q7&oHRE^&CK_9VJL&7jJ~bugis;ZF5U4pI%71aNda}}a z5pWKhFn9yH!1x#uBa3@4VrpX#jn3vsg~8n3p_R6Hc;H_Z?!GDOS9#bSuOGbtQ4Zm_ zFilzsLVEU|F5TfJ$lb_;aU#&6Ch8BHMX+%@cynTJrImCAVNcW&k!l`4aCwPwErixX zhtSZ9GmheiZSXMoL#xv9+(%QjSIIC@<*6+X-;CLYEwk;>47RiK?C0oCr}J-#2Bl)& zJy*}@s2to7Chclv-njdzJ7oNlkATs5v@5jdEz$stH z-r{E8c75ezDLj{+WxO*40aVdmo$)zns%>|=msd4XNnPqEm^D=CxwYxrrk7AXxS-vZ z2ucp`P^Q4F5}4NoMG(c5-<`17JRj)LZPAch$>9B9*)MOHeR;kngAWl8fl|>Fq+{hh zi&;q5W@5n=B31N}KOf}OJ81Pb_BVU17C&@6TOlun$!dTt*NcbLm7jUWoQk~D{Qiqu zawoIya#oWsFK0s1S^v3?5OW1#ug@m9{t4&js-cW>Nd2)?c+40^2r69NJ_0E*3N%1e zo0jD`p_H)H-~lqhbAk!&ZyPeqNTMTWwKNUV$40szGNk$HyiS5vj;d9am&!sW@HTQr029OlU&GKvSRA)KC7hFJ~d zTZ81K=^-#3Pc{Z`I@TSudMc1Y7m9{}NUXFGQEF*6Vb9@R3h~Lm7Yq*|_1>ZveiowE zh|@}kh7zQ!8~WUGp${{xdfS&+QED7@_-@Fk$=AosK~H+C&(PXb$tbkZpwue4%vB(} zFJW>*alK;RLQsjIGo`1E_9|?S;;R06uNTRE48#SE4+wMJQT({9LY>e$86(0fimnNF z58F9-r5~>T{a^snO`Jj*_8BhEgH`hX3X($Jol3bj(BET zHoo-z+~m`GX8ZraQ$Sv#a6!AT7Ig+;f`vF3cw;03U^l2ta1<-q9(llH9!xzS(<<4O zq&@Kl$@G?iL94Tsqln^#oOlsA5?Mvi-@?$u8w$iE2frSN7 zb%5=^F>nS8E*%x(lGFQT`wlt z_J4(b z$f7|%$DUJ7Zp#1(!qj%VD)yUGBVXn4r*{cf4Q_R*GBYw)QgcI1X&5*`@-G&^X5;*Z zjeS59rJv5i^6-lNi{8xB)5})hpoSrh77b}&EwJT#U36&NKA%<8y~P@7hA|_~$DmwE zfMe0LlsXxZC4ai69~?&(d-5dc##SiMR&Lqszrhu1ph~%1Jc|4(-bpw4(BmdoViCM* z5fpduc}Q#umtf_k;|=BQ%vH)(copFTfZZD3*Z|~-(R}f7y2e)z(J#rT3Ztx;#!^<_ z&x5Q4@m$vNXT<^B1%0x8bkHc_*`WL5RmCYgs6KIQjgyPM$!pESail<%$eI*2QBll< zZ$prh2P*tcU~y8fN6Rh>5-5|1_(Q9aYe#ni5HL+kuYGt`*WsP$T53_mpAI~tp#=8y z^C$;(E~)eWtN!zCaWjt;1n|@e#Sl%9MpIwM;zC!ji?Tj$%(nFIH~o6oQPj=VVTK8b zn(6jB1C5$^r*+#Rv2dRHKE7b1*Fl z(ng51{BKOgVmDZ)8^7Bg^1SNop@~UAJTth)r#QV{x%wgzLE*40kFFzjbTb8%L-i~% zGGTh)UPQb_iG~7^nFJ<~ZDZNl&1&NuNT3`BSzEX3l7;^#U@AH7L*4uvx%~Ii?iac; zPqL~tGzoi0^_(RKFLqqJ1j6alfLm2z=OwC#eu=vOF&r@>b$vbx%QZ%y%JjGdKl-im0PDm0u8vhqd zh=~o>#oWoE7T#3D0oFB64d6br5_vhgNEDk664lo?_@Lub()srV_}_l~vX`tiZW)~H zO=rreW?oMg@GUw&fU#ho*SR|toPELe%RK%5`&b2hGw%++uWHQ{zR>n;4YOx4^Hjf0 z^1UxI`<51WB=PTk3%RY-0A;FU&1X8)xYwgm5|;eL*7v&9sg8j6k;)_`QUZ+Uj>m1waPQdg_cZf3p61IeGf|D&$eK9jhC82 z;EuWqQQQK}>dwaLr=~qBu#W|u5@yeMd@PNG zVUEu#KOxmkG46SA8$iRAN2dP(c|FXkqzIdcg{A?xf3kW*STJgi$@x+Qjta(}q?gIV zn47AZq8jGN*QW%x?||qHh2`b7FFippY1$`)7_pK1Ysp*-?~&)Kji=_!;UzXIJ*i?L zgUJ|1UUHXaD_EoQ=&^Qq*i@Ty)y8sO?W^I0`p7Et2I3K^pmDWcKr!NVTz$WvvucQb zTBh)CusSk@lq_b^3tkk!SH033td9I_7nvV5)mhwV*0|>PXJC=91!sf&!?>mXVTF9@ zt|ZsEZpM$%(7~SjZ8qp`8v{BSNp|A0ujf|IGl*wBmo#4%B%QR`(3Q!r+JJjE{{%0| ztP7zZ6$}MCbivD1gLtmI%9^qwi1*>YhF_6@N2RFkUdYi5D@)~^e@k6CiIaw9Y;;L3 zb4Rrhs)Wc!yQEH8xLNz|pl4~l3BEmbmWNF`78ao`nIyns|u)bwr~ea%j3j_5S<%!KX5r!{SNgr*pDuT{Vr1!7)-cCAX}d~Ewhc2m5CbIIYB<+mT!R*6 z&ODfwhV)8UNUtlrV?L6yPXN8PI*%$c&Ya~Q^xa_ZQk63G5!>veRkDI|-EbUW2)I0v zFZRyDTh4>gVSU1|m_>Z7mH8_%rDXn;<7Ey4K|{a%m7}Szd4eOo3tfb3ZmwARfyKDf}H6TL!g z)RHlQzk4v3?U&eL(f|i2u^5uah*N){Nn>{m!juoAh*D^5TlLX(FMF6Dv3yOm8kGsF z`-=s>G;|PD4#fgit@-8fh_^P#6~-9}Q$77|oLKNhDd&dm_E{lm5cR3pNFBVY)xlo) zN{RKDEOX&3T~DvKsKe*b=~+HXI#IOxu%3s6J+k#kL?k1uCk%-9`&;7KnHTJoA^E2t z6p*(Qo;|8BCfv+3!B2qsIEXl$Dqctw1ue{-+-UurAz*_kQ_+pp4c4-F-xCnXIgd=) zDijrgz`$y7v}J5t7~NL5?eXeWKiHC0h+)M;$Swp6CcI_zO(s=F{giKLhp)y{fE4K( zx<^03i~~{dhhWxJH%KUpefLVha1HXbJ`N<75BVSMy?H#;ZQuW|J=#v9LdY_h5y~2o z>}G~x24knP&M?X{ve#Lb?94*;FvAQ6*>`RBL}rjZTe2mh5cQinudBN5`#itb@BTin z-}k;B-{19@`5d3aXL%pX=UCqF=Sw3gMkFwxjhL{B-I}t_=?^?$nA<5#emvw=vk;Rv z;b_le;icLL%U*rgojb7n@%onQ?q!lK=hM4F#6VN)SgQWHMdxgFMZ2L3gp4lj(-ESC z#EWy8ivGsTR}!*s(PVP2@qS3 zv^fo|wyHRcjMBJ4m{3^y1I=dpyB1uT!lWW2bU;Z%>%g?>O#cq2D|w;nx$p z&K4k-EW1N$!>w=95w&`M4{!N3yyw@c#BJ7C@E7RWaaqmny=)%8NQ?gyK`17N>8FA? zNUQ3n_R}TPzl%%my3KN!h2`ii?_u&DnJZZb@8!9~561R-ltPcM`vi_ko&21=qpF=S zw`-Z*9r-aU!vAIm_VJs@n^Oi{eA$-itLZoVveP%{Ix8!11dEQX_3anoci<?L zYLFTX=AQPjzJ~f7GX0N|23c!n!q86akjzDhrZ zML{@l7C1sSqPn_~rdfRSV&!$P)o@UV1@d>r8>U$x6-O#05#xpIh1%-HA^JWL<9OTD z;L@E4>s1 zG!Z;0&rMnr3n{^a-4|MP@8Y9QJ0q2@e`RUfjJb|!OZpakbp3A*{CkUm2cmqWm@C`8 z-y)Y{%{NgdmsQ&B3j=Vgp#;C-^Nl`ayLbI;^$cV~hblr!7`4!6EK zE7+D-t<}qsTT%bSBvuBQ1O~&r3d~URU5UQ2X}54#y$CJ-Bx9wh^7+ zmyc<+Y!(mP#Ck!JAD-!oDDuQk$i9clUh-^z&B%tYIJd&mFMfy_R;b|6)_AE@S@3Wq zerU6UO|}Ss%J4BR?eXG9)oX_NixoBLJnQO`#ICwCyMivuefVP}bcN;2vah_k2bUm0V?M+%@dSijuvuZK62a@;i-wq>+Rt<<>t7`d_e5>~e%-!1F5rQFu)U34 zEK$QJ(>QHr-IA%o&8=7YHBizX*bMBhBwYPAe zCGsHz$6{`ZEh`G)MMf`xWBB|ktd>ginU0S)LTqiEp8ajoDwP5Y!u8!}2Y<(holFH9LJ7g(RaL9_s&|P;%T`a1d zf|JGkj6Q3pJpr+>+%Wp5L)u4&4@|+aXh}PlZQ8Uj4J`F^>`YH$@{EGk24fcS)F?y0 z<_O)!QKvyqW~y~9I)NX@^!vzMV*NyW<7&#AZ1lFvEurg;rXp(L9NqXXw4E1g%$bHcSr?i8KH7@&7TyhjJay-<2g5$S5eK4EEXYeq60( z!`i)QyfI_QW;Sa}J(Izw`c3R>?XDd~7cpldac!{{)FT=386Dtat*x8eCa+Q<(*7(< zD>Jl%VAl}anBCUba;=JgB=vGN&{$NqTgcS3E2k}<{<43S3sAw60wbfvP8*xQI86^l zoqxJh5IHu8tevH2uYK%YRz2Q(B>2JH5_!yDY&*b?a?R6<{f%({sQ!NHTI(#;=)U;T zr{I?6g&HT1?6OQUb^+jzpiQ+GveLI(@u3pDIU5i8Z!sj{+ilN!(GZk83@*+#@iKM=<_*HjJDmaRI5W&E~hb@MGiZ0@E&A@-O%=x(`M8}a+G*tcV)QACmpefgRG`)2Dt z{VxfCDxL%-h^MlFKOE>!&>~bjRrb<0g+`z04%cb9DetpT3`t(jPwN8iP%kmC7o5eT zafu)Ane7t4MRIK0A>tq!coYw?TE~`^-Uk5a~7)I2OxK z6ZW4R|9G)9_j#6QrbdE6UMG$ovzV(`6*;Bli?l+d-oU}i(ctMS(#k8}^B=QTuS0VY zIa;1U*yi#ypquGTvs<^4s-)b!QOG6-;T_Kxh+9fJ4P+Ae@EIiS-gBG7P=92OMxs*# zjC@gUg*i&k;2Y!{c&DpE{ju##>EwcvXIfS$N?$zp@k_-zo9t!LOx;_p^mpaw#1SH|5ybPuc-Z ztl!C63Qzy>GZdyNgoR7@pbdMA1k6GFuau8~w@jZd?9&`(yUh$eWLRpURc>owGUWbHX(=+LlYJTFANb1xycf86oP}lN65Pu23ad%pFY&xYSTKL zYbRpDo!~AzwtEku`n^b3cIAv{V1AxzH06WPV-F_NvGFb;v?2624@zFeA`A&%)tdZ^^nI{s?C`4QOjY)fnvTRhVt5O%zfu^YkXe)b(L%k$`~`zAcczocb`o1th+GU z%{~xy*sF<1uMnIDD&tCJn2>@4M=Itp+GPb`nh^;cIX|fH()Ds2wg25CT+W*UE;XHGSD$TpUJUO%eYUY5gQ+TWu~ zG|#Ybf9qC{V6PGR3!hjJYFsqT3S;G}>?JP9tfV6JJ8vOx2um(pJ6+q=@hpPaCx6tR z`%1n1x$-lUCH1$gnj+AuU*J7k(fXFU`I8N|%8+hNpYNP;4H`;Dql~ogJlcPmn?;73 zg{AGg;N9PUF@^0oe>~0q>W9KVoV?^-39HOyZU)}#^*2GOElXvs?HReOMDEiDfy@Bh z2Iu#tBhV*fG^9A4`(i~lFWpGGy?%Z(jKOLm-;p@yczE@9x&9AfT7(Ts2k{Q%*6+W) zEgGG-PCoK1+Z0eb651>_1hqUd$wdBhw6&F5V#OnrmN+;IK5B7zKB(b36q#84%F(?jnK1}B`P68PZpL!ZBNncI z(Eghw{TlxD|FN{+KiK@Q5B4wx4Yf}+Rn=r>UxcM{w+t#BX?)XVpmGN;vXX_C+i0$F zz^iVo=Bl#4TqZ7E-P`27br}kW6neZkR~Sf_nXzY@;LCSUle3_o@^$i z`mtIa1-M+w0Z&K6EXAV!-j9`zV}xIPV{m%N}p(SeD?Zmkb-Rzv*Cq=Tj35~! z$4SrcDb-ccZMBk}s|h{l@Oi*yNG(xQQ9DPp)jwNcP+A)9bNWORcA7*bH>&H6XBK zM|6so7X({pMG;n~C7mEp0~eXnM0e(|!(@pfxAbD9wU?OE?}+zYXXmA6Q4%SN6}H*E zg~dE^0Nkm`nfq35Lj(NzFXz2G8-I5%n)H};HK?8h_(DiAVeL$z$PAD9c|(psQ*2zC zr6XE<_(bd|yw$!!^{otvcr6!lBfj%G8sgVJCnF{|1z!;>!L}?$!71H3?ys_{_@*G~ zsB=6b)u1r4ER0GzB_$% zgvlDb{jJgLcCwk%i-D)^eQD;eugIFWNfWXT$#M!QhUE@1XP786yBC5Rb6pZ|Z=Nim z@7%K(KUG|;QneX)9w9&c7P|I^_&0W!A3fze&@1mVyK&w8k;mUp{vGV)a%#pYetkmp z?(4eWK~6FbnEK-)3_rCst(bgh!999xQ-SJf2>tJ(pf^gV6szL~U?{sk@M5~@N~9f* z$#wr*54p~WT_;1mf86yO4~*{*9vJ8*OL}AYg=!`9oR|3o7j&-m(R7GP+QxB&p6w;z68#AdHqL!t zSxQ0^!8F#4G^XG5_bbJy4tEem#~wha`RR7P_rd(3FK2YY$r*~(3n&f$&-&i%5*%y@_y;gq7_=iXMs39D(#{2@K_GgD(RZh6_WGBPI@vF0kO>|=$<*vr zJ4Y!XswYy5y6;JjVJsc3zV4^1$&r?lz*Tb=XD(D|>M_T<2QfuM2^9UfaGbvv0flxu|`awPsEJ#Cq_)AdUf;l2YWm$J2WE79A_g zG|Wi7^N3+bw7&zxg9{Uz&4ofHWM3Op$! zdwwVc>0taZ3N?eP9Vo02wyZ#jkge`j9J#ev(?T_}h%s}_zxx|o#?*F~4!sQ^Pk!p^ zTGMqlOO$5ymF0JK@71p?_t%^ewJ^8Y$Q~<#F4Z+jH1KIE{C=r%H=qG`5MOgpL&hJ0 z`|>i=A~|M*rO?WS>Gb~JJn#EUt%V$dLyE?g-{dydl_ar2o;ZPG^hPs`Bo)cu!W`?B91@Qu&bI-iQ7H7+HEP>{hds zni-n^5yW`@hDD>}i06wEvJxNM$_bDKzY0;OfxwMr8kPC5G?DjdObnA?-@)BEsbgl2 zm+}mL=TJd2qqB?knbFx6%;;>TyOUNi0O0)6d4e~k3NvS+9h996BT*?UuT?CrLao3a zhLU{HOLAo8Dly2z`j%mW*H@MUIp3xqpZ9c()(FnGhKX~@kQs?X7768XRZfuO>B=vu zVpL^jByaY@hQ6D_bX62MOg*`>nVykYB$o?|F{ z4Er4U@%tn}Akwiy5*voDk~HN4!@atA(Mqk?E*amo5Vq`s@vkz_Bf3wto7AA1L5~CM z3!Z!r=#{O@@Ofy&vgh`HE{j>>Ii+6Wy}nGTsAGL`HT#Cg4C}ZJG7J7 z8?c=#BSDw&5Q5`7B$1K|GBauw37UQ%tscuJ;>ZFgXqF`zWNwj?qO6jN!c=Au)qBnU zE~bn~zCtJ1`b2c9p-f~0aAL$VF{hQ#-Eoem&Z=ULIRmHwKJ;OubR<601t+#s&>E*b zF1S@(pt(HJkD_c;9n-b5VZQJC?yxSzT(ljO)K=Ig+Na*xrKIF?lNIhU*A6`N5-%@; zD|!jNsvf+rfSn^rWbCH(U9F_V)gduXSEv)2o3aMb%4kXv&00$c{u7WMgK z433$%O6mIuSEnP&alFR);HhF7v-9>iiZ`!xF|9cmT)}ig6VUJmw8O2iV8eF_l-dx? zrM3#L4uHE5EgzIq0lhuXdqENfNnCq^xL3ZOtdRbdWl;Le)z0%NOtx zLAbbSL3ku-?1uQR2V?5WIf!k9==zG7A2zOVh{%)4-xHjEquujtN@s-Qpx40rr4(xj zPA5mQz=5`x$X}cq%3qi{Iw!ZF@w%WjYslM$&N0H-;v-{xdVJPUk|qU|d`||sUaW9` z)a*)3$C*h{buX0PFXdtj3{lBTd^!hV&?L#HF?qT%)t@%%!ojf?22<>7(=g9mPzjMS zYiMP~;ep_@iWmwMC41a5nRwU#*!?=hW9pDZH!0(=Yu2nD@bk4HUt?6+;Oh^0&P_;~ z+6RtLw}8>`S23a~_oZ4)lCHMdsLx&lh8vCb;By?v{G^S#s(F|!#jHU;;>OFXLbEwf z{Lm17Pm$c0f`{w!{7yjkqZp19uj!G_qHYl{OQI~%kIr-_RkH`Y<=_&;0U$z%t|Z>a z?{)?_1L{M>Y28D1VfNmkJ`ug80l^NQKCd26!HW3nvC&r9?G>krhK`hB;8yMi@D>}$ znR2a3KLUBq?C2^ZBtwN{t4=h}8?FrXj1xUV)pp5H{K`VsjUK*U>T=cn#snW#13z`r zyl*<$Cv!_KHUb`2r1K7x@{T9F;9z!6CNDi*<63ub1qxE-;)SM(4jDcypBuBRs$8U2 zz>N9vyC1B*-P@2qcFj-qWQvrG4`z|69O{J%orRg;U*w#POWn>lnIiX(Rha|Ns@qsh ziv}a$9AW)VM7NE!4GqZ)BJVBUb+Qw=_Vnx$IUs1E){ir6D&Rv^hwAjWjf8X+*yF_cbG1K`q}<_!j<%zz2FWid|wa&Y!|QNOpx!;#-pE1ug)f& z7|fR0_P5Tn@}Nix>LD!QIA%aX>w2uUU+`$(scGwyD~%k_T8GaDQ$4B6qu8~6i9Yc@ z@oqiD6ldOVbU14{hczP5M2t-y5U7N_SpZx7+}K~?Vsc>q{9>mkxRiv}m?)1u4rhP; z(YeXDnX($C006_2v&t6?JFO2M1v$m!wE0yM%VDv5(Ow>T@QF)OD~+2Q5fcY@Fl>Ih z1~nk*r(&ny3ktawVQh!Xtt9;}c~p0Y>J$QeH}m4&UOk{S!?O>mq%-&d{qAL3+Te6u z2@uH88XHN-gT%1)7L|=ZrNju2L9e3}pR*n}J9_-Qm8Pgo=h#l+^kq|BgOopdV0VKcT#`#dI^?3w=7!RjeY16UPH zHYZLlA{ZJg$Rim!vZe*<@&Xp=s+qlj!T``9(cJ*+)4--hFqy|FR)vitL>oiIkoYHH zAS5{ZOj?=cSC+f_7M`N%o#4>GzLC31Z84|4;p2XlcJZG21j0$Hw7vb=NN+O4>{zt? zC#>!L5h){BvR7ld4vFfXV3J6S9){JUgp50#|;kvZ$GqN(P=4x&~3UNgTS5K+tqZRZmcT z%^5}YuiaN>XZ0HM+MV1^t!CE`FRBb#WBM5oNUtOAo0^~Y=)MlMu<^GYG$GRaMZe9q zVPA3qGFE_B?NK1*L>Cs zdcm@-LZE1LsR08=-s>}w>owb#BT9dsT@3NPd4fz?nUP(Mb})PC+Fn4%3?uOTn#a>z zhNI_nG5y1l5xm+wRx4}Ogt^{;FFpsXlI&2&pROR1v_efPvMPKGozx$ON1CjYo1cmo z@#pcVpx|?WB~AiW6hA51&Y5-}8mADY)PaR}5HIA_-Y>eaMFJjq|9;8D$#opR61SJ8 zisJEAp_Wh|T2tuhQMwtEQ_parz*)|DWC+TmT=+I2j}@p2*;+~1DDb>LDM5JaZC*YX zZStEgZyMC|;)}wxL0SVYWddOWX&3K2HBN%IrZ45Vr?Kqm=wS{;kkWqch_?aa~0-B$O>Gn`(W@Dff%Y3PMm)CqH^M#v`{%hO@?&EjPtFf(st6H*7FUhAA~EjTdYj zD%tgmUkdCOHtktRKFcm6j=o=x;K=8dEvjLOsPoQrnx2jTzff+OZb_UkxTuqx ztK~9>`y5xnm)rj)BxS@yToUqlLd8~-xfp=O4G%sC`7n6An_KV(Rh*OOiMk~-m+rpU z>C_Cve_5%hJX?!3c-B~JQ&NqoA-ANLpAMO<3LGuSw2L9N1*1=vnJTAH)_u%TKo7kk zx+}~v4+j!m6y++~LpcJ3QI5ID z#S>*_hBUnKyzIKcQ#_2w#_7Ut6|?{1`6;<{$?^`?gX(?g7vY- z`=_LIT}onby}9=R;_VPsu%s@Dh?72bOGht?A9CL$j0dZ)RN>Np2ifH-!$@1_=gjWz zw?C1pMMgw|je+r32}IYxoK|Rnsh=sSI&O)tdb3uPDec7evfLGEdNfOvkwx45EyXI| zGrkjzSW6_McND3_FzI`f(qmGd{sz5Bh~{&0}+PscR3Ht%eVNh);x#a-?EH+u4CUW zniv+5Z2>?bWBk8xy_2+?HL93|x^BS@(({w)@RUa#RwATBTg%0CV zk`}-FyLE0(BBbx^n-b$OlE&b};(Kcsfe`8S2&pVf|M!LKho8F_J393jhJpI1>tgeL zI%$LvpWb27c2T90H!sOKubE*0gtAF__5~!A$NRZ;J-(#Qhs+Z$V~?9Iop5vN5Gh$q z;E?}&E% zNV<@V=#6jCPb3|8ERzK49{tL~>)XKZP@glBL}z_xWrmkU$>+%_fYB7PpXlOxreW?STjz-g;HUe zH=gj!PiY##eZN(=`)T)^x9ck3#6?;qFd+HJ^!VJ9?C!LW?XYHq5k9(5F(!l8kX_8q zJu6gay5A(lm25}t48JgDQJxYQHiil76HY_H`tB@Ph#|Ah?xk^ybO}=(qRLS&iUu4_ zQdvB4h&aiufI4n*jD^C$SC;a|(ovku;`y3PKsp{?7Rp8O;ECZoh{?s1ff@*$(C0%p zGG-lr9`y-{u zkMmjCli5xB{tnfcdK6>YCZnEx_B0B9s|^O3?oSso#+}YL{aB|N-@@k>DLe0R6gYh% zjvI;r$skD^ufXiDEuImcy((;rT;;#YI380yQ~>~A$`Kaulv$0EGXEHsRvXb?Pw8t9 z+nzg&=p{99xj~_E%3EN&!}G|Nbjw6?0>F|fdaNZ$08X+X>S<x4Wh8hk;0yR8Xto2Tu*7c;qJwWOorR+Ol&@!N< z>D@*6-j)S>4lzJ^u2p2`y7Dv1^Q_8|s{>XLk>e0V%0O0m<}R8!J?~-#nkOPHsr~(P zIW0=3jXXRpO2L?pNY?4ag#bt*_vKtfa=1H?{?FGPN|hU-9o*8uBQWdP4zw7i04cfO zd(!}t033wzv`v!>OLdsxjunEe$TY!*4td{*rS`~k?S8t+f>C|$^W?&v0j>}0{XE-^ zryfx}u{_>e(XA3hlBxoP#FJ{wI*4|@MiP5nZ;TN)JVCx8($;QC2;kM6;#&Sg7YcMv z+O*~4>7v=`c2wlxPT5H4aVh!xfP@R3Uaz>+D0yJ*I5W(;2(z%9Rgt-H*(vySnGo zQgkTD`E_|~(|&<`ndzH71M)ovlH!o~bbaomLoVa#)~Z4Fm}`SZXZuB~4E$zaSf!d- z2jy~14iLFh2*WP&*Wnw3tqAYL36nqTWB+N|FJ${?x*#q#Evvc2Tx(fs@AhvC(PeB8 zCT&b`ex>&M-UZM|q_q&3w0^xCx#0gxRGobP0)F&?v2{UZV!mti5LqFERF9HGePsy{ zHf~pIcT9cba_jc*|CPZAm1Be)XcIA;V)%yrAG~M9I`S|7(>MAh!$qB<*CctX+%(687btMjqNn1S+XM(>l+D zFefr0%*#v&^S;Z6Y5`5omCoLh-wriD1~}c+_|9fAnU>)*fqwbHV2(yix3sV}nb{qldo3p^f9)8opoV#oND8 zkAFaxDQynQl$fOUm;^xEf+szj^vcTx=Ptx6tYRMl6aplDG{te-{eVadJ=l}K6JbC7 z4G;aD(R{yrQ9>KL@VE*SDG^g&e-ToZrPUZ!Y?Lrkl`~$d}aB;5E1;WT6Qt#JD~+6!+ktI!i)L1YFmG# zoJVaZTl^+i#T^BUEElF4KE=!|uhJaI0xRbocCU|@Gi`nLPmKi2r!r~V$$!wcy1A6>bzS)~ojG|uF4bpLD&cg$BFcL#{X4+8d=rS@t%_i8h4Y@%{9QWD@;BUSLGG$=;mbK3!L<|}@3XG<5#v(WbcP?H3S z{`3eIwLe2oLy4*trnKYNSoOKQM_~Y_q*eR{tV7N+5UdB+&0COHo+eP@wiJ=vFh!q&jRV@dw%2(kY9Cn3_ZQr3 zw%D=}OUsAk&;@m^T&}~qz*aH9qw|OuQE&@>EJts+r>I?i=$Sd^(9Y^S`Fs^>lqjGP z<-`o#(w>pzskgDI9@|rO<=h2R<%LuuGXAA|-Q!kE6O)b`lL+I|VQPcgUYCKmkQUPX z*@TUu8!Ap8gFf}p<%^7v?oZ#}-46!>s-jT{++^?pDp=!rgt^%(6jS)O1J$OS{Z;c-dDCt93*1cvFAlQiNW+8xFa8hWxQfGy`%=TwZI8k;giE6=f_gEw!WRtGOS)d!GV_ zP;Yii#1U?}3hwf(eHrzDi(xm-i_F@-??3;im)vbdyoDQXeNI=~WiQi&h8L__1{WVo ztL;5P+6MLF)oF+1nEY7|99qLuci{K%?`{ZhP?@(MB6f>j7gZ=6?0%la=GA>^KI5hh z0-l9N#G^YDYCYa#-cOxoUHy%cV{G3GTznE*^=643r?7h3Ps`Q-iXhw?6Op=P^x8;z zgA-VqCCmM)(_`ks@)JQPqGTEUbFGD!S$}1Vov5O}v@&PSbhZCr$_L&H-GI@9kj7&O zoRejYvZ2rNnL}q-SU7IriwU12M4j*E7(+d#w%1n7e~DH)FwtnZlucGN@Xw&0=k=Ji z(x*x_l7Ng9>)r|~Qz(HrJmuj#+|pki$4)( z&in3WmG=yC%h$ZFYGAwoJv}}#T|bG$VGI%q2|0iQ4MIA)qr|uEdCm|apP6HVOC7;z z*HsiTanS2@aLR_Awv6(i+Kq{`{B`I82V-=G^zQMhJ^m4xZQaw@A>{u0fnpNHSvv!x183X+&I-2Z$6&iuhyM1uTAB zJqh?o;EsVr7~<$%4~AhWA?YH633<+Ws5~9cLa}B^-8*BFkJLl;@^neY!t~c&* z-&4}$BtDtkT9DWhuid(Rul}y8Ox@JHOfy&ev}#CgUC$Z4Jfks7C6aE6@dXR?P<0|f z3q!V6xmblG#-2^5y6drDSyesnKu@&5+T8y0ND@|e(=X8L0^`>!nCowmV6*)WHEL~w$tYs)^m71gMGzg=j z06}b?krn8go7uhSFY)r4wW%Wdi1x7PwN1Ro7+eKBGA`Q>HfDl4R3TC_2utmqFIAAF5xP%g^NO z1B4VCcY3%?6Qm(O&&)6PJ{)@O1hKTg&;RB*E#0J(c^znx<&GPCX$Ou0lLVholt(Ee#59(d8(8fy;~6Aral=AEs|r7 z={Cq@&;-2>`QFU_(Un_j>NH!4JPdzLk*!zxy(jlUZV0b57mvXh^63%gMth~d+(+uA zbCl`Fibv>f`52wm>SSi%>UkRt)QY+8K@hi`H!Ga z&FuBy9qUXF!%s$BX8^U*X3Kr;pE#Lozej&$xomPf@oj@$lbP6v@eV`zXO?ffCO`lE zXBH;@`d@W}J!#{dwKFF=iu>$sKkc4Y&ub$LA)g%qA$So{$otQHM_)O}fBL|+5JXw! zZJK`@Rp!^uicRsWCkQGHRmR+rC-ckn>Qd;F%e(q+-%@SDT6ukQ0@wFi5D_Q-J|P^X$M^I5ZoM@eg9E(TS*m{f*f;%N<8>Eb=p zeMI@%w3J9`XmoC4r^kqw*myZsBx?5X~5D-Jf zTJ)J6#T&p?CC`#klI3FpcQC9ii|fv}%X+0zT zCn^93g%KqL$_BK=kZ5{4ac)%XZIW04@z@o2=SnMHXfS|9AR-s~zG32%zIf z&kc8(4STFF4nmeTr`?MoM6%kh`ZY4-v5(01-DP?$)8E(748;HFTL<%l5WMT(>ED$% z|3};5;KoQ+4_U!o2i-W&QBjF@AJ51JWa$vay!cQE6TH+@VW!a9kEZ!;>iV^d?9(8DjC5Bk2m~tn;*j6Rn4pavp7(fN ztv8?o@>4%UH4beu!h4)?SC_3f{K1H)NSqD;(-h$B2NcX z3Tr48(_(F=0M7!?vVzIlvBJ_6WbdS@5bYx>(J{I+Qj{Odp5Fnc#QQlyM4oKsW*lE^ zndmMc2o-i?=ZGl}&sB{Drl30u6pBOq!aZmb0N74eUHuT3;Srxc-e(;r)&o6oBvR z2roJMqt9SD{Uf8-!i&j5deK|k-=?38=bN_26k1RU$dkt`*8OyjoM`fHy6h7K>Uoe=PFpYH#U}msZcs`B zovuQM^^5?VgV*`JnuG&>_NcJ)SOk@;=K8rE$1qUuZ<9i*ZYD=`Hiah?(1VFsg~0+? zdJ9n^cy*Ubk-57fkM(_|iXVXiWHoss!S;&8AV@@+cp`3IU~-tp^Nfn4ZkjnMv9k+V z#1&bbog&vIH}g)%3FruUpq5&VW{D794(rq|&^qP0%2dlRq%@zcmmUk~iewP-TtXy} zIJJ{z?*)7)yD{NU3{QI2rYbPB`eGVr}%RW{@?kes{RH2cHU4%Mee(@$tcxrar# zSMd!{JBz6tla;Hu5Nbd1RE!7_2t>+m>pm&yz;?4)iHAGWK|Q09)RC=J+u>6EER<&C zmmJIT6g&=M609Gif4|*8%JkAc%UX|_eBtgIqq2O2t<}Sx4pyB~5eI_47~Gx)8LtoQ zkSOd2blkNrd>SW~M(XXt!-oYq_@G57i$omKIHW**N>yifd+J!xhn8WCh0dHdFn7@U z1zO(=mhIh{;ts~tlFYK1m?9jS)ngf*uV0F7DUiNU zE_{uqLr62h#qp)!Gl7Q#R?9rK-os5cl^>WT0YAj>9qH#N!}t!wg+-@1JExCV+ZlDu z?4A!rmb`;tFJ*c($T-UA`|!TqUR$snLLe*@Zdi4f2Nr|oC7`4laDw^mX;$lH8A&z* z&axc1*Bk=BGiA1Y8%lRg+^+STuke$(TZS0%Kixq+w|Mi2XcB8n-=R=*jR-qLfS%i| z8R}k8+Xu?X{o^!k@hHsDisSj-bcdG-Prnr6(k=Z!UrGPA3n=M!56Q_9$TR*5bQ zg#wSN{w+e;OETCp-2>!?!}XvHuckb-u9$PDTiwH2k$FKHzCf=RC#B zrtok*IdPZG{;^tDu2T_Cqq&2gLstpZvyZF$vo!x{$O~y}e0(^ny`ZSPQ&Cr} zGQ=_@B=vlfb$(@80(nLOBM6Ren4WM4PpP8XhK8KF_GcL;)?jr9_^8p<27_49%6mc6 z_2wfqWozNp8L^nwXJS*v**${DS@{!X$o$T$Erag+vXuAdB?-GFr6VFN2}5ghNGt%T z!V%5h>!NtXCs3>6GTEY3xK&+H@+ni^#uCgEuO0Gi;%pXJdfl*1VdO_=kHWadrfTLq z&2uYwSHZ9Rn-j86E3xWkYAn#|G(VZ&gH+;Q`=Ji|v;W(ZX}dF4xug7*r6&AR!{-Lf z7IW>@>*t5$mqFM6rCIk^GJGhX#0Pi^ZcJzqU+1F$)lA*k{W0aETZG|&59vdw62viCfVw6{1)3Q+F#{C-2%w=?`}Tg2BomDJ3xBf=~A>{|l6-gWy%niobJ4{`h@8 zjzXqJ$DepPF>JULh6jTNTcNnB1iDhaQXYtz+Q;o z+c#T!5n91ONq)nzT}``IucSi_@EsbXB8e4(%3$3g2Md*xE9ck$Y-Mkkr0@2%hk>iJ zGfZ8t#QNa#=8b+{tDATJ+#}Bgb(2HPEEi#$_aYP!)}e`xC!peA_EfTAtRwee@pr7=o?L;t&Dek<; za*ikw9gD|_hYjpLjzr~$)IvQUw8nl!tdgE6frJ)~?GC0N6)Pk*-)))Dc^YuS>N=v| z1uTZ>2ATC=x%A*qZn@i%8Qpko^Lun-!cW67XV`y|nHgR$d355gCB<}79noKFeJ673 zd9{H*SO>g1g~V^QwY-H4A>A%sE3in~twqj$P{}Y*6`TcULs&0NS(epDf2ez?ss;Mf zEB~*xKQD)9E05Iz#fkh$H{kFigQeuk2u^1k58j*oD$WOkc9 z{?z1)X}a9B{QK+An?RTDOAHz6gt4SOUjs(mJ8-oEFq^#RfOJx&iBqYMf~<^<7Zh-%N+cxLS*}^ z6aOyVKWirc&GqzXxVtT - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name NuttX nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include - -#include -#include - -#include -#include - -#include "stm32_wdg.h" - -#ifdef CONFIG_WATCHDOG - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/* Configuration ************************************************************/ -/* Wathdog hardware should be enabled */ - -#if !defined(CONFIG_STM32_WWDG) && !defined(CONFIG_STM32_IWDG) -# warning "One of CONFIG_STM32_WWDG or CONFIG_STM32_IWDG must be defined" -#endif - -/* Select the path to the registered watchdog timer device */ - -#ifndef CONFIG_STM32_WDG_DEVPATH -# ifdef CONFIG_EXAMPLES_WATCHDOG_DEVPATH -# define CONFIG_STM32_WDG_DEVPATH CONFIG_EXAMPLES_WATCHDOG_DEVPATH -# else -# define CONFIG_STM32_WDG_DEVPATH "/dev/watchdog0" -# endif -#endif - -/* Use the un-calibrated LSI frequency if we have nothing better */ - -#if defined(CONFIG_STM32_IWDG) && !defined(CONFIG_STM32_LSIFREQ) -# define CONFIG_STM32_LSIFREQ STM32_LSI_FREQUENCY -#endif - -/* Debug ********************************************************************/ -/* Non-standard debug that may be enabled just for testing the watchdog - * timer. - */ - -#ifndef CONFIG_DEBUG -# undef CONFIG_DEBUG_WATCHDOG -#endif - -#ifdef CONFIG_DEBUG_WATCHDOG -# define wdgdbg dbg -# define wdglldbg lldbg -# ifdef CONFIG_DEBUG_VERBOSE -# define wdgvdbg vdbg -# define wdgllvdbg llvdbg -# else -# define wdgvdbg(x...) -# define wdgllvdbg(x...) -# endif -#else -# define wdgdbg(x...) -# define wdglldbg(x...) -# define wdgvdbg(x...) -# define wdgllvdbg(x...) -#endif - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: up_wdginitialize() - * - * Description: - * Perform architecuture-specific initialization of the Watchdog hardware. - * This interface must be provided by all configurations using - * apps/examples/watchdog - * - ****************************************************************************/ - -int up_wdginitialize(void) -{ - /* Initialize and register the watchdog timer device */ - -#if defined(CONFIG_STM32_WWDG) - - stm32_wwdginitialize(CONFIG_STM32_WDG_DEVPATH); - return OK; - -#elif defined(CONFIG_STM32_IWDG) - - stm32_iwdginitialize(CONFIG_STM32_WDG_DEVPATH, CONFIG_STM32_LSIFREQ); - return OK; - -#else - - return -ENODEV; - -#endif -} - -#endif /* CONFIG_WATCHDOG */ -- GitLab From 161bf368c137ee6d47aca9cb5376a30ae882a5cc Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 18 May 2016 15:56:34 -0600 Subject: [PATCH 188/307] Remove schematic... wrong board --- configs/stm32f103-minimum/schematic.jpg | Bin 134524 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 configs/stm32f103-minimum/schematic.jpg diff --git a/configs/stm32f103-minimum/schematic.jpg b/configs/stm32f103-minimum/schematic.jpg deleted file mode 100644 index 672c3184bfbead685ff5bd89ca7ee95f015f74e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 134524 zcmeFZcUV*3wkR6Apr9Z{iXbIGKu|h__LH838bW{su}}jBBs3{v2kDZ8-UJdts8T{l zRGM@N0i-HjiXb3J6E1t7z4y<3&pz*d_k8brx4bj+#~K-Ptuf}DYmPFk z99&$ymwqC=$f;AOm`^ibU}nA`!OO)f z@jqP--U8T8AG0{#bnJ*Q;3(UXV{AtbngINV-2)su?BWr?-^*cZPaQdS^z>mZ_B;S^ z;@FX6Cr_U_ew_I@(+M`fk)y{Bd&9RHb8 z>LEMczqI2oI=r*x^HL$JhW`fc@M*ss5h{9RmolnN+!lmjVsRBR?z~ zUGL^b73nz+q}sjPD0NlHkqlE+>Rip;d24&?n&_TT;Lm`OAM5+G0_W>@>#;lj2LP`V z^s*z5#V5{ut{wPH$@qEg`}38tMUTFo-9%pGfAq{TXy?h}8PBc;ub_j|AC5M@=Wg&T zY%tYYzJ;-Q^p@}^iTm0=mp3Zs=YDmvNL{{aH9x19MLQ(mF@=b#_?uebAm<77J->N(DtCW-pptP+AX>1Rg&OHKcuYjwW;%?{t!-u#;pHBPonWHNd9S1Z1_KdTf^wq4w$@s^a# z?z27XtdFh_)W~A52fwyyDR4fT?G6AOH6?gN^r>$k_ul_ez#fzmWS2CTS2@dmJfHJ2 zK={$W^LfNn4HD!soV$`t;+Jg9yUsvALey7DQQ}nbsx?r{2^7Jkpi#vqAPBO`qMLok z0_4LZlTFWhd-l7a7_YmUbZG}h$C!kFCZqy2tar**O5rh4^u&^tJ= zSTGWKHQjda%`NJ`x);EXuv%cT+c3O3z#1gu8pg+s#xh4wrrKaUpoU$%hILqdgJ>Bc zlp?X6Q#ei%k#|GpxT;)So=)$S5UtL?8%c_{9C#3H#&_*sQa>WyR@^)k?4KWe`!XWT z-8fjLW4#N#&UBRYuWmp7P!gBN(E;``iIeemo>21OX@;G8uUBt!fvTRVDN9x{-(=1$ zy3m{KBLyV80NKO9J`QE6XTkOCai~xC?Tilm&I2`+oikG!JmZ?6;Y8;uc|gWb#LkhGoOGmq2SOdn%cC=h_IiK}>U; zViHYjd2qKnv#me~1O4bgnvpcWm*JAnK1vR{5jK}>I?L9yZSjhjK^{#nVQ5r&vlD*Q z5(dDbm7JH4qW@pQTOHELvHdIk#yr&KjHD!qk=OsJ1b^S6c(m^$eqU^>LbHTY-4Eh$ z?mMYI_t{fTVVzSh!8{{1Eia6(Vc$^OcnmSRz(PIB?{DEoyT3X;b!V#5Xd2kLfsuds z;!dq;X|fZ#do)f#k!39MdEP>*Zbwo}oS@1Ca%$9m&hoLXsn{xZ6N6*LWh%7~vU$?q zTTxCv|Hhf7R#i@++KR|HR%^SL{%=AWd z=C{T_N0bWqKON7uf(z7s(8BLOyc>P3K3np}JM}K|Jlsco;-^3yNL8j;koaJS39@se zZSj)MNchVm(jTFw^kq})1%XlUf8qc49|u7`LOTbttEzi&SUbLwMSAoCU7wcAAiF;- zgu;o=!%j|`zy2|`n+*Z+UxDKDe&Pi_=iD#-7yf_CanL;XKa^Q(0F(Pa)YrtHB8zzR zU--YMuK#u8a5~?P4Su!#7g!;W@UhSMv5<6U`d5DbGMB z))kdk=MHu5f7*%o(?Mu9jGvL3TryRsKfD$#-k$fzZ{Er&wHemlO4j7C(CcJkW!_8Q zVlSnQVvH=_&N4DR3;trSTK1;iEAy{`7TNGGZ%6DgUG|xU_ZRv}l^Yp9qi#yfVk)zE z1G({&pwDJJp&=NkVcPF(A=TL)~<4?IZh9MUztM-*bJd=^e8x-jMn(~EjvRRL{ ztFk_3BdDu=6YpbzppnADtWOW@)LNpC!4byAp|jZ#581RqOlwT=G69y`n19_Bt7IWJ zS>>EL%MZ-7Ru|wv$M|3DlAeowtdmn>Kx(AuiHHf8$H%6Zi6+?mvRAJZIDvZ;2mna_ zHp2gF!K0{@HS)df-%Gp<6g#&)`NI^}lq6YwAyhl>z{?QX*mVW>w z{~uO8!f0Y~M2Y%3WbeHS^`HDu%fo2?-^)coGscZ;CS<(;;stP5H=Z1G=FW^r1po=m| z2Y|^3sQA=hIvytFQAs6fnx(K^SXQ=8|UlkM3sQmaA=)GAUhIo z&Nfwfzwe{;0-2MO%YFcjlL}dzkeilkJmcA{;(D(QmHIx8fl>*6Bb4IU`?<0ZYAIlp zGgE!!nZEdl!w`^sf~*dXdrH?!muV0;>&6AKdkEJra;_dlqgnM?L zYQl?ha5IO8w_dR&JZCSH%%zrJpcHz%^*z>>IQh{SPt;GiK$h%}mJ#4zo)jwZSwjv# z_qK4uD_!Fj$8?Plb@!Zk81!|rULi1pqvePGM;A*;%Yo3SYYB#~#HQnF-JF&16h#5! zdS1gAtCh_MfdxL?#An@8SM5#z@W-!(z}n^eH3$C=U$R*0`zYX0mrYj>nfd+*z^p)v zxbxJ82zUK~x;xLL-z5VH4@E#0`{KBf>-(#+Z8wUqJAJHhz1xe)rC!ohOP!ZRi~CSX z3&=Xxw&|b0>|Y5iCB00XF7L8U8itM$NKNv)z7i}!G`UiY836F%@3Z7Tyz-oV1aOc8 z9C`Txa8l{vp0Yx%1<} zVSXgl2xq!xgj%I5j>fWNGWp(Su&HFT@? zLXSd5r$~6Lbh}mar*wbP{%wBKIK-ph+R0=G55B6q-X*?%dg>gphKRa765W=Y!`yG_ z$kZ?8kiZ@+XH=@2wX1icL*KmtqQcrn;GRf&89FsTEYy+)%Qbg{5~hSSFtP<-yU-O| zRl$>|YFVay#-mkP%VEJsU9DIw^DOe+8dvz|V!Iq%6280I;acAViC<0dtA3syn@R2J z+k0sjd={EjDqd!UQ&RlR$%?=V_C+T$e$O6BntzYWI#jg2GLikYEBB@j0J6u%o@R5p z?~ZDD9vd^rTDK48>37=}2?NzST8OFB^4vle9W1%UXk`o9FDED^9(?{aLNJ z9Fy}Aqxi;rQQ%_E^>icp#NBO%w_3IZeVtSt=5aEKDFSh%6)Q-SY8E+V4 zDjG`_&2IhSQQ(h#7i-$!w$zc=m8atUm06rjCKg1vT@C$`qV2ig?Y9xbT~ISw0lvlP zifUtUOS!~h`v_l<_#ge87eH9%EBF^}byB{jp&AC$eBlqM4v6!v5$+#}Br-GF*%T|~ z0f#_%ZhwC<%pLaqJ0D!@H zK^`T`3<0&`qQPt`OD4=**%<38C%go;h!bRJzdps(mN2|wB^h7}T>48eii6k9Y{95% z&)G^>4k%RG9=U%m)c40+%NRujXuRf{93Uq7IR{8?Q+YPjdk#y3`he6l(%*1Q_czv_ zirr4SW$IHi0+bWd7mM#_JJbJS*9tPnKG$C;q3u0)+VneLc%jm4dNbFnn4?>+$0-gR zUOwXW9MDipXg0~;+_fm=lgT!T0$-}swY9lIo+Wy3_7Oo~ z{C$PxQ3ttg+1t4lrJus-Jh$_ru2+m`dy|GvXKIcChh(pyJg$&V6_<@{0vZR&! z8Sy9k!n|Ft7-TxRUSO%{I>r(laxt1Af)(r&SQxwn-T9ec9-wj3>dJCwVHK_NS0_TM zrr-sqcbWQEQnsThU&^r&ve;&$$`>s3rd4>_?sF|sdV*XJrd5=`OHL3g@7t}Cgn@-a z)CrzYWSqSU1M_RFQ6I5LR&MJf+4&uJ)y|G>@ie0@A}Cc+4ki~a>J#TD;BrMGBJY^t z6_U*d06Ta21Hf0%{(@#cJ{PuTwPug;&k_GZ0?S*i)HnV-uki`{m7~SQThd2Nc+~d3 zY;yQ;s+=PAG(@y4(&OEk5uH1LqrYjC-@rY-T;Nwm+RfUuFaE)AgN-4=^72=>?N)b0 zM1^CH9#_*-D znFoN@vYn?z57M~jO{9Nh@fL%oRIr~d(K z*6K~~{{d&t{|^}t{rc~^+?byW`?3FVMep3cMg~KfBfMUzk_QgrJYALut#HN3xA}+` z)j5g})-}}G5Z_$L>5+bPuA8(dI!*KW5)cPG)MstF4@e3zf1K(Z_Ygz%;TJzMgxe}V zp8Aq@onkJ1acw$y|DCZ50Px3elk-0h9{+8n6f14K4X+C7GT!r_BmsUi&=z6QkbT&d z&+JtwOSe{{d2@23M!g^Tz@vmV&S6g&PHqVZeU+b;H!1w z6V2$RoqUesLqDMCO{Vj0>7HVfm683_z_DZL<7uBO>s5Z%uskVp<#jM}v`qF?J4>WW zs7iDkPXk8sA;M5e-fBsS2gA_@+LKK zwB?dn(GD4`%M-r=m@>RxF`?`U!RQkfCylhtA0Fd+CEJk6260~|S=d{A87b#zj(mbG z^_?OvgaH|-g!7DtO|9L-zPaCaZ(6$YOW=d}0QeX9IN-^sg8Cieh;!5VMl3z*76V!9Dk8^@M!b+a29Q}AeOYbVN-1ruRv zl#^K={a*+K?VU{vcDSn>gWQ$^w_6}85yu(j5h8D*ch55kYmynB>*Pz zrhHN-CRL;@2>TdI<*r8Ec&c3!bTI)~G**r6j(|UFnG=j&;Dg!rV|1NK^C<7w`EHK7 zD}*OVgd^jr$Q$)vDvSCVr)Sr)E2yV+Jd$B9&mq$dqiAYP z-h!UHnUySr4#iCq%U{)c1I@j&wT6U0eBxLfQTw*&)mI#tn0I88A3wUYvHYukzP0{i z5Nm^{PGRru0g3V)dj?rj@D5y4XR_~lpqf2%n%=V3POcZtWV8krz0 zEnD%j=|0?!Dsy2(+d`($4JHK(u!W~6jhMT3r;VbFfrEiYo`JnigP>?_99hID+F|OR zO>U24D||5z)5WKH{K-edVRw(*9<4gyU`H|Q&!MO0xY8dZ+v>$7GMiX1hT^y2Yx8-ITq&9gqgh*jz_m+LM_O~r4%HV)VF@`sp+|{h4YAK z=8K&9@dQ>f0(8yHEi$Xhxyq5m7;bAKMweGT9jkrr!ZAS0H_018P}hJ~ZS&@+2M!TW zUO^ZnwscLwMJCyipdq{T6z=!(aV_v)5gKnC_6CiyDbliRI3x^6+F&<}6Zp2|UEdo{4$)sq%KIy&qeDq3i(Dp)%kZ)`T9x!69UjL4Zzl*V%v-EVV*NG~id zm?!y02aUJiUXE(+w>7TS4Iov)oho`M7Uo^Y>v+rOq98J#CHgtnP27o$q19P!`P?|^ z0RgD--TM6CY-kkNu!_bWSsq!t7BbW3+C@^9eE}gtbYj%o)1-OY;+b4N*A|np6Q6dlJBcutM)DF->$>zgb^}U)YGAg zWzY;P)kH{*d!QYk08f{;70X)1>)uy)aN7wQghYpaL1lnJMel&giBLqjoGB1J+8w9l zFa6p4iyL;?gxvA~c(ZDhnpyUsiHJ-%F_zt-JwR3oHNN4pV3NUO)8@_xi*CMCjLNk{ zr7l5AFLNM~&s;x&6WGfe2J3Bf^rGqdCo5ZJ2({*>GfvXi%a^2w-+l1Ov5VqQxHyJS zKwwO|M3;ZH!6SF@#Oan+O1BqsOs~uu9gX160cQCsW&4B6_WgKqaa<2eWo@T7y)L8? z3<`B0Rb(|snA%t{DusbjpA@k#;^TlYD1j8wtd-Irlp>isN>cIp)P9@lj!1ESH@B}; zaj4~D-0BP6;G2PQLj|rg%?(<+Y8Aeg69Nk^jDE29iBzPxQdpqY^V^fiuBK#;tk0R~ zm=`5=&+Sedta&=>mbw_d$6yG`P9ZlFLQjuD<+Go=UxjdGPe99OpmL&fN8kEym!>^@ zzErlG^3?C;Q=!<_yk8+Jm)+M+>In4*H~PI)_CF@{a-rdN?FaQyjSmjs;!o}@Lz1BQxLmp$Fg*>@&FlcOQ zr@Ygs0rt9OUPBC_cmXgVIpg8=(TM|g)p?MDO9I!~tXnV2ft>n{g8K{F!&Ju35Q@7M&$Onxe zW62V8l%V1aVz=o$(VV`2*Rx$@mcV=PC} zw}~A$T{{k4E4SpMn{f4t26fBMoni#;o~>1X8XSE9Sif=KZ3h)>&g<&fb0)=N0X~L{ zH4mq9Y<2Xv5Wjk)vU>~ZW9-tP6I$g?Ytl?+h5nfD_KfMgJH+^YPV@7nLltS**F|FZ z08@}AjXjQ$#kQO3QY`+XsH)HXkNAcOPbqRjTKFEzII$#S*vs z(ns3lqp{SA4relh>P&baliLHCCW4i(g9Kq!zy6XlZO`wjKDj`p+atwPDr_6g<1DFs zRF_Z6kbXh%B-E%peR6S$r`$!yYB| z+|Ja#1aOo!@|)_VBD#~Un;pJcH=&2`1zljE5ISHeZKF9h6-8(Ay1V$qza!tP-5y&v zJZM3E4HI!mg&UJ0{WHRL_Z~Phz)ez`DO@l)9)hi6c@_#XJUwXUbh9oFj4^+pZ_P^( ze7>RT80bI-0Q?{Q&1n63`M_#nR4;{dZ!hG2&yjT1z&2+St8*_k+?Xth9n|F50HVtG z#(o(LT>S=)=nq82nBxt_XLX!(o;`UFfnJwb-Ee4GpQ`d#8hHeG`zO`EK}Q~+d%xj= zBnTswdEyO#v=vx%rDW!bWb&KJ$x0!Q53?qCAy7h8DU3S2GAv5tX7|QhPO(h2;^KRr zy4OD9UBo$rM>QCwD9JX*iOGAYx9$L`qOPXjH5%{87T)-G?Ea2m`YmoH{9E`JlEiKE zi0MyfnA!8U+`=78GXV3W-}WI${q7}8HaYUMg zr`d;NvQ@_xn1-XZY}1%^MTMz8pVdc6*UA?we{l6*6*Bgi)oXAu92@CxP~i*kF&qTT z1(*ibCa|NG3%{`xKZM71MnHooxo_xv`*3A+@7Y>6j>DkU&u5;ybu+MMd3-O)D(_U` zj-h5m5`BRiuaJINyK+yhbJhZ7tWd!Kr}2tzex_Xz`Wg+vsfUc)W3IXZO~}#N{y5PE*cD8gpezUT-^W1a;83^g8tcv>oP)yOC0t5~8j}3|~q960GoUYNMeM{Z9Xw zjZ!7_siry)?V{)Ghn5z#VzP{C97Y#J(uNeekvsrKk?h0;UAw2^72 z#|68$rJ>wm^bv3oz}rTvvE^C)(w*BFqol8N1-t{FNm|!uK|=UM?Q=}>#*e0<&M@X3+`0L}VdOz-+BTlvK87kwXHPj1-Bferj2jD`g#vx+Ol z3-Ik^g@j$m#fnbeF5zZl)ed)C*GTIt7R<(~TNGjaE=dtjF&aBlsXQaiIX}u4I8xo< zO32-i6#4E@C|xiE{4`5Uai0%g4C}8&&M2jmxm{*gZd6_fw8qpRvR#w&s4yk_MR>a$ z|ECPrv~+~)st;znvErib9&3YxcARm!%STt~Ym5)8Xe>i^5~!QD#rLk&)oR0u>{2x; zq6$sT%_lZ~&%jRElmV~QM9E|`wNb?~DrdjkSPSye8!^_f^~KH9O%9eNhtStS{ZF*Z zfgsI-X~M|JfGW<@M#gF>&IE8Q{L!J1Gp`z*I;U5ONNc~;qd7`$q)2M$j=SFt5eQjI z^JMP`gLV<1DZ_4F=B`r^DF{AH=hd2}fVZY;ZmetXc0rD{C@336%o1Mcr-C%>%=0R8 z&GWD2bY{quSN6lxW1i-BU_^;9A0`M;h8?a;Bvo?X>Im~duLGemTok1LR-UNlh|hLN z4l(cp5shu^YTHTI?7HufB_nsU?s{$=Npyz?wqxwqSN0(HQWC6ntLqS~&z;aRf4@op zq33MF_VQxt^csv_a0aKFVC(-A(>pK~Ed`Iy#)>&*YnE|5{VX&4slMnDfK$MCh5yNP zp$T~{0;!9(aHkAMa1ImVekR==@z)=@d7LO^@SeSoNCC;iD_z?*SwH7`Mx+t>{et@mysfju-Kq zH!F7wp`USar_!CRvn%JL9WI}}!92_i!%9OCBuA)K?ZnBprt~fYaw>1+cY~+Hf<)A? zRg|z|^$AinD)(|MRW5s^EUeP72TTZwt9`g45R{_~JOGg2+;F40`)~a9phNL)V*CuR zV@p2VG!zT9ZO2ISIc3`7dF&LqIH|HP0}NMdt-i~e_tlv8%9vV73cQ7_#rXA7hVi$n zmGbqm8=0phu{1N(nHQ0SsMC}3SH~~j^EXArdl+!a9mal}mN+X}7>v{aev&+?!WG`5 zMl4_D1DP+tBao{V_5Bv#SyYHoo_iqUks=70^#Bl6RxkSG-KssVd^3_+!z1Iynk%$e zH?0%2>`JB?;}mk>PR~J5teeHqmPVUcUq0L~on6Ul##qMu_O*3a*fL_C60*+*{3T2H z95sI>Xoek@TWjbwvx$8D)1Wn8Wpte|Okkqqz1sP4_o74uAr2pLip&Hr8EiPpOEs*r zH=FFuy@$SIZW!=}D96Z|XrgCXToFPGD7wlcd!T-?%O*=dG!bG(6zhHvV;+|Ui6pAT zwPa4I{ig|Irj9Hq7>YM3Nf`2 zm{{Ga>{Zl6y+M!Iy&5wmaxWOuC0|z02tDzHQ;SQ!=XwUbBvX$Q;BeCBucw(Wqo14M zXBN+;AltDrLEH}Oj=)lwwFO#H!2#7zEJV>jH$ofVYd3{vWQ+~n0vzl9hr#{}a4a78 z)S^mgyg(<@BtIoaN2jwXimftHS*ZK5udX@F!g7GD!<__FV=*K;ptZy}ni zc1nNLf&%3vW@6&pk4j3uv&B@qPt8W-!@kMBdC$!ii!{e}(hH9}!WB_eR;4wx!Z&t^ z7lfBEIK@>UWzj~ybZt4WoNSg6rLD4|k*#?&Kqe+LY0;?gcX$NXu0tB z4~w*;#L~}_dK)7bx|L&WJ1DHlJ@M=KA61{lmHMuhh{-Qm4BZ|eU8}Iw{`drn$C$I% z&>wo(xC@?fne)c4iHe46JxdvXM;hzzoC^NQnx?XrzRt&LItR(KuK1=M81kbHv9(e+ zK_V2oV#TuGxi89wx^=_+fTQhZWN=NE0zUHP%}Miyz~cNet@X=48hYYK(iw5v>eOQW ze5-jMc#?p62;oZJRe83C$LJ!ZI5|?Wd1l#`j>8r{{R%0B-clu##F%HhHB=sc=aoj+ z=Lor~<^D5p_GJXA#ax1sz+Q-o+^Sr;sN7Ul$xqbH8EpPJm_=gXuSwkv$@#g65|2JdEguDi=Y{cfw( zgc{HHi+}YKd$?U~ws|ZLQ3O+5jGszU`f@MNgKa4V7iuQsNG`kE)v`|3Cpy2N6RzYh zaW^#ieHmE(oOgGgjzyIlB9HPrbkU4nSV=A5E4oVI=iJIxy}1+9xoh{@e zK;xr-5=8*u)bO!pAHh$|vkHdmW6#lgTu-?ZjZ;7g3BptHCRI6OXsAsPdsHFnT$9yH z?ANeriSjDO!h@rcFJfcMFsxP%U=pPSoWS3In8r=G_3$Oxe}KHVKKU}p-Qz}wT-CQh zc#wD<(C+~7N#UxI+VZ;zsfPV`nE|&y`wB`;+E$r^uD*+3^0|cMlL3Mtgu<$|^Q3%p zfhDQgFU=Q^La?_>IR#KY|^4?;0=mLj$#?&`?pGH-cp4)SPJfoqPYw_ zL8fj_iQEmo-np$_M~%IrhEt1mo2{7d{h00kRJCb3*)*I~dbp5ttTOjrCStD$ zuLa!%R=c;IZzwjK3CW8mLQ+lMgfOu&h9rnIjEN5wIK{)gdeL)5(yN!sS`|73CM-tB z58#0c<-GVTyI-RiQTHBp!VFs~<;K7-?PpCG8gCpIn5-~StMobda=Z(YM3xk-z#!r1 zHk$*$fI^%=WIvC6GD32xkMSOz#Sy?_`X#M<(2c4_l3+yTtZhGg5H9aM6WHpmey^&V zVoqEBK-<15*97tWQDIt6q2tAe;6!3oD$jDeDXu&}{~lQ@*K^!7pCivGbdv_IN9pRL zDarOD7RjI3S)laNk3}+C`M%1&(ZxooUC=YQ>?|m+7uZ5rEmFl=-9sk~O4u{JVWU>P zX5@4;Cd3+WcxLn8%63hfA>8lFhYrs#xWM2HGpfybo5volt^}1>Gi^>E6IhcwSN-w@ z)J~6B8p^BACwrW*d$`PVcvzNi-xb@yB+|O@OFu}?8+===Fo;@Y`(xPK`WklOg1Nmy zJj$c-ssK^6oUAtGf7)RSx^e(`ookoqH>P(wrFsSyW>?;>KtVZKUjI zHwEq4Xe0xF1<>ScQPQ zl9$Fd->1XBU4PpF)-)%TU&u&(4ynje$4$oeTLK5Bg`O1_FZ33&P^HZCBb-Ml zi&uL4f)Pc6@)i#T?o*ExzCwhT7=)Qg&?ou6;o}6*%#H&wG)d@-$ir=S4{h9ei~f;Z z`=5y?{L_}if6BW3`z)KVo^NR9M7ygf5gGxiyx}l*9hAgUhr&ZmvNY1w?=152(u(gP znV#gElv6I88CHN7wq6>_|4GP0PI23uJtJ54b}stUhJkfrW3&y-$vy=mo%hL{yfFuk zw_OaoX%p$Q<^wbW#VOw5lk#%S>F(E%w3E%}pKIA^g}uGy_ESzF=DB|DWnI@Ryv=32 z@}Q3+#%7na&u0k3;XltkM~zkIpYLZahL=;C%wwrx$f=@Noi$aKSC5Xmju*pG-yf^N zLt;*`TgqFs$=roriSPUAwGoMK5P|T<-PesAz29GZJDv|BR59{O{qQ_DgBWWxs>3|& zn%lp7)7aG(gbTU^pjUZX@*Gbqs2@g5g{IC07k`odvlBD6`wq>4UbC?bc2S1z5xYJw>u@?l9NhVMio(;cUtT% zN}}Y<=ws?2koY}Ff9m%PHt~xlmi>?XQU@;>S+k8sFy+|A@3o${wphU{7VPDHBvN+q z+G3qyKC008Jgifgz}069ynL~S{xbTPknoM0X!$~*6ET=I} zQkZ7oKg&)lec-Q6v@tdJ@jof9TiE!-Ec!8I7896yfxoLheejo9s=d`_P0RP=3$N)| zUqw=Gm%e4O4#Jm67Aku*Kuj*l{ZRg;jI6c%a(m1|lA|BZSbSi1M<%E*1V-R7RqDe; zuGdMET@C=+kkwi}{o}N;)$kANwHY5^yh-T5WYwto@iT!RJpw;@@%7bl9ROa9|17D` z>xqKo80Gfd8xCcQ`{3UtR(M+52V^ZhS5WouV#x+x@`yPjy5Hc|QOa0p^p zSr&)xp&MGB{d{vSzzcG94>_?B{IEpe(#9bSpW5g8rt|5HFGaR~w-LL;bN~oC_B8O; z0pLBK$4ArMFFz^Xhg8#x5E_rZuhc*iw#aP@GdiEnO7RiA-=ttL#3}a=l5u~ep^Z~q z;MI%6Q6PCFeupMF%)#Yc88{mAA;<6z2eDOR4KXDa>WfjxKOUFdQ9LL5l;GDVIgHbB zm_+-M%}|gQ#_)$|w{bayE-8cI7(2r=|82Zq<*H@%56#0vapH%E;%@h=l+wrXA_^Gc zRT__gN@YwBE^y8JjpZ|S&1`{}-*+PYOV$+B6ZcY4`)(0iAdX*8>H^XnT_Np027uI@Li02<_b=sHiMYMmS>%>>H|+D(UgB-lx> zl(|73`_LC~3q^f7hQ^KwP~H2fL+2VjWduHSnP|FrqPR%YwS4-9XlpYki$ZV^ieTt! zfkBp2O#E_tB1~E91i8|NX}559j9({JUT`VRU1n2qw>bOl7eqsH=&DKl8&1)HOYJ`Q zsyEJ{1-i?nlze!DB21oDett1LWI1poT79DYQsCEu*|D?Cx1_fsWVZ_S;@ewutBe6N4HgCQ##+YET@x#Ryd8fRvJiP zgGTyKL3m9qoU7K(sogHkP$uTmKtJXtEo`1FGD#9*5ouY(;TNC8805KU8@vrZVEy-- zIN@(D^N(_jiIyO8h$pEbr)2tq(r{KjQSuj+H#yJeO(IBCTTjvW_39$Z79M5%m0rvV zHieMts)aw}o!Lr>ETc?k7mN(mhvr7$git|wAE)|n=@}d^y0lkb-R>m`U}ssXy{H~ohltyC;rDrCrEzgcoBmw2 z2ThNY0>g?cp$%iQnK!DB7W#QpEt75EC--6D7cv{MR~6z4Y3T_+v?wxCyoMd7%!H@% zo2x$dBU)z%YT~SEQUfEqe4LdwF#-yclxkisr8BS;ahTLcYw4URIXEszT}Q4GU4iIo z(6uB_7{ZfpZ+-8+z^6i*L}C}Pjnb0zky`vsg{Cg%u~#GB3u$j6D(I?o-k6g{ey_wG zNHi*Ms=Y_k4zZL`W`%;I^m}CsBiyT*!s}N}jgs9;267zhh6UwZW!gxEP^&n1mB7kx zYO)P);2x_70OIn-VrhgT%_OC*>pC0n1qni6^bFx`0uYn%yXxG5xYC*145nrLZLY@YQQIXP=Jt1SCW zsfGM1>NFj1@;L^MzWd>4(6^Be)0qu(6fDlFct^-qcERQ4k3nB&9vZ<^E?!9uPESit zA1g*?!D#}=34T`lmJb{njAA|Hyiu+gb3V^m6LuRN^r`cc_(|{VP%yoi+jAo_5OY_o z#Ggo0FqX_6HcFMF7k`!Y^AOBGkywb9mSjO{+&K4U?|D}=L~P8nHJ&yvn*16MCt9~n zU9uPGd(<}ilNevx`82m;sA`DISiM`WeC5jhcKLnb9n-nC;(3#`P)P9C+%g#XEq+EL z$6>uN;$>SU`;s5J0|Vbo3Cf2e3MD3yMwV-Vx)~5kcdRwq08TXonP%p+mA`6>9~PYl zN|cea%qR41%vUr^x>Zf{?(=&65c>ieRsdg_k1_~OCb!te4-bn3pg&?Ml@W#3NEILV zYW0$DR^1IJv8?0yIVl>lLy0v;h{7gGdDc}IEJz*H&o#O5c4yh-wR224F1)|?M((K9 z@#e;tFC^}fbZ_C`69m0rbL z-=*(q;-2V;651Aq?ygy1alCIn?ZfvVG^_WrEa^3$H@@FK|s+liCBZ&T^Ek&3EYl1?N8UY^t$h zg)R1mLof&=c>qW{0}ci)h*^wM0Y?Px{Vx88@cp7}ff!E49dq%v1Hkr4t2Eb}-ETn0 zKZ_p#rg`jqs1LzgB*EmledxC!vg#kPhA}3Niy@!EU8-^4ZlJQtcZ9hkXmF(eSpFZK=meba|Mg(UE^)_-ywT)vZkfmpu5^mlm>-t|wxILggEP!bl(?-(i z7&wOwko#rJ8(Gu%guhwUhC{1b-YP%6*;o$zgq%+DB_G*7XOUesRb-Kb`fEI%%!_l9 zH~{?Ro&43j7<_%b*{WXmhCfF?&nUCS^*LMH1!gza*lZ_aG1shoVDBijC4VZ{py#B(f<{$zx!S;J)#^1aY;TJeFuQ7P6H%dDRFpcWdE zm2`=g3RZBoMR85SvqY(6S9K}hGpZNhx6J0RNv~%((~*-1%7R$lnSgds6}F<%yONy! z(P^QK5(qVAC~oZyQX=wmylWn$TV5!#A|o*D)TIv31eEfqW58>=nd5hNsbIKN*);!~ z@e=8*8p#sTUhH-+yz#1#6uB9ij3Q2eK=dc=*N9s~pVLJ?M@PUY+N8JcoHG0_X2acG zFTMdQ`Uq_kpiy*Zr`_;3TUF)$u|&YpYkzy!=eQ^Hm)L`ngVN9fccZo-oDr)C(QU#G^Mc){`OxPQgxbT5LSAobA$lPr3x+K*vvo?-6~EyLGGLEE8N)<9v`zU{ zTPCbUibmV2TwW&N;PW3;Su_*RmBM1B4ZW<6q&(lPTIGB?DI;u>k<_@1bOvRJ`xzup z@3TL@6NCs8u%O4Sd3oXS(5ojQqmCKtP(k?gLR)LoqSwQHnEj6!%8p+}POvcPC)X-x z`xR!!yzh{iHL^FUWxW&;GKzh6*Vbi2$mDW=T5;DB@BswrytL4^>{I!*Ld!5@2HaTz z3V)Tya`ddyw2`fIpK)gMgJ#kv9|wo$a@p#j@(u2A*L^_~w;7fCv2b99^;5q;Fja*1 z7}J-%nQg4CpK3y~?m{|+&^IzO%-v1EA8uIR?T%s2N{&+9lEekBR3yX?(}di4Uu&W`p z+*Kh9n~+Lwh9w)9OSI{R&@*_T@8+dHk7N2)-Fg?mw9j@Tlt-=4xzsNf>OE^TpDM-c zU=^NdpT{pi;Wu>Uj@CW;XVLwS^8JQ@#OaLb(yny{t+#(rF7Olf;%(kIg>IeZ0$LuP z&tuXwesk4mz5g%YYIqG$H6r{{f6G-NM0{EP$qjZD*D&!S9{V7RzdU-5K|R-(a$ z8OzIm<9&?zbyY5@>&EpyCte$yH?zIQU-b!$LcON6p>gzwdpgF~4IJs1KFR!QF*EkH z6kPd~n-e4jCZ2|M_l$L1qCl$*J4`M#_Qgayuaic0L@o>atK~MQnAK+M<>uVh%Lj=@ zdsQgmbI=px&SdarN=+$L=G|Q#9+Tu(fYXOKWmzn6c$ z@ayZu2&Op{P^mr1jsig$MG^;sPl3I++Iphu)J|lL#$!=B@>$jF7P4qe3qPEL1OkaB zIWogd^Ix}AaJTFEb=}kAy_GUO`@YQa6T@JvQhIxK+95x+D6yS5;p>P}i4jzr^Vy6d zm+9x2tqlJ_Nh@)J<)|O|EzB>%Boz5dJCMX!u6ue73j$i`Jqv)hcq2n=p{*vl$UchU({!Aq^b6sg1wtFtkSZ_eKy0{?wc>TSK!ybe$mfDk}9hW zYM-P0*n7lDjt#<3RwR1U=e5~Tx1TpkLNr@A;wD_%jn#~8C9I;>gOa-A^&Ug2*`(u( z+UuSfmaaGC&W0Hm{)!{OgjBiv3 z^Whp#-!(_(jA~!jgbuSK0yRbBIp333?O#O39AibeA-_>AT|J90l?Y3rohD$>E-&Kw zhcoFKCrQb+CIwXe43Pc3EpdVyF5lFG&8=UVH&;mhl7$@VrkbL(+nj(<0$0DC%!LL| zccHI!LAYRx8f-6!K9XyZ-RUTkSvdj=gXO}xbhCQcP5mzp;Cxnn4gg@p;m(D-p!0Di zIfvUur;U^>NEt5;#W`*y9Y#710Hq=Y9b)}dx?=|w&7q1P%|kGG7(VKVK#HmB#qoME zbafi$cNW`lo25liODBpy)aYW5?u%bQv-X@)ELO<%9+9*}U%0V~OO02~upU~w3CT4p z0Bgt<8H?FELCSOt=|t`>)5wA^wK&zTV8%54s)W}o1}MHs-%3|m;C7$8oLONe2Dx;% z$F$qz+%f+TWa?ec{F7wfagwmT9O;5w@1;spCVz)GxouK>Ic61EBqFqtI)?bGPJoRa z04^3hRIA>5R$>NRJ^(}_wbDlSwXLiCrMfLOjoeohV0)a*_yzXSyr9IfahHTGNluL? z2LK}hcY$Ti%&w&lrJ;QIoN*qS=wEiJ0I|^^e8EJez~lk&@M9DjO}ff+ZDT|So3d|> zyO_xRSeaMUV+*p@sF*7N~jFI1|Vc6Ba;chUH( zw4EP|rXp(uvjqq{#EvNf!n{yK3~Z)MJM8}Cc60OKOvm)F+O=;9BD#(hBJ%KDr4eJ% zmqgK=I$b=(=X@u5B&xBvy`VwUd%LI9oK97fgGsYTq1cTx)k+_@G9Fs*{R9%OjN#Tk zzx=*uK7a09v%uY;cbU_z(~|@1wm07yQkE|8{}wuUx^Xekp2r^mK-#(Y45-wP$k2`v z1MtGyWg}5S=ZA2J@PM(zMLF9~?3Uld#81b6W^-=t+hpynBC2u*JOHI5#8j$$c>24Z z2peFp(%&3=#)!L?V0)NzsG_@n~(v=(( zCR7-j9i)DWrv0%XcsWq-K}FYu@N=dCH)J+Tii4r6^remRXYrFz(^QJ*!#wK+_WwrP zdq*{uuYKRljH82!2m%Ts3M4>)fYONqLni?ONhm@n7Fq(KNoWEd3%w_yH-Ur@LO>z( zq9PsX0i-(8gdj>+Df(p2%zfYIob^6y-RoWJ$v@d4izI9B-`@Kw-|y!d0_Cw|dz@FShMC$mTB(D2$FSVzmf5%JdfvoxMw%9U+;q^7?fv3c{YWV}@V zkp+3%W4S}K;W=hSA9XRQp8Vm{$E-EmC-Q8Sdg$CP~Bq$S=xruFA=(?(Tmw`%FO zJDm|hcWUlNP#$c2Gb$60YjZ5sQMFDlVt66hNQojN?Z6(M+b2~qF#N?#i@l&^$~wv_ zJ|dUk>77wVdKaC^CyYF0BHhRBT4X9PQt*8KwmF#H9&#Ik6V=1EvWWWWaek1RIe`M~H~jV9J!vE%`=K>B5QYBy~5PlSS72`Ox?? zklTeT!vjxa;{#?;y?SFCE~M05Ifkso*-4~)PPSya%PyD^FgZdtN!Z5tEdoCUP{5|9 zG+l;EZHfyi3+PUhCXS`X0Q0Gg=swHAbW6rYZG3&-z)kZ&1X9z3MKE%6zItkncr2#1rLh;z^1wWa< z-!J4B%V2ue_SO*xZx$sd`N-$hb#lP6zCn*E_V&aGD${Pf3xLv7t<1s!g$t zS;AJx+?~*AEbP2i ze9yXjnb^DbTt*>HB>vt+VGH=1=(_*vnJ~#Dkr@e;B1IcQs-)Wzk2$;cSo->eh25?l z{67ES-3buGtbtZjwy65@nd9_}{zZA3H~&)UB&tUpQ8P!Bu*E(LSzEh=rU>5Y$&2^D z`-4lz;!9z_luaqccZMH`Vz1D9^>RYsu%h+CD?|!ZcfAI{{39WaPX8MHAljS9r+J!x zhB1*>jg2EtKv3%6lw-c#L-1v0~eJd3^oL-AdSu z0TxA}X_2GPK!0%kiuwNY&ogDug(4x23gF(Id&raKP~}o~+eKYK4l;I~8$i9d0o(7G zec?!03=InoOmoxH7@E2mjuZzo)gQIhyMT;xBUWWPsWwfyQ|~+~xPHnw`#z;~BX->mRhX zth4F@^--vPFw;)Bvvo z{vZ{R2#BLl(~klU|9vm9@W0P#l093m&93&`vWyD|pe)Zlg4%fz+w+jnn>yt&9lTKX zY)6Ck_kz#*J2&s&?CUipdDMAYm3sFF_LfWLRgKse7=`?X^On=IG4enELUs$!bIqcx z2YYOFmT!9Ek^^Yq5;xqp@V=Ppc0r_WLpAJPVz1=Kmor<*XtVw6*D9_@{6YEM>WQ2} zH<=)Y3?@Y4oRMaA?w2hmti)edU{aRoj{fp*d*aPay+?TJ+ez862wohCevINSJ$6J| zK+)g7JCl_#E!!38+f`u;Vs*S_b#zW%tU$>O2y4=9NcD!|$J6+Hy7>I?Nfc9q<@aiF zxin62x+1Z; z>m&d9(#Z_aYD!M10r%NUPWQz0a*)F>>f9*OYcmx?O@51GebraFj=B83Uc}@&EQyN~ zi|n`C4nA!r<+gE!(mj30E9#sZrh(+m?HGvEr|mQ~c7e^hUs1 zcvqT>H9!-DGY-WAmmBC$rt*M5qy5diWV^dD#6vK|!balj-_eJ&Oiew?u{faOq1{8V z8<8eh6`DXIiNYU{C6gC!A48}KuHW3AAos2Q;CeFu1%P8OxfKQ)sukY!vY@33L*h_z z>CDE?Y5UuT`r|e9=SMa)ozqok{;)JspA>D2gE8;={7#!e}lTb zm#89=r;VSglXzWEwwM-8UtJ$4eoy6QWPw1YQ}qazk(-l4T)cguQm*xh;%Rj)m>KOj zP05L9rg||JDhVa}P=I8D;Ukl~V_Tp5{U$IK0}p>yLhzCM@l*=GsmH>fJ+&q?0v17T zWf&=)XuCLI64y7-87dbK1(`uGs9ymA_H*4~3`bCvmZ3ouHlrip5{0@II9$__Qmmjb^R5C(# zg(5T_-8(^zM?Np-;4C0M)3rAjDu&5JRBcYAsUUk6dJ=8U-vWy7gSyi&ym+$@S54Eb#dDy)H-l zI>fU?xpqn$6Z~MBrKsQXS+`%2_aHQSC8%ZPwm$-arQAi$xdmwtaioyb;Z^kxHry~} zW#v(7C0pov*JB;q{>1UADc>Te%X_=LL!a*tZOl7e{K2(4b-r-!OJQ=aS(%HelYUKH zF>^c~Ffx_xCr}rVPa^a{5Bzey-_?7AyDo*!QaGv?5__IWdGU0(Mp@U@-Xg@k@)u`z z2wq{-Coc_|W%YEOZPZ3lm$h=GMX{y?t5OyWil8(jI{@F;PMH&GRTU>m_BYZqnVwZc z){uw9H(I|DLNYfOlJu;b==AEq(9Xk8aSa*mf9+iDaiJO4ijWZZS=N3BGO2WL{oYGd zKL%m897BAvN7eh{BMM{Y+kkdsS)C#JZU!Z@Pi9b%8!o^(UvD7?E$L!-kCQ_4r%Mkg zf)VpG1rIne!=R74ppX@N-6=Mr(~2rlNa}P1V=>DU8`lMZ9bjzlL>nUnNC(z4*Ttqt z3MkLLLrCgYk)O?$1zOt2&?%B)lqPKxv|>ExFiW!`=A&5JR|>y$!}X<5Jyx{c|tFP=3(#7)>Ax4G);Un zV-WB{__xejtM>$gTMMUBKW{~_A<ifz_qSx{80Eid=w_~f#lQSFmQ z1J#O#oYVK{MTz4-6RI5_ArX}I zHc3au2^n9w`$XRRH})ISkXLk+j@5Me`40YOuMVnNRYp*e)(2fI718I)+@(9QV<%^N z@4y3sv+YaEB(eI*#U8~YWVVv7TwSD8v8Yn-2hwZcExUm1b*UQJYGk3+oVsJ_z2M$d zf!vsA7g?iolzv&$g5wS_RvP*Hof@I2Jnz|mXd9>bAo|6MwXFk6rfD% z_p%y5%>$ntfv5KsD)GBkXABaaKBy+Gyhokp2qA_R z{UMEqHRHl#UQ`!Ml7ye$d~v-B_;G622q=rbwhozD9r_OI$*73PD)%c-SkHrh{O4JkbyopDh%0A1T#yT8!gA}{=7W5>}F2_E2^c)`Y zGGobNv3LDl(<^>XsDHP^0gqd>!QcD*^x!3W(k~~X0V0nc3ECYib3fWH5d5XUeoSOZ zD*YoyDDt+a)ujJ#Lx=MGjwuVYA6%V~jjF+kRD@Akf9}?F#_y%0NGJ;q_2=ZVM3hzj4=FSkYUoZp0pIa5Cb9^F^_*Lce9OI^MgG`}rqB&M_RM=Xxzxa$wI$CE<#3_v*4XBJI z`NJ4(9>AA+)9kd2i_VgD)o-!=oC4`$GKeB-%wB1(gXhRFi*_)fF zY+}WA&1o}fWo9%cZ0XX7OIlKhUK(FD(%irWi=K^2<9jbVnz*p_86e>95an$p>#fRH zl9lv&HQ@kP$SCQDIJnx4WY`eK@~d<%#OjqLddsHzT!+Tqq+wC`1+YxEZh9^SDQO`HM7%yT(UyJ1MU5I>%^Es`ZpdWCWXumH%cKc=av{ zhmhnH$_A7xU(hBl`+ew_s&lYUgdv%!fGYQGq=DM}5@T;;u;2>UZ7ygw!Z(z0zE0iVzP?7uJR>gD zKh2lTlICcHE`6?s;9CO0{sn=VJEdba0QT8zzY@pW;1>)TR8E*YYlJk1N)mXQ_HeX3 zbM!s>Z1EVLL?&!yT$%#^#$s?I<2#WEid6Y$r8Vv6oghmunkp=79G9(Z1*0oKOB$o@ zN_##-P%yWqwOnZzRWa{v7oYH!t z*OS~4@S%5y-N==`q#(aK?(&sX%4?Cn_k@yeGbOkHc(cVJ4Gqdf43sB*Ku5&i-H92n zm8bJ(+_6Ysf8m1~pUP2tXXbWOD|EC8!RKBV%@lJVAB(q&?lm+jl)X{9Zh~TGeukK? zgvhGgbICD5)?#r0GR+7Io+cHVN0=u|&BmBFL{?DEk(Tr3r<6XF`;0Ia&?YsdpB(+; zlID7&vLpIe%5M}$i(4#kODR`Lm}0)s<}6&?w;r0u#T`2@FnME56^5x@n8E69cbb9* z`enh+?{sX{hd@WRDXmJB73vOj*3BjY5~SxS6>%$QBA^zb{m5IIgMvKE3ihw6^u! zjj&;*Bat3D3N+%XZ3y$R7E#sudYU<^66l;)lgQ=>@_6~f4{$4C{lG}ghu<$*fWCS^Gt_j9zjBV*LQY(}|^N9iDS z)Y4<`2F%BcsgX`dqeGP2%iW*7=`s}!A!k&*=YFwF5DFDk4^uPv8WW-F{R)vA3bZ6{%`pAW-ngf{6hqrbxETjW`qYL89eiru1i5{gE6D8S+E;}2- z36;<0Q`WtUX3^Q2XU#LRop0z5f}fN?R2fRhL}(kcG*&}mMw@zB>^#rg&ROlD^1N3* z9klvsbMU%LNw%M-RKKiBwl(cHo1)Q3K8`CirLAVMs^e8KrDHSCyoR6Op5*$bXcthI zJp0IMzV-s-`Y6B%HAsW^>!oZb<1%WHBV_8yDbHDQe7F7*=Jjn`!TI-qp%0Ph1+N|9 zA6)tg_czDwly6)nb?gw}_e(f8&f;=ZNzW1_&l#)F4=Rn7kS*2{nD!mP7{9tQg9q6$ z3@RkxA8$LW3k04Hp_%*RU`e|Y2Kx_t)I>vSXok-*BCR|y=mXp2ixGL~8jQ?zl#a^M z@hqcKl%rvGSpc&>vc6YBn4e?zA+Mi;O4<|%JkK-04xUj5*qEnjr`=RRt8k}g)9Pn} zYQY1p<}14CJ-bxoX!CYHWew^raoMqFGGd^x*HdUckm~24G{&=|r%ygKSxo2g&y`v3 z5pkH>phozTsnsDq;^+g&e>Gh+@*)PAd5xa}P%Es?!qJ&2Xc)OR>ZaF1e#u^F6>)0e zI84rb38Q{b~tr0{#b2`A6(r^&HuC(n@D}r`N4IicbmZh`E*=4oKWAg^<2^lnkXn# zx6s&3+3Y2lfhJhBZ*OZTk1xdPG1E;5cHer%^}>y$DvfVRUE~=nQ_f5jH+uCtW_%c> zim#){prV^JhpB=7GR`<&l?CrYISfXHCd;9qb>CTQQ)$i&%e9~LSj!%sLyBQd`Os)E z&~BthI+hzD4Q0bsvAr>M?o{OJ5bbJCq-nH>fZBHTo$F8>(`73d>J46YQy}N%YT_Ea ztGT#DU;cHJf0{qE=4c-x;Ooh%ori$9j<01LNz7s1wAi0J{Ic?{qF2D{HWGYB@B=Na zO#b+tLXZ6SlpaMIjycRnX0ib?i5=MY(A6>Wm)(=%%Ki#JS+AP0u*xxW_~ZSM>u7^! zraTEQ2jg)e(V^Kjz+WGY?H*Pr>^f~_Z3P8{R9L*1v5}_f+)7>20#v{`q;9C;A3f5K z<$rKxTkdB_+rUq$;T!%`vh2U0-p9Jn%OuSfXYmSe-Jb=++%{uV)9UvlfMx@}rB={-R?w?$<{pCCo?B?D%nGr8v+HiNJ#e%TGd-Tya^~w}i!AfHMcD1V>3job zvy1CFg~Okydgv*9Wgv0(;m9|gXW(CTv!hFej?7I662|Gah*kiez8{>$5 z#E6vgM_O$V$NH{cpY*yZ{T=Ug{D7j{P2C%9`Y<9kmv+p_EP`_@MyC@|`V&c4>ux?b+#l z3%wby8JI;cMiN>uNf1dweTOR)sP-NLd6;jzv-sYAzSx6nUqw{0r<}AYPdRlOldira z{Q-r{1N)0VH%PVklvyoR(Rg}7A&Ip@uQudI?5FIqb8NIRS#f^l9Mz`fAEGc%SzNIn zymXwMhmJ=q!I0x_6q&=aYt@$(iMHSlqb*8MNgtEUO6^a=9E!R?eN!S8k4GQ}_+eVW z<}c?x=*i+VzwA_D7UXrQ^w|Y$uMJT?HFYoL>lkRWj5TSs{}_FffL5FJ;iT;rKkDqGWVDYK^otrXxsq zcX{7QJD(?qjQnYb%lN~QKEG>Z#jH<3L;Pw&8ENR8~+EK>vRPxW8wbPlbbh6S9 zuBb_uw@AS}*9F3hF{E$#-kHo_imou4T007d3PoJKtutt}!c=A7bBZ#=-TNm9yu0aZA*{F0$3OE1BR z8jRQtQAASMGZ?h73R_QPjE= zlF&`LFKM~z4L53?LB|d?y_>|_89thp1gc4&bKLs|8gQe+6{I9N9&%Y(%t>j*!5By!AqKt3T99ZPUKb<+XWjq8kZ7FsjKOylj`hePHIl*mtTT(^$1yA*ZPB zCLJZPt2!Z(o1P|_3F*Cn_UDW)BF}17*^o3U&Pl*hFsi&`IwVZFdC5!q2%tMlJ`Y#( z64yeC6z@W&6{8yoX%vP5OflEtrU1`dp#wzRbu$Y+ZXZQEt0kP$>QdVjPF2LJLJ}Up zp5LrXCOYJz<@+Cl>WOh?syPXYZT|IESR|`*O+AZ-RUS+%-MT*KB)5@WCM$@D8xsP; z#fFMu9(lSNd9o7PuN7YN3%RagM^=$VRux!LO&p7Tyw=6SwT7xJrqpY0$5y)LXh3c& zLLq+6jJ_B*nN@fy#Cx^p!!b|g8{v)yR~s~SHvEnAWSs}KA^SY|B}ywxQ1->|iMEV35r_btz+R?f!___d?V^UcQL=zrGbA^Dl3SeINSRx;H&XaNj+daQxSg z6?c2hcQJ1kw^kDQR|<82Y=@F*OygryB&&o3g&|>cZg(Hxr>x3)$HY|*!q`|OzNd8b zoXmJ`aI2DFer4WUIkSY(df&43D>ET`@JDrJKtzFr=jRcz2Ohn()4z(dvVdWy^j-3` zAk}2%>81ODNzFGueH(qCTTSy{x<~-+Wf!Zg)~=Z{CwMyUei2y9bDjc}M#CQp0c3DS z)T%eZ{Zvz&5&_2Vj1YR?hP47Ibi~S58>U+MWOeB)IZ(l?#?e!%wQLnnAP`W+a&0fD z)Lfm(GqiHUVw2ApoYb!}_m$8l>g5;_ST2v}rmR|EfXg}z_`z}cOcv;{KM-_(Bu2k1vQ zP6`ceylcY@w->2ooKG;yf0ki-tsyw<%w$=HLlf4F>Wa|exhyO6N>agv$)ttOM-siH zBAl!e^t^qt-){-l!@zA|)e_RIEAjZ0OZQO5+3+L`EYOIYzxDMRx#gCL+uS3{4Kr~; zh+By;f^i}?Azi70ythHo(#OM^W$^aX%+hn_s~)g~XCpmzDytLKzI}TA5Mn98Js~++ z=H2{>cWw5+t-UJXd{MpF1KO~ZGUOuz;l3$0}o!5s0jG*T8A1!PqR6#O4c&&Cd%^>H@!_VZ7Nu-|16J?bwsHDfjHq(-7E{}&l zX!ihjS6=s>JE{L<9!7rjw%(0I-xu{}{oo4Rq0`p|zay@DgxzXxUU|25&A52ypw;ke zc?=U8^C%sK2vuHX!3aGRxT5p|MulkKI?mF*be{f&y?7A!pfRy;%;VbHH4wa8*Mc;f ztTZ@)Lo-9F`?{25|?Gk5;AGf#7I?YkgZ`P7t_`wq|gE?@h? z^^@>_9KaKC>}xBVjz&QKu!0|4DXxDL56rh7eAi9;V4tx)7^nNK!e_B!qW2dPT`hcA z>C`iLL3(l1Wrt!rS&8%o80hq>SR=Y zaB=HX+pz}YQYPt9b`BW$wWrPQ0-*wSuRZRGRM~ZrtW1zYuj#HWbQ&}pK^IBx$$!Q8 zbeBKm_pSThW1JAN%f8ujGsh7EA&h#xQhAz4-k@6DwK=t>e9d?`^hHF4MLqSP^n;M< zbg$@rg-37Bn1w7F{c$zQW#`fL`!44&BQ3{sslXS%+#mHuJ@`&|@Ev-7Cwch&drnFi zq8IIpW*JdCmyXje0YT}G{$4T);xhIsorv1rVgw2nC zJWU@Tb%_>%6|>t&B@@%H=bDrR!OG9z6|Lo;#*$`E zt5@{SS|y>HGwa#jQr}|vD@f!#05HTWwaLYm5;8+%VHGcY+3h<0alP{J`g_03{{Awr zI=L^u+T8b<9s62-&LcwPjQlUCavBWgIBq8FhuI7uj~*3{uBJLgbJqd}QneP{tzx-x za!wX?ZX_yuCjV7ic~jCnh2{RTt^r7zsYUDFKzg6fQm2ImfEGU+6*rE{@^;}P>T=5z2v%g>+kg=rudiq z;nUyp2j{=!53~O+e=zuU+TEhu$rn2um-oyk+x1JLp@c%4-YlZ}(W`Z2OLi6clVToA zu{~}2mx77)<+l-@NEm$9sGWKdcGL5e6B%fb#(!3*vVP|LeyrR1=vSRt<3Z8_GDNe{oSRkoYfsy~ghT!(lTNuMw_a?R z7JRQVJd$KbSue_yF)*Olk9}8Jgj6(LGTz~_s zCpDP#NYdTd7M=BQ^j4^6ueZ8CH2KdDlCarsRVa}jc5!eZ4VtAFApant|1r}?eyr*$ zFMU$$7^C-FXYg7Mw0Vs$C{|(@|3!4Lj@&)Uh8w-l~E|EM5y*9 z5vcL*DNo_}r26&++U(d0;cYO%52kXOnIv6}hF`0b$$wl={&kklzfKML|4Uf>-w+X0$Jn0MW%Bzj zks47_&lcSU9!nsA7?phG>1Isa+p;g6O<%6I%vcBVs%LgO1b_GxuT?B=W*f20 z+Z1htZP}_gdZQR5c=Pn>h_1^=U_7ht?>}A+5({vnzmxqu)Aq&B>Zb$I2Rl?pETd6R z#){nLt-lo^IFY`+k7symPzBt{gaToAmVw$+Al7=O9xU zi$D;}?w-b5xt?+T3XMafpjI|Vz_I2t)e z)Nb)>d{-B)@ueXV7YH15q~^*}s(m1x%tm_!VKDdpJWqhG9FmcvXH*R6+Jm--e#Hv)bJ=yR~^D(kMFStZjqK3r%1;Ns)34?EDW zmz=z7?W^WbSvXmZQ9LnwV~Ws$YMd2bAY;Xkb=I3zU1aM$$M_ zi^9o)nJZQ*CdsC^V=d?PQHIs}XJ=82LT=7%%ItI7eogTAo62owL2~9XT*J=dYm-#0uu_w?;#8~b8^xcE%~L&|;Z@#VZGDaLi1-4N9?zoN*L zwWu2$s*zGWTt6izSxU79NHdeKjapuqErir3yAkerlKbr~bO?2K4J*MxhJ?k8nZVF| zb0yM3x9@m5l%mE)JYgdpkY+5R5o0<3IY(A&4jdo#S<(Lsx%lxf|59FUMyY7ku@u8k6~f~G5P08J^c1LMD!nACI5;<|GXao8OXYi zp4^Qq_pHKcE6cxeRiX4JUIGox&%u~0Qy_ca%4g4)glipE(=LW8j~SnBjIxRa8Q`y) z*Qeb!8N%AekL4M`Hsk$bLjurAjyP*~92@CQOY&i2*K?pYji`tGbW={fZzK{y1fp zA0*A0qobOW9eGljZ$bR5tsO3{ar+Etd2gN8Oo8OiQk>Ok_RI{YbY zK2M04ny9>}^|{4VGaWn^Nppa*jB;1Shr!ne#!JvccdUHmTzhcEXTW9gkb4EY@j7d_ zswbKxl!~l-Dh5JvYB1Vv7ay=zP{gzW#hZRHWm0tmuwc)(P232rOa06qH&kUCR-X|d zQR)y3G=Pq@hoxgpU3Y=90FFTvi%(BmPrs=m z_`YFgEsEI?dLCLlv`q6=w~X7Bg*f>`uJlgp-&Vk==Sy3W2&R8*7bBUQK3kUWc7+6g ze-w?sy0B}HQJd~aG#(VTAr&C<3Cgc7-~M*YG2SqozREjLIQURgHoNRe9kS(2?R@s~ z`gRia8DW$vO@&n_O~RzANmD^A8f_}L7jbV~JIL-&IQqEQ?Os)T*PjOptf^YU z(M1#mk;N)1f{Ng;N0JMCNJeH$P^%m`7+ENhbtQvC@gmLHVI6G7I=4ZpV%A9<)w!Kz z&C)L~DPB4w0sYpB_G*!5-%Tv|ez@C}u)r2+BVzi^LPx7yQ=78+Ltby8kybVQR=wGX zREk@XeCa6NPt3S|VRiMe*tT!m$6*W``Nfjbz472GMgc??mz7qLb}ejgpqr8zSQZrO z^%d&qTJ|v-Qbns(75Na6=dHGeH(A9u-}sn;mKRZ@;owTaHA;jCLT9-g?&CTv1@fu+ZAY=xmdWK9;PCIofiQzfybF;c^jizej4I(({ zxt2jLAY)}!F<&L%#qeTVTkeAXb1F;z9+qr7Yzb6F10JkjkQ1lvpI6f5*}?n(QT6&- zn|-h2;jTuB*16#4jwkzQF#5Egw1t&xcfhz&eLF_4M*#$~Au6k6kz@L$LZD01tg8$= zoYec~Y$K}UMmDd$Yr!G>nvZtToDq7Hbr@XOnd>PMh`vdosEj5;0v7@Hqcsa8a& zg(-1NY!ujlQQELN1H&Z z-Y`>Ht=HD~M-`%c+}MFLLar+P68C&YpXJOmI7ESd zsV#j>y7JUrw@tzyM&=<^82CAgTV7qV>i*lyn_hv@Wg@+bccHPnd(y~WFW!#^=nRE>3NM#X3i{ib_ z{o`;IDaZ?&43R5M@K8D40#y|`aF(1d1vbWXK1m|XrOvEeoqK3NZBN;3J>Z+hcxQdE zClDlUH_r=e=j^IKxbF2kmzd>$Eam^bx;?D0!JvLk0K_bzVIG-vk9#X1t%~e>a1`(& ziF4tzZxysB5CQ2*UIr;(PEH^ZZA?1O zuM2g*`+ni?613E1X|)&G3lS#`HFq7c~WyEQ)_ywh(Dei1TNuHZ72H{m4_)^TM#3d;cV z06_o_7?qhF-)S3%9xwFa%+xG<>FuiE5|T1I(Es%lWqjiCtM|~E``z95T8-zuO03_> zx_phn%V?47*OI8bXlgWn5xDpXOupXH1p{AzexOqQZh79%7Y%W%8lU?ISJJJ&5Bp|> zY%6E(9`#RIdN)Uwe)EN(GiR#$=prX=bK$7gzZKAelQM&mF`h*W^idzIxsu4Ol4E&E z#o@B55YK=SCZWgPUWHsEjSw5!B7GM3mr%IJgxodVm>0koO?sKdu4hLG>|J*hy*!Q` zW`3I-Z4R5`e%EaO)<3_QWeJrI;xE{XU$wS`q+%AFApVni@ZzdqfP^0CriqRPtP@0aAS6TS|z-C4Nqq>e1awDwSov z(8{O~hb43Pk55}!F@u2gQHFeaBzd2dCbS@)!UYa~`R^w(KkHqZT=W~(yRLlM|NUTG z#A=eOt0h($gg>$1h%e<)sJ0pvQ?_JHUDMi{W!{Fpn`m)-@iJhP-ytW=DeFUa-7^0% z`u~(e4USgzO4~|M?}+&EG9HO)(=jnq%aN%cT-0aiJue`-@rz93i+`;C>mbxP+Q0v9 zuGw8~`=H*$mk+*)WjpU^kdVEqZMKYR zQxo`38s!jZ`AzUe+D8I4FvM7C#-8-)(C6La?1UJ&KL?LZSYf_}zbS>f$s5I^l5bS$ zoprWPE)BbDy*e_Lu!tGX^G33!PwLYU5Hg!Z`o5W-hL2c{5#})~M>uVS^&a8B5^wh{ zkKN>cgf;cyXQd~aDW%EuXqC7&Xe;<@Cr?{9*t!MHcTgB^lzc|da;F=AF1BRs}7JV%P_ijqyag`@cfhH?5!6O_r2(b6xw8DHW* z6^UklBflZ`n%-OQPF8nHgnt#r#=O5epJ+tHd9MytK1L?Qj4c2qqa4m<2e<}|Yhuu& z)27WkI$!r*SZ-6tlS5V>Y_3NXzBwmU-p?>2qg5~oedGp-vi-#l;)OgvYCV6Nmz4zw zqw0J3F?}>oF_;}dQV0?Wpx!-#BD;d4kTY^tA)HJR}&St!aLC&hRBA@Ua%Rv?u+QXAIesX5!1>R`~FfwLVS93-|lsgtShM+vBJfR=E`XLe$7rS=-xN(J5T@BvF*FXnOXe%f2`qu zzWg|+(XvwQNvacXK&6%#EBTdzt)#0KO7UYV%Za&I{8yLGD^NHNSmS!(4vzN>6J zO!kQo6c%2FACtJYG7?&Icq()>amv5^LkHiIJ3_p1{k2q*KT#rg9hl`+zc6SL&Y&?) zNiEX)gWvaB*MCW9S|*qct$t#x%VBBeTG#sSOh*q2%QH0Rze^g!@bgWC116N&xEL2o zJeHmQzAdDLc_<_}47W1o0EQ(N2=FA+OmdBqDgH|X;f|{&*0EL5_ok3KKz2|LY z>iS2~Z{caaUyOoeSPi>PYT-)hrQK;Vgh&1ckxC??A}xa=y{~oN@A<7OEM!$pWT;X_ z^H)H;W}(hnF!Bq{H+&-1m-Wz4S4axf=BWMVyVj*7^&5+Oh?)4IQ-5&rTDiZu zGsifGx-x2gEp4O#2dB`;byGHEY5Q7Du#QHZw8RfCqQ-zeGsk0Ii<_7R>K@M5tu4v4 ziWV3N5Zeh8rbaLCp1$YzT`M5Xp6i$Pr~iINobWiLLG{dGoTeBi|HKN^pCPRDO|_v| zRN7r*=LFg{s<=###U@7W6aw4{PQ(EXKYE}N#P9AHsWYvt84R^meP@CHW^(5rmU;0& zdGnzif}aQC=@3pP@$zxf219mU>);tJvpLshLV>2_hsq*tc84&#%352_T-Q`enYXI- z9q7~bhMmqu2$lbKP&G)3>DTB#t|SFdmen`=y%0)xV~)F;o~@Vo+uM3dVaE~_-fwDy znhLD@2yAjx5fq~WGT>3MB`j$t>1l&b2Yd~LwCaZzXn38kc>dysHhE5@&E`g1FUY)ARcfYWUIa)t*iLkh` zzvV929hhS-D>;;<>7Sb@ym%3di8S#um)8Ak{3=@`!pHI(+A}jJX#=1ZHp5O_GFwHC zgbk>DmlwK5EhU9N@aQ714-%b6Z`QyJjRc+If8wobbf`-c9!c_1zOJiQrxq=Zp+i9+ zc)|Ml^9bI^crRnRR@=R!^ z3{RBb_)eW>thRZh%M_BRAnAjN=7|)t5UJ8yoO5mOhfw&59=}t|R6d+j0K=Av;^Xf) z7`(L7x4sD^I51516!*Sf-6{CuL!@IwmGrkV>tVrWWr|4glnyXfM^7jw;JI9inzkgwpgZovjd*SZ7-` z#V7g4RzfX0frAHtbH?j^4cz(egKJfJ+eZaRHw>3{v#cdq%zg0=9 zbCZ~hD{BplvU<~MBV@6moEuc*{wX|PdfverICJ}tcivqq6g7F$)o6!|_a7F8`rRoo z+)4K?tpcHd?1Z|~{SKl|9UPv2lxM>muxP5%-1KpPL96Kgw{0npymPSrEj0(PSe&bTZwbj)Gj=MM=r(_-NZQ^eomc9g0 zVwq1+)pB#7o5+k(^Fn43sBUzHd5`(`X6I^ablKkGm+*` z@b~qOEjKI}Oo6`0eWWR5KZ}&vPU_)tyR$<(_;i&|Q#=Lok(zhkU z;>zecU-nKt7o2(rj1*`^=?8VAwDf!%rv2elTPWG%w3oGv3;M7q6>u$Ph&SAGA* zDHPUU96*9=bnbi{aqleJ^jj1kVL*z<`T`5AQeK~yMFaLNU-#kxX+o%W@|8n}u#rVYY(2LaNl?1HuMbVa6Q0v65kP zyKCsUKw~;WE`kCWWfh`jrr%z#)2$yTvIx4B zNWW%gM&jNXZUc(;+Kv}`*QMLzkGh{GK%bbI_aX5W&^dB?H>oXWt+VR?@b;czO(uWe zKDz3PF1n)NQbd6SNEDFXaiu4rn9xI0dIAAKLKAQmq}Md03nU}~g3`OJN=qn82q0DI zQkABFqEFoY)%&?${NMbaydei1M{G1`JCsptlgg<_kGoxtD4?|$k4gvMafrt ziWcy!d)c<>ktaIH@7gF6QI#B>hP}-^TBAmja)!{ZqJ{nJS9TnS>ip)4!|^`x5(&WmR>Ks? z-Wyx?(6dwAl^q0Rb!o7i_>#Nnw(@7)+mwir#@LBoH7t!lKAu~P`S zuIl;FH|?RpgTbK}YTomQ>#vuHUm1PPAKQ<}^DTn~bPilF$jnEkq)JF4LY5IjWwZ{w zd_9!}Q&Cu7c|9uuFe+B062?&g@+8*0yt^&TM+uR(q9pW_*oip}UScn%#GMZCQyq+* z;g2%-K@y1!H*r6{@n2&N56>mwAdnLVXWY@8H^N~C==+WMfRWmstq4q+Io54qwtT;H zoNK5*a4g`SQMgg^mF}qPS@KPL198})SRm@}U&HtR|6`>6<8rli3uR5^ze-Q=u7Y*A zX9TtfAKu6;$^3TKXJwO(Vt!lXrUN$kvd289%Z9QWOW0Wqoihmnza;|?a*P_@JIKjG z{1HJLpei{D+hoZl$D#?oj%Yjl4Rnz?R7TG7>9{QYsKBW;ToHtpN&DIqS{bvG+9k!Q zCpW8%o)fmLFz?btOxG3P`x!UpH#228eC;gbBs!4OIJ_gF*H=?be{WX4E!|D*O=UNybl;CXCpdp+UR5Lo*)_qJv!Q<_iE-kT>BxKjm|H z4h3`X-(UZrNIm3-w*miHlN7_zIy0`T@Sw!LE9)PN3z$&epoYFuo-nSrN#{rH<^Otw zM&6ABHH?-N$l%e|(qQ=pPVl3Y3#EM57sdjP`H6SPK8e120!d8KdYUV2#x0#yXOT!%^8%avVTiE0UH9oxa$qQHN-%9p!{KpmY!qhkk!->K|Dk&qKnI0?m2uCj>1{$ z9@VQ$Oe%lI`7BnuTv2~%!nuYno4-&)y@lvmM9q)|xe?Ltx~R!21ufvL%2x(!&~00-oXf>=({Jp=QYPXz*Ml zt+zd_`Hb!fdc93*&ym$)s`f+07-cfOR-K#y)T}0CeOmk(ce-o2X?|$SdQyvgz(4nw z*I@FCBfrsUoqu7;;u8U~x|wnTtc{r06n!`_ zaIWRI5{mk^^l!@DJ$677=d)Kn3!S0bu1*fXTa{#-i_|>1?{l%a z;V%~R)W3;x=wGU&j{j06CI3(*sZ^f1t69#ByMbLuSVlJvZhs;eF^av7pVN`J zJSa50`}4_XHvpDJqyh)@C0@js;E%?T|V~1=C_54JO)2+_) ze>E~2R-5G#F+iiJnQ1uHWVa=J>4WOf<{N$5HF%3xN0L>T)u>f4&{&n(_5d+F6CAH( zkpZ$5Ec(vFQQEs!AVGH>uU>5MhY>AOxB7+nu?#aZCscOQQ~BZH(URfPpf{?HxJ7i~9OA8jlUdO>CoECy$v8#8&*Z8t6oh^mbF6BDoON^i-Dj-O z4mJ^S_VYyiuWQ2PO&v0&+wXgG6MpThn;4D>klAi<#}B5stggSkKOX(|NNqfr{@5 zbA#eQzxv*UnChnir$BO-*s1)ANNbJ)=4H~f&uglP)=#CX&~Y~|l1DFTUU<8JyEuAqN6hWA0V-PON`7?RRQJ>n~d&Fi$EX zPt$bcIeum^CYy+x+`I)d6MHBn@{4ACJb@9tDX|sCh3RTw=cc9n(40IYE>8v!deJFv zg3Hjy>NgxX(e55Pq@Ya4vew|AOM9}ev=yW4z}c=}#a@Ap6KhdQZz<9(-=2@1E|XG! z7(Vs!;rJaEI&tjQ(}husJdL#$y!ygej&EJ)KPo@{T*-voGtbG^YdLQ%K$R%M7o%!O zl3WRE83IEGfX(TDgaW};Rz(X-RpU|c~FUJc7(OW z<&-i{Dk;zITCFCLDoHI!)bx^?Rd}VL)3TJ|%heoJay3Wvf%N}PbJVsE{7Zpw`mNNp zABCWqZzl||q0(O8T1)m=5B#!OYu@O+b{)l91rTDVkhyiGXpV_Z6(IXYG-Mvw4iyHM zpSW^>QCy2sHdzHWIba-W_0&`O6FirDpIXQa6UyS7*ahW7EFx@K zVi>4*`+pRH7<#hdM6s+BdAwaCei^SqJja(XM)fMbk`Y4qCM04^f>R*c7Svt4`?ae$ zEmFxIwTIo&(pioshU2`X5Wt$5E6WMur_P?ZWkAly0$vwC=N`4oqy>$GXafwSqqp?c zS>sy@;~D|EsY`f|VlV~;#m{{E@HI}i+!rkPL57)TLd*72gr&0S78DEh5`F?5WElY+ zJO4$U6S{H%@zYWUZ(O=LQ0@`|7f`EO#Eh7uB|xsxJ}1#XcFER-lt1P<)Bcaf@c#*8 zB;$0QQ47dL{L&+gPtF`^xzi-;OgqqgnSKEId|t6o0#JnzX^%OpXoa^q+h|Y%pIKVF za2U$pP*G@#XDSPc7#V)dX>s~ef8ds{k4J~))2ENM2tZf?xG>Ge-mPz@IEVOGU)e3u%eF((M-TXCe|)e1JWF_mFDvfD z-Q(4()CHXmS$f7@OaPm(kk0oZ(q+WcH-YlmMDSv8YMkg3!=w|o8rbT3Fv?-#gb|@3 zrqE;>+0wlI$pgHc=M<@*`=frutj+OE?%>vsTz;XYYQ7M$loNL_EUbNRPEi{fGl+yJ z$y3L?5P8G$vH4&fo-Zi@GuR3P`hQg@8_k@QJlB=SwZ)6E;cRIs% zkT0yoErkOxNR`7tC6I|FO+ryyUPczYEI+BRRflP`8vm3(s33+cGQlWHg~|?FZAghd zZ0xswK^7@c3Zv~-smYz?t#-yV85*SIWHkPwnr*qC{(zLp*Iw*J!&d`0&IB*5XdhYH z53io6w#N)T?)I~ia`DcGnR9P`7)80|;s@a03M4>i!MV6X=S%-R3j9B%6{Y{@d;i39 zNbz9N)MKcwVW(PIh8^x*ea@jJ*6e2cSCOK#wzbZW=QNiLqK+7e-1!r)PKpC$Cy88H zmp*eaQ?gK`V(o@H03qz5b!N4e8N4TzRuS3P_LgjZ)`T_ zYx33TS~>=fh6i&>PPZSuX`?z>Eyr}u8o5?viY}|s6-SM2(Zi#_Ywexic_bZ-D25bc z)mx2x!ti)C&aUIL0O(8Fp8YhY~-^ zHDKiRQe?B^@hzKoyE|pmj0J`48%B{FgW*qsrYS)k88g1m5q!Izg50RfFV+h4;F_t4y1NVE1+L58z%P(mM9(Vnl-g#>8FWP>WU$C`4?mLOuILYM^k1C zNt=>_8k;@xA&+^K7yk3Z|MmRXtSDlO0=r988%?rm8qS0tzHX49vTdMewUyFV{u(t( z>T89}Tq(14Nz}4;dm3=J$;q#Pr2;u4Zok%*9`D--HaOa>Fznv=6i{{wkSpO30eO`~ zT|K_?a(=U@J#z*+n%f8+WYRnM_)ke~M*dj0X;r0IY++ODw%Ln#W& zeM6O8OM76_%Rn=ttm*QU1L8J;f)%!axP_fA{uM279vxI7TqUZhgjUCB`OD-W&(kjt z900Zj2TqCGNp9R3(+xT@bk?S}FH@VNHP8ey`0@+)4sif5H#wl6xfv+7e2 z4_*>&mgLyu0Vf0K293vx5jGpo)@_i_JTtY_#29uZZSQ-D5;?M;FGiW7DeBp`hl(Mh zohCg{Wn9t$M*o!LXUR-O39|%qjkH0lWiNwwsx@3jFSbC$oKhB30Kcr)6l=K92RSEm z%ufWKNHrVgJjCQGE+(%7&nJdI4Nrkh;yS;QG$M)R5uL_hg`)l{svgbe(m)Y}J%}rz zB92$jeCM%CSxlQctLR%Q5SVfN5#xH`q=SXxm|fV1rL$sipap0qgFYoOScq)ut-4!j z$qIrJ^}1;?;|Q-h3#1k3R*%^_i~jw%BfLl{_KM#}kD;Yzn2YYu7&}Lmdf1kEui`2=;&LVN zTeX+Fjlc7V*A)(X4|kNAX}0!31L&8ronAird?uWk%;&_*>O;xPh%|3UnG7|@-Anfdky1M6!Y#2U0=R*!RBvRy58_v> zSn!url(tB0>~GMT9R{@P)JAhMD~juhG-+F!r__c$!wu9WXXGR-rp*5~QT}1_ekS<+ z#m14@i#46Qyln%PjW?m4Nr86pJ=If*V zol~5m478gATP>5IX67+|5|aHaK&5!B*tnctuz#7wp_W*7y}$!D<+2$3Q=W&l zkMg)zzER3C2)+_bODR0|s3$=F>(qrp28qqks@1HPePOPvv5-?HWIIIVcgXN?tO@o| zZ9R!%rcfa8U?F$U#=rsL97U1Z(BnkDiU1(d1Og&`G-ep)pPM#p`AXJk4)P(1zNrNb zj}sGP68PWd$GRKCz#NuaO+k$PZMrPb8T=HwxqeX)Bl6(N3F6fy7|x``GTURV+TdkR z8ka@DQjxcphA}ZxHROiVnlN+h7wvnVD`g1q_83Q>Xu{pfcZENmNL_Y>T>c!GKTyd} z3bJ3cZb0Lg`UlV6NM~o?S`=}3qz^Kp_;Sb}6c1(v+?dSd&gCmSJa_&Y2oI^SBu$x> zD*+xux7d=fWLiZ(DaEWRPW_xG65n>>c|d5VQ=}fjY%@X7N$+LD%|Y=-Mc?kzh90q; z7-7;3-;ppRE?2NT|67r^`{z>=7nvugnJaZWSvRQcqRP;*WMj+IKy-R)P<=i(2i!8A z%2WYDMkyd>nYm`K^RR=XR<_lf&mLkYD?x@AxJIPf0D^Elb5WqqqW>H7_}x-glZOI5 z7K|trklA$1kx+Cs(i06MAz_#GCS7=exM8wz+PxFaN839~Usu$0r|8p6l7}v4oqg?; z>~ew&CauE0(7m{J-pl)Qp!1e3mr!o>t^1b3T0F{+DqQ+7Cza6M4X9hMKUX0Na%oM@ zCU_-hWzG4lp?zRY{z90B6+{bQ{H{Tn?P;ZChPn-`{8ia^o}0|M#YU|VLA%H5~|=@_>~ ztt?$DkX1WSDVhgT9MWBNn`%bSz3+}30hQhJM57wko9Xh@>ALK6yIu40kLyYoQ%xBJ zt3vCsiXlH<6?My$Oj1XWNd3JUge%Y44{+H|;-j6HWbU6o3+;SDC z!E9(wHPZ=JGFT=bJ=K~@pljt@*neDF*}`|%Qy-Lc-s%A-iHUYeif3bl=DThWrubNF z$A0JO_kn!edE7M;Xf2Qgx%SoX?;4rZlN+A3*x_52DJf@imQ4NSax6ajuG=hM<9q3z?>w_VgUfpxmxi+E3@umB2Y=WKI|+7+nWKn+!=#o~ zo7wKrHJj5qk**%!g0{mk>&uuFlM-fBPvabIz1E=(qY+R)oRWDlk?k&@`SPVC=A@A|!&c zRlj!rdcZ9M<7QEbp7EZDoDZX%KY7G{{~vRS|K)t*|DxNO|DoGyyr!yHyrtJB+c|5s zoTh7jM`G9O+>*?g5&btMC^u}eBB6M&PTO){@e?;H;+ms%z{>f$#j|uU$yh?YnV0{8ouDl=ITKM!$p3r8Z~oc7Kwxw2qeI@>>-EKCU--Xyy)Qmp+y93I@Z#NzXOdgUVUSu0_Ip!kv|V#idCArBIKg^_9mdH3 z5S-tpcJ3qN&6NZ?-vuxq&+_R>pWEEPmlRerwJ6z71jCq=TXNqPYARovV&ivCIKy2h zQxJuXDm~z*(WF5LI#Os(yq1CFuTn~H-Lu7)Nt#YrvkMyyMFlUfz5G-Iq^(u%C|ng`B{TsKkKSPFot@P|;ZhmHkm zi;A77o>xzB%yT*t_MJxxvaBTkL*83xN5D&b%M94(mcC{eS;56~%kSCl#_yOqf2n`; zxHibj+vE8UxNPp%2U_E%UyUiQh`SyW`9F$lar25}X)x=fH+*c#HgmmJA%n*lim)=s z)8%gFN#v`*9E+qaGnW^$kERy6^D|7_^=ls?&6e%t>Nd*6lFcB*jtOEu250NGgH;t_Az=Ddws;_ zS@A}|up3r!)WrZ@jci<3E%`lDmQR+&$&>e;u!+(5_y};bfq=9SMb`7_RJt(CTW+cM z`UnG!$leHdB?z)4+sO@6g9vU94|q{LGBPh@Ib%IDzHSzr#TM|3m4bu{-oT zcX6ex1<1#G_4rBMGgi3?wJ4;D@UH|~W*3bRZV@21{mxXbOajX71Bd>I}kyG^f^Tik83L{=Bb4?-Yq#8u2V(Gak zPu5%PB2k==r6_BnpQxlXJw={lN`GnmbLpmm_LX2h2vw9D@($-YT=mxl9@CdN)f{RA zs&H%uoBo_lrVuX;X`s{~uRy+O<{xT&evu1#+VabBn-8@bW({ODGsIhp=7eW9>=DS1 zAu~ws(*-fYA$C)a`lpORzMU2AumKURD90lfX!3X`S^_CpLor*LEc2|AlYC2lcKhwB z*LF^j>!ChO^QT&S8e+EeKEI}vYFwJN{>jm7BHfJq+QIAyj$;rei3slr9cvBgLnrA5 z(ktuIOB4Q>jhMGX@U=@Kt&5+eXsd62I4dVw*;Mjr%2C3HP`Y+76zKB>kfgZDhi&Dy1$~vF4|Vpa&lGc9OI67b5<~1gabjp}l#*QWD*v?m zm}7;r3wKxVpDpWOKM%c|Q(1lpO8uclu@)Md{7Z|1_}{cBBb7U;80W{s;QH;6z2?;c zhZMf>gkQ?%n}z0E2$%ZUmJu+B2juy*!{Ccz|1X*WK9Pgvf1~FNP%HfN$gu7&mi_p{W))kcJZH1(u{D2LX@tXfx2U?-If*n_!J6kp|8ko9ShOa+P}QO_~RchlvX zZ;|ZJGiBzKo3F%fgpHL2wn03t4ND`iN;XLsO7bX>N6%T9l8ldLg&-s@jKf%VLGFKa zKVOSMcn2-8gLKL+np9E#?*_q(85V_8E~=-!jXoU>53iqD{~CtpT#sR zbRn{!QD*>*6C*Vcpr$4HbD45|?`{?2J@XcO3`{YzSFXuEpBmA50Dhht@r>1Qw|I*c z!z8Q-7i;FpSwR$Var_P4dK0#1&X93jvaQDEaaPK#OR>Wl+v?KZN7$d8z4J@Ta@#CW z2Iw)>mnxNitE+XWTay;Ik-8q)O<0s}d9+s8l}7}Xoa7BS zX2;F~%YvRygRf947<_C@S?be7>ta*X`*T%U7sh<82ytx6l@uKGhLNMmvZVGL+RHJ; zk{)DBubXU>aLv+Z>C1bgLE>{pD3DE;P0=`Aot>xYXtI=Mx@%k|+K9sT6z)v&dsLfH zbGO@rF9Qa144BHr4*^vJ)jmqThoc)s@oeUOFr1PgI;3!9lsai6BbQIL;|;E5|;ZQps`eYGeb?$0s2 z4{Hva>*6#9&f(murm5bsEJ^no6f76UhRGsxbnKRY!zOn0R6TAqY+P0vu#Y8osLos+ zt%ofY!*&r(!un`inO+|?*^#(xl3f5phcnGtn z<;*dnt{Erlc7aA@j!tmh|gaa4{k!`B!KS4JMzDJCHt7 z^sq(cqjh(vrm&2h0Hz7jvJyi@a6CjrHZun)+S&$1`(4)ybg#fl-Dm5HTj8FmcSZ?= znhOnvFP}b_w7IJ$)73^Yd({y?y6JBd-g?VnM+1!wBtJ*_Gdj(REwf>Wns@cW)zPw@ z4n4PD)R%e*&$l2gkFX;E>`$BLtG&2kK{vQpQt<8233oNs2tsciYQ3)gx4zZw!uZQ7 zRRe%NK+HU-GuO==$9DI4a}|@2F+1|%oaQp*CH*mbER2qR;0e2{*t?<xwoNPiC~JZ#1kuCn~HeF2}kSb{m{iM~HW^ zxsF`Q|8V4<|EhI+B_zb`2!t~~TI*iPKNo(kFE`9uvA{$LiXarq&gH+(7d@X;mQ;=y zUmu)#3$jOY?MQoP(laNqER?)a1?VKq!e`2>9c6w1Z16$ZOuiImHVI{zXMf#~<}Atn5bhb9#1S*X7)6Y4j0M2NGr3YQaa_EPJCxJ5|%zF?+}0nUg(L9dq$i3lB0v6bK+Kawy^A@2ugLkJo8^d`e|lk5;d$*1 zX+1LF(7h@kzv{gsQ#d59{5(7hXgBlciiNBRsss3+UYl&g((5H~hlOBV)&uz4Z*oD`}bP^Di{ma|40rVy+(-qs;x0U&)hSvP}5EA^})Su z0NpUxJO2>}0>p9h0fi2>9HJmheLwbDgo(hUe4~$TZi=d+>mXvhCMDMuYGy#A*0HP~ zAgb}p-&g?wEcfv8CQ(mXfN0b$vs-M0s;3!F6qrqb{hKLj#0?H(B$UHpPs>7Hjf~RCtpmTUYi(HK)s_X7~EH0D~T>*zK&# zY0%Jsg6gM1D{z8AJ!&AE%A_j41l?+=vKgDe$V{74#G#ON2_2R~|2mTIWgtTClW<9^ znd2N~A&2DK*st6LSdAaQcOS{db0V~!1#fVsfeX`56U@b#yn2w1LScT2TNo~o0nG0$ z7?b$0RPKV7pB~m}{b=j|P?xX50>QGh-R4Df4>%831RG@?8>zZ1sZxtc|5RMHH zG>(o#HYZu-me2;7L;ddfYx|1kGhO?@Fk?~FQvBFl?8Ik3RI7E_2U5V&^p z^S7KedOt7ZTiAKYU>yOq%D8UElBcUHk_2Co~vM)sjPi7jdEOQKqw1$A$#V3$V z=VfuOd>7oi6g=i_Dpuzu($7MO1l0ZN+c1!wPW=_#KeF(N{~5V#iF&@dNi5HX3T^pR ze*H=Bqb$*-bM5_PlpcGyHyIbl425c`L^fWmp<6QcuAGB4?rV>lpNj?sVdNP@I4dSy zZk;RN<;7K%d(k4_lO8(rO=ZtvG~ac-+l`fydi!mo^q*RN>x(ihwn!Gc2_ zHWc8M&X0G>ZNoP0AH`0N0TDN98jQwwWqC&k`8)m+&zElC-cqR=YASg8bF9CC$B3ks z0E}z3(MGA%9}rP0($`#*V@)=+a0WU8v;Si(fLTUaRa{iEyeAe)|IY;C??<}0_yZux zKdbQD;iKyR;n(F>0(g%8{vR4$fd>|N|D-|f9hU~Y2oqFT+W zjo)QxP=0a$RTuAX5s%HKWdy>x>t%FeG*O^Y$afUbYM+|@b&Qni|in}}YM-kWK`M0*Ed-L9tnfe~5i<7o( zKMlNEx3`THoGP`}R?xqfWf*MU^V~w(IYzi!;)m9+*z4cmrg@cx^(aj`R1m4!bl&*PPD zoU@|Oko|7s6syAypW-||H%)EhuhF7J=LLH(VEf6MpCE#vXg=Px+zoT3ZCH<+-ri4+wOBjV^8wSgBz5mb(CFQl=s&n3gBmUQ*5U6w zIb6^k4;;bpPDSMUlYv%C)?p~Dfbq606y?L1<2h3 z*`A@A2hq|r4RcT3xUz7m)6?*SpY9fhBBwPib(Ue^FqGm@rO|fZYw9yGnCjn4)-o~k z(_$6~7ExruXkJyQzdl+oMQYPJ+D7FP`)SQmN0)g@#m)r(?7h|Iemzm|@vj#- z3hY|#J1EkK$gxoLuOsHzksQpa%Sk7L`hLTp`tv&Nn5QYwH%;jCU^#uyII$wujUM<3 zhcb+})Et0A4Tjj1cW(qm^tXPg6-ZRF$(v!eIGDWayes0b(|H}g5sWJx2orZ4yE#a z=V`tV@w0kt?LFWzFrjvdE*0C$CT9objDxU^8 z#IDu%oXYrvpWBmVdVnG0oi5hgc7E|kXRG_Gv+1D|)6Zb#ELX!Lq&;-7@Ci&2hipuW z%jLRRRgNnm+V1}n+h|lZas5ig*dhKT0F3V z?_t3_8yxtLVdCwNVZt>Nta>fR{4|s{jvQv1dDC25uBd=d&?M8=*H6JrX zjUlY|rRt*Z=vPkol5mPZ&WdKtxCUc;bX32SU?Z>9xH<-6yF_)Jj4~Y(ta9K9=O)$Y z>v;JU4{t#EAT6Fy^rFEuE#$*_0w$`G*VR#VMpB7S&G0bBkDLDAHpm~(F(!p6Kd$CN z4qjL`cR)@)o1DDP2)oncu)582h==FUBEiDSx7nGhGD^Jcmn7%VJQ2Aot6uvl00dzs z@}J3c8dptId^{oSrkGXo+)U4P5{Hq=fj7Pw<+rBWd3d!!LYv#U!N@KVBFE#~E8mu{ zH|kr3UoD*;T_bsH7)@>aTqC3L5wE0Ha4yAl@r2?0J4dh7Es({2CDx(d4dYY*n?-~7 zE%k|3xR+fvR2AMi4GIWtG%6YnO0$zC8@Y78h9%w(Qrq%5W%PH?#mC)b7EwwW^_#TSb5%6rPM)?m+-;Zd z$~SZGJ9}k{{IScaH-Csfbvm1rhlRPBBA9H4CCEzlKO{i1YE`k$PIe(qk4T={8J zp01Mz+~~+(lQkzU@#QrS5Bd+z1Sfd?WK^L^lKi&C8g)&(2)zqc&K}KdXbWD(D96-Mn2Q)=*u#ZaQS zippPU88ahsPHN2kk)^jU!MNE0tv%OlYRR(_7AB8}-#4b#!XCu;$&MT+)H1p(zyUsR zI@H$F45~EQ;LY$h)d-l90}uxD&-tfNgin8kDtzclY2k$0z`_z+c)#e+9-Ut_`p%P) zsN+KAp4^GB={t7u z2`{BIn&y61F(r5JT4_}~WR0RWu8xuz_OJRnHw<(KaSq&8{#o-c5&B7d&t)1zBxHcA zOoylJ^=}A?%`}L%oHubgq3BATKDTGy6T_sVVA;xUVZ|Lo`4VT#%-kOKg#X7JGH-Vuv=fIS43k;Z9zTt%t10=T zCv9RHi2N3e@c6bNo!P_wAPZT3C$eR6o0zgH`59f2z$}C*?rQT3v;sWJuHCH1f2mKS z_V1= z@}u@XdH|OvZyxx*iUFNSN;i2h8OqrHgjiVO$o+uoXX9fSkE}bT#NHIeY(cvUxOY=IBi)h z+vP-6td%tyGv!c(13hKhyll9Q=cDGt57j+aed}*E^%p$0Y~yuPkjGhBr6cT7U;K+a zc#55Td2h#Q!{y2SM%|f$_2Lh+Gu%yqldPQ_H%r;>w7h!5~|g1Y+~oP?=|ArKX@MUl^MA!iZT@oF{+kZeM*H$t z$=rUSe?vX_(kn{{hrGT5xw(1o&o1r9YI-S<`eL=)HdH;lB#K|863-Z-Od?67H&8Y~ zBU(uZBs&&o7&IZ3Sp~IOI1RO80KDdup1*7RV~((HzA~?xArUB(;OJr8v-WH@wNr|s zzMq0u9n33r8l|OKoQMiZ)D~3|k+%jf66Pood5&{6xTNQ}5FxK0Nzz8ms@pE_{_g*K zTqx|1zeBlmuYXZtDSuO8xk&GWw+AflG>3W@RSV^;Er%VAqo92V$8b^FDaQ zquH5Y!OE=*BkK^P0gp%T1e?4zj#G8=8g?(pi+<1L%QpYb1J^HB3H;9UVB+ za8_T)IEOf{Oogzx3i-8L==OhgbsnDo*K2uh(14qE+Edxns?#17`G~tLFjKb5@0cBt z=OE_$w_)bunZeU1{00OftXv1zlP(p|2*w5U2BtDyYE<{3(cPGVvXi@J3I38V2)Uu- zYX(Dux|QacX2JQlb7NOaB(*Mda{SfJH7HQM1Ov$H{A&XCfU=H@O3_YE!)@ABAu2v6 zmnn5`+dZ!%Z5z6oMt9utJ-^Er7XE`fxEc;Z&ZSW~Ry;)^NRJG8qS>{w9yqpKg7L?eEhJANBZm zh8-JEQO|=QEy|OVBT3{!DM}U)*wXvu2y-*qGxGrTc>j6<=L%`}w~6%5l=HY1h=M(a zpaDzXpzum?YHNrf7gSc(qbCR)UP9%JP^y4_DclR`m?!MNs~m^AT6`ydDf3st7)y8z zo}vCwY)}rRXnTq)(7M^-ut6V^yJ457mrss9vZ-A|gx|0qrS)h# zssm5epU#1^6Cf%={PCRps!d)w+uuBmf%RyBa@>tzBvEOo1^gbaBwAfDFdU5du0x+Jp=V9?a#p zW#5~SVu&anVieheu$_*=n5@I!SRy&iQ=%%h@GWuI)l+4x|fAFxTaahk`6tUokHug~@;TYZrS zf1Y^$Ibd;nDpO9x4`EZDIo|=woJ1G%i|+SvcEmFsN(2WoC8e~Qz0PHFh@hX_36FQA z7Z{iK8ZO+$m*&)JMq06Gr7bc$M=MW-CtN%=+*j*`;04(b>Fvvqh=GTKdC2gsQUoz% zxUt3V3{c#lUB`&(h$Ei)&SSj%62$%bnGABJzZL%LGTw3mrW}1Ab>kqLkEdMhavQ7J zFty+hyp3N8h1>5tEdRdnX|bV*(we2}b#To$*X4YV%mE>p;gaDg3s1K7Ohd)M?DV$A zbS|s5fzESiC-;v-X{uJCa3{RN!kbiYmAlnFlfW=n#0Mdy%9-fMn$fC557zSUVJ898;)?AY{VNoVvrZ{@`Oax4e{eYOYuZ zxNlXLjcV)z!H`*SAi#jJ;Ppmfnb;iV@xg+j#M05!w%eHUfDfpOtwG(lNo1iVo9-PC zWQ&tj-fV@shv$E@0Nqv6DL9?B&z6~@ybDOqfa4w9|ZZ+%ZMeSJFBwzX`X3}Rk4=M|VT8<3+KE?UL z?~Z9G7$&=XQ}(R7RfM%EnHYIo<+F%X@%mizago`8O&#dDeeaukjr zopiFeq_6->J0@9GqCI{l3&QAff&*nBSX%FXyw6$ejdM48%Yp_$sUq+;a`E)Y7uwtQ zyFFzr0BKj`DbKHe4eg;0-2wfU%O52jm5TdHoZ8J_z$|S|Wy)^tk}2;dRk(J`Kq}1k zc|l5BFs$k#M?+o)`x}U1D^VYa9I!={6lKYlJ~X?cbN<-U3gG6>?PnEd2RRO(lT?>F z+*`*4*TGur!#SCHE%UDDNcn-V0cGXRLAlk5@iUj9$@oTSCr)Bbgmq!@cAk=1wWlMN zQnxuMyUf|Gyr9>|C4S*)-_S_`K!A(=oX?PTu}P9s^4f}5dz$X$K41yh1aWSY#E_$d zZ4WICmRTfIKu$3-BJ=1W%60d380kS^KB7;CqTLv;2NNNXGx9@rvMqN6-{B54y$G$; zAbo-18Jq6q8i(o8`1IvD1O1?-GbxKAJ;|7}RAzJ6-3xrkpm9LhK}Zd zC7v(KRm1)E8ZRbZ2uwNj$gDNg-dqX~3(Px?xA$%AWaJC3e~6x7he+EdyX8N5X)_&B zjmd}q*5IeYq>hKw8tI#f^-;582Ne*l;1xB?R>)uqT1k1gP5p*5k+MZDeaG;OenFdQXhH+5;xb+9hfBU9wcLf+8SSG8GhAKL0o5ubP!%6UOh{@0f_ zn)dPI9DkvW(zCur`Bi_cvs#MFJ0xLdlsSK=CYSMFP`7WUJ}gUvK4QwQOv zU)Az&ajtsRx@o@7B~heBdU%K0s>=g4*K8goSSuse6O)F&Vlj{WbjOCeDiv?^pTH}q=ENkG7Wu-Y6mOhBT-8btts0*tuwJC-U;-vXIzrBQ? z?|+*m78zc7yZ^z^y3>ol;lT_d5l@MBWD%r)A*_a-^s?P~2ChL5j^?_{mOa?Yut~Je8s4+q zi?)VnsaF(2ZiRof7Je09L;mXMuk)q;b7TKPhT2iouw!mwWOzjxreQF*um@!BX?7jt z<<4^Ir?R1HL0o^FqhSX%WLqgr889@GvL~vuj*ttU&-odgoKR8K9!qD%Ot+BoJp7iG zq}5ipNsNw9q-luQTElO}Ln8U}3ap$U7ryrNmtd)F)C{IGB|LryD?@BI9;N=2rmJJu zZESHU$vg}J+Hi4JXJt)m5Z#E zURaXr{AuXR=1LW+S6i1IW^Vh(g{V6AJ6V4tsx@R2`YGk+1ZD{Dn*lUJvHuTo?;Y0E zwyujumrDf~C{^iF0wfSrx(KL9OK2tp5CYg}2?PvHKtPuwy+}wvx3ZW{`<}J-Is12i&%Nh9&z*n381u=TbIdWu{KhxF^1iuhIL|Yxn{atH zEC@o*!Sb7Lz^On|eTUTH zyAWPvR~!{~FQugGIHToVZ0O45^R!KRyjf9-VnN}|6dF`??HYWn$-spWxtQqb5mNV$M-2W))FxZ5bP%W}jz?YLpvrL4p#` zHienjtkbVQ#a0TEvQKkD!Aft&egGsg-}+fkBQa~BnEXs-qLeh}?N&my%rZ@wV9wi~ z`1szdrZRpn(Or)TP=O*5s5+X%@*8kWI((s3Z}!ECM!XY0#FC3t#X23~AloTyHNDTE zQ!&@`W=d#wfr}zMatOnJYX)W*cza9&dAX7Sgq7~V+nalVn z&w1!_HVq)1|VjT}r0&-TlIViexZ6 zhnN(NGlqMqNkYeCC1@$P)Z98KEwx1!mX2i^pfaLuTlyWatWFNf%rHO7j6#J01uaQ? z-XVG;**AhHH=fvPTJRgFl_&C4swc4*a4Zx-Y|awfnJ_V*;`I}0nk0>tcWks2B3LEc z8fmTJq;}c()0bGhRnhF2xd^CSjQNt#JfCQ(_q5!Trl~>sj_MZ~96quws0W55Q#FxN zpiv=#s&6zpv+xHURX$to?FgZ@_T*7C4kX<)0%|in#g2bqN3*IZz1o_Ys8Dab;-91C zBos#R7QX%2gOWeQ@TAa+gP56iYJU4uduEs(^y~07J-@myVWUmL=6OE=e6grKzWUgj zSA(}d&snI&1zU&bA#BG9whYHIC4Vx1&?Qs#ZohLb^#vZJ&vqLN)^W7~_ld?2|T4qc=O&Sj%)6(ZOk6G1@~O> z{XgR>j%&4y;XHQ|E*Ur6=?S`YJvkh1fx1wc{Wi6h3e~HW@2)JK^SgU^{acLF{npXG zOg00f;Ol#EpcTeA;=b*i8Kpf=ayX+nN2#KGfC9Setk9vJfs-q_v~T1nh8mX>cmB20 zrwk!qopJPzQ9`d{Y|BN?=Z0VYsH4KRok4Ds2$kXk>RurJ^X60a&|mA_zJhy2K_>|T z_8)F)>R=woR$N_HF-ZQ-W+Qwqo& z-yxG!EChcxhV(phU#R~@TP;@2!nA5at+`|s==2FnQ`UdrQ4kTyXpDjS9W7%tblFro zH&?k;|FR;>=16DMJ^@7+c3*Q*Z%>F!CQ##`Y7#sU&2!@tmjXVk#yo|Klv;Pb7@U1M zU7qK5t@PZaI;YPaf`V3ML1?Lxz-`o)?+(5&39Kf92XpuchO^8dseAP(dKP3PrAL(^bT<#`zFYurQlO7HTutkjhIHt%x! z-JdPS8Qb#()8BPE_t5+*TC>U_P{p`1&m+uCQ>#X^Al16Z&J^#=z;ox0knu!3^Po&V z58HfB_NmPGcOt~OJ~33;$@c)x_P?wK$LeDN$Aoj%9*=XYzK=)Q$l%Q|PQI_jrF^-Z^yE)9p#wTA6gDX2`TP`>8o-x&2pJ8&N+|4|#d#Yj^2Rt^g zCk}3Yi)cLwB-X@KW!?#P5hc^sVNxNs?ijMWCFYtLJ|;5u8CuFbmgkGwZyy*9>JN!^ z?px>RRRW7j9`pUvEWha_4yehzU9PlwZs$GBL(X&5i$Z)#(HS?qU_pIlB4%fYsA-cm zC8rZX!QDRqkLI3s==fy(p=Ow?!Fl0jWpf-m48B)ALzo@oweR7y<@7DaytKmRS_QS% zdiGHo>O9EI3i?E^^HQ|Qx!M9Yn*7qHA5So&^{C3hCC2mz;R^hLu6?$(exIyIT?jE7v?Ls;O&ud3R_VgEaAzTyoaJ+RI9jU{c-5CCHPlk*o&&S7bPR?QS-8S zlqBb)Zsw?)oPC;aXK2OV5q9FSt8HSYHzrotcpZOrJ-c+7yAV%Q2>ckkC1`Z!Rjr<; zdS#i3Rk6=SNo;N!JxPF;)0TP_=uFhKGiHko+IGsGbhy!QKYRGij z`;W+9n9HEVx8DpWYjsF&)ae_e&D^B7on6D~Z!U{V%x~Ae_Acq{NdO*&mz zdezE_Vpdlz$M?WMvWh^f%Id*L(PO{y#>O^}b=lqaw$d8Uzm{)U*zu?)8fK3;GerAr z8BVG$>n3aBQcQq^D%u}lvFX3r?$^9fDvO~Q#NMv$j z%pS3kZ#z0N@CN|-FXQsh%Kvq1+Fjn!M(H8qm<0sf{+o9hNe2C|(pU1`vm0Nc`qdM=3FSUz*%{HH$s6vs%CW+x2Q?nWTu>3LYN zjC=Twn^MVV|tJnA><;IEiZ=;~RTEU@FxkS~X?58i3{$>TaYAD}#$?9^+0#eG1)i^O=vz?XZhV20Ji%_UZ+ z2|F`eUJ>B_TV3$m9*Ty}_yDKhTX2F!;k!@~A2H7prRuu~67SdWK^TmkuwHrUgXOtS z0X;J)vQh*n)#pJM&8FFCi zd_%dgmp7N5M<#Xng;G4Xc}cTEg$d^;n9Z8go!C#gU}aS@JIVPnv$i;l9;hfj%e^+4 z{klSDTzIh#O;gc_CLo1FEj>L_xKH4bnZO2nd4%8To2R#qYxNjrUa$U?Pq}~d7&KAH zX_tAWf1<@$$Ix9K6=QyXCQv#ly2t!YH5iA!FkkMPu_M~_VqFP{iD$SsK{FMmJ($g< z5LCPU8s%L_$V4t=KCfGO4@wN*{+i?%YNec(GdJyUknkP*1MoePWl5<>tDmjg6jGtA zkKI9F5d18&OrCEKMwN$YgAP$L^LEt*Etl#~eX4G7p<2|E^&+hN6$2p*deTT$DYlY; zg&21R^#Io^1@+sMiVFj7jHB9&<3U zVd*l{)21qOeOQ~~s=H{AJZi82=_QSLX^2&fq-{EFu88PbS%^M&SWu!3e3E}dcfKoi zkUt3iMr-E}pHi~?6qceDXm&P|U>FS5OQ>kqIkR@xPtnz4>_lmTR^6tQHd*vjWg^)O zA`j0KrV~@qh$MQojK@Cn#qH3>tsE^c(!L?A(v!23*DJ{Mz){RZFgu*fhjX{` zw9DkN${gS6?2W3;dAalN=f6rctvlqGEY)Vml+B@c%P-xVP5l8_&mMTp=s$Sami5tG z*VJVeCEks(@{fW?9WB5yXYh7`7chfOVf1fak}iajX>~gSl<~w`;|G9u$DSbEV(us9 zWMccgbs;&`!zbK#9!WU2Ys4a?txb^K$D1?lO24?03~368TOHnt$&z*JUg}UaNn>bX z{T=0{HEt{43FfX3lLJ=_x~jaTY-&(G@*?JK@S^8~N(?I`$TwN_Tiog>ap_W&A7Dnc z_04s>vKK< zg^GrWc&e6?*}aw1u81(acEBy_b!M{OV$_71Y-WzGB;zp-M=+J(}=G3|Hraux4LP z7L+$jFF8ek(p*C-Q{p8y=vP=S-SdC{iS;5OO)~R$}6R4*Y3>sj#Jf?NuQ{qgr&S5dB5M^y6 zhHwz?7*VusaIp~POO~B4bHrP4XWnQvp|xB&wlen(9b*yRqkDo!8mq2&Hr;T5sabN` z8kwgiv3h}U=1}kGgMPrFUk+bnW97G*JJRi+k1@GxCOgB{FODdfgk?e@7-%XF`J&EL zn{-lTM~^j9Yj5)+R*DSVId{dGm#|^2UJ86SUar^P-OrBT^-sfPaPM25IES$Qo(iuV zNtLY@uoA08+yRwyZFH(GCmbPw$X_d`d4rLgA3^Gy1z@hAv4U&K*Si_wo}zd{Nn|7C z8mk_e!X2gnGw#uxaMDfrRco%OAN?7{?~Jsgs9YH8G$}-L(N-ZK*f$J<*i|MM>HDjv$k3MJln4x$x!PqAk99{b3KsY&2F{n5 z6zB37Vn=vFhwetSQe5rvr=D|Fdo`FPAX6>T-a`vLE4b=yIboSwQQEV?`W3x|6~&c4 z1q&s!o}zQXUI1*b1WPG6ob<1s}fPEn|7_)h-} zJG#3yFP;-(;9n1HtCiN76heq4SCB1ddptHvRw>OY(+`iVw5|+XRwzxQ3>W(<;O5)h z2UECOAdD2*Jd13E=@VBiIwO3+&u#k}0znR*ZsUx--9=&JDH806A*{J@d$`rmy4m2U zv$+THE2*~<2rSoQkk-S1&{dOPJgluS!TuopctNGnZB|$~DaTVZBCt~ehR7#`k%a@B zDw<2?AuWj;nV2!AFfc@g&(O@!SwPjTrxMtcC>NW&Foaz=Cn56~x?RI;1P+VNEPH*o zwPEu@D;I_xyy;ART>U{OE!9#s#lMI(%PEDhKo|QT1(pe=tekjjUX_HvxY6H`<#vC& zDd6Cw@pb3zyIZqW3~ygKx9}l%J*#*rwg&;fyOHu}n+TvVo^+c>jC{?!j+(HF-KV6=+CpX?r4d z`E+P$vh=Vsm30U~L{SW-%(Fr`dSY9=cKW=S-{(2{-hW|7B74FQ*pBv(CtuDi7{y5w z9B4BQK1}4YxP5dn{WduB0*~Mn3M(7uWWj@WKWZ+NNV&)yP24<){{h%Dn3ZN^e+L|d zwx2w5lO}$>L5+Q*6Ebhy?E^O)XubK&p7!EASO5>plxftKzFOEcU->>r)@Q}++BHyoH z)Z6G|?_pKkGM)#3%LMP6c?D*SH~FM@6)g+h-%~Kpl8G6J&2l)WR_&L5ON~PSwm#VD zTNf-RIFy_fS<`M8B@4rWY-KhjdbR!KLVcn}qn}5VcBWo5A{^N6mYlxTBOh&tipJl? zpn}nQ0Zz`cxxJ-%%tn&6yl>Gcw%RuTUDhaOFs$>o65gWIE;8h!UYtebpc{N7PAHc? zYWm_C;q)MWL3HzLQi=_w{e9&;-aHkW?NR$GA1T{SD7}^IHlkD7rx*G16V>!|Ah0315pT=W7Ua7eDBx@A5qs5tcYS!)hm zvp45V*O{nwj>A^biIBf`c*rPE#2cmN^&YwP<5R&!q`zL?Wbln8^#?!|`B3;&AxhGAr`WXg$r0pCBHpIJ;pQ<%*G|j@>g(2 zMUFR-g`5~Q)e_I#=C$(%z{r}4yDc?bwOr)psR*?Y=e>3`)MgK?yxZ#fAAO)d-wEHK zju7mq7vV|V+Hx>ZlMC`jchbNJ9BqlE7_%veRLn21_+Kmiepp9GoU@=kl(QP_5GBz zVG_ff|K5D}=ZOFNhYFkp*0FB_{PQMaKWD|C4NDU(`ZDw8>p6({?T4SO!A9U&$Ai4Q zqzA-GBWe!ftd7vpO<~mWp(!qo&M_?L=ODExDqSzExP1W>$=obocbejl{%w|>B+zji z>eS8_YUA&eGUwG_9)kSr49}mPaq6$OwwYNO&*tC!?z3C*17OL1pDj1ae2?_ypEG3r zATlwxX8CT)>`?BNqG}T}8jjnv&Sw=~HK$LN;0&AD$a?q#@Z`qy+}-@aTg{Yf-eNEX z-YKmcxQJ1c$eX(z*3)McQL36NIqx^@+|6_1F~nR2G{Tl0ERhkAJ+dGYd-N#qrBTz& z_bBce3{@=r*(etu?nS<$Z(AJMkc#Eepn?a_E#$dPATT^N<>Dfc8~}~%I3Brh9BM)_D?Ja?fX)6 zm6lwK1Ik3BR|>8@Bmj|fjhZ`kxp+(Q_s{p@lE9YFJrNwnQ;2RNSyzc~$d=D~+bf~q zVcH*Mn&0_9b^d$xjG1Mg6ay?eIg3puRab1i;OI%P(zTgf5^zx%na8bjQeC z1=e3CI2u!Q&9moGEj70~>s+s&K@6+&`_Je)*&k;K(+Vy(yvu$CJ!7Any?sgIA6p(? z{->kJ^fzWf()Ys)rjm}nqXoUDFsU%acE59@jdkW|-`trGH#ZIAV-8{X-ju^hW=Ym5ziut!=f4=U$vxe$`QvsdI3C&ihJS{hq!B4lZC}AtY)K6pp5M`sA5!W)EtY^wqsEE-^D>?V=Ja z5)ki|L`3-cQ)Ke4-dosKHZg=D60`)0TPFuMM#ouxm#%Z54*S+#$9R~f6+M12C>|N5 z0ORnK)Kq4^h|-F&&TMwjD-2v~%b#a+5&ZGjGV_npsY8Igx0l_5Z`TKZ{;+nz0FX`7 zJwKuA>$P(x?{jGOenboM5n#{r%741-zgPW#!72aG7K;Fsfr7u4Upe$@HTE6+u4=P? zKLbK~7T%u;f}V!+u-TSg0z4n>7&}+L$E7@r5W=zDw&+fz(U76z)lI;-M3^Mx#k0pU zWZ+||1<5@C*CW8uKLEen9@18kS{9GIR5Y&HT>C6ha;RnkUwdEwGnVEMC}mE=2YZdn zd~AHos_7Z(OoJYfhppaa|N4g_no>?1kZKf`(_6YoqeBy-ZI)WDPqmBFTCb_M^-OpqiC%;*qh-rjq+>p z3MTqbWZYL#zD$bIv|M3GpyBrGKV`)~IpLa$O$vr2Gwf(*DsoftajA;rL8rO|Sj;a% zUEbldVs$123})Uei}Vg@-9yOo!Fve@ea}hN3fA&5Qwq+%D>=;Dg$Z4{?RD*08W_f5;(qjjp5hnt<9(N}AM~%-i3JX$a+n{H)^w=3tit@gej{e4tWvGa z$Vj&N@4Ts8HH7zxlPzA&x5McyzQ$Lev1^J?0Ggv-K>&dAU$f#Lr6YhV@?R}j5@)<5 zv^4f(;aB9APsVB_WQu$@l;4&3nbWaqbrzsI`s_bl_us1mDUD#8lc|)(1Z`v##;cR~ z?i0pqx=-Nj;k$oRw=+z=E!J#ZcG4t1p1nat0uH~B*-_taQ0cSs>XzYT^W^@A9u9kj z0M^2`U-R{;W_L^fiym%4WJ|dJ)$z6O*TmC)4r_%B4A(18-svl`qkRoZI74a6XuIo# zS=lU_ml{YXBzO3*-N%Y)>-_d-vwAr~wWhh+t!EG%wQNERG^|o)Fk8sr5484~l!sia zW6t}DU(2FnM|xhHBP2q0j{P?O1qQoQP-e1JldR58iB}Ue-4e=L$$>hLuN7y!6@cA2 zTbjqAc0Ahopj?!V#e{Srq*-U?YTOk?C6r0zmuNzrMPOlD5aY>B-U9J*xpO&Svq(2)q-SU zB5oiLn)Ytf7~A;kk(uP7HK^&?)u)PY&|XT7@?IvuH@uivMTSww5hZ!pEsi<7f78pw zrx~D|^y=cstpgX`at~Jbb8K^xRFA)cr$|rvEUi*fL3>s|%P$Vq_i*S=e1dO(u~#~O zP%}pYP^*V$28fYb`u*?kPwpER>6Pf4);U!HTj8mEC7LGCRKG8hX%2TTxU&2%C_wZRY2MOF znHJm4hU#XNaZQtWb@Bo|L(YG2&EWU^22_^yJ|7~kinG9!rM?^0vhuulN_pYKlR=El zNF(r84~&lq;{Qf|Sv%05A|9V|d<+X-MUuWbx$PMIT^^Naw@QFsI$J5G#p!bCEX2^E zTuUM-Hx=_-H7`57gTd@6HI(6!{+g*{@Pd7cK>PZrz29Yl{E@&j0hx}1v~-HJDw_~D zb?*8yaPaD5iR`wtNtWS~H_H2crZ_tg(>m!onxbm-96_ppM5JS%p3Q_=D8SaJpvxIg ztZ4=JC^Ktm8?u=A-rUl3;0RrCVpiP%2QKlOLP@qcHZ{=ePiW6vddg06%4FiXR7BNh`t0k5wwbHwma>W zN>Zf})}iWDS+tsKwX8aM2*}RRGV-CacXD;_4+%v88a4WtF$|TXX?WYHZ>p)Z7I3e6DM$IO6$>hGIU*9>xlh&5;^!Acbok4>SWp z=Hh~)z^f)P#f7m(@~|Q>&`^;c4SU(4+I0Tcc-8GqvRSN-F}P zrrT{GUW!wEK+`gc<;I*!i6?Jv=ibSht|+S9G^tj?ke*7vrNbpzL5O!4=%sS=2unPD z!9uR^2cU9D#s5o$QM%wDXLDVq9qnDBou}w&`nz*E)3){0BV=bbSb8Q@snUx%BeJG5 zZG)xT<-+sc-nLLoq`+{SycswQJI&WN#V(Ewq;Dm)lsFlb!HKQBK?%^AdAYti7R|;v zC0%;Vdh;}(RPGZyZBVr2gY$Kc&?Kw9#Csw8CxgU&lgq|pBEEcl(B7aXAZ_H2T;LB< zj2i5Gz&9**BCz!Xv8VkRVb;!yY-{uErNJ!xHzk7AUd%s|x583DHZs-NHXh5WvN|We z-f`Al->pG6dLVFLA~DH5h^+e&h-6HcQ})ty6=;LDRU9zvIxzu#u z?GxV4cVD+hE`CsMtIwusax#NRAHVdG`;b&=M^`~W=v48$EZf=m|_#rJ43{($(V#-VmP?cvKTFc#1{iEUW*$pzpFki+SlP;@#uSCqOJ%(klgjS zBC_mKl^)pJw_8y!Ga<6V#nyHs1fGOMJ?EHoxoHA`c1~=pIwb zjt1^Z!!;A7a5S!s|8VYOJI*3PO< z$1rp@l9A}%DXDWW!-~b^O}vS#{&HF9%g>EYj`SpsEqV=jgeK|)+4?ugrdp(%RDFKw zqGn58nlXIDFqc+&FHI*E0BgD%Bctc9{F|3NBI%596C@+{!kW^4<99hUdH`j;knpuQLAWTjB_1@p8GVN2p+{khQ)Q(n~j zI`rU_X&gv{Be&P2Oe~jsxKPRr%P4n#^ncW3qiMDN>e2MHWdmUYOKZS%L0YqDW^OXU+8zxg+>C z?t@EfvOC5_O;7v=eeGcdeHd+^s?l`>fOo~@HkQp;Yq|qpheHF{LAk|=sp4Y1(vBmv#P+QS!w>fMn`5IYT|PBR_XF6qn4_*crolSvEMkeho(NFMEM#79eo z;ij|tE?VZL2|Pzo@uJStOM_F)gyl113`@J$YrX8-hOAT{$n-6UhxRX(zDYq%;9WO4 zU+`5kKwd1h#1A4~^w`jxbDh9RtPM8Rx5$BsuA!jShpJcjTi$#BFgipn1Bc$cnogHgk2tIP)@o_VHm zK0*}rC>8%AJ$#B~rcCliu?274E*|_vgg#VkDcM9Gqe08Z*s89FVHTtG9G{R%6QU$* z>H@WV!P9sa^GaypseuJL#65Dl6JclZ$NaU}nSOSbgAC;I&;ooeBD#xkGp0L`p1!~M zOZK_)Qt`Ro-Bhc5Rz<;eE75!d!?BKU{Hq|^7e`(gG>tYVvUhO1YS_OP44WP(B<+3*R2We5V%THX0SrvSxvV*@K# zo_9ehaKe)RwiR-aFFbY@aSNSZU%3%UM4n>Ss6?+?VUKm)RbuCUt8+J*@eo z=Av97(+b?sVE*xrYA82|19!y51!{*N3a*dk)C-HqQ-Ii(&-1k(8J78(MHw1u%L24v z+BB0k%tk3nd?T)V(+>jxT>KZ|@=V#v3=idg@u8=!qp*o$+zbEox8# znovya^&FRqZ<*uyvzJz+PnAJu-uiCVZ3L2@SccI=_@L9UG`(bux!Te7qco~hLtx;XrdDJY5-DUEmZg@j zOdRZ7*dUo5^D&|Bj~#ItIBR^{#)`~SAfX}jl(&TbJUR|!-cz4;-&vO00d+R22`Tmy z9$xm3v(T&<&DG(Aad_0xQMdq)!TEjJH=^^cnIj#TKJE`mk@lnF6HV5ZsA zJ^L~<`B?rY(iNRoXQKj9jHLRtg-EH zuX$aY?Rygo8ITE|0|7`e2IE1W2&MNq{ zz$i=*YI;}`KKjka>HeRfLBAURZ3ns^+FKGohYF3kyK(Zv-{L%?tgZmShyR9hS;8Bf z9_*MpS5*Cp_ek--pj=XT$H>7BQFCb)pLm-8Y4S<|OaYSVH1D$f)>Z>eX*|%V=%-JR1B(Pg0y^l_^{`$;gd5 zA4+-wisHnAYiFi@_A*(Rf);KGF7N73RXe*cvBdPSVE2KQv>qL@6~^vvD@HO$g5kKp zI#2dmoXA@gp;v*&cm4sblN;JwPf5%%CQ%9`hhV|UOtC4Phfj)=cCOSjv-uH9k5f`> zsHd9XQ7_s1wBin4dwWf;^G!SyoGj=-Ng=SRK1UNSXJK9Xs(yRz3o+|xU!Iyr@co)M zpN_pg-g`rFH>}i5Nua&HxG!JS$i>56A1T>`Hw&^Vcji>qx!f?r#vwYoc;^+E-^C5l zD-webYk$T%RW0Hgn&**h80UB{*66kMwD$4Q6<{bZ`=KoPI&$~wDE(sH(5Rao8#Dko zgC}ejKzCF!(5ps@KIJQ18z@+Tu!^bFRxN)x-55$em0WU~4H$?~+3gG1+i;2mt z@DvsT7Aq0sXNvDnOzk}vUl2P}v^6og7b(5~zG7Y^Rpf8K8*9*-6zm|6y`iEx$Mf_D z;7#N_{9(X8q9kyzrnT8*YSE6%t^$a2Qn%One=w|E#HM#Bt{Frf}_OICwrVF0!l;zjnT(l1&umTISMZv$+EI z>{ z+(GNMP#d8$)lsXRaHAvS&LP3dVIkG%hy$+crPbH%cX}IuLn4mSN-D;N$%FuUgAubC zw#dZKQx+sY?|&B^j{oLc;dx^`-G@PH1K%as_`M@^MmK4e@;r7Og>nYo#im{8Ed9WP89sMk?vADR-PF2OMolxYoPZW^+fSo_5>XC z?Z=wDdAwBDe30{VwO#nR+LratF}u(Qas~?r ze}Ze}{55ed1sZsMHE8TEfH3TYk!)0(PEnM*pS&(4R2rkBpLzKPMZ&p5;jiCsu|M|H z+c?}q!LtuuQhp1o`zrTYaGs7yDpCe-3YTDZAC_`vFo#q6A8dVJ6`bTz;%WoyYs}95dB z%xc(IfP1aQKfw(#3|(ZU+EZmwvtp5}8w++D6xRkA%!EUaSig5nz4X!*ij}Aa7UPRa ztHN7HX980kGr|Yajy)*kq`g)ob112U=gXPWeM<#x4O&gL>IlWfbg%V(8%{AeN+bl6MQ zI1Cx5Pwz9QLZ=w9g^}I9q213b_AYcOHcUJMFrNQ?M*X|8IQ&AVn4JUn`=A_7Q@2j% z*2-E*qSj-*WGH+R3|(Pny?JXfD7l038^StK>lBD#KKY26&lDxj7;uvnRirO=;N9lj zOYQ2mFOhQ>uazn9+i-p6y+geLOMSc&#Q_q5Ja7oIgW-dsV4b0rC)^!ZU1|etD5kG@ z%&wR`kirg9Tg1s^2ApT536F0Z*=s)QY7v@SD3C^_96I?L!atrgEZP96NjVS2(OzQH z{7BWSJgLtny6O~YL6t2^W@QF<^v@_l2|L4Ls`Y(MpZo1cO9&|^0_7g2+%r|$ZxGE? z$J`xf0-BwbUj_9(?#_zsf6gj^tIztqW21uc8zLUo8Y)NoEsrmHG0OIySD|OVQWh3? zw)7SdN}W2&0*(%95x2XZP35U~5-KHe^z20u$1hK9uJ8Gb4wp|<>uCJ|)W%s_3{A`m zCQPzI)WtzQRrb9P@P6V$vVIundjG(OkJfk7ann_5ZL{TC0#>s6#l1C#A-0&)uM>hU zTYrhWzjFIQ&G1^haZkTvBI}z}3Nt{&ia6cQE~iU}oObY+skm>(X?yjZo?b z;V)xNY^b0|;E^`dVs>gvkKPu}SQ6ZQ)rU|g{R(ZFgmCr*8(gh1=fikRm*DAHj28o$ zas}42_<;L`^mo}w=hCnnWkw|fQq9j}ii#D!KMQXf33;9-7~w=?MQ*$#1{CY&Nd_A= zNneB^2`C6y#7t`kIlp^qF`R`AUd`Ys#Fq%-8jt+|ymTgvzK@yOtezh}=nk>CmSsEX zX%)L~06kvZO11m_o>77+k)yCHzwJ0baf z*aBk3kq%{vq}l0Y3AAKMDMR%17dJ0%6uz`b0@gIQGELle^=LJVXrLB$*%yPjNB@r7 z6b|(lu=FVUwaqeo-24fsmiIPZP&l$^XZLeu1G*S}FF?MZ)bnK3`@_*8y~s-T8p17c%T zpov*uB)O=<>B0%72^Nnccm%b4)roZlT%aWgOa=Y}5CC-yUT^I&?qj1mp8Y8R{vR=W ziwk`$54rZ${6$}zxkdZktDV2O&e}2!rD%&Q)I3O%qZT7eCM5;byE4!PWC+gw(HyO& zWS}IWi#`7#?%K01s$hp*9Q3k415D5AkFYZEno#WM-7*Q$UeDosATHsJWuENKh%&8F zGfJDaF&0RH!9PaU=RH>Qst_!i!c;w3DAbG!_!=yb=HD4|v@=l>B$MZjBoz*30*8MO ze4u8R&{6-*m6C#w@wRi-a#SWI$0N?i``Sf^je?|`B}LL^H9N8&`XlVw&?=L1_Y9qk;fKS}0l~((D3rzc~wWiID2CDoN%~m>C$y>=Hj7QXz^zEp|i&XaMg@Je{Vw z=vl*xquSAC*``yIfS!~|Mgl1A%c(wx6w#odyA4vwKI1NmRX6qhgw;K3k_Vq^RCXeX z=VYii;HTlg?Zz#u$9WCKlj^*lQp$3b#Wd7$9}sk6jy z4g~9+KY=FN1I=i;^x|hgMqKNZ(H%Sft_021v=6wav$B=qgniB$6Mw63(edN&1+iTU zabJ_?$Jz1g62-)mw{-qdl>1o(UqMGG=5)QV^o)+f;T9K@fNToX3M{gJ6zZ4>qvsEz z3_KVVC?iw%+>P$~(#{ZA3b$ealcY6^$Rs1&Dx|BwYj%9Wwc-hEL=`cKm!{q^t9}Vu zmJhRT`OJQ^ez|4zKMkY(|6v%N|Nk(I9?mlaUs{J-IB(s8Olw?BFBc5LuldPTp&=jU zPi|?};nK`BRiq{5XMe|nQ!ENJcuh{tFXGyJTC*kN(#8g1*8hXJ_l{~R>-YcB8681E zK|le)p#(^1(jl~wo&*Af5F|8}nm|ChfWTPjO;SL*Kmvpi5C|P~q!&SjfYMaDgrXoQ zpfJDaJokBK-RIuBe!uTp-{0kraB{NFIs2Tm_dff4_UHY2Ti2@U0wHhn_=qM=&u-~o zDAn9boj`cE`-RgYEL2O>re&?n2?FCxOhCW_FpF&=5{ajCA&}l%?tZ0#@!ZL^uS zM%Cla%-vtTXC-b0fVx40+G;09s@D~s$iD7dIDCcQ4ihb-8He8Q3>XD2DAyS#LN3?B zCaBsb{PnI6ts!X(xL+ z83MymYE{|B0m+C|vxDVv{cI)RX+Y0`-1bk;$_6eI_srobkK-R2Xe$Aa!v-#o!auw? zJxty+SC?Ubv2We}=@V5S!428EA3XX$eUVngl1#H48kwUt!X^F008ijJl0tz(Q`_Wh z_#jY-Ot{#Nlr2^X$Q|NGI@$`!u&k&>{Mx6WsDV{m{ssT$ipm?~aPh}FqhZ$_oCa=( zzCG(Qsh^`C@N>>QeMWNBh2;Og(g?}EnOLBPVnUuETLn-lem#7Er^OE=d~*kIjEI8 z-V}D+geIoE{C=j;(4%kFQ>V|CZ#W{@;%2?x9R=9@{4^fISBr;WBzk67+w#I@)g3~k zLiL7xM&*=GHP~K(wLlzRROc0bwqsY#BRb~I4-tMoPZMoe8wz&PV-FbFfwqS-=i5AU z5HK3eV82^kIQ3`>wSWgkCpMoXvh2ls`TW>2N;014o|m0Ht0f-qRd}HH7wr<+S`%~Qm11|J0Ox~fZmAw0thu3B zfR>C!szBlK z7>~z}lqi^Wu~YL_g;qYyJlWxcDZ_qyhaLJZk>AdR?JIlVr*Z8Vi&haZO{!=Rz}w zz{ZQ$WU7VFtDtYWiWq!S5tNW4EuEDf46iNQy?oFL!W4Kf++o6{o-v64sMHF;eRHgp zVY+*;c@}m1a`_`0&aj`5<8v)>LVj;6@cm!7LAJwMjx%%cVA{cKO&RK9vVE>~beX;XU{Sr)yD0<{W}q0F<~Q@{R^Al>P*kXZw18p;M|0OX(aIbV<9lXaJU&L;vNBT<^Z#V^#5i-SUEToFPc9D6AT=>bz9@FQu+&ZR>A@82lMuezue;^LJ zI93R}G^HT26Q<6cOf;nk6a1b-JfP}gM1l^1FkR5`$Mcmj$(U^&!q`Ckql;DW^AQRp zsHc-hcep~f2o#EUN2fzp^xpSh-M%%wvc`XCW3cwgL!AT*-XNrJ!qUHQC0y!LBX_IB zW-nJ=`ZKb5vUw3~Y_a&dKyi$7Z0xmC7u|7D`0i5kpB%}j!Vl~>QIEE|p7_{to$@{_ z-Y#@X(a}OTey(ZGBC{6G9!SO^ObP%1lRU1MLQy19+xGz#HJ(VRXN0;`ZfXUlJ}3GN zbKY~#dd`;IC`*jGBJOE4>s6J9(p45*T)p_2J^N$y;^U3{kRdA>tbb-d#5W@^>nR<| znp@jMD(D#JRm=!E6ptQ5%^-t)vtzJWPdtJrM_S4bD5a{nz8Vfjo(6A#;Eo(;WUQWX$-%*&97f;DE*7lt z!!%YHvYQp7FQu~qE5P72R#IZO0?)6>R-T;8I##-RSM-pdamr+55%VgOd_jwDAi7kc z)>~p8{t9KKwc+%#Y3%Owo5J%?#^OzA7SZWGM3DSz0U0cu9>@!e;!4Bd=5XCNZpe6- z9~$ZzOz0VKGBn?ok4;xi5wHST$UwoDhK?EefErO9(Hb`{wj*ItR}O<$t7IBbH>VdS z6b3GQ;r`RsoesV$y-Wkcw*P33|4UMp^K7pyA$fI>PGujC=h2+yNu$I8Bw-bjv2*|H z5st*R_wXvCvGY^*c?6031KCENblK~nFJUtilrgV9NMAj~PyBsoLc<0&o~a!s^H!m) z;!lnl*Fo8kv#blPgg-el-`K@$R4+1h0wUS`^NXK^_Cxsi*ttHXE{J!dB)DHb$Nc)p zS07C$01J@{0$kIQkdRO-bP1G8u&`SRK3`rC~ zgs>RYiM#PCgbEs44lp6161kC`5hp)gnA8!CKz5!|S1fql>IF=e;Z zRwf&=)b>;yc&*n4q3=B1YZDa~+SLzg^YbO8S^N#oN~@Xxv|0`<76J{t0u2bB;B?r8+OjT* z>CU8`bF8;7FtJ{EH1|+X9E#Mi7o{|$7Tib|GWLWhKmp;um?+N7Te9PsCRjxY^K1!r zJTp#mg;~FXcpi}olm~F3KCKCZJ-&6rA5NPyl8VQwJ)}P4=0H32+|M!7Jq=I)hrq7w(iLrS3peoO1FL;^b}ef z%4;cuunBYx*-zJnSKoe&Z4G2BPljFJ5DF9mE5MJam{9}qZ}Lr2N`UA`^aE4r$uVfn-*lNFC^f?-1(B0bH$iQjj&Z9)J3;T0s{s^r0;BK)W|bx2 zeC7OBag8#;(~(<$ASGoggl#CDvCw#N-1zz+ttEe&dkX6Q8X1Q9GBf!KT&`^qAorlX z1TN$2Rhob*2*T>4aXM9U*0^kykmA_@S_GD;s#a_vGeb|j{4h2t_XB6IFgVK_&6=*`BH&RU>OZX=AgJuz=wkGq?rL|V) z2B}9gjV4BX!GxjGlg3%WyDiC9g8DTCt47)232L@giS6}4m~n@zr<}KghGU{|LS5O< zj*pA73(mfq`FaDL=b()76LKOg&HO%tHf;nwXJrkQt~ugv-5f0ocrQg;74gC2EA0H5 z;g+FG9-xmg8iAG$W4`ylF>2>ig`GALqY?P;Zn;<5IwwQyTOS9`E$vi{H7{KCTOfyIg++_!Hlqq zC-bdGad_9I_8MwEJH0`>vwOTy`f&awOS$3*dx|+HW;gqjdkouXWN3q(2IhW?;PZm- z*^;d>g`i5Ra`WJBR}sitWD8@%RrTg}X6fED=C4D?RBF6OJ=+!MLtZ)R6~Cz(KoE;n zAs>tqAs-Zah?%p$p-dzX)PqI|?T?Dm*h0gGF3oBzpS z<-EP{!55?=bb6}yJ&PKBcf?@yRg|{Q)Gz4hM4(;8`vl3UTcOQhpYWNYAXU&c)XsYR`= zp%AXLvDdOeLg+KgPi04nb#rXzK64LUCy8-G=aAskA?3`K7Ykh&fuy_rI6wNf@T1Wj zX5n4K^yjt^hkwTBBnYh>!x!D*BH;aeWl7173~ z<8xU~DMz_8=J){D>rf`+pr^sO>}nk>Xdswv}90GVS4iu2zuW{(mOgKx!>sTSFfyA0Nd^*m_k2$nNID*WA(%e51~$M>!LMSFc}2l>0$j{X(SaHpmd& zmbQD;d*Y4b7%L&E9Uxh7`*XqZuH1?j?)+RKqt?+sJ(ASlLBJLPr+}UqZO%!)F^Z$g z>{t<)Sw)|><12Fr%n-~KenS=oyT@uU^-~#{P60r~7G!zy)W;F_FmZo0Ct+))RNt0=ZTTfu)-$R?5891^G0Y87YN@2k&5qLQgl`6_-U^Sv)qY7UJW(Tnp8|gSH5p6S zcKIL@%1)`X?%PVmwKOT({HkM)X}}C$ikEDdid3W2%K$r~{pMLB;x0P>p)&cq^Q>{b z<|1_Vle*^Sa?<@H%KZlY9=S{2F~8r2OKZ#Q$=BT)I{opCJhX!2i1pvHaE@Ii{K!An zvt#EU1Frl%3#Z#W^Iw!qnSqMm{&Q#ZOZ>PI{>2h#dhsq1QV$KeTEx^99db>F5&(^% z0nf5x)h3ez$`e8!3HRz}d%Y(8D{84$ADMX!yi}t@q`51zZ=W23gx1`So$qv*dbuh^Wmp(jqwRQp$?Lb32=rg?4I4O zP3H5JSwJfO(x0dZ)f3EH8pj5}9223R9bj0*7xIoDH0*O)pGWJ>t5&@$)P7=4n!Q=G zW5cflQtH9uZh$MvTzd7uvNI$Fs2&W>39>)uV%w~*XnG9VU@wA~uI(PW>{MQM6m}LD z9?0KN>j}GD-$4o}Z%TD#?L}U+IsVh;tGiVn{QP0X^^UnxD+CrV6-p9xdN7JP-5b&? zB;7B3AvmKW^7sxfz}eZO+z!2s3BF6c&|e8%4kQ6|WCwgqt2zh9Xyt8pZ=HW*tV*q2 z_Q!5>9CQEAmFfT5_n$b9EU8@K{Z`&>F=fN%uzz-pS{kWWw#?AJ0$J^eJC#{@u7{n% z?k;ck;Pe(OpfybdLALQ=UekIy_8?IRI6`2s;C;}~WY)A1OHz#vRXX2q_Jn~zR6LTH zsiWcBROyL*>r2{qXiX2VI33%x2Q|wGz@S6W6h25FkF&9feD2CNj10Pe_ z0Xu=FsPBZKACbi9ACbiAqmKILq1*pQv6dSCCYL#dcvX9+HlxObLIhVT z%GRbvyzMSgL?(LL9W7@ffAWKBdF)p!&Z;#jH@ ziNB*Rw2bnDnn-f^|dEPlo%8Z9Mab zt7JK2bB(X7BTA=}+_T7pGEXEii=Ux&M?vp_jQ!M;c-k*HT$Yci_lx=)umlP7v_#&w zq1DiEP?VK|V$;%4B!GAIjj5B)vzpd0)6)mnDjg4|AE==Nf&AWTOGrv1?>#fatZ|GX z1W>pkv~Ywe$-%+(qXqo$%lCP_T(76JZu)B*QNb3SF&%uulr{zo%3!ylg6an|?#aMHBC zC%D}bn;}f1*{tqOtSNK`=5z}e99(Z2Yw~5H%O$ckjC^aevS=O@tb-iLOeCu1NnMlE z=L4fg8HL&*tm`gB?01e&vj5+^mLvZz#rS`>lQSF~*8i{{{r>+}VMx=nrcWE<4Y?31 z%;6p0xztmith@xCSI!S;aJoOohlN?@Kwt(l@Di!zbrt?=ny%zlsGVgCQQg*d9x5|h ztFXISmsYdsw^GzpU(~`lMpbT}OH|>z=~az+HTNfnPr0SFW95iKQpR8z^PHkZSw4Iy zfD3`ByyjO>>pkwcUyDX$RQgR;n>KoX8_JxlXzFC_m6D1;m@E`lhLk3tm41GELtWvf z&`em~&2O(DWy7g93DZqV^%AO7<`i8vlXQ;ht`euGFL_B^nNQAr>Xb%i?&S~wP@ebH zZ72Q9!+WSk%sBzni)6bbgbVmi|A~RR+Shd0w5ukSdS8a8>K*$A7JG9>E~-!r~8xaN|6IN!S@tf%quPo%kzd83hUxvoTjCm<#^80$t_oxMAZD?{E_JkX z{`3=|>$&UUON7090Ro7BtMfHZv#TOFX>CZNrLO)c-^ctUTmvhA}Jb98Ga=5I?6|dq;KlDgKN9>|<}DB{@$8@yOWIHF$jwQ$!O7Aqg z3v8jo91)(3$Bb5ZYfk@3(X2PCks}s|MTv+- z!`?E(K-*V#qCHa*18##x!x#6qot{NPeDDN$M0&T^) zW$_@Sikj6;r;K7L=4v^~()ojW`&Qv0oJp20xnfn*y-Fe=l{`{oRNsy}HBwyx>nM{4 zV1BqP#e|HK%I`HTHaba*>Qu3x(P<0)yuzWd=a1kyc%~T&IspXUz`N(kk5DMmkl}B8 zrzGDXF(-e|T+lgS9}bEPu@1rPcT6K~Cs!=lr$+8pV&#ic#ar9)bBJ`VbeSj4ELD_I`g}Fpr z87Z*=LLp*0+?82nzt}V>YN?&OCh^dgzu5;NWN|a?u@AzweDn{(TXG6J3Do|6Z;$8{ zBws&QP-LUe&g3pZsONQnC7rQT(1wAlI7sS#Py+IVp%*nKo3LtL^uas7*Ofw?$_REj z3rA66VQXvsp*j*4m+m5ymWaBIfN9C_ND=iOKBu7wx*_K$7K7^N`A-o)DQ!wSN7<%K2!eW4A0We$p`Dc zj;p(Fqb)xP&H2jBAA(AU%>N-uL7qZO5! z*>1tdtG!W+Ba6N1QPbSuRTz#(zUnVX!hWAa%9{p-CkZ@m{q;xd(76x(19;}PE`OjGs{j$mEEP)Xt=3Ime4u=r4z7z z-~A88fK9$ty=}S~pd4NQWRlKn66GWU7zI=xPw4Wf3m|4=q!X(YTC5W5?4M>H(lwlg zXkl}+Y;nYzdH|u@vV!AFl;M^2oCbYer|*up_rgGe^bpjxy6IzDpZ&dA4flq5nf?9~ z-s$gha84k!UAw81o-?^u$d4}S{d0}u4^>F?+%K)CBa~4e+PlA8(qqE2KUdtIJ^#I| z>~mCVVxObRw|bvp`^ql%Ua2zJxXDypuL9VuWdr6pa$*;axKWF^x!=k&pVElR4f%ub zfL%tmY=d1!(SI&Um%V0g(Q(#`4qw#amSTD9mi({AvtcQ*U?>bULcckNf9kfzkIY5A zB@bFuSn_0XL8M0O(|H@l(xu7w^IGMxL)b~Gtz-MDX|shwp80jLA$0O_lJ_;xNR$&u zoM2M7YK^gxXpfraX&HpzVA9vJW&2uoUn8EpL8PyqD-reg84IC2;*3ri`|DnY^89m2 zi22pT^y3@AzAF0?bh0nOYw$mpoULkX+B6gYtIfFo$Dgc^x|V!bf_%R#cmK6yyN2}V zp8G%e=||mp{N?oYZ(pvm@611zRtm2_{JGH-+vWOKZR}j>|JGcm(5*;O?#H7G!NA9J z*0FR2SP0quKCujJT|mB{!+cHoG4A|3#piF)A^mev@V2BGa5_#ghuLpk3Y&b6^YNF@ z1wyrurVh3%s;Gm0)|;b${0$3cD+7k1RHtsM{wtDn-OieW>-WC}jO2bUlzw}zG@M1> zyLTJZ6MWJo{b)0&hEHsm?PYATj>623R*u|75px(aHsoX!e%SQ%zs47T=ZYn6Rs826 z_eD;GP|Ad&Q90%~Lj#ItWKv}D#1HH0LcCF)`dwG`^h++Z{IQ2ybUb7oIvbT2+NAxE ze)+SdU#?p$(VOkfG3k4W+bjw6#%{Mq;h|mFo{%9q$i=#1N7%y;;fCbS96l@OJB_QC zmP^LRAz6WiB1TD@DSdEYTdROc|MTt%{ZQ(k9J;&Z7b2z~W96TK6M@|3n53*r9|`^q ziN7>PjpqirTfRs1o3jVvk-xOXO=UE{;znIa+?fb5bI_QCnJ70v6tl|^`8Z2}uFm#~ zZsBP!>$fu8_(|NzM@en>yTUPmFtq2TseWv>v>_*EIP1&^G4|XzR6@D2W&M4lyzC3s zc_-6_qA%ysA&tKh3hxFOXzP4R2g+2Jo4JM(xd4UH%#}oG5t6@wsLlO6aUBik5sz;I zWuo`+5;ILVGS{6YbQF5irsOr^vT;)P#5p?#((Ri|GO0yfd#I+ zS}nS-WIiH+wsU8)7mc4atF~I|c|fvuK^O6hf_)OZ^SFJRbf)5C`zS_!=)%L7%}%s> zM3paDkEc-d0XC;TODp6Rf=o#@H7I~+ffm?iciY8_oi_?!9Qz!#k;7jI%v$*|B5G4kL82r z)I+Xb>#LZ#FSj;Hz28M8oG3^|1xoWJtc=xbo*`ju6IC#PRG@0Ou1-osgr@EnH^0oE za-9f14v&Qxt;_v)NXA6Bb*qK1CFWPemwmqml1BN2jbyUxzKz510e zvi{U^XTYb(?#b<+MSVy#LHr<3Yv8EVx(f__4PqQCW3xLTCA0zweK5fm=C|GQ`ytXl z|9;TX4rL_a_&MI=%U>`61Mg7RNZbdA>i)fzV)E~>ELjw`QF`s6?6+8i*Uo7kHUd8K zxzY1Hp#wvQYB|7Tf#XqER>dAH5L+8&ug_qS{WhY}c3f(&g-e9!dmt!+K|3j7aL+ap z4>@esx7-WA^yeMtpl<-Fjl7P-^-H>tQM|$^E^8#ztZ@olM1{r;$ zljSjz*6yv8mnYX43t_+ZTGs&`29xDI#~yOX{WpRiKsa=_{q$eh!o1BWqk?`iywxX+ z-@*PETnZEdS2jx(XqrTnPNV|31||_H{bSh8n%47wWMMxxuiPqTt}~F(N@jRQ&NY?U z3^2hvW=H!8ICJ)>Mbk=P>^s|c$|ngSu1QyKWeRY$hC#?^Z9Wf&zYTy{^f zuI+oA9%RPXQaaYGl8YSyhMg+&-Y^a)SnQr4+Du)|krGC9I0jsSrfVY_{S9Or(;b>E z=;3^?%NRMgi>NmcBp?%LNyP>z`ixS*x12#UpW>a^L+@u_Cdo867TTXERQNSGSPvafxw4qlXaU!eoGcweQP z=-ch6q~LR1nJ>=?ib8I8n!P(?lw z4r1sEgKH5pJ88DwtNkB$b`m$(Q~vbfl+iDz z5^BY3jvz|gYy?CtrE(4NOZ7@dIjK+x1*jnNwcRLabehui_V`Q_bc?VVAsw^+U2NP* za3pR_+2xcZC-~=nP-987z{TreNl@GJ^cWt(bHAWTwGp7I-{efMpz~8?B3Hg`ip{)< zp9YcI;07_QZ6KDYgrM7e{dz8GKhv3r{>A7I9*OnY;Fta_smEII*r7Uw%#u=fiOF_q z6AQt;)PQR|z_OElqW!euArvOd-+4z%{by-4H5sJfPyz6SglS_a8!`R5u%%aT0hPzRt~;3$=7n|rxOSPSH)i9@d3{_moQhoVfRV!ySBz*QpLig zA<4X8T?$>tw>q*MZabF&ys{=L>!Yjq>vzV{(I3QaS+t^qHl-&Lw?HkqTnIaP7p8kM4uxoL8?P{>Y}HQh1`q9Wf{wfvl&6=5a6C{3JD zl3koGyviPt*&nVRIvdg+GSVqd`j4J}?)U|tBZqv9ZnnTBhWuh9dWjED0Qh4k)qLg< zDa;bM8krd`m3@DE)2B>n^G^=to^LwJ+!lkO$tpp0l$R^dp9Pd$3%rmL+f@4Ok+(YA z#vtu!!;udES(_K(dPT-nPY_Gb+9n^!KI;gS6gffP6wFM>1;~K23KSL03Z5Yl)EmGv z89W3oweyLpYBfSc#vRqwS@>+u(M8f@OJxwD#1=SGHhg0;QGn9+>4EBtdznc3TN@s? z0q$4edc(?>7&Qzm(fZD|AwlApN&UlV97J`3sLnfY|G|Ghc4o&a168}qd=CK(W*zw~ z1fdCMmNFsopZ%4eVZT*5F)*NH`??itHcPe6)8siXkK2Lm8$JEPlzcf(G13 zOX>h;lV{G3qMaTbJS8s@AWc8%nDl~3_3OdO4iJf%Rw7@2VQXYtpG~Fvjf>@dt*%{= z9=kA;h64f-Ssz;<(pb0vO=NJuP#UljWtHF&jS0%w;coG3bzWM3D~m<1vl{^a1I%glZJ_IADs4vZZm#7wfCVT@ay z97E!Km~myjm?chF0Ht={JP*?|jS!5z`m7cTO%9m9F?ohm(tj6wxy)v@zK@G)9uO(% z@?dFye5K&b1Qn{cDz!U+NUwbM%&GPjrupLws%_nUOP*#+Tix9ikffk@#(UpB%t8)0$rJ%aG-@kW255IqK92YHd za1Dj=Cn|OZDCkdeyO*R;MUtzziy(+}mgG^(8I35<=*!DltTT0f;H`?ZcoHAsiID1Wf&7m9Rm*0dHIhTz!YEHc*fP}p1j|Gl;ywtIKmw@y(1S$uEIWeZVJ}zr((Kf zNev#p_&~Y~aJ_}G9AABN{Ex-sc6$3`;Pzwv1dJlDw)9cHDR=|@f^lp!RXV>oM9_-0 zCE$T&mW;E^^O0%W@h^q??h)`SYB=qAiY1;QhuUC#V;-^sR9za`4WdR&o!#&^Ze%6$ zz^F}w=?gFXupw~1JQcmdl#4Ew2|dToxKYSJxDC!uf$d1wFLv?vUyW+Nva#4~a?3@Aj#B$yFcwjDS03BBUXuTB%kpX) z!*v!2^@k+#un$l-rj{bJW|MrRubCZj9ZokbeKZz*s#mn)a`0Yme@3klA}7Sh<*pup z^2_JXC)KtRJ#vCZRwHSLFTHlSrvo2!*>QZQU;TsNa{7A!cj`v~H;rv2qB0F&7w{hg z;P@xsi!=Tw2OAD^c?7ptgbr|M#3h70SnJC+NgJ?c0MQ7Rh?H!M~L4($rZvdQp>`yh|tK>`-bCM)dR|8&lh$QnI8l zmaoPpEQ(w^n-|Yd64zHcLW9TDr+hE~rk1&SN5x6qZ}zzL>LJGuTf2X+aYtQV_L^5a z#Z1!w`HkjcQhGg4*VKO}UrU@klT$$^D!Ne!6kBsGhr9@K86`>!zwY zx~i>5vz>-uCw_ z0Us;GSxfbi;w4o)B)J zyu!C<;=!zMa!xTgG$MOmU-T9lw)8<^Ub#7>!X$boH>?u?W^%sF3r!Zb=-C1Gm8KeJ z*8lq4@T+p?tJi{VQIE}5iO84xQ5f@T{$fvEjE{#ea3M#`_Qi|4sKMw0JzXcAFDZ6| z3x`>Vz{`qdjAG$wn0H`MrFv1sg^5N2jvag&p#xR?18%&#?zH9lq=FGvxjSrr?UM72 z1*T+wyeI^j;8y}ma^Jy9lTt$czs7{<@GWMDm3Eq$+4^`EGo29^Ahd#h*y`jhp_P~9 zkt<`guadUTTF>6kINOWr*TDj%e!}~ARE&f!ta%Ab2``zUZAnteD1v-hWvginX!CWJ zXI?laz-Fe<3fI*@0hp33+(~z>c*S&cyVl_(r{Wi42`#rwtRECwWp>`+-_BORWOk-Y zy|5Hyl+E%(HyPwwvx%%=XX_2&Knz1`%t8Hl#SQg_MUbPp_e(&$MIJh*L;p0_++L~K zq_T8n(?N<%j8{dXm51M$b=UZr5$oyf_kafIgiIdB{=+RHk@lNX-(K39wtJr~DEqCH z*abq3H4TaCEhQx80m7MgUJwg;td8Y(7%C(N5w8sCyz~5=fXha^x3qKm+4Mm(K4O?y zCOO9ne#wk;+rIu1uah8bc|#5gEAWh#K#d4ju0UhG@-HR*u(7) zilS4i!XHaV6yyR^ZBiXQ%ZHSSirOzdg&%XDfIaAR><1ytpEU-YBYM+MLRo&Pra2FY z<6@~|d7tE=c$OeVUC2_Q(YAJ1a@QmT`?Tyl=cGrC!|`24`A2tk&VEc>r*{EGlgEhd zV-p5M*pYXz0oYk3iR25Qo}Qrq#aI3^=0u2{4TV=hniP}Jy(-D#y}u@hFI1;yI2P+@ zaDy-0R1w9`3QkbKem?&0Hw_8mT^lyE+cK^8Jd@c0^*Fl?b!T2L;|OO%@JRV103?l_ z%Zo~s4NvhX}< zUJ$RM*QKc@k~5MHl33ZWb0%nSxKEPnl$ZJFKhH{iCS!3RGqD380)gEtOYG;5$RBm0 z!{Rz55ENLH2s+6nX_GP#c}jT71Lt831%%`TmF=caPf6F?1oF{RUrc*UypMLX914)i zB=FiKdwRYSPDkfGU6B|eZerC1x0)Ql)t$B?o1%(SRZp9N3dj{~cz~$t1btlaB~6q} z$`I49p|>7hnh*;M+T(Ov_inZK!%t}{-94*b?``-{mr~T_7MPAWOL4Uk)E_P$54>#? z3#U$e0;x)NCUiSs!@tbHa1Cb15imr0fCm&3RjPYX>YPg$cilk5q{ z$gifgI)4SKF6E2{Kr4+a3~aCx`IEK_c@R!VsPBs-LnNLILs1ld&O2)wQST*ng>Srm(f@L_vkKPUqaa~SsE=@d{*_1o zn=kA;i&23{eH^fB8k-loHBD2Yg-q2?6~9O|u0~*0&e{ZYYx24I%i^ucnUw&u*6^5{ z%Y&rOlf+Nwgj#mHwA}v z`eCW2Ww6j>iL*71Wr{%otmB_RX#7;t2uZ3RGTMWITj}dp=RQ^}9LT+&-2||I_jvn6 z;FA()(v+n}(}q^*gw1MXIMv+#9H$%Cw5fimJ}p^7o; zJ`_d%G47zLZuq_mHDiJ7DKfUTG*K^-UW-*A>oJ&Fr=h`G1!t{>tpw>1%ZJPTtJ*g= zsxp06^hVH)L90)qPQLkxT<^F1DtiB18`p)?$~!4BO@X412?u{W4(cDr*?VgzOp+#c zv3zRK*Rm~$W9A-kOd5p`Rog*G)gCJpKTilEHUjO0_mCx3x6B9be^ZH@@~xcjo!(EG z2~O+=xX;~4-StOlCB*ycS!o2_T+xY=|9%=FVILlT{X<}oeL_E$3JM2&uc#*t>9M#y z;D}7(cj!T<^ZyOrlo?g zbBBHT^B($Z;+Ijvs_QOx0+c&Ccw)sc)omjr*bhWKqqAv|` z!S)_O64#yO2wgqjP(LKLi0q6PgjtxpF7umh@D5?8Al=9Z83-uKXm5Q^HEIO#+#b+# zr;#c=)MhA8Cy4#Hx@w-mVRa!d;pDG<{-gV87R_K4`5Yvw3hW{5WWIAQ9}}2oWLfzj z07rqLi1=~*NGfy|ULs#;J)Pzl?y?Qep?+LxG`YWMkgu}cJxFgLVQ@?(PMlOko6DF? zw2lfW#(UiC7VZgDc|ZPT5HilVab2+QLu%uSslk=#m-21Aq#1vqC_8B@HgZG#$#eX6{|#jq~kDYSR?GoETeVTd0DtXz3gL2|cdY zeUsx9dmR10q#64@k~$i_^iaC=&4>!xxE^w6K22#^Qw-`dy8B?CDSPr~S8LuQx4olG ze`vy{X)!Y~KO|wwgUtqeem`D#9gM2aHU4;gRq8BH3sN+;-?NDjh0_tKK-~%CdtcqT zGh3W;h^@(+$b6Ho64nTwnfKv+k6Jw|_XVioo9F#li4ygIY4s2aKxjFzu-X=K_(|xg zQ$w9=v8G9TZp5mSS26O9tZ7m$zH~-wJtu-hg~0B8c=`dpC`eHGV{NnES7f{$JK})K z^V$vNwxiibR6|2yD~5uJwe!4^G#J7OBlCIXve1EB$ZMgQ&*q#ic89R)i%PdkqmTAX zwwq!bg?0EmkdlniR@)`SbV`{PG9TpV2_5aG{apNpn2YD#7S+}Hx`au;g~v!cv8D(oyZc&1`$ki5SJRBzycv|nRO2REIDSBq(QWybjUgEQ2TrZG!Kpi4Ihj_|2tec8=ev^J4 zPd7`ukm1)en+AuGW-iUK3Y?u%(#s>P@OI2ekQy=s5 zC7-tvj0DHqDRj4Osp^#8v{0l>u@S}WHp>3HW`}t;CUF4+!e=twJp&fB*lv|?4e`}` zDKEZq1gORdYY3;|1+0Aiu3Gw1Ek4*R`u zWbB=`wUAe2wKBoLXUPK1fdUe`sO*4w49M|$Q8BX^`pBeOAGmYsr^0Yv_xBo`QT2`O zFTDMAY71>ke@hh8!=2Vfm12-N@_p+Yc~3VLdhqvlLLUr8$iS*t3^3sXNg}QE!4eK! z+W#eU(n-Auqk_Og&?g9U%c!7M(WcEzzi*Q6*(t}A zz~G5kfi5$A*_4X|X2b?)et8FMlB##tNIxeTTn8Z;1$?H~0gCx6!docyz2*1kG4=^$ z8a#MIZ8>yK#OJp^IXXn9hS{P6@iVGDkfz!S4vv5yclbYjoSp+<4M3Zd>AIML{Q6s)$>*^-rd?=>L(kK{r|NTkF$eF5 zdhHEkh~v3|Z-4jGh@}ctAn;iE75(U^?oV!)Kkig^`c=`?pKD0Fyn^hwh6i+$XdNHq zB9$683OD^`3REXDnvykEo#F_fR3qG71f;tW6@rCES^~AY%Ma-$pHqXKCGyy9BiYnh z!$hJHROCVh6%X>AMPl~S#LLU-T~0sBMxAZKV`kr`?xzb*Hu;>z=H-hxZP`hi=)my8 zQItmU_4E#4r>1rj4RidMN_uhlwH=hq>0Q3w=r3S4?7UQ8;xA(m!{tm;s|`q9

      >NcQYI1HMf z#EvXlf}mDXQMZ2{`v8kaG$||&QA&f9(~O=smAASVwI>nE%C|fzGMoy_Wwaa1#9WV{ zYu5Qqz|%}%hPZC=@}<0G-f1{N+OiJLo<+2H*~%ClOL^&na*ICyu#+;asjg@16kg9K z$DS<4c=!OW`3Y?xY?&V80D>3XQhS2OrI9T=UkSE-GEjw2Xddnx%bSm|Xa$dcJ1(Ca zsa0EdQR!JOT#}fKR#$n;w!pBR*3O06wj>U51JFn^9v${>9D`^I@!#8zmEuy+pau3t zJ3p}@@!0xN_XJM()owv#4FhQOF4}qNA#g&!8Pm=7w}*MGbrtZ2NX9Px89~5G9Ze*{ zVcyV0uimB|;rsOCkO6@d9%87v)aYZoE?19E>(5W6f&GJ-;M5o?;sdo+e;iNFqQ23F zoL{^|6_|)YFbZOMZ;dMKo@2vkfG^M}gPsk8D=e|;2)49LWN|vWhN;)Y%*jbtbO>?u zf%Uf`>qDFae;pa)$`-d_4i<0+7LdvtatO5!f)p8`Y8V8|H2Gx8`l$5r&hV#_!oC5% z&-6S()vMWYR+egY1Iy)F!v-Yj{~_+Zqnb*;xL;W)dIAIq5F|8_ zn$S^D`iz3~mO?KA2}!65By=5-A{{~kQk4#&sB{6H_c*`$zVE$v-F4T!>z+Tz35(<$ z&U(&yp1r?&f4**{Ud!lFj5tT@JtKB`_|~lE)q!$5f6~5Ik+8_FhrP8yJFjV34>s?i zq>joMCt7Rz$@_VxPD+)a-DFOY?>3S%F`?*}=ZiPP3`M~v5KEMndSVD~057*m{fWFc z!p|<2+Yr^<><`>BX!CJcPw(s$V(`Tq$y?*%RyN8q@mg+2$8ejSL3d10t2PYo@f~)bVGc*rTLXDrL0S=lwh-(Xg{H+Tu0zsB%XEo&W)n~UOitRzNyEk65iXy;>L5L+W z(162_Q8t%otnuIz`@ZU%C3?33t8&vDQ>| z(2JK7Pv(zM4<_|y8(GLCYGiig`6uA*w(Xi$DY|6p!o4(}Q>Lu~kdSG^7{31LCj+I! z+d5&r&6?THKJ`D0i7da&B2(3+m7L$lOV%|D?9oS(%gJDi`@Kie29Y>F%Yvfel$lH` z#U!SP9=G~-Nsy|o|p_Pwbc z#fc!)7V+WhLFwrWp;}s_h`K5rG1=2vsOo!P!dH3{ArAsc7}bObI!KbXwJm{eJv{;T zA;k^e@rcB+;Zh+bZ@>>?97-9&R*vCwwXlFOKIFK9Rf%5I2}whs7`ny~Pk?~Qn)-U7 zA4TtCjC0MbA&SWIr+voER36vu^FC6tgGZWg^AYgIz0@F%K()W-;#T4B4FeC=x;%GqK;8#U9V`4~UKcD8)}#t^m=2GNUN zojnH&sK6294vg!QCX9My!}|SoxbN@vmGl)`iW(NGYc3093tQZ3ce{z6R3}>Hi_INo zP=a?|x-oQ(JMp%Qe06~{WK|#9r`08#q(bO)=2%UDdQ)@c8_A@@h$zyO*P&xz?72_4 zAjBowyozux#|x7X%~?-H3+gOi2DYw>lSoD+#^3AQQr=;I_f3~bF=<#Gx=)w8`eovS zaRJ_b1a=e`wB^R?oiT?lX3Re+dz*n{Pe~nunA0}Rf8M_lnJUJ?@xD)Ck(mL9KzHZ- zyz@PBv@ zm(|hCLW5^ePnaP8(&W9Z)x;>bSAM$w_}3{dq{En%`}TnidxgUHKFv)2tEY9CF>f#H zpo%J2LD-iBZgm+vV!~8vmiZyh zOIKcW-$GDY3OHueI(&~nUKJ~km9UNF_)&?k#rg1(qDJL!Fu zV%J|R_k7;m(fRyr*%^{BT`sI2axQI5D_;n#XClsCWm4r$pFo>{0H_EwZ{fLH^%Iz{ z2Rs2$%7>;o$+oCvfrJcQA>c|7sXq98!EHO=mP>!UZPj?|cgXfR?8-I#-A28#ah!UP zT;-jN_0ANHWZ}F8H%W?rHDvUVW`rNC)OJ{SBJkU3g@Im*KBUM22YIYgLEiw&HlQbO zZm^E!szgzwLp+W|W;uo`_3h3lN)0#%^j;u0`yf?Y{CGGT!rh`;A}zw`T5DIza%*c& z9qCeTEah%hEJJ;74_8ehsE6SW#GNXc2$#7K$+$eLN@%gBA)%DckoZAx}b*wp@&;0yA>_trxM&5ySf3v1Wp-=?yCQ}uc! z5_Pw2gOckLRaOub4IsqA_0RkfS}99W)2*LLwu~g+lM*e^Z(SWl#mdKW+?aiLUk}a2L8GyD zA7h1t_Mn_4f$mcNX5oo!Ow@Uz5l0-&-cf-sv_oQEt$4P+#~yGk>VGBhK7CG16TF+8 z-9W|87hV|16W53UJ8__W2>M23u)wWX*^VnrD<+)}`z>8az1}{q@{+8qv^y@Ch)kBU z2*#&MZt&mfXjCB$$&$CPlN?kNUDw!NeLshPcH0CpTG`xGcPxZPJ86`6GKGePKf>{i zW=4sD!;WcNv`HVe+XP7z;QyiznQ?cQ7ZN zQbY#GcwdI9)($snIM{-b+SM}(ozv<8vtw`8nQt3nMa;Tv6Im08&$%RF;|0q~0n|M+ zen~`n2?QKghc<`dMitg9ea{XpZ`;+_>mewRn(6 z_T+Z!T@IUKOK|lTRhDwkox2;ZWn^v5cc|vM;kTo8>fi*V3=@1mZUo?5Yf2 zncF4>%t;AZ0GZl)0qvfz(ML^qyXSgbLde3Aj!Bb0+{uy3>=h4to|vh?@+sa4y~`XQ zl27feu4TZA^xRG}IqHPW#DP)**zj2NcbDZO7@=lsBG;U(FHx=+#3N|pnh?^!%<)52 zJ^_N%aAUf@-QWrJFSVui*3Zz^?hiVaQ%#-C$1#=kkPlvX+IG_bq$5Jk&n zn!a^ernwo>diLCxxCsqt^K+&^a5$+rb-rpkVG)7O6ahmVZv~yc+bTXz)&##_!lsxo zxgcyet9a&ATNTpf3Z)7%uhcpd>N0j!f2f3uBuseh-^8x|xvnswcR{t+jZi0wMsKlS z2z=Cifbo48WvhyZaC(SLD#P;}V0pvj23gUaDzCE^Pg)Ie5=qU*ecokO=ONSC#u4R) z8PGQhRK9e<^Q@}Zbl7dDs%qAtUkiJ{OVjZwZ!XZ@+)PpQoe-U%NfJ(nKMAMV1v01! zM9K;ix_pKB!{yeppI4Y1CMl3`+QjT3LdAKU#yczCT}bM#EI4VLI!ckC*XpuChA=R! zYrYYYZkEA5S_Gd5}7A)YJ&p+?@}2St`W9m$PS7uyX4i_W`GOj)K@ z;za9i`5?7&6O^;bQX_e&p^Biho$FHbW8tF&&DU;{GVe2COUd3dL6>ryRnw^|b&kS; z#Wo4m>m&ql+u%FW!huXh!L_FWf82#jd=4I96qd+_fT+pmFrIy zP3AvmqW|TEH4>&RufN?Y|LtJzMN{+}$?H7DAv2lB#{qX8bpK*8{^j?pcjUXBx|2(m z;tHSsaaY#~{RYEt)X%PS>em;~t>iXs2ls+WCSsnk0@uBTCT?=o$ZlR?zNQu+kF6AY-B2Js}|s7B}s^0jFca zV7V$B5I>Ihz0ghB1-UAX%?}S+4RF>Z>-(h&E%OQ=i~4-bWrj=OR%0+2!B==g{zkg{ z*B8A-y}l}=v1uLpWvSZJ^(vm8$vm&ZSj8>ZYxUsk}Q+UZO2^A6{vv?s7jO zYih(ms5?8DC2 z45lpS30M$EPwegKSL`kpr0lk&<07#rneDzHb=%|4{m*RmE8^e3+)n;H^A9@9_J42$ z`~P8_rmDk+r14B^lodz)3X#pM>CKlgUBL+yt#}-&Eh9p{2j@(GRo2yz-MDcI&ctS? z9}CZdF0WP@T1aPuKa$NGo2!F$;tmkuFA%A6Rf}@gj`$-C_X4G}2ZKJ9dS+q@nt61htevz_lFsq~SNm!kO>OBdo@?_#ekU%qAi zy>wOd2GlBqO-!9HZh>$EyX`)^qHDcb^f#D2A?u-ujl0#C#m9UcfYt^-HA{7 zEu6lt=q9HbIPkcEhNBllsCREVJhdry%6fO-UVuHnCG_f*9;tz z2C?z*ql=a@s+v(tK<#4)R|6@YTfWT@$u9|0A=Dqh?irT8$J*+wo$1;6=5<}#S~Jri zm9t9Q&oubg{4({~+%z5@6s8l$jVD?>nbutiSmUTgV63SF)sI?*8Y^zrIJ0#j90L6J zdfhf8L3K-3z92`rXo9xFqC@O^%^yU;yv)liXR`IK?PKFA8y!k|NU)Ej-`qv%;s#pX zs}EpQejd)=a7QVJwtAOa^nAUdv%Q^Tk!lj;l$+4HLg=ejLAceg7PiEAtB1H=r zhLQ3K_F$k0F?YswL5r{Iwx7)n!(u)`hl|pFw4S^*3wv8o6r(aU-kg&0ghFBv9PkKF z*#u3)wX@cOlO#*Frle&LW5Dx>Kd_+0G2_t+xCwQjB?*=oAujEGY7U=Dnot3|sh2ho zjT05J*B+?5-aLwTjFGJ47=HE8)u{!)w)TAj!3C#We05Q&UbHDwtIU*;XUnEU@hMFX zb-gh(@t6n+LV-kqGSj_fMmhCCCWhNZ<#b(Hkg9{+2@2P(cB45dDLZIKu~sfhG+UGo zvG|gXQke&}N5$T&(&|z1_%n#lTT#khfT;QVLcY^^>8rG(CmUP4nV3j(@gUyX;?aBL zZk(__U&8zY1fO^=G+F{(;`NC!&+G}~1Z%A-ByEHW@MA-}P2BObjV8~CIhL+H%wQ+S zZVGa3Do*!I9#w~ zD>2d~Y#(4lUHNe!RE=8XBLvyiOqJV6rYLV_h*VAF`8MIn((t#2!+;G8o>ti_a%cB4 znXpClvK}yc>R3K-Yi+!>pM=RDm*2N06kIt>iilN>QfxhX=X1#V7fbk+sdV8*RDA>& zZC7hqQz}nNm@}z5SLs6pc-;G@9V6dXX^m4n0(eFThBg9{M;KZozd5Hiys7V8lA=_N z^>^7A6$Woc-RBv|!4(Vqe!8Scsm3a4^*+mO($5Lzf3gVsZ+({Kzpz4*?Op$0*?s}1 zusoLk%AsP+F_P8Nf!fB_gD-Qg+y&qsr~GE11>SS~{Tm&x|uZ^!g2VM}y3%UQbf`$C@M2O8!e zUzHyID=zU(RDF4y8 zfARXkmV#y>c{U}Bc`=vo_v z#5XV}@3^LV`O7~> zytq#yy3lW|>O-c_JAL=kGW0bdSZ0?tS4xfnQ5p#BzFkRS?|-}b8gR};UI5k?8<&A-crj2iphrBq& zZVdUVOYa($S#706gY}N>zhVaZr9l#jyow^S?P2eAb*y}>uliWX@d&yULJTw)7!Hb& z>b9PP;M^F>yXRj)5KWY<`b)j)tsup8#lhdpgGt|Ezgpr6#u4V4gdo6BDgf2J8yump z?vbJy=ys;B$g$Jusw^OUHaP9SEq5QPRI#?UXjBbEp_G&|a*=IM`g+fF4N%T+&J?Yt zs#!aoHKyhVgLL%|YGqH08xKtA1<%I^Ozko)Al*ss>j=zUS3Ms%Oz3s7WuMpw3)NL( zhl+Uq{k~YejSJkTnB|Pf5i9u24 zd^go5)FZe{j8o>XpQA0;9Koz;@88p?X42r!x5UKGtM$3c%!rAF#VH=~=#Tnt0%GV9 zU&+pF1U)(%RN|it!!DJ;-UAg012+wDUT~j7{c{xSNp$$TfCWx8sYoIyQz5$km5HZ? z#J=wc=}SSI&`Oqrul{5ZfZF+DHxnH;^DfKrpUb=$!CgEZCHZ?**lD|_b;rEN5ju18Z8B8JMS8)-;P5-4B zrzmp-)A?wZjl9d+6tU_z7&DMtW}th8w=t!t3l>vDqd_2f;DZ(^xi=Eul|t?O6pz-& zkcrOG=;;8(T;&(3S5*Wb2W9RjP40~uIzfb%49|1jQxq{u>wCXxlvXLz6w871KaSTf zVJZ~nrRg&OQpxZCe(3#AJDH0jb35k$cy>vhCz))ee+?D?nH%fkIz^Y?DLie|Y4yC= zFjznH?uhJ-(fLF;mH-+p(Qdo$TvZLbF-GQC4Z63AIc*uHW@lrO2~d?QOvCs2pb!DQ zyex!a3_;&2i`*^v7y}mJ$_5A!Km_y5Q>(kb>Nxj7qR{^8tC^s&S=G5wiYiVL0*mY0 z&rXOM-^iTi4;!xdk>1ku_)$V$CiWRe3RXM8s?!_0qD4u3F`OWKq)ugJq#oX8FUWW;cV-tk$h?{`)sccIv4Kq zt41mvY$ly!NHlcroHQY&wB-*|#>vK(h3B6smq((t#^3tNUrOTk%fI%+@NQOJg`M?b z|0K5?q@)On1>UJo>)FJb=@+k5VZaI zq?GdZZE+$DW>?R%fAOE;!fp>f(}m`Oq9TKsAx-&BQc!|y4Mp~>_f8HEX=`@RS6Cs2 z^&8uiv9CZX#Jy%gqKW~JozzRFuJ!ockxBo8$JS7Id5In1%Ts|#P10ER7gId!ce5iF z8e)U{s6;jjM_mR(O8zQ3!Xa9P5|WW4mu0!=DDh0o^d|1+^qtZXl{&JChiybg_`TxjL?4a=|R~?Z!2c&UML|H#|VYORI62X`qTK z`JDap3B6uqCXE83;IT2hJpC3DNvUgBcW-U(nxE&t&mssqX)YoEF4$TD+yz!f*TvuOgH|U)3PmJqeNm z$|>#~G|GZnLbX(zjxyVR$z4inmulbhNeog6f(?s~3GCdWQ|k(7>Ug1AkgNvi%U6(o zN^8$Z4OJZQl%A0yWctDG52TA>cba^01gKg$Oc2_ArWPLa>7c3MRr=1#V%*|s5^+;? zVUiikeV!C-ce>AtTKGE*4yNM*T$3SMh@;0B5~0Z+45m3}*o&(CbCDKr(}gwqRqKBjQM!ehr{C%(F0!o@)Ak=Vw74bVG##hk;LrDiS35ED9H@F@`Mf;nwFE8?xqUHl!g|O9?USoY-OGp|X>e-I0&`BiE0fQp{&>Z#A1^!>Z z7qy5ojC5IkiTQh)_&*_1Nd0#5zhj15|79oqN{YmC%BWPdQT3ozX;8(lPxRc#wa%Vq zN&1BS0a^r}!IW0fgOymg8~cUt4+5Pf_(CV=@4D70*#9aZiG{A}=r?NF1L#k!P=`l{ zIK@H^%}|;^V66#_tc*;boYs0aGoK7%opK=Vo~^?EPgB}I-kdNG7#-G27U(d*D14JI zRbrn<2Q^S!zqTX6{shRJ#gmdVgruS#u-PA~SAtFpMA>5r{A{drd;)v)E%>$kj6-@ZnOpG25w;k#F^t3hF1@0PGkGiv-K^R25wc z+vy3ViCOci5t`ohjij|r1zj6o4z#l>549Q={G3}Jm}-0kv#;o>oLCEP@MHclfRgDj zLB%bFZxO?{(-Vpsl z$qFSohJJ`Q_4sj_)zTD_&M{P%H)>2nYS&!XT{!HeIeq%a^kx=b)$9WkzOP?yyr^zq zwxXCts6F*QKJYc*5*f(!l*x2s$rgUXdSMVO@EY69LUM3$BEc z(LgoeV}8B9*U_F6qCg`Q7zTT)Et5{H*J%FgW&HILTsEiUc0#^cPpep1-nim*<_s5C5=?U>B<aq4nlC$DF4*UyELQn{@&lkyRfPTMSamh{Twe)%z+Kuh+1d5b@EBq@qx2 zr#jLG)go4D1_}hBaa-VmY$(AX_0WN?wCecY1X>Yh7YhY>S&g_g| zxphuii`axsM8+*)l?oq)t7s_wu* zi|t{CnB^EqD&Qni{0d>|i+jGL_8WHLmx{M%Oe>qeIouA~_x!kj0r60ws!8dT;6p{Y zDQwC^Lj_GMp>OBZktHoeqLX?<5(57SWe<0*AN(;NHq&wUjKgSj{mqsmK(J^39Cpz; z^zrkLJNz?yKaI3OBd52%?H+~qGK)2x{$k@Ad3Z-RJ^bB5D ziQB@<$UYn;42f4atZ)@*PuDaYM{iH4)s~uHZ@f;9cE243PTNLO_be{g-4>8QcTOno zmD!SU^QX~MmFK_pbS0=Kx$`HzGc`i8DNcaT>Rus8f`i!EgDxNWZCoLY>~96480VPf z7D#_vV%P5*+PC{hpHJ99usDzzHJU(QwMoYDdd}Tlt&9DLF-zHb@7tD!UwpqQD`n}i z&|^xA`m@vh>q-qWuTjp@>R%G*zXtTbUr+v&Hy(WZhrFTd3z!Zmx;0@(0N9?M(x)DY z4f0t8jZV#XWJ5t763(qzTuQg6L@wCtM4gz4**;~=8i}z!O81XAz7%@#-+Me(UL@{~ zNxh;G^4(1-zWKLFQ*ins`@BUFt7t}mMB*)>mrFdvC;!kZTxS0M-1nc~fMx*S^>dG> z>Dtd2uJvaO7t$vW{W3Z842W&<3}4{T5hrGz{b#RX|L=&m^{24$cbFOq)L;lc%Bh@6 zjQ#u~Z0J9Gj|Bmlq=kF`#mxRcj{kRPIe@Wl1`fLO_doEjz4;knOgx?WIVS$=L};k` zK)LI0{`h?7KYLS9hbtla1k=(kq8U}Z43+02+7z}(RZ^+PYu1_E9XAnd;b^9z;a++p$%ZQ`iqBRgsua;Q0qu>S>^2nzZo_mLDdwqsW2jK3r>JWO2*BD0F_6tWtYHYAtL3%D@Z^t=9 zeYCm8uHo~yQ+&#{+_P{V(EGv8bZ7`$4PMnmX+lhwB1*&a`R5T`ACKIv7@9X% z?|&oU%MouTz`MADutHj(mc#96VeMRy+%;IP=uIaZ6Oc+pt@dmqRiePhqK1cl`Qq~OQhA_g~TXa zMip-?H^$RJ?zP#5|Gb5*i221WmDgyUwaZZ(mpfafYuxCSbvkT#B+G!Z= z{|qNfdL~L)eLSOz9+wQY^Dz#hju9Xa)q{9>XN~B3e((w?$$|SBY@>%FSwp^6S=S{@ zmeO_;kNs4Ds6AF_t_WQIq23S@*=SxmDwSj*GBlZ!nOk697Zru9xOBX~~5w~J(2 zVN$vs!lwEZ6v7#oh z!dXl8Itgs_t7^$9oYyRa6kfo~cwWpnWf+T)cKm{;c!R#d_{+qu(T!c~j=wHSNcsCkIF32lK604Ulw%y(i99M~i8@*uBgq&?26)-KY z>&aKm6)Vno(H~vc9uTeBGo#8TC+_X~th3u-a-Qd0qVULxfM#8Xhm7X{)#&8Ue`E4_~1{aDflI>gCsRLUPa~@885nNvny{ ztPfFbcAg`63H#A8P9&7 zx|yZms-EfK3=kyI1W`tTux%zsgPF$B`Fm?zU5!Q+2Nz4so*S4xt6NUv5w~gU=~Ql+ z(FkvKTll!Okl=+OF_aw4-?91zq7#bYv&FXjKIJeNMIsHX!lzsk3*&k!yP#cdEoKRP z)3!Pr1Q|UwLR)qObpmCH+M8iT)vPU6=Qw`Iw^1!V&)*Ge~2#WHgs#% z0DLZEHhUs3zw`j=%wFfDpjl3!fB!k9{x@|zB}%TDBe5sht3V0%*vE*7T(Vl__)7Tp zTDAM!$k_I)`~xO`WIpYmdJ>D2{(psWXO{mX9e)or-?DZ8mUI2nje9sNmS10pe)~I~ zv;G;+y%q1S?^rDeEsu1*0eSV`B*27p*&dsY5C5pdH^*81eSSaB@gEx-$emeFLSy(S z4up{fGQU1W%FajDxI3dl;{8{&&L;n>6LKGm#~RHmp9H2t$=*oL@0prOv300W_e%A+ zuX#NC=aULNCxG_F*L#yc0A9tVD9;SA;L+=8@b@6qsJr`nAwb@52FUy2pM>X+i-l-t zPbnR)CjCe+ANivBz1S8dBI+=@HTWJtyG4Ef5>GAXoDhvP6CD+AeY^e17Y0Ho!o-ya#KMA*)(=|zhEw4zKut9Xp63_QU&~Tussf7=|fgP zRbQKlno$pUwAQTVu3^R|N6ieb_sYnZHoNd6Jud3{J!K%jYotX`c_PyU&9{F(7Io?h9&ha4Hy zYE1ea8WhqswJp5!7aqqn812%>zw7NDY1SMS`Gu+!(loW9>ln@aLSNo*uL@}jp^;o_ zh;o>p#_QPA<0OPNn7!nE9>BUyKo`qiylFgKL|^Ym^lcYzyDjjC1~vMRr~+NxcI>Q! zSF>K+O16iX39iGn~RIfvBVQFqY6gjdg&>G&s2_6w-hswNjJn zK9HmqQ6esyPp}oZVW*WrJbS1Mg+IQ$#f6WE*+|@!Wp*fr)hync>{kF?ly=V=l-Cq< zH>f;2qk8JTZMTdV{Y83&)t<>;ERXJ+y&_wzDN9m!h4W2=Wr*BIUqw`VqiH3YGn)d( zUWW72&CF|`_kucSw+5(Hyw(jW2HT$YOZ;oj8oarN*AOtH@9s}6?his59^XIg%t;LI zCv``o{($YJtO;EU|#yPJUM~_*G}#s$1Hq=zUSRdLgl>6t7+4r)h35r<+DeY} z87Q~d$bL$RCGKAR3%Wg?soR88i&~HsqH~ zkq#u0pe5NZelBDVEE{FJ3bFj&EtGcOu2=MgpQ0MhhLyWkzqHH*L>EF^o2#ml9_HPc zuzBb2f-)o4cW${F8&+BukaW(sjWu1@OH~}^f0QhLYm^NMp*}G`M+rd6u_m) z@}izJ$O`=~DKjg%4rXT?PIAkPFh9q_^5?%MiGRKZfAT6iImTSg;6 z*(4$5=(8nWb<(FF34tY3*xA{oLlQU^e;uaTHm*c{-H0q=wXK__UDs12@3qnEm?DWT z#%Q#BrCC$4$YJd0AD(Z^U)Q+jdxO}JD%eEHgPcSi6=;)w)Vo_(nun{j)Nx|u)2}!Q zuqDInt8}EeOH<~R0vcUUxt8v74rlU*QG$h}e~Dg_Axf;IE@QZ0gqEJ;5W=i$aT2{IGYcyhxksC9e1^mWW2PlRwv7cZMpv0SH@41dwszw_yUBW$_BrZ zR+a{=&SnAVzjEf~3PBS|_~y%vE$Empzm>x;ZZ|$TP>XFd`;sl7uQMQW9gLfbh+5J5=`RUzs$E-S5GW#^#D2)_iFlIEDOLSH2U%&sO8&uSq??s#P`DCHif@x$fpq#^6qqp zPyHom|Jk; znPc5=+ckZd7;`8zE40FH40`C8MK2_ZWvCCZ{zLa6w>40F?du1Aw z@Wngg>8@h<`2^Ip&Kbbl04$4ul}xw1Y4MWTG?D2n=eaPtkz@HXKP{_IO-$VhiWnGf z=h*e^O+Y*%p85jjSErQw-Q7&oHRE^&CK_9VJL&7jJ~bugis;ZF5U4pI%71aNda}}a z5pWKhFn9yH!1x#uBa3@4VrpX#jn3vsg~8n3p_R6Hc;H_Z?!GDOS9#bSuOGbtQ4Zm_ zFilzsLVEU|F5TfJ$lb_;aU#&6Ch8BHMX+%@cynTJrImCAVNcW&k!l`4aCwPwErixX zhtSZ9GmheiZSXMoL#xv9+(%QjSIIC@<*6+X-;CLYEwk;>47RiK?C0oCr}J-#2Bl)& zJy*}@s2to7Chclv-njdzJ7oNlkATs5v@5jdEz$stH z-r{E8c75ezDLj{+WxO*40aVdmo$)zns%>|=msd4XNnPqEm^D=CxwYxrrk7AXxS-vZ z2ucp`P^Q4F5}4NoMG(c5-<`17JRj)LZPAch$>9B9*)MOHeR;kngAWl8fl|>Fq+{hh zi&;q5W@5n=B31N}KOf}OJ81Pb_BVU17C&@6TOlun$!dTt*NcbLm7jUWoQk~D{Qiqu zawoIya#oWsFK0s1S^v3?5OW1#ug@m9{t4&js-cW>Nd2)?c+40^2r69NJ_0E*3N%1e zo0jD`p_H)H-~lqhbAk!&ZyPeqNTMTWwKNUV$40szGNk$HyiS5vj;d9am&!sW@HTQr029OlU&GKvSRA)KC7hFJ~d zTZ81K=^-#3Pc{Z`I@TSudMc1Y7m9{}NUXFGQEF*6Vb9@R3h~Lm7Yq*|_1>ZveiowE zh|@}kh7zQ!8~WUGp${{xdfS&+QED7@_-@Fk$=AosK~H+C&(PXb$tbkZpwue4%vB(} zFJW>*alK;RLQsjIGo`1E_9|?S;;R06uNTRE48#SE4+wMJQT({9LY>e$86(0fimnNF z58F9-r5~>T{a^snO`Jj*_8BhEgH`hX3X($Jol3bj(BET zHoo-z+~m`GX8ZraQ$Sv#a6!AT7Ig+;f`vF3cw;03U^l2ta1<-q9(llH9!xzS(<<4O zq&@Kl$@G?iL94Tsqln^#oOlsA5?Mvi-@?$u8w$iE2frSN7 zb%5=^F>nS8E*%x(lGFQT`wlt z_J4(b z$f7|%$DUJ7Zp#1(!qj%VD)yUGBVXn4r*{cf4Q_R*GBYw)QgcI1X&5*`@-G&^X5;*Z zjeS59rJv5i^6-lNi{8xB)5})hpoSrh77b}&EwJT#U36&NKA%<8y~P@7hA|_~$DmwE zfMe0LlsXxZC4ai69~?&(d-5dc##SiMR&Lqszrhu1ph~%1Jc|4(-bpw4(BmdoViCM* z5fpduc}Q#umtf_k;|=BQ%vH)(copFTfZZD3*Z|~-(R}f7y2e)z(J#rT3Ztx;#!^<_ z&x5Q4@m$vNXT<^B1%0x8bkHc_*`WL5RmCYgs6KIQjgyPM$!pESail<%$eI*2QBll< zZ$prh2P*tcU~y8fN6Rh>5-5|1_(Q9aYe#ni5HL+kuYGt`*WsP$T53_mpAI~tp#=8y z^C$;(E~)eWtN!zCaWjt;1n|@e#Sl%9MpIwM;zC!ji?Tj$%(nFIH~o6oQPj=VVTK8b zn(6jB1C5$^r*+#Rv2dRHKE7b1*Fl z(ng51{BKOgVmDZ)8^7Bg^1SNop@~UAJTth)r#QV{x%wgzLE*40kFFzjbTb8%L-i~% zGGTh)UPQb_iG~7^nFJ<~ZDZNl&1&NuNT3`BSzEX3l7;^#U@AH7L*4uvx%~Ii?iac; zPqL~tGzoi0^_(RKFLqqJ1j6alfLm2z=OwC#eu=vOF&r@>b$vbx%QZ%y%JjGdKl-im0PDm0u8vhqd zh=~o>#oWoE7T#3D0oFB64d6br5_vhgNEDk664lo?_@Lub()srV_}_l~vX`tiZW)~H zO=rreW?oMg@GUw&fU#ho*SR|toPELe%RK%5`&b2hGw%++uWHQ{zR>n;4YOx4^Hjf0 z^1UxI`<51WB=PTk3%RY-0A;FU&1X8)xYwgm5|;eL*7v&9sg8j6k;)_`QUZ+Uj>m1waPQdg_cZf3p61IeGf|D&$eK9jhC82 z;EuWqQQQK}>dwaLr=~qBu#W|u5@yeMd@PNG zVUEu#KOxmkG46SA8$iRAN2dP(c|FXkqzIdcg{A?xf3kW*STJgi$@x+Qjta(}q?gIV zn47AZq8jGN*QW%x?||qHh2`b7FFippY1$`)7_pK1Ysp*-?~&)Kji=_!;UzXIJ*i?L zgUJ|1UUHXaD_EoQ=&^Qq*i@Ty)y8sO?W^I0`p7Et2I3K^pmDWcKr!NVTz$WvvucQb zTBh)CusSk@lq_b^3tkk!SH033td9I_7nvV5)mhwV*0|>PXJC=91!sf&!?>mXVTF9@ zt|ZsEZpM$%(7~SjZ8qp`8v{BSNp|A0ujf|IGl*wBmo#4%B%QR`(3Q!r+JJjE{{%0| ztP7zZ6$}MCbivD1gLtmI%9^qwi1*>YhF_6@N2RFkUdYi5D@)~^e@k6CiIaw9Y;;L3 zb4Rrhs)Wc!yQEH8xLNz|pl4~l3BEmbmWNF`78ao`nIyns|u)bwr~ea%j3j_5S<%!KX5r!{SNgr*pDuT{Vr1!7)-cCAX}d~Ewhc2m5CbIIYB<+mT!R*6 z&ODfwhV)8UNUtlrV?L6yPXN8PI*%$c&Ya~Q^xa_ZQk63G5!>veRkDI|-EbUW2)I0v zFZRyDTh4>gVSU1|m_>Z7mH8_%rDXn;<7Ey4K|{a%m7}Szd4eOo3tfb3ZmwARfyKDf}H6TL!g z)RHlQzk4v3?U&eL(f|i2u^5uah*N){Nn>{m!juoAh*D^5TlLX(FMF6Dv3yOm8kGsF z`-=s>G;|PD4#fgit@-8fh_^P#6~-9}Q$77|oLKNhDd&dm_E{lm5cR3pNFBVY)xlo) zN{RKDEOX&3T~DvKsKe*b=~+HXI#IOxu%3s6J+k#kL?k1uCk%-9`&;7KnHTJoA^E2t z6p*(Qo;|8BCfv+3!B2qsIEXl$Dqctw1ue{-+-UurAz*_kQ_+pp4c4-F-xCnXIgd=) zDijrgz`$y7v}J5t7~NL5?eXeWKiHC0h+)M;$Swp6CcI_zO(s=F{giKLhp)y{fE4K( zx<^03i~~{dhhWxJH%KUpefLVha1HXbJ`N<75BVSMy?H#;ZQuW|J=#v9LdY_h5y~2o z>}G~x24knP&M?X{ve#Lb?94*;FvAQ6*>`RBL}rjZTe2mh5cQinudBN5`#itb@BTin z-}k;B-{19@`5d3aXL%pX=UCqF=Sw3gMkFwxjhL{B-I}t_=?^?$nA<5#emvw=vk;Rv z;b_le;icLL%U*rgojb7n@%onQ?q!lK=hM4F#6VN)SgQWHMdxgFMZ2L3gp4lj(-ESC z#EWy8ivGsTR}!*s(PVP2@qS3 zv^fo|wyHRcjMBJ4m{3^y1I=dpyB1uT!lWW2bU;Z%>%g?>O#cq2D|w;nx$p z&K4k-EW1N$!>w=95w&`M4{!N3yyw@c#BJ7C@E7RWaaqmny=)%8NQ?gyK`17N>8FA? zNUQ3n_R}TPzl%%my3KN!h2`ii?_u&DnJZZb@8!9~561R-ltPcM`vi_ko&21=qpF=S zw`-Z*9r-aU!vAIm_VJs@n^Oi{eA$-itLZoVveP%{Ix8!11dEQX_3anoci<?L zYLFTX=AQPjzJ~f7GX0N|23c!n!q86akjzDhrZ zML{@l7C1sSqPn_~rdfRSV&!$P)o@UV1@d>r8>U$x6-O#05#xpIh1%-HA^JWL<9OTD z;L@E4>s1 zG!Z;0&rMnr3n{^a-4|MP@8Y9QJ0q2@e`RUfjJb|!OZpakbp3A*{CkUm2cmqWm@C`8 z-y)Y{%{NgdmsQ&B3j=Vgp#;C-^Nl`ayLbI;^$cV~hblr!7`4!6EK zE7+D-t<}qsTT%bSBvuBQ1O~&r3d~URU5UQ2X}54#y$CJ-Bx9wh^7+ zmyc<+Y!(mP#Ck!JAD-!oDDuQk$i9clUh-^z&B%tYIJd&mFMfy_R;b|6)_AE@S@3Wq zerU6UO|}Ss%J4BR?eXG9)oX_NixoBLJnQO`#ICwCyMivuefVP}bcN;2vah_k2bUm0V?M+%@dSijuvuZK62a@;i-wq>+Rt<<>t7`d_e5>~e%-!1F5rQFu)U34 zEK$QJ(>QHr-IA%o&8=7YHBizX*bMBhBwYPAe zCGsHz$6{`ZEh`G)MMf`xWBB|ktd>ginU0S)LTqiEp8ajoDwP5Y!u8!}2Y<(holFH9LJ7g(RaL9_s&|P;%T`a1d zf|JGkj6Q3pJpr+>+%Wp5L)u4&4@|+aXh}PlZQ8Uj4J`F^>`YH$@{EGk24fcS)F?y0 z<_O)!QKvyqW~y~9I)NX@^!vzMV*NyW<7&#AZ1lFvEurg;rXp(L9NqXXw4E1g%$bHcSr?i8KH7@&7TyhjJay-<2g5$S5eK4EEXYeq60( z!`i)QyfI_QW;Sa}J(Izw`c3R>?XDd~7cpldac!{{)FT=386Dtat*x8eCa+Q<(*7(< zD>Jl%VAl}anBCUba;=JgB=vGN&{$NqTgcS3E2k}<{<43S3sAw60wbfvP8*xQI86^l zoqxJh5IHu8tevH2uYK%YRz2Q(B>2JH5_!yDY&*b?a?R6<{f%({sQ!NHTI(#;=)U;T zr{I?6g&HT1?6OQUb^+jzpiQ+GveLI(@u3pDIU5i8Z!sj{+ilN!(GZk83@*+#@iKM=<_*HjJDmaRI5W&E~hb@MGiZ0@E&A@-O%=x(`M8}a+G*tcV)QACmpefgRG`)2Dt z{VxfCDxL%-h^MlFKOE>!&>~bjRrb<0g+`z04%cb9DetpT3`t(jPwN8iP%kmC7o5eT zafu)Ane7t4MRIK0A>tq!coYw?TE~`^-Uk5a~7)I2OxK z6ZW4R|9G)9_j#6QrbdE6UMG$ovzV(`6*;Bli?l+d-oU}i(ctMS(#k8}^B=QTuS0VY zIa;1U*yi#ypquGTvs<^4s-)b!QOG6-;T_Kxh+9fJ4P+Ae@EIiS-gBG7P=92OMxs*# zjC@gUg*i&k;2Y!{c&DpE{ju##>EwcvXIfS$N?$zp@k_-zo9t!LOx;_p^mpaw#1SH|5ybPuc-Z ztl!C63Qzy>GZdyNgoR7@pbdMA1k6GFuau8~w@jZd?9&`(yUh$eWLRpURc>owGUWbHX(=+LlYJTFANb1xycf86oP}lN65Pu23ad%pFY&xYSTKL zYbRpDo!~AzwtEku`n^b3cIAv{V1AxzH06WPV-F_NvGFb;v?2624@zFeA`A&%)tdZ^^nI{s?C`4QOjY)fnvTRhVt5O%zfu^YkXe)b(L%k$`~`zAcczocb`o1th+GU z%{~xy*sF<1uMnIDD&tCJn2>@4M=Itp+GPb`nh^;cIX|fH()Ds2wg25CT+W*UE;XHGSD$TpUJUO%eYUY5gQ+TWu~ zG|#Ybf9qC{V6PGR3!hjJYFsqT3S;G}>?JP9tfV6JJ8vOx2um(pJ6+q=@hpPaCx6tR z`%1n1x$-lUCH1$gnj+AuU*J7k(fXFU`I8N|%8+hNpYNP;4H`;Dql~ogJlcPmn?;73 zg{AGg;N9PUF@^0oe>~0q>W9KVoV?^-39HOyZU)}#^*2GOElXvs?HReOMDEiDfy@Bh z2Iu#tBhV*fG^9A4`(i~lFWpGGy?%Z(jKOLm-;p@yczE@9x&9AfT7(Ts2k{Q%*6+W) zEgGG-PCoK1+Z0eb651>_1hqUd$wdBhw6&F5V#OnrmN+;IK5B7zKB(b36q#84%F(?jnK1}B`P68PZpL!ZBNncI z(Eghw{TlxD|FN{+KiK@Q5B4wx4Yf}+Rn=r>UxcM{w+t#BX?)XVpmGN;vXX_C+i0$F zz^iVo=Bl#4TqZ7E-P`27br}kW6neZkR~Sf_nXzY@;LCSUle3_o@^$i z`mtIa1-M+w0Z&K6EXAV!-j9`zV}xIPV{m%N}p(SeD?Zmkb-Rzv*Cq=Tj35~! z$4SrcDb-ccZMBk}s|h{l@Oi*yNG(xQQ9DPp)jwNcP+A)9bNWORcA7*bH>&H6XBK zM|6so7X({pMG;n~C7mEp0~eXnM0e(|!(@pfxAbD9wU?OE?}+zYXXmA6Q4%SN6}H*E zg~dE^0Nkm`nfq35Lj(NzFXz2G8-I5%n)H};HK?8h_(DiAVeL$z$PAD9c|(psQ*2zC zr6XE<_(bd|yw$!!^{otvcr6!lBfj%G8sgVJCnF{|1z!;>!L}?$!71H3?ys_{_@*G~ zsB=6b)u1r4ER0GzB_$% zgvlDb{jJgLcCwk%i-D)^eQD;eugIFWNfWXT$#M!QhUE@1XP786yBC5Rb6pZ|Z=Nim z@7%K(KUG|;QneX)9w9&c7P|I^_&0W!A3fze&@1mVyK&w8k;mUp{vGV)a%#pYetkmp z?(4eWK~6FbnEK-)3_rCst(bgh!999xQ-SJf2>tJ(pf^gV6szL~U?{sk@M5~@N~9f* z$#wr*54p~WT_;1mf86yO4~*{*9vJ8*OL}AYg=!`9oR|3o7j&-m(R7GP+QxB&p6w;z68#AdHqL!t zSxQ0^!8F#4G^XG5_bbJy4tEem#~wha`RR7P_rd(3FK2YY$r*~(3n&f$&-&i%5*%y@_y;gq7_=iXMs39D(#{2@K_GgD(RZh6_WGBPI@vF0kO>|=$<*vr zJ4Y!XswYy5y6;JjVJsc3zV4^1$&r?lz*Tb=XD(D|>M_T<2QfuM2^9UfaGbvv0flxu|`awPsEJ#Cq_)AdUf;l2YWm$J2WE79A_g zG|Wi7^N3+bw7&zxg9{Uz&4ofHWM3Op$! zdwwVc>0taZ3N?eP9Vo02wyZ#jkge`j9J#ev(?T_}h%s}_zxx|o#?*F~4!sQ^Pk!p^ zTGMqlOO$5ymF0JK@71p?_t%^ewJ^8Y$Q~<#F4Z+jH1KIE{C=r%H=qG`5MOgpL&hJ0 z`|>i=A~|M*rO?WS>Gb~JJn#EUt%V$dLyE?g-{dydl_ar2o;ZPG^hPs`Bo)cu!W`?B91@Qu&bI-iQ7H7+HEP>{hds zni-n^5yW`@hDD>}i06wEvJxNM$_bDKzY0;OfxwMr8kPC5G?DjdObnA?-@)BEsbgl2 zm+}mL=TJd2qqB?knbFx6%;;>TyOUNi0O0)6d4e~k3NvS+9h996BT*?UuT?CrLao3a zhLU{HOLAo8Dly2z`j%mW*H@MUIp3xqpZ9c()(FnGhKX~@kQs?X7768XRZfuO>B=vu zVpL^jByaY@hQ6D_bX62MOg*`>nVykYB$o?|F{ z4Er4U@%tn}Akwiy5*voDk~HN4!@atA(Mqk?E*amo5Vq`s@vkz_Bf3wto7AA1L5~CM z3!Z!r=#{O@@Ofy&vgh`HE{j>>Ii+6Wy}nGTsAGL`HT#Cg4C}ZJG7J7 z8?c=#BSDw&5Q5`7B$1K|GBauw37UQ%tscuJ;>ZFgXqF`zWNwj?qO6jN!c=Au)qBnU zE~bn~zCtJ1`b2c9p-f~0aAL$VF{hQ#-Eoem&Z=ULIRmHwKJ;OubR<601t+#s&>E*b zF1S@(pt(HJkD_c;9n-b5VZQJC?yxSzT(ljO)K=Ig+Na*xrKIF?lNIhU*A6`N5-%@; zD|!jNsvf+rfSn^rWbCH(U9F_V)gduXSEv)2o3aMb%4kXv&00$c{u7WMgK z433$%O6mIuSEnP&alFR);HhF7v-9>iiZ`!xF|9cmT)}ig6VUJmw8O2iV8eF_l-dx? zrM3#L4uHE5EgzIq0lhuXdqENfNnCq^xL3ZOtdRbdWl;Le)z0%NOtx zLAbbSL3ku-?1uQR2V?5WIf!k9==zG7A2zOVh{%)4-xHjEquujtN@s-Qpx40rr4(xj zPA5mQz=5`x$X}cq%3qi{Iw!ZF@w%WjYslM$&N0H-;v-{xdVJPUk|qU|d`||sUaW9` z)a*)3$C*h{buX0PFXdtj3{lBTd^!hV&?L#HF?qT%)t@%%!ojf?22<>7(=g9mPzjMS zYiMP~;ep_@iWmwMC41a5nRwU#*!?=hW9pDZH!0(=Yu2nD@bk4HUt?6+;Oh^0&P_;~ z+6RtLw}8>`S23a~_oZ4)lCHMdsLx&lh8vCb;By?v{G^S#s(F|!#jHU;;>OFXLbEwf z{Lm17Pm$c0f`{w!{7yjkqZp19uj!G_qHYl{OQI~%kIr-_RkH`Y<=_&;0U$z%t|Z>a z?{)?_1L{M>Y28D1VfNmkJ`ug80l^NQKCd26!HW3nvC&r9?G>krhK`hB;8yMi@D>}$ znR2a3KLUBq?C2^ZBtwN{t4=h}8?FrXj1xUV)pp5H{K`VsjUK*U>T=cn#snW#13z`r zyl*<$Cv!_KHUb`2r1K7x@{T9F;9z!6CNDi*<63ub1qxE-;)SM(4jDcypBuBRs$8U2 zz>N9vyC1B*-P@2qcFj-qWQvrG4`z|69O{J%orRg;U*w#POWn>lnIiX(Rha|Ns@qsh ziv}a$9AW)VM7NE!4GqZ)BJVBUb+Qw=_Vnx$IUs1E){ir6D&Rv^hwAjWjf8X+*yF_cbG1K`q}<_!j<%zz2FWid|wa&Y!|QNOpx!;#-pE1ug)f& z7|fR0_P5Tn@}Nix>LD!QIA%aX>w2uUU+`$(scGwyD~%k_T8GaDQ$4B6qu8~6i9Yc@ z@oqiD6ldOVbU14{hczP5M2t-y5U7N_SpZx7+}K~?Vsc>q{9>mkxRiv}m?)1u4rhP; z(YeXDnX($C006_2v&t6?JFO2M1v$m!wE0yM%VDv5(Ow>T@QF)OD~+2Q5fcY@Fl>Ih z1~nk*r(&ny3ktawVQh!Xtt9;}c~p0Y>J$QeH}m4&UOk{S!?O>mq%-&d{qAL3+Te6u z2@uH88XHN-gT%1)7L|=ZrNju2L9e3}pR*n}J9_-Qm8Pgo=h#l+^kq|BgOopdV0VKcT#`#dI^?3w=7!RjeY16UPH zHYZLlA{ZJg$Rim!vZe*<@&Xp=s+qlj!T``9(cJ*+)4--hFqy|FR)vitL>oiIkoYHH zAS5{ZOj?=cSC+f_7M`N%o#4>GzLC31Z84|4;p2XlcJZG21j0$Hw7vb=NN+O4>{zt? zC#>!L5h){BvR7ld4vFfXV3J6S9){JUgp50#|;kvZ$GqN(P=4x&~3UNgTS5K+tqZRZmcT z%^5}YuiaN>XZ0HM+MV1^t!CE`FRBb#WBM5oNUtOAo0^~Y=)MlMu<^GYG$GRaMZe9q zVPA3qGFE_B?NK1*L>Cs zdcm@-LZE1LsR08=-s>}w>owb#BT9dsT@3NPd4fz?nUP(Mb})PC+Fn4%3?uOTn#a>z zhNI_nG5y1l5xm+wRx4}Ogt^{;FFpsXlI&2&pROR1v_efPvMPKGozx$ON1CjYo1cmo z@#pcVpx|?WB~AiW6hA51&Y5-}8mADY)PaR}5HIA_-Y>eaMFJjq|9;8D$#opR61SJ8 zisJEAp_Wh|T2tuhQMwtEQ_parz*)|DWC+TmT=+I2j}@p2*;+~1DDb>LDM5JaZC*YX zZStEgZyMC|;)}wxL0SVYWddOWX&3K2HBN%IrZ45Vr?Kqm=wS{;kkWqch_?aa~0-B$O>Gn`(W@Dff%Y3PMm)CqH^M#v`{%hO@?&EjPtFf(st6H*7FUhAA~EjTdYj zD%tgmUkdCOHtktRKFcm6j=o=x;K=8dEvjLOsPoQrnx2jTzff+OZb_UkxTuqx ztK~9>`y5xnm)rj)BxS@yToUqlLd8~-xfp=O4G%sC`7n6An_KV(Rh*OOiMk~-m+rpU z>C_Cve_5%hJX?!3c-B~JQ&NqoA-ANLpAMO<3LGuSw2L9N1*1=vnJTAH)_u%TKo7kk zx+}~v4+j!m6y++~LpcJ3QI5ID z#S>*_hBUnKyzIKcQ#_2w#_7Ut6|?{1`6;<{$?^`?gX(?g7vY- z`=_LIT}onby}9=R;_VPsu%s@Dh?72bOGht?A9CL$j0dZ)RN>Np2ifH-!$@1_=gjWz zw?C1pMMgw|je+r32}IYxoK|Rnsh=sSI&O)tdb3uPDec7evfLGEdNfOvkwx45EyXI| zGrkjzSW6_McND3_FzI`f(qmGd{sz5Bh~{&0}+PscR3Ht%eVNh);x#a-?EH+u4CUW zniv+5Z2>?bWBk8xy_2+?HL93|x^BS@(({w)@RUa#RwATBTg%0CV zk`}-FyLE0(BBbx^n-b$OlE&b};(Kcsfe`8S2&pVf|M!LKho8F_J393jhJpI1>tgeL zI%$LvpWb27c2T90H!sOKubE*0gtAF__5~!A$NRZ;J-(#Qhs+Z$V~?9Iop5vN5Gh$q z;E?}&E% zNV<@V=#6jCPb3|8ERzK49{tL~>)XKZP@glBL}z_xWrmkU$>+%_fYB7PpXlOxreW?STjz-g;HUe zH=gj!PiY##eZN(=`)T)^x9ck3#6?;qFd+HJ^!VJ9?C!LW?XYHq5k9(5F(!l8kX_8q zJu6gay5A(lm25}t48JgDQJxYQHiil76HY_H`tB@Ph#|Ah?xk^ybO}=(qRLS&iUu4_ zQdvB4h&aiufI4n*jD^C$SC;a|(ovku;`y3PKsp{?7Rp8O;ECZoh{?s1ff@*$(C0%p zGG-lr9`y-{u zkMmjCli5xB{tnfcdK6>YCZnEx_B0B9s|^O3?oSso#+}YL{aB|N-@@k>DLe0R6gYh% zjvI;r$skD^ufXiDEuImcy((;rT;;#YI380yQ~>~A$`Kaulv$0EGXEHsRvXb?Pw8t9 z+nzg&=p{99xj~_E%3EN&!}G|Nbjw6?0>F|fdaNZ$08X+X>S<x4Wh8hk;0yR8Xto2Tu*7c;qJwWOorR+Ol&@!N< z>D@*6-j)S>4lzJ^u2p2`y7Dv1^Q_8|s{>XLk>e0V%0O0m<}R8!J?~-#nkOPHsr~(P zIW0=3jXXRpO2L?pNY?4ag#bt*_vKtfa=1H?{?FGPN|hU-9o*8uBQWdP4zw7i04cfO zd(!}t033wzv`v!>OLdsxjunEe$TY!*4td{*rS`~k?S8t+f>C|$^W?&v0j>}0{XE-^ zryfx}u{_>e(XA3hlBxoP#FJ{wI*4|@MiP5nZ;TN)JVCx8($;QC2;kM6;#&Sg7YcMv z+O*~4>7v=`c2wlxPT5H4aVh!xfP@R3Uaz>+D0yJ*I5W(;2(z%9Rgt-H*(vySnGo zQgkTD`E_|~(|&<`ndzH71M)ovlH!o~bbaomLoVa#)~Z4Fm}`SZXZuB~4E$zaSf!d- z2jy~14iLFh2*WP&*Wnw3tqAYL36nqTWB+N|FJ${?x*#q#Evvc2Tx(fs@AhvC(PeB8 zCT&b`ex>&M-UZM|q_q&3w0^xCx#0gxRGobP0)F&?v2{UZV!mti5LqFERF9HGePsy{ zHf~pIcT9cba_jc*|CPZAm1Be)XcIA;V)%yrAG~M9I`S|7(>MAh!$qB<*CctX+%(687btMjqNn1S+XM(>l+D zFefr0%*#v&^S;Z6Y5`5omCoLh-wriD1~}c+_|9fAnU>)*fqwbHV2(yix3sV}nb{qldo3p^f9)8opoV#oND8 zkAFaxDQynQl$fOUm;^xEf+szj^vcTx=Ptx6tYRMl6aplDG{te-{eVadJ=l}K6JbC7 z4G;aD(R{yrQ9>KL@VE*SDG^g&e-ToZrPUZ!Y?Lrkl`~$d}aB;5E1;WT6Qt#JD~+6!+ktI!i)L1YFmG# zoJVaZTl^+i#T^BUEElF4KE=!|uhJaI0xRbocCU|@Gi`nLPmKi2r!r~V$$!wcy1A6>bzS)~ojG|uF4bpLD&cg$BFcL#{X4+8d=rS@t%_i8h4Y@%{9QWD@;BUSLGG$=;mbK3!L<|}@3XG<5#v(WbcP?H3S z{`3eIwLe2oLy4*trnKYNSoOKQM_~Y_q*eR{tV7N+5UdB+&0COHo+eP@wiJ=vFh!q&jRV@dw%2(kY9Cn3_ZQr3 zw%D=}OUsAk&;@m^T&}~qz*aH9qw|OuQE&@>EJts+r>I?i=$Sd^(9Y^S`Fs^>lqjGP z<-`o#(w>pzskgDI9@|rO<=h2R<%LuuGXAA|-Q!kE6O)b`lL+I|VQPcgUYCKmkQUPX z*@TUu8!Ap8gFf}p<%^7v?oZ#}-46!>s-jT{++^?pDp=!rgt^%(6jS)O1J$OS{Z;c-dDCt93*1cvFAlQiNW+8xFa8hWxQfGy`%=TwZI8k;giE6=f_gEw!WRtGOS)d!GV_ zP;Yii#1U?}3hwf(eHrzDi(xm-i_F@-??3;im)vbdyoDQXeNI=~WiQi&h8L__1{WVo ztL;5P+6MLF)oF+1nEY7|99qLuci{K%?`{ZhP?@(MB6f>j7gZ=6?0%la=GA>^KI5hh z0-l9N#G^YDYCYa#-cOxoUHy%cV{G3GTznE*^=643r?7h3Ps`Q-iXhw?6Op=P^x8;z zgA-VqCCmM)(_`ks@)JQPqGTEUbFGD!S$}1Vov5O}v@&PSbhZCr$_L&H-GI@9kj7&O zoRejYvZ2rNnL}q-SU7IriwU12M4j*E7(+d#w%1n7e~DH)FwtnZlucGN@Xw&0=k=Ji z(x*x_l7Ng9>)r|~Qz(HrJmuj#+|pki$4)( z&in3WmG=yC%h$ZFYGAwoJv}}#T|bG$VGI%q2|0iQ4MIA)qr|uEdCm|apP6HVOC7;z z*HsiTanS2@aLR_Awv6(i+Kq{`{B`I82V-=G^zQMhJ^m4xZQaw@A>{u0fnpNHSvv!x183X+&I-2Z$6&iuhyM1uTAB zJqh?o;EsVr7~<$%4~AhWA?YH633<+Ws5~9cLa}B^-8*BFkJLl;@^neY!t~c&* z-&4}$BtDtkT9DWhuid(Rul}y8Ox@JHOfy&ev}#CgUC$Z4Jfks7C6aE6@dXR?P<0|f z3q!V6xmblG#-2^5y6drDSyesnKu@&5+T8y0ND@|e(=X8L0^`>!nCowmV6*)WHEL~w$tYs)^m71gMGzg=j z06}b?krn8go7uhSFY)r4wW%Wdi1x7PwN1Ro7+eKBGA`Q>HfDl4R3TC_2utmqFIAAF5xP%g^NO z1B4VCcY3%?6Qm(O&&)6PJ{)@O1hKTg&;RB*E#0J(c^znx<&GPCX$Ou0lLVholt(Ee#59(d8(8fy;~6Aral=AEs|r7 z={Cq@&;-2>`QFU_(Un_j>NH!4JPdzLk*!zxy(jlUZV0b57mvXh^63%gMth~d+(+uA zbCl`Fibv>f`52wm>SSi%>UkRt)QY+8K@hi`H!Ga z&FuBy9qUXF!%s$BX8^U*X3Kr;pE#Lozej&$xomPf@oj@$lbP6v@eV`zXO?ffCO`lE zXBH;@`d@W}J!#{dwKFF=iu>$sKkc4Y&ub$LA)g%qA$So{$otQHM_)O}fBL|+5JXw! zZJK`@Rp!^uicRsWCkQGHRmR+rC-ckn>Qd;F%e(q+-%@SDT6ukQ0@wFi5D_Q-J|P^X$M^I5ZoM@eg9E(TS*m{f*f;%N<8>Eb=p zeMI@%w3J9`XmoC4r^kqw*myZsBx?5X~5D-Jf zTJ)J6#T&p?CC`#klI3FpcQC9ii|fv}%X+0zT zCn^93g%KqL$_BK=kZ5{4ac)%XZIW04@z@o2=SnMHXfS|9AR-s~zG32%zIf z&kc8(4STFF4nmeTr`?MoM6%kh`ZY4-v5(01-DP?$)8E(748;HFTL<%l5WMT(>ED$% z|3};5;KoQ+4_U!o2i-W&QBjF@AJ51JWa$vay!cQE6TH+@VW!a9kEZ!;>iV^d?9(8DjC5Bk2m~tn;*j6Rn4pavp7(fN ztv8?o@>4%UH4beu!h4)?SC_3f{K1H)NSqD;(-h$B2NcX z3Tr48(_(F=0M7!?vVzIlvBJ_6WbdS@5bYx>(J{I+Qj{Odp5Fnc#QQlyM4oKsW*lE^ zndmMc2o-i?=ZGl}&sB{Drl30u6pBOq!aZmb0N74eUHuT3;Srxc-e(;r)&o6oBvR z2roJMqt9SD{Uf8-!i&j5deK|k-=?38=bN_26k1RU$dkt`*8OyjoM`fHy6h7K>Uoe=PFpYH#U}msZcs`B zovuQM^^5?VgV*`JnuG&>_NcJ)SOk@;=K8rE$1qUuZ<9i*ZYD=`Hiah?(1VFsg~0+? zdJ9n^cy*Ubk-57fkM(_|iXVXiWHoss!S;&8AV@@+cp`3IU~-tp^Nfn4ZkjnMv9k+V z#1&bbog&vIH}g)%3FruUpq5&VW{D794(rq|&^qP0%2dlRq%@zcmmUk~iewP-TtXy} zIJJ{z?*)7)yD{NU3{QI2rYbPB`eGVr}%RW{@?kes{RH2cHU4%Mee(@$tcxrar# zSMd!{JBz6tla;Hu5Nbd1RE!7_2t>+m>pm&yz;?4)iHAGWK|Q09)RC=J+u>6EER<&C zmmJIT6g&=M609Gif4|*8%JkAc%UX|_eBtgIqq2O2t<}Sx4pyB~5eI_47~Gx)8LtoQ zkSOd2blkNrd>SW~M(XXt!-oYq_@G57i$omKIHW**N>yifd+J!xhn8WCh0dHdFn7@U z1zO(=mhIh{;ts~tlFYK1m?9jS)ngf*uV0F7DUiNU zE_{uqLr62h#qp)!Gl7Q#R?9rK-os5cl^>WT0YAj>9qH#N!}t!wg+-@1JExCV+ZlDu z?4A!rmb`;tFJ*c($T-UA`|!TqUR$snLLe*@Zdi4f2Nr|oC7`4laDw^mX;$lH8A&z* z&axc1*Bk=BGiA1Y8%lRg+^+STuke$(TZS0%Kixq+w|Mi2XcB8n-=R=*jR-qLfS%i| z8R}k8+Xu?X{o^!k@hHsDisSj-bcdG-Prnr6(k=Z!UrGPA3n=M!56Q_9$TR*5bQ zg#wSN{w+e;OETCp-2>!?!}XvHuckb-u9$PDTiwH2k$FKHzCf=RC#B zrtok*IdPZG{;^tDu2T_Cqq&2gLstpZvyZF$vo!x{$O~y}e0(^ny`ZSPQ&Cr} zGQ=_@B=vlfb$(@80(nLOBM6Ren4WM4PpP8XhK8KF_GcL;)?jr9_^8p<27_49%6mc6 z_2wfqWozNp8L^nwXJS*v**${DS@{!X$o$T$Erag+vXuAdB?-GFr6VFN2}5ghNGt%T z!V%5h>!NtXCs3>6GTEY3xK&+H@+ni^#uCgEuO0Gi;%pXJdfl*1VdO_=kHWadrfTLq z&2uYwSHZ9Rn-j86E3xWkYAn#|G(VZ&gH+;Q`=Ji|v;W(ZX}dF4xug7*r6&AR!{-Lf z7IW>@>*t5$mqFM6rCIk^GJGhX#0Pi^ZcJzqU+1F$)lA*k{W0aETZG|&59vdw62viCfVw6{1)3Q+F#{C-2%w=?`}Tg2BomDJ3xBf=~A>{|l6-gWy%niobJ4{`h@8 zjzXqJ$DepPF>JULh6jTNTcNnB1iDhaQXYtz+Q;o z+c#T!5n91ONq)nzT}``IucSi_@EsbXB8e4(%3$3g2Md*xE9ck$Y-Mkkr0@2%hk>iJ zGfZ8t#QNa#=8b+{tDATJ+#}Bgb(2HPEEi#$_aYP!)}e`xC!peA_EfTAtRwee@pr7=o?L;t&Dek<; za*ikw9gD|_hYjpLjzr~$)IvQUw8nl!tdgE6frJ)~?GC0N6)Pk*-)))Dc^YuS>N=v| z1uTZ>2ATC=x%A*qZn@i%8Qpko^Lun-!cW67XV`y|nHgR$d355gCB<}79noKFeJ673 zd9{H*SO>g1g~V^QwY-H4A>A%sE3in~twqj$P{}Y*6`TcULs&0NS(epDf2ez?ss;Mf zEB~*xKQD)9E05Iz#fkh$H{kFigQeuk2u^1k58j*oD$WOkc9 z{?z1)X}a9B{QK+An?RTDOAHz6gt4SOUjs(mJ8-oEFq^#RfOJx&iBqYMf~<^<7Zh-%N+cxLS*}^ z6aOyVKWirc&GqzXxVtT Date: Wed, 18 May 2016 19:47:41 -0600 Subject: [PATCH 189/307] SAM WDT: Rename up_wdginitialize() functions to something more appropriate for the internal OS interface. --- configs/cloudctrl/src/stm32_watchdog.c | 136 ----------------- configs/fire-stm32v2/src/stm32_watchdog.c | 135 ----------------- configs/hymini-stm32v/src/stm32_watchdog.c | 135 ----------------- configs/maple/src/stm32_watchdog.c | 137 ------------------ configs/mikroe-stm32f4/src/stm32_watchdog.c | 135 ----------------- configs/shenzhou/src/stm32_watchdog.c | 135 ----------------- configs/spark/src/stm32_watchdog.c | 137 ------------------ configs/stm3210e-eval/src/stm32_watchdog.c | 135 ----------------- configs/stm3220g-eval/src/stm32_watchdog.c | 135 ----------------- configs/stm3240g-eval/src/stm32_watchdog.c | 135 ----------------- configs/stm32_tiny/src/stm32_watchdog.c | 135 ----------------- configs/stm32f3discovery/src/stm32_watchdog.c | 135 ----------------- configs/stm32f4discovery/src/stm32_watchdog.c | 135 ----------------- configs/stm32ldiscovery/src/stm32_watchdog.c | 136 ----------------- 14 files changed, 1896 deletions(-) delete mode 100644 configs/cloudctrl/src/stm32_watchdog.c delete mode 100644 configs/fire-stm32v2/src/stm32_watchdog.c delete mode 100644 configs/hymini-stm32v/src/stm32_watchdog.c delete mode 100644 configs/maple/src/stm32_watchdog.c delete mode 100644 configs/mikroe-stm32f4/src/stm32_watchdog.c delete mode 100644 configs/shenzhou/src/stm32_watchdog.c delete mode 100644 configs/spark/src/stm32_watchdog.c delete mode 100644 configs/stm3210e-eval/src/stm32_watchdog.c delete mode 100644 configs/stm3220g-eval/src/stm32_watchdog.c delete mode 100644 configs/stm3240g-eval/src/stm32_watchdog.c delete mode 100644 configs/stm32_tiny/src/stm32_watchdog.c delete mode 100644 configs/stm32f3discovery/src/stm32_watchdog.c delete mode 100644 configs/stm32f4discovery/src/stm32_watchdog.c delete mode 100644 configs/stm32ldiscovery/src/stm32_watchdog.c diff --git a/configs/cloudctrl/src/stm32_watchdog.c b/configs/cloudctrl/src/stm32_watchdog.c deleted file mode 100644 index 0497c9aa02..0000000000 --- a/configs/cloudctrl/src/stm32_watchdog.c +++ /dev/null @@ -1,136 +0,0 @@ -/************************************************************************************ - * configs/cloudctrl/src/stm32_watchdog.c - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt - * Darcy Gong - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name NuttX nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ************************************************************************************/ - -/************************************************************************************ - * Included Files - ************************************************************************************/ - -#include - -#include -#include - -#include -#include - -#include "stm32_wdg.h" - -#ifdef CONFIG_WATCHDOG - -/************************************************************************************ - * Pre-processor Definitions - ************************************************************************************/ -/* Configuration *******************************************************************/ -/* Wathdog hardware should be enabled */ - -#if !defined(CONFIG_STM32_WWDG) && !defined(CONFIG_STM32_IWDG) -# warning "One of CONFIG_STM32_WWDG or CONFIG_STM32_IWDG must be defined" -#endif - -/* Select the path to the registered watchdog timer device */ - -#ifndef CONFIG_STM32_WDG_DEVPATH -# ifdef CONFIG_EXAMPLES_WATCHDOG_DEVPATH -# define CONFIG_STM32_WDG_DEVPATH CONFIG_EXAMPLES_WATCHDOG_DEVPATH -# else -# define CONFIG_STM32_WDG_DEVPATH "/dev/watchdog0" -# endif -#endif - -/* Use the un-calibrated LSI frequency if we have nothing better */ - -#if defined(CONFIG_STM32_IWDG) && !defined(CONFIG_STM32_LSIFREQ) -# define CONFIG_STM32_LSIFREQ STM32_LSI_FREQUENCY -#endif - -/* Debug ***************************************************************************/ -/* Non-standard debug that may be enabled just for testing the watchdog timer */ - -#ifndef CONFIG_DEBUG -# undef CONFIG_DEBUG_WATCHDOG -#endif - -#ifdef CONFIG_DEBUG_WATCHDOG -# define wdgdbg dbg -# define wdglldbg lldbg -# ifdef CONFIG_DEBUG_VERBOSE -# define wdgvdbg vdbg -# define wdgllvdbg llvdbg -# else -# define wdgvdbg(x...) -# define wdgllvdbg(x...) -# endif -#else -# define wdgdbg(x...) -# define wdglldbg(x...) -# define wdgvdbg(x...) -# define wdgllvdbg(x...) -#endif - -/************************************************************************************ - * Private Functions - ************************************************************************************/ - -/************************************************************************************ - * Public Functions - ************************************************************************************/ - -/**************************************************************************** - * Name: up_wdginitialize() - * - * Description: - * Perform architecuture-specific initialization of the Watchdog hardware. - * This interface must be provided by all configurations using - * apps/examples/watchdog - * - ****************************************************************************/ - -int up_wdginitialize(void) -{ - /* Initialize tha register the watchdog timer device */ - -#if defined(CONFIG_STM32_WWDG) - stm32_wwdginitialize(CONFIG_STM32_WDG_DEVPATH); - return OK; -#elif defined(CONFIG_STM32_IWDG) - stm32_iwdginitialize(CONFIG_STM32_WDG_DEVPATH, CONFIG_STM32_LSIFREQ); - return OK; -#else - return -ENODEV; -#endif -} - -#endif /* CONFIG_WATCHDOG */ diff --git a/configs/fire-stm32v2/src/stm32_watchdog.c b/configs/fire-stm32v2/src/stm32_watchdog.c deleted file mode 100644 index dd420c342c..0000000000 --- a/configs/fire-stm32v2/src/stm32_watchdog.c +++ /dev/null @@ -1,135 +0,0 @@ -/************************************************************************************ - * configs/fire-stm32v2/src/stm32_watchdog.c - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name NuttX nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ************************************************************************************/ - -/************************************************************************************ - * Included Files - ************************************************************************************/ - -#include - -#include -#include - -#include -#include - -#include "stm32_wdg.h" - -#ifdef CONFIG_WATCHDOG - -/************************************************************************************ - * Pre-processor Definitions - ************************************************************************************/ -/* Configuration *******************************************************************/ -/* Wathdog hardware should be enabled */ - -#if !defined(CONFIG_STM32_WWDG) && !defined(CONFIG_STM32_IWDG) -# warning "One of CONFIG_STM32_WWDG or CONFIG_STM32_IWDG must be defined" -#endif - -/* Select the path to the registered watchdog timer device */ - -#ifndef CONFIG_STM32_WDG_DEVPATH -# ifdef CONFIG_EXAMPLES_WATCHDOG_DEVPATH -# define CONFIG_STM32_WDG_DEVPATH CONFIG_EXAMPLES_WATCHDOG_DEVPATH -# else -# define CONFIG_STM32_WDG_DEVPATH "/dev/watchdog0" -# endif -#endif - -/* Use the un-calibrated LSI frequency if we have nothing better */ - -#if defined(CONFIG_STM32_IWDG) && !defined(CONFIG_STM32_LSIFREQ) -# define CONFIG_STM32_LSIFREQ STM32_LSI_FREQUENCY -#endif - -/* Debug ***************************************************************************/ -/* Non-standard debug that may be enabled just for testing the watchdog timer */ - -#ifndef CONFIG_DEBUG -# undef CONFIG_DEBUG_WATCHDOG -#endif - -#ifdef CONFIG_DEBUG_WATCHDOG -# define wdgdbg dbg -# define wdglldbg lldbg -# ifdef CONFIG_DEBUG_VERBOSE -# define wdgvdbg vdbg -# define wdgllvdbg llvdbg -# else -# define wdgvdbg(x...) -# define wdgllvdbg(x...) -# endif -#else -# define wdgdbg(x...) -# define wdglldbg(x...) -# define wdgvdbg(x...) -# define wdgllvdbg(x...) -#endif - -/************************************************************************************ - * Private Functions - ************************************************************************************/ - -/************************************************************************************ - * Public Functions - ************************************************************************************/ - -/**************************************************************************** - * Name: up_wdginitialize() - * - * Description: - * Perform architecuture-specific initialization of the Watchdog hardware. - * This interface must be provided by all configurations using - * apps/examples/watchdog - * - ****************************************************************************/ - -int up_wdginitialize(void) -{ - /* Initialize tha register the watchdog timer device */ - -#if defined(CONFIG_STM32_WWDG) - stm32_wwdginitialize(CONFIG_STM32_WDG_DEVPATH); - return OK; -#elif defined(CONFIG_STM32_IWDG) - stm32_iwdginitialize(CONFIG_STM32_WDG_DEVPATH, CONFIG_STM32_LSIFREQ); - return OK; -#else - return -ENODEV; -#endif -} - -#endif /* CONFIG_WATCHDOG */ diff --git a/configs/hymini-stm32v/src/stm32_watchdog.c b/configs/hymini-stm32v/src/stm32_watchdog.c deleted file mode 100644 index db143f67b1..0000000000 --- a/configs/hymini-stm32v/src/stm32_watchdog.c +++ /dev/null @@ -1,135 +0,0 @@ -/************************************************************************************ - * configs/hymini-stm32v/src/stm32_watchdog.c - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name NuttX nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ************************************************************************************/ - -/************************************************************************************ - * Included Files - ************************************************************************************/ - -#include - -#include -#include - -#include -#include - -#include "stm32_wdg.h" - -#ifdef CONFIG_WATCHDOG - -/************************************************************************************ - * Pre-processor Definitions - ************************************************************************************/ -/* Configuration *******************************************************************/ -/* Wathdog hardware should be enabled */ - -#if !defined(CONFIG_STM32_WWDG) && !defined(CONFIG_STM32_IWDG) -# warning "One of CONFIG_STM32_WWDG or CONFIG_STM32_IWDG must be defined" -#endif - -/* Select the path to the registered watchdog timer device */ - -#ifndef CONFIG_STM32_WDG_DEVPATH -# ifdef CONFIG_EXAMPLES_WATCHDOG_DEVPATH -# define CONFIG_STM32_WDG_DEVPATH CONFIG_EXAMPLES_WATCHDOG_DEVPATH -# else -# define CONFIG_STM32_WDG_DEVPATH "/dev/watchdog0" -# endif -#endif - -/* Use the un-calibrated LSI frequency if we have nothing better */ - -#if defined(CONFIG_STM32_IWDG) && !defined(CONFIG_STM32_LSIFREQ) -# define CONFIG_STM32_LSIFREQ STM32_LSI_FREQUENCY -#endif - -/* Debug ***************************************************************************/ -/* Non-standard debug that may be enabled just for testing the watchdog timer */ - -#ifndef CONFIG_DEBUG -# undef CONFIG_DEBUG_WATCHDOG -#endif - -#ifdef CONFIG_DEBUG_WATCHDOG -# define wdgdbg dbg -# define wdglldbg lldbg -# ifdef CONFIG_DEBUG_VERBOSE -# define wdgvdbg vdbg -# define wdgllvdbg llvdbg -# else -# define wdgvdbg(x...) -# define wdgllvdbg(x...) -# endif -#else -# define wdgdbg(x...) -# define wdglldbg(x...) -# define wdgvdbg(x...) -# define wdgllvdbg(x...) -#endif - -/************************************************************************************ - * Private Functions - ************************************************************************************/ - -/************************************************************************************ - * Public Functions - ************************************************************************************/ - -/**************************************************************************** - * Name: up_wdginitialize() - * - * Description: - * Perform architecuture-specific initialization of the Watchdog hardware. - * This interface must be provided by all configurations using - * apps/examples/watchdog - * - ****************************************************************************/ - -int up_wdginitialize(void) -{ - /* Initialize tha register the watchdog timer device */ - -#if defined(CONFIG_STM32_WWDG) - stm32_wwdginitialize(CONFIG_STM32_WDG_DEVPATH); - return OK; -#elif defined(CONFIG_STM32_IWDG) - stm32_iwdginitialize(CONFIG_STM32_WDG_DEVPATH, CONFIG_STM32_LSIFREQ); - return OK; -#else - return -ENODEV; -#endif -} - -#endif /* CONFIG_WATCHDOG */ diff --git a/configs/maple/src/stm32_watchdog.c b/configs/maple/src/stm32_watchdog.c deleted file mode 100644 index 24d5579da4..0000000000 --- a/configs/maple/src/stm32_watchdog.c +++ /dev/null @@ -1,137 +0,0 @@ -/************************************************************************************ - * configs/maple/src/stm32_watchdog.c - * - * Copyright (C) 2013 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name NuttX nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ************************************************************************************/ - -/************************************************************************************ - * Included Files - ************************************************************************************/ - -#include - -#include -#include - -#include -#include - -#include "stm32_wdg.h" - -#ifdef CONFIG_WATCHDOG - -/************************************************************************************ - * Pre-processor Definitions - ************************************************************************************/ -/* Configuration *******************************************************************/ -/* Wathdog hardware should be enabled */ - -#if !defined(CONFIG_STM32_WWDG) && !defined(CONFIG_STM32_IWDG) -# warning "One of CONFIG_STM32_WWDG or CONFIG_STM32_IWDG must be defined" -#endif - -/* Select the path to the registered watchdog timer device */ - -#ifndef CONFIG_STM32_WDG_DEVPATH -# ifdef CONFIG_EXAMPLES_WATCHDOG_DEVPATH -# define CONFIG_STM32_WDG_DEVPATH CONFIG_EXAMPLES_WATCHDOG_DEVPATH -# else -# define CONFIG_STM32_WDG_DEVPATH "/dev/watchdog0" -# endif -#endif - -/* Use the un-calibrated LSI frequency if we have nothing better */ - -#if defined(CONFIG_STM32_IWDG) && !defined(CONFIG_STM32_LSIFREQ) -# define CONFIG_STM32_LSIFREQ STM32_LSI_FREQUENCY -#endif - -/* Debug ***************************************************************************/ -/* Non-standard debug that may be enabled just for testing the watchdog timer */ - -#ifndef CONFIG_DEBUG -# undef CONFIG_DEBUG_WATCHDOG -#endif - -#ifdef CONFIG_DEBUG_WATCHDOG -# define wdgdbg dbg -# define wdglldbg lldbg -# ifdef CONFIG_DEBUG_VERBOSE -# define wdgvdbg vdbg -# define wdgllvdbg llvdbg -# else -# define wdgvdbg(x...) -# define wdgllvdbg(x...) -# endif -#else -# define wdgdbg(x...) -# define wdglldbg(x...) -# define wdgvdbg(x...) -# define wdgllvdbg(x...) -#endif - -/************************************************************************************ - * Private Functions - ************************************************************************************/ - -/************************************************************************************ - * Public Functions - ************************************************************************************/ - -/**************************************************************************** - * Name: up_wdginitialize() - * - * Description: - * Perform architecuture-specific initialization of the Watchdog hardware. - * This interface must be provided by all configurations using - * apps/examples/watchdog - * - ****************************************************************************/ - -int up_wdginitialize(void) -{ - /* Initialize tha register the watchdog timer device */ - -#if defined(CONFIG_STM32_WWDG) - stm32_wwdginitialize(CONFIG_STM32_WDG_DEVPATH); - return OK; - -#elif defined(CONFIG_STM32_IWDG) - stm32_iwdginitialize(CONFIG_STM32_WDG_DEVPATH, CONFIG_STM32_LSIFREQ); - return OK; - -#else - return -ENODEV; -#endif -} - -#endif /* CONFIG_WATCHDOG */ diff --git a/configs/mikroe-stm32f4/src/stm32_watchdog.c b/configs/mikroe-stm32f4/src/stm32_watchdog.c deleted file mode 100644 index 71cf65061d..0000000000 --- a/configs/mikroe-stm32f4/src/stm32_watchdog.c +++ /dev/null @@ -1,135 +0,0 @@ -/************************************************************************************ - * configs/mikroe_stm32f4/src/stm32_watchdog.c - * - * Copyright (C) 2012-2013 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name NuttX nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ************************************************************************************/ - -/************************************************************************************ - * Included Files - ************************************************************************************/ - -#include - -#include -#include - -#include -#include - -#include "stm32_wdg.h" - -#ifdef CONFIG_WATCHDOG - -/************************************************************************************ - * Pre-processor Definitions - ************************************************************************************/ -/* Configuration *******************************************************************/ -/* Wathdog hardware should be enabled */ - -#if !defined(CONFIG_STM32_WWDG) && !defined(CONFIG_STM32_IWDG) -# warning "One of CONFIG_STM32_WWDG or CONFIG_STM32_IWDG must be defined" -#endif - -/* Select the path to the registered watchdog timer device */ - -#ifndef CONFIG_STM32_WDG_DEVPATH -# ifdef CONFIG_EXAMPLES_WATCHDOG_DEVPATH -# define CONFIG_STM32_WDG_DEVPATH CONFIG_EXAMPLES_WATCHDOG_DEVPATH -# else -# define CONFIG_STM32_WDG_DEVPATH "/dev/watchdog0" -# endif -#endif - -/* Use the un-calibrated LSI frequency if we have nothing better */ - -#if defined(CONFIG_STM32_IWDG) && !defined(CONFIG_STM32_LSIFREQ) -# define CONFIG_STM32_LSIFREQ STM32_LSI_FREQUENCY -#endif - -/* Debug ***************************************************************************/ -/* Non-standard debug that may be enabled just for testing the watchdog timer */ - -#ifndef CONFIG_DEBUG -# undef CONFIG_DEBUG_WATCHDOG -#endif - -#ifdef CONFIG_DEBUG_WATCHDOG -# define wdgdbg dbg -# define wdglldbg lldbg -# ifdef CONFIG_DEBUG_VERBOSE -# define wdgvdbg vdbg -# define wdgllvdbg llvdbg -# else -# define wdgvdbg(x...) -# define wdgllvdbg(x...) -# endif -#else -# define wdgdbg(x...) -# define wdglldbg(x...) -# define wdgvdbg(x...) -# define wdgllvdbg(x...) -#endif - -/************************************************************************************ - * Private Functions - ************************************************************************************/ - -/************************************************************************************ - * Public Functions - ************************************************************************************/ - -/**************************************************************************** - * Name: up_wdginitialize() - * - * Description: - * Perform architecuture-specific initialization of the Watchdog hardware. - * This interface must be provided by all configurations using - * apps/examples/watchdog - * - ****************************************************************************/ - -int up_wdginitialize(void) -{ - /* Initialize tha register the watchdog timer device */ - -#if defined(CONFIG_STM32_WWDG) - stm32_wwdginitialize(CONFIG_STM32_WDG_DEVPATH); - return OK; -#elif defined(CONFIG_STM32_IWDG) - stm32_iwdginitialize(CONFIG_STM32_WDG_DEVPATH, CONFIG_STM32_LSIFREQ); - return OK; -#else - return -ENODEV; -#endif -} - -#endif /* CONFIG_WATCHDOG */ diff --git a/configs/shenzhou/src/stm32_watchdog.c b/configs/shenzhou/src/stm32_watchdog.c deleted file mode 100644 index ba14425cf4..0000000000 --- a/configs/shenzhou/src/stm32_watchdog.c +++ /dev/null @@ -1,135 +0,0 @@ -/************************************************************************************ - * configs/shenzhou/src/stm32_watchdog.c - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name NuttX nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ************************************************************************************/ - -/************************************************************************************ - * Included Files - ************************************************************************************/ - -#include - -#include -#include - -#include -#include - -#include "stm32_wdg.h" - -#ifdef CONFIG_WATCHDOG - -/************************************************************************************ - * Pre-processor Definitions - ************************************************************************************/ -/* Configuration *******************************************************************/ -/* Wathdog hardware should be enabled */ - -#if !defined(CONFIG_STM32_WWDG) && !defined(CONFIG_STM32_IWDG) -# warning "One of CONFIG_STM32_WWDG or CONFIG_STM32_IWDG must be defined" -#endif - -/* Select the path to the registered watchdog timer device */ - -#ifndef CONFIG_STM32_WDG_DEVPATH -# ifdef CONFIG_EXAMPLES_WATCHDOG_DEVPATH -# define CONFIG_STM32_WDG_DEVPATH CONFIG_EXAMPLES_WATCHDOG_DEVPATH -# else -# define CONFIG_STM32_WDG_DEVPATH "/dev/watchdog0" -# endif -#endif - -/* Use the un-calibrated LSI frequency if we have nothing better */ - -#if defined(CONFIG_STM32_IWDG) && !defined(CONFIG_STM32_LSIFREQ) -# define CONFIG_STM32_LSIFREQ STM32_LSI_FREQUENCY -#endif - -/* Debug ***************************************************************************/ -/* Non-standard debug that may be enabled just for testing the watchdog timer */ - -#ifndef CONFIG_DEBUG -# undef CONFIG_DEBUG_WATCHDOG -#endif - -#ifdef CONFIG_DEBUG_WATCHDOG -# define wdgdbg dbg -# define wdglldbg lldbg -# ifdef CONFIG_DEBUG_VERBOSE -# define wdgvdbg vdbg -# define wdgllvdbg llvdbg -# else -# define wdgvdbg(x...) -# define wdgllvdbg(x...) -# endif -#else -# define wdgdbg(x...) -# define wdglldbg(x...) -# define wdgvdbg(x...) -# define wdgllvdbg(x...) -#endif - -/************************************************************************************ - * Private Functions - ************************************************************************************/ - -/************************************************************************************ - * Public Functions - ************************************************************************************/ - -/**************************************************************************** - * Name: up_wdginitialize() - * - * Description: - * Perform architecuture-specific initialization of the Watchdog hardware. - * This interface must be provided by all configurations using - * apps/examples/watchdog - * - ****************************************************************************/ - -int up_wdginitialize(void) -{ - /* Initialize tha register the watchdog timer device */ - -#if defined(CONFIG_STM32_WWDG) - stm32_wwdginitialize(CONFIG_STM32_WDG_DEVPATH); - return OK; -#elif defined(CONFIG_STM32_IWDG) - stm32_iwdginitialize(CONFIG_STM32_WDG_DEVPATH, CONFIG_STM32_LSIFREQ); - return OK; -#else - return -ENODEV; -#endif -} - -#endif /* CONFIG_WATCHDOG */ diff --git a/configs/spark/src/stm32_watchdog.c b/configs/spark/src/stm32_watchdog.c deleted file mode 100644 index 1c41b1ddc7..0000000000 --- a/configs/spark/src/stm32_watchdog.c +++ /dev/null @@ -1,137 +0,0 @@ -/************************************************************************************ - * configs/spark/src/stm32_watchdog.c - * - * Copyright (C) 2013 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name NuttX nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ************************************************************************************/ - -/************************************************************************************ - * Included Files - ************************************************************************************/ - -#include - -#include -#include - -#include -#include - -#include "stm32_wdg.h" - -#ifdef CONFIG_WATCHDOG - -/************************************************************************************ - * Pre-processor Definitions - ************************************************************************************/ -/* Configuration *******************************************************************/ -/* Wathdog hardware should be enabled */ - -#if !defined(CONFIG_STM32_WWDG) && !defined(CONFIG_STM32_IWDG) -# warning "One of CONFIG_STM32_WWDG or CONFIG_STM32_IWDG must be defined" -#endif - -/* Select the path to the registered watchdog timer device */ - -#ifndef CONFIG_STM32_WDG_DEVPATH -# ifdef CONFIG_EXAMPLES_WATCHDOG_DEVPATH -# define CONFIG_STM32_WDG_DEVPATH CONFIG_EXAMPLES_WATCHDOG_DEVPATH -# else -# define CONFIG_STM32_WDG_DEVPATH "/dev/watchdog0" -# endif -#endif - -/* Use the un-calibrated LSI frequency if we have nothing better */ - -#if defined(CONFIG_STM32_IWDG) && !defined(CONFIG_STM32_LSIFREQ) -# define CONFIG_STM32_LSIFREQ STM32_LSI_FREQUENCY -#endif - -/* Debug ***************************************************************************/ -/* Non-standard debug that may be enabled just for testing the watchdog timer */ - -#ifndef CONFIG_DEBUG -# undef CONFIG_DEBUG_WATCHDOG -#endif - -#ifdef CONFIG_DEBUG_WATCHDOG -# define wdgdbg dbg -# define wdglldbg lldbg -# ifdef CONFIG_DEBUG_VERBOSE -# define wdgvdbg vdbg -# define wdgllvdbg llvdbg -# else -# define wdgvdbg(x...) -# define wdgllvdbg(x...) -# endif -#else -# define wdgdbg(x...) -# define wdglldbg(x...) -# define wdgvdbg(x...) -# define wdgllvdbg(x...) -#endif - -/************************************************************************************ - * Private Functions - ************************************************************************************/ - -/************************************************************************************ - * Public Functions - ************************************************************************************/ - -/**************************************************************************** - * Name: up_wdginitialize() - * - * Description: - * Perform architecuture-specific initialization of the Watchdog hardware. - * This interface must be provided by all configurations using - * apps/examples/watchdog - * - ****************************************************************************/ - -int up_wdginitialize(void) -{ - /* Initialize and register the watchdog timer device */ - -#if defined(CONFIG_STM32_WWDG) - stm32_wwdginitialize(CONFIG_STM32_WDG_DEVPATH); - return OK; - -#elif defined(CONFIG_STM32_IWDG) - stm32_iwdginitialize(CONFIG_STM32_WDG_DEVPATH, CONFIG_STM32_LSIFREQ); - return OK; - -#else - return -ENODEV; -#endif -} - -#endif /* CONFIG_WATCHDOG */ diff --git a/configs/stm3210e-eval/src/stm32_watchdog.c b/configs/stm3210e-eval/src/stm32_watchdog.c deleted file mode 100644 index 61b65e59c8..0000000000 --- a/configs/stm3210e-eval/src/stm32_watchdog.c +++ /dev/null @@ -1,135 +0,0 @@ -/************************************************************************************ - * configs/stm3210e-eval/src/stm32_watchdog.c - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name NuttX nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ************************************************************************************/ - -/************************************************************************************ - * Included Files - ************************************************************************************/ - -#include - -#include -#include - -#include -#include - -#include "stm32_wdg.h" - -#ifdef CONFIG_WATCHDOG - -/************************************************************************************ - * Pre-processor Definitions - ************************************************************************************/ -/* Configuration *******************************************************************/ -/* Wathdog hardware should be enabled */ - -#if !defined(CONFIG_STM32_WWDG) && !defined(CONFIG_STM32_IWDG) -# warning "One of CONFIG_STM32_WWDG or CONFIG_STM32_IWDG must be defined" -#endif - -/* Select the path to the registered watchdog timer device */ - -#ifndef CONFIG_STM32_WDG_DEVPATH -# ifdef CONFIG_EXAMPLES_WATCHDOG_DEVPATH -# define CONFIG_STM32_WDG_DEVPATH CONFIG_EXAMPLES_WATCHDOG_DEVPATH -# else -# define CONFIG_STM32_WDG_DEVPATH "/dev/watchdog0" -# endif -#endif - -/* Use the un-calibrated LSI frequency if we have nothing better */ - -#if defined(CONFIG_STM32_IWDG) && !defined(CONFIG_STM32_LSIFREQ) -# define CONFIG_STM32_LSIFREQ STM32_LSI_FREQUENCY -#endif - -/* Debug ***************************************************************************/ -/* Non-standard debug that may be enabled just for testing the watchdog timer */ - -#ifndef CONFIG_DEBUG -# undef CONFIG_DEBUG_WATCHDOG -#endif - -#ifdef CONFIG_DEBUG_WATCHDOG -# define wdgdbg dbg -# define wdglldbg lldbg -# ifdef CONFIG_DEBUG_VERBOSE -# define wdgvdbg vdbg -# define wdgllvdbg llvdbg -# else -# define wdgvdbg(x...) -# define wdgllvdbg(x...) -# endif -#else -# define wdgdbg(x...) -# define wdglldbg(x...) -# define wdgvdbg(x...) -# define wdgllvdbg(x...) -#endif - -/************************************************************************************ - * Private Functions - ************************************************************************************/ - -/************************************************************************************ - * Public Functions - ************************************************************************************/ - -/**************************************************************************** - * Name: up_wdginitialize() - * - * Description: - * Perform architecuture-specific initialization of the Watchdog hardware. - * This interface must be provided by all configurations using - * apps/examples/watchdog - * - ****************************************************************************/ - -int up_wdginitialize(void) -{ - /* Initialize tha register the watchdog timer device */ - -#if defined(CONFIG_STM32_WWDG) - stm32_wwdginitialize(CONFIG_STM32_WDG_DEVPATH); - return OK; -#elif defined(CONFIG_STM32_IWDG) - stm32_iwdginitialize(CONFIG_STM32_WDG_DEVPATH, CONFIG_STM32_LSIFREQ); - return OK; -#else - return -ENODEV; -#endif -} - -#endif /* CONFIG_WATCHDOG */ diff --git a/configs/stm3220g-eval/src/stm32_watchdog.c b/configs/stm3220g-eval/src/stm32_watchdog.c deleted file mode 100644 index a00a4b91a5..0000000000 --- a/configs/stm3220g-eval/src/stm32_watchdog.c +++ /dev/null @@ -1,135 +0,0 @@ -/************************************************************************************ - * configs/stm3220g-eval/src/stm32_watchdog.c - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name NuttX nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ************************************************************************************/ - -/************************************************************************************ - * Included Files - ************************************************************************************/ - -#include - -#include -#include - -#include -#include - -#include "stm32_wdg.h" - -#ifdef CONFIG_WATCHDOG - -/************************************************************************************ - * Pre-processor Definitions - ************************************************************************************/ -/* Configuration *******************************************************************/ -/* Wathdog hardware should be enabled */ - -#if !defined(CONFIG_STM32_WWDG) && !defined(CONFIG_STM32_IWDG) -# warning "One of CONFIG_STM32_WWDG or CONFIG_STM32_IWDG must be defined" -#endif - -/* Select the path to the registered watchdog timer device */ - -#ifndef CONFIG_STM32_WDG_DEVPATH -# ifdef CONFIG_EXAMPLES_WATCHDOG_DEVPATH -# define CONFIG_STM32_WDG_DEVPATH CONFIG_EXAMPLES_WATCHDOG_DEVPATH -# else -# define CONFIG_STM32_WDG_DEVPATH "/dev/watchdog0" -# endif -#endif - -/* Use the un-calibrated LSI frequency if we have nothing better */ - -#if defined(CONFIG_STM32_IWDG) && !defined(CONFIG_STM32_LSIFREQ) -# define CONFIG_STM32_LSIFREQ STM32_LSI_FREQUENCY -#endif - -/* Debug ***************************************************************************/ -/* Non-standard debug that may be enabled just for testing the watchdog timer */ - -#ifndef CONFIG_DEBUG -# undef CONFIG_DEBUG_WATCHDOG -#endif - -#ifdef CONFIG_DEBUG_WATCHDOG -# define wdgdbg dbg -# define wdglldbg lldbg -# ifdef CONFIG_DEBUG_VERBOSE -# define wdgvdbg vdbg -# define wdgllvdbg llvdbg -# else -# define wdgvdbg(x...) -# define wdgllvdbg(x...) -# endif -#else -# define wdgdbg(x...) -# define wdglldbg(x...) -# define wdgvdbg(x...) -# define wdgllvdbg(x...) -#endif - -/************************************************************************************ - * Private Functions - ************************************************************************************/ - -/************************************************************************************ - * Public Functions - ************************************************************************************/ - -/**************************************************************************** - * Name: up_wdginitialize() - * - * Description: - * Perform architecuture-specific initialization of the Watchdog hardware. - * This interface must be provided by all configurations using - * apps/examples/watchdog - * - ****************************************************************************/ - -int up_wdginitialize(void) -{ - /* Initialize tha register the watchdog timer device */ - -#if defined(CONFIG_STM32_WWDG) - stm32_wwdginitialize(CONFIG_STM32_WDG_DEVPATH); - return OK; -#elif defined(CONFIG_STM32_IWDG) - stm32_iwdginitialize(CONFIG_STM32_WDG_DEVPATH, CONFIG_STM32_LSIFREQ); - return OK; -#else - return -ENODEV; -#endif -} - -#endif /* CONFIG_WATCHDOG */ diff --git a/configs/stm3240g-eval/src/stm32_watchdog.c b/configs/stm3240g-eval/src/stm32_watchdog.c deleted file mode 100644 index d778f195d8..0000000000 --- a/configs/stm3240g-eval/src/stm32_watchdog.c +++ /dev/null @@ -1,135 +0,0 @@ -/************************************************************************************ - * configs/stm3240g-eval/src/stm32_watchdog.c - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name NuttX nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ************************************************************************************/ - -/************************************************************************************ - * Included Files - ************************************************************************************/ - -#include - -#include -#include - -#include -#include - -#include "stm32_wdg.h" - -#ifdef CONFIG_WATCHDOG - -/************************************************************************************ - * Pre-processor Definitions - ************************************************************************************/ -/* Configuration *******************************************************************/ -/* Wathdog hardware should be enabled */ - -#if !defined(CONFIG_STM32_WWDG) && !defined(CONFIG_STM32_IWDG) -# warning "One of CONFIG_STM32_WWDG or CONFIG_STM32_IWDG must be defined" -#endif - -/* Select the path to the registered watchdog timer device */ - -#ifndef CONFIG_STM32_WDG_DEVPATH -# ifdef CONFIG_EXAMPLES_WATCHDOG_DEVPATH -# define CONFIG_STM32_WDG_DEVPATH CONFIG_EXAMPLES_WATCHDOG_DEVPATH -# else -# define CONFIG_STM32_WDG_DEVPATH "/dev/watchdog0" -# endif -#endif - -/* Use the un-calibrated LSI frequency if we have nothing better */ - -#if defined(CONFIG_STM32_IWDG) && !defined(CONFIG_STM32_LSIFREQ) -# define CONFIG_STM32_LSIFREQ STM32_LSI_FREQUENCY -#endif - -/* Debug ***************************************************************************/ -/* Non-standard debug that may be enabled just for testing the watchdog timer */ - -#ifndef CONFIG_DEBUG -# undef CONFIG_DEBUG_WATCHDOG -#endif - -#ifdef CONFIG_DEBUG_WATCHDOG -# define wdgdbg dbg -# define wdglldbg lldbg -# ifdef CONFIG_DEBUG_VERBOSE -# define wdgvdbg vdbg -# define wdgllvdbg llvdbg -# else -# define wdgvdbg(x...) -# define wdgllvdbg(x...) -# endif -#else -# define wdgdbg(x...) -# define wdglldbg(x...) -# define wdgvdbg(x...) -# define wdgllvdbg(x...) -#endif - -/************************************************************************************ - * Private Functions - ************************************************************************************/ - -/************************************************************************************ - * Public Functions - ************************************************************************************/ - -/**************************************************************************** - * Name: up_wdginitialize() - * - * Description: - * Perform architecuture-specific initialization of the Watchdog hardware. - * This interface must be provided by all configurations using - * apps/examples/watchdog - * - ****************************************************************************/ - -int up_wdginitialize(void) -{ - /* Initialize tha register the watchdog timer device */ - -#if defined(CONFIG_STM32_WWDG) - stm32_wwdginitialize(CONFIG_STM32_WDG_DEVPATH); - return OK; -#elif defined(CONFIG_STM32_IWDG) - stm32_iwdginitialize(CONFIG_STM32_WDG_DEVPATH, CONFIG_STM32_LSIFREQ); - return OK; -#else - return -ENODEV; -#endif -} - -#endif /* CONFIG_WATCHDOG */ diff --git a/configs/stm32_tiny/src/stm32_watchdog.c b/configs/stm32_tiny/src/stm32_watchdog.c deleted file mode 100644 index a2ae5963f3..0000000000 --- a/configs/stm32_tiny/src/stm32_watchdog.c +++ /dev/null @@ -1,135 +0,0 @@ -/************************************************************************************ - * configs/stm_tiny/src/stm32_watchdog.c - * - * Copyright (C) 2012-2013 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name NuttX nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ************************************************************************************/ - -/************************************************************************************ - * Included Files - ************************************************************************************/ - -#include - -#include -#include - -#include -#include - -#include "stm32_wdg.h" - -#ifdef CONFIG_WATCHDOG - -/************************************************************************************ - * Pre-processor Definitions - ************************************************************************************/ -/* Configuration *******************************************************************/ -/* Wathdog hardware should be enabled */ - -#if !defined(CONFIG_STM32_WWDG) && !defined(CONFIG_STM32_IWDG) -# warning "One of CONFIG_STM32_WWDG or CONFIG_STM32_IWDG must be defined" -#endif - -/* Select the path to the registered watchdog timer device */ - -#ifndef CONFIG_STM32_WDG_DEVPATH -# ifdef CONFIG_EXAMPLES_WATCHDOG_DEVPATH -# define CONFIG_STM32_WDG_DEVPATH CONFIG_EXAMPLES_WATCHDOG_DEVPATH -# else -# define CONFIG_STM32_WDG_DEVPATH "/dev/watchdog0" -# endif -#endif - -/* Use the un-calibrated LSI frequency if we have nothing better */ - -#if defined(CONFIG_STM32_IWDG) && !defined(CONFIG_STM32_LSIFREQ) -# define CONFIG_STM32_LSIFREQ STM32_LSI_FREQUENCY -#endif - -/* Debug ***************************************************************************/ -/* Non-standard debug that may be enabled just for testing the watchdog timer */ - -#ifndef CONFIG_DEBUG -# undef CONFIG_DEBUG_WATCHDOG -#endif - -#ifdef CONFIG_DEBUG_WATCHDOG -# define wdgdbg dbg -# define wdglldbg lldbg -# ifdef CONFIG_DEBUG_VERBOSE -# define wdgvdbg vdbg -# define wdgllvdbg llvdbg -# else -# define wdgvdbg(x...) -# define wdgllvdbg(x...) -# endif -#else -# define wdgdbg(x...) -# define wdglldbg(x...) -# define wdgvdbg(x...) -# define wdgllvdbg(x...) -#endif - -/************************************************************************************ - * Private Functions - ************************************************************************************/ - -/************************************************************************************ - * Public Functions - ************************************************************************************/ - -/**************************************************************************** - * Name: up_wdginitialize() - * - * Description: - * Perform architecuture-specific initialization of the Watchdog hardware. - * This interface must be provided by all configurations using - * apps/examples/watchdog - * - ****************************************************************************/ - -int up_wdginitialize(void) -{ - /* Initialize tha register the watchdog timer device */ - -#if defined(CONFIG_STM32_WWDG) - stm32_wwdginitialize(CONFIG_STM32_WDG_DEVPATH); - return OK; -#elif defined(CONFIG_STM32_IWDG) - stm32_iwdginitialize(CONFIG_STM32_WDG_DEVPATH, CONFIG_STM32_LSIFREQ); - return OK; -#else - return -ENODEV; -#endif -} - -#endif /* CONFIG_WATCHDOG */ diff --git a/configs/stm32f3discovery/src/stm32_watchdog.c b/configs/stm32f3discovery/src/stm32_watchdog.c deleted file mode 100644 index 42d6ed3343..0000000000 --- a/configs/stm32f3discovery/src/stm32_watchdog.c +++ /dev/null @@ -1,135 +0,0 @@ -/************************************************************************************ - * configs/stm32f3discovery/src/stm32_watchdog.c - * - * Copyright (C) 2013 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name NuttX nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ************************************************************************************/ - -/************************************************************************************ - * Included Files - ************************************************************************************/ - -#include - -#include -#include - -#include -#include - -#include "stm32_wdg.h" - -#ifdef CONFIG_WATCHDOG - -/************************************************************************************ - * Pre-processor Definitions - ************************************************************************************/ -/* Configuration *******************************************************************/ -/* Wathdog hardware should be enabled */ - -#if !defined(CONFIG_STM32_WWDG) && !defined(CONFIG_STM32_IWDG) -# warning "One of CONFIG_STM32_WWDG or CONFIG_STM32_IWDG must be defined" -#endif - -/* Select the path to the registered watchdog timer device */ - -#ifndef CONFIG_STM32_WDG_DEVPATH -# ifdef CONFIG_EXAMPLES_WATCHDOG_DEVPATH -# define CONFIG_STM32_WDG_DEVPATH CONFIG_EXAMPLES_WATCHDOG_DEVPATH -# else -# define CONFIG_STM32_WDG_DEVPATH "/dev/watchdog0" -# endif -#endif - -/* Use the un-calibrated LSI frequency if we have nothing better */ - -#if defined(CONFIG_STM32_IWDG) && !defined(CONFIG_STM32_LSIFREQ) -# define CONFIG_STM32_LSIFREQ STM32_LSI_FREQUENCY -#endif - -/* Debug ***************************************************************************/ -/* Non-standard debug that may be enabled just for testing the watchdog timer */ - -#ifndef CONFIG_DEBUG -# undef CONFIG_DEBUG_WATCHDOG -#endif - -#ifdef CONFIG_DEBUG_WATCHDOG -# define wdgdbg dbg -# define wdglldbg lldbg -# ifdef CONFIG_DEBUG_VERBOSE -# define wdgvdbg vdbg -# define wdgllvdbg llvdbg -# else -# define wdgvdbg(x...) -# define wdgllvdbg(x...) -# endif -#else -# define wdgdbg(x...) -# define wdglldbg(x...) -# define wdgvdbg(x...) -# define wdgllvdbg(x...) -#endif - -/************************************************************************************ - * Private Functions - ************************************************************************************/ - -/************************************************************************************ - * Public Functions - ************************************************************************************/ - -/**************************************************************************** - * Name: up_wdginitialize() - * - * Description: - * Perform architecuture-specific initialization of the Watchdog hardware. - * This interface must be provided by all configurations using - * apps/examples/watchdog - * - ****************************************************************************/ - -int up_wdginitialize(void) -{ - /* Initialize tha register the watchdog timer device */ - -#if defined(CONFIG_STM32_WWDG) - stm32_wwdginitialize(CONFIG_STM32_WDG_DEVPATH); - return OK; -#elif defined(CONFIG_STM32_IWDG) - stm32_iwdginitialize(CONFIG_STM32_WDG_DEVPATH, CONFIG_STM32_LSIFREQ); - return OK; -#else - return -ENODEV; -#endif -} - -#endif /* CONFIG_WATCHDOG */ diff --git a/configs/stm32f4discovery/src/stm32_watchdog.c b/configs/stm32f4discovery/src/stm32_watchdog.c deleted file mode 100644 index b238bc5d43..0000000000 --- a/configs/stm32f4discovery/src/stm32_watchdog.c +++ /dev/null @@ -1,135 +0,0 @@ -/************************************************************************************ - * configs/stm32f4discovery/src/stm32_watchdog.c - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name NuttX nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ************************************************************************************/ - -/************************************************************************************ - * Included Files - ************************************************************************************/ - -#include - -#include -#include - -#include -#include - -#include "stm32_wdg.h" - -#ifdef CONFIG_WATCHDOG - -/************************************************************************************ - * Pre-processor Definitions - ************************************************************************************/ -/* Configuration *******************************************************************/ -/* Wathdog hardware should be enabled */ - -#if !defined(CONFIG_STM32_WWDG) && !defined(CONFIG_STM32_IWDG) -# warning "One of CONFIG_STM32_WWDG or CONFIG_STM32_IWDG must be defined" -#endif - -/* Select the path to the registered watchdog timer device */ - -#ifndef CONFIG_STM32_WDG_DEVPATH -# ifdef CONFIG_EXAMPLES_WATCHDOG_DEVPATH -# define CONFIG_STM32_WDG_DEVPATH CONFIG_EXAMPLES_WATCHDOG_DEVPATH -# else -# define CONFIG_STM32_WDG_DEVPATH "/dev/watchdog0" -# endif -#endif - -/* Use the un-calibrated LSI frequency if we have nothing better */ - -#if defined(CONFIG_STM32_IWDG) && !defined(CONFIG_STM32_LSIFREQ) -# define CONFIG_STM32_LSIFREQ STM32_LSI_FREQUENCY -#endif - -/* Debug ***************************************************************************/ -/* Non-standard debug that may be enabled just for testing the watchdog timer */ - -#ifndef CONFIG_DEBUG -# undef CONFIG_DEBUG_WATCHDOG -#endif - -#ifdef CONFIG_DEBUG_WATCHDOG -# define wdgdbg dbg -# define wdglldbg lldbg -# ifdef CONFIG_DEBUG_VERBOSE -# define wdgvdbg vdbg -# define wdgllvdbg llvdbg -# else -# define wdgvdbg(x...) -# define wdgllvdbg(x...) -# endif -#else -# define wdgdbg(x...) -# define wdglldbg(x...) -# define wdgvdbg(x...) -# define wdgllvdbg(x...) -#endif - -/************************************************************************************ - * Private Functions - ************************************************************************************/ - -/************************************************************************************ - * Public Functions - ************************************************************************************/ - -/**************************************************************************** - * Name: up_wdginitialize() - * - * Description: - * Perform architecuture-specific initialization of the Watchdog hardware. - * This interface must be provided by all configurations using - * apps/examples/watchdog - * - ****************************************************************************/ - -int up_wdginitialize(void) -{ - /* Initialize tha register the watchdog timer device */ - -#if defined(CONFIG_STM32_WWDG) - stm32_wwdginitialize(CONFIG_STM32_WDG_DEVPATH); - return OK; -#elif defined(CONFIG_STM32_IWDG) - stm32_iwdginitialize(CONFIG_STM32_WDG_DEVPATH, CONFIG_STM32_LSIFREQ); - return OK; -#else - return -ENODEV; -#endif -} - -#endif /* CONFIG_WATCHDOG */ diff --git a/configs/stm32ldiscovery/src/stm32_watchdog.c b/configs/stm32ldiscovery/src/stm32_watchdog.c deleted file mode 100644 index 9f6c832209..0000000000 --- a/configs/stm32ldiscovery/src/stm32_watchdog.c +++ /dev/null @@ -1,136 +0,0 @@ -/************************************************************************************ - * configs/stm32ldiscovery/src/up_watchdog.c - * arch/arm/src/board/up_watchdog.c - * - * Copyright (C) 2013 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name NuttX nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ************************************************************************************/ - -/************************************************************************************ - * Included Files - ************************************************************************************/ - -#include - -#include -#include - -#include -#include - -#include "stm32_wdg.h" - -#ifdef CONFIG_WATCHDOG - -/************************************************************************************ - * Pre-processor Definitions - ************************************************************************************/ -/* Configuration *******************************************************************/ -/* Wathdog hardware should be enabled */ - -#if !defined(CONFIG_STM32_WWDG) && !defined(CONFIG_STM32_IWDG) -# warning "One of CONFIG_STM32_WWDG or CONFIG_STM32_IWDG must be defined" -#endif - -/* Select the path to the registered watchdog timer device */ - -#ifndef CONFIG_STM32_WDG_DEVPATH -# ifdef CONFIG_EXAMPLES_WATCHDOG_DEVPATH -# define CONFIG_STM32_WDG_DEVPATH CONFIG_EXAMPLES_WATCHDOG_DEVPATH -# else -# define CONFIG_STM32_WDG_DEVPATH "/dev/watchdog0" -# endif -#endif - -/* Use the un-calibrated LSI frequency if we have nothing better */ - -#if defined(CONFIG_STM32_IWDG) && !defined(CONFIG_STM32_LSIFREQ) -# define CONFIG_STM32_LSIFREQ STM32_LSI_FREQUENCY -#endif - -/* Debug ***************************************************************************/ -/* Non-standard debug that may be enabled just for testing the watchdog timer */ - -#ifndef CONFIG_DEBUG -# undef CONFIG_DEBUG_WATCHDOG -#endif - -#ifdef CONFIG_DEBUG_WATCHDOG -# define wdgdbg dbg -# define wdglldbg lldbg -# ifdef CONFIG_DEBUG_VERBOSE -# define wdgvdbg vdbg -# define wdgllvdbg llvdbg -# else -# define wdgvdbg(x...) -# define wdgllvdbg(x...) -# endif -#else -# define wdgdbg(x...) -# define wdglldbg(x...) -# define wdgvdbg(x...) -# define wdgllvdbg(x...) -#endif - -/************************************************************************************ - * Private Functions - ************************************************************************************/ - -/************************************************************************************ - * Public Functions - ************************************************************************************/ - -/**************************************************************************** - * Name: up_wdginitialize() - * - * Description: - * Perform architecuture-specific initialization of the Watchdog hardware. - * This interface must be provided by all configurations using - * apps/examples/watchdog - * - ****************************************************************************/ - -int up_wdginitialize(void) -{ - /* Initialize tha register the watchdog timer device */ - -#if defined(CONFIG_STM32_WWDG) - stm32_wwdginitialize(CONFIG_STM32_WDG_DEVPATH); - return OK; -#elif defined(CONFIG_STM32_IWDG) - stm32_iwdginitialize(CONFIG_STM32_WDG_DEVPATH, CONFIG_STM32_LSIFREQ); - return OK; -#else - return -ENODEV; -#endif -} - -#endif /* CONFIG_WATCHDOG */ -- GitLab From c364faeefcaa7a81fa81530052b533fca4100d55 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 18 May 2016 19:47:48 -0600 Subject: [PATCH 190/307] SAM WDT: Rename up_wdginitialize() functions to something more appropriate for the internal OS interface. --- arch/arm/src/sama5/sam_wdt.c | 4 ++-- arch/arm/src/sama5/sam_wdt.h | 22 ++++++++++++++++++- arch/arm/src/samv7/sam_rswdt.c | 4 ++-- arch/arm/src/samv7/sam_wdt.c | 4 ++-- arch/arm/src/samv7/sam_wdt.h | 40 ++++++++++++++++++++++++++++++++++ 5 files changed, 67 insertions(+), 7 deletions(-) diff --git a/arch/arm/src/sama5/sam_wdt.c b/arch/arm/src/sama5/sam_wdt.c index 6868b573c6..d14f45c198 100644 --- a/arch/arm/src/sama5/sam_wdt.c +++ b/arch/arm/src/sama5/sam_wdt.c @@ -648,7 +648,7 @@ static int sam_ioctl(FAR struct watchdog_lowerhalf_s *lower, int cmd, ****************************************************************************/ /**************************************************************************** - * Name: up_wdginitialize + * Name: sam_wdt_initialize * * Description: * Initialize the WDT watchdog time. The watchdog timer is initialized and @@ -663,7 +663,7 @@ static int sam_ioctl(FAR struct watchdog_lowerhalf_s *lower, int cmd, * ****************************************************************************/ -int up_wdginitialize(void) +int sam_wdt_initialize(void) { FAR struct sam_lowerhalf_s *priv = &g_wdtdev; diff --git a/arch/arm/src/sama5/sam_wdt.h b/arch/arm/src/sama5/sam_wdt.h index 6f99082e16..0f9eab7b75 100644 --- a/arch/arm/src/sama5/sam_wdt.h +++ b/arch/arm/src/sama5/sam_wdt.h @@ -1,7 +1,7 @@ /**************************************************************************** * arch/arm/src/sama5/sam_wdt.h * - * Copyright (C) 2013 Gregory Nutt. All rights reserved. + * Copyright (C) 2013, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -66,6 +66,26 @@ extern "C" * Public Functions ****************************************************************************/ +/**************************************************************************** + * Name: sam_wdt_initialize() + * + * Description: + * Perform architecture-specific initialization of the Watchdog hardware. + * This interface should be provided by all configurations using + * to avoid exposed platform-dependent logic. + * + * At a minimum, this function should call watchdog_register(). + * + * Input parameters: + * None + * + * Returned Value: + * Zero on success; a negated errno value on failure. + * + ****************************************************************************/ + +int sam_wdt_initialize(void); + #undef EXTERN #if defined(__cplusplus) } diff --git a/arch/arm/src/samv7/sam_rswdt.c b/arch/arm/src/samv7/sam_rswdt.c index 61593a54c4..20ea3c2183 100644 --- a/arch/arm/src/samv7/sam_rswdt.c +++ b/arch/arm/src/samv7/sam_rswdt.c @@ -648,7 +648,7 @@ static int sam_ioctl(FAR struct watchdog_lowerhalf_s *lower, int cmd, ****************************************************************************/ /**************************************************************************** - * Name: up_wdginitialize + * Name: sam_rswdt_initialize * * Description: * Initialize the RSWDT watchdog time. The watchdog timer is initialized and @@ -663,7 +663,7 @@ static int sam_ioctl(FAR struct watchdog_lowerhalf_s *lower, int cmd, * ****************************************************************************/ -int up_wdginitialize(void) +int sam_rswdt_initialize(void) { FAR struct sam_lowerhalf_s *priv = &g_wdtdev; diff --git a/arch/arm/src/samv7/sam_wdt.c b/arch/arm/src/samv7/sam_wdt.c index 3f8e858ead..8d63806682 100644 --- a/arch/arm/src/samv7/sam_wdt.c +++ b/arch/arm/src/samv7/sam_wdt.c @@ -648,7 +648,7 @@ static int sam_ioctl(FAR struct watchdog_lowerhalf_s *lower, int cmd, ****************************************************************************/ /**************************************************************************** - * Name: up_wdginitialize + * Name: sam_wdt_initialize * * Description: * Initialize the WDT watchdog time. The watchdog timer is initialized and @@ -663,7 +663,7 @@ static int sam_ioctl(FAR struct watchdog_lowerhalf_s *lower, int cmd, * ****************************************************************************/ -int up_wdginitialize(void) +int sam_wdt_initialize(void) { FAR struct sam_lowerhalf_s *priv = &g_wdtdev; diff --git a/arch/arm/src/samv7/sam_wdt.h b/arch/arm/src/samv7/sam_wdt.h index d5d7c50728..f5ee97a247 100644 --- a/arch/arm/src/samv7/sam_wdt.h +++ b/arch/arm/src/samv7/sam_wdt.h @@ -66,6 +66,46 @@ extern "C" * Public Functions ****************************************************************************/ +/**************************************************************************** + * Name: sam_wdt_initialize() + * + * Description: + * Perform architecture-specific initialization of the WDT hardware. + * This interface should be provided by all configurations using + * to avoid exposed platform-dependent logic. + * + * At a minimum, this function should call watchdog_register(). + * + * Input parameters: + * None + * + * Returned Value: + * Zero on success; a negated errno value on failure. + * + ****************************************************************************/ + +int sam_wdt_initialize(void); + +/**************************************************************************** + * Name: sam_rswdt_initialize() + * + * Description: + * Perform architecture-specific initialization of the RSWDT hardware. + * This interface should be provided by all configurations using + * to avoid exposed platform-dependent logic. + * + * At a minimum, this function should call watchdog_register(). + * + * Input parameters: + * None + * + * Returned Value: + * Zero on success; a negated errno value on failure. + * + ****************************************************************************/ + +int sam_rswdt_initialize(void); + #undef EXTERN #if defined(__cplusplus) } -- GitLab From 8ace1e3be25abba9fe4e027f993623b994b1a273 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 18 May 2016 19:48:42 -0600 Subject: [PATCH 191/307] Remove all implementatinos of up_wdginitialize(). It is no longer used. --- configs/cloudctrl/src/Makefile | 4 -- configs/fire-stm32v2/src/Makefile | 4 -- configs/hymini-stm32v/src/Makefile | 4 -- configs/maple/src/Makefile | 4 -- configs/mikroe-stm32f4/src/Makefile | 4 -- .../src/sam4s-xplained-pro.h | 18 ++++++++- configs/sam4s-xplained-pro/src/sam_boot.c | 4 +- configs/sam4s-xplained-pro/src/sam_wdt.c | 6 +-- configs/shenzhou/src/Makefile | 4 -- configs/spark/src/Makefile | 4 -- configs/stm3210e-eval/src/Makefile | 4 -- configs/stm3220g-eval/src/Makefile | 4 -- configs/stm3240g-eval/src/Makefile | 4 -- configs/stm32_tiny/src/Makefile | 4 -- configs/stm32f3discovery/src/Makefile | 4 -- configs/stm32f4discovery/src/Makefile | 4 -- configs/stm32ldiscovery/src/Makefile | 4 -- include/nuttx/timers/watchdog.h | 37 +------------------ 18 files changed, 24 insertions(+), 97 deletions(-) diff --git a/configs/cloudctrl/src/Makefile b/configs/cloudctrl/src/Makefile index f18f63eba3..f0ee184e64 100644 --- a/configs/cloudctrl/src/Makefile +++ b/configs/cloudctrl/src/Makefile @@ -73,10 +73,6 @@ ifeq ($(CONFIG_ADC),y) CSRCS += stm32_adc.c endif -ifeq ($(CONFIG_WATCHDOG),y) -CSRCS += stm32_watchdog.c -endif - ifeq ($(CONFIG_STM32_PHYINIT),y) CSRCS += stm32_phyinit.c endif diff --git a/configs/fire-stm32v2/src/Makefile b/configs/fire-stm32v2/src/Makefile index c9c97c43e8..ea45dc7623 100644 --- a/configs/fire-stm32v2/src/Makefile +++ b/configs/fire-stm32v2/src/Makefile @@ -72,8 +72,4 @@ ifeq ($(CONFIG_USBDEV_COMPOSITE),y) CSRCS += stm32_composite.c endif -ifeq ($(CONFIG_WATCHDOG),y) -CSRCS += stm32_watchdog.c -endif - include $(TOPDIR)/configs/Board.mk diff --git a/configs/hymini-stm32v/src/Makefile b/configs/hymini-stm32v/src/Makefile index f4a6dc2603..f709a57b8d 100644 --- a/configs/hymini-stm32v/src/Makefile +++ b/configs/hymini-stm32v/src/Makefile @@ -59,8 +59,4 @@ ifeq ($(CONFIG_USBMSC),y) CSRCS += stm32_usbmsc.c endif -ifeq ($(CONFIG_WATCHDOG),y) -CSRCS += stm32_watchdog.c -endif - include $(TOPDIR)/configs/Board.mk diff --git a/configs/maple/src/Makefile b/configs/maple/src/Makefile index 99f214e5ea..b919138108 100644 --- a/configs/maple/src/Makefile +++ b/configs/maple/src/Makefile @@ -52,10 +52,6 @@ endif ifeq ($(CONFIG_USBMSC),y) endif -ifeq ($(CONFIG_WATCHDOG),y) -CSRCS += stm32_watchdog.c -endif - ifeq ($(CONFIG_LIB_BOARDCTL),y) CSRCS += stm32_appinit.c endif diff --git a/configs/mikroe-stm32f4/src/Makefile b/configs/mikroe-stm32f4/src/Makefile index d19eda17f7..3fba8bdc71 100644 --- a/configs/mikroe-stm32f4/src/Makefile +++ b/configs/mikroe-stm32f4/src/Makefile @@ -58,10 +58,6 @@ ifeq ($(CONFIG_QENCODER),y) CSRCS += stm32_qencoder.c endif -ifeq ($(CONFIG_WATCHDOG),y) -CSRCS += stm32_watchdog.c -endif - ifeq ($(CONFIG_LIB_BOARDCTL),y) CSRCS += stm32_appinit.c endif diff --git a/configs/sam4s-xplained-pro/src/sam4s-xplained-pro.h b/configs/sam4s-xplained-pro/src/sam4s-xplained-pro.h index 9cd4a9ab68..791be9c596 100644 --- a/configs/sam4s-xplained-pro/src/sam4s-xplained-pro.h +++ b/configs/sam4s-xplained-pro/src/sam4s-xplained-pro.h @@ -1,7 +1,7 @@ /************************************************************************************ * configs/sam4s-xplained-pro/src/sam4s-xplained-pro.h * - * Copyright (C) 2014 Gregory Nutt. All rights reserved. + * Copyright (C) 2014, 2016 Gregory Nutt. All rights reserved. * Authors: Gregory Nutt * Bob Doiron * @@ -229,5 +229,21 @@ int sam_timerinitialize(void); # define sam_timerinitialize() (0) #endif +/**************************************************************************** + * Name: sam_watchdog_initialize() + * + * Description: + * Perform architecture-specific initialization of the Watchdog hardware. + * + * Input parameters: + * None + * + * Returned Value: + * Zero on success; a negated errno value on failure. + * + ****************************************************************************/ + +int sam_watchdog_initialize(void); + #endif /* __ASSEMBLY__ */ #endif /* __CONFIGS_SAM4S_XPLAINED_SRC_SAM4S_XPLAINED_H */ diff --git a/configs/sam4s-xplained-pro/src/sam_boot.c b/configs/sam4s-xplained-pro/src/sam_boot.c index f8caef92c0..ce7ae2fad3 100644 --- a/configs/sam4s-xplained-pro/src/sam_boot.c +++ b/configs/sam4s-xplained-pro/src/sam_boot.c @@ -1,7 +1,7 @@ /************************************************************************************ * configs/sam4s-xplained-pro/src/sam_boot.c * - * Copyright (C) 2014-2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2014-2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -97,7 +97,7 @@ void board_initialize(void) #if (defined(CONFIG_SAM34_WDT) && !defined(CONFIG_WDT_DISABLE_ON_RESET)) /* Configure watchdog timer and enable kicker kernel thread. */ - DEBUGASSERT(up_wdginitialize() >= 0); + DEBUGASSERT(sam_watchdog_initialize() >= 0); #endif #ifndef CONFIG_ARCH_LEDS diff --git a/configs/sam4s-xplained-pro/src/sam_wdt.c b/configs/sam4s-xplained-pro/src/sam_wdt.c index 5ce6cc25df..4696db19ee 100644 --- a/configs/sam4s-xplained-pro/src/sam_wdt.c +++ b/configs/sam4s-xplained-pro/src/sam_wdt.c @@ -1,7 +1,7 @@ /************************************************************************************ * configs/sam4s-xplained-pro/src/up_watchdog.c * - * Copyright (C) 2014 Gregory Nutt. All rights reserved. + * Copyright (C) 2014, 2016 Gregory Nutt. All rights reserved. * Authors: Gregory Nutt * Bob Doiron * @@ -164,7 +164,7 @@ errout: #endif /**************************************************************************** - * Name: up_wdginitialize() + * Name: sam_watchdog_initialize() * * Description: * Perform architecture-specific initialization of the Watchdog hardware. @@ -173,7 +173,7 @@ errout: * ****************************************************************************/ -int up_wdginitialize(void) +int sam_watchdog_initialize(void) { #if (defined(CONFIG_SAM34_WDT) && !defined(CONFIG_WDT_DISABLE_ON_RESET)) int fd; diff --git a/configs/shenzhou/src/Makefile b/configs/shenzhou/src/Makefile index 15458ca938..beecc84582 100644 --- a/configs/shenzhou/src/Makefile +++ b/configs/shenzhou/src/Makefile @@ -80,10 +80,6 @@ ifeq ($(CONFIG_ADC),y) CSRCS += stm32_adc.c endif -ifeq ($(CONFIG_WATCHDOG),y) -CSRCS += stm32_watchdog.c -endif - # NOTE: SSD1289 is not supported on the board ifeq ($(CONFIG_LCD_SSD1289),y) diff --git a/configs/spark/src/Makefile b/configs/spark/src/Makefile index 5a375120db..51ee3a0280 100644 --- a/configs/spark/src/Makefile +++ b/configs/spark/src/Makefile @@ -69,10 +69,6 @@ ifeq ($(CONFIG_WL_CC3000),y) CSRCS += stm32_wireless.c endif -ifeq ($(CONFIG_WATCHDOG),y) -CSRCS += stm32_watchdog.c -endif - ifeq ($(CONFIG_CC3000_PROBES),) CSRCS += stm32_io.c endif diff --git a/configs/stm3210e-eval/src/Makefile b/configs/stm3210e-eval/src/Makefile index 301f0eed9d..dc282c48b6 100644 --- a/configs/stm3210e-eval/src/Makefile +++ b/configs/stm3210e-eval/src/Makefile @@ -68,10 +68,6 @@ ifeq ($(CONFIG_CAN),y) CSRCS += stm32_can.c endif -ifeq ($(CONFIG_WATCHDOG),y) -CSRCS += stm32_watchdog.c -endif - ifeq ($(CONFIG_ARCH_CUSTOM_PMINIT),y) CSRCS += stm32_pm.c endif diff --git a/configs/stm3220g-eval/src/Makefile b/configs/stm3220g-eval/src/Makefile index fe48b22317..a823e9388e 100644 --- a/configs/stm3220g-eval/src/Makefile +++ b/configs/stm3220g-eval/src/Makefile @@ -72,10 +72,6 @@ ifeq ($(CONFIG_LIB_BOARDCTL),y) CSRCS += stm32_appinit.c endif -ifeq ($(CONFIG_WATCHDOG),y) -CSRCS += stm32_watchdog.c -endif - ifeq ($(CONFIG_INPUT_STMPE811),y) CSRCS += stm32_stmpe811.c endif diff --git a/configs/stm3240g-eval/src/Makefile b/configs/stm3240g-eval/src/Makefile index 8035987fb3..28b1b4f702 100644 --- a/configs/stm3240g-eval/src/Makefile +++ b/configs/stm3240g-eval/src/Makefile @@ -77,10 +77,6 @@ ifeq ($(CONFIG_ARCH_FPU),y) CSRCS += stm32_ostest.c endif -ifeq ($(CONFIG_WATCHDOG),y) -CSRCS += stm32_watchdog.c -endif - ifeq ($(CONFIG_INPUT_STMPE811),y) CSRCS += stm32_stmpe811.c endif diff --git a/configs/stm32_tiny/src/Makefile b/configs/stm32_tiny/src/Makefile index a29dd097b2..14ee306846 100644 --- a/configs/stm32_tiny/src/Makefile +++ b/configs/stm32_tiny/src/Makefile @@ -51,8 +51,4 @@ ifeq ($(CONFIG_LIB_BOARDCTL),y) CSRCS += stm32_appinit.c endif -ifeq ($(CONFIG_WATCHDOG),y) -CSRCS += stm32_watchdog.c -endif - include $(TOPDIR)/configs/Board.mk diff --git a/configs/stm32f3discovery/src/Makefile b/configs/stm32f3discovery/src/Makefile index cac567aa4c..119bca3f59 100644 --- a/configs/stm32f3discovery/src/Makefile +++ b/configs/stm32f3discovery/src/Makefile @@ -60,10 +60,6 @@ ifeq ($(CONFIG_QENCODER),y) CSRCS += stm32_qencoder.c endif -ifeq ($(CONFIG_WATCHDOG),y) -CSRCS += stm32_watchdog.c -endif - ifeq ($(CONFIG_LIB_BOARDCTL),y) CSRCS += stm32_appinit.c endif diff --git a/configs/stm32f4discovery/src/Makefile b/configs/stm32f4discovery/src/Makefile index b607925bce..58d3e7c487 100644 --- a/configs/stm32f4discovery/src/Makefile +++ b/configs/stm32f4discovery/src/Makefile @@ -92,10 +92,6 @@ ifeq ($(CONFIG_QENCODER),y) CSRCS += stm32_qencoder.c endif -ifeq ($(CONFIG_WATCHDOG),y) -CSRCS += stm32_watchdog.c -endif - ifeq ($(CONFIG_NSH_LIBRARY),y) CSRCS += stm32_appinit.c endif diff --git a/configs/stm32ldiscovery/src/Makefile b/configs/stm32ldiscovery/src/Makefile index 7e17afc3d6..84f146b7cb 100644 --- a/configs/stm32ldiscovery/src/Makefile +++ b/configs/stm32ldiscovery/src/Makefile @@ -60,10 +60,6 @@ ifeq ($(CONFIG_QENCODER),y) CSRCS += stm32_qencoder.c endif -ifeq ($(CONFIG_WATCHDOG),y) -CSRCS += stm32_watchdog.c -endif - ifeq ($(CONFIG_LIB_BOARDCTL),y) CSRCS += stm32_appinit.c endif diff --git a/include/nuttx/timers/watchdog.h b/include/nuttx/timers/watchdog.h index a9ebc1f810..9c7d9001fa 100644 --- a/include/nuttx/timers/watchdog.h +++ b/include/nuttx/timers/watchdog.h @@ -203,9 +203,6 @@ extern "C" #define EXTERN extern #endif -/**************************************************************************** - * "Upper-Half" Watchdog Driver Interfaces - ****************************************************************************/ /**************************************************************************** * Name: watchdog_register * @@ -217,9 +214,8 @@ extern "C" * When this function is called, the "lower half" driver should be in the * disabled state (as if the stop() method had already been called). * - * NOTE: Normally, this function would not be called by application code. - * Rather it is called indirectly through the architecture-specific - * interface up_wdginitialize() described below. + * NOTE: This function would not be called by application code. Rather it is + * called indirectly through the architecture-specific interfaces. * * Input parameters: * dev path - The full path to the driver to be registers in the NuttX @@ -256,35 +252,6 @@ FAR void *watchdog_register(FAR const char *path, void watchdog_unregister(FAR void *handle); -/**************************************************************************** - * Platform-Independent "Lower-Half" Watchdog Driver Interfaces - ****************************************************************************/ - -/**************************************************************************** - * Architecture-specific Application Interfaces - ****************************************************************************/ - -/**************************************************************************** - * Name: up_wdginitialize() - * - * Description: - * Perform architecture-specific initialization of the Watchdog hardware. - * This interface should be provided by all configurations using - * to avoid exposed platform-dependent logic. - * - * At a minimum, this function should call watchdog_register() which is - * described above. - * - * Input parameters: - * None - * - * Returned Value: - * Zero on success; a negated errno value on failure. - * - ****************************************************************************/ - -int up_wdginitialize(void); - #undef EXTERN #ifdef __cplusplus } -- GitLab From 66233060e2a9be3b649a74c9afc6ba2bd0ab0eea Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 19 May 2016 07:25:52 -0600 Subject: [PATCH 192/307] Update README file --- configs/stm32f103-minimum/README.txt | 187 ++++++++++++++++++--------- 1 file changed, 123 insertions(+), 64 deletions(-) diff --git a/configs/stm32f103-minimum/README.txt b/configs/stm32f103-minimum/README.txt index cd99063a34..d0a974dbcd 100644 --- a/configs/stm32f103-minimum/README.txt +++ b/configs/stm32f103-minimum/README.txt @@ -8,32 +8,91 @@ This board is available from several vendors on the net, and may be sold under different names or no name at all. It is based on a STM32F103C8T6 and has a DIP-40 form-factor. -This is the board pinout based on its form-factor: - - USB - ___ ------/ _ \----- -|B12 GND| -|B13 GND| -|B14 3.3V| -|B15 RST| -|A8 B11| -|A9 B10| -|A10 B1| -|A11 B0| -|A12 A7| -|A15 A6| -|B3 A5| -|B4 A4| -|B5 A3| -|B6 A2| -|B7 A1| -|B8 A0| -|B9 C15| -|5V C14| -|GND C13| -|3.3V VB| -|_____________| +There are two versions of very similar boards: One is red and one is +blue. See http://www.stm32duino.com/viewtopic.php?f=28&t=117 + +The Red Board: + + Good things about the red board: + + - 1.5k pull up resistor on the PA12 pin (USB D+) which you can + programatically drag down for automated USB reset. + - large power capacitors and LDO power. + + Problems with the red board: + + - Silk screen is barely readable, the text is chopped off on some of + the pins + - USB connector only has two anchor points and it is directly soldered + on the surface + - Small reset button with hardly any resistance + +The Blue Board: + + Good things about the blue board: + + - Four soldered anchor point on the USB connector. What you can't tell + from this picture is that there is a notch in the pcb board and the USB + connector sits down inside it some. This provides some lateral stability + that takes some of the stress off the solder points. + - It has nice clear readable silkscreen printing. + - It also a larger reset button. + + Problems with the blue board: + + - Probably won't work as a USB device if it has a 10k pull-up on PA12. You + have to check the pull up on PA12 (USB D+). If it has a 10k pull-up + resistor, you will need to replace it with a 1.5k one to use the native + USB. + - Puny voltage regulator probably 100mA. + + A schematic for the blue board is available here: + http://www.stm32duino.com/download/file.php?id=276 + +Both Boards: + + Nice features common to both: + + - SWD pins broken out and easily connected (VCC, GND, SWDIO, SWCLK) + - USB 5V is broken out with easy access. + - User LED on PC13 + - Power LED + - You can probably use more flash (128k) than officially documented for + the chip (stm32f103c8t6 64k), I was able to load 115k of flash on mine + and it seemed to work. + + Problems with both boards: + + - No preloaded bootloader * to me this isn't really a problem as the + entire 64k of flash is available for use + - No user button + +This is the board pinout based on its form-factor for the Blue board: + + USB + ___ + -----/ _ \----- + |B12 GND| + |B13 GND| + |B14 3.3V| + |B15 RST| + |A8 B11| + |A9 B10| + |A10 B1| + |A11 B0| + |A12 A7| + |A15 A6| + |B3 A5| + |B4 A4| + |B5 A3| + |B6 A2| + |B7 A1| + |B8 A0| + |B9 C15| + |5V C14| + |GND C13| + |3.3V VB| + |_____________| Contents ======== @@ -57,24 +116,24 @@ succesfully, and is blinking on panic / assertion failed. UARTs ===== -UART/USART PINS ---------------- - -USART1 - RX PA10 - TX PA9 -USART2 - CK PA4 - CTS PA0 - RTS PA1 - RX PA3 - TX PA2 -USART3 - CK PB12 - CTS PB13 - RTS PB14 - RX PB11 - TX PB10 + UART/USART PINS + --------------- + + USART1 + RX PA10 + TX PA9 + USART2 + CK PA4 + CTS PA0 + RTS PA1 + RX PA3 + TX PA2 + USART3 + CK PB12 + CTS PB13 + RTS PB14 + RX PB11 + TX PB10 Default USART/UART Configuration -------------------------------- @@ -84,26 +143,26 @@ USART1 (RX & TX only) is available through pins PA9 (TX) and PA10 (RX). Timer Inputs/Outputs ==================== -TIM1 - CH1 PA8 - CH2 PA9* - CH3 PA10* - CH4 PA11* -TIM2 - CH1 PA0*, PA15, PA5 - CH2 PA1, PB3 - CH3 PA2, PB10* - CH4 PA3, PB11 -TIM3 - CH1 PA6, PB4 - CH2 PA7, PB5* - CH3 PB0 - CH4 PB1* -TIM4 - CH1 PB6* - CH2 PB7 - CH3 PB8 - CH4 PB9* + TIM1 + CH1 PA8 + CH2 PA9* + CH3 PA10* + CH4 PA11* + TIM2 + CH1 PA0*, PA15, PA5 + CH2 PA1, PB3 + CH3 PA2, PB10* + CH4 PA3, PB11 + TIM3 + CH1 PA6, PB4 + CH2 PA7, PB5* + CH3 PB0 + CH4 PB1* + TIM4 + CH1 PB6* + CH2 PB7 + CH3 PB8 + CH4 PB9* * Indicates pins that have other on-board functions and should be used only with care (See board datasheet). -- GitLab From c0653dc238febf1a2db4d7b9960a8e3c7f9b246d Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 19 May 2016 07:51:06 -0600 Subject: [PATCH 193/307] Update ChangeLog --- ChangeLog | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 102457e8d1..91871e15aa 100755 --- a/ChangeLog +++ b/ChangeLog @@ -11732,4 +11732,21 @@ * arch/arm/src/imx6 and configs/sabre-6quad: The basic i.MX6 port is complete. This is a very minimal port at present and probably still has some as-of-yet-undiscovered issues (2016-05-17). - + * arch/*/Makefile: Add definitions that can be overrided to use GCC + instead of LD in the final link. From Paul Alexander Patience + (2016-05-18) . + * arch/arm/src/stm32, stm32l4, and stm32f7 serial: Add support for + compliant BSD-style breaks. From David Sidrane (2016-05-18). + * enter/leave_critical_section() may attempt to access task lists before + they have been initialized in the SMP configuration (2016-05-18). + * configs/stm32f103-minimum: Add support for this minimual STM32F103CBT6 + "blue" board. From Alan Carvalho de Assis (2016-05-18). + * arch/arm/src/sam* Watchdogs: Rename up_wdginitialize() to something + more appropriate for an internal, MCU-specific function (2016-05-18). + * configs/*/src/*_watchdog.c: Remove all implementations of + up_wdginitialize() which was only used by apps/examples/watchdog. + That internal OS function is no longer called from application code. + If you want to use the watchdog example, you will need to configure + the watchdog driver by calling the appropriate, MCU-specific driver + configuration function from your board initialization logic + (2016-05-18). -- GitLab From 4c837d6e86861565e065ae9900640992ae5a76eb Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 19 May 2016 07:59:31 -0600 Subject: [PATCH 194/307] Update README --- configs/sabre-6quad/README.txt | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/configs/sabre-6quad/README.txt b/configs/sabre-6quad/README.txt index d265d9907c..2447e58a75 100644 --- a/configs/sabre-6quad/README.txt +++ b/configs/sabre-6quad/README.txt @@ -67,6 +67,10 @@ At this point, I would say that the basic NSH port is complete. that the NSH configuration works with CONFIG_SMP_NCPUS=1. Not a very interesting case, but this does exercise a lot of the basic SMP logic. +When more than one CPU is configured, then there are certain failures that +appear to be stack corruption problem. See the open issues below under +SMP. + Platform Features ================= @@ -457,6 +461,13 @@ be enabled with the following configuration settings: CONFIG_SMP_NCPUS=4 CONFIG_SMP_IDLETHREAD_STACKSIZE=2048 +Open Issues: + +1. Currently all device interrupts are handled on CPU0 only. Critical sections will + attempt to disable interrupts but will now disable interrupts only on the current + CPU (which may not be CPU0). Perhaps that should be a spinlock to prohibit + execution of interrupts on CPU0 when other CPUs are in a critical section? + Configurations ============== -- GitLab From 8af8d9fb050317eb561e03018ae5cbb579632e63 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 19 May 2016 10:03:51 -0600 Subject: [PATCH 195/307] Update README --- configs/nucleo-144/README.txt | 46 ++++++++++++++++++++++++++--------- 1 file changed, 34 insertions(+), 12 deletions(-) diff --git a/configs/nucleo-144/README.txt b/configs/nucleo-144/README.txt index b826f78680..fabe68c90c 100644 --- a/configs/nucleo-144/README.txt +++ b/configs/nucleo-144/README.txt @@ -1,23 +1,44 @@ README ====== -This README discusses issues unique to NuttX configurations for the ST -Nucleo F746ZG board from ST Micro. See - -http://www.st.com/web/catalog/tools/FM116/CL1620/SC959/SS1532/LN1847/PF261636 - -The Nucleo F746ZG order part number is NUCLEO-F746ZG. It is clumped together -under the STM32 Nucleo-144 board family. This does provide uniformity in the -documentation from ST and should allow us to quickly change configurations -but just cloning this configuration and changing the CPU choice and board -init. Unfortunately for the developer, the CPU specific information must be -extracted from the common information in the documentation. +This README discusses issues unique to NuttX configurations for the STMicro +Nucleo-144 board. See + +http://www.st.com/content/ccc/resource/technical/document/data_brief/group0/7b/df/1d/e9/64/55/43/8d/DM00247910/files/DM00247910.pdf/jcr:content/translations/en.DM00247910.pdf + +The Nucleo-144 is a standard board for use with several STM32 parts in the +LQFP144 package. Variants include + + STM32 Part Board Variant Name + ------------- ------------------ + STM32F207ZGT6 NUCLEO-F207ZG + STM32F303ZET6 NUCLEO-F303ZE + STM32F429ZIT6 NUCLEO-F429ZI + STM32F446ZET6 NUCLEO-F446ZE + STM32F746ZGT6 NUCLEO-F746ZG + STM32F767ZIT6 NUCLEO-F767ZI + ------------- ------------------ + +This directory is intended to support all Nucleo-144 variants since the +boards are identical, differing only in the installed part. This common +board design provides uniformity in the documentation from ST and should +allow us to quickly change configurations by just cloning a configuration +and changing the CPU choice and board initialization. Unfortunately for +the developer, the CPU specific information must be extracted from the +common information in the documentation. Please read the User Manaul UM1727: Getting started with STM32 Nucleo board software development tools and take note of the Powering options for the board (6.3 Power supply and power selection) and the Solder bridges based hardware configuration changes that are configurable (6.11 Solder bridges). +At present only the STNucleo F746ZG board from ST Micro is supported. See + +http://www.st.com/content/st_com/en/products/evaluation-tools/product-evaluation-tools/mcu-eval-tools/stm32-mcu-eval-tools/stm32-mcu-nucleo/nucleo-f746zg.html + +The Nucleo F746ZG order part number is NUCLEO-F746ZG. It is one member of +the STM32 Nucleo-144 board family. + NUCLEO-F746ZG: Microprocessor: STM32F746ZGT6 Core: ARM 32-bit Cortex®-M7 CPU with FPU, @@ -62,7 +83,8 @@ Board features: Expansion I/F ST Zio an Extended Ardino and Morpho Headers -See https://developer.mbed.org/platforms/ST-Nucleo-F746ZG form additional information about this board. +See https://developer.mbed.org/platforms/ST-Nucleo-F746ZG form additional +information about this board. Contents ======== -- GitLab From 34c0c7b54cfecfee73473e9161258491fef2119e Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 19 May 2016 10:20:40 -0600 Subject: [PATCH 196/307] Another update to README --- configs/nucleo-144/README.txt | 66 +++++++++++++++++++---------------- 1 file changed, 36 insertions(+), 30 deletions(-) diff --git a/configs/nucleo-144/README.txt b/configs/nucleo-144/README.txt index fabe68c90c..f87f421a75 100644 --- a/configs/nucleo-144/README.txt +++ b/configs/nucleo-144/README.txt @@ -6,6 +6,23 @@ Nucleo-144 board. See http://www.st.com/content/ccc/resource/technical/document/data_brief/group0/7b/df/1d/e9/64/55/43/8d/DM00247910/files/DM00247910.pdf/jcr:content/translations/en.DM00247910.pdf +Contents +======== + + - Nucleo-144 Boards + - Nucleo F746ZG + - Development Environment + - IDEs + - Basic configuaration & build steps + - Hardware + - Button + - LED + - U[S]ARTs and Serial Consoles + - Configurations + +Nucleo-144 Boards: +================= + The Nucleo-144 is a standard board for use with several STM32 parts in the LQFP144 package. Variants include @@ -32,14 +49,29 @@ software development tools and take note of the Powering options for the board (6.3 Power supply and power selection) and the Solder bridges based hardware configuration changes that are configurable (6.11 Solder bridges). -At present only the STNucleo F746ZG board from ST Micro is supported. See +Common Board Features: +--------------------- + + Peripherals: 8 leds, 2 push button (3 LEDs, 1 button) under software + control + Debug: STLINK/V2-1 debugger/programmer Uses a STM32F103CB to + provide a ST-Link for programming, debug similar to the + OpenOcd FTDI function - USB to JTAG front-end. + + Expansion I/F ST Zio and Extended Ardino and Morpho Headers + +Nucleo F746ZG +============= + +At present only the ST Nucleo F746ZG board from ST Micro is supported. See http://www.st.com/content/st_com/en/products/evaluation-tools/product-evaluation-tools/mcu-eval-tools/stm32-mcu-eval-tools/stm32-mcu-nucleo/nucleo-f746zg.html The Nucleo F746ZG order part number is NUCLEO-F746ZG. It is one member of the STM32 Nucleo-144 board family. -NUCLEO-F746ZG: +NUCLEO-F746ZG Features: +---------------------- Microprocessor: STM32F746ZGT6 Core: ARM 32-bit Cortex®-M7 CPU with FPU, L1-cache: 4KB data cache and 4KB instruction cache, up to @@ -61,43 +93,21 @@ NUCLEO-F746ZG: clock QSPI: Dual mode Quad-SPI SAIs: 2 Serial Audio Interfaces - CAN: 2 X CAN interface + CAN: 2 X CAN interface SDMMC interface SPDIFRX interface USB: USB 2.0 full-speed device/host/OTG controller with on-chip PHY 10/100 Ethernet: MAC with dedicated DMA: supports IEEE 1588v2 hardware, - MII/RMII + MII/RMII Camera Interface: 8/14 Bit CRC calculation unit TRG: True random number generator RTC -Board features: - - Peripherals: 8 leds, 2 push button (3 LEDs, 1 button) under software - control - Debug: STLINK/V2-1 debugger/programmer Uses a STM32F103CB to - provide a ST-Link for programming, debug similar to the - OpenOcd FTDI function - USB to JTAG front-end. - - Expansion I/F ST Zio an Extended Ardino and Morpho Headers - See https://developer.mbed.org/platforms/ST-Nucleo-F746ZG form additional information about this board. -Contents -======== - - - Development Environment - - IDEs - - Basic configuaration & build steps - - Hardware - - Button - - LED - - U[S]ARTs and Serial Consoles - - Configurations - Development Environment ======================= @@ -111,7 +121,6 @@ Development Environment If you change the default toolchain, then you may also have to modify the PATH in the setenv.h file if your make cannot find the tools. - IDEs ==== @@ -126,7 +135,6 @@ IDEs makefile project in order to work with Windows (Google for "Eclipse Cygwin" - there is a lot of help on the internet). - Basic configuration & build steps ================================== @@ -168,7 +176,6 @@ Hardware In that Case, You will need to edit the include/board.h to select different U[S]ART and / or pin selections. - Serial ------ @@ -283,7 +290,6 @@ Serial Consoles As shipped, SB4 and SB7 are open and SB5 and SB6 closed, so the virtual COM port is enabled. - Configurations ============== -- GitLab From 8aae953f673713a053ca9f558d69c0bfcba3f9c3 Mon Sep 17 00:00:00 2001 From: Sebastien Lorquet Date: Thu, 19 May 2016 19:13:04 +0200 Subject: [PATCH 197/307] CAN support for STM32L4 --- arch/arm/src/stm32l4/Kconfig | 24 + arch/arm/src/stm32l4/Make.defs | 7 +- arch/arm/src/stm32l4/chip/stm32l4_can.h | 448 +++++++ arch/arm/src/stm32l4/stm32l4_can.c | 1592 +++++++++++++++++++++++ arch/arm/src/stm32l4/stm32l4_can.h | 142 ++ 5 files changed, 2212 insertions(+), 1 deletion(-) create mode 100644 arch/arm/src/stm32l4/chip/stm32l4_can.h create mode 100644 arch/arm/src/stm32l4/stm32l4_can.c diff --git a/arch/arm/src/stm32l4/Kconfig b/arch/arm/src/stm32l4/Kconfig index f334ca32bc..4f43fa9a0d 100644 --- a/arch/arm/src/stm32l4/Kconfig +++ b/arch/arm/src/stm32l4/Kconfig @@ -843,4 +843,28 @@ config STM32L4_I2C_DUTY16_9 endmenu +menu "CAN driver configuration" + depends on STM32L4_CAN1 + +config CAN1_BAUD + int "CAN1 BAUD" + default 250000 + depends on STM32L4_CAN1 + ---help--- + CAN1 BAUD rate. Required if STM32L4_CAN1 is defined. + +config CAN_TSEG1 + int "TSEG1 quanta" + default 6 + ---help--- + The number of CAN time quanta in segment 1. Default: 6 + +config CAN_TSEG2 + int "TSEG2 quanta" + default 7 + ---help--- + The number of CAN time quanta in segment 2. Default: 7 +endmenu + + endif # ARCH_CHIP_STM32L4 diff --git a/arch/arm/src/stm32l4/Make.defs b/arch/arm/src/stm32l4/Make.defs index 561cfedf28..84acfadd1a 100644 --- a/arch/arm/src/stm32l4/Make.defs +++ b/arch/arm/src/stm32l4/Make.defs @@ -1,7 +1,7 @@ ############################################################################ # arch/arm/src/stm32l4/Make.defs # -# Copyright (C) 2015 Sebastien Lorquet. All rights reserved. +# Copyright (C) 2015-2016 Sebastien Lorquet. All rights reserved. # Author: Sebastien Lorquet # # Redistribution and use in source and binary forms, with or without @@ -161,3 +161,8 @@ endif ifeq ($(CONFIG_STM32L4_QSPI),y) CHIP_CSRCS += stm32l4_qspi.c endif + +ifeq ($(CONFIG_STM32L4_CAN),y) +CHIP_CSRCS += stm32l4_can.c +endif + diff --git a/arch/arm/src/stm32l4/chip/stm32l4_can.h b/arch/arm/src/stm32l4/chip/stm32l4_can.h new file mode 100644 index 0000000000..4a5034f6da --- /dev/null +++ b/arch/arm/src/stm32l4/chip/stm32l4_can.h @@ -0,0 +1,448 @@ +/************************************************************************************ + * arch/arm/src/stm32l4/chip/stm32l4_can.h + * + * Copyright (C) 2009, 2011, 2013 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ************************************************************************************/ + +#ifndef __ARCH_ARM_SRC_STM32L4_CHIP_STM32L4_CAN_H +#define __ARCH_ARM_SRC_STM32L4_CHIP_STM32L4_CAN_H + +/************************************************************************************ + * Included Files + ************************************************************************************/ + +#include + +#include "chip.h" + +/************************************************************************************ + * Pre-processor Definitions + ************************************************************************************/ + +/* 3 TX mailboxes */ + +#define CAN_TXMBOX1 0 +#define CAN_TXMBOX2 1 +#define CAN_TXMBOX3 2 + +/* 2 RX mailboxes */ + +#define CAN_RXMBOX1 0 +#define CAN_RXMBOX2 1 + +/* Number of filters depends on silicon */ + +#if defined(CONFIG_STM32L4_CONNECTIVITYLINE) || defined(CONFIG_STM32L4_STM32F20XX) || \ + defined(CONFIG_STM32L4_STM32F30XX) || defined(CONFIG_STM32L4_STM32F40XX) +# define CAN_NFILTERS 28 +#else +# define CAN_NFILTERS 14 +#endif + +/* Register Offsets *****************************************************************/ + +/* CAN control and status registers */ + +#define STM32L4_CAN_MCR_OFFSET 0x0000 /* CAN master control register */ +#define STM32L4_CAN_MSR_OFFSET 0x0004 /* CAN master status register */ +#define STM32L4_CAN_TSR_OFFSET 0x0008 /* CAN transmit status register */ +#define STM32L4_CAN_RF0R_OFFSET 0x000c /* CAN receive FIFO 0 register */ +#define STM32L4_CAN_RF1R_OFFSET 0x0010 /* CAN receive FIFO 1 register */ +#define STM32L4_CAN_IER_OFFSET 0x0014 /* CAN interrupt enable register */ +#define STM32L4_CAN_ESR_OFFSET 0x0018 /* CAN error status register */ +#define STM32L4_CAN_BTR_OFFSET 0x001c /* CAN bit timing register */ + +/* CAN mailbox registers (3 TX and 2 RX) */ + +#define STM32L4_CAN_TIR_OFFSET(m) (0x0180+((m)<<4)) +#define STM32L4_CAN_TI0R_OFFSET 0x0180 /* TX mailbox identifier register 0 */ +#define STM32L4_CAN_TI1R_OFFSET 0x0190 /* TX mailbox identifier register 1 */ +#define STM32L4_CAN_TI2R_OFFSET 0x01a0 /* TX mailbox identifier register 2 */ + +#define STM32L4_CAN_TDTR_OFFSET(m) (0x0184+((m)<<4)) +#define STM32L4_CAN_TDT0R_OFFSET 0x0184 /* Mailbox data length control and time stamp register 0 */ +#define STM32L4_CAN_TDT1R_OFFSET 0x0194 /* Mailbox data length control and time stamp register 1 */ +#define STM32L4_CAN_TDT2R_OFFSET 0x01a4 /* Mailbox data length control and time stamp register 2 */ + +#define STM32L4_CAN_TDLR_OFFSET(m) (0x0188+((m)<<4)) +#define STM32L4_CAN_TDL0R_OFFSET 0x0188 /* Mailbox data low register 0 */ +#define STM32L4_CAN_TDL1R_OFFSET 0x0198 /* Mailbox data low register 1 */ +#define STM32L4_CAN_TDL2R_OFFSET 0x01a8 /* Mailbox data low register 2 */ + +#define STM32L4_CAN_TDHR_OFFSET(m) (0x018c+((m)<<4)) +#define STM32L4_CAN_TDH0R_OFFSET 0x018c /* Mailbox data high register 0 */ +#define STM32L4_CAN_TDH1R_OFFSET 0x019c /* Mailbox data high register 1 */ +#define STM32L4_CAN_TDH2R_OFFSET 0x01ac /* Mailbox data high register 2 */ + +#define STM32L4_CAN_RIR_OFFSET(m) (0x01b0+((m)<<4)) +#define STM32L4_CAN_RI0R_OFFSET 0x01b0 /* Rx FIFO mailbox identifier register 0 */ +#define STM32L4_CAN_RI1R_OFFSET 0x01c0 /* Rx FIFO mailbox identifier register 1 */ + +#define STM32L4_CAN_RDTR_OFFSET(m) (0x01b4+((m)<<4)) +#define STM32L4_CAN_RDT0R_OFFSET 0x01b4 /* Rx FIFO mailbox data length control and time stamp register 0 */ +#define STM32L4_CAN_RDT1R_OFFSET 0x01c4 /* Rx FIFO mailbox data length control and time stamp register 1 */ + +#define STM32L4_CAN_RDLR_OFFSET(m) (0x01b8+((m)<<4)) +#define STM32L4_CAN_RDL0R_OFFSET 0x01b8 /* Receive FIFO mailbox data low register 0 */ +#define STM32L4_CAN_RDL1R_OFFSET 0x01c8 /* Receive FIFO mailbox data low register 1 */ + +#define STM32L4_CAN_RDHR_OFFSET(m) (0x01bc+((m)<<4)) +#define STM32L4_CAN_RDH0R_OFFSET 0x01bc /* Receive FIFO mailbox data high register 0 */ +#define STM32L4_CAN_RDH1R_OFFSET 0x01cc /* Receive FIFO mailbox data high register 1 */ + +/* CAN filter registers */ + +#define STM32L4_CAN_FMR_OFFSET 0x0200 /* CAN filter master register */ +#define STM32L4_CAN_FM1R_OFFSET 0x0204 /* CAN filter mode register */ +#define STM32L4_CAN_FS1R_OFFSET 0x020c /* CAN filter scale register */ +#define STM32L4_CAN_FFA1R_OFFSET 0x0214 /* CAN filter FIFO assignment register */ +#define STM32L4_CAN_FA1R_OFFSET 0x021c /* CAN filter activation register */ + +/* There are 14 or 28 filter banks (depending) on the device. Each filter bank is + * composed of two 32-bit registers, CAN_FiR: + * F0R1 Offset 0x240 + * F0R2 Offset 0x244 + * F1R1 Offset 0x248 + * F1R2 Offset 0x24c + * ... + */ + +#define STM32L4_CAN_FIR_OFFSET(f,i) (0x240+((f)<<3)+(((i)-1)<<2)) + +/* Register Addresses ***************************************************************/ + +#if STM32L4_NCAN > 0 +# define STM32L4_CAN1_MCR (STM32L4_CAN1_BASE+STM32L4_CAN_MCR_OFFSET) +# define STM32L4_CAN1_MSR (STM32L4_CAN1_BASE+STM32L4_CAN_MSR_OFFSET) +# define STM32L4_CAN1_TSR (STM32L4_CAN1_BASE+STM32L4_CAN_TSR_OFFSET) +# define STM32L4_CAN1_RF0R (STM32L4_CAN1_BASE+STM32L4_CAN_RF0R_OFFSET) +# define STM32L4_CAN1_RF1R (STM32L4_CAN1_BASE+STM32L4_CAN_RF1R_OFFSET) +# define STM32L4_CAN1_IER (STM32L4_CAN1_BASE+STM32L4_CAN_IER_OFFSET) +# define STM32L4_CAN1_ESR (STM32L4_CAN1_BASE+STM32L4_CAN_ESR_OFFSET) +# define STM32L4_CAN1_BTR (STM32L4_CAN1_BASE+STM32L4_CAN_BTR_OFFSET) + +# define STM32L4_CAN1_TIR(m) (STM32L4_CAN1_BASE+STM32L4_CAN_TIR_OFFSET(m)) +# define STM32L4_CAN1_TI0R (STM32L4_CAN1_BASE+STM32L4_CAN_TI0R_OFFSET) +# define STM32L4_CAN1_TI1R (STM32L4_CAN1_BASE+STM32L4_CAN_TI1R_OFFSET) +# define STM32L4_CAN1_TI2R (STM32L4_CAN1_BASE+STM32L4_CAN_TI2R_OFFSET) + +# define STM32L4_CAN1_TDTR(m) (STM32L4_CAN1_BASE+STM32L4_CAN_TDTR_OFFSET(m)) +# define STM32L4_CAN1_TDT0R (STM32L4_CAN1_BASE+STM32L4_CAN_TDT0R_OFFSET) +# define STM32L4_CAN1_TDT1R (STM32L4_CAN1_BASE+STM32L4_CAN_TDT1R_OFFSET) +# define STM32L4_CAN1_TDT2R (STM32L4_CAN1_BASE+STM32L4_CAN_TDT2R_OFFSET) + +# define STM32L4_CAN1_TDLR(m) (STM32L4_CAN1_BASE+STM32L4_CAN_TDLR_OFFSET(m)) +# define STM32L4_CAN1_TDL0R (STM32L4_CAN1_BASE+STM32L4_CAN_TDL0R_OFFSET) +# define STM32L4_CAN1_TDL1R (STM32L4_CAN1_BASE+STM32L4_CAN_TDL1R_OFFSET) +# define STM32L4_CAN1_TDL2R (STM32L4_CAN1_BASE+STM32L4_CAN_TDL2R_OFFSET) + +# define STM32L4_CAN1_TDHR(m) (STM32L4_CAN1_BASE+STM32L4_CAN_TDHR_OFFSET(m)) +# define STM32L4_CAN1_TDH0R (STM32L4_CAN1_BASE+STM32L4_CAN_TDH0R_OFFSET) +# define STM32L4_CAN1_TDH1R (STM32L4_CAN1_BASE+STM32L4_CAN_TDH1R_OFFSET) +# define STM32L4_CAN1_TDH2R (STM32L4_CAN1_BASE+STM32L4_CAN_TDH2R_OFFSET) + +# define STM32L4_CAN1_RIR(m) (STM32L4_CAN1_BASE+STM32L4_CAN_RIR_OFFSET(m)) +# define STM32L4_CAN1_RI0R (STM32L4_CAN1_BASE+STM32L4_CAN_RI0R_OFFSET) +# define STM32L4_CAN1_RI1R (STM32L4_CAN1_BASE+STM32L4_CAN_RI1R_OFFSET) + +# define STM32L4_CAN1_RDTR(m) (STM32L4_CAN1_BASE+STM32L4_CAN_RDTR_OFFSET(m)) +# define STM32L4_CAN1_RDT0R (STM32L4_CAN1_BASE+STM32L4_CAN_RDT0R_OFFSET) +# define STM32L4_CAN1_RDT1R (STM32L4_CAN1_BASE+STM32L4_CAN_RDT1R_OFFSET) + +# define STM32L4_CAN1_RDLR(m) (STM32L4_CAN1_BASE+STM32L4_CAN_RDLR_OFFSET(m)) +# define STM32L4_CAN1_RDL0R (STM32L4_CAN1_BASE+STM32L4_CAN_RDL0R_OFFSET) +# define STM32L4_CAN1_RDL1R (STM32L4_CAN1_BASE+STM32L4_CAN_RDL1R_OFFSET) + +# define STM32L4_CAN1_RDHR(m) (STM32L4_CAN1_BASE+STM32L4_CAN_RDHR_OFFSET(m)) +# define STM32L4_CAN1_RDH0R (STM32L4_CAN1_BASE+STM32L4_CAN_RDH0R_OFFSET) +# define STM32L4_CAN1_RDH1R (STM32L4_CAN1_BASE+STM32L4_CAN_RDH1R_OFFSET) + +# define STM32L4_CAN1_FMR (STM32L4_CAN1_BASE+STM32L4_CAN_FMR_OFFSET) +# define STM32L4_CAN1_FM1R (STM32L4_CAN1_BASE+STM32L4_CAN_FM1R_OFFSET) +# define STM32L4_CAN1_FS1R (STM32L4_CAN1_BASE+STM32L4_CAN_FS1R_OFFSET) +# define STM32L4_CAN1_FFA1R (STM32L4_CAN1_BASE+STM32L4_CAN_FFA1R_OFFSET) +# define STM32L4_CAN1_FA1R (STM32L4_CAN1_BASE+STM32L4_CAN_FA1R_OFFSET) +# define STM32L4_CAN1_FIR(b,i) (STM32L4_CAN1_BASE+STM32L4_CAN_FIR_OFFSET(b,i)) +#endif + +/* Register Bitfield Definitions ****************************************************/ + +/* CAN master control register */ + +#define CAN_MCR_INRQ (1 << 0) /* Bit 0: Initialization Request */ +#define CAN_MCR_SLEEP (1 << 1) /* Bit 1: Sleep Mode Request */ +#define CAN_MCR_TXFP (1 << 2) /* Bit 2: Transmit FIFO Priority */ +#define CAN_MCR_RFLM (1 << 3) /* Bit 3: Receive FIFO Locked Mode */ +#define CAN_MCR_NART (1 << 4) /* Bit 4: No Automatic Retransmission */ +#define CAN_MCR_AWUM (1 << 5) /* Bit 5: Automatic Wakeup Mode */ +#define CAN_MCR_ABOM (1 << 6) /* Bit 6: Automatic Bus-Off Management */ +#define CAN_MCR_TTCM (1 << 7) /* Bit 7: Time Triggered Communication Mode Enable */ +#define CAN_MCR_RESET (1 << 15) /* Bit 15: bxCAN software master reset */ +#define CAN_MCR_DBF (1 << 16) /* Bit 16: Debug freeze */ + +/* CAN master status register */ + +#define CAN_MSR_INAK (1 << 0) /* Bit 0: Initialization Acknowledge */ +#define CAN_MSR_SLAK (1 << 1) /* Bit 1: Sleep Acknowledge */ +#define CAN_MSR_ERRI (1 << 2) /* Bit 2: Error Interrupt */ +#define CAN_MSR_WKUI (1 << 3) /* Bit 3: Wakeup Interrupt */ +#define CAN_MSR_SLAKI (1 << 4) /* Bit 4: Sleep acknowledge interrupt */ +#define CAN_MSR_TXM (1 << 8) /* Bit 8: Transmit Mode */ +#define CAN_MSR_RXM (1 << 9) /* Bit 9: Receive Mode */ +#define CAN_MSR_SAMP (1 << 10) /* Bit 10: Last Sample Point */ +#define CAN_MSR_RX (1 << 11) /* Bit 11: CAN Rx Signal */ + +/* CAN transmit status register */ + +#define CAN_TSR_RQCP0 (1 << 0) /* Bit 0: Request Completed Mailbox 0 */ +#define CAN_TSR_TXOK0 (1 << 1) /* Bit 1 : Transmission OK of Mailbox 0 */ +#define CAN_TSR_ALST0 (1 << 2) /* Bit 2 : Arbitration Lost for Mailbox 0 */ +#define CAN_TSR_TERR0 (1 << 3) /* Bit 3 : Transmission Error of Mailbox 0 */ +#define CAN_TSR_ABRQ0 (1 << 7) /* Bit 7 : Abort Request for Mailbox 0 */ +#define CAN_TSR_RQCP1 (1 << 8) /* Bit 8 : Request Completed Mailbox 1 */ +#define CAN_TSR_TXOK1 (1 << 9) /* Bit 9 : Transmission OK of Mailbox 1 */ +#define CAN_TSR_ALST1 (1 << 10) /* Bit 10 : Arbitration Lost for Mailbox 1 */ +#define CAN_TSR_TERR1 (1 << 11) /* Bit 11 : Transmission Error of Mailbox 1 */ +#define CAN_TSR_ABRQ1 (1 << 15) /* Bit 15 : Abort Request for Mailbox 1 */ +#define CAN_TSR_RQCP2 (1 << 16) /* Bit 16 : Request Completed Mailbox 2 */ +#define CAN_TSR_TXOK2 (1 << 17) /* Bit 17 : Transmission OK of Mailbox 2 */ +#define CAN_TSR_ALST2 (1 << 18) /* Bit 18: Arbitration Lost for Mailbox 2 */ +#define CAN_TSR_TERR2 (1 << 19) /* Bit 19: Transmission Error of Mailbox 2 */ +#define CAN_TSR_ABRQ2 (1 << 23) /* Bit 23: Abort Request for Mailbox 2 */ +#define CAN_TSR_CODE_SHIFT (24) /* Bits 25-24: Mailbox Code */ +#define CAN_TSR_CODE_MASK (3 << CAN_TSR_CODE_SHIFT) +#define CAN_TSR_TME0 (1 << 26) /* Bit 26: Transmit Mailbox 0 Empty */ +#define CAN_TSR_TME1 (1 << 27) /* Bit 27: Transmit Mailbox 1 Empty */ +#define CAN_TSR_TME2 (1 << 28) /* Bit 28: Transmit Mailbox 2 Empty */ +#define CAN_TSR_LOW0 (1 << 29) /* Bit 29: Lowest Priority Flag for Mailbox 0 */ +#define CAN_TSR_LOW1 (1 << 30) /* Bit 30: Lowest Priority Flag for Mailbox 1 */ +#define CAN_TSR_LOW2 (1 << 31) /* Bit 31: Lowest Priority Flag for Mailbox 2 */ + +/* CAN receive FIFO 0/1 registers */ + +#define CAN_RFR_FMP_SHIFT (0) /* Bits 1-0: FIFO Message Pending */ +#define CAN_RFR_FMP_MASK (3 << CAN_RFR_FMP_SHIFT) +#define CAN_RFR_FULL (1 << 3) /* Bit 3: FIFO 0 Full */ +#define CAN_RFR_FOVR (1 << 4) /* Bit 4: FIFO 0 Overrun */ +#define CAN_RFR_RFOM (1 << 5) /* Bit 5: Release FIFO 0 Output Mailbox */ + +/* CAN interrupt enable register */ + +#define CAN_IER_TMEIE (1 << 0) /* Bit 0: Transmit Mailbox Empty Interrupt Enable */ +#define CAN_IER_FMPIE0 (1 << 1) /* Bit 1: FIFO Message Pending Interrupt Enable */ +#define CAN_IER_FFIE0 (1 << 2) /* Bit 2: FIFO Full Interrupt Enable */ +#define CAN_IER_FOVIE0 (1 << 3) /* Bit 3: FIFO Overrun Interrupt Enable */ +#define CAN_IER_FMPIE1 (1 << 4) /* Bit 4: FIFO Message Pending Interrupt Enable */ +#define CAN_IER_FFIE1 (1 << 5) /* Bit 5: FIFO Full Interrupt Enable */ +#define CAN_IER_FOVIE1 (1 << 6) /* Bit 6: FIFO Overrun Interrupt Enable */ +#define CAN_IER_EWGIE (1 << 8) /* Bit 8: Error Warning Interrupt Enable */ +#define CAN_IER_EPVIE (1 << 9) /* Bit 9: Error Passive Interrupt Enable */ +#define CAN_IER_BOFIE (1 << 10) /* Bit 10: Bus-Off Interrupt Enable */ +#define CAN_IER_LECIE (1 << 11) /* Bit 11: Last Error Code Interrupt Enable */ +#define CAN_IER_ERRIE (1 << 15) /* Bit 15: Error Interrupt Enable */ +#define CAN_IER_WKUIE (1 << 16) /* Bit 16: Wakeup Interrupt Enable */ +#define CAN_IER_SLKIE (1 << 17) /* Bit 17: Sleep Interrupt Enable */ + +/* CAN error status register */ + +#define CAN_ESR_EWGF (1 << 0) /* Bit 0: Error Warning Flag */ +#define CAN_ESR_EPVF (1 << 1) /* Bit 1: Error Passive Flag */ +#define CAN_ESR_BOFF (1 << 2) /* Bit 2: Bus-Off Flag */ +#define CAN_ESR_LEC_SHIFT (4) /* Bits 6-4: Last Error Code */ +#define CAN_ESR_LEC_MASK (7 << CAN_ESR_LEC_SHIFT) +# define CAN_ESR_NOERROR (0 << CAN_ESR_LEC_SHIFT) /* 000: No Error */ +# define CAN_ESR_STUFFERROR (1 << CAN_ESR_LEC_SHIFT) /* 001: Stuff Error */ +# define CAN_ESR_FORMERROR (2 << CAN_ESR_LEC_SHIFT) /* 010: Form Error */ +# define CAN_ESR_ACKERROR (3 << CAN_ESR_LEC_SHIFT) /* 011: Acknowledgment Error */ +# define CAN_ESR_BRECERROR (4 << CAN_ESR_LEC_SHIFT) /* 100: Bit recessive Error */ +# define CAN_ESR_BDOMERROR (5 << CAN_ESR_LEC_SHIFT) /* 101: Bit dominant Error */ +# define CAN_ESR_CRCERRPR (6 << CAN_ESR_LEC_SHIFT) /* 110: CRC Error */ +# define CAN_ESR_SWERROR (7 << CAN_ESR_LEC_SHIFT) /* 111: Set by software */ +#define CAN_ESR_TEC_SHIFT (16) /* Bits 23-16: LS byte of the 9-bit Transmit Error Counter */ +#define CAN_ESR_TEC_MASK (0xff << CAN_ESR_TEC_SHIF) +#define CAN_ESR_REC_SHIFT (24) /* Bits 31-24: Receive Error Counter */ +#define CAN_ESR_REC_MASK (0xff << CAN_ESR_REC_SHIFT) + +/* CAN bit timing register */ + +#define CAN_BTR_BRP_SHIFT (0) /* Bits 9-0: Baud Rate Prescaler */ +#define CAN_BTR_BRP_MASK (0x03ff << CAN_BTR_BRP_SHIFT) +#define CAN_BTR_TS1_SHIFT (16) /* Bits 19-16: Time Segment 1 */ +#define CAN_BTR_TS1_MASK (0x0f << CAN_BTR_TS1_SHIFT) +#define CAN_BTR_TS2_SHIFT (20) /* Bits 22-20: Time Segment 2 */ +#define CAN_BTR_TS2_MASK (7 << CAN_BTR_TS2_SHIFT) +#define CAN_BTR_SJW_SHIFT (24) /* Bits 25-24: Resynchronization Jump Width */ +#define CAN_BTR_SJW_MASK (3 << CAN_BTR_SJW_SHIFT) +#define CAN_BTR_LBKM (1 << 30) /* Bit 30: Loop Back Mode (Debug) */ +#define CAN_BTR_SILM (1 << 31) /* Bit 31: Silent Mode (Debug) */ + +#define CAN_BTR_BRP_MAX (1024) /* Maximum BTR value (without decrement) */ +#define CAN_BTR_TSEG1_MAX (16) /* Maximum TSEG1 value (without decrement) */ +#define CAN_BTR_TSEG2_MAX (8) /* Maximum TSEG2 value (without decrement) */ + +/* TX mailbox identifier register */ + +#define CAN_TIR_TXRQ (1 << 0) /* Bit 0: Transmit Mailbox Request */ +#define CAN_TIR_RTR (1 << 1) /* Bit 1: Remote Transmission Request */ +#define CAN_TIR_IDE (1 << 2) /* Bit 2: Identifier Extension */ +#define CAN_TIR_EXID_SHIFT (3) /* Bit 3-31: Extended Identifier */ +#define CAN_TIR_EXID_MASK (0x1fffffff << CAN_TIR_EXID_SHIFT) +#define CAN_TIR_STID_SHIFT (21) /* Bits 21-31: Standard Identifier */ +#define CAN_TIR_STID_MASK (0x07ff << CAN_TIR_STID_SHIFT) + +/* Mailbox data length control and time stamp register */ + +#define CAN_TDTR_DLC_SHIFT (0) /* Bits 3:0: Data Length Code */ +#define CAN_TDTR_DLC_MASK (0x0f << CAN_TDTR_DLC_SHIFT) +#define CAN_TDTR_TGT (1 << 8) /* Bit 8: Transmit Global Time */ +#define CAN_TDTR_TIME_SHIFT (16) /* Bits 31:16: Message Time Stamp */ +#define CAN_TDTR_TIME_MASK (0xffff << CAN_TDTR_TIME_SHIFT) + +/* Mailbox data low register */ + +#define CAN_TDLR_DATA0_SHIFT (0) /* Bits 7-0: Data Byte 0 */ +#define CAN_TDLR_DATA0_MASK (0xff << CAN_TDLR_DATA0_SHIFT) +#define CAN_TDLR_DATA1_SHIFT (8) /* Bits 15-8: Data Byte 1 */ +#define CAN_TDLR_DATA1_MASK (0xff << CAN_TDLR_DATA1_SHIFT) +#define CAN_TDLR_DATA2_SHIFT (16) /* Bits 23-16: Data Byte 2 */ +#define CAN_TDLR_DATA2_MASK (0xff << CAN_TDLR_DATA2_SHIFT) +#define CAN_TDLR_DATA3_SHIFT (24) /* Bits 31-24: Data Byte 3 */ +#define CAN_TDLR_DATA3_MASK (0xff << CAN_TDLR_DATA3_SHIFT) + +/* Mailbox data high register */ + +#define CAN_TDHR_DATA4_SHIFT (0) /* Bits 7-0: Data Byte 4 */ +#define CAN_TDHR_DATA4_MASK (0xff << CAN_TDHR_DATA4_SHIFT) +#define CAN_TDHR_DATA5_SHIFT (8) /* Bits 15-8: Data Byte 5 */ +#define CAN_TDHR_DATA5_MASK (0xff << CAN_TDHR_DATA5_SHIFT) +#define CAN_TDHR_DATA6_SHIFT (16) /* Bits 23-16: Data Byte 6 */ +#define CAN_TDHR_DATA6_MASK (0xff << CAN_TDHR_DATA6_SHIFT) +#define CAN_TDHR_DATA7_SHIFT (24) /* Bits 31-24: Data Byte 7 */ +#define CAN_TDHR_DATA7_MASK (0xff << CAN_TDHR_DATA7_SHIFT) + +/* Rx FIFO mailbox identifier register */ + +#define CAN_RIR_RTR (1 << 1) /* Bit 1: Remote Transmission Request */ +#define CAN_RIR_IDE (1 << 2) /* Bit 2: Identifier Extension */ +#define CAN_RIR_EXID_SHIFT (3) /* Bit 3-31: Extended Identifier */ +#define CAN_RIR_EXID_MASK (0x1fffffff << CAN_RIR_EXID_SHIFT) +#define CAN_RIR_STID_SHIFT (21) /* Bits 21-31: Standard Identifier */ +#define CAN_RIR_STID_MASK (0x07ff << CAN_RIR_STID_SHIFT) + +/* Receive FIFO mailbox data length control and time stamp register */ + +#define CAN_RDTR_DLC_SHIFT (0) /* Bits 3:0: Data Length Code */ +#define CAN_RDTR_DLC_MASK (0x0f << CAN_RDTR_DLC_SHIFT) +#define CAN_RDTR_FM_SHIFT (8) /* Bits 15-8: Filter Match Index */ +#define CAN_RDTR_FM_MASK (0xff << CAN_RDTR_FM_SHIFT) +#define CAN_RDTR_TIME_SHIFT (16) /* Bits 31:16: Message Time Stamp */ +#define CAN_RDTR_TIME_MASK (0xffff << CAN_RDTR_TIME_SHIFT) + +/* Receive FIFO mailbox data low register */ + +#define CAN_RDLR_DATA0_SHIFT (0) /* Bits 7-0: Data Byte 0 */ +#define CAN_RDLR_DATA0_MASK (0xff << CAN_RDLR_DATA0_SHIFT) +#define CAN_RDLR_DATA1_SHIFT (8) /* Bits 15-8: Data Byte 1 */ +#define CAN_RDLR_DATA1_MASK (0xff << CAN_RDLR_DATA1_SHIFT) +#define CAN_RDLR_DATA2_SHIFT (16) /* Bits 23-16: Data Byte 2 */ +#define CAN_RDLR_DATA2_MASK (0xff << CAN_RDLR_DATA2_SHIFT) +#define CAN_RDLR_DATA3_SHIFT (24) /* Bits 31-24: Data Byte 3 */ +#define CAN_RDLR_DATA3_MASK (0xff << CAN_RDLR_DATA3_SHIFT) + +/* Receive FIFO mailbox data high register */ + +#define CAN_RDHR_DATA4_SHIFT (0) /* Bits 7-0: Data Byte 4 */ +#define CAN_RDHR_DATA4_MASK (0xff << CAN_RDHR_DATA4_SHIFT) +#define CAN_RDHR_DATA5_SHIFT (8) /* Bits 15-8: Data Byte 5 */ +#define CAN_RDHR_DATA5_MASK (0xff << CAN_RDHR_DATA5_SHIFT) +#define CAN_RDHR_DATA6_SHIFT (16) /* Bits 23-16: Data Byte 6 */ +#define CAN_RDHR_DATA6_MASK (0xff << CAN_RDHR_DATA6_SHIFT) +#define CAN_RDHR_DATA7_SHIFT (24) /* Bits 31-24: Data Byte 7 */ +#define CAN_RDHR_DATA7_MASK (0xff << CAN_RDHR_DATA7_SHIFT) + +/* CAN filter master register */ + +#define CAN_FMR_FINIT (1 << 0) /* Bit 0: Filter Init Mode */ + +/* CAN filter mode register */ + +#if defined(CONFIG_STM32L4_CONNECTIVITYLINE) || defined(CONFIG_STM32L4_STM32F20XX) || defined(CONFIG_STM32L4_STM32F40XX) +# define CAN_FM1R_FBM_SHIFT (0) /* Bits 13:0: Filter Mode */ +# define CAN_FM1R_FBM_MASK (0x3fff << CAN_FM1R_FBM_SHIFT) +#else +# define CAN_FM1R_FBM_SHIFT (0) /* Bits 27:0: Filter Mode */ +# define CAN_FM1R_FBM_MASK (0x0fffffff << CAN_FM1R_FBM_SHIFT) +#endif + +/* CAN filter scale register */ + +#if defined(CONFIG_STM32L4_CONNECTIVITYLINE) || defined(CONFIG_STM32L4_STM32F20XX) || defined(CONFIG_STM32L4_STM32F40XX) +# define CAN_FS1R_FSC_SHIFT (0) /* Bits 13:0: Filter Scale Configuration */ +# define CAN_FS1R_FSC_MASK (0x3fff << CAN_FS1R_FSC_SHIFT) +#else +# define CAN_FS1R_FSC_SHIFT (0) /* Bits 27:0: Filter Scale Configuration */ +# define CAN_FS1R_FSC_MASK (0x0fffffff << CAN_FS1R_FSC_SHIFT) +#endif + +/* CAN filter FIFO assignment register */ + +#if defined(CONFIG_STM32L4_CONNECTIVITYLINE) || defined(CONFIG_STM32L4_STM32F20XX) || defined(CONFIG_STM32L4_STM32F40XX) +# define CAN_FFA1R_FFA_SHIFT (0) /* Bits 13:0: Filter FIFO Assignment */ +# define CAN_FFA1R_FFA_MASK (0x3fff << CAN_FFA1R_FFA_SHIFT) +#else +# define CAN_FFA1R_FFA_SHIFT (0) /* Bits 27:0: Filter FIFO Assignment */ +# define CAN_FFA1R_FFA_MASK (0x0fffffff << CAN_FFA1R_FFA_SHIFT) +#endif + +/* CAN filter activation register */ + +#if defined(CONFIG_STM32L4_CONNECTIVITYLINE) || defined(CONFIG_STM32L4_STM32F20XX) || defined(CONFIG_STM32L4_STM32F40XX) +# define CAN_FA1R_FACT_SHIFT (0) /* Bits 13:0: Filter Active */ +# define CAN_FA1R_FACT_MASK (0x3fff << CAN_FA1R_FACT_SHIFT) +#else +# define CAN_FA1R_FACT_SHIFT (0) /* Bits 27:0: Filter Active */ +# define CAN_FA1R_FACT_MASK (0x0fffffff << CAN_FA1R_FACT_SHIFT) +#endif + +/************************************************************************************ + * Public Types + ************************************************************************************/ + +/************************************************************************************ + * Public Data + ************************************************************************************/ + +/************************************************************************************ + * Public Functions + ************************************************************************************/ + +#endif /* __ARCH_ARM_SRC_STM32L4_CHIP_STM32L4_CAN_H */ diff --git a/arch/arm/src/stm32l4/stm32l4_can.c b/arch/arm/src/stm32l4/stm32l4_can.c new file mode 100644 index 0000000000..b199525fcb --- /dev/null +++ b/arch/arm/src/stm32l4/stm32l4_can.c @@ -0,0 +1,1592 @@ +/************************************************************************************ + * arch/arm/src/stm32l4/stm32l4_can.c + * + * Copyright (C) 2011, 2016 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Adaptations for stm32l4: + * Copyright (C) 2016 Sebastien Lorquet. All rights reserved. + * Author: Sebastien Lorquet + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ************************************************************************************/ + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include "up_internal.h" +#include "up_arch.h" + + +#include "chip.h" +#include "stm32l4.h" +#include "stm32l4_can.h" + +#if defined(CONFIG_CAN) && defined(CONFIG_STM32L4_CAN1) + +/**************************************************************************** + * Pre-processor Definitions + ****************************************************************************/ +/* Delays *******************************************************************/ +/* Time out for INAK bit */ + +#define INAK_TIMEOUT 65535 + +/* Mailboxes ****************************************************************/ + +#define CAN_ALL_MAILBOXES (CAN_TSR_TME0 | CAN_TSR_TME1 | CAN_TSR_TME2) + +/* Bit timing ***************************************************************/ + +#define CAN_BIT_QUANTA (CONFIG_CAN_TSEG1 + CONFIG_CAN_TSEG2 + 1) + +/* Debug ********************************************************************/ +/* Non-standard debug that may be enabled just for testing CAN */ + +#ifdef CONFIG_DEBUG_CAN +# define candbg dbg +# define canvdbg vdbg +# define canlldbg lldbg +# define canllvdbg llvdbg +#else +# define candbg(x...) +# define canvdbg(x...) +# define canlldbg(x...) +# define canllvdbg(x...) +#endif + +#if !defined(CONFIG_DEBUG) || !defined(CONFIG_DEBUG_CAN) +# undef CONFIG_CAN_REGDEBUG +#endif + +/**************************************************************************** + * Private Types + ****************************************************************************/ + +struct stm32l4_can_s +{ + uint8_t port; /* CAN port number (1 or 2) */ + uint8_t canrx0; /* CAN RX FIFO 0 IRQ number */ + uint8_t cantx; /* CAN TX IRQ number */ + uint8_t filter; /* Filter number */ + uint32_t base; /* Base address of the CAN control registers */ + uint32_t fbase; /* Base address of the CAN filter registers */ + uint32_t baud; /* Configured baud */ +}; + +/**************************************************************************** + * Private Function Prototypes + ****************************************************************************/ + +/* CAN Register access */ + +static uint32_t can_getreg(struct stm32l4_can_s *priv, int offset); +static uint32_t can_getfreg(struct stm32l4_can_s *priv, int offset); +static void can_putreg(struct stm32l4_can_s *priv, int offset, uint32_t value); +static void can_putfreg(struct stm32l4_can_s *priv, int offset, uint32_t value); +#ifdef CONFIG_CAN_REGDEBUG +static void can_dumpctrlregs(struct stm32l4_can_s *priv, FAR const char *msg); +static void can_dumpmbregs(struct stm32l4_can_s *priv, FAR const char *msg); +static void can_dumpfiltregs(struct stm32l4_can_s *priv, FAR const char *msg); +#else +# define can_dumpctrlregs(priv,msg) +# define can_dumpmbregs(priv,msg) +# define can_dumpfiltregs(priv,msg) +#endif + +/* CAN driver methods */ + +static void can_reset(FAR struct can_dev_s *dev); +static int can_setup(FAR struct can_dev_s *dev); +static void can_shutdown(FAR struct can_dev_s *dev); +static void can_rxint(FAR struct can_dev_s *dev, bool enable); +static void can_txint(FAR struct can_dev_s *dev, bool enable); +static int can_ioctl(FAR struct can_dev_s *dev, int cmd, unsigned long arg); +static int can_remoterequest(FAR struct can_dev_s *dev, uint16_t id); +static int can_send(FAR struct can_dev_s *dev, FAR struct can_msg_s *msg); +static bool can_txready(FAR struct can_dev_s *dev); +static bool can_txempty(FAR struct can_dev_s *dev); + +/* CAN interrupt handling */ + +static int can_rx0interrupt(int irq, void *context); +static int can_txinterrupt(int irq, void *context); + +/* Initialization */ + +static int can_bittiming(struct stm32l4_can_s *priv); +static int can_cellinit(struct stm32l4_can_s *priv); +static int can_filterinit(struct stm32l4_can_s *priv); + +/**************************************************************************** + * Private Data + ****************************************************************************/ + +static const struct can_ops_s g_canops = +{ + .co_reset = can_reset, + .co_setup = can_setup, + .co_shutdown = can_shutdown, + .co_rxint = can_rxint, + .co_txint = can_txint, + .co_ioctl = can_ioctl, + .co_remoterequest = can_remoterequest, + .co_send = can_send, + .co_txready = can_txready, + .co_txempty = can_txempty, +}; + +#ifdef CONFIG_STM32L4_CAN1 +static struct stm32l4_can_s g_can1priv = +{ + .port = 1, + .canrx0 = STM32L4_IRQ_CAN1RX0, + .cantx = STM32L4_IRQ_CAN1TX, + .filter = 0, + .base = STM32L4_CAN1_BASE, + .fbase = STM32L4_CAN1_BASE, + .baud = CONFIG_CAN1_BAUD, +}; + +static struct can_dev_s g_can1dev = +{ + .cd_ops = &g_canops, + .cd_priv = &g_can1priv, +}; +#endif + +/**************************************************************************** + * Private Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: can_getreg + * Name: can_getfreg + * + * Description: + * Read the value of a CAN register or filter block register. + * + * Input Parameters: + * priv - A reference to the CAN block status + * offset - The offset to the register to read + * + * Returned Value: + * + ****************************************************************************/ + +#ifdef CONFIG_CAN_REGDEBUG +static uint32_t can_vgetreg(uint32_t addr) +{ + static uint32_t prevaddr = 0; + static uint32_t preval = 0; + static uint32_t count = 0; + + /* Read the value from the register */ + + uint32_t val = getreg32(addr); + + /* Is this the same value that we read from the same register last time? + * Are we polling the register? If so, suppress some of the output. + */ + + if (addr == prevaddr && val == preval) + { + if (count == 0xffffffff || ++count > 3) + { + if (count == 4) + { + lldbg("...\n"); + } + + return val; + } + } + + /* No this is a new address or value */ + + else + { + /* Did we print "..." for the previous value? */ + + if (count > 3) + { + /* Yes.. then show how many times the value repeated */ + + lldbg("[repeats %d more times]\n", count-3); + } + + /* Save the new address, value, and count */ + + prevaddr = addr; + preval = val; + count = 1; + } + + /* Show the register value read */ + + lldbg("%08x->%08x\n", addr, val); + return val; +} + +static uint32_t can_getreg(struct stm32l4_can_s *priv, int offset) +{ + return can_vgetreg(priv->base + offset); +} + +static uint32_t can_getfreg(struct stm32l4_can_s *priv, int offset) +{ + return can_vgetreg(priv->fbase + offset); +} + +#else +static uint32_t can_getreg(struct stm32l4_can_s *priv, int offset) +{ + return getreg32(priv->base + offset); +} + +static uint32_t can_getfreg(struct stm32l4_can_s *priv, int offset) +{ + return getreg32(priv->fbase + offset); +} + +#endif + +/**************************************************************************** + * Name: can_putreg + * Name: can_putfreg + * + * Description: + * Set the value of a CAN register or filter block register. + * + * Input Parameters: + * priv - A reference to the CAN block status + * offset - The offset to the register to write + * value - The value to write to the register + * + * Returned Value: + * None + * + ****************************************************************************/ + +#ifdef CONFIG_CAN_REGDEBUG +static void can_vputreg(uint32_t addr, uint32_t value) +{ + + /* Show the register value being written */ + + lldbg("%08x<-%08x\n", addr, value); + + /* Write the value */ + + putreg32(value, addr); +} + +static void can_putreg(struct stm32l4_can_s *priv, int offset, uint32_t value) +{ + can_vputreg(priv->base + offset, value); +} + +static void can_putfreg(struct stm32l4_can_s *priv, int offset, uint32_t value) +{ + can_vputreg(priv->fbase + offset, value); +} + +#else +static void can_putreg(struct stm32l4_can_s *priv, int offset, uint32_t value) +{ + putreg32(value, priv->base + offset); +} + +static void can_putfreg(struct stm32l4_can_s *priv, int offset, uint32_t value) +{ + putreg32(value, priv->fbase + offset); +} +#endif + +/**************************************************************************** + * Name: can_dumpctrlregs + * + * Description: + * Dump the contents of all CAN control registers + * + * Input Parameters: + * priv - A reference to the CAN block status + * + * Returned Value: + * None + * + ****************************************************************************/ + +#ifdef CONFIG_CAN_REGDEBUG +static void can_dumpctrlregs(struct stm32l4_can_s *priv, FAR const char *msg) +{ + if (msg) + { + canlldbg("Control Registers: %s\n", msg); + } + else + { + canlldbg("Control Registers:\n"); + } + + /* CAN control and status registers */ + + lldbg(" MCR: %08x MSR: %08x TSR: %08x\n", + getreg32(priv->base + STM32L4_CAN_MCR_OFFSET), + getreg32(priv->base + STM32L4_CAN_MSR_OFFSET), + getreg32(priv->base + STM32L4_CAN_TSR_OFFSET)); + + lldbg(" RF0R: %08x RF1R: %08x\n", + getreg32(priv->base + STM32L4_CAN_RF0R_OFFSET), + getreg32(priv->base + STM32L4_CAN_RF1R_OFFSET)); + + lldbg(" IER: %08x ESR: %08x BTR: %08x\n", + getreg32(priv->base + STM32L4_CAN_IER_OFFSET), + getreg32(priv->base + STM32L4_CAN_ESR_OFFSET), + getreg32(priv->base + STM32L4_CAN_BTR_OFFSET)); +} +#endif + +/**************************************************************************** + * Name: can_dumpmbregs + * + * Description: + * Dump the contents of all CAN mailbox registers + * + * Input Parameters: + * priv - A reference to the CAN block status + * + * Returned Value: + * None + * + ****************************************************************************/ + +#ifdef CONFIG_CAN_REGDEBUG +static void can_dumpmbregs(struct stm32l4_can_s *priv, FAR const char *msg) +{ + if (msg) + { + canlldbg("Mailbox Registers: %s\n", msg); + } + else + { + canlldbg("Mailbox Registers:\n"); + } + + /* CAN mailbox registers (3 TX and 2 RX) */ + + lldbg(" TI0R: %08x TDT0R: %08x TDL0R: %08x TDH0R: %08x\n", + getreg32(priv->base + STM32L4_CAN_TI0R_OFFSET), + getreg32(priv->base + STM32L4_CAN_TDT0R_OFFSET), + getreg32(priv->base + STM32L4_CAN_TDL0R_OFFSET), + getreg32(priv->base + STM32L4_CAN_TDH0R_OFFSET)); + + lldbg(" TI1R: %08x TDT1R: %08x TDL1R: %08x TDH1R: %08x\n", + getreg32(priv->base + STM32L4_CAN_TI1R_OFFSET), + getreg32(priv->base + STM32L4_CAN_TDT1R_OFFSET), + getreg32(priv->base + STM32L4_CAN_TDL1R_OFFSET), + getreg32(priv->base + STM32L4_CAN_TDH1R_OFFSET)); + + lldbg(" TI2R: %08x TDT2R: %08x TDL2R: %08x TDH2R: %08x\n", + getreg32(priv->base + STM32L4_CAN_TI2R_OFFSET), + getreg32(priv->base + STM32L4_CAN_TDT2R_OFFSET), + getreg32(priv->base + STM32L4_CAN_TDL2R_OFFSET), + getreg32(priv->base + STM32L4_CAN_TDH2R_OFFSET)); + + lldbg(" RI0R: %08x RDT0R: %08x RDL0R: %08x RDH0R: %08x\n", + getreg32(priv->base + STM32L4_CAN_RI0R_OFFSET), + getreg32(priv->base + STM32L4_CAN_RDT0R_OFFSET), + getreg32(priv->base + STM32L4_CAN_RDL0R_OFFSET), + getreg32(priv->base + STM32L4_CAN_RDH0R_OFFSET)); + + lldbg(" RI1R: %08x RDT1R: %08x RDL1R: %08x RDH1R: %08x\n", + getreg32(priv->base + STM32L4_CAN_RI1R_OFFSET), + getreg32(priv->base + STM32L4_CAN_RDT1R_OFFSET), + getreg32(priv->base + STM32L4_CAN_RDL1R_OFFSET), + getreg32(priv->base + STM32L4_CAN_RDH1R_OFFSET)); +} +#endif + +/**************************************************************************** + * Name: can_dumpfiltregs + * + * Description: + * Dump the contents of all CAN filter registers + * + * Input Parameters: + * priv - A reference to the CAN block status + * + * Returned Value: + * None + * + ****************************************************************************/ + +#ifdef CONFIG_CAN_REGDEBUG +static void can_dumpfiltregs(struct stm32l4_can_s *priv, FAR const char *msg) +{ + int i; + + if (msg) + { + canlldbg("Filter Registers: %s\n", msg); + } + else + { + canlldbg("Filter Registers:\n"); + } + + lldbg(" FMR: %08x FM1R: %08x FS1R: %08x FFA1R: %08x FA1R: %08x\n", + getreg32(priv->base + STM32L4_CAN_FMR_OFFSET), + getreg32(priv->base + STM32L4_CAN_FM1R_OFFSET), + getreg32(priv->base + STM32L4_CAN_FS1R_OFFSET), + getreg32(priv->base + STM32L4_CAN_FFA1R_OFFSET), + getreg32(priv->base + STM32L4_CAN_FA1R_OFFSET)); + + for (i = 0; i < CAN_NFILTERS; i++) + { + lldbg(" F%dR1: %08x F%dR2: %08x\n", + i, getreg32(priv->base + STM32L4_CAN_FIR_OFFSET(i, 1)), + i, getreg32(priv->base + STM32L4_CAN_FIR_OFFSET(i, 2))); + } +} +#endif + +/**************************************************************************** + * Name: can_reset + * + * Description: + * Reset the CAN device. Called early to initialize the hardware. This + * function is called, before can_setup() and on error conditions. + * + * Input Parameters: + * dev - An instance of the "upper half" can driver state structure. + * + * Returned Value: + * None + * + ****************************************************************************/ + +static void can_reset(FAR struct can_dev_s *dev) +{ + FAR struct stm32l4_can_s *priv = dev->cd_priv; + uint32_t regval; + uint32_t regbit = 0; + irqstate_t flags; + + canllvdbg("CAN%d\n", priv->port); + + /* Get the bits in the AHB1RSTR1 register needed to reset this CAN device */ + +#ifdef CONFIG_STM32L4_CAN1 + if (priv->port == 1) + { + regbit = RCC_APB1RSTR1_CAN1RST; + } + else +#endif + { + canlldbg("Unsupported port %d\n", priv->port); + return; + } + + /* Disable interrupts momentary to stop any ongoing CAN event processing and + * to prevent any concurrent access to the AHB1RSTR1 register. + */ + + flags = enter_critical_section(); + + /* Reset the CAN */ + + regval = getreg32(STM32L4_RCC_APB1RSTR1); + regval |= regbit; + putreg32(regval, STM32L4_RCC_APB1RSTR1); + + regval &= ~regbit; + putreg32(regval, STM32L4_RCC_APB1RSTR1); + leave_critical_section(flags); +} + +/**************************************************************************** + * Name: can_setup + * + * Description: + * Configure the CAN. This method is called the first time that the CAN + * device is opened. This will occur when the port is first opened. + * This setup includes configuring and attaching CAN interrupts. + * All CAN interrupts are disabled upon return. + * + * Input Parameters: + * dev - An instance of the "upper half" can driver state structure. + * + * Returned Value: + * Zero on success; a negated errno on failure + * + ****************************************************************************/ + +static int can_setup(FAR struct can_dev_s *dev) +{ + FAR struct stm32l4_can_s *priv = dev->cd_priv; + int ret; + + canllvdbg("CAN%d RX0 irq: %d TX irq: %d\n", priv->port, priv->canrx0, priv->cantx); + + /* CAN cell initialization */ + + ret = can_cellinit(priv); + if (ret < 0) + { + canlldbg("CAN%d cell initialization failed: %d\n", priv->port, ret); + return ret; + } + + can_dumpctrlregs(priv, "After cell initialization"); + can_dumpmbregs(priv, NULL); + + /* CAN filter initialization */ + + ret = can_filterinit(priv); + if (ret < 0) + { + canlldbg("CAN%d filter initialization failed: %d\n", priv->port, ret); + return ret; + } + can_dumpfiltregs(priv, "After filter initialization"); + + /* Attach the CAN RX FIFO 0 interrupt and TX interrupts. The others are not used */ + + ret = irq_attach(priv->canrx0, can_rx0interrupt); + if (ret < 0) + { + canlldbg("Failed to attach CAN%d RX0 IRQ (%d)", priv->port, priv->canrx0); + return ret; + } + + ret = irq_attach(priv->cantx, can_txinterrupt); + if (ret < 0) + { + canlldbg("Failed to attach CAN%d TX IRQ (%d)", priv->port, priv->cantx); + return ret; + } + + /* Enable the interrupts at the NVIC. Interrupts arestill disabled in + * the CAN module. Since we coming out of reset here, there should be + * no pending interrupts. + */ + + up_enable_irq(priv->canrx0); + up_enable_irq(priv->cantx); + return OK; +} + +/**************************************************************************** + * Name: can_shutdown + * + * Description: + * Disable the CAN. This method is called when the CAN device is closed. + * This method reverses the operation the setup method. + * + * Input Parameters: + * dev - An instance of the "upper half" can driver state structure. + * + * Returned Value: + * None + * + ****************************************************************************/ + +static void can_shutdown(FAR struct can_dev_s *dev) +{ + FAR struct stm32l4_can_s *priv = dev->cd_priv; + + canllvdbg("CAN%d\n", priv->port); + + /* Disable the RX FIFO 0 and TX interrupts */ + + up_disable_irq(priv->canrx0); + up_disable_irq(priv->cantx); + + /* Detach the RX FIFO 0 and TX interrupts */ + + irq_detach(priv->canrx0); + irq_detach(priv->cantx); + + /* And reset the hardware */ + + can_reset(dev); +} + +/**************************************************************************** + * Name: can_rxint + * + * Description: + * Call to enable or disable RX interrupts. + * + * Input Parameters: + * dev - An instance of the "upper half" can driver state structure. + * + * Returned Value: + * None + * + ****************************************************************************/ + +static void can_rxint(FAR struct can_dev_s *dev, bool enable) +{ + FAR struct stm32l4_can_s *priv = dev->cd_priv; + uint32_t regval; + + canllvdbg("CAN%d enable: %d\n", priv->port, enable); + + /* Enable/disable the FIFO 0 message pending interrupt */ + + regval = can_getreg(priv, STM32L4_CAN_IER_OFFSET); + if (enable) + { + regval |= CAN_IER_FMPIE0; + } + else + { + regval &= ~CAN_IER_FMPIE0; + } + can_putreg(priv, STM32L4_CAN_IER_OFFSET, regval); +} + +/**************************************************************************** + * Name: can_txint + * + * Description: + * Call to enable or disable TX interrupts. + * + * Input Parameters: + * dev - An instance of the "upper half" can driver state structure. + * + * Returned Value: + * None + * + ****************************************************************************/ + +static void can_txint(FAR struct can_dev_s *dev, bool enable) +{ + FAR struct stm32l4_can_s *priv = dev->cd_priv; + uint32_t regval; + + canllvdbg("CAN%d enable: %d\n", priv->port, enable); + + /* Support only disabling the transmit mailbox interrupt */ + + if (!enable) + { + regval = can_getreg(priv, STM32L4_CAN_IER_OFFSET); + regval &= ~CAN_IER_TMEIE; + can_putreg(priv, STM32L4_CAN_IER_OFFSET, regval); + } +} + +/**************************************************************************** + * Name: can_ioctl + * + * Description: + * All ioctl calls will be routed through this method + * + * Input Parameters: + * dev - An instance of the "upper half" can driver state structure. + * + * Returned Value: + * Zero on success; a negated errno on failure + * + ****************************************************************************/ + +static int can_ioctl(FAR struct can_dev_s *dev, int cmd, unsigned long arg) +{ + /* No CAN ioctls are supported */ + + return -ENOTTY; +} + +/**************************************************************************** + * Name: can_remoterequest + * + * Description: + * Send a remote request + * + * Input Parameters: + * dev - An instance of the "upper half" can driver state structure. + * + * Returned Value: + * Zero on success; a negated errno on failure + * + ****************************************************************************/ + +static int can_remoterequest(FAR struct can_dev_s *dev, uint16_t id) +{ +#warning "Remote request not implemented" + return -ENOSYS; +} + +/**************************************************************************** + * Name: can_send + * + * Description: + * Send one can message. + * + * One CAN-message consists of a maximum of 10 bytes. A message is + * composed of at least the first 2 bytes (when there are no data bytes). + * + * Byte 0: Bits 0-7: Bits 3-10 of the 11-bit CAN identifier + * Byte 1: Bits 5-7: Bits 0-2 of the 11-bit CAN identifier + * Bit 4: Remote Tranmission Request (RTR) + * Bits 0-3: Data Length Code (DLC) + * Bytes 2-10: CAN data + * + * Input Parameters: + * dev - An instance of the "upper half" can driver state structure. + * + * Returned Value: + * Zero on success; a negated errno on failure + * + ****************************************************************************/ + +static int can_send(FAR struct can_dev_s *dev, FAR struct can_msg_s *msg) +{ + FAR struct stm32l4_can_s *priv = dev->cd_priv; + FAR uint8_t *ptr; + uint32_t regval; + uint32_t tmp; + int dlc; + int txmb; + + canllvdbg("CAN%d ID: %d DLC: %d\n", priv->port, msg->cm_hdr.ch_id, msg->cm_hdr.ch_dlc); + + /* Select one empty transmit mailbox */ + + regval = can_getreg(priv, STM32L4_CAN_TSR_OFFSET); + if ((regval & CAN_TSR_TME0) != 0 && (regval & CAN_TSR_RQCP0) == 0) + { + txmb = 0; + } + else if ((regval & CAN_TSR_TME1) != 0 && (regval & CAN_TSR_RQCP1) == 0) + { + txmb = 1; + } + else if ((regval & CAN_TSR_TME2) != 0 && (regval & CAN_TSR_RQCP2) == 0) + { + txmb = 2; + } + else + { + canlldbg("ERROR: No available mailbox\n"); + return -EBUSY; + } + + /* Clear TXRQ, RTR, IDE, EXID, and STID fields */ + + regval = can_getreg(priv, STM32L4_CAN_TIR_OFFSET(txmb)); + regval &= ~(CAN_TIR_TXRQ | CAN_TIR_RTR | CAN_TIR_IDE | CAN_TIR_EXID_MASK | CAN_TIR_STID_MASK); + can_putreg(priv, STM32L4_CAN_TIR_OFFSET(txmb), regval); + + /* Set up the ID, standard 11-bit or extended 29-bit. */ + +#ifdef CONFIG_CAN_EXTID + regval &= ~CAN_TIR_EXID_MASK; + if (msg->cm_hdr.ch_extid) + { + DEBUGASSERT(msg->cm_hdr.ch_id < (1 << 29)); + regval |= (msg->cm_hdr.ch_id << CAN_TIR_EXID_SHIFT) | CAN_TIR_IDE; + } + else + { + DEBUGASSERT(msg->cm_hdr.ch_id < (1 << 11)); + regval |= msg->cm_hdr.ch_id << CAN_TIR_STID_SHIFT; + } +#else + regval &= ~CAN_TIR_STID_MASK; + regval |= (uint32_t)msg->cm_hdr.ch_id << CAN_TIR_STID_SHIFT; +#endif + can_putreg(priv, STM32L4_CAN_TIR_OFFSET(txmb), regval); + + /* Set up the DLC */ + + dlc = msg->cm_hdr.ch_dlc; + regval = can_getreg(priv, STM32L4_CAN_TDTR_OFFSET(txmb)); + regval &= ~(CAN_TDTR_DLC_MASK | CAN_TDTR_TGT); + regval |= (uint32_t)dlc << CAN_TDTR_DLC_SHIFT; + can_putreg(priv, STM32L4_CAN_TDTR_OFFSET(txmb), regval); + + /* Set up the data fields */ + + ptr = msg->cm_data; + regval = 0; + + if (dlc > 0) + { + tmp = (uint32_t)*ptr++; + regval = tmp << CAN_TDLR_DATA0_SHIFT; + + if (dlc > 1) + { + tmp = (uint32_t)*ptr++; + regval |= tmp << CAN_TDLR_DATA1_SHIFT; + + if (dlc > 2) + { + tmp = (uint32_t)*ptr++; + regval |= tmp << CAN_TDLR_DATA2_SHIFT; + + if (dlc > 3) + { + tmp = (uint32_t)*ptr++; + regval |= tmp << CAN_TDLR_DATA3_SHIFT; + } + } + } + } + can_putreg(priv, STM32L4_CAN_TDLR_OFFSET(txmb), regval); + + regval = 0; + if (dlc > 4) + { + tmp = (uint32_t)*ptr++; + regval = tmp << CAN_TDHR_DATA4_SHIFT; + + if (dlc > 5) + { + tmp = (uint32_t)*ptr++; + regval |= tmp << CAN_TDHR_DATA5_SHIFT; + + if (dlc > 6) + { + tmp = (uint32_t)*ptr++; + regval |= tmp << CAN_TDHR_DATA6_SHIFT; + + if (dlc > 7) + { + tmp = (uint32_t)*ptr++; + regval |= tmp << CAN_TDHR_DATA7_SHIFT; + } + } + } + } + can_putreg(priv, STM32L4_CAN_TDHR_OFFSET(txmb), regval); + + /* Enable the transmit mailbox empty interrupt (may already be enabled) */ + + regval = can_getreg(priv, STM32L4_CAN_IER_OFFSET); + regval |= CAN_IER_TMEIE; + can_putreg(priv, STM32L4_CAN_IER_OFFSET, regval); + + /* Request transmission */ + + regval = can_getreg(priv, STM32L4_CAN_TIR_OFFSET(txmb)); + regval |= CAN_TIR_TXRQ; /* Transmit Mailbox Request */ + can_putreg(priv, STM32L4_CAN_TIR_OFFSET(txmb), regval); + + can_dumpmbregs(priv, "After send"); + return OK; +} + +/**************************************************************************** + * Name: can_txready + * + * Description: + * Return true if the CAN hardware can accept another TX message. + * + * Input Parameters: + * dev - An instance of the "upper half" can driver state structure. + * + * Returned Value: + * True if the CAN hardware is ready to accept another TX message. + * + ****************************************************************************/ + +static bool can_txready(FAR struct can_dev_s *dev) +{ + FAR struct stm32l4_can_s *priv = dev->cd_priv; + uint32_t regval; + + /* Return true if any mailbox is available */ + + regval = can_getreg(priv, STM32L4_CAN_TSR_OFFSET); + canllvdbg("CAN%d TSR: %08x\n", priv->port, regval); + + if ((regval & CAN_ALL_MAILBOXES) != 0) + { + return true; + } + return false; +} + +/**************************************************************************** + * Name: can_txempty + * + * Description: + * Return true if all message have been sent. If for example, the CAN + * hardware implements FIFOs, then this would mean the transmit FIFO is + * empty. This method is called when the driver needs to make sure that + * all characters are "drained" from the TX hardware before calling + * co_shutdown(). + * + * Input Parameters: + * dev - An instance of the "upper half" can driver state structure. + * + * Returned Value: + * True if there are no pending TX transfers in the CAN hardware. + * + ****************************************************************************/ + +static bool can_txempty(FAR struct can_dev_s *dev) +{ + FAR struct stm32l4_can_s *priv = dev->cd_priv; + uint32_t regval; + + /* Return true if all mailboxes are available */ + + regval = can_getreg(priv, STM32L4_CAN_TSR_OFFSET); + canllvdbg("CAN%d TSR: %08x\n", priv->port, regval); + + if ((regval & CAN_ALL_MAILBOXES) == CAN_ALL_MAILBOXES) + { + return true; + } + return false; +} + +/**************************************************************************** + * Name: can_rx0interrupt + * + * Description: + * CAN RX FIFO 0 interrupt handler + * + * Input Parameters: + * irq - The IRQ number of the interrupt. + * context - The register state save array at the time of the interrupt. + * + * Returned Value: + * Zero on success; a negated errno on failure + * + ****************************************************************************/ + +static int can_rx0interrupt(int irq, void *context) +{ + FAR struct can_dev_s *dev = NULL; + FAR struct stm32l4_can_s *priv; + struct can_hdr_s hdr; + uint8_t data[CAN_MAXDATALEN]; + uint32_t regval; + int npending; + int ret; + + dev = &g_can1dev; + priv = dev->cd_priv; + + /* Verify that a message is pending in FIFO 0 */ + + regval = can_getreg(priv, STM32L4_CAN_RF0R_OFFSET); + npending = (regval & CAN_RFR_FMP_MASK) >> CAN_RFR_FMP_SHIFT; + if (npending < 1) + { + canlldbg("WARNING: No messages pending\n"); + return OK; + } + + can_dumpmbregs(priv, "RX0 interrupt"); + + /* Get the CAN identifier. */ + + regval = can_getreg(priv, STM32L4_CAN_RI0R_OFFSET); + +#ifdef CONFIG_CAN_EXTID + if ((regval & CAN_RIR_IDE) != 0) + { + hdr.ch_id = (regval & CAN_RIR_EXID_MASK) >> CAN_RIR_EXID_SHIFT; + hdr.ch_extid = true; + } + else + { + hdr.ch_id = (regval & CAN_RIR_STID_MASK) >> CAN_RIR_STID_SHIFT; + hdr.ch_extid = false; + } +#else + if ((regval & CAN_RIR_IDE) != 0) + { + canlldbg("ERROR: Received message with extended identifier. Dropped\n"); + ret = -ENOSYS; + goto errout; + } + + hdr.ch_id = (regval & CAN_RIR_STID_MASK) >> CAN_RIR_STID_SHIFT; +#endif + + /* Clear the error indication and unused bits */ + +#ifdef CONFIG_CAN_ERRORS + hdr.ch_error = 0; /* Error reporting not supported */ +#endif + hdr.ch_unused = 0; + + /* Extract the RTR bit */ + + hdr.ch_rtr = (regval & CAN_RIR_RTR) != 0 ? true : false; + + /* Get the DLC */ + + regval = can_getreg(priv, STM32L4_CAN_RDT0R_OFFSET); + hdr.ch_dlc = (regval & CAN_RDTR_DLC_MASK) >> CAN_RDTR_DLC_SHIFT; + + /* Save the message data */ + + regval = can_getreg(priv, STM32L4_CAN_RDL0R_OFFSET); + data[0] = (regval & CAN_RDLR_DATA0_MASK) >> CAN_RDLR_DATA0_SHIFT; + data[1] = (regval & CAN_RDLR_DATA1_MASK) >> CAN_RDLR_DATA1_SHIFT; + data[2] = (regval & CAN_RDLR_DATA2_MASK) >> CAN_RDLR_DATA2_SHIFT; + data[3] = (regval & CAN_RDLR_DATA3_MASK) >> CAN_RDLR_DATA3_SHIFT; + + regval = can_getreg(priv, STM32L4_CAN_RDH0R_OFFSET); + data[4] = (regval & CAN_RDHR_DATA4_MASK) >> CAN_RDHR_DATA4_SHIFT; + data[5] = (regval & CAN_RDHR_DATA5_MASK) >> CAN_RDHR_DATA5_SHIFT; + data[6] = (regval & CAN_RDHR_DATA6_MASK) >> CAN_RDHR_DATA6_SHIFT; + data[7] = (regval & CAN_RDHR_DATA7_MASK) >> CAN_RDHR_DATA7_SHIFT; + + /* Provide the data to the upper half driver */ + + ret = can_receive(dev, &hdr, data); + + /* Release the FIFO0 */ + +#ifndef CONFIG_CAN_EXTID +errout: +#endif + regval = can_getreg(priv, STM32L4_CAN_RF0R_OFFSET); + regval |= CAN_RFR_RFOM; + can_putreg(priv, STM32L4_CAN_RF0R_OFFSET, regval); + return ret; +} + +/**************************************************************************** + * Name: can_txinterrupt + * + * Description: + * CAN TX mailbox complete interrupt handler + * + * Input Parameters: + * irq - The IRQ number of the interrupt. + * context - The register state save array at the time of the interrupt. + * + * Returned Value: + * Zero on success; a negated errno on failure + * + ****************************************************************************/ + +static int can_txinterrupt(int irq, void *context) +{ + FAR struct can_dev_s *dev = NULL; + FAR struct stm32l4_can_s *priv; + uint32_t regval; + + dev = &g_can1dev; + priv = dev->cd_priv; + + /* Get the transmit status */ + + regval = can_getreg(priv, STM32L4_CAN_TSR_OFFSET); + + /* Check for RQCP0: Request completed mailbox 0 */ + + if ((regval & CAN_TSR_RQCP0) != 0) + { + /* Writing '1' to RCP0 clears RCP0 and all the status bits (TXOK0, + * ALST0 and TERR0) for Mailbox 0. + */ + + can_putreg(priv, STM32L4_CAN_TSR_OFFSET, CAN_TSR_RQCP0); + + /* Check for errors */ + + if ((regval & CAN_TSR_TXOK0) != 0) + { + /* Tell the upper half that the tansfer is finished. */ + + (void)can_txdone(dev); + } + } + + /* Check for RQCP1: Request completed mailbox 1 */ + + if ((regval & CAN_TSR_RQCP1) != 0) + { + /* Writing '1' to RCP1 clears RCP1 and all the status bits (TXOK1, + * ALST1 and TERR1) for Mailbox 1. + */ + + can_putreg(priv, STM32L4_CAN_TSR_OFFSET, CAN_TSR_RQCP1); + + /* Check for errors */ + + if ((regval & CAN_TSR_TXOK1) != 0) + { + /* Tell the upper half that the tansfer is finished. */ + + (void)can_txdone(dev); + } + } + + /* Check for RQCP2: Request completed mailbox 2 */ + + if ((regval & CAN_TSR_RQCP2) != 0) + { + /* Writing '1' to RCP2 clears RCP2 and all the status bits (TXOK2, + * ALST2 and TERR2) for Mailbox 2. + */ + + can_putreg(priv, STM32L4_CAN_TSR_OFFSET, CAN_TSR_RQCP2); + + /* Check for errors */ + + if ((regval & CAN_TSR_TXOK2) != 0) + { + /* Tell the upper half that the tansfer is finished. */ + + (void)can_txdone(dev); + } + } + + return OK; +} + +/**************************************************************************** + * Name: can_bittiming + * + * Description: + * Set the CAN bit timing register (BTR) based on the configured BAUD. + * + * "The bit timing logic monitors the serial bus-line and performs sampling + * and adjustment of the sample point by synchronizing on the start-bit edge + * and resynchronizing on the following edges. + * + * "Its operation may be explained simply by splitting nominal bit time into + * three segments as follows: + * + * 1. "Synchronization segment (SYNC_SEG): a bit change is expected to occur + * within this time segment. It has a fixed length of one time quantum + * (1 x tCAN). + * 2. "Bit segment 1 (BS1): defines the location of the sample point. It + * includes the PROP_SEG and PHASE_SEG1 of the CAN standard. Its duration + * is programmable between 1 and 16 time quanta but may be automatically + * lengthened to compensate for positive phase drifts due to differences + * in the frequency of the various nodes of the network. + * 3. "Bit segment 2 (BS2): defines the location of the transmit point. It + * represents the PHASE_SEG2 of the CAN standard. Its duration is + * programmable between 1 and 8 time quanta but may also be automatically + * shortened to compensate for negative phase drifts." + * + * Pictorially: + * + * |<----------------- NOMINAL BIT TIME ----------------->| + * |<- SYNC_SEG ->|<------ BS1 ------>|<------ BS2 ------>| + * |<---- Tq ---->|<----- Tbs1 ------>|<----- Tbs2 ------>| + * + * Where + * Tbs1 is the duration of the BS1 segment + * Tbs2 is the duration of the BS2 segment + * Tq is the "Time Quantum" + * + * Relationships: + * + * baud = 1 / bit_time + * bit_time = Tq + Tbs1 + Tbs2 + * Tbs1 = Tq * ts1 + * Tbs2 = Tq * ts2 + * Tq = brp * Tpclk1 + * + * Where: + * Tpclk1 is the period of the APB1 clock (PCLK1). + * + * Input Parameter: + * priv - A reference to the CAN block status + * + * Returned Value: + * Zero on success; a negated errno on failure + * + ****************************************************************************/ + +static int can_bittiming(struct stm32l4_can_s *priv) +{ + uint32_t tmp; + uint32_t brp; + uint32_t ts1; + uint32_t ts2; + + canllvdbg("CAN%d PCLK1: %d baud: %d\n", + priv->port, STM32L4_PCLK1_FREQUENCY, priv->baud); + + /* Try to get CAN_BIT_QUANTA quanta in one bit_time. + * + * bit_time = Tq*(ts1 + ts2 + 1) + * nquanta = bit_time / Tq + * nquanta = (ts1 + ts2 + 1) + * + * bit_time = brp * Tpclk1 * (ts1 + ts2 + 1) + * nquanta = bit_time / brp / Tpclk1 + * = PCLK1 / baud / brp + * brp = PCLK1 / baud / nquanta; + * + * Example: + * PCLK1 = 42,000,000 baud = 1,000,000 nquanta = 14 : brp = 3 + * PCLK1 = 42,000,000 baud = 700,000 nquanta = 14 : brp = 4 + */ + + tmp = STM32L4_PCLK1_FREQUENCY / priv->baud; + if (tmp < CAN_BIT_QUANTA) + { + /* At the smallest brp value (1), there are already too few bit times + * (PCLCK1 / baud) to meet our goal. brp must be one and we need + * make some reasonable guesses about ts1 and ts2. + */ + + brp = 1; + + /* In this case, we have to guess a good value for ts1 and ts2 */ + + ts1 = (tmp - 1) >> 1; + ts2 = tmp - ts1 - 1; + if (ts1 == ts2 && ts1 > 1 && ts2 < CAN_BTR_TSEG2_MAX) + { + ts1--; + ts2++; + } + } + + /* Otherwise, nquanta is CAN_BIT_QUANTA, ts1 is CONFIG_CAN_TSEG1, ts2 is + * CONFIG_CAN_TSEG2 and we calculate brp to achieve CAN_BIT_QUANTA quanta + * in the bit time + */ + + else + { + ts1 = CONFIG_CAN_TSEG1; + ts2 = CONFIG_CAN_TSEG2; + brp = (tmp + (CAN_BIT_QUANTA/2)) / CAN_BIT_QUANTA; + DEBUGASSERT(brp >= 1 && brp <= CAN_BTR_BRP_MAX); + } + + canllvdbg("TS1: %d TS2: %d BRP: %d\n", ts1, ts2, brp); + + /* Configure bit timing. This also does the following, less obvious + * things. Unless loopback mode is enabled, it: + * + * - Disables silent mode. + * - Disables loopback mode. + * + * NOTE that for the time being, SJW is set to 1 just because I don't + * know any better. + */ + + tmp = ((brp - 1) << CAN_BTR_BRP_SHIFT) | ((ts1 - 1) << CAN_BTR_TS1_SHIFT) | + ((ts2 - 1) << CAN_BTR_TS2_SHIFT) | ((1 - 1) << CAN_BTR_SJW_SHIFT); +#ifdef CONFIG_CAN_LOOPBACK +//tmp |= (CAN_BTR_LBKM | CAN_BTR_SILM); + tmp |= CAN_BTR_LBKM; +#endif + + can_putreg(priv, STM32L4_CAN_BTR_OFFSET, tmp); + return OK; +} + +/**************************************************************************** + * Name: can_cellinit + * + * Description: + * CAN cell initialization + * + * Input Parameter: + * priv - A pointer to the private data structure for this CAN block + * + * Returned Value: + * Zero on success; a negated errno value on failure. + * + ****************************************************************************/ + +static int can_cellinit(struct stm32l4_can_s *priv) +{ + volatile uint32_t timeout; + uint32_t regval; + int ret; + + canllvdbg("CAN%d\n", priv->port); + + /* Exit from sleep mode */ + + regval = can_getreg(priv, STM32L4_CAN_MCR_OFFSET); + regval &= ~CAN_MCR_SLEEP; + can_putreg(priv, STM32L4_CAN_MCR_OFFSET, regval); + + /* Configure CAN behavior. Priority driven request order, not message ID. */ + + regval |= CAN_MCR_TXFP; + can_putreg(priv, STM32L4_CAN_MCR_OFFSET, regval); + + /* Enter initialization mode */ + + regval |= CAN_MCR_INRQ; + can_putreg(priv, STM32L4_CAN_MCR_OFFSET, regval); + + /* Wait until initialization mode is acknowledged */ + + for (timeout = INAK_TIMEOUT; timeout > 0; timeout--) + { + regval = can_getreg(priv, STM32L4_CAN_MSR_OFFSET); + if ((regval & CAN_MSR_INAK) != 0) + { + /* We are in initialization mode */ + + break; + } + } + + /* Check for a timeout */ + + if (timeout < 1) + { + canlldbg("ERROR: Timed out waiting to enter initialization mode\n"); + return -ETIMEDOUT; + } + + /* Disable the following modes: + * + * - Time triggered communication mode + * - Automatic bus-off management + * - Automatic wake-up mode + * - No automatic retransmission + * - Receive FIFO locked mode + * - Transmit FIFO priority + */ + + regval = can_getreg(priv, STM32L4_CAN_MCR_OFFSET); + regval &= ~(CAN_MCR_TXFP | CAN_MCR_RFLM | CAN_MCR_NART | CAN_MCR_AWUM | CAN_MCR_ABOM | CAN_MCR_TTCM); + can_putreg(priv, STM32L4_CAN_MCR_OFFSET, regval); + + /* Configure bit timing. */ + + ret = can_bittiming(priv); + if (ret < 0) + { + canlldbg("ERROR: Failed to set bit timing: %d\n", ret); + return ret; + } + + /* Exit initialization mode */ + + regval = can_getreg(priv, STM32L4_CAN_MCR_OFFSET); + regval &= ~CAN_MCR_INRQ; + can_putreg(priv, STM32L4_CAN_MCR_OFFSET, regval); + + /* Wait until the initialization mode exit is acknowledged */ + + for (timeout = INAK_TIMEOUT; timeout > 0; timeout--) + { + regval = can_getreg(priv, STM32L4_CAN_MSR_OFFSET); + if ((regval & CAN_MSR_INAK) == 0) + { + /* We are out of initialization mode */ + + break; + } + } + + /* Check for a timeout */ + + if (timeout < 1) + { + canlldbg("ERROR: Timed out waiting to exit initialization mode: %08x\n", regval); + return -ETIMEDOUT; + } + return OK; +} + +/**************************************************************************** + * Name: can_filterinit + * + * Description: + * CAN filter initialization. CAN filters are not currently used by this + * driver. The CAN filters can be configured in a different way: + * + * 1. As a match of specific IDs in a list (IdList mode), or as + * 2. And ID and a mask (IdMask mode). + * + * Filters can also be configured as: + * + * 3. 16- or 32-bit. The advantage of 16-bit filters is that you get + * more filters; The advantage of 32-bit filters is that you get + * finer control of the filtering. + * + * There is no need to set up one filter for each CAN since STM32L4 only + * contains one CAN devices. If one day some STM32L4 has 2 CANs, then + * code will have to be imported from the STM32 port. + * + * 32-bit IdMask mode is configured. However, both the ID and the MASK + * are set to zero thus supressing all filtering because anything masked + * with zero matches zero. + * + * Input Parameter: + * priv - A pointer to the private data structure for this CAN block + * + * Returned Value: + * Zero on success; a negated errno value on failure. + * + ****************************************************************************/ + +static int can_filterinit(struct stm32l4_can_s *priv) +{ + uint32_t regval; + uint32_t bitmask; + + canllvdbg("CAN%d filter: %d\n", priv->port, priv->filter); + + /* Get the bitmask associated with the filter used by this CAN block */ + + bitmask = ((uint32_t)1) << priv->filter; + + /* Enter filter initialization mode */ + + regval = can_getfreg(priv, STM32L4_CAN_FMR_OFFSET); + regval |= CAN_FMR_FINIT; + can_putfreg(priv, STM32L4_CAN_FMR_OFFSET, regval); + + /* Disable the filter */ + + regval = can_getfreg(priv, STM32L4_CAN_FA1R_OFFSET); + regval &= ~bitmask; + can_putfreg(priv, STM32L4_CAN_FA1R_OFFSET, regval); + + /* Select the 32-bit scale for the filter */ + + regval = can_getfreg(priv, STM32L4_CAN_FS1R_OFFSET); + regval |= bitmask; + can_putfreg(priv, STM32L4_CAN_FS1R_OFFSET, regval); + + /* There are 14 or 28 filter banks (depending) on the device. Each filter bank is + * composed of two 32-bit registers, CAN_FiR: + */ + + can_putfreg(priv, STM32L4_CAN_FIR_OFFSET(priv->filter, 1), 0); + can_putfreg(priv, STM32L4_CAN_FIR_OFFSET(priv->filter, 2), 0); + + /* Set Id/Mask mode for the filter */ + + regval = can_getfreg(priv, STM32L4_CAN_FM1R_OFFSET); + regval &= ~bitmask; + can_putfreg(priv, STM32L4_CAN_FM1R_OFFSET, regval); + + /* Assign FIFO 0 for the filter */ + + regval = can_getfreg(priv, STM32L4_CAN_FFA1R_OFFSET); + regval &= ~bitmask; + can_putfreg(priv, STM32L4_CAN_FFA1R_OFFSET, regval); + + /* Enable the filter */ + + regval = can_getfreg(priv, STM32L4_CAN_FA1R_OFFSET); + regval |= bitmask; + can_putfreg(priv, STM32L4_CAN_FA1R_OFFSET, regval); + + /* Exit filter initialization mode */ + + regval = can_getfreg(priv, STM32L4_CAN_FMR_OFFSET); + regval &= ~CAN_FMR_FINIT; + can_putfreg(priv, STM32L4_CAN_FMR_OFFSET, regval); + return OK; +} + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: stm32l4_caninitialize + * + * Description: + * Initialize the selected CAN port + * + * Input Parameter: + * Port number (for hardware that has mutiple CAN interfaces) + * + * Returned Value: + * Valid CAN device structure reference on succcess; a NULL on failure + * + ****************************************************************************/ + +FAR struct can_dev_s *stm32l4_caninitialize(int port) +{ + struct can_dev_s *dev = NULL; + + canvdbg("CAN%d\n", port); + + /* NOTE: Peripherical clocking for CAN1 and/or CAN2 was already provided + * by stm32l4_clockconfig() early in the reset sequence. + */ + +#ifdef CONFIG_STM32L4_CAN1 + if (port == 1) + { + /* Select the CAN1 device structure */ + + dev = &g_can1dev; + + /* Configure CAN1 pins. The ambiguous settings in the stm32*_pinmap.h + * file must have been disambiguated in the board.h file. + */ + + stm32l4_configgpio(GPIO_CAN1_RX); + stm32l4_configgpio(GPIO_CAN1_TX); + } + else +#endif + { + candbg("ERROR: Unsupported port %d\n", port); + return NULL; + } + + return dev; +} + +#endif /* CONFIG_CAN && (CONFIG_STM32L4_CAN1 || CONFIG_STM32L4_CAN2) */ + diff --git a/arch/arm/src/stm32l4/stm32l4_can.h b/arch/arm/src/stm32l4/stm32l4_can.h index e69de29bb2..740913f2a5 100644 --- a/arch/arm/src/stm32l4/stm32l4_can.h +++ b/arch/arm/src/stm32l4/stm32l4_can.h @@ -0,0 +1,142 @@ +/************************************************************************************ + * arch/arm/src/stm32l4/stm32l4_can.h + * + * Copyright (C) 2009, 2011, 2015 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Adaptations for stm32l4: + * Copyright (C) 2016 Sebastien Lorquet. All rights reserved. + * Author: Sebastien Lorquet + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ************************************************************************************/ + +#ifndef __ARCH_ARM_SRC_STM32L4_STM32L4_CAN_H +#define __ARCH_ARM_SRC_STM32L4_STM32L4_CAN_H + +/************************************************************************************ + * Included Files + ************************************************************************************/ + +#include + +#include "chip.h" +#include "chip/stm32l4_can.h" + +#include + +/************************************************************************************ + * Pre-processor Definitions + ************************************************************************************/ +/* Configuration ********************************************************************/ +/* Up to 1 CAN interfaces are supported */ + +#if STM32L4_NCAN < 1 +# undef CONFIG_STM32L4_CAN1 +#endif + +#if defined(CONFIG_CAN) && defined(CONFIG_STM32L4_CAN1) + +/* CAN BAUD */ + +#if defined(CONFIG_STM32L4_CAN1) && !defined(CONFIG_CAN1_BAUD) +# error "CONFIG_CAN1_BAUD is not defined" +#endif + +/* User-defined TSEG1 and TSEG2 settings may be used. + * + * CONFIG_CAN_TSEG1 = the number of CAN time quanta in segment 1 + * CONFIG_CAN_TSEG2 = the number of CAN time quanta in segment 2 + * CAN_BIT_QUANTA = The number of CAN time quanta in on bit time + */ + +#ifndef CONFIG_CAN_TSEG1 +# define CONFIG_CAN_TSEG1 6 +#endif + +#if CONFIG_CAN_TSEG1 < 1 || CONFIG_CAN_TSEG1 > CAN_BTR_TSEG1_MAX +# errror "CONFIG_CAN_TSEG1 is out of range" +#endif + +#ifndef CONFIG_CAN_TSEG2 +# define CONFIG_CAN_TSEG2 7 +#endif + +#if CONFIG_CAN_TSEG2 < 1 || CONFIG_CAN_TSEG2 > CAN_BTR_TSEG2_MAX +# errror "CONFIG_CAN_TSEG2 is out of range" +#endif + +/************************************************************************************ + * Public Types + ************************************************************************************/ + +#ifndef __ASSEMBLY__ + +/************************************************************************************ + * Public Data + ************************************************************************************/ + +#undef EXTERN +#if defined(__cplusplus) +#define EXTERN extern "C" +extern "C" +{ +#else +#define EXTERN extern +#endif + +/************************************************************************************ + * Public Functions + ************************************************************************************/ + +/**************************************************************************** + * Name: stm32l4_caninitialize + * + * Description: + * Initialize the selected CAN port + * + * Input Parameter: + * Port number (for hardware that has mutiple CAN interfaces) + * + * Returned Value: + * Valid CAN device structure reference on succcess; a NULL on failure + * + ****************************************************************************/ + +struct can_dev_s; +FAR struct can_dev_s *stm32l4_caninitialize(int port); + +#undef EXTERN +#if defined(__cplusplus) +} +#endif + +#endif /* __ASSEMBLY__ */ +#endif /* CONFIG_CAN && CONFIG_STM32L4_CAN1 */ +#endif /* __ARCH_ARM_SRC_STM32L4_STM32L4_CAN_H */ -- GitLab From ef66f641e9e3d776896e557859cf22a7605ab713 Mon Sep 17 00:00:00 2001 From: Sebastien Lorquet Date: Thu, 19 May 2016 21:57:59 +0200 Subject: [PATCH 198/307] small fix left from stm32 --- arch/arm/src/stm32l4/chip/stm32l4_can.h | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/arch/arm/src/stm32l4/chip/stm32l4_can.h b/arch/arm/src/stm32l4/chip/stm32l4_can.h index 4a5034f6da..75c48cfeb8 100644 --- a/arch/arm/src/stm32l4/chip/stm32l4_can.h +++ b/arch/arm/src/stm32l4/chip/stm32l4_can.h @@ -4,6 +4,10 @@ * Copyright (C) 2009, 2011, 2013 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * + * Adaptations for stm32l4: + * Copyright (C) 2016 Sebastien Lorquet. All rights reserved. + * Author: Sebastien Lorquet + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -61,12 +65,7 @@ /* Number of filters depends on silicon */ -#if defined(CONFIG_STM32L4_CONNECTIVITYLINE) || defined(CONFIG_STM32L4_STM32F20XX) || \ - defined(CONFIG_STM32L4_STM32F30XX) || defined(CONFIG_STM32L4_STM32F40XX) -# define CAN_NFILTERS 28 -#else -# define CAN_NFILTERS 14 -#endif +#define CAN_NFILTERS 14 /* Register Offsets *****************************************************************/ -- GitLab From 7f7d4e664cd56efaf47475c4c692020c611d145f Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 19 May 2016 14:09:00 -0600 Subject: [PATCH 199/307] Completely trivial changes from review of last PR --- arch/arm/src/stm32l4/Kconfig | 1 - arch/arm/src/stm32l4/stm32l4_can.c | 12 +++++++++--- arch/arm/src/stm32l4/stm32l4_can.h | 1 + configs/nucleo-144/README.txt | 2 +- 4 files changed, 11 insertions(+), 5 deletions(-) diff --git a/arch/arm/src/stm32l4/Kconfig b/arch/arm/src/stm32l4/Kconfig index d43d96475d..366fe539a1 100644 --- a/arch/arm/src/stm32l4/Kconfig +++ b/arch/arm/src/stm32l4/Kconfig @@ -886,5 +886,4 @@ config CAN_TSEG2 The number of CAN time quanta in segment 2. Default: 7 endmenu - endif # ARCH_CHIP_STM32L4 diff --git a/arch/arm/src/stm32l4/stm32l4_can.c b/arch/arm/src/stm32l4/stm32l4_can.c index b199525fcb..81efb677d2 100644 --- a/arch/arm/src/stm32l4/stm32l4_can.c +++ b/arch/arm/src/stm32l4/stm32l4_can.c @@ -59,7 +59,6 @@ #include "up_internal.h" #include "up_arch.h" - #include "chip.h" #include "stm32l4.h" #include "stm32l4_can.h" @@ -69,6 +68,7 @@ /**************************************************************************** * Pre-processor Definitions ****************************************************************************/ + /* Delays *******************************************************************/ /* Time out for INAK bit */ @@ -313,7 +313,6 @@ static uint32_t can_getfreg(struct stm32l4_can_s *priv, int offset) #ifdef CONFIG_CAN_REGDEBUG static void can_vputreg(uint32_t addr, uint32_t value) { - /* Show the register value being written */ lldbg("%08x<-%08x\n", addr, value); @@ -592,6 +591,7 @@ static int can_setup(FAR struct can_dev_s *dev) canlldbg("CAN%d filter initialization failed: %d\n", priv->port, ret); return ret; } + can_dumpfiltregs(priv, "After filter initialization"); /* Attach the CAN RX FIFO 0 interrupt and TX interrupts. The others are not used */ @@ -688,6 +688,7 @@ static void can_rxint(FAR struct can_dev_s *dev, bool enable) { regval &= ~CAN_IER_FMPIE0; } + can_putreg(priv, STM32L4_CAN_IER_OFFSET, regval); } @@ -880,6 +881,7 @@ static int can_send(FAR struct can_dev_s *dev, FAR struct can_msg_s *msg) } } } + can_putreg(priv, STM32L4_CAN_TDLR_OFFSET(txmb), regval); regval = 0; @@ -906,6 +908,7 @@ static int can_send(FAR struct can_dev_s *dev, FAR struct can_msg_s *msg) } } } + can_putreg(priv, STM32L4_CAN_TDHR_OFFSET(txmb), regval); /* Enable the transmit mailbox empty interrupt (may already be enabled) */ @@ -952,6 +955,7 @@ static bool can_txready(FAR struct can_dev_s *dev) { return true; } + return false; } @@ -987,6 +991,7 @@ static bool can_txempty(FAR struct can_dev_s *dev) { return true; } + return false; } @@ -1288,6 +1293,7 @@ static int can_bittiming(struct stm32l4_can_s *priv) ts1 = (tmp - 1) >> 1; ts2 = tmp - ts1 - 1; + if (ts1 == ts2 && ts1 > 1 && ts2 < CAN_BTR_TSEG2_MAX) { ts1--; @@ -1439,6 +1445,7 @@ static int can_cellinit(struct stm32l4_can_s *priv) canlldbg("ERROR: Timed out waiting to exit initialization mode: %08x\n", regval); return -ETIMEDOUT; } + return OK; } @@ -1589,4 +1596,3 @@ FAR struct can_dev_s *stm32l4_caninitialize(int port) } #endif /* CONFIG_CAN && (CONFIG_STM32L4_CAN1 || CONFIG_STM32L4_CAN2) */ - diff --git a/arch/arm/src/stm32l4/stm32l4_can.h b/arch/arm/src/stm32l4/stm32l4_can.h index 740913f2a5..f9dad5d89f 100644 --- a/arch/arm/src/stm32l4/stm32l4_can.h +++ b/arch/arm/src/stm32l4/stm32l4_can.h @@ -54,6 +54,7 @@ /************************************************************************************ * Pre-processor Definitions ************************************************************************************/ + /* Configuration ********************************************************************/ /* Up to 1 CAN interfaces are supported */ diff --git a/configs/nucleo-144/README.txt b/configs/nucleo-144/README.txt index f87f421a75..2e08a08469 100644 --- a/configs/nucleo-144/README.txt +++ b/configs/nucleo-144/README.txt @@ -58,7 +58,7 @@ Common Board Features: provide a ST-Link for programming, debug similar to the OpenOcd FTDI function - USB to JTAG front-end. - Expansion I/F ST Zio and Extended Ardino and Morpho Headers + Expansion I/F: ST Zio and Extended Ardino and Morpho Headers Nucleo F746ZG ============= -- GitLab From 8fac871cc9a76c888862809c8732c9277c86971f Mon Sep 17 00:00:00 2001 From: David Sidrane Date: Thu, 19 May 2016 14:33:54 -0600 Subject: [PATCH 200/307] Adds a JTAG config and ERASE config to Kconfig to set the CCFG_SYSIO SYSIO Pins MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit • SYSIO4: PB4 or TDI Assignment 0: TDI function selected. 1: PB4 function selected. • SYSIO5: PB5 or TDO/TRACESWO Assignment 0: TDO/TRACESWO function selected. 1: PB5 function selected. • SYSIO6: PB6 or TMS/SWDIO Assignment 0: TMS/SWDIO function selected. 1: PB6 function selected. • SYSIO7: PB7 or TCK/SWCLK Assignment 0: TCK/SWCLK function selected. 1: PB7 function selected. • SYSIO12: PB12 or ERASE Assignment 0: ERASE function selected. 1: PB12 function selected. The thing I did not add is warning or compilation failure, (to save the next guy the hassle), at ALL the driver points that uses the these pins. I did remove this /* To use the USART1 as an USART, the SYSIO Pin4 must be bound to PB4 * instead of TDI */ uint32_t sysioreg = getreg32(SAM_MATRIX_CCFG_SYSIO); sysioreg |= MATRIX_CCFG_SYSIO_SYSIO4; putreg32(sysioreg, SAM_MATRIX_CCFG_SYSIO); in sam_lowputc.c in favor of an #error - because the default is an input TDI and driving it blindly to an output TXD1, would be a contention. --- arch/arm/src/samv7/Kconfig | 69 ++++++++++++++++++++++++++++++++ arch/arm/src/samv7/sam_gpio.c | 51 +++++++++++++++++++++-- arch/arm/src/samv7/sam_gpio.h | 18 +++++++++ arch/arm/src/samv7/sam_lowputc.c | 17 ++++---- arch/arm/src/samv7/sam_start.c | 1 + 5 files changed, 144 insertions(+), 12 deletions(-) diff --git a/arch/arm/src/samv7/Kconfig b/arch/arm/src/samv7/Kconfig index 5a68712427..61186d7b20 100644 --- a/arch/arm/src/samv7/Kconfig +++ b/arch/arm/src/samv7/Kconfig @@ -549,6 +549,75 @@ config SAMV7_RSWDT endmenu # SAMV7 Peripheral Selection +choice + prompt "JTAG IO Configuration" + default SAMV7_JTAG_FULL_ENABLE + ---help--- + JTAG Enable settings (by default the IO for JTAG-DP and SW-DP are + enabled) + +config SAMV7_JTAG_DISABLE + bool "Disable all JTAG IO" + ---help--- + JTAG Enable settings (by default the IO for JTAG-DP and SW-DP are + enabled) + + When JTAG is disabled PB4-BP7 is assigned as a GPIO and can be + configured for use as GPIO or a Peripheral + +config SAMV7_JTAG_FULL_ENABLE + bool "Enable full JTAG IO to use JTAG-DP + SW-DP" + ---help--- + The JTAG IO is configured for both JTAG-DP + SW-DP" + + PB4 is TDI + PB5 is TDO/TRACESWO + PB6 is TMS/SWDIO + PB7 is TCK/SWCLK + +config SAMV7_JTAG_FULL_SW_ENABLE + bool "Set JTAG-DP IO disabled and Full SW-DP IO enabled" + ---help--- + JTAG IO is configured for SW-DP with Trace" + + PB5 is TDO/TRACESWO + PB6 is TMS/SWDIO + PB7 is TCK/SWCLK + +config SAMV7_JTAG_SW_ENABLE + bool "Set JTAG-DP IO disabled and SW-DP IO enabled" + ---help--- + JTAG IO is configured for SW-DP without Trace " + + PB6 is TMS/SWDIO + PB7 is TCK/SWCLK + +endchoice # JTAG IO Configuration + +choice + prompt "ERASE Pin Configuration" + default SAMV7_ERASE_ENABLE + ---help--- + ERASE Pin Enable settings (by default ERASE pin is enabled) + +config SAMV7_ERASE_DISABLE + bool "Disable ERASE Pin" + ---help--- + ERASE Pin Enable settings (by default ERASE pin is enabled) + + When the ERASE pin is disabled PB12 is assigned as a GPIO and can be + configured for use as GPIO or a Peripheral. + + N.B. a low level must be ensured at startup to prevent Flash erase before + the user application sets PB12 into PIO mode, + +config SAMV7_ERASE_ENABLE + bool "Enable ERASE Pin" + ---help--- + The ERASE pin is configured to reinitialize the Flash content. + +endchoice + menuconfig SAMV7_GPIO_IRQ bool "GPIO pin interrupts" ---help--- diff --git a/arch/arm/src/samv7/sam_gpio.c b/arch/arm/src/samv7/sam_gpio.c index 628c1979f8..0cd5596191 100644 --- a/arch/arm/src/samv7/sam_gpio.c +++ b/arch/arm/src/samv7/sam_gpio.c @@ -54,14 +54,30 @@ #include "sam_gpio.h" #include "chip/sam_pio.h" +#include "chip/sam_matrix.h" /**************************************************************************** * Pre-processor Definitions ****************************************************************************/ -/**************************************************************************** - * Private Types - ****************************************************************************/ +#if !defined(CONFIG_SAMV7_ERASE_ENABLE) || \ + !defined(CONFIG_SAMV7_JTAG_FULL_ENABLE) +# if defined(CONFIG_SAMV7_ERASE_DISABLE) +# define SYSIO_ERASE_BIT MATRIX_CCFG_SYSIO_SYSIO12 +# else +# define SYSIO_ERASE_BIT 0 +# endif +# if defined(CONFIG_SAMV7_JTAG_DISABLE) +# define SYSIO_BITS (MATRIX_CCFG_SYSIO_SYSIO4 | MATRIX_CCFG_SYSIO_SYSIO5 | \ + MATRIX_CCFG_SYSIO_SYSIO6 | MATRIX_CCFG_SYSIO_SYSIO7) +# endif +# if defined(CONFIG_SAMV7_JTAG_FULL_SW_ENABLE) +# define SYSIO_BITS MATRIX_CCFG_SYSIO_SYSIO4 +# endif +# if defined(CONFIG_SAMV7_JTAG_SW_ENABLE) +# define SYSIO_BITS (MATRIX_CCFG_SYSIO_SYSIO4 | MATRIX_CCFG_SYSIO_SYSIO5) +# endif +#endif /**************************************************************************** * Private Data @@ -70,7 +86,7 @@ #ifdef CONFIG_DEBUG_GPIO static const char g_portchar[SAMV7_NPIO] = { - 'A' + 'A' #if SAMV7_NPIO > 1 , 'B' #endif @@ -402,6 +418,33 @@ static inline int sam_configperiph(uintptr_t base, uint32_t pin, * Public Functions ****************************************************************************/ +/**************************************************************************** + * Function: sam_gpioinit + * + * Description: + * Based on configuration within the .config file, it does: + * - Configures the CCFG_SYSIO bits. + * + * Typically called from sam_start(). + * + * Assumptions: + * This function is called early in the initialization sequence so that + * no mutual exlusion is necessary. + * + ****************************************************************************/ + +#if !defined(CONFIG_SAMV7_ERASE_ENABLE) || \ + !defined(CONFIG_SAMV7_JTAG_FULL_ENABLE) +void sam_gpioinit(void) +{ + uint32_t regval; + + regval = getreg32(SAM_MATRIX_CCFG_SYSIO); + regval |= (SYSIO_ERASE_BIT | SYSIO_BITS); + putreg32(regval, SAM_MATRIX_CCFG_SYSIO); +} +#endif + /**************************************************************************** * Name: sam_configgpio * diff --git a/arch/arm/src/samv7/sam_gpio.h b/arch/arm/src/samv7/sam_gpio.h index 4b5b6f5208..2e564ec787 100644 --- a/arch/arm/src/samv7/sam_gpio.h +++ b/arch/arm/src/samv7/sam_gpio.h @@ -265,6 +265,24 @@ static inline int sam_gpio_pinmask(gpio_pinset_t cfgset) * Public Function Prototypes ************************************************************************************/ +/************************************************************************************ + * Function: sam_gpioinit + * + * Description: + * Based on configuration within the .config file, it does: + * - Remaps positions of alternative functions for GPIO. + * + * Typically called from sam_start(). + * + ************************************************************************************/ + +#if !defined(CONFIG_SAMV7_ERASE_ENABLE) || \ + !defined(CONFIG_SAMV7_JTAG_FULL_ENABLE) +void sam_gpioinit(void); +#else +# define sam_gpioinit() +#endif + /************************************************************************************ * Name: sam_gpioirqinitialize * diff --git a/arch/arm/src/samv7/sam_lowputc.c b/arch/arm/src/samv7/sam_lowputc.c index 502884cc0d..72d2f94998 100644 --- a/arch/arm/src/samv7/sam_lowputc.c +++ b/arch/arm/src/samv7/sam_lowputc.c @@ -1,7 +1,7 @@ /**************************************************************************** * arch/arm/src/samv7/sam_lowputc.c * - * Copyright (C) 2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2015-2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -348,19 +348,20 @@ void sam_lowsetup(void) #ifdef CONFIG_SAMV7_USART1 (void)sam_configgpio(GPIO_USART1_RXD); (void)sam_configgpio(GPIO_USART1_TXD); -#ifdef CONFIG_USART1_OFLOWCONTROL +# ifdef CONFIG_USART1_OFLOWCONTROL (void)sam_configgpio(GPIO_USART1_CTS); -#endif -#ifdef CONFIG_USART1_IFLOWCONTROL +# endif +# ifdef CONFIG_USART1_IFLOWCONTROL (void)sam_configgpio(GPIO_USART1_RTS); -#endif +# endif + /* To use the USART1 as an USART, the SYSIO Pin4 must be bound to PB4 * instead of TDI */ - uint32_t sysioreg = getreg32(SAM_MATRIX_CCFG_SYSIO); - sysioreg |= MATRIX_CCFG_SYSIO_SYSIO4; - putreg32(sysioreg, SAM_MATRIX_CCFG_SYSIO); +# if defined(CONFIG_SAMV7_JTAG_FULL_ENABLE) +# error CONFIG_SAMV7_JTAG_FULL_ENABLE is set To use the USART1 as an USART, the SYSIO Pin4 must be bound to PB4 +# endif #endif #ifdef CONFIG_SAMV7_USART2 diff --git a/arch/arm/src/samv7/sam_start.c b/arch/arm/src/samv7/sam_start.c index 9d5331721f..e00a7bc585 100644 --- a/arch/arm/src/samv7/sam_start.c +++ b/arch/arm/src/samv7/sam_start.c @@ -357,6 +357,7 @@ void __start(void) sam_clockconfig(); sam_fpuconfig(); + sam_gpioinit(); sam_lowsetup(); /* Enable/disable tightly coupled memories */ -- GitLab From e27e87a9571744070ae136545496eedd77c31e83 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 19 May 2016 15:46:07 -0600 Subject: [PATCH 201/307] Backing out part of last commit --- arch/arm/src/samv7/sam_lowputc.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/arch/arm/src/samv7/sam_lowputc.c b/arch/arm/src/samv7/sam_lowputc.c index 72d2f94998..fe298f4f23 100644 --- a/arch/arm/src/samv7/sam_lowputc.c +++ b/arch/arm/src/samv7/sam_lowputc.c @@ -360,8 +360,14 @@ void sam_lowsetup(void) */ # if defined(CONFIG_SAMV7_JTAG_FULL_ENABLE) -# error CONFIG_SAMV7_JTAG_FULL_ENABLE is set To use the USART1 as an USART, the SYSIO Pin4 must be bound to PB4 +# warning CONFIG_SAMV7_JTAG_FULL_ENABLE is incompatible with CONFIG_SAMV7_USART1. +# warning The SYSIO Pin4 must be bound to PB4 to use USART1 # endif + + uint32_t sysioreg = getreg32(SAM_MATRIX_CCFG_SYSIO); + sysioreg |= MATRIX_CCFG_SYSIO_SYSIO4; + putreg32(sysioreg, SAM_MATRIX_CCFG_SYSIO); + #endif #ifdef CONFIG_SAMV7_USART2 -- GitLab From 916153fb75201c1591dd596a38e8f8156c6b29e4 Mon Sep 17 00:00:00 2001 From: David Sidrane Date: Thu, 19 May 2016 12:44:58 -1000 Subject: [PATCH 202/307] Fix build if the config is not updated --- arch/arm/src/samv7/sam_gpio.c | 3 +++ arch/arm/src/samv7/sam_start.c | 1 + 2 files changed, 4 insertions(+) diff --git a/arch/arm/src/samv7/sam_gpio.c b/arch/arm/src/samv7/sam_gpio.c index 0cd5596191..32547ff1a3 100644 --- a/arch/arm/src/samv7/sam_gpio.c +++ b/arch/arm/src/samv7/sam_gpio.c @@ -78,6 +78,9 @@ # define SYSIO_BITS (MATRIX_CCFG_SYSIO_SYSIO4 | MATRIX_CCFG_SYSIO_SYSIO5) # endif #endif +#if !defined(SYSIO_BITS) +# define SYSIO_BITS 0 +#endif /**************************************************************************** * Private Data diff --git a/arch/arm/src/samv7/sam_start.c b/arch/arm/src/samv7/sam_start.c index e00a7bc585..0e540b0ca5 100644 --- a/arch/arm/src/samv7/sam_start.c +++ b/arch/arm/src/samv7/sam_start.c @@ -58,6 +58,7 @@ #include "sam_mpuinit.h" #include "sam_userspace.h" #include "sam_start.h" +#include "sam_gpio.h" /**************************************************************************** * Pre-processor Definitions -- GitLab From 02e43ab1b38cffa67641d18eb61d7de79b290b42 Mon Sep 17 00:00:00 2001 From: Mark Olsson Date: Fri, 20 May 2016 13:45:16 +0200 Subject: [PATCH 203/307] Adds support for the 3 user LEDs on the Nucleo-144 board family Extra: procfs support doesn't work, so the code for this has been removed from AppInitialize --- configs/nucleo-144/include/board.h | 11 +++++- configs/nucleo-144/src/nucleo-144.h | 12 +++++-- configs/nucleo-144/src/stm32_appinitialize.c | 29 +++++----------- configs/nucleo-144/src/stm32_userleds.c | 36 ++++++++++++++++---- 4 files changed, 58 insertions(+), 30 deletions(-) diff --git a/configs/nucleo-144/include/board.h b/configs/nucleo-144/include/board.h index 0e9020c0de..e90b4146d3 100644 --- a/configs/nucleo-144/include/board.h +++ b/configs/nucleo-144/include/board.h @@ -3,6 +3,7 @@ * * Copyright (C) 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt + * Author: Mark Olsson * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -46,10 +47,12 @@ # include #endif +#ifdef __KERNEL__ #include "stm32_rcc.h" #ifdef CONFIG_STM32F7_SDMMC1 # include "stm32_sdmmc.h" #endif +#endif /************************************************************************************ * Pre-processor Definitions @@ -226,13 +229,19 @@ /* LED index values for use with board_userled() */ #define BOARD_LED1 0 -#define BOARD_NLEDS 1 +#define BOARD_LED2 1 +#define BOARD_LED3 2 +#define BOARD_NLEDS 3 #define BOARD_LD1 BOARD_LED1 +#define BOARD_LD2 BOARD_LED2 +#define BOARD_LD3 BOARD_LED3 /* LED bits for use with board_userled_all() */ #define BOARD_LED1_BIT (1 << BOARD_LED1) +#define BOARD_LED2_BIT (1 << BOARD_LED2) +#define BOARD_LED3_BIT (1 << BOARD_LED3) /* If CONFIG_ARCH_LEDS is defined, the usage by the board port is defined in * include/board.h and src/stm32_leds.c. The LEDs are used to encode OS-related diff --git a/configs/nucleo-144/src/nucleo-144.h b/configs/nucleo-144/src/nucleo-144.h index 7628bd120b..06d2b6a605 100644 --- a/configs/nucleo-144/src/nucleo-144.h +++ b/configs/nucleo-144/src/nucleo-144.h @@ -2,7 +2,8 @@ * configs/nucleo-144/src/nucleo-144.h * * Copyright (C) 2016 Gregory Nutt. All rights reserved. - * Authors: Gregory Nutt + * Author: Gregory Nutt + * Author: Mark Olsson * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -67,7 +68,13 @@ */ #define GPIO_LD1 (GPIO_OUTPUT | GPIO_PUSHPULL | GPIO_SPEED_50MHz | GPIO_OUTPUT_CLEAR | \ - GPIO_PORTI | GPIO_PIN1) + GPIO_PORTB | GPIO_PIN0) +#define GPIO_LD2 (GPIO_OUTPUT | GPIO_PUSHPULL | GPIO_SPEED_50MHz | GPIO_OUTPUT_CLEAR | \ + GPIO_PORTB | GPIO_PIN7) +#define GPIO_LD3 (GPIO_OUTPUT | GPIO_PUSHPULL | GPIO_SPEED_50MHz | GPIO_OUTPUT_CLEAR | \ + GPIO_PORTB | GPIO_PIN14) + +#define LED_DRIVER_PATH "/dev/userleds" /* Pushbutton B1, labelled "User", is connected to GPIO PI11. A high value will be sensed when the * button is depressed. Note that the EXTI interrupt is configured. @@ -97,4 +104,3 @@ void weak_function stm32_spidev_initialize(void); #endif /* __ASSEMBLY__ */ #endif /* __CONFIGS_NUCLEO_144_SRC_NUCLEO_144_H */ - diff --git a/configs/nucleo-144/src/stm32_appinitialize.c b/configs/nucleo-144/src/stm32_appinitialize.c index 6c80705c3a..cbdae3906d 100644 --- a/configs/nucleo-144/src/stm32_appinitialize.c +++ b/configs/nucleo-144/src/stm32_appinitialize.c @@ -3,6 +3,7 @@ * * Copyright (C) 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt + * Author: Mark Olsson * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -38,9 +39,10 @@ ****************************************************************************/ #include +#include -#include "stm32_ccm.h" #include "nucleo-144.h" +#include /**************************************************************************** * Pre-processor Definitions @@ -62,26 +64,13 @@ int board_app_initialize(void) { -#ifdef CONFIG_FS_PROCFS int ret; -#ifdef CONFIG_STM32_CCM_PROCFS - /* Register the CCM procfs entry. This must be done before the procfs is - * mounted. - */ - - (void)ccm_procfs_register(); -#endif - - /* Mount the procfs file system */ - - ret = mount(NULL, SAMV71_PROCFS_MOUNTPOINT, "procfs", 0, NULL); + /* Register the LED driver */ + ret = userled_lower_initialize(LED_DRIVER_PATH); if (ret < 0) - { - SYSLOG("ERROR: Failed to mount procfs at %s: %d\n", - SAMV71_PROCFS_MOUNTPOINT, ret); - } -#endif - - return OK; + { + syslog(LOG_ERR, "ERROR: userled_lower_initialize() failed: %d\n", ret); + } + return 1; } diff --git a/configs/nucleo-144/src/stm32_userleds.c b/configs/nucleo-144/src/stm32_userleds.c index 19146d241d..1a0b4a5cc2 100644 --- a/configs/nucleo-144/src/stm32_userleds.c +++ b/configs/nucleo-144/src/stm32_userleds.c @@ -3,6 +3,7 @@ * * Copyright (C) 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt + * Author: Mark Olsson * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -42,6 +43,8 @@ #include #include +#include + #include "stm32_gpio.h" #include "nucleo-144.h" @@ -63,6 +66,16 @@ # define ledvdbg(x...) #endif +/**************************************************************************** + * Private Data + ****************************************************************************/ +/* This array maps an LED number to GPIO pin configuration */ + +static const uint32_t g_ledcfg[3] = +{ + GPIO_LD1, GPIO_LD2, GPIO_LD3 +}; + /**************************************************************************** * Public Functions ****************************************************************************/ @@ -80,7 +93,13 @@ void board_userled_initialize(void) { - stm32_configgpio(GPIO_LD1); + int i; + + /* Configure LED1-3 GPIOs for output */ + for (i = 0; i < 3; i++) + { + stm32_configgpio(g_ledcfg[i]); + } } /**************************************************************************** @@ -95,10 +114,10 @@ void board_userled_initialize(void) void board_userled(int led, bool ledon) { - if (led == BOARD_STATUS_LED) - { - stm32_gpiowrite(GPIO_LD1, !ledon); - } + if ((unsigned)led < 3) + { + stm32_gpiowrite(g_ledcfg[led], ledon); + } } /**************************************************************************** @@ -114,7 +133,12 @@ void board_userled(int led, bool ledon) void board_userled_all(uint8_t ledset) { - stm32_gpiowrite(GPIO_LD1, (ledset & BOARD_STATUS_LED_BIT) != 0); + int i; + /* Configure LED1-3 GPIOs for output */ + for (i = 0; i < 3; i++) + { + stm32_gpiowrite(g_ledcfg[i], (ledset & (1 << i)) != 0); + } } #endif /* !CONFIG_ARCH_LEDS */ -- GitLab From 1f869e58791b25f0b58b4ea704c7fb23f38c5539 Mon Sep 17 00:00:00 2001 From: Mark Olsson Date: Fri, 20 May 2016 14:55:30 +0200 Subject: [PATCH 204/307] Added new configuration (evalos) for the Nucleo-144 board family. This new configuration will showcase all the features of the boards, so is a good way to easily test out a new board. This can be added to all boards in the future. --- configs/nucleo-144/README.txt | 102 ++- configs/nucleo-144/evalos/Make.defs | 113 ++++ configs/nucleo-144/evalos/defconfig | 934 ++++++++++++++++++++++++++++ configs/nucleo-144/evalos/setenv.sh | 78 +++ configs/nucleo-144/include/board.h | 7 +- 5 files changed, 1200 insertions(+), 34 deletions(-) create mode 100644 configs/nucleo-144/evalos/Make.defs create mode 100644 configs/nucleo-144/evalos/defconfig create mode 100644 configs/nucleo-144/evalos/setenv.sh diff --git a/configs/nucleo-144/README.txt b/configs/nucleo-144/README.txt index 2e08a08469..e264413977 100644 --- a/configs/nucleo-144/README.txt +++ b/configs/nucleo-144/README.txt @@ -142,9 +142,9 @@ Basic configuration & build steps be modified to point to the correct path to the Cortex-M7 GCC toolchain (if different from the default in your PATH variable). - - Configures nuttx creating .config file in the nuttx directory + - Configures nuttx creating .config file in the nuttx directory. $ cd tools && ./configure.sh nucleo-f746zg/nsh && cd .. - - Refreshes the .config file with the latest features addes sice this writting + - Refreshes the .config file with the latest available configurations. $ make oldconfig - Select the features you want in the build. $ make menuconfig @@ -155,7 +155,7 @@ Hardware ======== GPIO - there are 144 I/O lines on the STM32F746ZGT6 with various pins pined out - on the Nucleo F746ZG + on the Nucleo F746ZG. See https://developer.mbed.org/platforms/ST-Nucleo-F746ZG/ for slick graphic pinouts. @@ -293,42 +293,80 @@ Serial Consoles Configurations ============== - nsh: - --------- - Configures the NuttShell (nsh) located at apps/examples/nsh for the - Nucleo-144 boards. The Configuration enables the serial interfaces - on UART8. Support for builtin applications is enabled, but in the base - configuration no builtin applications are selected (see NOTES below). +nsh: +--------- + Configures the NuttShell (nsh) located at apps/examples/nsh for the + Nucleo-144 boards. The Configuration enables the serial interfaces + on UART6. Support for builtin applications is enabled, but in the base + configuration no builtin applications are selected (see NOTES below). - NOTES: + NOTES: - 1. This configuration uses the mconf-based configuration tool. To - change this configuration using that tool, you should: + 1. This configuration uses the mconf-based configuration tool. To + change this configuration using that tool, you should: - a. Build and install the kconfig-mconf tool. See nuttx/README.txt - see additional README.txt files in the NuttX tools repository. + a. Build and install the kconfig-mconf tool. See nuttx/README.txt + see additional README.txt files in the NuttX tools repository. - b. If this is the intall configuration then Execute - 'cd tools && ./configure.sh stm32f746g-disco/nsh && cd ..' - in nuttx/ in order to start configuration process. - Caution: Doing this step more than once will overwrite .config with - the contents of the stm32f746g-disco/nsh/defconfig file. + b. If this is the intall configuration then Execute + 'cd tools && ./configure.sh nucleo-144/nsh && cd ..' + in nuttx/ in order to start configuration process. + Caution: Doing this step more than once will overwrite .config with + the contents of the nucleo-144/nsh/defconfig file. - c. Execute 'make oldconfig' in nuttx/ in order to refresh the - configuration. + c. Execute 'make oldconfig' in nuttx/ in order to refresh the + configuration. - d. Execute 'make menuconfig' in nuttx/ in order to start the - reconfiguration process. + d. Execute 'make menuconfig' in nuttx/ in order to start the + reconfiguration process. - e. Save the .config file to reuse it in the future starting at step d. + e. Save the .config file to reuse it in the future starting at step d. - 2. By default, this configuration uses the ARM GNU toolchain - for Linux. That can easily be reconfigured, of course. + 2. By default, this configuration uses the ARM GNU toolchain + for Linux. That can easily be reconfigured, of course. - CONFIG_HOST_LINUX=y : Builds under Linux - CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL=y : ARM GNU for Linux + CONFIG_HOST_LINUX=y : Builds under Linux + CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL=y : ARM GNU for Linux - 3. Although the default console is USART3 (which would correspond to - the Virtual COM port) I have done all testing with the console - device configured for UART8 (see instruction above under "Serial - Consoles). + 3. Although the default console is USART3 (which would correspond to + the Virtual COM port) I have done all testing with the console + device configured for UART8 (see instruction above under "Serial + Consoles). + +evalos: +--------- + This configuration is designed to test the features of the board. + - Configures the NuttShell (nsh) located at apps/examples/nsh for the + Nucleo-144 boards. The console is available on serial interface USART3, + which is accessible over the USB ST-Link interface. + - Configures nsh with advanced features such as autocompletion. + - Configures the on-board LEDs to work with the 'leds' example app. + - Configures the 'helloxx' example app. + + NOTES: + + 1. This configuration uses the mconf-based configuration tool. To + change this configuration using that tool, you should: + + a. Build and install the kconfig-mconf tool. See nuttx/README.txt + see additional README.txt files in the NuttX tools repository. + + b. If this is the intall configuration then Execute + 'cd tools && ./configure.sh nucleo-144/evalos && cd ..' + in nuttx/ in order to start configuration process. + Caution: Doing this step more than once will overwrite .config with + the contents of the nucleo-144/evalos/defconfig file. + + c. Execute 'make oldconfig' in nuttx/ in order to refresh the + configuration. + + d. Execute 'make menuconfig' in nuttx/ in order to start the + reconfiguration process. + + e. Save the .config file to reuse it in the future starting at step d. + + 2. By default, this configuration uses the ARM GNU toolchain + for Linux. That can easily be reconfigured, of course. + + CONFIG_HOST_LINUX=y : Builds under Linux + CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL=y : ARM GNU for Linux diff --git a/configs/nucleo-144/evalos/Make.defs b/configs/nucleo-144/evalos/Make.defs new file mode 100644 index 0000000000..210c5ff074 --- /dev/null +++ b/configs/nucleo-144/evalos/Make.defs @@ -0,0 +1,113 @@ +############################################################################ +# configs/nucleo-144/evalos/Make.defs +# +# Copyright (C) 2016 Gregory Nutt. All rights reserved. +# Author: Gregory Nutt +# Author: Mark Olsson +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# 3. Neither the name NuttX nor the names of its contributors may be +# used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +############################################################################ + +include ${TOPDIR}/.config +include ${TOPDIR}/tools/Config.mk +include ${TOPDIR}/arch/arm/src/armv7-m/Toolchain.defs + +LDSCRIPT = flash.ld + +ifeq ($(WINTOOL),y) + # Windows-native toolchains + DIRLINK = $(TOPDIR)/tools/copydir.sh + DIRUNLINK = $(TOPDIR)/tools/unlink.sh + MKDEP = $(TOPDIR)/tools/mkwindeps.sh + ARCHINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)/include}" + ARCHXXINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)/include}" -isystem "${shell cygpath -w $(TOPDIR)/include/cxx}" + ARCHSCRIPT = -T "${shell cygpath -w $(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/$(LDSCRIPT)}" +else + # Linux/Cygwin-native toolchain + MKDEP = $(TOPDIR)/tools/mkdeps$(HOSTEXEEXT) + ARCHINCLUDES = -I. -isystem $(TOPDIR)/include + ARCHXXINCLUDES = -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx + ARCHSCRIPT = -T$(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/$(LDSCRIPT) +endif + +CC = $(CROSSDEV)gcc +CXX = $(CROSSDEV)g++ +CPP = $(CROSSDEV)gcc -E +LD = $(CROSSDEV)ld +AR = $(ARCROSSDEV)ar rcs +NM = $(ARCROSSDEV)nm +OBJCOPY = $(CROSSDEV)objcopy +OBJDUMP = $(CROSSDEV)objdump + +ARCHCCVERSION = ${shell $(CC) -v 2>&1 | sed -n '/^gcc version/p' | sed -e 's/^gcc version \([0-9\.]\)/\1/g' -e 's/[-\ ].*//g' -e '1q'} +ARCHCCMAJOR = ${shell echo $(ARCHCCVERSION) | cut -d'.' -f1} + +ifeq ($(CONFIG_DEBUG_SYMBOLS),y) + ARCHOPTIMIZATION = -g +endif + +ifneq ($(CONFIG_DEBUG_NOOPT),y) + ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing -fno-strength-reduce -fomit-frame-pointer +endif + +ARCHCFLAGS = -fno-builtin +ARCHCXXFLAGS = -fno-builtin -fno-exceptions -fno-rtti +ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef +ARCHWARNINGSXX = -Wall -Wshadow -Wundef +ARCHDEFINES = +ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10 + +CFLAGS = $(ARCHCFLAGS) $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe +CPICFLAGS = $(ARCHPICFLAGS) $(CFLAGS) +CXXFLAGS = $(ARCHCXXFLAGS) $(ARCHWARNINGSXX) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHXXINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe +CXXPICFLAGS = $(ARCHPICFLAGS) $(CXXFLAGS) +CPPFLAGS = $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) +AFLAGS = $(CFLAGS) -D__ASSEMBLY__ + +NXFLATLDFLAGS1 = -r -d -warn-common +NXFLATLDFLAGS2 = $(NXFLATLDFLAGS1) -T$(TOPDIR)/binfmt/libnxflat/gnu-nxflat-pcrel.ld -no-check-sections +LDNXFLATFLAGS = -e main -s 2048 + +ASMEXT = .S +OBJEXT = .o +LIBEXT = .a +EXEEXT = + +ifneq ($(CROSSDEV),arm-nuttx-elf-) + LDFLAGS += -nostartfiles -nodefaultlibs +endif +ifeq ($(CONFIG_DEBUG_SYMBOLS),y) + LDFLAGS += -g +endif + + +HOSTCC = gcc +HOSTINCLUDES = -I. +HOSTCFLAGS = -Wall -Wstrict-prototypes -Wshadow -Wundef -g -pipe +HOSTLDFLAGS = diff --git a/configs/nucleo-144/evalos/defconfig b/configs/nucleo-144/evalos/defconfig new file mode 100644 index 0000000000..70b6f0d06e --- /dev/null +++ b/configs/nucleo-144/evalos/defconfig @@ -0,0 +1,934 @@ +# +# Automatically generated file; DO NOT EDIT. +# Nuttx/ Configuration +# + +# +# Build Setup +# +# CONFIG_EXPERIMENTAL is not set +# CONFIG_DEFAULT_SMALL is not set +CONFIG_HOST_LINUX=y +# CONFIG_HOST_OSX is not set +# CONFIG_HOST_WINDOWS is not set +# CONFIG_HOST_OTHER is not set + +# +# Build Configuration +# +CONFIG_APPS_DIR="../apps" +CONFIG_BUILD_FLAT=y +# CONFIG_BUILD_2PASS is not set + +# +# Binary Output Formats +# +# CONFIG_RRLOAD_BINARY is not set +CONFIG_INTELHEX_BINARY=y +# CONFIG_MOTOROLA_SREC is not set +CONFIG_RAW_BINARY=y +# CONFIG_UBOOT_UIMAGE is not set + +# +# Customize Header Files +# +# CONFIG_ARCH_STDINT_H is not set +# CONFIG_ARCH_STDBOOL_H is not set +# CONFIG_ARCH_MATH_H is not set +# CONFIG_ARCH_FLOAT_H is not set +# CONFIG_ARCH_STDARG_H is not set +# CONFIG_ARCH_DEBUG_H is not set + +# +# Debug Options +# +# CONFIG_DEBUG is not set +CONFIG_ARCH_HAVE_HEAPCHECK=y +CONFIG_ARCH_HAVE_STACKCHECK=y +# CONFIG_STACK_COLORATION is not set +CONFIG_DEBUG_SYMBOLS=y +CONFIG_ARCH_HAVE_CUSTOMOPT=y +CONFIG_DEBUG_NOOPT=y +# CONFIG_DEBUG_CUSTOMOPT is not set +# CONFIG_DEBUG_FULLOPT is not set + +# +# System Type +# +CONFIG_ARCH_ARM=y +# CONFIG_ARCH_AVR is not set +# CONFIG_ARCH_HC is not set +# CONFIG_ARCH_MIPS is not set +# CONFIG_ARCH_RGMP is not set +# CONFIG_ARCH_SH is not set +# CONFIG_ARCH_SIM is not set +# CONFIG_ARCH_X86 is not set +# CONFIG_ARCH_Z16 is not set +# CONFIG_ARCH_Z80 is not set +CONFIG_ARCH="arm" + +# +# ARM Options +# +# CONFIG_ARCH_CHIP_A1X is not set +# CONFIG_ARCH_CHIP_C5471 is not set +# CONFIG_ARCH_CHIP_CALYPSO is not set +# CONFIG_ARCH_CHIP_DM320 is not set +# CONFIG_ARCH_CHIP_EFM32 is not set +# CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set +# CONFIG_ARCH_CHIP_KINETIS is not set +# CONFIG_ARCH_CHIP_KL is not set +# CONFIG_ARCH_CHIP_LM is not set +# CONFIG_ARCH_CHIP_TIVA is not set +# CONFIG_ARCH_CHIP_LPC11XX is not set +# CONFIG_ARCH_CHIP_LPC17XX is not set +# CONFIG_ARCH_CHIP_LPC214X is not set +# CONFIG_ARCH_CHIP_LPC2378 is not set +# CONFIG_ARCH_CHIP_LPC31XX is not set +# CONFIG_ARCH_CHIP_LPC43XX is not set +# CONFIG_ARCH_CHIP_NUC1XX is not set +# CONFIG_ARCH_CHIP_SAMA5 is not set +# CONFIG_ARCH_CHIP_SAMD is not set +# CONFIG_ARCH_CHIP_SAML is not set +# CONFIG_ARCH_CHIP_SAM34 is not set +# CONFIG_ARCH_CHIP_SAMV7 is not set +# CONFIG_ARCH_CHIP_STM32 is not set +CONFIG_ARCH_CHIP_STM32F7=y +# CONFIG_ARCH_CHIP_STM32L4 is not set +# CONFIG_ARCH_CHIP_STR71X is not set +# CONFIG_ARCH_CHIP_TMS570 is not set +# CONFIG_ARCH_CHIP_MOXART is not set +# CONFIG_ARCH_ARM7TDMI is not set +# CONFIG_ARCH_ARM926EJS is not set +# CONFIG_ARCH_ARM920T is not set +# CONFIG_ARCH_CORTEXM0 is not set +# CONFIG_ARCH_CORTEXM3 is not set +# CONFIG_ARCH_CORTEXM4 is not set +CONFIG_ARCH_CORTEXM7=y +# CONFIG_ARCH_CORTEXA5 is not set +# CONFIG_ARCH_CORTEXA8 is not set +# CONFIG_ARCH_CORTEXA9 is not set +# CONFIG_ARCH_CORTEXR4 is not set +# CONFIG_ARCH_CORTEXR4F is not set +# CONFIG_ARCH_CORTEXR5 is not set +# CONFIG_ARCH_CORTEX5F is not set +# CONFIG_ARCH_CORTEXR7 is not set +# CONFIG_ARCH_CORTEXR7F is not set +CONFIG_ARCH_FAMILY="armv7-m" +CONFIG_ARCH_CHIP="stm32f7" +# CONFIG_ARM_TOOLCHAIN_IAR is not set +CONFIG_ARM_TOOLCHAIN_GNU=y +# CONFIG_ARMV7M_USEBASEPRI is not set +CONFIG_ARCH_HAVE_CMNVECTOR=y +CONFIG_ARMV7M_CMNVECTOR=y +# CONFIG_ARMV7M_LAZYFPU is not set +CONFIG_ARCH_HAVE_FPU=y +CONFIG_ARCH_HAVE_DPFPU=y +# CONFIG_ARCH_FPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set +CONFIG_ARM_HAVE_MPU_UNIFIED=y +# CONFIG_ARM_MPU is not set + +# +# ARMV7M Configuration Options +# +CONFIG_ARMV7M_HAVE_ICACHE=y +CONFIG_ARMV7M_HAVE_DCACHE=y +CONFIG_ARMV7M_ICACHE=y +CONFIG_ARMV7M_DCACHE=y +CONFIG_ARMV7M_DCACHE_WRITETHROUGH=y +CONFIG_ARMV7M_HAVE_ITCM=y +CONFIG_ARMV7M_HAVE_DTCM=y +# CONFIG_ARMV7M_ITCM is not set +CONFIG_ARMV7M_DTCM=y +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set +# CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set +# CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set +# CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set +CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL=y +CONFIG_ARMV7M_HAVE_STACKCHECK=y +# CONFIG_ARMV7M_STACKCHECK is not set +# CONFIG_ARMV7M_ITMSYSLOG is not set +# CONFIG_SERIAL_TERMIOS is not set +# CONFIG_USART3_RS485 is not set +# CONFIG_SERIAL_DISABLE_REORDERING is not set + +# +# STM32 F7 Configuration Options +# +# CONFIG_ARCH_CHIP_STM32F745 is not set +CONFIG_ARCH_CHIP_STM32F746=y +# CONFIG_ARCH_CHIP_STM32F756 is not set +CONFIG_STM32F7_STM32F74XX=y +# CONFIG_STM32F7_STM32F75XX is not set +# CONFIG_STM32F7_FLASH_512KB is not set +CONFIG_STM32F7_FLASH_1024KB=y + +# +# STM32 Peripheral Support +# +CONFIG_STM32F7_HAVE_LTDC=y +# CONFIG_STM32F7_ADC is not set +# CONFIG_STM32F7_CAN is not set +# CONFIG_STM32F7_DAC is not set +# CONFIG_STM32F7_DMA is not set +# CONFIG_STM32F7_I2C is not set +# CONFIG_STM32F7_SAI is not set +# CONFIG_STM32F7_SPI is not set +CONFIG_STM32F7_USART=y +# CONFIG_STM32F7_ADC1 is not set +# CONFIG_STM32F7_ADC2 is not set +# CONFIG_STM32F7_ADC3 is not set +# CONFIG_STM32F7_BKPSRAM is not set +# CONFIG_STM32F7_CAN1 is not set +# CONFIG_STM32F7_CAN2 is not set +# CONFIG_STM32F7_CEC is not set +# CONFIG_STM32F7_CRC is not set +# CONFIG_STM32F7_CRYP is not set +# CONFIG_STM32F7_DMA1 is not set +# CONFIG_STM32F7_DMA2 is not set +# CONFIG_STM32F7_DAC1 is not set +# CONFIG_STM32F7_DAC2 is not set +# CONFIG_STM32F7_DCMI is not set +# CONFIG_STM32F7_ETHMAC is not set +# CONFIG_STM32F7_FSMC is not set +# CONFIG_STM32F7_I2C1 is not set +# CONFIG_STM32F7_I2C2 is not set +# CONFIG_STM32F7_I2C3 is not set +# CONFIG_STM32F7_LPTIM1 is not set +# CONFIG_STM32F7_LTDC is not set +# CONFIG_STM32F7_DMA2D is not set +# CONFIG_STM32F7_OTGFS is not set +# CONFIG_STM32F7_OTGHS is not set +# CONFIG_STM32F7_QUADSPI is not set +# CONFIG_STM32F7_SAI1 is not set +# CONFIG_STM32F7_RNG is not set +# CONFIG_STM32F7_SAI2 is not set +# CONFIG_STM32F7_SDMMC1 is not set +# CONFIG_STM32F7_SPDIFRX is not set +# CONFIG_STM32F7_SPI1 is not set +# CONFIG_STM32F7_SPI2 is not set +# CONFIG_STM32F7_SPI3 is not set +# CONFIG_STM32F7_SPI4 is not set +# CONFIG_STM32F7_SPI5 is not set +# CONFIG_STM32F7_SPI6 is not set +# CONFIG_STM32F7_TIM1 is not set +# CONFIG_STM32F7_TIM2 is not set +# CONFIG_STM32F7_TIM3 is not set +# CONFIG_STM32F7_TIM4 is not set +# CONFIG_STM32F7_TIM5 is not set +# CONFIG_STM32F7_TIM6 is not set +# CONFIG_STM32F7_TIM7 is not set +# CONFIG_STM32F7_TIM8 is not set +# CONFIG_STM32F7_TIM9 is not set +# CONFIG_STM32F7_TIM10 is not set +# CONFIG_STM32F7_TIM11 is not set +# CONFIG_STM32F7_TIM12 is not set +# CONFIG_STM32F7_TIM13 is not set +# CONFIG_STM32F7_TIM14 is not set +# CONFIG_STM32F7_TIM15 is not set +# CONFIG_STM32F7_USART1 is not set +# CONFIG_STM32F7_USART2 is not set +CONFIG_STM32F7_USART3=y +# CONFIG_STM32F7_UART4 is not set +# CONFIG_STM32F7_UART5 is not set +# CONFIG_STM32F7_USART6 is not set +# CONFIG_STM32F7_UART7 is not set +# CONFIG_STM32F7_UART8 is not set +# CONFIG_STM32F7_IWDG is not set +# CONFIG_STM32F7_WWDG is not set + +# +# U[S]ART Configuration +# +# CONFIG_STM32F7_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32F7_USART_BREAKS is not set +# CONFIG_STM32F7_CUSTOM_CLOCKCONFIG is not set + +# +# Architecture Options +# +# CONFIG_ARCH_NOINTC is not set +# CONFIG_ARCH_VECNOTIRQ is not set +# CONFIG_ARCH_DMA is not set +CONFIG_ARCH_HAVE_IRQPRIO=y +# CONFIG_ARCH_L2CACHE is not set +# CONFIG_ARCH_HAVE_COHERENT_DCACHE is not set +# CONFIG_ARCH_HAVE_ADDRENV is not set +# CONFIG_ARCH_NEED_ADDRENV_MAPPING is not set +# CONFIG_ARCH_HAVE_MULTICPU is not set +CONFIG_ARCH_HAVE_VFORK=y +# CONFIG_ARCH_HAVE_MMU is not set +CONFIG_ARCH_HAVE_MPU=y +# CONFIG_ARCH_NAND_HWECC is not set +# CONFIG_ARCH_HAVE_EXTCLK is not set +# CONFIG_ARCH_HAVE_POWEROFF is not set +# CONFIG_ARCH_HAVE_RESET is not set +# CONFIG_ARCH_USE_MPU is not set +# CONFIG_ARCH_IRQPRIO is not set +CONFIG_ARCH_STACKDUMP=y +# CONFIG_ENDIAN_BIG is not set +# CONFIG_ARCH_IDLE_CUSTOM is not set +# CONFIG_ARCH_HAVE_RAMFUNCS is not set +CONFIG_ARCH_HAVE_RAMVECTORS=y +# CONFIG_ARCH_RAMVECTORS is not set + +# +# Board Settings +# +CONFIG_BOARD_LOOPSPERMSEC=43103 +# CONFIG_ARCH_CALIBRATION is not set + +# +# Interrupt options +# +CONFIG_ARCH_HAVE_INTERRUPTSTACK=y +CONFIG_ARCH_INTERRUPTSTACK=0 +CONFIG_ARCH_HAVE_HIPRI_INTERRUPT=y +# CONFIG_ARCH_HIPRI_INTERRUPT is not set + +# +# Boot options +# +# CONFIG_BOOT_RUNFROMEXTSRAM is not set +CONFIG_BOOT_RUNFROMFLASH=y +# CONFIG_BOOT_RUNFROMISRAM is not set +# CONFIG_BOOT_RUNFROMSDRAM is not set +# CONFIG_BOOT_COPYTORAM is not set + +# +# Boot Memory Configuration +# +CONFIG_RAM_START=0x20010000 +CONFIG_RAM_SIZE=245760 +# CONFIG_ARCH_HAVE_SDRAM is not set + +# +# Board Selection +# +CONFIG_ARCH_BOARD_NUCLEO_144=y +# CONFIG_ARCH_BOARD_STM32F746G_DISCO is not set +# CONFIG_ARCH_BOARD_CUSTOM is not set +CONFIG_ARCH_BOARD="nucleo-144" + +# +# Common Board Options +# +CONFIG_ARCH_HAVE_LEDS=y +# CONFIG_ARCH_LEDS is not set +CONFIG_ARCH_HAVE_BUTTONS=y +CONFIG_ARCH_BUTTONS=y +CONFIG_ARCH_HAVE_IRQBUTTONS=y +# CONFIG_ARCH_IRQBUTTONS is not set +CONFIG_NSH_MMCSDMINOR=0 + +# +# Board-Specific Options +# +CONFIG_LIB_BOARDCTL=y +# CONFIG_BOARDCTL_UNIQUEID is not set +# CONFIG_BOARDCTL_TSCTEST is not set +# CONFIG_BOARDCTL_ADCTEST is not set +# CONFIG_BOARDCTL_PWMTEST is not set +# CONFIG_BOARDCTL_GRAPHICS is not set +# CONFIG_BOARDCTL_IOCTL is not set + +# +# RTOS Features +# +CONFIG_DISABLE_OS_API=y +# CONFIG_DISABLE_POSIX_TIMERS is not set +# CONFIG_DISABLE_PTHREAD is not set +# CONFIG_DISABLE_SIGNALS is not set +# CONFIG_DISABLE_MQUEUE is not set +# CONFIG_DISABLE_ENVIRON is not set + +# +# Clocks and Timers +# +CONFIG_USEC_PER_TICK=10000 +# CONFIG_SYSTEM_TIME64 is not set +# CONFIG_CLOCK_MONOTONIC is not set +# CONFIG_JULIAN_TIME is not set +CONFIG_START_YEAR=2011 +CONFIG_START_MONTH=12 +CONFIG_START_DAY=6 +CONFIG_MAX_WDOGPARMS=2 +CONFIG_PREALLOC_WDOGS=4 +CONFIG_WDOG_INTRESERVE=0 +CONFIG_PREALLOC_TIMERS=4 + +# +# Tasks and Scheduling +# +# CONFIG_INIT_NONE is not set +CONFIG_INIT_ENTRYPOINT=y +# CONFIG_INIT_FILEPATH is not set +CONFIG_USER_ENTRYPOINT="nsh_main" +CONFIG_RR_INTERVAL=200 +# CONFIG_SCHED_SPORADIC is not set +CONFIG_TASK_NAME_SIZE=0 +CONFIG_MAX_TASKS=16 +# CONFIG_SCHED_HAVE_PARENT is not set +CONFIG_SCHED_WAITPID=y + +# +# Pthread Options +# +# CONFIG_MUTEX_TYPES is not set +CONFIG_NPTHREAD_KEYS=4 + +# +# Performance Monitoring +# +# CONFIG_SCHED_CPULOAD is not set +# CONFIG_SCHED_INSTRUMENTATION is not set + +# +# Files and I/O +# +CONFIG_DEV_CONSOLE=y +# CONFIG_FDCLONE_DISABLE is not set +# CONFIG_FDCLONE_STDIO is not set +CONFIG_SDCLONE_DISABLE=y +CONFIG_NFILE_DESCRIPTORS=8 +CONFIG_NFILE_STREAMS=8 +CONFIG_NAME_MAX=32 +# CONFIG_PRIORITY_INHERITANCE is not set + +# +# RTOS hooks +# +# CONFIG_BOARD_INITIALIZE is not set +# CONFIG_SCHED_STARTHOOK is not set +# CONFIG_SCHED_ATEXIT is not set +# CONFIG_SCHED_ONEXIT is not set + +# +# Signal Numbers +# +CONFIG_SIG_SIGUSR1=1 +CONFIG_SIG_SIGUSR2=2 +CONFIG_SIG_SIGALARM=3 +CONFIG_SIG_SIGCONDTIMEDOUT=16 + +# +# POSIX Message Queue Options +# +CONFIG_PREALLOC_MQ_MSGS=4 +CONFIG_MQ_MAXMSGSIZE=32 +# CONFIG_MODULE is not set + +# +# Work queue support +# +# CONFIG_SCHED_WORKQUEUE is not set +# CONFIG_SCHED_HPWORK is not set +# CONFIG_SCHED_LPWORK is not set + +# +# Stack and heap information +# +CONFIG_IDLETHREAD_STACKSIZE=1024 +CONFIG_USERMAIN_STACKSIZE=2048 +CONFIG_PTHREAD_STACK_MIN=256 +CONFIG_PTHREAD_STACK_DEFAULT=2048 +# CONFIG_LIB_SYSCALL is not set + +# +# Device Drivers +# +CONFIG_DISABLE_POLL=y +CONFIG_DEV_NULL=y +# CONFIG_DEV_ZERO is not set +# CONFIG_DEV_LOOP is not set + +# +# Buffering +# +# CONFIG_DRVR_WRITEBUFFER is not set +# CONFIG_DRVR_READAHEAD is not set +# CONFIG_RAMDISK is not set +# CONFIG_CAN is not set +# CONFIG_ARCH_HAVE_PWM_PULSECOUNT is not set +# CONFIG_ARCH_HAVE_PWM_MULTICHAN is not set +# CONFIG_PWM is not set +CONFIG_ARCH_HAVE_I2CRESET=y +# CONFIG_I2C is not set +CONFIG_SPI=y +# CONFIG_SPI_SLAVE is not set +CONFIG_SPI_EXCHANGE=y +# CONFIG_SPI_CMDDATA is not set +# CONFIG_SPI_CALLBACK is not set +# CONFIG_SPI_BITBANG is not set +# CONFIG_SPI_HWFEATURES is not set +# CONFIG_SPI_CRCGENERATION is not set +# CONFIG_I2S is not set + +# +# Timer Driver Support +# +# CONFIG_TIMER is not set +# CONFIG_RTC is not set +# CONFIG_WATCHDOG is not set +# CONFIG_ANALOG is not set +# CONFIG_AUDIO_DEVICES is not set +# CONFIG_VIDEO_DEVICES is not set +# CONFIG_BCH is not set +# CONFIG_INPUT is not set +# CONFIG_IOEXPANDER is not set +# CONFIG_LCD is not set + +# +# LED Support +# +CONFIG_USERLED=y +CONFIG_USERLED_LOWER=y +# CONFIG_RGBLED is not set +# CONFIG_PCA9635PW is not set +# CONFIG_MMCSD is not set +# CONFIG_MODEM is not set +# CONFIG_MTD is not set +# CONFIG_EEPROM is not set +# CONFIG_PIPES is not set +# CONFIG_PM is not set +# CONFIG_POWER is not set +# CONFIG_SENSORS is not set +# CONFIG_SERCOMM_CONSOLE is not set +CONFIG_SERIAL=y +# CONFIG_DEV_LOWCONSOLE is not set +# CONFIG_16550_UART is not set +# CONFIG_ARCH_HAVE_UART is not set +# CONFIG_ARCH_HAVE_UART0 is not set +# CONFIG_ARCH_HAVE_UART1 is not set +# CONFIG_ARCH_HAVE_UART2 is not set +# CONFIG_ARCH_HAVE_UART3 is not set +# CONFIG_ARCH_HAVE_UART4 is not set +# CONFIG_ARCH_HAVE_UART5 is not set +# CONFIG_ARCH_HAVE_UART6 is not set +# CONFIG_ARCH_HAVE_UART7 is not set +# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_ARCH_HAVE_SCI0 is not set +# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_ARCH_HAVE_USART0 is not set +# CONFIG_ARCH_HAVE_USART1 is not set +# CONFIG_ARCH_HAVE_USART2 is not set +CONFIG_ARCH_HAVE_USART3=y +# CONFIG_ARCH_HAVE_USART4 is not set +# CONFIG_ARCH_HAVE_USART5 is not set +# CONFIG_ARCH_HAVE_USART6 is not set +# CONFIG_ARCH_HAVE_USART7 is not set +# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_ARCH_HAVE_OTHER_UART is not set + +# +# USART Configuration +# +CONFIG_USART3_ISUART=y +CONFIG_MCU_SERIAL=y +CONFIG_STANDARD_SERIAL=y +# CONFIG_SERIAL_IFLOWCONTROL is not set +# CONFIG_SERIAL_OFLOWCONTROL is not set +# CONFIG_SERIAL_DMA is not set +CONFIG_ARCH_HAVE_SERIAL_TERMIOS=y +CONFIG_USART3_SERIAL_CONSOLE=y +# CONFIG_OTHER_SERIAL_CONSOLE is not set +# CONFIG_NO_SERIAL_CONSOLE is not set + +# +# USART3 Configuration +# +CONFIG_USART3_RXBUFSIZE=256 +CONFIG_USART3_TXBUFSIZE=256 +CONFIG_USART3_BAUD=115200 +CONFIG_USART3_BITS=8 +CONFIG_USART3_PARITY=0 +CONFIG_USART3_2STOP=0 +# CONFIG_USART3_IFLOWCONTROL is not set +# CONFIG_USART3_OFLOWCONTROL is not set +# CONFIG_USART3_DMA is not set +# CONFIG_USBDEV is not set +# CONFIG_USBHOST is not set +# CONFIG_DRIVERS_WIRELESS is not set + +# +# System Logging Device Options +# + +# +# System Logging +# +# CONFIG_RAMLOG is not set +# CONFIG_SYSLOG_CONSOLE is not set + +# +# Networking Support +# +# CONFIG_ARCH_HAVE_NET is not set +# CONFIG_ARCH_HAVE_PHY is not set +# CONFIG_NET is not set + +# +# Crypto API +# +# CONFIG_CRYPTO is not set + +# +# File Systems +# + +# +# File system configuration +# +# CONFIG_DISABLE_MOUNTPOINT is not set +# CONFIG_FS_AUTOMOUNTER is not set +# CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_FS_READABLE is not set +# CONFIG_FS_WRITABLE is not set +# CONFIG_FS_NAMED_SEMAPHORES is not set +CONFIG_FS_MQUEUE_MPATH="/var/mqueue" +# CONFIG_FS_RAMMAP is not set +# CONFIG_FS_FAT is not set +# CONFIG_FS_NXFFS is not set +# CONFIG_FS_ROMFS is not set +# CONFIG_FS_TMPFS is not set +# CONFIG_FS_SMARTFS is not set +# CONFIG_FS_BINFS is not set +# CONFIG_FS_PROCFS is not set +# CONFIG_FS_UNIONFS is not set + +# +# System Logging +# +# CONFIG_SYSLOG is not set +# CONFIG_SYSLOG_TIMESTAMP is not set + +# +# Graphics Support +# +# CONFIG_NX is not set + +# +# Memory Management +# +# CONFIG_MM_SMALL is not set +CONFIG_MM_REGIONS=2 +# CONFIG_ARCH_HAVE_HEAP2 is not set +# CONFIG_GRAN is not set + +# +# Audio Support +# +# CONFIG_AUDIO is not set + +# +# Wireless Support +# + +# +# Binary Loader +# +# CONFIG_BINFMT_DISABLE is not set +# CONFIG_BINFMT_EXEPATH is not set +# CONFIG_NXFLAT is not set +# CONFIG_ELF is not set +CONFIG_BUILTIN=y +# CONFIG_PIC is not set +# CONFIG_SYMTAB_ORDEREDBYNAME is not set + +# +# Library Routines +# + +# +# Standard C Library Options +# +CONFIG_STDIO_BUFFER_SIZE=64 +CONFIG_STDIO_LINEBUFFER=y +CONFIG_NUNGET_CHARS=2 +CONFIG_LIB_HOMEDIR="/" +# CONFIG_LIBM is not set +# CONFIG_NOPRINTF_FIELDWIDTH is not set +# CONFIG_LIBC_FLOATINGPOINT is not set +CONFIG_LIBC_LONG_LONG=y +# CONFIG_LIBC_IOCTL_VARIADIC is not set +CONFIG_LIB_RAND_ORDER=1 +# CONFIG_EOL_IS_CR is not set +# CONFIG_EOL_IS_LF is not set +# CONFIG_EOL_IS_BOTH_CRLF is not set +CONFIG_EOL_IS_EITHER_CRLF=y +# CONFIG_LIBC_EXECFUNCS is not set +CONFIG_POSIX_SPAWN_PROXY_STACKSIZE=1024 +CONFIG_TASK_SPAWN_DEFAULT_STACKSIZE=2048 +# CONFIG_LIBC_STRERROR is not set +# CONFIG_LIBC_PERROR_STDOUT is not set +CONFIG_ARCH_LOWPUTC=y +# CONFIG_LIBC_LOCALTIME is not set +# CONFIG_TIME_EXTENDED is not set +CONFIG_LIB_SENDFILE_BUFSIZE=512 +# CONFIG_ARCH_ROMGETC is not set +# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set +# CONFIG_LIBC_NETDB is not set + +# +# Non-standard Library Support +# +# CONFIG_LIB_KBDCODEC is not set +# CONFIG_LIB_SLCDCODEC is not set + +# +# Basic CXX Support +# +# CONFIG_C99_BOOL8 is not set +CONFIG_HAVE_CXX=y +CONFIG_HAVE_CXXINITIALIZE=y +# CONFIG_CXX_NEWLONG is not set + +# +# uClibc++ Standard C++ Library +# +# CONFIG_UCLIBCXX is not set + +# +# Application Configuration +# + +# +# NxWidgets/NxWM +# + +# +# Built-In Applications +# +CONFIG_BUILTIN_PROXY_STACKSIZE=1024 + +# +# CAN Utilities +# + +# +# Examples +# +# CONFIG_EXAMPLES_BUTTONS is not set +# CONFIG_EXAMPLES_CHAT is not set +# CONFIG_EXAMPLES_CONFIGDATA is not set +# CONFIG_EXAMPLES_CPUHOG is not set +# CONFIG_EXAMPLES_CXXTEST is not set +# CONFIG_EXAMPLES_DHCPD is not set +# CONFIG_EXAMPLES_ELF is not set +# CONFIG_EXAMPLES_FTPC is not set +# CONFIG_EXAMPLES_FTPD is not set +# CONFIG_EXAMPLES_HELLO is not set +CONFIG_EXAMPLES_HELLOXX=y +CONFIG_EXAMPLES_HELLOXX_CXXINITIALIZE=y +# CONFIG_EXAMPLES_JSON is not set +# CONFIG_EXAMPLES_HIDKBD is not set +# CONFIG_EXAMPLES_KEYPADTEST is not set +# CONFIG_EXAMPLES_IGMP is not set +CONFIG_EXAMPLES_LEDS=y +CONFIG_EXAMPLES_LEDS_PRIORITY=100 +CONFIG_EXAMPLES_LEDS_STACKSIZE=2048 +CONFIG_EXAMPLES_LEDS_DEVPATH="/dev/userleds" +CONFIG_EXAMPLES_LEDS_LEDSET=0x0f +# CONFIG_EXAMPLES_MEDIA is not set +# CONFIG_EXAMPLES_MM is not set +# CONFIG_EXAMPLES_MODBUS is not set +# CONFIG_EXAMPLES_MOUNT is not set +# CONFIG_EXAMPLES_NRF24L01TERM is not set +CONFIG_EXAMPLES_NSH=y +CONFIG_EXAMPLES_NSH_CXXINITIALIZE=y +# CONFIG_EXAMPLES_NULL is not set +# CONFIG_EXAMPLES_NX is not set +# CONFIG_EXAMPLES_NXTERM is not set +# CONFIG_EXAMPLES_NXFFS is not set +# CONFIG_EXAMPLES_NXHELLO is not set +# CONFIG_EXAMPLES_NXIMAGE is not set +# CONFIG_EXAMPLES_NXLINES is not set +# CONFIG_EXAMPLES_NXTEXT is not set +# CONFIG_EXAMPLES_OSTEST is not set +# CONFIG_EXAMPLES_PCA9635 is not set +# CONFIG_EXAMPLES_PIPE is not set +# CONFIG_EXAMPLES_PPPD is not set +# CONFIG_EXAMPLES_POSIXSPAWN is not set +# CONFIG_EXAMPLES_RGBLED is not set +# CONFIG_EXAMPLES_RGMP is not set +# CONFIG_EXAMPLES_SENDMAIL is not set +# CONFIG_EXAMPLES_SERIALBLASTER is not set +# CONFIG_EXAMPLES_SERIALRX is not set +# CONFIG_EXAMPLES_SERLOOP is not set +# CONFIG_EXAMPLES_SLCD is not set +# CONFIG_EXAMPLES_SMART_TEST is not set +# CONFIG_EXAMPLES_SMART is not set +# CONFIG_EXAMPLES_SMP is not set +# CONFIG_EXAMPLES_TCPECHO is not set +# CONFIG_EXAMPLES_TELNETD is not set +# CONFIG_EXAMPLES_TIFF is not set +# CONFIG_EXAMPLES_TOUCHSCREEN is not set +# CONFIG_EXAMPLES_WEBSERVER is not set +# CONFIG_EXAMPLES_USBSERIAL is not set +# CONFIG_EXAMPLES_USBTERM is not set +# CONFIG_EXAMPLES_WATCHDOG is not set + +# +# File System Utilities +# +# CONFIG_FSUTILS_INIFILE is not set + +# +# GPS Utilities +# +# CONFIG_GPSUTILS_MINMEA_LIB is not set + +# +# Graphics Support +# +# CONFIG_TIFF is not set +# CONFIG_GRAPHICS_TRAVELER is not set + +# +# Interpreters +# +# CONFIG_INTERPRETERS_FICL is not set +# CONFIG_INTERPRETERS_PCODE is not set +# CONFIG_INTERPRETERS_MICROPYTHON is not set + +# +# FreeModBus +# +# CONFIG_MODBUS is not set + +# +# Network Utilities +# +# CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_FTPC is not set +# CONFIG_NETUTILS_JSON is not set +# CONFIG_NETUTILS_SMTP is not set + +# +# NSH Library +# +CONFIG_NSH_LIBRARY=y +# CONFIG_NSH_MOTD is not set + +# +# Command Line Configuration +# +CONFIG_NSH_READLINE=y +# CONFIG_NSH_CLE is not set +CONFIG_NSH_LINELEN=64 +# CONFIG_NSH_DISABLE_SEMICOLON is not set +CONFIG_NSH_CMDPARMS=y +CONFIG_NSH_MAXARGUMENTS=6 +CONFIG_NSH_ARGCAT=y +CONFIG_NSH_NESTDEPTH=3 +# CONFIG_NSH_DISABLEBG is not set +CONFIG_NSH_BUILTIN_APPS=y + +# +# Disable Individual commands +# +# CONFIG_NSH_DISABLE_ADDROUTE is not set +# CONFIG_NSH_DISABLE_BASENAME is not set +# CONFIG_NSH_DISABLE_CAT is not set +# CONFIG_NSH_DISABLE_CD is not set +# CONFIG_NSH_DISABLE_CP is not set +# CONFIG_NSH_DISABLE_CMP is not set +# CONFIG_NSH_DISABLE_DATE is not set +# CONFIG_NSH_DISABLE_DD is not set +# CONFIG_NSH_DISABLE_DF is not set +# CONFIG_NSH_DISABLE_DELROUTE is not set +# CONFIG_NSH_DISABLE_DIRNAME is not set +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_EXEC is not set +# CONFIG_NSH_DISABLE_EXIT is not set +# CONFIG_NSH_DISABLE_FREE is not set +# CONFIG_NSH_DISABLE_GET is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_HEXDUMP is not set +# CONFIG_NSH_DISABLE_IFCONFIG is not set +CONFIG_NSH_DISABLE_IFUPDOWN=y +# CONFIG_NSH_DISABLE_KILL is not set +# CONFIG_NSH_DISABLE_LOSETUP is not set +CONFIG_NSH_DISABLE_LOSMART=y +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MB is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MKFIFO is not set +# CONFIG_NSH_DISABLE_MKRD is not set +# CONFIG_NSH_DISABLE_MH is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_MW is not set +# CONFIG_NSH_DISABLE_PS is not set +# CONFIG_NSH_DISABLE_PUT is not set +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_RM is not set +# CONFIG_NSH_DISABLE_RMDIR is not set +# CONFIG_NSH_DISABLE_SET is not set +# CONFIG_NSH_DISABLE_SH is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_TIME is not set +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNAME is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set +# CONFIG_NSH_DISABLE_WGET is not set +# CONFIG_NSH_DISABLE_XD is not set + +# +# Configure Command Options +# +CONFIG_NSH_CMDOPT_DF_H=y +CONFIG_NSH_CODECS_BUFSIZE=128 +CONFIG_NSH_CMDOPT_HEXDUMP=y +CONFIG_NSH_FILEIOSIZE=512 + +# +# Scripting Support +# +# CONFIG_NSH_DISABLESCRIPT is not set +# CONFIG_NSH_DISABLE_ITEF is not set +# CONFIG_NSH_DISABLE_LOOPS is not set + +# +# Console Configuration +# +CONFIG_NSH_CONSOLE=y +# CONFIG_NSH_ALTCONDEV is not set +CONFIG_NSH_ARCHINIT=y +# CONFIG_NSH_LOGIN is not set +# CONFIG_NSH_CONSOLE_LOGIN is not set + +# +# Platform-specific Support +# +# CONFIG_PLATFORM_CONFIGDATA is not set + +# +# System Libraries and NSH Add-Ons +# +# CONFIG_SYSTEM_FREE is not set +# CONFIG_SYSTEM_CLE is not set +# CONFIG_SYSTEM_CUTERM is not set +# CONFIG_SYSTEM_INSTALL is not set +# CONFIG_SYSTEM_HEX2BIN is not set +# CONFIG_SYSTEM_HEXED is not set +# CONFIG_SYSTEM_RAMTEST is not set +CONFIG_READLINE_HAVE_EXTMATCH=y +CONFIG_SYSTEM_READLINE=y +CONFIG_READLINE_ECHO=y +CONFIG_READLINE_TABCOMPLETION=y +CONFIG_READLINE_MAX_BUILTINS=64 +CONFIG_READLINE_MAX_EXTCMDS=64 +CONFIG_READLINE_CMD_HISTORY=y +CONFIG_READLINE_CMD_HISTORY_LINELEN=80 +CONFIG_READLINE_CMD_HISTORY_LEN=16 +# CONFIG_SYSTEM_SUDOKU is not set +# CONFIG_SYSTEM_VI is not set +# CONFIG_SYSTEM_UBLOXMODEM is not set +# CONFIG_SYSTEM_ZMODEM is not set diff --git a/configs/nucleo-144/evalos/setenv.sh b/configs/nucleo-144/evalos/setenv.sh new file mode 100644 index 0000000000..0f767948bf --- /dev/null +++ b/configs/nucleo-144/evalos/setenv.sh @@ -0,0 +1,78 @@ +#!/bin/bash +# configs/nucleo-144/evalos/setenv.sh +# +# Copyright (C) 2016 Gregory Nutt. All rights reserved. +# Author: Gregory Nutt +# Author: Mark Olsson +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# 3. Neither the name NuttX nor the names of its contributors may be +# used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + +if [ "$_" = "$0" ] ; then + echo "You must source this script, not run it!" 1>&2 + exit 1 +fi + +WD=`pwd` +if [ ! -x "setenv.sh" ]; then + echo "This script must be executed from the top-level NuttX build directory" + exit 1 +fi + +if [ -z "${PATH_ORIG}" ]; then + export PATH_ORIG="${PATH}" +fi + +# This is the Cygwin path to the location where I installed the Atmel GCC +# toolchain under Windows. You will also have to edit this if you install +# this toolchain in any other location +#export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/Atmel/Atmel Toolchain/ARM GCC/Native/4.7.3.99/arm-gnu-toolchain/bin" + +# This is the Cygwin path to the location where I installed the CodeSourcery +# toolchain under windows. You will also have to edit this if you install +# the CodeSourcery toolchain in any other location +#export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/CodeSourcery/Sourcery G++ Lite/bin" +#export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_EABI/bin" +# export TOOLCHAIN_BIN="/cygdrive/c/Users/MyName/MentorGraphics/Sourcery_CodeBench_Lite_for_ARM_EABI/bin" + +# This is the location where I installed the ARM "GNU Tools for ARM Embedded Processors" +# You can this free toolchain here https://launchpad.net/gcc-arm-embedded +export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/GNU Tools ARM Embedded/4.9 2015q2/bin" + +# This is the path to the location where I installed the devkitARM toolchain +# You can get this free toolchain from http://devkitpro.org/ or http://sourceforge.net/projects/devkitpro/ +#export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/devkitARM/bin" + +# This is the Cygwin path to the location where I build the buildroot +# toolchain. +# export TOOLCHAIN_BIN="${WD}/../buildroot/build_arm_nofpu/staging_dir/bin" + +# Add the path to the toolchain to the PATH varialble +export PATH="${TOOLCHAIN_BIN}:/sbin:/usr/sbin:${PATH_ORIG}" + +echo "PATH : ${PATH}" diff --git a/configs/nucleo-144/include/board.h b/configs/nucleo-144/include/board.h index e90b4146d3..63eb5df084 100644 --- a/configs/nucleo-144/include/board.h +++ b/configs/nucleo-144/include/board.h @@ -297,8 +297,11 @@ * -- ----- --------- ----- */ -#define GPIO_USART6_RX GPIO_USART6_RX_1 -#define GPIO_USART6_TX GPIO_USART6_TX_1 + #define GPIO_USART6_RX GPIO_USART6_RX_1 + #define GPIO_USART6_TX GPIO_USART6_TX_1 + + #define GPIO_USART3_RX GPIO_USART3_RX_3 + #define GPIO_USART3_TX GPIO_USART3_TX_3 /* The STM32 F7 connects to a SMSC LAN8742A PHY using these pins: * -- GitLab From a985e289ec66970132cbad201223f09878144118 Mon Sep 17 00:00:00 2001 From: Mark Olsson Date: Fri, 20 May 2016 15:22:47 +0200 Subject: [PATCH 205/307] Fixed User Button config for Nucleo-144 board family --- configs/nucleo-144/src/nucleo-144.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configs/nucleo-144/src/nucleo-144.h b/configs/nucleo-144/src/nucleo-144.h index 06d2b6a605..a5766c4497 100644 --- a/configs/nucleo-144/src/nucleo-144.h +++ b/configs/nucleo-144/src/nucleo-144.h @@ -76,11 +76,11 @@ #define LED_DRIVER_PATH "/dev/userleds" -/* Pushbutton B1, labelled "User", is connected to GPIO PI11. A high value will be sensed when the +/* Pushbutton B1, labelled "User", is connected to GPIO PC13. A high value will be sensed when the * button is depressed. Note that the EXTI interrupt is configured. */ -#define GPIO_BTN_USER (GPIO_INPUT | GPIO_FLOAT | GPIO_EXTI | GPIO_PORTI | GPIO_PIN11) +#define GPIO_BTN_USER (GPIO_INPUT | GPIO_FLOAT | GPIO_EXTI | GPIO_PORTC | GPIO_PIN13) /**************************************************************************************************** * Public data -- GitLab From 2d3e6539961aad6cee93693b25a0ad79fe2b4ade Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 20 May 2016 07:44:56 -0600 Subject: [PATCH 206/307] Mostly costmetic changes from review of last PR --- configs/nucleo-144/README.txt | 4 +- configs/nucleo-144/src/stm32_appinitialize.c | 16 ++++---- configs/nucleo-144/src/stm32_autoleds.c | 42 ++++++++++---------- configs/nucleo-144/src/stm32_buttons.c | 4 -- configs/nucleo-144/src/stm32_spi.c | 8 ---- configs/nucleo-144/src/stm32_userleds.c | 16 +++++--- 6 files changed, 41 insertions(+), 49 deletions(-) diff --git a/configs/nucleo-144/README.txt b/configs/nucleo-144/README.txt index e264413977..77ca0f0170 100644 --- a/configs/nucleo-144/README.txt +++ b/configs/nucleo-144/README.txt @@ -294,7 +294,7 @@ Configurations ============== nsh: ---------- +---- Configures the NuttShell (nsh) located at apps/examples/nsh for the Nucleo-144 boards. The Configuration enables the serial interfaces on UART6. Support for builtin applications is enabled, but in the base @@ -334,7 +334,7 @@ nsh: Consoles). evalos: ---------- +------- This configuration is designed to test the features of the board. - Configures the NuttShell (nsh) located at apps/examples/nsh for the Nucleo-144 boards. The console is available on serial interface USART3, diff --git a/configs/nucleo-144/src/stm32_appinitialize.c b/configs/nucleo-144/src/stm32_appinitialize.c index cbdae3906d..8dabb2bc4f 100644 --- a/configs/nucleo-144/src/stm32_appinitialize.c +++ b/configs/nucleo-144/src/stm32_appinitialize.c @@ -44,10 +44,6 @@ #include "nucleo-144.h" #include -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ @@ -64,13 +60,17 @@ int board_app_initialize(void) { +#if !defined(CONFIG_ARCH_LEDS) && defined(CONFIG_USERLED_LOWER) int ret; /* Register the LED driver */ + ret = userled_lower_initialize(LED_DRIVER_PATH); if (ret < 0) - { - syslog(LOG_ERR, "ERROR: userled_lower_initialize() failed: %d\n", ret); - } - return 1; + { + syslog(LOG_ERR, "ERROR: userled_lower_initialize() failed: %d\n", ret); + } +#endif + + return OK; } diff --git a/configs/nucleo-144/src/stm32_autoleds.c b/configs/nucleo-144/src/stm32_autoleds.c index 0e7a19d6ad..e9114391af 100644 --- a/configs/nucleo-144/src/stm32_autoleds.c +++ b/configs/nucleo-144/src/stm32_autoleds.c @@ -90,20 +90,20 @@ void board_autoled_on(int led) switch (led) { - case 0: /* LED_STARTED: NuttX has been started STATUS LED=OFF */ - /* LED_HEAPALLOCATE: Heap has been allocated STATUS LED=OFF */ - /* LED_IRQSENABLED: Interrupts enabled STATUS LED=OFF */ - break; /* Leave ledstate == true to turn OFF */ + case 0: /* LED_STARTED: NuttX has been started STATUS LED=OFF */ + /* LED_HEAPALLOCATE: Heap has been allocated STATUS LED=OFF */ + /* LED_IRQSENABLED: Interrupts enabled STATUS LED=OFF */ + break; /* Leave ledstate == true to turn OFF */ default: - case 2: /* LED_INIRQ: In an interrupt STATUS LED=N/C */ - /* LED_SIGNAL: In a signal handler STATUS LED=N/C */ - /* LED_ASSERTION: An assertion failed STATUS LED=N/C */ - return; /* Return to leave STATUS LED unchanged */ - - case 3: /* LED_PANIC: The system has crashed STATUS LED=FLASH */ - case 1: /* LED_STACKCREATED: Idle stack created STATUS LED=ON */ - ledstate = true; /* Set ledstate == false to turn ON */ + case 2: /* LED_INIRQ: In an interrupt STATUS LED=N/C */ + /* LED_SIGNAL: In a signal handler STATUS LED=N/C */ + /* LED_ASSERTION: An assertion failed STATUS LED=N/C */ + return; /* Return to leave STATUS LED unchanged */ + + case 3: /* LED_PANIC: The system has crashed STATUS LED=FLASH */ + case 1: /* LED_STACKCREATED: Idle stack created STATUS LED=ON */ + ledstate = true; /* Set ledstate == false to turn ON */ break; } @@ -121,21 +121,21 @@ void board_autoled_off(int led) /* These should not happen and are ignored */ default: - case 0: /* LED_STARTED: NuttX has been started STATUS LED=OFF */ - /* LED_HEAPALLOCATE: Heap has been allocated STATUS LED=OFF */ - /* LED_IRQSENABLED: Interrupts enabled STATUS LED=OFF */ - case 1: /* LED_STACKCREATED: Idle stack created STATUS LED=ON */ + case 0: /* LED_STARTED: NuttX has been started STATUS LED=OFF */ + /* LED_HEAPALLOCATE: Heap has been allocated STATUS LED=OFF */ + /* LED_IRQSENABLED: Interrupts enabled STATUS LED=OFF */ + case 1: /* LED_STACKCREATED: Idle stack created STATUS LED=ON */ /* These result in no-change */ - case 2: /* LED_INIRQ: In an interrupt STATUS LED=N/C */ - /* LED_SIGNAL: In a signal handler STATUS LED=N/C */ - /* LED_ASSERTION: An assertion failed STATUS LED=N/C */ - return; /* Return to leave STATUS LED unchanged */ + case 2: /* LED_INIRQ: In an interrupt STATUS LED=N/C */ + /* LED_SIGNAL: In a signal handler STATUS LED=N/C */ + /* LED_ASSERTION: An assertion failed STATUS LED=N/C */ + return; /* Return to leave STATUS LED unchanged */ /* Turn STATUS LED off set driving the output high */ - case 3: /* LED_PANIC: The system has crashed STATUS LED=FLASH */ + case 3: /* LED_PANIC: The system has crashed STATUS LED=FLASH */ stm32_gpiowrite(GPIO_LD1, false); break; } diff --git a/configs/nucleo-144/src/stm32_buttons.c b/configs/nucleo-144/src/stm32_buttons.c index 0421caeec7..54a7dafbfb 100644 --- a/configs/nucleo-144/src/stm32_buttons.c +++ b/configs/nucleo-144/src/stm32_buttons.c @@ -47,10 +47,6 @@ #ifdef CONFIG_ARCH_BUTTONS -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ diff --git a/configs/nucleo-144/src/stm32_spi.c b/configs/nucleo-144/src/stm32_spi.c index d3b5e9160e..e31a63a11d 100644 --- a/configs/nucleo-144/src/stm32_spi.c +++ b/configs/nucleo-144/src/stm32_spi.c @@ -74,14 +74,6 @@ # define spivdbg(x...) #endif -/************************************************************************************ - * Private Data - ************************************************************************************/ - -/************************************************************************************ - * Private Functions - ************************************************************************************/ - /************************************************************************************ * Public Functions ************************************************************************************/ diff --git a/configs/nucleo-144/src/stm32_userleds.c b/configs/nucleo-144/src/stm32_userleds.c index 1a0b4a5cc2..4ec9f20947 100644 --- a/configs/nucleo-144/src/stm32_userleds.c +++ b/configs/nucleo-144/src/stm32_userleds.c @@ -69,6 +69,7 @@ /**************************************************************************** * Private Data ****************************************************************************/ + /* This array maps an LED number to GPIO pin configuration */ static const uint32_t g_ledcfg[3] = @@ -96,10 +97,11 @@ void board_userled_initialize(void) int i; /* Configure LED1-3 GPIOs for output */ + for (i = 0; i < 3; i++) - { - stm32_configgpio(g_ledcfg[i]); - } + { + stm32_configgpio(g_ledcfg[i]); + } } /**************************************************************************** @@ -134,11 +136,13 @@ void board_userled(int led, bool ledon) void board_userled_all(uint8_t ledset) { int i; + /* Configure LED1-3 GPIOs for output */ + for (i = 0; i < 3; i++) - { - stm32_gpiowrite(g_ledcfg[i], (ledset & (1 << i)) != 0); - } + { + stm32_gpiowrite(g_ledcfg[i], (ledset & (1 << i)) != 0); + } } #endif /* !CONFIG_ARCH_LEDS */ -- GitLab From eeb4a5c230ad169aee681d3f26aa068e2a63c8df Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 20 May 2016 07:46:10 -0600 Subject: [PATCH 207/307] Remove comments blocks before empty file sections --- configs/nucleo-144/src/stm32_boot.c | 8 -------- 1 file changed, 8 deletions(-) diff --git a/configs/nucleo-144/src/stm32_boot.c b/configs/nucleo-144/src/stm32_boot.c index 6024e76b22..3a6b8cb951 100644 --- a/configs/nucleo-144/src/stm32_boot.c +++ b/configs/nucleo-144/src/stm32_boot.c @@ -47,14 +47,6 @@ #include "up_arch.h" #include "nucleo-144.h" -/************************************************************************************ - * Pre-processor Definitions - ************************************************************************************/ - -/************************************************************************************ - * Private Functions - ************************************************************************************/ - /************************************************************************************ * Public Functions ************************************************************************************/ -- GitLab From 07acd5327af89a785ab3e4cc422289cd5b476ba9 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 20 May 2016 12:39:02 -0600 Subject: [PATCH 208/307] SMP: Clean CPU0 D-Cache before starting new CPU; Invalidate D-Cache when new CPU started. --- arch/arm/src/armv7-a/arm_addrenv.c | 4 ---- arch/arm/src/armv7-a/arm_addrenv_kstack.c | 12 ----------- arch/arm/src/armv7-a/arm_addrenv_shm.c | 12 ----------- arch/arm/src/armv7-a/arm_addrenv_ustack.c | 8 ------- arch/arm/src/armv7-a/arm_addrenv_utils.c | 12 ----------- arch/arm/src/armv7-a/arm_allocpage.c | 8 ------- arch/arm/src/armv7-a/arm_checkmapping.c | 12 ----------- arch/arm/src/armv7-a/arm_coherent_dcache.c | 12 ----------- arch/arm/src/armv7-a/arm_copyfullstate.c | 12 ----------- arch/arm/src/armv7-a/arm_cpustart.c | 9 ++++++++ arch/arm/src/armv7-a/arm_doirq.c | 16 -------------- arch/arm/src/armv7-a/arm_elf.c | 12 ----------- arch/arm/src/armv7-a/arm_fullcontextrestore.S | 16 -------------- arch/arm/src/armv7-a/arm_gicv2.c | 14 ++++++------- arch/arm/src/armv7-a/arm_initialstate.c | 12 ----------- arch/arm/src/armv7-a/arm_mmu.c | 12 ----------- arch/arm/src/armv7-a/arm_pgalloc.c | 7 ------- arch/arm/src/armv7-a/arm_pginitialize.c | 12 ----------- arch/arm/src/armv7-a/arm_physpgaddr.c | 11 ---------- arch/arm/src/armv7-a/arm_prefetchabort.c | 12 ----------- arch/arm/src/armv7-a/arm_schedulesigaction.c | 12 ----------- arch/arm/src/armv7-a/arm_signal_dispatch.c | 12 ----------- arch/arm/src/armv7-a/arm_syscall.c | 2 +- arch/arm/src/armv7-a/arm_unblocktask.c | 12 ----------- arch/arm/src/armv7-a/arm_undefinedinsn.c | 12 ----------- arch/arm/src/armv7-a/arm_va2pte.c | 12 ----------- arch/arm/src/armv7-a/arm_vectors.S | 8 ------- arch/arm/src/armv7-a/arm_virtpgaddr.c | 12 ----------- arch/arm/src/armv7-a/crt0.c | 8 ------- configs/sabre-6quad/README.txt | 7 +++++++ sched/irq/irq_dispatch.c | 21 ------------------- 31 files changed, 24 insertions(+), 319 deletions(-) diff --git a/arch/arm/src/armv7-a/arm_addrenv.c b/arch/arm/src/armv7-a/arm_addrenv.c index 56d4d05cee..2bd1f886ce 100644 --- a/arch/arm/src/armv7-a/arm_addrenv.c +++ b/arch/arm/src/armv7-a/arm_addrenv.c @@ -141,10 +141,6 @@ # error CONFIG_ARCH_HEAP_VBASE not aligned to section boundary #endif -/**************************************************************************** - * Private Data - ****************************************************************************/ - /**************************************************************************** * Private Functions ****************************************************************************/ diff --git a/arch/arm/src/armv7-a/arm_addrenv_kstack.c b/arch/arm/src/armv7-a/arm_addrenv_kstack.c index 852b03620b..da2a474126 100644 --- a/arch/arm/src/armv7-a/arm_addrenv_kstack.c +++ b/arch/arm/src/armv7-a/arm_addrenv_kstack.c @@ -121,18 +121,6 @@ #if defined(CONFIG_ARCH_ADDRENV) && defined(CONFIG_ARCH_KERNEL_STACK) -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ diff --git a/arch/arm/src/armv7-a/arm_addrenv_shm.c b/arch/arm/src/armv7-a/arm_addrenv_shm.c index 3bd2715350..9a05b9f7b9 100644 --- a/arch/arm/src/armv7-a/arm_addrenv_shm.c +++ b/arch/arm/src/armv7-a/arm_addrenv_shm.c @@ -55,18 +55,6 @@ #if defined(CONFIG_BUILD_KERNEL) && defined(CONFIG_MM_SHM) -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ diff --git a/arch/arm/src/armv7-a/arm_addrenv_ustack.c b/arch/arm/src/armv7-a/arm_addrenv_ustack.c index 97da35992f..206d517ef3 100644 --- a/arch/arm/src/armv7-a/arm_addrenv_ustack.c +++ b/arch/arm/src/armv7-a/arm_addrenv_ustack.c @@ -116,14 +116,6 @@ # error CONFIG_ARCH_STACK_VBASE not aligned to section boundary #endif -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ diff --git a/arch/arm/src/armv7-a/arm_addrenv_utils.c b/arch/arm/src/armv7-a/arm_addrenv_utils.c index fc62c9b126..f3147918f2 100644 --- a/arch/arm/src/armv7-a/arm_addrenv_utils.c +++ b/arch/arm/src/armv7-a/arm_addrenv_utils.c @@ -53,18 +53,6 @@ #ifdef CONFIG_ARCH_ADDRENV -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ diff --git a/arch/arm/src/armv7-a/arm_allocpage.c b/arch/arm/src/armv7-a/arm_allocpage.c index 39ffea6e21..88dc1bc47f 100644 --- a/arch/arm/src/armv7-a/arm_allocpage.c +++ b/arch/arm/src/armv7-a/arm_allocpage.c @@ -54,10 +54,6 @@ #include "pg_macros.h" #include "up_internal.h" -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - /**************************************************************************** * Private Types ****************************************************************************/ @@ -108,10 +104,6 @@ static L1ndx_t g_ptemap[CONFIG_PAGING_NPPAGED]; static bool g_pgwrap; -/**************************************************************************** - * Private Functions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ diff --git a/arch/arm/src/armv7-a/arm_checkmapping.c b/arch/arm/src/armv7-a/arm_checkmapping.c index 4f20d22053..5a7b2518ef 100644 --- a/arch/arm/src/armv7-a/arm_checkmapping.c +++ b/arch/arm/src/armv7-a/arm_checkmapping.c @@ -51,18 +51,6 @@ #ifdef CONFIG_PAGING -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ diff --git a/arch/arm/src/armv7-a/arm_coherent_dcache.c b/arch/arm/src/armv7-a/arm_coherent_dcache.c index 363e88f804..c9552093ef 100644 --- a/arch/arm/src/armv7-a/arm_coherent_dcache.c +++ b/arch/arm/src/armv7-a/arm_coherent_dcache.c @@ -46,18 +46,6 @@ #include -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ diff --git a/arch/arm/src/armv7-a/arm_copyfullstate.c b/arch/arm/src/armv7-a/arm_copyfullstate.c index b41b3f2ebb..b35149ff07 100644 --- a/arch/arm/src/armv7-a/arm_copyfullstate.c +++ b/arch/arm/src/armv7-a/arm_copyfullstate.c @@ -44,18 +44,6 @@ #include "up_internal.h" -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ diff --git a/arch/arm/src/armv7-a/arm_cpustart.c b/arch/arm/src/armv7-a/arm_cpustart.c index d5d0fe99bc..0cb0981f46 100644 --- a/arch/arm/src/armv7-a/arm_cpustart.c +++ b/arch/arm/src/armv7-a/arm_cpustart.c @@ -46,6 +46,7 @@ #include "up_internal.h" #include "gic.h" +#include "cp15_cacheops.h" #include "sched/sched.h" #ifdef CONFIG_SMP @@ -74,6 +75,10 @@ int arm_start_handler(int irq, FAR void *context) { FAR struct tcb_s *tcb = this_task(); + /* Invalidate CPUn L1 so that is will be reloaded from coherent L2. */ + + cp15_invalidate_dcache_all(); + /* Reset scheduler parameters */ sched_resume_scheduler(tcb); @@ -118,6 +123,10 @@ int up_cpu_start(int cpu) { DEBUGASSERT(cpu >= 0 && cpu < CONFIG_SMP_NCPUS && cpu != this_cpu()); + /* Make the content of CPU0 L1 cache has been written to coherent L2 */ + + cp15_clean_dcache(CONFIG_RAM_START, CONFIG_RAM_END - 1); + /* Execute SGI1 */ return arm_cpu_sgi(GIC_IRQ_SGI1, (1 << cpu)); diff --git a/arch/arm/src/armv7-a/arm_doirq.c b/arch/arm/src/armv7-a/arm_doirq.c index 4980111d58..b3d98151c0 100644 --- a/arch/arm/src/armv7-a/arm_doirq.c +++ b/arch/arm/src/armv7-a/arm_doirq.c @@ -52,22 +52,6 @@ #include "group/group.h" -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Public Data - ****************************************************************************/ - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ diff --git a/arch/arm/src/armv7-a/arm_elf.c b/arch/arm/src/armv7-a/arm_elf.c index 3f076908c4..57898e136a 100644 --- a/arch/arm/src/armv7-a/arm_elf.c +++ b/arch/arm/src/armv7-a/arm_elf.c @@ -48,18 +48,6 @@ #include #include -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ diff --git a/arch/arm/src/armv7-a/arm_fullcontextrestore.S b/arch/arm/src/armv7-a/arm_fullcontextrestore.S index 88fce91dba..64f74c8a98 100644 --- a/arch/arm/src/armv7-a/arm_fullcontextrestore.S +++ b/arch/arm/src/armv7-a/arm_fullcontextrestore.S @@ -44,28 +44,12 @@ .file "arm_fullcontextrestore.S" -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - /**************************************************************************** * Public Symbols ****************************************************************************/ .globl up_fullcontextrestore -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Public Data - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ diff --git a/arch/arm/src/armv7-a/arm_gicv2.c b/arch/arm/src/armv7-a/arm_gicv2.c index fbdc7eca1d..990a2c66dd 100644 --- a/arch/arm/src/armv7-a/arm_gicv2.c +++ b/arch/arm/src/armv7-a/arm_gicv2.c @@ -166,12 +166,12 @@ void arm_gic_initialize(void) /* Registers with 8-bits per interrupt */ - putreg32(0x80808080, GIC_ICDIPR(0)); /* SGI[3:0] priority */ - putreg32(0x80808080, GIC_ICDIPR(4)); /* SGI[4:7] priority */ - putreg32(0x80808080, GIC_ICDIPR(8)); /* SGI[8:11] priority */ - putreg32(0x80808080, GIC_ICDIPR(12)); /* SGI[12:15] priority */ - putreg32(0x80000000, GIC_ICDIPR(24)); /* PPI[0] priority */ - putreg32(0x80808080, GIC_ICDIPR(28)); /* PPI[1:4] priority */ + putreg32(0x80808080, GIC_ICDIPR(0)); /* SGI[3:0] priority */ + putreg32(0x80808080, GIC_ICDIPR(4)); /* SGI[4:7] priority */ + putreg32(0x80808080, GIC_ICDIPR(8)); /* SGI[8:11] priority */ + putreg32(0x80808080, GIC_ICDIPR(12)); /* SGI[12:15] priority */ + putreg32(0x80000000, GIC_ICDIPR(24)); /* PPI[0] priority */ + putreg32(0x80808080, GIC_ICDIPR(28)); /* PPI[1:4] priority */ /* Set the binary point register. * @@ -527,7 +527,7 @@ int up_prioritize_irq(int irq, int priority) * Name: arm_gic_irq_trigger * * Description: - * Set the trigger type for the specificd IRQ source and the current CPU. + * Set the trigger type for the specified IRQ source and the current CPU. * * Since this API is not supported on all architectures, it should be * avoided in common implementations where possible. diff --git a/arch/arm/src/armv7-a/arm_initialstate.c b/arch/arm/src/armv7-a/arm_initialstate.c index c43e12d67e..cb912021b1 100644 --- a/arch/arm/src/armv7-a/arm_initialstate.c +++ b/arch/arm/src/armv7-a/arm_initialstate.c @@ -48,18 +48,6 @@ #include "up_internal.h" #include "up_arch.h" -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ diff --git a/arch/arm/src/armv7-a/arm_mmu.c b/arch/arm/src/armv7-a/arm_mmu.c index 19c609e5b0..1589e8081a 100644 --- a/arch/arm/src/armv7-a/arm_mmu.c +++ b/arch/arm/src/armv7-a/arm_mmu.c @@ -44,18 +44,6 @@ #include "cache.h" #include "mmu.h" -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ diff --git a/arch/arm/src/armv7-a/arm_pgalloc.c b/arch/arm/src/armv7-a/arm_pgalloc.c index d430f8b68b..514c623fe9 100644 --- a/arch/arm/src/armv7-a/arm_pgalloc.c +++ b/arch/arm/src/armv7-a/arm_pgalloc.c @@ -54,13 +54,6 @@ #ifdef CONFIG_BUILD_KERNEL -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Data - ****************************************************************************/ /**************************************************************************** * Private Functions diff --git a/arch/arm/src/armv7-a/arm_pginitialize.c b/arch/arm/src/armv7-a/arm_pginitialize.c index 94b44449ed..ba431a8c60 100644 --- a/arch/arm/src/armv7-a/arm_pginitialize.c +++ b/arch/arm/src/armv7-a/arm_pginitialize.c @@ -49,18 +49,6 @@ #ifdef CONFIG_PAGING -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ diff --git a/arch/arm/src/armv7-a/arm_physpgaddr.c b/arch/arm/src/armv7-a/arm_physpgaddr.c index d3fecd1fc1..0c753ab864 100644 --- a/arch/arm/src/armv7-a/arm_physpgaddr.c +++ b/arch/arm/src/armv7-a/arm_physpgaddr.c @@ -55,17 +55,6 @@ #ifdef CONFIG_MM_PGALLOC -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ diff --git a/arch/arm/src/armv7-a/arm_prefetchabort.c b/arch/arm/src/armv7-a/arm_prefetchabort.c index 7d2b4cf2df..bdd28c4a3a 100644 --- a/arch/arm/src/armv7-a/arm_prefetchabort.c +++ b/arch/arm/src/armv7-a/arm_prefetchabort.c @@ -61,18 +61,6 @@ #include "sched/sched.h" #include "up_internal.h" -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ diff --git a/arch/arm/src/armv7-a/arm_schedulesigaction.c b/arch/arm/src/armv7-a/arm_schedulesigaction.c index e8db2d35f4..3dfe5fc285 100644 --- a/arch/arm/src/armv7-a/arm_schedulesigaction.c +++ b/arch/arm/src/armv7-a/arm_schedulesigaction.c @@ -53,18 +53,6 @@ #ifndef CONFIG_DISABLE_SIGNALS -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ diff --git a/arch/arm/src/armv7-a/arm_signal_dispatch.c b/arch/arm/src/armv7-a/arm_signal_dispatch.c index 3e4f90b6e9..5925923760 100644 --- a/arch/arm/src/armv7-a/arm_signal_dispatch.c +++ b/arch/arm/src/armv7-a/arm_signal_dispatch.c @@ -47,18 +47,6 @@ #if ((defined(CONFIG_BUILD_PROTECTED) && defined(__KERNEL__)) || \ defined(CONFIG_BUILD_KERNEL)) && !defined(CONFIG_DISABLE_SIGNALS) -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ diff --git a/arch/arm/src/armv7-a/arm_syscall.c b/arch/arm/src/armv7-a/arm_syscall.c index 4b73c1e5e3..854ece3de2 100644 --- a/arch/arm/src/armv7-a/arm_syscall.c +++ b/arch/arm/src/armv7-a/arm_syscall.c @@ -77,7 +77,7 @@ #endif /**************************************************************************** - * Private Data + * Private Functions ****************************************************************************/ /**************************************************************************** diff --git a/arch/arm/src/armv7-a/arm_unblocktask.c b/arch/arm/src/armv7-a/arm_unblocktask.c index 173ca91322..e3d2fa3fc7 100644 --- a/arch/arm/src/armv7-a/arm_unblocktask.c +++ b/arch/arm/src/armv7-a/arm_unblocktask.c @@ -49,18 +49,6 @@ #include "clock/clock.h" #include "up_internal.h" -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ diff --git a/arch/arm/src/armv7-a/arm_undefinedinsn.c b/arch/arm/src/armv7-a/arm_undefinedinsn.c index bc08375594..0c051d9dd9 100644 --- a/arch/arm/src/armv7-a/arm_undefinedinsn.c +++ b/arch/arm/src/armv7-a/arm_undefinedinsn.c @@ -58,18 +58,6 @@ #include "up_internal.h" -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ diff --git a/arch/arm/src/armv7-a/arm_va2pte.c b/arch/arm/src/armv7-a/arm_va2pte.c index ded054187e..fb6e4f0358 100644 --- a/arch/arm/src/armv7-a/arm_va2pte.c +++ b/arch/arm/src/armv7-a/arm_va2pte.c @@ -52,18 +52,6 @@ #ifdef CONFIG_PAGING -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ diff --git a/arch/arm/src/armv7-a/arm_vectors.S b/arch/arm/src/armv7-a/arm_vectors.S index 5699a449fd..33d1f8fc55 100644 --- a/arch/arm/src/armv7-a/arm_vectors.S +++ b/arch/arm/src/armv7-a/arm_vectors.S @@ -45,10 +45,6 @@ .file "arm_vectors.S" -/************************************************************************************ - * Pre-processor Definitions - ************************************************************************************/ - /************************************************************************************ * Private Data ************************************************************************************/ @@ -69,10 +65,6 @@ g_fiqtmp: .word 0 /* Saved spsr */ #endif -/************************************************************************************ - * Assembly Macros - ************************************************************************************/ - /************************************************************************************ * Private Functions ************************************************************************************/ diff --git a/arch/arm/src/armv7-a/arm_virtpgaddr.c b/arch/arm/src/armv7-a/arm_virtpgaddr.c index 741bf8d122..26dc9cc209 100644 --- a/arch/arm/src/armv7-a/arm_virtpgaddr.c +++ b/arch/arm/src/armv7-a/arm_virtpgaddr.c @@ -43,18 +43,6 @@ #if defined(CONFIG_MM_PGALLOC) && defined(CONFIG_ARCH_PGPOOL_MAPPING) -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ diff --git a/arch/arm/src/armv7-a/crt0.c b/arch/arm/src/armv7-a/crt0.c index cfa00e7b1c..a06e3f858e 100644 --- a/arch/arm/src/armv7-a/crt0.c +++ b/arch/arm/src/armv7-a/crt0.c @@ -46,14 +46,6 @@ #ifdef CONFIG_BUILD_KERNEL -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Data - ****************************************************************************/ - /**************************************************************************** * Public Function Prototypes ****************************************************************************/ diff --git a/configs/sabre-6quad/README.txt b/configs/sabre-6quad/README.txt index 2447e58a75..f80ebce643 100644 --- a/configs/sabre-6quad/README.txt +++ b/configs/sabre-6quad/README.txt @@ -468,6 +468,13 @@ Open Issues: CPU (which may not be CPU0). Perhaps that should be a spinlock to prohibit execution of interrupts on CPU0 when other CPUs are in a critical section? +2. Cache Concurency. This is a difficult problem. There is logic in place now to + clean CPU0 D-cache before starting a new CPU and for invalidating the D-Cache + when the new CPU is started. + + But there are many, many more cache coherency issues. This could, in face, be + a showstopping issue. + Configurations ============== diff --git a/sched/irq/irq_dispatch.c b/sched/irq/irq_dispatch.c index 4d18ac34fd..becc5b0979 100644 --- a/sched/irq/irq_dispatch.c +++ b/sched/irq/irq_dispatch.c @@ -45,26 +45,6 @@ #include "irq/irq.h" -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Public Data - ****************************************************************************/ - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ @@ -102,4 +82,3 @@ void irq_dispatch(int irq, FAR void *context) vector(irq, context); } - -- GitLab From 356692d70e02e034bd30dcc005ffcb1a40d38ac0 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 20 May 2016 13:35:58 -0600 Subject: [PATCH 209/307] SMP: Need to enable FPU on other CPUs as well --- arch/arm/src/armv7-a/arm_cpustart.c | 3 ++- arch/arm/src/imx6/imx_cpuboot.c | 7 ++++++ configs/sabre-6quad/README.txt | 39 +++++++++++++++++++++++++---- 3 files changed, 43 insertions(+), 6 deletions(-) diff --git a/arch/arm/src/armv7-a/arm_cpustart.c b/arch/arm/src/armv7-a/arm_cpustart.c index 0cb0981f46..00addb818d 100644 --- a/arch/arm/src/armv7-a/arm_cpustart.c +++ b/arch/arm/src/armv7-a/arm_cpustart.c @@ -73,7 +73,7 @@ int arm_start_handler(int irq, FAR void *context) { - FAR struct tcb_s *tcb = this_task(); + FAR struct tcb_s *tcb; /* Invalidate CPUn L1 so that is will be reloaded from coherent L2. */ @@ -81,6 +81,7 @@ int arm_start_handler(int irq, FAR void *context) /* Reset scheduler parameters */ + tcb = this_task(); sched_resume_scheduler(tcb); /* Then switch contexts. This instantiates the exception context of the diff --git a/arch/arm/src/imx6/imx_cpuboot.c b/arch/arm/src/imx6/imx_cpuboot.c index cc8494782e..5aca8d33bb 100644 --- a/arch/arm/src/imx6/imx_cpuboot.c +++ b/arch/arm/src/imx6/imx_cpuboot.c @@ -51,6 +51,7 @@ #include "chip/imx_src.h" #include "sctlr.h" #include "smp.h" +#include "fpu.h" #include "gic.h" #ifdef CONFIG_SMP @@ -258,6 +259,12 @@ void imx_cpu_enable(void) void arm_cpu_boot(int cpu) { +#ifdef CONFIG_ARCH_FPU + /* Initialize the FPU */ + + arm_fpuconfig(); +#endif + /* Initialize the Generic Interrupt Controller (GIC) for CPUn (n != 0) */ arm_gic_initialize(); diff --git a/configs/sabre-6quad/README.txt b/configs/sabre-6quad/README.txt index f80ebce643..5b2c57d91f 100644 --- a/configs/sabre-6quad/README.txt +++ b/configs/sabre-6quad/README.txt @@ -468,12 +468,41 @@ Open Issues: CPU (which may not be CPU0). Perhaps that should be a spinlock to prohibit execution of interrupts on CPU0 when other CPUs are in a critical section? -2. Cache Concurency. This is a difficult problem. There is logic in place now to +2. Cache Concurency. This is a complex problem. There is logic in place now to clean CPU0 D-cache before starting a new CPU and for invalidating the D-Cache - when the new CPU is started. - - But there are many, many more cache coherency issues. This could, in face, be - a showstopping issue. + when the new CPU is started. REVISIT: Seems that this should not be necessary. + If the Shareable bit set in the MMU mappings and my understanding is that this + should keep cache coherency at least within a cluster. I need to study more + how the inner and outer shareable attribute works to control cacheing + + But there may are many, many more such cache coherency issues if I cannot find + a systematic way to manage cache coherency. + + http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dht0008a/CJABEHDA.html + http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.den0024a/CEGDBEJE.html + + Try: + + --- mmu.h.orig 2016-05-20 13:09:34.773462000 -0600 + +++ mmu.h 2016-05-20 13:03:13.261978100 -0600 + @@ -572,8 +572,14 @@ + + #define MMU_ROMFLAGS (PMD_TYPE_SECT | PMD_SECT_AP_R1 | PMD_CACHEABLE | \ + PMD_SECT_DOM(0)) + -#define MMU_MEMFLAGS (PMD_TYPE_SECT | PMD_SECT_AP_RW1 | PMD_CACHEABLE | \ + +#ifdef CONFIG_SMP + + + +# define MMU_MEMFLAGS (PMD_TYPE_SECT | PMD_SECT_AP_RW1 | PMD_CACHEABLE | \ + + PMD_SECT_S | PMD_SECT_DOM(0)) + +#else + +# define MMU_MEMFLAGS (PMD_TYPE_SECT | PMD_SECT_AP_RW1 | PMD_CACHEABLE | \ + PMD_SECT_DOM(0)) + +#endif + #define MMU_IOFLAGS (PMD_TYPE_SECT | PMD_SECT_AP_RW1 | PMD_DEVICE | \ + PMD_SECT_DOM(0) | PMD_SECT_XN) + #define MMU_STRONGLY_ORDERED (PMD_TYPE_SECT | PMD_SECT_AP_RW1 | \ + +3. Assertions. On a fatal assertions, other CPUs need to be stopped. Configurations ============== -- GitLab From 5c55846d2d39e3db70512a0a420d1ddb660619e5 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 20 May 2016 17:11:49 -0600 Subject: [PATCH 210/307] Minor README file update --- configs/sabre-6quad/README.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/configs/sabre-6quad/README.txt b/configs/sabre-6quad/README.txt index 5b2c57d91f..6999763c0a 100644 --- a/configs/sabre-6quad/README.txt +++ b/configs/sabre-6quad/README.txt @@ -504,6 +504,10 @@ Open Issues: 3. Assertions. On a fatal assertions, other CPUs need to be stopped. +4. Caching probabaly interferes with spinlocks as they are currently implemented. + Waiting on a cached copy of the spinlock may result in a hang or a failure to + wait. + Configurations ============== -- GitLab From 6c852faebbb4a2a475f64c271caff21a9dcc313f Mon Sep 17 00:00:00 2001 From: Alan Carvalho de Assisis Date: Fri, 20 May 2016 17:14:19 -0600 Subject: [PATCH 211/307] stm32f103-minimum: Add instructions for using the secret 128KB FLASH --- configs/stm32f103-minimum/README.txt | 70 +++++++++++++++++++++++++++- 1 file changed, 69 insertions(+), 1 deletion(-) diff --git a/configs/stm32f103-minimum/README.txt b/configs/stm32f103-minimum/README.txt index d0a974dbcd..59bef3ef6a 100644 --- a/configs/stm32f103-minimum/README.txt +++ b/configs/stm32f103-minimum/README.txt @@ -100,6 +100,7 @@ Contents - LEDs - UARTs - Timer Inputs/Outputs + - Using 128KiB of Flash instead of 64KiB - STM32F103 Minimum - specific Configuration Options - Configurations @@ -167,8 +168,75 @@ Timer Inputs/Outputs * Indicates pins that have other on-board functions and should be used only with care (See board datasheet). +Using 128KiB of Flash instead of 64KiB +====================================== + +Some people figured out that the STM32F103C8T6 has 128KiB of internal memory +instead of 64KiB as documented in the datasheet and reported by its internal +register. + +In order to enable 128KiB you need modify the linker script to reflect this +new size. Open the configs/stm32f103-minimum/scripts/ld.script and replace: + + flash (rx) : ORIGIN = 0x08000000, LENGTH = 64K + +with + + flash (rx) : ORIGIN = 0x08000000, LENGTH = 128K + +Enable many NuttX features (ie. many filesystems and applications) to get a +large binary image with more than 64K. + +We will use OpenOCD to write the firmware in the STM32F103C8T6 Flash. Use a +up to dated OpenOCD version (ie. openocd-0.9). + +You will need to create a copy of original openocd/scripts/target/stm32f1x.cfg +to openocd/scripts/target/stm32f103c8t6.cfg and edit the later file replacing: + + flash bank $_FLASHNAME stm32f1x 0x08000000 0 0 0 $_TARGETNAME + +with + + flash bank $_FLASHNAME stm32f1x 0x08000000 0x20000 0 0 $_TARGETNAME + +We will use OpenOCD with STLink-V2 programmer, but it will work with other +programmers (JLink, Versaloon, or some based on FTDI FT232, etc). + +Open a terminal and execute: + + $ sudo openocd -f interface/stlink-v2.cfg -f target/stm32f103c8t6.cfg + +Now in other terminal execute: + + $ telnet localhost 4444 + + Trying 127.0.0.1... + Connected to localhost. + Escape character is '^]'. + Open On-Chip Debugger + + > reset halt + stm32f1x.cpu: target state: halted + target halted due to debug-request, current mode: Thread + xPSR: 0x01000000 pc: 0x080003ac msp: 0x20000d78 + + > flash write_image erase nuttx.bin 0x08000000 + auto erase enabled + device id = 0x20036410 + ignoring flash probed value, using configured bank size + flash size = 128kbytes + stm32f1x.cpu: target state: halted + target halted due to breakpoint, current mode: Thread + xPSR: 0x61000000 pc: 0x2000003a msp: 0x20000d78 + wrote 92160 bytes from file nuttx.bin in 4.942194s (18.211 KiB/s) + + > reset run + > exit + +Now NuttX should start normally. + STM32F103 Minimum - specific Configuration Options -=============================================== +================================================== CONFIG_ARCH - Identifies the arch/ subdirectory. This should be set to: -- GitLab From bd3ef36edabc747a89e8c60e79e31396e0bfa2bd Mon Sep 17 00:00:00 2001 From: Steve Date: Fri, 20 May 2016 17:36:14 -0600 Subject: [PATCH 212/307] SUMMARY ------- This patch enhances networking support for the simulation under Linux. Includes updated support for Linux TUN/TAP, and the addition of support for Linux bridge devices. CHANGES ------- o Check to see if the d_txavail callback is present before calling it in the arp send code. This prevents a segfault when simulating the telnetd daemon with arp send enabled. o Adjust the simulation's netdriver_loop() so it will detect and respond to ARP requests. o Do not attempt to take the tap device's hardware address for use by the simulation. That hardware address belongs to the host end of the link, not the simulation end. Generate a randomized MAC address instead. o Do not assign an IP address to the interface on the host side of the TAP link. + Provide two modes: "host route" and "bridge". + In host route mode, maintain a host route that points any traffic for the simulation's IP address to the tap device. In this mode, so long as the simulation's IP is a free address in the same subnet as the host, no additional configuration will be required to talk to it from the host. Note that address changes are handled automatically if they follow the rule of if-down/set-address/if-up, which everything seems to. + In bridge mode, add the tap device to the specified bridge instance. See configs/sim/NETWORK-LINUX.txt for information and usage examples. This enables much more flexible configurations (with fewer headaches), such as running multiple simulations on a single host, all of which can access the network the host is connected to. o Refresh configurations in configs/sim where CONFIG_NET=y. They default to "host route" mode. o Add configs/sim/NETWORK-LINUX.txt CAVEATS ------- - The MAC address generation code is extremely simplistic, and does not check for potential conflicts on the network. Probably not an issue, but something to be aware of. - I was careful to leave it in a state where Cygwin/pcap should still work, but I don't have a Windows environment to test in. This should be checked. - I don't know if this was ever intended to work with OS X. I didn't even try to test it there. NOTES ----- - Was able to get telnetd working and simulate nsh over telnet, but only so long as listen backlogs were disabled. There appears to be a bug in the backlog code where sockets are being returned in SYN_RCVD state instead of waiting until they're ESTABLISHED; if you perform an immediate send after accepting the connection, it will confuse the stack and the send will hang; additionally, the connection will never reach ESTABLISHED state. Can be worked around by adding a sleep(1) after the accept in telnetd. I don't have the necessary knowledge of the IP stack to know what the correct fix is. --- arch/sim/Kconfig | 33 +++++ arch/sim/src/Makefile | 7 ++ arch/sim/src/up_internal.h | 23 ++-- arch/sim/src/up_netdriver.c | 41 ++++++- arch/sim/src/up_tapdev.c | 221 ++++++++++++++++++++++++++-------- configs/sim/nettest/defconfig | 38 +++++- configs/sim/udgram/defconfig | 44 ++++++- configs/sim/ustream/defconfig | 44 ++++++- net/arp/arp_send.c | 5 +- 9 files changed, 379 insertions(+), 77 deletions(-) diff --git a/arch/sim/Kconfig b/arch/sim/Kconfig index b0395968d7..7384d3d723 100644 --- a/arch/sim/Kconfig +++ b/arch/sim/Kconfig @@ -100,6 +100,39 @@ config SIM_WALLTIME correct for the system timer tick rate. With this definition in the configuration, sleep() behavior is more or less normal. +if HOST_LINUX +choice + prompt "Simulation Network Type" + default SIM_NET_HOST_ROUTE + +config SIM_NET_HOST_ROUTE + bool "Use local host route" + ---help--- + Add a host route for the simulation that points to the created tap device. The + simulation will not be able to access the public network unless iptables is + configured to masquerade for it. See configs/sim/NETWORK-LINUX.txt for more + information. + +config SIM_NET_BRIDGE + bool "Attach to Linux bridge" + ---help--- + Add the created tap device to the specified bridge. You will need to manually + configure the bridge IP address (if any) and routes that point to the bridge. + See configs/sim/NETWORK-LINUX.txt for more information. + +endchoice +endif + +if SIM_NET_BRIDGE +config SIM_NET_BRIDGE_DEVICE + string "Bridge device to attach" + default "nuttx0" + ---help--- + The name of the bridge device (as passed to "brctl create") to which the simulation's + TAP interface should be added. + +endif + config SIM_LCDDRIVER bool "Build a simulated LCD driver" default y diff --git a/arch/sim/src/Makefile b/arch/sim/src/Makefile index 1e3f52744a..72401d6c77 100644 --- a/arch/sim/src/Makefile +++ b/arch/sim/src/Makefile @@ -120,6 +120,13 @@ ifeq ($(CONFIG_NET_ETHERNET),y) HOSTCFLAGS += -DNETDEV_BUFSIZE=$(CONFIG_NET_ETH_MTU) ifneq ($(HOSTOS),Cygwin) HOSTSRCS += up_tapdev.c up_netdev.c +ifeq ($(CONFIG_SIM_NET_BRIDGE),y) + HOSTCFLAGS += -DCONFIG_SIM_NET_BRIDGE + HOSTCFLAGS += -DCONFIG_SIM_NET_BRIDGE_DEVICE=\"$(CONFIG_SIM_NET_BRIDGE_DEVICE)\" +endif +ifeq ($(CONFIG_SIM_NET_HOST_ROUTE),y) + HOSTCFLAGS += -DCONFIG_SIM_NET_HOST_ROUTE +endif else HOSTSRCS += up_wpcap.c up_netdev.c DRVLIB = /lib/w32api/libws2_32.a /lib/w32api/libiphlpapi.a diff --git a/arch/sim/src/up_internal.h b/arch/sim/src/up_internal.h index e1e69dc25b..ddae194a6a 100644 --- a/arch/sim/src/up_internal.h +++ b/arch/sim/src/up_internal.h @@ -1,7 +1,7 @@ /**************************************************************************** * arch/sim/src/up_internal.h * - * Copyright (C) 2007, 2009, 2011-2012, 2014 Gregory Nutt. All rights reserved. + * Copyright (C) 2007, 2009, 2011-2012, 2014, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -46,6 +46,7 @@ #ifndef __ASSEMBLY__ # include # include +# include # include # include @@ -308,10 +309,14 @@ int sim_ajoy_initialize(void); void tapdev_init(void); unsigned int tapdev_read(unsigned char *buf, unsigned int buflen); void tapdev_send(unsigned char *buf, unsigned int buflen); - -#define netdev_init() tapdev_init() -#define netdev_read(buf,buflen) tapdev_read(buf,buflen) -#define netdev_send(buf,buflen) tapdev_send(buf,buflen) +void tapdev_ifup(in_addr_t ifaddr); +void tapdev_ifdown(void); + +# define netdev_init() tapdev_init() +# define netdev_read(buf,buflen) tapdev_read(buf,buflen) +# define netdev_send(buf,buflen) tapdev_send(buf,buflen) +# define netdev_ifup(ifaddr) tapdev_ifup(ifaddr) +# define netdev_ifdown() tapdev_ifdown() #endif /* up_wpcap.c *************************************************************/ @@ -321,9 +326,11 @@ void wpcap_init(void); unsigned int wpcap_read(unsigned char *buf, unsigned int buflen); void wpcap_send(unsigned char *buf, unsigned int buflen); -#define netdev_init() wpcap_init() -#define netdev_read(buf,buflen) wpcap_read(buf,buflen) -#define netdev_send(buf,buflen) wpcap_send(buf,buflen) +# define netdev_init() wpcap_init() +# define netdev_read(buf,buflen) wpcap_read(buf,buflen) +# define netdev_send(buf,buflen) wpcap_send(buf,buflen) +# define netdev_ifup(ifaddr) {} +# define netdev_ifdown() {} #endif /* up_netdriver.c *********************************************************/ diff --git a/arch/sim/src/up_netdriver.c b/arch/sim/src/up_netdriver.c index 346159157f..c785f49746 100644 --- a/arch/sim/src/up_netdriver.c +++ b/arch/sim/src/up_netdriver.c @@ -1,7 +1,7 @@ /**************************************************************************** * arch/sim/src/up_netdriver.c * - * Copyright (C) 2007, 2009-2012, 2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2007, 2009-2012, 2015-2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Based on code from uIP which also has a BSD-like license: @@ -186,21 +186,32 @@ void netdriver_loop(void) */ eth = BUF; - if (g_sim_dev.d_len > ETH_HDRLEN && - up_comparemac(eth->dest, &g_sim_dev.d_mac) == 0) + if (g_sim_dev.d_len > ETH_HDRLEN) { + int is_ours; + + /* Figure out if this ethernet frame is addressed to us. This affects + * what we're willing to receive. Note that in promiscuous mode, the + * up_comparemac will always return 0. + */ + + is_ours = (up_comparemac(eth->dest, &g_sim_dev.d_mac) == 0); + #ifdef CONFIG_NET_PKT /* When packet sockets are enabled, feed the frame into the packet * tap. */ - pkt_input(&g_sim_dev); + if (is_ours) + { + pkt_input(&g_sim_dev); + } #endif /* We only accept IP packets of the configured type and ARP packets */ #ifdef CONFIG_NET_IPv4 - if (eth->type == HTONS(ETHTYPE_IP)) + if (eth->type == HTONS(ETHTYPE_IP) && is_ours) { nllvdbg("IPv4 frame\n"); @@ -241,7 +252,7 @@ void netdriver_loop(void) else #endif #ifdef CONFIG_NET_IPv6 - if (eth->type == HTONS(ETHTYPE_IP6)) + if (eth->type == HTONS(ETHTYPE_IP6) && is_ours) { nllvdbg("Iv6 frame\n"); @@ -304,9 +315,22 @@ void netdriver_loop(void) timer_reset(&g_periodic_timer); devif_timer(&g_sim_dev, sim_txpoll); } + sched_unlock(); } +int netdriver_ifup(struct net_driver_s *dev) +{ + netdev_ifup(dev->d_ipaddr); + return OK; +} + +int netdriver_ifdown(struct net_driver_s *dev) +{ + netdev_ifdown(); + return OK; +} + int netdriver_init(void) { /* Internal initalization */ @@ -314,6 +338,11 @@ int netdriver_init(void) timer_set(&g_periodic_timer, 500); netdev_init(); + /* Set callbacks */ + + g_sim_dev.d_ifup = netdriver_ifup; + g_sim_dev.d_ifdown = netdriver_ifdown; + /* Register the device with the OS so that socket IOCTLs can be performed */ (void)netdev_register(&g_sim_dev, NET_LL_ETHERNET); diff --git a/arch/sim/src/up_tapdev.c b/arch/sim/src/up_tapdev.c index 4fc1394e37..c3ed52e791 100644 --- a/arch/sim/src/up_tapdev.c +++ b/arch/sim/src/up_tapdev.c @@ -1,7 +1,7 @@ /**************************************************************************** * arch/sim/src/up_tapdev.c * - * Copyright (C) 2007-2009, 2011 Gregory Nutt. All rights reserved. + * Copyright (C) 2007-2009, 2011, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Based on code from uIP which also has a BSD-like license: @@ -56,30 +56,25 @@ #include #include #include +#include -#include +#ifdef CONFIG_SIM_NET_HOST_ROUTE +# include +#endif + +#include +#include #include #include +#include /**************************************************************************** * Pre-processor Definitions ****************************************************************************/ -#define TAPDEV_DEBUG 1 - -#define DEVTAP "/dev/net/tun" +//#define TAPDEV_DEBUG 1 -#ifndef CONFIG_EXAMPLES_WEBSERVER_DHCPC -# define TAP_IPADDR0 192 -# define TAP_IPADDR1 168 -# define TAP_IPADDR2 0 -# define TAP_IPADDR3 128 -#else -# define TAP_IPADDR0 0 -# define TAP_IPADDR1 0 -# define TAP_IPADDR2 0 -# define TAP_IPADDR3 0 -#endif +#define DEVTAP "/dev/net/tun" /* Syslog priority (must match definitions in nuttx/include/syslog.h) */ @@ -101,10 +96,6 @@ struct sel_arg_struct struct timeval *tvp; }; -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - /**************************************************************************** * NuttX Domain Public Function Prototypes ****************************************************************************/ @@ -117,9 +108,14 @@ int netdriver_setmacaddr(unsigned char *macaddr); ****************************************************************************/ #ifdef TAPDEV_DEBUG -static int gdrop = 0; +static int gdrop = 0; +#endif +static int gtapdevfd; +static char gdevname[IFNAMSIZ]; + +#ifdef CONFIG_SIM_NET_HOST_ROUTE +static struct rtentry ghostroute; #endif -static int gtapdevfd; /**************************************************************************** * Private Functions @@ -145,32 +141,32 @@ static inline void dump_ethhdr(const char *msg, unsigned char *buf, int buflen) static int up_setmacaddr(void) { - int sockfd; + unsigned char mac[7]; int ret = -1; - /* Get a socket (only so that we get access to the INET subsystem) */ - - sockfd = socket(PF_INET, SOCK_DGRAM, 0); - if (sockfd >= 0) - { - struct ifreq req; - memset(&req, 0, sizeof(struct ifreq)); - - /* Put the driver name into the request */ - - strncpy(req.ifr_name, "tap0", IFNAMSIZ); - - /* Perform the ioctl to get the MAC address */ - - ret = ioctl(sockfd, SIOCGIFHWADDR, (unsigned long)&req); - if (!ret) - { - /* Set the MAC address */ - - ret = netdriver_setmacaddr((unsigned char *)&req.ifr_hwaddr.sa_data); - } - } - + /* Assign a random locally-created MAC address. + * + * This previously took the address from the TAP interface; that was + * incorrect, as that hardware address belongs to the host system. Packets + * destined for the application aren't guaranteed to reach it if you do + * that, as the host may handle them at its discretion. + * + * With a unique MAC address, we get ALL the packets. + * + * TODO: The generated MAC address should be checked to see if it + * conflicts with something else on the network. + */ + + srand(time(NULL)); + mac[0] = 0x42; + mac[1] = rand() % 256; + mac[2] = rand() % 256; + mac[3] = rand() % 256; + mac[4] = rand() % 256; + mac[5] = rand() % 256; + mac[6] = 0; + + ret = netdriver_setmacaddr(mac); return ret; } @@ -181,9 +177,12 @@ static int up_setmacaddr(void) void tapdev_init(void) { struct ifreq ifr; - char buf[1024]; int ret; +#ifdef CONFIG_SIM_NET_BRIDGE + int sockfd; +#endif + /* Open the tap device */ gtapdevfd = open(DEVTAP, O_RDWR, 0644); @@ -204,11 +203,37 @@ void tapdev_init(void) return; } - /* Assign an IPv4 address to the tap device */ + /* Save the tap device name */ + + strncpy(gdevname, ifr.ifr_name, IFNAMSIZ); + +#ifdef CONFIG_SIM_NET_BRIDGE + /* Get a socket with which to manipulate the tap device; the remaining + * ioctl calls unfortunately won't work on the tap device fd. + */ + + sockfd = socket(AF_INET, SOCK_DGRAM, 0); + if (sockfd < 0) + { + syslog(LOG_ERR, "TAPDEV: Can't open socket: %d\n", -sockfd); + return; + } + + /* Assign the tap device to a bridge */ + + memset(&ifr, 0, sizeof(ifr)); + strncpy(ifr.ifr_name, CONFIG_SIM_NET_BRIDGE_DEVICE, IFNAMSIZ); + ifr.ifr_ifindex = if_nametoindex(gdevname); + + ret = ioctl(sockfd, SIOCBRADDIF, &ifr); + if (ret < 0) + { + syslog(LOG_ERR, "TAPDEV: ioctl failed (can't add interface %s to bridge %s): %d\n", + devname, CONFIG_SIM_NET_BRIDGE_DEVICE, -ret); + } - snprintf(buf, sizeof(buf), "/sbin/ifconfig tap0 inet %d.%d.%d.%d\n", - TAP_IPADDR0, TAP_IPADDR1, TAP_IPADDR2, TAP_IPADDR3); - system(buf); + close(sockfd); +#endif /* Set the MAC address */ @@ -273,9 +298,101 @@ void tapdev_send(unsigned char *buf, unsigned int buflen) syslog(LOG_ERR, "TAPDEV: write failed: %d", -ret); exit(1); } + dump_ethhdr("write", buf, buflen); } -#endif /* !__CYGWIN__ */ +void tapdev_ifup(in_addr_t ifaddr) +{ + struct ifreq ifr; + int sockfd; + int ret; + +#ifdef CONFIG_SIM_NET_HOST_ROUTE + struct sockaddr_in *addr; +#endif + /* Get a socket with which to manipulate the tap device */ + sockfd = socket(AF_INET, SOCK_DGRAM, 0); + if (sockfd < 0) + { + syslog(LOG_ERR, "TAPDEV: Can't open socket: %d\n", -sockfd); + return; + } + + /* Bring the TAP interface up */ + + strncpy(ifr.ifr_name, gdevname, IFNAMSIZ); + + ret = ioctl(sockfd, SIOCGIFFLAGS, (unsigned long)&ifr); + if (ret < 0) + { + syslog(LOG_ERR, "TAPDEV: ioctl failed (can't get interface flags): %d\n", -ret); + close(sockfd); + return; + } + + ifr.ifr_flags |= IFF_UP; + ret = ioctl(sockfd, SIOCSIFFLAGS, (unsigned long)&ifr); + if (ret < 0) + { + syslog(LOG_ERR, "TAPDEV: ioctl failed (can't set interface flags): %d\n", -ret); + close(sockfd); + return; + } + +#ifdef CONFIG_SIM_NET_HOST_ROUTE + /* Add host route */ + + memset(&ghostroute, 0, sizeof(ghostroute)); + + addr = (struct sockaddr_in *)&ghostroute.rt_dst; + addr->sin_family = AF_INET; + addr->sin_addr.s_addr = ifaddr; + + ghostroute.rt_dev = gdevname; + ghostroute.rt_flags = RTF_UP | RTF_HOST; + ghostroute.rt_metric = 0; + + ret = ioctl(sockfd, SIOCADDRT, (unsigned long)&ghostroute); + if (ret < 0) + { + syslog(LOG_ERR, "TAPDEV: ioctl failed (can't add host route): %d\n", -ret); + close(sockfd); + return; + } +#endif + + close(sockfd); +} + +void tapdev_ifdown(void) +{ +#ifdef CONFIG_SIM_NET_HOST_ROUTE + int sockfd; + int ret; + + if (((struct sockaddr_in *)&ghostroute.rt_dst)->sin_addr.s_addr != 0) + { + /* Get a socket with which to manipulate the tap device */ + + sockfd = socket(AF_INET, SOCK_DGRAM, 0); + if (sockfd < 0) + { + syslog(LOG_ERR, "TAPDEV: Can't open socket: %d\n", -sockfd); + return; + } + + ret = ioctl(sockfd, SIOCDELRT, (unsigned long)&ghostroute); + if (ret < 0) + { + syslog(LOG_ERR, "TAPDEV: ioctl failed (can't delete host route): %d\n", -ret); + } + + close(sockfd); + } +#endif +} + +#endif /* !__CYGWIN__ */ diff --git a/configs/sim/nettest/defconfig b/configs/sim/nettest/defconfig index 80ce9f678f..acfdb50999 100644 --- a/configs/sim/nettest/defconfig +++ b/configs/sim/nettest/defconfig @@ -37,6 +37,7 @@ CONFIG_BUILD_FLAT=y # CONFIG_ARCH_MATH_H is not set # CONFIG_ARCH_FLOAT_H is not set # CONFIG_ARCH_STDARG_H is not set +# CONFIG_ARCH_DEBUG_H is not set # # Debug Options @@ -73,6 +74,8 @@ CONFIG_HOST_X86_64=y CONFIG_SIM_X8664_SYSTEMV=y # CONFIG_SIM_X8664_MICROSOFT is not set # CONFIG_SIM_WALLTIME is not set +CONFIG_SIM_NET_HOST_ROUTE=y +# CONFIG_SIM_NET_BRIDGE is not set # CONFIG_SIM_FRAMEBUFFER is not set # CONFIG_SIM_SPIFLASH is not set @@ -87,6 +90,7 @@ CONFIG_SIM_X8664_SYSTEMV=y # CONFIG_ARCH_HAVE_COHERENT_DCACHE is not set # CONFIG_ARCH_HAVE_ADDRENV is not set # CONFIG_ARCH_NEED_ADDRENV_MAPPING is not set +CONFIG_ARCH_HAVE_MULTICPU=y # CONFIG_ARCH_HAVE_VFORK is not set # CONFIG_ARCH_HAVE_MMU is not set # CONFIG_ARCH_HAVE_MPU is not set @@ -230,9 +234,10 @@ CONFIG_SIG_SIGCONDTIMEDOUT=16 # CONFIG_PREALLOC_MQ_MSGS=32 CONFIG_MQ_MAXMSGSIZE=32 +# CONFIG_MODULE is not set # -# Work Queue Support +# Work queue support # # CONFIG_SCHED_WORKQUEUE is not set # CONFIG_SCHED_HPWORK is not set @@ -281,8 +286,16 @@ CONFIG_DEV_NULL=y # CONFIG_VIDEO_DEVICES is not set # CONFIG_BCH is not set # CONFIG_INPUT is not set +# CONFIG_IOEXPANDER is not set # CONFIG_LCD is not set + +# +# LED Support +# +# CONFIG_RGBLED is not set +# CONFIG_PCA9635PW is not set # CONFIG_MMCSD is not set +# CONFIG_MODEM is not set # CONFIG_MTD is not set # CONFIG_EEPROM is not set # CONFIG_NETDEVICES is not set @@ -475,7 +488,9 @@ CONFIG_FS_FAT=y # CONFIG_FAT_LCNAMES is not set # CONFIG_FAT_LFN is not set # CONFIG_FS_FATTIME is not set +# CONFIG_FAT_FORCE_INDIRECT is not set # CONFIG_FAT_DMAMEMORY is not set +# CONFIG_FAT_DIRECT_RETRY is not set # CONFIG_FS_NXFFS is not set # CONFIG_FS_ROMFS is not set # CONFIG_FS_TMPFS is not set @@ -508,6 +523,10 @@ CONFIG_MM_REGIONS=1 # # CONFIG_AUDIO is not set +# +# Wireless Support +# + # # Binary Loader # @@ -553,6 +572,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # CONFIG_NETDB_HOSTFILE is not set @@ -579,6 +600,7 @@ CONFIG_LIB_SENDFILE_BUFSIZE=512 # # Examples # +# CONFIG_EXAMPLES_CHAT is not set # CONFIG_EXAMPLES_CONFIGDATA is not set # CONFIG_EXAMPLES_CPUHOG is not set # CONFIG_EXAMPLES_DHCPD is not set @@ -620,11 +642,12 @@ CONFIG_EXAMPLES_NETTEST_CLIENTIP=0xc0a8006a # CONFIG_EXAMPLES_NXLINES is not set # CONFIG_EXAMPLES_NXTEXT is not set # CONFIG_EXAMPLES_OSTEST is not set +# CONFIG_EXAMPLES_PCA9635 is not set # CONFIG_EXAMPLES_PIPE is not set # CONFIG_EXAMPLES_POLL is not set # CONFIG_EXAMPLES_PPPD is not set # CONFIG_EXAMPLES_POSIXSPAWN is not set -# CONFIG_EXAMPLES_QENCODER is not set +# CONFIG_EXAMPLES_RGBLED is not set # CONFIG_EXAMPLES_RGMP is not set # CONFIG_EXAMPLES_SENDMAIL is not set # CONFIG_EXAMPLES_SERIALBLASTER is not set @@ -632,12 +655,12 @@ CONFIG_EXAMPLES_NETTEST_CLIENTIP=0xc0a8006a # CONFIG_EXAMPLES_SERLOOP is not set # CONFIG_EXAMPLES_SLCD is not set # CONFIG_EXAMPLES_SMART is not set +# CONFIG_EXAMPLES_SMP is not set # CONFIG_EXAMPLES_TCPECHO is not set # CONFIG_EXAMPLES_TELNETD is not set # CONFIG_EXAMPLES_TIFF is not set # CONFIG_EXAMPLES_TOUCHSCREEN is not set # CONFIG_EXAMPLES_WEBSERVER is not set -# CONFIG_EXAMPLES_USBSERIAL is not set # CONFIG_EXAMPLES_USBTERM is not set # CONFIG_EXAMPLES_WATCHDOG is not set # CONFIG_EXAMPLES_WGET is not set @@ -645,6 +668,13 @@ CONFIG_EXAMPLES_NETTEST_CLIENTIP=0xc0a8006a # # File System Utilities # +# CONFIG_FSUTILS_INIFILE is not set +# CONFIG_FSUTILS_PASSWD is not set + +# +# GPS Utilities +# +# CONFIG_GPSUTILS_MINMEA_LIB is not set # # Graphics Support @@ -700,11 +730,11 @@ CONFIG_NETUTILS_NETLIB=y # CONFIG_SYSTEM_CUTERM is not set # CONFIG_SYSTEM_INSTALL is not set # CONFIG_SYSTEM_HEX2BIN is not set -# CONFIG_FSUTILS_INIFILE is not set # CONFIG_SYSTEM_HEXED is not set # CONFIG_SYSTEM_RAMTEST is not set # CONFIG_READLINE_HAVE_EXTMATCH is not set # CONFIG_SYSTEM_READLINE is not set # CONFIG_SYSTEM_SUDOKU is not set # CONFIG_SYSTEM_VI is not set +# CONFIG_SYSTEM_UBLOXMODEM is not set # CONFIG_SYSTEM_ZMODEM is not set diff --git a/configs/sim/udgram/defconfig b/configs/sim/udgram/defconfig index bf678170a0..c46a0d0bdd 100644 --- a/configs/sim/udgram/defconfig +++ b/configs/sim/udgram/defconfig @@ -37,6 +37,7 @@ CONFIG_BUILD_FLAT=y # CONFIG_ARCH_MATH_H is not set # CONFIG_ARCH_FLOAT_H is not set # CONFIG_ARCH_STDARG_H is not set +# CONFIG_ARCH_DEBUG_H is not set # # Debug Options @@ -73,6 +74,8 @@ CONFIG_HOST_X86_64=y CONFIG_SIM_X8664_SYSTEMV=y # CONFIG_SIM_X8664_MICROSOFT is not set CONFIG_SIM_WALLTIME=y +CONFIG_SIM_NET_HOST_ROUTE=y +# CONFIG_SIM_NET_BRIDGE is not set # CONFIG_SIM_FRAMEBUFFER is not set # CONFIG_SIM_SPIFLASH is not set @@ -87,6 +90,7 @@ CONFIG_SIM_WALLTIME=y # CONFIG_ARCH_HAVE_COHERENT_DCACHE is not set # CONFIG_ARCH_HAVE_ADDRENV is not set # CONFIG_ARCH_NEED_ADDRENV_MAPPING is not set +CONFIG_ARCH_HAVE_MULTICPU=y # CONFIG_ARCH_HAVE_VFORK is not set # CONFIG_ARCH_HAVE_MMU is not set # CONFIG_ARCH_HAVE_MPU is not set @@ -242,9 +246,10 @@ CONFIG_SIG_SIGCONDTIMEDOUT=16 # CONFIG_PREALLOC_MQ_MSGS=32 CONFIG_MQ_MAXMSGSIZE=32 +# CONFIG_MODULE is not set # -# Work Queue Support +# Work queue support # # CONFIG_SCHED_WORKQUEUE is not set # CONFIG_SCHED_HPWORK is not set @@ -293,8 +298,16 @@ CONFIG_DEV_NULL=y # CONFIG_VIDEO_DEVICES is not set # CONFIG_BCH is not set # CONFIG_INPUT is not set +# CONFIG_IOEXPANDER is not set # CONFIG_LCD is not set + +# +# LED Support +# +# CONFIG_RGBLED is not set +# CONFIG_PCA9635PW is not set # CONFIG_MMCSD is not set +# CONFIG_MODEM is not set # CONFIG_MTD is not set # CONFIG_EEPROM is not set # CONFIG_NETDEVICES is not set @@ -464,13 +477,16 @@ CONFIG_FAT_LCNAMES=y CONFIG_FAT_LFN=y CONFIG_FAT_MAXFNAME=32 # CONFIG_FS_FATTIME is not set +# CONFIG_FAT_FORCE_INDIRECT is not set # CONFIG_FAT_DMAMEMORY is not set +# CONFIG_FAT_DIRECT_RETRY is not set # CONFIG_FS_NXFFS is not set CONFIG_FS_ROMFS=y # CONFIG_FS_TMPFS is not set # CONFIG_FS_SMARTFS is not set CONFIG_FS_BINFS=y CONFIG_FS_PROCFS=y +# CONFIG_FS_PROCFS_REGISTER is not set # # Exclude individual procfs entries @@ -506,6 +522,10 @@ CONFIG_MM_REGIONS=1 # # CONFIG_AUDIO is not set +# +# Wireless Support +# + # # Binary Loader # @@ -555,6 +575,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set CONFIG_LIBC_NETDB=y # CONFIG_NETDB_HOSTFILE is not set @@ -586,6 +608,7 @@ CONFIG_BUILTIN_PROXY_STACKSIZE=1024 # # Examples # +# CONFIG_EXAMPLES_CHAT is not set # CONFIG_EXAMPLES_CONFIGDATA is not set # CONFIG_EXAMPLES_CPUHOG is not set # CONFIG_EXAMPLES_DHCPD is not set @@ -594,6 +617,8 @@ CONFIG_BUILTIN_PROXY_STACKSIZE=1024 # CONFIG_EXAMPLES_FTPC is not set # CONFIG_EXAMPLES_FTPD is not set CONFIG_EXAMPLES_HELLO=y +CONFIG_EXAMPLES_HELLO_PRIORITY=100 +CONFIG_EXAMPLES_HELLO_STACKSIZE=2048 # CONFIG_EXAMPLES_JSON is not set # CONFIG_EXAMPLES_HIDKBD is not set # CONFIG_EXAMPLES_KEYPADTEST is not set @@ -613,10 +638,11 @@ CONFIG_EXAMPLES_NSH=y # CONFIG_EXAMPLES_NXLINES is not set # CONFIG_EXAMPLES_NXTEXT is not set # CONFIG_EXAMPLES_OSTEST is not set +# CONFIG_EXAMPLES_PCA9635 is not set # CONFIG_EXAMPLES_PIPE is not set # CONFIG_EXAMPLES_PPPD is not set # CONFIG_EXAMPLES_POSIXSPAWN is not set -# CONFIG_EXAMPLES_QENCODER is not set +# CONFIG_EXAMPLES_RGBLED is not set # CONFIG_EXAMPLES_RGMP is not set # CONFIG_EXAMPLES_ROMFS is not set # CONFIG_EXAMPLES_SENDMAIL is not set @@ -626,6 +652,7 @@ CONFIG_EXAMPLES_NSH=y # CONFIG_EXAMPLES_SLCD is not set # CONFIG_EXAMPLES_SMART_TEST is not set # CONFIG_EXAMPLES_SMART is not set +# CONFIG_EXAMPLES_SMP is not set # CONFIG_EXAMPLES_TCPECHO is not set # CONFIG_EXAMPLES_TELNETD is not set # CONFIG_EXAMPLES_THTTPD is not set @@ -649,6 +676,13 @@ CONFIG_EXAMPLES_UDGRAM_CLIENT_PRIORITY=100 # # File System Utilities # +# CONFIG_FSUTILS_INIFILE is not set +# CONFIG_FSUTILS_PASSWD is not set + +# +# GPS Utilities +# +# CONFIG_GPSUTILS_MINMEA_LIB is not set # # Graphics Support @@ -682,6 +716,7 @@ CONFIG_NETUTILS_NETLIB=y # NSH Library # CONFIG_NSH_LIBRARY=y +# CONFIG_NSH_MOTD is not set # # Command Line Configuration @@ -742,6 +777,7 @@ CONFIG_NSH_DISABLE_LOSMART=y # CONFIG_NSH_DISABLE_SET is not set # CONFIG_NSH_DISABLE_SH is not set # CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_TIME is not set # CONFIG_NSH_DISABLE_TEST is not set # CONFIG_NSH_DISABLE_UMOUNT is not set # CONFIG_NSH_DISABLE_UNAME is not set @@ -796,6 +832,8 @@ CONFIG_NSH_ARCHINIT=y # # CONFIG_NSH_NOMAC is not set CONFIG_NSH_MAX_ROUNDTRIP=20 +# CONFIG_NSH_LOGIN is not set +# CONFIG_NSH_CONSOLE_LOGIN is not set # # NxWidgets/NxWM @@ -814,7 +852,6 @@ CONFIG_NSH_MAX_ROUNDTRIP=20 # CONFIG_SYSTEM_CUTERM is not set # CONFIG_SYSTEM_INSTALL is not set # CONFIG_SYSTEM_HEX2BIN is not set -# CONFIG_FSUTILS_INIFILE is not set # CONFIG_SYSTEM_HEXED is not set # CONFIG_SYSTEM_NETDB is not set # CONFIG_SYSTEM_RAMTEST is not set @@ -826,4 +863,5 @@ CONFIG_READLINE_ECHO=y # CONFIG_SYSTEM_SUDOKU is not set # CONFIG_SYSTEM_VI is not set # CONFIG_SYSTEM_SYMTAB is not set +# CONFIG_SYSTEM_UBLOXMODEM is not set # CONFIG_SYSTEM_ZMODEM is not set diff --git a/configs/sim/ustream/defconfig b/configs/sim/ustream/defconfig index 31a861a5ac..10b60384dc 100644 --- a/configs/sim/ustream/defconfig +++ b/configs/sim/ustream/defconfig @@ -37,6 +37,7 @@ CONFIG_BUILD_FLAT=y # CONFIG_ARCH_MATH_H is not set # CONFIG_ARCH_FLOAT_H is not set # CONFIG_ARCH_STDARG_H is not set +# CONFIG_ARCH_DEBUG_H is not set # # Debug Options @@ -73,6 +74,8 @@ CONFIG_HOST_X86_64=y CONFIG_SIM_X8664_SYSTEMV=y # CONFIG_SIM_X8664_MICROSOFT is not set CONFIG_SIM_WALLTIME=y +CONFIG_SIM_NET_HOST_ROUTE=y +# CONFIG_SIM_NET_BRIDGE is not set # CONFIG_SIM_FRAMEBUFFER is not set # CONFIG_SIM_SPIFLASH is not set @@ -87,6 +90,7 @@ CONFIG_SIM_WALLTIME=y # CONFIG_ARCH_HAVE_COHERENT_DCACHE is not set # CONFIG_ARCH_HAVE_ADDRENV is not set # CONFIG_ARCH_NEED_ADDRENV_MAPPING is not set +CONFIG_ARCH_HAVE_MULTICPU=y # CONFIG_ARCH_HAVE_VFORK is not set # CONFIG_ARCH_HAVE_MMU is not set # CONFIG_ARCH_HAVE_MPU is not set @@ -242,9 +246,10 @@ CONFIG_SIG_SIGCONDTIMEDOUT=16 # CONFIG_PREALLOC_MQ_MSGS=32 CONFIG_MQ_MAXMSGSIZE=32 +# CONFIG_MODULE is not set # -# Work Queue Support +# Work queue support # # CONFIG_SCHED_WORKQUEUE is not set # CONFIG_SCHED_HPWORK is not set @@ -293,8 +298,16 @@ CONFIG_DEV_NULL=y # CONFIG_VIDEO_DEVICES is not set # CONFIG_BCH is not set # CONFIG_INPUT is not set +# CONFIG_IOEXPANDER is not set # CONFIG_LCD is not set + +# +# LED Support +# +# CONFIG_RGBLED is not set +# CONFIG_PCA9635PW is not set # CONFIG_MMCSD is not set +# CONFIG_MODEM is not set # CONFIG_MTD is not set # CONFIG_EEPROM is not set # CONFIG_NETDEVICES is not set @@ -464,13 +477,16 @@ CONFIG_FAT_LCNAMES=y CONFIG_FAT_LFN=y CONFIG_FAT_MAXFNAME=32 # CONFIG_FS_FATTIME is not set +# CONFIG_FAT_FORCE_INDIRECT is not set # CONFIG_FAT_DMAMEMORY is not set +# CONFIG_FAT_DIRECT_RETRY is not set # CONFIG_FS_NXFFS is not set CONFIG_FS_ROMFS=y # CONFIG_FS_TMPFS is not set # CONFIG_FS_SMARTFS is not set CONFIG_FS_BINFS=y CONFIG_FS_PROCFS=y +# CONFIG_FS_PROCFS_REGISTER is not set # # Exclude individual procfs entries @@ -506,6 +522,10 @@ CONFIG_MM_REGIONS=1 # # CONFIG_AUDIO is not set +# +# Wireless Support +# + # # Binary Loader # @@ -555,6 +575,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set CONFIG_LIBC_NETDB=y # CONFIG_NETDB_HOSTFILE is not set @@ -586,6 +608,7 @@ CONFIG_BUILTIN_PROXY_STACKSIZE=1024 # # Examples # +# CONFIG_EXAMPLES_CHAT is not set # CONFIG_EXAMPLES_CONFIGDATA is not set # CONFIG_EXAMPLES_CPUHOG is not set # CONFIG_EXAMPLES_DHCPD is not set @@ -594,6 +617,8 @@ CONFIG_BUILTIN_PROXY_STACKSIZE=1024 # CONFIG_EXAMPLES_FTPC is not set # CONFIG_EXAMPLES_FTPD is not set CONFIG_EXAMPLES_HELLO=y +CONFIG_EXAMPLES_HELLO_PRIORITY=100 +CONFIG_EXAMPLES_HELLO_STACKSIZE=2048 # CONFIG_EXAMPLES_JSON is not set # CONFIG_EXAMPLES_HIDKBD is not set # CONFIG_EXAMPLES_KEYPADTEST is not set @@ -613,10 +638,11 @@ CONFIG_EXAMPLES_NSH=y # CONFIG_EXAMPLES_NXLINES is not set # CONFIG_EXAMPLES_NXTEXT is not set # CONFIG_EXAMPLES_OSTEST is not set +# CONFIG_EXAMPLES_PCA9635 is not set # CONFIG_EXAMPLES_PIPE is not set # CONFIG_EXAMPLES_PPPD is not set # CONFIG_EXAMPLES_POSIXSPAWN is not set -# CONFIG_EXAMPLES_QENCODER is not set +# CONFIG_EXAMPLES_RGBLED is not set # CONFIG_EXAMPLES_RGMP is not set # CONFIG_EXAMPLES_ROMFS is not set # CONFIG_EXAMPLES_SENDMAIL is not set @@ -626,6 +652,7 @@ CONFIG_EXAMPLES_NSH=y # CONFIG_EXAMPLES_SLCD is not set # CONFIG_EXAMPLES_SMART_TEST is not set # CONFIG_EXAMPLES_SMART is not set +# CONFIG_EXAMPLES_SMP is not set # CONFIG_EXAMPLES_TCPECHO is not set # CONFIG_EXAMPLES_TELNETD is not set # CONFIG_EXAMPLES_THTTPD is not set @@ -644,6 +671,13 @@ CONFIG_EXAMPLES_USTREAM_ADDR="/dev/fifo" # # File System Utilities # +# CONFIG_FSUTILS_INIFILE is not set +# CONFIG_FSUTILS_PASSWD is not set + +# +# GPS Utilities +# +# CONFIG_GPSUTILS_MINMEA_LIB is not set # # Graphics Support @@ -677,6 +711,7 @@ CONFIG_NETUTILS_NETLIB=y # NSH Library # CONFIG_NSH_LIBRARY=y +# CONFIG_NSH_MOTD is not set # # Command Line Configuration @@ -737,6 +772,7 @@ CONFIG_NSH_DISABLE_LOSMART=y # CONFIG_NSH_DISABLE_SET is not set # CONFIG_NSH_DISABLE_SH is not set # CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_TIME is not set # CONFIG_NSH_DISABLE_TEST is not set # CONFIG_NSH_DISABLE_UMOUNT is not set # CONFIG_NSH_DISABLE_UNAME is not set @@ -791,6 +827,8 @@ CONFIG_NSH_ARCHINIT=y # # CONFIG_NSH_NOMAC is not set CONFIG_NSH_MAX_ROUNDTRIP=20 +# CONFIG_NSH_LOGIN is not set +# CONFIG_NSH_CONSOLE_LOGIN is not set # # NxWidgets/NxWM @@ -809,7 +847,6 @@ CONFIG_NSH_MAX_ROUNDTRIP=20 # CONFIG_SYSTEM_CUTERM is not set # CONFIG_SYSTEM_INSTALL is not set # CONFIG_SYSTEM_HEX2BIN is not set -# CONFIG_FSUTILS_INIFILE is not set # CONFIG_SYSTEM_HEXED is not set # CONFIG_SYSTEM_NETDB is not set # CONFIG_SYSTEM_RAMTEST is not set @@ -821,4 +858,5 @@ CONFIG_READLINE_ECHO=y # CONFIG_SYSTEM_SUDOKU is not set # CONFIG_SYSTEM_VI is not set # CONFIG_SYSTEM_SYMTAB is not set +# CONFIG_SYSTEM_UBLOXMODEM is not set # CONFIG_SYSTEM_ZMODEM is not set diff --git a/net/arp/arp_send.c b/net/arp/arp_send.c index b6431582b1..0fff9041c3 100644 --- a/net/arp/arp_send.c +++ b/net/arp/arp_send.c @@ -344,7 +344,10 @@ int arp_send(in_addr_t ipaddr) * its single argument to lookup the network interface. */ - dev->d_txavail(dev); + if (dev->d_txavail) + { + dev->d_txavail(dev); + } /* Wait for the send to complete or an error to occur: NOTES: (1) * net_lockedwait will also terminate if a signal is received, (2) -- GitLab From a2253cdd3e1d16dca52ae9106cebb425f0a21169 Mon Sep 17 00:00:00 2001 From: Konstantin Berezenko Date: Fri, 20 May 2016 16:38:25 -0700 Subject: [PATCH 213/307] Add basic configuration for stm32f411e-disco board with STM32F411VE chip --- arch/arm/include/stm32/chip.h | 38 + arch/arm/src/stm32/Kconfig | 7 + configs/Kconfig | 11 + configs/stm32f411e-disco/Kconfig | 8 + configs/stm32f411e-disco/README.txt | 8 + configs/stm32f411e-disco/include/board.h | 362 ++++++ configs/stm32f411e-disco/nsh/Make.defs | 111 ++ configs/stm32f411e-disco/nsh/defconfig | 1107 +++++++++++++++++ configs/stm32f411e-disco/nsh/setenv.sh | 64 + configs/stm32f411e-disco/scripts/f411ve.ld | 119 ++ configs/stm32f411e-disco/src/Makefile | 45 + configs/stm32f411e-disco/src/stm32_appinit.c | 89 ++ configs/stm32f411e-disco/src/stm32_boot.c | 127 ++ .../stm32f411e-disco/src/stm32f411e-disco.h | 137 ++ 14 files changed, 2233 insertions(+) create mode 100644 configs/stm32f411e-disco/Kconfig create mode 100644 configs/stm32f411e-disco/README.txt create mode 100644 configs/stm32f411e-disco/include/board.h create mode 100644 configs/stm32f411e-disco/nsh/Make.defs create mode 100644 configs/stm32f411e-disco/nsh/defconfig create mode 100755 configs/stm32f411e-disco/nsh/setenv.sh create mode 100644 configs/stm32f411e-disco/scripts/f411ve.ld create mode 100644 configs/stm32f411e-disco/src/Makefile create mode 100644 configs/stm32f411e-disco/src/stm32_appinit.c create mode 100644 configs/stm32f411e-disco/src/stm32_boot.c create mode 100644 configs/stm32f411e-disco/src/stm32f411e-disco.h diff --git a/arch/arm/include/stm32/chip.h b/arch/arm/include/stm32/chip.h index ae2c1b614c..94e572b0ad 100644 --- a/arch/arm/include/stm32/chip.h +++ b/arch/arm/include/stm32/chip.h @@ -1585,6 +1585,44 @@ # define STM32_NRNG 0 /* No Random number generator (RNG) */ # define STM32_NDCMI 0 /* No digital camera interface (DCMI) */ +#elif defined(CONFIG_ARCH_CHIP_STM32F411VE) /* 100 pin LQFP/BGA package, 512Kb FLASH, 128KiB SRAM */ +# undef CONFIG_STM32_STM32L15XX /* STM32L151xx and STM32L152xx family */ +# undef CONFIG_STM32_ENERGYLITE /* STM32L EnergyLite family */ +# undef CONFIG_STM32_STM32F10XX /* STM32F10xxx family */ +# undef CONFIG_STM32_LOWDENSITY /* STM32F100x, STM32F101x, STM32F102x and STM32F103x w/ 16/32 Kbytes */ +# undef CONFIG_STM32_MEDIUMDENSITY /* STM32F100x, STM32F101x, STM32F102x and STM32F103x w/ 64/128 Kbytes */ +# undef CONFIG_STM32_MEDIUMPLUSDENSITY /* STM32L15xxC w/ 32/256 Kbytes */ +# undef CONFIG_STM32_HIGHDENSITY /* STM32F100x, STM32F101x, and STM32F103x w/ 256/512 Kbytes */ +# undef CONFIG_STM32_VALUELINE /* STM32F100x */ +# undef CONFIG_STM32_CONNECTIVITYLINE /* STM32F105x and STM32F107x */ +# undef CONFIG_STM32_STM32F20XX /* STM32F205x and STM32F207x */ +# undef CONFIG_STM32_STM32F30XX /* STM32F30xxx family */ +# undef CONFIG_STM32_STM32F37XX /* STM32F37xxx family */ +# define CONFIG_STM32_STM32F40XX 1 /* STM32F405xx and STM32407xx */ +# define STM32_NFSMC 0 /* No FSMC */ +# define STM32_NATIM 1 /* One advanced timers TIM1 */ +# define STM32_NGTIM 4 /* 16-bit general timers TIM3 and 4 with DMA + * 32-bit general timers TIM2 and 5 with DMA */ +# define STM32_NGTIMNDMA 3 /* 16-bit general timers TIM9-11 without DMA */ +# define STM32_NBTIM 0 /* No basic timers */ +# define STM32_NDMA 2 /* DMA1-2 with 8 streams each*/ +# define STM32_NSPI 4 /* SPI1-4 */ +# define STM32_NI2S 2 /* I2S1-2 (multiplexed with SPI2-3) */ +# define STM32_NUSART 6 /* Actually only 3: USART1, 2 and 6 */ +# define STM32_NI2C 3 /* I2C1-3 */ +# define STM32_NCAN 0 /* No CAN */ +# define STM32_NSDIO 1 /* One SDIO interface */ +# define STM32_NLCD 0 /* No LCD */ +# define STM32_NUSBOTG 1 /* USB OTG FS (only) */ +# define STM32_NGPIO 81 /* GPIOA-H */ +# define STM32_NADC 1 /* One 12-bit ADC1, 16 channels */ +# define STM32_NDAC 0 /* No DAC */ +# define STM32_NCAPSENSE 0 /* No capacitive sensing channels */ +# define STM32_NCRC 1 /* No CRC */ +# define STM32_NETHERNET 0 /* No Ethernet MAC */ +# define STM32_NRNG 0 /* No Random number generator (RNG) */ +# define STM32_NDCMI 0 /* No digital camera interface (DCMI) */ + #elif defined(CONFIG_ARCH_CHIP_STM32F405RG) /* LQFP 64 10x10x1.4 1024Kb FLASH 192Kb SRAM */ # undef CONFIG_STM32_STM32L15XX /* STM32L151xx and STM32L152xx family */ # undef CONFIG_STM32_ENERGYLITE /* STM32L EnergyLite family */ diff --git a/arch/arm/src/stm32/Kconfig b/arch/arm/src/stm32/Kconfig index aa1d579d66..4c7ed9fa2a 100644 --- a/arch/arm/src/stm32/Kconfig +++ b/arch/arm/src/stm32/Kconfig @@ -879,6 +879,13 @@ config ARCH_CHIP_STM32F411RE select STM32_STM32F411 select ARCH_HAVE_FPU +config ARCH_CHIP_STM32F411VE + bool "STM32F411VE" + select ARCH_CORTEXM4 + select STM32_STM32F40XX + select STM32_STM32F411 + select ARCH_HAVE_FPU + config ARCH_CHIP_STM32F405RG bool "STM32F405RG" select ARCH_CORTEXM4 diff --git a/configs/Kconfig b/configs/Kconfig index aea6074bdd..ee744973ed 100644 --- a/configs/Kconfig +++ b/configs/Kconfig @@ -994,6 +994,16 @@ config ARCH_BOARD_STM32L476VG_DISCO MCU. The STM32L476VG is a Cortex-M4 optimised for low-power operation at up to 80MHz operation with 1024Kb Flash memory and 96+32Kb SRAM. +config ARCH_BOARD_STM32F411E_DISCO + bool "STMicro STM32F411E-Discovery board" + depends on ARCH_CHIP_STM32F411VE + select ARCH_HAVE_LEDS + select ARCH_HAVE_BUTTONS + select ARCH_HAVE_IRQBUTTONS + ---help--- + This is a minimal configuration that supports low-level test of the + STMicro STM32F411E-Discovery Board. + config ARCH_BOARD_STM32L_DISCOVERY bool "STMicro STM32L-Discovery board" depends on ARCH_CHIP_STM32L152RB @@ -1415,6 +1425,7 @@ config ARCH_BOARD default "stm32f429i-disco" if ARCH_BOARD_STM32F429I_DISCO default "stm32f746g-disco" if ARCH_BOARD_STM32F746G_DISCO default "stm32l476vg-disco" if ARCH_BOARD_STM32L476VG_DISCO + default "stm32f411e-disco" if ARCH_BOARD_STM32F411E_DISCO default "stm32ldiscovery" if ARCH_BOARD_STM32L_DISCOVERY default "stm32vldiscovery" if ARCH_BOARD_STM32VL_DISCOVERY default "mikroe-stm32f4" if ARCH_BOARD_MIKROE_STM32F4 diff --git a/configs/stm32f411e-disco/Kconfig b/configs/stm32f411e-disco/Kconfig new file mode 100644 index 0000000000..c898319183 --- /dev/null +++ b/configs/stm32f411e-disco/Kconfig @@ -0,0 +1,8 @@ +# +# For a description of the syntax of this configuration file, +# see the file kconfig-language.txt in the NuttX tools repository. +# + +if ARCH_BOARD_STM32F411E_DISCO + +endif diff --git a/configs/stm32f411e-disco/README.txt b/configs/stm32f411e-disco/README.txt new file mode 100644 index 0000000000..9bc9302150 --- /dev/null +++ b/configs/stm32f411e-disco/README.txt @@ -0,0 +1,8 @@ +README +====== + +This README discusses issues unique to NuttX configurations for the STMicro +STM32F411E-Discovery board. See + +http://www.st.com/content/ccc/resource/technical/document/user_manual/e9/d2/00/5e/15/46/44/0e/DM00148985.pdf/files/DM00148985.pdf/jcr:content/translations/en.DM00148985.pdf + diff --git a/configs/stm32f411e-disco/include/board.h b/configs/stm32f411e-disco/include/board.h new file mode 100644 index 0000000000..62199e3732 --- /dev/null +++ b/configs/stm32f411e-disco/include/board.h @@ -0,0 +1,362 @@ +/************************************************************************************ + * configs/stm32f411e-disco/include/board.h + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: Konstantin Berezenko + * + * based on configs/nucleo-f4x1re/include/board.h + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ************************************************************************************/ + +#ifndef __CONFIGS_STM32F411E_DISCO_INCLUDE_BOARD_H +#define __CONFIGS_STM32F411E_DISCO_INCLUDE_BOARD_H + +/************************************************************************************ + * Included Files + ************************************************************************************/ + +#include +#ifndef __ASSEMBLY__ +# include +#endif + +#include + +/************************************************************************************ + * Pre-processor Definitions + ************************************************************************************/ + +/* Clocking *************************************************************************/ +/* + * System Clock source : PLLCLK (HSE) + * SYSCLK(Hz) : 96000000 Determined by PLL configuration + * HCLK(Hz) : 96000000 (STM32_RCC_CFGR_HPRE) + * AHB Prescaler : 1 (STM32_RCC_CFGR_HPRE) + * APB1 Prescaler : 4 (STM32_RCC_CFGR_PPRE1) + * APB2 Prescaler : 2 (STM32_RCC_CFGR_PPRE2) + * HSI Frequency(Hz) : 16000000 (nominal) + * PLLM : 4 (STM32_PLLCFG_PLLM) + * PLLN : 192 (STM32_PLLCFG_PLLN) + * PLLP : 4 (STM32_PLLCFG_PLLP) + * PLLQ : 8 (STM32_PLLCFG_PPQ) + * Flash Latency(WS) : 3 + * Prefetch Buffer : OFF + * Instruction cache : ON + * Data cache : ON + * Require 48MHz for USB OTG FS, : Enabled + * SDIO and RNG clock + */ + +/* HSI - 16 MHz RC factory-trimmed + * LSI - 32 KHz RC + * HSE - 8 MHz Crystal + * LSE - not installed + */ + +#define STM32_BOARD_XTAL 8000000ul + +#define STM32_HSI_FREQUENCY 16000000ul +#define STM32_LSI_FREQUENCY 32000 +#define STM32_HSE_FREQUENCY STM32_BOARD_XTAL + +/* Main PLL Configuration. + * + * Formulae: + * + * VCO input frequency = PLL input clock frequency / PLLM, 2 <= PLLM <= 63 + * VCO output frequency = VCO input frequency × PLLN, 192 <= PLLN <= 432 + * PLL output clock frequency = VCO frequency / PLLP, PLLP = 2, 4, 6, or 8 + * USB OTG FS clock frequency = VCO frequency / PLLQ, 2 <= PLLQ <= 15 + * + + * There is no config for 100 MHz and 48 MHz for usb, + * so we would like to have SYSYCLK=96MHz and we must have the USB clock= 48MHz. + * + * PLLQ = 8 PLLP = 4 PLLN=192 PLLM=4 + * + * We will configure like this + * + * PLL source is HSE + * PLL_VCO = (STM32_HSE_FREQUENCY / PLLM) * PLLN + * = (8,000,000 / 4) * 192 + * = 384,000,000 + * SYSCLK = PLL_VCO / PLLP + * = 384,000,000 / 4 = 96,000,000 + * USB OTG FS and SDIO Clock + * = PLL_VCO / PLLQ + * = 384,000,000 / 8 = 48,000,000 + * + */ + +#define STM32_PLLCFG_PLLM RCC_PLLCFG_PLLM(4) +#define STM32_PLLCFG_PLLN RCC_PLLCFG_PLLN(192) +#define STM32_PLLCFG_PLLP RCC_PLLCFG_PLLP_4 +#define STM32_PLLCFG_PLLQ RCC_PLLCFG_PLLQ(8) + +#define STM32_SYSCLK_FREQUENCY 96000000ul + +/* AHB clock (HCLK) is SYSCLK (96MHz) */ + +#define STM32_RCC_CFGR_HPRE RCC_CFGR_HPRE_SYSCLK /* HCLK = SYSCLK / 1 */ +#define STM32_HCLK_FREQUENCY STM32_SYSCLK_FREQUENCY +#define STM32_BOARD_HCLK STM32_HCLK_FREQUENCY /* Same as above, to satisfy compiler */ + +/* APB1 clock (PCLK1) is HCLK/4 (24MHz) */ + +#define STM32_RCC_CFGR_PPRE1 RCC_CFGR_PPRE1_HCLKd4 /* PCLK1 = HCLK / 4 */ +#define STM32_PCLK1_FREQUENCY (STM32_HCLK_FREQUENCY/4) + +/* Timers driven from APB1 will be twice PCLK1 */ +/* REVISIT */ + +#define STM32_APB1_TIM2_CLKIN (2*STM32_PCLK1_FREQUENCY) +#define STM32_APB1_TIM3_CLKIN (2*STM32_PCLK1_FREQUENCY) +#define STM32_APB1_TIM4_CLKIN (2*STM32_PCLK1_FREQUENCY) +#define STM32_APB1_TIM5_CLKIN (2*STM32_PCLK1_FREQUENCY) +#define STM32_APB1_TIM6_CLKIN (2*STM32_PCLK1_FREQUENCY) +#define STM32_APB1_TIM7_CLKIN (2*STM32_PCLK1_FREQUENCY) +#define STM32_APB1_TIM12_CLKIN (2*STM32_PCLK1_FREQUENCY) +#define STM32_APB1_TIM13_CLKIN (2*STM32_PCLK1_FREQUENCY) +#define STM32_APB1_TIM14_CLKIN (2*STM32_PCLK1_FREQUENCY) + +/* APB2 clock (PCLK2) is HCLK (48MHz) */ + +#define STM32_RCC_CFGR_PPRE2 RCC_CFGR_PPRE2_HCLKd2 /* PCLK2 = HCLK / 2 */ +#define STM32_PCLK2_FREQUENCY (STM32_HCLK_FREQUENCY/2) + +/* Timers driven from APB2 will be twice PCLK2 */ + +#define STM32_APB2_TIM1_CLKIN (2*STM32_PCLK2_FREQUENCY) +#define STM32_APB2_TIM8_CLKIN (2*STM32_PCLK2_FREQUENCY) +#define STM32_APB2_TIM9_CLKIN (2*STM32_PCLK1_FREQUENCY) +#define STM32_APB2_TIM10_CLKIN (2*STM32_PCLK1_FREQUENCY) +#define STM32_APB2_TIM11_CLKIN (2*STM32_PCLK1_FREQUENCY) + +/* Timer Frequencies, if APBx is set to 1, frequency is same to APBx + * otherwise frequency is 2xAPBx. + * Note: TIM1,8 are on APB2, others on APB1 + */ +/* REVISIT */ + +#define STM32_TIM18_FREQUENCY (2*STM32_PCLK2_FREQUENCY) +#define STM32_TIM27_FREQUENCY (2*STM32_PCLK1_FREQUENCY) + +/* SDIO dividers. Note that slower clocking is required when DMA is disabled + * in order to avoid RX overrun/TX underrun errors due to delayed responses + * to service FIFOs in interrupt driven mode. These values have not been + * tuned!!! + * + * HCLK=72MHz, SDIOCLK=72MHz, SDIO_CK=HCLK/(178+2)=400 KHz + */ +/* REVISIT */ + +#define SDIO_INIT_CLKDIV (178 << SDIO_CLKCR_CLKDIV_SHIFT) + +/* DMA ON: HCLK=72 MHz, SDIOCLK=72MHz, SDIO_CK=HCLK/(2+2)=18 MHz + * DMA OFF: HCLK=72 MHz, SDIOCLK=72MHz, SDIO_CK=HCLK/(3+2)=14.4 MHz + */ +/* REVISIT */ + +#ifdef CONFIG_SDIO_DMA +# define SDIO_MMCXFR_CLKDIV (2 << SDIO_CLKCR_CLKDIV_SHIFT) +#else +# define SDIO_MMCXFR_CLKDIV (3 << SDIO_CLKCR_CLKDIV_SHIFT) +#endif + +/* DMA ON: HCLK=72 MHz, SDIOCLK=72MHz, SDIO_CK=HCLK/(1+2)=24 MHz + * DMA OFF: HCLK=72 MHz, SDIOCLK=72MHz, SDIO_CK=HCLK/(3+2)=14.4 MHz + */ +/* REVISIT */ + +#ifdef CONFIG_SDIO_DMA +# define SDIO_SDXFR_CLKDIV (1 << SDIO_CLKCR_CLKDIV_SHIFT) +#else +# define SDIO_SDXFR_CLKDIV (3 << SDIO_CLKCR_CLKDIV_SHIFT) +#endif + +/* DMA Channel/Stream Selections ****************************************************/ +/* Stream selections are arbitrary for now but might become important in the future + * is we set aside more DMA channels/streams. + * + * SDIO DMA + *   DMAMAP_SDIO_1 = Channel 4, Stream 3 <- may later be used by SPI DMA + *   DMAMAP_SDIO_2 = Channel 4, Stream 6 + */ + +#define DMAMAP_SDIO DMAMAP_SDIO_1 + +/* Need to VERIFY fwb */ + +#define DMACHAN_SPI1_RX DMAMAP_SPI1_RX_1 +#define DMACHAN_SPI1_TX DMAMAP_SPI1_TX_1 +#define DMACHAN_SPI2_RX DMAMAP_SPI2_RX +#define DMACHAN_SPI2_TX DMAMAP_SPI2_TX + +/* Alternate function pin selections ************************************************/ + +/* USART1: + * RXD: PA10 CN9 pin 3, CN10 pin 33 + * PB7 CN7 pin 21 + * TXD: PA9 CN5 pin 1, CN10 pin 21 + * PB6 CN5 pin 3, CN10 pin 17 + */ + +#if 1 +# define GPIO_USART1_RX GPIO_USART1_RX_1 /* PA10 */ +# define GPIO_USART1_TX GPIO_USART1_TX_1 /* PA9 */ +#else +# define GPIO_USART1_RX GPIO_USART1_RX_2 /* PB7 */ +# define GPIO_USART1_TX GPIO_USART1_TX_2 /* PB6 */ +#endif + +/* USART2: + * RXD: PA3 CN9 pin 1 (See SB13, 14, 62, 63). CN10 pin 37 + * PD6 + * TXD: PA2 CN9 pin 2(See SB13, 14, 62, 63). CN10 pin 35 + * PD5 + */ + +#define GPIO_USART2_RX GPIO_USART2_RX_1 /* PA3 */ +#define GPIO_USART2_TX GPIO_USART2_TX_1 /* PA2 */ +#define GPIO_USART2_RTS GPIO_USART2_RTS_2 +#define GPIO_USART2_CTS GPIO_USART2_CTS_2 + +/* USART6: + * RXD: PC7 CN5 pin2, CN10 pin 19 + * PA12 CN10, pin 12 + * TXD: PC6 CN10, pin 4 + * PA11 CN10, pin 14 + */ + +#define GPIO_USART6_RX GPIO_USART6_RX_1 /* PC7 */ +#define GPIO_USART6_TX GPIO_USART6_TX_1 /* PC6 */ + +/* UART RX DMA configurations */ + +#define DMAMAP_USART1_RX DMAMAP_USART1_RX_2 +#define DMAMAP_USART6_RX DMAMAP_USART6_RX_2 + +/* I2C + * + * The optional _GPIO configurations allow the I2C driver to manually + * reset the bus to clear stuck slaves. They match the pin configuration, + * but are normally-high GPIOs. + */ + +#define GPIO_I2C1_SCL GPIO_I2C1_SCL_2 +#define GPIO_I2C1_SDA GPIO_I2C1_SDA_2 +#define GPIO_I2C1_SCL_GPIO \ + (GPIO_OUTPUT|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN8) +#define GPIO_I2C1_SDA_GPIO \ + (GPIO_OUTPUT|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN9) + +#define GPIO_I2C2_SCL GPIO_I2C2_SCL_1 +#define GPIO_I2C2_SDA GPIO_I2C2_SDA_1 +#define GPIO_I2C2_SCL_GPIO \ + (GPIO_OUTPUT|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN10) +#define GPIO_I2C2_SDA_GPIO \ + (GPIO_OUTPUT|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN11) + +/* SPI + * + * There are sensors on SPI1, and SPI2 is connected to the FRAM. + */ + +#define GPIO_SPI1_MISO GPIO_SPI1_MISO_1 +#define GPIO_SPI1_MOSI GPIO_SPI1_MOSI_1 +#define GPIO_SPI1_SCK GPIO_SPI1_SCK_1 + +#define GPIO_SPI2_MISO GPIO_SPI2_MISO_1 +#define GPIO_SPI2_MOSI GPIO_SPI2_MOSI_1 +#define GPIO_SPI2_SCK GPIO_SPI2_SCK_2 + +/* LEDs + * + * The STM32F411E Discovery board has four user leds but only one is configured so far. + * LD2 connected to PD12. + */ + +/* LED index values for use with board_userled() */ + +#define BOARD_LD2 0 +#define BOARD_NLEDS 1 + +/* LED bits for use with board_userled_all() */ + +#define BOARD_LD2_BIT (1 << BOARD_LD2) + +/* Buttons + * + * B1 USER: the user button is connected to the I/O PA0 of the STM32 + * microcontroller. + */ + +#define BUTTON_USER 0 +#define NUM_BUTTONS 1 + +#define BUTTON_USER_BIT (1 << BUTTON_USER) + +/************************************************************************************ + * Public Data + ************************************************************************************/ + +#ifndef __ASSEMBLY__ + +#undef EXTERN +#if defined(__cplusplus) +#define EXTERN extern "C" +extern "C" +{ +#else +#define EXTERN extern +#endif + +/************************************************************************************ + * Public Function Prototypes + ************************************************************************************/ +/************************************************************************************ + * Name: stm32_boardinitialize + * + * Description: + * All STM32 architectures must provide the following entry point. This entry point + * is called early in the initialization -- after all memory has been configured + * and mapped but before any devices have been initialized. + * + ************************************************************************************/ + +void stm32_boardinitialize(void); + +#undef EXTERN +#if defined(__cplusplus) +} +#endif + +#endif /* __ASSEMBLY__ */ +#endif /* __CONFIGS_STM32F411E_DISCO_INCLUDE_BOARD_H */ diff --git a/configs/stm32f411e-disco/nsh/Make.defs b/configs/stm32f411e-disco/nsh/Make.defs new file mode 100644 index 0000000000..b0f06ba60b --- /dev/null +++ b/configs/stm32f411e-disco/nsh/Make.defs @@ -0,0 +1,111 @@ +############################################################################ +# configs/stm32f411e-disco/nsh/Make.defs +# +# Copyright (C) 2016 Gregory Nutt. All rights reserved. +# Author: Gregory Nutt +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# 3. Neither the name NuttX nor the names of its contributors may be +# used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +############################################################################ + +include ${TOPDIR}/.config +include ${TOPDIR}/tools/Config.mk +include ${TOPDIR}/arch/arm/src/armv7-m/Toolchain.defs + +LDSCRIPT = f411ve.ld + +ifeq ($(WINTOOL),y) + # Windows-native toolchains + DIRLINK = $(TOPDIR)/tools/copydir.sh + DIRUNLINK = $(TOPDIR)/tools/unlink.sh + MKDEP = $(TOPDIR)/tools/mkwindeps.sh + ARCHINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)/include}" + ARCHXXINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)/include}" -isystem "${shell cygpath -w $(TOPDIR)/include/cxx}" + ARCHSCRIPT = -T "${shell cygpath -w $(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/$(LDSCRIPT)}" +else + # Linux/Cygwin-native toolchain + MKDEP = $(TOPDIR)/tools/mkdeps$(HOSTEXEEXT) + ARCHINCLUDES = -I. -isystem $(TOPDIR)/include + ARCHXXINCLUDES = -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx + ARCHSCRIPT = -T$(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/$(LDSCRIPT) +endif + +CC = $(CROSSDEV)gcc +CXX = $(CROSSDEV)g++ +CPP = $(CROSSDEV)gcc -E +LD = $(CROSSDEV)ld +AR = $(ARCROSSDEV)ar rcs +NM = $(ARCROSSDEV)nm +OBJCOPY = $(CROSSDEV)objcopy +OBJDUMP = $(CROSSDEV)objdump + +ARCHCCVERSION = ${shell $(CC) -v 2>&1 | sed -n '/^gcc version/p' | sed -e 's/^gcc version \([0-9\.]\)/\1/g' -e 's/[-\ ].*//g' -e '1q'} +ARCHCCMAJOR = ${shell echo $(ARCHCCVERSION) | cut -d'.' -f1} + +ifeq ($(CONFIG_DEBUG_SYMBOLS),y) + ARCHOPTIMIZATION = -g +endif + +ifneq ($(CONFIG_DEBUG_NOOPT),y) + ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing -fno-strength-reduce -fomit-frame-pointer +endif + +ARCHCFLAGS = -fno-builtin +ARCHCXXFLAGS = -fno-builtin -fno-exceptions -fno-rtti +ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef +ARCHWARNINGSXX = -Wall -Wshadow -Wundef +ARCHDEFINES = +ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10 + +CFLAGS = $(ARCHCFLAGS) $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe +CPICFLAGS = $(ARCHPICFLAGS) $(CFLAGS) +CXXFLAGS = $(ARCHCXXFLAGS) $(ARCHWARNINGSXX) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHXXINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe +CXXPICFLAGS = $(ARCHPICFLAGS) $(CXXFLAGS) +CPPFLAGS = $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) +AFLAGS = $(CFLAGS) -D__ASSEMBLY__ + +NXFLATLDFLAGS1 = -r -d -warn-common +NXFLATLDFLAGS2 = $(NXFLATLDFLAGS1) -T$(TOPDIR)/binfmt/libnxflat/gnu-nxflat-pcrel.ld -no-check-sections +LDNXFLATFLAGS = -e main -s 2048 + +ASMEXT = .S +OBJEXT = .o +LIBEXT = .a +EXEEXT = + +ifneq ($(CROSSDEV),arm-nuttx-elf-) + LDFLAGS += -nostartfiles -nodefaultlibs +endif +ifeq ($(CONFIG_DEBUG_SYMBOLS),y) + LDFLAGS += -g +endif + +HOSTCC = gcc +HOSTINCLUDES = -I. +HOSTCFLAGS = -Wall -Wstrict-prototypes -Wshadow -Wundef -g -pipe +HOSTLDFLAGS = diff --git a/configs/stm32f411e-disco/nsh/defconfig b/configs/stm32f411e-disco/nsh/defconfig new file mode 100644 index 0000000000..854c1bf39f --- /dev/null +++ b/configs/stm32f411e-disco/nsh/defconfig @@ -0,0 +1,1107 @@ +# +# Automatically generated file; DO NOT EDIT. +# Nuttx/ Configuration +# + +# +# Build Setup +# +# CONFIG_EXPERIMENTAL is not set +# CONFIG_DEFAULT_SMALL is not set +CONFIG_HOST_LINUX=y +# CONFIG_HOST_OSX is not set +# CONFIG_HOST_WINDOWS is not set +# CONFIG_HOST_OTHER is not set + +# +# Build Configuration +# +CONFIG_APPS_DIR="../apps" +CONFIG_BUILD_FLAT=y +# CONFIG_BUILD_2PASS is not set + +# +# Binary Output Formats +# +# CONFIG_RRLOAD_BINARY is not set +CONFIG_INTELHEX_BINARY=y +# CONFIG_MOTOROLA_SREC is not set +CONFIG_RAW_BINARY=y +# CONFIG_UBOOT_UIMAGE is not set + +# +# Customize Header Files +# +# CONFIG_ARCH_STDINT_H is not set +# CONFIG_ARCH_STDBOOL_H is not set +# CONFIG_ARCH_MATH_H is not set +# CONFIG_ARCH_FLOAT_H is not set +# CONFIG_ARCH_STDARG_H is not set +# CONFIG_ARCH_DEBUG_H is not set + +# +# Debug Options +# +# CONFIG_DEBUG is not set +CONFIG_ARCH_HAVE_HEAPCHECK=y +CONFIG_ARCH_HAVE_STACKCHECK=y +# CONFIG_STACK_COLORATION is not set +# CONFIG_DEBUG_SYMBOLS is not set +CONFIG_ARCH_HAVE_CUSTOMOPT=y +# CONFIG_DEBUG_NOOPT is not set +# CONFIG_DEBUG_CUSTOMOPT is not set +CONFIG_DEBUG_FULLOPT=y + +# +# System Type +# +CONFIG_ARCH_ARM=y +# CONFIG_ARCH_AVR is not set +# CONFIG_ARCH_HC is not set +# CONFIG_ARCH_MIPS is not set +# CONFIG_ARCH_RGMP is not set +# CONFIG_ARCH_SH is not set +# CONFIG_ARCH_SIM is not set +# CONFIG_ARCH_X86 is not set +# CONFIG_ARCH_Z16 is not set +# CONFIG_ARCH_Z80 is not set +CONFIG_ARCH="arm" + +# +# ARM Options +# +# CONFIG_ARCH_CHIP_A1X is not set +# CONFIG_ARCH_CHIP_C5471 is not set +# CONFIG_ARCH_CHIP_CALYPSO is not set +# CONFIG_ARCH_CHIP_DM320 is not set +# CONFIG_ARCH_CHIP_EFM32 is not set +# CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set +# CONFIG_ARCH_CHIP_KINETIS is not set +# CONFIG_ARCH_CHIP_KL is not set +# CONFIG_ARCH_CHIP_LM is not set +# CONFIG_ARCH_CHIP_TIVA is not set +# CONFIG_ARCH_CHIP_LPC11XX is not set +# CONFIG_ARCH_CHIP_LPC17XX is not set +# CONFIG_ARCH_CHIP_LPC214X is not set +# CONFIG_ARCH_CHIP_LPC2378 is not set +# CONFIG_ARCH_CHIP_LPC31XX is not set +# CONFIG_ARCH_CHIP_LPC43XX is not set +# CONFIG_ARCH_CHIP_NUC1XX is not set +# CONFIG_ARCH_CHIP_SAMA5 is not set +# CONFIG_ARCH_CHIP_SAMD is not set +# CONFIG_ARCH_CHIP_SAML is not set +# CONFIG_ARCH_CHIP_SAM34 is not set +# CONFIG_ARCH_CHIP_SAMV7 is not set +CONFIG_ARCH_CHIP_STM32=y +# CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set +# CONFIG_ARCH_CHIP_STR71X is not set +# CONFIG_ARCH_CHIP_TMS570 is not set +# CONFIG_ARCH_CHIP_MOXART is not set +# CONFIG_ARCH_ARM7TDMI is not set +# CONFIG_ARCH_ARM926EJS is not set +# CONFIG_ARCH_ARM920T is not set +# CONFIG_ARCH_CORTEXM0 is not set +# CONFIG_ARCH_CORTEXM3 is not set +CONFIG_ARCH_CORTEXM4=y +# CONFIG_ARCH_CORTEXM7 is not set +# CONFIG_ARCH_CORTEXA5 is not set +# CONFIG_ARCH_CORTEXA8 is not set +# CONFIG_ARCH_CORTEXA9 is not set +# CONFIG_ARCH_CORTEXR4 is not set +# CONFIG_ARCH_CORTEXR4F is not set +# CONFIG_ARCH_CORTEXR5 is not set +# CONFIG_ARCH_CORTEX5F is not set +# CONFIG_ARCH_CORTEXR7 is not set +# CONFIG_ARCH_CORTEXR7F is not set +CONFIG_ARCH_FAMILY="armv7-m" +CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set +CONFIG_ARM_TOOLCHAIN_GNU=y +# CONFIG_ARMV7M_USEBASEPRI is not set +CONFIG_ARCH_HAVE_CMNVECTOR=y +# CONFIG_ARMV7M_CMNVECTOR is not set +# CONFIG_ARMV7M_LAZYFPU is not set +CONFIG_ARCH_HAVE_FPU=y +# CONFIG_ARCH_HAVE_DPFPU is not set +# CONFIG_ARCH_FPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set +CONFIG_ARM_HAVE_MPU_UNIFIED=y +# CONFIG_ARM_MPU is not set + +# +# ARMV7M Configuration Options +# +# CONFIG_ARMV7M_HAVE_ICACHE is not set +# CONFIG_ARMV7M_HAVE_DCACHE is not set +# CONFIG_ARMV7M_HAVE_ITCM is not set +# CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set +# CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set +# CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set +# CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set +CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL=y +CONFIG_ARMV7M_HAVE_STACKCHECK=y +# CONFIG_ARMV7M_STACKCHECK is not set +# CONFIG_ARMV7M_ITMSYSLOG is not set +# CONFIG_SERIAL_TERMIOS is not set + +# +# STM32 Configuration Options +# +# CONFIG_ARCH_CHIP_STM32L151C6 is not set +# CONFIG_ARCH_CHIP_STM32L151C8 is not set +# CONFIG_ARCH_CHIP_STM32L151CB is not set +# CONFIG_ARCH_CHIP_STM32L151R6 is not set +# CONFIG_ARCH_CHIP_STM32L151R8 is not set +# CONFIG_ARCH_CHIP_STM32L151RB is not set +# CONFIG_ARCH_CHIP_STM32L151V6 is not set +# CONFIG_ARCH_CHIP_STM32L151V8 is not set +# CONFIG_ARCH_CHIP_STM32L151VB is not set +# CONFIG_ARCH_CHIP_STM32L152C6 is not set +# CONFIG_ARCH_CHIP_STM32L152C8 is not set +# CONFIG_ARCH_CHIP_STM32L152CB is not set +# CONFIG_ARCH_CHIP_STM32L152R6 is not set +# CONFIG_ARCH_CHIP_STM32L152R8 is not set +# CONFIG_ARCH_CHIP_STM32L152RB is not set +# CONFIG_ARCH_CHIP_STM32L152V6 is not set +# CONFIG_ARCH_CHIP_STM32L152V8 is not set +# CONFIG_ARCH_CHIP_STM32L152VB is not set +# CONFIG_ARCH_CHIP_STM32L162ZD is not set +# CONFIG_ARCH_CHIP_STM32L162VE is not set +# CONFIG_ARCH_CHIP_STM32F100C8 is not set +# CONFIG_ARCH_CHIP_STM32F100CB is not set +# CONFIG_ARCH_CHIP_STM32F100R8 is not set +# CONFIG_ARCH_CHIP_STM32F100RB is not set +# CONFIG_ARCH_CHIP_STM32F100RC is not set +# CONFIG_ARCH_CHIP_STM32F100RD is not set +# CONFIG_ARCH_CHIP_STM32F100RE is not set +# CONFIG_ARCH_CHIP_STM32F100V8 is not set +# CONFIG_ARCH_CHIP_STM32F100VB is not set +# CONFIG_ARCH_CHIP_STM32F100VC is not set +# CONFIG_ARCH_CHIP_STM32F100VD is not set +# CONFIG_ARCH_CHIP_STM32F100VE is not set +# CONFIG_ARCH_CHIP_STM32F102CB is not set +# CONFIG_ARCH_CHIP_STM32F103T8 is not set +# CONFIG_ARCH_CHIP_STM32F103TB is not set +# CONFIG_ARCH_CHIP_STM32F103C4 is not set +# CONFIG_ARCH_CHIP_STM32F103C8 is not set +# CONFIG_ARCH_CHIP_STM32F103CB is not set +# CONFIG_ARCH_CHIP_STM32F103R8 is not set +# CONFIG_ARCH_CHIP_STM32F103RB is not set +# CONFIG_ARCH_CHIP_STM32F103RC is not set +# CONFIG_ARCH_CHIP_STM32F103RD is not set +# CONFIG_ARCH_CHIP_STM32F103RE is not set +# CONFIG_ARCH_CHIP_STM32F103RG is not set +# CONFIG_ARCH_CHIP_STM32F103V8 is not set +# CONFIG_ARCH_CHIP_STM32F103VB is not set +# CONFIG_ARCH_CHIP_STM32F103VC is not set +# CONFIG_ARCH_CHIP_STM32F103VE is not set +# CONFIG_ARCH_CHIP_STM32F103ZE is not set +# CONFIG_ARCH_CHIP_STM32F105VB is not set +# CONFIG_ARCH_CHIP_STM32F107VC is not set +# CONFIG_ARCH_CHIP_STM32F205RG is not set +# CONFIG_ARCH_CHIP_STM32F207IG is not set +# CONFIG_ARCH_CHIP_STM32F207ZE is not set +# CONFIG_ARCH_CHIP_STM32F302K6 is not set +# CONFIG_ARCH_CHIP_STM32F302K8 is not set +# CONFIG_ARCH_CHIP_STM32F302CB is not set +# CONFIG_ARCH_CHIP_STM32F302CC is not set +# CONFIG_ARCH_CHIP_STM32F302RB is not set +# CONFIG_ARCH_CHIP_STM32F302RC is not set +# CONFIG_ARCH_CHIP_STM32F302VB is not set +# CONFIG_ARCH_CHIP_STM32F302VC is not set +# CONFIG_ARCH_CHIP_STM32F303K6 is not set +# CONFIG_ARCH_CHIP_STM32F303K8 is not set +# CONFIG_ARCH_CHIP_STM32F303C6 is not set +# CONFIG_ARCH_CHIP_STM32F303C8 is not set +# CONFIG_ARCH_CHIP_STM32F303CB is not set +# CONFIG_ARCH_CHIP_STM32F303CC is not set +# CONFIG_ARCH_CHIP_STM32F303RB is not set +# CONFIG_ARCH_CHIP_STM32F303RC is not set +# CONFIG_ARCH_CHIP_STM32F303RD is not set +# CONFIG_ARCH_CHIP_STM32F303RE is not set +# CONFIG_ARCH_CHIP_STM32F303VB is not set +# CONFIG_ARCH_CHIP_STM32F303VC is not set +# CONFIG_ARCH_CHIP_STM32F372C8 is not set +# CONFIG_ARCH_CHIP_STM32F372R8 is not set +# CONFIG_ARCH_CHIP_STM32F372V8 is not set +# CONFIG_ARCH_CHIP_STM32F372CB is not set +# CONFIG_ARCH_CHIP_STM32F372RB is not set +# CONFIG_ARCH_CHIP_STM32F372VB is not set +# CONFIG_ARCH_CHIP_STM32F372CC is not set +# CONFIG_ARCH_CHIP_STM32F372RC is not set +# CONFIG_ARCH_CHIP_STM32F372VC is not set +# CONFIG_ARCH_CHIP_STM32F373C8 is not set +# CONFIG_ARCH_CHIP_STM32F373R8 is not set +# CONFIG_ARCH_CHIP_STM32F373V8 is not set +# CONFIG_ARCH_CHIP_STM32F373CB is not set +# CONFIG_ARCH_CHIP_STM32F373RB is not set +# CONFIG_ARCH_CHIP_STM32F373VB is not set +# CONFIG_ARCH_CHIP_STM32F373CC is not set +# CONFIG_ARCH_CHIP_STM32F373RC is not set +# CONFIG_ARCH_CHIP_STM32F373VC is not set +# CONFIG_ARCH_CHIP_STM32F401RE is not set +# CONFIG_ARCH_CHIP_STM32F411RE is not set +CONFIG_ARCH_CHIP_STM32F411VE=y +# CONFIG_ARCH_CHIP_STM32F405RG is not set +# CONFIG_ARCH_CHIP_STM32F405VG is not set +# CONFIG_ARCH_CHIP_STM32F405ZG is not set +# CONFIG_ARCH_CHIP_STM32F407VE is not set +# CONFIG_ARCH_CHIP_STM32F407VG is not set +# CONFIG_ARCH_CHIP_STM32F407ZE is not set +# CONFIG_ARCH_CHIP_STM32F407ZG is not set +# CONFIG_ARCH_CHIP_STM32F407IE is not set +# CONFIG_ARCH_CHIP_STM32F407IG is not set +# CONFIG_ARCH_CHIP_STM32F427V is not set +# CONFIG_ARCH_CHIP_STM32F427Z is not set +# CONFIG_ARCH_CHIP_STM32F427I is not set +# CONFIG_ARCH_CHIP_STM32F429V is not set +# CONFIG_ARCH_CHIP_STM32F429Z is not set +# CONFIG_ARCH_CHIP_STM32F429I is not set +# CONFIG_ARCH_CHIP_STM32F429B is not set +# CONFIG_ARCH_CHIP_STM32F429N is not set +# CONFIG_ARCH_CHIP_STM32F446M is not set +# CONFIG_ARCH_CHIP_STM32F446R is not set +# CONFIG_ARCH_CHIP_STM32F446V is not set +# CONFIG_ARCH_CHIP_STM32F446Z is not set +# CONFIG_ARCH_CHIP_STM32F469A is not set +# CONFIG_ARCH_CHIP_STM32F469I is not set +# CONFIG_ARCH_CHIP_STM32F469B is not set +# CONFIG_ARCH_CHIP_STM32F469N is not set +# CONFIG_STM32_FLASH_CONFIG_DEFAULT is not set +# CONFIG_STM32_FLASH_CONFIG_4 is not set +# CONFIG_STM32_FLASH_CONFIG_6 is not set +# CONFIG_STM32_FLASH_CONFIG_8 is not set +# CONFIG_STM32_FLASH_CONFIG_B is not set +# CONFIG_STM32_FLASH_CONFIG_C is not set +# CONFIG_STM32_FLASH_CONFIG_D is not set +CONFIG_STM32_FLASH_CONFIG_E=y +# CONFIG_STM32_FLASH_CONFIG_F is not set +# CONFIG_STM32_FLASH_CONFIG_G is not set +# CONFIG_STM32_FLASH_CONFIG_I is not set +# CONFIG_STM32_STM32L15XX is not set +# CONFIG_STM32_ENERGYLITE is not set +# CONFIG_STM32_STM32F10XX is not set +# CONFIG_STM32_VALUELINE is not set +# CONFIG_STM32_CONNECTIVITYLINE is not set +# CONFIG_STM32_PERFORMANCELINE is not set +# CONFIG_STM32_USBACCESSLINE is not set +# CONFIG_STM32_HIGHDENSITY is not set +# CONFIG_STM32_MEDIUMDENSITY is not set +# CONFIG_STM32_LOWDENSITY is not set +# CONFIG_STM32_STM32F20XX is not set +# CONFIG_STM32_STM32F205 is not set +# CONFIG_STM32_STM32F207 is not set +# CONFIG_STM32_STM32F30XX is not set +# CONFIG_STM32_STM32F302 is not set +# CONFIG_STM32_STM32F303 is not set +# CONFIG_STM32_STM32F37XX is not set +CONFIG_STM32_STM32F40XX=y +# CONFIG_STM32_STM32F401 is not set +CONFIG_STM32_STM32F411=y +# CONFIG_STM32_STM32F405 is not set +# CONFIG_STM32_STM32F407 is not set +# CONFIG_STM32_STM32F427 is not set +# CONFIG_STM32_STM32F429 is not set +# CONFIG_STM32_STM32F446 is not set +# CONFIG_STM32_STM32F469 is not set +# CONFIG_STM32_DFU is not set + +# +# STM32 Peripheral Support +# +# CONFIG_STM32_HAVE_CCM is not set +# CONFIG_STM32_HAVE_USBDEV is not set +CONFIG_STM32_HAVE_OTGFS=y +# CONFIG_STM32_HAVE_FSMC is not set +# CONFIG_STM32_HAVE_LTDC is not set +# CONFIG_STM32_HAVE_USART3 is not set +# CONFIG_STM32_HAVE_UART4 is not set +# CONFIG_STM32_HAVE_UART5 is not set +CONFIG_STM32_HAVE_USART6=y +# CONFIG_STM32_HAVE_UART7 is not set +# CONFIG_STM32_HAVE_UART8 is not set +CONFIG_STM32_HAVE_TIM1=y +# CONFIG_STM32_HAVE_TIM2 is not set +CONFIG_STM32_HAVE_TIM3=y +CONFIG_STM32_HAVE_TIM4=y +CONFIG_STM32_HAVE_TIM5=y +# CONFIG_STM32_HAVE_TIM6 is not set +# CONFIG_STM32_HAVE_TIM7 is not set +# CONFIG_STM32_HAVE_TIM8 is not set +CONFIG_STM32_HAVE_TIM9=y +CONFIG_STM32_HAVE_TIM10=y +CONFIG_STM32_HAVE_TIM11=y +# CONFIG_STM32_HAVE_TIM12 is not set +# CONFIG_STM32_HAVE_TIM13 is not set +# CONFIG_STM32_HAVE_TIM14 is not set +# CONFIG_STM32_HAVE_TIM15 is not set +# CONFIG_STM32_HAVE_TIM16 is not set +# CONFIG_STM32_HAVE_TIM17 is not set +# CONFIG_STM32_HAVE_ADC2 is not set +# CONFIG_STM32_HAVE_ADC3 is not set +# CONFIG_STM32_HAVE_ADC4 is not set +# CONFIG_STM32_HAVE_ADC1_DMA is not set +# CONFIG_STM32_HAVE_ADC2_DMA is not set +# CONFIG_STM32_HAVE_ADC3_DMA is not set +# CONFIG_STM32_HAVE_ADC4_DMA is not set +# CONFIG_STM32_HAVE_CAN1 is not set +# CONFIG_STM32_HAVE_CAN2 is not set +# CONFIG_STM32_HAVE_DAC1 is not set +# CONFIG_STM32_HAVE_DAC2 is not set +# CONFIG_STM32_HAVE_RNG is not set +# CONFIG_STM32_HAVE_ETHMAC is not set +CONFIG_STM32_HAVE_I2C2=y +CONFIG_STM32_HAVE_I2C3=y +CONFIG_STM32_HAVE_SPI2=y +CONFIG_STM32_HAVE_SPI3=y +CONFIG_STM32_HAVE_SPI4=y +CONFIG_STM32_HAVE_SPI5=y +# CONFIG_STM32_HAVE_SPI6 is not set +# CONFIG_STM32_HAVE_SAIPLL is not set +# CONFIG_STM32_HAVE_I2SPLL is not set +# CONFIG_STM32_ADC1 is not set +# CONFIG_STM32_BKPSRAM is not set +# CONFIG_STM32_CCMDATARAM is not set +# CONFIG_STM32_CRC is not set +# CONFIG_STM32_CRYP is not set +# CONFIG_STM32_DMA1 is not set +# CONFIG_STM32_DMA2 is not set +# CONFIG_STM32_DCMI is not set +# CONFIG_STM32_HASH is not set +# CONFIG_STM32_I2C1 is not set +# CONFIG_STM32_I2C2 is not set +# CONFIG_STM32_I2C3 is not set +# CONFIG_STM32_OTGFS is not set +# CONFIG_STM32_OTGHS is not set +# CONFIG_STM32_PWR is not set +# CONFIG_STM32_SDIO is not set +# CONFIG_STM32_SPI1 is not set +# CONFIG_STM32_SPI2 is not set +# CONFIG_STM32_SPI3 is not set +# CONFIG_STM32_SPI4 is not set +# CONFIG_STM32_SPI5 is not set +# CONFIG_STM32_SYSCFG is not set +# CONFIG_STM32_TIM1 is not set +# CONFIG_STM32_TIM2 is not set +# CONFIG_STM32_TIM3 is not set +# CONFIG_STM32_TIM4 is not set +# CONFIG_STM32_TIM5 is not set +# CONFIG_STM32_TIM9 is not set +# CONFIG_STM32_TIM10 is not set +# CONFIG_STM32_TIM11 is not set +# CONFIG_STM32_USART1 is not set +CONFIG_STM32_USART2=y +# CONFIG_STM32_USART6 is not set +# CONFIG_STM32_IWDG is not set +# CONFIG_STM32_WWDG is not set +# CONFIG_STM32_NOEXT_VECTORS is not set + +# +# Alternate Pin Mapping +# +# CONFIG_STM32_FLASH_PREFETCH is not set +# CONFIG_STM32_JTAG_DISABLE is not set +# CONFIG_STM32_JTAG_FULL_ENABLE is not set +# CONFIG_STM32_JTAG_NOJNTRST_ENABLE is not set +CONFIG_STM32_JTAG_SW_ENABLE=y +# CONFIG_STM32_DISABLE_IDLE_SLEEP_DURING_DEBUG is not set +# CONFIG_STM32_FORCEPOWER is not set +# CONFIG_ARCH_BOARD_STM32_CUSTOM_CLOCKCONFIG is not set +# CONFIG_STM32_TIM1_CAP is not set +# CONFIG_STM32_TIM3_CAP is not set +# CONFIG_STM32_TIM4_CAP is not set +# CONFIG_STM32_TIM5_CAP is not set +# CONFIG_STM32_TIM9_CAP is not set +# CONFIG_STM32_TIM10_CAP is not set +# CONFIG_STM32_TIM11_CAP is not set +CONFIG_STM32_USART=y + +# +# U[S]ART Configuration +# +# CONFIG_USART2_RS485 is not set +# CONFIG_SERIAL_DISABLE_REORDERING is not set +# CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set +# CONFIG_STM32_USART_SINGLEWIRE is not set +# CONFIG_STM32_HAVE_RTC_COUNTER is not set +# CONFIG_STM32_HAVE_RTC_SUBSECONDS is not set + +# +# USB FS Host Configuration +# + +# +# USB HS Host Configuration +# + +# +# USB Host Debug Configuration +# + +# +# USB Device Configuration +# + +# +# Architecture Options +# +# CONFIG_ARCH_NOINTC is not set +# CONFIG_ARCH_VECNOTIRQ is not set +# CONFIG_ARCH_DMA is not set +CONFIG_ARCH_HAVE_IRQPRIO=y +# CONFIG_ARCH_L2CACHE is not set +# CONFIG_ARCH_HAVE_COHERENT_DCACHE is not set +# CONFIG_ARCH_HAVE_ADDRENV is not set +# CONFIG_ARCH_NEED_ADDRENV_MAPPING is not set +# CONFIG_ARCH_HAVE_MULTICPU is not set +CONFIG_ARCH_HAVE_VFORK=y +# CONFIG_ARCH_HAVE_MMU is not set +CONFIG_ARCH_HAVE_MPU=y +# CONFIG_ARCH_NAND_HWECC is not set +# CONFIG_ARCH_HAVE_EXTCLK is not set +# CONFIG_ARCH_HAVE_POWEROFF is not set +CONFIG_ARCH_HAVE_RESET=y +# CONFIG_ARCH_USE_MPU is not set +# CONFIG_ARCH_IRQPRIO is not set +CONFIG_ARCH_STACKDUMP=y +# CONFIG_ENDIAN_BIG is not set +# CONFIG_ARCH_IDLE_CUSTOM is not set +# CONFIG_ARCH_HAVE_RAMFUNCS is not set +CONFIG_ARCH_HAVE_RAMVECTORS=y +# CONFIG_ARCH_RAMVECTORS is not set + +# +# Board Settings +# +CONFIG_BOARD_LOOPSPERMSEC=8499 +# CONFIG_ARCH_CALIBRATION is not set + +# +# Interrupt options +# +CONFIG_ARCH_HAVE_INTERRUPTSTACK=y +CONFIG_ARCH_INTERRUPTSTACK=2048 +CONFIG_ARCH_HAVE_HIPRI_INTERRUPT=y +# CONFIG_ARCH_HIPRI_INTERRUPT is not set + +# +# Boot options +# +# CONFIG_BOOT_RUNFROMEXTSRAM is not set +CONFIG_BOOT_RUNFROMFLASH=y +# CONFIG_BOOT_RUNFROMISRAM is not set +# CONFIG_BOOT_RUNFROMSDRAM is not set +# CONFIG_BOOT_COPYTORAM is not set + +# +# Boot Memory Configuration +# +CONFIG_RAM_START=0x20000000 +CONFIG_RAM_SIZE=131072 +# CONFIG_ARCH_HAVE_SDRAM is not set + +# +# Board Selection +# +CONFIG_ARCH_BOARD_STM32F411E_DISCO=y +# CONFIG_ARCH_BOARD_CUSTOM is not set +CONFIG_ARCH_BOARD="stm32f411e-disco" + +# +# Common Board Options +# +CONFIG_ARCH_HAVE_LEDS=y +# CONFIG_ARCH_LEDS is not set +CONFIG_ARCH_HAVE_BUTTONS=y +# CONFIG_ARCH_BUTTONS is not set +CONFIG_ARCH_HAVE_IRQBUTTONS=y +CONFIG_NSH_MMCSDMINOR=0 + +# +# Board-Specific Options +# +# CONFIG_LIB_BOARDCTL is not set + +# +# RTOS Features +# +# CONFIG_DISABLE_OS_API is not set + +# +# Clocks and Timers +# +CONFIG_USEC_PER_TICK=10000 +# CONFIG_SYSTEM_TIME64 is not set +# CONFIG_CLOCK_MONOTONIC is not set +# CONFIG_JULIAN_TIME is not set +CONFIG_START_YEAR=2014 +CONFIG_START_MONTH=10 +CONFIG_START_DAY=14 +CONFIG_MAX_WDOGPARMS=2 +CONFIG_PREALLOC_WDOGS=8 +CONFIG_WDOG_INTRESERVE=1 +CONFIG_PREALLOC_TIMERS=4 + +# +# Tasks and Scheduling +# +# CONFIG_INIT_NONE is not set +CONFIG_INIT_ENTRYPOINT=y +# CONFIG_INIT_FILEPATH is not set +CONFIG_USER_ENTRYPOINT="nsh_main" +CONFIG_RR_INTERVAL=200 +# CONFIG_SCHED_SPORADIC is not set +CONFIG_TASK_NAME_SIZE=0 +CONFIG_MAX_TASKS=16 +# CONFIG_SCHED_HAVE_PARENT is not set +CONFIG_SCHED_WAITPID=y + +# +# Pthread Options +# +# CONFIG_MUTEX_TYPES is not set +CONFIG_NPTHREAD_KEYS=4 + +# +# Performance Monitoring +# +# CONFIG_SCHED_CPULOAD is not set +# CONFIG_SCHED_INSTRUMENTATION is not set + +# +# Files and I/O +# +CONFIG_DEV_CONSOLE=y +# CONFIG_FDCLONE_DISABLE is not set +# CONFIG_FDCLONE_STDIO is not set +CONFIG_SDCLONE_DISABLE=y +CONFIG_NFILE_DESCRIPTORS=8 +CONFIG_NFILE_STREAMS=8 +CONFIG_NAME_MAX=32 +# CONFIG_PRIORITY_INHERITANCE is not set + +# +# RTOS hooks +# +# CONFIG_BOARD_INITIALIZE is not set +# CONFIG_SCHED_STARTHOOK is not set +# CONFIG_SCHED_ATEXIT is not set +# CONFIG_SCHED_ONEXIT is not set + +# +# Signal Numbers +# +CONFIG_SIG_SIGUSR1=1 +CONFIG_SIG_SIGUSR2=2 +CONFIG_SIG_SIGALARM=3 +CONFIG_SIG_SIGCONDTIMEDOUT=16 + +# +# POSIX Message Queue Options +# +CONFIG_PREALLOC_MQ_MSGS=4 +CONFIG_MQ_MAXMSGSIZE=32 +# CONFIG_MODULE is not set + +# +# Work queue support +# +# CONFIG_SCHED_WORKQUEUE is not set +# CONFIG_SCHED_HPWORK is not set +# CONFIG_SCHED_LPWORK is not set + +# +# Stack and heap information +# +CONFIG_IDLETHREAD_STACKSIZE=1024 +CONFIG_USERMAIN_STACKSIZE=2048 +CONFIG_PTHREAD_STACK_MIN=256 +CONFIG_PTHREAD_STACK_DEFAULT=2048 +# CONFIG_LIB_SYSCALL is not set + +# +# Device Drivers +# +CONFIG_DISABLE_POLL=y +CONFIG_DEV_NULL=y +# CONFIG_DEV_ZERO is not set +# CONFIG_DEV_LOOP is not set + +# +# Buffering +# +# CONFIG_DRVR_WRITEBUFFER is not set +# CONFIG_DRVR_READAHEAD is not set +# CONFIG_RAMDISK is not set +# CONFIG_CAN is not set +# CONFIG_ARCH_HAVE_PWM_PULSECOUNT is not set +# CONFIG_ARCH_HAVE_PWM_MULTICHAN is not set +# CONFIG_PWM is not set +CONFIG_ARCH_HAVE_I2CRESET=y +# CONFIG_I2C is not set +# CONFIG_SPI is not set +# CONFIG_I2S is not set + +# +# Timer Driver Support +# +# CONFIG_TIMER is not set +# CONFIG_RTC is not set +# CONFIG_WATCHDOG is not set +# CONFIG_ANALOG is not set +# CONFIG_AUDIO_DEVICES is not set +# CONFIG_VIDEO_DEVICES is not set +# CONFIG_BCH is not set +# CONFIG_INPUT is not set +# CONFIG_IOEXPANDER is not set +# CONFIG_LCD is not set + +# +# LED Support +# +# CONFIG_USERLED is not set +# CONFIG_RGBLED is not set +# CONFIG_PCA9635PW is not set +# CONFIG_MMCSD is not set +# CONFIG_MODEM is not set +# CONFIG_MTD is not set +# CONFIG_EEPROM is not set +# CONFIG_PIPES is not set +# CONFIG_PM is not set +# CONFIG_POWER is not set +# CONFIG_SENSORS is not set +# CONFIG_SERCOMM_CONSOLE is not set +CONFIG_SERIAL=y +# CONFIG_DEV_LOWCONSOLE is not set +# CONFIG_16550_UART is not set +# CONFIG_ARCH_HAVE_UART is not set +# CONFIG_ARCH_HAVE_UART0 is not set +# CONFIG_ARCH_HAVE_UART1 is not set +# CONFIG_ARCH_HAVE_UART2 is not set +# CONFIG_ARCH_HAVE_UART3 is not set +# CONFIG_ARCH_HAVE_UART4 is not set +# CONFIG_ARCH_HAVE_UART5 is not set +# CONFIG_ARCH_HAVE_UART6 is not set +# CONFIG_ARCH_HAVE_UART7 is not set +# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_ARCH_HAVE_SCI0 is not set +# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_ARCH_HAVE_USART0 is not set +# CONFIG_ARCH_HAVE_USART1 is not set +CONFIG_ARCH_HAVE_USART2=y +# CONFIG_ARCH_HAVE_USART3 is not set +# CONFIG_ARCH_HAVE_USART4 is not set +# CONFIG_ARCH_HAVE_USART5 is not set +# CONFIG_ARCH_HAVE_USART6 is not set +# CONFIG_ARCH_HAVE_USART7 is not set +# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_ARCH_HAVE_OTHER_UART is not set + +# +# USART Configuration +# +CONFIG_USART2_ISUART=y +CONFIG_MCU_SERIAL=y +CONFIG_STANDARD_SERIAL=y +# CONFIG_SERIAL_IFLOWCONTROL is not set +# CONFIG_SERIAL_OFLOWCONTROL is not set +# CONFIG_SERIAL_DMA is not set +CONFIG_ARCH_HAVE_SERIAL_TERMIOS=y +CONFIG_USART2_SERIAL_CONSOLE=y +# CONFIG_OTHER_SERIAL_CONSOLE is not set +# CONFIG_NO_SERIAL_CONSOLE is not set + +# +# USART2 Configuration +# +CONFIG_USART2_RXBUFSIZE=256 +CONFIG_USART2_TXBUFSIZE=256 +CONFIG_USART2_BAUD=115200 +CONFIG_USART2_BITS=8 +CONFIG_USART2_PARITY=0 +CONFIG_USART2_2STOP=0 +# CONFIG_USART2_IFLOWCONTROL is not set +# CONFIG_USART2_OFLOWCONTROL is not set +# CONFIG_USART2_DMA is not set +# CONFIG_USBDEV is not set +# CONFIG_USBHOST is not set +# CONFIG_DRIVERS_WIRELESS is not set + +# +# System Logging Device Options +# + +# +# System Logging +# +# CONFIG_RAMLOG is not set +# CONFIG_SYSLOG_CONSOLE is not set + +# +# Networking Support +# +# CONFIG_ARCH_HAVE_NET is not set +# CONFIG_ARCH_HAVE_PHY is not set +# CONFIG_NET is not set + +# +# Crypto API +# +# CONFIG_CRYPTO is not set + +# +# File Systems +# + +# +# File system configuration +# +# CONFIG_DISABLE_MOUNTPOINT is not set +# CONFIG_FS_AUTOMOUNTER is not set +# CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +# CONFIG_FS_READABLE is not set +# CONFIG_FS_WRITABLE is not set +# CONFIG_FS_NAMED_SEMAPHORES is not set +CONFIG_FS_MQUEUE_MPATH="/var/mqueue" +# CONFIG_FS_RAMMAP is not set +# CONFIG_FS_FAT is not set +# CONFIG_FS_NXFFS is not set +# CONFIG_FS_ROMFS is not set +# CONFIG_FS_TMPFS is not set +# CONFIG_FS_SMARTFS is not set +# CONFIG_FS_BINFS is not set +# CONFIG_FS_PROCFS is not set +# CONFIG_FS_UNIONFS is not set + +# +# System Logging +# +# CONFIG_SYSLOG is not set +# CONFIG_SYSLOG_TIMESTAMP is not set + +# +# Graphics Support +# +# CONFIG_NX is not set + +# +# Memory Management +# +# CONFIG_MM_SMALL is not set +CONFIG_MM_REGIONS=1 +# CONFIG_ARCH_HAVE_HEAP2 is not set +# CONFIG_GRAN is not set + +# +# Audio Support +# +# CONFIG_AUDIO is not set + +# +# Wireless Support +# + +# +# Binary Loader +# +# CONFIG_BINFMT_DISABLE is not set +# CONFIG_BINFMT_EXEPATH is not set +# CONFIG_NXFLAT is not set +# CONFIG_ELF is not set +CONFIG_BUILTIN=y +# CONFIG_PIC is not set +# CONFIG_SYMTAB_ORDEREDBYNAME is not set + +# +# Library Routines +# + +# +# Standard C Library Options +# +CONFIG_STDIO_BUFFER_SIZE=64 +CONFIG_STDIO_LINEBUFFER=y +CONFIG_NUNGET_CHARS=2 +CONFIG_LIB_HOMEDIR="/" +# CONFIG_LIBM is not set +# CONFIG_NOPRINTF_FIELDWIDTH is not set +# CONFIG_LIBC_FLOATINGPOINT is not set +CONFIG_LIBC_LONG_LONG=y +# CONFIG_LIBC_IOCTL_VARIADIC is not set +CONFIG_LIB_RAND_ORDER=1 +# CONFIG_EOL_IS_CR is not set +# CONFIG_EOL_IS_LF is not set +# CONFIG_EOL_IS_BOTH_CRLF is not set +CONFIG_EOL_IS_EITHER_CRLF=y +# CONFIG_LIBC_EXECFUNCS is not set +CONFIG_POSIX_SPAWN_PROXY_STACKSIZE=1024 +CONFIG_TASK_SPAWN_DEFAULT_STACKSIZE=2048 +# CONFIG_LIBC_STRERROR is not set +# CONFIG_LIBC_PERROR_STDOUT is not set +CONFIG_ARCH_LOWPUTC=y +# CONFIG_LIBC_LOCALTIME is not set +# CONFIG_TIME_EXTENDED is not set +CONFIG_LIB_SENDFILE_BUFSIZE=512 +# CONFIG_ARCH_ROMGETC is not set +# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set +# CONFIG_LIBC_NETDB is not set + +# +# Non-standard Library Support +# +# CONFIG_LIB_KBDCODEC is not set +# CONFIG_LIB_SLCDCODEC is not set + +# +# Basic CXX Support +# +# CONFIG_C99_BOOL8 is not set +CONFIG_HAVE_CXX=y +# CONFIG_HAVE_CXXINITIALIZE is not set +# CONFIG_CXX_NEWLONG is not set + +# +# uClibc++ Standard C++ Library +# +# CONFIG_UCLIBCXX is not set + +# +# Application Configuration +# + +# +# Built-In Applications +# +CONFIG_BUILTIN_PROXY_STACKSIZE=1024 + +# +# CAN Utilities +# + +# +# Custom +# +# CONFIG_CUSTOM_BRIDGE is not set +# CONFIG_CUSTOM_J1939 is not set + +# +# Examples +# +# CONFIG_EXAMPLES_CHAT is not set +# CONFIG_EXAMPLES_CONFIGDATA is not set +# CONFIG_EXAMPLES_CPUHOG is not set +# CONFIG_EXAMPLES_CXXTEST is not set +# CONFIG_EXAMPLES_DHCPD is not set +# CONFIG_EXAMPLES_ELF is not set +# CONFIG_EXAMPLES_FTPC is not set +# CONFIG_EXAMPLES_FTPD is not set +# CONFIG_EXAMPLES_HELLO is not set +# CONFIG_EXAMPLES_HELLOXX is not set +# CONFIG_EXAMPLES_JSON is not set +# CONFIG_EXAMPLES_HIDKBD is not set +# CONFIG_EXAMPLES_KEYPADTEST is not set +# CONFIG_EXAMPLES_IGMP is not set +# CONFIG_EXAMPLES_LEDS is not set +# CONFIG_EXAMPLES_MEDIA is not set +# CONFIG_EXAMPLES_MM is not set +# CONFIG_EXAMPLES_MODBUS is not set +# CONFIG_EXAMPLES_MOUNT is not set +# CONFIG_EXAMPLES_NRF24L01TERM is not set +CONFIG_EXAMPLES_NSH=y +# CONFIG_EXAMPLES_NULL is not set +# CONFIG_EXAMPLES_NX is not set +# CONFIG_EXAMPLES_NXTERM is not set +# CONFIG_EXAMPLES_NXFFS is not set +# CONFIG_EXAMPLES_NXHELLO is not set +# CONFIG_EXAMPLES_NXIMAGE is not set +# CONFIG_EXAMPLES_NXLINES is not set +# CONFIG_EXAMPLES_NXTEXT is not set +# CONFIG_EXAMPLES_OSTEST is not set +# CONFIG_EXAMPLES_PCA9635 is not set +# CONFIG_EXAMPLES_PIPE is not set +# CONFIG_EXAMPLES_PPPD is not set +# CONFIG_EXAMPLES_POSIXSPAWN is not set +# CONFIG_EXAMPLES_RGBLED is not set +# CONFIG_EXAMPLES_RGMP is not set +# CONFIG_EXAMPLES_SENDMAIL is not set +# CONFIG_EXAMPLES_SERIALBLASTER is not set +# CONFIG_EXAMPLES_SERIALRX is not set +# CONFIG_EXAMPLES_SERLOOP is not set +# CONFIG_EXAMPLES_SLCD is not set +# CONFIG_EXAMPLES_SMART_TEST is not set +# CONFIG_EXAMPLES_SMART is not set +# CONFIG_EXAMPLES_SMP is not set +# CONFIG_EXAMPLES_TCPECHO is not set +# CONFIG_EXAMPLES_TELNETD is not set +# CONFIG_EXAMPLES_TIFF is not set +# CONFIG_EXAMPLES_TOUCHSCREEN is not set +# CONFIG_EXAMPLES_WEBSERVER is not set +# CONFIG_EXAMPLES_USBTERM is not set +# CONFIG_EXAMPLES_WATCHDOG is not set + +# +# File System Utilities +# +# CONFIG_FSUTILS_INIFILE is not set + +# +# GPS Utilities +# +# CONFIG_GPSUTILS_MINMEA_LIB is not set + +# +# Graphics Support +# +# CONFIG_TIFF is not set +# CONFIG_GRAPHICS_TRAVELER is not set + +# +# Interpreters +# +# CONFIG_INTERPRETERS_FICL is not set +# CONFIG_INTERPRETERS_PCODE is not set +# CONFIG_INTERPRETERS_MICROPYTHON is not set + +# +# FreeModBus +# +# CONFIG_MODBUS is not set + +# +# Network Utilities +# +# CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_FTPC is not set +# CONFIG_NETUTILS_JSON is not set +# CONFIG_NETUTILS_SMTP is not set + +# +# NSH Library +# +CONFIG_NSH_LIBRARY=y +# CONFIG_NSH_MOTD is not set + +# +# Command Line Configuration +# +CONFIG_NSH_READLINE=y +# CONFIG_NSH_CLE is not set +CONFIG_NSH_LINELEN=64 +# CONFIG_NSH_DISABLE_SEMICOLON is not set +# CONFIG_NSH_CMDPARMS is not set +CONFIG_NSH_MAXARGUMENTS=6 +# CONFIG_NSH_ARGCAT is not set +CONFIG_NSH_NESTDEPTH=3 +# CONFIG_NSH_DISABLEBG is not set +CONFIG_NSH_BUILTIN_APPS=y + +# +# Disable Individual commands +# +# CONFIG_NSH_DISABLE_ADDROUTE is not set +# CONFIG_NSH_DISABLE_BASENAME is not set +# CONFIG_NSH_DISABLE_CAT is not set +# CONFIG_NSH_DISABLE_CD is not set +# CONFIG_NSH_DISABLE_CP is not set +# CONFIG_NSH_DISABLE_CMP is not set +CONFIG_NSH_DISABLE_DATE=y +# CONFIG_NSH_DISABLE_DD is not set +# CONFIG_NSH_DISABLE_DF is not set +# CONFIG_NSH_DISABLE_DELROUTE is not set +# CONFIG_NSH_DISABLE_DIRNAME is not set +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_EXEC is not set +# CONFIG_NSH_DISABLE_EXIT is not set +# CONFIG_NSH_DISABLE_FREE is not set +# CONFIG_NSH_DISABLE_GET is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_HEXDUMP is not set +# CONFIG_NSH_DISABLE_IFCONFIG is not set +CONFIG_NSH_DISABLE_IFUPDOWN=y +# CONFIG_NSH_DISABLE_KILL is not set +# CONFIG_NSH_DISABLE_LOSETUP is not set +CONFIG_NSH_DISABLE_LOSMART=y +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MB is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MKFIFO is not set +# CONFIG_NSH_DISABLE_MKRD is not set +# CONFIG_NSH_DISABLE_MH is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_MW is not set +# CONFIG_NSH_DISABLE_PS is not set +# CONFIG_NSH_DISABLE_PUT is not set +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_RM is not set +# CONFIG_NSH_DISABLE_RMDIR is not set +# CONFIG_NSH_DISABLE_SET is not set +# CONFIG_NSH_DISABLE_SH is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_TIME is not set +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNAME is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set +# CONFIG_NSH_DISABLE_WGET is not set +# CONFIG_NSH_DISABLE_XD is not set + +# +# Configure Command Options +# +# CONFIG_NSH_CMDOPT_DF_H is not set +CONFIG_NSH_CODECS_BUFSIZE=128 +# CONFIG_NSH_CMDOPT_HEXDUMP is not set +CONFIG_NSH_FILEIOSIZE=512 + +# +# Scripting Support +# +# CONFIG_NSH_DISABLESCRIPT is not set +# CONFIG_NSH_DISABLE_ITEF is not set +# CONFIG_NSH_DISABLE_LOOPS is not set + +# +# Console Configuration +# +CONFIG_NSH_CONSOLE=y +# CONFIG_NSH_ALTCONDEV is not set +# CONFIG_NSH_ARCHINIT is not set +# CONFIG_NSH_LOGIN is not set +# CONFIG_NSH_CONSOLE_LOGIN is not set + +# +# NxWidgets/NxWM +# + +# +# Platform-specific Support +# +# CONFIG_PLATFORM_CONFIGDATA is not set + +# +# System Libraries and NSH Add-Ons +# +# CONFIG_SYSTEM_FREE is not set +# CONFIG_SYSTEM_CLE is not set +# CONFIG_SYSTEM_CUTERM is not set +# CONFIG_SYSTEM_INSTALL is not set +# CONFIG_SYSTEM_HEX2BIN is not set +# CONFIG_SYSTEM_HEXED is not set +# CONFIG_SYSTEM_RAMTEST is not set +CONFIG_READLINE_HAVE_EXTMATCH=y +CONFIG_SYSTEM_READLINE=y +CONFIG_READLINE_ECHO=y +# CONFIG_READLINE_TABCOMPLETION is not set +# CONFIG_READLINE_CMD_HISTORY is not set +# CONFIG_SYSTEM_SUDOKU is not set +# CONFIG_SYSTEM_VI is not set +# CONFIG_SYSTEM_UBLOXMODEM is not set +# CONFIG_SYSTEM_ZMODEM is not set diff --git a/configs/stm32f411e-disco/nsh/setenv.sh b/configs/stm32f411e-disco/nsh/setenv.sh new file mode 100755 index 0000000000..ea002182e6 --- /dev/null +++ b/configs/stm32f411e-disco/nsh/setenv.sh @@ -0,0 +1,64 @@ +#!/bin/bash +# configs/stm32f411e-disco/nsh/setenv.sh +# +# Copyright (C) 2016 Gregory Nutt. All rights reserved. +# Author: Gregory Nutt +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# 3. Neither the name NuttX nor the names of its contributors may be +# used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + +if [ "$_" = "$0" ] ; then + echo "You must source this script, not run it!" 1>&2 + exit 1 +fi + +WD=`pwd` +if [ ! -x "setenv.sh" ]; then + echo "This script must be executed from the top-level NuttX build directory" + exit 1 +fi + +if [ -z "${PATH_ORIG}" ]; then + export PATH_ORIG="${PATH}" +fi + +# This the Cygwin path to the location where I installed the CodeSourcery +# toolchain under windows. You will also have to edit this if you install +# the CodeSourcery toolchain in any other location +#export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/CodeSourcery/Sourcery G++ Lite/bin" +export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_EABI/bin" +#export TOOLCHAIN_BIN="/cygdrive/c/Users/MyName/MentorGraphics/Sourcery_CodeBench_Lite_for_ARM_EABI/bin" + +# This the Cygwin path to the location where I build the buildroot +# toolchain. +#export TOOLCHAIN_BIN="${WD}/../buildroot/build_arm_nofpu/staging_dir/bin" + +# Add the path to the toolchain to the PATH varialble +export PATH="${TOOLCHAIN_BIN}:/sbin:/usr/sbin:${PATH_ORIG}" + +echo "PATH : ${PATH}" diff --git a/configs/stm32f411e-disco/scripts/f411ve.ld b/configs/stm32f411e-disco/scripts/f411ve.ld new file mode 100644 index 0000000000..9a1e4b8dbe --- /dev/null +++ b/configs/stm32f411e-disco/scripts/f411ve.ld @@ -0,0 +1,119 @@ +/**************************************************************************** + * configs/stm32f411e-disco/scripts/f411ve.ld + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * Librae + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +/* The STM32F411VE has 512Kb of FLASH beginning at address 0x0800:0000 and + * 128Kb of SRAM beginning at address 0x2000:0000. When booting from FLASH, + * FLASH memory is aliased to address 0x0000:0000 where the code expects to + * begin execution by jumping to the entry point in the 0x0800:0000 address + * range. + */ + +MEMORY +{ + flash (rx) : ORIGIN = 0x08000000, LENGTH = 512K + sram (rwx) : ORIGIN = 0x20000000, LENGTH = 128K +} + +OUTPUT_ARCH(arm) +ENTRY(_stext) +SECTIONS +{ + .text : { + _stext = ABSOLUTE(.); + *(.vectors) + *(.text .text.*) + *(.fixup) + *(.gnu.warning) + *(.rodata .rodata.*) + *(.gnu.linkonce.t.*) + *(.glue_7) + *(.glue_7t) + *(.got) + *(.gcc_except_table) + *(.gnu.linkonce.r.*) + _etext = ABSOLUTE(.); + } > flash + + .init_section : { + _sinit = ABSOLUTE(.); + *(.init_array .init_array.*) + _einit = ABSOLUTE(.); + } > flash + + .ARM.extab : { + *(.ARM.extab*) + } > flash + + __exidx_start = ABSOLUTE(.); + .ARM.exidx : { + *(.ARM.exidx*) + } > flash + __exidx_end = ABSOLUTE(.); + + _eronly = ABSOLUTE(.); + + /* The STM32F103VCT6 has 48Kb of SRAM beginning at the following address */ + + .data : { + _sdata = ABSOLUTE(.); + *(.data .data.*) + *(.gnu.linkonce.d.*) + CONSTRUCTORS + _edata = ABSOLUTE(.); + } > sram AT > flash + + .bss : { + _sbss = ABSOLUTE(.); + *(.bss .bss.*) + *(.gnu.linkonce.b.*) + *(COMMON) + _ebss = ABSOLUTE(.); + } > sram + + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } + .stabstr 0 : { *(.stabstr) } + .stab.excl 0 : { *(.stab.excl) } + .stab.exclstr 0 : { *(.stab.exclstr) } + .stab.index 0 : { *(.stab.index) } + .stab.indexstr 0 : { *(.stab.indexstr) } + .comment 0 : { *(.comment) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_info 0 : { *(.debug_info) } + .debug_line 0 : { *(.debug_line) } + .debug_pubnames 0 : { *(.debug_pubnames) } + .debug_aranges 0 : { *(.debug_aranges) } +} diff --git a/configs/stm32f411e-disco/src/Makefile b/configs/stm32f411e-disco/src/Makefile new file mode 100644 index 0000000000..2ee3b64016 --- /dev/null +++ b/configs/stm32f411e-disco/src/Makefile @@ -0,0 +1,45 @@ +############################################################################ +# configs/stm32f411e-disco/src/Makefile +# +# Copyright (C) 2016 Gregory Nutt. All rights reserved. +# Author: Gregory Nutt +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# 3. Neither the name NuttX nor the names of its contributors may be +# used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +############################################################################ + +-include $(TOPDIR)/Make.defs + +ASRCS = +CSRCS = stm32_boot.c + +ifeq ($(CONFIG_NSH_LIBRARY),y) +CSRCS += stm32_appinit.c +endif + +include $(TOPDIR)/configs/Board.mk diff --git a/configs/stm32f411e-disco/src/stm32_appinit.c b/configs/stm32f411e-disco/src/stm32_appinit.c new file mode 100644 index 0000000000..1bd5079871 --- /dev/null +++ b/configs/stm32f411e-disco/src/stm32_appinit.c @@ -0,0 +1,89 @@ +/**************************************************************************** + * configs/stm32f411e-disco/src/stm32_appinit.c + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include + +#include +#include +#include + +#include +#include + +#include +#include + +#include + +#include "stm32f411e-disco.h" + +/**************************************************************************** + * Pre-processor Definitions + ****************************************************************************/ + +/**************************************************************************** + * Private Data + ****************************************************************************/ + +/**************************************************************************** + * Private Functions + ****************************************************************************/ + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: board_app_initialize + * + * Description: + * Perform architecture specific initialization + * + ****************************************************************************/ + +int board_app_initialize(void) +{ + /* Configure CPU load estimation */ + +#ifdef CONFIG_SCHED_INSTRUMENTATION + cpuload_initialize_once(); +#endif + + return OK; +} diff --git a/configs/stm32f411e-disco/src/stm32_boot.c b/configs/stm32f411e-disco/src/stm32_boot.c new file mode 100644 index 0000000000..593f0ad242 --- /dev/null +++ b/configs/stm32f411e-disco/src/stm32_boot.c @@ -0,0 +1,127 @@ +/************************************************************************************ + * configs/stm32f411e-disco/src/stm32_boot.c + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * Librae + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ************************************************************************************/ + +/************************************************************************************ + * Included Files + ************************************************************************************/ + +#include + +#include + +#include +#include + +#include + +#include "up_arch.h" +#include "stm32f411e-disco.h" + +/************************************************************************************ + * Pre-processor Definitions + ************************************************************************************/ + +/************************************************************************************ + * Private Data + ************************************************************************************/ + +/************************************************************************************ + * Public Functions + ************************************************************************************/ + +/************************************************************************************ + * Name: stm32_boardinitialize + * + * Description: + * All STM32 architectures must provide the following entry point. This entry point + * is called early in the initialization -- after all memory has been configured + * and mapped but before any devices have been initialized. + * + ************************************************************************************/ + +void stm32_boardinitialize(void) +{ + /* Configure on-board LEDs if LED support has been selected. */ + +#ifdef CONFIG_ARCH_LEDS + board_autoled_initialize(); +#endif + + /* Configure SPI chip selects if 1) SP2 is not disabled, and 2) the weak function + * stm32_spidev_initialize() has been brought into the link. + */ + +#if defined(CONFIG_STM32_SPI1) || defined(CONFIG_STM32_SPI2) || defined(CONFIG_STM32_SPI3) + stm32_spidev_initialize(); +#endif + + /* Initialize USB is 1) USBDEV is selected, 2) the USB controller is not + * disabled, and 3) the weak function stm32_usbinitialize() has been brought + * into the build. + */ + +#if defined(CONFIG_USBDEV) && defined(CONFIG_STM32_USB) + stm32_usbinitialize(); +#endif +} + +/**************************************************************************** + * Name: board_initialize + * + * Description: + * If CONFIG_BOARD_INITIALIZE is selected, then an additional + * initialization call will be performed in the boot-up sequence to a + * function called board_initialize(). board_initialize() will be + * called immediately after up_intiialize() is called and just before the + * initial application is started. This additional initialization phase + * may be used, for example, to initialize board-specific device drivers. + * + ****************************************************************************/ + +#ifdef CONFIG_BOARD_INITIALIZE +void board_initialize(void) +{ + /* Perform NSH initialization here instead of from the NSH. This + * alternative NSH initialization is necessary when NSH is ran in user-space + * but the initialization function must run in kernel space. + */ + +#if defined(CONFIG_NSH_LIBRARY) && !defined(CONFIG_LIB_BOARDCTL) + board_app_initialize(); +#endif + +} +#endif diff --git a/configs/stm32f411e-disco/src/stm32f411e-disco.h b/configs/stm32f411e-disco/src/stm32f411e-disco.h new file mode 100644 index 0000000000..1c7f8d3efd --- /dev/null +++ b/configs/stm32f411e-disco/src/stm32f411e-disco.h @@ -0,0 +1,137 @@ +/************************************************************************************ + * configs/stm32f411e-disco/src/stm32f411e-disco.h + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Authors: Frank Bennett + * Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ************************************************************************************/ + +#ifndef __CONFIGS_STM32F411E_DISCO_SRC_STM32F411E_DISCO_H +#define __CONFIGS_STM32F411E_DISCO_SRC_STM32F411E_DISCO_H + +/************************************************************************************ + * Included Files + ************************************************************************************/ + +#include +#include + +#include + +/************************************************************************************ + * Pre-processor Definitions + ************************************************************************************/ +/* Configuration ********************************************************************/ + +/* LED. User LD2: the green LED is a user LED connected to Arduino signal D13 + * corresponding to MCU I/O PA5 (pin 21) or PB13 (pin 34) depending on the STM32 + * target. + * + * - When the I/O is HIGH value, the LED is on. + * - When the I/O is LOW, the LED is off. + */ + +#define GPIO_LD2 \ + (GPIO_PORTD | GPIO_PIN12 | GPIO_OUTPUT_CLEAR | GPIO_OUTPUT | GPIO_PULLUP | \ + GPIO_SPEED_50MHz) + +/* Buttons + * + * B1 USER: the user button is connected to the I/O PA0 of the STM32 + * microcontroller. + */ + +#define MIN_IRQBUTTON BUTTON_USER +#define MAX_IRQBUTTON BUTTON_USER +#define NUM_IRQBUTTONS 1 + +#define GPIO_BTN_USER \ + (GPIO_INPUT |GPIO_FLOAT |GPIO_EXTI | GPIO_PORTA | GPIO_PIN0) + +/* SPI1 off */ + +#define GPIO_SPI1_MOSI_OFF (GPIO_INPUT | GPIO_PULLDOWN | \ + GPIO_PORTA | GPIO_PIN7) +#define GPIO_SPI1_MISO_OFF (GPIO_INPUT | GPIO_PULLDOWN | \ + GPIO_PORTA | GPIO_PIN6) +#define GPIO_SPI1_SCK_OFF (GPIO_INPUT | GPIO_PULLDOWN | \ + GPIO_PORTA | GPIO_PIN5) + +/************************************************************************************ + * Public Data + ************************************************************************************/ + +/* Global driver instances */ + +#ifdef CONFIG_STM32_SPI1 +extern struct spi_dev_s *g_spi1; +#endif +#ifdef CONFIG_STM32_SPI2 +extern struct spi_dev_s *g_spi2; +#endif + +/************************************************************************************ + * Public Functions + ************************************************************************************/ + +/************************************************************************************ + * Name: stm32_spidev_initialize + * + * Description: + * Called to configure SPI chip select GPIO pins. + * + ************************************************************************************/ + +void stm32_spidev_initialize(void); + +/************************************************************************************ + * Name: stm32_usbinitialize + * + * Description: + * Called to setup USB-related GPIO pins. + * + ************************************************************************************/ + +void stm32_usbinitialize(void); + +/************************************************************************************ + * Name: board_adc_initialize + * + * Description: + * Initialize and register the ADC driver(s) + * + ************************************************************************************/ + +#ifdef CONFIG_ADC +int board_adc_initialize(void); +#endif + +#endif /* __CONFIGS_STM32F411E_DISCO_SRC_STM32F411E_DISCO_H */ -- GitLab From 56616f99d3ac5137b0462ea2e6537903175d4d12 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 20 May 2016 18:09:12 -0600 Subject: [PATCH 214/307] Forgot to add file before last commit --- configs/sim/NETWORK-LINUX.txt | 136 ++++++++++++++++++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100644 configs/sim/NETWORK-LINUX.txt diff --git a/configs/sim/NETWORK-LINUX.txt b/configs/sim/NETWORK-LINUX.txt new file mode 100644 index 0000000000..9e2d3c6926 --- /dev/null +++ b/configs/sim/NETWORK-LINUX.txt @@ -0,0 +1,136 @@ +NETWORK SUPPORT ON LINUX +^^^^^^^^^^^^^^^^^^^^^^^^ + +The simulation uses the TUN/TAP driver under Linux to provide network support. +It can operate in one of two modes: host routed, or bridged. In the host +routed case no special configuration is necessary, but by default the +simulation will only be accessible to the host on which it runs. + +Bridge mode is recommended where possible. It requires slightly more effort +to set up, but is much more flexible, and is likely to be easier to maintain +in the end. + + +HOST ROUTE MODE +^^^^^^^^^^^^^^^ + +If CONFIG_SIM_NET_HOST_ROUTE is enabled, the simulation will create and +maintain a host route from the assigned IP address to the instance's tap +device. This route will be updated if the application changes the +simulation's IP address. Note that you will not see the simulation's IP +address on the TAP device if you run ifconfig on the host. + +No special setup is required. Simply assign your simulation a free IP address +on the same network as your host, and everything will Just Work. Note that if +you assign an IP that is already in use on your network, your host won't be +able to see it until the simulation is stopped. The host route will force all +traffic destined for that IP to be sent to the tap interface. + +NOTE: If you configure an IP address that is not on the same subnet as your + host, additional manual setup will be required. This is not + recommended; you should use bridge mode instead. + + +BRIDGE MODE +^^^^^^^^^^^ + +BASIC USAGE +----------- +If CONFIG_SIM_NET_BRIDGE is enabled, the simulation's tap interface will +automatically be added to the Linux bridge device specified by the +CONFIG_SIM_NET_BRIDGE_DEVICE configuration option. Note that this MUST be a +pre-existing bridge device, or the initialization will fail. The simulation +will NOT create the bridge for you. + +To create the bridge, first install the bridge utilities package for your +platform (the bridge-utils RPM in RedHat, for example). Then execute a +command like the following: + + # brctl addbr nuttx0 + +This will create the nuttx0 bridge. Once created, the bridge may be used by +one or more simulations. You only need one bridge per host; if you start +multiple simulations, they will all be added to the same bridge and can talk +amongst themselves. + + +OPTION 1: ROUTING LOCAL TRAFFIC TO THE BRIDGE +---------------------------------------------- +If you want the host to be able to talk to your simluations, you will +also need to assign the bridge an IP address (this will be the default +gateway you assign to your simluations) and add a network route. Note +that the subnet chosen should not already be in use. For example, if +you want to use the 172.26.23.0/24 subnet for your simluations, you +would do something like the following: + + # brctl addbr nuttx0 + # ifconfig nuttx0 172.26.23.1/24 + +The standard Linux ifconfig utility will automatically add the appropriate +network route, so no further effort is needed. + + +OPTION 2: LIVE NETWORK ACCESS +------------------------------ +There are two main methods of giving your simulations access to your network +at large. One is to set up your Linux host as a router and configure your +network so that it knows where to find the appropriate subnet. This is far +too complex for most use cases, so you can safely ignore it unless you have +specific needs. + +The recommended method is to add a real interface to the bridge you're using +with NuttX. For example, if you have a secondary eth1 interface on your host, +you can simply connect it to the network you want your simulations to access, +and run the following command: + + # brctl addif nuttx0 eth1 + +From that point on, your simulations will be directly connected to the same +network as your eth1 interface. Note that your bridge will generally not need +an IP address in this case. + +If you only have a single interface, you can configure your system so that eth0 +(or other primary interface) is on the bridge. To do this, you would execute +commands like the following from the system console: + + # brctl addbr nuttx0 + # brctl addif nuttx0 eth0 + # ifconfig nuttx0 + # route add -net default gw ... + +The rest of your network configuration would remain the same; your host's IP +address has simply moved from being assigned directly to the ethernet interface, +to being assigned to the bridge that contains that interface. The connection +will operate as normal. NuttX simulations will join the bridge as with the +previous example. + +In either of the live access scenarios presented here, the default gateway you +configure in your simluation should be the normal one for the network you're +accessing, whether or not the bridge has an IP address. The bridge is acting +as an ethernet hub; your simluation has direct access to the normal gateway as +if the simluation were a device physically connected to the network. + + +CONFIGURING AT STARTUP +---------------------- +Most Linux distributions have a mechanism for configuring a bridge at startup. +See your distribution's documentation for more information. + + +NOTES +^^^^^ + + o Users of VMware ESXi should be aware that the bridge will place the contained + ethernet interface into promiscuous mode (don't ask me why). ESXi will + reject this by default, and nothing will work. To fix this, edit the + properties of the relevant vSwitch or VLAN, select the Security tab, and + set "Promiscuous Mode" to "Accept". + + If anyone knows a better way to deal with this, or if I'm misunderstanding + what's happening there, please do tell. + + I don't know if VMware's consumer products have similar issues or not. + + +-- Steve + http://floating.io -- GitLab From 9bd8070b34d2fda8ea53fb70e6edcbfd88f79d0e Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 20 May 2016 18:12:05 -0600 Subject: [PATCH 215/307] Review of last PR --- Documentation/README.html | 4 ++- README.txt | 2 ++ configs/Kconfig | 25 +++++++++++-------- configs/README.txt | 4 +++ configs/stm32f411e-disco/include/board.h | 2 -- configs/stm32f411e-disco/nsh/defconfig | 2 +- configs/stm32f411e-disco/nsh/setenv.sh | 6 ++++- configs/stm32f411e-disco/scripts/f411ve.ld | 5 ++-- configs/stm32f411e-disco/src/stm32_appinit.c | 14 +---------- configs/stm32f411e-disco/src/stm32_boot.c | 16 +++--------- .../stm32f411e-disco/src/stm32f411e-disco.h | 12 --------- 11 files changed, 37 insertions(+), 55 deletions(-) diff --git a/Documentation/README.html b/Documentation/README.html index 2e51d5b9ff..735edf031d 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -8,7 +8,7 @@

      NuttX README Files

      -

      Last Updated: May 18, 2016

      +

      Last Updated: May 20, 2016

      @@ -257,6 +257,8 @@ nuttx/ | | `- README.txt | |- stm32f4discovery/ | | `- README.txt + | |- stm32f411e-disco/ + | | `- README.txt | |- stm32f429i-disco/ | | |- ide/ltcd/uvision/README.txt | | |- ltdc/README.txt diff --git a/README.txt b/README.txt index 3b7043f1cd..130626fd7d 100644 --- a/README.txt +++ b/README.txt @@ -1432,6 +1432,8 @@ nuttx/ | | `- README.txt | |- stm32f4discovery/ | | `- README.txt + | |- stm32f411e-disco/ + | | `- README.txt | |- stm32f429i-disco/ | | |- ide/ltcd/uvision/README.txt | | |- ltdc/README.txt diff --git a/configs/Kconfig b/configs/Kconfig index ee744973ed..aa4a2bd814 100644 --- a/configs/Kconfig +++ b/configs/Kconfig @@ -963,6 +963,16 @@ config ARCH_BOARD_STM32F4_DISCOVERY ---help--- STMicro STM32F4-Discovery board based on the STMicro STM32F407VGT6 MCU. +config ARCH_BOARD_STM32F411E_DISCO + bool "STMicro STM32F411E-Discovery board" + depends on ARCH_CHIP_STM32F411VE + select ARCH_HAVE_LEDS + select ARCH_HAVE_BUTTONS + select ARCH_HAVE_IRQBUTTONS + ---help--- + This is a minimal configuration that supports low-level test of the + STMicro STM32F411E-Discovery Board. + config ARCH_BOARD_STM32F429I_DISCO bool "STMicro STM32F429I-Discovery board" depends on ARCH_CHIP_STM32F429Z @@ -994,16 +1004,6 @@ config ARCH_BOARD_STM32L476VG_DISCO MCU. The STM32L476VG is a Cortex-M4 optimised for low-power operation at up to 80MHz operation with 1024Kb Flash memory and 96+32Kb SRAM. -config ARCH_BOARD_STM32F411E_DISCO - bool "STMicro STM32F411E-Discovery board" - depends on ARCH_CHIP_STM32F411VE - select ARCH_HAVE_LEDS - select ARCH_HAVE_BUTTONS - select ARCH_HAVE_IRQBUTTONS - ---help--- - This is a minimal configuration that supports low-level test of the - STMicro STM32F411E-Discovery Board. - config ARCH_BOARD_STM32L_DISCOVERY bool "STMicro STM32L-Discovery board" depends on ARCH_CHIP_STM32L152RB @@ -1422,10 +1422,10 @@ config ARCH_BOARD default "stm3240g-eval" if ARCH_BOARD_STM3240G_EVAL default "stm32f3discovery" if ARCH_BOARD_STM32F3_DISCOVERY default "stm32f4discovery" if ARCH_BOARD_STM32F4_DISCOVERY + default "stm32f411e-disco" if ARCH_BOARD_STM32F411E_DISCO default "stm32f429i-disco" if ARCH_BOARD_STM32F429I_DISCO default "stm32f746g-disco" if ARCH_BOARD_STM32F746G_DISCO default "stm32l476vg-disco" if ARCH_BOARD_STM32L476VG_DISCO - default "stm32f411e-disco" if ARCH_BOARD_STM32F411E_DISCO default "stm32ldiscovery" if ARCH_BOARD_STM32L_DISCOVERY default "stm32vldiscovery" if ARCH_BOARD_STM32VL_DISCOVERY default "mikroe-stm32f4" if ARCH_BOARD_MIKROE_STM32F4 @@ -1790,6 +1790,9 @@ endif if ARCH_BOARD_STM32F4_DISCOVERY source "configs/stm32f4discovery/Kconfig" endif +if ARCH_BOARD_STM32F411E_DISCO +source "configs/stm32f411e-disco/Kconfig" +endif if ARCH_BOARD_STM32F429I_DISCO source "configs/stm32f429i-disco/Kconfig" endif diff --git a/configs/README.txt b/configs/README.txt index f3a28e9a11..9b1c8486ba 100644 --- a/configs/README.txt +++ b/configs/README.txt @@ -643,6 +643,10 @@ configs/stm32f103-minimum configs/stm32f4discovery STMicro STM32F4-Discovery board based on the STMIcro STM32F407VGT6 MCU. +configs/stm32f411e-disco + This is a minimal configuration that supports low-level test of the + STMicro STM32F411E-Discovery Board. + configs/stm32f429i-disco STMicro STM32F429I-Discovery board based on the STMicro STM32F429ZIT6 MCU. diff --git a/configs/stm32f411e-disco/include/board.h b/configs/stm32f411e-disco/include/board.h index 62199e3732..46d2df971e 100644 --- a/configs/stm32f411e-disco/include/board.h +++ b/configs/stm32f411e-disco/include/board.h @@ -95,7 +95,6 @@ * PLL output clock frequency = VCO frequency / PLLP, PLLP = 2, 4, 6, or 8 * USB OTG FS clock frequency = VCO frequency / PLLQ, 2 <= PLLQ <= 15 * - * There is no config for 100 MHz and 48 MHz for usb, * so we would like to have SYSYCLK=96MHz and we must have the USB clock= 48MHz. * @@ -112,7 +111,6 @@ * USB OTG FS and SDIO Clock * = PLL_VCO / PLLQ * = 384,000,000 / 8 = 48,000,000 - * */ #define STM32_PLLCFG_PLLM RCC_PLLCFG_PLLM(4) diff --git a/configs/stm32f411e-disco/nsh/defconfig b/configs/stm32f411e-disco/nsh/defconfig index 854c1bf39f..31f933afc7 100644 --- a/configs/stm32f411e-disco/nsh/defconfig +++ b/configs/stm32f411e-disco/nsh/defconfig @@ -16,7 +16,7 @@ CONFIG_HOST_LINUX=y # # Build Configuration # -CONFIG_APPS_DIR="../apps" +# CONFIG_APPS_DIR="../apps" CONFIG_BUILD_FLAT=y # CONFIG_BUILD_2PASS is not set diff --git a/configs/stm32f411e-disco/nsh/setenv.sh b/configs/stm32f411e-disco/nsh/setenv.sh index ea002182e6..add9de147f 100755 --- a/configs/stm32f411e-disco/nsh/setenv.sh +++ b/configs/stm32f411e-disco/nsh/setenv.sh @@ -51,9 +51,13 @@ fi # toolchain under windows. You will also have to edit this if you install # the CodeSourcery toolchain in any other location #export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/CodeSourcery/Sourcery G++ Lite/bin" -export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_EABI/bin" +#export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_EABI/bin" #export TOOLCHAIN_BIN="/cygdrive/c/Users/MyName/MentorGraphics/Sourcery_CodeBench_Lite_for_ARM_EABI/bin" +# This is the location where I installed the ARM "GNU Tools for ARM Embedded Processors" +# You can this free toolchain here https://launchpad.net/gcc-arm-embedded +export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/GNU Tools ARM Embedded/4.9 2015q2/bin" + # This the Cygwin path to the location where I build the buildroot # toolchain. #export TOOLCHAIN_BIN="${WD}/../buildroot/build_arm_nofpu/staging_dir/bin" diff --git a/configs/stm32f411e-disco/scripts/f411ve.ld b/configs/stm32f411e-disco/scripts/f411ve.ld index 9a1e4b8dbe..ea38ac3c27 100644 --- a/configs/stm32f411e-disco/scripts/f411ve.ld +++ b/configs/stm32f411e-disco/scripts/f411ve.ld @@ -43,8 +43,8 @@ MEMORY { - flash (rx) : ORIGIN = 0x08000000, LENGTH = 512K - sram (rwx) : ORIGIN = 0x20000000, LENGTH = 128K + flash (rx) : ORIGIN = 0x08000000, LENGTH = 512K + sram (rwx) : ORIGIN = 0x20000000, LENGTH = 128K } OUTPUT_ARCH(arm) @@ -104,6 +104,7 @@ SECTIONS } > sram /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } diff --git a/configs/stm32f411e-disco/src/stm32_appinit.c b/configs/stm32f411e-disco/src/stm32_appinit.c index 1bd5079871..9f35fd24f8 100644 --- a/configs/stm32f411e-disco/src/stm32_appinit.c +++ b/configs/stm32f411e-disco/src/stm32_appinit.c @@ -53,18 +53,6 @@ #include "stm32f411e-disco.h" -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ @@ -79,9 +67,9 @@ int board_app_initialize(void) { +#ifdef CONFIG_SCHED_INSTRUMENTATION /* Configure CPU load estimation */ -#ifdef CONFIG_SCHED_INSTRUMENTATION cpuload_initialize_once(); #endif diff --git a/configs/stm32f411e-disco/src/stm32_boot.c b/configs/stm32f411e-disco/src/stm32_boot.c index 593f0ad242..5164e8837e 100644 --- a/configs/stm32f411e-disco/src/stm32_boot.c +++ b/configs/stm32f411e-disco/src/stm32_boot.c @@ -50,14 +50,6 @@ #include "up_arch.h" #include "stm32f411e-disco.h" -/************************************************************************************ - * Pre-processor Definitions - ************************************************************************************/ - -/************************************************************************************ - * Private Data - ************************************************************************************/ - /************************************************************************************ * Public Functions ************************************************************************************/ @@ -74,26 +66,26 @@ void stm32_boardinitialize(void) { +#ifdef CONFIG_ARCH_LEDS /* Configure on-board LEDs if LED support has been selected. */ -#ifdef CONFIG_ARCH_LEDS board_autoled_initialize(); #endif +#if defined(CONFIG_STM32_SPI1) || defined(CONFIG_STM32_SPI2) || defined(CONFIG_STM32_SPI3) /* Configure SPI chip selects if 1) SP2 is not disabled, and 2) the weak function * stm32_spidev_initialize() has been brought into the link. */ -#if defined(CONFIG_STM32_SPI1) || defined(CONFIG_STM32_SPI2) || defined(CONFIG_STM32_SPI3) stm32_spidev_initialize(); #endif +#if defined(CONFIG_USBDEV) && defined(CONFIG_STM32_USB) /* Initialize USB is 1) USBDEV is selected, 2) the USB controller is not * disabled, and 3) the weak function stm32_usbinitialize() has been brought * into the build. */ -#if defined(CONFIG_USBDEV) && defined(CONFIG_STM32_USB) stm32_usbinitialize(); #endif } @@ -114,12 +106,12 @@ void stm32_boardinitialize(void) #ifdef CONFIG_BOARD_INITIALIZE void board_initialize(void) { +#if defined(CONFIG_NSH_LIBRARY) && !defined(CONFIG_LIB_BOARDCTL) /* Perform NSH initialization here instead of from the NSH. This * alternative NSH initialization is necessary when NSH is ran in user-space * but the initialization function must run in kernel space. */ -#if defined(CONFIG_NSH_LIBRARY) && !defined(CONFIG_LIB_BOARDCTL) board_app_initialize(); #endif diff --git a/configs/stm32f411e-disco/src/stm32f411e-disco.h b/configs/stm32f411e-disco/src/stm32f411e-disco.h index 1c7f8d3efd..5425f291bd 100644 --- a/configs/stm32f411e-disco/src/stm32f411e-disco.h +++ b/configs/stm32f411e-disco/src/stm32f411e-disco.h @@ -122,16 +122,4 @@ void stm32_spidev_initialize(void); void stm32_usbinitialize(void); -/************************************************************************************ - * Name: board_adc_initialize - * - * Description: - * Initialize and register the ADC driver(s) - * - ************************************************************************************/ - -#ifdef CONFIG_ADC -int board_adc_initialize(void); -#endif - #endif /* __CONFIGS_STM32F411E_DISCO_SRC_STM32F411E_DISCO_H */ -- GitLab From a75c48c183e2ba3970108facdaf3a0e9fc6d57cf Mon Sep 17 00:00:00 2001 From: Steve Date: Sat, 21 May 2016 17:09:50 -0600 Subject: [PATCH 216/307] =?UTF-8?q?Fix=20for=20a=20minor=20typo=20that=20I?= =?UTF-8?q?=20introduced=20somewhere=20along=20the=20way=20during=20my=20t?= =?UTF-8?q?esting.=20=20This=20makes=20the=20bridge=20code=20actually=20co?= =?UTF-8?q?mpile=E2=80=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- arch/sim/src/up_tapdev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/sim/src/up_tapdev.c b/arch/sim/src/up_tapdev.c index c3ed52e791..ce18dee054 100644 --- a/arch/sim/src/up_tapdev.c +++ b/arch/sim/src/up_tapdev.c @@ -229,7 +229,7 @@ void tapdev_init(void) if (ret < 0) { syslog(LOG_ERR, "TAPDEV: ioctl failed (can't add interface %s to bridge %s): %d\n", - devname, CONFIG_SIM_NET_BRIDGE_DEVICE, -ret); + gdevname, CONFIG_SIM_NET_BRIDGE_DEVICE, -ret); } close(sockfd); -- GitLab From 80d0b2736e4b37659b3867cbd2c61ea858a570d2 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 22 May 2016 15:01:49 -0600 Subject: [PATCH 217/307] Reorder some logic: (1) set initial CPU IDLE task regsters AFTER allocating stack, (2) invalidate cache in CPU start-up BEFORE handling first interrupt. --- arch/arm/src/armv7-a/arm_assert.c | 8 +++++- arch/arm/src/armv7-a/arm_cpustart.c | 41 ++++++++++++++++++++++++++--- arch/arm/src/imx6/imx_cpuboot.c | 5 ++++ sched/init/os_smpstart.c | 8 ++++++ 4 files changed, 58 insertions(+), 4 deletions(-) diff --git a/arch/arm/src/armv7-a/arm_assert.c b/arch/arm/src/armv7-a/arm_assert.c index 00c730919c..ab3bd4c908 100644 --- a/arch/arm/src/armv7-a/arm_assert.c +++ b/arch/arm/src/armv7-a/arm_assert.c @@ -334,7 +334,13 @@ static void up_dumpstate(void) } #endif - /* Then dump the registers (if available) */ +#ifdef CONFIG_SMP + /* Show the CPU number */ + + lldbg("CPU%d:\n", up_cpu_index()); +#endif + + /* Then dump the CPU registers (if available) */ up_registerdump(); diff --git a/arch/arm/src/armv7-a/arm_cpustart.c b/arch/arm/src/armv7-a/arm_cpustart.c index 00addb818d..1ec95da855 100644 --- a/arch/arm/src/armv7-a/arm_cpustart.c +++ b/arch/arm/src/armv7-a/arm_cpustart.c @@ -51,6 +51,37 @@ #ifdef CONFIG_SMP +/**************************************************************************** + * Private Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: arm_registerdump + ****************************************************************************/ + +#if 0 /* Was useful in solving some startup problems */ +static inline void arm_registerdump(FAR struct tcb_s *tcb) +{ + int regndx; + + lldbg("CPU%d:\n", up_cpu_index()); + + /* Dump the startup registers */ + + for (regndx = REG_R0; regndx <= REG_R15; regndx += 8) + { + uint32_t *ptr = (uint32_t *)&tcb->xcp.regs[regndx]; + lldbg("R%d: %08x %08x %08x %08x %08x %08x %08x %08x\n", + regndx, ptr[0], ptr[1], ptr[2], ptr[3], + ptr[4], ptr[5], ptr[6], ptr[7]); + } + + lldbg("CPSR: %08x\n", tcb->xcp.regs[REG_CPSR]); +} +#else +# define arm_registerdump(tcb) +#endif + /**************************************************************************** * Public Functions ****************************************************************************/ @@ -75,15 +106,17 @@ int arm_start_handler(int irq, FAR void *context) { FAR struct tcb_s *tcb; - /* Invalidate CPUn L1 so that is will be reloaded from coherent L2. */ - - cp15_invalidate_dcache_all(); + sllvdbg("CPU%d Started\n", up_cpu_index()); /* Reset scheduler parameters */ tcb = this_task(); sched_resume_scheduler(tcb); + /* Dump registers so that we can see what is going to happen on return */ + + arm_registerdump(tcb); + /* Then switch contexts. This instantiates the exception context of the * tcb at the head of the assigned task list. In this case, this should * be the CPUs NULL task. @@ -122,6 +155,8 @@ int arm_start_handler(int irq, FAR void *context) int up_cpu_start(int cpu) { + sllvdbg("Starting CPU%d\n", cpu); + DEBUGASSERT(cpu >= 0 && cpu < CONFIG_SMP_NCPUS && cpu != this_cpu()); /* Make the content of CPU0 L1 cache has been written to coherent L2 */ diff --git a/arch/arm/src/imx6/imx_cpuboot.c b/arch/arm/src/imx6/imx_cpuboot.c index 5aca8d33bb..2c3c618861 100644 --- a/arch/arm/src/imx6/imx_cpuboot.c +++ b/arch/arm/src/imx6/imx_cpuboot.c @@ -53,6 +53,7 @@ #include "smp.h" #include "fpu.h" #include "gic.h" +#include "cp15_cacheops.h" #ifdef CONFIG_SMP @@ -296,6 +297,10 @@ void arm_cpu_boot(int cpu) (void)up_irq_enable(); #endif + /* Invalidate CPUn L1 so that is will be reloaded from coherent L2. */ + + cp15_invalidate_dcache_all(); + /* The next thing that we expect to happen is for logic running on CPU0 * to call up_cpu_start() which generate an SGI and a context switch to * the configured NuttX IDLE task. diff --git a/sched/init/os_smpstart.c b/sched/init/os_smpstart.c index 5ed82fb878..da7852317c 100644 --- a/sched/init/os_smpstart.c +++ b/sched/init/os_smpstart.c @@ -210,6 +210,14 @@ int os_smp_start(void) sdbg("ERROR: Failed to allocate stack for CPU%d\n", cpu); return ret; } + + /* Reinitialize the processor-specific portion of the TCB. This is + * the second time this has been called for this CPU, but the stack + * was not yet initialized on the first call so we need to do it + * again. + */ + + up_initial_state(tcb); } /* Then start all of the other CPUs after we have completed the memory -- GitLab From 5e5b6d677d5bdccc0547c8ab4d9de54a42448c38 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 22 May 2016 15:05:41 -0600 Subject: [PATCH 218/307] Update README and ChangeLog --- ChangeLog | 4 ++++ configs/sabre-6quad/README.txt | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/ChangeLog b/ChangeLog index 91871e15aa..93a6332570 100755 --- a/ChangeLog +++ b/ChangeLog @@ -11750,3 +11750,7 @@ the watchdog driver by calling the appropriate, MCU-specific driver configuration function from your board initialization logic (2016-05-18). + * i.MX6 Sabre-6Quad: Basic SMP NSH configuration is now working. But + this is probably only because the SMP NSH case does not stress the + logic. There are know outstanding SMP issues as noted in the + Sabre-6Quad README.txt file (2016-05-22). diff --git a/configs/sabre-6quad/README.txt b/configs/sabre-6quad/README.txt index 6999763c0a..5f691b3872 100644 --- a/configs/sabre-6quad/README.txt +++ b/configs/sabre-6quad/README.txt @@ -71,6 +71,10 @@ When more than one CPU is configured, then there are certain failures that appear to be stack corruption problem. See the open issues below under SMP. +2016-05-22: In a simple NSH case, SMP does not seem to be working. But there +are known SMP open issues so I assume if the tasking were stressed more there +would be additional failures. See the open issues below under SMP. + Platform Features ================= -- GitLab From c7979ad49c35b2a1c1612238f2970022564071e0 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 22 May 2016 15:17:03 -0600 Subject: [PATCH 219/307] Update README and ChangeLog --- ChangeLog | 9 +++++++++ configs/sabre-6quad/README.txt | 2 ++ 2 files changed, 11 insertions(+) diff --git a/ChangeLog b/ChangeLog index 93a6332570..1e6adea239 100755 --- a/ChangeLog +++ b/ChangeLog @@ -11750,6 +11750,15 @@ the watchdog driver by calling the appropriate, MCU-specific driver configuration function from your board initialization logic (2016-05-18). + * arch/srm/src/stm32l4: Add CAN support for STM32L4. From Sebastien + Lorquet (2016-05-19). + * arch/arm/src/samv7: Adds a JTAG config and ERASE config to Kconfig to + set the CCFG_SYSIO SYSIO Pins. From Davide Sidrane (2016-05-19). + * arch/sim/src: Enhance networking support for the simulation under Linux. + Includes updated support for Linux TUN/TAP, and the addition of support + for Linux bridge devices. From Steve (2016-05-20). + * configs/stm32f411e-disco: Add basic configuration for stm32f411e-disco + board with STM32F411VE chip. From Konstantin Berezenko (2016-05-20). * i.MX6 Sabre-6Quad: Basic SMP NSH configuration is now working. But this is probably only because the SMP NSH case does not stress the logic. There are know outstanding SMP issues as noted in the diff --git a/configs/sabre-6quad/README.txt b/configs/sabre-6quad/README.txt index 5f691b3872..58d507c5df 100644 --- a/configs/sabre-6quad/README.txt +++ b/configs/sabre-6quad/README.txt @@ -512,6 +512,8 @@ Open Issues: Waiting on a cached copy of the spinlock may result in a hang or a failure to wait. +5. Do spinlocks need to go into a special "strongly ordered" memory region? + Configurations ============== -- GitLab From 34ce000c502e6036d36a9373b9d15c32758725ca Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 22 May 2016 16:17:10 -0600 Subject: [PATCH 220/307] Sabre-6quad: Add an SMP configuration; Enable procfs in both configurations --- configs/sabre-6quad/README.txt | 59 ++ configs/sabre-6quad/nsh/defconfig | 19 +- configs/sabre-6quad/nsh/setenv.sh | 2 +- configs/sabre-6quad/smp/Make.defs | 134 +++++ configs/sabre-6quad/smp/defconfig | 883 ++++++++++++++++++++++++++++++ configs/sabre-6quad/smp/setenv.sh | 77 +++ 6 files changed, 1171 insertions(+), 3 deletions(-) create mode 100644 configs/sabre-6quad/smp/Make.defs create mode 100644 configs/sabre-6quad/smp/defconfig create mode 100644 configs/sabre-6quad/smp/setenv.sh diff --git a/configs/sabre-6quad/README.txt b/configs/sabre-6quad/README.txt index 58d507c5df..382cd6f513 100644 --- a/configs/sabre-6quad/README.txt +++ b/configs/sabre-6quad/README.txt @@ -75,6 +75,52 @@ SMP. are known SMP open issues so I assume if the tasking were stressed more there would be additional failures. See the open issues below under SMP. +An smp configuration was added. This is not quite the same as the configuration that I used for testing. I enabled DEBUG output, ran with only 2 CPUS, and disabled the RAMLOG: + + +CONFIG_DEBUG=y + +CONFIG_DEBUG_VERBOSE=y + +CONFIG_DEBUG_SCHED=y + +CONFIG_DEBUG_SYMBOLS=y + + -CONFIG_DEBUG_FULLOPT=y + +CONFIG_DEBUG_NOOPT=y + + -CONFIG_SMP_NCPUS=4 + +CONFIG_SMP_NCPUS=2 + + -CONFIG_RAMLOG=y + -CONFIG_RAMLOG_SYSLOG=y + -CONFIG_RAMLOG_BUFSIZE=16384 + -CONFIG_RAMLOG_NONBLOCKING=y + -CONFIG_RAMLOG_NPOLLWAITERS=4 + -CONFIG_SYSLOG=y + +I would also disable debug output from CPU0 so that I could better see the debug output from CPU1: + + $ diff -u libc/syslog/lib_lowsyslog.c libc/syslog/lib_lowsyslog.c.SAVE + --- libc/syslog/lib_lowsyslog.c 2016-05-22 14:56:35.130096500 -0600 + +++ libc/syslog/lib_lowsyslog.c.SAVE 2016-05-20 13:36:22.588330100 -0600 + @@ -126,7 +126,0 @@ + { + va_list ap; + int ret; + +if (up_cpu_index() == 0) return 17; // REMOVE ME + + /* Let lowvsyslog do the work */ + + va_start(ap, fmt); + + $ diff -u libc/syslog/lib_syslog.c libc/syslog/lib_syslog.c.SAVE + --- libc/syslog/lib_syslog.c 2016-05-22 14:56:35.156098100 -0600 + +++ libc/syslog/lib_syslog.c.SAVE 2016-05-20 13:36:15.331284000 -0600 + @@ -192,6 +192,7 @@ + { + va_list ap; + int ret; + +if (up_cpu_index() == 0) return 17; // REMOVE ME + + /* Let vsyslog do the work */ + Platform Features ================= @@ -604,3 +650,16 @@ Configuration sub-directories File Systems: CONFIG_SYSLOG Device Drivers: CONFIG_RAMLOG + + smp + --- + This is a configuration of testing the SMP configuration. It is + essentially equivalent to the SMP configuration except has SMP enabled. + + NOTES: + + 1. See the notest for the nsh configuration. Since this configuration + is essentially the same all of those comments apply. + + 2. SMP is not fully functional. See the STATUS and SMP sections above + for detailed SMP-related issues. diff --git a/configs/sabre-6quad/nsh/defconfig b/configs/sabre-6quad/nsh/defconfig index d5726e1d2f..a1e68fea0c 100644 --- a/configs/sabre-6quad/nsh/defconfig +++ b/configs/sabre-6quad/nsh/defconfig @@ -121,6 +121,8 @@ CONFIG_ARCH_CORTEXA9=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-a" CONFIG_ARCH_CHIP="imx6" +# CONFIG_ARM_TOOLCHAIN_IAR is not set +# CONFIG_ARM_TOOLCHAIN_GNU is not set CONFIG_ARCH_HAVE_FPU=y # CONFIG_ARCH_HAVE_DPFPU is not set CONFIG_ARCH_FPU=y @@ -517,7 +519,7 @@ CONFIG_RAMLOG_NPOLLWAITERS=4 # CONFIG_DISABLE_MOUNTPOINT is not set # CONFIG_FS_AUTOMOUNTER is not set # CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set -# CONFIG_FS_READABLE is not set +CONFIG_FS_READABLE=y # CONFIG_FS_WRITABLE is not set # CONFIG_FS_NAMED_SEMAPHORES is not set CONFIG_FS_MQUEUE_MPATH="/var/mqueue" @@ -528,7 +530,15 @@ CONFIG_FS_MQUEUE_MPATH="/var/mqueue" # CONFIG_FS_TMPFS is not set # CONFIG_FS_SMARTFS is not set # CONFIG_FS_BINFS is not set -# CONFIG_FS_PROCFS is not set +CONFIG_FS_PROCFS=y +# CONFIG_FS_PROCFS_REGISTER is not set + +# +# Exclude individual procfs entries +# +# CONFIG_FS_PROCFS_EXCLUDE_PROCESS is not set +# CONFIG_FS_PROCFS_EXCLUDE_UPTIME is not set +# CONFIG_FS_PROCFS_EXCLUDE_MOUNTS is not set # CONFIG_FS_UNIONFS is not set # @@ -607,6 +617,7 @@ CONFIG_LIB_SENDFILE_BUFSIZE=512 CONFIG_ARCH_HAVE_TLS=y # CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set +# CONFIG_NETDB_HOSTFILE is not set # # Non-standard Library Support @@ -701,6 +712,7 @@ CONFIG_EXAMPLES_NSH_CXXINITIALIZE=y # File System Utilities # # CONFIG_FSUTILS_INIFILE is not set +# CONFIG_FSUTILS_PASSWD is not set # # GPS Utilities @@ -716,6 +728,7 @@ CONFIG_EXAMPLES_NSH_CXXINITIALIZE=y # # Interpreters # +# CONFIG_INTERPRETERS_BAS is not set # CONFIG_INTERPRETERS_FICL is not set # CONFIG_INTERPRETERS_PCODE is not set # CONFIG_INTERPRETERS_MICROPYTHON is not set @@ -730,6 +743,7 @@ CONFIG_EXAMPLES_NSH_CXXINITIALIZE=y # # CONFIG_NETUTILS_CHAT is not set # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set @@ -812,6 +826,7 @@ CONFIG_NSH_DISABLE_LOSMART=y # CONFIG_NSH_CMDOPT_DF_H is not set CONFIG_NSH_CODECS_BUFSIZE=128 # CONFIG_NSH_CMDOPT_HEXDUMP is not set +CONFIG_NSH_PROC_MOUNTPOINT="/proc" CONFIG_NSH_FILEIOSIZE=512 # diff --git a/configs/sabre-6quad/nsh/setenv.sh b/configs/sabre-6quad/nsh/setenv.sh index cbdfc139bc..e6eae01797 100755 --- a/configs/sabre-6quad/nsh/setenv.sh +++ b/configs/sabre-6quad/nsh/setenv.sh @@ -1,5 +1,5 @@ #!/bin/bash -# configs/sabre-6quad/nsh/Make.defs +# configs/sabre-6quad/nsh/setenv.sh # # Copyright (C) 2016 Gregory Nutt. All rights reserved. # Author: Gregory Nutt diff --git a/configs/sabre-6quad/smp/Make.defs b/configs/sabre-6quad/smp/Make.defs new file mode 100644 index 0000000000..b5ba0e4111 --- /dev/null +++ b/configs/sabre-6quad/smp/Make.defs @@ -0,0 +1,134 @@ +############################################################################ +# configs/sabre-6quad/smp/Make.defs +# +# Copyright (C) 2016 Gregory Nutt. All rights reserved. +# Author: Gregory Nutt +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# 3. Neither the name NuttX nor the names of its contributors may be +# used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +############################################################################ + +include ${TOPDIR}/.config +include ${TOPDIR}/tools/Config.mk +include ${TOPDIR}$(DELIM)arch$(DELIM)arm$(DELIM)src$(DELIM)armv7-a$(DELIM)Toolchain.defs + +LDSCRIPT = dramboot.ld + +ifeq ($(WINTOOL),y) + # Windows-native toolchains + ARCHINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)$(DELIM)include}" + ARCHXXINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)$(DELIM)include}" -isystem "${shell cygpath -w $(TOPDIR)$(DELIM)include$(DELIM)cxx}" + ARCHSCRIPT = -T "${shell cygpath -w $(TOPDIR)$(DELIM)configs$(DELIM)$(CONFIG_ARCH_BOARD)$(DELIM)scripts$(DELIM)$(LDSCRIPT)}" +else + # Linux/Cygwin-native toolchain + ARCHINCLUDES = -I. -isystem $(TOPDIR)$(DELIM)include + ARCHXXINCLUDES = -I. -isystem $(TOPDIR)$(DELIM)include -isystem $(TOPDIR)$(DELIM)include$(DELIM)cxx + ARCHSCRIPT = -T$(TOPDIR)$(DELIM)configs$(DELIM)$(CONFIG_ARCH_BOARD)$(DELIM)scripts$(DELIM)$(LDSCRIPT) +endif + +CC = $(CROSSDEV)gcc +CXX = $(CROSSDEV)g++ +CPP = $(CROSSDEV)gcc -E +LD = $(CROSSDEV)ld +AR = $(ARCROSSDEV)ar rcs +NM = $(ARCROSSDEV)nm +OBJCOPY = $(CROSSDEV)objcopy +OBJDUMP = $(CROSSDEV)objdump + +ifeq ($(CONFIG_DEBUG_SYMBOLS),y) + ARCHOPTIMIZATION = -g +endif + +ifneq ($(CONFIG_DEBUG_NOOPT),y) + ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing -fno-strength-reduce -fomit-frame-pointer +endif + +ARCHCPUFLAGS = -mcpu=cortex-a9 -mfpu=vfpv4-d16 +ARCHCFLAGS = -fno-builtin +ARCHCXXFLAGS = -fno-builtin -fno-exceptions -fno-rtti +ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef +ARCHWARNINGSXX = -Wall -Wshadow -Wundef +ARCHDEFINES = +ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10 + +CFLAGS = $(ARCHCFLAGS) $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe +CPICFLAGS = $(ARCHPICFLAGS) $(CFLAGS) +CXXFLAGS = $(ARCHCXXFLAGS) $(ARCHWARNINGSXX) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHXXINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe +CXXPICFLAGS = $(ARCHPICFLAGS) $(CXXFLAGS) +CPPFLAGS = $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) +AFLAGS = $(CFLAGS) -D__ASSEMBLY__ + +# NXFLAT module definitions + +NXFLATLDFLAGS1 = -r -d -warn-common +NXFLATLDFLAGS2 = $(NXFLATLDFLAGS1) -T$(TOPDIR)$(DELIM)binfmt$(DELIM)libnxflat$(DELIM)gnu-nxflat-pcrel.ld -no-check-sections +LDNXFLATFLAGS = -e main -s 2048 + +# ELF module definitions + +CELFFLAGS = $(CFLAGS) -mlong-calls # --target1-abs +CXXELFFLAGS = $(CXXFLAGS) -mlong-calls # --target1-abs + +LDELFFLAGS = -r -e main +ifeq ($(WINTOOL),y) + LDELFFLAGS += -T "${shell cygpath -w $(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/gnu-elf.ld}" +else + LDELFFLAGS += -T $(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/gnu-elf.ld +endif + +ASMEXT = .S +OBJEXT = .o +LIBEXT = .a +EXEEXT = + +ifneq ($(CROSSDEV),arm-nuttx-elf-) + LDFLAGS += -nostartfiles -nodefaultlibs +endif +ifeq ($(CONFIG_DEBUG_SYMBOLS),y) + LDFLAGS += -g +endif + +HOSTCC = gcc +HOSTINCLUDES = -I. +HOSTCFLAGS = -Wall -Wstrict-prototypes -Wshadow -Wundef -g -pipe +HOSTLDFLAGS = +ifeq ($(CONFIG_HOST_WINDOWS),y) + HOSTEXEEXT = .exe +else + HOSTEXEEXT = +endif + +ifeq ($(WINTOOL),y) + # Windows-native host tools + DIRLINK = $(TOPDIR)$(DELIM)tools$(DELIM)copydir.sh + DIRUNLINK = $(TOPDIR)$(DELIM)tools$(DELIM)unlink.sh + MKDEP = $(TOPDIR)$(DELIM)tools$(DELIM)mkwindeps.sh +else + # Linux/Cygwin-native host tools + MKDEP = $(TOPDIR)$(DELIM)tools$(DELIM)mkdeps$(HOSTEXEEXT) +endif diff --git a/configs/sabre-6quad/smp/defconfig b/configs/sabre-6quad/smp/defconfig new file mode 100644 index 0000000000..81f1b94dbe --- /dev/null +++ b/configs/sabre-6quad/smp/defconfig @@ -0,0 +1,883 @@ +# +# Automatically generated file; DO NOT EDIT. +# Nuttx/ Configuration +# + +# +# Build Setup +# +CONFIG_EXPERIMENTAL=y +# CONFIG_DEFAULT_SMALL is not set +# CONFIG_HOST_LINUX is not set +# CONFIG_HOST_OSX is not set +CONFIG_HOST_WINDOWS=y +# CONFIG_HOST_OTHER is not set +# CONFIG_WINDOWS_NATIVE is not set +CONFIG_WINDOWS_CYGWIN=y +# CONFIG_WINDOWS_MSYS is not set +# CONFIG_WINDOWS_OTHER is not set + +# +# Build Configuration +# +# CONFIG_APPS_DIR="../apps" +CONFIG_BUILD_FLAT=y +# CONFIG_BUILD_2PASS is not set + +# +# Binary Output Formats +# +# CONFIG_RRLOAD_BINARY is not set +CONFIG_INTELHEX_BINARY=y +# CONFIG_MOTOROLA_SREC is not set +CONFIG_RAW_BINARY=y +# CONFIG_UBOOT_UIMAGE is not set + +# +# Customize Header Files +# +# CONFIG_ARCH_STDINT_H is not set +# CONFIG_ARCH_STDBOOL_H is not set +# CONFIG_ARCH_MATH_H is not set +# CONFIG_ARCH_FLOAT_H is not set +# CONFIG_ARCH_STDARG_H is not set +# CONFIG_ARCH_DEBUG_H is not set + +# +# Debug Options +# +# CONFIG_DEBUG is not set +# CONFIG_ARCH_HAVE_HEAPCHECK is not set +CONFIG_ARCH_HAVE_STACKCHECK=y +# CONFIG_STACK_COLORATION is not set +# CONFIG_DEBUG_SYMBOLS is not set +CONFIG_ARCH_HAVE_CUSTOMOPT=y +# CONFIG_DEBUG_NOOPT is not set +# CONFIG_DEBUG_CUSTOMOPT is not set +CONFIG_DEBUG_FULLOPT=y + +# +# System Type +# +CONFIG_ARCH_ARM=y +# CONFIG_ARCH_AVR is not set +# CONFIG_ARCH_HC is not set +# CONFIG_ARCH_MIPS is not set +# CONFIG_ARCH_RGMP is not set +# CONFIG_ARCH_SH is not set +# CONFIG_ARCH_SIM is not set +# CONFIG_ARCH_X86 is not set +# CONFIG_ARCH_Z16 is not set +# CONFIG_ARCH_Z80 is not set +CONFIG_ARCH="arm" + +# +# ARM Options +# +# CONFIG_ARCH_CHIP_A1X is not set +# CONFIG_ARCH_CHIP_C5471 is not set +# CONFIG_ARCH_CHIP_CALYPSO is not set +# CONFIG_ARCH_CHIP_DM320 is not set +# CONFIG_ARCH_CHIP_EFM32 is not set +# CONFIG_ARCH_CHIP_IMX1 is not set +CONFIG_ARCH_CHIP_IMX6=y +# CONFIG_ARCH_CHIP_KINETIS is not set +# CONFIG_ARCH_CHIP_KL is not set +# CONFIG_ARCH_CHIP_LM is not set +# CONFIG_ARCH_CHIP_TIVA is not set +# CONFIG_ARCH_CHIP_LPC11XX is not set +# CONFIG_ARCH_CHIP_LPC17XX is not set +# CONFIG_ARCH_CHIP_LPC214X is not set +# CONFIG_ARCH_CHIP_LPC2378 is not set +# CONFIG_ARCH_CHIP_LPC31XX is not set +# CONFIG_ARCH_CHIP_LPC43XX is not set +# CONFIG_ARCH_CHIP_NUC1XX is not set +# CONFIG_ARCH_CHIP_SAMA5 is not set +# CONFIG_ARCH_CHIP_SAMD is not set +# CONFIG_ARCH_CHIP_SAML is not set +# CONFIG_ARCH_CHIP_SAM34 is not set +# CONFIG_ARCH_CHIP_SAMV7 is not set +# CONFIG_ARCH_CHIP_STM32 is not set +# CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set +# CONFIG_ARCH_CHIP_STR71X is not set +# CONFIG_ARCH_CHIP_TMS570 is not set +# CONFIG_ARCH_CHIP_MOXART is not set +# CONFIG_ARCH_ARM7TDMI is not set +# CONFIG_ARCH_ARM926EJS is not set +# CONFIG_ARCH_ARM920T is not set +# CONFIG_ARCH_CORTEXM0 is not set +# CONFIG_ARCH_CORTEXM3 is not set +# CONFIG_ARCH_CORTEXM4 is not set +# CONFIG_ARCH_CORTEXM7 is not set +# CONFIG_ARCH_CORTEXA5 is not set +# CONFIG_ARCH_CORTEXA8 is not set +CONFIG_ARCH_CORTEXA9=y +# CONFIG_ARCH_CORTEXR4 is not set +# CONFIG_ARCH_CORTEXR4F is not set +# CONFIG_ARCH_CORTEXR5 is not set +# CONFIG_ARCH_CORTEX5F is not set +# CONFIG_ARCH_CORTEXR7 is not set +# CONFIG_ARCH_CORTEXR7F is not set +CONFIG_ARCH_FAMILY="armv7-a" +CONFIG_ARCH_CHIP="imx6" +# CONFIG_ARM_TOOLCHAIN_IAR is not set +# CONFIG_ARM_TOOLCHAIN_GNU is not set +CONFIG_ARCH_HAVE_FPU=y +# CONFIG_ARCH_HAVE_DPFPU is not set +CONFIG_ARCH_FPU=y +CONFIG_ARCH_HAVE_TRUSTZONE=y +CONFIG_ARCH_TRUSTZONE_SECURE=y +# CONFIG_ARCH_TRUSTZONE_NONSECURE is not set +# CONFIG_ARCH_TRUSTZONE_BOTH is not set +# CONFIG_ARM_HAVE_MPU_UNIFIED is not set +CONFIG_ARCH_HAVE_LOWVECTORS=y +CONFIG_ARCH_LOWVECTORS=y +# CONFIG_ARCH_ROMPGTABLE is not set + +# +# ARMv7-A Configuration Options +# +CONFIG_ARMV7A_HAVE_GICv2=y +CONFIG_ARMV7A_HAVE_GTM=y +CONFIG_ARMV7A_HAVE_PTM=y +CONFIG_ARMV7A_HAVE_L2CC=y +CONFIG_ARMV7A_HAVE_L2CC_PL310=y + +# +# L2 Cache Configuration +# +# CONFIG_ARMV7A_L2CC_PL310 is not set +# CONFIG_ARMV7A_TOOLCHAIN_BUILDROOT is not set +# CONFIG_ARMV7A_TOOLCHAIN_CODESOURCERYW is not set +# CONFIG_ARMV7A_TOOLCHAIN_DEVKITARM is not set +# CONFIG_ARMV7A_TOOLCHAIN_GNU_EABIL is not set +CONFIG_ARMV7A_TOOLCHAIN_GNU_EABIW=y +# CONFIG_ARMV7A_TOOLCHAIN_GNU_OABI is not set +# CONFIG_ARMV7A_DECODEFIQ is not set + +# +# iMX.6 Chip Selection +# +# CONFIG_ARCH_CHIP_IMX6_6SOLOLITE is not set +# CONFIG_ARCH_CHIP_IMX6_6SOLO is not set +# CONFIG_ARCH_CHIP_IMX6_6DUALLITE is not set +# CONFIG_ARCH_CHIP_IMX6_6DUAL is not set +CONFIG_ARCH_CHIP_IMX6_6QUAD=y +# CONFIG_IMX6_HAVE_HDCP is not set + +# +# iMX.6 Peripheral Selection +# +CONFIG_IMX6_UART1=y +# CONFIG_IMX6_UART2 is not set +# CONFIG_IMX6_UART3 is not set +# CONFIG_IMX6_UART4 is not set +# CONFIG_IMX6_UART5 is not set +# CONFIG_IMX6_SPI1 is not set +# CONFIG_IMX6_SPI2 is not set +CONFIG_IMX_DDR_SIZE=1073741824 +# CONFIG_IMX6_BOOT_OCRAM is not set +CONFIG_IMX6_BOOT_SDRAM=y +# CONFIG_IMX6_BOOT_NOR is not set +# CONFIG_IMX6_BOOT_SRAM is not set + +# +# Architecture Options +# +# CONFIG_ARCH_NOINTC is not set +# CONFIG_ARCH_VECNOTIRQ is not set +# CONFIG_ARCH_DMA is not set +# CONFIG_ARCH_HAVE_IRQPRIO is not set +# CONFIG_ARCH_L2CACHE is not set +# CONFIG_ARCH_HAVE_COHERENT_DCACHE is not set +CONFIG_ARCH_HAVE_ADDRENV=y +CONFIG_ARCH_NEED_ADDRENV_MAPPING=y +CONFIG_ARCH_HAVE_MULTICPU=y +CONFIG_ARCH_HAVE_VFORK=y +CONFIG_ARCH_HAVE_MMU=y +# CONFIG_ARCH_HAVE_MPU is not set +# CONFIG_ARCH_NAND_HWECC is not set +# CONFIG_ARCH_HAVE_EXTCLK is not set +# CONFIG_ARCH_HAVE_POWEROFF is not set +# CONFIG_ARCH_HAVE_RESET is not set +CONFIG_ARCH_USE_MMU=y +# CONFIG_ARCH_ADDRENV is not set +# CONFIG_PAGING is not set +CONFIG_ARCH_STACKDUMP=y +# CONFIG_ENDIAN_BIG is not set +# CONFIG_ARCH_IDLE_CUSTOM is not set +# CONFIG_ARCH_HAVE_RAMFUNCS is not set +# CONFIG_ARCH_HAVE_RAMVECTORS is not set + +# +# Board Settings +# +CONFIG_BOARD_LOOPSPERMSEC=99369 +# CONFIG_ARCH_CALIBRATION is not set + +# +# Interrupt options +# +CONFIG_ARCH_HAVE_INTERRUPTSTACK=y +CONFIG_ARCH_INTERRUPTSTACK=2048 +# CONFIG_ARCH_HAVE_HIPRI_INTERRUPT is not set + +# +# Boot options +# +# CONFIG_BOOT_RUNFROMEXTSRAM is not set +# CONFIG_BOOT_RUNFROMFLASH is not set +# CONFIG_BOOT_RUNFROMISRAM is not set +CONFIG_BOOT_RUNFROMSDRAM=y +# CONFIG_BOOT_COPYTORAM is not set + +# +# Boot Memory Configuration +# +CONFIG_RAM_START=0x10000000 +CONFIG_RAM_VSTART=0x10000000 +CONFIG_RAM_SIZE=1073741824 +CONFIG_ARCH_HAVE_SDRAM=y + +# +# Board Selection +# +CONFIG_ARCH_BOARD_SABRE_6QUAD=y +# CONFIG_ARCH_BOARD_CUSTOM is not set +CONFIG_ARCH_BOARD="sabre-6quad" + +# +# Common Board Options +# +CONFIG_ARCH_HAVE_LEDS=y +CONFIG_ARCH_LEDS=y +CONFIG_ARCH_HAVE_BUTTONS=y +CONFIG_ARCH_BUTTONS=y +CONFIG_ARCH_HAVE_IRQBUTTONS=y +CONFIG_ARCH_IRQBUTTONS=y +CONFIG_NSH_MMCSDMINOR=0 + +# +# Board-Specific Options +# +CONFIG_LIB_BOARDCTL=y +# CONFIG_BOARDCTL_UNIQUEID is not set +# CONFIG_BOARDCTL_TSCTEST is not set +# CONFIG_BOARDCTL_ADCTEST is not set +# CONFIG_BOARDCTL_PWMTEST is not set +# CONFIG_BOARDCTL_GRAPHICS is not set +# CONFIG_BOARDCTL_IOCTL is not set + +# +# RTOS Features +# +CONFIG_DISABLE_OS_API=y +# CONFIG_DISABLE_POSIX_TIMERS is not set +# CONFIG_DISABLE_PTHREAD is not set +# CONFIG_DISABLE_SIGNALS is not set +# CONFIG_DISABLE_MQUEUE is not set +# CONFIG_DISABLE_ENVIRON is not set + +# +# Clocks and Timers +# +CONFIG_USEC_PER_TICK=10000 +# CONFIG_SYSTEM_TIME64 is not set +# CONFIG_CLOCK_MONOTONIC is not set +# CONFIG_JULIAN_TIME is not set +CONFIG_START_YEAR=2016 +CONFIG_START_MONTH=3 +CONFIG_START_DAY=1 +CONFIG_MAX_WDOGPARMS=2 +CONFIG_PREALLOC_WDOGS=32 +CONFIG_WDOG_INTRESERVE=4 +CONFIG_PREALLOC_TIMERS=4 + +# +# Tasks and Scheduling +# +CONFIG_SPINLOCK=y +CONFIG_SMP=y +CONFIG_SMP_NCPUS=4 +CONFIG_SMP_IDLETHREAD_STACKSIZE=2048 +# CONFIG_INIT_NONE is not set +CONFIG_INIT_ENTRYPOINT=y +# CONFIG_INIT_FILEPATH is not set +CONFIG_USER_ENTRYPOINT="nsh_main" +CONFIG_RR_INTERVAL=200 +# CONFIG_SCHED_SPORADIC is not set +CONFIG_TASK_NAME_SIZE=31 +CONFIG_MAX_TASKS=16 +# CONFIG_SCHED_HAVE_PARENT is not set +CONFIG_SCHED_WAITPID=y + +# +# Pthread Options +# +# CONFIG_MUTEX_TYPES is not set +CONFIG_NPTHREAD_KEYS=4 + +# +# Performance Monitoring +# +# CONFIG_SCHED_CPULOAD is not set +# CONFIG_SCHED_INSTRUMENTATION is not set + +# +# Files and I/O +# +CONFIG_DEV_CONSOLE=y +# CONFIG_FDCLONE_DISABLE is not set +# CONFIG_FDCLONE_STDIO is not set +# CONFIG_SDCLONE_DISABLE is not set +CONFIG_NFILE_DESCRIPTORS=8 +CONFIG_NFILE_STREAMS=8 +CONFIG_NAME_MAX=32 +# CONFIG_PRIORITY_INHERITANCE is not set + +# +# RTOS hooks +# +# CONFIG_BOARD_INITIALIZE is not set +# CONFIG_SCHED_STARTHOOK is not set +# CONFIG_SCHED_ATEXIT is not set +# CONFIG_SCHED_ONEXIT is not set +# CONFIG_SIG_EVTHREAD is not set + +# +# Signal Numbers +# +CONFIG_SIG_SIGUSR1=1 +CONFIG_SIG_SIGUSR2=2 +CONFIG_SIG_SIGALARM=3 +CONFIG_SIG_SIGCONDTIMEDOUT=16 +CONFIG_SIG_SIGWORK=17 + +# +# POSIX Message Queue Options +# +CONFIG_PREALLOC_MQ_MSGS=4 +CONFIG_MQ_MAXMSGSIZE=32 +# CONFIG_MODULE is not set + +# +# Work queue support +# +CONFIG_SCHED_WORKQUEUE=y +CONFIG_SCHED_HPWORK=y +CONFIG_SCHED_HPWORKPRIORITY=192 +CONFIG_SCHED_HPWORKPERIOD=50000 +CONFIG_SCHED_HPWORKSTACKSIZE=2048 +# CONFIG_SCHED_LPWORK is not set + +# +# Stack and heap information +# +CONFIG_IDLETHREAD_STACKSIZE=1024 +CONFIG_USERMAIN_STACKSIZE=2048 +CONFIG_PTHREAD_STACK_MIN=256 +CONFIG_PTHREAD_STACK_DEFAULT=2048 +# CONFIG_LIB_SYSCALL is not set + +# +# Device Drivers +# +# CONFIG_DISABLE_POLL is not set +CONFIG_DEV_NULL=y +CONFIG_DEV_ZERO=y +# CONFIG_DEV_LOOP is not set + +# +# Buffering +# +# CONFIG_DRVR_WRITEBUFFER is not set +# CONFIG_DRVR_READAHEAD is not set +# CONFIG_RAMDISK is not set +# CONFIG_CAN is not set +# CONFIG_ARCH_HAVE_PWM_PULSECOUNT is not set +# CONFIG_ARCH_HAVE_PWM_MULTICHAN is not set +# CONFIG_PWM is not set +# CONFIG_ARCH_HAVE_I2CRESET is not set +# CONFIG_I2C is not set +# CONFIG_SPI is not set +# CONFIG_I2S is not set + +# +# Timer Driver Support +# +# CONFIG_TIMER is not set +# CONFIG_RTC is not set +# CONFIG_WATCHDOG is not set +# CONFIG_ANALOG is not set +# CONFIG_AUDIO_DEVICES is not set +# CONFIG_VIDEO_DEVICES is not set +# CONFIG_BCH is not set +# CONFIG_INPUT is not set +# CONFIG_IOEXPANDER is not set +# CONFIG_LCD is not set + +# +# LED Support +# +# CONFIG_USERLED is not set +# CONFIG_RGBLED is not set +# CONFIG_PCA9635PW is not set +# CONFIG_MMCSD is not set +# CONFIG_MODEM is not set +# CONFIG_MTD is not set +# CONFIG_EEPROM is not set +# CONFIG_PIPES is not set +# CONFIG_PM is not set +# CONFIG_POWER is not set +# CONFIG_SENSORS is not set +# CONFIG_SERCOMM_CONSOLE is not set +CONFIG_SERIAL=y +# CONFIG_DEV_LOWCONSOLE is not set +# CONFIG_16550_UART is not set +# CONFIG_ARCH_HAVE_UART is not set +# CONFIG_ARCH_HAVE_UART0 is not set +CONFIG_ARCH_HAVE_UART1=y +# CONFIG_ARCH_HAVE_UART2 is not set +# CONFIG_ARCH_HAVE_UART3 is not set +# CONFIG_ARCH_HAVE_UART4 is not set +# CONFIG_ARCH_HAVE_UART5 is not set +# CONFIG_ARCH_HAVE_UART6 is not set +# CONFIG_ARCH_HAVE_UART7 is not set +# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_ARCH_HAVE_SCI0 is not set +# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_ARCH_HAVE_USART0 is not set +# CONFIG_ARCH_HAVE_USART1 is not set +# CONFIG_ARCH_HAVE_USART2 is not set +# CONFIG_ARCH_HAVE_USART3 is not set +# CONFIG_ARCH_HAVE_USART4 is not set +# CONFIG_ARCH_HAVE_USART5 is not set +# CONFIG_ARCH_HAVE_USART6 is not set +# CONFIG_ARCH_HAVE_USART7 is not set +# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_ARCH_HAVE_OTHER_UART is not set + +# +# USART Configuration +# +CONFIG_MCU_SERIAL=y +CONFIG_STANDARD_SERIAL=y +CONFIG_SERIAL_NPOLLWAITERS=2 +# CONFIG_SERIAL_IFLOWCONTROL is not set +# CONFIG_SERIAL_OFLOWCONTROL is not set +# CONFIG_SERIAL_DMA is not set +# CONFIG_ARCH_HAVE_SERIAL_TERMIOS is not set +CONFIG_UART1_SERIAL_CONSOLE=y +# CONFIG_OTHER_SERIAL_CONSOLE is not set +# CONFIG_NO_SERIAL_CONSOLE is not set + +# +# UART1 Configuration +# +CONFIG_UART1_RXBUFSIZE=256 +CONFIG_UART1_TXBUFSIZE=256 +CONFIG_UART1_BAUD=115200 +CONFIG_UART1_BITS=8 +CONFIG_UART1_PARITY=0 +CONFIG_UART1_2STOP=0 +# CONFIG_UART1_IFLOWCONTROL is not set +# CONFIG_UART1_OFLOWCONTROL is not set +# CONFIG_UART1_DMA is not set +# CONFIG_USBDEV is not set +# CONFIG_USBHOST is not set +# CONFIG_DRIVERS_WIRELESS is not set + +# +# System Logging Device Options +# + +# +# System Logging +# +CONFIG_RAMLOG=y +CONFIG_RAMLOG_SYSLOG=y +# CONFIG_RAMLOG_CONSOLE is not set +CONFIG_RAMLOG_BUFSIZE=16384 +# CONFIG_RAMLOG_CRLF is not set +CONFIG_RAMLOG_NONBLOCKING=y +CONFIG_RAMLOG_NPOLLWAITERS=4 +# CONFIG_SYSLOG_CONSOLE is not set + +# +# Networking Support +# +# CONFIG_ARCH_HAVE_NET is not set +# CONFIG_ARCH_HAVE_PHY is not set +# CONFIG_NET is not set + +# +# Crypto API +# +# CONFIG_CRYPTO is not set + +# +# File Systems +# + +# +# File system configuration +# +# CONFIG_DISABLE_MOUNTPOINT is not set +# CONFIG_FS_AUTOMOUNTER is not set +# CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set +CONFIG_FS_READABLE=y +# CONFIG_FS_WRITABLE is not set +# CONFIG_FS_NAMED_SEMAPHORES is not set +CONFIG_FS_MQUEUE_MPATH="/var/mqueue" +# CONFIG_FS_RAMMAP is not set +# CONFIG_FS_FAT is not set +# CONFIG_FS_NXFFS is not set +# CONFIG_FS_ROMFS is not set +# CONFIG_FS_TMPFS is not set +# CONFIG_FS_SMARTFS is not set +# CONFIG_FS_BINFS is not set +CONFIG_FS_PROCFS=y +# CONFIG_FS_PROCFS_REGISTER is not set + +# +# Exclude individual procfs entries +# +# CONFIG_FS_PROCFS_EXCLUDE_PROCESS is not set +# CONFIG_FS_PROCFS_EXCLUDE_UPTIME is not set +# CONFIG_FS_PROCFS_EXCLUDE_MOUNTS is not set +# CONFIG_FS_UNIONFS is not set + +# +# System Logging +# +CONFIG_SYSLOG=y +# CONFIG_SYSLOG_TIMESTAMP is not set +# CONFIG_SYSLOG_CHAR is not set + +# +# Graphics Support +# +# CONFIG_NX is not set + +# +# Memory Management +# +# CONFIG_MM_SMALL is not set +CONFIG_MM_REGIONS=1 +# CONFIG_ARCH_HAVE_HEAP2 is not set +# CONFIG_GRAN is not set +# CONFIG_MM_PGALLOC is not set + +# +# Audio Support +# +# CONFIG_AUDIO is not set + +# +# Wireless Support +# +# CONFIG_WIRELESS is not set + +# +# Binary Loader +# +# CONFIG_BINFMT_DISABLE is not set +# CONFIG_BINFMT_EXEPATH is not set +# CONFIG_NXFLAT is not set +# CONFIG_ELF is not set +CONFIG_BUILTIN=y +# CONFIG_PIC is not set +CONFIG_SYMTAB_ORDEREDBYNAME=y + +# +# Library Routines +# + +# +# Standard C Library Options +# +CONFIG_STDIO_BUFFER_SIZE=64 +CONFIG_STDIO_LINEBUFFER=y +CONFIG_NUNGET_CHARS=2 +CONFIG_LIB_HOMEDIR="/" +# CONFIG_LIBM is not set +# CONFIG_NOPRINTF_FIELDWIDTH is not set +# CONFIG_LIBC_FLOATINGPOINT is not set +CONFIG_LIBC_LONG_LONG=y +# CONFIG_LIBC_IOCTL_VARIADIC is not set +CONFIG_LIB_RAND_ORDER=1 +# CONFIG_EOL_IS_CR is not set +# CONFIG_EOL_IS_LF is not set +# CONFIG_EOL_IS_BOTH_CRLF is not set +CONFIG_EOL_IS_EITHER_CRLF=y +# CONFIG_LIBC_EXECFUNCS is not set +CONFIG_POSIX_SPAWN_PROXY_STACKSIZE=1024 +CONFIG_TASK_SPAWN_DEFAULT_STACKSIZE=2048 +# CONFIG_LIBC_STRERROR is not set +# CONFIG_LIBC_PERROR_STDOUT is not set +CONFIG_ARCH_LOWPUTC=y +# CONFIG_LIBC_LOCALTIME is not set +# CONFIG_TIME_EXTENDED is not set +CONFIG_LIB_SENDFILE_BUFSIZE=512 +# CONFIG_ARCH_ROMGETC is not set +# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set +# CONFIG_LIBC_NETDB is not set +# CONFIG_NETDB_HOSTFILE is not set + +# +# Non-standard Library Support +# +# CONFIG_LIB_KBDCODEC is not set +# CONFIG_LIB_SLCDCODEC is not set + +# +# Basic CXX Support +# +# CONFIG_C99_BOOL8 is not set +CONFIG_HAVE_CXX=y +CONFIG_HAVE_CXXINITIALIZE=y +# CONFIG_CXX_NEWLONG is not set + +# +# uClibc++ Standard C++ Library +# +# CONFIG_UCLIBCXX is not set + +# +# Application Configuration +# + +# +# Built-In Applications +# +CONFIG_BUILTIN_PROXY_STACKSIZE=1024 + +# +# CAN Utilities +# + +# +# Examples +# +# CONFIG_EXAMPLES_BUTTONS is not set +# CONFIG_EXAMPLES_CHAT is not set +# CONFIG_EXAMPLES_CONFIGDATA is not set +# CONFIG_EXAMPLES_CPUHOG is not set +# CONFIG_EXAMPLES_CXXTEST is not set +# CONFIG_EXAMPLES_DHCPD is not set +# CONFIG_EXAMPLES_ELF is not set +# CONFIG_EXAMPLES_FTPC is not set +# CONFIG_EXAMPLES_FTPD is not set +# CONFIG_EXAMPLES_HELLO is not set +# CONFIG_EXAMPLES_HELLOXX is not set +# CONFIG_EXAMPLES_JSON is not set +# CONFIG_EXAMPLES_HIDKBD is not set +# CONFIG_EXAMPLES_KEYPADTEST is not set +# CONFIG_EXAMPLES_IGMP is not set +# CONFIG_EXAMPLES_MEDIA is not set +# CONFIG_EXAMPLES_MM is not set +# CONFIG_EXAMPLES_MODBUS is not set +# CONFIG_EXAMPLES_MOUNT is not set +# CONFIG_EXAMPLES_NRF24L01TERM is not set +CONFIG_EXAMPLES_NSH=y +CONFIG_EXAMPLES_NSH_CXXINITIALIZE=y +# CONFIG_EXAMPLES_NULL is not set +# CONFIG_EXAMPLES_NX is not set +# CONFIG_EXAMPLES_NXTERM is not set +# CONFIG_EXAMPLES_NXFFS is not set +# CONFIG_EXAMPLES_NXHELLO is not set +# CONFIG_EXAMPLES_NXIMAGE is not set +# CONFIG_EXAMPLES_NXLINES is not set +# CONFIG_EXAMPLES_NXTEXT is not set +# CONFIG_EXAMPLES_OSTEST is not set +# CONFIG_EXAMPLES_PCA9635 is not set +# CONFIG_EXAMPLES_PIPE is not set +# CONFIG_EXAMPLES_PPPD is not set +# CONFIG_EXAMPLES_POSIXSPAWN is not set +# CONFIG_EXAMPLES_RGBLED is not set +# CONFIG_EXAMPLES_RGMP is not set +# CONFIG_EXAMPLES_SENDMAIL is not set +# CONFIG_EXAMPLES_SERIALBLASTER is not set +# CONFIG_EXAMPLES_SERIALRX is not set +# CONFIG_EXAMPLES_SERLOOP is not set +# CONFIG_EXAMPLES_SLCD is not set +# CONFIG_EXAMPLES_SMART_TEST is not set +# CONFIG_EXAMPLES_SMART is not set +# CONFIG_EXAMPLES_SMP is not set +# CONFIG_EXAMPLES_TCPECHO is not set +# CONFIG_EXAMPLES_TELNETD is not set +# CONFIG_EXAMPLES_TIFF is not set +# CONFIG_EXAMPLES_TOUCHSCREEN is not set +# CONFIG_EXAMPLES_WEBSERVER is not set +# CONFIG_EXAMPLES_USBSERIAL is not set +# CONFIG_EXAMPLES_USBTERM is not set +# CONFIG_EXAMPLES_WATCHDOG is not set + +# +# File System Utilities +# +# CONFIG_FSUTILS_INIFILE is not set +# CONFIG_FSUTILS_PASSWD is not set + +# +# GPS Utilities +# +# CONFIG_GPSUTILS_MINMEA_LIB is not set + +# +# Graphics Support +# +# CONFIG_TIFF is not set +# CONFIG_GRAPHICS_TRAVELER is not set + +# +# Interpreters +# +# CONFIG_INTERPRETERS_BAS is not set +# CONFIG_INTERPRETERS_FICL is not set +# CONFIG_INTERPRETERS_PCODE is not set +# CONFIG_INTERPRETERS_MICROPYTHON is not set + +# +# FreeModBus +# +# CONFIG_MODBUS is not set + +# +# Network Utilities +# +# CONFIG_NETUTILS_CHAT is not set +# CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set +# CONFIG_NETUTILS_FTPC is not set +# CONFIG_NETUTILS_JSON is not set +# CONFIG_NETUTILS_SMTP is not set + +# +# NSH Library +# +CONFIG_NSH_LIBRARY=y +# CONFIG_NSH_MOTD is not set + +# +# Command Line Configuration +# +CONFIG_NSH_READLINE=y +# CONFIG_NSH_CLE is not set +CONFIG_NSH_LINELEN=80 +# CONFIG_NSH_DISABLE_SEMICOLON is not set +CONFIG_NSH_CMDPARMS=y +CONFIG_NSH_MAXARGUMENTS=6 +CONFIG_NSH_ARGCAT=y +CONFIG_NSH_NESTDEPTH=3 +# CONFIG_NSH_DISABLEBG is not set +CONFIG_NSH_BUILTIN_APPS=y + +# +# Disable Individual commands +# +# CONFIG_NSH_DISABLE_ADDROUTE is not set +# CONFIG_NSH_DISABLE_BASENAME is not set +# CONFIG_NSH_DISABLE_CAT is not set +# CONFIG_NSH_DISABLE_CD is not set +# CONFIG_NSH_DISABLE_CP is not set +# CONFIG_NSH_DISABLE_CMP is not set +# CONFIG_NSH_DISABLE_DATE is not set +# CONFIG_NSH_DISABLE_DD is not set +# CONFIG_NSH_DISABLE_DF is not set +# CONFIG_NSH_DISABLE_DELROUTE is not set +# CONFIG_NSH_DISABLE_DIRNAME is not set +# CONFIG_NSH_DISABLE_ECHO is not set +# CONFIG_NSH_DISABLE_EXEC is not set +# CONFIG_NSH_DISABLE_EXIT is not set +# CONFIG_NSH_DISABLE_FREE is not set +# CONFIG_NSH_DISABLE_GET is not set +# CONFIG_NSH_DISABLE_HELP is not set +# CONFIG_NSH_DISABLE_HEXDUMP is not set +# CONFIG_NSH_DISABLE_IFCONFIG is not set +# CONFIG_NSH_DISABLE_IFUPDOWN is not set +# CONFIG_NSH_DISABLE_KILL is not set +# CONFIG_NSH_DISABLE_LOSETUP is not set +CONFIG_NSH_DISABLE_LOSMART=y +# CONFIG_NSH_DISABLE_LS is not set +# CONFIG_NSH_DISABLE_MB is not set +# CONFIG_NSH_DISABLE_MKDIR is not set +# CONFIG_NSH_DISABLE_MKFIFO is not set +# CONFIG_NSH_DISABLE_MKRD is not set +# CONFIG_NSH_DISABLE_MH is not set +# CONFIG_NSH_DISABLE_MOUNT is not set +# CONFIG_NSH_DISABLE_MV is not set +# CONFIG_NSH_DISABLE_MW is not set +# CONFIG_NSH_DISABLE_PS is not set +# CONFIG_NSH_DISABLE_PUT is not set +# CONFIG_NSH_DISABLE_PWD is not set +# CONFIG_NSH_DISABLE_RM is not set +# CONFIG_NSH_DISABLE_RMDIR is not set +# CONFIG_NSH_DISABLE_SET is not set +# CONFIG_NSH_DISABLE_SH is not set +# CONFIG_NSH_DISABLE_SLEEP is not set +# CONFIG_NSH_DISABLE_TIME is not set +# CONFIG_NSH_DISABLE_TEST is not set +# CONFIG_NSH_DISABLE_UMOUNT is not set +# CONFIG_NSH_DISABLE_UNAME is not set +# CONFIG_NSH_DISABLE_UNSET is not set +# CONFIG_NSH_DISABLE_USLEEP is not set +# CONFIG_NSH_DISABLE_WGET is not set +# CONFIG_NSH_DISABLE_XD is not set + +# +# Configure Command Options +# +# CONFIG_NSH_CMDOPT_DF_H is not set +CONFIG_NSH_CODECS_BUFSIZE=128 +# CONFIG_NSH_CMDOPT_HEXDUMP is not set +CONFIG_NSH_PROC_MOUNTPOINT="/proc" +CONFIG_NSH_FILEIOSIZE=512 + +# +# Scripting Support +# +# CONFIG_NSH_DISABLESCRIPT is not set +# CONFIG_NSH_DISABLE_ITEF is not set +# CONFIG_NSH_DISABLE_LOOPS is not set + +# +# Console Configuration +# +CONFIG_NSH_CONSOLE=y +# CONFIG_NSH_ALTCONDEV is not set +CONFIG_NSH_ARCHINIT=y +# CONFIG_NSH_LOGIN is not set +# CONFIG_NSH_CONSOLE_LOGIN is not set + +# +# NxWidgets/NxWM +# + +# +# Platform-specific Support +# +# CONFIG_PLATFORM_CONFIGDATA is not set + +# +# System Libraries and NSH Add-Ons +# +# CONFIG_SYSTEM_FREE is not set +# CONFIG_SYSTEM_CLE is not set +# CONFIG_SYSTEM_CUTERM is not set +# CONFIG_SYSTEM_INSTALL is not set +# CONFIG_SYSTEM_HEX2BIN is not set +# CONFIG_SYSTEM_HEXED is not set +# CONFIG_SYSTEM_RAMTEST is not set +CONFIG_READLINE_HAVE_EXTMATCH=y +CONFIG_SYSTEM_READLINE=y +CONFIG_READLINE_ECHO=y +# CONFIG_READLINE_TABCOMPLETION is not set +# CONFIG_READLINE_CMD_HISTORY is not set +# CONFIG_SYSTEM_SUDOKU is not set +# CONFIG_SYSTEM_VI is not set +# CONFIG_SYSTEM_UBLOXMODEM is not set +# CONFIG_SYSTEM_ZMODEM is not set diff --git a/configs/sabre-6quad/smp/setenv.sh b/configs/sabre-6quad/smp/setenv.sh new file mode 100644 index 0000000000..1d0eacadd5 --- /dev/null +++ b/configs/sabre-6quad/smp/setenv.sh @@ -0,0 +1,77 @@ +#!/bin/bash +# configs/sabre-6quad/smp/setenv.sh +# +# Copyright (C) 2016 Gregory Nutt. All rights reserved. +# Author: Gregory Nutt +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# 3. Neither the name NuttX nor the names of its contributors may be +# used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + +if [ "$_" = "$0" ] ; then + echo "You must source this script, not run it!" 1>&2 + exit 1 +fi + +WD=`pwd` +if [ ! -x "setenv.sh" ]; then + echo "This script must be executed from the top-level NuttX build directory" + exit 1 +fi + +if [ -z "${PATH_ORIG}" ]; then + export PATH_ORIG="${PATH}" +fi + +# This is the Cygwin path to the location where I installed the Atmel GCC +# toolchain under Windows. You will also have to edit this if you install +# this toolchain in any other location +#export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/Atmel/Atmel Toolchain/ARM GCC/Native/4.7.3.99/arm-gnu-toolchain/bin" + +# This is the Cygwin path to the location where I installed the CodeSourcery +# toolchain under windows. You will also have to edit this if you install +# the CodeSourcery toolchain in any other location +#export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/CodeSourcery/Sourcery G++ Lite/bin" +#export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_EABI/bin" +# export TOOLCHAIN_BIN="/cygdrive/c/Users/MyName/MentorGraphics/Sourcery_CodeBench_Lite_for_ARM_EABI/bin" + +# This is the location where I installed the ARM "GNU Tools for ARM Embedded Processors" +# You can this free toolchain here https://launchpad.net/gcc-arm-embedded +export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/GNU Tools ARM Embedded/4.9 2015q2/bin" + +# This is the path to the location where I installed the devkitARM toolchain +# You can get this free toolchain from http://devkitpro.org/ or http://sourceforge.net/projects/devkitpro/ +#export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/devkitARM/bin" + +# This is the Cygwin path to the location where I build the buildroot +# toolchain. +# export TOOLCHAIN_BIN="${WD}/../buildroot/build_arm_nofpu/staging_dir/bin" + +# Add the path to the toolchain to the PATH varialble +export PATH="${TOOLCHAIN_BIN}:/sbin:/usr/sbin:${PATH_ORIG}" + +echo "PATH : ${PATH}" -- GitLab From 1bb9c1fa39d8d5cb306b4d4168cef570d038680c Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 23 May 2016 07:55:25 -0600 Subject: [PATCH 221/307] Update README --- configs/sabre-6quad/README.txt | 159 +++++++++++++++++---------------- 1 file changed, 81 insertions(+), 78 deletions(-) diff --git a/configs/sabre-6quad/README.txt b/configs/sabre-6quad/README.txt index 382cd6f513..016d4cc6df 100644 --- a/configs/sabre-6quad/README.txt +++ b/configs/sabre-6quad/README.txt @@ -20,106 +20,109 @@ Status ====== 2016-02-28: The i.MX6Q port is just beginning. A few files have been -populated with the port is a long way from being complete or even ready to -begin any kind of testing. + populated with the port is a long way from being complete or even ready to + begin any kind of testing. 2016-03-12: The i.MX6Q port is code complete including initial -implementation of logic needed for CONFIG_SMP=y . There is no clock -configuration logic. This is probably not an issue if we are loaded into -SDRAM by a bootloader (because we cannot change the clocking anyway in -that case). + implementation of logic needed for CONFIG_SMP=y . There is no clock + configuration logic. This is probably not an issue if we are loaded into + SDRAM by a bootloader (because we cannot change the clocking anyway in + that case). -There is a lot of testing that could be done but, unfortunately, I still -have no i.MX6 hardware to test on. + There is a lot of testing that could be done but, unfortunately, I still + have no i.MX6 hardware to test on. -In additional to the unexpected issues, I do expect to run into some -cache coherency issues when I get to testing an SMP configuration. + In additional to the unexpected issues, I do expect to run into some + cache coherency issues when I get to testing an SMP configuration. 2016-03-28: I now have a used MCIMX6Q-SDB which is similar to the target -configuration described below except that it does not have the 10.1" LVDS -display. Next step: Figure out how to run a copy of NuttX using U-Boot. + configuration described below except that it does not have the 10.1" LVDS + display. Next step: Figure out how to run a copy of NuttX using U-Boot. 2016-03-31: Most all of the boot of the NSH configuration seems to be -working. It gets to NSH and NSH appears to run normally. Non-interrupt -driver serial output to the VCOM console is working (llsyslog). However, -there does not appear to be any interrupt activity: No timer interrupts, -no interrupt driver serial console output (syslog, printf). + working. It gets to NSH and NSH appears to run normally. Non-interrupt + driver serial output to the VCOM console is working (llsyslog). However, + there does not appear to be any interrupt activity: No timer interrupts, + no interrupt driver serial console output (syslog, printf). 2016-05-16: I now get serial interrupts (but not timer interrupts). This -involves a few changes to GIC bit settings that I do not fully understand. -With this change, the NSH serial console works: + involves a few changes to GIC bit settings that I do not fully understand. + With this change, the NSH serial console works: - MX6Q SABRESD U-Boot > ABEFGHILMN + MX6Q SABRESD U-Boot > ABEFGHILMN - NuttShell (NSH) - nsh> + NuttShell (NSH) + nsh> -But there are still no timer interrupts. LEDs do not appear to be working. + But there are still no timer interrupts. LEDs do not appear to be working. 2016-05-17: Timer interrupts now work. This turned out to be just a minor -bit setting error in the timer configuration. LEDs were not working simply -because board_autoled_initialize() was not being called in the board startup -logic. + bit setting error in the timer configuration. LEDs were not working simply + because board_autoled_initialize() was not being called in the board startup + logic. -At this point, I would say that the basic NSH port is complete. + At this point, I would say that the basic NSH port is complete. 2016-05-18: Started looking at the SMP configuration. Initially, I verfied -that the NSH configuration works with CONFIG_SMP_NCPUS=1. Not a very -interesting case, but this does exercise a lot of the basic SMP logic. + that the NSH configuration works with CONFIG_SMP_NCPUS=1. Not a very + interesting case, but this does exercise a lot of the basic SMP logic. -When more than one CPU is configured, then there are certain failures that -appear to be stack corruption problem. See the open issues below under -SMP. + When more than one CPU is configured, then there are certain failures that + appear to be stack corruption problem. See the open issues below under + SMP. 2016-05-22: In a simple NSH case, SMP does not seem to be working. But there -are known SMP open issues so I assume if the tasking were stressed more there -would be additional failures. See the open issues below under SMP. - -An smp configuration was added. This is not quite the same as the configuration that I used for testing. I enabled DEBUG output, ran with only 2 CPUS, and disabled the RAMLOG: - - +CONFIG_DEBUG=y - +CONFIG_DEBUG_VERBOSE=y - +CONFIG_DEBUG_SCHED=y - +CONFIG_DEBUG_SYMBOLS=y - - -CONFIG_DEBUG_FULLOPT=y - +CONFIG_DEBUG_NOOPT=y - - -CONFIG_SMP_NCPUS=4 - +CONFIG_SMP_NCPUS=2 - - -CONFIG_RAMLOG=y - -CONFIG_RAMLOG_SYSLOG=y - -CONFIG_RAMLOG_BUFSIZE=16384 - -CONFIG_RAMLOG_NONBLOCKING=y - -CONFIG_RAMLOG_NPOLLWAITERS=4 - -CONFIG_SYSLOG=y - -I would also disable debug output from CPU0 so that I could better see the debug output from CPU1: - - $ diff -u libc/syslog/lib_lowsyslog.c libc/syslog/lib_lowsyslog.c.SAVE - --- libc/syslog/lib_lowsyslog.c 2016-05-22 14:56:35.130096500 -0600 - +++ libc/syslog/lib_lowsyslog.c.SAVE 2016-05-20 13:36:22.588330100 -0600 - @@ -126,7 +126,0 @@ - { - va_list ap; - int ret; - +if (up_cpu_index() == 0) return 17; // REMOVE ME + are known SMP open issues so I assume if the tasking were stressed more there + would be additional failures. See the open issues below under SMP. + + An smp configuration was added. This is not quite the same as the + configuration that I used for testing. I enabled DEBUG output, ran with + only 2 CPUS, and disabled the RAMLOG: + + +CONFIG_DEBUG=y + +CONFIG_DEBUG_VERBOSE=y + +CONFIG_DEBUG_SCHED=y + +CONFIG_DEBUG_SYMBOLS=y + + -CONFIG_DEBUG_FULLOPT=y + +CONFIG_DEBUG_NOOPT=y + + -CONFIG_SMP_NCPUS=4 + +CONFIG_SMP_NCPUS=2 + + -CONFIG_RAMLOG=y + -CONFIG_RAMLOG_SYSLOG=y + -CONFIG_RAMLOG_BUFSIZE=16384 + -CONFIG_RAMLOG_NONBLOCKING=y + -CONFIG_RAMLOG_NPOLLWAITERS=4 + -CONFIG_SYSLOG=y + + I would also disable debug output from CPU0 so that I could better see the + debug output from CPU1: + + $ diff -u libc/syslog/lib_lowsyslog.c libc/syslog/lib_lowsyslog.c.SAVE + --- libc/syslog/lib_lowsyslog.c 2016-05-22 14:56:35.130096500 -0600 + +++ libc/syslog/lib_lowsyslog.c.SAVE 2016-05-20 13:36:22.588330100 -0600 + @@ -126,7 +126,0 @@ + { + va_list ap; + int ret; + +if (up_cpu_index() == 0) return 17; // REMOVE ME + + /* Let lowvsyslog do the work */ + + va_start(ap, fmt); - /* Let lowvsyslog do the work */ - - va_start(ap, fmt); - - $ diff -u libc/syslog/lib_syslog.c libc/syslog/lib_syslog.c.SAVE - --- libc/syslog/lib_syslog.c 2016-05-22 14:56:35.156098100 -0600 - +++ libc/syslog/lib_syslog.c.SAVE 2016-05-20 13:36:15.331284000 -0600 - @@ -192,6 +192,7 @@ - { - va_list ap; - int ret; - +if (up_cpu_index() == 0) return 17; // REMOVE ME - - /* Let vsyslog do the work */ + $ diff -u libc/syslog/lib_syslog.c libc/syslog/lib_syslog.c.SAVE + --- libc/syslog/lib_syslog.c 2016-05-22 14:56:35.156098100 -0600 + +++ libc/syslog/lib_syslog.c.SAVE 2016-05-20 13:36:15.331284000 -0600 + @@ -192,6 +192,7 @@ + { + va_list ap; + int ret; + +if (up_cpu_index() == 0) return 17; // REMOVE ME + + /* Let vsyslog do the work */ Platform Features ================= -- GitLab From b43fcd6f99341e750c2a1b40ba08a9e49c3e562c Mon Sep 17 00:00:00 2001 From: Alexander Vasiljev Date: Mon, 23 May 2016 08:03:32 -0600 Subject: [PATCH 222/307] LPC43xx: Add AES support. --- arch/arm/src/lpc43xx/Make.defs | 4 + arch/arm/src/lpc43xx/chip/lpc43_aes.h | 22 ++- arch/arm/src/lpc43xx/lpc43_aes.c | 209 ++++++++++++++++++++++++++ 3 files changed, 232 insertions(+), 3 deletions(-) create mode 100644 arch/arm/src/lpc43xx/lpc43_aes.c diff --git a/arch/arm/src/lpc43xx/Make.defs b/arch/arm/src/lpc43xx/Make.defs index 2ec9699554..018b929d4d 100644 --- a/arch/arm/src/lpc43xx/Make.defs +++ b/arch/arm/src/lpc43xx/Make.defs @@ -182,6 +182,10 @@ ifeq ($(CONFIG_LPC43_USBOTG),y) CHIP_CSRCS += lpc43_ehci.c endif +ifeq ($(CONFIG_CRYPTO_AES),y) +CHIP_CSRCS += lpc43_aes.c +endif + ifeq ($(CONFIG_LPC43_USB0),y) ifeq ($(CONFIG_USBDEV),y) CHIP_CSRCS += lpc43_usb0dev.c diff --git a/arch/arm/src/lpc43xx/chip/lpc43_aes.h b/arch/arm/src/lpc43xx/chip/lpc43_aes.h index e5f66d5f1f..fbd557f3d4 100644 --- a/arch/arm/src/lpc43xx/chip/lpc43_aes.h +++ b/arch/arm/src/lpc43xx/chip/lpc43_aes.h @@ -1,7 +1,7 @@ /************************************************************************************ * arch/arm/src/lpc43xx/chip/lpc43_aes.h * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. + * Copyright (C) 2012, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -45,6 +45,7 @@ /************************************************************************************ * Pre-processor Definitions ************************************************************************************/ + /* The AES is controlled through a set of simple API calls located in the LPC43xx * ROM. This value holds the pointer to the AES driver table. */ @@ -86,17 +87,32 @@ struct lpc43_aes_s /* Loads 128-bit AES software defined user key (16 bytes) */ - void (*aes_LoadKeySW)(unsigned char *key); + void (*aes_LoadKeySW)(const unsigned char *key); /* Loads 128-bit AES initialization vector (16 bytes) */ - void (*aes_LoadIV_SW)(unsigned char *iv); + void (*aes_LoadIV_SW)(const unsigned char *iv); /* Loads 128-bit AES IC specific initialization vector, which is used to decrypt * a boot image. */ void (*aes_LoadIV_IC)(void); + + /* Process data */ + + unsigned int (*aes_Operate)(unsigned char* out, const unsigned char* in, unsigned blocks); +}; + +enum lpc43_aes_errorcodes_e +{ + AES_API_ERR_BASE = 0x30000, + AES_API_ERR_WRONG_CMD, + AES_API_ERR_NOT_SUPPORTED, + AES_API_ERR_KEY_ALREADY_PROGRAMMED, + AES_API_ERR_DMA_CHANNEL_CFG, + AES_API_ERR_DMA_MUX_CFG, + AES_API_ERR_DMA_BUSY }; /************************************************************************************ diff --git a/arch/arm/src/lpc43xx/lpc43_aes.c b/arch/arm/src/lpc43xx/lpc43_aes.c new file mode 100644 index 0000000000..3f9af5ada3 --- /dev/null +++ b/arch/arm/src/lpc43xx/lpc43_aes.c @@ -0,0 +1,209 @@ +/**************************************************************************** + * arch/arm/src/lpc43xx/lpc43_aes.c + * + * Copyright (C) 2015 Gregory Nutt. All rights reserved. + * Author: Alexander Vasiljev + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include "up_internal.h" +#include "up_arch.h" + +#include "chip.h" +#include + +#define AES_BLOCK_SIZE 16 + +/**************************************************************************** + * Private Data + ****************************************************************************/ + +static struct lpc43_aes_s *g_aes; + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +int aes_cypher(void *out, const void *in, uint32_t size, const void *iv, + const void *key, uint32_t keysize, int mode, int encrypt) +{ + unsigned int ret = 0; + uint32_t outl = size; + + ret = aes_init(iv, key, keysize, mode, encrypt); + + if (ret != OK) + { + return ret; + } + + return aes_update(out, &outl, in, size); +} + +int up_aesreset(void) +{ + return OK; +} + +int aes_init(FAR const void *iv, FAR const void *key, uint32_t keysize, + int mode, int encrypt) +{ + unsigned int cmd = 0; + unsigned int ret = 0; + + if (g_aes == NULL) + { + return -ENOSYS; + } + + /* The LPC43 aes engine can load two keys from otp and one random + * generated key. This behavior doesn't fit current api. So if + * key == NULL, we will usr keysize as identifier of the special key. + */ + + if (keysize != 16 && key) + { + return -EINVAL; + } + + if (mode != AES_MODE_ECB && mode != AES_MODE_CBC) + { + return -EINVAL; + } + + if (encrypt == CYPHER_ENCRYPT) + { + cmd = mode == AES_MODE_ECB ? AES_API_CMD_ENCODE_ECB : AES_API_CMD_ENCODE_CBC; + } + else + { + cmd = mode == AES_MODE_ECB ? AES_API_CMD_DECODE_ECB : AES_API_CMD_DECODE_CBC; + } + + g_aes->aes_Init(); + + if (key != NULL) + { + g_aes->aes_LoadKeySW(key); + } + else + { + switch (keysize) + { + case 0: + g_aes->aes_LoadKey1(); + break; + + case 1: + g_aes->aes_LoadKey2(); + break; + + case 2: + g_aes->aes_LoadKeyRNG(); + break; + } + } + + g_aes->aes_LoadIV_SW((const unsigned char*)iv); + + ret = g_aes->aes_SetMode(cmd); + switch (ret) + { + case AES_API_ERR_WRONG_CMD: + case AES_API_ERR_NOT_SUPPORTED: + case AES_API_ERR_KEY_ALREADY_PROGRAMMED: + ret = -EINVAL; + break; + + case AES_API_ERR_DMA_CHANNEL_CFG: + case AES_API_ERR_DMA_MUX_CFG: + case AES_API_ERR_DMA_BUSY: + ret = -EBUSY; + break; + } + + return 0; +} + +int aes_update(FAR const void *out, uint32_t *outl, FAR const void *in, + uint32_t inl) +{ + if (g_aes == NULL) + { + return -ENOSYS; + } + + if ((inl & (AES_BLOCK_SIZE-1)) != 0) + { + return -EINVAL; + } + + if (inl > *outl) + { + return -EINVAL; + } + + return g_aes->aes_Operate((unsigned char*)out, + (unsigned char*)in, inl / 16); +} + +int up_aesinitialize(void) +{ + g_aes = (struct lpc43_g_aes*)*((uint32_t*)LPC43_ROM_AES_DRIVER_TABLE); + if (g_aes != NULL) + { + return OK; + } + + return -ENOSYS; +} + +int up_aesuninitialize(void) +{ + return OK; +} -- GitLab From eb11e662dbf6e2dc82c0ea265f4746a0e8e1bab8 Mon Sep 17 00:00:00 2001 From: Alexander Vasiljev Date: Mon, 23 May 2016 08:05:02 -0600 Subject: [PATCH 223/307] Modifications to the crypto API needed for LPC43xx. --- include/nuttx/crypto/crypto.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/include/nuttx/crypto/crypto.h b/include/nuttx/crypto/crypto.h index 631dedd893..3433a72c9e 100644 --- a/include/nuttx/crypto/crypto.h +++ b/include/nuttx/crypto/crypto.h @@ -90,6 +90,9 @@ int up_cryptoinitialize(void); int up_aesinitialize(void); int aes_cypher(FAR void *out, FAR const void *in, uint32_t size, FAR const void *iv, FAR const void *key, uint32_t keysize, int mode, int encrypt); +int aes_init(FAR const void *iv, FAR const void *key, uint32_t keysize, int mode, + int encrypt); +int aes_update(FAR const void *out, uint32_t *outl, FAR const void *in, uint32_t inl); #endif #if defined(CONFIG_CRYPTO_ALGTEST) -- GitLab From c019c270d5acddb5833bf5b6b0b252326d678f3f Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 23 May 2016 08:26:46 -0600 Subject: [PATCH 224/307] Tiva boards: Fix a naming collision, rename board-specific function from tiva_timer_initialize() to tiva_timer_configure() to remove conflict --- configs/dk-tm4c129x/src/dk-tm4c129x.h | 4 ++-- configs/dk-tm4c129x/src/tm4c_bringup.c | 2 +- configs/dk-tm4c129x/src/tm4c_timer.c | 4 ++-- configs/tm4c123g-launchpad/src/tm4c123g-launchpad.h | 4 ++-- configs/tm4c123g-launchpad/src/tm4c_bringup.c | 4 ++-- configs/tm4c123g-launchpad/src/tm4c_timer.c | 4 ++-- configs/tm4c1294-launchpad/src/tm4c1294-launchpad.h | 4 ++-- configs/tm4c1294-launchpad/src/tm4c_bringup.c | 2 +- configs/tm4c1294-launchpad/src/tm4c_timer.c | 4 ++-- 9 files changed, 16 insertions(+), 16 deletions(-) diff --git a/configs/dk-tm4c129x/src/dk-tm4c129x.h b/configs/dk-tm4c129x/src/dk-tm4c129x.h index 5f0b89a707..2c78317ba9 100644 --- a/configs/dk-tm4c129x/src/dk-tm4c129x.h +++ b/configs/dk-tm4c129x/src/dk-tm4c129x.h @@ -177,7 +177,7 @@ void tm4c_led_initialize(void); int tm4c_bringup(void); /**************************************************************************** - * Name: tiva_timer_initialize + * Name: tiva_timer_configure * * Description: * Configure the timer driver @@ -185,7 +185,7 @@ int tm4c_bringup(void); ****************************************************************************/ #ifdef CONFIG_DK_TM4C129X_TIMER -int tiva_timer_initialize(void); +int tiva_timer_configure(void); #endif #endif /* __ASSEMBLY__ */ diff --git a/configs/dk-tm4c129x/src/tm4c_bringup.c b/configs/dk-tm4c129x/src/tm4c_bringup.c index 16ebb76ed9..72fcac0292 100644 --- a/configs/dk-tm4c129x/src/tm4c_bringup.c +++ b/configs/dk-tm4c129x/src/tm4c_bringup.c @@ -181,7 +181,7 @@ int tm4c_bringup(void) #ifdef HAVE_TIMER /* Initialize the timer driver */ - ret = tiva_timer_initialize(); + ret = tiva_timer_configure(); if (ret < 0) { dbg("ERROR: Failed to initialize timer driver: %d\n", ret); diff --git a/configs/dk-tm4c129x/src/tm4c_timer.c b/configs/dk-tm4c129x/src/tm4c_timer.c index e5b82d7141..e6cfe3e13c 100644 --- a/configs/dk-tm4c129x/src/tm4c_timer.c +++ b/configs/dk-tm4c129x/src/tm4c_timer.c @@ -91,14 +91,14 @@ ****************************************************************************/ /**************************************************************************** - * Name: tiva_timer_initialize + * Name: tiva_timer_configure * * Description: * Configure the timer driver * ****************************************************************************/ -int tiva_timer_initialize(void) +int tiva_timer_configure(void) { int ret; diff --git a/configs/tm4c123g-launchpad/src/tm4c123g-launchpad.h b/configs/tm4c123g-launchpad/src/tm4c123g-launchpad.h index abb2193f3a..b9ca7ce480 100644 --- a/configs/tm4c123g-launchpad/src/tm4c123g-launchpad.h +++ b/configs/tm4c123g-launchpad/src/tm4c123g-launchpad.h @@ -226,7 +226,7 @@ int tm4c_at24_automount(int minor); #endif /**************************************************************************** - * Name: tiva_timer_initialize + * Name: tiva_timer_configure * * Description: * Configure the timer driver @@ -234,7 +234,7 @@ int tm4c_at24_automount(int minor); ****************************************************************************/ #ifdef CONFIG_TIVA_TIMER -int tiva_timer_initialize(void); +int tiva_timer_configure(void); #endif /************************************************************************************ diff --git a/configs/tm4c123g-launchpad/src/tm4c_bringup.c b/configs/tm4c123g-launchpad/src/tm4c_bringup.c index c277fbb710..48a8d649fe 100644 --- a/configs/tm4c123g-launchpad/src/tm4c_bringup.c +++ b/configs/tm4c123g-launchpad/src/tm4c_bringup.c @@ -77,10 +77,10 @@ int tm4c_bringup(void) #ifdef CONFIG_TIVA_TIMER /* Initialize the timer driver */ - ret = tiva_timer_initialize(); + ret = tiva_timer_configure(); if (ret < 0) { - syslog(LOG_ERR, "ERROR: tiva_timer_initialize failed: %d\n", ret); + syslog(LOG_ERR, "ERROR: tiva_timer_configure failed: %d\n", ret); return ret; } #endif /* CONFIG_TIVA_TIMER */ diff --git a/configs/tm4c123g-launchpad/src/tm4c_timer.c b/configs/tm4c123g-launchpad/src/tm4c_timer.c index 8bc01c6eda..19e961dd3f 100644 --- a/configs/tm4c123g-launchpad/src/tm4c_timer.c +++ b/configs/tm4c123g-launchpad/src/tm4c_timer.c @@ -62,14 +62,14 @@ ****************************************************************************/ /**************************************************************************** - * Name: tiva_timer_initialize + * Name: tiva_timer_configure * * Description: * Configure the timer driver for the timer example application. * ****************************************************************************/ -int tiva_timer_initialize(void) +int tiva_timer_configure(void) { static bool initialized = false; int ret = OK; diff --git a/configs/tm4c1294-launchpad/src/tm4c1294-launchpad.h b/configs/tm4c1294-launchpad/src/tm4c1294-launchpad.h index f18fa39eb1..fb392a6c85 100644 --- a/configs/tm4c1294-launchpad/src/tm4c1294-launchpad.h +++ b/configs/tm4c1294-launchpad/src/tm4c1294-launchpad.h @@ -166,7 +166,7 @@ void tm4c_led_initialize(void); int tm4c_bringup(void); /**************************************************************************** - * Name: tiva_timer_initialize + * Name: tiva_timer_configure * * Description: * Configure the timer driver @@ -174,7 +174,7 @@ int tm4c_bringup(void); ****************************************************************************/ #ifdef CONFIG_TM4C1294_LAUNCHPAD_TIMER -int tiva_timer_initialize(void); +int tiva_timer_configure(void); #endif #endif /* __ASSEMBLY__ */ diff --git a/configs/tm4c1294-launchpad/src/tm4c_bringup.c b/configs/tm4c1294-launchpad/src/tm4c_bringup.c index da1778d0fd..a6608ff431 100644 --- a/configs/tm4c1294-launchpad/src/tm4c_bringup.c +++ b/configs/tm4c1294-launchpad/src/tm4c_bringup.c @@ -161,7 +161,7 @@ int tm4c_bringup(void) #ifdef HAVE_TIMER /* Initialize the timer driver */ - ret = tiva_timer_initialize(); + ret = tiva_timer_configure(); if (ret < 0) { dbg("ERROR: Failed to initialize timer driver: %d\n", ret); diff --git a/configs/tm4c1294-launchpad/src/tm4c_timer.c b/configs/tm4c1294-launchpad/src/tm4c_timer.c index 94f6ab0bb4..0d661307c3 100644 --- a/configs/tm4c1294-launchpad/src/tm4c_timer.c +++ b/configs/tm4c1294-launchpad/src/tm4c_timer.c @@ -90,14 +90,14 @@ ****************************************************************************/ /**************************************************************************** - * Name: tiva_timer_initialize + * Name: tiva_timer_configure * * Description: * Configure the timer driver * ****************************************************************************/ -int tiva_timer_initialize(void) +int tiva_timer_configure(void) { int ret; -- GitLab From fca329945b217e454cb92c5c6cf745b482b1f1d8 Mon Sep 17 00:00:00 2001 From: David Sidrane Date: Mon, 23 May 2016 13:38:34 -0600 Subject: [PATCH 225/307] This patch ensures that the TWIHS (i2c) hw get's its clock set when the sequence of sam_i2cbus_initialize sam_i2cbus_uninitialize sam_i2cbus_initialize Or twi_reset is called. I found this a while back in the stm32 family, so there may be more arch-es with this sort of bug. I suppose any driver that has the notion of "do not set the freq if it is already set" could be suspect. --- arch/arm/src/sam34/sam_twi.c | 1 + arch/arm/src/sama5/sam_twi.c | 1 + arch/arm/src/samv7/sam_twihs.c | 1 + 3 files changed, 3 insertions(+) diff --git a/arch/arm/src/sam34/sam_twi.c b/arch/arm/src/sam34/sam_twi.c index a71525b627..f8c2f7f7ca 100644 --- a/arch/arm/src/sam34/sam_twi.c +++ b/arch/arm/src/sam34/sam_twi.c @@ -901,6 +901,7 @@ static void twi_hw_initialize(struct twi_dev_s *priv, unsigned int pid, /* Set the initial TWI data transfer frequency */ + priv->i2cfreq = 0; twi_setfrequency(priv, frequency); } diff --git a/arch/arm/src/sama5/sam_twi.c b/arch/arm/src/sama5/sam_twi.c index 8944de9ed4..c9b17e11e2 100644 --- a/arch/arm/src/sama5/sam_twi.c +++ b/arch/arm/src/sama5/sam_twi.c @@ -1200,6 +1200,7 @@ static void twi_hw_initialize(struct twi_dev_s *priv, uint32_t frequency) /* Set the initial TWI data transfer frequency */ + priv->frequency = 0 twi_setfrequency(priv, frequency); /* Enable Interrupts */ diff --git a/arch/arm/src/samv7/sam_twihs.c b/arch/arm/src/samv7/sam_twihs.c index f11ae78cbb..fa5a8b2a52 100644 --- a/arch/arm/src/samv7/sam_twihs.c +++ b/arch/arm/src/samv7/sam_twihs.c @@ -1230,6 +1230,7 @@ static void twi_hw_initialize(struct twi_dev_s *priv, uint32_t frequency) /* Set the initial TWIHS data transfer frequency */ + priv->frequency = 0; twi_setfrequency(priv, frequency); /* Enable Interrupts */ -- GitLab From c41e6d823a3a9437d1ee4690486a8362fec537aa Mon Sep 17 00:00:00 2001 From: David Sidrane Date: Mon, 23 May 2016 17:05:02 -0600 Subject: [PATCH 226/307] Add the up_systemreset interface to the samv7 arch. The approach is slightly different in that: 1) It enables ARCH_HAVE_RESET and allows the user to set if, and for how long, to drive External nRST signal. It also does not contain a default board_reset, as that really should be done in the config's src if CONFIG_BOARDCTL_RESET is defined. --- arch/arm/src/samv7/Kconfig | 22 +++++++ arch/arm/src/samv7/Make.defs | 4 ++ arch/arm/src/samv7/sam_systemreset.c | 90 ++++++++++++++++++++++++++++ 3 files changed, 116 insertions(+) create mode 100644 arch/arm/src/samv7/sam_systemreset.c diff --git a/arch/arm/src/samv7/Kconfig b/arch/arm/src/samv7/Kconfig index 61186d7b20..438451805b 100644 --- a/arch/arm/src/samv7/Kconfig +++ b/arch/arm/src/samv7/Kconfig @@ -618,6 +618,28 @@ config SAMV7_ERASE_ENABLE endchoice +menuconfig SAMV7_SYSTEMRESET + bool "Enable System Reset" + select ARCH_HAVE_RESET + ---help--- + Enable up_systemreset + +if SAMV7_SYSTEMRESET + +config SAMV7_EXTRESET_ERST + int "Drive External nRST duration" + default 0 + range 0 16 + ---help--- + Define if the external reset (nRST) will be generated in up_systemreset + and for how long: + + - A value of 0 will not drive the external reset + - A value of 1-6 will drive the external reset for 2^SAMV7_EXTRESET_ERST + slow clock cycles. + +endif # SAMV7_SYSTEMRESET + menuconfig SAMV7_GPIO_IRQ bool "GPIO pin interrupts" ---help--- diff --git a/arch/arm/src/samv7/Make.defs b/arch/arm/src/samv7/Make.defs index 5d3dfc437b..fbd88a6e7f 100644 --- a/arch/arm/src/samv7/Make.defs +++ b/arch/arm/src/samv7/Make.defs @@ -150,6 +150,10 @@ ifeq ($(CONFIG_SAMV7_RSWDT),y) CHIP_CSRCS += sam_rswdt.c endif +ifeq ($(CONFIG_SAMV7_SYSTEMRESET),y) +CHIP_CSRCS += sam_systemreset.c +endif + ifeq ($(CONFIG_SAMV7_SPI_MASTER),y) CHIP_CSRCS += sam_spi.c endif diff --git a/arch/arm/src/samv7/sam_systemreset.c b/arch/arm/src/samv7/sam_systemreset.c new file mode 100644 index 0000000000..0d9ec9005a --- /dev/null +++ b/arch/arm/src/samv7/sam_systemreset.c @@ -0,0 +1,90 @@ +/**************************************************************************** + * arch/arm/src/samv7/sam_systemreset.c + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * David Sidrane + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include + +#include +#include + +#include +#include + +#include "up_arch.h" +#include "chip/sam_rstc.h" + +#ifdef CONFIG_SAMV7_SYSTEMRESET + +/**************************************************************************** + * Public functions + ****************************************************************************/ + +/**************************************************************************** + * Name: up_systemreset + * + * Description: + * Internal reset logic. + * + ****************************************************************************/ + +void up_systemreset(void) +{ + uint32_t regval; +#if defined(CONFIG_SAMV7_EXTRESET_ERST) && CONFIG_SAMV7_EXTRESET_ERST != 0 + uint32_t rstmr; +#endif + + regval = (RSTC_CR_PROCRST | RSTC_CR_KEY); + +#if defined(CONFIG_SAMV7_EXTRESET_ERST) && CONFIG_SAMV7_EXTRESET_ERST != 0 + regval |= RSTC_CR_EXTRST; + + rstmr = gettreg32(SAM_RSTC_MR); + rstmr &= ~RSTC_MR_ERSTL_MASK; + rstmr &= RSTC_MR_ERSTL(CONFIG_SAMV7_EXTRESET_ERST) | RSTC_MR_KEY; + putreg32(regval, SAM_RSTC_MR); +#endif + + putreg32(regval, SAM_RSTC_CR); + + /* Wait for the reset */ + + for (; ; ); +} +#endif /* CONFIG_SAMV7_SYSTEMRESET */ -- GitLab From e9290660425c023a6d5b30bd1a5c5e9fed8ee4ce Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 23 May 2016 17:11:36 -0600 Subject: [PATCH 227/307] Fix an error in the last commit --- arch/arm/src/samv7/sam_systemreset.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/arch/arm/src/samv7/sam_systemreset.c b/arch/arm/src/samv7/sam_systemreset.c index 0d9ec9005a..60957b8e10 100644 --- a/arch/arm/src/samv7/sam_systemreset.c +++ b/arch/arm/src/samv7/sam_systemreset.c @@ -65,23 +65,23 @@ void up_systemreset(void) { - uint32_t regval; + uint32_t rstcr; #if defined(CONFIG_SAMV7_EXTRESET_ERST) && CONFIG_SAMV7_EXTRESET_ERST != 0 uint32_t rstmr; #endif - regval = (RSTC_CR_PROCRST | RSTC_CR_KEY); + rstcr = (RSTC_CR_PROCRST | RSTC_CR_KEY); #if defined(CONFIG_SAMV7_EXTRESET_ERST) && CONFIG_SAMV7_EXTRESET_ERST != 0 - regval |= RSTC_CR_EXTRST; + rstcr |= RSTC_CR_EXTRST; - rstmr = gettreg32(SAM_RSTC_MR); + rstmr = getreg32(SAM_RSTC_MR); rstmr &= ~RSTC_MR_ERSTL_MASK; rstmr &= RSTC_MR_ERSTL(CONFIG_SAMV7_EXTRESET_ERST) | RSTC_MR_KEY; - putreg32(regval, SAM_RSTC_MR); + putreg32(rstmr, SAM_RSTC_MR); #endif - putreg32(regval, SAM_RSTC_CR); + putreg32(rstcr, SAM_RSTC_CR); /* Wait for the reset */ -- GitLab From 051aa42786f7b7c5c1db26052d82185a84cc5aa9 Mon Sep 17 00:00:00 2001 From: David Sidrane Date: Mon, 23 May 2016 23:24:59 +0000 Subject: [PATCH 228/307] sam_systemreset.c edited online with Bitbucket --- arch/arm/src/samv7/sam_systemreset.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm/src/samv7/sam_systemreset.c b/arch/arm/src/samv7/sam_systemreset.c index 0d9ec9005a..3c0be23ba4 100644 --- a/arch/arm/src/samv7/sam_systemreset.c +++ b/arch/arm/src/samv7/sam_systemreset.c @@ -77,8 +77,8 @@ void up_systemreset(void) rstmr = gettreg32(SAM_RSTC_MR); rstmr &= ~RSTC_MR_ERSTL_MASK; - rstmr &= RSTC_MR_ERSTL(CONFIG_SAMV7_EXTRESET_ERST) | RSTC_MR_KEY; - putreg32(regval, SAM_RSTC_MR); + rstmr &= RSTC_MR_ERSTL(CONFIG_SAMV7_EXTRESET_ERST-1) | RSTC_MR_KEY; + putreg32(rstmr, SAM_RSTC_MR); #endif putreg32(regval, SAM_RSTC_CR); -- GitLab From 3a8ff78f878d52b93e16d507c0d4e408edc6bd29 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 23 May 2016 17:45:15 -0600 Subject: [PATCH 229/307] Restore PR. I have no idea where it went. --- arch/arm/src/samv7/sam_systemreset.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/src/samv7/sam_systemreset.c b/arch/arm/src/samv7/sam_systemreset.c index 60957b8e10..fbc9f19daf 100644 --- a/arch/arm/src/samv7/sam_systemreset.c +++ b/arch/arm/src/samv7/sam_systemreset.c @@ -77,7 +77,7 @@ void up_systemreset(void) rstmr = getreg32(SAM_RSTC_MR); rstmr &= ~RSTC_MR_ERSTL_MASK; - rstmr &= RSTC_MR_ERSTL(CONFIG_SAMV7_EXTRESET_ERST) | RSTC_MR_KEY; + rstmr &= RSTC_MR_ERSTL(CONFIG_SAMV7_EXTRESET_ERST-1) | RSTC_MR_KEY; putreg32(rstmr, SAM_RSTC_MR); #endif -- GitLab From ad6f37edfa4270af565a5d6d74c0083398e700a0 Mon Sep 17 00:00:00 2001 From: Alexander Vasiljev Date: Tue, 24 May 2016 07:03:50 -0600 Subject: [PATCH 230/307] Adds definitions for the LPC4337jet100 chip. --- arch/arm/include/lpc43xx/chip.h | 59 +- arch/arm/src/lpc43xx/Kconfig | 5 +- arch/arm/src/lpc43xx/chip.h | 4 + .../lpc43xx/chip/lpc4337jet100_pinconfig.h | 982 ++++++++++++++++++ 4 files changed, 1032 insertions(+), 18 deletions(-) create mode 100644 arch/arm/src/lpc43xx/chip/lpc4337jet100_pinconfig.h diff --git a/arch/arm/include/lpc43xx/chip.h b/arch/arm/include/lpc43xx/chip.h index 56db629293..a88559df21 100644 --- a/arch/arm/include/lpc43xx/chip.h +++ b/arch/arm/include/lpc43xx/chip.h @@ -1,7 +1,7 @@ /************************************************************************************ * arch/arm/include/lpc43xx/chip.h * - * Copyright (C) 2012-2013 Gregory Nutt. All rights reserved. + * Copyright (C) 2012-2013, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -167,7 +167,7 @@ # warning "Data sheet and user manual are consistement for the LPC4320" # define LPC43_FLASH_BANKA_SIZE (0) /* Flashless */ # define LPC43_FLASH_BANKB_SIZE (0) -# define LPC43_LOCSRAM_BANK0_SIZE (128*1024) /* 168Kb Local SRAM*/ +# define LPC43_LOCSRAM_BANK0_SIZE (128*1024) /* 168Kb Local SRAM */ # define LPC43_LOCSRAM_BANK1_SIZE (40*1024) # define LPC43_AHBSRAM_BANK0_SIZE (16*1024) /* 32Kb AHB SRAM */ # define LPC43_AHBSRAM_BANK1_SIZE (0) @@ -194,7 +194,7 @@ # warning "Data sheet and user manual are consistement for the LPC4320" # define LPC43_FLASH_BANKA_SIZE (0) /* Flashless */ # define LPC43_FLASH_BANKB_SIZE (0) -# define LPC43_LOCSRAM_BANK0_SIZE (128*1024) /* 168Kb Local SRAM*/ +# define LPC43_LOCSRAM_BANK0_SIZE (128*1024) /* 168Kb Local SRAM */ # define LPC43_LOCSRAM_BANK1_SIZE (40*1024) # define LPC43_AHBSRAM_BANK0_SIZE (16*1024) /* 32Kb AHB SRAM */ # define LPC43_AHBSRAM_BANK1_SIZE (0) @@ -220,7 +220,7 @@ #elif defined(CONFIG_ARCH_CHIP_LPC4330FBD144) # define LPC43_FLASH_BANKA_SIZE (0) /* Flashless */ # define LPC43_FLASH_BANKB_SIZE (0) -# define LPC43_LOCSRAM_BANK0_SIZE (128*1024) /* 200Kb Local SRAM*/ +# define LPC43_LOCSRAM_BANK0_SIZE (128*1024) /* 200Kb Local SRAM */ # define LPC43_LOCSRAM_BANK1_SIZE (72*1024) # define LPC43_AHBSRAM_BANK0_SIZE (48*1024) /* 64Kb AHB SRAM */ # define LPC43_AHBSRAM_BANK1_SIZE (0) @@ -246,7 +246,7 @@ #elif defined(CONFIG_ARCH_CHIP_LPC4330FET100) # define LPC43_FLASH_BANKA_SIZE (0) /* Flashless */ # define LPC43_FLASH_BANKB_SIZE (0) -# define LPC43_LOCSRAM_BANK0_SIZE (128*1024) /* 200Kb Local SRAM*/ +# define LPC43_LOCSRAM_BANK0_SIZE (128*1024) /* 200Kb Local SRAM */ # define LPC43_LOCSRAM_BANK1_SIZE (72*1024) # define LPC43_AHBSRAM_BANK0_SIZE (48*1024) /* 64Kb AHB SRAM */ # define LPC43_AHBSRAM_BANK1_SIZE (0) @@ -272,7 +272,7 @@ #elif defined(CONFIG_ARCH_CHIP_LPC4330FET180) # define LPC43_FLASH_BANKA_SIZE (0) /* Flashless */ # define LPC43_FLASH_BANKB_SIZE (0) -# define LPC43_LOCSRAM_BANK0_SIZE (128*1024) /* 200Kb Local SRAM*/ +# define LPC43_LOCSRAM_BANK0_SIZE (128*1024) /* 200Kb Local SRAM */ # define LPC43_LOCSRAM_BANK1_SIZE (72*1024) # define LPC43_AHBSRAM_BANK0_SIZE (48*1024) /* 64Kb AHB SRAM */ # define LPC43_AHBSRAM_BANK1_SIZE (0) @@ -298,7 +298,7 @@ #elif defined(CONFIG_ARCH_CHIP_LPC4330FET256) # define LPC43_FLASH_BANKA_SIZE (0) /* Flashless */ # define LPC43_FLASH_BANKB_SIZE (0) -# define LPC43_LOCSRAM_BANK0_SIZE (128*1024) /* 200Kb Local SRAM*/ +# define LPC43_LOCSRAM_BANK0_SIZE (128*1024) /* 200Kb Local SRAM */ # define LPC43_LOCSRAM_BANK1_SIZE (72*1024) # define LPC43_AHBSRAM_BANK0_SIZE (48*1024) /* 64Kb AHB SRAM */ # define LPC43_AHBSRAM_BANK1_SIZE (0) @@ -324,7 +324,7 @@ #elif defined(CONFIG_ARCH_CHIP_LPC4337JBD144) # define LPC43_FLASH_BANKA_SIZE (512*1025) /* 1024Kb FLASH */ # define LPC43_FLASH_BANKB_SIZE (512*1025) -# define LPC43_LOCSRAM_BANK0_SIZE (32*1024) /* 72Kb Local SRAM*/ +# define LPC43_LOCSRAM_BANK0_SIZE (32*1024) /* 72Kb Local SRAM */ # define LPC43_LOCSRAM_BANK1_SIZE (40*1024) # define LPC43_AHBSRAM_BANK0_SIZE (48*1024) /* 64Kb AHB SRAM */ # define LPC43_AHBSRAM_BANK1_SIZE (0) @@ -350,7 +350,7 @@ #elif defined(CONFIG_ARCH_CHIP_LPC4350FBD208) # define LPC43_FLASH_BANKA_SIZE (0) /* Flashless */ # define LPC43_FLASH_BANKB_SIZE (0) -# define LPC43_LOCSRAM_BANK0_SIZE (128*1024) /* 200Kb Local SRAM*/ +# define LPC43_LOCSRAM_BANK0_SIZE (128*1024) /* 200Kb Local SRAM */ # define LPC43_LOCSRAM_BANK1_SIZE (72*1024) # define LPC43_AHBSRAM_BANK0_SIZE (48*1024) /* 64Kb AHB SRAM */ # define LPC43_AHBSRAM_BANK1_SIZE (0) @@ -376,7 +376,7 @@ #elif defined(CONFIG_ARCH_CHIP_LPC4350FET180) # define LPC43_FLASH_BANKA_SIZE (0) /* Flashless */ # define LPC43_FLASH_BANKB_SIZE (0) -# define LPC43_LOCSRAM_BANK0_SIZE (128*1024) /* 200Kb Local SRAM*/ +# define LPC43_LOCSRAM_BANK0_SIZE (128*1024) /* 200Kb Local SRAM */ # define LPC43_LOCSRAM_BANK1_SIZE (72*1024) # define LPC43_AHBSRAM_BANK0_SIZE (48*1024) /* 64Kb AHB SRAM */ # define LPC43_AHBSRAM_BANK1_SIZE (0) @@ -402,7 +402,7 @@ #elif defined(CONFIG_ARCH_CHIP_LPC4350FET256) # define LPC43_FLASH_BANKA_SIZE (0) /* Flashless */ # define LPC43_FLASH_BANKB_SIZE (0) -# define LPC43_LOCSRAM_BANK0_SIZE (128*1024) /* 200Kb Local SRAM*/ +# define LPC43_LOCSRAM_BANK0_SIZE (128*1024) /* 200Kb Local SRAM */ # define LPC43_LOCSRAM_BANK1_SIZE (72*1024) # define LPC43_AHBSRAM_BANK0_SIZE (48*1024) /* 64Kb AHB SRAM */ # define LPC43_AHBSRAM_BANK1_SIZE (0) @@ -428,7 +428,7 @@ #elif defined(CONFIG_ARCH_CHIP_LPC4353FBD208) # define LPC43_FLASH_BANKA_SIZE (256*1025) /* 512Kb FLASH */ # define LPC43_FLASH_BANKB_SIZE (256*1025) -# define LPC43_LOCSRAM_BANK0_SIZE (32*1024) /* 72Kb Local SRAM*/ +# define LPC43_LOCSRAM_BANK0_SIZE (32*1024) /* 72Kb Local SRAM */ # define LPC43_LOCSRAM_BANK1_SIZE (40*1024) # define LPC43_AHBSRAM_BANK0_SIZE (48*1024) /* 64Kb AHB SRAM */ # define LPC43_AHBSRAM_BANK1_SIZE (0) @@ -454,7 +454,7 @@ #elif defined(CONFIG_ARCH_CHIP_LPC4353FET180) # define LPC43_FLASH_BANKA_SIZE (256*1025) /* 512Kb FLASH */ # define LPC43_FLASH_BANKB_SIZE (256*1025) -# define LPC43_LOCSRAM_BANK0_SIZE (32*1024) /* 72Kb Local SRAM*/ +# define LPC43_LOCSRAM_BANK0_SIZE (32*1024) /* 72Kb Local SRAM */ # define LPC43_LOCSRAM_BANK1_SIZE (40*1024) # define LPC43_AHBSRAM_BANK0_SIZE (48*1024) /* 64Kb AHB SRAM */ # define LPC43_AHBSRAM_BANK1_SIZE (0) @@ -480,7 +480,7 @@ #elif defined(CONFIG_ARCH_CHIP_LPC4353FET256) # define LPC43_FLASH_BANKA_SIZE (256*1025) /* 512Kb FLASH */ # define LPC43_FLASH_BANKB_SIZE (256*1025) -# define LPC43_LOCSRAM_BANK0_SIZE (32*1024) /* 72Kb Local SRAM*/ +# define LPC43_LOCSRAM_BANK0_SIZE (32*1024) /* 72Kb Local SRAM */ # define LPC43_LOCSRAM_BANK1_SIZE (40*1024) # define LPC43_AHBSRAM_BANK0_SIZE (48*1024) /* 64Kb AHB SRAM */ # define LPC43_AHBSRAM_BANK1_SIZE (0) @@ -506,7 +506,7 @@ #elif defined(CONFIG_ARCH_CHIP_LPC4357FET180) # define LPC43_FLASH_BANKA_SIZE (512*1025) /* 1024Kb FLASH */ # define LPC43_FLASH_BANKB_SIZE (512*1025) -# define LPC43_LOCSRAM_BANK0_SIZE (32*1024) /* 72Kb Local SRAM*/ +# define LPC43_LOCSRAM_BANK0_SIZE (32*1024) /* 72Kb Local SRAM */ # define LPC43_LOCSRAM_BANK1_SIZE (40*1024) # define LPC43_AHBSRAM_BANK0_SIZE (48*1024) /* 64Kb AHB SRAM */ # define LPC43_AHBSRAM_BANK1_SIZE (0) @@ -532,7 +532,7 @@ #elif defined(CONFIG_ARCH_CHIP_LPC4357FBD208) # define LPC43_FLASH_BANKA_SIZE (512*1025) /* 1024Kb FLASH */ # define LPC43_FLASH_BANKB_SIZE (512*1025) -# define LPC43_LOCSRAM_BANK0_SIZE (32*1024) /* 72Kb Local SRAM*/ +# define LPC43_LOCSRAM_BANK0_SIZE (32*1024) /* 72Kb Local SRAM */ # define LPC43_LOCSRAM_BANK1_SIZE (40*1024) # define LPC43_AHBSRAM_BANK0_SIZE (48*1024) /* 64Kb AHB SRAM */ # define LPC43_AHBSRAM_BANK1_SIZE (0) @@ -558,7 +558,7 @@ #elif defined(CONFIG_ARCH_CHIP_LPC4357FET256) # define LPC43_FLASH_BANKA_SIZE (512*1025) /* 1024Kb FLASH */ # define LPC43_FLASH_BANKB_SIZE (512*1025) -# define LPC43_LOCSRAM_BANK0_SIZE (32*1024) /* 72Kb Local SRAM*/ +# define LPC43_LOCSRAM_BANK0_SIZE (32*1024) /* 72Kb Local SRAM */ # define LPC43_LOCSRAM_BANK1_SIZE (40*1024) # define LPC43_AHBSRAM_BANK0_SIZE (48*1024) /* 64Kb AHB SRAM */ # define LPC43_AHBSRAM_BANK1_SIZE (0) @@ -632,6 +632,31 @@ # define LPC43_NDAC (1) /* One 10-bit DAC */ # define LPC43_NADC10_CHANNELS (8) /* Eight ADC channels (per ADC)*/ # define LPC43_NADC12 (1) /* ONne 12-bit ADC controllers (ADCHS)*/ +#elif defined(CONFIG_ARCH_CHIP_LPC4337JET100) +# define LPC43_FLASH_BANKA_SIZE (512*1024) /* 1024Kb FLASH */ +# define LPC43_FLASH_BANKB_SIZE (512*1024) +# define LPC43_LOCSRAM_BANK0_SIZE (32*1024) /* 72Kb Local SRAM */ +# define LPC43_LOCSRAM_BANK1_SIZE (40*1024) +# define LPC43_AHBSRAM_BANK0_SIZE (48*1024) /* 64Kb AHB SRAM */ +# define LPC43_AHBSRAM_BANK1_SIZE (0) +# define LPC43_AHBSRAM_BANK2_SIZE (16*1024) +# define LPC43_EEPROM_SIZE (16*1024) /* 16Kb EEPROM */ +# define LPC43_NLCD (0) /* Has LCD controller */ +# define LPC43_ETHERNET (1) /* One Ethernet controller */ +# define LPC43_USB0 (1) /* Have USB0 (Host, Device, OTG) */ +# define LPC43_USB1 (1) /* Have USB1 (Host, Device) */ +# define LPC43_USB1_ULPI (0) /* Have USB1 (Host, Device) with ULPI I/F */ +# define LPC43_MCPWM (0) /* One PWM interface */ +# define LPC43_QEI (0) /* One Quadrature Encoder interface */ +# define LPC43_NUSARTS (4) /* Three USARTs + 1 UART */ +# define LPC43_NSSP (2) /* Two SSP controllers */ +# define LPC43_NTIMERS (4) /* Four Timers */ +# define LPC43_NI2C (2) /* Two I2C controllers */ +# define LPC43_NI2S (2) /* Two I2S controllers */ +# define LPC43_NCAN (2) /* Two CAN controllers */ +# define LPC43_NDAC (1) /* One 10-bit DAC */ +# define LPC43_NADC (2) /* Two 10-bit ADC controllers */ +# define LPC43_NADC_CHANNELS (4) /* Four ADC channels */ #else # error "Unsupported LPC43xx chip" #endif diff --git a/arch/arm/src/lpc43xx/Kconfig b/arch/arm/src/lpc43xx/Kconfig index b0385a9d3c..b6349e5c54 100644 --- a/arch/arm/src/lpc43xx/Kconfig +++ b/arch/arm/src/lpc43xx/Kconfig @@ -37,6 +37,9 @@ config ARCH_CHIP_LPC4330FET256 config ARCH_CHIP_LPC4337JBD144 bool "LPC4337JBD144" +config ARCH_CHIP_LPC4337JET100 + bool "LPC4337JET100" + config ARCH_CHIP_LPC4350FBD208 bool "LPC4350FBD208" @@ -81,7 +84,7 @@ config ARCH_FAMILY_LPC4320 config ARCH_FAMILY_LPC4330 bool - default y if ARCH_CHIP_LPC4330FBD144 || ARCH_CHIP_LPC4330FET100 || ARCH_CHIP_LPC4330FET180 || ARCH_CHIP_LPC4330FET256 + default y if ARCH_CHIP_LPC4330FBD144 || ARCH_CHIP_LPC4330FET100 || ARCH_CHIP_LPC4330FET180 || ARCH_CHIP_LPC4330FET256 || ARCH_CHIP_LPC4337JET100 select ARCH_HAVE_TICKLESS config ARCH_FAMILY_LPC4337 diff --git a/arch/arm/src/lpc43xx/chip.h b/arch/arm/src/lpc43xx/chip.h index 08ef7217a5..630bdcb190 100644 --- a/arch/arm/src/lpc43xx/chip.h +++ b/arch/arm/src/lpc43xx/chip.h @@ -141,6 +141,10 @@ # define ARMV7M_PERIPHERAL_INTERRUPTS 53 # include "chip/lpc435357_memorymap.h" # include "chip/lpc4357fet256_pinconfig.h" +#elif defined(CONFIG_ARCH_CHIP_LPC4337JET100) +# define ARMV7M_PERIPHERAL_INTERRUPTS 53 +# include "chip/lpc435357_memorymap.h" +# include "chip/lpc4337jet100_pinconfig.h" #else # error "Unsupported LPC43xx chip" #endif diff --git a/arch/arm/src/lpc43xx/chip/lpc4337jet100_pinconfig.h b/arch/arm/src/lpc43xx/chip/lpc4337jet100_pinconfig.h new file mode 100644 index 0000000000..b6e0358f14 --- /dev/null +++ b/arch/arm/src/lpc43xx/chip/lpc4337jet100_pinconfig.h @@ -0,0 +1,982 @@ +/**************************************************************************************************** + * arch/arm/src/lpc43xx/chip/lpc4337jet100_pinconfig.h + * + * Copyright (C) 2014 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************************************/ + +#ifndef __ARCH_ARM_SRC_LPC43XX_CHIP_LPC4337JET100_PINCONF_H +#define __ARCH_ARM_SRC_LPC43XX_CHIP_LPC4337JET100_PINCONF_H + +/**************************************************************************************************** + * Included Files + ****************************************************************************************************/ + +#include + +/**************************************************************************************************** + * Pre-processor Definitions + ****************************************************************************************************/ +/* NOTES: + * + * 1. These settings were taken from the LPC43_10_20_30_50 data sheet and may not be applicable to + * any other family members. + * + * 2. Settings taken from the data sheet include only function, pin set, and pin number. Additional + * settings must be verified before using these pin configurations (like pull-ups, open-drain, + * drive strength, input buffering, etc.). + * + * 3. Alternative pin selections are provided with a numeric suffix like _1, _2, etc. Drivers, + * however, will use the pin selection without the numeric suffix. Additional definitions are + * required in the board.h file to select between the alternative pins. For example, if CAN1_RD + * connects via Pins1[18], then the following definition should appear in the board.h header file + * for that board: + * + * 4. For ADC pins (PINCONF_ADCNpM), the pin must first be configured configured as a GPIO input. + * Then SCU's ADC function select register can be used to select the ADC. + * + * #define PINCONF_CAN1_RD PINCONF_CAN1_RD_1 + * + * The driver will then automatically configre Pins1[18] as the CAN1 RD pin. + */ + +#define PINCONF_ADC0p0 (PINCONF_FUNC0|PINCONF_PINS4|PINCONF_PIN_3) +#define PINCONF_ADC0p1 (PINCONF_FUNC0|PINCONF_PINS4|PINCONF_PIN_1) +#define PINCONF_ADC0p2 (PINCONF_FUNC4|PINCONF_PINSF|PINCONF_PIN_8) +#define PINCONF_ADC0p3 (PINCONF_FUNC0|PINCONF_PINS7|PINCONF_PIN_5) +#define PINCONF_ADC0p4 (PINCONF_FUNC0|PINCONF_PINS7|PINCONF_PIN_4) +#define PINCONF_ADC0p5 (PINCONF_FUNC4|PINCONF_PINSF|PINCONF_PIN_10) +#define PINCONF_ADC0p6 (PINCONF_FUNC0|PINCONF_PINSB|PINCONF_PIN_6) + +#define PINCONF_ADC1p0 (PINCONF_FUNC4|PINCONF_PINSC|PINCONF_PIN_3) +#define PINCONF_ADC1p1 (PINCONF_FUNC0|PINCONF_PINSC|PINCONF_PIN_0) +#define PINCONF_ADC1p2 (PINCONF_FUNC4|PINCONF_PINSF|PINCONF_PIN_9) +#define PINCONF_ADC1p3 (PINCONF_FUNC4|PINCONF_PINSF|PINCONF_PIN_6) +#define PINCONF_ADC1p4 (PINCONF_FUNC4|PINCONF_PINSF|PINCONF_PIN_5) +#define PINCONF_ADC1p5 (PINCONF_FUNC4|PINCONF_PINSF|PINCONF_PIN_11) +#define PINCONF_ADC1p6 (PINCONF_FUNC0|PINCONF_PINS7|PINCONF_PIN_7) +#define PINCONF_ADC1p7 (PINCONF_FUNC4|PINCONF_PINSF|PINCONF_PIN_7) + +#define PINCONF_ADCTRIG0 (PINCONF_FUNC0|PINCONF_PINSE|PINCONF_PIN_2) +#define PINCONF_ADCTRIG1_1 (PINCONF_FUNC2|PINCONF_PINSE|PINCONF_PIN_3) +#define PINCONF_ADCTRIG1_2 (PINCONF_FUNC3|PINCONF_PINS2|PINCONF_PIN_5) + +#define PINCONF_CAN0_RD_1 (PINCONF_FUNC1|PINCONF_PINSE|PINCONF_PIN_2) +#define PINCONF_CAN0_RD_2 (PINCONF_FUNC2|PINCONF_PINS3|PINCONF_PIN_1) +#define PINCONF_CAN0_TD_1 (PINCONF_FUNC1|PINCONF_PINSE|PINCONF_PIN_3) +#define PINCONF_CAN0_TD_2 (PINCONF_FUNC2|PINCONF_PINS3|PINCONF_PIN_2) + +#define PINCONF_CAN1_RD_1 (PINCONF_FUNC5|PINCONF_PINS1|PINCONF_PIN_18) +#define PINCONF_CAN1_RD_2 (PINCONF_FUNC5|PINCONF_PINSE|PINCONF_PIN_1) +#define PINCONF_CAN1_RD_3 (PINCONF_FUNC6|PINCONF_PINS4|PINCONF_PIN_9) +#define PINCONF_CAN1_TD_1 (PINCONF_FUNC5|PINCONF_PINS1|PINCONF_PIN_17) +#define PINCONF_CAN1_TD_2 (PINCONF_FUNC5|PINCONF_PINSE|PINCONF_PIN_0) +#define PINCONF_CAN1_TD_3 (PINCONF_FUNC6|PINCONF_PINS4|PINCONF_PIN_8) + +#define PINCONF_CGU_OUT0 (PINCONF_FUNC6|PINCONF_PINS8|PINCONF_PIN_8) +#define PINCONF_CGU_OUT1_1 (PINCONF_FUNC4|PINCONF_PINS3|PINCONF_PIN_3) +#define PINCONF_CGU_OUT1_2 (PINCONF_FUNC6|PINCONF_PINSA|PINCONF_PIN_0) + +#define PINCONF_CLKOUT (PINCONF_FUNC4|PINCONF_PINS1|PINCONF_PIN_19) + +#define PINCONF_CTIN0_1 (PINCONF_FUNC1|PINCONF_PINSD|PINCONF_PIN_13) +#define PINCONF_CTIN0_2 (PINCONF_FUNC3|PINCONF_PINS2|PINCONF_PIN_4) +#define PINCONF_CTIN1_1 (PINCONF_FUNC1|PINCONF_PINSD|PINCONF_PIN_10) +#define PINCONF_CTIN1_2 (PINCONF_FUNC3|PINCONF_PINS2|PINCONF_PIN_3) +#define PINCONF_CTIN2_1 (PINCONF_FUNC1|PINCONF_PINS2|PINCONF_PIN_5) +#define PINCONF_CTIN2_2 (PINCONF_FUNC1|PINCONF_PINS4|PINCONF_PIN_10) +#define PINCONF_CTIN2_3 (PINCONF_FUNC2|PINCONF_PINSF|PINCONF_PIN_8) +#define PINCONF_CTIN3_1 (PINCONF_FUNC1|PINCONF_PINS1|PINCONF_PIN_0) +#define PINCONF_CTIN3_2 (PINCONF_FUNC1|PINCONF_PINS7|PINCONF_PIN_3) +#define PINCONF_CTIN3_3 (PINCONF_FUNC1|PINCONF_PINSE|PINCONF_PIN_10) +#define PINCONF_CTIN4_1 (PINCONF_FUNC1|PINCONF_PINS2|PINCONF_PIN_13) +#define PINCONF_CTIN4_2 (PINCONF_FUNC1|PINCONF_PINS7|PINCONF_PIN_2) +#define PINCONF_CTIN4_3 (PINCONF_FUNC1|PINCONF_PINSE|PINCONF_PIN_9) +#define PINCONF_CTIN5_1 (PINCONF_FUNC1|PINCONF_PINS1|PINCONF_PIN_6) +#define PINCONF_CTIN5_2 (PINCONF_FUNC1|PINCONF_PINS4|PINCONF_PIN_8) +#define PINCONF_CTIN5_3 (PINCONF_FUNC1|PINCONF_PINSD|PINCONF_PIN_7) +#define PINCONF_CTIN5_4 (PINCONF_FUNC5|PINCONF_PINSB|PINCONF_PIN_4) +#define PINCONF_CTIN6_1 (PINCONF_FUNC1|PINCONF_PINS4|PINCONF_PIN_9) +#define PINCONF_CTIN6_2 (PINCONF_FUNC1|PINCONF_PINS6|PINCONF_PIN_4) +#define PINCONF_CTIN6_3 (PINCONF_FUNC1|PINCONF_PINSD|PINCONF_PIN_8) +#define PINCONF_CTIN6_4 (PINCONF_FUNC5|PINCONF_PINS2|PINCONF_PIN_2) +#define PINCONF_CTIN6_5 (PINCONF_FUNC5|PINCONF_PINSB|PINCONF_PIN_6) +#define PINCONF_CTIN7_1 (PINCONF_FUNC5|PINCONF_PINS2|PINCONF_PIN_6) +#define PINCONF_CTIN7_2 (PINCONF_FUNC5|PINCONF_PINSB|PINCONF_PIN_5) + +#define PINCONF_CTOUT0_1 (PINCONF_FUNC1|PINCONF_PINS2|PINCONF_PIN_8) +#define PINCONF_CTOUT0_2 (PINCONF_FUNC1|PINCONF_PINS4|PINCONF_PIN_2) +#define PINCONF_CTOUT0_3 (PINCONF_FUNC1|PINCONF_PINSE|PINCONF_PIN_15) +#define PINCONF_CTOUT1_1 (PINCONF_FUNC1|PINCONF_PINS2|PINCONF_PIN_7) +#define PINCONF_CTOUT1_2 (PINCONF_FUNC1|PINCONF_PINS4|PINCONF_PIN_1) +#define PINCONF_CTOUT1_3 (PINCONF_FUNC2|PINCONF_PINSF|PINCONF_PIN_9) +#define PINCONF_CTOUT2_1 (PINCONF_FUNC1|PINCONF_PINS2|PINCONF_PIN_10) +#define PINCONF_CTOUT2_2 (PINCONF_FUNC1|PINCONF_PINS4|PINCONF_PIN_4) +#define PINCONF_CTOUT2_3 (PINCONF_FUNC1|PINCONF_PINSE|PINCONF_PIN_6) +#define PINCONF_CTOUT3_1 (PINCONF_FUNC1|PINCONF_PINS2|PINCONF_PIN_9) +#define PINCONF_CTOUT3_2 (PINCONF_FUNC1|PINCONF_PINS4|PINCONF_PIN_3) +#define PINCONF_CTOUT3_3 (PINCONF_FUNC1|PINCONF_PINSE|PINCONF_PIN_5) +#define PINCONF_CTOUT4_1 (PINCONF_FUNC1|PINCONF_PINS2|PINCONF_PIN_12) +#define PINCONF_CTOUT4_2 (PINCONF_FUNC1|PINCONF_PINS4|PINCONF_PIN_6) +#define PINCONF_CTOUT4_3 (PINCONF_FUNC1|PINCONF_PINSE|PINCONF_PIN_8) +#define PINCONF_CTOUT5_1 (PINCONF_FUNC1|PINCONF_PINS2|PINCONF_PIN_11) +#define PINCONF_CTOUT5_2 (PINCONF_FUNC1|PINCONF_PINS4|PINCONF_PIN_5) +#define PINCONF_CTOUT5_3 (PINCONF_FUNC1|PINCONF_PINSE|PINCONF_PIN_7) +#define PINCONF_CTOUT6_1 (PINCONF_FUNC1|PINCONF_PINS1|PINCONF_PIN_2) +#define PINCONF_CTOUT6_2 (PINCONF_FUNC1|PINCONF_PINS6|PINCONF_PIN_5) +#define PINCONF_CTOUT6_3 (PINCONF_FUNC1|PINCONF_PINSD|PINCONF_PIN_3) +#define PINCONF_CTOUT6_4 (PINCONF_FUNC5|PINCONF_PINSB|PINCONF_PIN_1) +#define PINCONF_CTOUT7_1 (PINCONF_FUNC1|PINCONF_PINS1|PINCONF_PIN_1) +#define PINCONF_CTOUT7_2 (PINCONF_FUNC1|PINCONF_PINS6|PINCONF_PIN_12) +#define PINCONF_CTOUT7_3 (PINCONF_FUNC1|PINCONF_PINSD|PINCONF_PIN_2) +#define PINCONF_CTOUT7_4 (PINCONF_FUNC5|PINCONF_PINSB|PINCONF_PIN_2) +#define PINCONF_CTOUT8_1 (PINCONF_FUNC1|PINCONF_PINS1|PINCONF_PIN_3) +#define PINCONF_CTOUT8_2 (PINCONF_FUNC1|PINCONF_PINS7|PINCONF_PIN_7) +#define PINCONF_CTOUT8_3 (PINCONF_FUNC1|PINCONF_PINSD|PINCONF_PIN_4) +#define PINCONF_CTOUT8_4 (PINCONF_FUNC5|PINCONF_PINSB|PINCONF_PIN_3) +#define PINCONF_CTOUT8_5 (PINCONF_FUNC6|PINCONF_PINSD|PINCONF_PIN_15) +#define PINCONF_CTOUT9_1 (PINCONF_FUNC1|PINCONF_PINS1|PINCONF_PIN_4) +#define PINCONF_CTOUT9_2 (PINCONF_FUNC1|PINCONF_PINSA|PINCONF_PIN_4) +#define PINCONF_CTOUT9_3 (PINCONF_FUNC1|PINCONF_PINSD|PINCONF_PIN_5) +#define PINCONF_CTOUT10_1 (PINCONF_FUNC1|PINCONF_PINS1|PINCONF_PIN_5) +#define PINCONF_CTOUT10_2 (PINCONF_FUNC1|PINCONF_PINSB|PINCONF_PIN_0) +#define PINCONF_CTOUT10_3 (PINCONF_FUNC1|PINCONF_PINSD|PINCONF_PIN_6) +#define PINCONF_CTOUT10_4 (PINCONF_FUNC6|PINCONF_PINSD|PINCONF_PIN_12) +#define PINCONF_CTOUT11_1 (PINCONF_FUNC1|PINCONF_PINS7|PINCONF_PIN_6) +#define PINCONF_CTOUT11_2 (PINCONF_FUNC1|PINCONF_PINSE|PINCONF_PIN_12) +#define PINCONF_CTOUT11_3 (PINCONF_FUNC2|PINCONF_PINS1|PINCONF_PIN_9) +#define PINCONF_CTOUT11_4 (PINCONF_FUNC6|PINCONF_PINSD|PINCONF_PIN_14) +#define PINCONF_CTOUT12_1 (PINCONF_FUNC1|PINCONF_PINS7|PINCONF_PIN_5) +#define PINCONF_CTOUT12_2 (PINCONF_FUNC1|PINCONF_PINSE|PINCONF_PIN_11) +#define PINCONF_CTOUT12_3 (PINCONF_FUNC2|PINCONF_PINS1|PINCONF_PIN_8) +#define PINCONF_CTOUT12_4 (PINCONF_FUNC6|PINCONF_PINSD|PINCONF_PIN_16) +#define PINCONF_CTOUT13_1 (PINCONF_FUNC1|PINCONF_PINS7|PINCONF_PIN_4) +#define PINCONF_CTOUT13_2 (PINCONF_FUNC1|PINCONF_PINSD|PINCONF_PIN_9) +#define PINCONF_CTOUT13_3 (PINCONF_FUNC2|PINCONF_PINS1|PINCONF_PIN_7) +#define PINCONF_CTOUT13_4 (PINCONF_FUNC6|PINCONF_PINSD|PINCONF_PIN_13) +#define PINCONF_CTOUT14_1 (PINCONF_FUNC1|PINCONF_PINS7|PINCONF_PIN_0) +#define PINCONF_CTOUT14_2 (PINCONF_FUNC1|PINCONF_PINSE|PINCONF_PIN_13) +#define PINCONF_CTOUT14_3 (PINCONF_FUNC2|PINCONF_PINS1|PINCONF_PIN_10) +#define PINCONF_CTOUT14_4 (PINCONF_FUNC6|PINCONF_PINSD|PINCONF_PIN_11) +#define PINCONF_CTOUT15_1 (PINCONF_FUNC1|PINCONF_PINS7|PINCONF_PIN_1) +#define PINCONF_CTOUT15_2 (PINCONF_FUNC1|PINCONF_PINSD|PINCONF_PIN_0) +#define PINCONF_CTOUT15_3 (PINCONF_FUNC2|PINCONF_PINS1|PINCONF_PIN_11) + +#define PINCONF_EMC_A0 (PINCONF_FUNC3|PINCONF_PINS2|PINCONF_PIN_9) +#define PINCONF_EMC_A1 (PINCONF_FUNC3|PINCONF_PINS2|PINCONF_PIN_10) +#define PINCONF_EMC_A2 (PINCONF_FUNC3|PINCONF_PINS2|PINCONF_PIN_11) +#define PINCONF_EMC_A3 (PINCONF_FUNC3|PINCONF_PINS2|PINCONF_PIN_12) +#define PINCONF_EMC_A4 (PINCONF_FUNC3|PINCONF_PINS2|PINCONF_PIN_13) +#define PINCONF_EMC_A5 (PINCONF_FUNC2|PINCONF_PINS1|PINCONF_PIN_0) +#define PINCONF_EMC_A6 (PINCONF_FUNC2|PINCONF_PINS1|PINCONF_PIN_1) +#define PINCONF_EMC_A7 (PINCONF_FUNC2|PINCONF_PINS1|PINCONF_PIN_2) +#define PINCONF_EMC_A8 (PINCONF_FUNC3|PINCONF_PINS2|PINCONF_PIN_8) +#define PINCONF_EMC_A9 (PINCONF_FUNC3|PINCONF_PINS2|PINCONF_PIN_7) +#define PINCONF_EMC_A10 (PINCONF_FUNC2|PINCONF_PINS2|PINCONF_PIN_6) +#define PINCONF_EMC_A11 (PINCONF_FUNC2|PINCONF_PINS2|PINCONF_PIN_2) +#define PINCONF_EMC_A12 (PINCONF_FUNC2|PINCONF_PINS2|PINCONF_PIN_1) +#define PINCONF_EMC_A13 (PINCONF_FUNC2|PINCONF_PINS2|PINCONF_PIN_0) +#define PINCONF_EMC_A14 (PINCONF_FUNC1|PINCONF_PINS6|PINCONF_PIN_8) +#define PINCONF_EMC_A15 (PINCONF_FUNC1|PINCONF_PINS6|PINCONF_PIN_7) +#define PINCONF_EMC_A16 (PINCONF_FUNC2|PINCONF_PINSD|PINCONF_PIN_16) +#define PINCONF_EMC_A17 (PINCONF_FUNC2|PINCONF_PINSD|PINCONF_PIN_15) +#define PINCONF_EMC_A18 (PINCONF_FUNC3|PINCONF_PINSE|PINCONF_PIN_0) +#define PINCONF_EMC_A19 (PINCONF_FUNC3|PINCONF_PINSE|PINCONF_PIN_1) +#define PINCONF_EMC_A20 (PINCONF_FUNC3|PINCONF_PINSE|PINCONF_PIN_2) +#define PINCONF_EMC_A21 (PINCONF_FUNC3|PINCONF_PINSE|PINCONF_PIN_3) +#define PINCONF_EMC_A22 (PINCONF_FUNC3|PINCONF_PINSE|PINCONF_PIN_4) +#define PINCONF_EMC_A23 (PINCONF_FUNC3|PINCONF_PINSA|PINCONF_PIN_4) +#define PINCONF_EMC_BLS0 (PINCONF_FUNC3|PINCONF_PINS1|PINCONF_PIN_4) +#define PINCONF_EMC_BLS1 (PINCONF_FUNC1|PINCONF_PINS6|PINCONF_PIN_6) +#define PINCONF_EMC_BLS2 (PINCONF_FUNC2|PINCONF_PINSD|PINCONF_PIN_13) +#define PINCONF_EMC_BLS3 (PINCONF_FUNC2|PINCONF_PINSD|PINCONF_PIN_10) +#define PINCONF_EMC_CAS (PINCONF_FUNC3|PINCONF_PINS6|PINCONF_PIN_4) +#define PINCONF_EMC_CKEOUT0 (PINCONF_FUNC3|PINCONF_PINS6|PINCONF_PIN_11) +#define PINCONF_EMC_CKEOUT1 (PINCONF_FUNC1|PINCONF_PINS6|PINCONF_PIN_2) +#define PINCONF_EMC_CKEOUT2 (PINCONF_FUNC2|PINCONF_PINSD|PINCONF_PIN_1) +#define PINCONF_EMC_CKEOUT3 (PINCONF_FUNC3|PINCONF_PINSE|PINCONF_PIN_15) +#define PINCONF_EMC_CS0 (PINCONF_FUNC3|PINCONF_PINS1|PINCONF_PIN_5) +#define PINCONF_EMC_CS1 (PINCONF_FUNC3|PINCONF_PINS6|PINCONF_PIN_3) +#define PINCONF_EMC_CS2 (PINCONF_FUNC2|PINCONF_PINSD|PINCONF_PIN_12) +#define PINCONF_EMC_CS3 (PINCONF_FUNC2|PINCONF_PINSD|PINCONF_PIN_11) +#define PINCONF_EMC_D0 (PINCONF_FUNC3|PINCONF_PINS1|PINCONF_PIN_7) +#define PINCONF_EMC_D1 (PINCONF_FUNC3|PINCONF_PINS1|PINCONF_PIN_8) +#define PINCONF_EMC_D2 (PINCONF_FUNC3|PINCONF_PINS1|PINCONF_PIN_9) +#define PINCONF_EMC_D3 (PINCONF_FUNC3|PINCONF_PINS1|PINCONF_PIN_10) +#define PINCONF_EMC_D4 (PINCONF_FUNC3|PINCONF_PINS1|PINCONF_PIN_11) +#define PINCONF_EMC_D5 (PINCONF_FUNC3|PINCONF_PINS1|PINCONF_PIN_12) +#define PINCONF_EMC_D6 (PINCONF_FUNC3|PINCONF_PINS1|PINCONF_PIN_13) +#define PINCONF_EMC_D7 (PINCONF_FUNC3|PINCONF_PINS1|PINCONF_PIN_14) +#define PINCONF_EMC_D8 (PINCONF_FUNC2|PINCONF_PINS5|PINCONF_PIN_4) +#define PINCONF_EMC_D9 (PINCONF_FUNC2|PINCONF_PINS5|PINCONF_PIN_5) +#define PINCONF_EMC_D10 (PINCONF_FUNC2|PINCONF_PINS5|PINCONF_PIN_6) +#define PINCONF_EMC_D11 (PINCONF_FUNC2|PINCONF_PINS5|PINCONF_PIN_7) +#define PINCONF_EMC_D12 (PINCONF_FUNC2|PINCONF_PINS5|PINCONF_PIN_0) +#define PINCONF_EMC_D13 (PINCONF_FUNC2|PINCONF_PINS5|PINCONF_PIN_1) +#define PINCONF_EMC_D14 (PINCONF_FUNC2|PINCONF_PINS5|PINCONF_PIN_2) +#define PINCONF_EMC_D15 (PINCONF_FUNC2|PINCONF_PINS5|PINCONF_PIN_3) +#define PINCONF_EMC_D16 (PINCONF_FUNC2|PINCONF_PINSD|PINCONF_PIN_2) +#define PINCONF_EMC_D17 (PINCONF_FUNC2|PINCONF_PINSD|PINCONF_PIN_3) +#define PINCONF_EMC_D18 (PINCONF_FUNC2|PINCONF_PINSD|PINCONF_PIN_4) +#define PINCONF_EMC_D19 (PINCONF_FUNC2|PINCONF_PINSD|PINCONF_PIN_5) +#define PINCONF_EMC_D20 (PINCONF_FUNC2|PINCONF_PINSD|PINCONF_PIN_6) +#define PINCONF_EMC_D21 (PINCONF_FUNC2|PINCONF_PINSD|PINCONF_PIN_7) +#define PINCONF_EMC_D22 (PINCONF_FUNC2|PINCONF_PINSD|PINCONF_PIN_8) +#define PINCONF_EMC_D23 (PINCONF_FUNC2|PINCONF_PINSD|PINCONF_PIN_9) +#define PINCONF_EMC_D24 (PINCONF_FUNC3|PINCONF_PINSE|PINCONF_PIN_5) +#define PINCONF_EMC_D25 (PINCONF_FUNC3|PINCONF_PINSE|PINCONF_PIN_6) +#define PINCONF_EMC_D26 (PINCONF_FUNC3|PINCONF_PINSE|PINCONF_PIN_7) +#define PINCONF_EMC_D27 (PINCONF_FUNC3|PINCONF_PINSE|PINCONF_PIN_8) +#define PINCONF_EMC_D28 (PINCONF_FUNC3|PINCONF_PINSE|PINCONF_PIN_9) +#define PINCONF_EMC_D29 (PINCONF_FUNC3|PINCONF_PINSE|PINCONF_PIN_10) +#define PINCONF_EMC_D30 (PINCONF_FUNC3|PINCONF_PINSE|PINCONF_PIN_11) +#define PINCONF_EMC_D31 (PINCONF_FUNC3|PINCONF_PINSE|PINCONF_PIN_12) +#define PINCONF_EMC_DQMOUT0 (PINCONF_FUNC3|PINCONF_PINS6|PINCONF_PIN_12) +#define PINCONF_EMC_DQMOUT1 (PINCONF_FUNC3|PINCONF_PINS6|PINCONF_PIN_10) +#define PINCONF_EMC_DQMOUT2 (PINCONF_FUNC2|PINCONF_PINSD|PINCONF_PIN_0) +#define PINCONF_EMC_DQMOUT3 (PINCONF_FUNC3|PINCONF_PINSE|PINCONF_PIN_13) +#define PINCONF_EMC_DYCS0 (PINCONF_FUNC3|PINCONF_PINS6|PINCONF_PIN_9) +#define PINCONF_EMC_DYCS1 (PINCONF_FUNC1|PINCONF_PINS6|PINCONF_PIN_1) +#define PINCONF_EMC_DYCS2 (PINCONF_FUNC2|PINCONF_PINSD|PINCONF_PIN_14) +#define PINCONF_EMC_DYCS3 (PINCONF_FUNC3|PINCONF_PINSE|PINCONF_PIN_14) +#define PINCONF_EMC_OE (PINCONF_FUNC3|PINCONF_PINS1|PINCONF_PIN_3) +#define PINCONF_EMC_RAS (PINCONF_FUNC3|PINCONF_PINS6|PINCONF_PIN_5) +#define PINCONF_EMC_WE (PINCONF_FUNC3|PINCONF_PINS1|PINCONF_PIN_6) + +#define PINCONF_ENET_COL_1 (PINCONF_FUNC2|PINCONF_PINS0|PINCONF_PIN_1) +#define PINCONF_ENET_COL_2 (PINCONF_FUNC5|PINCONF_PINS9|PINCONF_PIN_6) +#define PINCONF_ENET_COL_3 (PINCONF_FUNC7|PINCONF_PINS4|PINCONF_PIN_1) +#define PINCONF_ENET_CRS_1 (PINCONF_FUNC3|PINCONF_PINS1|PINCONF_PIN_16) +#define PINCONF_ENET_CRS_2 (PINCONF_FUNC5|PINCONF_PINS9|PINCONF_PIN_0) +#define PINCONF_ENET_MDC_1 (PINCONF_FUNC3|PINCONF_PINSC|PINCONF_PIN_1) +#define PINCONF_ENET_MDC_2 (PINCONF_FUNC6|PINCONF_PINS7|PINCONF_PIN_7) +#define PINCONF_ENET_MDC_3 (PINCONF_FUNC7|PINCONF_PINS2|PINCONF_PIN_0) +#define PINCONF_ENET_MDIO (PINCONF_FUNC3|PINCONF_PINS1|PINCONF_PIN_17|PINCONF_FLOAT|PINCONF_INBUFFER|PINCONF_GLITCH) +#define PINCONF_ENET_REF_CLK (PINCONF_FUNC0|PINCONF_PINS1|PINCONF_PIN_19|PINCONF_SLEW_FAST|PINCONF_INBUFFER|PINCONF_GLITCH|PINCONF_FLOAT) +#define PINCONF_ENET_RXD0 (PINCONF_FUNC3|PINCONF_PINS1|PINCONF_PIN_15|PINCONF_FLOAT|PINCONF_INBUFFER|PINCONF_GLITCH) +#define PINCONF_ENET_RXD1 (PINCONF_FUNC2|PINCONF_PINS0|PINCONF_PIN_0|PINCONF_FLOAT|PINCONF_INBUFFER|PINCONF_GLITCH) +#define PINCONF_ENET_RXD2_1 (PINCONF_FUNC3|PINCONF_PINSC|PINCONF_PIN_6) +#define PINCONF_ENET_RXD2_2 (PINCONF_FUNC5|PINCONF_PINS9|PINCONF_PIN_3) +#define PINCONF_ENET_RXD3_1 (PINCONF_FUNC3|PINCONF_PINSC|PINCONF_PIN_7) +#define PINCONF_ENET_RXD3_2 (PINCONF_FUNC5|PINCONF_PINS9|PINCONF_PIN_2) +#define PINCONF_ENET_RX_CLK (PINCONF_FUNC3|PINCONF_PINSC|PINCONF_PIN_0) +#define PINCONF_ENET_RX_DV_1 (PINCONF_FUNC3|PINCONF_PINSC|PINCONF_PIN_8) +#define PINCONF_ENET_RX_DV_2 (PINCONF_FUNC7|PINCONF_PINS1|PINCONF_PIN_16|PINCONF_FLOAT|PINCONF_INBUFFER|PINCONF_GLITCH) +#define PINCONF_ENET_RX_ER_1 (PINCONF_FUNC3|PINCONF_PINSC|PINCONF_PIN_9) +#define PINCONF_ENET_RX_ER_2 (PINCONF_FUNC5|PINCONF_PINS9|PINCONF_PIN_1) +#define PINCONF_ENET_TXD0 (PINCONF_FUNC3|PINCONF_PINS1|PINCONF_PIN_18|PINCONF_FLOAT|PINCONF_GLITCH) +#define PINCONF_ENET_TXD1 (PINCONF_FUNC3|PINCONF_PINS1|PINCONF_PIN_20|PINCONF_FLOAT|PINCONF_GLITCH) +#define PINCONF_ENET_TXD2_1 (PINCONF_FUNC3|PINCONF_PINSC|PINCONF_PIN_2) +#define PINCONF_ENET_TXD2_2 (PINCONF_FUNC5|PINCONF_PINS9|PINCONF_PIN_4) +#define PINCONF_ENET_TXD3_1 (PINCONF_FUNC3|PINCONF_PINSC|PINCONF_PIN_3) +#define PINCONF_ENET_TXD3_2 (PINCONF_FUNC5|PINCONF_PINS9|PINCONF_PIN_5) +#define PINCONF_ENET_TXEN (PINCONF_FUNC6|PINCONF_PINS0|PINCONF_PIN_1|PINCONF_FLOAT|PINCONF_GLITCH) +#define PINCONF_ENET_TX_CLK (PINCONF_FUNC0|PINCONF_PINS1|PINCONF_PIN_19) +#define PINCONF_ENET_TX_EN (PINCONF_FUNC3|PINCONF_PINSC|PINCONF_PIN_4) +#define PINCONF_ENET_TX_ER_1 (PINCONF_FUNC3|PINCONF_PINSC|PINCONF_PIN_5) +#define PINCONF_ENET_TX_ER_2 (PINCONF_FUNC6|PINCONF_PINSC|PINCONF_PIN_14) + +#define PINCONF_GPIO0p0 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS0|PINCONF_PIN_0) +#define PINCONF_GPIO0p1 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS0|PINCONF_PIN_1) +#define PINCONF_GPIO0p2 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS1|PINCONF_PIN_15) +#define PINCONF_GPIO0p3 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS1|PINCONF_PIN_16) +#define PINCONF_GPIO0p4 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS1|PINCONF_PIN_0) +#define PINCONF_GPIO0p5 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS6|PINCONF_PIN_6) +#define PINCONF_GPIO0p6 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS3|PINCONF_PIN_6) +#define PINCONF_GPIO0p7 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS2|PINCONF_PIN_7) +#define PINCONF_GPIO0p8 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS1|PINCONF_PIN_1) +#define PINCONF_GPIO0p9 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS1|PINCONF_PIN_2) +#define PINCONF_GPIO0p10 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS1|PINCONF_PIN_3) +#define PINCONF_GPIO0p11 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS1|PINCONF_PIN_4) +#define PINCONF_GPIO0p12 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS1|PINCONF_PIN_17) +#define PINCONF_GPIO0p13 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS1|PINCONF_PIN_18) +#define PINCONF_GPIO0p14 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS2|PINCONF_PIN_10) +#define PINCONF_GPIO0p15 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS1|PINCONF_PIN_20) +#define PINCONF_GPIO1p0 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS1|PINCONF_PIN_7) +#define PINCONF_GPIO1p1 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS1|PINCONF_PIN_8) +#define PINCONF_GPIO1p2 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS1|PINCONF_PIN_9) +#define PINCONF_GPIO1p3 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS1|PINCONF_PIN_10) +#define PINCONF_GPIO1p4 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS1|PINCONF_PIN_11) +#define PINCONF_GPIO1p5 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS1|PINCONF_PIN_12) +#define PINCONF_GPIO1p6 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS1|PINCONF_PIN_13) +#define PINCONF_GPIO1p7 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS1|PINCONF_PIN_14) +#define PINCONF_GPIO1p8 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS1|PINCONF_PIN_5) +#define PINCONF_GPIO1p9 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS1|PINCONF_PIN_6) +#define PINCONF_GPIO1p10 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS2|PINCONF_PIN_9) +#define PINCONF_GPIO1p11 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS2|PINCONF_PIN_11) +#define PINCONF_GPIO1p12 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS2|PINCONF_PIN_12) +#define PINCONF_GPIO1p13 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS2|PINCONF_PIN_13) +#define PINCONF_GPIO1p14 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS3|PINCONF_PIN_4) +#define PINCONF_GPIO1p15 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS3|PINCONF_PIN_5) +#define PINCONF_GPIO2p0 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS4|PINCONF_PIN_0) +#define PINCONF_GPIO2p1 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS4|PINCONF_PIN_1) +#define PINCONF_GPIO2p2 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS4|PINCONF_PIN_2) +#define PINCONF_GPIO2p3 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS4|PINCONF_PIN_3) +#define PINCONF_GPIO2p4 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS4|PINCONF_PIN_4) +#define PINCONF_GPIO2p5 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS4|PINCONF_PIN_5) +#define PINCONF_GPIO2p6 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS4|PINCONF_PIN_6) +#define PINCONF_GPIO2p7 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS5|PINCONF_PIN_7) +#define PINCONF_GPIO2p8 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS6|PINCONF_PIN_12) +#define PINCONF_GPIO2p9 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS5|PINCONF_PIN_0) +#define PINCONF_GPIO2p10 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS5|PINCONF_PIN_1) +#define PINCONF_GPIO2p11 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS5|PINCONF_PIN_2) +#define PINCONF_GPIO2p12 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS5|PINCONF_PIN_3) +#define PINCONF_GPIO2p13 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS5|PINCONF_PIN_4) +#define PINCONF_GPIO2p14 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS5|PINCONF_PIN_5) +#define PINCONF_GPIO2p15 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS5|PINCONF_PIN_6) +#define PINCONF_GPIO3p0 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS6|PINCONF_PIN_1) +#define PINCONF_GPIO3p1 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS6|PINCONF_PIN_2) +#define PINCONF_GPIO3p2 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS6|PINCONF_PIN_3) +#define PINCONF_GPIO3p3 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS6|PINCONF_PIN_4) +#define PINCONF_GPIO3p4 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS6|PINCONF_PIN_5) +#define PINCONF_GPIO3p5 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS6|PINCONF_PIN_9) +#define PINCONF_GPIO3p6 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS6|PINCONF_PIN_10) +#define PINCONF_GPIO3p7 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS6|PINCONF_PIN_11) +#define PINCONF_GPIO3p8 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS7|PINCONF_PIN_0) +#define PINCONF_GPIO3p9 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS7|PINCONF_PIN_1) +#define PINCONF_GPIO3p10 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS7|PINCONF_PIN_2) +#define PINCONF_GPIO3p11 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS7|PINCONF_PIN_3) +#define PINCONF_GPIO3p12 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS7|PINCONF_PIN_4) +#define PINCONF_GPIO3p13 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS7|PINCONF_PIN_5) +#define PINCONF_GPIO3p14 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS7|PINCONF_PIN_6) +#define PINCONF_GPIO3p15 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS7|PINCONF_PIN_7) +#define PINCONF_GPIO4p0 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS8|PINCONF_PIN_0) +#define PINCONF_GPIO4p1 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS8|PINCONF_PIN_1) +#define PINCONF_GPIO4p2 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS8|PINCONF_PIN_2) +#define PINCONF_GPIO4p3 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS8|PINCONF_PIN_3) +#define PINCONF_GPIO4p4 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS8|PINCONF_PIN_4) +#define PINCONF_GPIO4p5 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS8|PINCONF_PIN_5) +#define PINCONF_GPIO4p6 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS8|PINCONF_PIN_6) +#define PINCONF_GPIO4p7 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS8|PINCONF_PIN_7) +#define PINCONF_GPIO4p8 (PINCONF_FUNC0|PINCONF_PINSA|PINCONF_PIN_1) +#define PINCONF_GPIO4p9 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINSA|PINCONF_PIN_2) +#define PINCONF_GPIO4p10 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINSA|PINCONF_PIN_3) +#define PINCONF_GPIO4p11 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS9|PINCONF_PIN_6) +#define PINCONF_GPIO4p12 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS9|PINCONF_PIN_0) +#define PINCONF_GPIO4p13 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS9|PINCONF_PIN_1) +#define PINCONF_GPIO4p14 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS9|PINCONF_PIN_2) +#define PINCONF_GPIO4p15 (PINCONF_FUNC0|PINCONF_INBUFFER|PINCONF_PINS9|PINCONF_PIN_3) +#define PINCONF_GPIO5p0 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINS2|PINCONF_PIN_0) +#define PINCONF_GPIO5p1 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINS2|PINCONF_PIN_1) +#define PINCONF_GPIO5p2 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINS2|PINCONF_PIN_2) +#define PINCONF_GPIO5p3 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINS2|PINCONF_PIN_3) +#define PINCONF_GPIO5p4 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINS2|PINCONF_PIN_4) +#define PINCONF_GPIO5p5 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINS2|PINCONF_PIN_5) +#define PINCONF_GPIO5p6 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINS2|PINCONF_PIN_6) +#define PINCONF_GPIO5p7 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINS2|PINCONF_PIN_8) +#define PINCONF_GPIO5p8 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINS3|PINCONF_PIN_1) +#define PINCONF_GPIO5p9 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINS3|PINCONF_PIN_2) +#define PINCONF_GPIO5p10 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINS3|PINCONF_PIN_7) +#define PINCONF_GPIO5p11 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINS3|PINCONF_PIN_8) +#define PINCONF_GPIO5p12 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINS4|PINCONF_PIN_8) +#define PINCONF_GPIO5p13 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINS4|PINCONF_PIN_9) +#define PINCONF_GPIO5p14 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINS4|PINCONF_PIN_10) +#define PINCONF_GPIO5p15 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINS6|PINCONF_PIN_7) +#define PINCONF_GPIO5p16 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINS6|PINCONF_PIN_8) +#define PINCONF_GPIO5p17 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINS9|PINCONF_PIN_4) +#define PINCONF_GPIO5p18 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINS9|PINCONF_PIN_5) +#define PINCONF_GPIO5p19 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSA|PINCONF_PIN_4) +#define PINCONF_GPIO5p20 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSB|PINCONF_PIN_0) +#define PINCONF_GPIO5p21 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSB|PINCONF_PIN_1) +#define PINCONF_GPIO5p22 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSB|PINCONF_PIN_2) +#define PINCONF_GPIO5p23 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSB|PINCONF_PIN_3) +#define PINCONF_GPIO5p24 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSB|PINCONF_PIN_4) +#define PINCONF_GPIO5p25 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSB|PINCONF_PIN_5) +#define PINCONF_GPIO5p26 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSB|PINCONF_PIN_6) +#define PINCONF_GPIO6p0 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSC|PINCONF_PIN_1) +#define PINCONF_GPIO6p1 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSC|PINCONF_PIN_2) +#define PINCONF_GPIO6p2 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSC|PINCONF_PIN_3) +#define PINCONF_GPIO6p3 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSC|PINCONF_PIN_4) +#define PINCONF_GPIO6p4 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSC|PINCONF_PIN_5) +#define PINCONF_GPIO6p5 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSC|PINCONF_PIN_6) +#define PINCONF_GPIO6p6 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSC|PINCONF_PIN_7) +#define PINCONF_GPIO6p7 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSC|PINCONF_PIN_8) +#define PINCONF_GPIO6p8 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSC|PINCONF_PIN_9) +#define PINCONF_GPIO6p9 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSC|PINCONF_PIN_10) +#define PINCONF_GPIO6p10 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSC|PINCONF_PIN_11) +#define PINCONF_GPIO6p11 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSC|PINCONF_PIN_12) +#define PINCONF_GPIO6p12 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSC|PINCONF_PIN_13) +#define PINCONF_GPIO6p13 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSC|PINCONF_PIN_14) +#define PINCONF_GPIO6p14 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSD|PINCONF_PIN_0) +#define PINCONF_GPIO6p15 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSD|PINCONF_PIN_1) +#define PINCONF_GPIO6p16 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSD|PINCONF_PIN_2) +#define PINCONF_GPIO6p17 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSD|PINCONF_PIN_3) +#define PINCONF_GPIO6p18 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSD|PINCONF_PIN_4) +#define PINCONF_GPIO6p19 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSD|PINCONF_PIN_5) +#define PINCONF_GPIO6p20 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSD|PINCONF_PIN_6) +#define PINCONF_GPIO6p21 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSD|PINCONF_PIN_7) +#define PINCONF_GPIO6p22 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSD|PINCONF_PIN_8) +#define PINCONF_GPIO6p23 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSD|PINCONF_PIN_9) +#define PINCONF_GPIO6p24 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSD|PINCONF_PIN_10) +#define PINCONF_GPIO6p25 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSD|PINCONF_PIN_11) +#define PINCONF_GPIO6p26 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSD|PINCONF_PIN_12) +#define PINCONF_GPIO6p27 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSD|PINCONF_PIN_13) +#define PINCONF_GPIO6p28 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSD|PINCONF_PIN_14) +#define PINCONF_GPIO6p29 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSD|PINCONF_PIN_15) +#define PINCONF_GPIO6p30 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSD|PINCONF_PIN_16) +#define PINCONF_GPIO7p0 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSE|PINCONF_PIN_0) +#define PINCONF_GPIO7p1 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSE|PINCONF_PIN_1) +#define PINCONF_GPIO7p2 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSE|PINCONF_PIN_2) +#define PINCONF_GPIO7p3 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSE|PINCONF_PIN_3) +#define PINCONF_GPIO7p4 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSE|PINCONF_PIN_4) +#define PINCONF_GPIO7p5 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSE|PINCONF_PIN_5) +#define PINCONF_GPIO7p6 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSE|PINCONF_PIN_6) +#define PINCONF_GPIO7p7 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSE|PINCONF_PIN_7) +#define PINCONF_GPIO7p8 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSE|PINCONF_PIN_8) +#define PINCONF_GPIO7p9 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSE|PINCONF_PIN_9) +#define PINCONF_GPIO7p10 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSE|PINCONF_PIN_10) +#define PINCONF_GPIO7p11 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSE|PINCONF_PIN_11) +#define PINCONF_GPIO7p12 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSE|PINCONF_PIN_12) +#define PINCONF_GPIO7p13 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSE|PINCONF_PIN_13) +#define PINCONF_GPIO7p14 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSE|PINCONF_PIN_14) +#define PINCONF_GPIO7p15 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSE|PINCONF_PIN_15) +#define PINCONF_GPIO7p16 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSF|PINCONF_PIN_1) +#define PINCONF_GPIO7p17 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSF|PINCONF_PIN_2) +#define PINCONF_GPIO7p18 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSF|PINCONF_PIN_3) +#define PINCONF_GPIO7p19 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSF|PINCONF_PIN_5) +#define PINCONF_GPIO7p20 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSF|PINCONF_PIN_6) +#define PINCONF_GPIO7p21 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSF|PINCONF_PIN_7) +#define PINCONF_GPIO7p22 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSF|PINCONF_PIN_8) +#define PINCONF_GPIO7p23 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSF|PINCONF_PIN_9) +#define PINCONF_GPIO7p24 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSF|PINCONF_PIN_10) +#define PINCONF_GPIO7p25 (PINCONF_FUNC4|PINCONF_INBUFFER|PINCONF_PINSF|PINCONF_PIN_11) + +#define PINCONF_GP_CLKIN_1 (PINCONF_FUNC1|PINCONF_PINS4|PINCONF_PIN_7) +#define PINCONF_GP_CLKIN_2 (PINCONF_FUNC1|PINCONF_PINSF|PINCONF_PIN_0) +#define PINCONF_GP_CLKIN_3 (PINCONF_FUNC1|PINCONF_PINSF|PINCONF_PIN_4) + +#define PINCONF_I2C1_SCL_1 (PINCONF_FUNC1|PINCONF_PINS2|PINCONF_PIN_4) +#define PINCONF_I2C1_SCL_2 (PINCONF_FUNC2|PINCONF_PINSE|PINCONF_PIN_15) +#define PINCONF_I2C1_SDA_1 (PINCONF_FUNC1|PINCONF_PINS2|PINCONF_PIN_3) +#define PINCONF_I2C1_SDA_2 (PINCONF_FUNC2|PINCONF_PINSE|PINCONF_PIN_13) + +#define PINCONF_I2S0_RX_MCLK_1 (PINCONF_FUNC1|PINCONF_PINS3|PINCONF_PIN_0) +#define PINCONF_I2S0_RX_MCLK_2 (PINCONF_FUNC1|PINCONF_PINS6|PINCONF_PIN_0) +#define PINCONF_I2S0_RX_MCLK_3 (PINCONF_FUNC6|PINCONF_PINS1|PINCONF_PIN_19) +#define PINCONF_I2S0_RX_SCK_1 (PINCONF_FUNC0|PINCONF_PINS3|PINCONF_PIN_0) +#define PINCONF_I2S0_RX_SCK_2 (PINCONF_FUNC4|PINCONF_PINS6|PINCONF_PIN_0) +#define PINCONF_I2S0_RX_SCK_3 (PINCONF_FUNC7|PINCONF_PINSF|PINCONF_PIN_4) +#define PINCONF_I2S0_RX_SDA_1 (PINCONF_FUNC1|PINCONF_PINS3|PINCONF_PIN_2) +#define PINCONF_I2S0_RX_SDA_2 (PINCONF_FUNC3|PINCONF_PINS6|PINCONF_PIN_2) +#define PINCONF_I2S0_RX_WS_1 (PINCONF_FUNC1|PINCONF_PINS3|PINCONF_PIN_1) +#define PINCONF_I2S0_RX_WS_2 (PINCONF_FUNC3|PINCONF_PINS6|PINCONF_PIN_1) +#define PINCONF_I2S0_TXWS (PINCONF_FUNC6|PINCONF_PINS0|PINCONF_PIN_0) +#define PINCONF_I2S0_TX_MCLK_1 (PINCONF_FUNC3|PINCONF_PINS3|PINCONF_PIN_0) +#define PINCONF_I2S0_TX_MCLK_2 (PINCONF_FUNC6|PINCONF_PINS3|PINCONF_PIN_3) +#define PINCONF_I2S0_TX_MCLK_3 (PINCONF_FUNC6|PINCONF_PINSF|PINCONF_PIN_4) +#define PINCONF_I2S0_TX_SCK_1 (PINCONF_FUNC2|PINCONF_PINS3|PINCONF_PIN_0) +#define PINCONF_I2S0_TX_SCK_2 (PINCONF_FUNC7|PINCONF_PINS4|PINCONF_PIN_7) +#define PINCONF_I2S0_TX_SDA_1 (PINCONF_FUNC0|PINCONF_PINS3|PINCONF_PIN_2) +#define PINCONF_I2S0_TX_SDA_2 (PINCONF_FUNC2|PINCONF_PINS7|PINCONF_PIN_2) +#define PINCONF_I2S0_TX_SDA_3 (PINCONF_FUNC4|PINCONF_PINS9|PINCONF_PIN_2) +#define PINCONF_I2S0_TX_SDA_4 (PINCONF_FUNC5|PINCONF_PINS3|PINCONF_PIN_5) +#define PINCONF_I2S0_TX_SDA_5 (PINCONF_FUNC6|PINCONF_PINSC|PINCONF_PIN_12) +#define PINCONF_I2S0_TX_WS_1 (PINCONF_FUNC0|PINCONF_PINS3|PINCONF_PIN_1) +#define PINCONF_I2S0_TX_WS_2 (PINCONF_FUNC2|PINCONF_PINS7|PINCONF_PIN_1) +#define PINCONF_I2S0_TX_WS_3 (PINCONF_FUNC4|PINCONF_PINS9|PINCONF_PIN_1) +#define PINCONF_I2S0_TX_WS_4 (PINCONF_FUNC5|PINCONF_PINS3|PINCONF_PIN_4) +#define PINCONF_I2S0_TX_WS_5 (PINCONF_FUNC6|PINCONF_PINSC|PINCONF_PIN_13) + +#define PINCONF_I2S1_RX_MCLK (PINCONF_FUNC5|PINCONF_PINSA|PINCONF_PIN_0) +#define PINCONF_I2S1_RX_SDA (PINCONF_FUNC6|PINCONF_PINS3|PINCONF_PIN_4) +#define PINCONF_I2S1_RX_WS (PINCONF_FUNC6|PINCONF_PINS3|PINCONF_PIN_5) +#define PINCONF_I2S1_TXSDA (PINCONF_FUNC7|PINCONF_PINS0|PINCONF_PIN_1) +#define PINCONF_I2S1_TXWS (PINCONF_FUNC7|PINCONF_PINS0|PINCONF_PIN_0) +#define PINCONF_I2S1_TX_MCLK_1 (PINCONF_FUNC7|PINCONF_PINS8|PINCONF_PIN_8) +#define PINCONF_I2S1_TX_MCLK_2 (PINCONF_FUNC7|PINCONF_PINSF|PINCONF_PIN_0) +#define PINCONF_I2S1_TX_SCK_1 (PINCONF_FUNC6|PINCONF_PINS4|PINCONF_PIN_7) +#define PINCONF_I2S1_TX_SCK_2 (PINCONF_FUNC7|PINCONF_PINS1|PINCONF_PIN_19) +#define PINCONF_I2S1_TX_SCK_3 (PINCONF_FUNC7|PINCONF_PINS3|PINCONF_PIN_3) +#define PINCONF_I2S1_TX_SDA (PINCONF_FUNC7|PINCONF_PINSF|PINCONF_PIN_6) +#define PINCONF_I2S1_TX_WS (PINCONF_FUNC7|PINCONF_PINSF|PINCONF_PIN_7) + +#define PINCONF_LCD_DCLK_1 (PINCONF_FUNC0|PINCONF_PINS4|PINCONF_PIN_7) +#define PINCONF_LCD_DCLK_2 (PINCONF_FUNC4|PINCONF_PINSC|PINCONF_PIN_0) +#define PINCONF_LCD_ENAB (PINCONF_FUNC2|PINCONF_PINS4|PINCONF_PIN_6) +#define PINCONF_LCD_FP (PINCONF_FUNC2|PINCONF_PINS4|PINCONF_PIN_5) +#define PINCONF_LCD_LCDM (PINCONF_FUNC2|PINCONF_PINS4|PINCONF_PIN_6) +#define PINCONF_LCD_LE (PINCONF_FUNC3|PINCONF_PINS7|PINCONF_PIN_0) +#define PINCONF_LCD_LP_1 (PINCONF_FUNC3|PINCONF_PINS7|PINCONF_PIN_6) +#define PINCONF_LCD_LP_2 (PINCONF_FUNC4|PINCONF_PINS8|PINCONF_PIN_6) +#define PINCONF_LCD_PWR_1 (PINCONF_FUNC3|PINCONF_PINS7|PINCONF_PIN_7) +#define PINCONF_LCD_PWR_2 (PINCONF_FUNC4|PINCONF_PINS8|PINCONF_PIN_7) +#define PINCONF_LCD_PWR_3 (PINCONF_FUNC6|PINCONF_PINSB|PINCONF_PIN_5) +#define PINCONF_LCD_VD0 (PINCONF_FUNC2|PINCONF_PINS4|PINCONF_PIN_1) +#define PINCONF_LCD_VD1 (PINCONF_FUNC2|PINCONF_PINS4|PINCONF_PIN_4) +#define PINCONF_LCD_VD2 (PINCONF_FUNC2|PINCONF_PINS4|PINCONF_PIN_3) +#define PINCONF_LCD_VD3 (PINCONF_FUNC2|PINCONF_PINS4|PINCONF_PIN_2) +#define PINCONF_LCD_VD4_1 (PINCONF_FUNC3|PINCONF_PINS8|PINCONF_PIN_7) +#define PINCONF_LCD_VD4_2 (PINCONF_FUNC4|PINCONF_PINS7|PINCONF_PIN_4) +#define PINCONF_LCD_VD5_1 (PINCONF_FUNC3|PINCONF_PINS8|PINCONF_PIN_6) +#define PINCONF_LCD_VD5_2 (PINCONF_FUNC4|PINCONF_PINS7|PINCONF_PIN_3) +#define PINCONF_LCD_VD6_1 (PINCONF_FUNC3|PINCONF_PINS8|PINCONF_PIN_5) +#define PINCONF_LCD_VD6_2 (PINCONF_FUNC4|PINCONF_PINS7|PINCONF_PIN_2) +#define PINCONF_LCD_VD7_1 (PINCONF_FUNC3|PINCONF_PINS8|PINCONF_PIN_4) +#define PINCONF_LCD_VD7_2 (PINCONF_FUNC4|PINCONF_PINS7|PINCONF_PIN_1) +#define PINCONF_LCD_VD8_1 (PINCONF_FUNC3|PINCONF_PINS7|PINCONF_PIN_5) +#define PINCONF_LCD_VD8_2 (PINCONF_FUNC4|PINCONF_PINS8|PINCONF_PIN_5) +#define PINCONF_LCD_VD9 (PINCONF_FUNC2|PINCONF_PINS4|PINCONF_PIN_8) +#define PINCONF_LCD_VD10 (PINCONF_FUNC2|PINCONF_PINS4|PINCONF_PIN_10) +#define PINCONF_LCD_VD11 (PINCONF_FUNC2|PINCONF_PINS4|PINCONF_PIN_9) +#define PINCONF_LCD_VD12_1 (PINCONF_FUNC3|PINCONF_PINS8|PINCONF_PIN_3) +#define PINCONF_LCD_VD12_2 (PINCONF_FUNC5|PINCONF_PINS4|PINCONF_PIN_2) +#define PINCONF_LCD_VD12_3 (PINCONF_FUNC7|PINCONF_PINS3|PINCONF_PIN_5) +#define PINCONF_LCD_VD13_1 (PINCONF_FUNC2|PINCONF_PINSB|PINCONF_PIN_6) +#define PINCONF_LCD_VD13_2 (PINCONF_FUNC5|PINCONF_PINS4|PINCONF_PIN_0) +#define PINCONF_LCD_VD13_3 (PINCONF_FUNC7|PINCONF_PINS3|PINCONF_PIN_4) +#define PINCONF_LCD_VD14_1 (PINCONF_FUNC2|PINCONF_PINSB|PINCONF_PIN_5) +#define PINCONF_LCD_VD14_2 (PINCONF_FUNC5|PINCONF_PINS4|PINCONF_PIN_10) +#define PINCONF_LCD_VD14_3 (PINCONF_FUNC6|PINCONF_PINS3|PINCONF_PIN_2) +#define PINCONF_LCD_VD15_1 (PINCONF_FUNC2|PINCONF_PINSB|PINCONF_PIN_4) +#define PINCONF_LCD_VD15_2 (PINCONF_FUNC5|PINCONF_PINS4|PINCONF_PIN_9) +#define PINCONF_LCD_VD15_3 (PINCONF_FUNC6|PINCONF_PINS3|PINCONF_PIN_1) +#define PINCONF_LCD_VD16_1 (PINCONF_FUNC3|PINCONF_PINS7|PINCONF_PIN_4) +#define PINCONF_LCD_VD16_2 (PINCONF_FUNC4|PINCONF_PINS8|PINCONF_PIN_4) +#define PINCONF_LCD_VD17 (PINCONF_FUNC3|PINCONF_PINS7|PINCONF_PIN_3) +#define PINCONF_LCD_VD18 (PINCONF_FUNC3|PINCONF_PINS7|PINCONF_PIN_2) +#define PINCONF_LCD_VD19_1 (PINCONF_FUNC3|PINCONF_PINS7|PINCONF_PIN_1) +#define PINCONF_LCD_VD19_2 (PINCONF_FUNC4|PINCONF_PINS8|PINCONF_PIN_3) +#define PINCONF_LCD_VD19_3 (PINCONF_FUNC5|PINCONF_PINS4|PINCONF_PIN_1) +#define PINCONF_LCD_VD19_4 (PINCONF_FUNC6|PINCONF_PINSB|PINCONF_PIN_6) +#define PINCONF_LCD_VD20_1 (PINCONF_FUNC2|PINCONF_PINSB|PINCONF_PIN_3) +#define PINCONF_LCD_VD20_2 (PINCONF_FUNC5|PINCONF_PINS4|PINCONF_PIN_4) +#define PINCONF_LCD_VD21_1 (PINCONF_FUNC2|PINCONF_PINSB|PINCONF_PIN_2) +#define PINCONF_LCD_VD21_2 (PINCONF_FUNC5|PINCONF_PINS4|PINCONF_PIN_3) +#define PINCONF_LCD_VD22_1 (PINCONF_FUNC2|PINCONF_PINSB|PINCONF_PIN_1) +#define PINCONF_LCD_VD22_2 (PINCONF_FUNC5|PINCONF_PINS4|PINCONF_PIN_8) +#define PINCONF_LCD_VD23_1 (PINCONF_FUNC2|PINCONF_PINSB|PINCONF_PIN_0) +#define PINCONF_LCD_VD23_2 (PINCONF_FUNC4|PINCONF_PINS7|PINCONF_PIN_5) + +#define PINCONF_MCABORT_1 (PINCONF_FUNC1|PINCONF_PINS6|PINCONF_PIN_10) +#define PINCONF_MCABORT_2 (PINCONF_FUNC1|PINCONF_PINS9|PINCONF_PIN_0) +#define PINCONF_MCI0_1 (PINCONF_FUNC1|PINCONF_PINS5|PINCONF_PIN_3) +#define PINCONF_MCI0_2 (PINCONF_FUNC3|PINCONF_PINS8|PINCONF_PIN_2) +#define PINCONF_MCI1_1 (PINCONF_FUNC1|PINCONF_PINS5|PINCONF_PIN_2) +#define PINCONF_MCI1_2 (PINCONF_FUNC3|PINCONF_PINS8|PINCONF_PIN_1) +#define PINCONF_MCI2_1 (PINCONF_FUNC1|PINCONF_PINS5|PINCONF_PIN_1) +#define PINCONF_MCI2_2 (PINCONF_FUNC3|PINCONF_PINS8|PINCONF_PIN_0) +#define PINCONF_MCOA0_1 (PINCONF_FUNC1|PINCONF_PINS4|PINCONF_PIN_0) +#define PINCONF_MCOA0_2 (PINCONF_FUNC1|PINCONF_PINS9|PINCONF_PIN_3) +#define PINCONF_MCOA1_1 (PINCONF_FUNC1|PINCONF_PINS5|PINCONF_PIN_5) +#define PINCONF_MCOA1_2 (PINCONF_FUNC1|PINCONF_PINS9|PINCONF_PIN_5) +#define PINCONF_MCOA2_1 (PINCONF_FUNC1|PINCONF_PINS5|PINCONF_PIN_7) +#define PINCONF_MCOA2_2 (PINCONF_FUNC1|PINCONF_PINS9|PINCONF_PIN_1) +#define PINCONF_MCOB0_1 (PINCONF_FUNC1|PINCONF_PINS5|PINCONF_PIN_4) +#define PINCONF_MCOB0_2 (PINCONF_FUNC1|PINCONF_PINS9|PINCONF_PIN_4) +#define PINCONF_MCOB1_1 (PINCONF_FUNC1|PINCONF_PINS5|PINCONF_PIN_6) +#define PINCONF_MCOB1_2 (PINCONF_FUNC1|PINCONF_PINS9|PINCONF_PIN_6) +#define PINCONF_MCOB2_1 (PINCONF_FUNC1|PINCONF_PINS5|PINCONF_PIN_0) +#define PINCONF_MCOB2_2 (PINCONF_FUNC1|PINCONF_PINS9|PINCONF_PIN_2) + +#define PINCONF_NMI_1 (PINCONF_FUNC1|PINCONF_PINSE|PINCONF_PIN_4) +#define PINCONF_NMI_2 (PINCONF_FUNC2|PINCONF_PINS4|PINCONF_PIN_0) + +#define PINCONF_QEI_IDX (PINCONF_FUNC1|PINCONF_PINSA|PINCONF_PIN_1) +#define PINCONF_QEI_PHA (PINCONF_FUNC1|PINCONF_PINSA|PINCONF_PIN_3) +#define PINCONF_QEI_PHB (PINCONF_FUNC1|PINCONF_PINSA|PINCONF_PIN_2) + +#define PINCONF_SD_CD_1 (PINCONF_FUNC7|PINCONF_PINS1|PINCONF_PIN_13) +#define PINCONF_SD_CD_2 (PINCONF_FUNC7|PINCONF_PINSC|PINCONF_PIN_8) +#define PINCONF_SD_CLK (PINCONF_FUNC7|PINCONF_PINSC|PINCONF_PIN_0) +#define PINCONF_SD_CMD_1 (PINCONF_FUNC7|PINCONF_PINS1|PINCONF_PIN_6) +#define PINCONF_SD_CMD_2 (PINCONF_FUNC7|PINCONF_PINSC|PINCONF_PIN_10) +#define PINCONF_SD_DAT0_1 (PINCONF_FUNC7|PINCONF_PINS1|PINCONF_PIN_9) +#define PINCONF_SD_DAT0_2 (PINCONF_FUNC7|PINCONF_PINSC|PINCONF_PIN_4) +#define PINCONF_SD_DAT1_1 (PINCONF_FUNC7|PINCONF_PINS1|PINCONF_PIN_10) +#define PINCONF_SD_DAT1_2 (PINCONF_FUNC7|PINCONF_PINSC|PINCONF_PIN_5) +#define PINCONF_SD_DAT2_1 (PINCONF_FUNC7|PINCONF_PINS1|PINCONF_PIN_11) +#define PINCONF_SD_DAT2_2 (PINCONF_FUNC7|PINCONF_PINSC|PINCONF_PIN_6) +#define PINCONF_SD_DAT3_1 (PINCONF_FUNC7|PINCONF_PINS1|PINCONF_PIN_12) +#define PINCONF_SD_DAT3_2 (PINCONF_FUNC7|PINCONF_PINSC|PINCONF_PIN_7) +#define PINCONF_SD_DAT4 (PINCONF_FUNC7|PINCONF_PINSC|PINCONF_PIN_11) +#define PINCONF_SD_DAT5 (PINCONF_FUNC7|PINCONF_PINSC|PINCONF_PIN_12) +#define PINCONF_SD_DAT6 (PINCONF_FUNC7|PINCONF_PINSC|PINCONF_PIN_13) +#define PINCONF_SD_DAT7 (PINCONF_FUNC7|PINCONF_PINSC|PINCONF_PIN_14) +#define PINCONF_SD_POW_1 (PINCONF_FUNC5|PINCONF_PINSD|PINCONF_PIN_1) +#define PINCONF_SD_POW_2 (PINCONF_FUNC7|PINCONF_PINS1|PINCONF_PIN_5) +#define PINCONF_SD_POW_3 (PINCONF_FUNC7|PINCONF_PINSC|PINCONF_PIN_9) +#define PINCONF_SD_RST_1 (PINCONF_FUNC7|PINCONF_PINS1|PINCONF_PIN_3) +#define PINCONF_SD_RST_2 (PINCONF_FUNC7|PINCONF_PINSC|PINCONF_PIN_2) +#define PINCONF_SD_VOLT0_1 (PINCONF_FUNC7|PINCONF_PINS1|PINCONF_PIN_8) +#define PINCONF_SD_VOLT0_2 (PINCONF_FUNC7|PINCONF_PINSC|PINCONF_PIN_1) +#define PINCONF_SD_VOLT1_1 (PINCONF_FUNC7|PINCONF_PINS1|PINCONF_PIN_4) +#define PINCONF_SD_VOLT1_2 (PINCONF_FUNC7|PINCONF_PINSC|PINCONF_PIN_3) +#define PINCONF_SD_VOLT2_1 (PINCONF_FUNC5|PINCONF_PINSD|PINCONF_PIN_16) +#define PINCONF_SD_VOLT2_2 (PINCONF_FUNC6|PINCONF_PINSF|PINCONF_PIN_11) +#define PINCONF_SD_WP_1 (PINCONF_FUNC5|PINCONF_PINSD|PINCONF_PIN_15) +#define PINCONF_SD_WP_2 (PINCONF_FUNC6|PINCONF_PINSF|PINCONF_PIN_10) + +#define PINCONF_SGPIO0_1 (PINCONF_FUNC3|PINCONF_PINS0|PINCONF_PIN_0) +#define PINCONF_SGPIO0_2 (PINCONF_FUNC6|PINCONF_PINS9|PINCONF_PIN_0) +#define PINCONF_SGPIO0_3 (PINCONF_FUNC6|PINCONF_PINSF|PINCONF_PIN_1) +#define PINCONF_SGPIO1_1 (PINCONF_FUNC3|PINCONF_PINS0|PINCONF_PIN_1) +#define PINCONF_SGPIO1_2 (PINCONF_FUNC6|PINCONF_PINS9|PINCONF_PIN_1) +#define PINCONF_SGPIO1_3 (PINCONF_FUNC6|PINCONF_PINSF|PINCONF_PIN_2) +#define PINCONF_SGPIO2_1 (PINCONF_FUNC2|PINCONF_PINS1|PINCONF_PIN_15) +#define PINCONF_SGPIO2_2 (PINCONF_FUNC6|PINCONF_PINS9|PINCONF_PIN_2) +#define PINCONF_SGPIO2_3 (PINCONF_FUNC6|PINCONF_PINSF|PINCONF_PIN_3) +#define PINCONF_SGPIO3_1 (PINCONF_FUNC2|PINCONF_PINS1|PINCONF_PIN_16) +#define PINCONF_SGPIO3_2 (PINCONF_FUNC6|PINCONF_PINS9|PINCONF_PIN_5) +#define PINCONF_SGPIO3_3 (PINCONF_FUNC6|PINCONF_PINSF|PINCONF_PIN_9) +#define PINCONF_SGPIO4_1 (PINCONF_FUNC0|PINCONF_PINS2|PINCONF_PIN_0) +#define PINCONF_SGPIO4_2 (PINCONF_FUNC2|PINCONF_PINS6|PINCONF_PIN_3) +#define PINCONF_SGPIO4_3 (PINCONF_FUNC6|PINCONF_PINS9|PINCONF_PIN_4) +#define PINCONF_SGPIO4_4 (PINCONF_FUNC6|PINCONF_PINSF|PINCONF_PIN_5) +#define PINCONF_SGPIO4_5 (PINCONF_FUNC7|PINCONF_PINS7|PINCONF_PIN_0) +#define PINCONF_SGPIO4_6 (PINCONF_FUNC7|PINCONF_PINSD|PINCONF_PIN_0) +#define PINCONF_SGPIO5_1 (PINCONF_FUNC0|PINCONF_PINS2|PINCONF_PIN_1) +#define PINCONF_SGPIO5_2 (PINCONF_FUNC2|PINCONF_PINS6|PINCONF_PIN_6) +#define PINCONF_SGPIO5_3 (PINCONF_FUNC6|PINCONF_PINSF|PINCONF_PIN_6) +#define PINCONF_SGPIO5_4 (PINCONF_FUNC7|PINCONF_PINS7|PINCONF_PIN_1) +#define PINCONF_SGPIO5_5 (PINCONF_FUNC7|PINCONF_PINSD|PINCONF_PIN_1) +#define PINCONF_SGPIO6_1 (PINCONF_FUNC0|PINCONF_PINS2|PINCONF_PIN_2) +#define PINCONF_SGPIO6_2 (PINCONF_FUNC2|PINCONF_PINS6|PINCONF_PIN_7) +#define PINCONF_SGPIO6_3 (PINCONF_FUNC6|PINCONF_PINSF|PINCONF_PIN_7) +#define PINCONF_SGPIO6_4 (PINCONF_FUNC7|PINCONF_PINS7|PINCONF_PIN_2) +#define PINCONF_SGPIO6_5 (PINCONF_FUNC7|PINCONF_PINSD|PINCONF_PIN_2) +#define PINCONF_SGPIO7_1 (PINCONF_FUNC0|PINCONF_PINS2|PINCONF_PIN_6) +#define PINCONF_SGPIO7_2 (PINCONF_FUNC2|PINCONF_PINS6|PINCONF_PIN_8) +#define PINCONF_SGPIO7_3 (PINCONF_FUNC6|PINCONF_PINS1|PINCONF_PIN_0) +#define PINCONF_SGPIO7_4 (PINCONF_FUNC6|PINCONF_PINSF|PINCONF_PIN_8) +#define PINCONF_SGPIO7_5 (PINCONF_FUNC7|PINCONF_PINS7|PINCONF_PIN_7) +#define PINCONF_SGPIO7_6 (PINCONF_FUNC7|PINCONF_PINSD|PINCONF_PIN_3) +#define PINCONF_SGPIO8_1 (PINCONF_FUNC3|PINCONF_PINS1|PINCONF_PIN_1) +#define PINCONF_SGPIO8_2 (PINCONF_FUNC4|PINCONF_PINS8|PINCONF_PIN_0) +#define PINCONF_SGPIO8_3 (PINCONF_FUNC6|PINCONF_PINS1|PINCONF_PIN_12) +#define PINCONF_SGPIO8_4 (PINCONF_FUNC6|PINCONF_PINS9|PINCONF_PIN_6) +#define PINCONF_SGPIO8_5 (PINCONF_FUNC7|PINCONF_PINS4|PINCONF_PIN_2) +#define PINCONF_SGPIO8_6 (PINCONF_FUNC7|PINCONF_PINSD|PINCONF_PIN_4) +#define PINCONF_SGPIO9_1 (PINCONF_FUNC3|PINCONF_PINS1|PINCONF_PIN_2) +#define PINCONF_SGPIO9_2 (PINCONF_FUNC4|PINCONF_PINS8|PINCONF_PIN_1) +#define PINCONF_SGPIO9_3 (PINCONF_FUNC6|PINCONF_PINS1|PINCONF_PIN_13) +#define PINCONF_SGPIO9_4 (PINCONF_FUNC6|PINCONF_PINS9|PINCONF_PIN_3) +#define PINCONF_SGPIO9_5 (PINCONF_FUNC7|PINCONF_PINS4|PINCONF_PIN_3) +#define PINCONF_SGPIO9_6 (PINCONF_FUNC7|PINCONF_PINSD|PINCONF_PIN_5) +#define PINCONF_SGPIO10_1 (PINCONF_FUNC2|PINCONF_PINS1|PINCONF_PIN_3) +#define PINCONF_SGPIO10_2 (PINCONF_FUNC4|PINCONF_PINS8|PINCONF_PIN_2) +#define PINCONF_SGPIO10_3 (PINCONF_FUNC6|PINCONF_PINS1|PINCONF_PIN_14) +#define PINCONF_SGPIO10_4 (PINCONF_FUNC7|PINCONF_PINS4|PINCONF_PIN_4) +#define PINCONF_SGPIO10_5 (PINCONF_FUNC7|PINCONF_PINSD|PINCONF_PIN_6) +#define PINCONF_SGPIO11_1 (PINCONF_FUNC2|PINCONF_PINS1|PINCONF_PIN_4) +#define PINCONF_SGPIO11_2 (PINCONF_FUNC5|PINCONF_PINSC|PINCONF_PIN_12) +#define PINCONF_SGPIO11_3 (PINCONF_FUNC6|PINCONF_PINS1|PINCONF_PIN_17) +#define PINCONF_SGPIO11_4 (PINCONF_FUNC7|PINCONF_PINS4|PINCONF_PIN_5) +#define PINCONF_SGPIO11_5 (PINCONF_FUNC7|PINCONF_PINSD|PINCONF_PIN_7) +#define PINCONF_SGPIO12_1 (PINCONF_FUNC0|PINCONF_PINS2|PINCONF_PIN_3) +#define PINCONF_SGPIO12_2 (PINCONF_FUNC5|PINCONF_PINSC|PINCONF_PIN_13) +#define PINCONF_SGPIO12_3 (PINCONF_FUNC6|PINCONF_PINS1|PINCONF_PIN_18) +#define PINCONF_SGPIO12_4 (PINCONF_FUNC7|PINCONF_PINS4|PINCONF_PIN_6) +#define PINCONF_SGPIO12_5 (PINCONF_FUNC7|PINCONF_PINSD|PINCONF_PIN_8) +#define PINCONF_SGPIO13_1 (PINCONF_FUNC0|PINCONF_PINS2|PINCONF_PIN_4) +#define PINCONF_SGPIO13_2 (PINCONF_FUNC5|PINCONF_PINSC|PINCONF_PIN_14) +#define PINCONF_SGPIO13_3 (PINCONF_FUNC6|PINCONF_PINS1|PINCONF_PIN_20) +#define PINCONF_SGPIO13_4 (PINCONF_FUNC7|PINCONF_PINS4|PINCONF_PIN_8) +#define PINCONF_SGPIO13_5 (PINCONF_FUNC7|PINCONF_PINSD|PINCONF_PIN_9) +#define PINCONF_SGPIO14_1 (PINCONF_FUNC0|PINCONF_PINS2|PINCONF_PIN_5) +#define PINCONF_SGPIO14_2 (PINCONF_FUNC6|PINCONF_PINS1|PINCONF_PIN_6) +#define PINCONF_SGPIO14_3 (PINCONF_FUNC7|PINCONF_PINS4|PINCONF_PIN_9) +#define PINCONF_SGPIO15_1 (PINCONF_FUNC0|PINCONF_PINS2|PINCONF_PIN_8) +#define PINCONF_SGPIO15_2 (PINCONF_FUNC6|PINCONF_PINS1|PINCONF_PIN_5) +#define PINCONF_SGPIO15_3 (PINCONF_FUNC7|PINCONF_PINS4|PINCONF_PIN_10) + +#define PINCONF_SPIFI_CS (PINCONF_FUNC3|PINCONF_SLEW_FAST|PINCONF_PINS3|PINCONF_PIN_8) +#define PINCONF_SPIFI_MISO (PINCONF_FUNC3|PINCONF_SLEW_FAST|PINCONF_INBUFFER|PINCONF_GLITCH|PINCONF_PINS3|PINCONF_PIN_6) +#define PINCONF_SPIFI_MOSI (PINCONF_FUNC3|PINCONF_SLEW_FAST|PINCONF_INBUFFER|PINCONF_GLITCH|PINCONF_PINS3|PINCONF_PIN_7) +#define PINCONF_SPIFI_SCK (PINCONF_FUNC3|PINCONF_SLEW_FAST|PINCONF_INBUFFER|PINCONF_GLITCH|PINCONF_PINS3|PINCONF_PIN_3) +#define PINCONF_SPIFI_SIO2 (PINCONF_FUNC3|PINCONF_SLEW_FAST|PINCONF_INBUFFER|PINCONF_GLITCH|PINCONF_PINS3|PINCONF_PIN_5) +#define PINCONF_SPIFI_SIO3 (PINCONF_FUNC3|PINCONF_SLEW_FAST|PINCONF_INBUFFER|PINCONF_GLITCH|PINCONF_PINS3|PINCONF_PIN_4) + +#define PINCONF_SPI_MISO (PINCONF_FUNC1|PINCONF_PINS3|PINCONF_PIN_6) +#define PINCONF_SPI_MOSI (PINCONF_FUNC1|PINCONF_PINS3|PINCONF_PIN_7) +#define PINCONF_SPI_SCK (PINCONF_FUNC1|PINCONF_PINS3|PINCONF_PIN_3) +#define PINCONF_SPI_SSEL (PINCONF_FUNC1|PINCONF_PINS3|PINCONF_PIN_8) + +#define PINCONF_SSP0_MISO_1 (PINCONF_FUNC2|PINCONF_PINS3|PINCONF_PIN_7) +#define PINCONF_SSP0_MISO_2 (PINCONF_FUNC2|PINCONF_PINSF|PINCONF_PIN_2) +#define PINCONF_SSP0_MISO_3 (PINCONF_FUNC5|PINCONF_PINS1|PINCONF_PIN_1) +#define PINCONF_SSP0_MISO_4 (PINCONF_FUNC5|PINCONF_PINS3|PINCONF_PIN_6) +#define PINCONF_SSP0_MISO_5 (PINCONF_FUNC7|PINCONF_PINS9|PINCONF_PIN_1) +#define PINCONF_SSP0_MOSI_1 (PINCONF_FUNC2|PINCONF_PINS3|PINCONF_PIN_8) +#define PINCONF_SSP0_MOSI_2 (PINCONF_FUNC2|PINCONF_PINSF|PINCONF_PIN_3) +#define PINCONF_SSP0_MOSI_3 (PINCONF_FUNC5|PINCONF_PINS1|PINCONF_PIN_2) +#define PINCONF_SSP0_MOSI_4 (PINCONF_FUNC5|PINCONF_PINS3|PINCONF_PIN_7) +#define PINCONF_SSP0_MOSI_5 (PINCONF_FUNC7|PINCONF_PINS9|PINCONF_PIN_2) +#define PINCONF_SSP0_SCK_1 (PINCONF_FUNC0|PINCONF_PINSF|PINCONF_PIN_0) +#define PINCONF_SSP0_SCK_2 (PINCONF_FUNC2|PINCONF_PINS3|PINCONF_PIN_3) +#define PINCONF_SSP0_SCK_3 (PINCONF_FUNC4|PINCONF_PINS3|PINCONF_PIN_0) +#define PINCONF_SSP0_SSEL_1 (PINCONF_FUNC2|PINCONF_PINS3|PINCONF_PIN_6) +#define PINCONF_SSP0_SSEL_2 (PINCONF_FUNC2|PINCONF_PINSF|PINCONF_PIN_1) +#define PINCONF_SSP0_SSEL_3 (PINCONF_FUNC5|PINCONF_PINS1|PINCONF_PIN_0) +#define PINCONF_SSP0_SSEL_4 (PINCONF_FUNC5|PINCONF_PINS3|PINCONF_PIN_8) +#define PINCONF_SSP0_SSEL_5 (PINCONF_FUNC7|PINCONF_PINS9|PINCONF_PIN_0) + +#define PINCONF_SSP1_MISO_1 (PINCONF_FUNC1|PINCONF_PINS0|PINCONF_PIN_0) +#define PINCONF_SSP1_MISO_2 (PINCONF_FUNC2|PINCONF_PINSF|PINCONF_PIN_6) +#define PINCONF_SSP1_MISO_3 (PINCONF_FUNC5|PINCONF_PINS1|PINCONF_PIN_3) +#define PINCONF_SSP1_MOSI_1 (PINCONF_FUNC1|PINCONF_PINS0|PINCONF_PIN_1) +#define PINCONF_SSP1_MOSI_2 (PINCONF_FUNC2|PINCONF_PINSF|PINCONF_PIN_7) +#define PINCONF_SSP1_MOSI_3 (PINCONF_FUNC5|PINCONF_PINS1|PINCONF_PIN_4) +#define PINCONF_SSP1_SCK_1 (PINCONF_FUNC0|PINCONF_PINSF|PINCONF_PIN_4) +#define PINCONF_SSP1_SCK_2 (PINCONF_FUNC1|PINCONF_PINS1|PINCONF_PIN_19) +#define PINCONF_SSP1_SSEL_1 (PINCONF_FUNC1|PINCONF_PINS1|PINCONF_PIN_20) +#define PINCONF_SSP1_SSEL_2 (PINCONF_FUNC2|PINCONF_PINSF|PINCONF_PIN_5) +#define PINCONF_SSP1_SSEL_3 (PINCONF_FUNC5|PINCONF_PINS1|PINCONF_PIN_5) + +#define PINCONF_T0_CAP0_1 (PINCONF_FUNC4|PINCONF_PINS1|PINCONF_PIN_13) +#define PINCONF_T0_CAP0_2 (PINCONF_FUNC7|PINCONF_PINS8|PINCONF_PIN_4) +#define PINCONF_T0_CAP1_1 (PINCONF_FUNC4|PINCONF_PINS1|PINCONF_PIN_12) +#define PINCONF_T0_CAP1_2 (PINCONF_FUNC7|PINCONF_PINS8|PINCONF_PIN_5) +#define PINCONF_T0_CAP2_1 (PINCONF_FUNC4|PINCONF_PINS1|PINCONF_PIN_20) +#define PINCONF_T0_CAP2_2 (PINCONF_FUNC7|PINCONF_PINS8|PINCONF_PIN_6) +#define PINCONF_T0_CAP3_1 (PINCONF_FUNC4|PINCONF_PINS1|PINCONF_PIN_17) +#define PINCONF_T0_CAP3_2 (PINCONF_FUNC7|PINCONF_PINS8|PINCONF_PIN_7) +#define PINCONF_T0_MAT0_1 (PINCONF_FUNC4|PINCONF_PINS1|PINCONF_PIN_16) +#define PINCONF_T0_MAT0_2 (PINCONF_FUNC7|PINCONF_PINS8|PINCONF_PIN_0) +#define PINCONF_T0_MAT1_1 (PINCONF_FUNC4|PINCONF_PINS1|PINCONF_PIN_15) +#define PINCONF_T0_MAT1_2 (PINCONF_FUNC7|PINCONF_PINS8|PINCONF_PIN_1) +#define PINCONF_T0_MAT2_1 (PINCONF_FUNC4|PINCONF_PINS1|PINCONF_PIN_14) +#define PINCONF_T0_MAT2_2 (PINCONF_FUNC7|PINCONF_PINS8|PINCONF_PIN_2) +#define PINCONF_T0_MAT3_1 (PINCONF_FUNC4|PINCONF_PINS1|PINCONF_PIN_18) +#define PINCONF_T0_MAT3_2 (PINCONF_FUNC7|PINCONF_PINS8|PINCONF_PIN_3) + +#define PINCONF_T1_CAP0 (PINCONF_FUNC5|PINCONF_PINS5|PINCONF_PIN_0) +#define PINCONF_T1_CAP1 (PINCONF_FUNC5|PINCONF_PINS5|PINCONF_PIN_1) +#define PINCONF_T1_CAP2 (PINCONF_FUNC5|PINCONF_PINS5|PINCONF_PIN_2) +#define PINCONF_T1_CAP3 (PINCONF_FUNC5|PINCONF_PINS5|PINCONF_PIN_3) +#define PINCONF_T1_MAT0 (PINCONF_FUNC5|PINCONF_PINS5|PINCONF_PIN_4) +#define PINCONF_T1_MAT1 (PINCONF_FUNC5|PINCONF_PINS5|PINCONF_PIN_5) +#define PINCONF_T1_MAT2 (PINCONF_FUNC5|PINCONF_PINS5|PINCONF_PIN_6) +#define PINCONF_T1_MAT3 (PINCONF_FUNC5|PINCONF_PINS5|PINCONF_PIN_7) + +#define PINCONF_T2_CAP0 (PINCONF_FUNC5|PINCONF_PINS6|PINCONF_PIN_1) +#define PINCONF_T2_CAP1 (PINCONF_FUNC5|PINCONF_PINS6|PINCONF_PIN_2) +#define PINCONF_T2_CAP2 (PINCONF_FUNC5|PINCONF_PINS6|PINCONF_PIN_3) +#define PINCONF_T2_CAP3 (PINCONF_FUNC5|PINCONF_PINS6|PINCONF_PIN_6) +#define PINCONF_T2_MAT0 (PINCONF_FUNC5|PINCONF_PINS6|PINCONF_PIN_7) +#define PINCONF_T2_MAT1 (PINCONF_FUNC5|PINCONF_PINS6|PINCONF_PIN_8) +#define PINCONF_T2_MAT2 (PINCONF_FUNC5|PINCONF_PINS6|PINCONF_PIN_9) +#define PINCONF_T2_MAT3 (PINCONF_FUNC5|PINCONF_PINS6|PINCONF_PIN_11) + +#define PINCONF_T3_CAP0_1 (PINCONF_FUNC6|PINCONF_PINS2|PINCONF_PIN_0) +#define PINCONF_T3_CAP0_2 (PINCONF_FUNC6|PINCONF_PINSC|PINCONF_PIN_1) +#define PINCONF_T3_CAP1_1 (PINCONF_FUNC6|PINCONF_PINS2|PINCONF_PIN_1) +#define PINCONF_T3_CAP1_2 (PINCONF_FUNC6|PINCONF_PINSC|PINCONF_PIN_4) +#define PINCONF_T3_CAP2_1 (PINCONF_FUNC6|PINCONF_PINS2|PINCONF_PIN_2) +#define PINCONF_T3_CAP2_2 (PINCONF_FUNC6|PINCONF_PINSC|PINCONF_PIN_5) +#define PINCONF_T3_CAP3_1 (PINCONF_FUNC6|PINCONF_PINS2|PINCONF_PIN_6) +#define PINCONF_T3_CAP3_2 (PINCONF_FUNC6|PINCONF_PINSC|PINCONF_PIN_6) +#define PINCONF_T3_MAT0_1 (PINCONF_FUNC6|PINCONF_PINS2|PINCONF_PIN_3) +#define PINCONF_T3_MAT0_2 (PINCONF_FUNC6|PINCONF_PINSC|PINCONF_PIN_7) +#define PINCONF_T3_MAT1_1 (PINCONF_FUNC6|PINCONF_PINS2|PINCONF_PIN_4) +#define PINCONF_T3_MAT1_2 (PINCONF_FUNC6|PINCONF_PINSC|PINCONF_PIN_8) +#define PINCONF_T3_MAT2_1 (PINCONF_FUNC6|PINCONF_PINS2|PINCONF_PIN_5) +#define PINCONF_T3_MAT2_2 (PINCONF_FUNC6|PINCONF_PINSC|PINCONF_PIN_9) +#define PINCONF_T3_MAT3_1 (PINCONF_FUNC6|PINCONF_PINS2|PINCONF_PIN_7) +#define PINCONF_T3_MAT3_2 (PINCONF_FUNC6|PINCONF_PINSC|PINCONF_PIN_10) + +#define PINCONF_TRACECLK (PINCONF_FUNC2|PINCONF_PINSF|PINCONF_PIN_4) +#define PINCONF_TRACEDATA0_1 (PINCONF_FUNC3|PINCONF_PINSF|PINCONF_PIN_5) +#define PINCONF_TRACEDATA0_2 (PINCONF_FUNC5|PINCONF_PINS7|PINCONF_PIN_4) +#define PINCONF_TRACEDATA1_1 (PINCONF_FUNC3|PINCONF_PINSF|PINCONF_PIN_6) +#define PINCONF_TRACEDATA1_2 (PINCONF_FUNC5|PINCONF_PINS7|PINCONF_PIN_5) +#define PINCONF_TRACEDATA2_1 (PINCONF_FUNC3|PINCONF_PINSF|PINCONF_PIN_7) +#define PINCONF_TRACEDATA2_2 (PINCONF_FUNC5|PINCONF_PINS7|PINCONF_PIN_6) +#define PINCONF_TRACEDATA3_1 (PINCONF_FUNC3|PINCONF_PINSF|PINCONF_PIN_8) +#define PINCONF_TRACEDATA3_2 (PINCONF_FUNC5|PINCONF_PINS7|PINCONF_PIN_7) + +#define PINCONF_U0_DIR_1 (PINCONF_FUNC1|PINCONF_PULLUP|PINCONF_INBUFFER|PINCONF_PINS2|PINCONF_PIN_6) +#define PINCONF_U0_DIR_2 (PINCONF_FUNC1|PINCONF_PULLUP|PINCONF_INBUFFER|PINCONF_PINSF|PINCONF_PIN_9) +#define PINCONF_U0_DIR_3 (PINCONF_FUNC2|PINCONF_PULLUP|PINCONF_INBUFFER|PINCONF_PINS6|PINCONF_PIN_2) +#define PINCONF_U0_RXD_1 (PINCONF_FUNC1|PINCONF_PULLUP|PINCONF_INBUFFER|PINCONF_PINS2|PINCONF_PIN_1) +#define PINCONF_U0_RXD_2 (PINCONF_FUNC1|PINCONF_PULLUP|PINCONF_INBUFFER|PINCONF_PINSF|PINCONF_PIN_11) +#define PINCONF_U0_RXD_3 (PINCONF_FUNC2|PINCONF_PULLUP|PINCONF_INBUFFER|PINCONF_PINS6|PINCONF_PIN_5) +#define PINCONF_U0_RXD_4 (PINCONF_FUNC7|PINCONF_PULLUP|PINCONF_INBUFFER|PINCONF_PINS9|PINCONF_PIN_6) +#define PINCONF_U0_TXD_1 (PINCONF_FUNC1|PINCONF_PULLUP|PINCONF_INBUFFER|PINCONF_PINS2|PINCONF_PIN_0) +#define PINCONF_U0_TXD_2 (PINCONF_FUNC1|PINCONF_PULLUP|PINCONF_INBUFFER|PINCONF_PINSF|PINCONF_PIN_10) +#define PINCONF_U0_TXD_3 (PINCONF_FUNC2|PINCONF_PULLUP|PINCONF_INBUFFER|PINCONF_PINS6|PINCONF_PIN_4) +#define PINCONF_U0_TXD_4 (PINCONF_FUNC7|PINCONF_PULLUP|PINCONF_INBUFFER|PINCONF_PINS9|PINCONF_PIN_5) +#define PINCONF_U0_UCLK_1 (PINCONF_FUNC1|PINCONF_PULLUP|PINCONF_INBUFFER|PINCONF_PINS2|PINCONF_PIN_2) +#define PINCONF_U0_UCLK_2 (PINCONF_FUNC1|PINCONF_PULLUP|PINCONF_INBUFFER|PINCONF_PINSF|PINCONF_PIN_8) +#define PINCONF_U0_UCLK_3 (PINCONF_FUNC2|PINCONF_PULLUP|PINCONF_INBUFFER|PINCONF_PINS6|PINCONF_PIN_1) + +#define PINCONF_U1_CTS_1 (PINCONF_FUNC1|PINCONF_PULLUP|PINCONF_INBUFFER|PINCONF_PINS1|PINCONF_PIN_11) +#define PINCONF_U1_CTS_2 (PINCONF_FUNC2|PINCONF_PULLUP|PINCONF_INBUFFER|PINCONF_PINSC|PINCONF_PIN_2) +#define PINCONF_U1_CTS_3 (PINCONF_FUNC2|PINCONF_PULLUP|PINCONF_INBUFFER|PINCONF_PINSE|PINCONF_PIN_7) +#define PINCONF_U1_CTS_4 (PINCONF_FUNC4|PINCONF_PULLUP|PINCONF_INBUFFER|PINCONF_PINS5|PINCONF_PIN_4) +#define PINCONF_U1_DCD_1 (PINCONF_FUNC1|PINCONF_PULLUP|PINCONF_INBUFFER|PINCONF_PINS1|PINCONF_PIN_12) +#define PINCONF_U1_DCD_2 (PINCONF_FUNC2|PINCONF_PULLUP|PINCONF_INBUFFER|PINCONF_PINSC|PINCONF_PIN_11) +#define PINCONF_U1_DCD_3 (PINCONF_FUNC2|PINCONF_PULLUP|PINCONF_INBUFFER|PINCONF_PINSE|PINCONF_PIN_9) +#define PINCONF_U1_DCD_4 (PINCONF_FUNC4|PINCONF_PULLUP|PINCONF_INBUFFER|PINCONF_PINS5|PINCONF_PIN_5) +#define PINCONF_U1_DSR_1 (PINCONF_FUNC1|PINCONF_PULLUP|PINCONF_INBUFFER|PINCONF_PINS1|PINCONF_PIN_7) +#define PINCONF_U1_DSR_2 (PINCONF_FUNC2|PINCONF_PULLUP|PINCONF_INBUFFER|PINCONF_PINSC|PINCONF_PIN_10) +#define PINCONF_U1_DSR_3 (PINCONF_FUNC2|PINCONF_PULLUP|PINCONF_INBUFFER|PINCONF_PINSE|PINCONF_PIN_8) +#define PINCONF_U1_DSR_4 (PINCONF_FUNC4|PINCONF_PULLUP|PINCONF_INBUFFER|PINCONF_PINS5|PINCONF_PIN_0) +#define PINCONF_U1_DTR_1 (PINCONF_FUNC1|PINCONF_PULLUP|PINCONF_INBUFFER|PINCONF_PINS1|PINCONF_PIN_8) +#define PINCONF_U1_DTR_2 (PINCONF_FUNC2|PINCONF_PULLUP|PINCONF_INBUFFER|PINCONF_PINSC|PINCONF_PIN_12) +#define PINCONF_U1_DTR_3 (PINCONF_FUNC2|PINCONF_PULLUP|PINCONF_INBUFFER|PINCONF_PINSE|PINCONF_PIN_10) +#define PINCONF_U1_DTR_4 (PINCONF_FUNC4|PINCONF_PULLUP|PINCONF_INBUFFER|PINCONF_PINS5|PINCONF_PIN_1) +#define PINCONF_U1_RI_1 (PINCONF_FUNC1|PINCONF_PULLUP|PINCONF_INBUFFER|PINCONF_PINS1|PINCONF_PIN_10) +#define PINCONF_U1_RI_2 (PINCONF_FUNC2|PINCONF_PULLUP|PINCONF_INBUFFER|PINCONF_PINSC|PINCONF_PIN_1) +#define PINCONF_U1_RI_3 (PINCONF_FUNC2|PINCONF_PULLUP|PINCONF_INBUFFER|PINCONF_PINSE|PINCONF_PIN_6) +#define PINCONF_U1_RI_4 (PINCONF_FUNC4|PINCONF_PULLUP|PINCONF_INBUFFER|PINCONF_PINS5|PINCONF_PIN_3) +#define PINCONF_U1_RTS_1 (PINCONF_FUNC1|PINCONF_PULLUP|PINCONF_INBUFFER|PINCONF_PINS1|PINCONF_PIN_9) +#define PINCONF_U1_RTS_2 (PINCONF_FUNC2|PINCONF_PULLUP|PINCONF_INBUFFER|PINCONF_PINSC|PINCONF_PIN_3) +#define PINCONF_U1_RTS_3 (PINCONF_FUNC2|PINCONF_PULLUP|PINCONF_INBUFFER|PINCONF_PINSE|PINCONF_PIN_5) +#define PINCONF_U1_RTS_4 (PINCONF_FUNC4|PINCONF_PULLUP|PINCONF_INBUFFER|PINCONF_PINS5|PINCONF_PIN_2) +#define PINCONF_U1_RXD_1 (PINCONF_FUNC1|PINCONF_PULLUP|PINCONF_INBUFFER|PINCONF_PINS1|PINCONF_PIN_14) +#define PINCONF_U1_RXD_2 (PINCONF_FUNC2|PINCONF_PULLUP|PINCONF_INBUFFER|PINCONF_PINSC|PINCONF_PIN_14) +#define PINCONF_U1_RXD_3 (PINCONF_FUNC2|PINCONF_PULLUP|PINCONF_INBUFFER|PINCONF_PINSE|PINCONF_PIN_12) +#define PINCONF_U1_RXD_4 (PINCONF_FUNC4|PINCONF_PULLUP|PINCONF_INBUFFER|PINCONF_PINS3|PINCONF_PIN_5) +#define PINCONF_U1_RXD_5 (PINCONF_FUNC4|PINCONF_PULLUP|PINCONF_INBUFFER|PINCONF_PINS5|PINCONF_PIN_7) +#define PINCONF_U1_TXD_1 (PINCONF_FUNC1|PINCONF_PULLUP|PINCONF_INBUFFER|PINCONF_PINS1|PINCONF_PIN_13) +#define PINCONF_U1_TXD_2 (PINCONF_FUNC2|PINCONF_PULLUP|PINCONF_INBUFFER|PINCONF_PINSC|PINCONF_PIN_13) +#define PINCONF_U1_TXD_3 (PINCONF_FUNC2|PINCONF_PULLUP|PINCONF_INBUFFER|PINCONF_PINSE|PINCONF_PIN_11) +#define PINCONF_U1_TXD_4 (PINCONF_FUNC4|PINCONF_PULLUP|PINCONF_INBUFFER|PINCONF_PINS3|PINCONF_PIN_4) +#define PINCONF_U1_TXD_5 (PINCONF_FUNC4|PINCONF_PULLUP|PINCONF_INBUFFER|PINCONF_PINS5|PINCONF_PIN_6) + +#define PINCONF_U2_DIR_1 (PINCONF_FUNC1|PINCONF_PINS1|PINCONF_PIN_18) +#define PINCONF_U2_DIR_2 (PINCONF_FUNC7|PINCONF_PINS2|PINCONF_PIN_13) +#define PINCONF_U2_RXD_1 (PINCONF_FUNC1|PINCONF_PINS1|PINCONF_PIN_16) +#define PINCONF_U2_RXD_2 (PINCONF_FUNC2|PINCONF_PINS2|PINCONF_PIN_11) +#define PINCONF_U2_RXD_3 (PINCONF_FUNC3|PINCONF_PINSA|PINCONF_PIN_2) +#define PINCONF_U2_RXD_4 (PINCONF_FUNC6|PINCONF_PINS7|PINCONF_PIN_2) +#define PINCONF_U2_TXD_1 (PINCONF_FUNC1|PINCONF_PINS1|PINCONF_PIN_15) +#define PINCONF_U2_TXD_2 (PINCONF_FUNC2|PINCONF_PINS2|PINCONF_PIN_10) +#define PINCONF_U2_TXD_3 (PINCONF_FUNC3|PINCONF_PINSA|PINCONF_PIN_1) +#define PINCONF_U2_TXD_4 (PINCONF_FUNC6|PINCONF_PINS7|PINCONF_PIN_1) +#define PINCONF_U2_UCLK_1 (PINCONF_FUNC1|PINCONF_PINS1|PINCONF_PIN_17) +#define PINCONF_U2_UCLK_2 (PINCONF_FUNC7|PINCONF_PINS2|PINCONF_PIN_12) + +#define PINCONF_U3_BAUD_1 (PINCONF_FUNC1|PINCONF_PINSF|PINCONF_PIN_7) +#define PINCONF_U3_BAUD_2 (PINCONF_FUNC2|PINCONF_PINS2|PINCONF_PIN_9) +#define PINCONF_U3_BAUD_3 (PINCONF_FUNC6|PINCONF_PINS4|PINCONF_PIN_3) +#define PINCONF_U3_DIR_1 (PINCONF_FUNC1|PINCONF_PINSF|PINCONF_PIN_6) +#define PINCONF_U3_DIR_2 (PINCONF_FUNC2|PINCONF_PINS2|PINCONF_PIN_8) +#define PINCONF_U3_DIR_3 (PINCONF_FUNC6|PINCONF_PINS4|PINCONF_PIN_4) +#define PINCONF_U3_RXD_1 (PINCONF_FUNC1|PINCONF_PINSF|PINCONF_PIN_3) +#define PINCONF_U3_RXD_2 (PINCONF_FUNC2|PINCONF_PINS2|PINCONF_PIN_4) +#define PINCONF_U3_RXD_3 (PINCONF_FUNC6|PINCONF_PINS4|PINCONF_PIN_2) +#define PINCONF_U3_RXD_4 (PINCONF_FUNC7|PINCONF_PINS9|PINCONF_PIN_4) +#define PINCONF_U3_TXD_1 (PINCONF_FUNC1|PINCONF_PINSF|PINCONF_PIN_2) +#define PINCONF_U3_TXD_2 (PINCONF_FUNC2|PINCONF_PINS2|PINCONF_PIN_3) +#define PINCONF_U3_TXD_3 (PINCONF_FUNC6|PINCONF_PINS4|PINCONF_PIN_1) +#define PINCONF_U3_TXD_4 (PINCONF_FUNC7|PINCONF_PINS9|PINCONF_PIN_3) +#define PINCONF_U3_UCLK_1 (PINCONF_FUNC1|PINCONF_PINSF|PINCONF_PIN_5) +#define PINCONF_U3_UCLK_2 (PINCONF_FUNC2|PINCONF_PINS2|PINCONF_PIN_7) +#define PINCONF_U3_UCLK_3 (PINCONF_FUNC6|PINCONF_PINS4|PINCONF_PIN_0) + +#define PINCONF_USB0_IND0_1 (PINCONF_FUNC1|PINCONF_PINS8|PINCONF_PIN_2) +#define PINCONF_USB0_IND0_2 (PINCONF_FUNC3|PINCONF_PINS2|PINCONF_PIN_6) +#define PINCONF_USB0_IND0_3 (PINCONF_FUNC3|PINCONF_PINS6|PINCONF_PIN_8) +#define PINCONF_USB0_IND0_4 (PINCONF_FUNC4|PINCONF_PINS1|PINCONF_PIN_4) +#define PINCONF_USB0_IND0_5 (PINCONF_FUNC7|PINCONF_PINS2|PINCONF_PIN_5) +#define PINCONF_USB0_IND1_1 (PINCONF_FUNC1|PINCONF_PINS8|PINCONF_PIN_1) +#define PINCONF_USB0_IND1_2 (PINCONF_FUNC3|PINCONF_PINS2|PINCONF_PIN_2) +#define PINCONF_USB0_IND1_3 (PINCONF_FUNC3|PINCONF_PINS6|PINCONF_PIN_7) +#define PINCONF_USB0_IND1_4 (PINCONF_FUNC4|PINCONF_PINS1|PINCONF_PIN_3) +#define PINCONF_USB0_PPWR_1 (PINCONF_FUNC1|PINCONF_PINS6|PINCONF_PIN_3) +#define PINCONF_USB0_PPWR_2 (PINCONF_FUNC3|PINCONF_PINS2|PINCONF_PIN_0) +#define PINCONF_USB0_PPWR_3 (PINCONF_FUNC4|PINCONF_PINS1|PINCONF_PIN_7) +#define PINCONF_USB0_PPWR_4 (PINCONF_FUNC7|PINCONF_PINS2|PINCONF_PIN_3) +#define PINCONF_USB0_PWR_FAULT_1 (PINCONF_FUNC1|PINCONF_PINS8|PINCONF_PIN_0) +#define PINCONF_USB0_PWR_FAULT_2 (PINCONF_FUNC3|PINCONF_PINS2|PINCONF_PIN_1) +#define PINCONF_USB0_PWR_FAULT_3 (PINCONF_FUNC3|PINCONF_PINS6|PINCONF_PIN_6) +#define PINCONF_USB0_PWR_FAULT_4 (PINCONF_FUNC4|PINCONF_PINS1|PINCONF_PIN_5) +#define PINCONF_USB0_PWR_FAULT_5 (PINCONF_FUNC7|PINCONF_PINS2|PINCONF_PIN_4) + +#define PINCONF_USB1_IND0_1 (PINCONF_FUNC2|PINCONF_PINS9|PINCONF_PIN_4) +#define PINCONF_USB1_IND0_2 (PINCONF_FUNC3|PINCONF_PINS3|PINCONF_PIN_2) +#define PINCONF_USB1_IND1_1 (PINCONF_FUNC2|PINCONF_PINS9|PINCONF_PIN_3) +#define PINCONF_USB1_IND1_2 (PINCONF_FUNC3|PINCONF_PINS3|PINCONF_PIN_1) +#define PINCONF_USB1_PPWR (PINCONF_FUNC2|PINCONF_PINS9|PINCONF_PIN_5) +#define PINCONF_USB1_PWR_FAULT (PINCONF_FUNC2|PINCONF_PINS9|PINCONF_PIN_6) +#define PINCONF_USB1_ULPI_CLK_1 (PINCONF_FUNC1|PINCONF_PINS8|PINCONF_PIN_8) +#define PINCONF_USB1_ULPI_CLK_2 (PINCONF_FUNC1|PINCONF_PINSC|PINCONF_PIN_0) +#define PINCONF_USB1_ULPI_D0_1 (PINCONF_FUNC1|PINCONF_PINS8|PINCONF_PIN_5) +#define PINCONF_USB1_ULPI_D0_2 (PINCONF_FUNC1|PINCONF_PINSC|PINCONF_PIN_8) +#define PINCONF_USB1_ULPI_D0_3 (PINCONF_FUNC5|PINCONF_PINSD|PINCONF_PIN_11) +#define PINCONF_USB1_ULPI_D1_1 (PINCONF_FUNC1|PINCONF_PINS8|PINCONF_PIN_4) +#define PINCONF_USB1_ULPI_D1_2 (PINCONF_FUNC1|PINCONF_PINSC|PINCONF_PIN_7) +#define PINCONF_USB1_ULPI_D2_1 (PINCONF_FUNC1|PINCONF_PINS8|PINCONF_PIN_3) +#define PINCONF_USB1_ULPI_D2_2 (PINCONF_FUNC1|PINCONF_PINSC|PINCONF_PIN_6) +#define PINCONF_USB1_ULPI_D3_1 (PINCONF_FUNC1|PINCONF_PINSB|PINCONF_PIN_6) +#define PINCONF_USB1_ULPI_D3_2 (PINCONF_FUNC1|PINCONF_PINSC|PINCONF_PIN_5) +#define PINCONF_USB1_ULPI_D4_1 (PINCONF_FUNC1|PINCONF_PINSB|PINCONF_PIN_5) +#define PINCONF_USB1_ULPI_D4_2 (PINCONF_FUNC1|PINCONF_PINSC|PINCONF_PIN_4) +#define PINCONF_USB1_ULPI_D5_1 (PINCONF_FUNC0|PINCONF_PINSC|PINCONF_PIN_3) +#define PINCONF_USB1_ULPI_D5_2 (PINCONF_FUNC1|PINCONF_PINSB|PINCONF_PIN_4) +#define PINCONF_USB1_ULPI_D6_1 (PINCONF_FUNC0|PINCONF_PINSC|PINCONF_PIN_2) +#define PINCONF_USB1_ULPI_D6_2 (PINCONF_FUNC1|PINCONF_PINSB|PINCONF_PIN_3) +#define PINCONF_USB1_ULPI_D7_1 (PINCONF_FUNC0|PINCONF_PINSC|PINCONF_PIN_1) +#define PINCONF_USB1_ULPI_D7_2 (PINCONF_FUNC1|PINCONF_PINSB|PINCONF_PIN_2) +#define PINCONF_USB1_ULPI_DIR_1 (PINCONF_FUNC1|PINCONF_PINSB|PINCONF_PIN_1) +#define PINCONF_USB1_ULPI_DIR_2 (PINCONF_FUNC1|PINCONF_PINSC|PINCONF_PIN_11) +#define PINCONF_USB1_ULPI_NXT_1 (PINCONF_FUNC1|PINCONF_PINS8|PINCONF_PIN_6) +#define PINCONF_USB1_ULPI_NXT_2 (PINCONF_FUNC1|PINCONF_PINSC|PINCONF_PIN_9) +#define PINCONF_USB1_ULPI_STP_1 (PINCONF_FUNC1|PINCONF_PINS8|PINCONF_PIN_7) +#define PINCONF_USB1_ULPI_STP_2 (PINCONF_FUNC1|PINCONF_PINSC|PINCONF_PIN_10) +#define PINCONF_USB1_VBUS (PINCONF_FUNC2|PINCONF_PINS2|PINCONF_PIN_5) + +#define CLKCONF_CGU_OUT0 (PINCONFIG_DIGITAL|PINCONF_FUNC5|PINCONF_CLK1) +#define CLKCONF_CGU_OUT1 (PINCONFIG_DIGITAL|PINCONF_FUNC5|PINCONF_CLK3) +#define CLKCONF_CLKOUT_1 (PINCONFIG_DIGITAL|PINCONF_FUNC1|PINCONF_CLK0) +#define CLKCONF_CLKOUT_2 (PINCONFIG_DIGITAL|PINCONF_FUNC1|PINCONF_CLK1) +#define CLKCONF_CLKOUT_3 (PINCONFIG_DIGITAL|PINCONF_FUNC1|PINCONF_CLK2) +#define CLKCONF_CLKOUT_4 (PINCONFIG_DIGITAL|PINCONF_FUNC1|PINCONF_CLK3) +#define CLKCONF_EMC_CLK0 (PINCONFIG_DIGITAL|PINCONF_FUNC0|PINCONF_CLK0) +#define CLKCONF_EMC_CLK01 (PINCONFIG_DIGITAL|PINCONF_FUNC5|PINCONF_CLK0) +#define CLKCONF_EMC_CLK1 (PINCONFIG_DIGITAL|PINCONF_FUNC0|PINCONF_CLK1) +#define CLKCONF_EMC_CLK2 (PINCONFIG_DIGITAL|PINCONF_FUNC0|PINCONF_CLK3) +#define CLKCONF_EMC_CLK23 (PINCONFIG_DIGITAL|PINCONF_FUNC5|PINCONF_CLK2) +#define CLKCONF_EMC_CLK3 (PINCONFIG_DIGITAL|PINCONF_FUNC0|PINCONF_CLK2) +#define CLKCONF_ENET_REF_CLK (PINCONFIG_DIGITAL|PINCONF_FUNC7|PINCONF_CLK0) +#define CLKCONF_ENET_TX_CLK (PINCONFIG_DIGITAL|PINCONF_FUNC7|PINCONF_CLK0) +#define CLKCONF_I2S0_TX_MCLK (PINCONFIG_DIGITAL|PINCONF_FUNC6|PINCONF_CLK2) +#define CLKCONF_I2S1_RX_SCK_1 (PINCONFIG_DIGITAL|PINCONF_FUNC7|PINCONF_CLK2) +#define CLKCONF_I2S1_RX_SCK_2 (PINCONFIG_DIGITAL|PINCONF_FUNC7|PINCONF_CLK3) +#define CLKCONF_I2S1_TX_MCLK (PINCONFIG_DIGITAL|PINCONF_FUNC7|PINCONF_CLK1) +#define CLKCONF_SD_CLK_1 (PINCONFIG_DIGITAL|PINCONF_FUNC4|PINCONF_CLK0) +#define CLKCONF_SD_CLK_2 (PINCONFIG_DIGITAL|PINCONF_FUNC4|PINCONF_CLK2) +#define CLKCONF_SSP1_SCK (PINCONFIG_DIGITAL|PINCONF_FUNC6|PINCONF_CLK0) + +/**************************************************************************************************** + * Public Types + ****************************************************************************************************/ + +/**************************************************************************************************** + * Public Data + ****************************************************************************************************/ + +/**************************************************************************************************** + * Public Functions + ****************************************************************************************************/ + +#endif /* __ARCH_ARM_SRC_LPC43XX_CHIP_LPC4337JET100_PINCONF_H */ -- GitLab From 317bf064a8d2a4653301c250708b088f8f0e752a Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 24 May 2016 07:44:36 -0600 Subject: [PATCH 231/307] i.MX6: Clean up some initializers --- arch/arm/src/imx6/imx_cpuboot.c | 24 +++++++++---------- .../lpc43xx/chip/lpc4337jet100_pinconfig.h | 2 +- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/arch/arm/src/imx6/imx_cpuboot.c b/arch/arm/src/imx6/imx_cpuboot.c index 2c3c618861..50b23b5c1d 100644 --- a/arch/arm/src/imx6/imx_cpuboot.c +++ b/arch/arm/src/imx6/imx_cpuboot.c @@ -70,44 +70,44 @@ typedef CODE void (*cpu_start_t)(void); #if 0 /* Not used */ static const uint32_t g_cpu_reset[CONFIG_SMP_NCPUS] = { - 0, + SRC_SCR_CORE0_RST #if CONFIG_SMP_NCPUS > 1 - SRC_SCR_CORE1_RST, + , SRC_SCR_CORE1_RST #endif #if CONFIG_SMP_NCPUS > 2 - SRC_SCR_CORE2_RST, + , SRC_SCR_CORE2_RST #endif #if CONFIG_SMP_NCPUS > 3 - SRC_SCR_CORE3_RST + , SRC_SCR_CORE3_RST #endif }; #endif static const uint32_t g_cpu_ctrl[CONFIG_SMP_NCPUS] = { - 0, + 0 #if CONFIG_SMP_NCPUS > 1 - SRC_SCR_CORE1_ENABLE, + , SRC_SCR_CORE1_ENABLE #endif #if CONFIG_SMP_NCPUS > 2 - SRC_SCR_CORE2_ENABLE, + , SRC_SCR_CORE2_ENABLE #endif #if CONFIG_SMP_NCPUS > 3 - SRC_SCR_CORE3_ENABLE + , SRC_SCR_CORE3_ENABLE #endif }; static const uintptr_t g_cpu_gpr[CONFIG_SMP_NCPUS] = { - 0, + IMX_SRC_GPR1 #if CONFIG_SMP_NCPUS > 1 - IMX_SRC_GPR3, + , IMX_SRC_GPR3 #endif #if CONFIG_SMP_NCPUS > 2 - IMX_SRC_GPR5, + , IMX_SRC_GPR5 #endif #if CONFIG_SMP_NCPUS > 3 - IMX_SRC_GPR7 + , IMX_SRC_GPR7 #endif }; diff --git a/arch/arm/src/lpc43xx/chip/lpc4337jet100_pinconfig.h b/arch/arm/src/lpc43xx/chip/lpc4337jet100_pinconfig.h index b6e0358f14..cf3fcd2213 100644 --- a/arch/arm/src/lpc43xx/chip/lpc4337jet100_pinconfig.h +++ b/arch/arm/src/lpc43xx/chip/lpc4337jet100_pinconfig.h @@ -1,7 +1,7 @@ /**************************************************************************************************** * arch/arm/src/lpc43xx/chip/lpc4337jet100_pinconfig.h * - * Copyright (C) 2014 Gregory Nutt. All rights reserved. + * Copyright (C) 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without -- GitLab From 15cc1b973da4c0d8487b000c5da3cdbc8ae2beb8 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 24 May 2016 07:57:38 -0600 Subject: [PATCH 232/307] Update ChangeLog --- ChangeLog | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/ChangeLog b/ChangeLog index 1e6adea239..07a9e890c2 100755 --- a/ChangeLog +++ b/ChangeLog @@ -11763,3 +11763,27 @@ this is probably only because the SMP NSH case does not stress the logic. There are know outstanding SMP issues as noted in the Sabre-6Quad README.txt file (2016-05-22). + * configs/sabre-6quad: Add an SMP configuration; Enable procfs in all + configurations (2016-05-22). + * include/nuttx/crypto/aes.h: Modifications to the crypto API needed + for LPC43xx. From Alexander Vasiljev (2016-05-23). + * arch/arm/src/lpc32xx: Add AES support. From Alexander Vasiljev + (2016-05-24). + * configs/*/src/tiva_timer.c: Tiva boards: Fix a naming collision, + rename board-specific function from tiva_timer_initialize() to + tiva_timer_configure() to remove conflict (2016-05-23). + * arch/arm/src/sam*: Ensure that the TWIHS (i2c) hw get's its clock + set when the sequence of sam_i2cbus_initialize(), + sam_i2cbus_uninitialize(), then sam_i2cbus_initialize() or twi_reset() + is called. I found this a while back in the stm32 family, so there + may be more arch-es with this sort of bug. I suppose any driver that + has the notion of "do not set the freq if it is already set" could be + suspect. From David Sidrane (2016-05-23). + * arch/arm/src/samv7: Add the up_systemreset interface to the samv7 + arch. The approach is slightly different in that: 1) It enables + ARCH_HAVE_RESET and allows the user to set if, and for how long, to + drive External nRST signal. It also does not contain a default + board_reset, as that really should be done in the config's src if + CONFIG_BOARDCTL_RESET is defined. From David Sidrane (2016-05-23). + * arch/arm/include/lpc43xx and src/lpc43xx: Adds definitions for the + LPC4337jet100 chip. From Alexander Vasiljev (2016-05-24). -- GitLab From 4b3e710af6efa8340a1906fc7e7dac15c967d52b Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 24 May 2016 10:51:22 -0600 Subject: [PATCH 233/307] Add an argument to board_app_initialize() --- configs/arduino-due/src/sam_appinit.c | 23 +++++++++-- configs/boardctl.c | 14 ++++++- configs/cc3200-launchpad/src/cc3200_boot.c | 18 ++++++++- configs/cloudctrl/src/stm32_appinit.c | 19 ++++++++- configs/compal_e86/src/boot.c | 27 +++++++++++-- configs/compal_e88/src/boot.c | 25 +++++++++++- configs/compal_e99/src/boot.c | 27 +++++++++++-- configs/demo9s12ne64/src/m9s12_appinit.c | 17 +++++++- configs/dk-tm4c129x/src/tm4c_appinit.c | 17 +++++++- configs/ea3131/src/lpc31_appinit.c | 19 ++++++++- configs/ea3152/src/lpc31_appinit.c | 17 +++++++- configs/eagle100/src/lm_appinit.c | 17 +++++++- configs/ekk-lm3s9b96/src/lm_appinit.c | 19 ++++++++- configs/fire-stm32v2/src/stm32_appinit.c | 19 ++++++++- configs/freedom-kl25z/src/kl_appinit.c | 23 ++++++++--- .../freedom-kl25z/src/kl_boardinitialize.c | 2 +- configs/freedom-kl26z/src/kl_appinit.c | 23 ++++++++--- .../freedom-kl26z/src/kl_boardinitialize.c | 2 +- configs/hymini-stm32v/src/stm32_appinit.c | 19 ++++++++- configs/kwikstik-k40/src/k40_appinit.c | 19 ++++++++- .../launchxl-tms57004/src/tms570_appinit.c | 23 ++++++++--- configs/lincoln60/src/lpc17_appinit.c | 23 ++++++++--- configs/lm3s6432-s2e/src/lm_appinit.c | 23 ++++++++--- configs/lm3s6965-ek/src/lm_appinit.c | 19 ++++++++- configs/lm3s8962-ek/src/lm_appinit.c | 19 ++++++++- configs/lm4f120-launchpad/src/lm4f_appinit.c | 19 ++++++++- configs/lpc4330-xplorer/src/lpc43_appinit.c | 19 ++++++++- configs/lpc4337-ws/src/lpc43_appinit.c | 17 +++++++- configs/lpc4357-evb/src/lpc43_appinit.c | 19 ++++++++- configs/lpc4370-link2/src/lpc43_appinit.c | 17 +++++++- .../lpcxpresso-lpc1115/src/lpc11_appinit.c | 27 ++++++++----- .../lpcxpresso-lpc1768/src/lpc17_appinit.c | 19 ++++++++- configs/maple/src/stm32_appinit.c | 17 +++++++- configs/mbed/src/lpc17_appinit.c | 19 ++++++++- configs/mcu123-lpc214x/src/lpc2148_appinit.c | 19 ++++++++- configs/mikroe-stm32f4/src/stm32_appinit.c | 23 ++++++++--- configs/mirtoo/src/pic32_appinit.c | 19 ++++++++- configs/moxa/src/moxart_appinit.c | 19 ++++++++- configs/ne64badge/src/m9s12_appinit.c | 19 ++++++++- configs/nucleo-144/src/stm32_appinitialize.c | 17 +++++++- configs/nucleo-144/src/stm32_boot.c | 2 +- .../nucleo-f303re/src/stm32_appinitialize.c | 19 ++++++++- configs/nucleo-f4x1re/src/stm32_appinit.c | 23 +++++++++-- configs/nucleo-f4x1re/src/stm32_boot.c | 2 +- configs/nucleo-l476rg/src/stm32_appinit.c | 23 +++++++++-- configs/nucleo-l476rg/src/stm32_boot.c | 2 +- configs/olimex-lpc-h3131/src/lpc31_appinit.c | 23 +++++++++-- configs/olimex-lpc1766stk/src/lpc17_appinit.c | 23 +++++++++-- configs/olimex-lpc2378/src/lpc2378_appinit.c | 23 +++++++++-- configs/olimex-stm32-h405/src/stm32_appinit.c | 23 +++++++++-- configs/olimex-stm32-h405/src/stm32_boot.c | 2 +- configs/olimex-stm32-h407/src/stm32_appinit.c | 21 +++++++++- configs/olimex-stm32-p207/src/stm32_appinit.c | 23 +++++++++-- configs/olimex-stm32-p207/src/stm32_boot.c | 10 +---- configs/olimex-strp711/src/str71_appinit.c | 23 +++++++++-- configs/olimexino-stm32/src/stm32_appinit.c | 21 +++++++++- configs/olimexino-stm32/src/stm32_boot.c | 2 +- configs/open1788/src/lpc17_appinit.c | 24 +++++++++-- configs/open1788/src/lpc17_boardinitialize.c | 2 +- .../pcblogic-pic32mx/src/pic32mx_appinit.c | 23 +++++++++-- configs/pcduino-a10/src/a1x_boot.c | 2 +- .../pic32mx-starterkit/src/pic32mx_appinit.c | 23 +++++++++-- configs/pic32mx7mmb/src/pic32_appinit.c | 23 +++++++++-- .../pic32mz-starterkit/src/pic32mz_appinit.c | 23 +++++++++-- configs/pirelli_dpl10/src/boot.c | 27 ++++++++++++- configs/sabre-6quad/src/imx_appinit.c | 21 +++++++++- configs/sam3u-ek/src/sam_appinit.c | 23 +++++++++-- configs/sam4e-ek/src/sam_appinit.c | 23 +++++++++-- configs/sam4e-ek/src/sam_boot.c | 2 +- configs/sam4l-xplained/src/sam_appinit.c | 23 +++++++++-- configs/sam4s-xplained-pro/src/sam_appinit.c | 23 +++++++++-- configs/sama5d2-xult/src/sam_appinit.c | 23 +++++++++-- configs/sama5d3-xplained/src/sam_appinit.c | 27 +++++++++---- configs/sama5d3-xplained/src/sam_boot.c | 2 +- configs/sama5d3x-ek/src/sam_appinit.c | 23 +++++++++-- configs/sama5d3x-ek/src/sam_boot.c | 2 +- configs/sama5d4-ek/src/sam_appinit.c | 23 +++++++++-- configs/samd20-xplained/src/sam_appinit.c | 23 +++++++++-- configs/samd21-xplained/src/sam_appinit.c | 23 +++++++++-- configs/same70-xplained/src/sam_appinit.c | 21 +++++++++- configs/saml21-xplained/src/sam_appinit.c | 23 +++++++++-- configs/samv71-xult/src/sam_appinit.c | 21 +++++++++- configs/shenzhou/src/stm32_appinit.c | 23 +++++++++-- configs/sim/src/sim_appinit.c | 19 ++++++++- configs/spark/src/stm32_appinit.c | 21 +++++++++- configs/spark/src/stm32_boot.c | 2 +- configs/spark/src/stm32_usbmsc.c | 2 +- configs/stm3210e-eval/src/stm32_appinit.c | 21 +++++++++- configs/stm3220g-eval/src/stm32_appinit.c | 21 +++++++++- configs/stm3240g-eval/src/stm32_appinit.c | 21 +++++++++- configs/stm3240g-eval/src/stm32_boot.c | 2 +- configs/stm32_tiny/src/stm32_appinit.c | 27 +++++++++---- configs/stm32f103-minimum/src/stm32_appinit.c | 21 +++++++++- configs/stm32f3discovery/src/stm32_appinit.c | 23 +++++++++-- configs/stm32f411e-disco/src/stm32_appinit.c | 21 +++++++++- configs/stm32f411e-disco/src/stm32_boot.c | 2 +- configs/stm32f429i-disco/src/stm32_appinit.c | 23 +++++++++-- configs/stm32f429i-disco/src/stm32_boot.c | 2 +- configs/stm32f4discovery/src/stm32_appinit.c | 24 +++++++++-- .../src/stm32_appinitialize.c | 23 ++++++++--- configs/stm32f746g-disco/src/stm32_boot.c | 2 +- configs/stm32l476vg-disco/src/stm32_appinit.c | 21 +++++++++- configs/stm32l476vg-disco/src/stm32_boot.c | 2 +- configs/stm32ldiscovery/src/stm32_appinit.c | 23 +++++++++-- configs/sure-pic32mx/src/pic32mx_appinit.c | 23 +++++++++-- configs/teensy-3.x/src/k20_appinit.c | 40 +++++++++---------- configs/teensy-lc/src/kl_appinit.c | 23 ++++++++--- configs/teensy-lc/src/kl_boardinitialize.c | 2 +- configs/tm4c123g-launchpad/src/tm4c_appinit.c | 27 +++++++++---- configs/tm4c1294-launchpad/src/tm4c_appinit.c | 27 +++++++++---- configs/twr-k60n512/src/k60_appinit.c | 23 +++++++++-- configs/u-blox-c027/src/lpc17_appinit.c | 21 +++++++++- configs/ubw32/src/pic32_appinit.c | 23 +++++++++-- .../viewtool-stm32f107/src/stm32_appinit.c | 23 +++++++++-- configs/zkit-arm-1769/src/lpc17_appinit.c | 29 +++++++++----- configs/zp214xpa/src/lpc2148_appinit.c | 19 ++++++++- include/nuttx/board.h | 17 +++++++- include/sys/boardctl.h | 14 ++++++- 118 files changed, 1824 insertions(+), 333 deletions(-) diff --git a/configs/arduino-due/src/sam_appinit.c b/configs/arduino-due/src/sam_appinit.c index ef52d100cc..32132ee330 100644 --- a/configs/arduino-due/src/sam_appinit.c +++ b/configs/arduino-due/src/sam_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/arduino-due/src/sam_appinit.c * - * Copyright (C) 2013 Gregory Nutt. All rights reserved. + * Copyright (C) 2013, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -76,11 +76,28 @@ * Name: board_app_initialize * * Description: - * Perform architecture specific initialization + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #if defined(CONFIG_ARDUINO_ITHEAD_TFT) && defined(CONFIG_SPI_BITBANG) && \ defined(CONFIG_MMCSD_SPI) diff --git a/configs/boardctl.c b/configs/boardctl.c index 82c5289065..749056d82a 100644 --- a/configs/boardctl.c +++ b/configs/boardctl.c @@ -250,14 +250,24 @@ int boardctl(unsigned int cmd, uintptr_t arg) { /* CMD: BOARDIOC_INIT * DESCRIPTION: Perform one-time application initialization. - * ARG: None + * ARG: The boardctl() argument is passed to the + * board_app_initialize() implementation without modification. + * The argument has no meaning to NuttX; the meaning of the + * argument is a contract between the board-specific + * initalization logic and the the matching application logic. + * The value cold be such things as a mode enumeration value, + * a set of DIP switch switch settings, a pointer to + * configuration data read from a file or serial FLASH, or + * whatever you would like to do with it. Every + * implementation should accept zero/NULL as a default + * configuration. * CONFIGURATION: CONFIG_LIB_BOARDCTL * DEPENDENCIES: Board logic must provide board_app_initialization */ case BOARDIOC_INIT: { - ret = board_app_initialize(); + ret = board_app_initialize(arg); } break; diff --git a/configs/cc3200-launchpad/src/cc3200_boot.c b/configs/cc3200-launchpad/src/cc3200_boot.c index 9d466b2d75..cf644905e0 100644 --- a/configs/cc3200-launchpad/src/cc3200_boot.c +++ b/configs/cc3200-launchpad/src/cc3200_boot.c @@ -67,6 +67,7 @@ /**************************************************************************** * Public Functions ****************************************************************************/ + /**************************************************************************** * Name: board_app_initialize * @@ -80,9 +81,24 @@ * CONFIG_LIB_BOARDCTL=n : * Called from board_initialize(). * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. + * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { return OK; } diff --git a/configs/cloudctrl/src/stm32_appinit.c b/configs/cloudctrl/src/stm32_appinit.c index 6bd5e5a203..cc772b5add 100644 --- a/configs/cloudctrl/src/stm32_appinit.c +++ b/configs/cloudctrl/src/stm32_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/cloudctrl/src/stm32_appinit.c * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. + * Copyright (C) 2012, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * Darcy Gong * @@ -108,9 +108,24 @@ * Description: * Perform architecture specific initialization * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. + * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #if defined(HAVE_USBHOST) || defined(HAVE_W25) int ret; diff --git a/configs/compal_e86/src/boot.c b/configs/compal_e86/src/boot.c index 32364c631e..8c214a004c 100644 --- a/configs/compal_e86/src/boot.c +++ b/configs/compal_e86/src/boot.c @@ -1,7 +1,7 @@ /**************************************************************************** * configs/compal_e86/boot.c * - * Copyright (C) 2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2015-2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -44,10 +44,31 @@ * Public Functions ****************************************************************************/ -/* Application initialization stub for boardctl() */ +/**************************************************************************** + * Name: board_app_initialize + * + * Description: + * Perform architecture specific initialization + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. + * + ****************************************************************************/ #ifdef CONFIG_LIB_BOARDCTL -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { return 0; } diff --git a/configs/compal_e88/src/boot.c b/configs/compal_e88/src/boot.c index 540bc39ca1..a3c6829227 100644 --- a/configs/compal_e88/src/boot.c +++ b/configs/compal_e88/src/boot.c @@ -44,10 +44,31 @@ * Public Functions ****************************************************************************/ -/* Application initialization stub for boardctl() */ +/**************************************************************************** + * Name: board_app_initialize + * + * Description: + * Perform architecture specific initialization + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. + * + ****************************************************************************/ #ifdef CONFIG_LIB_BOARDCTL -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { return 0; } diff --git a/configs/compal_e99/src/boot.c b/configs/compal_e99/src/boot.c index 74f17a2ebd..8bc7061daf 100644 --- a/configs/compal_e99/src/boot.c +++ b/configs/compal_e99/src/boot.c @@ -1,7 +1,7 @@ /**************************************************************************** * configs/compal_e99/boot.c * - * Copyright (C) 2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2015-2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -44,10 +44,31 @@ * Public Functions ****************************************************************************/ -/* Application initialization stub for boardctl() */ +/**************************************************************************** + * Name: board_app_initialize + * + * Description: + * Perform architecture specific initialization + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. + * + ****************************************************************************/ #ifdef CONFIG_LIB_BOARDCTL -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { return 0; } diff --git a/configs/demo9s12ne64/src/m9s12_appinit.c b/configs/demo9s12ne64/src/m9s12_appinit.c index ec3d9ba21c..0010a71e68 100644 --- a/configs/demo9s12ne64/src/m9s12_appinit.c +++ b/configs/demo9s12ne64/src/m9s12_appinit.c @@ -61,9 +61,24 @@ * Description: * Perform architecture specific initialization * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. + * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { /* Configure SPI-based devices */ diff --git a/configs/dk-tm4c129x/src/tm4c_appinit.c b/configs/dk-tm4c129x/src/tm4c_appinit.c index bd6c1b4b6b..20d889d47e 100644 --- a/configs/dk-tm4c129x/src/tm4c_appinit.c +++ b/configs/dk-tm4c129x/src/tm4c_appinit.c @@ -53,9 +53,24 @@ * Description: * Perform architecture specific initialization * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. + * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { /* If CONFIG_BOARD_INITIALIZE is selected then board initialization was * already performed in board_initialize. diff --git a/configs/ea3131/src/lpc31_appinit.c b/configs/ea3131/src/lpc31_appinit.c index 58e58709ca..43ef50be72 100644 --- a/configs/ea3131/src/lpc31_appinit.c +++ b/configs/ea3131/src/lpc31_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/ea3131/src/lpc31_appinit.c * - * Copyright (C) 2009, 2012 Gregory Nutt. All rights reserved. + * Copyright (C) 2009, 2012, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -107,9 +107,24 @@ * Description: * Perform architecture specific initialization * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. + * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #ifdef NSH_HAVEMMCSD FAR struct sdio_dev_s *sdio; diff --git a/configs/ea3152/src/lpc31_appinit.c b/configs/ea3152/src/lpc31_appinit.c index e77cdb63ef..e05327622c 100644 --- a/configs/ea3152/src/lpc31_appinit.c +++ b/configs/ea3152/src/lpc31_appinit.c @@ -107,9 +107,24 @@ * Description: * Perform architecture specific initialization * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. + * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #ifdef NSH_HAVEMMCSD FAR struct sdio_dev_s *sdio; diff --git a/configs/eagle100/src/lm_appinit.c b/configs/eagle100/src/lm_appinit.c index 6594f5abb1..72b7206fad 100644 --- a/configs/eagle100/src/lm_appinit.c +++ b/configs/eagle100/src/lm_appinit.c @@ -103,9 +103,24 @@ * Description: * Perform architecture specific initialization * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. + * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { FAR struct spi_dev_s *spi; int ret; diff --git a/configs/ekk-lm3s9b96/src/lm_appinit.c b/configs/ekk-lm3s9b96/src/lm_appinit.c index 313bdc9783..21be2c1952 100644 --- a/configs/ekk-lm3s9b96/src/lm_appinit.c +++ b/configs/ekk-lm3s9b96/src/lm_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/ekk-lm3s9b96/src/lm_appinit.c * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. + * Copyright (C) 2012, 2016 Gregory Nutt. All rights reserved. * Authors: Gregory Nutt * Jose Pablo Rojas V. * @@ -60,9 +60,24 @@ * Description: * Perform architecture specific initialization * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. + * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { return OK; } diff --git a/configs/fire-stm32v2/src/stm32_appinit.c b/configs/fire-stm32v2/src/stm32_appinit.c index 8c45062a8f..e8711ef204 100644 --- a/configs/fire-stm32v2/src/stm32_appinit.c +++ b/configs/fire-stm32v2/src/stm32_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/fire-stm32v2/src/stm32_appinit.c * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. + * Copyright (C) 2012, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -196,9 +196,24 @@ static void stm32_i2ctool(void) * Description: * Perform architecture specific initialization * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. + * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #if defined(HAVE_MMCSD) || defined(HAVE_W25) int ret; diff --git a/configs/freedom-kl25z/src/kl_appinit.c b/configs/freedom-kl25z/src/kl_appinit.c index a58a43c0bd..a00e675cdd 100644 --- a/configs/freedom-kl25z/src/kl_appinit.c +++ b/configs/freedom-kl25z/src/kl_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/stm32f4discovery/src/kl_appinit.c * - * Copyright (C) 2013 Gregory Nutt. All rights reserved. + * Copyright (C) 2013, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -59,13 +59,26 @@ * Name: board_app_initialize * * Description: - * Perform application specific initialization. This function is never - * called directly from application code, but only indirectly via the - * (non-standard) boardctl() interface using the command BOARDIOC_INIT. + * Perform architecture specific initialization + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #if defined(CONFIG_SENSORS_ADXL345) int ret; diff --git a/configs/freedom-kl25z/src/kl_boardinitialize.c b/configs/freedom-kl25z/src/kl_boardinitialize.c index 2ab54047be..4da407d238 100644 --- a/configs/freedom-kl25z/src/kl_boardinitialize.c +++ b/configs/freedom-kl25z/src/kl_boardinitialize.c @@ -124,7 +124,7 @@ void board_initialize(void) */ #if defined(CONFIG_NSH_LIBRARY) && !defined(CONFIG_LIB_BOARDCTL) - (void)board_app_initialize(); + (void)board_app_initialize(0); #endif /* CC3000 wireless initialization */ diff --git a/configs/freedom-kl26z/src/kl_appinit.c b/configs/freedom-kl26z/src/kl_appinit.c index c4e5ad7d42..96ac70a061 100644 --- a/configs/freedom-kl26z/src/kl_appinit.c +++ b/configs/freedom-kl26z/src/kl_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/stm32f4discovery/src/kl_appinit.c * - * Copyright (C) 2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2015-2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -57,13 +57,26 @@ * Name: board_app_initialize * * Description: - * Perform application specific initialization. This function is never - * called directly from application code, but only indirectly via the - * (non-standard) boardctl() interface using the command BOARDIOC_INIT. + * Perform architecture specific initialization + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { return OK; } diff --git a/configs/freedom-kl26z/src/kl_boardinitialize.c b/configs/freedom-kl26z/src/kl_boardinitialize.c index 004274c6f6..3a3be5190a 100644 --- a/configs/freedom-kl26z/src/kl_boardinitialize.c +++ b/configs/freedom-kl26z/src/kl_boardinitialize.c @@ -124,7 +124,7 @@ void board_initialize(void) */ #if defined(CONFIG_NSH_LIBRARY) && !defined(CONFIG_LIB_BOARDCTL) - (void)board_app_initialize(); + (void)board_app_initialize(0); #endif } #endif diff --git a/configs/hymini-stm32v/src/stm32_appinit.c b/configs/hymini-stm32v/src/stm32_appinit.c index df8adca907..4a7b220633 100644 --- a/configs/hymini-stm32v/src/stm32_appinit.c +++ b/configs/hymini-stm32v/src/stm32_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/hymini-stm32v/src/stm32_appinit.c * - * Copyright (C) 2009, 2011 Gregory Nutt. All rights reserved. + * Copyright (C) 2009, 2011, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -151,9 +151,24 @@ static int nsh_cdinterrupt(int irq, FAR void *context) * Description: * Perform architecture specific initialization * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. + * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #ifdef NSH_HAVEMMCSD int ret; diff --git a/configs/kwikstik-k40/src/k40_appinit.c b/configs/kwikstik-k40/src/k40_appinit.c index 1fb77c3634..43694bce93 100644 --- a/configs/kwikstik-k40/src/k40_appinit.c +++ b/configs/kwikstik-k40/src/k40_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/kwikstik-k40/src/k40_appinit.c * - * Copyright (C) 2011 Gregory Nutt. All rights reserved. + * Copyright (C) 2011, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -185,9 +185,24 @@ static int kinetis_cdinterrupt(int irq, FAR void *context) * Description: * Perform architecture specific initialization * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. + * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #ifdef NSH_HAVEMMCSD int ret; diff --git a/configs/launchxl-tms57004/src/tms570_appinit.c b/configs/launchxl-tms57004/src/tms570_appinit.c index 448ea16577..6a187b033f 100644 --- a/configs/launchxl-tms57004/src/tms570_appinit.c +++ b/configs/launchxl-tms57004/src/tms570_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * configs/launchxl_tms57004/src/sim_appinit.c * - * Copyright (C) 2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2015-2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -50,14 +50,27 @@ * Name: board_app_initialize * * Description: - * Perform application specific initialization. This function is never - * called directly from application code, but only indirectly via the - * (non-standard) boardctl() interface using the command BOARDIOC_INIT. + * Perform architecture specific initialization + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. * ****************************************************************************/ #ifdef CONFIG_LIB_BOARDCTL -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #ifndef CONFIG_BOARD_INITIALIZE /* Perform application level board initialization (if that was not already diff --git a/configs/lincoln60/src/lpc17_appinit.c b/configs/lincoln60/src/lpc17_appinit.c index a10646e751..2e1426635c 100644 --- a/configs/lincoln60/src/lpc17_appinit.c +++ b/configs/lincoln60/src/lpc17_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/lincoln60/src/lpc17_appinit.c * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. + * Copyright (C) 2012, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -47,10 +47,6 @@ #include #include -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ @@ -61,9 +57,24 @@ * Description: * Perform architecture specific initialization * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. + * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { return OK; } diff --git a/configs/lm3s6432-s2e/src/lm_appinit.c b/configs/lm3s6432-s2e/src/lm_appinit.c index ff74785425..d787ea3258 100644 --- a/configs/lm3s6432-s2e/src/lm_appinit.c +++ b/configs/lm3s6432-s2e/src/lm_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/lm3s6432-s2e/src/lm_appinit.c * - * Copyright (C) 2010 Gregory Nutt. All rights reserved. + * Copyright (C) 2010, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -47,10 +47,6 @@ #include #include -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ @@ -61,9 +57,24 @@ * Description: * Perform architecture specific initialization * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. + * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { return OK; } diff --git a/configs/lm3s6965-ek/src/lm_appinit.c b/configs/lm3s6965-ek/src/lm_appinit.c index 6f2480b80d..c9eaf61d81 100644 --- a/configs/lm3s6965-ek/src/lm_appinit.c +++ b/configs/lm3s6965-ek/src/lm_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/lm3s6965-ek/src/lm_appinit.c * - * Copyright (C) 2010 Gregory Nutt. All rights reserved. + * Copyright (C) 2010, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -107,9 +107,24 @@ * Description: * Perform architecture specific initialization * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. + * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #ifdef NSH_HAVEMMCSD FAR struct spi_dev_s *spi; diff --git a/configs/lm3s8962-ek/src/lm_appinit.c b/configs/lm3s8962-ek/src/lm_appinit.c index 7a027dda55..ba601eacb6 100644 --- a/configs/lm3s8962-ek/src/lm_appinit.c +++ b/configs/lm3s8962-ek/src/lm_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/lm3s8962-ek/src/lm_appinit.c * - * Copyright (C) 2010, 2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2010, 2015-2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -109,9 +109,24 @@ * Description: * Perform architecture specific initialization * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. + * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #ifdef NSH_HAVEMMCSD FAR struct spi_dev_s *spi; diff --git a/configs/lm4f120-launchpad/src/lm4f_appinit.c b/configs/lm4f120-launchpad/src/lm4f_appinit.c index b557f771f5..f667597398 100644 --- a/configs/lm4f120-launchpad/src/lm4f_appinit.c +++ b/configs/lm4f120-launchpad/src/lm4f_appinit.c @@ -2,7 +2,7 @@ * config/lm4f120-launchpad/src/lm4f_appinit.c * arch/arm/src/board/lm4f_appinit.c * - * Copyright (C) 2013 Gregory Nutt. All rights reserved. + * Copyright (C) 2013, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -79,9 +79,24 @@ * Description: * Perform architecture specific initialization * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. + * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { return OK; } diff --git a/configs/lpc4330-xplorer/src/lpc43_appinit.c b/configs/lpc4330-xplorer/src/lpc43_appinit.c index 6377c62de5..48225e0dde 100644 --- a/configs/lpc4330-xplorer/src/lpc43_appinit.c +++ b/configs/lpc4330-xplorer/src/lpc43_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/lpc4330-xplorer/src/lpc43_appinit.c * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. + * Copyright (C) 2012, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -139,9 +139,24 @@ static int nsh_spifi_initialize(void) * Description: * Perform architecture specific initialization * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. + * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { /* Initialize the SPIFI block device */ diff --git a/configs/lpc4337-ws/src/lpc43_appinit.c b/configs/lpc4337-ws/src/lpc43_appinit.c index 83b8cddc1e..976b78a418 100644 --- a/configs/lpc4337-ws/src/lpc43_appinit.c +++ b/configs/lpc4337-ws/src/lpc43_appinit.c @@ -116,9 +116,24 @@ static void lpc43_i2ctool(void) * Description: * Perform architecture specific initialization * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. + * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { /* Register I2C drivers on behalf of the I2C tool */ diff --git a/configs/lpc4357-evb/src/lpc43_appinit.c b/configs/lpc4357-evb/src/lpc43_appinit.c index 2555797f22..43efc040ce 100644 --- a/configs/lpc4357-evb/src/lpc43_appinit.c +++ b/configs/lpc4357-evb/src/lpc43_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/lpc4357-evb/src/lpc43_appinit.c * - * Copyright (C) 2014 Gregory Nutt. All rights reserved. + * Copyright (C) 2014, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -139,9 +139,24 @@ static int nsh_spifi_initialize(void) * Description: * Perform architecture specific initialization * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. + * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { /* Initialize the SPIFI block device */ diff --git a/configs/lpc4370-link2/src/lpc43_appinit.c b/configs/lpc4370-link2/src/lpc43_appinit.c index 74fce0eb1f..660fb2e5f7 100644 --- a/configs/lpc4370-link2/src/lpc43_appinit.c +++ b/configs/lpc4370-link2/src/lpc43_appinit.c @@ -116,9 +116,24 @@ static void lpc43_i2ctool(void) * Description: * Perform architecture specific initialization * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. + * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { /* Register I2C drivers on behalf of the I2C tool */ diff --git a/configs/lpcxpresso-lpc1115/src/lpc11_appinit.c b/configs/lpcxpresso-lpc1115/src/lpc11_appinit.c index bbe61c493d..3ca2de5969 100644 --- a/configs/lpcxpresso-lpc1115/src/lpc11_appinit.c +++ b/configs/lpcxpresso-lpc1115/src/lpc11_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/lpcxpresso-lpc1115/src/lpc11_appinit.c * - * Copyright (C) 2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2015-2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -99,14 +99,6 @@ # define CONFIG_NSH_MMCSDMINOR 0 #endif -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ @@ -117,9 +109,24 @@ * Description: * Perform architecture specific initialization * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. + * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #ifdef NSH_HAVEMMCSD FAR struct spi_dev_s *ssp; diff --git a/configs/lpcxpresso-lpc1768/src/lpc17_appinit.c b/configs/lpcxpresso-lpc1768/src/lpc17_appinit.c index a9b760b87c..0aefdd37d4 100644 --- a/configs/lpcxpresso-lpc1768/src/lpc17_appinit.c +++ b/configs/lpcxpresso-lpc1768/src/lpc17_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/lpcxpresso-lpc1768/src/lpc17_appinit.c * - * Copyright (C) 2011 Gregory Nutt. All rights reserved. + * Copyright (C) 2011, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -120,9 +120,24 @@ * Description: * Perform architecture specific initialization * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. + * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #ifdef NSH_HAVEMMCSD FAR struct spi_dev_s *ssp; diff --git a/configs/maple/src/stm32_appinit.c b/configs/maple/src/stm32_appinit.c index 3787833900..d1a7c50d22 100644 --- a/configs/maple/src/stm32_appinit.c +++ b/configs/maple/src/stm32_appinit.c @@ -55,9 +55,24 @@ * Description: * Perform architecture specific initialization * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. + * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { return OK; } diff --git a/configs/mbed/src/lpc17_appinit.c b/configs/mbed/src/lpc17_appinit.c index 505ae45545..f70e811f3b 100644 --- a/configs/mbed/src/lpc17_appinit.c +++ b/configs/mbed/src/lpc17_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/mbed/src/lpc17_appinit.c * - * Copyright (C) 2010 Gregory Nutt. All rights reserved. + * Copyright (C) 2010, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -78,9 +78,24 @@ * Description: * Perform architecture specific initialization * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. + * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { return OK; } diff --git a/configs/mcu123-lpc214x/src/lpc2148_appinit.c b/configs/mcu123-lpc214x/src/lpc2148_appinit.c index 6437d12bf5..1e840af361 100644 --- a/configs/mcu123-lpc214x/src/lpc2148_appinit.c +++ b/configs/mcu123-lpc214x/src/lpc2148_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/mcu123-lpc214x/src/lpc2148_appinit.c * - * Copyright (C) 2008-2009 Gregory Nutt. All rights reserved. + * Copyright (C) 2008-2009, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -108,9 +108,24 @@ * Description: * Perform architecture specific initialization * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. + * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #ifdef HAVE_MMCSD FAR struct spi_dev_s *spi; diff --git a/configs/mikroe-stm32f4/src/stm32_appinit.c b/configs/mikroe-stm32f4/src/stm32_appinit.c index 4ac23362d3..9970d6927b 100644 --- a/configs/mikroe-stm32f4/src/stm32_appinit.c +++ b/configs/mikroe-stm32f4/src/stm32_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/mikroe_stm32f4/src/stm32_appinit.c * - * Copyright (C) 2012-2013 Gregory Nutt. All rights reserved. + * Copyright (C) 2012-2013, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -147,10 +147,6 @@ # endif #endif -/**************************************************************************** - * Private Data - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ @@ -161,9 +157,24 @@ * Description: * Perform architecture specific initialization * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. + * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #ifdef CONFIG_STM32_SPI3 FAR struct spi_dev_s *spi; diff --git a/configs/mirtoo/src/pic32_appinit.c b/configs/mirtoo/src/pic32_appinit.c index 459e97b844..9fad1495bf 100644 --- a/configs/mirtoo/src/pic32_appinit.c +++ b/configs/mirtoo/src/pic32_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/mirtoo/src/pic32_appinit.c * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. + * Copyright (C) 2012, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -96,9 +96,24 @@ * Description: * Perform architecture specific initialization * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. + * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #ifdef HAVE_SST25 FAR struct spi_dev_s *spi; diff --git a/configs/moxa/src/moxart_appinit.c b/configs/moxa/src/moxart_appinit.c index f33045ccf5..1b7c8114d6 100644 --- a/configs/moxa/src/moxart_appinit.c +++ b/configs/moxa/src/moxart_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/moxart/src/moxart_appinit.c * - * Copyright (C) 2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2015-2016 Gregory Nutt. All rights reserved. * Author: Anton D. Kachalov * * Redistribution and use in source and binary forms, with or without @@ -70,9 +70,24 @@ * CONFIG_LIB_BOARDCTL=n : * Called from board_initialize(). * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. + * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #ifndef CONFIG_BOARD_INITIALIZE #ifdef CONFIG_NET_FTMAC100 diff --git a/configs/ne64badge/src/m9s12_appinit.c b/configs/ne64badge/src/m9s12_appinit.c index ba61f1eaf3..1550f5d519 100644 --- a/configs/ne64badge/src/m9s12_appinit.c +++ b/configs/ne64badge/src/m9s12_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/ne64badge/src/m9s12_appinit.c * - * Copyright (C) 2011 Gregory Nutt. All rights reserved. + * Copyright (C) 2011, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -61,9 +61,24 @@ * Description: * Perform architecture specific initialization * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. + * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { /* Configure SPI-based devices */ diff --git a/configs/nucleo-144/src/stm32_appinitialize.c b/configs/nucleo-144/src/stm32_appinitialize.c index 8dabb2bc4f..e1b318684c 100644 --- a/configs/nucleo-144/src/stm32_appinitialize.c +++ b/configs/nucleo-144/src/stm32_appinitialize.c @@ -56,9 +56,24 @@ * called directly from application code, but only indirectly via the * (non-standard) boardctl() interface using the command BOARDIOC_INIT. * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. + * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #if !defined(CONFIG_ARCH_LEDS) && defined(CONFIG_USERLED_LOWER) int ret; diff --git a/configs/nucleo-144/src/stm32_boot.c b/configs/nucleo-144/src/stm32_boot.c index 3a6b8cb951..210c0982a3 100644 --- a/configs/nucleo-144/src/stm32_boot.c +++ b/configs/nucleo-144/src/stm32_boot.c @@ -105,7 +105,7 @@ void board_initialize(void) * but the initialization function must run in kernel space. */ - (void)board_app_initialize(); + (void)board_app_initialize(0); #endif } #endif diff --git a/configs/nucleo-f303re/src/stm32_appinitialize.c b/configs/nucleo-f303re/src/stm32_appinitialize.c index dce4fd5090..d79c7d5041 100644 --- a/configs/nucleo-f303re/src/stm32_appinitialize.c +++ b/configs/nucleo-f303re/src/stm32_appinitialize.c @@ -1,7 +1,7 @@ /**************************************************************************** * configs/nucleo-f303re/src/stm32_appinitialize.c * - * Copyright (C) 2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2015-2016 Gregory Nutt. All rights reserved. * Copyright (C) 2015 Omni Hoverboards Inc. All rights reserved. * Authors: Gregory Nutt * Paul Alexander Patience @@ -61,9 +61,24 @@ * called directly from application code, but only indirectly via the * (non-standard) boardctl() interface using the command BOARDIOC_INIT. * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. + * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { return OK; } diff --git a/configs/nucleo-f4x1re/src/stm32_appinit.c b/configs/nucleo-f4x1re/src/stm32_appinit.c index 7f0d889d47..97cbc4ffc4 100644 --- a/configs/nucleo-f4x1re/src/stm32_appinit.c +++ b/configs/nucleo-f4x1re/src/stm32_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * configs/nucleo-f4x1re/src/stm32_appinit.c * - * Copyright (C) 2014 Gregory Nutt. All rights reserved. + * Copyright (C) 2014, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -89,11 +89,28 @@ void up_netinitialize(void) * Name: board_app_initialize * * Description: - * Perform architecture specific initialization + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #if defined(HAVE_MMCSD) || defined(CONFIG_AJOYSTICK) int ret; diff --git a/configs/nucleo-f4x1re/src/stm32_boot.c b/configs/nucleo-f4x1re/src/stm32_boot.c index 580b2d08c4..2b6f69e65e 100644 --- a/configs/nucleo-f4x1re/src/stm32_boot.c +++ b/configs/nucleo-f4x1re/src/stm32_boot.c @@ -121,7 +121,7 @@ void board_initialize(void) */ #if defined(CONFIG_NSH_LIBRARY) && !defined(CONFIG_LIB_BOARDCTL) - board_app_initialize(); + board_app_initialize(0); #endif /* CC3000 wireless initialization */ diff --git a/configs/nucleo-l476rg/src/stm32_appinit.c b/configs/nucleo-l476rg/src/stm32_appinit.c index 5a8b78513a..1e1bad7d9e 100644 --- a/configs/nucleo-l476rg/src/stm32_appinit.c +++ b/configs/nucleo-l476rg/src/stm32_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * configs/nucleo-l476rg/src/stm32_appinit.c * - * Copyright (C) 2014 Gregory Nutt. All rights reserved. + * Copyright (C) 2014, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -82,11 +82,28 @@ void up_netinitialize(void) * Name: board_app_initialize * * Description: - * Perform architecture specific initialization + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #ifdef HAVE_RTC_DRIVER FAR struct rtc_lowerhalf_s *rtclower; diff --git a/configs/nucleo-l476rg/src/stm32_boot.c b/configs/nucleo-l476rg/src/stm32_boot.c index 52d1a28f08..0389d18cf1 100644 --- a/configs/nucleo-l476rg/src/stm32_boot.c +++ b/configs/nucleo-l476rg/src/stm32_boot.c @@ -121,7 +121,7 @@ void board_initialize(void) */ #if defined(CONFIG_NSH_LIBRARY) && !defined(CONFIG_NSH_ARCHINIT) - board_app_initialize(); + board_app_initialize(0); #endif /* CC3000 wireless initialization */ diff --git a/configs/olimex-lpc-h3131/src/lpc31_appinit.c b/configs/olimex-lpc-h3131/src/lpc31_appinit.c index d24c412ffd..551a2d9bb6 100644 --- a/configs/olimex-lpc-h3131/src/lpc31_appinit.c +++ b/configs/olimex-lpc-h3131/src/lpc31_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * configs/olimex-lpc-h3131/src/lpc31_appinit.c * - * Copyright (C) 2013 Gregory Nutt. All rights reserved. + * Copyright (C) 2013, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -79,11 +79,28 @@ * Name: board_app_initialize * * Description: - * Perform architecture specific initialization + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #if defined(HAVE_MMCSD) || defined(HAVE_USBHOST) int ret; diff --git a/configs/olimex-lpc1766stk/src/lpc17_appinit.c b/configs/olimex-lpc1766stk/src/lpc17_appinit.c index 89fd701173..a8176afa25 100644 --- a/configs/olimex-lpc1766stk/src/lpc17_appinit.c +++ b/configs/olimex-lpc1766stk/src/lpc17_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/olimex-lpc1766stk/src/lpc17_appinit.c * - * Copyright (C) 2010, 2013-2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2010, 2013-2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -320,11 +320,28 @@ static int nsh_usbhostinitialize(void) * Name: board_app_initialize * * Description: - * Perform architecture specific initialization + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { int ret; diff --git a/configs/olimex-lpc2378/src/lpc2378_appinit.c b/configs/olimex-lpc2378/src/lpc2378_appinit.c index 6f7e8b194f..ed9ee4910a 100644 --- a/configs/olimex-lpc2378/src/lpc2378_appinit.c +++ b/configs/olimex-lpc2378/src/lpc2378_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/olimex-lpc2378/src/lpc2378_appinit.c * - * Copyright (C) 2010 Rommel Marcelo. All rights reserved. + * Copyright (C) 2010, 2016 Rommel Marcelo. All rights reserved. * Author: Rommel Marcelo * * This is part of the NuttX RTOS and based on the LPC2148 port: @@ -88,11 +88,28 @@ * Name: board_app_initialize * * Description: - * Perform architecture specific initialization + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { return OK; } diff --git a/configs/olimex-stm32-h405/src/stm32_appinit.c b/configs/olimex-stm32-h405/src/stm32_appinit.c index 623d9e3428..776b5ffa5c 100644 --- a/configs/olimex-stm32-h405/src/stm32_appinit.c +++ b/configs/olimex-stm32-h405/src/stm32_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/olimex-stm32-h405/src/stm32_appinit.c * - * Copyright (C) 2014 Gregory Nutt. All rights reserved. + * Copyright (C) 2014, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -73,7 +73,9 @@ * Name: board_app_initialize * * Description: - * Perform architecture specific initialization + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. * * CONFIG_LIB_BOARDCTL=y : * Called from the NSH library @@ -82,9 +84,24 @@ * CONFIG_LIB_BOARDCTL=n : * Called from board_initialize(). * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. + * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #if defined(CONFIG_CAN) || defined(CONFIG_ADC) int ret; diff --git a/configs/olimex-stm32-h405/src/stm32_boot.c b/configs/olimex-stm32-h405/src/stm32_boot.c index f057314fb4..7332b8a4ef 100644 --- a/configs/olimex-stm32-h405/src/stm32_boot.c +++ b/configs/olimex-stm32-h405/src/stm32_boot.c @@ -118,7 +118,7 @@ void board_initialize(void) */ #if defined(CONFIG_NSH_LIBRARY) && !defined(CONFIG_LIB_BOARDCTL) - board_app_initialize(); + board_app_initialize(0); #endif } #endif diff --git a/configs/olimex-stm32-h407/src/stm32_appinit.c b/configs/olimex-stm32-h407/src/stm32_appinit.c index e67ab3138b..6f0cd2dd64 100644 --- a/configs/olimex-stm32-h407/src/stm32_appinit.c +++ b/configs/olimex-stm32-h407/src/stm32_appinit.c @@ -71,16 +71,33 @@ * Name: board_app_initialize * * Description: - * Perform architecture specific initialization + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. * * CONFIG_LIB_BOARDCTL=y: * If CONFIG_NSH_ARCHINITIALIZE=y: * Called from the NSH library (or other application) * Otherse, assumed to be called from some other application. * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. + * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { return stm32_bringup(); } diff --git a/configs/olimex-stm32-p207/src/stm32_appinit.c b/configs/olimex-stm32-p207/src/stm32_appinit.c index 01f6362c34..695cc0607b 100644 --- a/configs/olimex-stm32-p207/src/stm32_appinit.c +++ b/configs/olimex-stm32-p207/src/stm32_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/olimex-stm32-p207/src/stm32_appinit.c * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. + * Copyright (C) 2012, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -102,7 +102,9 @@ * Name: board_app_initialize * * Description: - * Perform architecture specific initialization + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. * * CONFIG_LIB_BOARDCTL=y : * Called from the NSH library @@ -111,9 +113,24 @@ * CONFIG_LIB_BOARDCTL=n : * Called from board_initialize(). * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. + * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #if defined(HAVE_USBHOST) || defined(HAVE_USBMONITOR) || defined(CONFIG_ADC) int ret; diff --git a/configs/olimex-stm32-p207/src/stm32_boot.c b/configs/olimex-stm32-p207/src/stm32_boot.c index 7234449534..1d81c62109 100644 --- a/configs/olimex-stm32-p207/src/stm32_boot.c +++ b/configs/olimex-stm32-p207/src/stm32_boot.c @@ -47,14 +47,6 @@ #include "olimex-stm32-p207.h" -/************************************************************************************ - * Pre-processor Definitions - ************************************************************************************/ - -/************************************************************************************ - * Private Functions - ************************************************************************************/ - /************************************************************************************ * Public Functions ************************************************************************************/ @@ -119,7 +111,7 @@ void board_initialize(void) */ #if defined(CONFIG_NSH_LIBRARY) && !defined(CONFIG_LIB_BOARDCTL) - board_app_initialize(); + board_app_initialize(0); #endif } #endif diff --git a/configs/olimex-strp711/src/str71_appinit.c b/configs/olimex-strp711/src/str71_appinit.c index 44cca74773..e064cd5988 100644 --- a/configs/olimex-strp711/src/str71_appinit.c +++ b/configs/olimex-strp711/src/str71_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/olimex-strp711/src/str71_appinit.c * - * Copyright (C) 2009-2010 Gregory Nutt. All rights reserved. + * Copyright (C) 2009-2010, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -105,11 +105,28 @@ * Name: board_app_initialize * * Description: - * Perform architecture specific initialization + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #ifdef NSH_HAVEMMCSD FAR struct spi_dev_s *spi; diff --git a/configs/olimexino-stm32/src/stm32_appinit.c b/configs/olimexino-stm32/src/stm32_appinit.c index c7de1858b3..e9cd7fe0b4 100644 --- a/configs/olimexino-stm32/src/stm32_appinit.c +++ b/configs/olimexino-stm32/src/stm32_appinit.c @@ -68,11 +68,28 @@ * Name: board_app_initialize * * Description: - * Perform architecture specific initialization + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { int ret = OK; diff --git a/configs/olimexino-stm32/src/stm32_boot.c b/configs/olimexino-stm32/src/stm32_boot.c index e7f0b807e8..1d8d40bb3f 100644 --- a/configs/olimexino-stm32/src/stm32_boot.c +++ b/configs/olimexino-stm32/src/stm32_boot.c @@ -136,7 +136,7 @@ void board_initialize(void) * space but the initialization function must run in kernel space. */ - board_app_initialize(); + board_app_initialize(0); #endif #if defined(CONFIG_USBDEV) diff --git a/configs/open1788/src/lpc17_appinit.c b/configs/open1788/src/lpc17_appinit.c index 53dd70aeb9..d1ccc94df2 100644 --- a/configs/open1788/src/lpc17_appinit.c +++ b/configs/open1788/src/lpc17_appinit.c @@ -1,8 +1,7 @@ /**************************************************************************** * config/open1788/src/lpc17_appinit.c - * arch/arm/src/board/lpc17_appinit.c * - * Copyright (C) 2013 Gregory Nutt. All rights reserved. + * Copyright (C) 2013, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -362,7 +361,9 @@ static int nsh_usbhostinitialize(void) * Name: board_app_initialize * * Description: - * Perform architecture specific initialization for NSH. + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. * * CONFIG_LIB_BOARDCTL=y : * Called from the NSH library @@ -371,9 +372,24 @@ static int nsh_usbhostinitialize(void) * CONFIG_LIB_BOARDCTL=n: * Called from board_initialize(). * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. + * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { int ret; diff --git a/configs/open1788/src/lpc17_boardinitialize.c b/configs/open1788/src/lpc17_boardinitialize.c index 201e6ff210..0a4a3d11a0 100644 --- a/configs/open1788/src/lpc17_boardinitialize.c +++ b/configs/open1788/src/lpc17_boardinitialize.c @@ -136,7 +136,7 @@ void board_initialize(void) */ #if defined(CONFIG_NSH_LIBRARY) && !defined(CONFIG_LIB_BOARDCTL) - (void)board_app_initialize(); + (void)board_app_initialize(0); #endif } #endif diff --git a/configs/pcblogic-pic32mx/src/pic32mx_appinit.c b/configs/pcblogic-pic32mx/src/pic32mx_appinit.c index 97baa0009e..414d4b395b 100644 --- a/configs/pcblogic-pic32mx/src/pic32mx_appinit.c +++ b/configs/pcblogic-pic32mx/src/pic32mx_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/pcblocic-pic32mx/src/pic32mx_appinit.c * - * Copyright (C) 2013 Gregory Nutt. All rights reserved. + * Copyright (C) 2013, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -65,11 +65,28 @@ * Name: board_app_initialize * * Description: - * Perform architecture specific initialization + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { int ret = OK; diff --git a/configs/pcduino-a10/src/a1x_boot.c b/configs/pcduino-a10/src/a1x_boot.c index 951e8a8775..265d728731 100644 --- a/configs/pcduino-a10/src/a1x_boot.c +++ b/configs/pcduino-a10/src/a1x_boot.c @@ -96,7 +96,7 @@ void board_initialize(void) */ #if defined(CONFIG_NSH_LIBRARY) && !defined(CONFIG_LIB_BOARDCTL) - (void)board_app_initialize(); + (void)board_app_initialize(0); #endif } #endif /* CONFIG_BOARD_INITIALIZE */ diff --git a/configs/pic32mx-starterkit/src/pic32mx_appinit.c b/configs/pic32mx-starterkit/src/pic32mx_appinit.c index 6423630733..64bba54fc7 100644 --- a/configs/pic32mx-starterkit/src/pic32mx_appinit.c +++ b/configs/pic32mx-starterkit/src/pic32mx_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/pic32mx-starterkit/src/pic32mx_appinit.c * - * Copyright (C) 2011, 2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2011, 2015-2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -351,11 +351,28 @@ static int nsh_usbdevinitialize(void) * Name: board_app_initialize * * Description: - * Perform architecture specific initialization + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { int ret; diff --git a/configs/pic32mx7mmb/src/pic32_appinit.c b/configs/pic32mx7mmb/src/pic32_appinit.c index 0970e27781..8c62c9a766 100644 --- a/configs/pic32mx7mmb/src/pic32_appinit.c +++ b/configs/pic32mx7mmb/src/pic32_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/pic32mx7mmb/src/pic32_appinit.c * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. + * Copyright (C) 2012, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -361,11 +361,28 @@ static int nsh_usbdevinitialize(void) * Name: board_app_initialize * * Description: - * Perform architecture specific initialization + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { int ret; diff --git a/configs/pic32mz-starterkit/src/pic32mz_appinit.c b/configs/pic32mz-starterkit/src/pic32mz_appinit.c index a312b0e327..0b3a3dc823 100644 --- a/configs/pic32mz-starterkit/src/pic32mz_appinit.c +++ b/configs/pic32mz-starterkit/src/pic32mz_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/pic32mz-starterkit/src/pic32mz_appinit.c * - * Copyright (C) 2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2015-2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -53,11 +53,28 @@ * Name: board_app_initialize * * Description: - * Perform architecture specific initialization + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { /* If CONFIG_BOARD_INITIALIZE is selected then board initialization was * already performed in board_initialize. diff --git a/configs/pirelli_dpl10/src/boot.c b/configs/pirelli_dpl10/src/boot.c index 4cd07fb0a6..38d1fe8ac2 100644 --- a/configs/pirelli_dpl10/src/boot.c +++ b/configs/pirelli_dpl10/src/boot.c @@ -44,10 +44,33 @@ * Public Functions ****************************************************************************/ -/* Application initialization stub for boardctl() */ +/**************************************************************************** + * Name: board_app_initialize + * + * Description: + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. + * + ****************************************************************************/ #ifdef CONFIG_LIB_BOARDCTL -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { return 0; } diff --git a/configs/sabre-6quad/src/imx_appinit.c b/configs/sabre-6quad/src/imx_appinit.c index a1022c6cf1..7b7f66ead6 100644 --- a/configs/sabre-6quad/src/imx_appinit.c +++ b/configs/sabre-6quad/src/imx_appinit.c @@ -55,11 +55,28 @@ * Name: board_app_initialize * * Description: - * Perform architecture specific initialization + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #ifndef CONFIG_BOARD_INITIALIZE /* Perform board initialization */ diff --git a/configs/sam3u-ek/src/sam_appinit.c b/configs/sam3u-ek/src/sam_appinit.c index 481cc8ffbc..632d630394 100644 --- a/configs/sam3u-ek/src/sam_appinit.c +++ b/configs/sam3u-ek/src/sam_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/sam3u-ek/src/sam_appinit.c * - * Copyright (C) 2010, 2013 Gregory Nutt. All rights reserved. + * Copyright (C) 2010, 2013, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -105,11 +105,28 @@ * Name: board_app_initialize * * Description: - * Perform architecture specific initialization + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #ifdef NSH_HAVE_MMCSD FAR struct sdio_dev_s *sdio; diff --git a/configs/sam4e-ek/src/sam_appinit.c b/configs/sam4e-ek/src/sam_appinit.c index 0a577dc925..6eef612187 100644 --- a/configs/sam4e-ek/src/sam_appinit.c +++ b/configs/sam4e-ek/src/sam_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/sam4e-ek/src/sam_appinit.c * - * Copyright (C) 2014 Gregory Nutt. All rights reserved. + * Copyright (C) 2014, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -66,11 +66,28 @@ * Name: board_app_initialize * * Description: - * Perform architecture specific initialization + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #if defined(HAVE_AT25) || defined(HAVE_HSMCI) || defined(HAVE_USBMONITOR) int ret; diff --git a/configs/sam4e-ek/src/sam_boot.c b/configs/sam4e-ek/src/sam_boot.c index d75f6bebc3..d0dda097b0 100644 --- a/configs/sam4e-ek/src/sam_boot.c +++ b/configs/sam4e-ek/src/sam_boot.c @@ -152,7 +152,7 @@ void board_initialize(void) */ #if defined(CONFIG_NSH_LIBRARY) && !defined(CONFIG_LIB_BOARDCTL) - (void)board_app_initialize(); + (void)board_app_initialize(0); #endif } #endif /* CONFIG_BOARD_INITIALIZE */ diff --git a/configs/sam4l-xplained/src/sam_appinit.c b/configs/sam4l-xplained/src/sam_appinit.c index 48c072c98a..15330a80a2 100644 --- a/configs/sam4l-xplained/src/sam_appinit.c +++ b/configs/sam4l-xplained/src/sam_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/sam4l-xplained/src/sam_appinit.c * - * Copyright (C) 2013 Gregory Nutt. All rights reserved. + * Copyright (C) 2013, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -79,11 +79,28 @@ * Name: board_app_initialize * * Description: - * Perform architecture specific initialization + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #if defined(CONFIG_SAM34_LCDCA) && defined(CONFIG_SAM4L_XPLAINED_SLCD1MODULE) /* Initialize the SLCD and register the SLCD device as /dev/slcd */ diff --git a/configs/sam4s-xplained-pro/src/sam_appinit.c b/configs/sam4s-xplained-pro/src/sam_appinit.c index e85b97ae93..7e0d3c3d08 100644 --- a/configs/sam4s-xplained-pro/src/sam_appinit.c +++ b/configs/sam4s-xplained-pro/src/sam_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/sam4s-xplained-pro/src/sam_appinit.c * - * Copyright (C) 2014 Gregory Nutt. All rights reserved. + * Copyright (C) 2014, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * Bob Doiron * @@ -81,11 +81,28 @@ * Name: board_app_initialize * * Description: - * Perform architecture specific initialization + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #if defined (HAVE_USBDEV) || defined(HAVE_HSMCI) || defined (HAVE_PROC) || \ defined(HAVE_USBMONITOR) diff --git a/configs/sama5d2-xult/src/sam_appinit.c b/configs/sama5d2-xult/src/sam_appinit.c index 8472bc995c..518dc37696 100644 --- a/configs/sama5d2-xult/src/sam_appinit.c +++ b/configs/sama5d2-xult/src/sam_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/sama5d2-xult/src/sam_appinit.c * - * Copyright (C) 2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2015-2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -57,11 +57,28 @@ * Name: board_app_initialize * * Description: - * Perform architecture specific initialization + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #ifndef CONFIG_BOARD_INITIALIZE /* Perform board initialization */ diff --git a/configs/sama5d3-xplained/src/sam_appinit.c b/configs/sama5d3-xplained/src/sam_appinit.c index 1215fea595..cfee95be1f 100644 --- a/configs/sama5d3-xplained/src/sam_appinit.c +++ b/configs/sama5d3-xplained/src/sam_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/sama5d3-xplained/src/sam_appinit.c * - * Copyright (C) 2014-2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2014-2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -54,10 +54,6 @@ #include "sama5d3-xplained.h" -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ @@ -66,11 +62,28 @@ * Name: board_app_initialize * * Description: - * Perform architecture specific initialization + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #if defined(HAVE_NAND) || defined(HAVE_AT25) || defined(HAVE_HSMCI) || \ defined(HAVE_USBHOST) || defined(HAVE_USBMONITOR) || \\ diff --git a/configs/sama5d3-xplained/src/sam_boot.c b/configs/sama5d3-xplained/src/sam_boot.c index 9a3c34c825..901c30e243 100644 --- a/configs/sama5d3-xplained/src/sam_boot.c +++ b/configs/sama5d3-xplained/src/sam_boot.c @@ -153,7 +153,7 @@ void board_initialize(void) */ #if defined(CONFIG_NSH_LIBRARY) && !defined(CONFIG_LIB_BOARDCTL) - (void)board_app_initialize(); + (void)board_app_initialize(0); #endif } #endif /* CONFIG_BOARD_INITIALIZE */ diff --git a/configs/sama5d3x-ek/src/sam_appinit.c b/configs/sama5d3x-ek/src/sam_appinit.c index 56589915ce..9f4fff0f73 100644 --- a/configs/sama5d3x-ek/src/sam_appinit.c +++ b/configs/sama5d3x-ek/src/sam_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/sama5d3x-ek/src/sam_appinit.c * - * Copyright (C) 2013-2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2013-2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -66,11 +66,28 @@ * Name: board_app_initialize * * Description: - * Perform architecture specific initialization + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #if defined(HAVE_NAND) || defined(HAVE_AT25) || defined(HAVE_AT24) || \ defined(HAVE_HSMCI) || defined(HAVE_USBHOST) || defined(HAVE_USBMONITOR) ||\ diff --git a/configs/sama5d3x-ek/src/sam_boot.c b/configs/sama5d3x-ek/src/sam_boot.c index ce065150c4..d12ec87c75 100644 --- a/configs/sama5d3x-ek/src/sam_boot.c +++ b/configs/sama5d3x-ek/src/sam_boot.c @@ -153,7 +153,7 @@ void board_initialize(void) */ #if defined(CONFIG_NSH_LIBRARY) && !defined(CONFIG_LIB_BOARDCTL) - (void)board_app_initialize(); + (void)board_app_initialize(0); #endif } #endif /* CONFIG_BOARD_INITIALIZE */ diff --git a/configs/sama5d4-ek/src/sam_appinit.c b/configs/sama5d4-ek/src/sam_appinit.c index 9632e33353..066bbf00c3 100644 --- a/configs/sama5d4-ek/src/sam_appinit.c +++ b/configs/sama5d4-ek/src/sam_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/sama5d4-ek/src/sam_appinit.c * - * Copyright (C) 2014 Gregory Nutt. All rights reserved. + * Copyright (C) 2014, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -57,11 +57,28 @@ * Name: board_app_initialize * * Description: - * Perform architecture specific initialization + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #ifndef CONFIG_BOARD_INITIALIZE /* Perform board initialization */ diff --git a/configs/samd20-xplained/src/sam_appinit.c b/configs/samd20-xplained/src/sam_appinit.c index dd0ca0c9f3..8bc9a35b4f 100644 --- a/configs/samd20-xplained/src/sam_appinit.c +++ b/configs/samd20-xplained/src/sam_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/samd20-xplained/src/sam_appinit.c * - * Copyright (C) 2014 Gregory Nutt. All rights reserved. + * Copyright (C) 2014, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -97,11 +97,28 @@ * Name: board_app_initialize * * Description: - * Perform architecture specific initialization + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #if defined(SAMDL_HAVE_SPI0) && defined(CONFIG_SAMD20_XPLAINED_IOMODULE) /* Initialize the SPI-based MMC/SD slot */ diff --git a/configs/samd21-xplained/src/sam_appinit.c b/configs/samd21-xplained/src/sam_appinit.c index e0bca03010..56afb0ff24 100644 --- a/configs/samd21-xplained/src/sam_appinit.c +++ b/configs/samd21-xplained/src/sam_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/samd21-xplained/src/sam_appinit.c * - * Copyright (C) 2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2015-2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -97,11 +97,28 @@ * Name: board_app_initialize * * Description: - * Perform architecture specific initialization + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #if defined(SAMDL_HAVE_SPI0) && defined(CONFIG_SAMD21_XPLAINED_IOMODULE) /* Initialize the SPI-based MMC/SD slot */ diff --git a/configs/same70-xplained/src/sam_appinit.c b/configs/same70-xplained/src/sam_appinit.c index d3d1447122..5e8a871522 100644 --- a/configs/same70-xplained/src/sam_appinit.c +++ b/configs/same70-xplained/src/sam_appinit.c @@ -55,11 +55,28 @@ * Name: board_app_initialize * * Description: - * Perform architecture specific initialization + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #ifndef CONFIG_BOARD_INITIALIZE /* Perform board initialization */ diff --git a/configs/saml21-xplained/src/sam_appinit.c b/configs/saml21-xplained/src/sam_appinit.c index 98d66e9213..9f299c1f71 100644 --- a/configs/saml21-xplained/src/sam_appinit.c +++ b/configs/saml21-xplained/src/sam_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/saml21-xplained/src/sam_appinit.c * - * Copyright (C) 2014 Gregory Nutt. All rights reserved. + * Copyright (C) 2014, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -97,11 +97,28 @@ * Name: board_app_initialize * * Description: - * Perform architecture specific initialization + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #if defined(SAMDL_HAVE_SPI0) && defined(CONFIG_SAML21_XPLAINED_IOMODULE) /* Initialize the SPI-based MMC/SD slot */ diff --git a/configs/samv71-xult/src/sam_appinit.c b/configs/samv71-xult/src/sam_appinit.c index 451c97600d..f7215ff465 100644 --- a/configs/samv71-xult/src/sam_appinit.c +++ b/configs/samv71-xult/src/sam_appinit.c @@ -55,11 +55,28 @@ * Name: board_app_initialize * * Description: - * Perform architecture specific initialization + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #ifndef CONFIG_BOARD_INITIALIZE /* Perform board initialization */ diff --git a/configs/shenzhou/src/stm32_appinit.c b/configs/shenzhou/src/stm32_appinit.c index 4ef9ad82db..9b18c80d5d 100644 --- a/configs/shenzhou/src/stm32_appinit.c +++ b/configs/shenzhou/src/stm32_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/shenzhou/src/stm32_appinit.c * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. + * Copyright (C) 2012, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -142,11 +142,28 @@ * Name: board_app_initialize * * Description: - * Perform architecture specific initialization + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #if defined(HAVE_MMCSD) || defined(HAVE_USBHOST) || defined(HAVE_W25) int ret; diff --git a/configs/sim/src/sim_appinit.c b/configs/sim/src/sim_appinit.c index eecf0415cf..4100ec736b 100644 --- a/configs/sim/src/sim_appinit.c +++ b/configs/sim/src/sim_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * configs/sim/src/sim_appinit.c * - * Copyright (C) 2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2015-2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -54,10 +54,25 @@ * called directly from application code, but only indirectly via the * (non-standard) boardctl() interface using the command BOARDIOC_INIT. * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. + * ****************************************************************************/ #ifdef CONFIG_LIB_BOARDCTL -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #ifndef CONFIG_BOARD_INITIALIZE sim_bringup(); diff --git a/configs/spark/src/stm32_appinit.c b/configs/spark/src/stm32_appinit.c index 9b2d965a31..c91969cd59 100644 --- a/configs/spark/src/stm32_appinit.c +++ b/configs/spark/src/stm32_appinit.c @@ -130,11 +130,28 @@ static bool g_app_initialzed; * Name: board_app_initialize * * Description: - * Perform architecture specific initialization + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { /* Check if already initialized */ diff --git a/configs/spark/src/stm32_boot.c b/configs/spark/src/stm32_boot.c index 763538bebd..6d278fb502 100644 --- a/configs/spark/src/stm32_boot.c +++ b/configs/spark/src/stm32_boot.c @@ -123,7 +123,7 @@ void board_initialize(void) */ #if defined(CONFIG_NSH_LIBRARY) && !defined(CONFIG_LIB_BOARDCTL) - board_app_initialize(); + board_app_initialize(0); #endif /* CC3000 wireless initialization diff --git a/configs/spark/src/stm32_usbmsc.c b/configs/spark/src/stm32_usbmsc.c index 23c4cc9533..57e9e30d82 100644 --- a/configs/spark/src/stm32_usbmsc.c +++ b/configs/spark/src/stm32_usbmsc.c @@ -62,7 +62,7 @@ int board_usbmsc_initialize(int port) { - return board_app_initialize(); + return board_app_initialize(0); } #endif /* CONFIG_USBMSC && CONFIG_BOARDCTL_USBDEVCTRL */ diff --git a/configs/stm3210e-eval/src/stm32_appinit.c b/configs/stm3210e-eval/src/stm32_appinit.c index abc4e5881d..4a5d55c9eb 100644 --- a/configs/stm3210e-eval/src/stm32_appinit.c +++ b/configs/stm3210e-eval/src/stm32_appinit.c @@ -176,11 +176,28 @@ static void stm32_i2ctool(void) * Name: board_app_initialize * * Description: - * Perform architecture specific initialization + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #ifdef CONFIG_STM32_SPI1 FAR struct spi_dev_s *spi; diff --git a/configs/stm3220g-eval/src/stm32_appinit.c b/configs/stm3220g-eval/src/stm32_appinit.c index 54311e8fe8..89795b54d5 100644 --- a/configs/stm3220g-eval/src/stm32_appinit.c +++ b/configs/stm3220g-eval/src/stm32_appinit.c @@ -189,11 +189,28 @@ static void stm32_i2ctool(void) * Name: board_app_initialize * * Description: - * Perform architecture specific initialization + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #ifdef CONFIG_STM32_SPI1 FAR struct spi_dev_s *spi; diff --git a/configs/stm3240g-eval/src/stm32_appinit.c b/configs/stm3240g-eval/src/stm32_appinit.c index fd16151127..469180c390 100644 --- a/configs/stm3240g-eval/src/stm32_appinit.c +++ b/configs/stm3240g-eval/src/stm32_appinit.c @@ -207,11 +207,28 @@ static void stm32_i2ctool(void) * Name: board_app_initialize * * Description: - * Perform architecture specific initialization + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #ifdef HAVE_RTC_DRIVER FAR struct rtc_lowerhalf_s *lower; diff --git a/configs/stm3240g-eval/src/stm32_boot.c b/configs/stm3240g-eval/src/stm32_boot.c index 47322b69cd..09b3b82eed 100644 --- a/configs/stm3240g-eval/src/stm32_boot.c +++ b/configs/stm3240g-eval/src/stm32_boot.c @@ -161,7 +161,7 @@ static int board_initthread(int argc, char *argv[]) * but the initialization function must run in kernel space. */ - ret = board_app_initialize(); + ret = board_app_initialize(0); if (ret < 0) { gdbg("ERROR: board_app_initialize failed: %d\n", ret); diff --git a/configs/stm32_tiny/src/stm32_appinit.c b/configs/stm32_tiny/src/stm32_appinit.c index 2f117d2c2e..4b590de5d5 100644 --- a/configs/stm32_tiny/src/stm32_appinit.c +++ b/configs/stm32_tiny/src/stm32_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/stm32_tiny/src/stm32_appinit.c * - * Copyright (C) 2009, 2011, 2013 Gregory Nutt. All rights reserved. + * Copyright (C) 2009, 2011, 2013, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -49,10 +49,6 @@ #include "stm32.h" #include "stm32_tiny.h" -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ @@ -61,11 +57,28 @@ * Name: board_app_initialize * * Description: - * Perform architecture specific initialization + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #if defined(CONFIG_WL_NRF24L01) syslog(LOG_INFO, "Register the nRF24L01 module"); diff --git a/configs/stm32f103-minimum/src/stm32_appinit.c b/configs/stm32f103-minimum/src/stm32_appinit.c index 73544527b1..d9291f9a16 100644 --- a/configs/stm32f103-minimum/src/stm32_appinit.c +++ b/configs/stm32f103-minimum/src/stm32_appinit.c @@ -57,11 +57,28 @@ * Name: board_app_initialize * * Description: - * Perform architecture specific initialization + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { return OK; } diff --git a/configs/stm32f3discovery/src/stm32_appinit.c b/configs/stm32f3discovery/src/stm32_appinit.c index 445dfbc2c4..3d23db6296 100644 --- a/configs/stm32f3discovery/src/stm32_appinit.c +++ b/configs/stm32f3discovery/src/stm32_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/stm32f3discovery/src/stm32_appinit.c * - * Copyright (C) 2013 Gregory Nutt. All rights reserved. + * Copyright (C) 2013, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -92,11 +92,28 @@ * Name: board_app_initialize * * Description: - * Perform architecture specific initialization + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #ifdef HAVE_USBMONITOR int ret; diff --git a/configs/stm32f411e-disco/src/stm32_appinit.c b/configs/stm32f411e-disco/src/stm32_appinit.c index 9f35fd24f8..9228ec0366 100644 --- a/configs/stm32f411e-disco/src/stm32_appinit.c +++ b/configs/stm32f411e-disco/src/stm32_appinit.c @@ -61,11 +61,28 @@ * Name: board_app_initialize * * Description: - * Perform architecture specific initialization + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #ifdef CONFIG_SCHED_INSTRUMENTATION /* Configure CPU load estimation */ diff --git a/configs/stm32f411e-disco/src/stm32_boot.c b/configs/stm32f411e-disco/src/stm32_boot.c index 5164e8837e..dec40d4b70 100644 --- a/configs/stm32f411e-disco/src/stm32_boot.c +++ b/configs/stm32f411e-disco/src/stm32_boot.c @@ -112,7 +112,7 @@ void board_initialize(void) * but the initialization function must run in kernel space. */ - board_app_initialize(); + board_app_initialize(0); #endif } diff --git a/configs/stm32f429i-disco/src/stm32_appinit.c b/configs/stm32f429i-disco/src/stm32_appinit.c index 719ebc031a..29bbb24320 100644 --- a/configs/stm32f429i-disco/src/stm32_appinit.c +++ b/configs/stm32f429i-disco/src/stm32_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/stm32f429i-disco/src/stm32_appinit.c * - * Copyright (C) 2012, 2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2012, 2015-2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -121,7 +121,9 @@ * Name: board_app_initialize * * Description: - * Perform architecture specific initialization + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. * * CONFIG_LIB_BOARDCTL=y : * Called from the NSH library @@ -130,9 +132,24 @@ * CONFIG_LIB_BOARDCTL=n : * Called from board_initialize(). * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. + * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #if defined(CONFIG_STM32_SPI4) FAR struct spi_dev_s *spi; diff --git a/configs/stm32f429i-disco/src/stm32_boot.c b/configs/stm32f429i-disco/src/stm32_boot.c index 77653432e0..33f855a28c 100644 --- a/configs/stm32f429i-disco/src/stm32_boot.c +++ b/configs/stm32f429i-disco/src/stm32_boot.c @@ -149,7 +149,7 @@ void board_initialize(void) * but the initialization function must run in kernel space. */ - (void)board_app_initialize(); + (void)board_app_initialize(0); #endif } #endif diff --git a/configs/stm32f4discovery/src/stm32_appinit.c b/configs/stm32f4discovery/src/stm32_appinit.c index 4ce0e55bdb..75e635988c 100644 --- a/configs/stm32f4discovery/src/stm32_appinit.c +++ b/configs/stm32f4discovery/src/stm32_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/stm32f4discovery/src/stm32_appinit.c * - * Copyright (C) 2012, 2014 Gregory Nutt. All rights reserved. + * Copyright (C) 2012, 2014, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -59,12 +59,28 @@ * Name: board_app_initialize * * Description: - * Perform architecture-specific initialization (if this was not already - * done by board_initialize(); + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #ifdef CONFIG_BMP180 stm32_bmp180initialize("/dev/press0"); diff --git a/configs/stm32f746g-disco/src/stm32_appinitialize.c b/configs/stm32f746g-disco/src/stm32_appinitialize.c index aa2818899a..88d62fc154 100644 --- a/configs/stm32f746g-disco/src/stm32_appinitialize.c +++ b/configs/stm32f746g-disco/src/stm32_appinitialize.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/stm32f746g-disco/src/stm32_appinitilaize.c * - * Copyright (C) 2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2015-2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -42,10 +42,6 @@ #include "stm32_ccm.h" #include "stm32f746g-disco.h" -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ @@ -58,9 +54,24 @@ * called directly from application code, but only indirectly via the * (non-standard) boardctl() interface using the command BOARDIOC_INIT. * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. + * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #ifdef CONFIG_FS_PROCFS int ret; diff --git a/configs/stm32f746g-disco/src/stm32_boot.c b/configs/stm32f746g-disco/src/stm32_boot.c index 381925dee1..c5954af177 100644 --- a/configs/stm32f746g-disco/src/stm32_boot.c +++ b/configs/stm32f746g-disco/src/stm32_boot.c @@ -121,7 +121,7 @@ void board_initialize(void) * but the initialization function must run in kernel space. */ - (void)board_app_initialize(); + (void)board_app_initialize(0); #endif } #endif diff --git a/configs/stm32l476vg-disco/src/stm32_appinit.c b/configs/stm32l476vg-disco/src/stm32_appinit.c index ec485fa1f1..0c5591dcfa 100644 --- a/configs/stm32l476vg-disco/src/stm32_appinit.c +++ b/configs/stm32l476vg-disco/src/stm32_appinit.c @@ -123,12 +123,29 @@ FAR struct mtd_dev_s *g_mtd_fs; * Name: board_app_initialize * * Description: - * Application initialization stub for boardctl() + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. * ****************************************************************************/ #ifdef CONFIG_LIB_BOARDCTL -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #ifdef HAVE_RTC_DRIVER FAR struct rtc_lowerhalf_s *rtclower; diff --git a/configs/stm32l476vg-disco/src/stm32_boot.c b/configs/stm32l476vg-disco/src/stm32_boot.c index 5886183380..59d3822f2f 100644 --- a/configs/stm32l476vg-disco/src/stm32_boot.c +++ b/configs/stm32l476vg-disco/src/stm32_boot.c @@ -113,7 +113,7 @@ void board_initialize(void) */ #if defined(CONFIG_NSH_LIBRARY) && !defined(CONFIG_NSH_ARCHINIT) - board_app_initialize(); + board_app_initialize(0); #endif } #endif diff --git a/configs/stm32ldiscovery/src/stm32_appinit.c b/configs/stm32ldiscovery/src/stm32_appinit.c index 6141247b0e..359e271eb9 100644 --- a/configs/stm32ldiscovery/src/stm32_appinit.c +++ b/configs/stm32ldiscovery/src/stm32_appinit.c @@ -2,7 +2,7 @@ * config/stm32ldiscovery/src/stm32_appinit.c * arch/arm/src/board/stm32_appinit.c * - * Copyright (C) 2013 Gregory Nutt. All rights reserved. + * Copyright (C) 2013, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -59,11 +59,28 @@ * Name: board_app_initialize * * Description: - * Perform architecture specific initialization + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #ifdef CONFIG_STM32_LCD /* Initialize the SLCD and register the SLCD device as /dev/slcd */ diff --git a/configs/sure-pic32mx/src/pic32mx_appinit.c b/configs/sure-pic32mx/src/pic32mx_appinit.c index 6992300bd0..ef09c7641c 100644 --- a/configs/sure-pic32mx/src/pic32mx_appinit.c +++ b/configs/sure-pic32mx/src/pic32mx_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/sure-pic32mx/src/pic32mx_appinit.c * - * Copyright (C) 2011-2013, 2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2011-2013, 2015-2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -359,11 +359,28 @@ static int nsh_usbdevinitialize(void) * Name: board_app_initialize * * Description: - * Perform architecture specific initialization + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { int ret; diff --git a/configs/teensy-3.x/src/k20_appinit.c b/configs/teensy-3.x/src/k20_appinit.c index d5cf13fe61..fd1b2bd5c8 100644 --- a/configs/teensy-3.x/src/k20_appinit.c +++ b/configs/teensy-3.x/src/k20_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/teensy-3.x/src/k20_appinit.c * - * Copyright (C) 2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2015-2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -43,23 +43,6 @@ #include "teensy-3x.h" -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ -/* Configuration ************************************************************/ - -/**************************************************************************** - * Private Types - ****************************************************************************/ - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ @@ -68,11 +51,28 @@ * Name: board_app_initialize * * Description: - * Perform architecture specific initialization + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { return OK; } diff --git a/configs/teensy-lc/src/kl_appinit.c b/configs/teensy-lc/src/kl_appinit.c index 8d96c28e76..fdd1e3bd30 100644 --- a/configs/teensy-lc/src/kl_appinit.c +++ b/configs/teensy-lc/src/kl_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/teensy-lc/src/kl_appinit.c * - * Copyright (C) 2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2015-2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -47,10 +47,6 @@ #ifdef CONFIG_LIB_BOARDCTL -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ @@ -63,9 +59,24 @@ * called directly from application code, but only indirectly via the * (non-standard) boardctl() interface using the command BOARDIOC_INIT. * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. + * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { return OK; } diff --git a/configs/teensy-lc/src/kl_boardinitialize.c b/configs/teensy-lc/src/kl_boardinitialize.c index 119a2d4ca6..576e941ee2 100644 --- a/configs/teensy-lc/src/kl_boardinitialize.c +++ b/configs/teensy-lc/src/kl_boardinitialize.c @@ -136,7 +136,7 @@ void board_initialize(void) */ #if defined(CONFIG_NSH_LIBRARY) && !defined(CONFIG_LIB_BOARDCTL) - (void)board_app_initialize(); + (void)board_app_initialize(0); #endif } #endif diff --git a/configs/tm4c123g-launchpad/src/tm4c_appinit.c b/configs/tm4c123g-launchpad/src/tm4c_appinit.c index 0763742bf1..c1ad4dd105 100644 --- a/configs/tm4c123g-launchpad/src/tm4c_appinit.c +++ b/configs/tm4c123g-launchpad/src/tm4c_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/tm4c123g-launchpad/src/tm4c_appinit.c * - * Copyright (C) 2014 Gregory Nutt. All rights reserved. + * Copyright (C) 2014, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -43,10 +43,6 @@ #include "tm4c123g-launchpad.h" -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ @@ -55,11 +51,28 @@ * Name: board_app_initialize * * Description: - * Perform architecture specific initialization + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { /* If CONFIG_BOARD_INITIALIZE is selected then board initialization was * already performed in board_initialize. diff --git a/configs/tm4c1294-launchpad/src/tm4c_appinit.c b/configs/tm4c1294-launchpad/src/tm4c_appinit.c index c360d7f00c..2245ac31e9 100644 --- a/configs/tm4c1294-launchpad/src/tm4c_appinit.c +++ b/configs/tm4c1294-launchpad/src/tm4c_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/tm4c1294-launchpad/src/tm4c_appinit.c * - * Copyright (C) 2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2015-2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -43,10 +43,6 @@ #include "tm4c1294-launchpad.h" -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ @@ -55,11 +51,28 @@ * Name: board_app_initialize * * Description: - * Perform architecture specific initialization + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { /* If CONFIG_BOARD_INITIALIZE is selected then board initialization was * already performed in board_initialize. diff --git a/configs/twr-k60n512/src/k60_appinit.c b/configs/twr-k60n512/src/k60_appinit.c index 6c6795c2ad..ffcb0b7f9f 100644 --- a/configs/twr-k60n512/src/k60_appinit.c +++ b/configs/twr-k60n512/src/k60_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/twr-k60n512/src/k60_appinit.c * - * Copyright (C) 2011 Gregory Nutt. All rights reserved. + * Copyright (C) 2011, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -193,11 +193,28 @@ static int kinetis_cdinterrupt(int irq, FAR void *context) * Name: board_app_initialize * * Description: - * Perform architecture specific initialization + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #ifdef NSH_HAVEMMCSD int ret; diff --git a/configs/u-blox-c027/src/lpc17_appinit.c b/configs/u-blox-c027/src/lpc17_appinit.c index ce83755f4d..f315953dfb 100644 --- a/configs/u-blox-c027/src/lpc17_appinit.c +++ b/configs/u-blox-c027/src/lpc17_appinit.c @@ -126,11 +126,28 @@ * Name: board_app_initialize * * Description: - * Perform architecture specific initialization + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { int ret; diff --git a/configs/ubw32/src/pic32_appinit.c b/configs/ubw32/src/pic32_appinit.c index 612e3aa70f..22cf57b4b0 100644 --- a/configs/ubw32/src/pic32_appinit.c +++ b/configs/ubw32/src/pic32_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/ubw32/src/pic32_appinit.c * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. + * Copyright (C) 2012, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -89,11 +89,28 @@ static int nsh_usbdevinitialize(void) * Name: board_app_initialize * * Description: - * Perform architecture specific initialization + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { int ret; diff --git a/configs/viewtool-stm32f107/src/stm32_appinit.c b/configs/viewtool-stm32f107/src/stm32_appinit.c index 5884d7d053..8bc77a200c 100644 --- a/configs/viewtool-stm32f107/src/stm32_appinit.c +++ b/configs/viewtool-stm32f107/src/stm32_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/viewtool-stm32f107/src/stm32_appinit.c * - * Copyright (C) 2013 Gregory Nutt. All rights reserved. + * Copyright (C) 2013, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -123,11 +123,28 @@ static int rtc_driver_initialize(void) * Name: board_app_initialize * * Description: - * Perform architecture specific initialization + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #ifdef HAVE_RTC_DRIVER (void)rtc_driver_initialize(); diff --git a/configs/zkit-arm-1769/src/lpc17_appinit.c b/configs/zkit-arm-1769/src/lpc17_appinit.c index e9d9c1baa1..9817d76c33 100644 --- a/configs/zkit-arm-1769/src/lpc17_appinit.c +++ b/configs/zkit-arm-1769/src/lpc17_appinit.c @@ -129,14 +129,6 @@ # endif #endif -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ @@ -145,11 +137,28 @@ * Name: board_app_initialize * * Description: - * Perform architecture specific initialization + * Perform application specific initialization. This function is never + * called directly from application code, but only indirectly via the + * (non-standard) boardctl() interface using the command BOARDIOC_INIT. + * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { #ifdef CONFIG_NSH_HAVEMMCSD FAR struct spi_dev_s *spi; diff --git a/configs/zp214xpa/src/lpc2148_appinit.c b/configs/zp214xpa/src/lpc2148_appinit.c index ae403949bc..b5efe18344 100644 --- a/configs/zp214xpa/src/lpc2148_appinit.c +++ b/configs/zp214xpa/src/lpc2148_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * config/zp214xpa/src/lpc2148_appinit.c * - * Copyright (C) 2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2015-2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -56,9 +56,24 @@ * called directly from application code, but only indirectly via the * (non-standard) boardctl() interface using the command BOARDIOC_INIT. * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. + * ****************************************************************************/ -int board_app_initialize(void) +int board_app_initialize(uintptr_t arg) { return OK; } diff --git a/include/nuttx/board.h b/include/nuttx/board.h index 9e0ea70ab8..e143c4862b 100644 --- a/include/nuttx/board.h +++ b/include/nuttx/board.h @@ -144,9 +144,24 @@ void board_initialize(void); * called directly from application code, but only indirectly via the * (non-standard) boardctl() interface using the command BOARDIOC_INIT. * + * Input Parameters: + * arg - The boardctl() argument is passed to the board_app_initialize() + * implementation without modification. The argument has no + * meaning to NuttX; the meaning of the argument is a contract + * between the board-specific initalization logic and the the + * matching application logic. The value cold be such things as a + * mode enumeration value, a set of DIP switch switch settings, a + * pointer to configuration data read from a file or serial FLASH, + * or whatever you would like to do with it. Every implementation + * should accept zero/NULL as a default configuration. + * + * Returned Value: + * Zero (OK) is returned on success; a negated errno value is returned on + * any failure to indicate the nature of the failure. + * ****************************************************************************/ -int board_app_initialize(void); +int board_app_initialize(uintptr_t arg); /**************************************************************************** * Name: board_power_off diff --git a/include/sys/boardctl.h b/include/sys/boardctl.h index 1470988418..5177dd8074 100644 --- a/include/sys/boardctl.h +++ b/include/sys/boardctl.h @@ -54,9 +54,19 @@ * * CMD: BOARDIOC_INIT * DESCRIPTION: Perform one-time application initialization. - * ARG: None + * ARG: The boardctl() argument is passed to the + * board_app_initialize() implementation without modification. + * The argument has no meaning to NuttX; the meaning of the + * argument is a contract between the board-specific + * initalization logic and the the matching application logic. + * The value cold be such things as a mode enumeration value, + * a set of DIP switch switch settings, a pointer to + * configuration data read from a file or serial FLASH, or + * whatever you would like to do with it. Every + * implementation should accept zero/NULL as a default + * configuration. * CONFIGURATION: CONFIG_LIB_BOARDCTL - * DEPENDENCIES: Board logic must provide board_app_initialization() + * DEPENDENCIES: Board logic must provide board_app_initialize() * * CMD: BOARDIOC_POWEROFF * DESCRIPTION: Power off the board -- GitLab From 549f415cf9b2c4beeea80bf934b77949195b3928 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 24 May 2016 10:54:27 -0600 Subject: [PATCH 234/307] Update ChangeLog --- ChangeLog | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ChangeLog b/ChangeLog index 07a9e890c2..9957646825 100755 --- a/ChangeLog +++ b/ChangeLog @@ -11787,3 +11787,5 @@ CONFIG_BOARDCTL_RESET is defined. From David Sidrane (2016-05-23). * arch/arm/include/lpc43xx and src/lpc43xx: Adds definitions for the LPC4337jet100 chip. From Alexander Vasiljev (2016-05-24). + * Many files: Add an argument to board_app_initialize() (2016-05-24). + -- GitLab From 04223a96180ffd0771a53729bd948d77fe2bd917 Mon Sep 17 00:00:00 2001 From: Frank Benkert Date: Wed, 25 May 2016 07:20:48 -0600 Subject: [PATCH 235/307] SAMV7: USBHS: Remove disabling of whole usb on suspend This fix removes the disabling of the whole USB peripheral on suspend interrupt. Its enough to freeze the clock instead. When disabling the whole peripheral, the next wakeup-interrupt comes up with an disabled clocking. The unfreeze clock has no effect, because the master clock is disabled. This makes all registers, including the IDR unwriteable and the IRQ falls in an endless loop blocking the whole system. Furthermore the disabling of the peripheral clock prevents hotplugging or reconnecting the USB. --- arch/arm/src/samv7/sam_usbdevhs.c | 9 --------- 1 file changed, 9 deletions(-) diff --git a/arch/arm/src/samv7/sam_usbdevhs.c b/arch/arm/src/samv7/sam_usbdevhs.c index 80bf1619c5..de6872e92e 100644 --- a/arch/arm/src/samv7/sam_usbdevhs.c +++ b/arch/arm/src/samv7/sam_usbdevhs.c @@ -3259,15 +3259,6 @@ static void sam_suspend(struct sam_usbdev_s *priv) priv->prevstate = priv->devstate; priv->devstate = USBHS_DEVSTATE_SUSPENDED; - /* Disable clocking to the USBHS peripheral - * - * NOTE: The Atmel sample code disables USB clocking here (via the PMC - * CKGR_UCKR). However, we cannot really do that here because that - * clocking is also needed by the UHPHS host. - */ - - sam_usbhs_disableclk(); - /* Let the board-specific logic know that we have entered the * suspend state. This may trigger additional reduced power * consumption measures. -- GitLab From 3ca1a41626a3a5b5df4eee0b7139a569c71137b5 Mon Sep 17 00:00:00 2001 From: "Paul A. Patience" Date: Wed, 25 May 2016 09:39:42 -0400 Subject: [PATCH 236/307] Update Nucleo F303RE and STM32F4Discovery uavcan configurations --- configs/nucleo-f303re/uavcan/defconfig | 70 ++++++++++++---------- configs/stm32f4discovery/uavcan/defconfig | 72 +++++++++++++---------- 2 files changed, 79 insertions(+), 63 deletions(-) diff --git a/configs/nucleo-f303re/uavcan/defconfig b/configs/nucleo-f303re/uavcan/defconfig index 6fe165d461..c68b048740 100644 --- a/configs/nucleo-f303re/uavcan/defconfig +++ b/configs/nucleo-f303re/uavcan/defconfig @@ -76,6 +76,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -94,6 +95,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -115,6 +117,7 @@ CONFIG_ARCH_CORTEXM4=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -123,6 +126,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y CONFIG_ARCH_HAVE_FPU=y # CONFIG_ARCH_HAVE_DPFPU is not set # CONFIG_ARCH_FPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -133,6 +137,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set # CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set @@ -238,6 +243,7 @@ CONFIG_ARCH_CHIP_STM32F303RE=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -784,6 +790,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # @@ -812,36 +820,36 @@ CONFIG_HAVE_CXXINITIALIZE=y # # CAN Utilities # -CONFIG_CANUTILS_UAVCAN=y -CONFIG_UAVCAN_LIBUAVCAN_URL="https://github.com/UAVCAN/libuavcan/archive" -CONFIG_UAVCAN_LIBUAVCAN_VERSION="b04396ace50155573e545ed9bf2fb09964ee2367" -CONFIG_UAVCAN_DSDL_URL="https://github.com/UAVCAN/dsdl/archive" -CONFIG_UAVCAN_DSDL_VERSION="9804a3e6972825586be252ce08dd899f44994b14" -CONFIG_UAVCAN_PYUAVCAN_URL="https://github.com/UAVCAN/pyuavcan/archive" -CONFIG_UAVCAN_PYUAVCAN_VERSION="c58477a644d20ccf95a20c151f3a0402f271c3b8" -CONFIG_UAVCAN_STM32_NUM_IFACES=1 -CONFIG_UAVCAN_STM32_TIM2=y -# CONFIG_UAVCAN_STM32_TIM3 is not set -# CONFIG_UAVCAN_STM32_TIM4 is not set -# CONFIG_UAVCAN_STM32_TIM6 is not set -# CONFIG_UAVCAN_STM32_TIM7 is not set -CONFIG_UAVCAN_CPP03=y -# CONFIG_UAVCAN_CPP11 is not set -# CONFIG_UAVCAN_DEBUG is not set -# CONFIG_UAVCAN_EXCEPTIONS is not set -# CONFIG_UAVCAN_TINY is not set -# CONFIG_UAVCAN_NO_GLOBAL_DATA_TYPE_REGISTRY is not set -# CONFIG_UAVCAN_IMPLEMENT_PLACEMENT_NEW is not set -# CONFIG_UAVCAN_USE_EXTERNAL_SNPRINTF is not set -# CONFIG_UAVCAN_USE_EXTERNAL_FLOAT16_CONVERSION is not set -# CONFIG_UAVCAN_NO_ASSERTIONS is not set -CONFIG_UAVCAN_MEM_POOL_BLOCK_SIZE=0 -CONFIG_UAVCAN_FLOAT_COMPARISON_EPSILON_MULT=0 -CONFIG_UAVCAN_MAX_CAN_ACCEPTANCE_FILTERS=0 -CONFIG_UAVCAN_MAX_NETWORK_SIZE_HINT=0 -CONFIG_UAVCAN_RX_QUEUE_CAPACITY=0 -CONFIG_UAVCAN_BIT_RATE=0 -CONFIG_UAVCAN_INIT_RETRIES=0 +CONFIG_CANUTILS_LIBUAVCAN=y +CONFIG_LIBUAVCAN_URL="https://github.com/UAVCAN/libuavcan/archive" +CONFIG_LIBUAVCAN_VERSION="b04396ace50155573e545ed9bf2fb09964ee2367" +CONFIG_LIBUAVCAN_DSDL_URL="https://github.com/UAVCAN/dsdl/archive" +CONFIG_LIBUAVCAN_DSDL_VERSION="9804a3e6972825586be252ce08dd899f44994b14" +CONFIG_LIBUAVCAN_PYUAVCAN_URL="https://github.com/UAVCAN/pyuavcan/archive" +CONFIG_LIBUAVCAN_PYUAVCAN_VERSION="c58477a644d20ccf95a20c151f3a0402f271c3b8" +CONFIG_LIBUAVCAN_STM32_NUM_IFACES=1 +CONFIG_LIBUAVCAN_STM32_TIM2=y +# CONFIG_LIBUAVCAN_STM32_TIM3 is not set +# CONFIG_LIBUAVCAN_STM32_TIM4 is not set +# CONFIG_LIBUAVCAN_STM32_TIM6 is not set +# CONFIG_LIBUAVCAN_STM32_TIM7 is not set +CONFIG_LIBUAVCAN_CPP03=y +# CONFIG_LIBUAVCAN_CPP11 is not set +# CONFIG_LIBUAVCAN_DEBUG is not set +# CONFIG_LIBUAVCAN_EXCEPTIONS is not set +# CONFIG_LIBUAVCAN_TINY is not set +# CONFIG_LIBUAVCAN_NO_GLOBAL_DATA_TYPE_REGISTRY is not set +# CONFIG_LIBUAVCAN_IMPLEMENT_PLACEMENT_NEW is not set +# CONFIG_LIBUAVCAN_USE_EXTERNAL_SNPRINTF is not set +# CONFIG_LIBUAVCAN_USE_EXTERNAL_FLOAT16_CONVERSION is not set +# CONFIG_LIBUAVCAN_NO_ASSERTIONS is not set +CONFIG_LIBUAVCAN_MEM_POOL_BLOCK_SIZE=0 +CONFIG_LIBUAVCAN_FLOAT_COMPARISON_EPSILON_MULT=0 +CONFIG_LIBUAVCAN_MAX_CAN_ACCEPTANCE_FILTERS=0 +CONFIG_LIBUAVCAN_MAX_NETWORK_SIZE_HINT=0 +CONFIG_LIBUAVCAN_RX_QUEUE_CAPACITY=0 +CONFIG_LIBUAVCAN_BIT_RATE=0 +CONFIG_LIBUAVCAN_INIT_RETRIES=0 # # Examples @@ -899,7 +907,6 @@ CONFIG_EXAMPLES_UAVCAN_NODE_MEM_POOL_SIZE=4096 CONFIG_EXAMPLES_UAVCAN_NODE_ID=1 CONFIG_EXAMPLES_UAVCAN_NODE_NAME="org.nuttx.apps.examples.uavcan" # CONFIG_EXAMPLES_WEBSERVER is not set -# CONFIG_EXAMPLES_USBSERIAL is not set # CONFIG_EXAMPLES_USBTERM is not set # CONFIG_EXAMPLES_WATCHDOG is not set @@ -936,6 +943,7 @@ CONFIG_EXAMPLES_UAVCAN_NODE_NAME="org.nuttx.apps.examples.uavcan" # # CONFIG_NETUTILS_CHAT is not set # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/stm32f4discovery/uavcan/defconfig b/configs/stm32f4discovery/uavcan/defconfig index 1bc92535c7..97db93590e 100644 --- a/configs/stm32f4discovery/uavcan/defconfig +++ b/configs/stm32f4discovery/uavcan/defconfig @@ -76,6 +76,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -94,6 +95,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -115,6 +117,7 @@ CONFIG_ARCH_CORTEXM4=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -123,6 +126,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y CONFIG_ARCH_HAVE_FPU=y # CONFIG_ARCH_HAVE_DPFPU is not set # CONFIG_ARCH_FPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -133,6 +137,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set # CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set @@ -238,6 +243,7 @@ CONFIG_ARMV7M_HAVE_STACKCHECK=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -813,6 +819,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # @@ -841,37 +849,37 @@ CONFIG_HAVE_CXXINITIALIZE=y # # CAN Utilities # -CONFIG_CANUTILS_UAVCAN=y -CONFIG_UAVCAN_LIBUAVCAN_URL="https://github.com/UAVCAN/libuavcan/archive" -CONFIG_UAVCAN_LIBUAVCAN_VERSION="b04396ace50155573e545ed9bf2fb09964ee2367" -CONFIG_UAVCAN_DSDL_URL="https://github.com/UAVCAN/dsdl/archive" -CONFIG_UAVCAN_DSDL_VERSION="9804a3e6972825586be252ce08dd899f44994b14" -CONFIG_UAVCAN_PYUAVCAN_URL="https://github.com/UAVCAN/pyuavcan/archive" -CONFIG_UAVCAN_PYUAVCAN_VERSION="c58477a644d20ccf95a20c151f3a0402f271c3b8" -CONFIG_UAVCAN_STM32_NUM_IFACES=1 -# CONFIG_UAVCAN_STM32_TIM2 is not set -# CONFIG_UAVCAN_STM32_TIM3 is not set -# CONFIG_UAVCAN_STM32_TIM4 is not set -# CONFIG_UAVCAN_STM32_TIM5 is not set -CONFIG_UAVCAN_STM32_TIM6=y -# CONFIG_UAVCAN_STM32_TIM7 is not set -CONFIG_UAVCAN_CPP03=y -# CONFIG_UAVCAN_CPP11 is not set -# CONFIG_UAVCAN_DEBUG is not set -# CONFIG_UAVCAN_EXCEPTIONS is not set -# CONFIG_UAVCAN_TINY is not set -# CONFIG_UAVCAN_NO_GLOBAL_DATA_TYPE_REGISTRY is not set -# CONFIG_UAVCAN_IMPLEMENT_PLACEMENT_NEW is not set -# CONFIG_UAVCAN_USE_EXTERNAL_SNPRINTF is not set -# CONFIG_UAVCAN_USE_EXTERNAL_FLOAT16_CONVERSION is not set -# CONFIG_UAVCAN_NO_ASSERTIONS is not set -CONFIG_UAVCAN_MEM_POOL_BLOCK_SIZE=0 -CONFIG_UAVCAN_FLOAT_COMPARISON_EPSILON_MULT=0 -CONFIG_UAVCAN_MAX_CAN_ACCEPTANCE_FILTERS=0 -CONFIG_UAVCAN_MAX_NETWORK_SIZE_HINT=0 -CONFIG_UAVCAN_RX_QUEUE_CAPACITY=0 -CONFIG_UAVCAN_BIT_RATE=0 -CONFIG_UAVCAN_INIT_RETRIES=0 +CONFIG_CANUTILS_LIBUAVCAN=y +CONFIG_LIBUAVCAN_URL="https://github.com/UAVCAN/libuavcan/archive" +CONFIG_LIBUAVCAN_VERSION="b04396ace50155573e545ed9bf2fb09964ee2367" +CONFIG_LIBUAVCAN_DSDL_URL="https://github.com/UAVCAN/dsdl/archive" +CONFIG_LIBUAVCAN_DSDL_VERSION="9804a3e6972825586be252ce08dd899f44994b14" +CONFIG_LIBUAVCAN_PYUAVCAN_URL="https://github.com/UAVCAN/pyuavcan/archive" +CONFIG_LIBUAVCAN_PYUAVCAN_VERSION="c58477a644d20ccf95a20c151f3a0402f271c3b8" +CONFIG_LIBUAVCAN_STM32_NUM_IFACES=1 +CONFIG_LIBUAVCAN_STM32_TIM2=y +# CONFIG_LIBUAVCAN_STM32_TIM3 is not set +# CONFIG_LIBUAVCAN_STM32_TIM4 is not set +# CONFIG_LIBUAVCAN_STM32_TIM5 is not set +# CONFIG_LIBUAVCAN_STM32_TIM6 is not set +# CONFIG_LIBUAVCAN_STM32_TIM7 is not set +CONFIG_LIBUAVCAN_CPP03=y +# CONFIG_LIBUAVCAN_CPP11 is not set +# CONFIG_LIBUAVCAN_DEBUG is not set +# CONFIG_LIBUAVCAN_EXCEPTIONS is not set +# CONFIG_LIBUAVCAN_TINY is not set +# CONFIG_LIBUAVCAN_NO_GLOBAL_DATA_TYPE_REGISTRY is not set +# CONFIG_LIBUAVCAN_IMPLEMENT_PLACEMENT_NEW is not set +# CONFIG_LIBUAVCAN_USE_EXTERNAL_SNPRINTF is not set +# CONFIG_LIBUAVCAN_USE_EXTERNAL_FLOAT16_CONVERSION is not set +# CONFIG_LIBUAVCAN_NO_ASSERTIONS is not set +CONFIG_LIBUAVCAN_MEM_POOL_BLOCK_SIZE=0 +CONFIG_LIBUAVCAN_FLOAT_COMPARISON_EPSILON_MULT=0 +CONFIG_LIBUAVCAN_MAX_CAN_ACCEPTANCE_FILTERS=0 +CONFIG_LIBUAVCAN_MAX_NETWORK_SIZE_HINT=0 +CONFIG_LIBUAVCAN_RX_QUEUE_CAPACITY=0 +CONFIG_LIBUAVCAN_BIT_RATE=0 +CONFIG_LIBUAVCAN_INIT_RETRIES=0 # # Examples @@ -929,7 +937,6 @@ CONFIG_EXAMPLES_UAVCAN_NODE_MEM_POOL_SIZE=4096 CONFIG_EXAMPLES_UAVCAN_NODE_ID=1 CONFIG_EXAMPLES_UAVCAN_NODE_NAME="org.nuttx.apps.examples.uavcan" # CONFIG_EXAMPLES_WEBSERVER is not set -# CONFIG_EXAMPLES_USBSERIAL is not set # CONFIG_EXAMPLES_USBTERM is not set # CONFIG_EXAMPLES_WATCHDOG is not set @@ -966,6 +973,7 @@ CONFIG_EXAMPLES_UAVCAN_NODE_NAME="org.nuttx.apps.examples.uavcan" # # CONFIG_NETUTILS_CHAT is not set # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set -- GitLab From dc1c27cee7bc93306798e600ce134556b21ee657 Mon Sep 17 00:00:00 2001 From: Dave Date: Wed, 25 May 2016 08:06:32 -0600 Subject: [PATCH 237/307] * This driver supports the 'I2C lcd backpack' design that is based on the PCF8574 io expander. There's a myriad of different vendors of such, but they are principally the same, save wiring and minor features like jumpers for I2C addresses. This driver supports known and unknown variants. * The interface board supports HD44780-based LCD modules up to 4x32, and this driver accommodates all those formats. --- Documentation/README.html | 5 +++-- README.txt | 3 ++- drivers/lcd/Kconfig | 15 +++++++++++++++ drivers/lcd/Make.defs | 4 ++++ drivers/lcd/README.txt | 5 +++++ 5 files changed, 29 insertions(+), 3 deletions(-) diff --git a/Documentation/README.html b/Documentation/README.html index 735edf031d..1c13c8abdd 100644 --- a/Documentation/README.html +++ b/Documentation/README.html @@ -8,7 +8,7 @@

      NuttX README Files

      -

      Last Updated: May 20, 2016

      +

      Last Updated: May 26, 2016

      @@ -316,7 +316,8 @@ nuttx/ | |- eeprom/ | | `- README.txt | |- lcd/ - | | `- README.txt + | | |- README.txt + | | `- pcf8574_lcd_backpack_readme.txt | |- mtd/ | | `- README.txt | |- sensors/ diff --git a/README.txt b/README.txt index 130626fd7d..db0e5e6c10 100644 --- a/README.txt +++ b/README.txt @@ -1491,7 +1491,8 @@ nuttx/ | |- eeprom/ | | `- README.txt | |- lcd/ - | | `- README.txt + | | | README.txt + | | `- pcf8574_lcd_backpack_readme.txt | |- mtd/ | | `- README.txt | |- sensors/ diff --git a/drivers/lcd/Kconfig b/drivers/lcd/Kconfig index a7be77550c..7aba2f5452 100644 --- a/drivers/lcd/Kconfig +++ b/drivers/lcd/Kconfig @@ -1003,3 +1003,18 @@ config LCD_LCD1602 NOTE: There is no common implementation of the LCD1602 driver. Rather, there are board-by-board implementations. See, for example, configs/pcblogic-pic32mx/src/up_lcd1602.c. + +config LCD_BACKPACK + bool "PCF8574 LCD Backpack" + default n + depends on I2C + select LIB_SLCDCODEC + ---help--- + Enable support for PCF8574 LCD Backpack driver. This driver supports + an interface board that is based on the PCF8574 io expander and + supports the HD44780-based (or compatible) LCD modules. There are + a myriad of different vendors of such, but they are principally the + same, save wiring and minor features like jumpers for I2C addresses. + This driver supports known and unknown variants. + + See pcf8574_lcd_backpack_readme.txt diff --git a/drivers/lcd/Make.defs b/drivers/lcd/Make.defs index 1becc0fa97..fd9bdc4bc2 100644 --- a/drivers/lcd/Make.defs +++ b/drivers/lcd/Make.defs @@ -103,6 +103,10 @@ ifeq ($(CONFIG_LCD_RA8875),y) CSRCS += ra8875.c endif +ifeq ($(CONFIG_LCD_BACKPACK),y) + CSRCS += pcf8574_lcd_backpack.c +endif + # Include LCD driver build support DEPPATH += --dep-path lcd diff --git a/drivers/lcd/README.txt b/drivers/lcd/README.txt index 0a49c64efc..85d4f52d71 100644 --- a/drivers/lcd/README.txt +++ b/drivers/lcd/README.txt @@ -149,6 +149,11 @@ Re-usable LCD drivers reside in the drivers/lcd directory: configs/stm32f4discovery configs/sam4l-xplained + Segment LCDS (SLCDs): + --------------------- + + pcf8574_lcd_backpack.c: See pcf8574_lcd_backpack_readme.txt. + Examples: configs/ ================== -- GitLab From 54d7eac51dc13efecfc4c61c654c431ecfee0168 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 25 May 2016 08:08:54 -0600 Subject: [PATCH 238/307] Update ChangeLog --- ChangeLog | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 9957646825..86d67549f2 100755 --- a/ChangeLog +++ b/ChangeLog @@ -11788,4 +11788,10 @@ * arch/arm/include/lpc43xx and src/lpc43xx: Adds definitions for the LPC4337jet100 chip. From Alexander Vasiljev (2016-05-24). * Many files: Add an argument to board_app_initialize() (2016-05-24). - + * drivers/lcd: Add support for PCF8574 LCD Backpack driver. This driver + supports an interface board that is based on the PCF8574 io expander + and supports the HD44780-based (or compatible) LCD modules. There + are a myriad of different vendors of such, but they are principally + the same, save wiring and minor features like jumpers for I2C + addresses. This driver supports known and unknown variants. From + Dave (ziggurat29, 2013-6-26). -- GitLab From 51504a032e0f4cf5a238fe77f12c11a4b4191059 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 25 May 2016 08:47:21 -0600 Subject: [PATCH 239/307] Oops... forgot to add PCF8574 LCD Backpack files before doing the commit. --- drivers/lcd/pcf8574_lcd_backpack.c | 1403 +++++++++++++++++++ drivers/lcd/pcf8574_lcd_backpack_readme.txt | 245 ++++ include/nuttx/lcd/pcf8574_lcd_backpack.h | 176 +++ 3 files changed, 1824 insertions(+) create mode 100644 drivers/lcd/pcf8574_lcd_backpack.c create mode 100644 drivers/lcd/pcf8574_lcd_backpack_readme.txt create mode 100644 include/nuttx/lcd/pcf8574_lcd_backpack.h diff --git a/drivers/lcd/pcf8574_lcd_backpack.c b/drivers/lcd/pcf8574_lcd_backpack.c new file mode 100644 index 0000000000..22fd29bb96 --- /dev/null +++ b/drivers/lcd/pcf8574_lcd_backpack.c @@ -0,0 +1,1403 @@ +/**************************************************************************** + * drivers/lcd/pcf8574_lcd_backpack.c + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: dev@ziggurat29.com + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include + +#include +#include +#include + +#include +#include +#include +#include +#include + +#ifndef CONFIG_LIB_SLCDCODEC +# error please also select Library Routines, Segment LCD CODEC +#endif + +/**************************************************************************** + * Pre-processor Definitions + ****************************************************************************/ + +/* The PCF8574 is a 100 KHz device */ + +#define I2C_FREQ 100000 + +/* timing characteristics of the LCD interface */ + +#define DELAY_US_NYBBLE0 200 +#define DELAY_US_NYBBLE1 100 +#define DELAY_US_WRITE 35 +#define DELAY_US_HOMECLEAR 1500 + +/* HD44780 commands */ + +#define CMD_CLEAR 0x01 +#define CMD_HOME 0x02 +#define CMD_CURSOR_ON_SOLID 0x0e +#define CMD_CURSOR_OFF 0x0c +#define CMD_CURSOR_ON_BLINK 0x0f +#define CMD_SET_CGADDR 0x40 +#define CMD_SET_DDADDR 0x80 + +#ifdef CONFIG_DEBUG_LCD +# define lcddbg dbg +# define lcdvdbg vdbg +#else +# define lcddbg(x...) +# define lcdvdbg(x...) +#endif + +/**************************************************************************** + * Private Types + ****************************************************************************/ + +struct pcf8574_lcd_dev_s +{ + FAR struct i2c_master_s *i2c; /* I2C interface */ + struct pcf8574_lcd_backpack_config_s cfg; /* gpio configuration */ + uint8_t bl_bit; /* current backlight bit */ + sem_t sem_excl; /* mutex */ +}; + +struct lcd_instream_s +{ + struct lib_instream_s stream; + FAR const char *buffer; + ssize_t nbytes; +}; + +/**************************************************************************** + * Private Function Prototypes + ****************************************************************************/ + +/* Character driver methods */ + +static int pcf8574_lcd_open(FAR struct file *filep); +static int pcf8574_lcd_close(FAR struct file *filep); +static ssize_t pcf8574_lcd_read(FAR struct file *filep, FAR char *buffer, + size_t buflen); +static ssize_t pcf8574_lcd_write(FAR struct file *filep, + FAR const char *buffer, size_t buflen); +static int pcf8574_lcd_ioctl(FAR struct file *filep, int cmd, + unsigned long arg); +#ifndef CONFIG_DISABLE_POLL +static int pcf8574lcd_poll(FAR struct file *filep, FAR struct pollfd *fds, + bool setup); +#endif + +/**************************************************************************** + * Private Data + ****************************************************************************/ + +static const struct file_operations g_pcf8574_lcd_fops = +{ + pcf8574_lcd_open, /* open */ + pcf8574_lcd_close, /* close */ + pcf8574_lcd_read, /* read */ + pcf8574_lcd_write, /* write */ + 0, /* seek */ + pcf8574_lcd_ioctl, /* ioctl */ +#ifndef CONFIG_DISABLE_POLL + pcf8574lcd_poll, /* poll */ +#endif + 0 /* unlink */ +}; + +/**************************************************************************** + * Private Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: pca8574_write + * + * Description: + * primitive I2C write operation for the PCA8574, which is the IO expander + * device used on the board. The board essentially byte-bangs the + * parallel interface in nybble mode much as one might with a conventional + * GPIO based interface. The I2C interface simply sets the state of the + * 8 IO lines to control the 4 data, 3 control, and one for backlight, + * signals. + * + ****************************************************************************/ + +static void pca8574_write(FAR struct pcf8574_lcd_dev_s *priv, uint8_t data) +{ + struct i2c_config_s config; + int ret; + + /* Set up the I2C configuration */ + + config.frequency = I2C_FREQ; + config.address = priv->cfg.addr; + config.addrlen = 7; + + /* Write the value */ + + ret = i2c_write(priv->i2c, &config, &data, 1); + if (ret < 0) + { + lcdvdbg("pca8574_write() failed: %d\n", ret); + return; + } + + return; +} + +/**************************************************************************** + * Name: pca8574_read + * + * Description: + * primitive I2C read operation for the PCA8574, which is the IO expander + * device used on the board. The PCF8574 is 'interesting' in that it doesn't + * really have a data direction register, but instead the outputs are current- + * limited when high, so by setting an IO line high, you are also making it + * an input. Consequently, before using this method, you'll need to perform a + * pca8574_write() setting the bits you are interested in reading to 1's, + * then call this method. + * + ****************************************************************************/ + +static int pca8574_read(FAR struct pcf8574_lcd_dev_s *priv, uint8_t* data) +{ + struct i2c_config_s config; + int ret; + + /* Set up the I2C configuration */ + + config.frequency = I2C_FREQ; + config.address = priv->cfg.addr; + config.addrlen = 7; + + /* Read the value */ + + ret = i2c_read(priv->i2c, &config, data, 1); + if (ret < 0) + { + lcdvdbg("pca8574_read() failed: %d\n", ret); + } + + return ret; +} + +/**************************************************************************** + * Name: lcd_backlight + * + * Description: + * turn on, or off, the LCD backlight + * + ****************************************************************************/ + +static void lcd_backlight(FAR struct pcf8574_lcd_dev_s *priv, bool blOn) +{ + uint8_t data; + + data = ((blOn && priv->cfg.bl_active_high) || + (!blOn && !priv->cfg.bl_active_high)) ? (1 << priv->cfg.bl) : 0; + pca8574_write(priv, data); + priv->bl_bit = data; +} + +/**************************************************************************** + * Name: rc2addr + * + * Description: + * This converts a row/column pair to a screen memory address. + * + ****************************************************************************/ + +static inline uint8_t rc2addr(FAR struct pcf8574_lcd_dev_s *priv, + uint8_t row, uint8_t col) +{ + if (row < 2) + { + /* 1 and 2 line displays are simple; line0 @ 0x00, line1 @ 0x40 */ + + return row * 0x40 + col; + } + else + { + /* 4 line displays are intersting; third line really is a continuation + * of first line, and fourth line is a continuation of second. + */ + + return (row - 2) * 0x40 + (col - priv->cfg.cols); + } +} + +/**************************************************************************** + * Name: addr2rc + * + * Description: + * This converts a screen memory address to a row/column pair. + * + ****************************************************************************/ + +static inline void addr2rc(FAR struct pcf8574_lcd_dev_s *priv, + uint8_t addr, uint8_t* row, uint8_t* col) +{ + + *row = addr / 0x40; + *col = addr % 0x40; + + if (*col >= priv->cfg.cols) + { + /* 4 line displays have third and fourth lines really as continuation + * of first and second. + */ + + *row += 2; + *col -= priv->cfg.cols; + } +} + +/**************************************************************************** + * Name: prepare_nybble + * + * Description: + * This is a bit tedious, but scramble the bits of the nybble into position + * as per this board's particular wiring. Most boards are either on the + * top four bits, or bottom four, so a shift would do typically in those + * cases, but this gives us ultimate flexibility. + * + ****************************************************************************/ + +uint8_t prepare_nybble(FAR struct pcf8574_lcd_dev_s *priv, uint8_t nybble) +{ + uint8_t lcddata = 0; + + if (nybble & 0x08) + { + lcddata |= (1 << priv->cfg.d7); + } + + if (nybble & 0x04) + { + lcddata |= (1 << priv->cfg.d6); + } + + if (nybble & 0x02) + { + lcddata |= (1 << priv->cfg.d5); + } + + if (nybble & 0x01) + { + lcddata |= (1 << priv->cfg.d4); + } + + return lcddata; +} + +/**************************************************************************** + * Name: unprepare_nybble + * + * Description: + * This is the opposite of prepare_nybble(), and is used to unscramble bits + * when reading data from the display, as per board wiring. + * + ****************************************************************************/ + +uint8_t unprepare_nybble(FAR struct pcf8574_lcd_dev_s *priv, uint8_t lcddata) +{ + uint8_t data = 0; + + if (lcddata & (1 << priv->cfg.d7)) + { + data |= 0x08; + } + + if (lcddata & (1 << priv->cfg.d6)) + { + data |= 0x04; + } + + if (lcddata & (1 << priv->cfg.d5)) + { + data |= 0x02; + } + + if (lcddata & (1 << priv->cfg.d4)) + { + data |= 0x01; + } + + return data; +} + +/**************************************************************************** + * Name: latch_nybble + * + * Description: + * Latch a nybble on the LCD bus. This is done for each of two halves of a + * write operation in 4-bit mode. The 'rs' param is false for command + * transfers, and true for data transfers. + * + ****************************************************************************/ + +static void latch_nybble(FAR struct pcf8574_lcd_dev_s *priv, uint8_t nybble, + bool rs) +{ + uint8_t lcddata; + uint8_t en_bit; + uint8_t rs_bit; + + en_bit = 1 << priv->cfg.en; + rs_bit = rs ? (1 << priv->cfg.rs) : 0; + + /* Put the nybble, preserving backlight, reset R/~W and set EN and maybe RS */ + + lcddata = prepare_nybble(priv, nybble) | priv->bl_bit | en_bit | rs_bit; + pca8574_write(priv, lcddata); + up_udelay(DELAY_US_NYBBLE0); /* setup */ + + /* Latch on EN falling edge */ + + lcddata &= ~en_bit; + pca8574_write(priv, lcddata); + up_udelay(DELAY_US_NYBBLE1); /* hold */ +} + +/**************************************************************************** + * Name: load_nybble + * + * Description: + * Load a nybble from the LCD bus. This is done for each of two halves of a + * read operation in 4-bit mode. The 'rs' param is false for command + * transfers (the only one is to read status and the address register), and + * true for data transfers. + * + ****************************************************************************/ + +static uint8_t load_nybble(FAR struct pcf8574_lcd_dev_s *priv, bool rs) +{ + uint8_t lcddata; + uint8_t en_bit; + uint8_t rs_bit; + uint8_t rw_bit; + uint8_t data; + + en_bit = 1 << priv->cfg.en; + rs_bit = rs ? (1 << priv->cfg.rs) : 0; + rw_bit = 1 << priv->cfg.rw; + + /* Put highs on the data lines, preserve, set R/~W and set EN and maybe RS */ + + lcddata = prepare_nybble(priv, 0x0f) | priv->bl_bit | en_bit | rw_bit | rs_bit; + pca8574_write(priv, lcddata); + up_udelay(DELAY_US_NYBBLE0); /* setup */ + + /* Now read the data */ + + pca8574_read(priv, &data); + data = unprepare_nybble(priv, data); + + /* Transaction completed on EN falling edge */ + + lcddata &= ~en_bit; + pca8574_write(priv, lcddata); + up_udelay(DELAY_US_NYBBLE1); /* hold */ + + return data; +} + +/**************************************************************************** + * Name: lcd_putcmd + * + * Description: + * Write a command to the LCD. Most of the time this is done in nybble + * mode in two phases, but in special cases (like initialization) we do not + * do two phases. + * + ****************************************************************************/ + +static void lcd_putcmd(FAR struct pcf8574_lcd_dev_s *priv, uint8_t data) +{ + latch_nybble(priv, data >> 4, false); + latch_nybble(priv, data, false); + up_udelay(DELAY_US_WRITE); +} + +/**************************************************************************** + * Name: lcd_putdata + * + * Description: + * Write a byte to the LCD. This is used both for screen data and for + * character generator data, depending on a previous command that selected + * which ever is the destination. + * + ****************************************************************************/ + +static inline void lcd_putdata(FAR struct pcf8574_lcd_dev_s *priv, + uint8_t data) +{ + latch_nybble(priv, data >> 4, true); + latch_nybble(priv, data, true); + up_udelay(DELAY_US_WRITE); +} + +/**************************************************************************** + * Name: lcd_getdata + * + * Description: + * Read a data byte from the LCD. + * + ****************************************************************************/ + +static inline uint8_t lcd_getdata(FAR struct pcf8574_lcd_dev_s *priv) +{ + uint8_t data; + data = (load_nybble(priv, true) << 4) | load_nybble(priv, true); + return data; +} + +/**************************************************************************** + * Name: lcd_getcmd + * + * Description: + * Read a command byte from the LCD. There really is only one such read: + * get 'busy' status, and current address value. + * + ****************************************************************************/ + +static inline uint8_t lcd_getcmd(FAR struct pcf8574_lcd_dev_s *priv) +{ + uint8_t data; + data = (load_nybble(priv, false) << 4) | load_nybble(priv, false); + return data; +} + +/**************************************************************************** + * Name: lcd_read_busy_addr + * + * Description: + * Read the busy flag, and, optionally, the current value of the address + * register (data or character generator dependent on a previous command). + * + ****************************************************************************/ + +static bool lcd_read_busy_addr(FAR struct pcf8574_lcd_dev_s *priv, uint8_t* addr) +{ + uint8_t data = lcd_getcmd(priv); + + if (NULL != addr) + { + *addr = data & 0x7f; + } + + return (data & 0x80) ? true : false; +} + +/**************************************************************************** + * Name: lcd_init + * + * Description: + * perform the initialization sequence to get the LCD into a known state. + * + ****************************************************************************/ + +static void lcd_init(FAR struct pcf8574_lcd_dev_s *priv) +{ + /* Wait for more than 15 ms after Vcc for the LCD to stabilize */ + + usleep(20000); + + /* Perform the init sequence. This sequence of commands is constructed so + * that it will get the device into nybble mode irrespective of what state + * the device is currently in (could be 8 bit, 4 bit nyb 0, 4 bit nyb 1). + * By sending the 'set 8-bit mode' three times, we will definitely end up + * in 8 bit mode, and then we can reliably transition to 4 bit mode for + * the remainder of operations. + */ + + /* Send Command 0x30, set 8-bit mode, and wait > 4.1 ms*/ + + latch_nybble(priv, 0x30>>4, false); + usleep(5000); + + /* Send Command 0x30, set 8-bit mode, and wait > 100 us */ + + latch_nybble(priv, 0x30>>4, false); + usleep(200); + + /* Send Command 0x30, set 8-bit mode */ + + latch_nybble(priv, 0x30>>4, false); + + /* now Function set: Set interface to be 4 bits long (only 1 cycle write for the first time). */ + + latch_nybble(priv, 0x20>>4, false); + + /* Function set: DL=0;Interface is 4 bits, N=1 (2 Lines), F=0 (5x8 dots font) */ + + lcd_putcmd(priv, 0x28); + + /* Display Off: D=0 (Display off), C=0 (Cursor Off), B=0 (Blinking Off) */ + + lcd_putcmd(priv, 0x08); + + /* Display Clear */ + + lcd_putcmd(priv, CMD_CLEAR); + up_udelay(DELAY_US_HOMECLEAR); /* clear needs extra time */ + + /* Entry Mode Set: I/D=1 (Increment), S=0 (No shift) */ + + lcd_putcmd(priv, 0x06); + + /* Display On, Cursor Off */ + + lcd_putcmd(priv, 0x0C); +} + +/**************************************************************************** + * Name: lcd_create_char + * + * Description: + * This creates a custom character pattern. There can be 8 5x8 patterns. + * The bitmap proceeds top to bottom, msb-lsb, and is right justified (i.e. + * only bits 4-0 are used). By convention, you are meant to always leave the + * last line (byte) zero so that the cursor can use this line, but this is + * not strictly required. + * + * Parameters: + * priv - device instance + * idxchar - which character is being imaged; 0 - 7 + * chardata - the character image bitmap; must be 8 bytes always + * + ****************************************************************************/ + +static void lcd_create_char(FAR struct pcf8574_lcd_dev_s *priv, + uint8_t idxchar, const uint8_t *chardata) +{ + int nIdx; + uint8_t addr; + + (void)lcd_read_busy_addr(priv, &addr); + lcd_putcmd(priv, CMD_SET_CGADDR | (idxchar << 3)); /* set CGRAM address */ + + for (nIdx = 0; nIdx < 8; ++nIdx) + { + lcd_putdata(priv, chardata[nIdx]); + } + + lcd_putcmd(priv, CMD_SET_DDADDR | addr); /* restore DDRAM address */ +} + +/**************************************************************************** + * Name: lcd_set_curpos + * + * Description: + * This sets the cursor position based on row, column addressing. + * + * Parameters: + * priv - device instance + * row - row position + * col - column position + * + ****************************************************************************/ + +static void lcd_set_curpos(FAR struct pcf8574_lcd_dev_s *priv, + uint8_t row, uint8_t col) +{ + uint8_t addr; + addr = rc2addr(priv, row, col); + lcd_putcmd(priv, CMD_SET_DDADDR | addr); /* set DDRAM address */ +} + +/**************************************************************************** + * Name: lcd_get_curpos + * + * Description: + * This gets the cursor position based on row, column addressing. + * + * Parameters: + * priv - device instance + * row - row position + * col - column position + * + ****************************************************************************/ + +static void lcd_get_curpos(FAR struct pcf8574_lcd_dev_s *priv, + uint8_t *row, uint8_t *col) +{ + uint8_t addr; + + (void)lcd_read_busy_addr(priv, &addr); + addr2rc(priv, addr, row, col); +} + +/**************************************************************************** + * Name: lcd_scroll_up + * + * Description: + * Scroll the display up, and clear the new (last) line. + * + ****************************************************************************/ + +static void lcd_scroll_up(FAR struct pcf8574_lcd_dev_s *priv) +{ + uint8_t *data; + int nRow; + int nCol; + + data = (uint8_t *)malloc(priv->cfg.cols); + if (NULL == data) + { + lcdvdbg("Failed to allocate buffer in lcd_scroll_up()\n"); + return; + } + + for (nRow = 1; nRow < priv->cfg.rows; ++nRow) + { + lcd_set_curpos(priv, nRow, 0); + for (nCol = 0; nCol < priv->cfg.cols; ++nCol) + { + data[nCol] = lcd_getdata(priv); + } + + lcd_set_curpos(priv, nRow - 1, 0); + for (nCol = 0; nCol < priv->cfg.cols; ++nCol) + { + lcd_putdata(priv, data[nCol]); + } + } + + lcd_set_curpos(priv, priv->cfg.rows - 1, 0); + for (nCol = 0; nCol < priv->cfg.cols; ++nCol) + { + lcd_putdata(priv, ' '); + } + + lcd_set_curpos(priv, priv->cfg.rows - 1, 0); + + free(data); + return; +} + +/**************************************************************************** + * Name: lcd_codec_action + * + * Description: + * Perform an 'action' as per the Segment LCD codec. + * + * Parameters: + * priv - device instance + * code - SLCD code action code + * count - count param for those actions that take it + * + ****************************************************************************/ + +static void lcd_codec_action(FAR struct pcf8574_lcd_dev_s *priv, + enum slcdcode_e code, uint8_t count) +{ + switch (code) + { + /* Erasure */ + + case SLCDCODE_BACKDEL: /* Backspace (backward delete) N characters */ + { + if (count <= 0) /* silly case */ + break; + + else + { + uint8_t row; + uint8_t col; + + lcd_get_curpos(priv, &row, &col); + if (count > col) /* saturate to preceding columns available */ + { + count = col; + } + + lcd_set_curpos(priv, row, col-count); + } + + /* ... and conscientiously fall through to next case ... */ + } + + case SLCDCODE_FWDDEL: /* Delete (forward delete) N characters, moving text */ + { + if (count <= 0) /* silly case */ + { + break; + } + + else + { + uint8_t row; + uint8_t col; + uint8_t start; + uint8_t end; + uint8_t nIdx; + uint8_t data; + + lcd_get_curpos(priv, &row, &col); + start = col + count; + + if (start >= priv->cfg.cols) /* silly case of nothing left */ + { + break; + } + + end = start + count; + if (end > priv->cfg.cols) /* saturate */ + { + end = priv->cfg.cols; + } + + for(nIdx = col; nIdx < end; ++start, ++nIdx) /* much like memmove */ + { + lcd_set_curpos(priv, row, start); + data = lcd_getdata(priv); + lcd_set_curpos(priv, row, nIdx); + lcd_putdata(priv, data); + } + + for(;nIdx < priv->cfg.cols; ++nIdx) /* much like memset */ + { + lcd_putdata(priv, ' '); + } + + lcd_set_curpos(priv, row, col); + } + } + break; + + case SLCDCODE_ERASE: /* Erase N characters from the cursor position */ + if (count > 0) + { + uint8_t row; + uint8_t col; + uint8_t end; + uint8_t nIdx; + + lcd_get_curpos(priv, &row, &col); + end = col + count; + if (end > priv->cfg.cols) + { + end = priv->cfg.cols; + } + + for (nIdx = col; nIdx < end; ++nIdx) + { + lcd_putdata(priv, ' '); + } + + lcd_set_curpos(priv, row, col); + } + break; + + case SLCDCODE_CLEAR: /* Home the cursor and erase the entire display */ + { + lcd_putcmd(priv, CMD_CLEAR); + up_udelay(DELAY_US_HOMECLEAR); /* clear needs extra time */ + } + break; + + case SLCDCODE_ERASEEOL: /* Erase from the cursor position to the end of line */ + { + uint8_t row; + uint8_t col; + uint8_t nIdx; + + lcd_get_curpos(priv, &row, &col); + + for (nIdx = col; nIdx < priv->cfg.cols; ++nIdx) + { + lcd_putdata(priv, ' '); + } + + lcd_set_curpos(priv, row, col); + } + break; + + /* Cursor movement */ + + case SLCDCODE_LEFT: /* Cursor left by N characters */ + { + uint8_t row; + uint8_t col; + + lcd_get_curpos(priv, &row, &col); + if (count > col) + { + col = 0; + } + else + { + col -= count; + } + + lcd_set_curpos(priv, row, col); + } + break; + + case SLCDCODE_RIGHT: /* Cursor right by N characters */ + { + uint8_t row; + uint8_t col; + + lcd_get_curpos(priv, &row, &col); + col += count; + if (col >= priv->cfg.cols) + { + col = priv->cfg.cols-1; + } + + lcd_set_curpos(priv, row, col); + } + break; + + case SLCDCODE_UP: /* Cursor up by N lines */ + { + uint8_t row; + uint8_t col; + + lcd_get_curpos(priv, &row, &col); + if (count > row) + { + row = 0; + } + else + { + row -= count; + } + + lcd_set_curpos(priv, row, col); + } + break; + + case SLCDCODE_DOWN: /* Cursor down by N lines */ + { + uint8_t row; + uint8_t col; + + lcd_get_curpos(priv, &row, &col); + row += count; + if (row >= priv->cfg.rows) + { + row = priv->cfg.rows - 1; + } + + lcd_set_curpos(priv, row, col); + } + break; + + case SLCDCODE_HOME: /* Cursor home */ + { + uint8_t row; + uint8_t col; + + lcd_get_curpos(priv, &row, &col); + lcd_set_curpos(priv, row, 0); + } + break; + + case SLCDCODE_END: /* Cursor end */ + { + uint8_t row; + uint8_t col; + + lcd_get_curpos(priv, &row, &col); + lcd_set_curpos(priv, row, priv->cfg.cols - 1); + } + break; + + case SLCDCODE_PAGEUP: /* Cursor up by N pages */ + case SLCDCODE_PAGEDOWN: /* Cursor down by N pages */ + break; /* Not supportable on this SLCD */ + + /* Blinking */ + + case SLCDCODE_BLINKSTART: /* Start blinking with current cursor position */ + lcd_putcmd(priv, CMD_CURSOR_ON_BLINK); + break; + + case SLCDCODE_BLINKEND: /* End blinking after the current cursor position */ + case SLCDCODE_BLINKOFF: /* Turn blinking off */ + lcd_putcmd(priv, CMD_CURSOR_OFF); + break; /* Not implemented */ + + /* These are actually unreportable errors */ + + default: + case SLCDCODE_NORMAL: /* Not a special keycode */ + break; + } +} + +/**************************************************************************** + * Name: lcd_getstream + * + * Description: + * Get one character from the LCD codec stream. + * + ****************************************************************************/ + +static int lcd_getstream(FAR struct lib_instream_s *instream) +{ + FAR struct lcd_instream_s *lcdstream = (FAR struct lcd_instream_s *)instream; + + if (lcdstream->nbytes > 0) + { + lcdstream->nbytes--; + lcdstream->stream.nget++; + return (int)*lcdstream->buffer++; + } + + return EOF; +} + +/**************************************************************************** + * Name: pcf8574_lcd_open + * + * Description: + * requisite device 'open' method; we don't do anything special + * + ****************************************************************************/ + +static int pcf8574_lcd_open(FAR struct file *filep) +{ + return OK; +} + +/**************************************************************************** + * Name: pcf8574_lcd_close + * + * Description: + * requisite device 'close' method; we don't do anything special + * + ****************************************************************************/ + +static int pcf8574_lcd_close(FAR struct file *filep) +{ + return OK; +} + +/**************************************************************************** + * Name: pcf8574_lcd_read + * + * Description: + * This simply reads as much of the display memory as possible. This is + * probably not very interesting. + * + ****************************************************************************/ + +static ssize_t pcf8574_lcd_read(FAR struct file *filep, FAR char *buffer, + size_t buflen) +{ + FAR struct inode *inode = filep->f_inode; + FAR struct pcf8574_lcd_dev_s *priv = (FAR struct pcf8574_lcd_dev_s *)inode->i_private; + int nIdx; + uint8_t addr; + uint8_t row; + uint8_t col; + + sem_wait(&priv->sem_excl); + + /* Get current cursor position so we can restore it */ + + (void)lcd_read_busy_addr(priv, &addr); + addr2rc(priv, addr, &row, &col); + + /* Just read the entire display into the given buffer, as much as possible */ + + nIdx = 0; + row = 0; + col = 0; + + while (nIdx < buflen && row < priv->cfg.rows) + { + if (0 == col) + { + lcd_set_curpos(priv, row, 0); + } + + buffer[nIdx] = lcd_getdata(priv); + + ++nIdx; + ++col; + if (priv->cfg.cols == col) + { + ++row; + col = 0; + } + } + + lcd_putcmd(priv, CMD_SET_DDADDR | addr); /* Restore DDRAM address */ + + sem_post(&priv->sem_excl); + return nIdx; +} + +/**************************************************************************** + * Name: pcf8574_lcd_write + * + * Description: + * Output a sequence of characters to the device. + * + ****************************************************************************/ + +static ssize_t pcf8574_lcd_write(FAR struct file *filep, + FAR const char *buffer, + size_t buflen) +{ + FAR struct inode *inode = filep->f_inode; + FAR struct pcf8574_lcd_dev_s *priv = (FAR struct pcf8574_lcd_dev_s *)inode->i_private; + struct lcd_instream_s instream; + uint8_t row; + uint8_t col; + struct slcdstate_s state; + enum slcdret_e result; + uint8_t ch; + uint8_t count; + + sem_wait(&priv->sem_excl); + + /* Initialize the stream for use with the SLCD CODEC */ + + instream.stream.get = lcd_getstream; + instream.stream.nget = 0; + instream.buffer = buffer; + instream.nbytes = buflen; + + /* Get the current cursor position now; we'll keep track of it as we go */ + + lcd_get_curpos(priv, &row, &col); + + /* Now decode and process every byte in the input buffer */ + + memset(&state, 0, sizeof(struct slcdstate_s)); + while ((result = slcd_decode(&instream.stream, &state, &ch, &count)) != SLCDRET_EOF) + { + if (result == SLCDRET_CHAR) /* A normal character was returned */ + { + /* Check for ASCII control characters */ + + if (ch == ASCII_TAB) + { + lcd_putcmd(priv, CMD_CURSOR_ON_BLINK); + } + else if (ch == ASCII_VT) + { + /* Turn the backlight on */ + + lcd_backlight(priv, true); + } + else if (ch == ASCII_FF) + { + /* Turn the backlight off */ + + lcd_backlight(priv, false); + } + else if (ch == ASCII_CR) + { + /* Perform a Home */ + + lcd_putcmd(priv, CMD_HOME); + up_udelay(DELAY_US_HOMECLEAR); /* home needs extra time */ + row = 0; + col = 0; + } + else if (ch == ASCII_SO) + { + lcd_putcmd(priv, CMD_CURSOR_OFF); + } + else if (ch == ASCII_SI) + { + /* Perform the re-initialize */ + + lcd_init(priv); + row = 0; + col = 0; + } + else if (ch == ASCII_LF) + { + /* unixian line term; go to start of next line */ + + row += 1; + if (row >= priv->cfg.rows) + { + lcd_scroll_up(priv); + row = priv->cfg.rows - 1; + } + + col = 0; + lcd_set_curpos(priv, row, col); + } + else if (ch == ASCII_BS) + { + /* Perform the backward deletion */ + + lcd_codec_action(priv, SLCDCODE_BACKDEL, 1); + + lcd_get_curpos(priv, &row, &col); + } + else if (ch == ASCII_DEL) + { + /* Perform the forward deletion */ + + lcd_codec_action(priv, SLCDCODE_FWDDEL, 1); + + lcd_get_curpos(priv, &row, &col); + } + else + { + /* All others are fair game. See if we need to wrap line. */ + + if (col >= priv->cfg.cols) + { + row += 1; + if (row >= priv->cfg.rows) + { + lcd_scroll_up(priv); + row = priv->cfg.rows - 1; + } + + col = 0; + lcd_set_curpos(priv, row, col); + } + + lcd_putdata(priv, ch); + ++col; + } + } + else /* (result == SLCDRET_SPEC) */ /* A special SLCD action was returned */ + { + lcd_codec_action(priv, (enum slcdcode_e)ch, count); + + /* we can't know what happened, so it's easier just to re-inquire + * as to where we are. + */ + + lcd_get_curpos(priv, &row, &col); + } + } + + sem_post(&priv->sem_excl); + return buflen; +} + +/**************************************************************************** + * Name: pcf8574_lcd_ioctl + * + * Description: + * Perform device operations that are outside the standard I/O model. + * + ****************************************************************************/ + +static int pcf8574_lcd_ioctl(FAR struct file *filep, int cmd, + unsigned long arg) +{ + switch (cmd) + { + case SLCDIOC_GETATTRIBUTES: /* SLCDIOC_GETATTRIBUTES: Get the attributes of the SLCD */ + { + FAR struct inode *inode = filep->f_inode; + FAR struct pcf8574_lcd_dev_s *priv = (FAR struct pcf8574_lcd_dev_s *)inode->i_private; + FAR struct slcd_attributes_s *attr = (FAR struct slcd_attributes_s *)((uintptr_t)arg); + + lcdvdbg("SLCDIOC_GETATTRIBUTES:\n"); + + if (!attr) + { + return -EINVAL; + } + + attr->nrows = priv->cfg.rows; + attr->ncolumns = priv->cfg.cols; + attr->nbars = 0; + attr->maxcontrast = 0; + attr->maxbrightness = 1; /* 'brightness' for us is the backlight */ + } + break; + + case SLCDIOC_CURPOS: /* SLCDIOC_CURPOS: Get the SLCD cursor position */ + { + FAR struct inode *inode = filep->f_inode; + FAR struct pcf8574_lcd_dev_s *priv = (FAR struct pcf8574_lcd_dev_s *)inode->i_private; + FAR struct slcd_curpos_s *attr = (FAR struct slcd_curpos_s *)((uintptr_t)arg); + uint8_t row; + uint8_t col; + + sem_wait(&priv->sem_excl); + + lcd_get_curpos(priv, &row, &col); + attr->row = row; + attr->column = col; + + sem_post(&priv->sem_excl); + } + break; + + case SLCDIOC_GETBRIGHTNESS: /* Get the current brightness setting */ + { + FAR struct inode *inode = filep->f_inode; + FAR struct pcf8574_lcd_dev_s *priv = (FAR struct pcf8574_lcd_dev_s *)inode->i_private; + bool bOn; + + bOn = (priv->bl_bit && priv->cfg.bl_active_high) || (!priv->bl_bit && !priv->cfg.bl_active_high); + *(int*)((uintptr_t)arg) = bOn ? 1 : 0; + } + break; + + case SLCDIOC_SETBRIGHTNESS: /* Set the brightness to a new value */ + { + FAR struct inode *inode = filep->f_inode; + FAR struct pcf8574_lcd_dev_s *priv = (FAR struct pcf8574_lcd_dev_s *)inode->i_private; + + sem_wait(&priv->sem_excl); + lcd_backlight(priv, arg ? true : false); + sem_post(&priv->sem_excl); + } + break; + + case SLCDIOC_CREATECHAR: /* Create a custom character pattern */ + { + FAR struct inode *inode = filep->f_inode; + FAR struct pcf8574_lcd_dev_s *priv = (FAR struct pcf8574_lcd_dev_s *)inode->i_private; + FAR struct slcd_createchar_s *attr = (FAR struct slcd_createchar_s *)((uintptr_t)arg); + + sem_wait(&priv->sem_excl); + lcd_create_char(priv, attr->idx, attr->bmp); + sem_post(&priv->sem_excl); + } + break; + + case SLCDIOC_SETBAR: /* SLCDIOC_SETBAR: Set bars on a bar display */ + case SLCDIOC_GETCONTRAST: /* SLCDIOC_GETCONTRAST: Get the current contrast setting */ + case SLCDIOC_SETCONTRAST: /* SLCDIOC_SETCONTRAST: Set the contrast to a new value */ + default: + return -ENOTTY; + } + + return OK; +} + +/**************************************************************************** + * Name: pcf8574lcd_poll + ****************************************************************************/ + +#ifndef CONFIG_DISABLE_POLL +static int pcf8574lcd_poll(FAR struct file *filep, FAR struct pollfd *fds, + bool setup) +{ + if (setup) + { + /* Data is always available to be read */ + + fds->revents |= (fds->events & (POLLIN|POLLOUT)); + if (fds->revents != 0) + { + sem_post(fds->sem); + } + } + + return OK; +} +#endif + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: pcf8574_lcd_backpack_register + * + * Description: + * Register a character driver that is an I2C LCD 'backpack' for the + * ever-popular HD44780 based 16x2 LCD via pcf8574 I2C IO expander. + * + ****************************************************************************/ + +int pcf8574_lcd_backpack_register(FAR const char *devpath, + FAR struct i2c_master_s *i2c, + FAR struct pcf8574_lcd_backpack_config_s *cfg) +{ + FAR struct pcf8574_lcd_dev_s *priv; + int ret; + + /* Sanity check on geometry */ + + if (cfg->rows < 1 || cfg->rows > 4) + { + lcdvdbg("Display rows must be 1-4\n"); + return -EINVAL; + } + + if ((cfg->cols < 1 || cfg->cols > 64) || (cfg->rows == 4 && cfg->cols > 32)) + { + lcdvdbg("Display cols must be 1-64, and may not be part of a 4x40 configuration\n"); + return -EINVAL; + } + + /* Initialize the device structure */ + + priv = (FAR struct pcf8574_lcd_dev_s *)kmm_malloc(sizeof(struct pcf8574_lcd_dev_s)); + if (!priv) + { + lcdvdbg("Failed to allocate instance\n"); + return -ENOMEM; + } + + priv->i2c = i2c; + priv->cfg = *cfg; + priv->bl_bit = priv->cfg.bl_active_high ? 0 : (1 << priv->cfg.bl); + sem_init(&priv->sem_excl, 0, 1); + + /* Initialize */ + + lcd_init(priv); + + /* Register the character driver */ + + ret = register_driver(devpath, &g_pcf8574_lcd_fops, 0666, priv); + if (ret < 0) + { + lcdvdbg("Failed to register driver: %d\n", ret); + kmm_free(priv); + } + + lcdvdbg("pcf8574_lcd_backpack driver loaded successfully!\n"); + return ret; +} diff --git a/drivers/lcd/pcf8574_lcd_backpack_readme.txt b/drivers/lcd/pcf8574_lcd_backpack_readme.txt new file mode 100644 index 0000000000..c7d2775d11 --- /dev/null +++ b/drivers/lcd/pcf8574_lcd_backpack_readme.txt @@ -0,0 +1,245 @@ +pcf8574 lcd backpack - readme.txt +20160524a, ziggurat29 + +Abstract +======== + +This describes the use of the pcf8574_lcd_backpack.h, .c driver module for NuttX. + +Contents +======== + + o Summary for Those Who Don't Like to Read + o Introduction + o Usage + - Specifying the I2C Address + - Specifying the LCD Display Format + - Specifying Unknown/New Backpacks + o Special Features + - Codec + - Ioctl + o Troubleshooting + +Summary for Those Who Don't Like to Read +======================================== + +To use, in your board_app_initialize(), + +1) instantiate an I2C bus: + + FAR struct i2c_master_s* i2c = stm32l4_i2cbus_initialize(1); + +2) set the configuration for the particular make of board, and LCD format: + + struct pcf8574_lcd_backpack_config_s cfg = LCD_I2C_BACKPACK_CFG_MJKDZ; + cfg.rows = 2; + cfg.cols = 16; + +3) instantiate the device on the I2C bus previously created: + + ret = pcf8574_lcd_backpack_register("/dev/slcd0", i2c, &cfg); + +Introduction +============ + +The character LCD modules based on the HD44780 (and compatible ST7706U, KS0066U, +SED1278, etc.) drivers have been around for many decades and are quite popular. +One challenge is that they require a large number of GPIO (11 in 8-bit mode, 7 +in 4-bit mode, and an additional line if you control the backlight). + +To address this, several folks have created daughter boards for the LCD module +which present a two-wire I2C interface. Generally, folks call these interface +boards an 'lcd backpack'. A large class of them (and in particular, the very +inexpensive ones found on ebay, q.v. google "ebay i2c lcd backpack"; they're +usually about $USD 1), use the same design: a PCF8574 I2C IO expander. +Variations occur in mapping GPIO line to LCD pins, but otherwise the +expectation is that you control the LCD at a low-level tweaking the lines +("byte-banging"?) + +My original motivation for producing this was to simply serve as a test device +for some I2C driver work I was doing, but it occurred to me that it may be +useful to others, given the popularity of the 'lcd backpack', so I cleaned up +the code and made it general to support all the variations on the market, and +also to adopt the NuttX notion of a 'segment lcd codec', which is used to +transport escape sequences (for doing things like clearing the display, turning +on/off the cursor, etc), and also the standard ioctls. + +I believe it should support all "lcd backpack"s on the market (because you can +specify the particular wiring), and all HD44780-based LCD modules in 1-line, +2-line, and 4-line configurations (except 4x40 -- this is not supported by +the hardware). + +This module should be cpu-architecture-neutral, and work with any standard I2C +bus object. At the time of this writing it has been tested only with the +STM32L4 chip and with the 'MJKDZ' backpack board with a 16x2 lcd module. + +Usage +===== + +The driver is contained in the files pcf8574_lcd_backpack.h and +pcf8574_lcd_backpack.c; you can include these in your build in whatever manner +you choose (e.g. copy them into your board's src directory, and reference them +in the Makefile). + +As with other I2C devices, you first instantiate the I2C bus, and then +instantiate the driver on that bus. When instantiating the driver, you also +provide a configuration 'descriptor' that specified board wiring and LCD +format parameters. You can explicitly specify any wiring configuration, and +some known popular boards are already #defined for your convenience. + +E.g.: + + #include + #include "pcf8574_lcd_backpack.h" + + #define MJKDZ_I2C_PORTNO 1 + #define MJKDZ_DEVICE_NAME "/dev/lcd0" + + FAR struct i2c_master_s* g_i2cMJKDZ = NULL; + + .... + + g_i2cMJKDZ = stm32l4_i2cbus_initialize(MJKDZ_I2C_PORTNO); + + .... + + struct pcf8574_lcd_backpack_config_s cfg = LCD_I2C_BACKPACK_CFG_MJKDZ; + cfg.rows = 2; + cfg.cols = 16; + + ret = pcf8574_lcd_backpack_register(MJKDZ_DEVICE_NAME, g_i2cMJKDZ, &cfg); + +If all the above executes successfully, you should wind up with a character +device node "/dev/lcd0". Applications can open that node and write() to it, +and the shell can emit data to it (e.g. 'echo Hi, there! > /dev/lcd0'). + +That is the basic configuration. Some additional configuration points are +worth noting. + +Specifying the I2C Address +-------------------------- + +The 'struct pcf8574_lcd_backpack_config_s' shown above is initialized using +the convenience macro LCD_I2C_BACKPACK_CFG_MJKDZ. Those convenience macros +use the default I2C address for the board, however many of the boards allow +altering the address (by jumpers, or removing pullups). You need to specify +the correct address for your board's physical configuration. You can do that +via + + cfg.addr = 0x23; + +Specifying the LCD Display Format +--------------------------------- + +The LCD modules cannot 'self-describe' their physical format, so it must be +explicitly provided to the driver. The correct format is important for +computing screen coordinate addresses and for scrolling and line wrap. + +In the example above, the screen format is specifying by setting the +fields in the configuration descriptor: + + cfg.rows = 2; + cfg.cols = 16; + +The lcd backpack can accomodate all known 1-line and 2-line displays, and +4-line displays up to 4 x 32. Explicitly, the 4 x 40 /cannot/ be supported +because it has an important hardware difference (it is actually two 4x20 +controllers, and the LCD backpack does not have the wiring for the +second controller's 'E' line). This is a hardware limitation of the +lcd backpack, rather than the driver. + +Specifying Unknown/New Backpacks +-------------------------------- + +The descriptor initializer macros in the form LCD_I2C_BACKPACK_CFG_xxx +located near the top of pcf8574_lcd_backpack.h are provided for convenience. +However, their use is not required, and it can be useful to initialize the +descriptor with explicit values, say, for custom or unknown boards. + +The format of this descriptor is conscientiously chosen to be semantically +similar to an equivalent initialization mechanism popular in the Arduino +community used in their LCD support libraries. It specifies: + + * I2C address + * pin mapping for data lines + * pin mapping for control lines + * pin mapping for backlight control line + * polarity sense of backlight control line + +and we add to that + + * (row, column) size of display + +(the Arduino libraries specify display size at a different point in code) +You should be able to readily port a functional Arduino project by cutting- +and-pasting the sequence of numbers that are the pin defs for the lcd +backpack you are using. + +Special Features +================ + +Codec +----- + +The driver supports the NuttX 'segment lcd codec', which facilitates the +encoding of control functions into the write() stream. These can be used +to clear the display, move the cursor, etc. For details, q.v. + + nuttx/lcd/slcd_codec.h + +Ioctl +----- + +The driver supports the NuttX ioctl definitions for segment lcd. Q.v. + + nuttx/lcd/slcd_ioctl.h + +Additionally, the ioctl SLCDIOC_CREATECHAR is provided to allow the +creation of custom characters. + +The HD44780 devices generally support the creation of 8 custom +characters, which map to code points 0-7. The characters are 5x8 +pixels (with the expectation that the last row is left blank, to +accommodate the underscore cursor, though this is not strictly a +requirement). + +The SLCDIOC_CREATECHAR ioctl takes a parameter, which is a struct +consisting of the character index being programmed (0-7) and the +8-byte bitmap of the character image. The bitmap is constructed +with each byte representing a row, from top row to bottom row. +Each row is imaged left to right, MSB to LSB, right-justified (i.e., +bit 4 is leftmost, bit 0 is rightmost, and bits 7-5 are unused). + +You may reference these characters simply by including them in +the data you write() to the device, e.g. + + write(fd, "\x01,\x02Hi, there!\n", 13); + +Example of programming a character image: + + static const struct slcd_createchar_s custom_char = + { 4, { 0x04, 0x0e, 0x15, 0x04, 0x04, 0x04, 0x04, 0x00 } }; /* up arrow */ + + ret = ioctl(fd, SLCDIOC_CREATECHAR, (unsigned long)custom_char); + +Now character '\x04' will display as an 'up arrow'. + +Note, you might consider avoiding the use of code point 0x00 unless +absolutely needed, because the embedded nul character can cause +problems. The driver, and write() apis are binary, and unaffected, +but things like printf() and puts() assume C-style strings, and are +affected. + +Troubleshooting +=============== + +* Check your I2C address. turn on debugging output so you can see + bus timeouts that suggest a non-responsive slave. +* Check your board wiring and configuration specification. Buzz + out the lines if you have to. +* Con't forget to check the 'contrast' potentiometer. The voltage + at the central wiper should be approximately 0.29 V. The useful + range of voltages at this pin is very narrow, and outside that + range there will be nothing visible on the display, so most of the + turn range of the pot is non-useful. Much of human life has been + wasted in the rediscovery of this farcically idiotic diff --git a/include/nuttx/lcd/pcf8574_lcd_backpack.h b/include/nuttx/lcd/pcf8574_lcd_backpack.h new file mode 100644 index 0000000000..437d71d64f --- /dev/null +++ b/include/nuttx/lcd/pcf8574_lcd_backpack.h @@ -0,0 +1,176 @@ +/**************************************************************************** + * include/nuttx/lcd/pcf8574_lcd_backpack.h + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: dev@ziggurat29.com + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +#ifndef __INCLUDE_NUTTX_LCD_PCF8574_LCD_BACKPACK_H +#define __INCLUDE_NUTTX_LCD_PCF8574_LCD_BACKPACK_H + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include +#include +#include +#include +#include +#include + +/**************************************************************************** + * Pre-processor Definitions + ****************************************************************************/ + +/* Configurations of some well-known boards. You may still have to modify the + * address if was changed from the default. You will also need to specify the + * geometry of your attached LCD display. You can support: + * 1x8, 1x12, 1x16, 2x8, 2x12, 2x16, 2x20, 2x24, 2x40, 4x16, 4x20 + * Pretty much anything on the market except 4x40, which really consists of two + * separate 2x40 controllers, and the I2C backpack doesn't support those due + * to the second 'E' line being needed. + * Consider these 'informative'. + * XXX Note, actual testing has been done on LCD_I2C_BACKPACK_CFG_MJKDZ only, + * the others come from online research. + */ + +/* board marked 'mjkdz' */ + +#define LCD_I2C_BACKPACK_CFG_MJKDZ {0x20,4,5,6,0,1,2,3,7,false,0,0} + +/* YwRobot/DFRobot/SainSmart */ + +#define LCD_I2C_BACKPACK_CFG_SAINSMART {0x27,2,1,0,4,5,6,7,3,true,0,0} + +/* Robot Arduino LCM1602/2004 */ + +#define LCD_I2C_BACKPACK_CFG_ROBOT {0x27,2,1,0,4,5,6,7,3,false,0,0} + +/* I2CLCDextraIO board modded for backlight (pnp transistor) */ + +#define LCD_I2C_BACKPACK_CFG_I2CIO_PNP {0x38,6,5,4,0,1,2,3,7,false,0,0} + +/* I2CLCDextraIO board modded for backlight (npn transistor) */ + +#define LCD_I2C_BACKPACK_CFG_I2CIO_NPN {0x38,6,5,4,0,1,2,3,7,true,0,0} + +/* SLCDIOC_CREATECHAR: Create a custom character pattern + * + * argument: pointer to slcd_createchar_s structure (defined below) + */ + +#define SLCDIOC_CREATECHAR _SLCDIOC(0x80) + + /**************************************************************************** + * Public Types + ****************************************************************************/ + +/* Used to specify the pin wiring for this particular module */ + +struct pcf8574_lcd_backpack_config_s +{ + uint8_t addr; /* I2C address; 'unshifted' (i.e. disregarding the LSB R/W bit) + * these can vary widely depending on board pullups, whether it + * uses a PCF8574-T or -AT, etc. Many default to either 0x20 + * or 0x27, and some default to 0x38 or 0x3f. Check with seller. + */ + uint8_t en; /* gpio bit for LCD EN */ + uint8_t rw; /* gpio bit for LCD RW */ + uint8_t rs; /* gpio bit for LCD RS */ + uint8_t d4; /* gpio bit for LCD D4 */ + uint8_t d5; /* gpio bit for LCD D5 */ + uint8_t d6; /* gpio bit for LCD D6 */ + uint8_t d7; /* gpio bit for LCD D7 */ + uint8_t bl; /* gpio bit for backlight control */ + bool bl_active_high; /* is the backlight control active high? */ + uint8_t rows; /* screen geometry, rows, 1, 2 or 4 */ + uint8_t cols; /* screen geometry, cols, 8, 12, 16, 20, 24, 40 */ +}; + +/* Used with the SLCDIOC_CREATECHAR ioctl call */ + +struct slcd_createchar_s +{ + uint8_t idx; /* Custom character index; 0-7. Note; you'll probably + * want to avoid code point 0 unless you really need it, + * because embedded nul in a C string can cause surprises. + */ + uint8_t bmp[8]; /* Custom character bitmap. The bitmap is structured as + * a 5x8 bitmap. '1' = pixel on, msb-lsb left-to-right, + * and right-justified (i.e. only bits 4-0 are used). + * Each byte represents 1 row. By convention, you are + * expected to leave the last row all 0's, because it is + * used by the cursor, but this is not strictly required. + */ +}; + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: pcf8574_lcd_backpack_register + * + * Description: + * Register a character driver that is a I2C LCD 'backpack' based on the + * PCF8574 I2C IO expander. It allows operation of the ever-popular HD44780 + * based LCDs via I2C instead of parallel (saving a bunch of gpio lines). + * + * There are a multitude of these available from various sources (e.g. ebay). + * They typically vary by gpio-to-lcd pin mapping, and I2C addresss, but + * otherwise are functionally identical. + * + * The characters presented for codes depend on the masked rom of the + * particular LCD device attached, but the most common are: + * 'A00', which present 0x20-0x7f, and 0xa0-0xff', similar to JIS X 0201 + * 'A02', which present 0x10-0xff, and include various european symbols + * In both cases, codes 0x00-0x07 map to the CGRAM characters, which can be + * loaded via ioctl SLCDIOC_CREATECHAR (q.v.). + * + * This driver supports the SLCD codec for various escape sequences; q.v. + * nuttx/lcd/slcd_codec.h for details. This driver supports the SLCD ioctl + * interface for various extended commands; q.v. nuttx/lcd/slcd_ioctl.h for + * details. This driver supports an additional ioctl for defining custom + * characters; see above for details. + * + * Parameters: + * devpath - path to device node; arbitrary, but typically '/dev/lcd0' or such + * i2c - the low-level i2c bus onto which to bind + * cfg - the board-specific configuration + * + ****************************************************************************/ + +int pcf8574_lcd_backpack_register(FAR const char *devpath, + FAR struct i2c_master_s *i2c, + FAR struct pcf8574_lcd_backpack_config_s *cfg); + +#endif /* __INCLUDE_NUTTX_LCD_PCF8574_LCD_BACKPACK_H */ -- GitLab From d58e4acf178f338a69ce26f216d8ba3d97c40a97 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 25 May 2016 08:48:32 -0600 Subject: [PATCH 240/307] Remove whitespace from the end of lines --- drivers/lcd/pcf8574_lcd_backpack.c | 26 ++++++++++----------- drivers/lcd/pcf8574_lcd_backpack_readme.txt | 4 ++-- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/drivers/lcd/pcf8574_lcd_backpack.c b/drivers/lcd/pcf8574_lcd_backpack.c index 22fd29bb96..09ccdfcd2b 100644 --- a/drivers/lcd/pcf8574_lcd_backpack.c +++ b/drivers/lcd/pcf8574_lcd_backpack.c @@ -567,24 +567,24 @@ static void lcd_init(FAR struct pcf8574_lcd_dev_s *priv) latch_nybble(priv, 0x20>>4, false); /* Function set: DL=0;Interface is 4 bits, N=1 (2 Lines), F=0 (5x8 dots font) */ - + lcd_putcmd(priv, 0x28); /* Display Off: D=0 (Display off), C=0 (Cursor Off), B=0 (Blinking Off) */ - + lcd_putcmd(priv, 0x08); /* Display Clear */ - + lcd_putcmd(priv, CMD_CLEAR); up_udelay(DELAY_US_HOMECLEAR); /* clear needs extra time */ /* Entry Mode Set: I/D=1 (Increment), S=0 (No shift) */ - + lcd_putcmd(priv, 0x06); /* Display On, Cursor Off */ - + lcd_putcmd(priv, 0x0C); } @@ -610,7 +610,7 @@ static void lcd_create_char(FAR struct pcf8574_lcd_dev_s *priv, { int nIdx; uint8_t addr; - + (void)lcd_read_busy_addr(priv, &addr); lcd_putcmd(priv, CMD_SET_CGADDR | (idxchar << 3)); /* set CGRAM address */ @@ -737,7 +737,7 @@ static void lcd_codec_action(FAR struct pcf8574_lcd_dev_s *priv, { if (count <= 0) /* silly case */ break; - + else { uint8_t row; @@ -817,12 +817,12 @@ static void lcd_codec_action(FAR struct pcf8574_lcd_dev_s *priv, { end = priv->cfg.cols; } - + for (nIdx = col; nIdx < end; ++nIdx) { lcd_putdata(priv, ' '); } - + lcd_set_curpos(priv, row, col); } break; @@ -841,12 +841,12 @@ static void lcd_codec_action(FAR struct pcf8574_lcd_dev_s *priv, uint8_t nIdx; lcd_get_curpos(priv, &row, &col); - + for (nIdx = col; nIdx < priv->cfg.cols; ++nIdx) { lcd_putdata(priv, ' '); } - + lcd_set_curpos(priv, row, col); } break; @@ -932,7 +932,7 @@ static void lcd_codec_action(FAR struct pcf8574_lcd_dev_s *priv, lcd_set_curpos(priv, row, 0); } break; - + case SLCDCODE_END: /* Cursor end */ { uint8_t row; @@ -1356,7 +1356,7 @@ int pcf8574_lcd_backpack_register(FAR const char *devpath, { FAR struct pcf8574_lcd_dev_s *priv; int ret; - + /* Sanity check on geometry */ if (cfg->rows < 1 || cfg->rows > 4) diff --git a/drivers/lcd/pcf8574_lcd_backpack_readme.txt b/drivers/lcd/pcf8574_lcd_backpack_readme.txt index c7d2775d11..d5573ea377 100644 --- a/drivers/lcd/pcf8574_lcd_backpack_readme.txt +++ b/drivers/lcd/pcf8574_lcd_backpack_readme.txt @@ -91,7 +91,7 @@ E.g.: #include #include "pcf8574_lcd_backpack.h" - + #define MJKDZ_I2C_PORTNO 1 #define MJKDZ_DEVICE_NAME "/dev/lcd0" @@ -242,4 +242,4 @@ Troubleshooting range of voltages at this pin is very narrow, and outside that range there will be nothing visible on the display, so most of the turn range of the pot is non-useful. Much of human life has been - wasted in the rediscovery of this farcically idiotic + wasted in the rediscovery of this farcically idiotic -- GitLab From 9a2002a30227271829589c0f3a090f6cf281c389 Mon Sep 17 00:00:00 2001 From: Aleksandr Vyhovanec Date: Wed, 25 May 2016 08:59:47 -0600 Subject: [PATCH 241/307] 1-wire driver based on U[S]ART in single-wire, half-duplex mode. --- arch/arm/src/stm32/stm32_1wire.c | 1333 ++++++++++++++++++++++++++++++ arch/arm/src/stm32/stm32_1wire.h | 113 +++ include/nuttx/1wire.h | 215 +++++ 3 files changed, 1661 insertions(+) create mode 100644 arch/arm/src/stm32/stm32_1wire.c create mode 100644 arch/arm/src/stm32/stm32_1wire.h create mode 100644 include/nuttx/1wire.h diff --git a/arch/arm/src/stm32/stm32_1wire.c b/arch/arm/src/stm32/stm32_1wire.c new file mode 100644 index 0000000000..d81feb7999 --- /dev/null +++ b/arch/arm/src/stm32/stm32_1wire.c @@ -0,0 +1,1333 @@ +/**************************************************************************** + * arch/arm/src/stm32/stm32_1wire.c + * + * Copyright (C) 2016 Aleksandr Vyhovanec. All rights reserved. + * Author: Aleksandr Vyhovanec + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +/* Links: + * https://www.maximintegrated.com/en/app-notes/index.mvp/id/214 + */ + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include + +#include "up_arch.h" + +#include "stm32_rcc.h" +#include "stm32_1wire.h" + +/**************************************************************************** + * Pre-processor Definitions + ****************************************************************************/ + +#define BUS_TIMEOUT 5 /* tv_sec */ + +#define RESET_BAUD 9600 +#define RESET_TX 0xF0 +#define TIMESLOT_BAUD 115200 +#define READ_TX 0xFF +#define READ_RX1 0xFF +#define WRITE_TX0 0x00 +#define WRITE_TX1 0xFF + +#define PIN_OPENDRAIN(GPIO) ((GPIO) | GPIO_OPENDRAIN) + +/**************************************************************************** + * Private Types + ****************************************************************************/ + +/* 1-Wire bus task */ + +enum stm32_1wire_msg_e +{ + ONEWIRETASK_NONE = 0, + ONEWIRETASK_RESET, + ONEWIRETASK_WRITE, + ONEWIRETASK_READ +}; + +struct stm32_1wire_msg_s +{ + enum stm32_1wire_msg_e task; /* Task */ + uint8_t *buffer; /* Task buffer */ + int buflen; /* Buffer length */ +}; + +/* 1-Wire device hardware configuration */ + +struct stm32_1wire_config_s +{ + const uint32_t usartbase; /* Base address of USART registers */ + const uint32_t apbclock; /* PCLK 1 or 2 frequency */ + const uint32_t data_pin; /* GPIO configuration for DATA */ + const uint8_t irq; /* IRQ associated with this USART */ + int (*const vector)(int irq, void *context); /* Interrupt handler */ +}; + +/* 1-Wire device Private Data */ + +struct stm32_1wire_priv_s +{ + const struct stm32_1wire_config_s *config; /* Port configuration */ + volatile int refs; /* Referernce count */ + sem_t sem_excl; /* Mutual exclusion semaphore */ + sem_t sem_isr; /* Interrupt wait semaphore */ + int baud; /* Baud rate */ + const struct stm32_1wire_msg_s *msgs; /* Messages data */ + uint8_t *byte; /* Current byte */ + uint8_t bit; /* Current bit */ + volatile int result; /* Exchange result */ +}; + +/* 1-Wire device, Instance */ + +struct stm32_1wire_inst_s +{ + const struct onewire_ops_s *ops; /* Standard 1-Wire operations */ + struct stm32_1wire_priv_s *priv; /* Common driver private data structure */ +}; + +/**************************************************************************** + * Private Function Prototypes + ****************************************************************************/ + +static inline uint32_t stm32_1wire_in(struct stm32_1wire_priv_s *priv, int offset); +static inline void stm32_1wire_out(struct stm32_1wire_priv_s *priv, int offset, uint32_t value); +static int stm32_1wire_recv(struct stm32_1wire_priv_s *priv); +static void stm32_1wire_send(struct stm32_1wire_priv_s *priv, int ch); +static void stm32_1wire_set_baud(struct stm32_1wire_priv_s *priv); +static void stm32_1wire_set_apb_clock(struct stm32_1wire_priv_s *priv, bool on); +static int stm32_1wire_init(FAR struct stm32_1wire_priv_s *priv); +static int stm32_1wire_deinit(FAR struct stm32_1wire_priv_s *priv); +static inline void stm32_1wire_sem_init(FAR struct stm32_1wire_priv_s *priv); +static inline void stm32_1wire_sem_destroy(FAR struct stm32_1wire_priv_s *priv); +static inline void stm32_1wire_sem_wait(FAR struct stm32_1wire_priv_s *priv); +static inline void stm32_1wire_sem_post(FAR struct stm32_1wire_priv_s *priv); +static int stm32_1wire_process(struct stm32_1wire_priv_s *priv, + FAR const struct stm32_1wire_msg_s *msgs, int count); +static int stm32_1wire_isr(struct stm32_1wire_priv_s *priv); + +#ifdef CONFIG_STM32_1WIRE1 +static int up_interrupt_1wire1(int irq, void *context); +#endif +#ifdef CONFIG_STM32_1WIRE2 +static int up_interrupt_1wire2(int irq, void *context); +#endif +#ifdef CONFIG_STM32_1WIRE3 +static int up_interrupt_1wire3(int irq, void *context); +#endif +#ifdef CONFIG_STM32_1WIRE4 +static int up_interrupt_1wire4(int irq, void *context); +#endif +#ifdef CONFIG_STM32_1WIRE5 +static int up_interrupt_1wire5(int irq, void *context); +#endif +#ifdef CONFIG_STM32_1WIRE6 +static int up_interrupt_1wire6(int irq, void *context); +#endif +#ifdef CONFIG_STM32_1WIRE7 +static int up_interrupt_1wire7(int irq, void *context); +#endif +#ifdef CONFIG_STM32_1WIRE8 +static int up_interrupt_1wire8(int irq, void *context); +#endif + +static int stm32_1wire_reset(FAR struct onewire_dev_s *dev); +static int stm32_1wire_write(FAR struct onewire_dev_s *dev, + const uint8_t *buffer, int buflen); +static int stm32_1wire_read(FAR struct onewire_dev_s *dev, uint8_t *buffer, + int buflen); +static int stm32_1wire_exchange(FAR struct onewire_dev_s *dev, bool reset, + const uint8_t *txbuffer, int txbuflen, + uint8_t *rxbuffer, int rxbuflen); + +/**************************************************************************** + * Private Data + ****************************************************************************/ + +/* 1-Wire device structures */ + +#ifdef CONFIG_STM32_1WIRE1 + +static const struct stm32_1wire_config_s stm32_1wire1_config = +{ + .usartbase = STM32_USART1_BASE, + .apbclock = STM32_PCLK2_FREQUENCY, + .data_pin = PIN_OPENDRAIN(GPIO_USART1_TX), + .irq = STM32_IRQ_USART1, + .vector = up_interrupt_1wire1, +}; + +static struct stm32_1wire_priv_s stm32_1wire1_priv = +{ + .config = &stm32_1wire1_config, + .refs = 0, + .msgs = NULL +}; + +#endif + +#ifdef CONFIG_STM32_1WIRE2 + +static const struct stm32_1wire_config_s stm32_1wire2_config = +{ + .usartbase = STM32_USART2_BASE, + .apbclock = STM32_PCLK1_FREQUENCY, + .data_pin = PIN_OPENDRAIN(GPIO_USART2_TX), + .irq = STM32_IRQ_USART2, + .vector = up_interrupt_1wire2, +}; + +static struct stm32_1wire_priv_s stm32_1wire2_priv = +{ + .config = &stm32_1wire2_config, + .refs = 0, + .msgs = NULL +}; + +#endif + +#ifdef CONFIG_STM32_1WIRE3 + +static const struct stm32_1wire_config_s stm32_1wire3_config = +{ + .usartbase = STM32_USART3_BASE, + .apbclock = STM32_PCLK1_FREQUENCY, + .data_pin = PIN_OPENDRAIN(GPIO_USART3_TX), + .irq = STM32_IRQ_USART3, + .vector = up_interrupt_1wire3, +}; + +static struct stm32_1wire_priv_s stm32_1wire3_priv = +{ + .config = &stm32_1wire3_config, + .refs = 0, + .msgs = NULL +}; + +#endif + +#ifdef CONFIG_STM32_1WIRE4 + +static const struct stm32_1wire_config_s stm32_1wire4_config = +{ + .usartbase = STM32_USART4_BASE, + .apbclock = STM32_PCLK1_FREQUENCY, + .data_pin = PIN_OPENDRAIN(GPIO_USART4_TX), + .irq = STM32_IRQ_USART4, + .vector = up_interrupt_1wire4, +}; + +static struct stm32_1wire_priv_s stm32_1wire4_priv = +{ + .config = &stm32_1wire4_config, + .refs = 0, + .msgs = NULL +}; + +#endif + +#ifdef CONFIG_STM32_1WIRE5 + +static const struct stm32_1wire_config_s stm32_1wire5_config = +{ + .usartbase = STM32_USART5_BASE, + .apbclock = STM32_PCLK1_FREQUENCY, + .data_pin = PIN_OPENDRAIN(GPIO_USART5_TX), + .irq = STM32_IRQ_USART5, + .vector = up_interrupt_1wire5, +}; + +static struct stm32_1wire_priv_s stm32_1wire5_priv = +{ + .config = &stm32_1wire5_config, + .refs = 0, + .msgs = NULL +}; + +#endif + +#ifdef CONFIG_STM32_1WIRE6 + +static const struct stm32_1wire_config_s stm32_1wire6_config = +{ + .usartbase = STM32_USART6_BASE, + .apbclock = STM32_PCLK2_FREQUENCY, + .data_pin = PIN_OPENDRAIN(GPIO_USART6_TX), + .irq = STM32_IRQ_USART6, + .vector = up_interrupt_1wire6, +}; + +static struct stm32_1wire_priv_s stm32_1wire6_priv = +{ + .config = &stm32_1wire6_config, + .refs = 0, + .msgs = NULL +}; + +#endif + +#ifdef CONFIG_STM32_1WIRE7 + +static const struct stm32_1wire_config_s stm32_1wire7_config = +{ + .usartbase = STM32_USART7_BASE, + .apbclock = STM32_PCLK1_FREQUENCY, + .data_pin = PIN_OPENDRAIN(GPIO_USART7_TX), + .irq = STM32_IRQ_USART7, + .vector = up_interrupt_1wire7, +}; + +static struct stm32_1wire_priv_s stm32_1wire7_priv = +{ + .config = &stm32_1wire7_config, + .refs = 0, + .msgs = NULL +}; + +#endif + +#ifdef CONFIG_STM32_1WIRE8 + +static const struct stm32_1wire_config_s stm32_1wire8_config = +{ + .usartbase = STM32_USART8_BASE, + .apbclock = STM32_PCLK1_FREQUENCY, + .data_pin = PIN_OPENDRAIN(GPIO_USART8_TX), + .irq = STM32_IRQ_USART8, + .vector = up_interrupt_1wire8, +}; + +static struct stm32_1wire_priv_s stm32_1wire8_priv = +{ + .config = &stm32_1wire8_config, + .refs = 0, + .msgs = NULL +}; + +#endif + +/* Device Structures, Instantiation */ + +static const struct onewire_ops_s stm32_1wire_ops = +{ + .reset = stm32_1wire_reset, + .write = stm32_1wire_write, + .read = stm32_1wire_read, + .exchange = stm32_1wire_exchange +}; + +/**************************************************************************** + * Private Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: stm32_1wire_in + ****************************************************************************/ + +static inline uint32_t stm32_1wire_in(struct stm32_1wire_priv_s *priv, + int offset) +{ + return getreg32(priv->config->usartbase + offset); +} + +/**************************************************************************** + * Name: stm32_1wire_out + ****************************************************************************/ + +static inline void stm32_1wire_out(struct stm32_1wire_priv_s *priv, + int offset, uint32_t value) +{ + putreg32(value, priv->config->usartbase + offset); +} + +/**************************************************************************** + * Name: stm32_1wire_recv + * + * Description: + * This method will recv one byte on the USART + * + ****************************************************************************/ + +static int stm32_1wire_recv(struct stm32_1wire_priv_s *priv) +{ + return stm32_1wire_in(priv, STM32_USART_RDR_OFFSET) & 0xff; +} + +/**************************************************************************** + * Name: stm32_1wire_send + * + * Description: + * This method will send one byte on the USART + * + ****************************************************************************/ + +static void stm32_1wire_send(struct stm32_1wire_priv_s *priv, int ch) +{ + stm32_1wire_out(priv, STM32_USART_TDR_OFFSET, (uint32_t)(ch & 0xff)); +} + +/**************************************************************************** + * Name: stm32_1wire_set_baud + * + * Description: + * Set the serial line baud. + * + ****************************************************************************/ + +static void stm32_1wire_set_baud(struct stm32_1wire_priv_s *priv) +{ +#if defined(CONFIG_STM32_STM32F30XX) || defined(CONFIG_STM32_STM32F37XX) + /* This first implementation is for U[S]ARTs that support oversampling + * by 8 in additional to the standard oversampling by 16. + */ + + uint32_t usartdiv8; + uint32_t cr1; + uint32_t brr; + + /* In case of oversampling by 8, the equation is: + * + * baud = 2 * fCK / usartdiv8 + * usartdiv8 = 2 * fCK / baud + */ + + usartdiv8 = ((priv->config->apbclock << 1) + (priv->baud >> 1)) / priv->baud; + + /* Baud rate for standard USART (SPI mode included): + * + * In case of oversampling by 16, the equation is: + * baud = fCK / usartdiv16 + * usartdiv16 = fCK / baud + * = 2 * usartdiv8 + */ + + /* Use oversamply by 8 only if the divisor is small. But what is small? */ + + cr1 = stm32_1wire_in(priv, STM32_USART_CR1_OFFSET); + if (usartdiv8 > 100) + { + /* Use usartdiv16 */ + + brr = (usartdiv8 + 1) >> 1; + + /* Clear oversampling by 8 to enable oversampling by 16 */ + + cr1 &= ~USART_CR1_OVER8; + } + else + { + DEBUGASSERT(usartdiv8 >= 8); + + /* Perform mysterious operations on bits 0-3 */ + + brr = ((usartdiv8 & 0xfff0) | ((usartdiv8 & 0x000f) >> 1)); + + /* Set oversampling by 8 */ + + cr1 |= USART_CR1_OVER8; + } + + stm32_1wire_out(priv, STM32_USART_CR1_OFFSET, cr1); + stm32_1wire_out(priv, STM32_USART_BRR_OFFSET, brr); + +#else + + /* This second implementation is for U[S]ARTs that support fractional + * dividers. + */ + + uint32_t usartdiv32; + uint32_t mantissa; + uint32_t fraction; + uint32_t brr; + + /* Configure the USART Baud Rate. The baud rate for the receiver and + * transmitter (Rx and Tx) are both set to the same value as programmed + * in the Mantissa and Fraction values of USARTDIV. + * + * baud = fCK / (16 * usartdiv) + * usartdiv = fCK / (16 * baud) + * + * Where fCK is the input clock to the peripheral (PCLK1 for USART2, 3, 4, 5 + * or PCLK2 for USART1) + * + * First calculate (NOTE: all stand baud values are even so dividing by two + * does not lose precision): + * + * usartdiv32 = 32 * usartdiv = fCK / (baud/2) + */ + + usartdiv32 = priv->config->apbclock / (priv->baud >> 1); + + /* The mantissa part is then */ + + mantissa = usartdiv32 >> 5; + brr = mantissa << USART_BRR_MANT_SHIFT; + + /* The fractional remainder (with rounding) */ + + fraction = (usartdiv32 - (mantissa << 5) + 1) >> 1; + brr |= fraction << USART_BRR_FRAC_SHIFT; + stm32_1wire_out(priv, STM32_USART_BRR_OFFSET, brr); +#endif +} + +/**************************************************************************** + * Name: stm32_1wire_set_apb_clock + * + * Description: + * Enable or disable APB clock for the USART peripheral + * + * Input parameters: + * priv - A reference to the 1-Wire driver state structure + * on - Enable clock if 'on' is 'true' and disable if 'false' + * + ****************************************************************************/ + +static void stm32_1wire_set_apb_clock(struct stm32_1wire_priv_s *priv, + bool on) +{ + const struct stm32_1wire_config_s *config = priv->config; + uint32_t rcc_en; + uint32_t regaddr; + + /* Determine which USART to configure */ + + switch (config->usartbase) + { + default: + return; + +#ifdef CONFIG_STM32_1WIRE1 + case STM32_USART1_BASE: + rcc_en = RCC_APB2ENR_USART1EN; + regaddr = STM32_RCC_APB2ENR; + break; +#endif +#ifdef CONFIG_STM32_1WIRE2 + case STM32_USART2_BASE: + rcc_en = RCC_APB1ENR_USART2EN; + regaddr = STM32_RCC_APB1ENR; + break; +#endif +#ifdef CONFIG_STM32_1WIRE3 + case STM32_USART3_BASE: + rcc_en = RCC_APB1ENR_USART3EN; + regaddr = STM32_RCC_APB1ENR; + break; +#endif +#ifdef CONFIG_STM32_UART4 + case STM32_UART4_BASE: + rcc_en = RCC_APB1ENR_UART4EN; + regaddr = STM32_RCC_APB1ENR; + break; +#endif +#ifdef CONFIG_STM32_UART5 + case STM32_UART5_BASE: + rcc_en = RCC_APB1ENR_UART5EN; + regaddr = STM32_RCC_APB1ENR; + break; +#endif +#ifdef CONFIG_STM32_1WIRE6 + case STM32_USART6_BASE: + rcc_en = RCC_APB2ENR_USART6EN; + regaddr = STM32_RCC_APB2ENR; + break; +#endif +#ifdef CONFIG_STM32_UART7 + case STM32_UART7_BASE: + rcc_en = RCC_APB1ENR_UART7EN; + regaddr = STM32_RCC_APB1ENR; + break; +#endif +#ifdef CONFIG_STM32_UART8 + case STM32_UART8_BASE: + rcc_en = RCC_APB1ENR_UART8EN; + regaddr = STM32_RCC_APB1ENR; + break; +#endif + } + + /* Enable/disable APB 1/2 clock for USART */ + + if (on) + { + modifyreg32(regaddr, 0, rcc_en); + } + else + { + modifyreg32(regaddr, rcc_en, 0); + } +} + +/**************************************************************************** + * Name: stm32_1wire_init + * + * Description: + * Setup the 1-Wire hardware, ready for operation with defaults + * + ****************************************************************************/ + +static int stm32_1wire_init(FAR struct stm32_1wire_priv_s *priv) +{ + const struct stm32_1wire_config_s *config = priv->config; + uint32_t regval; + int ret; + + /* Enable USART APB1/2 clock */ + + stm32_1wire_set_apb_clock(priv, true); + + /* Configure CR2 */ + /* Clear STOP, CLKEN, CPOL, CPHA, LBCL, and interrupt enable bits */ + /* Set LBDIE */ + + regval = stm32_1wire_in(priv, STM32_USART_CR2_OFFSET); + regval &= ~(USART_CR2_STOP_MASK | USART_CR2_CLKEN | USART_CR2_CPOL | + USART_CR2_CPHA | USART_CR2_LBCL | USART_CR2_LBDIE); + regval |= USART_CR2_LBDIE; + stm32_1wire_out(priv, STM32_USART_CR2_OFFSET, regval); + + /* Configure CR1 */ + /* Clear TE, REm, all interrupt enable bits, PCE, PS and M */ + /* Set RXNEIE */ + + regval = stm32_1wire_in(priv, STM32_USART_CR1_OFFSET); + regval &= ~(USART_CR1_TE | USART_CR1_RE | USART_CR1_ALLINTS | + USART_CR1_PCE | USART_CR1_PS | USART_CR1_M); + regval |= USART_CR1_RXNEIE; + stm32_1wire_out(priv, STM32_USART_CR1_OFFSET, regval); + + /* Configure CR3 */ + /* Clear CTSE, RTSE, and all interrupt enable bits */ + /* Set ONEBIT, HDSEL and EIE */ + + regval = stm32_1wire_in(priv, STM32_USART_CR3_OFFSET); + regval &= ~(USART_CR3_CTSIE | USART_CR3_CTSE | USART_CR3_RTSE | USART_CR3_EIE); + regval |= (USART_CR3_ONEBIT | USART_CR3_HDSEL | USART_CR3_EIE); + stm32_1wire_out(priv, STM32_USART_CR3_OFFSET, regval); + + /* Set baud rate */ + + priv->baud = RESET_BAUD; + stm32_1wire_set_baud(priv); + + /* Enable Rx, Tx, and the USART */ + + regval = stm32_1wire_in(priv, STM32_USART_CR1_OFFSET); + regval |= (USART_CR1_UE | USART_CR1_TE | USART_CR1_RE); + stm32_1wire_out(priv, STM32_USART_CR1_OFFSET, regval); + + /* Configure pins for USART use */ + + stm32_configgpio(config->data_pin); + + ret = irq_attach(config->irq, config->vector); + if (ret == OK) + { + up_enable_irq(config->irq); + } + + return ret; +} + +/**************************************************************************** + * Name: stm32_1wire_deinit + * + * Description: + * Shutdown the 1-Wire hardware + * + ****************************************************************************/ + +static int stm32_1wire_deinit(FAR struct stm32_1wire_priv_s *priv) +{ + const struct stm32_1wire_config_s *config = priv->config; + uint32_t regval; + + up_disable_irq(config->irq); + irq_detach(config->irq); + + /* Unconfigure GPIO pins */ + + stm32_unconfiggpio(config->data_pin); + + /* Disable RXNEIE, Rx, Tx, and the USART */ + + regval = stm32_1wire_in(priv, STM32_USART_CR1_OFFSET); + regval &= ~(USART_CR1_UE | USART_CR1_TE | USART_CR1_RE | USART_CR1_RXNEIE); + stm32_1wire_out(priv, STM32_USART_CR1_OFFSET, regval); + + /* Clear LBDIE */ + + regval = stm32_1wire_in(priv, STM32_USART_CR2_OFFSET); + regval &= ~USART_CR2_LBDIE; + stm32_1wire_out(priv, STM32_USART_CR2_OFFSET, regval); + + /* Clear ONEBIT, HDSEL and EIE */ + + regval = stm32_1wire_in(priv, STM32_USART_CR3_OFFSET); + regval &= ~(USART_CR3_ONEBIT | USART_CR3_HDSEL | USART_CR3_EIE); + stm32_1wire_out(priv, STM32_USART_CR3_OFFSET, regval); + + /* Disable USART APB1/2 clock */ + + stm32_1wire_set_apb_clock(priv, false); + + return OK; +} + +/**************************************************************************** + * Name: stm32_1wire_sem_init + * + * Description: + * Initialize semaphores + * + ****************************************************************************/ + +static inline void stm32_1wire_sem_init(FAR struct stm32_1wire_priv_s *priv) +{ + sem_init(&priv->sem_excl, 0, 1); + sem_init(&priv->sem_isr, 0, 0); +} + +/**************************************************************************** + * Name: stm32_1wire_sem_destroy + * + * Description: + * Destroy semaphores. + * + ****************************************************************************/ + +static inline void stm32_1wire_sem_destroy(FAR struct stm32_1wire_priv_s *priv) +{ + sem_destroy(&priv->sem_excl); + sem_destroy(&priv->sem_isr); +} + +/**************************************************************************** + * Name: stm32_1wire_sem_wait + * + * Description: + * Take the exclusive access, waiting as necessary + * + ****************************************************************************/ + +static inline void stm32_1wire_sem_wait(FAR struct stm32_1wire_priv_s *priv) +{ + while (sem_wait(&priv->sem_excl) != 0) + { + ASSERT(errno == EINTR); + } +} + +/**************************************************************************** + * Name: stm32_1wire_sem_post + * + * Description: + * Release the mutual exclusion semaphore + * + ****************************************************************************/ + +static inline void stm32_1wire_sem_post(FAR struct stm32_1wire_priv_s *priv) +{ + sem_post(&priv->sem_excl); +} + +/**************************************************************************** + * Name: stm32_1wire_exec + * + * Description: + * Execute 1-Wire task + ****************************************************************************/ +static int stm32_1wire_process(struct stm32_1wire_priv_s *priv, + FAR const struct stm32_1wire_msg_s *msgs, + int count) +{ + irqstate_t irqs; + struct timespec abstime; + int ret; + + /* Lock out other clients */ + + stm32_1wire_sem_wait(priv); + + priv->result = ERROR; + + for (int indx = 0; indx < count; indx++) + { + switch (msgs[indx].task) + { + case ONEWIRETASK_NONE: + priv->result = OK; + break; + + case ONEWIRETASK_RESET: + /* Set baud rate */ + + priv->baud = RESET_BAUD; + stm32_1wire_set_baud(priv); + + /* Atomic */ + + irqs = irqsave(); + priv->msgs = &msgs[indx]; + stm32_1wire_send(priv, RESET_TX); + irqrestore(irqs); + + /* Wait */ + + clock_gettime(CLOCK_REALTIME, &abstime); + abstime.tv_sec += BUS_TIMEOUT; + sem_timedwait(&priv->sem_isr, &abstime); /* break on timeout if TX line closed to GND */ + break; + + case ONEWIRETASK_WRITE: + /* Set baud rate */ + + priv->baud = TIMESLOT_BAUD; + stm32_1wire_set_baud(priv); + + /* Atomic */ + + irqs = irqsave(); + priv->msgs = &msgs[indx]; + priv->byte = priv->msgs->buffer; + priv->bit = 0; + stm32_1wire_send(priv, (*priv->byte & (1 << priv->bit)) ? WRITE_TX1 : WRITE_TX0); + irqrestore(irqs); + + /* Wait */ + + clock_gettime(CLOCK_REALTIME, &abstime); + abstime.tv_sec += BUS_TIMEOUT; + sem_timedwait(&priv->sem_isr, &abstime); /* break on timeout if TX line closed to GND */ + break; + + case ONEWIRETASK_READ: + /* Set baud rate */ + + priv->baud = TIMESLOT_BAUD; + stm32_1wire_set_baud(priv); + + /* Atomic */ + + irqs = irqsave(); + priv->msgs = &msgs[indx]; + priv->byte = priv->msgs->buffer; + priv->bit = 0; + stm32_1wire_send(priv, READ_TX); + irqrestore(irqs); + + /* Wait */ + + clock_gettime(CLOCK_REALTIME, &abstime); + abstime.tv_sec += BUS_TIMEOUT; + sem_timedwait(&priv->sem_isr, &abstime); /* break on timeout if TX line closed to GND */ + break; + } + + if (priv->result != OK) /* break if error */ + { + break; + } + } + + /* Atomic */ + + irqs = irqsave(); + priv->msgs = NULL; + ret = priv->result; + irqrestore(irqs); + + /* Release the port for re-use by other clients */ + + stm32_1wire_sem_post(priv); + + return ret; +} + +/**************************************************************************** + * Name: stm32_1wire_isr + * + * Description: + * Common Interrupt Service Routine + ****************************************************************************/ + +static int stm32_1wire_isr(struct stm32_1wire_priv_s *priv) +{ + uint32_t sr, dr; + + /* Get the masked USART status word. */ + + sr = stm32_1wire_in(priv, STM32_USART_SR_OFFSET); + + /* Receive loop */ + + if ((sr & USART_SR_RXNE) != 0) + { + dr = stm32_1wire_recv(priv); + + if (priv->msgs != NULL) + { + switch (priv->msgs->task) + { + case ONEWIRETASK_NONE: + break; + + case ONEWIRETASK_RESET: + priv->msgs = NULL; + priv->result = (dr != RESET_TX) ? OK : -ENODEV; /* if read RESET_TX then no slave */ + sem_post(&priv->sem_isr); + break; + + case ONEWIRETASK_WRITE: + if (++priv->bit >= 8) + { + priv->bit = 0; + if (++priv->byte >= (priv->msgs->buffer + priv->msgs->buflen)) /* Done? */ + { + priv->msgs = NULL; + priv->result = OK; + sem_post(&priv->sem_isr); + break; + } + } + + /* Send next bit */ + + stm32_1wire_send(priv, (*priv->byte & (1 << priv->bit)) ? WRITE_TX1 : WRITE_TX0); + break; + + case ONEWIRETASK_READ: + if (dr == READ_RX1) + { + *priv->byte |= (1 << priv->bit); + } + else + { + *priv->byte &= ~(1 << priv->bit); + } + + if (++priv->bit >= 8) + { + priv->bit = 0; + if (++priv->byte >= (priv->msgs->buffer + priv->msgs->buflen)) /* Done? */ + { + priv->msgs = NULL; + priv->result = OK; + sem_post(&priv->sem_isr); + break; + } + } + + /* Recv next bit */ + + stm32_1wire_send(priv, READ_TX); + break; + } + } + } + + /* Bounce check. */ + + if ((sr & (USART_SR_ORE | USART_SR_NE | USART_SR_FE)) != 0) + { +#if defined(CONFIG_STM32_STM32F30XX) || defined(CONFIG_STM32_STM32F37XX) + /* These errors are cleared by writing the corresponding bit to the + * interrupt clear register (ICR). + */ + + stm32_1wire_out(priv, STM32_USART_ICR_OFFSET, + (USART_ICR_NCF | USART_ICR_ORECF | USART_ICR_FECF)); +#else + /* If an error occurs, read from DR to clear the error (data has + * been lost). If ORE is set along with RXNE then it tells you + * that the byte *after* the one in the data register has been + * lost, but the data register value is correct. That case will + * be handled above if interrupts are enabled. Otherwise, that + * good byte will be lost. + */ + + (void)stm32_1wire_recv(priv); +#endif + + if (priv->msgs != NULL) + { + priv->msgs = NULL; + priv->result = ERROR; + sem_post(&priv->sem_isr); + } + } + + /* Bounce check. LIN break detection */ + + if ((sr & USART_SR_LBD) != 0) + { + sr &= ~USART_SR_LBD; + stm32_1wire_out(priv, STM32_USART_SR_OFFSET, sr); + + if (priv->msgs != NULL) + { + priv->msgs = NULL; + priv->result = ERROR; + sem_post(&priv->sem_isr); + } + } + + return OK; +} + +#ifdef CONFIG_STM32_1WIRE1 +static int up_interrupt_1wire1(int irq, void *context) +{ + return stm32_1wire_isr(&stm32_1wire1_priv); +} +#endif +#ifdef CONFIG_STM32_1WIRE2 +static int up_interrupt_1wire2(int irq, void *context) +{ + return stm32_1wire_isr(&stm32_1wire2_priv); +} +#endif +#ifdef CONFIG_STM32_1WIRE3 +static int up_interrupt_1wire3(int irq, void *context) +{ + return stm32_1wire_isr(&stm32_1wire3_priv); +} +#endif +#ifdef CONFIG_STM32_1WIRE4 +static int up_interrupt_1wire4(int irq, void *context) +{ + return stm32_1wire_isr(&stm32_1wire4_priv); +} +#endif +#ifdef CONFIG_STM32_1WIRE5 +static int up_interrupt_1wire5(int irq, void *context) +{ + return stm32_1wire_isr(&stm32_1wire5_priv); +} +#endif +#ifdef CONFIG_STM32_1WIRE6 +static int up_interrupt_1wire6(int irq, void *context) +{ + return stm32_1wire_isr(&stm32_1wire6_priv); +} +#endif +#ifdef CONFIG_STM32_1WIRE7 +static int up_interrupt_1wire7(int irq, void *context) +{ + return stm32_1wire_isr(&stm32_1wire7_priv); +} +#endif +#ifdef CONFIG_STM32_1WIRE8 +static int up_interrupt_1wire8(int irq, void *context) +{ + return stm32_1wire_isr(&stm32_1wire8_priv); +} +#endif + +/**************************************************************************** + * Name: stm32_1wire_reset + * + * Description: + * 1-Wire reset pulse and presence detect. + * + ****************************************************************************/ + +static int stm32_1wire_reset(FAR struct onewire_dev_s *dev) +{ + struct stm32_1wire_priv_s *priv = ((struct stm32_1wire_inst_s *)dev)->priv; + const struct stm32_1wire_msg_s msgs[1] = + { + [0].task = ONEWIRETASK_RESET + }; + + return stm32_1wire_process(priv, msgs, 1); +} + +/**************************************************************************** + * Name: stm32_1wire_write + * + * Description: + * Write 1-Wire data + * + ****************************************************************************/ + +static int stm32_1wire_write(FAR struct onewire_dev_s *dev, const uint8_t *buffer, + int buflen) +{ + struct stm32_1wire_priv_s *priv = ((struct stm32_1wire_inst_s *)dev)->priv; + const struct stm32_1wire_msg_s msgs[1] = + { + [0].task = ONEWIRETASK_WRITE, + [0].buffer = (uint8_t *)buffer, + [0].buflen = buflen + }; + + return stm32_1wire_process(priv, msgs, 1); +} + +/**************************************************************************** + * Name: stm32_1wire_read + * + * Description: + * Read 1-Wire data + * + ****************************************************************************/ + +static int stm32_1wire_read(FAR struct onewire_dev_s *dev, uint8_t *buffer, int buflen) +{ + struct stm32_1wire_priv_s *priv = ((struct stm32_1wire_inst_s *)dev)->priv; + const struct stm32_1wire_msg_s msgs[1] = + { + [0].task = ONEWIRETASK_READ, + [0].buffer = buffer, + [0].buflen = buflen + }; + + return stm32_1wire_process(priv, msgs, 1); +} + +/**************************************************************************** + * Name: stm32_1wire_exchange + * + * Description: + * 1-Wire reset pulse and presence detect, + * Write 1-Wire data, + * Read 1-Wire data + * + ****************************************************************************/ + +static int stm32_1wire_exchange(FAR struct onewire_dev_s *dev, bool reset, + const uint8_t *txbuffer, int txbuflen, + uint8_t *rxbuffer, int rxbuflen) + +{ + int result = ERROR; + struct stm32_1wire_priv_s *priv = ((struct stm32_1wire_inst_s *)dev)->priv; + + if (reset) + { + const struct stm32_1wire_msg_s msgs[3] = + { + [0].task = ONEWIRETASK_RESET, + + [1].task = ONEWIRETASK_WRITE, + [1].buffer = (uint8_t *)txbuffer, + [1].buflen = txbuflen, + + [2].task = ONEWIRETASK_READ, + [2].buffer = rxbuffer, + [2].buflen = rxbuflen + }; + + result = stm32_1wire_process(priv, msgs, 3); + } + else + { + const struct stm32_1wire_msg_s msgs[2] = + { + [0].task = ONEWIRETASK_WRITE, + [0].buffer = (uint8_t *)txbuffer, + [0].buflen = txbuflen, + + [1].task = ONEWIRETASK_READ, + [1].buffer = rxbuffer, + [1].buflen = rxbuflen + }; + + result = stm32_1wire_process(priv, msgs, 2); + } + return result; +} + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: up_1wireinitialize + * + * Description: + * Initialize one 1-Wire port + * + ****************************************************************************/ + +FAR struct onewire_dev_s *up_1wireinitialize(int port) +{ + struct stm32_1wire_priv_s *priv = NULL; /* Private data of device with multiple instances */ + struct stm32_1wire_inst_s *inst = NULL; /* Device, single instance */ + int irqs; + + /* Get 1-Wire private structure */ + + switch (port) + { +#ifdef CONFIG_STM32_1WIRE1 + case 1: + priv = &stm32_1wire1_priv; + break; +#endif +#ifdef CONFIG_STM32_1WIRE2 + case 2: + priv = &stm32_1wire2_priv; + break; +#endif +#ifdef CONFIG_STM32_1WIRE3 + case 3: + priv = &stm32_1wire3_priv; + break; +#endif +#ifdef CONFIG_STM32_1WIRE4 + case 4: + priv = &stm32_1wire4_priv; + break; +#endif +#ifdef CONFIG_STM32_1WIRE5 + case 5: + priv = &stm32_1wire5_priv; + break; +#endif +#ifdef CONFIG_STM32_1WIRE6 + case 6: + priv = &stm32_1wire6_priv; + break; +#endif +#ifdef CONFIG_STM32_1WIRE7 + case 7: + priv = &stm32_1wire7_priv; + break; +#endif +#ifdef CONFIG_STM32_1WIRE8 + case 8: + priv = &stm32_1wire8_priv; + break; +#endif + default: + return NULL; + } + + /* Allocate instance */ + + if (!(inst = kmm_malloc(sizeof(struct stm32_1wire_inst_s)))) + { + return NULL; + } + + /* Initialize instance */ + + inst->ops = &stm32_1wire_ops; + inst->priv = priv; + + /* Initialize private data for the first time, increment reference count, + * power-up hardware and configure GPIOs. + */ + + irqs = irqsave(); + + if (priv->refs++ == 0) + { + stm32_1wire_sem_init(priv); + stm32_1wire_init(priv); + } + + irqrestore(irqs); + return (struct onewire_dev_s *)inst; +} + +/**************************************************************************** + * Name: up_1wireuninitialize + * + * Description: + * Uninitialize an 1-Wire port + * + ****************************************************************************/ + +int up_1wireuninitialize(FAR struct onewire_dev_s *dev) +{ + struct stm32_1wire_priv_s *priv = ((struct stm32_1wire_inst_s *)dev)->priv; + int irqs; + + ASSERT(dev); + + /* Decrement reference count and check for underflow */ + + if (priv->refs == 0) + { + return ERROR; + } + + irqs = irqsave(); + + if (--priv->refs) + { + irqrestore(irqs); + kmm_free(priv); + return OK; + } + + irqrestore(irqs); + + /* Disable power and other HW resource (GPIO's) */ + + stm32_1wire_deinit(priv); + + /* Release unused resources */ + + stm32_1wire_sem_destroy(priv); + + /* Free instance */ + + kmm_free(dev); + return OK; +} diff --git a/arch/arm/src/stm32/stm32_1wire.h b/arch/arm/src/stm32/stm32_1wire.h new file mode 100644 index 0000000000..3052849ac0 --- /dev/null +++ b/arch/arm/src/stm32/stm32_1wire.h @@ -0,0 +1,113 @@ +/************************************************************************************ + * arch/arm/src/stm32/stm32_1wire.h + * + * Copyright (C) 2016 Aleksandr Vyhovanec. All rights reserved. + * Author: Aleksandr Vyhovanec + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ************************************************************************************/ + +#ifndef __ARCH_ARM_SRC_STM32_STM32_1WIRE_H +#define __ARCH_ARM_SRC_STM32_STM32_1WIRE_H + +/************************************************************************************ + * Included Files + ************************************************************************************/ + +#include + +#include "chip.h" + +#if defined(CONFIG_STM32_STM32L15XX) +# include "chip/stm32l15xxx_uart.h" +#elif defined(CONFIG_STM32_STM32F10XX) +# include "chip/stm32f10xxx_uart.h" +#elif defined(CONFIG_STM32_STM32F20XX) +# include "chip/stm32f20xxx_uart.h" +#elif defined(CONFIG_STM32_STM32F30XX) || defined(CONFIG_STM32_STM32F37XX) +# include "chip/stm32f30xxx_uart.h" +#elif defined(CONFIG_STM32_STM32F40XX) +# include "chip/stm32f40xxx_uart.h" +#else +# error "Unsupported STM32 UART" +#endif + +/************************************************************************************ + * Pre-processor Definitions + ************************************************************************************/ + +/* Check 1-Wire and U(S)ART conflicting */ + +#if defined(CONFIG_STM32_1WIRE1) && defined(CONFIG_STM32_USART1) +# undef CONFIG_STM32_1WIRE1 +#endif +#if defined(CONFIG_STM32_1WIRE2) && defined(CONFIG_STM32_USART2) +# undef CONFIG_STM32_1WIRE2 +#endif +#if defined(CONFIG_STM32_1WIRE3) && defined(CONFIG_STM32_USART3) +# undef CONFIG_STM32_1WIRE3 +#endif +#if defined(CONFIG_STM32_1WIRE4) && defined(CONFIG_STM32_UART4) +# undef CONFIG_STM32_1WIRE4 +#endif +#if defined(CONFIG_STM32_1WIRE5) && defined(CONFIG_STM32_UART5) +# undef CONFIG_STM32_1WIRE5 +#endif +#if defined(CONFIG_STM32_1WIRE6) && defined(CONFIG_STM32_USART6) +# undef CONFIG_STM32_1WIRE6 +#endif +#if defined(CONFIG_STM32_1WIRE7) && defined(CONFIG_STM32_UART7) +# undef CONFIG_STM32_1WIRE7 +#endif +#if defined(CONFIG_STM32_1WIRE8) && defined(CONFIG_STM32_UART8) +# undef CONFIG_STM32_1WIRE8 +#endif + +/* Is there a 1-Wire enabled? */ + +#if defined(CONFIG_STM32_1WIRE1) || defined(CONFIG_STM32_1WIRE2) || \ + defined(CONFIG_STM32_1WIRE3) || defined(CONFIG_STM32_1WIRE4) || \ + defined(CONFIG_STM32_1WIRE5) || defined(CONFIG_STM32_1WIRE6) || \ + defined(CONFIG_STM32_1WIRE7) || defined(CONFIG_STM32_1WIRE8) +# define HAVE_1WIRE 1 +#endif + +/************************************************************************************ + * Public Types + ************************************************************************************/ + +/************************************************************************************ + * Public Data + ************************************************************************************/ + +/************************************************************************************ + * Public Functions + ************************************************************************************/ + +#endif /* __ARCH_ARM_SRC_STM32_STM32_1WIRE_H */ diff --git a/include/nuttx/1wire.h b/include/nuttx/1wire.h new file mode 100644 index 0000000000..fe2dd87a7b --- /dev/null +++ b/include/nuttx/1wire.h @@ -0,0 +1,215 @@ +/**************************************************************************** + * include/nuttx/1wire.h + * + * Copyright (C) 2016 Aleksandr Vyhovanec. All rights reserved. + * Author: Aleksandr Vyhovanec + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +#ifndef __INCLUDE_NUTTX_1WIRE_H +#define __INCLUDE_NUTTX_1WIRE_H + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include + +#include + +/**************************************************************************** + * Pre-processor Definitions + ****************************************************************************/ + +/**************************************************************************** + * Name: ONEWIRE_RESET + * + * Description: + * Reset pulse and presence detect. Each write operational will be an 'atomic' + * operation in the sense that any other 1-Wire actions will be serialized + * and pend until this write completes. + * + * Input Parameters: + * dev - Device-specific state data + * + * Returned Value: + * 0: success, <0: A negated errno + * + ****************************************************************************/ + +#define ONEWIRE_RESET(d) ((d)->ops->reset(d)) + +/**************************************************************************** + * Name: ONEWIRE_WRITE + * + * Description: + * Send a block of data on 1-Wire. Each write operational will be an 'atomic' + * operation in the sense that any other 1-Wire actions will be serialized + * and pend until this write completes. + * + * Input Parameters: + * dev - Device-specific state data + * buffer - A pointer to the read-only buffer of data to be written to device + * buflen - The number of bytes to send from the buffer + * + * Returned Value: + * 0: success, <0: A negated errno + * + ****************************************************************************/ + +#define ONEWIRE_WRITE(d,b,l) ((d)->ops->write(d,b,l)) + +/**************************************************************************** + * Name: ONEWIRE_READ + * + * Description: + * Receive a block of data from 1-Wire. Each read operational will be an 'atomic' + * operation in the sense that any other 1-Wire actions will be serialized + * and pend until this read completes. + * + * Input Parameters: + * dev - Device-specific state data + * buffer - A pointer to a buffer of data to receive the data from the device + * buflen - The requested number of bytes to be read + * + * Returned Value: + * 0: success, <0: A negated errno + * + ****************************************************************************/ + +#define ONEWIRE_READ(d,b,l) ((d)->ops->read(d,b,l)) + +/**************************************************************************** + * Name: ONEWIRE_EXCHANGE + * + * Description: + * Reset pulse and presence detect, send a block of data and receive a block + * of data from 1-Wir. Each write operational will be an 'atomic' + * operation in the sense that any other 1-Wire actions will be serialized + * and pend until this write completes. + * + * Input Parameters: + * dev - Device-specific state data + * reset - Reset pulse and presence detect + * txbuffer - A pointer to the read-only buffer of data to be written to device + * txbuflen - The number of bytes to send from the buffer + * rxbuffer - A pointer to a buffer of data to receive the data from the device + * rxbuflen - The requested number of bytes to be read + * + * Returned Value: + * 0: success, <0: A negated errno + * + ****************************************************************************/ + +#define ONEWIRE_EXCHANGE(d,r,tx,tl,rx,rl) ((d)->ops->exchange(d,r,tx,tl,rx,rl)) + +/**************************************************************************** + * Public Types + ****************************************************************************/ + +/* The 1-Wire vtable */ + +struct onewire_dev_s; +struct onewire_ops_s +{ + int (*reset)(FAR struct onewire_dev_s *dev); + int (*write)(FAR struct onewire_dev_s *dev, FAR const uint8_t *buffer, + int buflen); + int (*read)(FAR struct onewire_dev_s *dev, FAR uint8_t *buffer, + int buflen); + int (*exchange)(FAR struct onewire_dev_s *dev, bool reset, + FAR const uint8_t *txbuffer, int txbuflen, + FAR uint8_t *rxbuffer, int rxbuflen); +}; + +/* 1-Wire private data. This structure only defines the initial fields of the + * structure visible to the 1-Wire client. The specific implementation may + * add additional, device specific fields after the vtable. + */ + +struct onewire_dev_s +{ + const struct onewire_ops_s *ops; /* 1-Wire vtable */ +}; + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +#if defined(__cplusplus) +#define EXTERN extern "C" +extern "C" +{ +#else +#define EXTERN extern +#endif + +/**************************************************************************** + * Name: up_1wireinitialize + * + * Description: + * Initialize the selected 1-Wire port. And return a unique instance of struct + * struct onewire_dev_s. This function may be called to obtain multiple + * instances of the interface, each of which may be set up with a + * different frequency and slave address. + * + * Input Parameter: + * Port number (for hardware that has multiple 1-Wire interfaces) + * + * Returned Value: + * Valid 1-Wire device structure reference on succcess; a NULL on failure + * + ****************************************************************************/ + +FAR struct onewire_dev_s *up_1wireinitialize(int port); + +/**************************************************************************** + * Name: up_1wireuninitialize + * + * Description: + * De-initialize the selected 1-Wire port, and power down the device. + * + * Input Parameter: + * Device structure as returned by the up_1wireinitialize() + * + * Returned Value: + * OK on success, ERROR when internal reference count mismatch or dev + * points to invalid hardware device. + * + ****************************************************************************/ + +int up_1wireuninitialize(FAR struct onewire_dev_s *dev); + +#undef EXTERN +#if defined(__cplusplus) +} +#endif + +#endif /* __INCLUDE_NUTTX_1WIRE_H */ -- GitLab From 52c6cb17994cd7ed9c2f6985b635ebfbfc6c2439 Mon Sep 17 00:00:00 2001 From: Aleksandr Vyhovanec Date: Wed, 25 May 2016 09:04:03 -0600 Subject: [PATCH 242/307] Fix typographical naming error in STM32 U[S]ART bit defintiions. --- arch/arm/src/stm32/chip/stm32f20xxx_uart.h | 2 +- arch/arm/src/stm32/chip/stm32f30xxx_uart.h | 26 +++++++++++----------- arch/arm/src/stm32/chip/stm32f40xxx_uart.h | 2 +- arch/arm/src/stm32/chip/stm32l15xxx_uart.h | 2 +- arch/arm/src/stm32/stm32_lowputc.c | 6 ++--- 5 files changed, 19 insertions(+), 19 deletions(-) diff --git a/arch/arm/src/stm32/chip/stm32f20xxx_uart.h b/arch/arm/src/stm32/chip/stm32f20xxx_uart.h index 5e5b4449de..4da5c0af2e 100644 --- a/arch/arm/src/stm32/chip/stm32f20xxx_uart.h +++ b/arch/arm/src/stm32/chip/stm32f20xxx_uart.h @@ -199,7 +199,7 @@ #define USART_CR3_RTSE (1 << 8) /* Bit 8: RTS Enable */ #define USART_CR3_CTSE (1 << 9) /* Bit 9: CTS Enable */ #define USART_CR3_CTSIE (1 << 10) /* Bit 10: CTS Interrupt Enable */ -#define USART_CR1_ONEBIT (1 << 11) /* Bit 11: One sample bit method enable */ +#define USART_CR3_ONEBIT (1 << 11) /* Bit 11: One sample bit method enable */ /* Guard time and prescaler register */ diff --git a/arch/arm/src/stm32/chip/stm32f30xxx_uart.h b/arch/arm/src/stm32/chip/stm32f30xxx_uart.h index 9a55a921a7..5593e6848f 100644 --- a/arch/arm/src/stm32/chip/stm32f30xxx_uart.h +++ b/arch/arm/src/stm32/chip/stm32f30xxx_uart.h @@ -218,19 +218,19 @@ #define USART_CR3_RTSE (1 << 8) /* Bit 8: RTS Enable */ #define USART_CR3_CTSE (1 << 9) /* Bit 9: CTS Enable */ #define USART_CR3_CTSIE (1 << 10) /* Bit 10: CTS Interrupt Enable */ -#define USART_CR1_ONEBIT (1 << 11) /* Bit 11: One sample bit method enable */ -#define USART_CR1_OVRDIS (1 << 12) /* Bit 12: Overrun Disable */ -#define USART_CR1_DDRE (1 << 13) /* Bit 13: DMA Disable on Reception Error */ -#define USART_CR1_DEM (1 << 14) /* Bit 14: Driver enable mode */ -#define USART_CR1_DEP (1 << 15) /* Bit 15: Driver enable polarity selection */ -#define USART_CR1_SCARCNT_SHIFT (17) /* Bit 17-19: Smartcard auto-retry count */ -#define USART_CR1_SCARCNT_MASK (7 << USART_CR1_SCARCNT_SHIFT) -#define USART_CR1_WUS_SHIFT (20) /* Bit 20-21: Wakeup from Stop mode interrupt */ -#define USART_CR1_WUS_MASK (3 << USART_CR1_WUS_SHIFT) -# define USART_CR1_WUS_ADDRMAT (0 << USART_CR1_WUS_SHIFT) /* Active on address match */ -# define USART_CR1_WUS_STARTBIT (2 << USART_CR1_WUS_SHIFT) /* Active on Start bit */ -# define USART_CR1_WUS_RXNE (3 << USART_CR1_WUS_SHIFT) /* Active on RXNE */ -#define USART_CR1_WUFIE (1 << 22) /* Bit 22: Wakeup from Stop mode interrupt enable */ +#define USART_CR3_ONEBIT (1 << 11) /* Bit 11: One sample bit method enable */ +#define USART_CR3_OVRDIS (1 << 12) /* Bit 12: Overrun Disable */ +#define USART_CR3_DDRE (1 << 13) /* Bit 13: DMA Disable on Reception Error */ +#define USART_CR3_DEM (1 << 14) /* Bit 14: Driver enable mode */ +#define USART_CR3_DEP (1 << 15) /* Bit 15: Driver enable polarity selection */ +#define USART_CR3_SCARCNT_SHIFT (17) /* Bit 17-19: Smartcard auto-retry count */ +#define USART_CR3_SCARCNT_MASK (7 << USART_CR3_SCARCNT_SHIFT) +#define USART_CR3_WUS_SHIFT (20) /* Bit 20-21: Wakeup from Stop mode interrupt */ +#define USART_CR3_WUS_MASK (3 << USART_CR3_WUS_SHIFT) +# define USART_CR3_WUS_ADDRMAT (0 << USART_CR3_WUS_SHIFT) /* Active on address match */ +# define USART_CR3_WUS_STARTBIT (2 << USART_CR3_WUS_SHIFT) /* Active on Start bit */ +# define USART_CR3_WUS_RXNE (3 << USART_CR3_WUS_SHIFT) /* Active on RXNE */ +#define USART_CR3_WUFIE (1 << 22) /* Bit 22: Wakeup from Stop mode interrupt enable */ /* Baud Rate Register */ diff --git a/arch/arm/src/stm32/chip/stm32f40xxx_uart.h b/arch/arm/src/stm32/chip/stm32f40xxx_uart.h index 824ea9515b..9693baa507 100644 --- a/arch/arm/src/stm32/chip/stm32f40xxx_uart.h +++ b/arch/arm/src/stm32/chip/stm32f40xxx_uart.h @@ -217,7 +217,7 @@ #define USART_CR3_RTSE (1 << 8) /* Bit 8: RTS Enable */ #define USART_CR3_CTSE (1 << 9) /* Bit 9: CTS Enable */ #define USART_CR3_CTSIE (1 << 10) /* Bit 10: CTS Interrupt Enable */ -#define USART_CR1_ONEBIT (1 << 11) /* Bit 11: One sample bit method enable */ +#define USART_CR3_ONEBIT (1 << 11) /* Bit 11: One sample bit method enable */ /* Guard time and prescaler register */ diff --git a/arch/arm/src/stm32/chip/stm32l15xxx_uart.h b/arch/arm/src/stm32/chip/stm32l15xxx_uart.h index dff9244933..4b85b837c7 100644 --- a/arch/arm/src/stm32/chip/stm32l15xxx_uart.h +++ b/arch/arm/src/stm32/chip/stm32l15xxx_uart.h @@ -191,7 +191,7 @@ #define USART_CR3_RTSE (1 << 8) /* Bit 8: RTS Enable */ #define USART_CR3_CTSE (1 << 9) /* Bit 9: CTS Enable */ #define USART_CR3_CTSIE (1 << 10) /* Bit 10: CTS Interrupt Enable */ -#define USART_CR1_ONEBIT (1 << 11) /* Bit 11: One sample bit method enable */ +#define USART_CR3_ONEBIT (1 << 11) /* Bit 11: One sample bit method enable */ /* Guard time and prescaler register */ diff --git a/arch/arm/src/stm32/stm32_lowputc.c b/arch/arm/src/stm32/stm32_lowputc.c index 4307c45748..fcde5cd477 100644 --- a/arch/arm/src/stm32/stm32_lowputc.c +++ b/arch/arm/src/stm32/stm32_lowputc.c @@ -273,9 +273,9 @@ # define USART_CR3_CLRBITS \ (USART_CR3_EIE | USART_CR3_IREN | USART_CR3_IRLP | USART_CR3_HDSEL | \ USART_CR3_NACK | USART_CR3_SCEN | USART_CR3_DMAR | USART_CR3_DMAT | \ - USART_CR3_RTSE | USART_CR3_CTSE | USART_CR3_CTSIE | USART_CR1_ONEBIT | \ - USART_CR1_OVRDIS | USART_CR1_DDRE | USART_CR1_DEM | USART_CR1_DEP | \ - USART_CR1_SCARCNT_MASK | USART_CR1_WUS_MASK | USART_CR1_WUFIE) + USART_CR3_RTSE | USART_CR3_CTSE | USART_CR3_CTSIE | USART_CR3_ONEBIT | \ + USART_CR3_OVRDIS | USART_CR3_DDRE | USART_CR3_DEM | USART_CR3_DEP | \ + USART_CR3_SCARCNT_MASK | USART_CR3_WUS_MASK | USART_CR3_WUFIE) # else # define USART_CR3_CLRBITS \ (USART_CR3_CTSIE | USART_CR3_CTSE | USART_CR3_RTSE | USART_CR3_EIE) -- GitLab From 05d2036334c4ccdaf53693ace9e769517aae14a6 Mon Sep 17 00:00:00 2001 From: ziggurat29 Date: Wed, 25 May 2016 10:37:38 -0500 Subject: [PATCH 243/307] complete logic in 'create stack' and 'use stack' to support stack coloration. Fix some booboos breaking compatibility with TLS in libc. --- arch/arm/src/common/up_createstack.c | 4 ++-- arch/arm/src/common/up_usestack.c | 8 +++++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/arch/arm/src/common/up_createstack.c b/arch/arm/src/common/up_createstack.c index 12d4575e3d..eb5986835f 100644 --- a/arch/arm/src/common/up_createstack.c +++ b/arch/arm/src/common/up_createstack.c @@ -220,7 +220,7 @@ int up_create_stack(FAR struct tcb_s *tcb, size_t stack_size, uint8_t ttype) if (tcb->stack_alloc_ptr) { #if defined(CONFIG_TLS) && defined(CONFIG_STACK_COLORATION) - uinptr_t stack_base; + uintptr_t stack_base; #endif size_t top_of_stack; size_t size_of_stack; @@ -264,7 +264,7 @@ int up_create_stack(FAR struct tcb_s *tcb, size_t stack_size, uint8_t ttype) * water marks. */ - stackbase = (uintptr_t)tcb->stack_alloc_ptr + sizeof(struct tls_info_s); + stack_base = (uintptr_t)tcb->stack_alloc_ptr + sizeof(struct tls_info_s); stack_size = tcb->adj_stack_size - sizeof(struct tls_info_s); up_stack_color((FAR void *)stack_base, stack_size); diff --git a/arch/arm/src/common/up_usestack.c b/arch/arm/src/common/up_usestack.c index 5dea96be4e..887387976a 100644 --- a/arch/arm/src/common/up_usestack.c +++ b/arch/arm/src/common/up_usestack.c @@ -174,7 +174,13 @@ int up_use_stack(struct tcb_s *tcb, void *stack, size_t stack_size) * value that we can use later to test for high water marks. */ -# warning Missing logic +#ifdef CONFIG_TLS + up_stack_color( + (FAR void *)((uintptr_t)tcb->stack_alloc_ptr + sizeof(struct tls_info_s)), + tcb->adj_stack_size - sizeof(struct tls_info_s)); +#else + up_stack_color(tcb->stack_alloc_ptr, tcb->adj_stack_size); +#endif #endif return OK; -- GitLab From 55faa87188553b76fce1e9ed6c7c2ce6c50a83ea Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 25 May 2016 10:17:42 -0600 Subject: [PATCH 244/307] Should fix a warning about unmet dependencies in 'make menuconfig' --- drivers/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/Kconfig b/drivers/Kconfig index 31c5b1e7a8..75c162dbb8 100644 --- a/drivers/Kconfig +++ b/drivers/Kconfig @@ -376,7 +376,7 @@ endif # IOEXPANDER menuconfig LCD bool "LCD Driver Support" default n - select NX_LCDDRIVER + select NX_LCDDRIVER if NX ---help--- Drivers for parallel and serial LCD and OLED type devices. These drivers support interfaces as defined in include/nuttx/lcd/lcd.h -- GitLab From 249a2e48e58b9d8119ad8a67ea3e2f6eb672e49c Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 25 May 2016 10:39:23 -0600 Subject: [PATCH 245/307] Rename CONFIG_ARCH_HAVE_USARTn to CONFIG_USARTn_SERIALDRIVER --- arch/arm/src/efm32/Kconfig | 6 +-- arch/arm/src/lpc43xx/Kconfig | 6 +-- arch/arm/src/sam34/Kconfig | 8 ++-- arch/arm/src/sama5/Kconfig | 20 +++++----- arch/arm/src/samdl/Kconfig | 12 +++--- arch/arm/src/samv7/Kconfig | 6 +-- arch/arm/src/stm32/Kconfig | 8 ++-- arch/arm/src/stm32f7/Kconfig | 8 ++-- arch/arm/src/stm32l4/Kconfig | 8 ++-- arch/avr/src/at32uc3/Kconfig | 6 +-- arch/avr/src/at90usb/Kconfig | 2 +- arch/avr/src/atmega/Kconfig | 4 +- configs/amber/hello/defconfig | 2 +- configs/arduino-due/nsh/defconfig | 18 ++++----- configs/arduino-mega2560/hello/defconfig | 18 ++++----- configs/arduino-mega2560/nsh/defconfig | 18 ++++----- configs/avr32dev1/nsh/defconfig | 2 +- configs/avr32dev1/ostest/defconfig | 2 +- configs/c5471evm/httpd/defconfig | 18 ++++----- configs/c5471evm/nettest/defconfig | 18 ++++----- configs/c5471evm/nsh/defconfig | 18 ++++----- configs/cc3200-launchpad/nsh/defconfig | 18 ++++----- configs/cloudctrl/nsh/defconfig | 18 ++++----- configs/compal_e86/nsh_highram/defconfig | 18 ++++----- configs/compal_e88/nsh_highram/defconfig | 18 ++++----- configs/compal_e99/nsh_compalram/defconfig | 18 ++++----- configs/compal_e99/nsh_highram/defconfig | 18 ++++----- configs/dk-tm4c129x/ipv6/defconfig | 18 ++++----- configs/dk-tm4c129x/nsh/defconfig | 18 ++++----- configs/ea3131/nsh/defconfig | 18 ++++----- configs/ea3131/pgnsh/defconfig | 18 ++++----- configs/ea3131/usbserial/defconfig | 18 ++++----- configs/ea3152/ostest/defconfig | 18 ++++----- configs/eagle100/nettest/defconfig | 18 ++++----- configs/eagle100/nsh/defconfig | 18 ++++----- configs/eagle100/nxflat/defconfig | 18 ++++----- configs/eagle100/thttpd/defconfig | 18 ++++----- configs/efm32-g8xx-stk/nsh/defconfig | 18 ++++----- configs/efm32gg-stk3700/nsh/defconfig | 18 ++++----- configs/ekk-lm3s9b96/nsh/defconfig | 18 ++++----- configs/ez80f910200kitg/ostest/defconfig | 18 ++++----- configs/ez80f910200zco/dhcpd/defconfig | 18 ++++----- configs/ez80f910200zco/httpd/defconfig | 18 ++++----- configs/ez80f910200zco/nettest/defconfig | 18 ++++----- configs/ez80f910200zco/nsh/defconfig | 18 ++++----- configs/ez80f910200zco/poll/defconfig | 18 ++++----- configs/fire-stm32v2/nsh/defconfig | 18 ++++----- configs/freedom-kl25z/minnsh/defconfig | 18 ++++----- configs/freedom-kl25z/nsh/defconfig | 18 ++++----- configs/freedom-kl26z/minnsh/defconfig | 18 ++++----- configs/freedom-kl26z/nsh/defconfig | 18 ++++----- configs/hymini-stm32v/buttons/defconfig | 18 ++++----- configs/hymini-stm32v/nsh/defconfig | 18 ++++----- configs/hymini-stm32v/nsh2/defconfig | 18 ++++----- configs/hymini-stm32v/usbmsc/defconfig | 18 ++++----- configs/hymini-stm32v/usbnsh/defconfig | 18 ++++----- configs/hymini-stm32v/usbserial/defconfig | 18 ++++----- configs/kwikstik-k40/ostest/defconfig | 18 ++++----- configs/launchxl-tms57004/nsh/defconfig | 18 ++++----- configs/lincoln60/netnsh/defconfig | 18 ++++----- configs/lincoln60/nsh/defconfig | 18 ++++----- configs/lincoln60/thttpd-binfs/defconfig | 18 ++++----- configs/lm3s6432-s2e/nsh/defconfig | 18 ++++----- configs/lm3s6965-ek/discover/defconfig | 18 ++++----- configs/lm3s6965-ek/nsh/defconfig | 18 ++++----- configs/lm3s6965-ek/nx/defconfig | 18 ++++----- configs/lm3s6965-ek/tcpecho/defconfig | 18 ++++----- configs/lm3s8962-ek/nsh/defconfig | 18 ++++----- configs/lm3s8962-ek/nx/defconfig | 18 ++++----- configs/lm4f120-launchpad/nsh/defconfig | 18 ++++----- configs/lpc4330-xplorer/nsh/defconfig | 18 ++++----- configs/lpc4337-ws/nsh/defconfig | 18 ++++----- configs/lpc4357-evb/nsh/defconfig | 18 ++++----- configs/lpc4370-link2/nsh/defconfig | 18 ++++----- configs/lpcxpresso-lpc1115/minnsh/defconfig | 18 ++++----- configs/lpcxpresso-lpc1115/nsh/defconfig | 18 ++++----- configs/lpcxpresso-lpc1768/dhcpd/defconfig | 18 ++++----- configs/lpcxpresso-lpc1768/nsh/defconfig | 18 ++++----- configs/lpcxpresso-lpc1768/nx/defconfig | 18 ++++----- configs/lpcxpresso-lpc1768/thttpd/defconfig | 18 ++++----- configs/lpcxpresso-lpc1768/usbmsc/defconfig | 18 ++++----- configs/maple/nsh/defconfig | 18 ++++----- configs/maple/nx/defconfig | 18 ++++----- configs/maple/usbnsh/defconfig | 18 ++++----- configs/mbed/nsh/defconfig | 18 ++++----- configs/mcu123-lpc214x/composite/defconfig | 18 ++++----- configs/mcu123-lpc214x/nsh/defconfig | 18 ++++----- configs/mcu123-lpc214x/usbmsc/defconfig | 18 ++++----- configs/mcu123-lpc214x/usbserial/defconfig | 18 ++++----- configs/micropendous3/hello/defconfig | 2 +- configs/mikroe-stm32f4/fulldemo/defconfig | 18 ++++----- configs/mikroe-stm32f4/kostest/defconfig | 18 ++++----- configs/mikroe-stm32f4/nsh/defconfig | 18 ++++----- configs/mikroe-stm32f4/usbnsh/defconfig | 18 ++++----- configs/mirtoo/nsh/defconfig | 18 ++++----- configs/mirtoo/nxffs/defconfig | 18 ++++----- configs/moteino-mega/hello/defconfig | 18 ++++----- configs/moteino-mega/nsh/defconfig | 18 ++++----- configs/moxa/nsh/defconfig | 18 ++++----- configs/mx1ads/ostest/defconfig | 18 ++++----- configs/ntosd-dm320/nettest/defconfig | 18 ++++----- configs/ntosd-dm320/nsh/defconfig | 18 ++++----- configs/ntosd-dm320/poll/defconfig | 18 ++++----- configs/ntosd-dm320/thttpd/defconfig | 18 ++++----- configs/ntosd-dm320/udp/defconfig | 18 ++++----- configs/ntosd-dm320/webserver/defconfig | 18 ++++----- configs/nucleo-144/evalos/defconfig | 18 ++++----- configs/nucleo-144/nsh/defconfig | 18 ++++----- configs/nucleo-f303re/serialrx/defconfig | 18 ++++----- configs/nucleo-f4x1re/f401-nsh/defconfig | 18 ++++----- configs/nucleo-f4x1re/f411-nsh/defconfig | 18 ++++----- configs/nucleo-l476rg/nsh/defconfig | 18 ++++----- .../olimex-efm32g880f128-stk/nsh/defconfig | 18 ++++----- configs/olimex-lpc-h3131/nsh/defconfig | 18 ++++----- configs/olimex-lpc1766stk/ftpc/defconfig | 18 ++++----- configs/olimex-lpc1766stk/hidkbd/defconfig | 18 ++++----- configs/olimex-lpc1766stk/hidmouse/defconfig | 18 ++++----- configs/olimex-lpc1766stk/nettest/defconfig | 18 ++++----- configs/olimex-lpc1766stk/nsh/defconfig | 18 ++++----- configs/olimex-lpc1766stk/nx/defconfig | 18 ++++----- .../olimex-lpc1766stk/slip-httpd/defconfig | 18 ++++----- .../olimex-lpc1766stk/thttpd-binfs/defconfig | 18 ++++----- .../olimex-lpc1766stk/thttpd-nxflat/defconfig | 18 ++++----- configs/olimex-lpc1766stk/usbmsc/defconfig | 18 ++++----- configs/olimex-lpc1766stk/usbserial/defconfig | 18 ++++----- configs/olimex-lpc1766stk/zmodem/defconfig | 18 ++++----- configs/olimex-lpc2378/nsh/defconfig | 18 ++++----- configs/olimex-stm32-h405/usbnsh/defconfig | 18 ++++----- configs/olimex-stm32-h407/nsh/defconfig | 18 ++++----- configs/olimex-stm32-p107/nsh/defconfig | 18 ++++----- configs/olimex-stm32-p207/nsh/defconfig | 18 ++++----- configs/olimex-strp711/nettest/defconfig | 18 ++++----- configs/olimexino-stm32/can/defconfig | 18 ++++----- configs/olimexino-stm32/composite/defconfig | 18 ++++----- configs/olimexino-stm32/nsh/defconfig | 18 ++++----- configs/olimexino-stm32/smallnsh/defconfig | 18 ++++----- configs/olimexino-stm32/tiny/defconfig | 18 ++++----- configs/open1788/knsh/defconfig | 18 ++++----- configs/open1788/nsh/defconfig | 18 ++++----- configs/pcblogic-pic32mx/nsh/defconfig | 18 ++++----- configs/pcduino-a10/nsh/defconfig | 18 ++++----- configs/pic32mx-starterkit/nsh/defconfig | 18 ++++----- configs/pic32mx-starterkit/nsh2/defconfig | 18 ++++----- configs/pic32mx7mmb/nsh/defconfig | 18 ++++----- configs/pic32mz-starterkit/nsh/defconfig | 18 ++++----- configs/pirelli_dpl10/nsh_highram/defconfig | 18 ++++----- configs/qemu-i486/nsh/defconfig | 18 ++++----- configs/qemu-i486/ostest/defconfig | 18 ++++----- configs/rgmp/arm/default/defconfig | 18 ++++----- configs/rgmp/arm/nsh/defconfig | 18 ++++----- configs/rgmp/x86/cxxtest/defconfig | 18 ++++----- configs/rgmp/x86/default/defconfig | 18 ++++----- configs/rgmp/x86/helloxx/defconfig | 18 ++++----- configs/rgmp/x86/nsh/defconfig | 18 ++++----- configs/sabre-6quad/nsh/defconfig | 18 ++++----- configs/sabre-6quad/smp/defconfig | 18 ++++----- configs/sam3u-ek/knsh/defconfig | 18 ++++----- configs/sam3u-ek/nsh/defconfig | 18 ++++----- configs/sam3u-ek/nx/defconfig | 18 ++++----- configs/sam3u-ek/nxwm/defconfig | 18 ++++----- configs/sam4e-ek/nsh/defconfig | 18 ++++----- configs/sam4e-ek/nxwm/defconfig | 18 ++++----- configs/sam4e-ek/usbnsh/defconfig | 18 ++++----- configs/sam4l-xplained/nsh/defconfig | 18 ++++----- configs/sam4s-xplained-pro/nsh/defconfig | 18 ++++----- configs/sam4s-xplained/nsh/defconfig | 18 ++++----- configs/sama5d2-xult/nsh/defconfig | 18 ++++----- configs/sama5d3-xplained/bridge/defconfig | 18 ++++----- configs/sama5d3-xplained/nsh/defconfig | 18 ++++----- configs/sama5d3x-ek/demo/defconfig | 18 ++++----- configs/sama5d3x-ek/hello/defconfig | 18 ++++----- configs/sama5d3x-ek/norboot/defconfig | 18 ++++----- configs/sama5d3x-ek/nsh/defconfig | 18 ++++----- configs/sama5d3x-ek/nx/defconfig | 18 ++++----- configs/sama5d3x-ek/nxplayer/defconfig | 18 ++++----- configs/sama5d3x-ek/nxwm/defconfig | 18 ++++----- configs/sama5d3x-ek/ov2640/defconfig | 18 ++++----- configs/sama5d4-ek/at25boot/defconfig | 18 ++++----- configs/sama5d4-ek/bridge/defconfig | 18 ++++----- configs/sama5d4-ek/dramboot/defconfig | 18 ++++----- configs/sama5d4-ek/elf/defconfig | 18 ++++----- configs/sama5d4-ek/ipv6/defconfig | 18 ++++----- configs/sama5d4-ek/knsh/defconfig | 18 ++++----- configs/sama5d4-ek/knsh/defconfig.ROMFS | 18 ++++----- configs/sama5d4-ek/nsh/defconfig | 18 ++++----- configs/sama5d4-ek/nxwm/defconfig | 18 ++++----- configs/sama5d4-ek/ramtest/defconfig | 18 ++++----- configs/samd20-xplained/nsh/defconfig | 18 ++++----- configs/samd21-xplained/nsh/defconfig | 18 ++++----- configs/same70-xplained/netnsh/defconfig | 18 ++++----- configs/same70-xplained/nsh/defconfig | 18 ++++----- configs/saml21-xplained/nsh/defconfig | 18 ++++----- configs/samv71-xult/knsh/defconfig | 18 ++++----- configs/samv71-xult/module/defconfig | 18 ++++----- configs/samv71-xult/mxtxplnd/defconfig | 18 ++++----- configs/samv71-xult/netnsh/defconfig | 18 ++++----- configs/samv71-xult/nsh/defconfig | 18 ++++----- configs/samv71-xult/nxwm/defconfig | 18 ++++----- configs/samv71-xult/vnc/defconfig | 18 ++++----- configs/samv71-xult/vnxwm/defconfig | 18 ++++----- configs/shenzhou/nsh/defconfig | 18 ++++----- configs/shenzhou/nxwm/defconfig | 18 ++++----- configs/shenzhou/thttpd/defconfig | 18 ++++----- configs/sim/bas/defconfig | 18 ++++----- configs/sim/configdata/defconfig | 18 ++++----- configs/sim/cxxtest/defconfig | 18 ++++----- configs/sim/mount/defconfig | 18 ++++----- configs/sim/mtdpart/defconfig | 18 ++++----- configs/sim/mtdrwb/defconfig | 18 ++++----- configs/sim/nettest/defconfig | 18 ++++----- configs/sim/nsh/defconfig | 18 ++++----- configs/sim/nsh2/defconfig | 18 ++++----- configs/sim/nx/defconfig | 18 ++++----- configs/sim/nx11/defconfig | 18 ++++----- configs/sim/nxffs/defconfig | 18 ++++----- configs/sim/nxlines/defconfig | 18 ++++----- configs/sim/nxwm/defconfig | 18 ++++----- configs/sim/ostest/defconfig | 18 ++++----- configs/sim/pashello/defconfig | 18 ++++----- configs/sim/touchscreen/defconfig | 18 ++++----- configs/sim/traveler/defconfig | 18 ++++----- configs/sim/udgram/defconfig | 18 ++++----- configs/sim/unionfs/defconfig | 18 ++++----- configs/sim/ustream/defconfig | 18 ++++----- configs/spark/composite/defconfig | 18 ++++----- configs/spark/nsh/defconfig | 18 ++++----- configs/spark/usbmsc/defconfig | 18 ++++----- configs/spark/usbnsh/defconfig | 18 ++++----- configs/spark/usbserial/defconfig | 18 ++++----- configs/stm3210e-eval/buttons/defconfig | 18 ++++----- configs/stm3210e-eval/composite/defconfig | 18 ++++----- configs/stm3210e-eval/nsh/defconfig | 18 ++++----- configs/stm3210e-eval/nsh2/defconfig | 18 ++++----- configs/stm3210e-eval/nx/defconfig | 18 ++++----- configs/stm3210e-eval/nxterm/defconfig | 18 ++++----- configs/stm3210e-eval/pm/defconfig | 18 ++++----- configs/stm3210e-eval/usbmsc/defconfig | 18 ++++----- configs/stm3210e-eval/usbserial/defconfig | 18 ++++----- configs/stm3220g-eval/dhcpd/defconfig | 18 ++++----- configs/stm3220g-eval/nettest/defconfig | 18 ++++----- configs/stm3220g-eval/nsh/defconfig | 18 ++++----- configs/stm3220g-eval/nsh2/defconfig | 18 ++++----- configs/stm3220g-eval/nxwm/defconfig | 18 ++++----- configs/stm3220g-eval/telnetd/defconfig | 18 ++++----- configs/stm3240g-eval/dhcpd/defconfig | 18 ++++----- configs/stm3240g-eval/discover/defconfig | 18 ++++----- configs/stm3240g-eval/knxwm/defconfig | 18 ++++----- configs/stm3240g-eval/nettest/defconfig | 18 ++++----- configs/stm3240g-eval/nsh/defconfig | 18 ++++----- configs/stm3240g-eval/nsh2/defconfig | 18 ++++----- configs/stm3240g-eval/nxterm/defconfig | 18 ++++----- configs/stm3240g-eval/nxwm/defconfig | 18 ++++----- configs/stm3240g-eval/telnetd/defconfig | 18 ++++----- configs/stm3240g-eval/webserver/defconfig | 18 ++++----- configs/stm3240g-eval/xmlrpc/defconfig | 18 ++++----- configs/stm32_tiny/nsh/defconfig | 18 ++++----- configs/stm32_tiny/usbnsh/defconfig | 18 ++++----- configs/stm32f103-minimum/nsh/defconfig | 18 ++++----- configs/stm32f103-minimum/usbnsh/defconfig | 18 ++++----- configs/stm32f3discovery/nsh/defconfig | 18 ++++----- configs/stm32f3discovery/usbnsh/defconfig | 18 ++++----- configs/stm32f411e-disco/nsh/defconfig | 18 ++++----- configs/stm32f429i-disco/extflash/defconfig | 18 ++++----- configs/stm32f429i-disco/lcd/defconfig | 18 ++++----- configs/stm32f429i-disco/ltdc/defconfig | 18 ++++----- configs/stm32f429i-disco/nsh/defconfig | 18 ++++----- configs/stm32f429i-disco/usbmsc/defconfig | 18 ++++----- configs/stm32f429i-disco/usbnsh/defconfig | 18 ++++----- configs/stm32f4discovery/cxxtest/defconfig | 18 ++++----- configs/stm32f4discovery/elf/defconfig | 18 ++++----- configs/stm32f4discovery/ipv6/defconfig | 18 ++++----- configs/stm32f4discovery/kostest/defconfig | 18 ++++----- configs/stm32f4discovery/netnsh/defconfig | 18 ++++----- configs/stm32f4discovery/nsh/defconfig | 18 ++++----- configs/stm32f4discovery/nxlines/defconfig | 18 ++++----- configs/stm32f4discovery/pm/defconfig | 18 ++++----- .../stm32f4discovery/posix_spawn/defconfig | 18 ++++----- configs/stm32f4discovery/rgbled/defconfig | 18 ++++----- configs/stm32f4discovery/usbnsh/defconfig | 18 ++++----- configs/stm32f4discovery/winbuild/defconfig | 18 ++++----- configs/stm32f746g-disco/knsh/defconfig | 18 ++++----- configs/stm32f746g-disco/netnsh/defconfig | 18 ++++----- configs/stm32f746g-disco/nsh/defconfig | 18 ++++----- configs/stm32l476vg-disco/nsh/defconfig | 18 ++++----- configs/stm32ldiscovery/nsh/defconfig | 18 ++++----- configs/stm32vldiscovery/nsh/defconfig | 18 ++++----- configs/sure-pic32mx/nsh/defconfig | 18 ++++----- configs/sure-pic32mx/usbnsh/defconfig | 18 ++++----- configs/teensy-2.0/hello/defconfig | 18 ++++----- configs/teensy-2.0/nsh/defconfig | 18 ++++----- configs/teensy-2.0/usbmsc/defconfig | 18 ++++----- configs/teensy-3.x/nsh/defconfig | 18 ++++----- configs/teensy-lc/nsh/defconfig | 18 ++++----- configs/tm4c123g-launchpad/nsh/defconfig | 18 ++++----- configs/tm4c1294-launchpad/ipv6/defconfig | 18 ++++----- configs/tm4c1294-launchpad/nsh/defconfig | 18 ++++----- configs/twr-k60n512/nsh/defconfig | 18 ++++----- configs/u-blox-c027/nsh/defconfig | 18 ++++----- configs/ubw32/nsh/defconfig | 18 ++++----- configs/us7032evb1/nsh/defconfig | 18 ++++----- configs/us7032evb1/ostest/defconfig | 18 ++++----- configs/viewtool-stm32f107/highpri/defconfig | 18 ++++----- configs/viewtool-stm32f107/netnsh/defconfig | 18 ++++----- configs/viewtool-stm32f107/nsh/defconfig | 18 ++++----- configs/z16f2800100zcog/nsh/defconfig | 18 ++++----- configs/z8encore000zco/ostest/defconfig | 18 ++++----- configs/z8f64200100kit/ostest/defconfig | 18 ++++----- configs/zkit-arm-1769/hello/defconfig | 18 ++++----- configs/zkit-arm-1769/nsh/defconfig | 18 ++++----- configs/zkit-arm-1769/nxhello/defconfig | 18 ++++----- configs/zkit-arm-1769/thttpd/defconfig | 18 ++++----- configs/zp214xpa/nsh/defconfig | 18 ++++----- configs/zp214xpa/nxlines/defconfig | 18 ++++----- drivers/serial/Kconfig | 38 +++++++++---------- 314 files changed, 2743 insertions(+), 2743 deletions(-) diff --git a/arch/arm/src/efm32/Kconfig b/arch/arm/src/efm32/Kconfig index 0b90826e5e..c5b6d9ca9b 100644 --- a/arch/arm/src/efm32/Kconfig +++ b/arch/arm/src/efm32/Kconfig @@ -157,20 +157,20 @@ config EFM32_BITBAND config EFM32_USART0 bool "USART0" default n - select ARCH_HAVE_USART0 + select USART0_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config EFM32_USART1 bool "USART1" default n - select ARCH_HAVE_USART1 + select USART1_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config EFM32_USART2 bool "USART2" default n depends on EFM32_HAVE_USART2 - select ARCH_HAVE_USART2 + select USART2_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config EFM32_UART0 diff --git a/arch/arm/src/lpc43xx/Kconfig b/arch/arm/src/lpc43xx/Kconfig index b6349e5c54..db34170101 100644 --- a/arch/arm/src/lpc43xx/Kconfig +++ b/arch/arm/src/lpc43xx/Kconfig @@ -274,7 +274,7 @@ config LPC43_TMR3 config LPC43_USART0 bool "USART0" default n - select ARCH_HAVE_USART0 + select USART0_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config LPC43_UART1 @@ -286,13 +286,13 @@ config LPC43_UART1 config LPC43_USART2 bool "USART2" default n - select ARCH_HAVE_USART2 + select USART2_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config LPC43_USART3 bool "USART3" default n - select ARCH_HAVE_USART3 + select USART3_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config LPC43_USBOTG diff --git a/arch/arm/src/sam34/Kconfig b/arch/arm/src/sam34/Kconfig index bb400e649c..db53c7f1ee 100644 --- a/arch/arm/src/sam34/Kconfig +++ b/arch/arm/src/sam34/Kconfig @@ -651,27 +651,27 @@ config SAM34_USBC config SAM34_USART0 bool "USART 0" default n - select ARCH_HAVE_USART0 + select USART0_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config SAM34_USART1 bool "USART 1" default n - select ARCH_HAVE_USART1 + select USART1_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config SAM34_USART2 bool "USART 2" default n depends on ARCH_CHIP_SAM3U || ARCH_CHIP_SAM3X || ARCH_CHIP_SAM3A || ARCH_CHIP_SAM4CM || ARCH_CHIP_SAM4L - select ARCH_HAVE_USART2 + select USART2_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config SAM34_USART3 bool "USART 3" default n depends on ARCH_CHIP_SAM3U || ARCH_CHIP_SAM3X || ARCH_CHIP_SAM3A || ARCH_CHIP_SAM4CM || ARCH_CHIP_SAM4L - select ARCH_HAVE_USART3 + select USART3_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config SAM34_WDT diff --git a/arch/arm/src/sama5/Kconfig b/arch/arm/src/sama5/Kconfig index 351a5bebe8..a2b60bc20c 100644 --- a/arch/arm/src/sama5/Kconfig +++ b/arch/arm/src/sama5/Kconfig @@ -467,35 +467,35 @@ config SAMA5_USART0 bool "USART 0" default n depends on SAMA5_HAVE_USART0 - select ARCH_HAVE_USART0 + select USART0_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config SAMA5_USART1 bool "USART 1" default n depends on SAMA5_HAVE_USART1 - select ARCH_HAVE_USART1 + select USART1_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config SAMA5_USART2 bool "USART 2" default n depends on SAMA5_HAVE_USART2 - select ARCH_HAVE_USART2 + select USART2_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config SAMA5_USART3 bool "USART 3" default n depends on SAMA5_HAVE_USART3 - select ARCH_HAVE_USART3 + select USART3_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config SAMA5_USART4 bool "USART 4" default n depends on SAMA5_HAVE_USART4 - select ARCH_HAVE_USART4 + select USART4_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config SAMA5_FLEXCOM0 @@ -786,7 +786,7 @@ choice config SAMA5_FLEXCOM0_USART bool "USART" select SAMA5_FLEXCOM_USART - select ARCH_HAVE_USART0 + select USART0_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config SAMA5_FLEXCOM0_SPI @@ -807,7 +807,7 @@ choice config SAMA5_FLEXCOM1_USART bool "USART" select SAMA5_FLEXCOM_USART - select ARCH_HAVE_USART1 + select USART1_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config SAMA5_FLEXCOM1_SPI @@ -828,7 +828,7 @@ choice config SAMA5_FLEXCOM2_USART bool "USART" select SAMA5_FLEXCOM_USART - select ARCH_HAVE_USART2 + select USART2_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config SAMA5_FLEXCOM2_SPI @@ -853,7 +853,7 @@ config SAMA5_FLEXCOM3_USART config SAMA5_FLEXCOM3_SPI bool "SPI" select SAMA5_FLEXCOM_SPI - select ARCH_HAVE_USART3 + select USART3_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config SAMA5_FLEXCOM3_SPI @@ -870,7 +870,7 @@ choice config SAMA5_FLEXCOM4_USART bool "USART" select SAMA5_FLEXCOM_USART - select ARCH_HAVE_USART4 + select USART4_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config SAMA5_FLEXCOM4_SPI diff --git a/arch/arm/src/samdl/Kconfig b/arch/arm/src/samdl/Kconfig index 68ea979f90..ea7a54a7fb 100644 --- a/arch/arm/src/samdl/Kconfig +++ b/arch/arm/src/samdl/Kconfig @@ -589,7 +589,7 @@ config SAMDL_SERCOM0_ISSPI config SAMDL_SERCOM0_ISUSART bool "USART" - select ARCH_HAVE_USART0 + select USART0_SERIALDRIVER select USART0_ISUART endchoice @@ -623,7 +623,7 @@ config SAMDL_SERCOM1_ISSPI config SAMDL_SERCOM1_ISUSART bool "USART" - select ARCH_HAVE_USART1 + select USART1_SERIALDRIVER select USART1_ISUART endchoice @@ -643,7 +643,7 @@ config SAMDL_SERCOM2_ISSPI config SAMDL_SERCOM2_ISUSART bool "USART" - select ARCH_HAVE_USART2 + select USART2_SERIALDRIVER select USART2_ISUART endchoice @@ -663,7 +663,7 @@ config SAMDL_SERCOM3_ISSPI config SAMDL_SERCOM3_ISUSART bool "USART" - select ARCH_HAVE_USART3 + select USART3_SERIALDRIVER select USART3_ISUART endchoice @@ -683,7 +683,7 @@ config SAMDL_SERCOM4_ISSPI config SAMDL_SERCOM4_ISUSART bool "USART" - select ARCH_HAVE_USART4 + select USART4_SERIALDRIVER select USART4_ISUART endchoice @@ -703,7 +703,7 @@ config SAMDL_SERCOM5_ISSPI config SAMDL_SERCOM5_ISUSART bool "USART" - select ARCH_HAVE_USART5 + select USART5_SERIALDRIVER select USART5_ISUART endchoice diff --git a/arch/arm/src/samv7/Kconfig b/arch/arm/src/samv7/Kconfig index 438451805b..62f5421913 100644 --- a/arch/arm/src/samv7/Kconfig +++ b/arch/arm/src/samv7/Kconfig @@ -520,21 +520,21 @@ config SAMV7_USART0 bool "USART 0" default n depends on SAMV7_HAVE_USART0 - select ARCH_HAVE_USART0 + select USART0_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config SAMV7_USART1 bool "USART 1" default n depends on SAMV7_HAVE_USART1 - select ARCH_HAVE_USART1 + select USART1_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config SAMV7_USART2 bool "USART 2" default n depends on SAMV7_HAVE_USART2 - select ARCH_HAVE_USART2 + select USART2_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config SAMV7_WDT diff --git a/arch/arm/src/stm32/Kconfig b/arch/arm/src/stm32/Kconfig index 4c7ed9fa2a..940c9fb645 100644 --- a/arch/arm/src/stm32/Kconfig +++ b/arch/arm/src/stm32/Kconfig @@ -2160,14 +2160,14 @@ config STM32_TSC config STM32_USART1 bool "USART1" default n - select ARCH_HAVE_USART1 + select USART1_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS select STM32_USART config STM32_USART2 bool "USART2" default n - select ARCH_HAVE_USART2 + select USART2_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS select STM32_USART @@ -2176,7 +2176,7 @@ config STM32_USART3 default n depends on STM32_HAVE_USART3 select ARCH_HAVE_SERIAL_TERMIOS - select ARCH_HAVE_USART3 + select USART3_SERIALDRIVER select STM32_USART config STM32_UART4 @@ -2200,7 +2200,7 @@ config STM32_USART6 default n depends on STM32_HAVE_USART6 select ARCH_HAVE_SERIAL_TERMIOS - select ARCH_HAVE_USART6 + select USART6_SERIALDRIVER select STM32_USART config STM32_UART7 diff --git a/arch/arm/src/stm32f7/Kconfig b/arch/arm/src/stm32f7/Kconfig index ce9edbfc22..729f05736a 100644 --- a/arch/arm/src/stm32f7/Kconfig +++ b/arch/arm/src/stm32f7/Kconfig @@ -370,14 +370,14 @@ config STM32F7_TIM15 config STM32F7_USART1 bool "USART1" default n - select ARCH_HAVE_USART1 + select USART1_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS select STM32F7_USART config STM32F7_USART2 bool "USART2" default n - select ARCH_HAVE_USART2 + select USART2_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS select STM32F7_USART @@ -385,7 +385,7 @@ config STM32F7_USART3 bool "USART3" default n select ARCH_HAVE_SERIAL_TERMIOS - select ARCH_HAVE_USART3 + select USART3_SERIALDRIVER select STM32F7_USART config STM32F7_UART4 @@ -406,7 +406,7 @@ config STM32F7_USART6 bool "USART6" default n select ARCH_HAVE_SERIAL_TERMIOS - select ARCH_HAVE_USART6 + select USART6_SERIALDRIVER select STM32F7_USART config STM32F7_UART7 diff --git a/arch/arm/src/stm32l4/Kconfig b/arch/arm/src/stm32l4/Kconfig index 366fe539a1..a224be7835 100644 --- a/arch/arm/src/stm32l4/Kconfig +++ b/arch/arm/src/stm32l4/Kconfig @@ -400,14 +400,14 @@ config STM32L4_SPI3 config STM32L4_USART1 bool "USART1" default n - select ARCH_HAVE_USART1 + select USART1_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS select STM32L4_USART config STM32L4_USART2 bool "USART2" default n - select ARCH_HAVE_USART2 + select USART2_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS select STM32L4_USART @@ -415,7 +415,7 @@ config STM32L4_USART3 bool "USART3" default n select ARCH_HAVE_SERIAL_TERMIOS - select ARCH_HAVE_USART3 + select USART3_SERIALDRIVER select STM32L4_USART config STM32L4_UART4 @@ -520,7 +520,7 @@ config STM32L4_TIM8 config STM32L4_USART1 bool "USART1" default n - select ARCH_HAVE_USART1 + select USART1_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS select STM32L4_USART diff --git a/arch/avr/src/at32uc3/Kconfig b/arch/avr/src/at32uc3/Kconfig index d12c0ad17d..1528a3682d 100644 --- a/arch/avr/src/at32uc3/Kconfig +++ b/arch/avr/src/at32uc3/Kconfig @@ -73,18 +73,18 @@ menu "AT32U3 Peripheral Selections" config AVR32_USART0 bool "USART0" default n - select ARCH_HAVE_USART0 + select USART0_SERIALDRIVER config AVR32_USART1 bool "USART1" default n - select ARCH_HAVE_USART1 + select USART1_SERIALDRIVER config AVR32_USART2 bool "USART2" default n depends on ARCH_CHIP_AT32UC3B0 - select ARCH_HAVE_USART2 + select USART2_SERIALDRIVER endmenu # AT32U3 Peripheral Selections diff --git a/arch/avr/src/at90usb/Kconfig b/arch/avr/src/at90usb/Kconfig index 6481e6973f..cef9659828 100644 --- a/arch/avr/src/at90usb/Kconfig +++ b/arch/avr/src/at90usb/Kconfig @@ -41,7 +41,7 @@ config AVR_SPI config AVR_USART1 bool "USART1" default n - select ARCH_HAVE_USART1 + select USART1_SERIALDRIVER config AVR_USBDEV bool "USB device" diff --git a/arch/avr/src/atmega/Kconfig b/arch/avr/src/atmega/Kconfig index 8c3d6c0145..2d2c4d813a 100644 --- a/arch/avr/src/atmega/Kconfig +++ b/arch/avr/src/atmega/Kconfig @@ -31,11 +31,11 @@ menu "ATMega Peripheral Selections" config AVR_USART0 bool "USART0" - select ARCH_HAVE_USART0 + select USART0_SERIALDRIVER config AVR_USART1 bool "USART1" - select ARCH_HAVE_USART1 + select USART1_SERIALDRIVER endmenu # ATMega Peripheral Selections diff --git a/configs/amber/hello/defconfig b/configs/amber/hello/defconfig index 57a095a0e1..776b8f2eef 100644 --- a/configs/amber/hello/defconfig +++ b/configs/amber/hello/defconfig @@ -238,7 +238,7 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y CONFIG_DEV_LOWCONSOLE=y # CONFIG_16550_UART is not set -CONFIG_ARCH_HAVE_USART0=y +CONFIG_USART0_SERIALDRIVER=y # # USART Configuration diff --git a/configs/arduino-due/nsh/defconfig b/configs/arduino-due/nsh/defconfig index 7fdcc2c51c..b15b1d6fac 100644 --- a/configs/arduino-due/nsh/defconfig +++ b/configs/arduino-due/nsh/defconfig @@ -505,15 +505,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/arduino-mega2560/hello/defconfig b/configs/arduino-mega2560/hello/defconfig index ffa94ad0e9..517de1a0a7 100644 --- a/configs/arduino-mega2560/hello/defconfig +++ b/configs/arduino-mega2560/hello/defconfig @@ -313,15 +313,15 @@ CONFIG_DEV_LOWCONSOLE=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -CONFIG_ARCH_HAVE_USART0=y -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +CONFIG_USART0_SERIALDRIVER=y +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/arduino-mega2560/nsh/defconfig b/configs/arduino-mega2560/nsh/defconfig index d22cb73161..b95139be81 100644 --- a/configs/arduino-mega2560/nsh/defconfig +++ b/configs/arduino-mega2560/nsh/defconfig @@ -321,15 +321,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -CONFIG_ARCH_HAVE_USART0=y -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +CONFIG_USART0_SERIALDRIVER=y +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/avr32dev1/nsh/defconfig b/configs/avr32dev1/nsh/defconfig index dadecbc713..77eced83ba 100644 --- a/configs/avr32dev1/nsh/defconfig +++ b/configs/avr32dev1/nsh/defconfig @@ -276,7 +276,7 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -CONFIG_ARCH_HAVE_USART1=y +CONFIG_USART1_SERIALDRIVER=y # # USART Configuration diff --git a/configs/avr32dev1/ostest/defconfig b/configs/avr32dev1/ostest/defconfig index 83d72fda29..c0e4f0ff5c 100644 --- a/configs/avr32dev1/ostest/defconfig +++ b/configs/avr32dev1/ostest/defconfig @@ -275,7 +275,7 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y CONFIG_DEV_LOWCONSOLE=y # CONFIG_16550_UART is not set -CONFIG_ARCH_HAVE_USART1=y +CONFIG_USART1_SERIALDRIVER=y # # USART Configuration diff --git a/configs/c5471evm/httpd/defconfig b/configs/c5471evm/httpd/defconfig index c3635191e0..4e628342c0 100644 --- a/configs/c5471evm/httpd/defconfig +++ b/configs/c5471evm/httpd/defconfig @@ -360,15 +360,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set CONFIG_ARCH_HAVE_OTHER_UART=y # diff --git a/configs/c5471evm/nettest/defconfig b/configs/c5471evm/nettest/defconfig index 9951751415..12aa20198f 100644 --- a/configs/c5471evm/nettest/defconfig +++ b/configs/c5471evm/nettest/defconfig @@ -370,15 +370,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set CONFIG_ARCH_HAVE_OTHER_UART=y # diff --git a/configs/c5471evm/nsh/defconfig b/configs/c5471evm/nsh/defconfig index e36be6f8ff..940d3ed7d2 100644 --- a/configs/c5471evm/nsh/defconfig +++ b/configs/c5471evm/nsh/defconfig @@ -379,15 +379,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set CONFIG_ARCH_HAVE_OTHER_UART=y # diff --git a/configs/cc3200-launchpad/nsh/defconfig b/configs/cc3200-launchpad/nsh/defconfig index 0ab668e23d..f5cb5dbe32 100644 --- a/configs/cc3200-launchpad/nsh/defconfig +++ b/configs/cc3200-launchpad/nsh/defconfig @@ -366,15 +366,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/cloudctrl/nsh/defconfig b/configs/cloudctrl/nsh/defconfig index ed97bcc4b9..957e7531bc 100644 --- a/configs/cloudctrl/nsh/defconfig +++ b/configs/cloudctrl/nsh/defconfig @@ -799,15 +799,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -CONFIG_ARCH_HAVE_USART2=y -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +CONFIG_USART2_SERIALDRIVER=y +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/compal_e86/nsh_highram/defconfig b/configs/compal_e86/nsh_highram/defconfig index c5dcaa04d3..6ce384c0ea 100644 --- a/configs/compal_e86/nsh_highram/defconfig +++ b/configs/compal_e86/nsh_highram/defconfig @@ -380,15 +380,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set CONFIG_ARCH_HAVE_OTHER_UART=y # diff --git a/configs/compal_e88/nsh_highram/defconfig b/configs/compal_e88/nsh_highram/defconfig index 8db7861487..033f523eb3 100644 --- a/configs/compal_e88/nsh_highram/defconfig +++ b/configs/compal_e88/nsh_highram/defconfig @@ -380,15 +380,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set CONFIG_ARCH_HAVE_OTHER_UART=y # diff --git a/configs/compal_e99/nsh_compalram/defconfig b/configs/compal_e99/nsh_compalram/defconfig index 3ad0846571..913d1eb9f2 100644 --- a/configs/compal_e99/nsh_compalram/defconfig +++ b/configs/compal_e99/nsh_compalram/defconfig @@ -417,15 +417,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set CONFIG_ARCH_HAVE_OTHER_UART=y # diff --git a/configs/compal_e99/nsh_highram/defconfig b/configs/compal_e99/nsh_highram/defconfig index cb3fa5526b..7b3b0bfbcf 100644 --- a/configs/compal_e99/nsh_highram/defconfig +++ b/configs/compal_e99/nsh_highram/defconfig @@ -416,15 +416,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set CONFIG_ARCH_HAVE_OTHER_UART=y # diff --git a/configs/dk-tm4c129x/ipv6/defconfig b/configs/dk-tm4c129x/ipv6/defconfig index fdd2e40140..6f157b4091 100644 --- a/configs/dk-tm4c129x/ipv6/defconfig +++ b/configs/dk-tm4c129x/ipv6/defconfig @@ -502,15 +502,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/dk-tm4c129x/nsh/defconfig b/configs/dk-tm4c129x/nsh/defconfig index 158188fc44..f4b555a9a7 100644 --- a/configs/dk-tm4c129x/nsh/defconfig +++ b/configs/dk-tm4c129x/nsh/defconfig @@ -557,15 +557,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/ea3131/nsh/defconfig b/configs/ea3131/nsh/defconfig index 1edd39ab7e..11892bca7a 100644 --- a/configs/ea3131/nsh/defconfig +++ b/configs/ea3131/nsh/defconfig @@ -370,15 +370,15 @@ CONFIG_ARCH_HAVE_UART=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/ea3131/pgnsh/defconfig b/configs/ea3131/pgnsh/defconfig index e245da9a3c..63a0e6a003 100644 --- a/configs/ea3131/pgnsh/defconfig +++ b/configs/ea3131/pgnsh/defconfig @@ -463,15 +463,15 @@ CONFIG_ARCH_HAVE_UART=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/ea3131/usbserial/defconfig b/configs/ea3131/usbserial/defconfig index c7e919046a..d77007dede 100644 --- a/configs/ea3131/usbserial/defconfig +++ b/configs/ea3131/usbserial/defconfig @@ -443,15 +443,15 @@ CONFIG_ARCH_HAVE_UART=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/ea3152/ostest/defconfig b/configs/ea3152/ostest/defconfig index bf1647db11..94bccd9836 100644 --- a/configs/ea3152/ostest/defconfig +++ b/configs/ea3152/ostest/defconfig @@ -369,15 +369,15 @@ CONFIG_ARCH_HAVE_UART=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/eagle100/nettest/defconfig b/configs/eagle100/nettest/defconfig index aaf5566121..b3fcf848ef 100644 --- a/configs/eagle100/nettest/defconfig +++ b/configs/eagle100/nettest/defconfig @@ -487,15 +487,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/eagle100/nsh/defconfig b/configs/eagle100/nsh/defconfig index 03426ceba0..afb2d73e64 100644 --- a/configs/eagle100/nsh/defconfig +++ b/configs/eagle100/nsh/defconfig @@ -530,15 +530,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/eagle100/nxflat/defconfig b/configs/eagle100/nxflat/defconfig index ee72ff1b14..ebf3947972 100644 --- a/configs/eagle100/nxflat/defconfig +++ b/configs/eagle100/nxflat/defconfig @@ -337,15 +337,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/eagle100/thttpd/defconfig b/configs/eagle100/thttpd/defconfig index 081cb7a983..3000c1ee9b 100644 --- a/configs/eagle100/thttpd/defconfig +++ b/configs/eagle100/thttpd/defconfig @@ -471,15 +471,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/efm32-g8xx-stk/nsh/defconfig b/configs/efm32-g8xx-stk/nsh/defconfig index 899fdd919c..206223c95f 100644 --- a/configs/efm32-g8xx-stk/nsh/defconfig +++ b/configs/efm32-g8xx-stk/nsh/defconfig @@ -396,15 +396,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set CONFIG_ARCH_HAVE_OTHER_UART=y # diff --git a/configs/efm32gg-stk3700/nsh/defconfig b/configs/efm32gg-stk3700/nsh/defconfig index 0649d6b5e1..6cd1f1bd64 100644 --- a/configs/efm32gg-stk3700/nsh/defconfig +++ b/configs/efm32gg-stk3700/nsh/defconfig @@ -423,15 +423,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set CONFIG_ARCH_HAVE_OTHER_UART=y # diff --git a/configs/ekk-lm3s9b96/nsh/defconfig b/configs/ekk-lm3s9b96/nsh/defconfig index 146fb4c3cc..d6124c03fb 100644 --- a/configs/ekk-lm3s9b96/nsh/defconfig +++ b/configs/ekk-lm3s9b96/nsh/defconfig @@ -519,15 +519,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/ez80f910200kitg/ostest/defconfig b/configs/ez80f910200kitg/ostest/defconfig index b85a58b23c..aa29999786 100644 --- a/configs/ez80f910200kitg/ostest/defconfig +++ b/configs/ez80f910200kitg/ostest/defconfig @@ -393,15 +393,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/ez80f910200zco/dhcpd/defconfig b/configs/ez80f910200zco/dhcpd/defconfig index 7767fcc543..3472c4c146 100644 --- a/configs/ez80f910200zco/dhcpd/defconfig +++ b/configs/ez80f910200zco/dhcpd/defconfig @@ -439,15 +439,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/ez80f910200zco/httpd/defconfig b/configs/ez80f910200zco/httpd/defconfig index 084ec33edf..e3065086a3 100644 --- a/configs/ez80f910200zco/httpd/defconfig +++ b/configs/ez80f910200zco/httpd/defconfig @@ -448,15 +448,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/ez80f910200zco/nettest/defconfig b/configs/ez80f910200zco/nettest/defconfig index 8dd72d76fb..b491c26d1c 100644 --- a/configs/ez80f910200zco/nettest/defconfig +++ b/configs/ez80f910200zco/nettest/defconfig @@ -440,15 +440,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/ez80f910200zco/nsh/defconfig b/configs/ez80f910200zco/nsh/defconfig index 714dccfa3f..5dd8e297fd 100644 --- a/configs/ez80f910200zco/nsh/defconfig +++ b/configs/ez80f910200zco/nsh/defconfig @@ -451,15 +451,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/ez80f910200zco/poll/defconfig b/configs/ez80f910200zco/poll/defconfig index 336e8aa08a..5dc11e48a4 100644 --- a/configs/ez80f910200zco/poll/defconfig +++ b/configs/ez80f910200zco/poll/defconfig @@ -447,15 +447,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/fire-stm32v2/nsh/defconfig b/configs/fire-stm32v2/nsh/defconfig index bc729a3858..3a7d48f241 100644 --- a/configs/fire-stm32v2/nsh/defconfig +++ b/configs/fire-stm32v2/nsh/defconfig @@ -805,15 +805,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -CONFIG_ARCH_HAVE_USART2=y -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +CONFIG_USART2_SERIALDRIVER=y +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/freedom-kl25z/minnsh/defconfig b/configs/freedom-kl25z/minnsh/defconfig index 0bcfe2f340..ea7bf4f757 100644 --- a/configs/freedom-kl25z/minnsh/defconfig +++ b/configs/freedom-kl25z/minnsh/defconfig @@ -365,15 +365,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/freedom-kl25z/nsh/defconfig b/configs/freedom-kl25z/nsh/defconfig index b95602880d..a0f5391210 100644 --- a/configs/freedom-kl25z/nsh/defconfig +++ b/configs/freedom-kl25z/nsh/defconfig @@ -397,15 +397,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/freedom-kl26z/minnsh/defconfig b/configs/freedom-kl26z/minnsh/defconfig index 74c11f304a..70b2f14aae 100644 --- a/configs/freedom-kl26z/minnsh/defconfig +++ b/configs/freedom-kl26z/minnsh/defconfig @@ -368,15 +368,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/freedom-kl26z/nsh/defconfig b/configs/freedom-kl26z/nsh/defconfig index ec69cb5241..e258f2e441 100644 --- a/configs/freedom-kl26z/nsh/defconfig +++ b/configs/freedom-kl26z/nsh/defconfig @@ -397,15 +397,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/hymini-stm32v/buttons/defconfig b/configs/hymini-stm32v/buttons/defconfig index edda72f4cf..2312937142 100644 --- a/configs/hymini-stm32v/buttons/defconfig +++ b/configs/hymini-stm32v/buttons/defconfig @@ -689,15 +689,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/hymini-stm32v/nsh/defconfig b/configs/hymini-stm32v/nsh/defconfig index c968013077..6b71a025e2 100644 --- a/configs/hymini-stm32v/nsh/defconfig +++ b/configs/hymini-stm32v/nsh/defconfig @@ -718,15 +718,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/hymini-stm32v/nsh2/defconfig b/configs/hymini-stm32v/nsh2/defconfig index faabb689b9..f0dc51dd01 100644 --- a/configs/hymini-stm32v/nsh2/defconfig +++ b/configs/hymini-stm32v/nsh2/defconfig @@ -806,15 +806,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/hymini-stm32v/usbmsc/defconfig b/configs/hymini-stm32v/usbmsc/defconfig index b551401244..d09f598d93 100644 --- a/configs/hymini-stm32v/usbmsc/defconfig +++ b/configs/hymini-stm32v/usbmsc/defconfig @@ -713,15 +713,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -CONFIG_ARCH_HAVE_USART2=y -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +CONFIG_USART2_SERIALDRIVER=y +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/hymini-stm32v/usbnsh/defconfig b/configs/hymini-stm32v/usbnsh/defconfig index a5bc5c2284..d9b886d56b 100644 --- a/configs/hymini-stm32v/usbnsh/defconfig +++ b/configs/hymini-stm32v/usbnsh/defconfig @@ -692,15 +692,15 @@ CONFIG_SERIAL_REMOVABLE=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/hymini-stm32v/usbserial/defconfig b/configs/hymini-stm32v/usbserial/defconfig index 7d41d16470..480a17ebe1 100644 --- a/configs/hymini-stm32v/usbserial/defconfig +++ b/configs/hymini-stm32v/usbserial/defconfig @@ -698,15 +698,15 @@ CONFIG_SERIAL_REMOVABLE=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -CONFIG_ARCH_HAVE_USART2=y -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +CONFIG_USART2_SERIALDRIVER=y +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/kwikstik-k40/ostest/defconfig b/configs/kwikstik-k40/ostest/defconfig index 1f886be274..b05e54f2c9 100644 --- a/configs/kwikstik-k40/ostest/defconfig +++ b/configs/kwikstik-k40/ostest/defconfig @@ -432,15 +432,15 @@ CONFIG_ARCH_HAVE_UART5=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/launchxl-tms57004/nsh/defconfig b/configs/launchxl-tms57004/nsh/defconfig index c0a16a9c21..5bbec33a93 100644 --- a/configs/launchxl-tms57004/nsh/defconfig +++ b/configs/launchxl-tms57004/nsh/defconfig @@ -436,15 +436,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set CONFIG_ARCH_HAVE_SCI1=y -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/lincoln60/netnsh/defconfig b/configs/lincoln60/netnsh/defconfig index d8da29e553..e3fc395db8 100644 --- a/configs/lincoln60/netnsh/defconfig +++ b/configs/lincoln60/netnsh/defconfig @@ -514,15 +514,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/lincoln60/nsh/defconfig b/configs/lincoln60/nsh/defconfig index 71ddd71b84..1bb0f2a217 100644 --- a/configs/lincoln60/nsh/defconfig +++ b/configs/lincoln60/nsh/defconfig @@ -440,15 +440,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/lincoln60/thttpd-binfs/defconfig b/configs/lincoln60/thttpd-binfs/defconfig index fe49078c52..818eb2da4d 100644 --- a/configs/lincoln60/thttpd-binfs/defconfig +++ b/configs/lincoln60/thttpd-binfs/defconfig @@ -478,15 +478,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/lm3s6432-s2e/nsh/defconfig b/configs/lm3s6432-s2e/nsh/defconfig index 0c8509b814..038ba39dd3 100644 --- a/configs/lm3s6432-s2e/nsh/defconfig +++ b/configs/lm3s6432-s2e/nsh/defconfig @@ -497,15 +497,15 @@ CONFIG_ARCH_HAVE_UART1=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/lm3s6965-ek/discover/defconfig b/configs/lm3s6965-ek/discover/defconfig index 3a0a9d9745..7d82470a69 100644 --- a/configs/lm3s6965-ek/discover/defconfig +++ b/configs/lm3s6965-ek/discover/defconfig @@ -524,15 +524,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/lm3s6965-ek/nsh/defconfig b/configs/lm3s6965-ek/nsh/defconfig index 3a0a9d9745..7d82470a69 100644 --- a/configs/lm3s6965-ek/nsh/defconfig +++ b/configs/lm3s6965-ek/nsh/defconfig @@ -524,15 +524,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/lm3s6965-ek/nx/defconfig b/configs/lm3s6965-ek/nx/defconfig index bdafa45c25..4ba6709ff8 100644 --- a/configs/lm3s6965-ek/nx/defconfig +++ b/configs/lm3s6965-ek/nx/defconfig @@ -503,15 +503,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/lm3s6965-ek/tcpecho/defconfig b/configs/lm3s6965-ek/tcpecho/defconfig index a50ae7f2bc..8ca607e55b 100644 --- a/configs/lm3s6965-ek/tcpecho/defconfig +++ b/configs/lm3s6965-ek/tcpecho/defconfig @@ -493,15 +493,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/lm3s8962-ek/nsh/defconfig b/configs/lm3s8962-ek/nsh/defconfig index 0a28a1cea2..f4d3b1e559 100644 --- a/configs/lm3s8962-ek/nsh/defconfig +++ b/configs/lm3s8962-ek/nsh/defconfig @@ -534,15 +534,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/lm3s8962-ek/nx/defconfig b/configs/lm3s8962-ek/nx/defconfig index db5c996245..0e4ec4c0f0 100644 --- a/configs/lm3s8962-ek/nx/defconfig +++ b/configs/lm3s8962-ek/nx/defconfig @@ -513,15 +513,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/lm4f120-launchpad/nsh/defconfig b/configs/lm4f120-launchpad/nsh/defconfig index 8156396e3e..202bf3b21d 100644 --- a/configs/lm4f120-launchpad/nsh/defconfig +++ b/configs/lm4f120-launchpad/nsh/defconfig @@ -339,15 +339,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/lpc4330-xplorer/nsh/defconfig b/configs/lpc4330-xplorer/nsh/defconfig index 5250c0f226..8f6fce275f 100644 --- a/configs/lpc4330-xplorer/nsh/defconfig +++ b/configs/lpc4330-xplorer/nsh/defconfig @@ -483,15 +483,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -CONFIG_ARCH_HAVE_USART0=y -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +CONFIG_USART0_SERIALDRIVER=y +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/lpc4337-ws/nsh/defconfig b/configs/lpc4337-ws/nsh/defconfig index 52536d55b2..db88503c5e 100644 --- a/configs/lpc4337-ws/nsh/defconfig +++ b/configs/lpc4337-ws/nsh/defconfig @@ -480,15 +480,15 @@ CONFIG_SERIAL_REMOVABLE=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -CONFIG_ARCH_HAVE_USART2=y -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +CONFIG_USART2_SERIALDRIVER=y +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/lpc4357-evb/nsh/defconfig b/configs/lpc4357-evb/nsh/defconfig index 68050c94d6..38f28e5b1f 100644 --- a/configs/lpc4357-evb/nsh/defconfig +++ b/configs/lpc4357-evb/nsh/defconfig @@ -415,15 +415,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -CONFIG_ARCH_HAVE_USART0=y -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +CONFIG_USART0_SERIALDRIVER=y +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/lpc4370-link2/nsh/defconfig b/configs/lpc4370-link2/nsh/defconfig index 949db2b1e7..ce92dc62fc 100644 --- a/configs/lpc4370-link2/nsh/defconfig +++ b/configs/lpc4370-link2/nsh/defconfig @@ -478,15 +478,15 @@ CONFIG_SERIAL_REMOVABLE=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -CONFIG_ARCH_HAVE_USART2=y -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +CONFIG_USART2_SERIALDRIVER=y +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/lpcxpresso-lpc1115/minnsh/defconfig b/configs/lpcxpresso-lpc1115/minnsh/defconfig index d17358614b..ec14cf206e 100644 --- a/configs/lpcxpresso-lpc1115/minnsh/defconfig +++ b/configs/lpcxpresso-lpc1115/minnsh/defconfig @@ -379,15 +379,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/lpcxpresso-lpc1115/nsh/defconfig b/configs/lpcxpresso-lpc1115/nsh/defconfig index bca4b63188..537af7256b 100644 --- a/configs/lpcxpresso-lpc1115/nsh/defconfig +++ b/configs/lpcxpresso-lpc1115/nsh/defconfig @@ -397,15 +397,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/lpcxpresso-lpc1768/dhcpd/defconfig b/configs/lpcxpresso-lpc1768/dhcpd/defconfig index c7504dbae6..d5453e720d 100644 --- a/configs/lpcxpresso-lpc1768/dhcpd/defconfig +++ b/configs/lpcxpresso-lpc1768/dhcpd/defconfig @@ -469,15 +469,15 @@ CONFIG_ARCH_HAVE_UART3=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/lpcxpresso-lpc1768/nsh/defconfig b/configs/lpcxpresso-lpc1768/nsh/defconfig index 2726b4626c..ba4086d4b6 100644 --- a/configs/lpcxpresso-lpc1768/nsh/defconfig +++ b/configs/lpcxpresso-lpc1768/nsh/defconfig @@ -549,15 +549,15 @@ CONFIG_ARCH_HAVE_UART3=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/lpcxpresso-lpc1768/nx/defconfig b/configs/lpcxpresso-lpc1768/nx/defconfig index bc3568b5ae..8c5f96c23a 100644 --- a/configs/lpcxpresso-lpc1768/nx/defconfig +++ b/configs/lpcxpresso-lpc1768/nx/defconfig @@ -481,15 +481,15 @@ CONFIG_ARCH_HAVE_UART3=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/lpcxpresso-lpc1768/thttpd/defconfig b/configs/lpcxpresso-lpc1768/thttpd/defconfig index 5fc4662adc..ea70979283 100644 --- a/configs/lpcxpresso-lpc1768/thttpd/defconfig +++ b/configs/lpcxpresso-lpc1768/thttpd/defconfig @@ -469,15 +469,15 @@ CONFIG_ARCH_HAVE_UART3=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/lpcxpresso-lpc1768/usbmsc/defconfig b/configs/lpcxpresso-lpc1768/usbmsc/defconfig index 8d68fff8ce..19c92e7140 100644 --- a/configs/lpcxpresso-lpc1768/usbmsc/defconfig +++ b/configs/lpcxpresso-lpc1768/usbmsc/defconfig @@ -459,15 +459,15 @@ CONFIG_ARCH_HAVE_UART3=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/maple/nsh/defconfig b/configs/maple/nsh/defconfig index b791dbad74..b2cc8f0667 100644 --- a/configs/maple/nsh/defconfig +++ b/configs/maple/nsh/defconfig @@ -679,15 +679,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/maple/nx/defconfig b/configs/maple/nx/defconfig index 3d35cb2cfc..8cf34e5cea 100644 --- a/configs/maple/nx/defconfig +++ b/configs/maple/nx/defconfig @@ -759,15 +759,15 @@ CONFIG_SERIAL_REMOVABLE=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/maple/usbnsh/defconfig b/configs/maple/usbnsh/defconfig index be3bc097cb..2d3e031c57 100644 --- a/configs/maple/usbnsh/defconfig +++ b/configs/maple/usbnsh/defconfig @@ -686,15 +686,15 @@ CONFIG_SERIAL_REMOVABLE=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/mbed/nsh/defconfig b/configs/mbed/nsh/defconfig index 420f83f991..48e7e08719 100644 --- a/configs/mbed/nsh/defconfig +++ b/configs/mbed/nsh/defconfig @@ -465,15 +465,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/mcu123-lpc214x/composite/defconfig b/configs/mcu123-lpc214x/composite/defconfig index 770a258eba..10aa2a5868 100644 --- a/configs/mcu123-lpc214x/composite/defconfig +++ b/configs/mcu123-lpc214x/composite/defconfig @@ -400,15 +400,15 @@ CONFIG_ARCH_HAVE_UART1=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/mcu123-lpc214x/nsh/defconfig b/configs/mcu123-lpc214x/nsh/defconfig index ba8ec854ec..aee32c2d84 100644 --- a/configs/mcu123-lpc214x/nsh/defconfig +++ b/configs/mcu123-lpc214x/nsh/defconfig @@ -397,15 +397,15 @@ CONFIG_ARCH_HAVE_UART1=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/mcu123-lpc214x/usbmsc/defconfig b/configs/mcu123-lpc214x/usbmsc/defconfig index 68b89aa148..cd838db1c5 100644 --- a/configs/mcu123-lpc214x/usbmsc/defconfig +++ b/configs/mcu123-lpc214x/usbmsc/defconfig @@ -399,15 +399,15 @@ CONFIG_ARCH_HAVE_UART1=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/mcu123-lpc214x/usbserial/defconfig b/configs/mcu123-lpc214x/usbserial/defconfig index bd06293269..3ab9651318 100644 --- a/configs/mcu123-lpc214x/usbserial/defconfig +++ b/configs/mcu123-lpc214x/usbserial/defconfig @@ -421,15 +421,15 @@ CONFIG_ARCH_HAVE_UART1=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/micropendous3/hello/defconfig b/configs/micropendous3/hello/defconfig index 688b012fc2..83b31bfeb6 100644 --- a/configs/micropendous3/hello/defconfig +++ b/configs/micropendous3/hello/defconfig @@ -246,7 +246,7 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y CONFIG_DEV_LOWCONSOLE=y # CONFIG_16550_UART is not set -CONFIG_ARCH_HAVE_USART1=y +CONFIG_USART1_SERIALDRIVER=y # # USART Configuration diff --git a/configs/mikroe-stm32f4/fulldemo/defconfig b/configs/mikroe-stm32f4/fulldemo/defconfig index 0475e67b8f..6bc9f3c07e 100644 --- a/configs/mikroe-stm32f4/fulldemo/defconfig +++ b/configs/mikroe-stm32f4/fulldemo/defconfig @@ -864,15 +864,15 @@ CONFIG_SERIAL_REMOVABLE=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -CONFIG_ARCH_HAVE_USART2=y -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +CONFIG_USART2_SERIALDRIVER=y +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/mikroe-stm32f4/kostest/defconfig b/configs/mikroe-stm32f4/kostest/defconfig index ce0b865be0..b3ac87b570 100644 --- a/configs/mikroe-stm32f4/kostest/defconfig +++ b/configs/mikroe-stm32f4/kostest/defconfig @@ -815,15 +815,15 @@ CONFIG_SERIAL_REMOVABLE=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -CONFIG_ARCH_HAVE_USART2=y -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +CONFIG_USART2_SERIALDRIVER=y +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/mikroe-stm32f4/nsh/defconfig b/configs/mikroe-stm32f4/nsh/defconfig index b4116fb37d..748ecf25c5 100644 --- a/configs/mikroe-stm32f4/nsh/defconfig +++ b/configs/mikroe-stm32f4/nsh/defconfig @@ -782,15 +782,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -CONFIG_ARCH_HAVE_USART2=y -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +CONFIG_USART2_SERIALDRIVER=y +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/mikroe-stm32f4/usbnsh/defconfig b/configs/mikroe-stm32f4/usbnsh/defconfig index 1549f45fa1..8dd59631ed 100644 --- a/configs/mikroe-stm32f4/usbnsh/defconfig +++ b/configs/mikroe-stm32f4/usbnsh/defconfig @@ -791,15 +791,15 @@ CONFIG_SERIAL_REMOVABLE=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -CONFIG_ARCH_HAVE_USART2=y -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +CONFIG_USART2_SERIALDRIVER=y +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/mirtoo/nsh/defconfig b/configs/mirtoo/nsh/defconfig index 168cfab8dd..4ed3d6ac5c 100644 --- a/configs/mirtoo/nsh/defconfig +++ b/configs/mirtoo/nsh/defconfig @@ -487,15 +487,15 @@ CONFIG_ARCH_HAVE_UART1=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/mirtoo/nxffs/defconfig b/configs/mirtoo/nxffs/defconfig index ffe67df93d..9608a41627 100644 --- a/configs/mirtoo/nxffs/defconfig +++ b/configs/mirtoo/nxffs/defconfig @@ -518,15 +518,15 @@ CONFIG_ARCH_HAVE_UART1=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/moteino-mega/hello/defconfig b/configs/moteino-mega/hello/defconfig index 66a682dbcc..c39180e244 100644 --- a/configs/moteino-mega/hello/defconfig +++ b/configs/moteino-mega/hello/defconfig @@ -286,15 +286,15 @@ CONFIG_DEV_LOWCONSOLE=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -CONFIG_ARCH_HAVE_USART0=y -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +CONFIG_USART0_SERIALDRIVER=y +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/moteino-mega/nsh/defconfig b/configs/moteino-mega/nsh/defconfig index 852f653da5..985a30b15a 100644 --- a/configs/moteino-mega/nsh/defconfig +++ b/configs/moteino-mega/nsh/defconfig @@ -294,15 +294,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -CONFIG_ARCH_HAVE_USART0=y -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +CONFIG_USART0_SERIALDRIVER=y +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/moxa/nsh/defconfig b/configs/moxa/nsh/defconfig index 20cf894fdf..8a47bad86e 100644 --- a/configs/moxa/nsh/defconfig +++ b/configs/moxa/nsh/defconfig @@ -438,15 +438,15 @@ CONFIG_16550_ADDRWIDTH=32 # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/mx1ads/ostest/defconfig b/configs/mx1ads/ostest/defconfig index 73b264ce0c..011b308b3d 100644 --- a/configs/mx1ads/ostest/defconfig +++ b/configs/mx1ads/ostest/defconfig @@ -332,15 +332,15 @@ CONFIG_ARCH_HAVE_UART1=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/ntosd-dm320/nettest/defconfig b/configs/ntosd-dm320/nettest/defconfig index 2cc06a37a6..ef8a148900 100644 --- a/configs/ntosd-dm320/nettest/defconfig +++ b/configs/ntosd-dm320/nettest/defconfig @@ -382,15 +382,15 @@ CONFIG_ARCH_HAVE_UART1=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/ntosd-dm320/nsh/defconfig b/configs/ntosd-dm320/nsh/defconfig index c295c303a2..594ce073c9 100644 --- a/configs/ntosd-dm320/nsh/defconfig +++ b/configs/ntosd-dm320/nsh/defconfig @@ -401,15 +401,15 @@ CONFIG_ARCH_HAVE_UART1=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/ntosd-dm320/poll/defconfig b/configs/ntosd-dm320/poll/defconfig index cd4a2b6caf..7f38a00a7b 100644 --- a/configs/ntosd-dm320/poll/defconfig +++ b/configs/ntosd-dm320/poll/defconfig @@ -380,15 +380,15 @@ CONFIG_ARCH_HAVE_UART1=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/ntosd-dm320/thttpd/defconfig b/configs/ntosd-dm320/thttpd/defconfig index beca63893f..d60f86b5f8 100644 --- a/configs/ntosd-dm320/thttpd/defconfig +++ b/configs/ntosd-dm320/thttpd/defconfig @@ -373,15 +373,15 @@ CONFIG_ARCH_HAVE_UART1=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/ntosd-dm320/udp/defconfig b/configs/ntosd-dm320/udp/defconfig index aaf9d91370..30790e6b1f 100644 --- a/configs/ntosd-dm320/udp/defconfig +++ b/configs/ntosd-dm320/udp/defconfig @@ -353,15 +353,15 @@ CONFIG_ARCH_HAVE_UART1=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/ntosd-dm320/webserver/defconfig b/configs/ntosd-dm320/webserver/defconfig index 1ddee5d559..30439d2e69 100644 --- a/configs/ntosd-dm320/webserver/defconfig +++ b/configs/ntosd-dm320/webserver/defconfig @@ -387,15 +387,15 @@ CONFIG_ARCH_HAVE_UART1=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/nucleo-144/evalos/defconfig b/configs/nucleo-144/evalos/defconfig index 70b6f0d06e..c4ef30b28d 100644 --- a/configs/nucleo-144/evalos/defconfig +++ b/configs/nucleo-144/evalos/defconfig @@ -511,15 +511,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -CONFIG_ARCH_HAVE_USART3=y -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +CONFIG_USART3_SERIALDRIVER=y +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/nucleo-144/nsh/defconfig b/configs/nucleo-144/nsh/defconfig index f7fe7e2ebb..22528d0cf1 100644 --- a/configs/nucleo-144/nsh/defconfig +++ b/configs/nucleo-144/nsh/defconfig @@ -496,15 +496,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -CONFIG_ARCH_HAVE_USART6=y -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +CONFIG_USART6_SERIALDRIVER=y +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/nucleo-f303re/serialrx/defconfig b/configs/nucleo-f303re/serialrx/defconfig index 4748e044c4..358b3a69b9 100644 --- a/configs/nucleo-f303re/serialrx/defconfig +++ b/configs/nucleo-f303re/serialrx/defconfig @@ -702,15 +702,15 @@ CONFIG_ARCH_HAVE_UART4=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/nucleo-f4x1re/f401-nsh/defconfig b/configs/nucleo-f4x1re/f401-nsh/defconfig index 6ac2b9ea55..1da9f921f0 100644 --- a/configs/nucleo-f4x1re/f401-nsh/defconfig +++ b/configs/nucleo-f4x1re/f401-nsh/defconfig @@ -694,15 +694,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -CONFIG_ARCH_HAVE_USART2=y -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +CONFIG_USART2_SERIALDRIVER=y +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/nucleo-f4x1re/f411-nsh/defconfig b/configs/nucleo-f4x1re/f411-nsh/defconfig index df0a12a77e..98ce6509ec 100644 --- a/configs/nucleo-f4x1re/f411-nsh/defconfig +++ b/configs/nucleo-f4x1re/f411-nsh/defconfig @@ -696,15 +696,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -CONFIG_ARCH_HAVE_USART2=y -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +CONFIG_USART2_SERIALDRIVER=y +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/nucleo-l476rg/nsh/defconfig b/configs/nucleo-l476rg/nsh/defconfig index a4c6871564..22360b58db 100644 --- a/configs/nucleo-l476rg/nsh/defconfig +++ b/configs/nucleo-l476rg/nsh/defconfig @@ -571,15 +571,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -CONFIG_ARCH_HAVE_USART2=y -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +CONFIG_USART2_SERIALDRIVER=y +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/olimex-efm32g880f128-stk/nsh/defconfig b/configs/olimex-efm32g880f128-stk/nsh/defconfig index 8783912c3e..a65bda2765 100644 --- a/configs/olimex-efm32g880f128-stk/nsh/defconfig +++ b/configs/olimex-efm32g880f128-stk/nsh/defconfig @@ -386,15 +386,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set CONFIG_ARCH_HAVE_OTHER_UART=y # diff --git a/configs/olimex-lpc-h3131/nsh/defconfig b/configs/olimex-lpc-h3131/nsh/defconfig index 2e88b0d088..65ef51193b 100644 --- a/configs/olimex-lpc-h3131/nsh/defconfig +++ b/configs/olimex-lpc-h3131/nsh/defconfig @@ -394,15 +394,15 @@ CONFIG_ARCH_HAVE_UART=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/olimex-lpc1766stk/ftpc/defconfig b/configs/olimex-lpc1766stk/ftpc/defconfig index bcad3a75a0..6714d62bfa 100644 --- a/configs/olimex-lpc1766stk/ftpc/defconfig +++ b/configs/olimex-lpc1766stk/ftpc/defconfig @@ -504,15 +504,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/olimex-lpc1766stk/hidkbd/defconfig b/configs/olimex-lpc1766stk/hidkbd/defconfig index 57ff6174b3..03bb0d1eff 100644 --- a/configs/olimex-lpc1766stk/hidkbd/defconfig +++ b/configs/olimex-lpc1766stk/hidkbd/defconfig @@ -471,15 +471,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/olimex-lpc1766stk/hidmouse/defconfig b/configs/olimex-lpc1766stk/hidmouse/defconfig index 9128e7a1ba..ddfb8a48c6 100644 --- a/configs/olimex-lpc1766stk/hidmouse/defconfig +++ b/configs/olimex-lpc1766stk/hidmouse/defconfig @@ -490,15 +490,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/olimex-lpc1766stk/nettest/defconfig b/configs/olimex-lpc1766stk/nettest/defconfig index 9913ba909f..ef8f79d81f 100644 --- a/configs/olimex-lpc1766stk/nettest/defconfig +++ b/configs/olimex-lpc1766stk/nettest/defconfig @@ -481,15 +481,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/olimex-lpc1766stk/nsh/defconfig b/configs/olimex-lpc1766stk/nsh/defconfig index 402f585146..602a33c0c0 100644 --- a/configs/olimex-lpc1766stk/nsh/defconfig +++ b/configs/olimex-lpc1766stk/nsh/defconfig @@ -546,15 +546,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/olimex-lpc1766stk/nx/defconfig b/configs/olimex-lpc1766stk/nx/defconfig index cefbb19eb2..0f7fcfdef4 100644 --- a/configs/olimex-lpc1766stk/nx/defconfig +++ b/configs/olimex-lpc1766stk/nx/defconfig @@ -493,15 +493,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/olimex-lpc1766stk/slip-httpd/defconfig b/configs/olimex-lpc1766stk/slip-httpd/defconfig index 9b7dacd49d..1a95d237da 100644 --- a/configs/olimex-lpc1766stk/slip-httpd/defconfig +++ b/configs/olimex-lpc1766stk/slip-httpd/defconfig @@ -426,15 +426,15 @@ CONFIG_ARCH_HAVE_UART1=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/olimex-lpc1766stk/thttpd-binfs/defconfig b/configs/olimex-lpc1766stk/thttpd-binfs/defconfig index af5952f544..2dca82b8cd 100644 --- a/configs/olimex-lpc1766stk/thttpd-binfs/defconfig +++ b/configs/olimex-lpc1766stk/thttpd-binfs/defconfig @@ -478,15 +478,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/olimex-lpc1766stk/thttpd-nxflat/defconfig b/configs/olimex-lpc1766stk/thttpd-nxflat/defconfig index e6bb9d820b..3ece14e2e0 100644 --- a/configs/olimex-lpc1766stk/thttpd-nxflat/defconfig +++ b/configs/olimex-lpc1766stk/thttpd-nxflat/defconfig @@ -470,15 +470,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/olimex-lpc1766stk/usbmsc/defconfig b/configs/olimex-lpc1766stk/usbmsc/defconfig index c534bd4556..22959b44cb 100644 --- a/configs/olimex-lpc1766stk/usbmsc/defconfig +++ b/configs/olimex-lpc1766stk/usbmsc/defconfig @@ -461,15 +461,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/olimex-lpc1766stk/usbserial/defconfig b/configs/olimex-lpc1766stk/usbserial/defconfig index 90b9bfad37..fd02b4354b 100644 --- a/configs/olimex-lpc1766stk/usbserial/defconfig +++ b/configs/olimex-lpc1766stk/usbserial/defconfig @@ -485,15 +485,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/olimex-lpc1766stk/zmodem/defconfig b/configs/olimex-lpc1766stk/zmodem/defconfig index 9a1e0933a8..99cd00b84e 100644 --- a/configs/olimex-lpc1766stk/zmodem/defconfig +++ b/configs/olimex-lpc1766stk/zmodem/defconfig @@ -524,15 +524,15 @@ CONFIG_ARCH_HAVE_UART1=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/olimex-lpc2378/nsh/defconfig b/configs/olimex-lpc2378/nsh/defconfig index 63e4b7cb56..9c1fe48dc7 100644 --- a/configs/olimex-lpc2378/nsh/defconfig +++ b/configs/olimex-lpc2378/nsh/defconfig @@ -391,15 +391,15 @@ CONFIG_ARCH_HAVE_UART2=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/olimex-stm32-h405/usbnsh/defconfig b/configs/olimex-stm32-h405/usbnsh/defconfig index 4b3b04b27b..3c6e2c797b 100644 --- a/configs/olimex-stm32-h405/usbnsh/defconfig +++ b/configs/olimex-stm32-h405/usbnsh/defconfig @@ -758,15 +758,15 @@ CONFIG_SERIAL_REMOVABLE=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -CONFIG_ARCH_HAVE_USART3=y -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +CONFIG_USART3_SERIALDRIVER=y +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/olimex-stm32-h407/nsh/defconfig b/configs/olimex-stm32-h407/nsh/defconfig index edcd8070ec..b593835011 100644 --- a/configs/olimex-stm32-h407/nsh/defconfig +++ b/configs/olimex-stm32-h407/nsh/defconfig @@ -718,15 +718,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -CONFIG_ARCH_HAVE_USART2=y -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +CONFIG_USART2_SERIALDRIVER=y +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/olimex-stm32-p107/nsh/defconfig b/configs/olimex-stm32-p107/nsh/defconfig index b867a39067..f8e39d8ed2 100644 --- a/configs/olimex-stm32-p107/nsh/defconfig +++ b/configs/olimex-stm32-p107/nsh/defconfig @@ -785,15 +785,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -CONFIG_ARCH_HAVE_USART2=y -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +CONFIG_USART2_SERIALDRIVER=y +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/olimex-stm32-p207/nsh/defconfig b/configs/olimex-stm32-p207/nsh/defconfig index 8e72e8d52a..10fc863e5d 100644 --- a/configs/olimex-stm32-p207/nsh/defconfig +++ b/configs/olimex-stm32-p207/nsh/defconfig @@ -825,15 +825,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -CONFIG_ARCH_HAVE_USART3=y -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +CONFIG_USART3_SERIALDRIVER=y +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/olimex-strp711/nettest/defconfig b/configs/olimex-strp711/nettest/defconfig index f8c48131aa..33899f8069 100644 --- a/configs/olimex-strp711/nettest/defconfig +++ b/configs/olimex-strp711/nettest/defconfig @@ -425,15 +425,15 @@ CONFIG_ARCH_HAVE_UART1=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/olimexino-stm32/can/defconfig b/configs/olimexino-stm32/can/defconfig index b8c9da6ec5..78fd6284f3 100644 --- a/configs/olimexino-stm32/can/defconfig +++ b/configs/olimexino-stm32/can/defconfig @@ -755,15 +755,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/olimexino-stm32/composite/defconfig b/configs/olimexino-stm32/composite/defconfig index 3dfff329ac..c2bd4bca53 100644 --- a/configs/olimexino-stm32/composite/defconfig +++ b/configs/olimexino-stm32/composite/defconfig @@ -757,15 +757,15 @@ CONFIG_SERIAL_REMOVABLE=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -CONFIG_ARCH_HAVE_USART2=y -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +CONFIG_USART2_SERIALDRIVER=y +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/olimexino-stm32/nsh/defconfig b/configs/olimexino-stm32/nsh/defconfig index 63b15cb7fc..8ce04fc098 100644 --- a/configs/olimexino-stm32/nsh/defconfig +++ b/configs/olimexino-stm32/nsh/defconfig @@ -755,15 +755,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -CONFIG_ARCH_HAVE_USART2=y -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +CONFIG_USART2_SERIALDRIVER=y +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/olimexino-stm32/smallnsh/defconfig b/configs/olimexino-stm32/smallnsh/defconfig index fbaa9d791e..98992c1d36 100644 --- a/configs/olimexino-stm32/smallnsh/defconfig +++ b/configs/olimexino-stm32/smallnsh/defconfig @@ -733,15 +733,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/olimexino-stm32/tiny/defconfig b/configs/olimexino-stm32/tiny/defconfig index d4c89d090a..d0322f2283 100644 --- a/configs/olimexino-stm32/tiny/defconfig +++ b/configs/olimexino-stm32/tiny/defconfig @@ -737,15 +737,15 @@ CONFIG_DEV_LOWCONSOLE=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/open1788/knsh/defconfig b/configs/open1788/knsh/defconfig index 9081e8dba9..b37370d9d7 100644 --- a/configs/open1788/knsh/defconfig +++ b/configs/open1788/knsh/defconfig @@ -438,15 +438,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/open1788/nsh/defconfig b/configs/open1788/nsh/defconfig index 13381a0bb9..6dbdb78af8 100644 --- a/configs/open1788/nsh/defconfig +++ b/configs/open1788/nsh/defconfig @@ -475,15 +475,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/pcblogic-pic32mx/nsh/defconfig b/configs/pcblogic-pic32mx/nsh/defconfig index 35dc776145..b0e5473faa 100644 --- a/configs/pcblogic-pic32mx/nsh/defconfig +++ b/configs/pcblogic-pic32mx/nsh/defconfig @@ -484,15 +484,15 @@ CONFIG_ARCH_HAVE_UART1=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/pcduino-a10/nsh/defconfig b/configs/pcduino-a10/nsh/defconfig index a2bf40bf07..93ad5a580c 100644 --- a/configs/pcduino-a10/nsh/defconfig +++ b/configs/pcduino-a10/nsh/defconfig @@ -428,15 +428,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/pic32mx-starterkit/nsh/defconfig b/configs/pic32mx-starterkit/nsh/defconfig index 2ed828d489..0a76a116ab 100644 --- a/configs/pic32mx-starterkit/nsh/defconfig +++ b/configs/pic32mx-starterkit/nsh/defconfig @@ -523,15 +523,15 @@ CONFIG_ARCH_HAVE_UART1=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/pic32mx-starterkit/nsh2/defconfig b/configs/pic32mx-starterkit/nsh2/defconfig index d6d57e13e8..6f5dd05d1d 100644 --- a/configs/pic32mx-starterkit/nsh2/defconfig +++ b/configs/pic32mx-starterkit/nsh2/defconfig @@ -582,15 +582,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/pic32mx7mmb/nsh/defconfig b/configs/pic32mx7mmb/nsh/defconfig index 64bd042c81..8b865ddcfb 100644 --- a/configs/pic32mx7mmb/nsh/defconfig +++ b/configs/pic32mx7mmb/nsh/defconfig @@ -600,15 +600,15 @@ CONFIG_ARCH_HAVE_UART1=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/pic32mz-starterkit/nsh/defconfig b/configs/pic32mz-starterkit/nsh/defconfig index 983aa75086..27ea83843c 100644 --- a/configs/pic32mz-starterkit/nsh/defconfig +++ b/configs/pic32mz-starterkit/nsh/defconfig @@ -450,15 +450,15 @@ CONFIG_ARCH_HAVE_UART1=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/pirelli_dpl10/nsh_highram/defconfig b/configs/pirelli_dpl10/nsh_highram/defconfig index c24e5a51ec..b7fab7bf4f 100644 --- a/configs/pirelli_dpl10/nsh_highram/defconfig +++ b/configs/pirelli_dpl10/nsh_highram/defconfig @@ -381,15 +381,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set CONFIG_ARCH_HAVE_OTHER_UART=y # diff --git a/configs/qemu-i486/nsh/defconfig b/configs/qemu-i486/nsh/defconfig index 68cf8bcff9..9a6a2ec0da 100644 --- a/configs/qemu-i486/nsh/defconfig +++ b/configs/qemu-i486/nsh/defconfig @@ -276,15 +276,15 @@ CONFIG_16550_ADDRWIDTH=16 # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/qemu-i486/ostest/defconfig b/configs/qemu-i486/ostest/defconfig index 75ebb89269..f1c8d535f4 100644 --- a/configs/qemu-i486/ostest/defconfig +++ b/configs/qemu-i486/ostest/defconfig @@ -254,15 +254,15 @@ CONFIG_DEV_LOWCONSOLE=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/rgmp/arm/default/defconfig b/configs/rgmp/arm/default/defconfig index 5089009ade..f3816df6f0 100644 --- a/configs/rgmp/arm/default/defconfig +++ b/configs/rgmp/arm/default/defconfig @@ -255,15 +255,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/rgmp/arm/nsh/defconfig b/configs/rgmp/arm/nsh/defconfig index e6422b4709..b18170f1f8 100644 --- a/configs/rgmp/arm/nsh/defconfig +++ b/configs/rgmp/arm/nsh/defconfig @@ -277,15 +277,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/rgmp/x86/cxxtest/defconfig b/configs/rgmp/x86/cxxtest/defconfig index 80f6559d66..8c335cb8cf 100644 --- a/configs/rgmp/x86/cxxtest/defconfig +++ b/configs/rgmp/x86/cxxtest/defconfig @@ -284,15 +284,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/rgmp/x86/default/defconfig b/configs/rgmp/x86/default/defconfig index 58c51f727b..65cb9471d0 100644 --- a/configs/rgmp/x86/default/defconfig +++ b/configs/rgmp/x86/default/defconfig @@ -263,15 +263,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/rgmp/x86/helloxx/defconfig b/configs/rgmp/x86/helloxx/defconfig index d7f663d4cb..13b1ed085f 100644 --- a/configs/rgmp/x86/helloxx/defconfig +++ b/configs/rgmp/x86/helloxx/defconfig @@ -284,15 +284,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/rgmp/x86/nsh/defconfig b/configs/rgmp/x86/nsh/defconfig index 74022b3e8d..047f5ede39 100644 --- a/configs/rgmp/x86/nsh/defconfig +++ b/configs/rgmp/x86/nsh/defconfig @@ -285,15 +285,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sabre-6quad/nsh/defconfig b/configs/sabre-6quad/nsh/defconfig index a1e68fea0c..ed27e3bc30 100644 --- a/configs/sabre-6quad/nsh/defconfig +++ b/configs/sabre-6quad/nsh/defconfig @@ -440,15 +440,15 @@ CONFIG_ARCH_HAVE_UART1=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/sabre-6quad/smp/defconfig b/configs/sabre-6quad/smp/defconfig index 81f1b94dbe..001fa98ee0 100644 --- a/configs/sabre-6quad/smp/defconfig +++ b/configs/sabre-6quad/smp/defconfig @@ -447,15 +447,15 @@ CONFIG_ARCH_HAVE_UART1=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/sam3u-ek/knsh/defconfig b/configs/sam3u-ek/knsh/defconfig index d6568a852c..8bbad22302 100644 --- a/configs/sam3u-ek/knsh/defconfig +++ b/configs/sam3u-ek/knsh/defconfig @@ -516,15 +516,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/sam3u-ek/nsh/defconfig b/configs/sam3u-ek/nsh/defconfig index 5785925293..b2980d6a5e 100644 --- a/configs/sam3u-ek/nsh/defconfig +++ b/configs/sam3u-ek/nsh/defconfig @@ -503,15 +503,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/sam3u-ek/nx/defconfig b/configs/sam3u-ek/nx/defconfig index a67abe25d4..6bbbda36e0 100644 --- a/configs/sam3u-ek/nx/defconfig +++ b/configs/sam3u-ek/nx/defconfig @@ -530,15 +530,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/sam3u-ek/nxwm/defconfig b/configs/sam3u-ek/nxwm/defconfig index c8c85da004..2fb2b27a1f 100644 --- a/configs/sam3u-ek/nxwm/defconfig +++ b/configs/sam3u-ek/nxwm/defconfig @@ -576,15 +576,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/sam4e-ek/nsh/defconfig b/configs/sam4e-ek/nsh/defconfig index 1a2c586910..db0bc14f04 100644 --- a/configs/sam4e-ek/nsh/defconfig +++ b/configs/sam4e-ek/nsh/defconfig @@ -630,15 +630,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/sam4e-ek/nxwm/defconfig b/configs/sam4e-ek/nxwm/defconfig index 67b3f0cdc1..6c6684b420 100644 --- a/configs/sam4e-ek/nxwm/defconfig +++ b/configs/sam4e-ek/nxwm/defconfig @@ -693,15 +693,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/sam4e-ek/usbnsh/defconfig b/configs/sam4e-ek/usbnsh/defconfig index dce360c285..fb4a6ce8c7 100644 --- a/configs/sam4e-ek/usbnsh/defconfig +++ b/configs/sam4e-ek/usbnsh/defconfig @@ -631,15 +631,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/sam4l-xplained/nsh/defconfig b/configs/sam4l-xplained/nsh/defconfig index 2668c21012..5e4a8e467f 100644 --- a/configs/sam4l-xplained/nsh/defconfig +++ b/configs/sam4l-xplained/nsh/defconfig @@ -519,15 +519,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -CONFIG_ARCH_HAVE_USART0=y -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +CONFIG_USART0_SERIALDRIVER=y +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/sam4s-xplained-pro/nsh/defconfig b/configs/sam4s-xplained-pro/nsh/defconfig index 251b028c77..be86bf8645 100644 --- a/configs/sam4s-xplained-pro/nsh/defconfig +++ b/configs/sam4s-xplained-pro/nsh/defconfig @@ -571,15 +571,15 @@ CONFIG_ARCH_HAVE_UART1=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/sam4s-xplained/nsh/defconfig b/configs/sam4s-xplained/nsh/defconfig index a4292f7b45..c1bf248e5b 100644 --- a/configs/sam4s-xplained/nsh/defconfig +++ b/configs/sam4s-xplained/nsh/defconfig @@ -499,15 +499,15 @@ CONFIG_ARCH_HAVE_UART1=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/sama5d2-xult/nsh/defconfig b/configs/sama5d2-xult/nsh/defconfig index 064eb50ef5..0b57b6c674 100644 --- a/configs/sama5d2-xult/nsh/defconfig +++ b/configs/sama5d2-xult/nsh/defconfig @@ -583,15 +583,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -CONFIG_ARCH_HAVE_USART4=y -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +CONFIG_USART4_SERIALDRIVER=y +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/sama5d3-xplained/bridge/defconfig b/configs/sama5d3-xplained/bridge/defconfig index 72f4e68325..31cc2d8732 100644 --- a/configs/sama5d3-xplained/bridge/defconfig +++ b/configs/sama5d3-xplained/bridge/defconfig @@ -618,15 +618,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set CONFIG_ARCH_HAVE_OTHER_UART=y # diff --git a/configs/sama5d3-xplained/nsh/defconfig b/configs/sama5d3-xplained/nsh/defconfig index d24d9a19fa..bb714eb621 100644 --- a/configs/sama5d3-xplained/nsh/defconfig +++ b/configs/sama5d3-xplained/nsh/defconfig @@ -537,15 +537,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set CONFIG_ARCH_HAVE_OTHER_UART=y # diff --git a/configs/sama5d3x-ek/demo/defconfig b/configs/sama5d3x-ek/demo/defconfig index 71ae230463..7c5dd17c6d 100644 --- a/configs/sama5d3x-ek/demo/defconfig +++ b/configs/sama5d3x-ek/demo/defconfig @@ -660,15 +660,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/sama5d3x-ek/hello/defconfig b/configs/sama5d3x-ek/hello/defconfig index d6b76a8c74..684dda2419 100644 --- a/configs/sama5d3x-ek/hello/defconfig +++ b/configs/sama5d3x-ek/hello/defconfig @@ -518,15 +518,15 @@ CONFIG_DEV_LOWCONSOLE=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/sama5d3x-ek/norboot/defconfig b/configs/sama5d3x-ek/norboot/defconfig index b0481632b1..8b16930a0f 100644 --- a/configs/sama5d3x-ek/norboot/defconfig +++ b/configs/sama5d3x-ek/norboot/defconfig @@ -532,15 +532,15 @@ CONFIG_DEV_LOWCONSOLE=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/sama5d3x-ek/nsh/defconfig b/configs/sama5d3x-ek/nsh/defconfig index e0e8a622b1..9bee2c787c 100644 --- a/configs/sama5d3x-ek/nsh/defconfig +++ b/configs/sama5d3x-ek/nsh/defconfig @@ -536,15 +536,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/sama5d3x-ek/nx/defconfig b/configs/sama5d3x-ek/nx/defconfig index 7faf908eec..819ed31759 100644 --- a/configs/sama5d3x-ek/nx/defconfig +++ b/configs/sama5d3x-ek/nx/defconfig @@ -577,15 +577,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/sama5d3x-ek/nxplayer/defconfig b/configs/sama5d3x-ek/nxplayer/defconfig index b7495de3e8..66b257a3ab 100644 --- a/configs/sama5d3x-ek/nxplayer/defconfig +++ b/configs/sama5d3x-ek/nxplayer/defconfig @@ -635,15 +635,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/sama5d3x-ek/nxwm/defconfig b/configs/sama5d3x-ek/nxwm/defconfig index 1fbbd68798..5dc226610f 100644 --- a/configs/sama5d3x-ek/nxwm/defconfig +++ b/configs/sama5d3x-ek/nxwm/defconfig @@ -635,15 +635,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/sama5d3x-ek/ov2640/defconfig b/configs/sama5d3x-ek/ov2640/defconfig index e6d4510e1a..e5243b6d36 100644 --- a/configs/sama5d3x-ek/ov2640/defconfig +++ b/configs/sama5d3x-ek/ov2640/defconfig @@ -603,15 +603,15 @@ CONFIG_DEV_LOWCONSOLE=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/sama5d4-ek/at25boot/defconfig b/configs/sama5d4-ek/at25boot/defconfig index cec1129ef6..728907e4a3 100644 --- a/configs/sama5d4-ek/at25boot/defconfig +++ b/configs/sama5d4-ek/at25boot/defconfig @@ -596,15 +596,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -CONFIG_ARCH_HAVE_USART3=y -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +CONFIG_USART3_SERIALDRIVER=y +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/sama5d4-ek/bridge/defconfig b/configs/sama5d4-ek/bridge/defconfig index 39d09056da..48d1585091 100644 --- a/configs/sama5d4-ek/bridge/defconfig +++ b/configs/sama5d4-ek/bridge/defconfig @@ -636,15 +636,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -CONFIG_ARCH_HAVE_USART3=y -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +CONFIG_USART3_SERIALDRIVER=y +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/sama5d4-ek/dramboot/defconfig b/configs/sama5d4-ek/dramboot/defconfig index 05daad298e..c0a16f901d 100644 --- a/configs/sama5d4-ek/dramboot/defconfig +++ b/configs/sama5d4-ek/dramboot/defconfig @@ -553,15 +553,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -CONFIG_ARCH_HAVE_USART3=y -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +CONFIG_USART3_SERIALDRIVER=y +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/sama5d4-ek/elf/defconfig b/configs/sama5d4-ek/elf/defconfig index 3ac09f52df..daa9479c46 100644 --- a/configs/sama5d4-ek/elf/defconfig +++ b/configs/sama5d4-ek/elf/defconfig @@ -579,15 +579,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -CONFIG_ARCH_HAVE_USART3=y -CONFIG_ARCH_HAVE_USART4=y -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +CONFIG_USART3_SERIALDRIVER=y +CONFIG_USART4_SERIALDRIVER=y +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/sama5d4-ek/ipv6/defconfig b/configs/sama5d4-ek/ipv6/defconfig index e327a02d9a..dadbf96683 100644 --- a/configs/sama5d4-ek/ipv6/defconfig +++ b/configs/sama5d4-ek/ipv6/defconfig @@ -780,15 +780,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -CONFIG_ARCH_HAVE_USART3=y -CONFIG_ARCH_HAVE_USART4=y -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +CONFIG_USART3_SERIALDRIVER=y +CONFIG_USART4_SERIALDRIVER=y +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/sama5d4-ek/knsh/defconfig b/configs/sama5d4-ek/knsh/defconfig index ce61a0458e..3ca9ab656d 100644 --- a/configs/sama5d4-ek/knsh/defconfig +++ b/configs/sama5d4-ek/knsh/defconfig @@ -608,15 +608,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -CONFIG_ARCH_HAVE_USART3=y -CONFIG_ARCH_HAVE_USART4=y -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +CONFIG_USART3_SERIALDRIVER=y +CONFIG_USART4_SERIALDRIVER=y +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/sama5d4-ek/knsh/defconfig.ROMFS b/configs/sama5d4-ek/knsh/defconfig.ROMFS index 769bfdb403..23301c9454 100644 --- a/configs/sama5d4-ek/knsh/defconfig.ROMFS +++ b/configs/sama5d4-ek/knsh/defconfig.ROMFS @@ -499,15 +499,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -CONFIG_ARCH_HAVE_USART3=y -CONFIG_ARCH_HAVE_USART4=y -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +CONFIG_USART3_SERIALDRIVER=y +CONFIG_USART4_SERIALDRIVER=y +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sama5d4-ek/nsh/defconfig b/configs/sama5d4-ek/nsh/defconfig index 479649266e..2a095f113e 100644 --- a/configs/sama5d4-ek/nsh/defconfig +++ b/configs/sama5d4-ek/nsh/defconfig @@ -782,15 +782,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -CONFIG_ARCH_HAVE_USART3=y -CONFIG_ARCH_HAVE_USART4=y -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +CONFIG_USART3_SERIALDRIVER=y +CONFIG_USART4_SERIALDRIVER=y +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/sama5d4-ek/nxwm/defconfig b/configs/sama5d4-ek/nxwm/defconfig index b3bdbe8716..37b685cfaa 100644 --- a/configs/sama5d4-ek/nxwm/defconfig +++ b/configs/sama5d4-ek/nxwm/defconfig @@ -751,15 +751,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -CONFIG_ARCH_HAVE_USART3=y -CONFIG_ARCH_HAVE_USART4=y -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +CONFIG_USART3_SERIALDRIVER=y +CONFIG_USART4_SERIALDRIVER=y +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/sama5d4-ek/ramtest/defconfig b/configs/sama5d4-ek/ramtest/defconfig index f9981f1e3e..e8c86a4026 100644 --- a/configs/sama5d4-ek/ramtest/defconfig +++ b/configs/sama5d4-ek/ramtest/defconfig @@ -553,15 +553,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -CONFIG_ARCH_HAVE_USART3=y -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +CONFIG_USART3_SERIALDRIVER=y +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/samd20-xplained/nsh/defconfig b/configs/samd20-xplained/nsh/defconfig index e868b72f61..c23e0da226 100644 --- a/configs/samd20-xplained/nsh/defconfig +++ b/configs/samd20-xplained/nsh/defconfig @@ -482,15 +482,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -CONFIG_ARCH_HAVE_USART3=y -CONFIG_ARCH_HAVE_USART4=y -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +CONFIG_USART3_SERIALDRIVER=y +CONFIG_USART4_SERIALDRIVER=y +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/samd21-xplained/nsh/defconfig b/configs/samd21-xplained/nsh/defconfig index 70fb4c59cf..b8a789c0a7 100644 --- a/configs/samd21-xplained/nsh/defconfig +++ b/configs/samd21-xplained/nsh/defconfig @@ -480,15 +480,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -CONFIG_ARCH_HAVE_USART3=y -CONFIG_ARCH_HAVE_USART4=y -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +CONFIG_USART3_SERIALDRIVER=y +CONFIG_USART4_SERIALDRIVER=y +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/same70-xplained/netnsh/defconfig b/configs/same70-xplained/netnsh/defconfig index 88af9ee4ad..322cdf94ff 100644 --- a/configs/same70-xplained/netnsh/defconfig +++ b/configs/same70-xplained/netnsh/defconfig @@ -667,15 +667,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/same70-xplained/nsh/defconfig b/configs/same70-xplained/nsh/defconfig index 4f668b0230..ebab7544ce 100644 --- a/configs/same70-xplained/nsh/defconfig +++ b/configs/same70-xplained/nsh/defconfig @@ -609,15 +609,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/saml21-xplained/nsh/defconfig b/configs/saml21-xplained/nsh/defconfig index 2baa5782c3..1a86d3eaa6 100644 --- a/configs/saml21-xplained/nsh/defconfig +++ b/configs/saml21-xplained/nsh/defconfig @@ -468,15 +468,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -CONFIG_ARCH_HAVE_USART3=y -CONFIG_ARCH_HAVE_USART4=y -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +CONFIG_USART3_SERIALDRIVER=y +CONFIG_USART4_SERIALDRIVER=y +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/samv71-xult/knsh/defconfig b/configs/samv71-xult/knsh/defconfig index 2716784db2..3051681527 100644 --- a/configs/samv71-xult/knsh/defconfig +++ b/configs/samv71-xult/knsh/defconfig @@ -624,15 +624,15 @@ CONFIG_ARCH_HAVE_UART3=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/samv71-xult/module/defconfig b/configs/samv71-xult/module/defconfig index 8300fa0f3a..71b8d97bdb 100644 --- a/configs/samv71-xult/module/defconfig +++ b/configs/samv71-xult/module/defconfig @@ -540,15 +540,15 @@ CONFIG_ARCH_HAVE_UART3=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/samv71-xult/mxtxplnd/defconfig b/configs/samv71-xult/mxtxplnd/defconfig index 32751004cc..39d68102da 100644 --- a/configs/samv71-xult/mxtxplnd/defconfig +++ b/configs/samv71-xult/mxtxplnd/defconfig @@ -657,15 +657,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -CONFIG_ARCH_HAVE_USART0=y -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +CONFIG_USART0_SERIALDRIVER=y +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/samv71-xult/netnsh/defconfig b/configs/samv71-xult/netnsh/defconfig index c40145daf3..02909e801b 100644 --- a/configs/samv71-xult/netnsh/defconfig +++ b/configs/samv71-xult/netnsh/defconfig @@ -676,15 +676,15 @@ CONFIG_ARCH_HAVE_UART3=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/samv71-xult/nsh/defconfig b/configs/samv71-xult/nsh/defconfig index c3c64d50fa..5771acd6f6 100644 --- a/configs/samv71-xult/nsh/defconfig +++ b/configs/samv71-xult/nsh/defconfig @@ -617,15 +617,15 @@ CONFIG_ARCH_HAVE_UART3=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/samv71-xult/nxwm/defconfig b/configs/samv71-xult/nxwm/defconfig index e12363decd..3a1c5cc5b0 100644 --- a/configs/samv71-xult/nxwm/defconfig +++ b/configs/samv71-xult/nxwm/defconfig @@ -666,15 +666,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -CONFIG_ARCH_HAVE_USART0=y -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +CONFIG_USART0_SERIALDRIVER=y +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/samv71-xult/vnc/defconfig b/configs/samv71-xult/vnc/defconfig index 087f0b0f1d..7b7b1b6947 100644 --- a/configs/samv71-xult/vnc/defconfig +++ b/configs/samv71-xult/vnc/defconfig @@ -678,15 +678,15 @@ CONFIG_ARCH_HAVE_UART3=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/samv71-xult/vnxwm/defconfig b/configs/samv71-xult/vnxwm/defconfig index 3e074f2709..57395d3da4 100644 --- a/configs/samv71-xult/vnxwm/defconfig +++ b/configs/samv71-xult/vnxwm/defconfig @@ -681,15 +681,15 @@ CONFIG_ARCH_HAVE_UART3=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/shenzhou/nsh/defconfig b/configs/shenzhou/nsh/defconfig index d0b0b741d7..300708aa46 100644 --- a/configs/shenzhou/nsh/defconfig +++ b/configs/shenzhou/nsh/defconfig @@ -786,15 +786,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -CONFIG_ARCH_HAVE_USART2=y -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +CONFIG_USART2_SERIALDRIVER=y +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/shenzhou/nxwm/defconfig b/configs/shenzhou/nxwm/defconfig index 46709722a3..0d5f7e9f7b 100644 --- a/configs/shenzhou/nxwm/defconfig +++ b/configs/shenzhou/nxwm/defconfig @@ -855,15 +855,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -CONFIG_ARCH_HAVE_USART2=y -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +CONFIG_USART2_SERIALDRIVER=y +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/shenzhou/thttpd/defconfig b/configs/shenzhou/thttpd/defconfig index 6eab31a470..548f7f4feb 100644 --- a/configs/shenzhou/thttpd/defconfig +++ b/configs/shenzhou/thttpd/defconfig @@ -838,15 +838,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -CONFIG_ARCH_HAVE_USART2=y -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +CONFIG_USART2_SERIALDRIVER=y +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/sim/bas/defconfig b/configs/sim/bas/defconfig index 940018a8ad..1b09fca81e 100644 --- a/configs/sim/bas/defconfig +++ b/configs/sim/bas/defconfig @@ -317,15 +317,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/sim/configdata/defconfig b/configs/sim/configdata/defconfig index d03050535d..96ddf55b76 100644 --- a/configs/sim/configdata/defconfig +++ b/configs/sim/configdata/defconfig @@ -338,15 +338,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/sim/cxxtest/defconfig b/configs/sim/cxxtest/defconfig index 67bad24948..4ecca0e712 100644 --- a/configs/sim/cxxtest/defconfig +++ b/configs/sim/cxxtest/defconfig @@ -329,15 +329,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/sim/mount/defconfig b/configs/sim/mount/defconfig index 3465d1daed..34604c5ccd 100644 --- a/configs/sim/mount/defconfig +++ b/configs/sim/mount/defconfig @@ -328,15 +328,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/sim/mtdpart/defconfig b/configs/sim/mtdpart/defconfig index d8c84e8a95..e52b2d2a8f 100644 --- a/configs/sim/mtdpart/defconfig +++ b/configs/sim/mtdpart/defconfig @@ -336,15 +336,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/sim/mtdrwb/defconfig b/configs/sim/mtdrwb/defconfig index f4b0040929..e4a1832ea0 100644 --- a/configs/sim/mtdrwb/defconfig +++ b/configs/sim/mtdrwb/defconfig @@ -367,15 +367,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/sim/nettest/defconfig b/configs/sim/nettest/defconfig index acfdb50999..f7e6fb4d74 100644 --- a/configs/sim/nettest/defconfig +++ b/configs/sim/nettest/defconfig @@ -320,15 +320,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/sim/nsh/defconfig b/configs/sim/nsh/defconfig index 5d8fe8b217..43533d9f33 100644 --- a/configs/sim/nsh/defconfig +++ b/configs/sim/nsh/defconfig @@ -326,15 +326,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/sim/nsh2/defconfig b/configs/sim/nsh2/defconfig index f30165ec1d..9217e09c92 100644 --- a/configs/sim/nsh2/defconfig +++ b/configs/sim/nsh2/defconfig @@ -326,15 +326,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/sim/nx/defconfig b/configs/sim/nx/defconfig index a59b295ec7..d113398d90 100644 --- a/configs/sim/nx/defconfig +++ b/configs/sim/nx/defconfig @@ -332,15 +332,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/sim/nx11/defconfig b/configs/sim/nx11/defconfig index 31cbedd108..81f37797ad 100644 --- a/configs/sim/nx11/defconfig +++ b/configs/sim/nx11/defconfig @@ -333,15 +333,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/sim/nxffs/defconfig b/configs/sim/nxffs/defconfig index 878f5a9b76..3aa42bfdf2 100644 --- a/configs/sim/nxffs/defconfig +++ b/configs/sim/nxffs/defconfig @@ -313,15 +313,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/sim/nxlines/defconfig b/configs/sim/nxlines/defconfig index 9b878efec1..69a38ab8d6 100644 --- a/configs/sim/nxlines/defconfig +++ b/configs/sim/nxlines/defconfig @@ -324,15 +324,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/sim/nxwm/defconfig b/configs/sim/nxwm/defconfig index 5629cecde1..9500f87743 100644 --- a/configs/sim/nxwm/defconfig +++ b/configs/sim/nxwm/defconfig @@ -323,15 +323,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/sim/ostest/defconfig b/configs/sim/ostest/defconfig index 142326ee31..7faf98312c 100644 --- a/configs/sim/ostest/defconfig +++ b/configs/sim/ostest/defconfig @@ -340,15 +340,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/sim/pashello/defconfig b/configs/sim/pashello/defconfig index 70e3e55df0..1742087f1f 100644 --- a/configs/sim/pashello/defconfig +++ b/configs/sim/pashello/defconfig @@ -305,15 +305,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/sim/touchscreen/defconfig b/configs/sim/touchscreen/defconfig index 7baca3000a..25a1b444d8 100644 --- a/configs/sim/touchscreen/defconfig +++ b/configs/sim/touchscreen/defconfig @@ -355,15 +355,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/sim/traveler/defconfig b/configs/sim/traveler/defconfig index f001ac5649..7424849bef 100644 --- a/configs/sim/traveler/defconfig +++ b/configs/sim/traveler/defconfig @@ -347,15 +347,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/sim/udgram/defconfig b/configs/sim/udgram/defconfig index c46a0d0bdd..ae051de05a 100644 --- a/configs/sim/udgram/defconfig +++ b/configs/sim/udgram/defconfig @@ -332,15 +332,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/sim/unionfs/defconfig b/configs/sim/unionfs/defconfig index ca5af52a63..443c462c55 100644 --- a/configs/sim/unionfs/defconfig +++ b/configs/sim/unionfs/defconfig @@ -317,15 +317,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/sim/ustream/defconfig b/configs/sim/ustream/defconfig index 10b60384dc..a4e6bb70ea 100644 --- a/configs/sim/ustream/defconfig +++ b/configs/sim/ustream/defconfig @@ -332,15 +332,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/spark/composite/defconfig b/configs/spark/composite/defconfig index eb394d1857..07f1ebb183 100644 --- a/configs/spark/composite/defconfig +++ b/configs/spark/composite/defconfig @@ -744,15 +744,15 @@ CONFIG_SERIAL_REMOVABLE=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -CONFIG_ARCH_HAVE_USART2=y -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +CONFIG_USART2_SERIALDRIVER=y +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/spark/nsh/defconfig b/configs/spark/nsh/defconfig index a0a949c9b7..b7a4a796db 100644 --- a/configs/spark/nsh/defconfig +++ b/configs/spark/nsh/defconfig @@ -743,15 +743,15 @@ CONFIG_SERIAL_REMOVABLE=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -CONFIG_ARCH_HAVE_USART2=y -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +CONFIG_USART2_SERIALDRIVER=y +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/spark/usbmsc/defconfig b/configs/spark/usbmsc/defconfig index eba276536d..a9eec4d1b7 100644 --- a/configs/spark/usbmsc/defconfig +++ b/configs/spark/usbmsc/defconfig @@ -743,15 +743,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -CONFIG_ARCH_HAVE_USART2=y -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +CONFIG_USART2_SERIALDRIVER=y +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/spark/usbnsh/defconfig b/configs/spark/usbnsh/defconfig index 30e873009d..48b95c7854 100644 --- a/configs/spark/usbnsh/defconfig +++ b/configs/spark/usbnsh/defconfig @@ -737,15 +737,15 @@ CONFIG_SERIAL_REMOVABLE=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -CONFIG_ARCH_HAVE_USART2=y -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +CONFIG_USART2_SERIALDRIVER=y +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/spark/usbserial/defconfig b/configs/spark/usbserial/defconfig index cfa672320f..a950b39be2 100644 --- a/configs/spark/usbserial/defconfig +++ b/configs/spark/usbserial/defconfig @@ -741,15 +741,15 @@ CONFIG_SERIAL_REMOVABLE=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -CONFIG_ARCH_HAVE_USART2=y -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +CONFIG_USART2_SERIALDRIVER=y +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm3210e-eval/buttons/defconfig b/configs/stm3210e-eval/buttons/defconfig index 77af75773e..b7c69ec843 100644 --- a/configs/stm3210e-eval/buttons/defconfig +++ b/configs/stm3210e-eval/buttons/defconfig @@ -690,15 +690,15 @@ CONFIG_DEV_LOWCONSOLE=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -CONFIG_ARCH_HAVE_USART2=y -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +CONFIG_USART2_SERIALDRIVER=y +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm3210e-eval/composite/defconfig b/configs/stm3210e-eval/composite/defconfig index fcd3a3edff..28dd4b7366 100644 --- a/configs/stm3210e-eval/composite/defconfig +++ b/configs/stm3210e-eval/composite/defconfig @@ -763,15 +763,15 @@ CONFIG_SERIAL_REMOVABLE=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -CONFIG_ARCH_HAVE_USART2=y -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +CONFIG_USART2_SERIALDRIVER=y +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm3210e-eval/nsh/defconfig b/configs/stm3210e-eval/nsh/defconfig index c97a503b7a..68e71198de 100644 --- a/configs/stm3210e-eval/nsh/defconfig +++ b/configs/stm3210e-eval/nsh/defconfig @@ -765,15 +765,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -CONFIG_ARCH_HAVE_USART2=y -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +CONFIG_USART2_SERIALDRIVER=y +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm3210e-eval/nsh2/defconfig b/configs/stm3210e-eval/nsh2/defconfig index 4112089442..2b063e89b6 100644 --- a/configs/stm3210e-eval/nsh2/defconfig +++ b/configs/stm3210e-eval/nsh2/defconfig @@ -822,15 +822,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -CONFIG_ARCH_HAVE_USART2=y -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +CONFIG_USART2_SERIALDRIVER=y +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm3210e-eval/nx/defconfig b/configs/stm3210e-eval/nx/defconfig index 4adf156d80..161141c2a2 100644 --- a/configs/stm3210e-eval/nx/defconfig +++ b/configs/stm3210e-eval/nx/defconfig @@ -760,15 +760,15 @@ CONFIG_DEV_LOWCONSOLE=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -CONFIG_ARCH_HAVE_USART2=y -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +CONFIG_USART2_SERIALDRIVER=y +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm3210e-eval/nxterm/defconfig b/configs/stm3210e-eval/nxterm/defconfig index 3bb2e0e175..a20d341200 100644 --- a/configs/stm3210e-eval/nxterm/defconfig +++ b/configs/stm3210e-eval/nxterm/defconfig @@ -756,15 +756,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -CONFIG_ARCH_HAVE_USART2=y -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +CONFIG_USART2_SERIALDRIVER=y +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm3210e-eval/pm/defconfig b/configs/stm3210e-eval/pm/defconfig index af1908d635..1e09e51366 100644 --- a/configs/stm3210e-eval/pm/defconfig +++ b/configs/stm3210e-eval/pm/defconfig @@ -797,15 +797,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -CONFIG_ARCH_HAVE_USART2=y -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +CONFIG_USART2_SERIALDRIVER=y +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm3210e-eval/usbmsc/defconfig b/configs/stm3210e-eval/usbmsc/defconfig index 78ad7a1b5f..78379a35d6 100644 --- a/configs/stm3210e-eval/usbmsc/defconfig +++ b/configs/stm3210e-eval/usbmsc/defconfig @@ -728,15 +728,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -CONFIG_ARCH_HAVE_USART2=y -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +CONFIG_USART2_SERIALDRIVER=y +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm3210e-eval/usbserial/defconfig b/configs/stm3210e-eval/usbserial/defconfig index b20ad0966c..ace9949deb 100644 --- a/configs/stm3210e-eval/usbserial/defconfig +++ b/configs/stm3210e-eval/usbserial/defconfig @@ -704,15 +704,15 @@ CONFIG_SERIAL_REMOVABLE=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -CONFIG_ARCH_HAVE_USART2=y -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +CONFIG_USART2_SERIALDRIVER=y +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm3220g-eval/dhcpd/defconfig b/configs/stm3220g-eval/dhcpd/defconfig index 2817808c5e..1bfea11af6 100644 --- a/configs/stm3220g-eval/dhcpd/defconfig +++ b/configs/stm3220g-eval/dhcpd/defconfig @@ -757,15 +757,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -CONFIG_ARCH_HAVE_USART3=y -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +CONFIG_USART3_SERIALDRIVER=y +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm3220g-eval/nettest/defconfig b/configs/stm3220g-eval/nettest/defconfig index 0e4dc1d984..93df901439 100644 --- a/configs/stm3220g-eval/nettest/defconfig +++ b/configs/stm3220g-eval/nettest/defconfig @@ -758,15 +758,15 @@ CONFIG_DEV_LOWCONSOLE=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -CONFIG_ARCH_HAVE_USART3=y -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +CONFIG_USART3_SERIALDRIVER=y +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm3220g-eval/nsh/defconfig b/configs/stm3220g-eval/nsh/defconfig index 8dcfe1f1b7..5e9eabac53 100644 --- a/configs/stm3220g-eval/nsh/defconfig +++ b/configs/stm3220g-eval/nsh/defconfig @@ -822,15 +822,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -CONFIG_ARCH_HAVE_USART3=y -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +CONFIG_USART3_SERIALDRIVER=y +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm3220g-eval/nsh2/defconfig b/configs/stm3220g-eval/nsh2/defconfig index f3c606bc6c..0fe721a764 100644 --- a/configs/stm3220g-eval/nsh2/defconfig +++ b/configs/stm3220g-eval/nsh2/defconfig @@ -846,15 +846,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm3220g-eval/nxwm/defconfig b/configs/stm3220g-eval/nxwm/defconfig index 90a124b33c..775952e879 100644 --- a/configs/stm3220g-eval/nxwm/defconfig +++ b/configs/stm3220g-eval/nxwm/defconfig @@ -872,15 +872,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -CONFIG_ARCH_HAVE_USART3=y -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +CONFIG_USART3_SERIALDRIVER=y +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm3220g-eval/telnetd/defconfig b/configs/stm3220g-eval/telnetd/defconfig index 813c57655d..ea399177ad 100644 --- a/configs/stm3220g-eval/telnetd/defconfig +++ b/configs/stm3220g-eval/telnetd/defconfig @@ -760,15 +760,15 @@ CONFIG_DEV_LOWCONSOLE=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -CONFIG_ARCH_HAVE_USART3=y -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +CONFIG_USART3_SERIALDRIVER=y +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm3240g-eval/dhcpd/defconfig b/configs/stm3240g-eval/dhcpd/defconfig index dc62ffb0f3..a1b82e210d 100644 --- a/configs/stm3240g-eval/dhcpd/defconfig +++ b/configs/stm3240g-eval/dhcpd/defconfig @@ -766,15 +766,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -CONFIG_ARCH_HAVE_USART3=y -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +CONFIG_USART3_SERIALDRIVER=y +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm3240g-eval/discover/defconfig b/configs/stm3240g-eval/discover/defconfig index c6758e8b19..86d919790e 100644 --- a/configs/stm3240g-eval/discover/defconfig +++ b/configs/stm3240g-eval/discover/defconfig @@ -789,15 +789,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -CONFIG_ARCH_HAVE_USART3=y -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +CONFIG_USART3_SERIALDRIVER=y +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm3240g-eval/knxwm/defconfig b/configs/stm3240g-eval/knxwm/defconfig index 35a346cf75..2494d7c696 100644 --- a/configs/stm3240g-eval/knxwm/defconfig +++ b/configs/stm3240g-eval/knxwm/defconfig @@ -824,15 +824,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -CONFIG_ARCH_HAVE_USART3=y -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +CONFIG_USART3_SERIALDRIVER=y +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm3240g-eval/nettest/defconfig b/configs/stm3240g-eval/nettest/defconfig index a0a47bc9ea..31138a5c7c 100644 --- a/configs/stm3240g-eval/nettest/defconfig +++ b/configs/stm3240g-eval/nettest/defconfig @@ -767,15 +767,15 @@ CONFIG_DEV_LOWCONSOLE=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -CONFIG_ARCH_HAVE_USART3=y -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +CONFIG_USART3_SERIALDRIVER=y +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm3240g-eval/nsh/defconfig b/configs/stm3240g-eval/nsh/defconfig index 0abef4de7e..b9e4f539b5 100644 --- a/configs/stm3240g-eval/nsh/defconfig +++ b/configs/stm3240g-eval/nsh/defconfig @@ -809,15 +809,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -CONFIG_ARCH_HAVE_USART3=y -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +CONFIG_USART3_SERIALDRIVER=y +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm3240g-eval/nsh2/defconfig b/configs/stm3240g-eval/nsh2/defconfig index b38f5dd43b..7ad9e82c64 100644 --- a/configs/stm3240g-eval/nsh2/defconfig +++ b/configs/stm3240g-eval/nsh2/defconfig @@ -856,15 +856,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm3240g-eval/nxterm/defconfig b/configs/stm3240g-eval/nxterm/defconfig index b7f8ec8a40..23989b825f 100644 --- a/configs/stm3240g-eval/nxterm/defconfig +++ b/configs/stm3240g-eval/nxterm/defconfig @@ -847,15 +847,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -CONFIG_ARCH_HAVE_USART3=y -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +CONFIG_USART3_SERIALDRIVER=y +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm3240g-eval/nxwm/defconfig b/configs/stm3240g-eval/nxwm/defconfig index b29baa006b..cfe4772492 100644 --- a/configs/stm3240g-eval/nxwm/defconfig +++ b/configs/stm3240g-eval/nxwm/defconfig @@ -874,15 +874,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -CONFIG_ARCH_HAVE_USART3=y -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +CONFIG_USART3_SERIALDRIVER=y +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm3240g-eval/telnetd/defconfig b/configs/stm3240g-eval/telnetd/defconfig index 56cd01cf5d..8051d1d572 100644 --- a/configs/stm3240g-eval/telnetd/defconfig +++ b/configs/stm3240g-eval/telnetd/defconfig @@ -769,15 +769,15 @@ CONFIG_DEV_LOWCONSOLE=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -CONFIG_ARCH_HAVE_USART3=y -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +CONFIG_USART3_SERIALDRIVER=y +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm3240g-eval/webserver/defconfig b/configs/stm3240g-eval/webserver/defconfig index 2e3767b6f1..ce40f65b47 100644 --- a/configs/stm3240g-eval/webserver/defconfig +++ b/configs/stm3240g-eval/webserver/defconfig @@ -826,15 +826,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -CONFIG_ARCH_HAVE_USART3=y -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +CONFIG_USART3_SERIALDRIVER=y +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm3240g-eval/xmlrpc/defconfig b/configs/stm3240g-eval/xmlrpc/defconfig index f5cbd7e159..76fce15479 100644 --- a/configs/stm3240g-eval/xmlrpc/defconfig +++ b/configs/stm3240g-eval/xmlrpc/defconfig @@ -784,15 +784,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -CONFIG_ARCH_HAVE_USART3=y -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +CONFIG_USART3_SERIALDRIVER=y +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm32_tiny/nsh/defconfig b/configs/stm32_tiny/nsh/defconfig index d5e94e1252..a197e144f0 100644 --- a/configs/stm32_tiny/nsh/defconfig +++ b/configs/stm32_tiny/nsh/defconfig @@ -700,15 +700,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm32_tiny/usbnsh/defconfig b/configs/stm32_tiny/usbnsh/defconfig index f839062025..d7c3669fa9 100644 --- a/configs/stm32_tiny/usbnsh/defconfig +++ b/configs/stm32_tiny/usbnsh/defconfig @@ -675,15 +675,15 @@ CONFIG_SERIAL_REMOVABLE=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm32f103-minimum/nsh/defconfig b/configs/stm32f103-minimum/nsh/defconfig index 75bd71a887..fbf9f3f474 100644 --- a/configs/stm32f103-minimum/nsh/defconfig +++ b/configs/stm32f103-minimum/nsh/defconfig @@ -692,15 +692,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm32f103-minimum/usbnsh/defconfig b/configs/stm32f103-minimum/usbnsh/defconfig index e84a34454e..0c1921ab55 100644 --- a/configs/stm32f103-minimum/usbnsh/defconfig +++ b/configs/stm32f103-minimum/usbnsh/defconfig @@ -689,15 +689,15 @@ CONFIG_SERIAL_REMOVABLE=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm32f3discovery/nsh/defconfig b/configs/stm32f3discovery/nsh/defconfig index cb828eb234..551e300cd5 100644 --- a/configs/stm32f3discovery/nsh/defconfig +++ b/configs/stm32f3discovery/nsh/defconfig @@ -698,15 +698,15 @@ CONFIG_SERIAL_REMOVABLE=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -CONFIG_ARCH_HAVE_USART2=y -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +CONFIG_USART2_SERIALDRIVER=y +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm32f3discovery/usbnsh/defconfig b/configs/stm32f3discovery/usbnsh/defconfig index c1c7519343..05f6e50562 100644 --- a/configs/stm32f3discovery/usbnsh/defconfig +++ b/configs/stm32f3discovery/usbnsh/defconfig @@ -721,15 +721,15 @@ CONFIG_SERIAL_REMOVABLE=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -CONFIG_ARCH_HAVE_USART2=y -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +CONFIG_USART2_SERIALDRIVER=y +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm32f411e-disco/nsh/defconfig b/configs/stm32f411e-disco/nsh/defconfig index 31f933afc7..ac00c8e3cf 100644 --- a/configs/stm32f411e-disco/nsh/defconfig +++ b/configs/stm32f411e-disco/nsh/defconfig @@ -690,15 +690,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -CONFIG_ARCH_HAVE_USART2=y -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +CONFIG_USART2_SERIALDRIVER=y +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm32f429i-disco/extflash/defconfig b/configs/stm32f429i-disco/extflash/defconfig index 15e6f97c7b..86f4d2d77c 100644 --- a/configs/stm32f429i-disco/extflash/defconfig +++ b/configs/stm32f429i-disco/extflash/defconfig @@ -796,15 +796,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm32f429i-disco/lcd/defconfig b/configs/stm32f429i-disco/lcd/defconfig index 01f3b48574..79ae28a93d 100644 --- a/configs/stm32f429i-disco/lcd/defconfig +++ b/configs/stm32f429i-disco/lcd/defconfig @@ -768,15 +768,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm32f429i-disco/ltdc/defconfig b/configs/stm32f429i-disco/ltdc/defconfig index ca7bc39351..cb8d26dda8 100644 --- a/configs/stm32f429i-disco/ltdc/defconfig +++ b/configs/stm32f429i-disco/ltdc/defconfig @@ -810,15 +810,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm32f429i-disco/nsh/defconfig b/configs/stm32f429i-disco/nsh/defconfig index db6f5e0e56..cbd64437a2 100644 --- a/configs/stm32f429i-disco/nsh/defconfig +++ b/configs/stm32f429i-disco/nsh/defconfig @@ -726,15 +726,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm32f429i-disco/usbmsc/defconfig b/configs/stm32f429i-disco/usbmsc/defconfig index a750b9bd06..9637e8fabe 100644 --- a/configs/stm32f429i-disco/usbmsc/defconfig +++ b/configs/stm32f429i-disco/usbmsc/defconfig @@ -750,15 +750,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm32f429i-disco/usbnsh/defconfig b/configs/stm32f429i-disco/usbnsh/defconfig index 021da9ecf4..b52e2eadf1 100644 --- a/configs/stm32f429i-disco/usbnsh/defconfig +++ b/configs/stm32f429i-disco/usbnsh/defconfig @@ -734,15 +734,15 @@ CONFIG_SERIAL_REMOVABLE=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm32f4discovery/cxxtest/defconfig b/configs/stm32f4discovery/cxxtest/defconfig index 98e5442adc..3f3b5b274c 100644 --- a/configs/stm32f4discovery/cxxtest/defconfig +++ b/configs/stm32f4discovery/cxxtest/defconfig @@ -720,15 +720,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -CONFIG_ARCH_HAVE_USART2=y -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +CONFIG_USART2_SERIALDRIVER=y +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm32f4discovery/elf/defconfig b/configs/stm32f4discovery/elf/defconfig index 673675f373..29987d4766 100644 --- a/configs/stm32f4discovery/elf/defconfig +++ b/configs/stm32f4discovery/elf/defconfig @@ -720,15 +720,15 @@ CONFIG_DEV_LOWCONSOLE=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -CONFIG_ARCH_HAVE_USART2=y -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +CONFIG_USART2_SERIALDRIVER=y +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm32f4discovery/ipv6/defconfig b/configs/stm32f4discovery/ipv6/defconfig index cb9ccd0909..c21da51168 100644 --- a/configs/stm32f4discovery/ipv6/defconfig +++ b/configs/stm32f4discovery/ipv6/defconfig @@ -830,15 +830,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -CONFIG_ARCH_HAVE_USART6=y -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +CONFIG_USART6_SERIALDRIVER=y +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm32f4discovery/kostest/defconfig b/configs/stm32f4discovery/kostest/defconfig index b4f0d966ed..f942525ab6 100644 --- a/configs/stm32f4discovery/kostest/defconfig +++ b/configs/stm32f4discovery/kostest/defconfig @@ -728,15 +728,15 @@ CONFIG_DEV_LOWCONSOLE=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -CONFIG_ARCH_HAVE_USART2=y -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +CONFIG_USART2_SERIALDRIVER=y +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm32f4discovery/netnsh/defconfig b/configs/stm32f4discovery/netnsh/defconfig index 13c5d36b55..0ac5e267e3 100644 --- a/configs/stm32f4discovery/netnsh/defconfig +++ b/configs/stm32f4discovery/netnsh/defconfig @@ -835,15 +835,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -CONFIG_ARCH_HAVE_USART6=y -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +CONFIG_USART6_SERIALDRIVER=y +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm32f4discovery/nsh/defconfig b/configs/stm32f4discovery/nsh/defconfig index a7a485a6d4..bb2a47f487 100644 --- a/configs/stm32f4discovery/nsh/defconfig +++ b/configs/stm32f4discovery/nsh/defconfig @@ -735,15 +735,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -CONFIG_ARCH_HAVE_USART2=y -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +CONFIG_USART2_SERIALDRIVER=y +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm32f4discovery/nxlines/defconfig b/configs/stm32f4discovery/nxlines/defconfig index 32ee8e04f2..69565f7dd8 100644 --- a/configs/stm32f4discovery/nxlines/defconfig +++ b/configs/stm32f4discovery/nxlines/defconfig @@ -775,15 +775,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -CONFIG_ARCH_HAVE_USART2=y -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +CONFIG_USART2_SERIALDRIVER=y +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm32f4discovery/pm/defconfig b/configs/stm32f4discovery/pm/defconfig index 2d646c8986..e9bb0a0298 100644 --- a/configs/stm32f4discovery/pm/defconfig +++ b/configs/stm32f4discovery/pm/defconfig @@ -741,15 +741,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -CONFIG_ARCH_HAVE_USART2=y -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +CONFIG_USART2_SERIALDRIVER=y +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm32f4discovery/posix_spawn/defconfig b/configs/stm32f4discovery/posix_spawn/defconfig index dc2c60aacb..321cb49909 100644 --- a/configs/stm32f4discovery/posix_spawn/defconfig +++ b/configs/stm32f4discovery/posix_spawn/defconfig @@ -720,15 +720,15 @@ CONFIG_DEV_LOWCONSOLE=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -CONFIG_ARCH_HAVE_USART2=y -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +CONFIG_USART2_SERIALDRIVER=y +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm32f4discovery/rgbled/defconfig b/configs/stm32f4discovery/rgbled/defconfig index 91e1e9dd0f..84c3d8ed6e 100644 --- a/configs/stm32f4discovery/rgbled/defconfig +++ b/configs/stm32f4discovery/rgbled/defconfig @@ -769,15 +769,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -CONFIG_ARCH_HAVE_USART2=y -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +CONFIG_USART2_SERIALDRIVER=y +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm32f4discovery/usbnsh/defconfig b/configs/stm32f4discovery/usbnsh/defconfig index b5ce28b689..cda3ed90d4 100644 --- a/configs/stm32f4discovery/usbnsh/defconfig +++ b/configs/stm32f4discovery/usbnsh/defconfig @@ -743,15 +743,15 @@ CONFIG_SERIAL_REMOVABLE=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -CONFIG_ARCH_HAVE_USART2=y -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +CONFIG_USART2_SERIALDRIVER=y +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm32f4discovery/winbuild/defconfig b/configs/stm32f4discovery/winbuild/defconfig index 9fd11d2f18..68dbb57c49 100644 --- a/configs/stm32f4discovery/winbuild/defconfig +++ b/configs/stm32f4discovery/winbuild/defconfig @@ -670,15 +670,15 @@ CONFIG_DEV_LOWCONSOLE=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -CONFIG_ARCH_HAVE_USART2=y -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +CONFIG_USART2_SERIALDRIVER=y +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm32f746g-disco/knsh/defconfig b/configs/stm32f746g-disco/knsh/defconfig index 94ee604860..5aeced55af 100644 --- a/configs/stm32f746g-disco/knsh/defconfig +++ b/configs/stm32f746g-disco/knsh/defconfig @@ -506,15 +506,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -CONFIG_ARCH_HAVE_USART6=y -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +CONFIG_USART6_SERIALDRIVER=y +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm32f746g-disco/netnsh/defconfig b/configs/stm32f746g-disco/netnsh/defconfig index 3d0180bd2c..16764b75b4 100644 --- a/configs/stm32f746g-disco/netnsh/defconfig +++ b/configs/stm32f746g-disco/netnsh/defconfig @@ -565,15 +565,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -CONFIG_ARCH_HAVE_USART6=y -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +CONFIG_USART6_SERIALDRIVER=y +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm32f746g-disco/nsh/defconfig b/configs/stm32f746g-disco/nsh/defconfig index b73ab07398..3e97d6a625 100644 --- a/configs/stm32f746g-disco/nsh/defconfig +++ b/configs/stm32f746g-disco/nsh/defconfig @@ -498,15 +498,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -CONFIG_ARCH_HAVE_USART6=y -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +CONFIG_USART6_SERIALDRIVER=y +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm32l476vg-disco/nsh/defconfig b/configs/stm32l476vg-disco/nsh/defconfig index 78242a4deb..f3699a307c 100644 --- a/configs/stm32l476vg-disco/nsh/defconfig +++ b/configs/stm32l476vg-disco/nsh/defconfig @@ -619,15 +619,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -CONFIG_ARCH_HAVE_USART2=y -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +CONFIG_USART2_SERIALDRIVER=y +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm32ldiscovery/nsh/defconfig b/configs/stm32ldiscovery/nsh/defconfig index 68f9a4cb72..32494aabc0 100644 --- a/configs/stm32ldiscovery/nsh/defconfig +++ b/configs/stm32ldiscovery/nsh/defconfig @@ -681,15 +681,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/stm32vldiscovery/nsh/defconfig b/configs/stm32vldiscovery/nsh/defconfig index 5e0c83b09f..cc0b804203 100644 --- a/configs/stm32vldiscovery/nsh/defconfig +++ b/configs/stm32vldiscovery/nsh/defconfig @@ -700,15 +700,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/sure-pic32mx/nsh/defconfig b/configs/sure-pic32mx/nsh/defconfig index 5db19ac5c0..66b0c4aaad 100644 --- a/configs/sure-pic32mx/nsh/defconfig +++ b/configs/sure-pic32mx/nsh/defconfig @@ -495,15 +495,15 @@ CONFIG_ARCH_HAVE_UART2=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/sure-pic32mx/usbnsh/defconfig b/configs/sure-pic32mx/usbnsh/defconfig index 66d0bb5e3b..737507723b 100644 --- a/configs/sure-pic32mx/usbnsh/defconfig +++ b/configs/sure-pic32mx/usbnsh/defconfig @@ -497,15 +497,15 @@ CONFIG_ARCH_HAVE_UART2=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/teensy-2.0/hello/defconfig b/configs/teensy-2.0/hello/defconfig index a1c37c8e31..88f929b9d3 100644 --- a/configs/teensy-2.0/hello/defconfig +++ b/configs/teensy-2.0/hello/defconfig @@ -317,15 +317,15 @@ CONFIG_DEV_LOWCONSOLE=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/teensy-2.0/nsh/defconfig b/configs/teensy-2.0/nsh/defconfig index 0257552769..b3da13ed99 100644 --- a/configs/teensy-2.0/nsh/defconfig +++ b/configs/teensy-2.0/nsh/defconfig @@ -328,15 +328,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/teensy-2.0/usbmsc/defconfig b/configs/teensy-2.0/usbmsc/defconfig index b4ec32ec9a..5f3ad5e14a 100644 --- a/configs/teensy-2.0/usbmsc/defconfig +++ b/configs/teensy-2.0/usbmsc/defconfig @@ -350,15 +350,15 @@ CONFIG_DEV_LOWCONSOLE=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/teensy-3.x/nsh/defconfig b/configs/teensy-3.x/nsh/defconfig index c66150a460..039260571a 100644 --- a/configs/teensy-3.x/nsh/defconfig +++ b/configs/teensy-3.x/nsh/defconfig @@ -450,15 +450,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/teensy-lc/nsh/defconfig b/configs/teensy-lc/nsh/defconfig index 07296c553f..f0ce5e4daf 100644 --- a/configs/teensy-lc/nsh/defconfig +++ b/configs/teensy-lc/nsh/defconfig @@ -433,15 +433,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/tm4c123g-launchpad/nsh/defconfig b/configs/tm4c123g-launchpad/nsh/defconfig index ec7ec4fb48..eaeead3ed3 100644 --- a/configs/tm4c123g-launchpad/nsh/defconfig +++ b/configs/tm4c123g-launchpad/nsh/defconfig @@ -465,15 +465,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/tm4c1294-launchpad/ipv6/defconfig b/configs/tm4c1294-launchpad/ipv6/defconfig index faedcc29fe..4627340760 100644 --- a/configs/tm4c1294-launchpad/ipv6/defconfig +++ b/configs/tm4c1294-launchpad/ipv6/defconfig @@ -495,15 +495,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/tm4c1294-launchpad/nsh/defconfig b/configs/tm4c1294-launchpad/nsh/defconfig index afd503223f..59dd9b3429 100644 --- a/configs/tm4c1294-launchpad/nsh/defconfig +++ b/configs/tm4c1294-launchpad/nsh/defconfig @@ -532,15 +532,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/twr-k60n512/nsh/defconfig b/configs/twr-k60n512/nsh/defconfig index a4110d0ccf..8dd22c96d0 100644 --- a/configs/twr-k60n512/nsh/defconfig +++ b/configs/twr-k60n512/nsh/defconfig @@ -434,15 +434,15 @@ CONFIG_ARCH_HAVE_UART3=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/u-blox-c027/nsh/defconfig b/configs/u-blox-c027/nsh/defconfig index 51b5dc2e96..419ac12e50 100644 --- a/configs/u-blox-c027/nsh/defconfig +++ b/configs/u-blox-c027/nsh/defconfig @@ -574,15 +574,15 @@ CONFIG_ARCH_HAVE_UART3=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/ubw32/nsh/defconfig b/configs/ubw32/nsh/defconfig index c97c791aa5..9edea8b7da 100644 --- a/configs/ubw32/nsh/defconfig +++ b/configs/ubw32/nsh/defconfig @@ -502,15 +502,15 @@ CONFIG_ARCH_HAVE_UART1=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/us7032evb1/nsh/defconfig b/configs/us7032evb1/nsh/defconfig index 03a12a8a28..0429f675f7 100644 --- a/configs/us7032evb1/nsh/defconfig +++ b/configs/us7032evb1/nsh/defconfig @@ -255,15 +255,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set CONFIG_ARCH_HAVE_SCI1=y -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/us7032evb1/ostest/defconfig b/configs/us7032evb1/ostest/defconfig index ec108a9870..96ecbeb6f1 100644 --- a/configs/us7032evb1/ostest/defconfig +++ b/configs/us7032evb1/ostest/defconfig @@ -254,15 +254,15 @@ CONFIG_DEV_LOWCONSOLE=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set CONFIG_ARCH_HAVE_SCI1=y -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/viewtool-stm32f107/highpri/defconfig b/configs/viewtool-stm32f107/highpri/defconfig index ce65df1ebc..eca985cacf 100644 --- a/configs/viewtool-stm32f107/highpri/defconfig +++ b/configs/viewtool-stm32f107/highpri/defconfig @@ -704,15 +704,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/viewtool-stm32f107/netnsh/defconfig b/configs/viewtool-stm32f107/netnsh/defconfig index b355d5ad91..07c09f6352 100644 --- a/configs/viewtool-stm32f107/netnsh/defconfig +++ b/configs/viewtool-stm32f107/netnsh/defconfig @@ -763,15 +763,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/viewtool-stm32f107/nsh/defconfig b/configs/viewtool-stm32f107/nsh/defconfig index ef29399bbb..055accbb1e 100644 --- a/configs/viewtool-stm32f107/nsh/defconfig +++ b/configs/viewtool-stm32f107/nsh/defconfig @@ -702,15 +702,15 @@ CONFIG_SERIAL=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -CONFIG_ARCH_HAVE_USART1=y -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +CONFIG_USART1_SERIALDRIVER=y +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/z16f2800100zcog/nsh/defconfig b/configs/z16f2800100zcog/nsh/defconfig index 9f8dda8044..982105a3e0 100644 --- a/configs/z16f2800100zcog/nsh/defconfig +++ b/configs/z16f2800100zcog/nsh/defconfig @@ -311,15 +311,15 @@ CONFIG_ARCH_HAVE_UART1=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/z8encore000zco/ostest/defconfig b/configs/z8encore000zco/ostest/defconfig index 5625226e18..54b0159f23 100644 --- a/configs/z8encore000zco/ostest/defconfig +++ b/configs/z8encore000zco/ostest/defconfig @@ -371,15 +371,15 @@ CONFIG_ARCH_HAVE_UART1=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/z8f64200100kit/ostest/defconfig b/configs/z8f64200100kit/ostest/defconfig index ed522a5bb1..e6082bd6c5 100644 --- a/configs/z8f64200100kit/ostest/defconfig +++ b/configs/z8f64200100kit/ostest/defconfig @@ -371,15 +371,15 @@ CONFIG_ARCH_HAVE_UART1=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/zkit-arm-1769/hello/defconfig b/configs/zkit-arm-1769/hello/defconfig index 17c6a81fc9..85c33285df 100644 --- a/configs/zkit-arm-1769/hello/defconfig +++ b/configs/zkit-arm-1769/hello/defconfig @@ -470,15 +470,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/zkit-arm-1769/nsh/defconfig b/configs/zkit-arm-1769/nsh/defconfig index d3a2937712..fabb962f98 100644 --- a/configs/zkit-arm-1769/nsh/defconfig +++ b/configs/zkit-arm-1769/nsh/defconfig @@ -522,15 +522,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/zkit-arm-1769/nxhello/defconfig b/configs/zkit-arm-1769/nxhello/defconfig index 9bff2a9046..b283b2c078 100644 --- a/configs/zkit-arm-1769/nxhello/defconfig +++ b/configs/zkit-arm-1769/nxhello/defconfig @@ -564,15 +564,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/zkit-arm-1769/thttpd/defconfig b/configs/zkit-arm-1769/thttpd/defconfig index 958ac134e9..f36c630d56 100644 --- a/configs/zkit-arm-1769/thttpd/defconfig +++ b/configs/zkit-arm-1769/thttpd/defconfig @@ -469,15 +469,15 @@ CONFIG_ARCH_HAVE_UART0=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/zp214xpa/nsh/defconfig b/configs/zp214xpa/nsh/defconfig index cec8851c19..832d7c1e85 100644 --- a/configs/zp214xpa/nsh/defconfig +++ b/configs/zp214xpa/nsh/defconfig @@ -376,15 +376,15 @@ CONFIG_ARCH_HAVE_UART1=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/configs/zp214xpa/nxlines/defconfig b/configs/zp214xpa/nxlines/defconfig index 8dab694530..fdc45c40f4 100644 --- a/configs/zp214xpa/nxlines/defconfig +++ b/configs/zp214xpa/nxlines/defconfig @@ -415,15 +415,15 @@ CONFIG_ARCH_HAVE_UART1=y # CONFIG_ARCH_HAVE_UART8 is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set -# CONFIG_ARCH_HAVE_USART0 is not set -# CONFIG_ARCH_HAVE_USART1 is not set -# CONFIG_ARCH_HAVE_USART2 is not set -# CONFIG_ARCH_HAVE_USART3 is not set -# CONFIG_ARCH_HAVE_USART4 is not set -# CONFIG_ARCH_HAVE_USART5 is not set -# CONFIG_ARCH_HAVE_USART6 is not set -# CONFIG_ARCH_HAVE_USART7 is not set -# CONFIG_ARCH_HAVE_USART8 is not set +# CONFIG_USART0_SERIALDRIVER is not set +# CONFIG_USART1_SERIALDRIVER is not set +# CONFIG_USART2_SERIALDRIVER is not set +# CONFIG_USART3_SERIALDRIVER is not set +# CONFIG_USART4_SERIALDRIVER is not set +# CONFIG_USART5_SERIALDRIVER is not set +# CONFIG_USART6_SERIALDRIVER is not set +# CONFIG_USART7_SERIALDRIVER is not set +# CONFIG_USART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_OTHER_UART is not set # diff --git a/drivers/serial/Kconfig b/drivers/serial/Kconfig index ec333bc0d8..c675f9cb0a 100644 --- a/drivers/serial/Kconfig +++ b/drivers/serial/Kconfig @@ -407,39 +407,39 @@ config ARCH_HAVE_SCI1 default n select MCU_SERIAL -config ARCH_HAVE_USART0 +config USART0_SERIALDRIVER bool default n -config ARCH_HAVE_USART1 +config USART1_SERIALDRIVER bool default n -config ARCH_HAVE_USART2 +config USART2_SERIALDRIVER bool default n -config ARCH_HAVE_USART3 +config USART3_SERIALDRIVER bool default n -config ARCH_HAVE_USART4 +config USART4_SERIALDRIVER bool default n -config ARCH_HAVE_USART5 +config USART5_SERIALDRIVER bool default n -config ARCH_HAVE_USART6 +config USART6_SERIALDRIVER bool default n -config ARCH_HAVE_USART7 +config USART7_SERIALDRIVER bool default n -config ARCH_HAVE_USART8 +config USART8_SERIALDRIVER bool default n @@ -457,55 +457,55 @@ comment "USART Configuration" config USART0_ISUART bool "USART0 is a UART" default y - depends on ARCH_HAVE_USART0 + depends on USART0_SERIALDRIVER select MCU_SERIAL config USART1_ISUART bool "USART1 is a UART" default y - depends on ARCH_HAVE_USART1 + depends on USART1_SERIALDRIVER select MCU_SERIAL config USART2_ISUART bool "USART2 is a UART" default y - depends on ARCH_HAVE_USART2 + depends on USART2_SERIALDRIVER select MCU_SERIAL config USART3_ISUART bool "USART3 is a UART" default y - depends on ARCH_HAVE_USART3 + depends on USART3_SERIALDRIVER select MCU_SERIAL config USART4_ISUART bool "USART4 is a UART" default y - depends on ARCH_HAVE_USART4 + depends on USART4_SERIALDRIVER select MCU_SERIAL config USART5_ISUART bool "USART5 is a UART" default y - depends on ARCH_HAVE_USART5 + depends on USART5_SERIALDRIVER select MCU_SERIAL config USART6_ISUART bool "USART6 is a UART" default y - depends on ARCH_HAVE_USART6 + depends on USART6_SERIALDRIVER select MCU_SERIAL config USART7_ISUART bool "USART7 is a UART" default y - depends on ARCH_HAVE_USART7 + depends on USART7_SERIALDRIVER select MCU_SERIAL config USART8_ISUART bool "USART8 is a UART" default y - depends on ARCH_HAVE_USART8 + depends on USART8_SERIALDRIVER select MCU_SERIAL config MCU_SERIAL @@ -648,7 +648,7 @@ config UART3_SERIAL_CONSOLE config USART3_SERIAL_CONSOLE bool "USART3" - depends on ARCH_HAVE_USART3 + depends on USART3_SERIALDRIVER config UART4_SERIAL_CONSOLE bool "UART4" -- GitLab From 2a87741e72a705a044951b3ae4be254366198039 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 25 May 2016 10:45:01 -0600 Subject: [PATCH 246/307] Rename CONFIG_ARCH_HAVE_UARTn to CONFIG_UARTn_SERIALDRIVER --- arch/arm/src/a1x/Kconfig | 16 ++--- arch/arm/src/dm320/Kconfig | 4 +- arch/arm/src/efm32/Kconfig | 4 +- arch/arm/src/imx1/Kconfig | 6 +- arch/arm/src/imx6/Kconfig | 10 ++-- arch/arm/src/kinetis/Kconfig | 12 ++-- arch/arm/src/kl/Kconfig | 6 +- arch/arm/src/lpc11xx/Kconfig | 2 +- arch/arm/src/lpc17xx/Kconfig | 12 ++-- arch/arm/src/lpc214x/Kconfig | 4 +- arch/arm/src/lpc2378/Kconfig | 8 +-- arch/arm/src/lpc31xx/Kconfig | 2 +- arch/arm/src/lpc43xx/Kconfig | 2 +- arch/arm/src/nuc1xx/Kconfig | 6 +- arch/arm/src/sam34/Kconfig | 6 +- arch/arm/src/sama5/Kconfig | 10 ++-- arch/arm/src/samv7/Kconfig | 10 ++-- arch/arm/src/stm32/Kconfig | 8 +-- arch/arm/src/stm32f7/Kconfig | 8 +-- arch/arm/src/stm32l4/Kconfig | 4 +- arch/arm/src/str71x/Kconfig | 8 +-- arch/arm/src/tiva/Kconfig | 16 ++--- arch/mips/src/pic32mx/Kconfig | 12 ++-- arch/mips/src/pic32mz/Kconfig | 12 ++-- arch/sh/src/m16c/Kconfig | 6 +- arch/z16/src/z16f/Kconfig | 4 +- arch/z80/src/ez80/Kconfig | 6 +- arch/z80/src/z8/Kconfig | 4 +- configs/Kconfig | 4 +- configs/arduino-due/nsh/defconfig | 20 +++---- configs/arduino-mega2560/hello/defconfig | 20 +++---- configs/arduino-mega2560/nsh/defconfig | 20 +++---- configs/c5471evm/httpd/defconfig | 20 +++---- configs/c5471evm/nettest/defconfig | 20 +++---- configs/c5471evm/nsh/defconfig | 20 +++---- configs/cc3200-launchpad/nsh/defconfig | 20 +++---- configs/cloudctrl/nsh/defconfig | 20 +++---- configs/compal_e86/nsh_highram/defconfig | 20 +++---- configs/compal_e88/nsh_highram/defconfig | 20 +++---- configs/compal_e99/nsh_compalram/defconfig | 20 +++---- configs/compal_e99/nsh_highram/defconfig | 20 +++---- configs/dk-tm4c129x/ipv6/defconfig | 20 +++---- configs/dk-tm4c129x/nsh/defconfig | 20 +++---- configs/ea3131/nsh/defconfig | 20 +++---- configs/ea3131/pgnsh/defconfig | 20 +++---- configs/ea3131/usbserial/defconfig | 20 +++---- configs/ea3152/ostest/defconfig | 20 +++---- configs/eagle100/httpd/defconfig | 2 +- configs/eagle100/nettest/defconfig | 20 +++---- configs/eagle100/nsh/defconfig | 20 +++---- configs/eagle100/nxflat/defconfig | 20 +++---- configs/eagle100/thttpd/defconfig | 20 +++---- configs/efm32-g8xx-stk/nsh/defconfig | 20 +++---- configs/efm32gg-stk3700/nsh/defconfig | 20 +++---- configs/ekk-lm3s9b96/nsh/defconfig | 20 +++---- configs/ez80f910200kitg/ostest/defconfig | 20 +++---- configs/ez80f910200zco/dhcpd/defconfig | 20 +++---- configs/ez80f910200zco/httpd/defconfig | 20 +++---- configs/ez80f910200zco/nettest/defconfig | 20 +++---- configs/ez80f910200zco/nsh/defconfig | 20 +++---- configs/ez80f910200zco/poll/defconfig | 20 +++---- configs/fire-stm32v2/nsh/defconfig | 20 +++---- configs/freedom-kl25z/minnsh/defconfig | 20 +++---- configs/freedom-kl25z/nsh/defconfig | 20 +++---- configs/freedom-kl26z/minnsh/defconfig | 20 +++---- configs/freedom-kl26z/nsh/defconfig | 20 +++---- configs/hymini-stm32v/buttons/defconfig | 20 +++---- configs/hymini-stm32v/nsh/defconfig | 20 +++---- configs/hymini-stm32v/nsh2/defconfig | 20 +++---- configs/hymini-stm32v/usbmsc/defconfig | 20 +++---- configs/hymini-stm32v/usbnsh/defconfig | 20 +++---- configs/hymini-stm32v/usbserial/defconfig | 20 +++---- configs/kwikstik-k40/ostest/defconfig | 20 +++---- configs/launchxl-tms57004/nsh/defconfig | 20 +++---- configs/lincoln60/netnsh/defconfig | 20 +++---- configs/lincoln60/nsh/defconfig | 20 +++---- configs/lincoln60/thttpd-binfs/defconfig | 20 +++---- configs/lm3s6432-s2e/nsh/defconfig | 20 +++---- configs/lm3s6965-ek/discover/defconfig | 20 +++---- configs/lm3s6965-ek/nsh/defconfig | 20 +++---- configs/lm3s6965-ek/nx/defconfig | 20 +++---- configs/lm3s6965-ek/tcpecho/defconfig | 20 +++---- configs/lm3s8962-ek/nsh/defconfig | 20 +++---- configs/lm3s8962-ek/nx/defconfig | 20 +++---- configs/lm4f120-launchpad/nsh/defconfig | 20 +++---- configs/lpc4330-xplorer/nsh/defconfig | 20 +++---- configs/lpc4337-ws/nsh/defconfig | 20 +++---- configs/lpc4357-evb/nsh/defconfig | 20 +++---- configs/lpc4370-link2/nsh/defconfig | 20 +++---- configs/lpcxpresso-lpc1115/minnsh/defconfig | 20 +++---- configs/lpcxpresso-lpc1115/nsh/defconfig | 20 +++---- configs/lpcxpresso-lpc1768/dhcpd/defconfig | 20 +++---- configs/lpcxpresso-lpc1768/nsh/defconfig | 20 +++---- configs/lpcxpresso-lpc1768/nx/defconfig | 20 +++---- configs/lpcxpresso-lpc1768/thttpd/defconfig | 20 +++---- configs/lpcxpresso-lpc1768/usbmsc/defconfig | 20 +++---- configs/maple/nsh/defconfig | 20 +++---- configs/maple/nx/defconfig | 20 +++---- configs/maple/usbnsh/defconfig | 20 +++---- configs/mbed/hidkbd/defconfig | 2 +- configs/mbed/nsh/defconfig | 20 +++---- configs/mcu123-lpc214x/composite/defconfig | 20 +++---- configs/mcu123-lpc214x/nsh/defconfig | 20 +++---- configs/mcu123-lpc214x/usbmsc/defconfig | 20 +++---- configs/mcu123-lpc214x/usbserial/defconfig | 20 +++---- configs/mikroe-stm32f4/fulldemo/defconfig | 20 +++---- configs/mikroe-stm32f4/kostest/defconfig | 20 +++---- configs/mikroe-stm32f4/nsh/defconfig | 20 +++---- configs/mikroe-stm32f4/usbnsh/defconfig | 20 +++---- configs/mirtoo/nsh/defconfig | 20 +++---- configs/mirtoo/nxffs/defconfig | 20 +++---- configs/moteino-mega/hello/defconfig | 20 +++---- configs/moteino-mega/nsh/defconfig | 20 +++---- configs/moxa/nsh/defconfig | 20 +++---- configs/mx1ads/ostest/defconfig | 20 +++---- configs/ntosd-dm320/nettest/defconfig | 20 +++---- configs/ntosd-dm320/nsh/defconfig | 20 +++---- configs/ntosd-dm320/poll/defconfig | 20 +++---- configs/ntosd-dm320/thttpd/defconfig | 20 +++---- configs/ntosd-dm320/udp/defconfig | 20 +++---- configs/ntosd-dm320/webserver/defconfig | 20 +++---- configs/nucleo-144/evalos/defconfig | 20 +++---- configs/nucleo-144/nsh/defconfig | 20 +++---- configs/nucleo-f303re/serialrx/defconfig | 20 +++---- configs/nucleo-f4x1re/f401-nsh/defconfig | 20 +++---- configs/nucleo-f4x1re/f411-nsh/defconfig | 20 +++---- configs/nucleo-l476rg/nsh/defconfig | 20 +++---- configs/nutiny-nuc120/nsh/defconfig | 2 +- .../olimex-efm32g880f128-stk/nsh/defconfig | 20 +++---- configs/olimex-lpc-h3131/nsh/defconfig | 20 +++---- configs/olimex-lpc1766stk/ftpc/defconfig | 20 +++---- configs/olimex-lpc1766stk/hidkbd/defconfig | 20 +++---- configs/olimex-lpc1766stk/hidmouse/defconfig | 20 +++---- configs/olimex-lpc1766stk/nettest/defconfig | 20 +++---- configs/olimex-lpc1766stk/nsh/defconfig | 20 +++---- configs/olimex-lpc1766stk/nx/defconfig | 20 +++---- .../olimex-lpc1766stk/slip-httpd/defconfig | 20 +++---- .../olimex-lpc1766stk/thttpd-binfs/defconfig | 20 +++---- .../olimex-lpc1766stk/thttpd-nxflat/defconfig | 20 +++---- configs/olimex-lpc1766stk/usbmsc/defconfig | 20 +++---- configs/olimex-lpc1766stk/usbserial/defconfig | 20 +++---- configs/olimex-lpc1766stk/zmodem/defconfig | 20 +++---- configs/olimex-lpc2378/nsh/defconfig | 20 +++---- configs/olimex-stm32-h405/usbnsh/defconfig | 20 +++---- configs/olimex-stm32-h407/nsh/defconfig | 20 +++---- configs/olimex-stm32-p107/nsh/defconfig | 20 +++---- configs/olimex-stm32-p207/nsh/defconfig | 20 +++---- configs/olimex-strp711/nettest/defconfig | 20 +++---- configs/olimex-strp711/nsh/defconfig | 4 +- configs/olimexino-stm32/can/defconfig | 20 +++---- configs/olimexino-stm32/composite/defconfig | 20 +++---- configs/olimexino-stm32/nsh/defconfig | 20 +++---- configs/olimexino-stm32/smallnsh/defconfig | 20 +++---- configs/olimexino-stm32/tiny/defconfig | 20 +++---- configs/open1788/knsh/defconfig | 20 +++---- configs/open1788/nsh/defconfig | 20 +++---- configs/open1788/nxlines/defconfig | 2 +- configs/pcblogic-pic32mx/nsh/defconfig | 20 +++---- configs/pcduino-a10/nsh/defconfig | 20 +++---- configs/pic32mx-starterkit/nsh/defconfig | 20 +++---- configs/pic32mx-starterkit/nsh2/defconfig | 20 +++---- configs/pic32mx7mmb/nsh/defconfig | 20 +++---- configs/pic32mz-starterkit/nsh/defconfig | 20 +++---- configs/pirelli_dpl10/nsh_highram/defconfig | 20 +++---- configs/qemu-i486/nsh/defconfig | 20 +++---- configs/qemu-i486/ostest/defconfig | 20 +++---- configs/rgmp/arm/default/defconfig | 20 +++---- configs/rgmp/arm/nsh/defconfig | 20 +++---- configs/rgmp/x86/cxxtest/defconfig | 20 +++---- configs/rgmp/x86/default/defconfig | 20 +++---- configs/rgmp/x86/helloxx/defconfig | 20 +++---- configs/rgmp/x86/nsh/defconfig | 20 +++---- configs/sabre-6quad/nsh/defconfig | 20 +++---- configs/sabre-6quad/smp/defconfig | 20 +++---- configs/sam3u-ek/knsh/defconfig | 20 +++---- configs/sam3u-ek/nsh/defconfig | 20 +++---- configs/sam3u-ek/nx/defconfig | 20 +++---- configs/sam3u-ek/nxwm/defconfig | 20 +++---- configs/sam4e-ek/nsh/defconfig | 20 +++---- configs/sam4e-ek/nxwm/defconfig | 20 +++---- configs/sam4e-ek/usbnsh/defconfig | 20 +++---- configs/sam4l-xplained/nsh/defconfig | 20 +++---- configs/sam4s-xplained-pro/nsh/defconfig | 20 +++---- configs/sam4s-xplained/nsh/defconfig | 20 +++---- configs/sama5d2-xult/nsh/defconfig | 20 +++---- configs/sama5d3-xplained/bridge/defconfig | 20 +++---- configs/sama5d3-xplained/nsh/defconfig | 20 +++---- configs/sama5d3x-ek/demo/defconfig | 20 +++---- configs/sama5d3x-ek/hello/defconfig | 20 +++---- configs/sama5d3x-ek/norboot/defconfig | 20 +++---- configs/sama5d3x-ek/nsh/defconfig | 20 +++---- configs/sama5d3x-ek/nx/defconfig | 20 +++---- configs/sama5d3x-ek/nxplayer/defconfig | 20 +++---- configs/sama5d3x-ek/nxwm/defconfig | 20 +++---- configs/sama5d3x-ek/ov2640/defconfig | 20 +++---- configs/sama5d4-ek/at25boot/defconfig | 20 +++---- configs/sama5d4-ek/bridge/defconfig | 20 +++---- configs/sama5d4-ek/dramboot/defconfig | 20 +++---- configs/sama5d4-ek/elf/defconfig | 20 +++---- configs/sama5d4-ek/ipv6/defconfig | 20 +++---- configs/sama5d4-ek/knsh/defconfig | 20 +++---- configs/sama5d4-ek/knsh/defconfig.ROMFS | 20 +++---- configs/sama5d4-ek/nsh/defconfig | 20 +++---- configs/sama5d4-ek/nxwm/defconfig | 20 +++---- configs/sama5d4-ek/ramtest/defconfig | 20 +++---- configs/samd20-xplained/nsh/defconfig | 20 +++---- configs/samd21-xplained/nsh/defconfig | 20 +++---- configs/same70-xplained/netnsh/defconfig | 20 +++---- configs/same70-xplained/nsh/defconfig | 20 +++---- configs/saml21-xplained/nsh/defconfig | 20 +++---- configs/samv71-xult/knsh/defconfig | 20 +++---- configs/samv71-xult/module/defconfig | 20 +++---- configs/samv71-xult/mxtxplnd/defconfig | 20 +++---- configs/samv71-xult/netnsh/defconfig | 20 +++---- configs/samv71-xult/nsh/defconfig | 20 +++---- configs/samv71-xult/nxwm/defconfig | 20 +++---- configs/samv71-xult/vnc/defconfig | 20 +++---- configs/samv71-xult/vnxwm/defconfig | 20 +++---- configs/shenzhou/nsh/defconfig | 20 +++---- configs/shenzhou/nxwm/defconfig | 20 +++---- configs/shenzhou/thttpd/defconfig | 20 +++---- configs/sim/bas/defconfig | 20 +++---- configs/sim/configdata/defconfig | 20 +++---- configs/sim/cxxtest/defconfig | 20 +++---- configs/sim/mount/defconfig | 20 +++---- configs/sim/mtdpart/defconfig | 20 +++---- configs/sim/mtdrwb/defconfig | 20 +++---- configs/sim/nettest/defconfig | 20 +++---- configs/sim/nsh/defconfig | 20 +++---- configs/sim/nsh2/defconfig | 20 +++---- configs/sim/nx/defconfig | 20 +++---- configs/sim/nx11/defconfig | 20 +++---- configs/sim/nxffs/defconfig | 20 +++---- configs/sim/nxlines/defconfig | 20 +++---- configs/sim/nxwm/defconfig | 20 +++---- configs/sim/ostest/defconfig | 20 +++---- configs/sim/pashello/defconfig | 20 +++---- configs/sim/touchscreen/defconfig | 20 +++---- configs/sim/traveler/defconfig | 20 +++---- configs/sim/udgram/defconfig | 20 +++---- configs/sim/unionfs/defconfig | 20 +++---- configs/sim/ustream/defconfig | 20 +++---- configs/spark/composite/defconfig | 20 +++---- configs/spark/nsh/defconfig | 20 +++---- configs/spark/usbmsc/defconfig | 20 +++---- configs/spark/usbnsh/defconfig | 20 +++---- configs/spark/usbserial/defconfig | 20 +++---- configs/stm3210e-eval/buttons/defconfig | 20 +++---- configs/stm3210e-eval/composite/defconfig | 20 +++---- configs/stm3210e-eval/nsh/defconfig | 20 +++---- configs/stm3210e-eval/nsh2/defconfig | 20 +++---- configs/stm3210e-eval/nx/defconfig | 20 +++---- configs/stm3210e-eval/nxterm/defconfig | 20 +++---- configs/stm3210e-eval/pm/defconfig | 20 +++---- configs/stm3210e-eval/usbmsc/defconfig | 20 +++---- configs/stm3210e-eval/usbserial/defconfig | 20 +++---- configs/stm3220g-eval/dhcpd/defconfig | 20 +++---- configs/stm3220g-eval/nettest/defconfig | 20 +++---- configs/stm3220g-eval/nsh/defconfig | 20 +++---- configs/stm3220g-eval/nsh2/defconfig | 20 +++---- configs/stm3220g-eval/nxwm/defconfig | 20 +++---- configs/stm3220g-eval/telnetd/defconfig | 20 +++---- configs/stm3240g-eval/dhcpd/defconfig | 20 +++---- configs/stm3240g-eval/discover/defconfig | 20 +++---- configs/stm3240g-eval/knxwm/defconfig | 20 +++---- configs/stm3240g-eval/nettest/defconfig | 20 +++---- configs/stm3240g-eval/nsh/defconfig | 20 +++---- configs/stm3240g-eval/nsh2/defconfig | 20 +++---- configs/stm3240g-eval/nxterm/defconfig | 20 +++---- configs/stm3240g-eval/nxwm/defconfig | 20 +++---- configs/stm3240g-eval/telnetd/defconfig | 20 +++---- configs/stm3240g-eval/webserver/defconfig | 20 +++---- configs/stm3240g-eval/xmlrpc/defconfig | 20 +++---- configs/stm32_tiny/nsh/defconfig | 20 +++---- configs/stm32_tiny/usbnsh/defconfig | 20 +++---- configs/stm32f103-minimum/nsh/defconfig | 20 +++---- configs/stm32f103-minimum/usbnsh/defconfig | 20 +++---- configs/stm32f3discovery/nsh/defconfig | 20 +++---- configs/stm32f3discovery/usbnsh/defconfig | 20 +++---- configs/stm32f411e-disco/nsh/defconfig | 20 +++---- configs/stm32f429i-disco/extflash/defconfig | 20 +++---- configs/stm32f429i-disco/lcd/defconfig | 20 +++---- configs/stm32f429i-disco/ltdc/defconfig | 20 +++---- configs/stm32f429i-disco/nsh/defconfig | 20 +++---- configs/stm32f429i-disco/usbmsc/defconfig | 20 +++---- configs/stm32f429i-disco/usbnsh/defconfig | 20 +++---- configs/stm32f4discovery/cxxtest/defconfig | 20 +++---- configs/stm32f4discovery/elf/defconfig | 20 +++---- configs/stm32f4discovery/ipv6/defconfig | 20 +++---- configs/stm32f4discovery/kostest/defconfig | 20 +++---- configs/stm32f4discovery/netnsh/defconfig | 20 +++---- configs/stm32f4discovery/nsh/defconfig | 20 +++---- configs/stm32f4discovery/nxlines/defconfig | 20 +++---- configs/stm32f4discovery/pm/defconfig | 20 +++---- .../stm32f4discovery/posix_spawn/defconfig | 20 +++---- configs/stm32f4discovery/rgbled/defconfig | 20 +++---- configs/stm32f4discovery/usbnsh/defconfig | 20 +++---- configs/stm32f4discovery/winbuild/defconfig | 20 +++---- configs/stm32f746g-disco/knsh/defconfig | 20 +++---- configs/stm32f746g-disco/netnsh/defconfig | 20 +++---- configs/stm32f746g-disco/nsh/defconfig | 20 +++---- configs/stm32l476vg-disco/nsh/defconfig | 20 +++---- configs/stm32ldiscovery/nsh/defconfig | 20 +++---- configs/stm32vldiscovery/nsh/defconfig | 20 +++---- configs/sure-pic32mx/nsh/defconfig | 20 +++---- configs/sure-pic32mx/usbnsh/defconfig | 20 +++---- configs/teensy-2.0/hello/defconfig | 20 +++---- configs/teensy-2.0/nsh/defconfig | 20 +++---- configs/teensy-2.0/usbmsc/defconfig | 20 +++---- configs/teensy-3.x/nsh/defconfig | 20 +++---- configs/teensy-lc/nsh/defconfig | 20 +++---- configs/tm4c123g-launchpad/nsh/defconfig | 20 +++---- configs/tm4c1294-launchpad/ipv6/defconfig | 20 +++---- configs/tm4c1294-launchpad/nsh/defconfig | 20 +++---- configs/twr-k60n512/nsh/defconfig | 20 +++---- configs/u-blox-c027/nsh/defconfig | 20 +++---- configs/ubw32/nsh/defconfig | 20 +++---- configs/us7032evb1/nsh/defconfig | 20 +++---- configs/us7032evb1/ostest/defconfig | 20 +++---- configs/viewtool-stm32f107/highpri/defconfig | 20 +++---- configs/viewtool-stm32f107/netnsh/defconfig | 20 +++---- configs/viewtool-stm32f107/nsh/defconfig | 20 +++---- configs/xtrs/nsh/defconfig | 2 +- configs/xtrs/ostest/defconfig | 2 +- configs/xtrs/pashello/defconfig | 2 +- configs/z16f2800100zcog/nsh/defconfig | 20 +++---- configs/z16f2800100zcog/ostest/defconfig | 4 +- configs/z16f2800100zcog/pashello/defconfig | 4 +- configs/z80sim/nsh/defconfig | 2 +- configs/z80sim/ostest/defconfig | 2 +- configs/z80sim/pashello/defconfig | 2 +- configs/z8encore000zco/ostest/defconfig | 20 +++---- configs/z8f64200100kit/ostest/defconfig | 20 +++---- configs/zkit-arm-1769/hello/defconfig | 20 +++---- configs/zkit-arm-1769/nsh/defconfig | 20 +++---- configs/zkit-arm-1769/nxhello/defconfig | 20 +++---- configs/zkit-arm-1769/thttpd/defconfig | 20 +++---- configs/zp214xpa/nsh/defconfig | 20 +++---- configs/zp214xpa/nxlines/defconfig | 20 +++---- drivers/serial/Kconfig | 60 +++++++++---------- 340 files changed, 3122 insertions(+), 3122 deletions(-) diff --git a/arch/arm/src/a1x/Kconfig b/arch/arm/src/a1x/Kconfig index 4141435221..c66753d538 100644 --- a/arch/arm/src/a1x/Kconfig +++ b/arch/arm/src/a1x/Kconfig @@ -21,49 +21,49 @@ menu "Allwinner A1X Peripheral Support" config A1X_UART0 bool "UART 0" default n - select ARCH_HAVE_UART0 + select UART0_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config A1X_UART1 bool "UART 1" default n - select ARCH_HAVE_UART1 + select UART1_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config A1X_UART2 bool "UART 2" default n - select ARCH_HAVE_UART2 + select UART2_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config A1X_UART3 bool "UART 3" default n - select ARCH_HAVE_UART3 + select UART3_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config A1X_UART4 bool "UART 4" default n - select ARCH_HAVE_UART4 + select UART4_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config A1X_UART5 bool "UART 5" default n - select ARCH_HAVE_UART5 + select UART5_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config A1X_UART6 bool "UART 6" default n - select ARCH_HAVE_UART6 + select UART6_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config A1X_UART7 bool "UART 7" default n - select ARCH_HAVE_UART7 + select UART7_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config A1X_IR0 diff --git a/arch/arm/src/dm320/Kconfig b/arch/arm/src/dm320/Kconfig index cc0de49494..ff6356ff5f 100644 --- a/arch/arm/src/dm320/Kconfig +++ b/arch/arm/src/dm320/Kconfig @@ -11,12 +11,12 @@ menu "DM320 Peripheral Selections" config DM320_UART0 bool default y - select ARCH_HAVE_UART0 + select UART0_SERIALDRIVER config DM320_UART1 bool default y - select ARCH_HAVE_UART1 + select UART1_SERIALDRIVER endmenu # DM320 Peripheral Selections endif # ARCH_CHIP_DM320 diff --git a/arch/arm/src/efm32/Kconfig b/arch/arm/src/efm32/Kconfig index c5b6d9ca9b..9ed46c851f 100644 --- a/arch/arm/src/efm32/Kconfig +++ b/arch/arm/src/efm32/Kconfig @@ -176,13 +176,13 @@ config EFM32_USART2 config EFM32_UART0 bool "UART0" default n - select ARCH_HAVE_UART0 + select UART0_SERIALDRIVER select EFM32_UART config EFM32_UART1 bool "UART1" default n - select ARCH_HAVE_UART1 + select UART1_SERIALDRIVER select EFM32_UART config EFM32_LEUART0 diff --git a/arch/arm/src/imx1/Kconfig b/arch/arm/src/imx1/Kconfig index e138090e45..aa2b6bb693 100644 --- a/arch/arm/src/imx1/Kconfig +++ b/arch/arm/src/imx1/Kconfig @@ -12,17 +12,17 @@ menu "iMX.1 Peripheral Selection" config IMX1_UART1 bool "UART1" default n - select ARCH_HAVE_UART1 + select UART1_SERIALDRIVER config IMX1_UART2 bool "UART2" default n - select ARCH_HAVE_UART2 + select UART2_SERIALDRIVER config IMX1_UART3 bool "UART3" default n - select ARCH_HAVE_UART3 + select UART3_SERIALDRIVER config IMX1_SPI1 bool "SPI1" diff --git a/arch/arm/src/imx6/Kconfig b/arch/arm/src/imx6/Kconfig index 7250001d56..8296c1a2ae 100644 --- a/arch/arm/src/imx6/Kconfig +++ b/arch/arm/src/imx6/Kconfig @@ -59,27 +59,27 @@ menu "iMX.6 Peripheral Selection" config IMX6_UART1 bool "UART1" default n - select ARCH_HAVE_UART1 + select UART1_SERIALDRIVER config IMX6_UART2 bool "UART2" default n - select ARCH_HAVE_UART2 + select UART2_SERIALDRIVER config IMX6_UART3 bool "UART3" default n - select ARCH_HAVE_UART3 + select UART3_SERIALDRIVER config IMX6_UART4 bool "UART4" default n - select ARCH_HAVE_UART4 + select UART4_SERIALDRIVER config IMX6_UART5 bool "UART5" default n - select ARCH_HAVE_UART5 + select UART5_SERIALDRIVER config IMX6_SPI1 bool "SPI1" diff --git a/arch/arm/src/kinetis/Kconfig b/arch/arm/src/kinetis/Kconfig index 9540050b66..fdf54e1941 100644 --- a/arch/arm/src/kinetis/Kconfig +++ b/arch/arm/src/kinetis/Kconfig @@ -131,42 +131,42 @@ config KINETIS_FLEXBUS config KINETIS_UART0 bool "UART0" default n - select ARCH_HAVE_UART0 + select UART0_SERIALDRIVER ---help--- Support UART0 config KINETIS_UART1 bool "UART1" default n - select ARCH_HAVE_UART1 + select UART1_SERIALDRIVER ---help--- Support UART1 config KINETIS_UART2 bool "UART2" default n - select ARCH_HAVE_UART2 + select UART2_SERIALDRIVER ---help--- Support UART2 config KINETIS_UART3 bool "UART3" default n - select ARCH_HAVE_UART3 + select UART3_SERIALDRIVER ---help--- Support UART3 config KINETIS_UART4 bool "UART4" default n - select ARCH_HAVE_UART4 + select UART4_SERIALDRIVER ---help--- Support UART4 config KINETIS_UART5 bool "UART5" default n - select ARCH_HAVE_UART5 + select UART5_SERIALDRIVER ---help--- Support UART5 diff --git a/arch/arm/src/kl/Kconfig b/arch/arm/src/kl/Kconfig index 4505fc3e67..bfa4049153 100644 --- a/arch/arm/src/kl/Kconfig +++ b/arch/arm/src/kl/Kconfig @@ -47,21 +47,21 @@ config KL_FLEXBUS config KL_UART0 bool "UART0" default n - select ARCH_HAVE_UART0 + select UART0_SERIALDRIVER ---help--- Support UART0 config KL_UART1 bool "UART1" default n - select ARCH_HAVE_UART1 + select UART1_SERIALDRIVER ---help--- Support UART1 config KL_UART2 bool "UART2" default n - select ARCH_HAVE_UART2 + select UART2_SERIALDRIVER ---help--- Support UART2 diff --git a/arch/arm/src/lpc11xx/Kconfig b/arch/arm/src/lpc11xx/Kconfig index 127f3f0db8..45bb842a30 100644 --- a/arch/arm/src/lpc11xx/Kconfig +++ b/arch/arm/src/lpc11xx/Kconfig @@ -55,7 +55,7 @@ config LPC11_PLL config LPC11_UART0 bool "UART0" - select ARCH_HAVE_UART0 + select UART0_SERIALDRIVER default y config LPC11_CAN0 diff --git a/arch/arm/src/lpc17xx/Kconfig b/arch/arm/src/lpc17xx/Kconfig index e8ac3d3a22..4bb53068bb 100644 --- a/arch/arm/src/lpc17xx/Kconfig +++ b/arch/arm/src/lpc17xx/Kconfig @@ -172,36 +172,36 @@ config LPC17_SDCARD config LPC17_UART0 bool "UART0" default n - select ARCH_HAVE_UART0 + select UART0_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config LPC17_UART1 bool "UART1" default n - select ARCH_HAVE_UART1 + select UART1_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config LPC17_UART2 bool "UART2" default n - select ARCH_HAVE_UART2 + select UART2_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config LPC17_UART3 bool "UART3" default n - select ARCH_HAVE_UART3 + select UART3_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config LPC17_UART4 bool "UART4" default n - select ARCH_HAVE_UART4 + select UART4_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config LPC17_CAN1 bool "CAN1" - select ARCH_HAVE_UART4 + select UART4_SERIALDRIVER default n config LPC17_CAN2 diff --git a/arch/arm/src/lpc214x/Kconfig b/arch/arm/src/lpc214x/Kconfig index 857b5f54d0..68926095cf 100644 --- a/arch/arm/src/lpc214x/Kconfig +++ b/arch/arm/src/lpc214x/Kconfig @@ -92,12 +92,12 @@ menu "LPC214x Peripheral Support" config LPC214X_UART0 bool default y - select ARCH_HAVE_UART0 + select UART0_SERIALDRIVER config LPC214X_UART1 bool default y - select ARCH_HAVE_UART1 + select UART1_SERIALDRIVER config LPC214X_USBDEV bool "USB Device" diff --git a/arch/arm/src/lpc2378/Kconfig b/arch/arm/src/lpc2378/Kconfig index 4e153df401..08197970c6 100644 --- a/arch/arm/src/lpc2378/Kconfig +++ b/arch/arm/src/lpc2378/Kconfig @@ -118,22 +118,22 @@ menu "LPC2378 Peripheral Support" config LPC2378_UART0 bool "UART0" default n - select ARCH_HAVE_UART0 + select UART0_SERIALDRIVER config LPC2378_UART1 bool "UART1" default n - select ARCH_HAVE_UART1 + select UART1_SERIALDRIVER config LPC2378_UART2 bool "UART2" default n - select ARCH_HAVE_UART2 + select UART2_SERIALDRIVER config LPC2378_UART3 bool "UART3" default n - select ARCH_HAVE_UART3 + select UART3_SERIALDRIVER config LPC2378_USBDEV bool "USB Device" diff --git a/arch/arm/src/lpc31xx/Kconfig b/arch/arm/src/lpc31xx/Kconfig index bb3f943506..ffdaa81146 100644 --- a/arch/arm/src/lpc31xx/Kconfig +++ b/arch/arm/src/lpc31xx/Kconfig @@ -51,7 +51,7 @@ menu "LPC31xx Peripheral Support" config LPC31_UART bool "UART" default n - select ARCH_HAVE_UART + select UART_SERIALDRIVER config LPC31_SPI bool "SPI" diff --git a/arch/arm/src/lpc43xx/Kconfig b/arch/arm/src/lpc43xx/Kconfig index db34170101..5b7d730151 100644 --- a/arch/arm/src/lpc43xx/Kconfig +++ b/arch/arm/src/lpc43xx/Kconfig @@ -280,7 +280,7 @@ config LPC43_USART0 config LPC43_UART1 bool "UART1" default n - select ARCH_HAVE_UART1 + select UART1_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config LPC43_USART2 diff --git a/arch/arm/src/nuc1xx/Kconfig b/arch/arm/src/nuc1xx/Kconfig index 50cddcbdee..3571b4b626 100644 --- a/arch/arm/src/nuc1xx/Kconfig +++ b/arch/arm/src/nuc1xx/Kconfig @@ -314,20 +314,20 @@ config NUC_PWM7 config NUC_UART0 bool "UART0" default y - select ARCH_HAVE_UART0 + select UART0_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config NUC_UART1 bool "UART1" default n - select ARCH_HAVE_UART1 + select UART1_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config NUC_UART2 bool "UART2" default n depends on NUC_HAVE_UART2 - select ARCH_HAVE_UART2 + select UART2_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config NUC_USBD diff --git a/arch/arm/src/sam34/Kconfig b/arch/arm/src/sam34/Kconfig index db53c7f1ee..ed14f21ade 100644 --- a/arch/arm/src/sam34/Kconfig +++ b/arch/arm/src/sam34/Kconfig @@ -453,7 +453,7 @@ config SAM34_PICOUART bool "PicoUART" default n depends on ARCH_CHIP_SAM4L - select ARCH_HAVE_UART + select UART_SERIALDRIVER config SAM34_PWM bool "Pulse Width Modulation (PWM) Controller" @@ -609,14 +609,14 @@ config SAM34_UART0 bool "UART 0" default y depends on ARCH_CHIP_SAM3U || ARCH_CHIP_SAM3X || ARCH_CHIP_SAM3A || ARCH_CHIP_SAM4CM || ARCH_CHIP_SAM4S || ARCH_CHIP_SAM4E - select ARCH_HAVE_UART0 + select UART0_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config SAM34_UART1 bool "UART 1" default n depends on ARCH_CHIP_SAM4CM || ARCH_CHIP_SAM4S || ARCH_CHIP_SAM4E - select ARCH_HAVE_UART1 + select UART1_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS if SAM34_UART1 && ARCH_CHIP_SAM4CM diff --git a/arch/arm/src/sama5/Kconfig b/arch/arm/src/sama5/Kconfig index a2b60bc20c..9c1f67f362 100644 --- a/arch/arm/src/sama5/Kconfig +++ b/arch/arm/src/sama5/Kconfig @@ -432,35 +432,35 @@ config SAMA5_UART0 bool "UART 0" default y depends on SAMA5_HAVE_UART0 - select ARCH_HAVE_UART0 + select UART0_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config SAMA5_UART1 bool "UART 1" default n depends on SAMA5_HAVE_UART1 - select ARCH_HAVE_UART1 + select UART1_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config SAMA5_UART2 bool "UART 2" default n depends on SAMA5_HAVE_UART2 - select ARCH_HAVE_UART2 + select UART2_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config SAMA5_UART3 bool "UART 3" default n depends on SAMA5_HAVE_UART3 - select ARCH_HAVE_UART3 + select UART3_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config SAMA5_UART4 bool "UART 4" default n depends on SAMA5_HAVE_UART4 - select ARCH_HAVE_UART1 + select UART1_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config SAMA5_USART0 diff --git a/arch/arm/src/samv7/Kconfig b/arch/arm/src/samv7/Kconfig index 62f5421913..6cb41c0304 100644 --- a/arch/arm/src/samv7/Kconfig +++ b/arch/arm/src/samv7/Kconfig @@ -465,31 +465,31 @@ config SAMV7_TWIHS2 config SAMV7_UART0 bool "UART 0" default y - select ARCH_HAVE_UART0 + select UART0_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config SAMV7_UART1 bool "UART 1" default n - select ARCH_HAVE_UART1 + select UART1_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config SAMV7_UART2 bool "UART 2" default y - select ARCH_HAVE_UART2 + select UART2_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config SAMV7_UART3 bool "UART 3" default n - select ARCH_HAVE_UART3 + select UART3_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config SAMV7_UART4 bool "UART 4" default y - select ARCH_HAVE_UART4 + select UART4_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config SAMV7_USBDEVFS diff --git a/arch/arm/src/stm32/Kconfig b/arch/arm/src/stm32/Kconfig index 940c9fb645..c4e722f4ba 100644 --- a/arch/arm/src/stm32/Kconfig +++ b/arch/arm/src/stm32/Kconfig @@ -2184,7 +2184,7 @@ config STM32_UART4 default n depends on STM32_HAVE_UART4 select ARCH_HAVE_SERIAL_TERMIOS - select ARCH_HAVE_UART4 + select UART4_SERIALDRIVER select STM32_USART config STM32_UART5 @@ -2192,7 +2192,7 @@ config STM32_UART5 default n depends on STM32_HAVE_UART5 select ARCH_HAVE_SERIAL_TERMIOS - select ARCH_HAVE_UART5 + select UART5_SERIALDRIVER select STM32_USART config STM32_USART6 @@ -2208,7 +2208,7 @@ config STM32_UART7 default n depends on STM32_HAVE_UART7 select ARCH_HAVE_SERIAL_TERMIOS - select ARCH_HAVE_UART7 + select UART7_SERIALDRIVER select STM32_USART config STM32_UART8 @@ -2216,7 +2216,7 @@ config STM32_UART8 default n depends on STM32_HAVE_UART8 select ARCH_HAVE_SERIAL_TERMIOS - select ARCH_HAVE_UART8 + select UART8_SERIALDRIVER select STM32_USART config STM32_USB diff --git a/arch/arm/src/stm32f7/Kconfig b/arch/arm/src/stm32f7/Kconfig index 729f05736a..e3a8d2b42c 100644 --- a/arch/arm/src/stm32f7/Kconfig +++ b/arch/arm/src/stm32f7/Kconfig @@ -392,14 +392,14 @@ config STM32F7_UART4 bool "UART4" default n select ARCH_HAVE_SERIAL_TERMIOS - select ARCH_HAVE_UART4 + select UART4_SERIALDRIVER select STM32F7_USART config STM32F7_UART5 bool "UART5" default n select ARCH_HAVE_SERIAL_TERMIOS - select ARCH_HAVE_UART5 + select UART5_SERIALDRIVER select STM32F7_USART config STM32F7_USART6 @@ -413,14 +413,14 @@ config STM32F7_UART7 bool "UART7" default n select ARCH_HAVE_SERIAL_TERMIOS - select ARCH_HAVE_UART7 + select UART7_SERIALDRIVER select STM32F7_USART config STM32F7_UART8 bool "UART8" default n select ARCH_HAVE_SERIAL_TERMIOS - select ARCH_HAVE_UART8 + select UART8_SERIALDRIVER select STM32F7_USART config STM32F7_IWDG diff --git a/arch/arm/src/stm32l4/Kconfig b/arch/arm/src/stm32l4/Kconfig index a224be7835..eccd8469bf 100644 --- a/arch/arm/src/stm32l4/Kconfig +++ b/arch/arm/src/stm32l4/Kconfig @@ -422,14 +422,14 @@ config STM32L4_UART4 bool "UART4" default n select ARCH_HAVE_SERIAL_TERMIOS - select ARCH_HAVE_UART4 + select UART4_SERIALDRIVER select STM32L4_USART config STM32L4_UART5 bool "UART5" default n select ARCH_HAVE_SERIAL_TERMIOS - select ARCH_HAVE_UART5 + select UART5_SERIALDRIVER select STM32L4_USART config STM32L4_I2C1 diff --git a/arch/arm/src/str71x/Kconfig b/arch/arm/src/str71x/Kconfig index 2b8bc7278f..db945aaf59 100644 --- a/arch/arm/src/str71x/Kconfig +++ b/arch/arm/src/str71x/Kconfig @@ -80,25 +80,25 @@ config STR71X_UART0 bool "UART0" default n select STR71X_GPIO0 - select ARCH_HAVE_UART0 + select UART0_SERIALDRIVER config STR71X_UART1 bool "UART1" default n select STR71X_GPIO0 - select ARCH_HAVE_UART1 + select UART1_SERIALDRIVER config STR71X_UART2 bool "UART2" default n select STR71X_GPIO0 - select ARCH_HAVE_UART2 + select UART2_SERIALDRIVER config STR71X_UART3 bool "UART3" default n select STR71X_GPIO0 - select ARCH_HAVE_UART3 + select UART3_SERIALDRIVER config STR71X_USB bool "USB" diff --git a/arch/arm/src/tiva/Kconfig b/arch/arm/src/tiva/Kconfig index 96b82a4691..20be141309 100644 --- a/arch/arm/src/tiva/Kconfig +++ b/arch/arm/src/tiva/Kconfig @@ -414,48 +414,48 @@ config TIVA_I2C9 config TIVA_UART0 bool "UART0" - select ARCH_HAVE_UART0 + select UART0_SERIALDRIVER default n config TIVA_UART1 bool "UART1" - select ARCH_HAVE_UART1 + select UART1_SERIALDRIVER default n config TIVA_UART2 bool "UART2" - select ARCH_HAVE_UART2 + select UART2_SERIALDRIVER default n config TIVA_UART3 bool "UART3" default n depends on TIVA_HAVE_UART3 - select ARCH_HAVE_UART3 + select UART3_SERIALDRIVER config TIVA_UART4 bool "UART4" default n depends on TIVA_HAVE_UART4 - select ARCH_HAVE_UART4 + select UART4_SERIALDRIVER config TIVA_UART5 bool "UART5" default n depends on TIVA_HAVE_UART5 - select ARCH_HAVE_UART5 + select UART5_SERIALDRIVER config TIVA_UART6 bool "UART6" default n depends on TIVA_HAVE_UART6 - select ARCH_HAVE_UART6 + select UART6_SERIALDRIVER config TIVA_UART7 bool "UART7" default n depends on TIVA_HAVE_UART7 - select ARCH_HAVE_UART7 + select UART7_SERIALDRIVER config TIVA_SSI0 bool "SSI0" diff --git a/arch/mips/src/pic32mx/Kconfig b/arch/mips/src/pic32mx/Kconfig index 6d8894bf62..3da65ead35 100644 --- a/arch/mips/src/pic32mx/Kconfig +++ b/arch/mips/src/pic32mx/Kconfig @@ -579,37 +579,37 @@ config PIC32MX_SPI4 config PIC32MX_UART1 bool "UART1" default n - select ARCH_HAVE_UART1 + select UART1_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config PIC32MX_UART2 bool "UART2" default n - select ARCH_HAVE_UART2 + select UART2_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config PIC32MX_UART3 bool "UART3" default n - select ARCH_HAVE_UART3 + select UART3_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config PIC32MX_UART4 bool "UART4" default n - select ARCH_HAVE_UART4 + select UART4_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config PIC32MX_UART5 bool "UART5" default n - select ARCH_HAVE_UART5 + select UART5_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config PIC32MX_UART6 bool "UART6" default n - select ARCH_HAVE_UART6 + select UART6_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config PIC32MX_ADC diff --git a/arch/mips/src/pic32mz/Kconfig b/arch/mips/src/pic32mz/Kconfig index bca6f2b764..ac412b6dc5 100644 --- a/arch/mips/src/pic32mz/Kconfig +++ b/arch/mips/src/pic32mz/Kconfig @@ -172,37 +172,37 @@ config PIC32MZ_SPI6 config PIC32MZ_UART1 bool "UART1" default n - select ARCH_HAVE_UART1 + select UART1_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config PIC32MZ_UART2 bool "UART2" default n - select ARCH_HAVE_UART2 + select UART2_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config PIC32MZ_UART3 bool "UART3" default n - select ARCH_HAVE_UART3 + select UART3_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config PIC32MZ_UART4 bool "UART4" default n - select ARCH_HAVE_UART4 + select UART4_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config PIC32MZ_UART5 bool "UART5" default n - select ARCH_HAVE_UART5 + select UART5_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config PIC32MZ_UART6 bool "UART6" default n - select ARCH_HAVE_UART6 + select UART6_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config PIC32MZ_ADC diff --git a/arch/sh/src/m16c/Kconfig b/arch/sh/src/m16c/Kconfig index e1f81d0727..f70092dfa2 100644 --- a/arch/sh/src/m16c/Kconfig +++ b/arch/sh/src/m16c/Kconfig @@ -7,17 +7,17 @@ if ARCH_M16C config M16C_UART0 bool "UART0" - select ARCH_HAVE_UART0 + select UART0_SERIALDRIVER default n config M16C_UART1 bool "UART1" - select ARCH_HAVE_UART1 + select UART1_SERIALDRIVER default n config M16C_UART2 bool "UART2" - select ARCH_HAVE_UART2 + select UART2_SERIALDRIVER default n endif diff --git a/arch/z16/src/z16f/Kconfig b/arch/z16/src/z16f/Kconfig index 229a1aa72f..8861726aee 100644 --- a/arch/z16/src/z16f/Kconfig +++ b/arch/z16/src/z16f/Kconfig @@ -18,12 +18,12 @@ config Z16F_ESPI config Z16F_UART0 bool "UART0" default y - select ARCH_HAVE_UART0 + select UART0_SERIALDRIVER config Z16F_UART1 bool "UART1" default y - select ARCH_HAVE_UART1 + select UART1_SERIALDRIVER endmenu # Z16F Peripheral Selection diff --git a/arch/z80/src/ez80/Kconfig b/arch/z80/src/ez80/Kconfig index df8cc5a197..7529e2c7ad 100644 --- a/arch/z80/src/ez80/Kconfig +++ b/arch/z80/src/ez80/Kconfig @@ -9,17 +9,17 @@ menu "ez80 Peripheral Support" config EZ80_UART0 bool "UART0" - select ARCH_HAVE_UART0 + select UART0_SERIALDRIVER default n config EZ80_UART1 bool "UART1" - select ARCH_HAVE_UART1 + select UART1_SERIALDRIVER default n config EZ80_UART2 bool "UART2" - select ARCH_HAVE_UART2 + select UART2_SERIALDRIVER default n config EZ80_EMAC diff --git a/arch/z80/src/z8/Kconfig b/arch/z80/src/z8/Kconfig index d7e5140310..3c77bb1426 100644 --- a/arch/z80/src/z8/Kconfig +++ b/arch/z80/src/z8/Kconfig @@ -10,12 +10,12 @@ if ARCH_CHIP_Z8 config Z8_UART0 bool default y - select ARCH_HAVE_UART0 + select UART0_SERIALDRIVER config Z8_UART1 bool default y - select ARCH_HAVE_UART1 + select UART1_SERIALDRIVER # The ZiLOG ZDS-II Windows toolchain is the only toolchain available for # the ez80. diff --git a/configs/Kconfig b/configs/Kconfig index aa4a2bd814..c8169d0086 100644 --- a/configs/Kconfig +++ b/configs/Kconfig @@ -1163,7 +1163,7 @@ config ARCH_BOARD_VIEWTOOL_STM32F107 config ARCH_BOARD_XTRS bool "XTRS TRS80 Model 3 emulation" depends on ARCH_CHIP_Z80 - select ARCH_HAVE_UART + select UART_SERIALDRIVER ---help--- TRS80 Model 3. This port uses a vintage computer based on the Z80. An emulator for this computer is available to run TRS80 programs on a @@ -1181,7 +1181,7 @@ config ARCH_BOARD_Z16F2800100ZCOG config ARCH_BOARD_Z80SIM bool "Z80 Instruction Set Simulator" depends on ARCH_CHIP_Z80 - select ARCH_HAVE_UART + select UART_SERIALDRIVER ---help--- z80 Microcontroller. This port uses a Z80 instruction set simulator called z80sim. This port also uses the SDCC toolchain diff --git a/configs/arduino-due/nsh/defconfig b/configs/arduino-due/nsh/defconfig index b15b1d6fac..8f1ac7f03f 100644 --- a/configs/arduino-due/nsh/defconfig +++ b/configs/arduino-due/nsh/defconfig @@ -493,16 +493,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/arduino-mega2560/hello/defconfig b/configs/arduino-mega2560/hello/defconfig index 517de1a0a7..699bdf9a4c 100644 --- a/configs/arduino-mega2560/hello/defconfig +++ b/configs/arduino-mega2560/hello/defconfig @@ -301,16 +301,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y CONFIG_DEV_LOWCONSOLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set CONFIG_USART0_SERIALDRIVER=y diff --git a/configs/arduino-mega2560/nsh/defconfig b/configs/arduino-mega2560/nsh/defconfig index b95139be81..686f04fd16 100644 --- a/configs/arduino-mega2560/nsh/defconfig +++ b/configs/arduino-mega2560/nsh/defconfig @@ -309,16 +309,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set CONFIG_USART0_SERIALDRIVER=y diff --git a/configs/c5471evm/httpd/defconfig b/configs/c5471evm/httpd/defconfig index 4e628342c0..0b5081c85d 100644 --- a/configs/c5471evm/httpd/defconfig +++ b/configs/c5471evm/httpd/defconfig @@ -348,16 +348,16 @@ CONFIG_WATCHDOG_DEVPATH="/dev/watchdog0" CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/c5471evm/nettest/defconfig b/configs/c5471evm/nettest/defconfig index 12aa20198f..a27d7ff714 100644 --- a/configs/c5471evm/nettest/defconfig +++ b/configs/c5471evm/nettest/defconfig @@ -358,16 +358,16 @@ CONFIG_WATCHDOG_DEVPATH="/dev/watchdog0" CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/c5471evm/nsh/defconfig b/configs/c5471evm/nsh/defconfig index 940d3ed7d2..333af70e09 100644 --- a/configs/c5471evm/nsh/defconfig +++ b/configs/c5471evm/nsh/defconfig @@ -367,16 +367,16 @@ CONFIG_NETDEV_TELNET=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/cc3200-launchpad/nsh/defconfig b/configs/cc3200-launchpad/nsh/defconfig index f5cb5dbe32..f8cfc29305 100644 --- a/configs/cc3200-launchpad/nsh/defconfig +++ b/configs/cc3200-launchpad/nsh/defconfig @@ -354,16 +354,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/cloudctrl/nsh/defconfig b/configs/cloudctrl/nsh/defconfig index 957e7531bc..560b768c61 100644 --- a/configs/cloudctrl/nsh/defconfig +++ b/configs/cloudctrl/nsh/defconfig @@ -787,16 +787,16 @@ CONFIG_ETH0_PHY_DM9161=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/compal_e86/nsh_highram/defconfig b/configs/compal_e86/nsh_highram/defconfig index 6ce384c0ea..b544ab6ec1 100644 --- a/configs/compal_e86/nsh_highram/defconfig +++ b/configs/compal_e86/nsh_highram/defconfig @@ -368,16 +368,16 @@ CONFIG_SPI_EXCHANGE=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/compal_e88/nsh_highram/defconfig b/configs/compal_e88/nsh_highram/defconfig index 033f523eb3..2464a2688d 100644 --- a/configs/compal_e88/nsh_highram/defconfig +++ b/configs/compal_e88/nsh_highram/defconfig @@ -368,16 +368,16 @@ CONFIG_SPI_EXCHANGE=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/compal_e99/nsh_compalram/defconfig b/configs/compal_e99/nsh_compalram/defconfig index 913d1eb9f2..449f8b8857 100644 --- a/configs/compal_e99/nsh_compalram/defconfig +++ b/configs/compal_e99/nsh_compalram/defconfig @@ -405,16 +405,16 @@ CONFIG_LCD_LANDSCAPE=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/compal_e99/nsh_highram/defconfig b/configs/compal_e99/nsh_highram/defconfig index 7b3b0bfbcf..9e3b971ec3 100644 --- a/configs/compal_e99/nsh_highram/defconfig +++ b/configs/compal_e99/nsh_highram/defconfig @@ -404,16 +404,16 @@ CONFIG_LCD_LANDSCAPE=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/dk-tm4c129x/ipv6/defconfig b/configs/dk-tm4c129x/ipv6/defconfig index 6f157b4091..cb0ccc853f 100644 --- a/configs/dk-tm4c129x/ipv6/defconfig +++ b/configs/dk-tm4c129x/ipv6/defconfig @@ -490,16 +490,16 @@ CONFIG_LM75=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/dk-tm4c129x/nsh/defconfig b/configs/dk-tm4c129x/nsh/defconfig index f4b555a9a7..ff110d61cc 100644 --- a/configs/dk-tm4c129x/nsh/defconfig +++ b/configs/dk-tm4c129x/nsh/defconfig @@ -545,16 +545,16 @@ CONFIG_LM75=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/ea3131/nsh/defconfig b/configs/ea3131/nsh/defconfig index 11892bca7a..d6139ccd4f 100644 --- a/configs/ea3131/nsh/defconfig +++ b/configs/ea3131/nsh/defconfig @@ -358,16 +358,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -CONFIG_ARCH_HAVE_UART=y -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +CONFIG_UART_SERIALDRIVER=y +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/ea3131/pgnsh/defconfig b/configs/ea3131/pgnsh/defconfig index 63a0e6a003..2419f3d031 100644 --- a/configs/ea3131/pgnsh/defconfig +++ b/configs/ea3131/pgnsh/defconfig @@ -451,16 +451,16 @@ CONFIG_M25P_MEMORY_TYPE=0x20 CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -CONFIG_ARCH_HAVE_UART=y -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +CONFIG_UART_SERIALDRIVER=y +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/ea3131/usbserial/defconfig b/configs/ea3131/usbserial/defconfig index d77007dede..4457398f67 100644 --- a/configs/ea3131/usbserial/defconfig +++ b/configs/ea3131/usbserial/defconfig @@ -431,16 +431,16 @@ CONFIG_SERIAL=y CONFIG_DEV_LOWCONSOLE=y CONFIG_SERIAL_REMOVABLE=y # CONFIG_16550_UART is not set -CONFIG_ARCH_HAVE_UART=y -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +CONFIG_UART_SERIALDRIVER=y +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/ea3152/ostest/defconfig b/configs/ea3152/ostest/defconfig index 94bccd9836..6d884f2922 100644 --- a/configs/ea3152/ostest/defconfig +++ b/configs/ea3152/ostest/defconfig @@ -357,16 +357,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y CONFIG_DEV_LOWCONSOLE=y # CONFIG_16550_UART is not set -CONFIG_ARCH_HAVE_UART=y -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +CONFIG_UART_SERIALDRIVER=y +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/eagle100/httpd/defconfig b/configs/eagle100/httpd/defconfig index f894505a3a..96e0b09524 100644 --- a/configs/eagle100/httpd/defconfig +++ b/configs/eagle100/httpd/defconfig @@ -352,7 +352,7 @@ CONFIG_NETDEVICES=y CONFIG_SERIAL=y CONFIG_DEV_LOWCONSOLE=y # CONFIG_16550_UART is not set -CONFIG_ARCH_HAVE_UART0=y +CONFIG_UART0_SERIALDRIVER=y # # USART Configuration diff --git a/configs/eagle100/nettest/defconfig b/configs/eagle100/nettest/defconfig index b3fcf848ef..6addc5be13 100644 --- a/configs/eagle100/nettest/defconfig +++ b/configs/eagle100/nettest/defconfig @@ -475,16 +475,16 @@ CONFIG_NETDEVICES=y CONFIG_SERIAL=y CONFIG_DEV_LOWCONSOLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/eagle100/nsh/defconfig b/configs/eagle100/nsh/defconfig index afb2d73e64..7ea60883f3 100644 --- a/configs/eagle100/nsh/defconfig +++ b/configs/eagle100/nsh/defconfig @@ -518,16 +518,16 @@ CONFIG_ARCH_HAVE_NETDEV_STATISTICS=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/eagle100/nxflat/defconfig b/configs/eagle100/nxflat/defconfig index ebf3947972..f897159171 100644 --- a/configs/eagle100/nxflat/defconfig +++ b/configs/eagle100/nxflat/defconfig @@ -325,16 +325,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y CONFIG_DEV_LOWCONSOLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/eagle100/thttpd/defconfig b/configs/eagle100/thttpd/defconfig index 3000c1ee9b..9676509e6f 100644 --- a/configs/eagle100/thttpd/defconfig +++ b/configs/eagle100/thttpd/defconfig @@ -459,16 +459,16 @@ CONFIG_NETDEVICES=y CONFIG_SERIAL=y CONFIG_DEV_LOWCONSOLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/efm32-g8xx-stk/nsh/defconfig b/configs/efm32-g8xx-stk/nsh/defconfig index 206223c95f..f5d1d7dc68 100644 --- a/configs/efm32-g8xx-stk/nsh/defconfig +++ b/configs/efm32-g8xx-stk/nsh/defconfig @@ -384,16 +384,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/efm32gg-stk3700/nsh/defconfig b/configs/efm32gg-stk3700/nsh/defconfig index 6cd1f1bd64..5dded8feb7 100644 --- a/configs/efm32gg-stk3700/nsh/defconfig +++ b/configs/efm32gg-stk3700/nsh/defconfig @@ -411,16 +411,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/ekk-lm3s9b96/nsh/defconfig b/configs/ekk-lm3s9b96/nsh/defconfig index d6124c03fb..dd2910e1ba 100644 --- a/configs/ekk-lm3s9b96/nsh/defconfig +++ b/configs/ekk-lm3s9b96/nsh/defconfig @@ -507,16 +507,16 @@ CONFIG_ARCH_HAVE_NETDEV_STATISTICS=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/ez80f910200kitg/ostest/defconfig b/configs/ez80f910200kitg/ostest/defconfig index aa29999786..bc3c363d59 100644 --- a/configs/ez80f910200kitg/ostest/defconfig +++ b/configs/ez80f910200kitg/ostest/defconfig @@ -381,16 +381,16 @@ CONFIG_MMCSD_HAVECARDDETECT=y CONFIG_SERIAL=y CONFIG_DEV_LOWCONSOLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/ez80f910200zco/dhcpd/defconfig b/configs/ez80f910200zco/dhcpd/defconfig index 3472c4c146..4eade9049c 100644 --- a/configs/ez80f910200zco/dhcpd/defconfig +++ b/configs/ez80f910200zco/dhcpd/defconfig @@ -427,16 +427,16 @@ CONFIG_ETH0_PHY_AM79C874=y CONFIG_SERIAL=y CONFIG_DEV_LOWCONSOLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/ez80f910200zco/httpd/defconfig b/configs/ez80f910200zco/httpd/defconfig index e3065086a3..5e742b216a 100644 --- a/configs/ez80f910200zco/httpd/defconfig +++ b/configs/ez80f910200zco/httpd/defconfig @@ -436,16 +436,16 @@ CONFIG_ETH0_PHY_AM79C874=y CONFIG_SERIAL=y CONFIG_DEV_LOWCONSOLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/ez80f910200zco/nettest/defconfig b/configs/ez80f910200zco/nettest/defconfig index b491c26d1c..61eb67935b 100644 --- a/configs/ez80f910200zco/nettest/defconfig +++ b/configs/ez80f910200zco/nettest/defconfig @@ -428,16 +428,16 @@ CONFIG_ETH0_PHY_AM79C874=y CONFIG_SERIAL=y CONFIG_DEV_LOWCONSOLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/ez80f910200zco/nsh/defconfig b/configs/ez80f910200zco/nsh/defconfig index 5dd8e297fd..2fe76314ca 100644 --- a/configs/ez80f910200zco/nsh/defconfig +++ b/configs/ez80f910200zco/nsh/defconfig @@ -439,16 +439,16 @@ CONFIG_ETH0_PHY_AM79C874=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/ez80f910200zco/poll/defconfig b/configs/ez80f910200zco/poll/defconfig index 5dc11e48a4..d08af59990 100644 --- a/configs/ez80f910200zco/poll/defconfig +++ b/configs/ez80f910200zco/poll/defconfig @@ -435,16 +435,16 @@ CONFIG_ETH0_PHY_AM79C874=y CONFIG_SERIAL=y CONFIG_DEV_LOWCONSOLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/fire-stm32v2/nsh/defconfig b/configs/fire-stm32v2/nsh/defconfig index 3a7d48f241..63a9c866de 100644 --- a/configs/fire-stm32v2/nsh/defconfig +++ b/configs/fire-stm32v2/nsh/defconfig @@ -793,16 +793,16 @@ CONFIG_ENC28J60_FREQUENCY=20000000 CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/freedom-kl25z/minnsh/defconfig b/configs/freedom-kl25z/minnsh/defconfig index ea7bf4f757..ffc9569d69 100644 --- a/configs/freedom-kl25z/minnsh/defconfig +++ b/configs/freedom-kl25z/minnsh/defconfig @@ -353,16 +353,16 @@ CONFIG_SPI_EXCHANGE=y # CONFIG_SERCOMM_CONSOLE is not set CONFIG_SERIAL=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/freedom-kl25z/nsh/defconfig b/configs/freedom-kl25z/nsh/defconfig index a0f5391210..360b6466e4 100644 --- a/configs/freedom-kl25z/nsh/defconfig +++ b/configs/freedom-kl25z/nsh/defconfig @@ -385,16 +385,16 @@ CONFIG_PWM=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/freedom-kl26z/minnsh/defconfig b/configs/freedom-kl26z/minnsh/defconfig index 70b2f14aae..7a5b12ec6b 100644 --- a/configs/freedom-kl26z/minnsh/defconfig +++ b/configs/freedom-kl26z/minnsh/defconfig @@ -356,16 +356,16 @@ CONFIG_SPI_EXCHANGE=y # CONFIG_SERCOMM_CONSOLE is not set CONFIG_SERIAL=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/freedom-kl26z/nsh/defconfig b/configs/freedom-kl26z/nsh/defconfig index e258f2e441..bbacf933f8 100644 --- a/configs/freedom-kl26z/nsh/defconfig +++ b/configs/freedom-kl26z/nsh/defconfig @@ -385,16 +385,16 @@ CONFIG_PWM=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/hymini-stm32v/buttons/defconfig b/configs/hymini-stm32v/buttons/defconfig index 2312937142..01052f0338 100644 --- a/configs/hymini-stm32v/buttons/defconfig +++ b/configs/hymini-stm32v/buttons/defconfig @@ -677,16 +677,16 @@ CONFIG_ARCH_HAVE_I2CRESET=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/hymini-stm32v/nsh/defconfig b/configs/hymini-stm32v/nsh/defconfig index 6b71a025e2..bc280bcc09 100644 --- a/configs/hymini-stm32v/nsh/defconfig +++ b/configs/hymini-stm32v/nsh/defconfig @@ -706,16 +706,16 @@ CONFIG_SDIO_PREFLIGHT=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/hymini-stm32v/nsh2/defconfig b/configs/hymini-stm32v/nsh2/defconfig index f0dc51dd01..f744f1bcf2 100644 --- a/configs/hymini-stm32v/nsh2/defconfig +++ b/configs/hymini-stm32v/nsh2/defconfig @@ -794,16 +794,16 @@ CONFIG_SDIO_PREFLIGHT=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/hymini-stm32v/usbmsc/defconfig b/configs/hymini-stm32v/usbmsc/defconfig index d09f598d93..a0344b11c0 100644 --- a/configs/hymini-stm32v/usbmsc/defconfig +++ b/configs/hymini-stm32v/usbmsc/defconfig @@ -701,16 +701,16 @@ CONFIG_SDIO_PREFLIGHT=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/hymini-stm32v/usbnsh/defconfig b/configs/hymini-stm32v/usbnsh/defconfig index d9b886d56b..4ca6eefd68 100644 --- a/configs/hymini-stm32v/usbnsh/defconfig +++ b/configs/hymini-stm32v/usbnsh/defconfig @@ -680,16 +680,16 @@ CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set CONFIG_SERIAL_REMOVABLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/hymini-stm32v/usbserial/defconfig b/configs/hymini-stm32v/usbserial/defconfig index 480a17ebe1..370d23905a 100644 --- a/configs/hymini-stm32v/usbserial/defconfig +++ b/configs/hymini-stm32v/usbserial/defconfig @@ -686,16 +686,16 @@ CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set CONFIG_SERIAL_REMOVABLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/kwikstik-k40/ostest/defconfig b/configs/kwikstik-k40/ostest/defconfig index b05e54f2c9..887cdbfb15 100644 --- a/configs/kwikstik-k40/ostest/defconfig +++ b/configs/kwikstik-k40/ostest/defconfig @@ -420,16 +420,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y CONFIG_DEV_LOWCONSOLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -CONFIG_ARCH_HAVE_UART5=y -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +CONFIG_UART5_SERIALDRIVER=y +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/launchxl-tms57004/nsh/defconfig b/configs/launchxl-tms57004/nsh/defconfig index 5bbec33a93..e01a111e70 100644 --- a/configs/launchxl-tms57004/nsh/defconfig +++ b/configs/launchxl-tms57004/nsh/defconfig @@ -424,16 +424,16 @@ CONFIG_SPI_EXCHANGE=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set CONFIG_ARCH_HAVE_SCI1=y # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/lincoln60/netnsh/defconfig b/configs/lincoln60/netnsh/defconfig index e3fc395db8..0e2f3e21bd 100644 --- a/configs/lincoln60/netnsh/defconfig +++ b/configs/lincoln60/netnsh/defconfig @@ -502,16 +502,16 @@ CONFIG_ETH0_PHY_KSZ8041=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/lincoln60/nsh/defconfig b/configs/lincoln60/nsh/defconfig index 1bb0f2a217..57befef5a9 100644 --- a/configs/lincoln60/nsh/defconfig +++ b/configs/lincoln60/nsh/defconfig @@ -428,16 +428,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/lincoln60/thttpd-binfs/defconfig b/configs/lincoln60/thttpd-binfs/defconfig index 818eb2da4d..2792ce50d9 100644 --- a/configs/lincoln60/thttpd-binfs/defconfig +++ b/configs/lincoln60/thttpd-binfs/defconfig @@ -466,16 +466,16 @@ CONFIG_ETH0_PHY_KSZ8041=y CONFIG_SERIAL=y CONFIG_DEV_LOWCONSOLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/lm3s6432-s2e/nsh/defconfig b/configs/lm3s6432-s2e/nsh/defconfig index 038ba39dd3..990739e446 100644 --- a/configs/lm3s6432-s2e/nsh/defconfig +++ b/configs/lm3s6432-s2e/nsh/defconfig @@ -485,16 +485,16 @@ CONFIG_ARCH_HAVE_NETDEV_STATISTICS=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -CONFIG_ARCH_HAVE_UART1=y -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +CONFIG_UART1_SERIALDRIVER=y +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/lm3s6965-ek/discover/defconfig b/configs/lm3s6965-ek/discover/defconfig index 7d82470a69..70f2ceacf6 100644 --- a/configs/lm3s6965-ek/discover/defconfig +++ b/configs/lm3s6965-ek/discover/defconfig @@ -512,16 +512,16 @@ CONFIG_ARCH_HAVE_NETDEV_STATISTICS=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/lm3s6965-ek/nsh/defconfig b/configs/lm3s6965-ek/nsh/defconfig index 7d82470a69..70f2ceacf6 100644 --- a/configs/lm3s6965-ek/nsh/defconfig +++ b/configs/lm3s6965-ek/nsh/defconfig @@ -512,16 +512,16 @@ CONFIG_ARCH_HAVE_NETDEV_STATISTICS=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/lm3s6965-ek/nx/defconfig b/configs/lm3s6965-ek/nx/defconfig index 4ba6709ff8..4a0707155b 100644 --- a/configs/lm3s6965-ek/nx/defconfig +++ b/configs/lm3s6965-ek/nx/defconfig @@ -491,16 +491,16 @@ CONFIG_LCD_LANDSCAPE=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/lm3s6965-ek/tcpecho/defconfig b/configs/lm3s6965-ek/tcpecho/defconfig index 8ca607e55b..3d0c60e1f8 100644 --- a/configs/lm3s6965-ek/tcpecho/defconfig +++ b/configs/lm3s6965-ek/tcpecho/defconfig @@ -481,16 +481,16 @@ CONFIG_ARCH_HAVE_NETDEV_STATISTICS=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/lm3s8962-ek/nsh/defconfig b/configs/lm3s8962-ek/nsh/defconfig index f4d3b1e559..d6a1007367 100644 --- a/configs/lm3s8962-ek/nsh/defconfig +++ b/configs/lm3s8962-ek/nsh/defconfig @@ -522,16 +522,16 @@ CONFIG_ARCH_HAVE_NETDEV_STATISTICS=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/lm3s8962-ek/nx/defconfig b/configs/lm3s8962-ek/nx/defconfig index 0e4ec4c0f0..057bf36624 100644 --- a/configs/lm3s8962-ek/nx/defconfig +++ b/configs/lm3s8962-ek/nx/defconfig @@ -501,16 +501,16 @@ CONFIG_LCD_LANDSCAPE=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/lm4f120-launchpad/nsh/defconfig b/configs/lm4f120-launchpad/nsh/defconfig index 202bf3b21d..40288d821e 100644 --- a/configs/lm4f120-launchpad/nsh/defconfig +++ b/configs/lm4f120-launchpad/nsh/defconfig @@ -327,16 +327,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/lpc4330-xplorer/nsh/defconfig b/configs/lpc4330-xplorer/nsh/defconfig index 8f6fce275f..19b8cb422c 100644 --- a/configs/lpc4330-xplorer/nsh/defconfig +++ b/configs/lpc4330-xplorer/nsh/defconfig @@ -471,16 +471,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set CONFIG_USART0_SERIALDRIVER=y diff --git a/configs/lpc4337-ws/nsh/defconfig b/configs/lpc4337-ws/nsh/defconfig index db88503c5e..87dfe487ec 100644 --- a/configs/lpc4337-ws/nsh/defconfig +++ b/configs/lpc4337-ws/nsh/defconfig @@ -468,16 +468,16 @@ CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set CONFIG_SERIAL_REMOVABLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/lpc4357-evb/nsh/defconfig b/configs/lpc4357-evb/nsh/defconfig index 38f28e5b1f..909a4c2beb 100644 --- a/configs/lpc4357-evb/nsh/defconfig +++ b/configs/lpc4357-evb/nsh/defconfig @@ -403,16 +403,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set CONFIG_USART0_SERIALDRIVER=y diff --git a/configs/lpc4370-link2/nsh/defconfig b/configs/lpc4370-link2/nsh/defconfig index ce92dc62fc..23e2063659 100644 --- a/configs/lpc4370-link2/nsh/defconfig +++ b/configs/lpc4370-link2/nsh/defconfig @@ -466,16 +466,16 @@ CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set CONFIG_SERIAL_REMOVABLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/lpcxpresso-lpc1115/minnsh/defconfig b/configs/lpcxpresso-lpc1115/minnsh/defconfig index ec14cf206e..39cd66dabb 100644 --- a/configs/lpcxpresso-lpc1115/minnsh/defconfig +++ b/configs/lpcxpresso-lpc1115/minnsh/defconfig @@ -367,16 +367,16 @@ CONFIG_DISABLE_POLL=y # CONFIG_SERCOMM_CONSOLE is not set CONFIG_SERIAL=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/lpcxpresso-lpc1115/nsh/defconfig b/configs/lpcxpresso-lpc1115/nsh/defconfig index 537af7256b..6984db8bcb 100644 --- a/configs/lpcxpresso-lpc1115/nsh/defconfig +++ b/configs/lpcxpresso-lpc1115/nsh/defconfig @@ -385,16 +385,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/lpcxpresso-lpc1768/dhcpd/defconfig b/configs/lpcxpresso-lpc1768/dhcpd/defconfig index d5453e720d..4151115b1d 100644 --- a/configs/lpcxpresso-lpc1768/dhcpd/defconfig +++ b/configs/lpcxpresso-lpc1768/dhcpd/defconfig @@ -457,16 +457,16 @@ CONFIG_ETH0_PHY_LAN8720=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -CONFIG_ARCH_HAVE_UART3=y -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +CONFIG_UART3_SERIALDRIVER=y +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/lpcxpresso-lpc1768/nsh/defconfig b/configs/lpcxpresso-lpc1768/nsh/defconfig index ba4086d4b6..ee1b2a0a40 100644 --- a/configs/lpcxpresso-lpc1768/nsh/defconfig +++ b/configs/lpcxpresso-lpc1768/nsh/defconfig @@ -537,16 +537,16 @@ CONFIG_ETH0_PHY_LAN8720=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -CONFIG_ARCH_HAVE_UART3=y -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +CONFIG_UART3_SERIALDRIVER=y +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/lpcxpresso-lpc1768/nx/defconfig b/configs/lpcxpresso-lpc1768/nx/defconfig index 8c5f96c23a..0cf87bd66f 100644 --- a/configs/lpcxpresso-lpc1768/nx/defconfig +++ b/configs/lpcxpresso-lpc1768/nx/defconfig @@ -469,16 +469,16 @@ CONFIG_LCD_LANDSCAPE=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -CONFIG_ARCH_HAVE_UART3=y -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +CONFIG_UART3_SERIALDRIVER=y +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/lpcxpresso-lpc1768/thttpd/defconfig b/configs/lpcxpresso-lpc1768/thttpd/defconfig index ea70979283..cebf51b59a 100644 --- a/configs/lpcxpresso-lpc1768/thttpd/defconfig +++ b/configs/lpcxpresso-lpc1768/thttpd/defconfig @@ -457,16 +457,16 @@ CONFIG_ETH0_PHY_LAN8720=y CONFIG_SERIAL=y CONFIG_DEV_LOWCONSOLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -CONFIG_ARCH_HAVE_UART3=y -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +CONFIG_UART3_SERIALDRIVER=y +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/lpcxpresso-lpc1768/usbmsc/defconfig b/configs/lpcxpresso-lpc1768/usbmsc/defconfig index 19c92e7140..5f6540df37 100644 --- a/configs/lpcxpresso-lpc1768/usbmsc/defconfig +++ b/configs/lpcxpresso-lpc1768/usbmsc/defconfig @@ -447,16 +447,16 @@ CONFIG_MMCSD_SPIMODE=0 CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -CONFIG_ARCH_HAVE_UART3=y -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +CONFIG_UART3_SERIALDRIVER=y +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/maple/nsh/defconfig b/configs/maple/nsh/defconfig index b2cc8f0667..31faeb7b02 100644 --- a/configs/maple/nsh/defconfig +++ b/configs/maple/nsh/defconfig @@ -667,16 +667,16 @@ CONFIG_ARCH_HAVE_I2CRESET=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/maple/nx/defconfig b/configs/maple/nx/defconfig index 8cf34e5cea..ed2c6ebd07 100644 --- a/configs/maple/nx/defconfig +++ b/configs/maple/nx/defconfig @@ -747,16 +747,16 @@ CONFIG_LCD_LANDSCAPE=y CONFIG_SERIAL=y CONFIG_SERIAL_REMOVABLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/maple/usbnsh/defconfig b/configs/maple/usbnsh/defconfig index 2d3e031c57..d9b397728b 100644 --- a/configs/maple/usbnsh/defconfig +++ b/configs/maple/usbnsh/defconfig @@ -674,16 +674,16 @@ CONFIG_I2C=y CONFIG_SERIAL=y CONFIG_SERIAL_REMOVABLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/mbed/hidkbd/defconfig b/configs/mbed/hidkbd/defconfig index 87f20d30da..ef889a0411 100644 --- a/configs/mbed/hidkbd/defconfig +++ b/configs/mbed/hidkbd/defconfig @@ -360,7 +360,7 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -CONFIG_ARCH_HAVE_UART0=y +CONFIG_UART0_SERIALDRIVER=y # # USART Configuration diff --git a/configs/mbed/nsh/defconfig b/configs/mbed/nsh/defconfig index 48e7e08719..d9ee9ad706 100644 --- a/configs/mbed/nsh/defconfig +++ b/configs/mbed/nsh/defconfig @@ -453,16 +453,16 @@ CONFIG_MTD=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/mcu123-lpc214x/composite/defconfig b/configs/mcu123-lpc214x/composite/defconfig index 10aa2a5868..2456e093f3 100644 --- a/configs/mcu123-lpc214x/composite/defconfig +++ b/configs/mcu123-lpc214x/composite/defconfig @@ -388,16 +388,16 @@ CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set CONFIG_SERIAL_REMOVABLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -CONFIG_ARCH_HAVE_UART1=y -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +CONFIG_UART1_SERIALDRIVER=y +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/mcu123-lpc214x/nsh/defconfig b/configs/mcu123-lpc214x/nsh/defconfig index aee32c2d84..2784016c81 100644 --- a/configs/mcu123-lpc214x/nsh/defconfig +++ b/configs/mcu123-lpc214x/nsh/defconfig @@ -385,16 +385,16 @@ CONFIG_MMCSD_SPIMODE=0 CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -CONFIG_ARCH_HAVE_UART1=y -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +CONFIG_UART1_SERIALDRIVER=y +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/mcu123-lpc214x/usbmsc/defconfig b/configs/mcu123-lpc214x/usbmsc/defconfig index cd838db1c5..04d11ed805 100644 --- a/configs/mcu123-lpc214x/usbmsc/defconfig +++ b/configs/mcu123-lpc214x/usbmsc/defconfig @@ -387,16 +387,16 @@ CONFIG_MMCSD_SPIMODE=0 CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -CONFIG_ARCH_HAVE_UART1=y -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +CONFIG_UART1_SERIALDRIVER=y +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/mcu123-lpc214x/usbserial/defconfig b/configs/mcu123-lpc214x/usbserial/defconfig index 3ab9651318..2fca051243 100644 --- a/configs/mcu123-lpc214x/usbserial/defconfig +++ b/configs/mcu123-lpc214x/usbserial/defconfig @@ -409,16 +409,16 @@ CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set CONFIG_SERIAL_REMOVABLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -CONFIG_ARCH_HAVE_UART1=y -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +CONFIG_UART1_SERIALDRIVER=y +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/mikroe-stm32f4/fulldemo/defconfig b/configs/mikroe-stm32f4/fulldemo/defconfig index 6bc9f3c07e..0c6031e7e0 100644 --- a/configs/mikroe-stm32f4/fulldemo/defconfig +++ b/configs/mikroe-stm32f4/fulldemo/defconfig @@ -852,16 +852,16 @@ CONFIG_MTD_SMART_WEAR_LEVEL=y CONFIG_SERIAL=y CONFIG_SERIAL_REMOVABLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/mikroe-stm32f4/kostest/defconfig b/configs/mikroe-stm32f4/kostest/defconfig index b3ac87b570..fd27f4a643 100644 --- a/configs/mikroe-stm32f4/kostest/defconfig +++ b/configs/mikroe-stm32f4/kostest/defconfig @@ -803,16 +803,16 @@ CONFIG_MTD_SMART_WEAR_LEVEL=y CONFIG_SERIAL=y CONFIG_SERIAL_REMOVABLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/mikroe-stm32f4/nsh/defconfig b/configs/mikroe-stm32f4/nsh/defconfig index 748ecf25c5..45d5010745 100644 --- a/configs/mikroe-stm32f4/nsh/defconfig +++ b/configs/mikroe-stm32f4/nsh/defconfig @@ -770,16 +770,16 @@ CONFIG_MTD_SMART_WEAR_LEVEL=y # CONFIG_SERCOMM_CONSOLE is not set CONFIG_SERIAL=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/mikroe-stm32f4/usbnsh/defconfig b/configs/mikroe-stm32f4/usbnsh/defconfig index 8dd59631ed..4aa34401fc 100644 --- a/configs/mikroe-stm32f4/usbnsh/defconfig +++ b/configs/mikroe-stm32f4/usbnsh/defconfig @@ -779,16 +779,16 @@ CONFIG_MTD_SMART_WEAR_LEVEL=y CONFIG_SERIAL=y CONFIG_SERIAL_REMOVABLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/mirtoo/nsh/defconfig b/configs/mirtoo/nsh/defconfig index 4ed3d6ac5c..697660e53f 100644 --- a/configs/mirtoo/nsh/defconfig +++ b/configs/mirtoo/nsh/defconfig @@ -475,16 +475,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -CONFIG_ARCH_HAVE_UART1=y -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +CONFIG_UART1_SERIALDRIVER=y +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/mirtoo/nxffs/defconfig b/configs/mirtoo/nxffs/defconfig index 9608a41627..a742cc5653 100644 --- a/configs/mirtoo/nxffs/defconfig +++ b/configs/mirtoo/nxffs/defconfig @@ -506,16 +506,16 @@ CONFIG_SST25_SPIFREQUENCY=20000000 CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -CONFIG_ARCH_HAVE_UART1=y -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +CONFIG_UART1_SERIALDRIVER=y +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/moteino-mega/hello/defconfig b/configs/moteino-mega/hello/defconfig index c39180e244..0559ddf281 100644 --- a/configs/moteino-mega/hello/defconfig +++ b/configs/moteino-mega/hello/defconfig @@ -274,16 +274,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y CONFIG_DEV_LOWCONSOLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set CONFIG_USART0_SERIALDRIVER=y diff --git a/configs/moteino-mega/nsh/defconfig b/configs/moteino-mega/nsh/defconfig index 985a30b15a..049fdaceee 100644 --- a/configs/moteino-mega/nsh/defconfig +++ b/configs/moteino-mega/nsh/defconfig @@ -282,16 +282,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set CONFIG_USART0_SERIALDRIVER=y diff --git a/configs/moxa/nsh/defconfig b/configs/moxa/nsh/defconfig index 8a47bad86e..ebcc069deb 100644 --- a/configs/moxa/nsh/defconfig +++ b/configs/moxa/nsh/defconfig @@ -426,16 +426,16 @@ CONFIG_16550_SUPRESS_CONFIG=y CONFIG_16550_REGINCR=1 CONFIG_16550_REGWIDTH=32 CONFIG_16550_ADDRWIDTH=32 -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/mx1ads/ostest/defconfig b/configs/mx1ads/ostest/defconfig index 011b308b3d..1c8596c2a7 100644 --- a/configs/mx1ads/ostest/defconfig +++ b/configs/mx1ads/ostest/defconfig @@ -320,16 +320,16 @@ CONFIG_SPI=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -CONFIG_ARCH_HAVE_UART1=y -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +CONFIG_UART1_SERIALDRIVER=y +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/ntosd-dm320/nettest/defconfig b/configs/ntosd-dm320/nettest/defconfig index ef8a148900..db4141337e 100644 --- a/configs/ntosd-dm320/nettest/defconfig +++ b/configs/ntosd-dm320/nettest/defconfig @@ -370,16 +370,16 @@ CONFIG_DM9X_MODE_AUTO=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -CONFIG_ARCH_HAVE_UART1=y -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +CONFIG_UART1_SERIALDRIVER=y +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/ntosd-dm320/nsh/defconfig b/configs/ntosd-dm320/nsh/defconfig index 594ce073c9..6a47d84cc0 100644 --- a/configs/ntosd-dm320/nsh/defconfig +++ b/configs/ntosd-dm320/nsh/defconfig @@ -389,16 +389,16 @@ CONFIG_DM9X_MODE_AUTO=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -CONFIG_ARCH_HAVE_UART1=y -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +CONFIG_UART1_SERIALDRIVER=y +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/ntosd-dm320/poll/defconfig b/configs/ntosd-dm320/poll/defconfig index 7f38a00a7b..be9d2f02d1 100644 --- a/configs/ntosd-dm320/poll/defconfig +++ b/configs/ntosd-dm320/poll/defconfig @@ -368,16 +368,16 @@ CONFIG_DM9X_MODE_AUTO=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -CONFIG_ARCH_HAVE_UART1=y -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +CONFIG_UART1_SERIALDRIVER=y +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/ntosd-dm320/thttpd/defconfig b/configs/ntosd-dm320/thttpd/defconfig index d60f86b5f8..82298886e8 100644 --- a/configs/ntosd-dm320/thttpd/defconfig +++ b/configs/ntosd-dm320/thttpd/defconfig @@ -361,16 +361,16 @@ CONFIG_DM9X_MODE_AUTO=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -CONFIG_ARCH_HAVE_UART1=y -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +CONFIG_UART1_SERIALDRIVER=y +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/ntosd-dm320/udp/defconfig b/configs/ntosd-dm320/udp/defconfig index 30790e6b1f..bc5e976a0a 100644 --- a/configs/ntosd-dm320/udp/defconfig +++ b/configs/ntosd-dm320/udp/defconfig @@ -341,16 +341,16 @@ CONFIG_DM9X_MODE_AUTO=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -CONFIG_ARCH_HAVE_UART1=y -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +CONFIG_UART1_SERIALDRIVER=y +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/ntosd-dm320/webserver/defconfig b/configs/ntosd-dm320/webserver/defconfig index 30439d2e69..79b76af704 100644 --- a/configs/ntosd-dm320/webserver/defconfig +++ b/configs/ntosd-dm320/webserver/defconfig @@ -375,16 +375,16 @@ CONFIG_DM9X_MODE_AUTO=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -CONFIG_ARCH_HAVE_UART1=y -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +CONFIG_UART1_SERIALDRIVER=y +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/nucleo-144/evalos/defconfig b/configs/nucleo-144/evalos/defconfig index c4ef30b28d..430f32f2d5 100644 --- a/configs/nucleo-144/evalos/defconfig +++ b/configs/nucleo-144/evalos/defconfig @@ -499,16 +499,16 @@ CONFIG_USERLED_LOWER=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/nucleo-144/nsh/defconfig b/configs/nucleo-144/nsh/defconfig index 22528d0cf1..58ce2a41ee 100644 --- a/configs/nucleo-144/nsh/defconfig +++ b/configs/nucleo-144/nsh/defconfig @@ -484,16 +484,16 @@ CONFIG_SPI_EXCHANGE=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/nucleo-f303re/serialrx/defconfig b/configs/nucleo-f303re/serialrx/defconfig index 358b3a69b9..970c8004ee 100644 --- a/configs/nucleo-f303re/serialrx/defconfig +++ b/configs/nucleo-f303re/serialrx/defconfig @@ -690,16 +690,16 @@ CONFIG_ADC_FIFOSIZE=8 # CONFIG_SERCOMM_CONSOLE is not set CONFIG_SERIAL=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -CONFIG_ARCH_HAVE_UART4=y -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +CONFIG_UART4_SERIALDRIVER=y +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/nucleo-f4x1re/f401-nsh/defconfig b/configs/nucleo-f4x1re/f401-nsh/defconfig index 1da9f921f0..2ccdf6cbd7 100644 --- a/configs/nucleo-f4x1re/f401-nsh/defconfig +++ b/configs/nucleo-f4x1re/f401-nsh/defconfig @@ -682,16 +682,16 @@ CONFIG_SPI_EXCHANGE=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/nucleo-f4x1re/f411-nsh/defconfig b/configs/nucleo-f4x1re/f411-nsh/defconfig index 98ce6509ec..769055c22c 100644 --- a/configs/nucleo-f4x1re/f411-nsh/defconfig +++ b/configs/nucleo-f4x1re/f411-nsh/defconfig @@ -684,16 +684,16 @@ CONFIG_SPI_EXCHANGE=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/nucleo-l476rg/nsh/defconfig b/configs/nucleo-l476rg/nsh/defconfig index 22360b58db..04dab795fc 100644 --- a/configs/nucleo-l476rg/nsh/defconfig +++ b/configs/nucleo-l476rg/nsh/defconfig @@ -559,16 +559,16 @@ CONFIG_RTC_IOCTL=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/nutiny-nuc120/nsh/defconfig b/configs/nutiny-nuc120/nsh/defconfig index 9858f39fee..9c73cbc043 100644 --- a/configs/nutiny-nuc120/nsh/defconfig +++ b/configs/nutiny-nuc120/nsh/defconfig @@ -316,7 +316,7 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -CONFIG_ARCH_HAVE_UART1=y +CONFIG_UART1_SERIALDRIVER=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y CONFIG_UART1_SERIAL_CONSOLE=y diff --git a/configs/olimex-efm32g880f128-stk/nsh/defconfig b/configs/olimex-efm32g880f128-stk/nsh/defconfig index a65bda2765..a948e40186 100644 --- a/configs/olimex-efm32g880f128-stk/nsh/defconfig +++ b/configs/olimex-efm32g880f128-stk/nsh/defconfig @@ -374,16 +374,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/olimex-lpc-h3131/nsh/defconfig b/configs/olimex-lpc-h3131/nsh/defconfig index 65ef51193b..79649d2920 100644 --- a/configs/olimex-lpc-h3131/nsh/defconfig +++ b/configs/olimex-lpc-h3131/nsh/defconfig @@ -382,16 +382,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -CONFIG_ARCH_HAVE_UART=y -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +CONFIG_UART_SERIALDRIVER=y +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/olimex-lpc1766stk/ftpc/defconfig b/configs/olimex-lpc1766stk/ftpc/defconfig index 6714d62bfa..cf0bea270d 100644 --- a/configs/olimex-lpc1766stk/ftpc/defconfig +++ b/configs/olimex-lpc1766stk/ftpc/defconfig @@ -492,16 +492,16 @@ CONFIG_ETH0_PHY_KS8721=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/olimex-lpc1766stk/hidkbd/defconfig b/configs/olimex-lpc1766stk/hidkbd/defconfig index 03bb0d1eff..dbf9f3b48f 100644 --- a/configs/olimex-lpc1766stk/hidkbd/defconfig +++ b/configs/olimex-lpc1766stk/hidkbd/defconfig @@ -459,16 +459,16 @@ CONFIG_MMCSD_NSLOTS=1 CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/olimex-lpc1766stk/hidmouse/defconfig b/configs/olimex-lpc1766stk/hidmouse/defconfig index ddfb8a48c6..d3151ef93a 100644 --- a/configs/olimex-lpc1766stk/hidmouse/defconfig +++ b/configs/olimex-lpc1766stk/hidmouse/defconfig @@ -478,16 +478,16 @@ CONFIG_NETDEV_TELNET=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/olimex-lpc1766stk/nettest/defconfig b/configs/olimex-lpc1766stk/nettest/defconfig index ef8f79d81f..35cdde8ad8 100644 --- a/configs/olimex-lpc1766stk/nettest/defconfig +++ b/configs/olimex-lpc1766stk/nettest/defconfig @@ -469,16 +469,16 @@ CONFIG_ETH0_PHY_KS8721=y CONFIG_SERIAL=y CONFIG_DEV_LOWCONSOLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/olimex-lpc1766stk/nsh/defconfig b/configs/olimex-lpc1766stk/nsh/defconfig index 602a33c0c0..2f741db8db 100644 --- a/configs/olimex-lpc1766stk/nsh/defconfig +++ b/configs/olimex-lpc1766stk/nsh/defconfig @@ -534,16 +534,16 @@ CONFIG_ETH0_PHY_KS8721=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/olimex-lpc1766stk/nx/defconfig b/configs/olimex-lpc1766stk/nx/defconfig index 0f7fcfdef4..f000df87bd 100644 --- a/configs/olimex-lpc1766stk/nx/defconfig +++ b/configs/olimex-lpc1766stk/nx/defconfig @@ -481,16 +481,16 @@ CONFIG_LCD_LANDSCAPE=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/olimex-lpc1766stk/slip-httpd/defconfig b/configs/olimex-lpc1766stk/slip-httpd/defconfig index 1a95d237da..bcb8539576 100644 --- a/configs/olimex-lpc1766stk/slip-httpd/defconfig +++ b/configs/olimex-lpc1766stk/slip-httpd/defconfig @@ -414,16 +414,16 @@ CONFIG_NET_SLIP=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -CONFIG_ARCH_HAVE_UART1=y -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +CONFIG_UART1_SERIALDRIVER=y +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/olimex-lpc1766stk/thttpd-binfs/defconfig b/configs/olimex-lpc1766stk/thttpd-binfs/defconfig index 2dca82b8cd..66daa865c4 100644 --- a/configs/olimex-lpc1766stk/thttpd-binfs/defconfig +++ b/configs/olimex-lpc1766stk/thttpd-binfs/defconfig @@ -466,16 +466,16 @@ CONFIG_ETH0_PHY_KS8721=y CONFIG_SERIAL=y CONFIG_DEV_LOWCONSOLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/olimex-lpc1766stk/thttpd-nxflat/defconfig b/configs/olimex-lpc1766stk/thttpd-nxflat/defconfig index 3ece14e2e0..0db4e7e8cd 100644 --- a/configs/olimex-lpc1766stk/thttpd-nxflat/defconfig +++ b/configs/olimex-lpc1766stk/thttpd-nxflat/defconfig @@ -458,16 +458,16 @@ CONFIG_ETH0_PHY_KS8721=y CONFIG_SERIAL=y CONFIG_DEV_LOWCONSOLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/olimex-lpc1766stk/usbmsc/defconfig b/configs/olimex-lpc1766stk/usbmsc/defconfig index 22959b44cb..a1ac64b46e 100644 --- a/configs/olimex-lpc1766stk/usbmsc/defconfig +++ b/configs/olimex-lpc1766stk/usbmsc/defconfig @@ -449,16 +449,16 @@ CONFIG_MMCSD_SPIMODE=0 CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/olimex-lpc1766stk/usbserial/defconfig b/configs/olimex-lpc1766stk/usbserial/defconfig index fd02b4354b..0a2c465d5e 100644 --- a/configs/olimex-lpc1766stk/usbserial/defconfig +++ b/configs/olimex-lpc1766stk/usbserial/defconfig @@ -473,16 +473,16 @@ CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set CONFIG_SERIAL_REMOVABLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/olimex-lpc1766stk/zmodem/defconfig b/configs/olimex-lpc1766stk/zmodem/defconfig index 99cd00b84e..928202c532 100644 --- a/configs/olimex-lpc1766stk/zmodem/defconfig +++ b/configs/olimex-lpc1766stk/zmodem/defconfig @@ -512,16 +512,16 @@ CONFIG_ETH0_PHY_KS8721=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -CONFIG_ARCH_HAVE_UART1=y -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +CONFIG_UART1_SERIALDRIVER=y +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/olimex-lpc2378/nsh/defconfig b/configs/olimex-lpc2378/nsh/defconfig index 9c1fe48dc7..7854a9e13f 100644 --- a/configs/olimex-lpc2378/nsh/defconfig +++ b/configs/olimex-lpc2378/nsh/defconfig @@ -379,16 +379,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -CONFIG_ARCH_HAVE_UART2=y -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +CONFIG_UART2_SERIALDRIVER=y +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/olimex-stm32-h405/usbnsh/defconfig b/configs/olimex-stm32-h405/usbnsh/defconfig index 3c6e2c797b..0a4109abf6 100644 --- a/configs/olimex-stm32-h405/usbnsh/defconfig +++ b/configs/olimex-stm32-h405/usbnsh/defconfig @@ -746,16 +746,16 @@ CONFIG_ADC_FIFOSIZE=8 CONFIG_SERIAL=y CONFIG_SERIAL_REMOVABLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/olimex-stm32-h407/nsh/defconfig b/configs/olimex-stm32-h407/nsh/defconfig index b593835011..610530013a 100644 --- a/configs/olimex-stm32-h407/nsh/defconfig +++ b/configs/olimex-stm32-h407/nsh/defconfig @@ -706,16 +706,16 @@ CONFIG_SPI=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/olimex-stm32-p107/nsh/defconfig b/configs/olimex-stm32-p107/nsh/defconfig index f8e39d8ed2..9993f8a908 100644 --- a/configs/olimex-stm32-p107/nsh/defconfig +++ b/configs/olimex-stm32-p107/nsh/defconfig @@ -773,16 +773,16 @@ CONFIG_ETH0_PHY_KS8721=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/olimex-stm32-p207/nsh/defconfig b/configs/olimex-stm32-p207/nsh/defconfig index 10fc863e5d..974f003729 100644 --- a/configs/olimex-stm32-p207/nsh/defconfig +++ b/configs/olimex-stm32-p207/nsh/defconfig @@ -813,16 +813,16 @@ CONFIG_ETH0_PHY_KS8721=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/olimex-strp711/nettest/defconfig b/configs/olimex-strp711/nettest/defconfig index 33899f8069..d13d01fd19 100644 --- a/configs/olimex-strp711/nettest/defconfig +++ b/configs/olimex-strp711/nettest/defconfig @@ -413,16 +413,16 @@ CONFIG_ENC28J60_STATS=y CONFIG_SERIAL=y CONFIG_DEV_LOWCONSOLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -CONFIG_ARCH_HAVE_UART1=y -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +CONFIG_UART1_SERIALDRIVER=y +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/olimex-strp711/nsh/defconfig b/configs/olimex-strp711/nsh/defconfig index d45d72b3ce..790273c422 100644 --- a/configs/olimex-strp711/nsh/defconfig +++ b/configs/olimex-strp711/nsh/defconfig @@ -324,8 +324,8 @@ CONFIG_MMCSD_SPIMODE=0 CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -CONFIG_ARCH_HAVE_UART0=y -CONFIG_ARCH_HAVE_UART1=y +CONFIG_UART0_SERIALDRIVER=y +CONFIG_UART1_SERIALDRIVER=y # # USART Configuration diff --git a/configs/olimexino-stm32/can/defconfig b/configs/olimexino-stm32/can/defconfig index 78fd6284f3..3689d0cf69 100644 --- a/configs/olimexino-stm32/can/defconfig +++ b/configs/olimexino-stm32/can/defconfig @@ -743,16 +743,16 @@ CONFIG_ANALOG=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/olimexino-stm32/composite/defconfig b/configs/olimexino-stm32/composite/defconfig index c2bd4bca53..5a26c5ba94 100644 --- a/configs/olimexino-stm32/composite/defconfig +++ b/configs/olimexino-stm32/composite/defconfig @@ -745,16 +745,16 @@ CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set CONFIG_SERIAL_REMOVABLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/olimexino-stm32/nsh/defconfig b/configs/olimexino-stm32/nsh/defconfig index 8ce04fc098..bf20d3e9e9 100644 --- a/configs/olimexino-stm32/nsh/defconfig +++ b/configs/olimexino-stm32/nsh/defconfig @@ -743,16 +743,16 @@ CONFIG_MMCSD_SPIMODE=0 CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/olimexino-stm32/smallnsh/defconfig b/configs/olimexino-stm32/smallnsh/defconfig index 98992c1d36..276cf5095e 100644 --- a/configs/olimexino-stm32/smallnsh/defconfig +++ b/configs/olimexino-stm32/smallnsh/defconfig @@ -721,16 +721,16 @@ CONFIG_SPI_EXCHANGE=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/olimexino-stm32/tiny/defconfig b/configs/olimexino-stm32/tiny/defconfig index d0322f2283..4e0086b59a 100644 --- a/configs/olimexino-stm32/tiny/defconfig +++ b/configs/olimexino-stm32/tiny/defconfig @@ -725,16 +725,16 @@ CONFIG_SPI_EXCHANGE=y CONFIG_SERIAL=y CONFIG_DEV_LOWCONSOLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/open1788/knsh/defconfig b/configs/open1788/knsh/defconfig index b37370d9d7..c84f252364 100644 --- a/configs/open1788/knsh/defconfig +++ b/configs/open1788/knsh/defconfig @@ -426,16 +426,16 @@ CONFIG_PIPES=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/open1788/nsh/defconfig b/configs/open1788/nsh/defconfig index 6dbdb78af8..f8ea64019f 100644 --- a/configs/open1788/nsh/defconfig +++ b/configs/open1788/nsh/defconfig @@ -463,16 +463,16 @@ CONFIG_PIPES=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/open1788/nxlines/defconfig b/configs/open1788/nxlines/defconfig index 93dd9d965f..486cc41cb0 100644 --- a/configs/open1788/nxlines/defconfig +++ b/configs/open1788/nxlines/defconfig @@ -367,7 +367,7 @@ CONFIG_PIPES=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -CONFIG_ARCH_HAVE_UART0=y +CONFIG_UART0_SERIALDRIVER=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y CONFIG_CONFIG_SERIAL_NPOLLWAITERS=2 diff --git a/configs/pcblogic-pic32mx/nsh/defconfig b/configs/pcblogic-pic32mx/nsh/defconfig index b0e5473faa..3b6d0c95fc 100644 --- a/configs/pcblogic-pic32mx/nsh/defconfig +++ b/configs/pcblogic-pic32mx/nsh/defconfig @@ -472,16 +472,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -CONFIG_ARCH_HAVE_UART1=y -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +CONFIG_UART1_SERIALDRIVER=y +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/pcduino-a10/nsh/defconfig b/configs/pcduino-a10/nsh/defconfig index 93ad5a580c..29d25b7b43 100644 --- a/configs/pcduino-a10/nsh/defconfig +++ b/configs/pcduino-a10/nsh/defconfig @@ -416,16 +416,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/pic32mx-starterkit/nsh/defconfig b/configs/pic32mx-starterkit/nsh/defconfig index 0a76a116ab..e1f4f8d431 100644 --- a/configs/pic32mx-starterkit/nsh/defconfig +++ b/configs/pic32mx-starterkit/nsh/defconfig @@ -511,16 +511,16 @@ CONFIG_MTD=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -CONFIG_ARCH_HAVE_UART1=y -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +CONFIG_UART1_SERIALDRIVER=y +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/pic32mx-starterkit/nsh2/defconfig b/configs/pic32mx-starterkit/nsh2/defconfig index 6f5dd05d1d..9ed1b576ca 100644 --- a/configs/pic32mx-starterkit/nsh2/defconfig +++ b/configs/pic32mx-starterkit/nsh2/defconfig @@ -570,16 +570,16 @@ CONFIG_ETH0_PHY_DP83848C=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/pic32mx7mmb/nsh/defconfig b/configs/pic32mx7mmb/nsh/defconfig index 8b865ddcfb..baeece5c14 100644 --- a/configs/pic32mx7mmb/nsh/defconfig +++ b/configs/pic32mx7mmb/nsh/defconfig @@ -588,16 +588,16 @@ CONFIG_ETH0_PHY_LAN8720=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -CONFIG_ARCH_HAVE_UART1=y -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +CONFIG_UART1_SERIALDRIVER=y +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/pic32mz-starterkit/nsh/defconfig b/configs/pic32mz-starterkit/nsh/defconfig index 27ea83843c..a6cf7bee47 100644 --- a/configs/pic32mz-starterkit/nsh/defconfig +++ b/configs/pic32mz-starterkit/nsh/defconfig @@ -438,16 +438,16 @@ CONFIG_MTD=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -CONFIG_ARCH_HAVE_UART1=y -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +CONFIG_UART1_SERIALDRIVER=y +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/pirelli_dpl10/nsh_highram/defconfig b/configs/pirelli_dpl10/nsh_highram/defconfig index b7fab7bf4f..ac089c9eb0 100644 --- a/configs/pirelli_dpl10/nsh_highram/defconfig +++ b/configs/pirelli_dpl10/nsh_highram/defconfig @@ -369,16 +369,16 @@ CONFIG_SPI_EXCHANGE=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/qemu-i486/nsh/defconfig b/configs/qemu-i486/nsh/defconfig index 9a6a2ec0da..1697b7daa2 100644 --- a/configs/qemu-i486/nsh/defconfig +++ b/configs/qemu-i486/nsh/defconfig @@ -264,16 +264,16 @@ CONFIG_16550_SUPRESS_CONFIG=y CONFIG_16550_REGINCR=1 CONFIG_16550_REGWIDTH=8 CONFIG_16550_ADDRWIDTH=16 -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/qemu-i486/ostest/defconfig b/configs/qemu-i486/ostest/defconfig index f1c8d535f4..ba9a6031c8 100644 --- a/configs/qemu-i486/ostest/defconfig +++ b/configs/qemu-i486/ostest/defconfig @@ -242,16 +242,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y CONFIG_DEV_LOWCONSOLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/rgmp/arm/default/defconfig b/configs/rgmp/arm/default/defconfig index f3816df6f0..c3117826e8 100644 --- a/configs/rgmp/arm/default/defconfig +++ b/configs/rgmp/arm/default/defconfig @@ -243,16 +243,16 @@ CONFIG_VNET_NINTERFACES=1 CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/rgmp/arm/nsh/defconfig b/configs/rgmp/arm/nsh/defconfig index b18170f1f8..7b010856d4 100644 --- a/configs/rgmp/arm/nsh/defconfig +++ b/configs/rgmp/arm/nsh/defconfig @@ -265,16 +265,16 @@ CONFIG_VNET_NINTERFACES=1 CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/rgmp/x86/cxxtest/defconfig b/configs/rgmp/x86/cxxtest/defconfig index 8c335cb8cf..6121d739b7 100644 --- a/configs/rgmp/x86/cxxtest/defconfig +++ b/configs/rgmp/x86/cxxtest/defconfig @@ -272,16 +272,16 @@ CONFIG_VNET_NINTERFACES=1 CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/rgmp/x86/default/defconfig b/configs/rgmp/x86/default/defconfig index 65cb9471d0..36d2a1cd57 100644 --- a/configs/rgmp/x86/default/defconfig +++ b/configs/rgmp/x86/default/defconfig @@ -251,16 +251,16 @@ CONFIG_VNET_NINTERFACES=1 CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/rgmp/x86/helloxx/defconfig b/configs/rgmp/x86/helloxx/defconfig index 13b1ed085f..38e9afa7b8 100644 --- a/configs/rgmp/x86/helloxx/defconfig +++ b/configs/rgmp/x86/helloxx/defconfig @@ -272,16 +272,16 @@ CONFIG_VNET_NINTERFACES=1 CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/rgmp/x86/nsh/defconfig b/configs/rgmp/x86/nsh/defconfig index 047f5ede39..0fa2a81cad 100644 --- a/configs/rgmp/x86/nsh/defconfig +++ b/configs/rgmp/x86/nsh/defconfig @@ -273,16 +273,16 @@ CONFIG_VNET_NINTERFACES=1 CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sabre-6quad/nsh/defconfig b/configs/sabre-6quad/nsh/defconfig index ed27e3bc30..37b50600d1 100644 --- a/configs/sabre-6quad/nsh/defconfig +++ b/configs/sabre-6quad/nsh/defconfig @@ -428,16 +428,16 @@ CONFIG_DEV_ZERO=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -CONFIG_ARCH_HAVE_UART1=y -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +CONFIG_UART1_SERIALDRIVER=y +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sabre-6quad/smp/defconfig b/configs/sabre-6quad/smp/defconfig index 001fa98ee0..5589e2b8e5 100644 --- a/configs/sabre-6quad/smp/defconfig +++ b/configs/sabre-6quad/smp/defconfig @@ -435,16 +435,16 @@ CONFIG_DEV_ZERO=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -CONFIG_ARCH_HAVE_UART1=y -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +CONFIG_UART1_SERIALDRIVER=y +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sam3u-ek/knsh/defconfig b/configs/sam3u-ek/knsh/defconfig index 8bbad22302..e7fe62d326 100644 --- a/configs/sam3u-ek/knsh/defconfig +++ b/configs/sam3u-ek/knsh/defconfig @@ -504,16 +504,16 @@ CONFIG_MMCSD_NSLOTS=1 CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sam3u-ek/nsh/defconfig b/configs/sam3u-ek/nsh/defconfig index b2980d6a5e..8b8539fbe6 100644 --- a/configs/sam3u-ek/nsh/defconfig +++ b/configs/sam3u-ek/nsh/defconfig @@ -491,16 +491,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sam3u-ek/nx/defconfig b/configs/sam3u-ek/nx/defconfig index 6bbbda36e0..a1600a0af7 100644 --- a/configs/sam3u-ek/nx/defconfig +++ b/configs/sam3u-ek/nx/defconfig @@ -518,16 +518,16 @@ CONFIG_LCD_PORTRAIT=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sam3u-ek/nxwm/defconfig b/configs/sam3u-ek/nxwm/defconfig index 2fb2b27a1f..a54d9855ea 100644 --- a/configs/sam3u-ek/nxwm/defconfig +++ b/configs/sam3u-ek/nxwm/defconfig @@ -564,16 +564,16 @@ CONFIG_LCD_LANDSCAPE=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sam4e-ek/nsh/defconfig b/configs/sam4e-ek/nsh/defconfig index db0bc14f04..96fee2f93e 100644 --- a/configs/sam4e-ek/nsh/defconfig +++ b/configs/sam4e-ek/nsh/defconfig @@ -618,16 +618,16 @@ CONFIG_ETH0_PHY_KSZ8051=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sam4e-ek/nxwm/defconfig b/configs/sam4e-ek/nxwm/defconfig index 6c6684b420..ad20ed9b27 100644 --- a/configs/sam4e-ek/nxwm/defconfig +++ b/configs/sam4e-ek/nxwm/defconfig @@ -681,16 +681,16 @@ CONFIG_ETH0_PHY_KSZ8051=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sam4e-ek/usbnsh/defconfig b/configs/sam4e-ek/usbnsh/defconfig index fb4a6ce8c7..da91c94278 100644 --- a/configs/sam4e-ek/usbnsh/defconfig +++ b/configs/sam4e-ek/usbnsh/defconfig @@ -619,16 +619,16 @@ CONFIG_ETH0_PHY_KSZ8051=y CONFIG_SERIAL=y CONFIG_SERIAL_REMOVABLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sam4l-xplained/nsh/defconfig b/configs/sam4l-xplained/nsh/defconfig index 5e4a8e467f..cecd76ab42 100644 --- a/configs/sam4l-xplained/nsh/defconfig +++ b/configs/sam4l-xplained/nsh/defconfig @@ -507,16 +507,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set CONFIG_USART0_SERIALDRIVER=y diff --git a/configs/sam4s-xplained-pro/nsh/defconfig b/configs/sam4s-xplained-pro/nsh/defconfig index be86bf8645..af17a05fda 100644 --- a/configs/sam4s-xplained-pro/nsh/defconfig +++ b/configs/sam4s-xplained-pro/nsh/defconfig @@ -559,16 +559,16 @@ CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set CONFIG_SERIAL_REMOVABLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -CONFIG_ARCH_HAVE_UART1=y -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +CONFIG_UART1_SERIALDRIVER=y +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sam4s-xplained/nsh/defconfig b/configs/sam4s-xplained/nsh/defconfig index c1bf248e5b..18a8ec4d02 100644 --- a/configs/sam4s-xplained/nsh/defconfig +++ b/configs/sam4s-xplained/nsh/defconfig @@ -487,16 +487,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -CONFIG_ARCH_HAVE_UART1=y -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +CONFIG_UART1_SERIALDRIVER=y +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sama5d2-xult/nsh/defconfig b/configs/sama5d2-xult/nsh/defconfig index 0b57b6c674..7893e51a28 100644 --- a/configs/sama5d2-xult/nsh/defconfig +++ b/configs/sama5d2-xult/nsh/defconfig @@ -571,16 +571,16 @@ CONFIG_RTC_DATETIME=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sama5d3-xplained/bridge/defconfig b/configs/sama5d3-xplained/bridge/defconfig index 31cc2d8732..9cefd6afeb 100644 --- a/configs/sama5d3-xplained/bridge/defconfig +++ b/configs/sama5d3-xplained/bridge/defconfig @@ -606,16 +606,16 @@ CONFIG_ETH1_PHY_KSZ8081=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sama5d3-xplained/nsh/defconfig b/configs/sama5d3-xplained/nsh/defconfig index bb714eb621..825e946d98 100644 --- a/configs/sama5d3-xplained/nsh/defconfig +++ b/configs/sama5d3-xplained/nsh/defconfig @@ -525,16 +525,16 @@ CONFIG_ARCH_HAVE_I2CRESET=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sama5d3x-ek/demo/defconfig b/configs/sama5d3x-ek/demo/defconfig index 7c5dd17c6d..a92b8fad16 100644 --- a/configs/sama5d3x-ek/demo/defconfig +++ b/configs/sama5d3x-ek/demo/defconfig @@ -648,16 +648,16 @@ CONFIG_AT25_SPIFREQUENCY=10000000 CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sama5d3x-ek/hello/defconfig b/configs/sama5d3x-ek/hello/defconfig index 684dda2419..393022cfbf 100644 --- a/configs/sama5d3x-ek/hello/defconfig +++ b/configs/sama5d3x-ek/hello/defconfig @@ -506,16 +506,16 @@ CONFIG_ARCH_HAVE_I2CRESET=y CONFIG_SERIAL=y CONFIG_DEV_LOWCONSOLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sama5d3x-ek/norboot/defconfig b/configs/sama5d3x-ek/norboot/defconfig index 8b16930a0f..bc201be403 100644 --- a/configs/sama5d3x-ek/norboot/defconfig +++ b/configs/sama5d3x-ek/norboot/defconfig @@ -520,16 +520,16 @@ CONFIG_ARCH_HAVE_I2CRESET=y CONFIG_SERIAL=y CONFIG_DEV_LOWCONSOLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sama5d3x-ek/nsh/defconfig b/configs/sama5d3x-ek/nsh/defconfig index 9bee2c787c..b6ab3ff277 100644 --- a/configs/sama5d3x-ek/nsh/defconfig +++ b/configs/sama5d3x-ek/nsh/defconfig @@ -524,16 +524,16 @@ CONFIG_ARCH_HAVE_I2CRESET=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sama5d3x-ek/nx/defconfig b/configs/sama5d3x-ek/nx/defconfig index 819ed31759..35d5109455 100644 --- a/configs/sama5d3x-ek/nx/defconfig +++ b/configs/sama5d3x-ek/nx/defconfig @@ -565,16 +565,16 @@ CONFIG_ARCH_HAVE_I2CRESET=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sama5d3x-ek/nxplayer/defconfig b/configs/sama5d3x-ek/nxplayer/defconfig index 66b257a3ab..72e592a3a1 100644 --- a/configs/sama5d3x-ek/nxplayer/defconfig +++ b/configs/sama5d3x-ek/nxplayer/defconfig @@ -623,16 +623,16 @@ CONFIG_SDIO_BLOCKSETUP=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sama5d3x-ek/nxwm/defconfig b/configs/sama5d3x-ek/nxwm/defconfig index 5dc226610f..8688b8e953 100644 --- a/configs/sama5d3x-ek/nxwm/defconfig +++ b/configs/sama5d3x-ek/nxwm/defconfig @@ -623,16 +623,16 @@ CONFIG_INPUT=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sama5d3x-ek/ov2640/defconfig b/configs/sama5d3x-ek/ov2640/defconfig index e5243b6d36..20d173a31b 100644 --- a/configs/sama5d3x-ek/ov2640/defconfig +++ b/configs/sama5d3x-ek/ov2640/defconfig @@ -591,16 +591,16 @@ CONFIG_OV2640_SVGA_RESOLUTION=y CONFIG_SERIAL=y CONFIG_DEV_LOWCONSOLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sama5d4-ek/at25boot/defconfig b/configs/sama5d4-ek/at25boot/defconfig index 728907e4a3..f794e3e6c6 100644 --- a/configs/sama5d4-ek/at25boot/defconfig +++ b/configs/sama5d4-ek/at25boot/defconfig @@ -584,16 +584,16 @@ CONFIG_AT25_SPIFREQUENCY=20000000 CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sama5d4-ek/bridge/defconfig b/configs/sama5d4-ek/bridge/defconfig index 48d1585091..c04c989333 100644 --- a/configs/sama5d4-ek/bridge/defconfig +++ b/configs/sama5d4-ek/bridge/defconfig @@ -624,16 +624,16 @@ CONFIG_ETH1_PHY_KSZ8081=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sama5d4-ek/dramboot/defconfig b/configs/sama5d4-ek/dramboot/defconfig index c0a16f901d..4510891208 100644 --- a/configs/sama5d4-ek/dramboot/defconfig +++ b/configs/sama5d4-ek/dramboot/defconfig @@ -541,16 +541,16 @@ CONFIG_ARCH_HAVE_I2CRESET=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sama5d4-ek/elf/defconfig b/configs/sama5d4-ek/elf/defconfig index daa9479c46..57bb83cdd8 100644 --- a/configs/sama5d4-ek/elf/defconfig +++ b/configs/sama5d4-ek/elf/defconfig @@ -567,16 +567,16 @@ CONFIG_AUDIO_DEVICES=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sama5d4-ek/ipv6/defconfig b/configs/sama5d4-ek/ipv6/defconfig index dadbf96683..934280c1c0 100644 --- a/configs/sama5d4-ek/ipv6/defconfig +++ b/configs/sama5d4-ek/ipv6/defconfig @@ -768,16 +768,16 @@ CONFIG_ETH0_PHY_KSZ8081=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sama5d4-ek/knsh/defconfig b/configs/sama5d4-ek/knsh/defconfig index 3ca9ab656d..3d33b0462a 100644 --- a/configs/sama5d4-ek/knsh/defconfig +++ b/configs/sama5d4-ek/knsh/defconfig @@ -596,16 +596,16 @@ CONFIG_SDIO_BLOCKSETUP=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sama5d4-ek/knsh/defconfig.ROMFS b/configs/sama5d4-ek/knsh/defconfig.ROMFS index 23301c9454..bbac9a1dcb 100644 --- a/configs/sama5d4-ek/knsh/defconfig.ROMFS +++ b/configs/sama5d4-ek/knsh/defconfig.ROMFS @@ -487,16 +487,16 @@ CONFIG_RTC_DATETIME=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sama5d4-ek/nsh/defconfig b/configs/sama5d4-ek/nsh/defconfig index 2a095f113e..08dc7be1ab 100644 --- a/configs/sama5d4-ek/nsh/defconfig +++ b/configs/sama5d4-ek/nsh/defconfig @@ -770,16 +770,16 @@ CONFIG_ETH0_PHY_KSZ8081=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sama5d4-ek/nxwm/defconfig b/configs/sama5d4-ek/nxwm/defconfig index 37b685cfaa..4dfe631ca3 100644 --- a/configs/sama5d4-ek/nxwm/defconfig +++ b/configs/sama5d4-ek/nxwm/defconfig @@ -739,16 +739,16 @@ CONFIG_ETH0_PHY_KSZ8081=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sama5d4-ek/ramtest/defconfig b/configs/sama5d4-ek/ramtest/defconfig index e8c86a4026..ae7d2e4d67 100644 --- a/configs/sama5d4-ek/ramtest/defconfig +++ b/configs/sama5d4-ek/ramtest/defconfig @@ -541,16 +541,16 @@ CONFIG_ARCH_HAVE_I2CRESET=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/samd20-xplained/nsh/defconfig b/configs/samd20-xplained/nsh/defconfig index c23e0da226..359fc49fb3 100644 --- a/configs/samd20-xplained/nsh/defconfig +++ b/configs/samd20-xplained/nsh/defconfig @@ -470,16 +470,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/samd21-xplained/nsh/defconfig b/configs/samd21-xplained/nsh/defconfig index b8a789c0a7..753a30265a 100644 --- a/configs/samd21-xplained/nsh/defconfig +++ b/configs/samd21-xplained/nsh/defconfig @@ -468,16 +468,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/same70-xplained/netnsh/defconfig b/configs/same70-xplained/netnsh/defconfig index 322cdf94ff..ada7ceb789 100644 --- a/configs/same70-xplained/netnsh/defconfig +++ b/configs/same70-xplained/netnsh/defconfig @@ -655,16 +655,16 @@ CONFIG_ETH0_PHY_KSZ8081=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/same70-xplained/nsh/defconfig b/configs/same70-xplained/nsh/defconfig index ebab7544ce..b04376bc5d 100644 --- a/configs/same70-xplained/nsh/defconfig +++ b/configs/same70-xplained/nsh/defconfig @@ -597,16 +597,16 @@ CONFIG_AT25_SPIFREQUENCY=20000000 CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/saml21-xplained/nsh/defconfig b/configs/saml21-xplained/nsh/defconfig index 1a86d3eaa6..2f9609e430 100644 --- a/configs/saml21-xplained/nsh/defconfig +++ b/configs/saml21-xplained/nsh/defconfig @@ -456,16 +456,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/samv71-xult/knsh/defconfig b/configs/samv71-xult/knsh/defconfig index 3051681527..078127832f 100644 --- a/configs/samv71-xult/knsh/defconfig +++ b/configs/samv71-xult/knsh/defconfig @@ -612,16 +612,16 @@ CONFIG_AT25_SPIFREQUENCY=20000000 CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -CONFIG_ARCH_HAVE_UART3=y -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +CONFIG_UART3_SERIALDRIVER=y +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/samv71-xult/module/defconfig b/configs/samv71-xult/module/defconfig index 71b8d97bdb..e022ebc0e8 100644 --- a/configs/samv71-xult/module/defconfig +++ b/configs/samv71-xult/module/defconfig @@ -528,16 +528,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -CONFIG_ARCH_HAVE_UART3=y -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +CONFIG_UART3_SERIALDRIVER=y +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/samv71-xult/mxtxplnd/defconfig b/configs/samv71-xult/mxtxplnd/defconfig index 39d68102da..d36f48f7ed 100644 --- a/configs/samv71-xult/mxtxplnd/defconfig +++ b/configs/samv71-xult/mxtxplnd/defconfig @@ -645,16 +645,16 @@ CONFIG_AT25_SPIFREQUENCY=20000000 CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set CONFIG_USART0_SERIALDRIVER=y diff --git a/configs/samv71-xult/netnsh/defconfig b/configs/samv71-xult/netnsh/defconfig index 02909e801b..6fc46547dc 100644 --- a/configs/samv71-xult/netnsh/defconfig +++ b/configs/samv71-xult/netnsh/defconfig @@ -664,16 +664,16 @@ CONFIG_ETH0_PHY_KSZ8061=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -CONFIG_ARCH_HAVE_UART3=y -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +CONFIG_UART3_SERIALDRIVER=y +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/samv71-xult/nsh/defconfig b/configs/samv71-xult/nsh/defconfig index 5771acd6f6..60b92c16c2 100644 --- a/configs/samv71-xult/nsh/defconfig +++ b/configs/samv71-xult/nsh/defconfig @@ -605,16 +605,16 @@ CONFIG_AT25_SPIFREQUENCY=20000000 CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -CONFIG_ARCH_HAVE_UART3=y -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +CONFIG_UART3_SERIALDRIVER=y +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/samv71-xult/nxwm/defconfig b/configs/samv71-xult/nxwm/defconfig index 3a1c5cc5b0..a3ebb46163 100644 --- a/configs/samv71-xult/nxwm/defconfig +++ b/configs/samv71-xult/nxwm/defconfig @@ -654,16 +654,16 @@ CONFIG_AT25_SPIFREQUENCY=20000000 CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set CONFIG_USART0_SERIALDRIVER=y diff --git a/configs/samv71-xult/vnc/defconfig b/configs/samv71-xult/vnc/defconfig index 7b7b1b6947..9f1e549369 100644 --- a/configs/samv71-xult/vnc/defconfig +++ b/configs/samv71-xult/vnc/defconfig @@ -666,16 +666,16 @@ CONFIG_ETH0_PHY_KSZ8061=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -CONFIG_ARCH_HAVE_UART3=y -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +CONFIG_UART3_SERIALDRIVER=y +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/samv71-xult/vnxwm/defconfig b/configs/samv71-xult/vnxwm/defconfig index 57395d3da4..59a939cf35 100644 --- a/configs/samv71-xult/vnxwm/defconfig +++ b/configs/samv71-xult/vnxwm/defconfig @@ -669,16 +669,16 @@ CONFIG_ETH0_PHY_KSZ8061=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -CONFIG_ARCH_HAVE_UART3=y -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +CONFIG_UART3_SERIALDRIVER=y +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/shenzhou/nsh/defconfig b/configs/shenzhou/nsh/defconfig index 300708aa46..d988aad65c 100644 --- a/configs/shenzhou/nsh/defconfig +++ b/configs/shenzhou/nsh/defconfig @@ -774,16 +774,16 @@ CONFIG_ETH0_PHY_DM9161=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/shenzhou/nxwm/defconfig b/configs/shenzhou/nxwm/defconfig index 0d5f7e9f7b..52d394d213 100644 --- a/configs/shenzhou/nxwm/defconfig +++ b/configs/shenzhou/nxwm/defconfig @@ -843,16 +843,16 @@ CONFIG_ETH0_PHY_DM9161=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/shenzhou/thttpd/defconfig b/configs/shenzhou/thttpd/defconfig index 548f7f4feb..5d2e333dc6 100644 --- a/configs/shenzhou/thttpd/defconfig +++ b/configs/shenzhou/thttpd/defconfig @@ -826,16 +826,16 @@ CONFIG_ETH0_PHY_DM9161=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sim/bas/defconfig b/configs/sim/bas/defconfig index 1b09fca81e..daa4ea4f31 100644 --- a/configs/sim/bas/defconfig +++ b/configs/sim/bas/defconfig @@ -305,16 +305,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sim/configdata/defconfig b/configs/sim/configdata/defconfig index 96ddf55b76..81475d2d93 100644 --- a/configs/sim/configdata/defconfig +++ b/configs/sim/configdata/defconfig @@ -326,16 +326,16 @@ CONFIG_RAMMTD_FLASHSIM=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sim/cxxtest/defconfig b/configs/sim/cxxtest/defconfig index 4ecca0e712..b2f14fb3b9 100644 --- a/configs/sim/cxxtest/defconfig +++ b/configs/sim/cxxtest/defconfig @@ -317,16 +317,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sim/mount/defconfig b/configs/sim/mount/defconfig index 34604c5ccd..f151a10b85 100644 --- a/configs/sim/mount/defconfig +++ b/configs/sim/mount/defconfig @@ -316,16 +316,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sim/mtdpart/defconfig b/configs/sim/mtdpart/defconfig index e52b2d2a8f..df76ef4111 100644 --- a/configs/sim/mtdpart/defconfig +++ b/configs/sim/mtdpart/defconfig @@ -324,16 +324,16 @@ CONFIG_RAMMTD_FLASHSIM=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sim/mtdrwb/defconfig b/configs/sim/mtdrwb/defconfig index e4a1832ea0..92d0bfd621 100644 --- a/configs/sim/mtdrwb/defconfig +++ b/configs/sim/mtdrwb/defconfig @@ -355,16 +355,16 @@ CONFIG_RAMMTD_FLASHSIM=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sim/nettest/defconfig b/configs/sim/nettest/defconfig index f7e6fb4d74..305269f893 100644 --- a/configs/sim/nettest/defconfig +++ b/configs/sim/nettest/defconfig @@ -308,16 +308,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sim/nsh/defconfig b/configs/sim/nsh/defconfig index 43533d9f33..5067c23a64 100644 --- a/configs/sim/nsh/defconfig +++ b/configs/sim/nsh/defconfig @@ -314,16 +314,16 @@ CONFIG_DEV_LOOP=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sim/nsh2/defconfig b/configs/sim/nsh2/defconfig index 9217e09c92..ed8380416f 100644 --- a/configs/sim/nsh2/defconfig +++ b/configs/sim/nsh2/defconfig @@ -314,16 +314,16 @@ CONFIG_INPUT=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sim/nx/defconfig b/configs/sim/nx/defconfig index d113398d90..35d4a84ed5 100644 --- a/configs/sim/nx/defconfig +++ b/configs/sim/nx/defconfig @@ -320,16 +320,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sim/nx11/defconfig b/configs/sim/nx11/defconfig index 81f37797ad..11e8473d37 100644 --- a/configs/sim/nx11/defconfig +++ b/configs/sim/nx11/defconfig @@ -321,16 +321,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sim/nxffs/defconfig b/configs/sim/nxffs/defconfig index 3aa42bfdf2..fce0478ae3 100644 --- a/configs/sim/nxffs/defconfig +++ b/configs/sim/nxffs/defconfig @@ -301,16 +301,16 @@ CONFIG_RAMMTD_FLASHSIM=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sim/nxlines/defconfig b/configs/sim/nxlines/defconfig index 69a38ab8d6..c921a10a0f 100644 --- a/configs/sim/nxlines/defconfig +++ b/configs/sim/nxlines/defconfig @@ -312,16 +312,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sim/nxwm/defconfig b/configs/sim/nxwm/defconfig index 9500f87743..2037940da5 100644 --- a/configs/sim/nxwm/defconfig +++ b/configs/sim/nxwm/defconfig @@ -311,16 +311,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sim/ostest/defconfig b/configs/sim/ostest/defconfig index 7faf98312c..166607d4f0 100644 --- a/configs/sim/ostest/defconfig +++ b/configs/sim/ostest/defconfig @@ -328,16 +328,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sim/pashello/defconfig b/configs/sim/pashello/defconfig index 1742087f1f..8f880a0c6a 100644 --- a/configs/sim/pashello/defconfig +++ b/configs/sim/pashello/defconfig @@ -293,16 +293,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sim/touchscreen/defconfig b/configs/sim/touchscreen/defconfig index 25a1b444d8..4750be15be 100644 --- a/configs/sim/touchscreen/defconfig +++ b/configs/sim/touchscreen/defconfig @@ -343,16 +343,16 @@ CONFIG_INPUT=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sim/traveler/defconfig b/configs/sim/traveler/defconfig index 7424849bef..6a0a1c5ac8 100644 --- a/configs/sim/traveler/defconfig +++ b/configs/sim/traveler/defconfig @@ -335,16 +335,16 @@ CONFIG_AJOYSTICK=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sim/udgram/defconfig b/configs/sim/udgram/defconfig index ae051de05a..4c5e753eb7 100644 --- a/configs/sim/udgram/defconfig +++ b/configs/sim/udgram/defconfig @@ -320,16 +320,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sim/unionfs/defconfig b/configs/sim/unionfs/defconfig index 443c462c55..73dfebeb47 100644 --- a/configs/sim/unionfs/defconfig +++ b/configs/sim/unionfs/defconfig @@ -305,16 +305,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sim/ustream/defconfig b/configs/sim/ustream/defconfig index a4e6bb70ea..b472d6a8f0 100644 --- a/configs/sim/ustream/defconfig +++ b/configs/sim/ustream/defconfig @@ -320,16 +320,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/spark/composite/defconfig b/configs/spark/composite/defconfig index 07f1ebb183..2017b44a54 100644 --- a/configs/spark/composite/defconfig +++ b/configs/spark/composite/defconfig @@ -732,16 +732,16 @@ CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set CONFIG_SERIAL_REMOVABLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/spark/nsh/defconfig b/configs/spark/nsh/defconfig index b7a4a796db..832d2f8340 100644 --- a/configs/spark/nsh/defconfig +++ b/configs/spark/nsh/defconfig @@ -731,16 +731,16 @@ CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set CONFIG_SERIAL_REMOVABLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/spark/usbmsc/defconfig b/configs/spark/usbmsc/defconfig index a9eec4d1b7..c14ce6e146 100644 --- a/configs/spark/usbmsc/defconfig +++ b/configs/spark/usbmsc/defconfig @@ -731,16 +731,16 @@ CONFIG_SST25_SECTOR512=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/spark/usbnsh/defconfig b/configs/spark/usbnsh/defconfig index 48b95c7854..092d3ce14c 100644 --- a/configs/spark/usbnsh/defconfig +++ b/configs/spark/usbnsh/defconfig @@ -725,16 +725,16 @@ CONFIG_SST25_SPIFREQUENCY=20000000 CONFIG_SERIAL=y CONFIG_SERIAL_REMOVABLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/spark/usbserial/defconfig b/configs/spark/usbserial/defconfig index a950b39be2..dd208ba655 100644 --- a/configs/spark/usbserial/defconfig +++ b/configs/spark/usbserial/defconfig @@ -729,16 +729,16 @@ CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set CONFIG_SERIAL_REMOVABLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm3210e-eval/buttons/defconfig b/configs/stm3210e-eval/buttons/defconfig index b7c69ec843..880b514594 100644 --- a/configs/stm3210e-eval/buttons/defconfig +++ b/configs/stm3210e-eval/buttons/defconfig @@ -678,16 +678,16 @@ CONFIG_ARCH_HAVE_I2CRESET=y CONFIG_SERIAL=y CONFIG_DEV_LOWCONSOLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm3210e-eval/composite/defconfig b/configs/stm3210e-eval/composite/defconfig index 28dd4b7366..a761750e93 100644 --- a/configs/stm3210e-eval/composite/defconfig +++ b/configs/stm3210e-eval/composite/defconfig @@ -751,16 +751,16 @@ CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set CONFIG_SERIAL_REMOVABLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm3210e-eval/nsh/defconfig b/configs/stm3210e-eval/nsh/defconfig index 68e71198de..72e8afbf55 100644 --- a/configs/stm3210e-eval/nsh/defconfig +++ b/configs/stm3210e-eval/nsh/defconfig @@ -753,16 +753,16 @@ CONFIG_MTD=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm3210e-eval/nsh2/defconfig b/configs/stm3210e-eval/nsh2/defconfig index 2b063e89b6..bea335e87c 100644 --- a/configs/stm3210e-eval/nsh2/defconfig +++ b/configs/stm3210e-eval/nsh2/defconfig @@ -810,16 +810,16 @@ CONFIG_MTD=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm3210e-eval/nx/defconfig b/configs/stm3210e-eval/nx/defconfig index 161141c2a2..dc3fb2cad4 100644 --- a/configs/stm3210e-eval/nx/defconfig +++ b/configs/stm3210e-eval/nx/defconfig @@ -748,16 +748,16 @@ CONFIG_LCD_RPORTRAIT=y CONFIG_SERIAL=y CONFIG_DEV_LOWCONSOLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm3210e-eval/nxterm/defconfig b/configs/stm3210e-eval/nxterm/defconfig index a20d341200..a6bb105a7d 100644 --- a/configs/stm3210e-eval/nxterm/defconfig +++ b/configs/stm3210e-eval/nxterm/defconfig @@ -744,16 +744,16 @@ CONFIG_LCD_LANDSCAPE=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm3210e-eval/pm/defconfig b/configs/stm3210e-eval/pm/defconfig index 1e09e51366..b223543cf2 100644 --- a/configs/stm3210e-eval/pm/defconfig +++ b/configs/stm3210e-eval/pm/defconfig @@ -785,16 +785,16 @@ CONFIG_PM_SLEEPENTER_COUNT=70 CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm3210e-eval/usbmsc/defconfig b/configs/stm3210e-eval/usbmsc/defconfig index 78379a35d6..0e76ab79e3 100644 --- a/configs/stm3210e-eval/usbmsc/defconfig +++ b/configs/stm3210e-eval/usbmsc/defconfig @@ -716,16 +716,16 @@ CONFIG_SDIO_PREFLIGHT=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm3210e-eval/usbserial/defconfig b/configs/stm3210e-eval/usbserial/defconfig index ace9949deb..00edca0939 100644 --- a/configs/stm3210e-eval/usbserial/defconfig +++ b/configs/stm3210e-eval/usbserial/defconfig @@ -692,16 +692,16 @@ CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set CONFIG_SERIAL_REMOVABLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm3220g-eval/dhcpd/defconfig b/configs/stm3220g-eval/dhcpd/defconfig index 1bfea11af6..5c7abf1390 100644 --- a/configs/stm3220g-eval/dhcpd/defconfig +++ b/configs/stm3220g-eval/dhcpd/defconfig @@ -745,16 +745,16 @@ CONFIG_ETH0_PHY_DP83848C=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm3220g-eval/nettest/defconfig b/configs/stm3220g-eval/nettest/defconfig index 93df901439..cb3f384c6d 100644 --- a/configs/stm3220g-eval/nettest/defconfig +++ b/configs/stm3220g-eval/nettest/defconfig @@ -746,16 +746,16 @@ CONFIG_ETH0_PHY_DP83848C=y CONFIG_SERIAL=y CONFIG_DEV_LOWCONSOLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm3220g-eval/nsh/defconfig b/configs/stm3220g-eval/nsh/defconfig index 5e9eabac53..8cddd5856d 100644 --- a/configs/stm3220g-eval/nsh/defconfig +++ b/configs/stm3220g-eval/nsh/defconfig @@ -810,16 +810,16 @@ CONFIG_ETH0_PHY_DP83848C=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm3220g-eval/nsh2/defconfig b/configs/stm3220g-eval/nsh2/defconfig index 0fe721a764..4b8dc9d26a 100644 --- a/configs/stm3220g-eval/nsh2/defconfig +++ b/configs/stm3220g-eval/nsh2/defconfig @@ -834,16 +834,16 @@ CONFIG_ETH0_PHY_DP83848C=y # CONFIG_SERCOMM_CONSOLE is not set CONFIG_SERIAL=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm3220g-eval/nxwm/defconfig b/configs/stm3220g-eval/nxwm/defconfig index 775952e879..83d5ad3cfb 100644 --- a/configs/stm3220g-eval/nxwm/defconfig +++ b/configs/stm3220g-eval/nxwm/defconfig @@ -860,16 +860,16 @@ CONFIG_ETH0_PHY_DP83848C=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm3220g-eval/telnetd/defconfig b/configs/stm3220g-eval/telnetd/defconfig index ea399177ad..e2646636d2 100644 --- a/configs/stm3220g-eval/telnetd/defconfig +++ b/configs/stm3220g-eval/telnetd/defconfig @@ -748,16 +748,16 @@ CONFIG_ETH0_PHY_DP83848C=y CONFIG_SERIAL=y CONFIG_DEV_LOWCONSOLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm3240g-eval/dhcpd/defconfig b/configs/stm3240g-eval/dhcpd/defconfig index a1b82e210d..92fedaad82 100644 --- a/configs/stm3240g-eval/dhcpd/defconfig +++ b/configs/stm3240g-eval/dhcpd/defconfig @@ -754,16 +754,16 @@ CONFIG_ETH0_PHY_DP83848C=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm3240g-eval/discover/defconfig b/configs/stm3240g-eval/discover/defconfig index 86d919790e..09ce521bc3 100644 --- a/configs/stm3240g-eval/discover/defconfig +++ b/configs/stm3240g-eval/discover/defconfig @@ -777,16 +777,16 @@ CONFIG_ETH0_PHY_DP83848C=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm3240g-eval/knxwm/defconfig b/configs/stm3240g-eval/knxwm/defconfig index 2494d7c696..57eab71c04 100644 --- a/configs/stm3240g-eval/knxwm/defconfig +++ b/configs/stm3240g-eval/knxwm/defconfig @@ -812,16 +812,16 @@ CONFIG_LCD_LANDSCAPE=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm3240g-eval/nettest/defconfig b/configs/stm3240g-eval/nettest/defconfig index 31138a5c7c..df9870a268 100644 --- a/configs/stm3240g-eval/nettest/defconfig +++ b/configs/stm3240g-eval/nettest/defconfig @@ -755,16 +755,16 @@ CONFIG_ETH0_PHY_DP83848C=y CONFIG_SERIAL=y CONFIG_DEV_LOWCONSOLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm3240g-eval/nsh/defconfig b/configs/stm3240g-eval/nsh/defconfig index b9e4f539b5..ce573b143c 100644 --- a/configs/stm3240g-eval/nsh/defconfig +++ b/configs/stm3240g-eval/nsh/defconfig @@ -797,16 +797,16 @@ CONFIG_ETH0_PHY_DP83848C=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm3240g-eval/nsh2/defconfig b/configs/stm3240g-eval/nsh2/defconfig index 7ad9e82c64..51dcd6eab3 100644 --- a/configs/stm3240g-eval/nsh2/defconfig +++ b/configs/stm3240g-eval/nsh2/defconfig @@ -844,16 +844,16 @@ CONFIG_ETH0_PHY_DP83848C=y # CONFIG_SERCOMM_CONSOLE is not set CONFIG_SERIAL=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm3240g-eval/nxterm/defconfig b/configs/stm3240g-eval/nxterm/defconfig index 23989b825f..638f5507b3 100644 --- a/configs/stm3240g-eval/nxterm/defconfig +++ b/configs/stm3240g-eval/nxterm/defconfig @@ -835,16 +835,16 @@ CONFIG_ETH0_PHY_DP83848C=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm3240g-eval/nxwm/defconfig b/configs/stm3240g-eval/nxwm/defconfig index cfe4772492..f0b962f1e2 100644 --- a/configs/stm3240g-eval/nxwm/defconfig +++ b/configs/stm3240g-eval/nxwm/defconfig @@ -862,16 +862,16 @@ CONFIG_ETH0_PHY_NONE=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm3240g-eval/telnetd/defconfig b/configs/stm3240g-eval/telnetd/defconfig index 8051d1d572..04adbfe745 100644 --- a/configs/stm3240g-eval/telnetd/defconfig +++ b/configs/stm3240g-eval/telnetd/defconfig @@ -757,16 +757,16 @@ CONFIG_ETH0_PHY_DP83848C=y CONFIG_SERIAL=y CONFIG_DEV_LOWCONSOLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm3240g-eval/webserver/defconfig b/configs/stm3240g-eval/webserver/defconfig index ce40f65b47..d5198e478a 100644 --- a/configs/stm3240g-eval/webserver/defconfig +++ b/configs/stm3240g-eval/webserver/defconfig @@ -814,16 +814,16 @@ CONFIG_ETH0_PHY_NONE=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm3240g-eval/xmlrpc/defconfig b/configs/stm3240g-eval/xmlrpc/defconfig index 76fce15479..ee1db22eeb 100644 --- a/configs/stm3240g-eval/xmlrpc/defconfig +++ b/configs/stm3240g-eval/xmlrpc/defconfig @@ -772,16 +772,16 @@ CONFIG_ETH0_PHY_DP83848C=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm32_tiny/nsh/defconfig b/configs/stm32_tiny/nsh/defconfig index a197e144f0..cfb091515f 100644 --- a/configs/stm32_tiny/nsh/defconfig +++ b/configs/stm32_tiny/nsh/defconfig @@ -688,16 +688,16 @@ CONFIG_SPI_EXCHANGE=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm32_tiny/usbnsh/defconfig b/configs/stm32_tiny/usbnsh/defconfig index d7c3669fa9..1565b304a8 100644 --- a/configs/stm32_tiny/usbnsh/defconfig +++ b/configs/stm32_tiny/usbnsh/defconfig @@ -663,16 +663,16 @@ CONFIG_ARCH_HAVE_I2CRESET=y CONFIG_SERIAL=y CONFIG_SERIAL_REMOVABLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm32f103-minimum/nsh/defconfig b/configs/stm32f103-minimum/nsh/defconfig index fbf9f3f474..4affe971cc 100644 --- a/configs/stm32f103-minimum/nsh/defconfig +++ b/configs/stm32f103-minimum/nsh/defconfig @@ -680,16 +680,16 @@ CONFIG_ARCH_HAVE_I2CRESET=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm32f103-minimum/usbnsh/defconfig b/configs/stm32f103-minimum/usbnsh/defconfig index 0c1921ab55..0d05c28d96 100644 --- a/configs/stm32f103-minimum/usbnsh/defconfig +++ b/configs/stm32f103-minimum/usbnsh/defconfig @@ -677,16 +677,16 @@ CONFIG_ARCH_HAVE_I2CRESET=y CONFIG_SERIAL=y CONFIG_SERIAL_REMOVABLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm32f3discovery/nsh/defconfig b/configs/stm32f3discovery/nsh/defconfig index 551e300cd5..1b278f6e40 100644 --- a/configs/stm32f3discovery/nsh/defconfig +++ b/configs/stm32f3discovery/nsh/defconfig @@ -686,16 +686,16 @@ CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set CONFIG_SERIAL_REMOVABLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm32f3discovery/usbnsh/defconfig b/configs/stm32f3discovery/usbnsh/defconfig index 05f6e50562..50647f43a6 100644 --- a/configs/stm32f3discovery/usbnsh/defconfig +++ b/configs/stm32f3discovery/usbnsh/defconfig @@ -709,16 +709,16 @@ CONFIG_SPI_EXCHANGE=y CONFIG_SERIAL=y CONFIG_SERIAL_REMOVABLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm32f411e-disco/nsh/defconfig b/configs/stm32f411e-disco/nsh/defconfig index ac00c8e3cf..cbd46e2ac8 100644 --- a/configs/stm32f411e-disco/nsh/defconfig +++ b/configs/stm32f411e-disco/nsh/defconfig @@ -678,16 +678,16 @@ CONFIG_ARCH_HAVE_I2CRESET=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm32f429i-disco/extflash/defconfig b/configs/stm32f429i-disco/extflash/defconfig index 86f4d2d77c..b7f8b11655 100644 --- a/configs/stm32f429i-disco/extflash/defconfig +++ b/configs/stm32f429i-disco/extflash/defconfig @@ -784,16 +784,16 @@ CONFIG_SST25XX_MEMORY_TYPE=0x25 CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm32f429i-disco/lcd/defconfig b/configs/stm32f429i-disco/lcd/defconfig index 79ae28a93d..ac68e06617 100644 --- a/configs/stm32f429i-disco/lcd/defconfig +++ b/configs/stm32f429i-disco/lcd/defconfig @@ -756,16 +756,16 @@ CONFIG_LCD_ILI9341_IFACE0_RGB565=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm32f429i-disco/ltdc/defconfig b/configs/stm32f429i-disco/ltdc/defconfig index cb8d26dda8..e1ad1c0379 100644 --- a/configs/stm32f429i-disco/ltdc/defconfig +++ b/configs/stm32f429i-disco/ltdc/defconfig @@ -798,16 +798,16 @@ CONFIG_SPI_CMDDATA=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm32f429i-disco/nsh/defconfig b/configs/stm32f429i-disco/nsh/defconfig index cbd64437a2..60b7b4de5c 100644 --- a/configs/stm32f429i-disco/nsh/defconfig +++ b/configs/stm32f429i-disco/nsh/defconfig @@ -714,16 +714,16 @@ CONFIG_SPI_EXCHANGE=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm32f429i-disco/usbmsc/defconfig b/configs/stm32f429i-disco/usbmsc/defconfig index 9637e8fabe..922d9601b9 100644 --- a/configs/stm32f429i-disco/usbmsc/defconfig +++ b/configs/stm32f429i-disco/usbmsc/defconfig @@ -738,16 +738,16 @@ CONFIG_SPI_EXCHANGE=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm32f429i-disco/usbnsh/defconfig b/configs/stm32f429i-disco/usbnsh/defconfig index b52e2eadf1..3817aee261 100644 --- a/configs/stm32f429i-disco/usbnsh/defconfig +++ b/configs/stm32f429i-disco/usbnsh/defconfig @@ -722,16 +722,16 @@ CONFIG_SPI_EXCHANGE=y CONFIG_SERIAL=y CONFIG_SERIAL_REMOVABLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm32f4discovery/cxxtest/defconfig b/configs/stm32f4discovery/cxxtest/defconfig index 3f3b5b274c..3e8692410f 100644 --- a/configs/stm32f4discovery/cxxtest/defconfig +++ b/configs/stm32f4discovery/cxxtest/defconfig @@ -708,16 +708,16 @@ CONFIG_ARCH_HAVE_I2CRESET=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm32f4discovery/elf/defconfig b/configs/stm32f4discovery/elf/defconfig index 29987d4766..33b4f32fa6 100644 --- a/configs/stm32f4discovery/elf/defconfig +++ b/configs/stm32f4discovery/elf/defconfig @@ -708,16 +708,16 @@ CONFIG_ARCH_HAVE_I2CRESET=y CONFIG_SERIAL=y CONFIG_DEV_LOWCONSOLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm32f4discovery/ipv6/defconfig b/configs/stm32f4discovery/ipv6/defconfig index c21da51168..b3e43bec48 100644 --- a/configs/stm32f4discovery/ipv6/defconfig +++ b/configs/stm32f4discovery/ipv6/defconfig @@ -818,16 +818,16 @@ CONFIG_ETH0_PHY_LAN8720=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm32f4discovery/kostest/defconfig b/configs/stm32f4discovery/kostest/defconfig index f942525ab6..e547acd26d 100644 --- a/configs/stm32f4discovery/kostest/defconfig +++ b/configs/stm32f4discovery/kostest/defconfig @@ -716,16 +716,16 @@ CONFIG_ARCH_HAVE_I2CRESET=y CONFIG_SERIAL=y CONFIG_DEV_LOWCONSOLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm32f4discovery/netnsh/defconfig b/configs/stm32f4discovery/netnsh/defconfig index 0ac5e267e3..6dca1b978e 100644 --- a/configs/stm32f4discovery/netnsh/defconfig +++ b/configs/stm32f4discovery/netnsh/defconfig @@ -823,16 +823,16 @@ CONFIG_ETH0_PHY_LAN8720=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm32f4discovery/nsh/defconfig b/configs/stm32f4discovery/nsh/defconfig index bb2a47f487..f8c687d673 100644 --- a/configs/stm32f4discovery/nsh/defconfig +++ b/configs/stm32f4discovery/nsh/defconfig @@ -723,16 +723,16 @@ CONFIG_SPI_EXCHANGE=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm32f4discovery/nxlines/defconfig b/configs/stm32f4discovery/nxlines/defconfig index 69565f7dd8..221cbb3307 100644 --- a/configs/stm32f4discovery/nxlines/defconfig +++ b/configs/stm32f4discovery/nxlines/defconfig @@ -763,16 +763,16 @@ CONFIG_LCD_LANDSCAPE=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm32f4discovery/pm/defconfig b/configs/stm32f4discovery/pm/defconfig index e9bb0a0298..9ec0a9144e 100644 --- a/configs/stm32f4discovery/pm/defconfig +++ b/configs/stm32f4discovery/pm/defconfig @@ -729,16 +729,16 @@ CONFIG_PM=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm32f4discovery/posix_spawn/defconfig b/configs/stm32f4discovery/posix_spawn/defconfig index 321cb49909..5ecbd99763 100644 --- a/configs/stm32f4discovery/posix_spawn/defconfig +++ b/configs/stm32f4discovery/posix_spawn/defconfig @@ -708,16 +708,16 @@ CONFIG_ARCH_HAVE_I2CRESET=y CONFIG_SERIAL=y CONFIG_DEV_LOWCONSOLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm32f4discovery/rgbled/defconfig b/configs/stm32f4discovery/rgbled/defconfig index 84c3d8ed6e..bc3efd26b4 100644 --- a/configs/stm32f4discovery/rgbled/defconfig +++ b/configs/stm32f4discovery/rgbled/defconfig @@ -757,16 +757,16 @@ CONFIG_RGBLED=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm32f4discovery/usbnsh/defconfig b/configs/stm32f4discovery/usbnsh/defconfig index cda3ed90d4..daec10f118 100644 --- a/configs/stm32f4discovery/usbnsh/defconfig +++ b/configs/stm32f4discovery/usbnsh/defconfig @@ -731,16 +731,16 @@ CONFIG_SPI_EXCHANGE=y CONFIG_SERIAL=y CONFIG_SERIAL_REMOVABLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm32f4discovery/winbuild/defconfig b/configs/stm32f4discovery/winbuild/defconfig index 68dbb57c49..02b00311ea 100644 --- a/configs/stm32f4discovery/winbuild/defconfig +++ b/configs/stm32f4discovery/winbuild/defconfig @@ -658,16 +658,16 @@ CONFIG_ARCH_HAVE_I2CRESET=y CONFIG_SERIAL=y CONFIG_DEV_LOWCONSOLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm32f746g-disco/knsh/defconfig b/configs/stm32f746g-disco/knsh/defconfig index 5aeced55af..ecd145b08f 100644 --- a/configs/stm32f746g-disco/knsh/defconfig +++ b/configs/stm32f746g-disco/knsh/defconfig @@ -494,16 +494,16 @@ CONFIG_SPI_EXCHANGE=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm32f746g-disco/netnsh/defconfig b/configs/stm32f746g-disco/netnsh/defconfig index 16764b75b4..a750febc7f 100644 --- a/configs/stm32f746g-disco/netnsh/defconfig +++ b/configs/stm32f746g-disco/netnsh/defconfig @@ -553,16 +553,16 @@ CONFIG_ETH0_PHY_LAN8742A=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm32f746g-disco/nsh/defconfig b/configs/stm32f746g-disco/nsh/defconfig index 3e97d6a625..daf2c2f7d0 100644 --- a/configs/stm32f746g-disco/nsh/defconfig +++ b/configs/stm32f746g-disco/nsh/defconfig @@ -486,16 +486,16 @@ CONFIG_SPI_EXCHANGE=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm32l476vg-disco/nsh/defconfig b/configs/stm32l476vg-disco/nsh/defconfig index f3699a307c..6175915e44 100644 --- a/configs/stm32l476vg-disco/nsh/defconfig +++ b/configs/stm32l476vg-disco/nsh/defconfig @@ -607,16 +607,16 @@ CONFIG_N25QXXX_SECTOR512=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm32ldiscovery/nsh/defconfig b/configs/stm32ldiscovery/nsh/defconfig index 32494aabc0..4e7e5299f3 100644 --- a/configs/stm32ldiscovery/nsh/defconfig +++ b/configs/stm32ldiscovery/nsh/defconfig @@ -669,16 +669,16 @@ CONFIG_ARCH_HAVE_I2CRESET=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/stm32vldiscovery/nsh/defconfig b/configs/stm32vldiscovery/nsh/defconfig index cc0b804203..d0770b7103 100644 --- a/configs/stm32vldiscovery/nsh/defconfig +++ b/configs/stm32vldiscovery/nsh/defconfig @@ -688,16 +688,16 @@ CONFIG_RTC=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sure-pic32mx/nsh/defconfig b/configs/sure-pic32mx/nsh/defconfig index 66b0c4aaad..c948c0137f 100644 --- a/configs/sure-pic32mx/nsh/defconfig +++ b/configs/sure-pic32mx/nsh/defconfig @@ -483,16 +483,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -CONFIG_ARCH_HAVE_UART2=y -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +CONFIG_UART2_SERIALDRIVER=y +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/sure-pic32mx/usbnsh/defconfig b/configs/sure-pic32mx/usbnsh/defconfig index 737507723b..44311ac95f 100644 --- a/configs/sure-pic32mx/usbnsh/defconfig +++ b/configs/sure-pic32mx/usbnsh/defconfig @@ -485,16 +485,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y CONFIG_SERIAL_REMOVABLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -CONFIG_ARCH_HAVE_UART2=y -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +CONFIG_UART2_SERIALDRIVER=y +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/teensy-2.0/hello/defconfig b/configs/teensy-2.0/hello/defconfig index 88f929b9d3..d5a2d065ad 100644 --- a/configs/teensy-2.0/hello/defconfig +++ b/configs/teensy-2.0/hello/defconfig @@ -305,16 +305,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y CONFIG_DEV_LOWCONSOLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/teensy-2.0/nsh/defconfig b/configs/teensy-2.0/nsh/defconfig index b3da13ed99..37998b3039 100644 --- a/configs/teensy-2.0/nsh/defconfig +++ b/configs/teensy-2.0/nsh/defconfig @@ -316,16 +316,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/teensy-2.0/usbmsc/defconfig b/configs/teensy-2.0/usbmsc/defconfig index 5f3ad5e14a..e05ce4d776 100644 --- a/configs/teensy-2.0/usbmsc/defconfig +++ b/configs/teensy-2.0/usbmsc/defconfig @@ -338,16 +338,16 @@ CONFIG_MMCSD_SPIMODE=0 CONFIG_SERIAL=y CONFIG_DEV_LOWCONSOLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/teensy-3.x/nsh/defconfig b/configs/teensy-3.x/nsh/defconfig index 039260571a..5a4f97c97a 100644 --- a/configs/teensy-3.x/nsh/defconfig +++ b/configs/teensy-3.x/nsh/defconfig @@ -438,16 +438,16 @@ CONFIG_SPI_EXCHANGE=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/teensy-lc/nsh/defconfig b/configs/teensy-lc/nsh/defconfig index f0ce5e4daf..13f8c046e5 100644 --- a/configs/teensy-lc/nsh/defconfig +++ b/configs/teensy-lc/nsh/defconfig @@ -421,16 +421,16 @@ CONFIG_SPI_EXCHANGE=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/tm4c123g-launchpad/nsh/defconfig b/configs/tm4c123g-launchpad/nsh/defconfig index eaeead3ed3..5e6f8e607f 100644 --- a/configs/tm4c123g-launchpad/nsh/defconfig +++ b/configs/tm4c123g-launchpad/nsh/defconfig @@ -453,16 +453,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/tm4c1294-launchpad/ipv6/defconfig b/configs/tm4c1294-launchpad/ipv6/defconfig index 4627340760..946daaad6c 100644 --- a/configs/tm4c1294-launchpad/ipv6/defconfig +++ b/configs/tm4c1294-launchpad/ipv6/defconfig @@ -483,16 +483,16 @@ CONFIG_ARCH_PHY_INTERRUPT=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/tm4c1294-launchpad/nsh/defconfig b/configs/tm4c1294-launchpad/nsh/defconfig index 59dd9b3429..3b291dd2b3 100644 --- a/configs/tm4c1294-launchpad/nsh/defconfig +++ b/configs/tm4c1294-launchpad/nsh/defconfig @@ -520,16 +520,16 @@ CONFIG_ARCH_PHY_INTERRUPT=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/twr-k60n512/nsh/defconfig b/configs/twr-k60n512/nsh/defconfig index 8dd22c96d0..c5cd7ccd14 100644 --- a/configs/twr-k60n512/nsh/defconfig +++ b/configs/twr-k60n512/nsh/defconfig @@ -422,16 +422,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -CONFIG_ARCH_HAVE_UART3=y -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +CONFIG_UART3_SERIALDRIVER=y +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/u-blox-c027/nsh/defconfig b/configs/u-blox-c027/nsh/defconfig index 419ac12e50..b147d7a706 100644 --- a/configs/u-blox-c027/nsh/defconfig +++ b/configs/u-blox-c027/nsh/defconfig @@ -562,16 +562,16 @@ CONFIG_ETH1_PHY_NONE=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -CONFIG_ARCH_HAVE_UART1=y -CONFIG_ARCH_HAVE_UART2=y -CONFIG_ARCH_HAVE_UART3=y -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +CONFIG_UART1_SERIALDRIVER=y +CONFIG_UART2_SERIALDRIVER=y +CONFIG_UART3_SERIALDRIVER=y +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/ubw32/nsh/defconfig b/configs/ubw32/nsh/defconfig index 9edea8b7da..d66f9c524e 100644 --- a/configs/ubw32/nsh/defconfig +++ b/configs/ubw32/nsh/defconfig @@ -490,16 +490,16 @@ CONFIG_MMCSD_NSLOTS=1 CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -CONFIG_ARCH_HAVE_UART1=y -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +CONFIG_UART1_SERIALDRIVER=y +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/us7032evb1/nsh/defconfig b/configs/us7032evb1/nsh/defconfig index 0429f675f7..68d1570e58 100644 --- a/configs/us7032evb1/nsh/defconfig +++ b/configs/us7032evb1/nsh/defconfig @@ -243,16 +243,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set CONFIG_ARCH_HAVE_SCI1=y # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/us7032evb1/ostest/defconfig b/configs/us7032evb1/ostest/defconfig index 96ecbeb6f1..266b9ef6d3 100644 --- a/configs/us7032evb1/ostest/defconfig +++ b/configs/us7032evb1/ostest/defconfig @@ -242,16 +242,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y CONFIG_DEV_LOWCONSOLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set CONFIG_ARCH_HAVE_SCI1=y # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/viewtool-stm32f107/highpri/defconfig b/configs/viewtool-stm32f107/highpri/defconfig index eca985cacf..04a0f39087 100644 --- a/configs/viewtool-stm32f107/highpri/defconfig +++ b/configs/viewtool-stm32f107/highpri/defconfig @@ -692,16 +692,16 @@ CONFIG_ARCH_HAVE_I2CRESET=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/viewtool-stm32f107/netnsh/defconfig b/configs/viewtool-stm32f107/netnsh/defconfig index 07c09f6352..7a534709b0 100644 --- a/configs/viewtool-stm32f107/netnsh/defconfig +++ b/configs/viewtool-stm32f107/netnsh/defconfig @@ -751,16 +751,16 @@ CONFIG_ETH0_PHY_DP83848C=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/viewtool-stm32f107/nsh/defconfig b/configs/viewtool-stm32f107/nsh/defconfig index 055accbb1e..f600426270 100644 --- a/configs/viewtool-stm32f107/nsh/defconfig +++ b/configs/viewtool-stm32f107/nsh/defconfig @@ -690,16 +690,16 @@ CONFIG_ARCH_HAVE_I2CRESET=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -# CONFIG_ARCH_HAVE_UART0 is not set -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +# CONFIG_UART0_SERIALDRIVER is not set +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/xtrs/nsh/defconfig b/configs/xtrs/nsh/defconfig index 79355d8226..fed3d18a03 100644 --- a/configs/xtrs/nsh/defconfig +++ b/configs/xtrs/nsh/defconfig @@ -197,7 +197,7 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -CONFIG_ARCH_HAVE_UART=y +CONFIG_UART_SERIALDRIVER=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_UART_SERIAL_CONSOLE is not set diff --git a/configs/xtrs/ostest/defconfig b/configs/xtrs/ostest/defconfig index 5f79aab570..d0f9abadd0 100644 --- a/configs/xtrs/ostest/defconfig +++ b/configs/xtrs/ostest/defconfig @@ -196,7 +196,7 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y CONFIG_DEV_LOWCONSOLE=y # CONFIG_16550_UART is not set -CONFIG_ARCH_HAVE_UART=y +CONFIG_UART_SERIALDRIVER=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y CONFIG_UART_SERIAL_CONSOLE=y diff --git a/configs/xtrs/pashello/defconfig b/configs/xtrs/pashello/defconfig index 1865c540b7..eeceb9e582 100644 --- a/configs/xtrs/pashello/defconfig +++ b/configs/xtrs/pashello/defconfig @@ -197,7 +197,7 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y CONFIG_DEV_LOWCONSOLE=y # CONFIG_16550_UART is not set -CONFIG_ARCH_HAVE_UART=y +CONFIG_UART_SERIALDRIVER=y CONFIG_MCU_SERIAL=y CONFIG_UART_SERIAL_CONSOLE=y # CONFIG_NO_SERIAL_CONSOLE is not set diff --git a/configs/z16f2800100zcog/nsh/defconfig b/configs/z16f2800100zcog/nsh/defconfig index 982105a3e0..453b66464b 100644 --- a/configs/z16f2800100zcog/nsh/defconfig +++ b/configs/z16f2800100zcog/nsh/defconfig @@ -299,16 +299,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -CONFIG_ARCH_HAVE_UART1=y -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +CONFIG_UART1_SERIALDRIVER=y +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/z16f2800100zcog/ostest/defconfig b/configs/z16f2800100zcog/ostest/defconfig index 219c0a203d..6ee164a4ea 100644 --- a/configs/z16f2800100zcog/ostest/defconfig +++ b/configs/z16f2800100zcog/ostest/defconfig @@ -257,8 +257,8 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y CONFIG_DEV_LOWCONSOLE=y # CONFIG_16550_UART is not set -CONFIG_ARCH_HAVE_UART0=y -CONFIG_ARCH_HAVE_UART1=y +CONFIG_UART0_SERIALDRIVER=y +CONFIG_UART1_SERIALDRIVER=y # # USART Configuration diff --git a/configs/z16f2800100zcog/pashello/defconfig b/configs/z16f2800100zcog/pashello/defconfig index 34e162a24d..3d4744e090 100644 --- a/configs/z16f2800100zcog/pashello/defconfig +++ b/configs/z16f2800100zcog/pashello/defconfig @@ -220,8 +220,8 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y CONFIG_DEV_LOWCONSOLE=y # CONFIG_16550_UART is not set -CONFIG_ARCH_HAVE_UART0=y -CONFIG_ARCH_HAVE_UART1=y +CONFIG_UART0_SERIALDRIVER=y +CONFIG_UART1_SERIALDRIVER=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y CONFIG_UART0_SERIAL_CONSOLE=y diff --git a/configs/z80sim/nsh/defconfig b/configs/z80sim/nsh/defconfig index 347d7f9cd7..ab5c5da665 100644 --- a/configs/z80sim/nsh/defconfig +++ b/configs/z80sim/nsh/defconfig @@ -197,7 +197,7 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -CONFIG_ARCH_HAVE_UART=y +CONFIG_UART_SERIALDRIVER=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_UART_SERIAL_CONSOLE is not set diff --git a/configs/z80sim/ostest/defconfig b/configs/z80sim/ostest/defconfig index 36ed405f12..dc0a04bc13 100644 --- a/configs/z80sim/ostest/defconfig +++ b/configs/z80sim/ostest/defconfig @@ -196,7 +196,7 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y CONFIG_DEV_LOWCONSOLE=y # CONFIG_16550_UART is not set -CONFIG_ARCH_HAVE_UART=y +CONFIG_UART_SERIALDRIVER=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y CONFIG_UART_SERIAL_CONSOLE=y diff --git a/configs/z80sim/pashello/defconfig b/configs/z80sim/pashello/defconfig index 9a049337cd..4a702c2638 100644 --- a/configs/z80sim/pashello/defconfig +++ b/configs/z80sim/pashello/defconfig @@ -196,7 +196,7 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y CONFIG_DEV_LOWCONSOLE=y # CONFIG_16550_UART is not set -CONFIG_ARCH_HAVE_UART=y +CONFIG_UART_SERIALDRIVER=y CONFIG_MCU_SERIAL=y CONFIG_UART_SERIAL_CONSOLE=y # CONFIG_NO_SERIAL_CONSOLE is not set diff --git a/configs/z8encore000zco/ostest/defconfig b/configs/z8encore000zco/ostest/defconfig index 54b0159f23..4d065a5aa1 100644 --- a/configs/z8encore000zco/ostest/defconfig +++ b/configs/z8encore000zco/ostest/defconfig @@ -359,16 +359,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y CONFIG_DEV_LOWCONSOLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -CONFIG_ARCH_HAVE_UART1=y -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +CONFIG_UART1_SERIALDRIVER=y +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/z8f64200100kit/ostest/defconfig b/configs/z8f64200100kit/ostest/defconfig index e6082bd6c5..a308978358 100644 --- a/configs/z8f64200100kit/ostest/defconfig +++ b/configs/z8f64200100kit/ostest/defconfig @@ -359,16 +359,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -CONFIG_ARCH_HAVE_UART1=y -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +CONFIG_UART1_SERIALDRIVER=y +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/zkit-arm-1769/hello/defconfig b/configs/zkit-arm-1769/hello/defconfig index 85c33285df..2a7b2d8387 100644 --- a/configs/zkit-arm-1769/hello/defconfig +++ b/configs/zkit-arm-1769/hello/defconfig @@ -458,16 +458,16 @@ CONFIG_ETH0_PHY_DP83848C=y CONFIG_SERIAL=y CONFIG_DEV_LOWCONSOLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/zkit-arm-1769/nsh/defconfig b/configs/zkit-arm-1769/nsh/defconfig index fabb962f98..f0f7f6f709 100644 --- a/configs/zkit-arm-1769/nsh/defconfig +++ b/configs/zkit-arm-1769/nsh/defconfig @@ -510,16 +510,16 @@ CONFIG_ETH0_PHY_DP83848C=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/zkit-arm-1769/nxhello/defconfig b/configs/zkit-arm-1769/nxhello/defconfig index b283b2c078..c47c60f50a 100644 --- a/configs/zkit-arm-1769/nxhello/defconfig +++ b/configs/zkit-arm-1769/nxhello/defconfig @@ -552,16 +552,16 @@ CONFIG_ETH0_PHY_DP83848C=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/zkit-arm-1769/thttpd/defconfig b/configs/zkit-arm-1769/thttpd/defconfig index f36c630d56..362d8b2021 100644 --- a/configs/zkit-arm-1769/thttpd/defconfig +++ b/configs/zkit-arm-1769/thttpd/defconfig @@ -457,16 +457,16 @@ CONFIG_ETH0_PHY_DP83848C=y CONFIG_SERIAL=y CONFIG_DEV_LOWCONSOLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -# CONFIG_ARCH_HAVE_UART1 is not set -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +# CONFIG_UART1_SERIALDRIVER is not set +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/zp214xpa/nsh/defconfig b/configs/zp214xpa/nsh/defconfig index 832d7c1e85..9eeb75b9fd 100644 --- a/configs/zp214xpa/nsh/defconfig +++ b/configs/zp214xpa/nsh/defconfig @@ -364,16 +364,16 @@ CONFIG_DEV_NULL=y CONFIG_SERIAL=y # CONFIG_DEV_LOWCONSOLE is not set # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -CONFIG_ARCH_HAVE_UART1=y -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +CONFIG_UART1_SERIALDRIVER=y +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/configs/zp214xpa/nxlines/defconfig b/configs/zp214xpa/nxlines/defconfig index fdc45c40f4..8480ba5a2c 100644 --- a/configs/zp214xpa/nxlines/defconfig +++ b/configs/zp214xpa/nxlines/defconfig @@ -403,16 +403,16 @@ CONFIG_LCD_LANDSCAPE=y CONFIG_SERIAL=y CONFIG_DEV_LOWCONSOLE=y # CONFIG_16550_UART is not set -# CONFIG_ARCH_HAVE_UART is not set -CONFIG_ARCH_HAVE_UART0=y -CONFIG_ARCH_HAVE_UART1=y -# CONFIG_ARCH_HAVE_UART2 is not set -# CONFIG_ARCH_HAVE_UART3 is not set -# CONFIG_ARCH_HAVE_UART4 is not set -# CONFIG_ARCH_HAVE_UART5 is not set -# CONFIG_ARCH_HAVE_UART6 is not set -# CONFIG_ARCH_HAVE_UART7 is not set -# CONFIG_ARCH_HAVE_UART8 is not set +# CONFIG_UART_SERIALDRIVER is not set +CONFIG_UART0_SERIALDRIVER=y +CONFIG_UART1_SERIALDRIVER=y +# CONFIG_UART2_SERIALDRIVER is not set +# CONFIG_UART3_SERIALDRIVER is not set +# CONFIG_UART4_SERIALDRIVER is not set +# CONFIG_UART5_SERIALDRIVER is not set +# CONFIG_UART6_SERIALDRIVER is not set +# CONFIG_UART7_SERIALDRIVER is not set +# CONFIG_UART8_SERIALDRIVER is not set # CONFIG_ARCH_HAVE_SCI0 is not set # CONFIG_ARCH_HAVE_SCI1 is not set # CONFIG_USART0_SERIALDRIVER is not set diff --git a/drivers/serial/Kconfig b/drivers/serial/Kconfig index c675f9cb0a..442f5d4a97 100644 --- a/drivers/serial/Kconfig +++ b/drivers/serial/Kconfig @@ -347,52 +347,52 @@ endif # MCU serial peripheral driver? # -config ARCH_HAVE_UART +config UART_SERIALDRIVER bool default n select MCU_SERIAL -config ARCH_HAVE_UART0 +config UART0_SERIALDRIVER bool default n select MCU_SERIAL -config ARCH_HAVE_UART1 +config UART1_SERIALDRIVER bool default n select MCU_SERIAL -config ARCH_HAVE_UART2 +config UART2_SERIALDRIVER bool default n select MCU_SERIAL -config ARCH_HAVE_UART3 +config UART3_SERIALDRIVER bool default n select MCU_SERIAL -config ARCH_HAVE_UART4 +config UART4_SERIALDRIVER bool default n select MCU_SERIAL -config ARCH_HAVE_UART5 +config UART5_SERIALDRIVER bool default n select MCU_SERIAL -config ARCH_HAVE_UART6 +config UART6_SERIALDRIVER bool default n select MCU_SERIAL -config ARCH_HAVE_UART7 +config UART7_SERIALDRIVER bool default n select MCU_SERIAL -config ARCH_HAVE_UART8 +config UART8_SERIALDRIVER bool default n select MCU_SERIAL @@ -616,11 +616,11 @@ choice config UART_SERIAL_CONSOLE bool "UART" - depends on ARCH_HAVE_UART + depends on UART_SERIALDRIVER config UART0_SERIAL_CONSOLE bool "UART0" - depends on ARCH_HAVE_UART0 + depends on UART0_SERIALDRIVER config USART0_SERIAL_CONSOLE bool "USART0" @@ -628,7 +628,7 @@ config USART0_SERIAL_CONSOLE config UART1_SERIAL_CONSOLE bool "UART1" - depends on ARCH_HAVE_UART1 + depends on UART1_SERIALDRIVER config USART1_SERIAL_CONSOLE bool "USART1" @@ -636,7 +636,7 @@ config USART1_SERIAL_CONSOLE config UART2_SERIAL_CONSOLE bool "UART2" - depends on ARCH_HAVE_UART2 + depends on UART2_SERIALDRIVER config USART2_SERIAL_CONSOLE bool "USART2" @@ -644,7 +644,7 @@ config USART2_SERIAL_CONSOLE config UART3_SERIAL_CONSOLE bool "UART3" - depends on ARCH_HAVE_UART3 + depends on UART3_SERIALDRIVER config USART3_SERIAL_CONSOLE bool "USART3" @@ -652,7 +652,7 @@ config USART3_SERIAL_CONSOLE config UART4_SERIAL_CONSOLE bool "UART4" - depends on ARCH_HAVE_UART4 + depends on UART4_SERIALDRIVER config USART4_SERIAL_CONSOLE bool "USART4" @@ -660,7 +660,7 @@ config USART4_SERIAL_CONSOLE config UART5_SERIAL_CONSOLE bool "UART5" - depends on ARCH_HAVE_UART5 + depends on UART5_SERIALDRIVER config USART5_SERIAL_CONSOLE bool "USART5" @@ -668,7 +668,7 @@ config USART5_SERIAL_CONSOLE config UART6_SERIAL_CONSOLE bool "UART6" - depends on ARCH_HAVE_UART6 + depends on UART6_SERIALDRIVER config USART6_SERIAL_CONSOLE bool "USART6" @@ -676,7 +676,7 @@ config USART6_SERIAL_CONSOLE config UART7_SERIAL_CONSOLE bool "UART7" - depends on ARCH_HAVE_UART7 + depends on UART7_SERIALDRIVER config USART7_SERIAL_CONSOLE bool "USART7" @@ -684,7 +684,7 @@ config USART7_SERIAL_CONSOLE config UART8_SERIAL_CONSOLE bool "UART8" - depends on ARCH_HAVE_UART8 + depends on UART8_SERIALDRIVER config USART8_SERIAL_CONSOLE bool "USART8" @@ -711,7 +711,7 @@ endchoice # menu "UART Configuration" - depends on ARCH_HAVE_UART + depends on UART_SERIALDRIVER config UART_RXBUFSIZE int "Receive buffer size" @@ -776,7 +776,7 @@ config UART_DMA endmenu menu "UART0 Configuration" - depends on ARCH_HAVE_UART0 + depends on UART0_SERIALDRIVER config UART0_RXBUFSIZE int "Receive buffer size" @@ -906,7 +906,7 @@ config USART0_DMA endmenu menu "UART1 Configuration" - depends on ARCH_HAVE_UART1 + depends on UART1_SERIALDRIVER config UART1_RXBUFSIZE int "Receive buffer size" @@ -1036,7 +1036,7 @@ config USART1_DMA endmenu menu "UART2 Configuration" - depends on ARCH_HAVE_UART2 + depends on UART2_SERIALDRIVER config UART2_RXBUFSIZE int "Receive buffer size" @@ -1165,7 +1165,7 @@ config USART2_DMA endmenu menu "UART3 Configuration" - depends on ARCH_HAVE_UART3 + depends on UART3_SERIALDRIVER config UART3_RXBUFSIZE int "Receive buffer size" @@ -1295,7 +1295,7 @@ config USART3_DMA endmenu menu "UART4 Configuration" - depends on ARCH_HAVE_UART4 + depends on UART4_SERIALDRIVER config UART4_RXBUFSIZE int "Receive buffer size" @@ -1425,7 +1425,7 @@ config USART4_DMA endmenu menu "UART5 Configuration" - depends on ARCH_HAVE_UART5 + depends on UART5_SERIALDRIVER config UART5_RXBUFSIZE int "Receive buffer size" @@ -1620,7 +1620,7 @@ config USART6_DMA endmenu menu "UART6 Configuration" - depends on ARCH_HAVE_UART6 + depends on UART6_SERIALDRIVER config UART6_RXBUFSIZE int "Receive buffer size" @@ -1750,7 +1750,7 @@ config USART7_DMA endmenu menu "UART7 Configuration" - depends on ARCH_HAVE_UART7 + depends on UART7_SERIALDRIVER config UART7_RXBUFSIZE int "Receive buffer size" @@ -1880,7 +1880,7 @@ config USART8_DMA endmenu menu "UART8 Configuration" - depends on ARCH_HAVE_UART8 + depends on UART8_SERIALDRIVER config UART8_RXBUFSIZE int "Receive buffer size" -- GitLab From e2e6ce3f1bcb0342b5996fd630e0cb5a2127bc19 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 25 May 2016 10:46:55 -0600 Subject: [PATCH 247/307] Rename CONFIG_ARCH_HAVE_SCIn to CONFIG_SCIn_SERIALDRIVER --- arch/arm/src/tms570/Kconfig | 4 ++-- arch/hc/src/m9s12/Kconfig | 4 ++-- arch/sh/src/sh1/Kconfig | 4 ++-- configs/arduino-due/nsh/defconfig | 4 ++-- configs/arduino-mega2560/hello/defconfig | 4 ++-- configs/arduino-mega2560/nsh/defconfig | 4 ++-- configs/c5471evm/httpd/defconfig | 4 ++-- configs/c5471evm/nettest/defconfig | 4 ++-- configs/c5471evm/nsh/defconfig | 4 ++-- configs/cc3200-launchpad/nsh/defconfig | 4 ++-- configs/cloudctrl/nsh/defconfig | 4 ++-- configs/compal_e86/nsh_highram/defconfig | 4 ++-- configs/compal_e88/nsh_highram/defconfig | 4 ++-- configs/compal_e99/nsh_compalram/defconfig | 4 ++-- configs/compal_e99/nsh_highram/defconfig | 4 ++-- configs/dk-tm4c129x/ipv6/defconfig | 4 ++-- configs/dk-tm4c129x/nsh/defconfig | 4 ++-- configs/ea3131/nsh/defconfig | 4 ++-- configs/ea3131/pgnsh/defconfig | 4 ++-- configs/ea3131/usbserial/defconfig | 4 ++-- configs/ea3152/ostest/defconfig | 4 ++-- configs/eagle100/nettest/defconfig | 4 ++-- configs/eagle100/nsh/defconfig | 4 ++-- configs/eagle100/nxflat/defconfig | 4 ++-- configs/eagle100/thttpd/defconfig | 4 ++-- configs/efm32-g8xx-stk/nsh/defconfig | 4 ++-- configs/efm32gg-stk3700/nsh/defconfig | 4 ++-- configs/ekk-lm3s9b96/nsh/defconfig | 4 ++-- configs/ez80f910200kitg/ostest/defconfig | 4 ++-- configs/ez80f910200zco/dhcpd/defconfig | 4 ++-- configs/ez80f910200zco/httpd/defconfig | 4 ++-- configs/ez80f910200zco/nettest/defconfig | 4 ++-- configs/ez80f910200zco/nsh/defconfig | 4 ++-- configs/ez80f910200zco/poll/defconfig | 4 ++-- configs/fire-stm32v2/nsh/defconfig | 4 ++-- configs/freedom-kl25z/minnsh/defconfig | 4 ++-- configs/freedom-kl25z/nsh/defconfig | 4 ++-- configs/freedom-kl26z/minnsh/defconfig | 4 ++-- configs/freedom-kl26z/nsh/defconfig | 4 ++-- configs/hymini-stm32v/buttons/defconfig | 4 ++-- configs/hymini-stm32v/nsh/defconfig | 4 ++-- configs/hymini-stm32v/nsh2/defconfig | 4 ++-- configs/hymini-stm32v/usbmsc/defconfig | 4 ++-- configs/hymini-stm32v/usbnsh/defconfig | 4 ++-- configs/hymini-stm32v/usbserial/defconfig | 4 ++-- configs/kwikstik-k40/ostest/defconfig | 4 ++-- configs/launchxl-tms57004/nsh/defconfig | 4 ++-- configs/lincoln60/netnsh/defconfig | 4 ++-- configs/lincoln60/nsh/defconfig | 4 ++-- configs/lincoln60/thttpd-binfs/defconfig | 4 ++-- configs/lm3s6432-s2e/nsh/defconfig | 4 ++-- configs/lm3s6965-ek/discover/defconfig | 4 ++-- configs/lm3s6965-ek/nsh/defconfig | 4 ++-- configs/lm3s6965-ek/nx/defconfig | 4 ++-- configs/lm3s6965-ek/tcpecho/defconfig | 4 ++-- configs/lm3s8962-ek/nsh/defconfig | 4 ++-- configs/lm3s8962-ek/nx/defconfig | 4 ++-- configs/lm4f120-launchpad/nsh/defconfig | 4 ++-- configs/lpc4330-xplorer/nsh/defconfig | 4 ++-- configs/lpc4337-ws/nsh/defconfig | 4 ++-- configs/lpc4357-evb/nsh/defconfig | 4 ++-- configs/lpc4370-link2/nsh/defconfig | 4 ++-- configs/lpcxpresso-lpc1115/minnsh/defconfig | 4 ++-- configs/lpcxpresso-lpc1115/nsh/defconfig | 4 ++-- configs/lpcxpresso-lpc1768/dhcpd/defconfig | 4 ++-- configs/lpcxpresso-lpc1768/nsh/defconfig | 4 ++-- configs/lpcxpresso-lpc1768/nx/defconfig | 4 ++-- configs/lpcxpresso-lpc1768/thttpd/defconfig | 4 ++-- configs/lpcxpresso-lpc1768/usbmsc/defconfig | 4 ++-- configs/maple/nsh/defconfig | 4 ++-- configs/maple/nx/defconfig | 4 ++-- configs/maple/usbnsh/defconfig | 4 ++-- configs/mbed/nsh/defconfig | 4 ++-- configs/mcu123-lpc214x/composite/defconfig | 4 ++-- configs/mcu123-lpc214x/nsh/defconfig | 4 ++-- configs/mcu123-lpc214x/usbmsc/defconfig | 4 ++-- configs/mcu123-lpc214x/usbserial/defconfig | 4 ++-- configs/mikroe-stm32f4/fulldemo/defconfig | 4 ++-- configs/mikroe-stm32f4/kostest/defconfig | 4 ++-- configs/mikroe-stm32f4/nsh/defconfig | 4 ++-- configs/mikroe-stm32f4/usbnsh/defconfig | 4 ++-- configs/mirtoo/nsh/defconfig | 4 ++-- configs/mirtoo/nxffs/defconfig | 4 ++-- configs/moteino-mega/hello/defconfig | 4 ++-- configs/moteino-mega/nsh/defconfig | 4 ++-- configs/moxa/nsh/defconfig | 4 ++-- configs/mx1ads/ostest/defconfig | 4 ++-- configs/ntosd-dm320/nettest/defconfig | 4 ++-- configs/ntosd-dm320/nsh/defconfig | 4 ++-- configs/ntosd-dm320/poll/defconfig | 4 ++-- configs/ntosd-dm320/thttpd/defconfig | 4 ++-- configs/ntosd-dm320/udp/defconfig | 4 ++-- configs/ntosd-dm320/webserver/defconfig | 4 ++-- configs/nucleo-144/evalos/defconfig | 4 ++-- configs/nucleo-144/nsh/defconfig | 4 ++-- configs/nucleo-f303re/serialrx/defconfig | 4 ++-- configs/nucleo-f4x1re/f401-nsh/defconfig | 4 ++-- configs/nucleo-f4x1re/f411-nsh/defconfig | 4 ++-- configs/nucleo-l476rg/nsh/defconfig | 4 ++-- configs/olimex-efm32g880f128-stk/nsh/defconfig | 4 ++-- configs/olimex-lpc-h3131/nsh/defconfig | 4 ++-- configs/olimex-lpc1766stk/ftpc/defconfig | 4 ++-- configs/olimex-lpc1766stk/hidkbd/defconfig | 4 ++-- configs/olimex-lpc1766stk/hidmouse/defconfig | 4 ++-- configs/olimex-lpc1766stk/nettest/defconfig | 4 ++-- configs/olimex-lpc1766stk/nsh/defconfig | 4 ++-- configs/olimex-lpc1766stk/nx/defconfig | 4 ++-- configs/olimex-lpc1766stk/slip-httpd/defconfig | 4 ++-- configs/olimex-lpc1766stk/thttpd-binfs/defconfig | 4 ++-- configs/olimex-lpc1766stk/thttpd-nxflat/defconfig | 4 ++-- configs/olimex-lpc1766stk/usbmsc/defconfig | 4 ++-- configs/olimex-lpc1766stk/usbserial/defconfig | 4 ++-- configs/olimex-lpc1766stk/zmodem/defconfig | 4 ++-- configs/olimex-lpc2378/nsh/defconfig | 4 ++-- configs/olimex-stm32-h405/usbnsh/defconfig | 4 ++-- configs/olimex-stm32-h407/nsh/defconfig | 4 ++-- configs/olimex-stm32-p107/nsh/defconfig | 4 ++-- configs/olimex-stm32-p207/nsh/defconfig | 4 ++-- configs/olimex-strp711/nettest/defconfig | 4 ++-- configs/olimexino-stm32/can/defconfig | 4 ++-- configs/olimexino-stm32/composite/defconfig | 4 ++-- configs/olimexino-stm32/nsh/defconfig | 4 ++-- configs/olimexino-stm32/smallnsh/defconfig | 4 ++-- configs/olimexino-stm32/tiny/defconfig | 4 ++-- configs/open1788/knsh/defconfig | 4 ++-- configs/open1788/nsh/defconfig | 4 ++-- configs/pcblogic-pic32mx/nsh/defconfig | 4 ++-- configs/pcduino-a10/nsh/defconfig | 4 ++-- configs/pic32mx-starterkit/nsh/defconfig | 4 ++-- configs/pic32mx-starterkit/nsh2/defconfig | 4 ++-- configs/pic32mx7mmb/nsh/defconfig | 4 ++-- configs/pic32mz-starterkit/nsh/defconfig | 4 ++-- configs/pirelli_dpl10/nsh_highram/defconfig | 4 ++-- configs/qemu-i486/nsh/defconfig | 4 ++-- configs/qemu-i486/ostest/defconfig | 4 ++-- configs/rgmp/arm/default/defconfig | 4 ++-- configs/rgmp/arm/nsh/defconfig | 4 ++-- configs/rgmp/x86/cxxtest/defconfig | 4 ++-- configs/rgmp/x86/default/defconfig | 4 ++-- configs/rgmp/x86/helloxx/defconfig | 4 ++-- configs/rgmp/x86/nsh/defconfig | 4 ++-- configs/sabre-6quad/nsh/defconfig | 4 ++-- configs/sabre-6quad/smp/defconfig | 4 ++-- configs/sam3u-ek/knsh/defconfig | 4 ++-- configs/sam3u-ek/nsh/defconfig | 4 ++-- configs/sam3u-ek/nx/defconfig | 4 ++-- configs/sam3u-ek/nxwm/defconfig | 4 ++-- configs/sam4e-ek/nsh/defconfig | 4 ++-- configs/sam4e-ek/nxwm/defconfig | 4 ++-- configs/sam4e-ek/usbnsh/defconfig | 4 ++-- configs/sam4l-xplained/nsh/defconfig | 4 ++-- configs/sam4s-xplained-pro/nsh/defconfig | 4 ++-- configs/sam4s-xplained/nsh/defconfig | 4 ++-- configs/sama5d2-xult/nsh/defconfig | 4 ++-- configs/sama5d3-xplained/bridge/defconfig | 4 ++-- configs/sama5d3-xplained/nsh/defconfig | 4 ++-- configs/sama5d3x-ek/demo/defconfig | 4 ++-- configs/sama5d3x-ek/hello/defconfig | 4 ++-- configs/sama5d3x-ek/norboot/defconfig | 4 ++-- configs/sama5d3x-ek/nsh/defconfig | 4 ++-- configs/sama5d3x-ek/nx/defconfig | 4 ++-- configs/sama5d3x-ek/nxplayer/defconfig | 4 ++-- configs/sama5d3x-ek/nxwm/defconfig | 4 ++-- configs/sama5d3x-ek/ov2640/defconfig | 4 ++-- configs/sama5d4-ek/at25boot/defconfig | 4 ++-- configs/sama5d4-ek/bridge/defconfig | 4 ++-- configs/sama5d4-ek/dramboot/defconfig | 4 ++-- configs/sama5d4-ek/elf/defconfig | 4 ++-- configs/sama5d4-ek/ipv6/defconfig | 4 ++-- configs/sama5d4-ek/knsh/defconfig | 4 ++-- configs/sama5d4-ek/knsh/defconfig.ROMFS | 4 ++-- configs/sama5d4-ek/nsh/defconfig | 4 ++-- configs/sama5d4-ek/nxwm/defconfig | 4 ++-- configs/sama5d4-ek/ramtest/defconfig | 4 ++-- configs/samd20-xplained/nsh/defconfig | 4 ++-- configs/samd21-xplained/nsh/defconfig | 4 ++-- configs/same70-xplained/netnsh/defconfig | 4 ++-- configs/same70-xplained/nsh/defconfig | 4 ++-- configs/saml21-xplained/nsh/defconfig | 4 ++-- configs/samv71-xult/knsh/defconfig | 4 ++-- configs/samv71-xult/module/defconfig | 4 ++-- configs/samv71-xult/mxtxplnd/defconfig | 4 ++-- configs/samv71-xult/netnsh/defconfig | 4 ++-- configs/samv71-xult/nsh/defconfig | 4 ++-- configs/samv71-xult/nxwm/defconfig | 4 ++-- configs/samv71-xult/vnc/defconfig | 4 ++-- configs/samv71-xult/vnxwm/defconfig | 4 ++-- configs/shenzhou/nsh/defconfig | 4 ++-- configs/shenzhou/nxwm/defconfig | 4 ++-- configs/shenzhou/thttpd/defconfig | 4 ++-- configs/sim/bas/defconfig | 4 ++-- configs/sim/configdata/defconfig | 4 ++-- configs/sim/cxxtest/defconfig | 4 ++-- configs/sim/mount/defconfig | 4 ++-- configs/sim/mtdpart/defconfig | 4 ++-- configs/sim/mtdrwb/defconfig | 4 ++-- configs/sim/nettest/defconfig | 4 ++-- configs/sim/nsh/defconfig | 4 ++-- configs/sim/nsh2/defconfig | 4 ++-- configs/sim/nx/defconfig | 4 ++-- configs/sim/nx11/defconfig | 4 ++-- configs/sim/nxffs/defconfig | 4 ++-- configs/sim/nxlines/defconfig | 4 ++-- configs/sim/nxwm/defconfig | 4 ++-- configs/sim/ostest/defconfig | 4 ++-- configs/sim/pashello/defconfig | 4 ++-- configs/sim/touchscreen/defconfig | 4 ++-- configs/sim/traveler/defconfig | 4 ++-- configs/sim/udgram/defconfig | 4 ++-- configs/sim/unionfs/defconfig | 4 ++-- configs/sim/ustream/defconfig | 4 ++-- configs/spark/composite/defconfig | 4 ++-- configs/spark/nsh/defconfig | 4 ++-- configs/spark/usbmsc/defconfig | 4 ++-- configs/spark/usbnsh/defconfig | 4 ++-- configs/spark/usbserial/defconfig | 4 ++-- configs/stm3210e-eval/buttons/defconfig | 4 ++-- configs/stm3210e-eval/composite/defconfig | 4 ++-- configs/stm3210e-eval/nsh/defconfig | 4 ++-- configs/stm3210e-eval/nsh2/defconfig | 4 ++-- configs/stm3210e-eval/nx/defconfig | 4 ++-- configs/stm3210e-eval/nxterm/defconfig | 4 ++-- configs/stm3210e-eval/pm/defconfig | 4 ++-- configs/stm3210e-eval/usbmsc/defconfig | 4 ++-- configs/stm3210e-eval/usbserial/defconfig | 4 ++-- configs/stm3220g-eval/dhcpd/defconfig | 4 ++-- configs/stm3220g-eval/nettest/defconfig | 4 ++-- configs/stm3220g-eval/nsh/defconfig | 4 ++-- configs/stm3220g-eval/nsh2/defconfig | 4 ++-- configs/stm3220g-eval/nxwm/defconfig | 4 ++-- configs/stm3220g-eval/telnetd/defconfig | 4 ++-- configs/stm3240g-eval/dhcpd/defconfig | 4 ++-- configs/stm3240g-eval/discover/defconfig | 4 ++-- configs/stm3240g-eval/knxwm/defconfig | 4 ++-- configs/stm3240g-eval/nettest/defconfig | 4 ++-- configs/stm3240g-eval/nsh/defconfig | 4 ++-- configs/stm3240g-eval/nsh2/defconfig | 4 ++-- configs/stm3240g-eval/nxterm/defconfig | 4 ++-- configs/stm3240g-eval/nxwm/defconfig | 4 ++-- configs/stm3240g-eval/telnetd/defconfig | 4 ++-- configs/stm3240g-eval/webserver/defconfig | 4 ++-- configs/stm3240g-eval/xmlrpc/defconfig | 4 ++-- configs/stm32_tiny/nsh/defconfig | 4 ++-- configs/stm32_tiny/usbnsh/defconfig | 4 ++-- configs/stm32f103-minimum/nsh/defconfig | 4 ++-- configs/stm32f103-minimum/usbnsh/defconfig | 4 ++-- configs/stm32f3discovery/nsh/defconfig | 4 ++-- configs/stm32f3discovery/usbnsh/defconfig | 4 ++-- configs/stm32f411e-disco/nsh/defconfig | 4 ++-- configs/stm32f429i-disco/extflash/defconfig | 4 ++-- configs/stm32f429i-disco/lcd/defconfig | 4 ++-- configs/stm32f429i-disco/ltdc/defconfig | 4 ++-- configs/stm32f429i-disco/nsh/defconfig | 4 ++-- configs/stm32f429i-disco/usbmsc/defconfig | 4 ++-- configs/stm32f429i-disco/usbnsh/defconfig | 4 ++-- configs/stm32f4discovery/cxxtest/defconfig | 4 ++-- configs/stm32f4discovery/elf/defconfig | 4 ++-- configs/stm32f4discovery/ipv6/defconfig | 4 ++-- configs/stm32f4discovery/kostest/defconfig | 4 ++-- configs/stm32f4discovery/netnsh/defconfig | 4 ++-- configs/stm32f4discovery/nsh/defconfig | 4 ++-- configs/stm32f4discovery/nxlines/defconfig | 4 ++-- configs/stm32f4discovery/pm/defconfig | 4 ++-- configs/stm32f4discovery/posix_spawn/defconfig | 4 ++-- configs/stm32f4discovery/rgbled/defconfig | 4 ++-- configs/stm32f4discovery/usbnsh/defconfig | 4 ++-- configs/stm32f4discovery/winbuild/defconfig | 4 ++-- configs/stm32f746g-disco/knsh/defconfig | 4 ++-- configs/stm32f746g-disco/netnsh/defconfig | 4 ++-- configs/stm32f746g-disco/nsh/defconfig | 4 ++-- configs/stm32l476vg-disco/nsh/defconfig | 4 ++-- configs/stm32ldiscovery/nsh/defconfig | 4 ++-- configs/stm32vldiscovery/nsh/defconfig | 4 ++-- configs/sure-pic32mx/nsh/defconfig | 4 ++-- configs/sure-pic32mx/usbnsh/defconfig | 4 ++-- configs/teensy-2.0/hello/defconfig | 4 ++-- configs/teensy-2.0/nsh/defconfig | 4 ++-- configs/teensy-2.0/usbmsc/defconfig | 4 ++-- configs/teensy-3.x/nsh/defconfig | 4 ++-- configs/teensy-lc/nsh/defconfig | 4 ++-- configs/tm4c123g-launchpad/nsh/defconfig | 4 ++-- configs/tm4c1294-launchpad/ipv6/defconfig | 4 ++-- configs/tm4c1294-launchpad/nsh/defconfig | 4 ++-- configs/twr-k60n512/nsh/defconfig | 4 ++-- configs/u-blox-c027/nsh/defconfig | 4 ++-- configs/ubw32/nsh/defconfig | 4 ++-- configs/us7032evb1/nsh/defconfig | 4 ++-- configs/us7032evb1/ostest/defconfig | 4 ++-- configs/viewtool-stm32f107/highpri/defconfig | 4 ++-- configs/viewtool-stm32f107/netnsh/defconfig | 4 ++-- configs/viewtool-stm32f107/nsh/defconfig | 4 ++-- configs/z16f2800100zcog/nsh/defconfig | 4 ++-- configs/z8encore000zco/ostest/defconfig | 4 ++-- configs/z8f64200100kit/ostest/defconfig | 4 ++-- configs/zkit-arm-1769/hello/defconfig | 4 ++-- configs/zkit-arm-1769/nsh/defconfig | 4 ++-- configs/zkit-arm-1769/nxhello/defconfig | 4 ++-- configs/zkit-arm-1769/thttpd/defconfig | 4 ++-- configs/zp214xpa/nsh/defconfig | 4 ++-- configs/zp214xpa/nxlines/defconfig | 4 ++-- drivers/serial/Kconfig | 12 ++++++------ 301 files changed, 606 insertions(+), 606 deletions(-) diff --git a/arch/arm/src/tms570/Kconfig b/arch/arm/src/tms570/Kconfig index 81136d3e33..7c2f6a8bf8 100644 --- a/arch/arm/src/tms570/Kconfig +++ b/arch/arm/src/tms570/Kconfig @@ -88,14 +88,14 @@ config TMS570_MIBASPI1 config TMS570_SCI1 bool "Serial Communication Interface 1 (SCI1)" default n - select ARCH_HAVE_SCI1 + select SCI1_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config TMS570_SCI2 bool "Serial Communication Interface 2 (SCI2)" default n depends on TMS570_HAVE_SCI2 - select ARCH_HAVE_SCI1 + select SCI1_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS endmenu # TMS570 Peripheral Support diff --git a/arch/hc/src/m9s12/Kconfig b/arch/hc/src/m9s12/Kconfig index cd70fc9814..9e05745e49 100644 --- a/arch/hc/src/m9s12/Kconfig +++ b/arch/hc/src/m9s12/Kconfig @@ -11,12 +11,12 @@ menu "M9S12 Peripheral Selection" config HCS12_SCI0 bool "SCI0" default n - select ARCH_HAVE_SCI0 + select SCI0_SERIALDRIVER config HCS12_SCI1 bool "SCI1" default n - select ARCH_HAVE_SCI1 + select SCI1_SERIALDRIVER endmenu # M9S12 Peripheral Selection diff --git a/arch/sh/src/sh1/Kconfig b/arch/sh/src/sh1/Kconfig index f3002c3737..2d0723b42b 100644 --- a/arch/sh/src/sh1/Kconfig +++ b/arch/sh/src/sh1/Kconfig @@ -43,12 +43,12 @@ config SH1_ITU4 config SH1_SCI0 bool "SCI0" default n - select ARCH_HAVE_SCI0 + select SCI0_SERIALDRIVER config SH1_SCI1 bool "SCI1" default n - select ARCH_HAVE_SCI1 + select SCI1_SERIALDRIVER config SH1_PCU bool "PCU" diff --git a/configs/arduino-due/nsh/defconfig b/configs/arduino-due/nsh/defconfig index 8f1ac7f03f..055e577f4f 100644 --- a/configs/arduino-due/nsh/defconfig +++ b/configs/arduino-due/nsh/defconfig @@ -503,8 +503,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/arduino-mega2560/hello/defconfig b/configs/arduino-mega2560/hello/defconfig index 699bdf9a4c..617fe87591 100644 --- a/configs/arduino-mega2560/hello/defconfig +++ b/configs/arduino-mega2560/hello/defconfig @@ -311,8 +311,8 @@ CONFIG_DEV_LOWCONSOLE=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set CONFIG_USART0_SERIALDRIVER=y # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/arduino-mega2560/nsh/defconfig b/configs/arduino-mega2560/nsh/defconfig index 686f04fd16..71168ea8cc 100644 --- a/configs/arduino-mega2560/nsh/defconfig +++ b/configs/arduino-mega2560/nsh/defconfig @@ -319,8 +319,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set CONFIG_USART0_SERIALDRIVER=y # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/c5471evm/httpd/defconfig b/configs/c5471evm/httpd/defconfig index 0b5081c85d..428b65a2e9 100644 --- a/configs/c5471evm/httpd/defconfig +++ b/configs/c5471evm/httpd/defconfig @@ -358,8 +358,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/c5471evm/nettest/defconfig b/configs/c5471evm/nettest/defconfig index a27d7ff714..b64e2ea5e9 100644 --- a/configs/c5471evm/nettest/defconfig +++ b/configs/c5471evm/nettest/defconfig @@ -368,8 +368,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/c5471evm/nsh/defconfig b/configs/c5471evm/nsh/defconfig index 333af70e09..b62ed3bb8f 100644 --- a/configs/c5471evm/nsh/defconfig +++ b/configs/c5471evm/nsh/defconfig @@ -377,8 +377,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/cc3200-launchpad/nsh/defconfig b/configs/cc3200-launchpad/nsh/defconfig index f8cfc29305..68c1a21f1c 100644 --- a/configs/cc3200-launchpad/nsh/defconfig +++ b/configs/cc3200-launchpad/nsh/defconfig @@ -364,8 +364,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/cloudctrl/nsh/defconfig b/configs/cloudctrl/nsh/defconfig index 560b768c61..7f61da24a2 100644 --- a/configs/cloudctrl/nsh/defconfig +++ b/configs/cloudctrl/nsh/defconfig @@ -797,8 +797,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set CONFIG_USART2_SERIALDRIVER=y diff --git a/configs/compal_e86/nsh_highram/defconfig b/configs/compal_e86/nsh_highram/defconfig index b544ab6ec1..7ed243cfde 100644 --- a/configs/compal_e86/nsh_highram/defconfig +++ b/configs/compal_e86/nsh_highram/defconfig @@ -378,8 +378,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/compal_e88/nsh_highram/defconfig b/configs/compal_e88/nsh_highram/defconfig index 2464a2688d..f76a71ef51 100644 --- a/configs/compal_e88/nsh_highram/defconfig +++ b/configs/compal_e88/nsh_highram/defconfig @@ -378,8 +378,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/compal_e99/nsh_compalram/defconfig b/configs/compal_e99/nsh_compalram/defconfig index 449f8b8857..8eab5d6dc5 100644 --- a/configs/compal_e99/nsh_compalram/defconfig +++ b/configs/compal_e99/nsh_compalram/defconfig @@ -415,8 +415,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/compal_e99/nsh_highram/defconfig b/configs/compal_e99/nsh_highram/defconfig index 9e3b971ec3..0fb58adba8 100644 --- a/configs/compal_e99/nsh_highram/defconfig +++ b/configs/compal_e99/nsh_highram/defconfig @@ -414,8 +414,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/dk-tm4c129x/ipv6/defconfig b/configs/dk-tm4c129x/ipv6/defconfig index cb0ccc853f..8e63399fd8 100644 --- a/configs/dk-tm4c129x/ipv6/defconfig +++ b/configs/dk-tm4c129x/ipv6/defconfig @@ -500,8 +500,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/dk-tm4c129x/nsh/defconfig b/configs/dk-tm4c129x/nsh/defconfig index ff110d61cc..0ac3e10f83 100644 --- a/configs/dk-tm4c129x/nsh/defconfig +++ b/configs/dk-tm4c129x/nsh/defconfig @@ -555,8 +555,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/ea3131/nsh/defconfig b/configs/ea3131/nsh/defconfig index d6139ccd4f..847486498e 100644 --- a/configs/ea3131/nsh/defconfig +++ b/configs/ea3131/nsh/defconfig @@ -368,8 +368,8 @@ CONFIG_UART_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/ea3131/pgnsh/defconfig b/configs/ea3131/pgnsh/defconfig index 2419f3d031..dfa15b6c62 100644 --- a/configs/ea3131/pgnsh/defconfig +++ b/configs/ea3131/pgnsh/defconfig @@ -461,8 +461,8 @@ CONFIG_UART_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/ea3131/usbserial/defconfig b/configs/ea3131/usbserial/defconfig index 4457398f67..a97d60ee2b 100644 --- a/configs/ea3131/usbserial/defconfig +++ b/configs/ea3131/usbserial/defconfig @@ -441,8 +441,8 @@ CONFIG_UART_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/ea3152/ostest/defconfig b/configs/ea3152/ostest/defconfig index 6d884f2922..598fabeb5a 100644 --- a/configs/ea3152/ostest/defconfig +++ b/configs/ea3152/ostest/defconfig @@ -367,8 +367,8 @@ CONFIG_UART_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/eagle100/nettest/defconfig b/configs/eagle100/nettest/defconfig index 6addc5be13..f554a1d489 100644 --- a/configs/eagle100/nettest/defconfig +++ b/configs/eagle100/nettest/defconfig @@ -485,8 +485,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/eagle100/nsh/defconfig b/configs/eagle100/nsh/defconfig index 7ea60883f3..b94e6e0461 100644 --- a/configs/eagle100/nsh/defconfig +++ b/configs/eagle100/nsh/defconfig @@ -528,8 +528,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/eagle100/nxflat/defconfig b/configs/eagle100/nxflat/defconfig index f897159171..67b18010a4 100644 --- a/configs/eagle100/nxflat/defconfig +++ b/configs/eagle100/nxflat/defconfig @@ -335,8 +335,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/eagle100/thttpd/defconfig b/configs/eagle100/thttpd/defconfig index 9676509e6f..7ab2c55c30 100644 --- a/configs/eagle100/thttpd/defconfig +++ b/configs/eagle100/thttpd/defconfig @@ -469,8 +469,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/efm32-g8xx-stk/nsh/defconfig b/configs/efm32-g8xx-stk/nsh/defconfig index f5d1d7dc68..3dad7a2cf2 100644 --- a/configs/efm32-g8xx-stk/nsh/defconfig +++ b/configs/efm32-g8xx-stk/nsh/defconfig @@ -394,8 +394,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/efm32gg-stk3700/nsh/defconfig b/configs/efm32gg-stk3700/nsh/defconfig index 5dded8feb7..9263aa531b 100644 --- a/configs/efm32gg-stk3700/nsh/defconfig +++ b/configs/efm32gg-stk3700/nsh/defconfig @@ -421,8 +421,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/ekk-lm3s9b96/nsh/defconfig b/configs/ekk-lm3s9b96/nsh/defconfig index dd2910e1ba..fb429c82d9 100644 --- a/configs/ekk-lm3s9b96/nsh/defconfig +++ b/configs/ekk-lm3s9b96/nsh/defconfig @@ -517,8 +517,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/ez80f910200kitg/ostest/defconfig b/configs/ez80f910200kitg/ostest/defconfig index bc3c363d59..47423b1969 100644 --- a/configs/ez80f910200kitg/ostest/defconfig +++ b/configs/ez80f910200kitg/ostest/defconfig @@ -391,8 +391,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/ez80f910200zco/dhcpd/defconfig b/configs/ez80f910200zco/dhcpd/defconfig index 4eade9049c..339359e35b 100644 --- a/configs/ez80f910200zco/dhcpd/defconfig +++ b/configs/ez80f910200zco/dhcpd/defconfig @@ -437,8 +437,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/ez80f910200zco/httpd/defconfig b/configs/ez80f910200zco/httpd/defconfig index 5e742b216a..9f366c8e94 100644 --- a/configs/ez80f910200zco/httpd/defconfig +++ b/configs/ez80f910200zco/httpd/defconfig @@ -446,8 +446,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/ez80f910200zco/nettest/defconfig b/configs/ez80f910200zco/nettest/defconfig index 61eb67935b..9932c40605 100644 --- a/configs/ez80f910200zco/nettest/defconfig +++ b/configs/ez80f910200zco/nettest/defconfig @@ -438,8 +438,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/ez80f910200zco/nsh/defconfig b/configs/ez80f910200zco/nsh/defconfig index 2fe76314ca..55fc61d83a 100644 --- a/configs/ez80f910200zco/nsh/defconfig +++ b/configs/ez80f910200zco/nsh/defconfig @@ -449,8 +449,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/ez80f910200zco/poll/defconfig b/configs/ez80f910200zco/poll/defconfig index d08af59990..ae76f95db1 100644 --- a/configs/ez80f910200zco/poll/defconfig +++ b/configs/ez80f910200zco/poll/defconfig @@ -445,8 +445,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/fire-stm32v2/nsh/defconfig b/configs/fire-stm32v2/nsh/defconfig index 63a9c866de..f71b9a8731 100644 --- a/configs/fire-stm32v2/nsh/defconfig +++ b/configs/fire-stm32v2/nsh/defconfig @@ -803,8 +803,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y CONFIG_USART2_SERIALDRIVER=y diff --git a/configs/freedom-kl25z/minnsh/defconfig b/configs/freedom-kl25z/minnsh/defconfig index ffc9569d69..e4237fa901 100644 --- a/configs/freedom-kl25z/minnsh/defconfig +++ b/configs/freedom-kl25z/minnsh/defconfig @@ -363,8 +363,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/freedom-kl25z/nsh/defconfig b/configs/freedom-kl25z/nsh/defconfig index 360b6466e4..63ea83596a 100644 --- a/configs/freedom-kl25z/nsh/defconfig +++ b/configs/freedom-kl25z/nsh/defconfig @@ -395,8 +395,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/freedom-kl26z/minnsh/defconfig b/configs/freedom-kl26z/minnsh/defconfig index 7a5b12ec6b..3abb767c66 100644 --- a/configs/freedom-kl26z/minnsh/defconfig +++ b/configs/freedom-kl26z/minnsh/defconfig @@ -366,8 +366,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/freedom-kl26z/nsh/defconfig b/configs/freedom-kl26z/nsh/defconfig index bbacf933f8..9934c6b009 100644 --- a/configs/freedom-kl26z/nsh/defconfig +++ b/configs/freedom-kl26z/nsh/defconfig @@ -395,8 +395,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/hymini-stm32v/buttons/defconfig b/configs/hymini-stm32v/buttons/defconfig index 01052f0338..1bc0a8b388 100644 --- a/configs/hymini-stm32v/buttons/defconfig +++ b/configs/hymini-stm32v/buttons/defconfig @@ -687,8 +687,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/hymini-stm32v/nsh/defconfig b/configs/hymini-stm32v/nsh/defconfig index bc280bcc09..30fb74f3d3 100644 --- a/configs/hymini-stm32v/nsh/defconfig +++ b/configs/hymini-stm32v/nsh/defconfig @@ -716,8 +716,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/hymini-stm32v/nsh2/defconfig b/configs/hymini-stm32v/nsh2/defconfig index f744f1bcf2..ce7b4762c6 100644 --- a/configs/hymini-stm32v/nsh2/defconfig +++ b/configs/hymini-stm32v/nsh2/defconfig @@ -804,8 +804,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/hymini-stm32v/usbmsc/defconfig b/configs/hymini-stm32v/usbmsc/defconfig index a0344b11c0..890d4df36e 100644 --- a/configs/hymini-stm32v/usbmsc/defconfig +++ b/configs/hymini-stm32v/usbmsc/defconfig @@ -711,8 +711,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y CONFIG_USART2_SERIALDRIVER=y diff --git a/configs/hymini-stm32v/usbnsh/defconfig b/configs/hymini-stm32v/usbnsh/defconfig index 4ca6eefd68..97c6c23b87 100644 --- a/configs/hymini-stm32v/usbnsh/defconfig +++ b/configs/hymini-stm32v/usbnsh/defconfig @@ -690,8 +690,8 @@ CONFIG_SERIAL_REMOVABLE=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/hymini-stm32v/usbserial/defconfig b/configs/hymini-stm32v/usbserial/defconfig index 370d23905a..14ad5d27c1 100644 --- a/configs/hymini-stm32v/usbserial/defconfig +++ b/configs/hymini-stm32v/usbserial/defconfig @@ -696,8 +696,8 @@ CONFIG_SERIAL_REMOVABLE=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y CONFIG_USART2_SERIALDRIVER=y diff --git a/configs/kwikstik-k40/ostest/defconfig b/configs/kwikstik-k40/ostest/defconfig index 887cdbfb15..7fcef17955 100644 --- a/configs/kwikstik-k40/ostest/defconfig +++ b/configs/kwikstik-k40/ostest/defconfig @@ -430,8 +430,8 @@ CONFIG_UART5_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/launchxl-tms57004/nsh/defconfig b/configs/launchxl-tms57004/nsh/defconfig index e01a111e70..68fba8a22f 100644 --- a/configs/launchxl-tms57004/nsh/defconfig +++ b/configs/launchxl-tms57004/nsh/defconfig @@ -434,8 +434,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -CONFIG_ARCH_HAVE_SCI1=y +# CONFIG_SCI0_SERIALDRIVER is not set +CONFIG_SCI1_SERIALDRIVER=y # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/lincoln60/netnsh/defconfig b/configs/lincoln60/netnsh/defconfig index 0e2f3e21bd..692dfe06e0 100644 --- a/configs/lincoln60/netnsh/defconfig +++ b/configs/lincoln60/netnsh/defconfig @@ -512,8 +512,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/lincoln60/nsh/defconfig b/configs/lincoln60/nsh/defconfig index 57befef5a9..b0c6120ba2 100644 --- a/configs/lincoln60/nsh/defconfig +++ b/configs/lincoln60/nsh/defconfig @@ -438,8 +438,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/lincoln60/thttpd-binfs/defconfig b/configs/lincoln60/thttpd-binfs/defconfig index 2792ce50d9..023c67de2b 100644 --- a/configs/lincoln60/thttpd-binfs/defconfig +++ b/configs/lincoln60/thttpd-binfs/defconfig @@ -476,8 +476,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/lm3s6432-s2e/nsh/defconfig b/configs/lm3s6432-s2e/nsh/defconfig index 990739e446..d8ce1818da 100644 --- a/configs/lm3s6432-s2e/nsh/defconfig +++ b/configs/lm3s6432-s2e/nsh/defconfig @@ -495,8 +495,8 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/lm3s6965-ek/discover/defconfig b/configs/lm3s6965-ek/discover/defconfig index 70f2ceacf6..4c05526e5a 100644 --- a/configs/lm3s6965-ek/discover/defconfig +++ b/configs/lm3s6965-ek/discover/defconfig @@ -522,8 +522,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/lm3s6965-ek/nsh/defconfig b/configs/lm3s6965-ek/nsh/defconfig index 70f2ceacf6..4c05526e5a 100644 --- a/configs/lm3s6965-ek/nsh/defconfig +++ b/configs/lm3s6965-ek/nsh/defconfig @@ -522,8 +522,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/lm3s6965-ek/nx/defconfig b/configs/lm3s6965-ek/nx/defconfig index 4a0707155b..1730a4a79b 100644 --- a/configs/lm3s6965-ek/nx/defconfig +++ b/configs/lm3s6965-ek/nx/defconfig @@ -501,8 +501,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/lm3s6965-ek/tcpecho/defconfig b/configs/lm3s6965-ek/tcpecho/defconfig index 3d0c60e1f8..5d4fd43f58 100644 --- a/configs/lm3s6965-ek/tcpecho/defconfig +++ b/configs/lm3s6965-ek/tcpecho/defconfig @@ -491,8 +491,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/lm3s8962-ek/nsh/defconfig b/configs/lm3s8962-ek/nsh/defconfig index d6a1007367..718bc36153 100644 --- a/configs/lm3s8962-ek/nsh/defconfig +++ b/configs/lm3s8962-ek/nsh/defconfig @@ -532,8 +532,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/lm3s8962-ek/nx/defconfig b/configs/lm3s8962-ek/nx/defconfig index 057bf36624..f80ad2873a 100644 --- a/configs/lm3s8962-ek/nx/defconfig +++ b/configs/lm3s8962-ek/nx/defconfig @@ -511,8 +511,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/lm4f120-launchpad/nsh/defconfig b/configs/lm4f120-launchpad/nsh/defconfig index 40288d821e..61ff3481e3 100644 --- a/configs/lm4f120-launchpad/nsh/defconfig +++ b/configs/lm4f120-launchpad/nsh/defconfig @@ -337,8 +337,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/lpc4330-xplorer/nsh/defconfig b/configs/lpc4330-xplorer/nsh/defconfig index 19b8cb422c..dcfbf85ce0 100644 --- a/configs/lpc4330-xplorer/nsh/defconfig +++ b/configs/lpc4330-xplorer/nsh/defconfig @@ -481,8 +481,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set CONFIG_USART0_SERIALDRIVER=y # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/lpc4337-ws/nsh/defconfig b/configs/lpc4337-ws/nsh/defconfig index 87dfe487ec..a9f5f06eec 100644 --- a/configs/lpc4337-ws/nsh/defconfig +++ b/configs/lpc4337-ws/nsh/defconfig @@ -478,8 +478,8 @@ CONFIG_SERIAL_REMOVABLE=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set CONFIG_USART2_SERIALDRIVER=y diff --git a/configs/lpc4357-evb/nsh/defconfig b/configs/lpc4357-evb/nsh/defconfig index 909a4c2beb..7b1e5ff990 100644 --- a/configs/lpc4357-evb/nsh/defconfig +++ b/configs/lpc4357-evb/nsh/defconfig @@ -413,8 +413,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set CONFIG_USART0_SERIALDRIVER=y # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/lpc4370-link2/nsh/defconfig b/configs/lpc4370-link2/nsh/defconfig index 23e2063659..0ce95202d7 100644 --- a/configs/lpc4370-link2/nsh/defconfig +++ b/configs/lpc4370-link2/nsh/defconfig @@ -476,8 +476,8 @@ CONFIG_SERIAL_REMOVABLE=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set CONFIG_USART2_SERIALDRIVER=y diff --git a/configs/lpcxpresso-lpc1115/minnsh/defconfig b/configs/lpcxpresso-lpc1115/minnsh/defconfig index 39cd66dabb..7f5c43c93d 100644 --- a/configs/lpcxpresso-lpc1115/minnsh/defconfig +++ b/configs/lpcxpresso-lpc1115/minnsh/defconfig @@ -377,8 +377,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/lpcxpresso-lpc1115/nsh/defconfig b/configs/lpcxpresso-lpc1115/nsh/defconfig index 6984db8bcb..c4860e7f0b 100644 --- a/configs/lpcxpresso-lpc1115/nsh/defconfig +++ b/configs/lpcxpresso-lpc1115/nsh/defconfig @@ -395,8 +395,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/lpcxpresso-lpc1768/dhcpd/defconfig b/configs/lpcxpresso-lpc1768/dhcpd/defconfig index 4151115b1d..d37e15385b 100644 --- a/configs/lpcxpresso-lpc1768/dhcpd/defconfig +++ b/configs/lpcxpresso-lpc1768/dhcpd/defconfig @@ -467,8 +467,8 @@ CONFIG_UART3_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/lpcxpresso-lpc1768/nsh/defconfig b/configs/lpcxpresso-lpc1768/nsh/defconfig index ee1b2a0a40..058182ebba 100644 --- a/configs/lpcxpresso-lpc1768/nsh/defconfig +++ b/configs/lpcxpresso-lpc1768/nsh/defconfig @@ -547,8 +547,8 @@ CONFIG_UART3_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/lpcxpresso-lpc1768/nx/defconfig b/configs/lpcxpresso-lpc1768/nx/defconfig index 0cf87bd66f..08dbc791f6 100644 --- a/configs/lpcxpresso-lpc1768/nx/defconfig +++ b/configs/lpcxpresso-lpc1768/nx/defconfig @@ -479,8 +479,8 @@ CONFIG_UART3_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/lpcxpresso-lpc1768/thttpd/defconfig b/configs/lpcxpresso-lpc1768/thttpd/defconfig index cebf51b59a..81716029ce 100644 --- a/configs/lpcxpresso-lpc1768/thttpd/defconfig +++ b/configs/lpcxpresso-lpc1768/thttpd/defconfig @@ -467,8 +467,8 @@ CONFIG_UART3_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/lpcxpresso-lpc1768/usbmsc/defconfig b/configs/lpcxpresso-lpc1768/usbmsc/defconfig index 5f6540df37..d8ac71e382 100644 --- a/configs/lpcxpresso-lpc1768/usbmsc/defconfig +++ b/configs/lpcxpresso-lpc1768/usbmsc/defconfig @@ -457,8 +457,8 @@ CONFIG_UART3_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/maple/nsh/defconfig b/configs/maple/nsh/defconfig index 31faeb7b02..60713d080e 100644 --- a/configs/maple/nsh/defconfig +++ b/configs/maple/nsh/defconfig @@ -677,8 +677,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/maple/nx/defconfig b/configs/maple/nx/defconfig index ed2c6ebd07..2cdde37c5c 100644 --- a/configs/maple/nx/defconfig +++ b/configs/maple/nx/defconfig @@ -757,8 +757,8 @@ CONFIG_SERIAL_REMOVABLE=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/maple/usbnsh/defconfig b/configs/maple/usbnsh/defconfig index d9b397728b..c7ed7b5860 100644 --- a/configs/maple/usbnsh/defconfig +++ b/configs/maple/usbnsh/defconfig @@ -684,8 +684,8 @@ CONFIG_SERIAL_REMOVABLE=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/mbed/nsh/defconfig b/configs/mbed/nsh/defconfig index d9ee9ad706..6728bde7a9 100644 --- a/configs/mbed/nsh/defconfig +++ b/configs/mbed/nsh/defconfig @@ -463,8 +463,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/mcu123-lpc214x/composite/defconfig b/configs/mcu123-lpc214x/composite/defconfig index 2456e093f3..108cf10567 100644 --- a/configs/mcu123-lpc214x/composite/defconfig +++ b/configs/mcu123-lpc214x/composite/defconfig @@ -398,8 +398,8 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/mcu123-lpc214x/nsh/defconfig b/configs/mcu123-lpc214x/nsh/defconfig index 2784016c81..47b6cd45c7 100644 --- a/configs/mcu123-lpc214x/nsh/defconfig +++ b/configs/mcu123-lpc214x/nsh/defconfig @@ -395,8 +395,8 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/mcu123-lpc214x/usbmsc/defconfig b/configs/mcu123-lpc214x/usbmsc/defconfig index 04d11ed805..96abc9df8e 100644 --- a/configs/mcu123-lpc214x/usbmsc/defconfig +++ b/configs/mcu123-lpc214x/usbmsc/defconfig @@ -397,8 +397,8 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/mcu123-lpc214x/usbserial/defconfig b/configs/mcu123-lpc214x/usbserial/defconfig index 2fca051243..898113e10d 100644 --- a/configs/mcu123-lpc214x/usbserial/defconfig +++ b/configs/mcu123-lpc214x/usbserial/defconfig @@ -419,8 +419,8 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/mikroe-stm32f4/fulldemo/defconfig b/configs/mikroe-stm32f4/fulldemo/defconfig index 0c6031e7e0..08d47f0f40 100644 --- a/configs/mikroe-stm32f4/fulldemo/defconfig +++ b/configs/mikroe-stm32f4/fulldemo/defconfig @@ -862,8 +862,8 @@ CONFIG_SERIAL_REMOVABLE=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set CONFIG_USART2_SERIALDRIVER=y diff --git a/configs/mikroe-stm32f4/kostest/defconfig b/configs/mikroe-stm32f4/kostest/defconfig index fd27f4a643..fe8e9f4a1d 100644 --- a/configs/mikroe-stm32f4/kostest/defconfig +++ b/configs/mikroe-stm32f4/kostest/defconfig @@ -813,8 +813,8 @@ CONFIG_SERIAL_REMOVABLE=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set CONFIG_USART2_SERIALDRIVER=y diff --git a/configs/mikroe-stm32f4/nsh/defconfig b/configs/mikroe-stm32f4/nsh/defconfig index 45d5010745..edc2c365a6 100644 --- a/configs/mikroe-stm32f4/nsh/defconfig +++ b/configs/mikroe-stm32f4/nsh/defconfig @@ -780,8 +780,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set CONFIG_USART2_SERIALDRIVER=y diff --git a/configs/mikroe-stm32f4/usbnsh/defconfig b/configs/mikroe-stm32f4/usbnsh/defconfig index 4aa34401fc..de643e5698 100644 --- a/configs/mikroe-stm32f4/usbnsh/defconfig +++ b/configs/mikroe-stm32f4/usbnsh/defconfig @@ -789,8 +789,8 @@ CONFIG_SERIAL_REMOVABLE=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set CONFIG_USART2_SERIALDRIVER=y diff --git a/configs/mirtoo/nsh/defconfig b/configs/mirtoo/nsh/defconfig index 697660e53f..d88a42dddd 100644 --- a/configs/mirtoo/nsh/defconfig +++ b/configs/mirtoo/nsh/defconfig @@ -485,8 +485,8 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/mirtoo/nxffs/defconfig b/configs/mirtoo/nxffs/defconfig index a742cc5653..44cddc47c1 100644 --- a/configs/mirtoo/nxffs/defconfig +++ b/configs/mirtoo/nxffs/defconfig @@ -516,8 +516,8 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/moteino-mega/hello/defconfig b/configs/moteino-mega/hello/defconfig index 0559ddf281..8d417db847 100644 --- a/configs/moteino-mega/hello/defconfig +++ b/configs/moteino-mega/hello/defconfig @@ -284,8 +284,8 @@ CONFIG_DEV_LOWCONSOLE=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set CONFIG_USART0_SERIALDRIVER=y # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/moteino-mega/nsh/defconfig b/configs/moteino-mega/nsh/defconfig index 049fdaceee..db9a94ee27 100644 --- a/configs/moteino-mega/nsh/defconfig +++ b/configs/moteino-mega/nsh/defconfig @@ -292,8 +292,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set CONFIG_USART0_SERIALDRIVER=y # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/moxa/nsh/defconfig b/configs/moxa/nsh/defconfig index ebcc069deb..27cec2f563 100644 --- a/configs/moxa/nsh/defconfig +++ b/configs/moxa/nsh/defconfig @@ -436,8 +436,8 @@ CONFIG_16550_ADDRWIDTH=32 # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/mx1ads/ostest/defconfig b/configs/mx1ads/ostest/defconfig index 1c8596c2a7..0740d2a158 100644 --- a/configs/mx1ads/ostest/defconfig +++ b/configs/mx1ads/ostest/defconfig @@ -330,8 +330,8 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/ntosd-dm320/nettest/defconfig b/configs/ntosd-dm320/nettest/defconfig index db4141337e..36d11324ad 100644 --- a/configs/ntosd-dm320/nettest/defconfig +++ b/configs/ntosd-dm320/nettest/defconfig @@ -380,8 +380,8 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/ntosd-dm320/nsh/defconfig b/configs/ntosd-dm320/nsh/defconfig index 6a47d84cc0..073fbb5135 100644 --- a/configs/ntosd-dm320/nsh/defconfig +++ b/configs/ntosd-dm320/nsh/defconfig @@ -399,8 +399,8 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/ntosd-dm320/poll/defconfig b/configs/ntosd-dm320/poll/defconfig index be9d2f02d1..52f3cf5355 100644 --- a/configs/ntosd-dm320/poll/defconfig +++ b/configs/ntosd-dm320/poll/defconfig @@ -378,8 +378,8 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/ntosd-dm320/thttpd/defconfig b/configs/ntosd-dm320/thttpd/defconfig index 82298886e8..bf3f2ff85e 100644 --- a/configs/ntosd-dm320/thttpd/defconfig +++ b/configs/ntosd-dm320/thttpd/defconfig @@ -371,8 +371,8 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/ntosd-dm320/udp/defconfig b/configs/ntosd-dm320/udp/defconfig index bc5e976a0a..906bc57eab 100644 --- a/configs/ntosd-dm320/udp/defconfig +++ b/configs/ntosd-dm320/udp/defconfig @@ -351,8 +351,8 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/ntosd-dm320/webserver/defconfig b/configs/ntosd-dm320/webserver/defconfig index 79b76af704..aa1fb29f0f 100644 --- a/configs/ntosd-dm320/webserver/defconfig +++ b/configs/ntosd-dm320/webserver/defconfig @@ -385,8 +385,8 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/nucleo-144/evalos/defconfig b/configs/nucleo-144/evalos/defconfig index 430f32f2d5..323c32b843 100644 --- a/configs/nucleo-144/evalos/defconfig +++ b/configs/nucleo-144/evalos/defconfig @@ -509,8 +509,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/nucleo-144/nsh/defconfig b/configs/nucleo-144/nsh/defconfig index 58ce2a41ee..be5d57defb 100644 --- a/configs/nucleo-144/nsh/defconfig +++ b/configs/nucleo-144/nsh/defconfig @@ -494,8 +494,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/nucleo-f303re/serialrx/defconfig b/configs/nucleo-f303re/serialrx/defconfig index 970c8004ee..b2f9c65f6c 100644 --- a/configs/nucleo-f303re/serialrx/defconfig +++ b/configs/nucleo-f303re/serialrx/defconfig @@ -700,8 +700,8 @@ CONFIG_UART4_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/nucleo-f4x1re/f401-nsh/defconfig b/configs/nucleo-f4x1re/f401-nsh/defconfig index 2ccdf6cbd7..b9f7880c9e 100644 --- a/configs/nucleo-f4x1re/f401-nsh/defconfig +++ b/configs/nucleo-f4x1re/f401-nsh/defconfig @@ -692,8 +692,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set CONFIG_USART2_SERIALDRIVER=y diff --git a/configs/nucleo-f4x1re/f411-nsh/defconfig b/configs/nucleo-f4x1re/f411-nsh/defconfig index 769055c22c..b62b5d411a 100644 --- a/configs/nucleo-f4x1re/f411-nsh/defconfig +++ b/configs/nucleo-f4x1re/f411-nsh/defconfig @@ -694,8 +694,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set CONFIG_USART2_SERIALDRIVER=y diff --git a/configs/nucleo-l476rg/nsh/defconfig b/configs/nucleo-l476rg/nsh/defconfig index 04dab795fc..14b184e31c 100644 --- a/configs/nucleo-l476rg/nsh/defconfig +++ b/configs/nucleo-l476rg/nsh/defconfig @@ -569,8 +569,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set CONFIG_USART2_SERIALDRIVER=y diff --git a/configs/olimex-efm32g880f128-stk/nsh/defconfig b/configs/olimex-efm32g880f128-stk/nsh/defconfig index a948e40186..524d4b0d7c 100644 --- a/configs/olimex-efm32g880f128-stk/nsh/defconfig +++ b/configs/olimex-efm32g880f128-stk/nsh/defconfig @@ -384,8 +384,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/olimex-lpc-h3131/nsh/defconfig b/configs/olimex-lpc-h3131/nsh/defconfig index 79649d2920..e65269df08 100644 --- a/configs/olimex-lpc-h3131/nsh/defconfig +++ b/configs/olimex-lpc-h3131/nsh/defconfig @@ -392,8 +392,8 @@ CONFIG_UART_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/olimex-lpc1766stk/ftpc/defconfig b/configs/olimex-lpc1766stk/ftpc/defconfig index cf0bea270d..e21919a1f3 100644 --- a/configs/olimex-lpc1766stk/ftpc/defconfig +++ b/configs/olimex-lpc1766stk/ftpc/defconfig @@ -502,8 +502,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/olimex-lpc1766stk/hidkbd/defconfig b/configs/olimex-lpc1766stk/hidkbd/defconfig index dbf9f3b48f..a9ef8da7f3 100644 --- a/configs/olimex-lpc1766stk/hidkbd/defconfig +++ b/configs/olimex-lpc1766stk/hidkbd/defconfig @@ -469,8 +469,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/olimex-lpc1766stk/hidmouse/defconfig b/configs/olimex-lpc1766stk/hidmouse/defconfig index d3151ef93a..e57e77da22 100644 --- a/configs/olimex-lpc1766stk/hidmouse/defconfig +++ b/configs/olimex-lpc1766stk/hidmouse/defconfig @@ -488,8 +488,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/olimex-lpc1766stk/nettest/defconfig b/configs/olimex-lpc1766stk/nettest/defconfig index 35cdde8ad8..a91d91f81f 100644 --- a/configs/olimex-lpc1766stk/nettest/defconfig +++ b/configs/olimex-lpc1766stk/nettest/defconfig @@ -479,8 +479,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/olimex-lpc1766stk/nsh/defconfig b/configs/olimex-lpc1766stk/nsh/defconfig index 2f741db8db..e164879be5 100644 --- a/configs/olimex-lpc1766stk/nsh/defconfig +++ b/configs/olimex-lpc1766stk/nsh/defconfig @@ -544,8 +544,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/olimex-lpc1766stk/nx/defconfig b/configs/olimex-lpc1766stk/nx/defconfig index f000df87bd..d70d19013e 100644 --- a/configs/olimex-lpc1766stk/nx/defconfig +++ b/configs/olimex-lpc1766stk/nx/defconfig @@ -491,8 +491,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/olimex-lpc1766stk/slip-httpd/defconfig b/configs/olimex-lpc1766stk/slip-httpd/defconfig index bcb8539576..bd03cb2ec0 100644 --- a/configs/olimex-lpc1766stk/slip-httpd/defconfig +++ b/configs/olimex-lpc1766stk/slip-httpd/defconfig @@ -424,8 +424,8 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/olimex-lpc1766stk/thttpd-binfs/defconfig b/configs/olimex-lpc1766stk/thttpd-binfs/defconfig index 66daa865c4..50cdf97c32 100644 --- a/configs/olimex-lpc1766stk/thttpd-binfs/defconfig +++ b/configs/olimex-lpc1766stk/thttpd-binfs/defconfig @@ -476,8 +476,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/olimex-lpc1766stk/thttpd-nxflat/defconfig b/configs/olimex-lpc1766stk/thttpd-nxflat/defconfig index 0db4e7e8cd..11b75160fe 100644 --- a/configs/olimex-lpc1766stk/thttpd-nxflat/defconfig +++ b/configs/olimex-lpc1766stk/thttpd-nxflat/defconfig @@ -468,8 +468,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/olimex-lpc1766stk/usbmsc/defconfig b/configs/olimex-lpc1766stk/usbmsc/defconfig index a1ac64b46e..099ff4a478 100644 --- a/configs/olimex-lpc1766stk/usbmsc/defconfig +++ b/configs/olimex-lpc1766stk/usbmsc/defconfig @@ -459,8 +459,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/olimex-lpc1766stk/usbserial/defconfig b/configs/olimex-lpc1766stk/usbserial/defconfig index 0a2c465d5e..602ba64477 100644 --- a/configs/olimex-lpc1766stk/usbserial/defconfig +++ b/configs/olimex-lpc1766stk/usbserial/defconfig @@ -483,8 +483,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/olimex-lpc1766stk/zmodem/defconfig b/configs/olimex-lpc1766stk/zmodem/defconfig index 928202c532..f37d9bd9b7 100644 --- a/configs/olimex-lpc1766stk/zmodem/defconfig +++ b/configs/olimex-lpc1766stk/zmodem/defconfig @@ -522,8 +522,8 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/olimex-lpc2378/nsh/defconfig b/configs/olimex-lpc2378/nsh/defconfig index 7854a9e13f..19ab9c1c22 100644 --- a/configs/olimex-lpc2378/nsh/defconfig +++ b/configs/olimex-lpc2378/nsh/defconfig @@ -389,8 +389,8 @@ CONFIG_UART2_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/olimex-stm32-h405/usbnsh/defconfig b/configs/olimex-stm32-h405/usbnsh/defconfig index 0a4109abf6..2f99e5b5ef 100644 --- a/configs/olimex-stm32-h405/usbnsh/defconfig +++ b/configs/olimex-stm32-h405/usbnsh/defconfig @@ -756,8 +756,8 @@ CONFIG_SERIAL_REMOVABLE=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/olimex-stm32-h407/nsh/defconfig b/configs/olimex-stm32-h407/nsh/defconfig index 610530013a..943f669ad1 100644 --- a/configs/olimex-stm32-h407/nsh/defconfig +++ b/configs/olimex-stm32-h407/nsh/defconfig @@ -716,8 +716,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set CONFIG_USART2_SERIALDRIVER=y diff --git a/configs/olimex-stm32-p107/nsh/defconfig b/configs/olimex-stm32-p107/nsh/defconfig index 9993f8a908..cc36e4c9aa 100644 --- a/configs/olimex-stm32-p107/nsh/defconfig +++ b/configs/olimex-stm32-p107/nsh/defconfig @@ -783,8 +783,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set CONFIG_USART2_SERIALDRIVER=y diff --git a/configs/olimex-stm32-p207/nsh/defconfig b/configs/olimex-stm32-p207/nsh/defconfig index 974f003729..0b4bedc777 100644 --- a/configs/olimex-stm32-p207/nsh/defconfig +++ b/configs/olimex-stm32-p207/nsh/defconfig @@ -823,8 +823,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/olimex-strp711/nettest/defconfig b/configs/olimex-strp711/nettest/defconfig index d13d01fd19..57765e467a 100644 --- a/configs/olimex-strp711/nettest/defconfig +++ b/configs/olimex-strp711/nettest/defconfig @@ -423,8 +423,8 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/olimexino-stm32/can/defconfig b/configs/olimexino-stm32/can/defconfig index 3689d0cf69..d6a90f78e8 100644 --- a/configs/olimexino-stm32/can/defconfig +++ b/configs/olimexino-stm32/can/defconfig @@ -753,8 +753,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/olimexino-stm32/composite/defconfig b/configs/olimexino-stm32/composite/defconfig index 5a26c5ba94..afc314f795 100644 --- a/configs/olimexino-stm32/composite/defconfig +++ b/configs/olimexino-stm32/composite/defconfig @@ -755,8 +755,8 @@ CONFIG_SERIAL_REMOVABLE=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y CONFIG_USART2_SERIALDRIVER=y diff --git a/configs/olimexino-stm32/nsh/defconfig b/configs/olimexino-stm32/nsh/defconfig index bf20d3e9e9..176cd165ce 100644 --- a/configs/olimexino-stm32/nsh/defconfig +++ b/configs/olimexino-stm32/nsh/defconfig @@ -753,8 +753,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y CONFIG_USART2_SERIALDRIVER=y diff --git a/configs/olimexino-stm32/smallnsh/defconfig b/configs/olimexino-stm32/smallnsh/defconfig index 276cf5095e..715ba07e1c 100644 --- a/configs/olimexino-stm32/smallnsh/defconfig +++ b/configs/olimexino-stm32/smallnsh/defconfig @@ -731,8 +731,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/olimexino-stm32/tiny/defconfig b/configs/olimexino-stm32/tiny/defconfig index 4e0086b59a..d6a89079ed 100644 --- a/configs/olimexino-stm32/tiny/defconfig +++ b/configs/olimexino-stm32/tiny/defconfig @@ -735,8 +735,8 @@ CONFIG_DEV_LOWCONSOLE=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/open1788/knsh/defconfig b/configs/open1788/knsh/defconfig index c84f252364..566df000ae 100644 --- a/configs/open1788/knsh/defconfig +++ b/configs/open1788/knsh/defconfig @@ -436,8 +436,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/open1788/nsh/defconfig b/configs/open1788/nsh/defconfig index f8ea64019f..28e4015950 100644 --- a/configs/open1788/nsh/defconfig +++ b/configs/open1788/nsh/defconfig @@ -473,8 +473,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/pcblogic-pic32mx/nsh/defconfig b/configs/pcblogic-pic32mx/nsh/defconfig index 3b6d0c95fc..4cd4abd095 100644 --- a/configs/pcblogic-pic32mx/nsh/defconfig +++ b/configs/pcblogic-pic32mx/nsh/defconfig @@ -482,8 +482,8 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/pcduino-a10/nsh/defconfig b/configs/pcduino-a10/nsh/defconfig index 29d25b7b43..95833160ff 100644 --- a/configs/pcduino-a10/nsh/defconfig +++ b/configs/pcduino-a10/nsh/defconfig @@ -426,8 +426,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/pic32mx-starterkit/nsh/defconfig b/configs/pic32mx-starterkit/nsh/defconfig index e1f4f8d431..408aea6980 100644 --- a/configs/pic32mx-starterkit/nsh/defconfig +++ b/configs/pic32mx-starterkit/nsh/defconfig @@ -521,8 +521,8 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/pic32mx-starterkit/nsh2/defconfig b/configs/pic32mx-starterkit/nsh2/defconfig index 9ed1b576ca..bf24866800 100644 --- a/configs/pic32mx-starterkit/nsh2/defconfig +++ b/configs/pic32mx-starterkit/nsh2/defconfig @@ -580,8 +580,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/pic32mx7mmb/nsh/defconfig b/configs/pic32mx7mmb/nsh/defconfig index baeece5c14..06ad399aab 100644 --- a/configs/pic32mx7mmb/nsh/defconfig +++ b/configs/pic32mx7mmb/nsh/defconfig @@ -598,8 +598,8 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/pic32mz-starterkit/nsh/defconfig b/configs/pic32mz-starterkit/nsh/defconfig index a6cf7bee47..cf5fc571ee 100644 --- a/configs/pic32mz-starterkit/nsh/defconfig +++ b/configs/pic32mz-starterkit/nsh/defconfig @@ -448,8 +448,8 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/pirelli_dpl10/nsh_highram/defconfig b/configs/pirelli_dpl10/nsh_highram/defconfig index ac089c9eb0..4778d70e94 100644 --- a/configs/pirelli_dpl10/nsh_highram/defconfig +++ b/configs/pirelli_dpl10/nsh_highram/defconfig @@ -379,8 +379,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/qemu-i486/nsh/defconfig b/configs/qemu-i486/nsh/defconfig index 1697b7daa2..c07faea1da 100644 --- a/configs/qemu-i486/nsh/defconfig +++ b/configs/qemu-i486/nsh/defconfig @@ -274,8 +274,8 @@ CONFIG_16550_ADDRWIDTH=16 # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/qemu-i486/ostest/defconfig b/configs/qemu-i486/ostest/defconfig index ba9a6031c8..9306bec0db 100644 --- a/configs/qemu-i486/ostest/defconfig +++ b/configs/qemu-i486/ostest/defconfig @@ -252,8 +252,8 @@ CONFIG_DEV_LOWCONSOLE=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/rgmp/arm/default/defconfig b/configs/rgmp/arm/default/defconfig index c3117826e8..4b1bf3a25c 100644 --- a/configs/rgmp/arm/default/defconfig +++ b/configs/rgmp/arm/default/defconfig @@ -253,8 +253,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/rgmp/arm/nsh/defconfig b/configs/rgmp/arm/nsh/defconfig index 7b010856d4..1d9e173740 100644 --- a/configs/rgmp/arm/nsh/defconfig +++ b/configs/rgmp/arm/nsh/defconfig @@ -275,8 +275,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/rgmp/x86/cxxtest/defconfig b/configs/rgmp/x86/cxxtest/defconfig index 6121d739b7..40ff45293e 100644 --- a/configs/rgmp/x86/cxxtest/defconfig +++ b/configs/rgmp/x86/cxxtest/defconfig @@ -282,8 +282,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/rgmp/x86/default/defconfig b/configs/rgmp/x86/default/defconfig index 36d2a1cd57..6f10a9ed0e 100644 --- a/configs/rgmp/x86/default/defconfig +++ b/configs/rgmp/x86/default/defconfig @@ -261,8 +261,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/rgmp/x86/helloxx/defconfig b/configs/rgmp/x86/helloxx/defconfig index 38e9afa7b8..039dd3aa9c 100644 --- a/configs/rgmp/x86/helloxx/defconfig +++ b/configs/rgmp/x86/helloxx/defconfig @@ -282,8 +282,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/rgmp/x86/nsh/defconfig b/configs/rgmp/x86/nsh/defconfig index 0fa2a81cad..8723d56a26 100644 --- a/configs/rgmp/x86/nsh/defconfig +++ b/configs/rgmp/x86/nsh/defconfig @@ -283,8 +283,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sabre-6quad/nsh/defconfig b/configs/sabre-6quad/nsh/defconfig index 37b50600d1..8c472fa229 100644 --- a/configs/sabre-6quad/nsh/defconfig +++ b/configs/sabre-6quad/nsh/defconfig @@ -438,8 +438,8 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sabre-6quad/smp/defconfig b/configs/sabre-6quad/smp/defconfig index 5589e2b8e5..0510953598 100644 --- a/configs/sabre-6quad/smp/defconfig +++ b/configs/sabre-6quad/smp/defconfig @@ -445,8 +445,8 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sam3u-ek/knsh/defconfig b/configs/sam3u-ek/knsh/defconfig index e7fe62d326..0eaebc98d9 100644 --- a/configs/sam3u-ek/knsh/defconfig +++ b/configs/sam3u-ek/knsh/defconfig @@ -514,8 +514,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sam3u-ek/nsh/defconfig b/configs/sam3u-ek/nsh/defconfig index 8b8539fbe6..b1a45954cb 100644 --- a/configs/sam3u-ek/nsh/defconfig +++ b/configs/sam3u-ek/nsh/defconfig @@ -501,8 +501,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sam3u-ek/nx/defconfig b/configs/sam3u-ek/nx/defconfig index a1600a0af7..f06159d02a 100644 --- a/configs/sam3u-ek/nx/defconfig +++ b/configs/sam3u-ek/nx/defconfig @@ -528,8 +528,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sam3u-ek/nxwm/defconfig b/configs/sam3u-ek/nxwm/defconfig index a54d9855ea..e2fa3696f3 100644 --- a/configs/sam3u-ek/nxwm/defconfig +++ b/configs/sam3u-ek/nxwm/defconfig @@ -574,8 +574,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sam4e-ek/nsh/defconfig b/configs/sam4e-ek/nsh/defconfig index 96fee2f93e..aa4890172f 100644 --- a/configs/sam4e-ek/nsh/defconfig +++ b/configs/sam4e-ek/nsh/defconfig @@ -628,8 +628,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sam4e-ek/nxwm/defconfig b/configs/sam4e-ek/nxwm/defconfig index ad20ed9b27..4959ca9de8 100644 --- a/configs/sam4e-ek/nxwm/defconfig +++ b/configs/sam4e-ek/nxwm/defconfig @@ -691,8 +691,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sam4e-ek/usbnsh/defconfig b/configs/sam4e-ek/usbnsh/defconfig index da91c94278..0f89e255f5 100644 --- a/configs/sam4e-ek/usbnsh/defconfig +++ b/configs/sam4e-ek/usbnsh/defconfig @@ -629,8 +629,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sam4l-xplained/nsh/defconfig b/configs/sam4l-xplained/nsh/defconfig index cecd76ab42..553ddcdc18 100644 --- a/configs/sam4l-xplained/nsh/defconfig +++ b/configs/sam4l-xplained/nsh/defconfig @@ -517,8 +517,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set CONFIG_USART0_SERIALDRIVER=y # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sam4s-xplained-pro/nsh/defconfig b/configs/sam4s-xplained-pro/nsh/defconfig index af17a05fda..46f51cfada 100644 --- a/configs/sam4s-xplained-pro/nsh/defconfig +++ b/configs/sam4s-xplained-pro/nsh/defconfig @@ -569,8 +569,8 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sam4s-xplained/nsh/defconfig b/configs/sam4s-xplained/nsh/defconfig index 18a8ec4d02..dc05d24c73 100644 --- a/configs/sam4s-xplained/nsh/defconfig +++ b/configs/sam4s-xplained/nsh/defconfig @@ -497,8 +497,8 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sama5d2-xult/nsh/defconfig b/configs/sama5d2-xult/nsh/defconfig index 7893e51a28..fd229275c7 100644 --- a/configs/sama5d2-xult/nsh/defconfig +++ b/configs/sama5d2-xult/nsh/defconfig @@ -581,8 +581,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sama5d3-xplained/bridge/defconfig b/configs/sama5d3-xplained/bridge/defconfig index 9cefd6afeb..6d86e70c68 100644 --- a/configs/sama5d3-xplained/bridge/defconfig +++ b/configs/sama5d3-xplained/bridge/defconfig @@ -616,8 +616,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sama5d3-xplained/nsh/defconfig b/configs/sama5d3-xplained/nsh/defconfig index 825e946d98..115d6e3656 100644 --- a/configs/sama5d3-xplained/nsh/defconfig +++ b/configs/sama5d3-xplained/nsh/defconfig @@ -535,8 +535,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sama5d3x-ek/demo/defconfig b/configs/sama5d3x-ek/demo/defconfig index a92b8fad16..3a86883eb8 100644 --- a/configs/sama5d3x-ek/demo/defconfig +++ b/configs/sama5d3x-ek/demo/defconfig @@ -658,8 +658,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sama5d3x-ek/hello/defconfig b/configs/sama5d3x-ek/hello/defconfig index 393022cfbf..5d871d1007 100644 --- a/configs/sama5d3x-ek/hello/defconfig +++ b/configs/sama5d3x-ek/hello/defconfig @@ -516,8 +516,8 @@ CONFIG_DEV_LOWCONSOLE=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sama5d3x-ek/norboot/defconfig b/configs/sama5d3x-ek/norboot/defconfig index bc201be403..cce692fb1d 100644 --- a/configs/sama5d3x-ek/norboot/defconfig +++ b/configs/sama5d3x-ek/norboot/defconfig @@ -530,8 +530,8 @@ CONFIG_DEV_LOWCONSOLE=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sama5d3x-ek/nsh/defconfig b/configs/sama5d3x-ek/nsh/defconfig index b6ab3ff277..28f18bd96d 100644 --- a/configs/sama5d3x-ek/nsh/defconfig +++ b/configs/sama5d3x-ek/nsh/defconfig @@ -534,8 +534,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sama5d3x-ek/nx/defconfig b/configs/sama5d3x-ek/nx/defconfig index 35d5109455..e46a827069 100644 --- a/configs/sama5d3x-ek/nx/defconfig +++ b/configs/sama5d3x-ek/nx/defconfig @@ -575,8 +575,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sama5d3x-ek/nxplayer/defconfig b/configs/sama5d3x-ek/nxplayer/defconfig index 72e592a3a1..bce0c754f6 100644 --- a/configs/sama5d3x-ek/nxplayer/defconfig +++ b/configs/sama5d3x-ek/nxplayer/defconfig @@ -633,8 +633,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sama5d3x-ek/nxwm/defconfig b/configs/sama5d3x-ek/nxwm/defconfig index 8688b8e953..7bae2315f2 100644 --- a/configs/sama5d3x-ek/nxwm/defconfig +++ b/configs/sama5d3x-ek/nxwm/defconfig @@ -633,8 +633,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sama5d3x-ek/ov2640/defconfig b/configs/sama5d3x-ek/ov2640/defconfig index 20d173a31b..87234c64cd 100644 --- a/configs/sama5d3x-ek/ov2640/defconfig +++ b/configs/sama5d3x-ek/ov2640/defconfig @@ -601,8 +601,8 @@ CONFIG_DEV_LOWCONSOLE=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sama5d4-ek/at25boot/defconfig b/configs/sama5d4-ek/at25boot/defconfig index f794e3e6c6..974fe6c01b 100644 --- a/configs/sama5d4-ek/at25boot/defconfig +++ b/configs/sama5d4-ek/at25boot/defconfig @@ -594,8 +594,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sama5d4-ek/bridge/defconfig b/configs/sama5d4-ek/bridge/defconfig index c04c989333..b597cfd080 100644 --- a/configs/sama5d4-ek/bridge/defconfig +++ b/configs/sama5d4-ek/bridge/defconfig @@ -634,8 +634,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sama5d4-ek/dramboot/defconfig b/configs/sama5d4-ek/dramboot/defconfig index 4510891208..23d90c581f 100644 --- a/configs/sama5d4-ek/dramboot/defconfig +++ b/configs/sama5d4-ek/dramboot/defconfig @@ -551,8 +551,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sama5d4-ek/elf/defconfig b/configs/sama5d4-ek/elf/defconfig index 57bb83cdd8..0e86c3b169 100644 --- a/configs/sama5d4-ek/elf/defconfig +++ b/configs/sama5d4-ek/elf/defconfig @@ -577,8 +577,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sama5d4-ek/ipv6/defconfig b/configs/sama5d4-ek/ipv6/defconfig index 934280c1c0..810e9f32a3 100644 --- a/configs/sama5d4-ek/ipv6/defconfig +++ b/configs/sama5d4-ek/ipv6/defconfig @@ -778,8 +778,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sama5d4-ek/knsh/defconfig b/configs/sama5d4-ek/knsh/defconfig index 3d33b0462a..7a3486bea8 100644 --- a/configs/sama5d4-ek/knsh/defconfig +++ b/configs/sama5d4-ek/knsh/defconfig @@ -606,8 +606,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sama5d4-ek/knsh/defconfig.ROMFS b/configs/sama5d4-ek/knsh/defconfig.ROMFS index bbac9a1dcb..bdfbc4f2d3 100644 --- a/configs/sama5d4-ek/knsh/defconfig.ROMFS +++ b/configs/sama5d4-ek/knsh/defconfig.ROMFS @@ -497,8 +497,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sama5d4-ek/nsh/defconfig b/configs/sama5d4-ek/nsh/defconfig index 08dc7be1ab..4f59fa7ada 100644 --- a/configs/sama5d4-ek/nsh/defconfig +++ b/configs/sama5d4-ek/nsh/defconfig @@ -780,8 +780,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sama5d4-ek/nxwm/defconfig b/configs/sama5d4-ek/nxwm/defconfig index 4dfe631ca3..f840a9f9dc 100644 --- a/configs/sama5d4-ek/nxwm/defconfig +++ b/configs/sama5d4-ek/nxwm/defconfig @@ -749,8 +749,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sama5d4-ek/ramtest/defconfig b/configs/sama5d4-ek/ramtest/defconfig index ae7d2e4d67..153037793a 100644 --- a/configs/sama5d4-ek/ramtest/defconfig +++ b/configs/sama5d4-ek/ramtest/defconfig @@ -551,8 +551,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/samd20-xplained/nsh/defconfig b/configs/samd20-xplained/nsh/defconfig index 359fc49fb3..6e03c08e36 100644 --- a/configs/samd20-xplained/nsh/defconfig +++ b/configs/samd20-xplained/nsh/defconfig @@ -480,8 +480,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/samd21-xplained/nsh/defconfig b/configs/samd21-xplained/nsh/defconfig index 753a30265a..0ce38b45a5 100644 --- a/configs/samd21-xplained/nsh/defconfig +++ b/configs/samd21-xplained/nsh/defconfig @@ -478,8 +478,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/same70-xplained/netnsh/defconfig b/configs/same70-xplained/netnsh/defconfig index ada7ceb789..af584036e9 100644 --- a/configs/same70-xplained/netnsh/defconfig +++ b/configs/same70-xplained/netnsh/defconfig @@ -665,8 +665,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/same70-xplained/nsh/defconfig b/configs/same70-xplained/nsh/defconfig index b04376bc5d..cfdfa0d664 100644 --- a/configs/same70-xplained/nsh/defconfig +++ b/configs/same70-xplained/nsh/defconfig @@ -607,8 +607,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/saml21-xplained/nsh/defconfig b/configs/saml21-xplained/nsh/defconfig index 2f9609e430..5c7b2554ef 100644 --- a/configs/saml21-xplained/nsh/defconfig +++ b/configs/saml21-xplained/nsh/defconfig @@ -466,8 +466,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/samv71-xult/knsh/defconfig b/configs/samv71-xult/knsh/defconfig index 078127832f..0a81b36de3 100644 --- a/configs/samv71-xult/knsh/defconfig +++ b/configs/samv71-xult/knsh/defconfig @@ -622,8 +622,8 @@ CONFIG_UART3_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/samv71-xult/module/defconfig b/configs/samv71-xult/module/defconfig index e022ebc0e8..24cbcbf921 100644 --- a/configs/samv71-xult/module/defconfig +++ b/configs/samv71-xult/module/defconfig @@ -538,8 +538,8 @@ CONFIG_UART3_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/samv71-xult/mxtxplnd/defconfig b/configs/samv71-xult/mxtxplnd/defconfig index d36f48f7ed..8bf035722d 100644 --- a/configs/samv71-xult/mxtxplnd/defconfig +++ b/configs/samv71-xult/mxtxplnd/defconfig @@ -655,8 +655,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set CONFIG_USART0_SERIALDRIVER=y # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/samv71-xult/netnsh/defconfig b/configs/samv71-xult/netnsh/defconfig index 6fc46547dc..2679a4e87d 100644 --- a/configs/samv71-xult/netnsh/defconfig +++ b/configs/samv71-xult/netnsh/defconfig @@ -674,8 +674,8 @@ CONFIG_UART3_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/samv71-xult/nsh/defconfig b/configs/samv71-xult/nsh/defconfig index 60b92c16c2..9928909cc2 100644 --- a/configs/samv71-xult/nsh/defconfig +++ b/configs/samv71-xult/nsh/defconfig @@ -615,8 +615,8 @@ CONFIG_UART3_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/samv71-xult/nxwm/defconfig b/configs/samv71-xult/nxwm/defconfig index a3ebb46163..2219025898 100644 --- a/configs/samv71-xult/nxwm/defconfig +++ b/configs/samv71-xult/nxwm/defconfig @@ -664,8 +664,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set CONFIG_USART0_SERIALDRIVER=y # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/samv71-xult/vnc/defconfig b/configs/samv71-xult/vnc/defconfig index 9f1e549369..10e81a69c0 100644 --- a/configs/samv71-xult/vnc/defconfig +++ b/configs/samv71-xult/vnc/defconfig @@ -676,8 +676,8 @@ CONFIG_UART3_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/samv71-xult/vnxwm/defconfig b/configs/samv71-xult/vnxwm/defconfig index 59a939cf35..f8da5a4d2a 100644 --- a/configs/samv71-xult/vnxwm/defconfig +++ b/configs/samv71-xult/vnxwm/defconfig @@ -679,8 +679,8 @@ CONFIG_UART3_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/shenzhou/nsh/defconfig b/configs/shenzhou/nsh/defconfig index d988aad65c..a898e892fa 100644 --- a/configs/shenzhou/nsh/defconfig +++ b/configs/shenzhou/nsh/defconfig @@ -784,8 +784,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set CONFIG_USART2_SERIALDRIVER=y diff --git a/configs/shenzhou/nxwm/defconfig b/configs/shenzhou/nxwm/defconfig index 52d394d213..1a65817255 100644 --- a/configs/shenzhou/nxwm/defconfig +++ b/configs/shenzhou/nxwm/defconfig @@ -853,8 +853,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set CONFIG_USART2_SERIALDRIVER=y diff --git a/configs/shenzhou/thttpd/defconfig b/configs/shenzhou/thttpd/defconfig index 5d2e333dc6..8d2906964b 100644 --- a/configs/shenzhou/thttpd/defconfig +++ b/configs/shenzhou/thttpd/defconfig @@ -836,8 +836,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set CONFIG_USART2_SERIALDRIVER=y diff --git a/configs/sim/bas/defconfig b/configs/sim/bas/defconfig index daa4ea4f31..10612b3dc0 100644 --- a/configs/sim/bas/defconfig +++ b/configs/sim/bas/defconfig @@ -315,8 +315,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sim/configdata/defconfig b/configs/sim/configdata/defconfig index 81475d2d93..0314587f0e 100644 --- a/configs/sim/configdata/defconfig +++ b/configs/sim/configdata/defconfig @@ -336,8 +336,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sim/cxxtest/defconfig b/configs/sim/cxxtest/defconfig index b2f14fb3b9..e924e7800e 100644 --- a/configs/sim/cxxtest/defconfig +++ b/configs/sim/cxxtest/defconfig @@ -327,8 +327,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sim/mount/defconfig b/configs/sim/mount/defconfig index f151a10b85..5c4eb1d6e0 100644 --- a/configs/sim/mount/defconfig +++ b/configs/sim/mount/defconfig @@ -326,8 +326,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sim/mtdpart/defconfig b/configs/sim/mtdpart/defconfig index df76ef4111..a328762747 100644 --- a/configs/sim/mtdpart/defconfig +++ b/configs/sim/mtdpart/defconfig @@ -334,8 +334,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sim/mtdrwb/defconfig b/configs/sim/mtdrwb/defconfig index 92d0bfd621..571f18533a 100644 --- a/configs/sim/mtdrwb/defconfig +++ b/configs/sim/mtdrwb/defconfig @@ -365,8 +365,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sim/nettest/defconfig b/configs/sim/nettest/defconfig index 305269f893..3af47e06be 100644 --- a/configs/sim/nettest/defconfig +++ b/configs/sim/nettest/defconfig @@ -318,8 +318,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sim/nsh/defconfig b/configs/sim/nsh/defconfig index 5067c23a64..4e902cdd97 100644 --- a/configs/sim/nsh/defconfig +++ b/configs/sim/nsh/defconfig @@ -324,8 +324,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sim/nsh2/defconfig b/configs/sim/nsh2/defconfig index ed8380416f..bc5284cbb9 100644 --- a/configs/sim/nsh2/defconfig +++ b/configs/sim/nsh2/defconfig @@ -324,8 +324,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sim/nx/defconfig b/configs/sim/nx/defconfig index 35d4a84ed5..d5916dcf3f 100644 --- a/configs/sim/nx/defconfig +++ b/configs/sim/nx/defconfig @@ -330,8 +330,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sim/nx11/defconfig b/configs/sim/nx11/defconfig index 11e8473d37..0294810ce6 100644 --- a/configs/sim/nx11/defconfig +++ b/configs/sim/nx11/defconfig @@ -331,8 +331,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sim/nxffs/defconfig b/configs/sim/nxffs/defconfig index fce0478ae3..ef9da62a03 100644 --- a/configs/sim/nxffs/defconfig +++ b/configs/sim/nxffs/defconfig @@ -311,8 +311,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sim/nxlines/defconfig b/configs/sim/nxlines/defconfig index c921a10a0f..f5203f2eab 100644 --- a/configs/sim/nxlines/defconfig +++ b/configs/sim/nxlines/defconfig @@ -322,8 +322,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sim/nxwm/defconfig b/configs/sim/nxwm/defconfig index 2037940da5..8742564c7f 100644 --- a/configs/sim/nxwm/defconfig +++ b/configs/sim/nxwm/defconfig @@ -321,8 +321,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sim/ostest/defconfig b/configs/sim/ostest/defconfig index 166607d4f0..f61883db30 100644 --- a/configs/sim/ostest/defconfig +++ b/configs/sim/ostest/defconfig @@ -338,8 +338,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sim/pashello/defconfig b/configs/sim/pashello/defconfig index 8f880a0c6a..14ec247fe3 100644 --- a/configs/sim/pashello/defconfig +++ b/configs/sim/pashello/defconfig @@ -303,8 +303,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sim/touchscreen/defconfig b/configs/sim/touchscreen/defconfig index 4750be15be..81427b8052 100644 --- a/configs/sim/touchscreen/defconfig +++ b/configs/sim/touchscreen/defconfig @@ -353,8 +353,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sim/traveler/defconfig b/configs/sim/traveler/defconfig index 6a0a1c5ac8..cd2c8b1874 100644 --- a/configs/sim/traveler/defconfig +++ b/configs/sim/traveler/defconfig @@ -345,8 +345,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sim/udgram/defconfig b/configs/sim/udgram/defconfig index 4c5e753eb7..763bdaa487 100644 --- a/configs/sim/udgram/defconfig +++ b/configs/sim/udgram/defconfig @@ -330,8 +330,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sim/unionfs/defconfig b/configs/sim/unionfs/defconfig index 73dfebeb47..f11a56efe5 100644 --- a/configs/sim/unionfs/defconfig +++ b/configs/sim/unionfs/defconfig @@ -315,8 +315,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sim/ustream/defconfig b/configs/sim/ustream/defconfig index b472d6a8f0..474aa994af 100644 --- a/configs/sim/ustream/defconfig +++ b/configs/sim/ustream/defconfig @@ -330,8 +330,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/spark/composite/defconfig b/configs/spark/composite/defconfig index 2017b44a54..d78c09d01c 100644 --- a/configs/spark/composite/defconfig +++ b/configs/spark/composite/defconfig @@ -742,8 +742,8 @@ CONFIG_SERIAL_REMOVABLE=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set CONFIG_USART2_SERIALDRIVER=y diff --git a/configs/spark/nsh/defconfig b/configs/spark/nsh/defconfig index 832d2f8340..53e251c717 100644 --- a/configs/spark/nsh/defconfig +++ b/configs/spark/nsh/defconfig @@ -741,8 +741,8 @@ CONFIG_SERIAL_REMOVABLE=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set CONFIG_USART2_SERIALDRIVER=y diff --git a/configs/spark/usbmsc/defconfig b/configs/spark/usbmsc/defconfig index c14ce6e146..7c4e8c62fc 100644 --- a/configs/spark/usbmsc/defconfig +++ b/configs/spark/usbmsc/defconfig @@ -741,8 +741,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set CONFIG_USART2_SERIALDRIVER=y diff --git a/configs/spark/usbnsh/defconfig b/configs/spark/usbnsh/defconfig index 092d3ce14c..eb2d2eea5a 100644 --- a/configs/spark/usbnsh/defconfig +++ b/configs/spark/usbnsh/defconfig @@ -735,8 +735,8 @@ CONFIG_SERIAL_REMOVABLE=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set CONFIG_USART2_SERIALDRIVER=y diff --git a/configs/spark/usbserial/defconfig b/configs/spark/usbserial/defconfig index dd208ba655..41c0c1fa21 100644 --- a/configs/spark/usbserial/defconfig +++ b/configs/spark/usbserial/defconfig @@ -739,8 +739,8 @@ CONFIG_SERIAL_REMOVABLE=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set CONFIG_USART2_SERIALDRIVER=y diff --git a/configs/stm3210e-eval/buttons/defconfig b/configs/stm3210e-eval/buttons/defconfig index 880b514594..e6848e1f89 100644 --- a/configs/stm3210e-eval/buttons/defconfig +++ b/configs/stm3210e-eval/buttons/defconfig @@ -688,8 +688,8 @@ CONFIG_DEV_LOWCONSOLE=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y CONFIG_USART2_SERIALDRIVER=y diff --git a/configs/stm3210e-eval/composite/defconfig b/configs/stm3210e-eval/composite/defconfig index a761750e93..3420565c80 100644 --- a/configs/stm3210e-eval/composite/defconfig +++ b/configs/stm3210e-eval/composite/defconfig @@ -761,8 +761,8 @@ CONFIG_SERIAL_REMOVABLE=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y CONFIG_USART2_SERIALDRIVER=y diff --git a/configs/stm3210e-eval/nsh/defconfig b/configs/stm3210e-eval/nsh/defconfig index 72e8afbf55..9bb9a5f3bc 100644 --- a/configs/stm3210e-eval/nsh/defconfig +++ b/configs/stm3210e-eval/nsh/defconfig @@ -763,8 +763,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y CONFIG_USART2_SERIALDRIVER=y diff --git a/configs/stm3210e-eval/nsh2/defconfig b/configs/stm3210e-eval/nsh2/defconfig index bea335e87c..66b8badc40 100644 --- a/configs/stm3210e-eval/nsh2/defconfig +++ b/configs/stm3210e-eval/nsh2/defconfig @@ -820,8 +820,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y CONFIG_USART2_SERIALDRIVER=y diff --git a/configs/stm3210e-eval/nx/defconfig b/configs/stm3210e-eval/nx/defconfig index dc3fb2cad4..ee313594ee 100644 --- a/configs/stm3210e-eval/nx/defconfig +++ b/configs/stm3210e-eval/nx/defconfig @@ -758,8 +758,8 @@ CONFIG_DEV_LOWCONSOLE=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y CONFIG_USART2_SERIALDRIVER=y diff --git a/configs/stm3210e-eval/nxterm/defconfig b/configs/stm3210e-eval/nxterm/defconfig index a6bb105a7d..3faf96f681 100644 --- a/configs/stm3210e-eval/nxterm/defconfig +++ b/configs/stm3210e-eval/nxterm/defconfig @@ -754,8 +754,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y CONFIG_USART2_SERIALDRIVER=y diff --git a/configs/stm3210e-eval/pm/defconfig b/configs/stm3210e-eval/pm/defconfig index b223543cf2..baf09a83e3 100644 --- a/configs/stm3210e-eval/pm/defconfig +++ b/configs/stm3210e-eval/pm/defconfig @@ -795,8 +795,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y CONFIG_USART2_SERIALDRIVER=y diff --git a/configs/stm3210e-eval/usbmsc/defconfig b/configs/stm3210e-eval/usbmsc/defconfig index 0e76ab79e3..b04190c61b 100644 --- a/configs/stm3210e-eval/usbmsc/defconfig +++ b/configs/stm3210e-eval/usbmsc/defconfig @@ -726,8 +726,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y CONFIG_USART2_SERIALDRIVER=y diff --git a/configs/stm3210e-eval/usbserial/defconfig b/configs/stm3210e-eval/usbserial/defconfig index 00edca0939..b407c244d4 100644 --- a/configs/stm3210e-eval/usbserial/defconfig +++ b/configs/stm3210e-eval/usbserial/defconfig @@ -702,8 +702,8 @@ CONFIG_SERIAL_REMOVABLE=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y CONFIG_USART2_SERIALDRIVER=y diff --git a/configs/stm3220g-eval/dhcpd/defconfig b/configs/stm3220g-eval/dhcpd/defconfig index 5c7abf1390..c16e35a82b 100644 --- a/configs/stm3220g-eval/dhcpd/defconfig +++ b/configs/stm3220g-eval/dhcpd/defconfig @@ -755,8 +755,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/stm3220g-eval/nettest/defconfig b/configs/stm3220g-eval/nettest/defconfig index cb3f384c6d..93d3dece48 100644 --- a/configs/stm3220g-eval/nettest/defconfig +++ b/configs/stm3220g-eval/nettest/defconfig @@ -756,8 +756,8 @@ CONFIG_DEV_LOWCONSOLE=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/stm3220g-eval/nsh/defconfig b/configs/stm3220g-eval/nsh/defconfig index 8cddd5856d..cb9c296fd2 100644 --- a/configs/stm3220g-eval/nsh/defconfig +++ b/configs/stm3220g-eval/nsh/defconfig @@ -820,8 +820,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/stm3220g-eval/nsh2/defconfig b/configs/stm3220g-eval/nsh2/defconfig index 4b8dc9d26a..9f97e87db8 100644 --- a/configs/stm3220g-eval/nsh2/defconfig +++ b/configs/stm3220g-eval/nsh2/defconfig @@ -844,8 +844,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/stm3220g-eval/nxwm/defconfig b/configs/stm3220g-eval/nxwm/defconfig index 83d5ad3cfb..15aef8b8ae 100644 --- a/configs/stm3220g-eval/nxwm/defconfig +++ b/configs/stm3220g-eval/nxwm/defconfig @@ -870,8 +870,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/stm3220g-eval/telnetd/defconfig b/configs/stm3220g-eval/telnetd/defconfig index e2646636d2..e0415e6c86 100644 --- a/configs/stm3220g-eval/telnetd/defconfig +++ b/configs/stm3220g-eval/telnetd/defconfig @@ -758,8 +758,8 @@ CONFIG_DEV_LOWCONSOLE=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/stm3240g-eval/dhcpd/defconfig b/configs/stm3240g-eval/dhcpd/defconfig index 92fedaad82..c35e27000d 100644 --- a/configs/stm3240g-eval/dhcpd/defconfig +++ b/configs/stm3240g-eval/dhcpd/defconfig @@ -764,8 +764,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/stm3240g-eval/discover/defconfig b/configs/stm3240g-eval/discover/defconfig index 09ce521bc3..31a1892156 100644 --- a/configs/stm3240g-eval/discover/defconfig +++ b/configs/stm3240g-eval/discover/defconfig @@ -787,8 +787,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/stm3240g-eval/knxwm/defconfig b/configs/stm3240g-eval/knxwm/defconfig index 57eab71c04..061aac6b43 100644 --- a/configs/stm3240g-eval/knxwm/defconfig +++ b/configs/stm3240g-eval/knxwm/defconfig @@ -822,8 +822,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/stm3240g-eval/nettest/defconfig b/configs/stm3240g-eval/nettest/defconfig index df9870a268..610ca1be31 100644 --- a/configs/stm3240g-eval/nettest/defconfig +++ b/configs/stm3240g-eval/nettest/defconfig @@ -765,8 +765,8 @@ CONFIG_DEV_LOWCONSOLE=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/stm3240g-eval/nsh/defconfig b/configs/stm3240g-eval/nsh/defconfig index ce573b143c..2c196aef7c 100644 --- a/configs/stm3240g-eval/nsh/defconfig +++ b/configs/stm3240g-eval/nsh/defconfig @@ -807,8 +807,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/stm3240g-eval/nsh2/defconfig b/configs/stm3240g-eval/nsh2/defconfig index 51dcd6eab3..f187f1f3e2 100644 --- a/configs/stm3240g-eval/nsh2/defconfig +++ b/configs/stm3240g-eval/nsh2/defconfig @@ -854,8 +854,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/stm3240g-eval/nxterm/defconfig b/configs/stm3240g-eval/nxterm/defconfig index 638f5507b3..1f7313510c 100644 --- a/configs/stm3240g-eval/nxterm/defconfig +++ b/configs/stm3240g-eval/nxterm/defconfig @@ -845,8 +845,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/stm3240g-eval/nxwm/defconfig b/configs/stm3240g-eval/nxwm/defconfig index f0b962f1e2..eb8cd41b88 100644 --- a/configs/stm3240g-eval/nxwm/defconfig +++ b/configs/stm3240g-eval/nxwm/defconfig @@ -872,8 +872,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/stm3240g-eval/telnetd/defconfig b/configs/stm3240g-eval/telnetd/defconfig index 04adbfe745..89a9e56811 100644 --- a/configs/stm3240g-eval/telnetd/defconfig +++ b/configs/stm3240g-eval/telnetd/defconfig @@ -767,8 +767,8 @@ CONFIG_DEV_LOWCONSOLE=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/stm3240g-eval/webserver/defconfig b/configs/stm3240g-eval/webserver/defconfig index d5198e478a..3a354ffe1e 100644 --- a/configs/stm3240g-eval/webserver/defconfig +++ b/configs/stm3240g-eval/webserver/defconfig @@ -824,8 +824,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/stm3240g-eval/xmlrpc/defconfig b/configs/stm3240g-eval/xmlrpc/defconfig index ee1db22eeb..eed2e74eac 100644 --- a/configs/stm3240g-eval/xmlrpc/defconfig +++ b/configs/stm3240g-eval/xmlrpc/defconfig @@ -782,8 +782,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/stm32_tiny/nsh/defconfig b/configs/stm32_tiny/nsh/defconfig index cfb091515f..04c18e2a5b 100644 --- a/configs/stm32_tiny/nsh/defconfig +++ b/configs/stm32_tiny/nsh/defconfig @@ -698,8 +698,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/stm32_tiny/usbnsh/defconfig b/configs/stm32_tiny/usbnsh/defconfig index 1565b304a8..615661a59f 100644 --- a/configs/stm32_tiny/usbnsh/defconfig +++ b/configs/stm32_tiny/usbnsh/defconfig @@ -673,8 +673,8 @@ CONFIG_SERIAL_REMOVABLE=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/stm32f103-minimum/nsh/defconfig b/configs/stm32f103-minimum/nsh/defconfig index 4affe971cc..112024f44c 100644 --- a/configs/stm32f103-minimum/nsh/defconfig +++ b/configs/stm32f103-minimum/nsh/defconfig @@ -690,8 +690,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/stm32f103-minimum/usbnsh/defconfig b/configs/stm32f103-minimum/usbnsh/defconfig index 0d05c28d96..28a086c365 100644 --- a/configs/stm32f103-minimum/usbnsh/defconfig +++ b/configs/stm32f103-minimum/usbnsh/defconfig @@ -687,8 +687,8 @@ CONFIG_SERIAL_REMOVABLE=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/stm32f3discovery/nsh/defconfig b/configs/stm32f3discovery/nsh/defconfig index 1b278f6e40..01a6528649 100644 --- a/configs/stm32f3discovery/nsh/defconfig +++ b/configs/stm32f3discovery/nsh/defconfig @@ -696,8 +696,8 @@ CONFIG_SERIAL_REMOVABLE=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set CONFIG_USART2_SERIALDRIVER=y diff --git a/configs/stm32f3discovery/usbnsh/defconfig b/configs/stm32f3discovery/usbnsh/defconfig index 50647f43a6..1d6fc16d75 100644 --- a/configs/stm32f3discovery/usbnsh/defconfig +++ b/configs/stm32f3discovery/usbnsh/defconfig @@ -719,8 +719,8 @@ CONFIG_SERIAL_REMOVABLE=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set CONFIG_USART2_SERIALDRIVER=y diff --git a/configs/stm32f411e-disco/nsh/defconfig b/configs/stm32f411e-disco/nsh/defconfig index cbd46e2ac8..91487c5e70 100644 --- a/configs/stm32f411e-disco/nsh/defconfig +++ b/configs/stm32f411e-disco/nsh/defconfig @@ -688,8 +688,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set CONFIG_USART2_SERIALDRIVER=y diff --git a/configs/stm32f429i-disco/extflash/defconfig b/configs/stm32f429i-disco/extflash/defconfig index b7f8b11655..62ce07c04c 100644 --- a/configs/stm32f429i-disco/extflash/defconfig +++ b/configs/stm32f429i-disco/extflash/defconfig @@ -794,8 +794,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/stm32f429i-disco/lcd/defconfig b/configs/stm32f429i-disco/lcd/defconfig index ac68e06617..651d9f6e1d 100644 --- a/configs/stm32f429i-disco/lcd/defconfig +++ b/configs/stm32f429i-disco/lcd/defconfig @@ -766,8 +766,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/stm32f429i-disco/ltdc/defconfig b/configs/stm32f429i-disco/ltdc/defconfig index e1ad1c0379..f55fce7af8 100644 --- a/configs/stm32f429i-disco/ltdc/defconfig +++ b/configs/stm32f429i-disco/ltdc/defconfig @@ -808,8 +808,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/stm32f429i-disco/nsh/defconfig b/configs/stm32f429i-disco/nsh/defconfig index 60b7b4de5c..f27c26bc1e 100644 --- a/configs/stm32f429i-disco/nsh/defconfig +++ b/configs/stm32f429i-disco/nsh/defconfig @@ -724,8 +724,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/stm32f429i-disco/usbmsc/defconfig b/configs/stm32f429i-disco/usbmsc/defconfig index 922d9601b9..dab3a48e94 100644 --- a/configs/stm32f429i-disco/usbmsc/defconfig +++ b/configs/stm32f429i-disco/usbmsc/defconfig @@ -748,8 +748,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/stm32f429i-disco/usbnsh/defconfig b/configs/stm32f429i-disco/usbnsh/defconfig index 3817aee261..5619ff645c 100644 --- a/configs/stm32f429i-disco/usbnsh/defconfig +++ b/configs/stm32f429i-disco/usbnsh/defconfig @@ -732,8 +732,8 @@ CONFIG_SERIAL_REMOVABLE=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/stm32f4discovery/cxxtest/defconfig b/configs/stm32f4discovery/cxxtest/defconfig index 3e8692410f..197b9b0832 100644 --- a/configs/stm32f4discovery/cxxtest/defconfig +++ b/configs/stm32f4discovery/cxxtest/defconfig @@ -718,8 +718,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set CONFIG_USART2_SERIALDRIVER=y diff --git a/configs/stm32f4discovery/elf/defconfig b/configs/stm32f4discovery/elf/defconfig index 33b4f32fa6..9ee41a8fd2 100644 --- a/configs/stm32f4discovery/elf/defconfig +++ b/configs/stm32f4discovery/elf/defconfig @@ -718,8 +718,8 @@ CONFIG_DEV_LOWCONSOLE=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set CONFIG_USART2_SERIALDRIVER=y diff --git a/configs/stm32f4discovery/ipv6/defconfig b/configs/stm32f4discovery/ipv6/defconfig index b3e43bec48..1fc8d6d5de 100644 --- a/configs/stm32f4discovery/ipv6/defconfig +++ b/configs/stm32f4discovery/ipv6/defconfig @@ -828,8 +828,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/stm32f4discovery/kostest/defconfig b/configs/stm32f4discovery/kostest/defconfig index e547acd26d..ba40ab8494 100644 --- a/configs/stm32f4discovery/kostest/defconfig +++ b/configs/stm32f4discovery/kostest/defconfig @@ -726,8 +726,8 @@ CONFIG_DEV_LOWCONSOLE=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set CONFIG_USART2_SERIALDRIVER=y diff --git a/configs/stm32f4discovery/netnsh/defconfig b/configs/stm32f4discovery/netnsh/defconfig index 6dca1b978e..8a70b69dc2 100644 --- a/configs/stm32f4discovery/netnsh/defconfig +++ b/configs/stm32f4discovery/netnsh/defconfig @@ -833,8 +833,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/stm32f4discovery/nsh/defconfig b/configs/stm32f4discovery/nsh/defconfig index f8c687d673..1051360e33 100644 --- a/configs/stm32f4discovery/nsh/defconfig +++ b/configs/stm32f4discovery/nsh/defconfig @@ -733,8 +733,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set CONFIG_USART2_SERIALDRIVER=y diff --git a/configs/stm32f4discovery/nxlines/defconfig b/configs/stm32f4discovery/nxlines/defconfig index 221cbb3307..dde5b975c3 100644 --- a/configs/stm32f4discovery/nxlines/defconfig +++ b/configs/stm32f4discovery/nxlines/defconfig @@ -773,8 +773,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set CONFIG_USART2_SERIALDRIVER=y diff --git a/configs/stm32f4discovery/pm/defconfig b/configs/stm32f4discovery/pm/defconfig index 9ec0a9144e..6694488704 100644 --- a/configs/stm32f4discovery/pm/defconfig +++ b/configs/stm32f4discovery/pm/defconfig @@ -739,8 +739,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set CONFIG_USART2_SERIALDRIVER=y diff --git a/configs/stm32f4discovery/posix_spawn/defconfig b/configs/stm32f4discovery/posix_spawn/defconfig index 5ecbd99763..c8df3ce0fd 100644 --- a/configs/stm32f4discovery/posix_spawn/defconfig +++ b/configs/stm32f4discovery/posix_spawn/defconfig @@ -718,8 +718,8 @@ CONFIG_DEV_LOWCONSOLE=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set CONFIG_USART2_SERIALDRIVER=y diff --git a/configs/stm32f4discovery/rgbled/defconfig b/configs/stm32f4discovery/rgbled/defconfig index bc3efd26b4..7034b2796b 100644 --- a/configs/stm32f4discovery/rgbled/defconfig +++ b/configs/stm32f4discovery/rgbled/defconfig @@ -767,8 +767,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set CONFIG_USART2_SERIALDRIVER=y diff --git a/configs/stm32f4discovery/usbnsh/defconfig b/configs/stm32f4discovery/usbnsh/defconfig index daec10f118..4147d1888a 100644 --- a/configs/stm32f4discovery/usbnsh/defconfig +++ b/configs/stm32f4discovery/usbnsh/defconfig @@ -741,8 +741,8 @@ CONFIG_SERIAL_REMOVABLE=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set CONFIG_USART2_SERIALDRIVER=y diff --git a/configs/stm32f4discovery/winbuild/defconfig b/configs/stm32f4discovery/winbuild/defconfig index 02b00311ea..d686989c41 100644 --- a/configs/stm32f4discovery/winbuild/defconfig +++ b/configs/stm32f4discovery/winbuild/defconfig @@ -668,8 +668,8 @@ CONFIG_DEV_LOWCONSOLE=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set CONFIG_USART2_SERIALDRIVER=y diff --git a/configs/stm32f746g-disco/knsh/defconfig b/configs/stm32f746g-disco/knsh/defconfig index ecd145b08f..48dd3b93cb 100644 --- a/configs/stm32f746g-disco/knsh/defconfig +++ b/configs/stm32f746g-disco/knsh/defconfig @@ -504,8 +504,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/stm32f746g-disco/netnsh/defconfig b/configs/stm32f746g-disco/netnsh/defconfig index a750febc7f..e8a17317bf 100644 --- a/configs/stm32f746g-disco/netnsh/defconfig +++ b/configs/stm32f746g-disco/netnsh/defconfig @@ -563,8 +563,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/stm32f746g-disco/nsh/defconfig b/configs/stm32f746g-disco/nsh/defconfig index daf2c2f7d0..3675403ac6 100644 --- a/configs/stm32f746g-disco/nsh/defconfig +++ b/configs/stm32f746g-disco/nsh/defconfig @@ -496,8 +496,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/stm32l476vg-disco/nsh/defconfig b/configs/stm32l476vg-disco/nsh/defconfig index 6175915e44..657a76fd4b 100644 --- a/configs/stm32l476vg-disco/nsh/defconfig +++ b/configs/stm32l476vg-disco/nsh/defconfig @@ -617,8 +617,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set CONFIG_USART2_SERIALDRIVER=y diff --git a/configs/stm32ldiscovery/nsh/defconfig b/configs/stm32ldiscovery/nsh/defconfig index 4e7e5299f3..b6fe71adfb 100644 --- a/configs/stm32ldiscovery/nsh/defconfig +++ b/configs/stm32ldiscovery/nsh/defconfig @@ -679,8 +679,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/stm32vldiscovery/nsh/defconfig b/configs/stm32vldiscovery/nsh/defconfig index d0770b7103..7aad3fbfd0 100644 --- a/configs/stm32vldiscovery/nsh/defconfig +++ b/configs/stm32vldiscovery/nsh/defconfig @@ -698,8 +698,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sure-pic32mx/nsh/defconfig b/configs/sure-pic32mx/nsh/defconfig index c948c0137f..2ea2329a44 100644 --- a/configs/sure-pic32mx/nsh/defconfig +++ b/configs/sure-pic32mx/nsh/defconfig @@ -493,8 +493,8 @@ CONFIG_UART2_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/sure-pic32mx/usbnsh/defconfig b/configs/sure-pic32mx/usbnsh/defconfig index 44311ac95f..b2a058432c 100644 --- a/configs/sure-pic32mx/usbnsh/defconfig +++ b/configs/sure-pic32mx/usbnsh/defconfig @@ -495,8 +495,8 @@ CONFIG_UART2_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/teensy-2.0/hello/defconfig b/configs/teensy-2.0/hello/defconfig index d5a2d065ad..a0cb148489 100644 --- a/configs/teensy-2.0/hello/defconfig +++ b/configs/teensy-2.0/hello/defconfig @@ -315,8 +315,8 @@ CONFIG_DEV_LOWCONSOLE=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/teensy-2.0/nsh/defconfig b/configs/teensy-2.0/nsh/defconfig index 37998b3039..6f63eba4c9 100644 --- a/configs/teensy-2.0/nsh/defconfig +++ b/configs/teensy-2.0/nsh/defconfig @@ -326,8 +326,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/teensy-2.0/usbmsc/defconfig b/configs/teensy-2.0/usbmsc/defconfig index e05ce4d776..4f6969d9ed 100644 --- a/configs/teensy-2.0/usbmsc/defconfig +++ b/configs/teensy-2.0/usbmsc/defconfig @@ -348,8 +348,8 @@ CONFIG_DEV_LOWCONSOLE=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/teensy-3.x/nsh/defconfig b/configs/teensy-3.x/nsh/defconfig index 5a4f97c97a..ba0fb2b3c2 100644 --- a/configs/teensy-3.x/nsh/defconfig +++ b/configs/teensy-3.x/nsh/defconfig @@ -448,8 +448,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/teensy-lc/nsh/defconfig b/configs/teensy-lc/nsh/defconfig index 13f8c046e5..a8443f0391 100644 --- a/configs/teensy-lc/nsh/defconfig +++ b/configs/teensy-lc/nsh/defconfig @@ -431,8 +431,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/tm4c123g-launchpad/nsh/defconfig b/configs/tm4c123g-launchpad/nsh/defconfig index 5e6f8e607f..0db29f8f5d 100644 --- a/configs/tm4c123g-launchpad/nsh/defconfig +++ b/configs/tm4c123g-launchpad/nsh/defconfig @@ -463,8 +463,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/tm4c1294-launchpad/ipv6/defconfig b/configs/tm4c1294-launchpad/ipv6/defconfig index 946daaad6c..fdeb600618 100644 --- a/configs/tm4c1294-launchpad/ipv6/defconfig +++ b/configs/tm4c1294-launchpad/ipv6/defconfig @@ -493,8 +493,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/tm4c1294-launchpad/nsh/defconfig b/configs/tm4c1294-launchpad/nsh/defconfig index 3b291dd2b3..d7cc4c9299 100644 --- a/configs/tm4c1294-launchpad/nsh/defconfig +++ b/configs/tm4c1294-launchpad/nsh/defconfig @@ -530,8 +530,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/twr-k60n512/nsh/defconfig b/configs/twr-k60n512/nsh/defconfig index c5cd7ccd14..e6c4681ee7 100644 --- a/configs/twr-k60n512/nsh/defconfig +++ b/configs/twr-k60n512/nsh/defconfig @@ -432,8 +432,8 @@ CONFIG_UART3_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/u-blox-c027/nsh/defconfig b/configs/u-blox-c027/nsh/defconfig index b147d7a706..2fdda058bc 100644 --- a/configs/u-blox-c027/nsh/defconfig +++ b/configs/u-blox-c027/nsh/defconfig @@ -572,8 +572,8 @@ CONFIG_UART3_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/ubw32/nsh/defconfig b/configs/ubw32/nsh/defconfig index d66f9c524e..1093cc2204 100644 --- a/configs/ubw32/nsh/defconfig +++ b/configs/ubw32/nsh/defconfig @@ -500,8 +500,8 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/us7032evb1/nsh/defconfig b/configs/us7032evb1/nsh/defconfig index 68d1570e58..e18cd49cc8 100644 --- a/configs/us7032evb1/nsh/defconfig +++ b/configs/us7032evb1/nsh/defconfig @@ -253,8 +253,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -CONFIG_ARCH_HAVE_SCI1=y +# CONFIG_SCI0_SERIALDRIVER is not set +CONFIG_SCI1_SERIALDRIVER=y # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/us7032evb1/ostest/defconfig b/configs/us7032evb1/ostest/defconfig index 266b9ef6d3..7490f982d7 100644 --- a/configs/us7032evb1/ostest/defconfig +++ b/configs/us7032evb1/ostest/defconfig @@ -252,8 +252,8 @@ CONFIG_DEV_LOWCONSOLE=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -CONFIG_ARCH_HAVE_SCI1=y +# CONFIG_SCI0_SERIALDRIVER is not set +CONFIG_SCI1_SERIALDRIVER=y # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/viewtool-stm32f107/highpri/defconfig b/configs/viewtool-stm32f107/highpri/defconfig index 04a0f39087..eee4e0759e 100644 --- a/configs/viewtool-stm32f107/highpri/defconfig +++ b/configs/viewtool-stm32f107/highpri/defconfig @@ -702,8 +702,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/viewtool-stm32f107/netnsh/defconfig b/configs/viewtool-stm32f107/netnsh/defconfig index 7a534709b0..a8414b13f6 100644 --- a/configs/viewtool-stm32f107/netnsh/defconfig +++ b/configs/viewtool-stm32f107/netnsh/defconfig @@ -761,8 +761,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/viewtool-stm32f107/nsh/defconfig b/configs/viewtool-stm32f107/nsh/defconfig index f600426270..13d53cabf4 100644 --- a/configs/viewtool-stm32f107/nsh/defconfig +++ b/configs/viewtool-stm32f107/nsh/defconfig @@ -700,8 +700,8 @@ CONFIG_SERIAL=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/z16f2800100zcog/nsh/defconfig b/configs/z16f2800100zcog/nsh/defconfig index 453b66464b..fe61c46aa1 100644 --- a/configs/z16f2800100zcog/nsh/defconfig +++ b/configs/z16f2800100zcog/nsh/defconfig @@ -309,8 +309,8 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/z8encore000zco/ostest/defconfig b/configs/z8encore000zco/ostest/defconfig index 4d065a5aa1..b10682f15b 100644 --- a/configs/z8encore000zco/ostest/defconfig +++ b/configs/z8encore000zco/ostest/defconfig @@ -369,8 +369,8 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/z8f64200100kit/ostest/defconfig b/configs/z8f64200100kit/ostest/defconfig index a308978358..ca73c23a13 100644 --- a/configs/z8f64200100kit/ostest/defconfig +++ b/configs/z8f64200100kit/ostest/defconfig @@ -369,8 +369,8 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/zkit-arm-1769/hello/defconfig b/configs/zkit-arm-1769/hello/defconfig index 2a7b2d8387..33d115b299 100644 --- a/configs/zkit-arm-1769/hello/defconfig +++ b/configs/zkit-arm-1769/hello/defconfig @@ -468,8 +468,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/zkit-arm-1769/nsh/defconfig b/configs/zkit-arm-1769/nsh/defconfig index f0f7f6f709..7f10a4472b 100644 --- a/configs/zkit-arm-1769/nsh/defconfig +++ b/configs/zkit-arm-1769/nsh/defconfig @@ -520,8 +520,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/zkit-arm-1769/nxhello/defconfig b/configs/zkit-arm-1769/nxhello/defconfig index c47c60f50a..c28a820c01 100644 --- a/configs/zkit-arm-1769/nxhello/defconfig +++ b/configs/zkit-arm-1769/nxhello/defconfig @@ -562,8 +562,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/zkit-arm-1769/thttpd/defconfig b/configs/zkit-arm-1769/thttpd/defconfig index 362d8b2021..ea245dc1fe 100644 --- a/configs/zkit-arm-1769/thttpd/defconfig +++ b/configs/zkit-arm-1769/thttpd/defconfig @@ -467,8 +467,8 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/zp214xpa/nsh/defconfig b/configs/zp214xpa/nsh/defconfig index 9eeb75b9fd..7f302699be 100644 --- a/configs/zp214xpa/nsh/defconfig +++ b/configs/zp214xpa/nsh/defconfig @@ -374,8 +374,8 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/configs/zp214xpa/nxlines/defconfig b/configs/zp214xpa/nxlines/defconfig index 8480ba5a2c..ec394c3bd5 100644 --- a/configs/zp214xpa/nxlines/defconfig +++ b/configs/zp214xpa/nxlines/defconfig @@ -413,8 +413,8 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_UART6_SERIALDRIVER is not set # CONFIG_UART7_SERIALDRIVER is not set # CONFIG_UART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_SCI0 is not set -# CONFIG_ARCH_HAVE_SCI1 is not set +# CONFIG_SCI0_SERIALDRIVER is not set +# CONFIG_SCI1_SERIALDRIVER is not set # CONFIG_USART0_SERIALDRIVER is not set # CONFIG_USART1_SERIALDRIVER is not set # CONFIG_USART2_SERIALDRIVER is not set diff --git a/drivers/serial/Kconfig b/drivers/serial/Kconfig index 442f5d4a97..f9bf3392e7 100644 --- a/drivers/serial/Kconfig +++ b/drivers/serial/Kconfig @@ -397,12 +397,12 @@ config UART8_SERIALDRIVER default n select MCU_SERIAL -config ARCH_HAVE_SCI0 +config SCI0_SERIALDRIVER bool default n select MCU_SERIAL -config ARCH_HAVE_SCI1 +config SCI1_SERIALDRIVER bool default n select MCU_SERIAL @@ -692,11 +692,11 @@ config USART8_SERIAL_CONSOLE config SCI0_SERIAL_CONSOLE bool "SCI0" - depends on ARCH_HAVE_SCI0 + depends on SCI0_SERIALDRIVER config SCI1_SERIAL_CONSOLE bool "SCI1" - depends on ARCH_HAVE_SCI1 + depends on SCI1_SERIALDRIVER config OTHER_SERIAL_CONSOLE bool "Other serial console" @@ -1945,7 +1945,7 @@ config UART8_DMA endmenu menu "SCI0 Configuration" - depends on ARCH_HAVE_SCI0 + depends on SCI0_SERIALDRIVER config SCI0_RXBUFSIZE int "SCI0 receive buffer size" @@ -1989,7 +1989,7 @@ config SCI0_2STOP endmenu # SCI0 Configuration menu "SCI1 Configuration" - depends on ARCH_HAVE_SCI1 + depends on SCI1_SERIALDRIVER config SCI1_RXBUFSIZE int "SCI1 receive buffer size" -- GitLab From c089a2f241d0c1386445bf5691bb2d66790f4fdf Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 25 May 2016 10:48:33 -0600 Subject: [PATCH 248/307] Rename CONFIG_ARCH_HAVE_OTHER_UART to CONFIG_OTHER_UART_SERIALDRIVER --- arch/arm/Kconfig | 4 ++-- arch/arm/src/efm32/Kconfig | 4 ++-- arch/arm/src/sama5/Kconfig | 2 +- configs/arduino-due/nsh/defconfig | 2 +- configs/arduino-mega2560/hello/defconfig | 2 +- configs/arduino-mega2560/nsh/defconfig | 2 +- configs/c5471evm/httpd/defconfig | 2 +- configs/c5471evm/nettest/defconfig | 2 +- configs/c5471evm/nsh/defconfig | 2 +- configs/cloudctrl/nsh/defconfig | 2 +- configs/compal_e86/nsh_highram/defconfig | 2 +- configs/compal_e88/nsh_highram/defconfig | 2 +- configs/compal_e99/nsh_compalram/defconfig | 2 +- configs/compal_e99/nsh_highram/defconfig | 2 +- configs/dk-tm4c129x/ipv6/defconfig | 2 +- configs/dk-tm4c129x/nsh/defconfig | 2 +- configs/ea3131/pgnsh/defconfig | 2 +- configs/ea3131/usbserial/defconfig | 2 +- configs/eagle100/nettest/defconfig | 2 +- configs/eagle100/nsh/defconfig | 2 +- configs/eagle100/thttpd/defconfig | 2 +- configs/efm32-g8xx-stk/nsh/defconfig | 2 +- configs/efm32gg-stk3700/nsh/defconfig | 2 +- configs/ekk-lm3s9b96/nsh/defconfig | 2 +- configs/ez80f910200kitg/ostest/defconfig | 2 +- configs/ez80f910200zco/dhcpd/defconfig | 2 +- configs/ez80f910200zco/httpd/defconfig | 2 +- configs/ez80f910200zco/nettest/defconfig | 2 +- configs/ez80f910200zco/nsh/defconfig | 2 +- configs/ez80f910200zco/poll/defconfig | 2 +- configs/fire-stm32v2/nsh/defconfig | 2 +- configs/freedom-kl25z/minnsh/defconfig | 2 +- configs/freedom-kl25z/nsh/defconfig | 2 +- configs/freedom-kl26z/minnsh/defconfig | 2 +- configs/freedom-kl26z/nsh/defconfig | 2 +- configs/hymini-stm32v/buttons/defconfig | 2 +- configs/hymini-stm32v/nsh/defconfig | 2 +- configs/hymini-stm32v/nsh2/defconfig | 2 +- configs/hymini-stm32v/usbmsc/defconfig | 2 +- configs/hymini-stm32v/usbnsh/defconfig | 2 +- configs/hymini-stm32v/usbserial/defconfig | 2 +- configs/kwikstik-k40/ostest/defconfig | 2 +- configs/launchxl-tms57004/nsh/defconfig | 2 +- configs/lincoln60/netnsh/defconfig | 2 +- configs/lincoln60/nsh/defconfig | 2 +- configs/lincoln60/thttpd-binfs/defconfig | 2 +- configs/lm3s6432-s2e/nsh/defconfig | 2 +- configs/lm3s6965-ek/discover/defconfig | 2 +- configs/lm3s6965-ek/nsh/defconfig | 2 +- configs/lm3s6965-ek/nx/defconfig | 2 +- configs/lm3s6965-ek/tcpecho/defconfig | 2 +- configs/lm3s8962-ek/nsh/defconfig | 2 +- configs/lm3s8962-ek/nx/defconfig | 2 +- configs/lpc4330-xplorer/nsh/defconfig | 2 +- configs/lpc4337-ws/nsh/defconfig | 2 +- configs/lpc4357-evb/nsh/defconfig | 2 +- configs/lpc4370-link2/nsh/defconfig | 2 +- configs/lpcxpresso-lpc1115/minnsh/defconfig | 2 +- configs/lpcxpresso-lpc1115/nsh/defconfig | 2 +- configs/lpcxpresso-lpc1768/dhcpd/defconfig | 2 +- configs/lpcxpresso-lpc1768/nsh/defconfig | 2 +- configs/lpcxpresso-lpc1768/nx/defconfig | 2 +- configs/lpcxpresso-lpc1768/thttpd/defconfig | 2 +- configs/lpcxpresso-lpc1768/usbmsc/defconfig | 2 +- configs/maple/nsh/defconfig | 2 +- configs/maple/nx/defconfig | 2 +- configs/maple/usbnsh/defconfig | 2 +- configs/mbed/nsh/defconfig | 2 +- configs/mcu123-lpc214x/composite/defconfig | 2 +- configs/mcu123-lpc214x/nsh/defconfig | 2 +- configs/mcu123-lpc214x/usbmsc/defconfig | 2 +- configs/mcu123-lpc214x/usbserial/defconfig | 2 +- configs/mikroe-stm32f4/fulldemo/defconfig | 2 +- configs/mikroe-stm32f4/kostest/defconfig | 2 +- configs/mikroe-stm32f4/nsh/defconfig | 2 +- configs/mikroe-stm32f4/usbnsh/defconfig | 2 +- configs/mirtoo/nsh/defconfig | 2 +- configs/mirtoo/nxffs/defconfig | 2 +- configs/moteino-mega/hello/defconfig | 2 +- configs/moteino-mega/nsh/defconfig | 2 +- configs/moxa/nsh/defconfig | 2 +- configs/ntosd-dm320/nettest/defconfig | 2 +- configs/ntosd-dm320/nsh/defconfig | 2 +- configs/ntosd-dm320/poll/defconfig | 2 +- configs/ntosd-dm320/thttpd/defconfig | 2 +- configs/ntosd-dm320/webserver/defconfig | 2 +- configs/nucleo-144/evalos/defconfig | 2 +- configs/nucleo-144/nsh/defconfig | 2 +- configs/nucleo-f303re/serialrx/defconfig | 2 +- configs/nucleo-f4x1re/f401-nsh/defconfig | 2 +- configs/nucleo-f4x1re/f411-nsh/defconfig | 2 +- configs/nucleo-l476rg/nsh/defconfig | 2 +- configs/olimex-efm32g880f128-stk/nsh/defconfig | 2 +- configs/olimex-lpc-h3131/nsh/defconfig | 2 +- configs/olimex-lpc1766stk/ftpc/defconfig | 2 +- configs/olimex-lpc1766stk/hidkbd/defconfig | 2 +- configs/olimex-lpc1766stk/hidmouse/defconfig | 2 +- configs/olimex-lpc1766stk/nettest/defconfig | 2 +- configs/olimex-lpc1766stk/nsh/defconfig | 2 +- configs/olimex-lpc1766stk/nx/defconfig | 2 +- configs/olimex-lpc1766stk/slip-httpd/defconfig | 2 +- configs/olimex-lpc1766stk/thttpd-binfs/defconfig | 2 +- configs/olimex-lpc1766stk/thttpd-nxflat/defconfig | 2 +- configs/olimex-lpc1766stk/usbmsc/defconfig | 2 +- configs/olimex-lpc1766stk/usbserial/defconfig | 2 +- configs/olimex-lpc1766stk/zmodem/defconfig | 2 +- configs/olimex-lpc2378/nsh/defconfig | 2 +- configs/olimex-stm32-h405/usbnsh/defconfig | 2 +- configs/olimex-stm32-h407/nsh/defconfig | 2 +- configs/olimex-stm32-p107/nsh/defconfig | 2 +- configs/olimex-stm32-p207/nsh/defconfig | 2 +- configs/olimex-strp711/nettest/defconfig | 2 +- configs/olimexino-stm32/can/defconfig | 2 +- configs/olimexino-stm32/composite/defconfig | 2 +- configs/olimexino-stm32/nsh/defconfig | 2 +- configs/olimexino-stm32/smallnsh/defconfig | 2 +- configs/olimexino-stm32/tiny/defconfig | 2 +- configs/open1788/nsh/defconfig | 2 +- configs/pcblogic-pic32mx/nsh/defconfig | 2 +- configs/pic32mx-starterkit/nsh/defconfig | 2 +- configs/pic32mx-starterkit/nsh2/defconfig | 2 +- configs/pic32mx7mmb/nsh/defconfig | 2 +- configs/pic32mz-starterkit/nsh/defconfig | 2 +- configs/pirelli_dpl10/nsh_highram/defconfig | 2 +- configs/sabre-6quad/nsh/defconfig | 2 +- configs/sabre-6quad/smp/defconfig | 2 +- configs/sam3u-ek/knsh/defconfig | 2 +- configs/sam3u-ek/nsh/defconfig | 2 +- configs/sam3u-ek/nx/defconfig | 2 +- configs/sam3u-ek/nxwm/defconfig | 2 +- configs/sam4e-ek/nsh/defconfig | 2 +- configs/sam4e-ek/nxwm/defconfig | 2 +- configs/sam4e-ek/usbnsh/defconfig | 2 +- configs/sam4l-xplained/nsh/defconfig | 2 +- configs/sam4s-xplained-pro/nsh/defconfig | 2 +- configs/sam4s-xplained/nsh/defconfig | 2 +- configs/sama5d2-xult/nsh/defconfig | 2 +- configs/sama5d3-xplained/bridge/defconfig | 2 +- configs/sama5d3-xplained/nsh/defconfig | 2 +- configs/sama5d3x-ek/demo/defconfig | 2 +- configs/sama5d3x-ek/hello/defconfig | 2 +- configs/sama5d3x-ek/norboot/defconfig | 2 +- configs/sama5d3x-ek/nsh/defconfig | 2 +- configs/sama5d3x-ek/nx/defconfig | 2 +- configs/sama5d3x-ek/nxplayer/defconfig | 2 +- configs/sama5d3x-ek/nxwm/defconfig | 2 +- configs/sama5d3x-ek/ov2640/defconfig | 2 +- configs/sama5d4-ek/at25boot/defconfig | 2 +- configs/sama5d4-ek/bridge/defconfig | 2 +- configs/sama5d4-ek/dramboot/defconfig | 2 +- configs/sama5d4-ek/elf/defconfig | 2 +- configs/sama5d4-ek/ipv6/defconfig | 2 +- configs/sama5d4-ek/knsh/defconfig | 2 +- configs/sama5d4-ek/nsh/defconfig | 2 +- configs/sama5d4-ek/nxwm/defconfig | 2 +- configs/sama5d4-ek/ramtest/defconfig | 2 +- configs/samd20-xplained/nsh/defconfig | 2 +- configs/samd21-xplained/nsh/defconfig | 2 +- configs/same70-xplained/netnsh/defconfig | 2 +- configs/same70-xplained/nsh/defconfig | 2 +- configs/saml21-xplained/nsh/defconfig | 2 +- configs/samv71-xult/knsh/defconfig | 2 +- configs/samv71-xult/module/defconfig | 2 +- configs/samv71-xult/mxtxplnd/defconfig | 2 +- configs/samv71-xult/netnsh/defconfig | 2 +- configs/samv71-xult/nsh/defconfig | 2 +- configs/samv71-xult/nxwm/defconfig | 2 +- configs/samv71-xult/vnc/defconfig | 2 +- configs/samv71-xult/vnxwm/defconfig | 2 +- configs/shenzhou/nsh/defconfig | 2 +- configs/shenzhou/nxwm/defconfig | 2 +- configs/shenzhou/thttpd/defconfig | 2 +- configs/sim/bas/defconfig | 2 +- configs/sim/configdata/defconfig | 2 +- configs/sim/cxxtest/defconfig | 2 +- configs/sim/mount/defconfig | 2 +- configs/sim/mtdpart/defconfig | 2 +- configs/sim/mtdrwb/defconfig | 2 +- configs/sim/nettest/defconfig | 2 +- configs/sim/nsh/defconfig | 2 +- configs/sim/nsh2/defconfig | 2 +- configs/sim/nx/defconfig | 2 +- configs/sim/nx11/defconfig | 2 +- configs/sim/nxffs/defconfig | 2 +- configs/sim/nxlines/defconfig | 2 +- configs/sim/nxwm/defconfig | 2 +- configs/sim/ostest/defconfig | 2 +- configs/sim/pashello/defconfig | 2 +- configs/sim/touchscreen/defconfig | 2 +- configs/sim/traveler/defconfig | 2 +- configs/sim/udgram/defconfig | 2 +- configs/sim/unionfs/defconfig | 2 +- configs/sim/ustream/defconfig | 2 +- configs/spark/composite/defconfig | 2 +- configs/spark/nsh/defconfig | 2 +- configs/spark/usbmsc/defconfig | 2 +- configs/spark/usbnsh/defconfig | 2 +- configs/spark/usbserial/defconfig | 2 +- configs/stm3210e-eval/buttons/defconfig | 2 +- configs/stm3210e-eval/composite/defconfig | 2 +- configs/stm3210e-eval/nsh/defconfig | 2 +- configs/stm3210e-eval/nsh2/defconfig | 2 +- configs/stm3210e-eval/nx/defconfig | 2 +- configs/stm3210e-eval/nxterm/defconfig | 2 +- configs/stm3210e-eval/pm/defconfig | 2 +- configs/stm3210e-eval/usbmsc/defconfig | 2 +- configs/stm3210e-eval/usbserial/defconfig | 2 +- configs/stm3220g-eval/dhcpd/defconfig | 2 +- configs/stm3220g-eval/nettest/defconfig | 2 +- configs/stm3220g-eval/nsh/defconfig | 2 +- configs/stm3220g-eval/nsh2/defconfig | 2 +- configs/stm3220g-eval/nxwm/defconfig | 2 +- configs/stm3220g-eval/telnetd/defconfig | 2 +- configs/stm3240g-eval/dhcpd/defconfig | 2 +- configs/stm3240g-eval/discover/defconfig | 2 +- configs/stm3240g-eval/knxwm/defconfig | 2 +- configs/stm3240g-eval/nettest/defconfig | 2 +- configs/stm3240g-eval/nsh/defconfig | 2 +- configs/stm3240g-eval/nsh2/defconfig | 2 +- configs/stm3240g-eval/nxterm/defconfig | 2 +- configs/stm3240g-eval/nxwm/defconfig | 2 +- configs/stm3240g-eval/telnetd/defconfig | 2 +- configs/stm3240g-eval/webserver/defconfig | 2 +- configs/stm3240g-eval/xmlrpc/defconfig | 2 +- configs/stm32_tiny/nsh/defconfig | 2 +- configs/stm32_tiny/usbnsh/defconfig | 2 +- configs/stm32f103-minimum/nsh/defconfig | 2 +- configs/stm32f103-minimum/usbnsh/defconfig | 2 +- configs/stm32f3discovery/nsh/defconfig | 2 +- configs/stm32f3discovery/usbnsh/defconfig | 2 +- configs/stm32f411e-disco/nsh/defconfig | 2 +- configs/stm32f429i-disco/extflash/defconfig | 2 +- configs/stm32f429i-disco/lcd/defconfig | 2 +- configs/stm32f429i-disco/ltdc/defconfig | 2 +- configs/stm32f429i-disco/nsh/defconfig | 2 +- configs/stm32f429i-disco/usbmsc/defconfig | 2 +- configs/stm32f429i-disco/usbnsh/defconfig | 2 +- configs/stm32f4discovery/cxxtest/defconfig | 2 +- configs/stm32f4discovery/elf/defconfig | 2 +- configs/stm32f4discovery/ipv6/defconfig | 2 +- configs/stm32f4discovery/kostest/defconfig | 2 +- configs/stm32f4discovery/netnsh/defconfig | 2 +- configs/stm32f4discovery/nsh/defconfig | 2 +- configs/stm32f4discovery/nxlines/defconfig | 2 +- configs/stm32f4discovery/pm/defconfig | 2 +- configs/stm32f4discovery/posix_spawn/defconfig | 2 +- configs/stm32f4discovery/rgbled/defconfig | 2 +- configs/stm32f4discovery/usbnsh/defconfig | 2 +- configs/stm32f4discovery/winbuild/defconfig | 2 +- configs/stm32f746g-disco/knsh/defconfig | 2 +- configs/stm32f746g-disco/netnsh/defconfig | 2 +- configs/stm32f746g-disco/nsh/defconfig | 2 +- configs/stm32l476vg-disco/nsh/defconfig | 2 +- configs/stm32ldiscovery/nsh/defconfig | 2 +- configs/stm32vldiscovery/nsh/defconfig | 2 +- configs/sure-pic32mx/nsh/defconfig | 2 +- configs/sure-pic32mx/usbnsh/defconfig | 2 +- configs/teensy-2.0/hello/defconfig | 2 +- configs/teensy-2.0/nsh/defconfig | 2 +- configs/teensy-2.0/usbmsc/defconfig | 2 +- configs/teensy-3.x/nsh/defconfig | 2 +- configs/teensy-lc/nsh/defconfig | 2 +- configs/tm4c123g-launchpad/nsh/defconfig | 2 +- configs/tm4c1294-launchpad/ipv6/defconfig | 2 +- configs/tm4c1294-launchpad/nsh/defconfig | 2 +- configs/twr-k60n512/nsh/defconfig | 2 +- configs/u-blox-c027/nsh/defconfig | 2 +- configs/ubw32/nsh/defconfig | 2 +- configs/viewtool-stm32f107/highpri/defconfig | 2 +- configs/viewtool-stm32f107/netnsh/defconfig | 2 +- configs/viewtool-stm32f107/nsh/defconfig | 2 +- configs/z8encore000zco/ostest/defconfig | 2 +- configs/z8f64200100kit/ostest/defconfig | 2 +- configs/zkit-arm-1769/hello/defconfig | 2 +- configs/zkit-arm-1769/nsh/defconfig | 2 +- configs/zkit-arm-1769/nxhello/defconfig | 2 +- configs/zkit-arm-1769/thttpd/defconfig | 2 +- configs/zp214xpa/nsh/defconfig | 2 +- configs/zp214xpa/nxlines/defconfig | 2 +- drivers/serial/Kconfig | 6 +++--- 280 files changed, 284 insertions(+), 284 deletions(-) diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index fd960282a1..6b6c046060 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -27,7 +27,7 @@ config ARCH_CHIP_C5471 bool "TMS320 C5471" select ARCH_ARM7TDMI select ARCH_HAVE_LOWVECTORS - select ARCH_HAVE_OTHER_UART + select OTHER_UART_SERIALDRIVER ---help--- TI TMS320 C5471, A180, or DA180 (ARM7TDMI) @@ -36,7 +36,7 @@ config ARCH_CHIP_CALYPSO select ARCH_ARM7TDMI select ARCH_HAVE_HEAP2 select ARCH_HAVE_LOWVECTORS - select ARCH_HAVE_OTHER_UART + select OTHER_UART_SERIALDRIVER select ARCH_HAVE_POWEROFF ---help--- TI Calypso-based cell phones (ARM7TDMI) diff --git a/arch/arm/src/efm32/Kconfig b/arch/arm/src/efm32/Kconfig index 9ed46c851f..e391183f97 100644 --- a/arch/arm/src/efm32/Kconfig +++ b/arch/arm/src/efm32/Kconfig @@ -188,14 +188,14 @@ config EFM32_UART1 config EFM32_LEUART0 bool "Low energy UART0" default n - select ARCH_HAVE_OTHER_UART + select OTHER_UART_SERIALDRIVER select EFM32_LEUART config EFM32_LEUART1 bool "Low energy UART1" default n depends on EFM32_HAVE_LEUART1 - select ARCH_HAVE_OTHER_UART + select OTHER_UART_SERIALDRIVER select EFM32_LEUART config EFM32_OTGFS diff --git a/arch/arm/src/sama5/Kconfig b/arch/arm/src/sama5/Kconfig index 9c1f67f362..a60e9a00e8 100644 --- a/arch/arm/src/sama5/Kconfig +++ b/arch/arm/src/sama5/Kconfig @@ -387,7 +387,7 @@ config SAMA5_AESB config SAMA5_DBGU bool "Debug Unit (DBGU)" default n - select ARCH_HAVE_OTHER_UART + select OTHER_UART_SERIALDRIVER config SAMA5_PIT bool "Periodic Interval Timer (PIT)" diff --git a/configs/arduino-due/nsh/defconfig b/configs/arduino-due/nsh/defconfig index 055e577f4f..51cf6e0923 100644 --- a/configs/arduino-due/nsh/defconfig +++ b/configs/arduino-due/nsh/defconfig @@ -514,7 +514,7 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/arduino-mega2560/hello/defconfig b/configs/arduino-mega2560/hello/defconfig index 617fe87591..987dff0f7d 100644 --- a/configs/arduino-mega2560/hello/defconfig +++ b/configs/arduino-mega2560/hello/defconfig @@ -322,7 +322,7 @@ CONFIG_USART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/arduino-mega2560/nsh/defconfig b/configs/arduino-mega2560/nsh/defconfig index 71168ea8cc..efca605df1 100644 --- a/configs/arduino-mega2560/nsh/defconfig +++ b/configs/arduino-mega2560/nsh/defconfig @@ -330,7 +330,7 @@ CONFIG_USART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/c5471evm/httpd/defconfig b/configs/c5471evm/httpd/defconfig index 428b65a2e9..895892b246 100644 --- a/configs/c5471evm/httpd/defconfig +++ b/configs/c5471evm/httpd/defconfig @@ -369,7 +369,7 @@ CONFIG_SERIAL=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -CONFIG_ARCH_HAVE_OTHER_UART=y +CONFIG_OTHER_UART_SERIALDRIVER=y # # USART Configuration diff --git a/configs/c5471evm/nettest/defconfig b/configs/c5471evm/nettest/defconfig index b64e2ea5e9..006c9b09b0 100644 --- a/configs/c5471evm/nettest/defconfig +++ b/configs/c5471evm/nettest/defconfig @@ -379,7 +379,7 @@ CONFIG_SERIAL=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -CONFIG_ARCH_HAVE_OTHER_UART=y +CONFIG_OTHER_UART_SERIALDRIVER=y # # USART Configuration diff --git a/configs/c5471evm/nsh/defconfig b/configs/c5471evm/nsh/defconfig index b62ed3bb8f..fe48c98b95 100644 --- a/configs/c5471evm/nsh/defconfig +++ b/configs/c5471evm/nsh/defconfig @@ -388,7 +388,7 @@ CONFIG_SERIAL=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -CONFIG_ARCH_HAVE_OTHER_UART=y +CONFIG_OTHER_UART_SERIALDRIVER=y # # USART Configuration diff --git a/configs/cloudctrl/nsh/defconfig b/configs/cloudctrl/nsh/defconfig index 7f61da24a2..3f94800d4b 100644 --- a/configs/cloudctrl/nsh/defconfig +++ b/configs/cloudctrl/nsh/defconfig @@ -808,7 +808,7 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/compal_e86/nsh_highram/defconfig b/configs/compal_e86/nsh_highram/defconfig index 7ed243cfde..e521e8e7da 100644 --- a/configs/compal_e86/nsh_highram/defconfig +++ b/configs/compal_e86/nsh_highram/defconfig @@ -389,7 +389,7 @@ CONFIG_SERIAL=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -CONFIG_ARCH_HAVE_OTHER_UART=y +CONFIG_OTHER_UART_SERIALDRIVER=y # # USART Configuration diff --git a/configs/compal_e88/nsh_highram/defconfig b/configs/compal_e88/nsh_highram/defconfig index f76a71ef51..85ad3ce661 100644 --- a/configs/compal_e88/nsh_highram/defconfig +++ b/configs/compal_e88/nsh_highram/defconfig @@ -389,7 +389,7 @@ CONFIG_SERIAL=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -CONFIG_ARCH_HAVE_OTHER_UART=y +CONFIG_OTHER_UART_SERIALDRIVER=y # # USART Configuration diff --git a/configs/compal_e99/nsh_compalram/defconfig b/configs/compal_e99/nsh_compalram/defconfig index 8eab5d6dc5..e3107fc847 100644 --- a/configs/compal_e99/nsh_compalram/defconfig +++ b/configs/compal_e99/nsh_compalram/defconfig @@ -426,7 +426,7 @@ CONFIG_SERIAL=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -CONFIG_ARCH_HAVE_OTHER_UART=y +CONFIG_OTHER_UART_SERIALDRIVER=y # # USART Configuration diff --git a/configs/compal_e99/nsh_highram/defconfig b/configs/compal_e99/nsh_highram/defconfig index 0fb58adba8..a7cbecbe98 100644 --- a/configs/compal_e99/nsh_highram/defconfig +++ b/configs/compal_e99/nsh_highram/defconfig @@ -425,7 +425,7 @@ CONFIG_SERIAL=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -CONFIG_ARCH_HAVE_OTHER_UART=y +CONFIG_OTHER_UART_SERIALDRIVER=y # # USART Configuration diff --git a/configs/dk-tm4c129x/ipv6/defconfig b/configs/dk-tm4c129x/ipv6/defconfig index 8e63399fd8..de1c4d8fbd 100644 --- a/configs/dk-tm4c129x/ipv6/defconfig +++ b/configs/dk-tm4c129x/ipv6/defconfig @@ -511,7 +511,7 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/dk-tm4c129x/nsh/defconfig b/configs/dk-tm4c129x/nsh/defconfig index 0ac3e10f83..0b9e6a5f03 100644 --- a/configs/dk-tm4c129x/nsh/defconfig +++ b/configs/dk-tm4c129x/nsh/defconfig @@ -566,7 +566,7 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/ea3131/pgnsh/defconfig b/configs/ea3131/pgnsh/defconfig index dfa15b6c62..68215a41b3 100644 --- a/configs/ea3131/pgnsh/defconfig +++ b/configs/ea3131/pgnsh/defconfig @@ -472,7 +472,7 @@ CONFIG_UART_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/ea3131/usbserial/defconfig b/configs/ea3131/usbserial/defconfig index a97d60ee2b..e7a88724c9 100644 --- a/configs/ea3131/usbserial/defconfig +++ b/configs/ea3131/usbserial/defconfig @@ -452,7 +452,7 @@ CONFIG_UART_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/eagle100/nettest/defconfig b/configs/eagle100/nettest/defconfig index f554a1d489..bd692c7ffa 100644 --- a/configs/eagle100/nettest/defconfig +++ b/configs/eagle100/nettest/defconfig @@ -496,7 +496,7 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/eagle100/nsh/defconfig b/configs/eagle100/nsh/defconfig index b94e6e0461..b8227f844f 100644 --- a/configs/eagle100/nsh/defconfig +++ b/configs/eagle100/nsh/defconfig @@ -539,7 +539,7 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/eagle100/thttpd/defconfig b/configs/eagle100/thttpd/defconfig index 7ab2c55c30..9bd0ee452b 100644 --- a/configs/eagle100/thttpd/defconfig +++ b/configs/eagle100/thttpd/defconfig @@ -480,7 +480,7 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/efm32-g8xx-stk/nsh/defconfig b/configs/efm32-g8xx-stk/nsh/defconfig index 3dad7a2cf2..a3112c194c 100644 --- a/configs/efm32-g8xx-stk/nsh/defconfig +++ b/configs/efm32-g8xx-stk/nsh/defconfig @@ -405,7 +405,7 @@ CONFIG_SERIAL=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -CONFIG_ARCH_HAVE_OTHER_UART=y +CONFIG_OTHER_UART_SERIALDRIVER=y # # USART Configuration diff --git a/configs/efm32gg-stk3700/nsh/defconfig b/configs/efm32gg-stk3700/nsh/defconfig index 9263aa531b..d8d3ea37a7 100644 --- a/configs/efm32gg-stk3700/nsh/defconfig +++ b/configs/efm32gg-stk3700/nsh/defconfig @@ -432,7 +432,7 @@ CONFIG_SERIAL=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -CONFIG_ARCH_HAVE_OTHER_UART=y +CONFIG_OTHER_UART_SERIALDRIVER=y # # USART Configuration diff --git a/configs/ekk-lm3s9b96/nsh/defconfig b/configs/ekk-lm3s9b96/nsh/defconfig index fb429c82d9..3d89e90c42 100644 --- a/configs/ekk-lm3s9b96/nsh/defconfig +++ b/configs/ekk-lm3s9b96/nsh/defconfig @@ -528,7 +528,7 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/ez80f910200kitg/ostest/defconfig b/configs/ez80f910200kitg/ostest/defconfig index 47423b1969..106998a223 100644 --- a/configs/ez80f910200kitg/ostest/defconfig +++ b/configs/ez80f910200kitg/ostest/defconfig @@ -402,7 +402,7 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/ez80f910200zco/dhcpd/defconfig b/configs/ez80f910200zco/dhcpd/defconfig index 339359e35b..615994d436 100644 --- a/configs/ez80f910200zco/dhcpd/defconfig +++ b/configs/ez80f910200zco/dhcpd/defconfig @@ -448,7 +448,7 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/ez80f910200zco/httpd/defconfig b/configs/ez80f910200zco/httpd/defconfig index 9f366c8e94..fe55d601b7 100644 --- a/configs/ez80f910200zco/httpd/defconfig +++ b/configs/ez80f910200zco/httpd/defconfig @@ -457,7 +457,7 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/ez80f910200zco/nettest/defconfig b/configs/ez80f910200zco/nettest/defconfig index 9932c40605..66eb97ef72 100644 --- a/configs/ez80f910200zco/nettest/defconfig +++ b/configs/ez80f910200zco/nettest/defconfig @@ -449,7 +449,7 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/ez80f910200zco/nsh/defconfig b/configs/ez80f910200zco/nsh/defconfig index 55fc61d83a..4ddd631982 100644 --- a/configs/ez80f910200zco/nsh/defconfig +++ b/configs/ez80f910200zco/nsh/defconfig @@ -460,7 +460,7 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/ez80f910200zco/poll/defconfig b/configs/ez80f910200zco/poll/defconfig index ae76f95db1..b8effce8d0 100644 --- a/configs/ez80f910200zco/poll/defconfig +++ b/configs/ez80f910200zco/poll/defconfig @@ -456,7 +456,7 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/fire-stm32v2/nsh/defconfig b/configs/fire-stm32v2/nsh/defconfig index f71b9a8731..bf83254989 100644 --- a/configs/fire-stm32v2/nsh/defconfig +++ b/configs/fire-stm32v2/nsh/defconfig @@ -814,7 +814,7 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/freedom-kl25z/minnsh/defconfig b/configs/freedom-kl25z/minnsh/defconfig index e4237fa901..753da383ba 100644 --- a/configs/freedom-kl25z/minnsh/defconfig +++ b/configs/freedom-kl25z/minnsh/defconfig @@ -374,7 +374,7 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/freedom-kl25z/nsh/defconfig b/configs/freedom-kl25z/nsh/defconfig index 63ea83596a..7a97b9a5bb 100644 --- a/configs/freedom-kl25z/nsh/defconfig +++ b/configs/freedom-kl25z/nsh/defconfig @@ -406,7 +406,7 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/freedom-kl26z/minnsh/defconfig b/configs/freedom-kl26z/minnsh/defconfig index 3abb767c66..843bd482e0 100644 --- a/configs/freedom-kl26z/minnsh/defconfig +++ b/configs/freedom-kl26z/minnsh/defconfig @@ -377,7 +377,7 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/freedom-kl26z/nsh/defconfig b/configs/freedom-kl26z/nsh/defconfig index 9934c6b009..40157e1b53 100644 --- a/configs/freedom-kl26z/nsh/defconfig +++ b/configs/freedom-kl26z/nsh/defconfig @@ -406,7 +406,7 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/hymini-stm32v/buttons/defconfig b/configs/hymini-stm32v/buttons/defconfig index 1bc0a8b388..81dc4c32ae 100644 --- a/configs/hymini-stm32v/buttons/defconfig +++ b/configs/hymini-stm32v/buttons/defconfig @@ -698,7 +698,7 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/hymini-stm32v/nsh/defconfig b/configs/hymini-stm32v/nsh/defconfig index 30fb74f3d3..6435625a70 100644 --- a/configs/hymini-stm32v/nsh/defconfig +++ b/configs/hymini-stm32v/nsh/defconfig @@ -727,7 +727,7 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/hymini-stm32v/nsh2/defconfig b/configs/hymini-stm32v/nsh2/defconfig index ce7b4762c6..eaada2fb30 100644 --- a/configs/hymini-stm32v/nsh2/defconfig +++ b/configs/hymini-stm32v/nsh2/defconfig @@ -815,7 +815,7 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/hymini-stm32v/usbmsc/defconfig b/configs/hymini-stm32v/usbmsc/defconfig index 890d4df36e..8ba24dece5 100644 --- a/configs/hymini-stm32v/usbmsc/defconfig +++ b/configs/hymini-stm32v/usbmsc/defconfig @@ -722,7 +722,7 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/hymini-stm32v/usbnsh/defconfig b/configs/hymini-stm32v/usbnsh/defconfig index 97c6c23b87..a8e5fefe5c 100644 --- a/configs/hymini-stm32v/usbnsh/defconfig +++ b/configs/hymini-stm32v/usbnsh/defconfig @@ -701,7 +701,7 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/hymini-stm32v/usbserial/defconfig b/configs/hymini-stm32v/usbserial/defconfig index 14ad5d27c1..8f7b9144e6 100644 --- a/configs/hymini-stm32v/usbserial/defconfig +++ b/configs/hymini-stm32v/usbserial/defconfig @@ -707,7 +707,7 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/kwikstik-k40/ostest/defconfig b/configs/kwikstik-k40/ostest/defconfig index 7fcef17955..51b5c56a7a 100644 --- a/configs/kwikstik-k40/ostest/defconfig +++ b/configs/kwikstik-k40/ostest/defconfig @@ -441,7 +441,7 @@ CONFIG_UART5_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/launchxl-tms57004/nsh/defconfig b/configs/launchxl-tms57004/nsh/defconfig index 68fba8a22f..082be95f2b 100644 --- a/configs/launchxl-tms57004/nsh/defconfig +++ b/configs/launchxl-tms57004/nsh/defconfig @@ -445,7 +445,7 @@ CONFIG_SCI1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/lincoln60/netnsh/defconfig b/configs/lincoln60/netnsh/defconfig index 692dfe06e0..95feb4b7f4 100644 --- a/configs/lincoln60/netnsh/defconfig +++ b/configs/lincoln60/netnsh/defconfig @@ -523,7 +523,7 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/lincoln60/nsh/defconfig b/configs/lincoln60/nsh/defconfig index b0c6120ba2..54c6ad3f8c 100644 --- a/configs/lincoln60/nsh/defconfig +++ b/configs/lincoln60/nsh/defconfig @@ -449,7 +449,7 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/lincoln60/thttpd-binfs/defconfig b/configs/lincoln60/thttpd-binfs/defconfig index 023c67de2b..a752c4c72f 100644 --- a/configs/lincoln60/thttpd-binfs/defconfig +++ b/configs/lincoln60/thttpd-binfs/defconfig @@ -487,7 +487,7 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/lm3s6432-s2e/nsh/defconfig b/configs/lm3s6432-s2e/nsh/defconfig index d8ce1818da..e298492933 100644 --- a/configs/lm3s6432-s2e/nsh/defconfig +++ b/configs/lm3s6432-s2e/nsh/defconfig @@ -506,7 +506,7 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/lm3s6965-ek/discover/defconfig b/configs/lm3s6965-ek/discover/defconfig index 4c05526e5a..b43f67b956 100644 --- a/configs/lm3s6965-ek/discover/defconfig +++ b/configs/lm3s6965-ek/discover/defconfig @@ -533,7 +533,7 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/lm3s6965-ek/nsh/defconfig b/configs/lm3s6965-ek/nsh/defconfig index 4c05526e5a..b43f67b956 100644 --- a/configs/lm3s6965-ek/nsh/defconfig +++ b/configs/lm3s6965-ek/nsh/defconfig @@ -533,7 +533,7 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/lm3s6965-ek/nx/defconfig b/configs/lm3s6965-ek/nx/defconfig index 1730a4a79b..3d779630f9 100644 --- a/configs/lm3s6965-ek/nx/defconfig +++ b/configs/lm3s6965-ek/nx/defconfig @@ -512,7 +512,7 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/lm3s6965-ek/tcpecho/defconfig b/configs/lm3s6965-ek/tcpecho/defconfig index 5d4fd43f58..e655d4d6c1 100644 --- a/configs/lm3s6965-ek/tcpecho/defconfig +++ b/configs/lm3s6965-ek/tcpecho/defconfig @@ -502,7 +502,7 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/lm3s8962-ek/nsh/defconfig b/configs/lm3s8962-ek/nsh/defconfig index 718bc36153..48aac15aa0 100644 --- a/configs/lm3s8962-ek/nsh/defconfig +++ b/configs/lm3s8962-ek/nsh/defconfig @@ -543,7 +543,7 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/lm3s8962-ek/nx/defconfig b/configs/lm3s8962-ek/nx/defconfig index f80ad2873a..c72dc447b5 100644 --- a/configs/lm3s8962-ek/nx/defconfig +++ b/configs/lm3s8962-ek/nx/defconfig @@ -522,7 +522,7 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/lpc4330-xplorer/nsh/defconfig b/configs/lpc4330-xplorer/nsh/defconfig index dcfbf85ce0..a3e6787ee5 100644 --- a/configs/lpc4330-xplorer/nsh/defconfig +++ b/configs/lpc4330-xplorer/nsh/defconfig @@ -492,7 +492,7 @@ CONFIG_USART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/lpc4337-ws/nsh/defconfig b/configs/lpc4337-ws/nsh/defconfig index a9f5f06eec..76e4c657dd 100644 --- a/configs/lpc4337-ws/nsh/defconfig +++ b/configs/lpc4337-ws/nsh/defconfig @@ -489,7 +489,7 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/lpc4357-evb/nsh/defconfig b/configs/lpc4357-evb/nsh/defconfig index 7b1e5ff990..eabdacbbe5 100644 --- a/configs/lpc4357-evb/nsh/defconfig +++ b/configs/lpc4357-evb/nsh/defconfig @@ -424,7 +424,7 @@ CONFIG_USART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/lpc4370-link2/nsh/defconfig b/configs/lpc4370-link2/nsh/defconfig index 0ce95202d7..8d46af3627 100644 --- a/configs/lpc4370-link2/nsh/defconfig +++ b/configs/lpc4370-link2/nsh/defconfig @@ -487,7 +487,7 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/lpcxpresso-lpc1115/minnsh/defconfig b/configs/lpcxpresso-lpc1115/minnsh/defconfig index 7f5c43c93d..58ea587ca6 100644 --- a/configs/lpcxpresso-lpc1115/minnsh/defconfig +++ b/configs/lpcxpresso-lpc1115/minnsh/defconfig @@ -388,7 +388,7 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/lpcxpresso-lpc1115/nsh/defconfig b/configs/lpcxpresso-lpc1115/nsh/defconfig index c4860e7f0b..fc7f470f6d 100644 --- a/configs/lpcxpresso-lpc1115/nsh/defconfig +++ b/configs/lpcxpresso-lpc1115/nsh/defconfig @@ -406,7 +406,7 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/lpcxpresso-lpc1768/dhcpd/defconfig b/configs/lpcxpresso-lpc1768/dhcpd/defconfig index d37e15385b..aca1a2a69b 100644 --- a/configs/lpcxpresso-lpc1768/dhcpd/defconfig +++ b/configs/lpcxpresso-lpc1768/dhcpd/defconfig @@ -478,7 +478,7 @@ CONFIG_UART3_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/lpcxpresso-lpc1768/nsh/defconfig b/configs/lpcxpresso-lpc1768/nsh/defconfig index 058182ebba..082098ca9f 100644 --- a/configs/lpcxpresso-lpc1768/nsh/defconfig +++ b/configs/lpcxpresso-lpc1768/nsh/defconfig @@ -558,7 +558,7 @@ CONFIG_UART3_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/lpcxpresso-lpc1768/nx/defconfig b/configs/lpcxpresso-lpc1768/nx/defconfig index 08dbc791f6..e604f2997f 100644 --- a/configs/lpcxpresso-lpc1768/nx/defconfig +++ b/configs/lpcxpresso-lpc1768/nx/defconfig @@ -490,7 +490,7 @@ CONFIG_UART3_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/lpcxpresso-lpc1768/thttpd/defconfig b/configs/lpcxpresso-lpc1768/thttpd/defconfig index 81716029ce..69b2148fdf 100644 --- a/configs/lpcxpresso-lpc1768/thttpd/defconfig +++ b/configs/lpcxpresso-lpc1768/thttpd/defconfig @@ -478,7 +478,7 @@ CONFIG_UART3_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/lpcxpresso-lpc1768/usbmsc/defconfig b/configs/lpcxpresso-lpc1768/usbmsc/defconfig index d8ac71e382..a6d2fa0c3d 100644 --- a/configs/lpcxpresso-lpc1768/usbmsc/defconfig +++ b/configs/lpcxpresso-lpc1768/usbmsc/defconfig @@ -468,7 +468,7 @@ CONFIG_UART3_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/maple/nsh/defconfig b/configs/maple/nsh/defconfig index 60713d080e..7cadcc1cae 100644 --- a/configs/maple/nsh/defconfig +++ b/configs/maple/nsh/defconfig @@ -688,7 +688,7 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/maple/nx/defconfig b/configs/maple/nx/defconfig index 2cdde37c5c..39241301fc 100644 --- a/configs/maple/nx/defconfig +++ b/configs/maple/nx/defconfig @@ -768,7 +768,7 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/maple/usbnsh/defconfig b/configs/maple/usbnsh/defconfig index c7ed7b5860..3752fd47c9 100644 --- a/configs/maple/usbnsh/defconfig +++ b/configs/maple/usbnsh/defconfig @@ -695,7 +695,7 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/mbed/nsh/defconfig b/configs/mbed/nsh/defconfig index 6728bde7a9..dcfda7b8c9 100644 --- a/configs/mbed/nsh/defconfig +++ b/configs/mbed/nsh/defconfig @@ -474,7 +474,7 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/mcu123-lpc214x/composite/defconfig b/configs/mcu123-lpc214x/composite/defconfig index 108cf10567..73d1c5912d 100644 --- a/configs/mcu123-lpc214x/composite/defconfig +++ b/configs/mcu123-lpc214x/composite/defconfig @@ -409,7 +409,7 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/mcu123-lpc214x/nsh/defconfig b/configs/mcu123-lpc214x/nsh/defconfig index 47b6cd45c7..4d7bbb44e8 100644 --- a/configs/mcu123-lpc214x/nsh/defconfig +++ b/configs/mcu123-lpc214x/nsh/defconfig @@ -406,7 +406,7 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/mcu123-lpc214x/usbmsc/defconfig b/configs/mcu123-lpc214x/usbmsc/defconfig index 96abc9df8e..5d58f0bba7 100644 --- a/configs/mcu123-lpc214x/usbmsc/defconfig +++ b/configs/mcu123-lpc214x/usbmsc/defconfig @@ -408,7 +408,7 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/mcu123-lpc214x/usbserial/defconfig b/configs/mcu123-lpc214x/usbserial/defconfig index 898113e10d..e13970db02 100644 --- a/configs/mcu123-lpc214x/usbserial/defconfig +++ b/configs/mcu123-lpc214x/usbserial/defconfig @@ -430,7 +430,7 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/mikroe-stm32f4/fulldemo/defconfig b/configs/mikroe-stm32f4/fulldemo/defconfig index 08d47f0f40..da949f7c05 100644 --- a/configs/mikroe-stm32f4/fulldemo/defconfig +++ b/configs/mikroe-stm32f4/fulldemo/defconfig @@ -873,7 +873,7 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/mikroe-stm32f4/kostest/defconfig b/configs/mikroe-stm32f4/kostest/defconfig index fe8e9f4a1d..719709c2e3 100644 --- a/configs/mikroe-stm32f4/kostest/defconfig +++ b/configs/mikroe-stm32f4/kostest/defconfig @@ -824,7 +824,7 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/mikroe-stm32f4/nsh/defconfig b/configs/mikroe-stm32f4/nsh/defconfig index edc2c365a6..c30de1609b 100644 --- a/configs/mikroe-stm32f4/nsh/defconfig +++ b/configs/mikroe-stm32f4/nsh/defconfig @@ -791,7 +791,7 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/mikroe-stm32f4/usbnsh/defconfig b/configs/mikroe-stm32f4/usbnsh/defconfig index de643e5698..3e81c9d216 100644 --- a/configs/mikroe-stm32f4/usbnsh/defconfig +++ b/configs/mikroe-stm32f4/usbnsh/defconfig @@ -800,7 +800,7 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/mirtoo/nsh/defconfig b/configs/mirtoo/nsh/defconfig index d88a42dddd..1925e947cf 100644 --- a/configs/mirtoo/nsh/defconfig +++ b/configs/mirtoo/nsh/defconfig @@ -496,7 +496,7 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/mirtoo/nxffs/defconfig b/configs/mirtoo/nxffs/defconfig index 44cddc47c1..876d762db0 100644 --- a/configs/mirtoo/nxffs/defconfig +++ b/configs/mirtoo/nxffs/defconfig @@ -527,7 +527,7 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/moteino-mega/hello/defconfig b/configs/moteino-mega/hello/defconfig index 8d417db847..f6ce9e582b 100644 --- a/configs/moteino-mega/hello/defconfig +++ b/configs/moteino-mega/hello/defconfig @@ -295,7 +295,7 @@ CONFIG_USART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/moteino-mega/nsh/defconfig b/configs/moteino-mega/nsh/defconfig index db9a94ee27..2aece63792 100644 --- a/configs/moteino-mega/nsh/defconfig +++ b/configs/moteino-mega/nsh/defconfig @@ -303,7 +303,7 @@ CONFIG_USART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/moxa/nsh/defconfig b/configs/moxa/nsh/defconfig index 27cec2f563..f4e0679407 100644 --- a/configs/moxa/nsh/defconfig +++ b/configs/moxa/nsh/defconfig @@ -447,7 +447,7 @@ CONFIG_16550_ADDRWIDTH=32 # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/ntosd-dm320/nettest/defconfig b/configs/ntosd-dm320/nettest/defconfig index 36d11324ad..9b28755450 100644 --- a/configs/ntosd-dm320/nettest/defconfig +++ b/configs/ntosd-dm320/nettest/defconfig @@ -391,7 +391,7 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/ntosd-dm320/nsh/defconfig b/configs/ntosd-dm320/nsh/defconfig index 073fbb5135..5a4b54b2e7 100644 --- a/configs/ntosd-dm320/nsh/defconfig +++ b/configs/ntosd-dm320/nsh/defconfig @@ -410,7 +410,7 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/ntosd-dm320/poll/defconfig b/configs/ntosd-dm320/poll/defconfig index 52f3cf5355..82d918604f 100644 --- a/configs/ntosd-dm320/poll/defconfig +++ b/configs/ntosd-dm320/poll/defconfig @@ -389,7 +389,7 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/ntosd-dm320/thttpd/defconfig b/configs/ntosd-dm320/thttpd/defconfig index bf3f2ff85e..55c20c3790 100644 --- a/configs/ntosd-dm320/thttpd/defconfig +++ b/configs/ntosd-dm320/thttpd/defconfig @@ -382,7 +382,7 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/ntosd-dm320/webserver/defconfig b/configs/ntosd-dm320/webserver/defconfig index aa1fb29f0f..7173e67561 100644 --- a/configs/ntosd-dm320/webserver/defconfig +++ b/configs/ntosd-dm320/webserver/defconfig @@ -396,7 +396,7 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/nucleo-144/evalos/defconfig b/configs/nucleo-144/evalos/defconfig index 323c32b843..1fdee8d4ee 100644 --- a/configs/nucleo-144/evalos/defconfig +++ b/configs/nucleo-144/evalos/defconfig @@ -520,7 +520,7 @@ CONFIG_USART3_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/nucleo-144/nsh/defconfig b/configs/nucleo-144/nsh/defconfig index be5d57defb..218ea02fa2 100644 --- a/configs/nucleo-144/nsh/defconfig +++ b/configs/nucleo-144/nsh/defconfig @@ -505,7 +505,7 @@ CONFIG_SERIAL=y CONFIG_USART6_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/nucleo-f303re/serialrx/defconfig b/configs/nucleo-f303re/serialrx/defconfig index b2f9c65f6c..a61dab1965 100644 --- a/configs/nucleo-f303re/serialrx/defconfig +++ b/configs/nucleo-f303re/serialrx/defconfig @@ -711,7 +711,7 @@ CONFIG_UART4_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/nucleo-f4x1re/f401-nsh/defconfig b/configs/nucleo-f4x1re/f401-nsh/defconfig index b9f7880c9e..d0b8683cd2 100644 --- a/configs/nucleo-f4x1re/f401-nsh/defconfig +++ b/configs/nucleo-f4x1re/f401-nsh/defconfig @@ -703,7 +703,7 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/nucleo-f4x1re/f411-nsh/defconfig b/configs/nucleo-f4x1re/f411-nsh/defconfig index b62b5d411a..55c28f55b3 100644 --- a/configs/nucleo-f4x1re/f411-nsh/defconfig +++ b/configs/nucleo-f4x1re/f411-nsh/defconfig @@ -705,7 +705,7 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/nucleo-l476rg/nsh/defconfig b/configs/nucleo-l476rg/nsh/defconfig index 14b184e31c..ea1bc23ad7 100644 --- a/configs/nucleo-l476rg/nsh/defconfig +++ b/configs/nucleo-l476rg/nsh/defconfig @@ -580,7 +580,7 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/olimex-efm32g880f128-stk/nsh/defconfig b/configs/olimex-efm32g880f128-stk/nsh/defconfig index 524d4b0d7c..99b47aac95 100644 --- a/configs/olimex-efm32g880f128-stk/nsh/defconfig +++ b/configs/olimex-efm32g880f128-stk/nsh/defconfig @@ -395,7 +395,7 @@ CONFIG_SERIAL=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -CONFIG_ARCH_HAVE_OTHER_UART=y +CONFIG_OTHER_UART_SERIALDRIVER=y # # USART Configuration diff --git a/configs/olimex-lpc-h3131/nsh/defconfig b/configs/olimex-lpc-h3131/nsh/defconfig index e65269df08..f346317664 100644 --- a/configs/olimex-lpc-h3131/nsh/defconfig +++ b/configs/olimex-lpc-h3131/nsh/defconfig @@ -403,7 +403,7 @@ CONFIG_UART_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/olimex-lpc1766stk/ftpc/defconfig b/configs/olimex-lpc1766stk/ftpc/defconfig index e21919a1f3..6239b8e270 100644 --- a/configs/olimex-lpc1766stk/ftpc/defconfig +++ b/configs/olimex-lpc1766stk/ftpc/defconfig @@ -513,7 +513,7 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/olimex-lpc1766stk/hidkbd/defconfig b/configs/olimex-lpc1766stk/hidkbd/defconfig index a9ef8da7f3..995016cfd6 100644 --- a/configs/olimex-lpc1766stk/hidkbd/defconfig +++ b/configs/olimex-lpc1766stk/hidkbd/defconfig @@ -480,7 +480,7 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/olimex-lpc1766stk/hidmouse/defconfig b/configs/olimex-lpc1766stk/hidmouse/defconfig index e57e77da22..152d049b7d 100644 --- a/configs/olimex-lpc1766stk/hidmouse/defconfig +++ b/configs/olimex-lpc1766stk/hidmouse/defconfig @@ -499,7 +499,7 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/olimex-lpc1766stk/nettest/defconfig b/configs/olimex-lpc1766stk/nettest/defconfig index a91d91f81f..d9b5662152 100644 --- a/configs/olimex-lpc1766stk/nettest/defconfig +++ b/configs/olimex-lpc1766stk/nettest/defconfig @@ -490,7 +490,7 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/olimex-lpc1766stk/nsh/defconfig b/configs/olimex-lpc1766stk/nsh/defconfig index e164879be5..5f83abd29a 100644 --- a/configs/olimex-lpc1766stk/nsh/defconfig +++ b/configs/olimex-lpc1766stk/nsh/defconfig @@ -555,7 +555,7 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/olimex-lpc1766stk/nx/defconfig b/configs/olimex-lpc1766stk/nx/defconfig index d70d19013e..34b2d4c3f0 100644 --- a/configs/olimex-lpc1766stk/nx/defconfig +++ b/configs/olimex-lpc1766stk/nx/defconfig @@ -502,7 +502,7 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/olimex-lpc1766stk/slip-httpd/defconfig b/configs/olimex-lpc1766stk/slip-httpd/defconfig index bd03cb2ec0..bf9a212683 100644 --- a/configs/olimex-lpc1766stk/slip-httpd/defconfig +++ b/configs/olimex-lpc1766stk/slip-httpd/defconfig @@ -435,7 +435,7 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/olimex-lpc1766stk/thttpd-binfs/defconfig b/configs/olimex-lpc1766stk/thttpd-binfs/defconfig index 50cdf97c32..da3dca2d7e 100644 --- a/configs/olimex-lpc1766stk/thttpd-binfs/defconfig +++ b/configs/olimex-lpc1766stk/thttpd-binfs/defconfig @@ -487,7 +487,7 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/olimex-lpc1766stk/thttpd-nxflat/defconfig b/configs/olimex-lpc1766stk/thttpd-nxflat/defconfig index 11b75160fe..ae4b8bfd3e 100644 --- a/configs/olimex-lpc1766stk/thttpd-nxflat/defconfig +++ b/configs/olimex-lpc1766stk/thttpd-nxflat/defconfig @@ -479,7 +479,7 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/olimex-lpc1766stk/usbmsc/defconfig b/configs/olimex-lpc1766stk/usbmsc/defconfig index 099ff4a478..f499036204 100644 --- a/configs/olimex-lpc1766stk/usbmsc/defconfig +++ b/configs/olimex-lpc1766stk/usbmsc/defconfig @@ -470,7 +470,7 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/olimex-lpc1766stk/usbserial/defconfig b/configs/olimex-lpc1766stk/usbserial/defconfig index 602ba64477..28806b7c2b 100644 --- a/configs/olimex-lpc1766stk/usbserial/defconfig +++ b/configs/olimex-lpc1766stk/usbserial/defconfig @@ -494,7 +494,7 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/olimex-lpc1766stk/zmodem/defconfig b/configs/olimex-lpc1766stk/zmodem/defconfig index f37d9bd9b7..f0880d4d32 100644 --- a/configs/olimex-lpc1766stk/zmodem/defconfig +++ b/configs/olimex-lpc1766stk/zmodem/defconfig @@ -533,7 +533,7 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/olimex-lpc2378/nsh/defconfig b/configs/olimex-lpc2378/nsh/defconfig index 19ab9c1c22..207ae574d5 100644 --- a/configs/olimex-lpc2378/nsh/defconfig +++ b/configs/olimex-lpc2378/nsh/defconfig @@ -400,7 +400,7 @@ CONFIG_UART2_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/olimex-stm32-h405/usbnsh/defconfig b/configs/olimex-stm32-h405/usbnsh/defconfig index 2f99e5b5ef..08d6d0df6d 100644 --- a/configs/olimex-stm32-h405/usbnsh/defconfig +++ b/configs/olimex-stm32-h405/usbnsh/defconfig @@ -767,7 +767,7 @@ CONFIG_USART3_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/olimex-stm32-h407/nsh/defconfig b/configs/olimex-stm32-h407/nsh/defconfig index 943f669ad1..1ad8fcc624 100644 --- a/configs/olimex-stm32-h407/nsh/defconfig +++ b/configs/olimex-stm32-h407/nsh/defconfig @@ -727,7 +727,7 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/olimex-stm32-p107/nsh/defconfig b/configs/olimex-stm32-p107/nsh/defconfig index cc36e4c9aa..e5be82f83f 100644 --- a/configs/olimex-stm32-p107/nsh/defconfig +++ b/configs/olimex-stm32-p107/nsh/defconfig @@ -794,7 +794,7 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/olimex-stm32-p207/nsh/defconfig b/configs/olimex-stm32-p207/nsh/defconfig index 0b4bedc777..b0bbad2369 100644 --- a/configs/olimex-stm32-p207/nsh/defconfig +++ b/configs/olimex-stm32-p207/nsh/defconfig @@ -834,7 +834,7 @@ CONFIG_USART3_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/olimex-strp711/nettest/defconfig b/configs/olimex-strp711/nettest/defconfig index 57765e467a..2f698cc8bd 100644 --- a/configs/olimex-strp711/nettest/defconfig +++ b/configs/olimex-strp711/nettest/defconfig @@ -434,7 +434,7 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/olimexino-stm32/can/defconfig b/configs/olimexino-stm32/can/defconfig index d6a90f78e8..3ce198d053 100644 --- a/configs/olimexino-stm32/can/defconfig +++ b/configs/olimexino-stm32/can/defconfig @@ -764,7 +764,7 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/olimexino-stm32/composite/defconfig b/configs/olimexino-stm32/composite/defconfig index afc314f795..4ce578d1b5 100644 --- a/configs/olimexino-stm32/composite/defconfig +++ b/configs/olimexino-stm32/composite/defconfig @@ -766,7 +766,7 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/olimexino-stm32/nsh/defconfig b/configs/olimexino-stm32/nsh/defconfig index 176cd165ce..8a4fe99f49 100644 --- a/configs/olimexino-stm32/nsh/defconfig +++ b/configs/olimexino-stm32/nsh/defconfig @@ -764,7 +764,7 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/olimexino-stm32/smallnsh/defconfig b/configs/olimexino-stm32/smallnsh/defconfig index 715ba07e1c..7f2d768429 100644 --- a/configs/olimexino-stm32/smallnsh/defconfig +++ b/configs/olimexino-stm32/smallnsh/defconfig @@ -742,7 +742,7 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/olimexino-stm32/tiny/defconfig b/configs/olimexino-stm32/tiny/defconfig index d6a89079ed..43396831d7 100644 --- a/configs/olimexino-stm32/tiny/defconfig +++ b/configs/olimexino-stm32/tiny/defconfig @@ -746,7 +746,7 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/open1788/nsh/defconfig b/configs/open1788/nsh/defconfig index 28e4015950..82a8f975de 100644 --- a/configs/open1788/nsh/defconfig +++ b/configs/open1788/nsh/defconfig @@ -484,7 +484,7 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/pcblogic-pic32mx/nsh/defconfig b/configs/pcblogic-pic32mx/nsh/defconfig index 4cd4abd095..7a3de04aba 100644 --- a/configs/pcblogic-pic32mx/nsh/defconfig +++ b/configs/pcblogic-pic32mx/nsh/defconfig @@ -493,7 +493,7 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/pic32mx-starterkit/nsh/defconfig b/configs/pic32mx-starterkit/nsh/defconfig index 408aea6980..34d57a29fd 100644 --- a/configs/pic32mx-starterkit/nsh/defconfig +++ b/configs/pic32mx-starterkit/nsh/defconfig @@ -532,7 +532,7 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/pic32mx-starterkit/nsh2/defconfig b/configs/pic32mx-starterkit/nsh2/defconfig index bf24866800..60935ce1ac 100644 --- a/configs/pic32mx-starterkit/nsh2/defconfig +++ b/configs/pic32mx-starterkit/nsh2/defconfig @@ -591,7 +591,7 @@ CONFIG_SERIAL=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/pic32mx7mmb/nsh/defconfig b/configs/pic32mx7mmb/nsh/defconfig index 06ad399aab..492a3f054e 100644 --- a/configs/pic32mx7mmb/nsh/defconfig +++ b/configs/pic32mx7mmb/nsh/defconfig @@ -609,7 +609,7 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/pic32mz-starterkit/nsh/defconfig b/configs/pic32mz-starterkit/nsh/defconfig index cf5fc571ee..a6299b98a9 100644 --- a/configs/pic32mz-starterkit/nsh/defconfig +++ b/configs/pic32mz-starterkit/nsh/defconfig @@ -459,7 +459,7 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/pirelli_dpl10/nsh_highram/defconfig b/configs/pirelli_dpl10/nsh_highram/defconfig index 4778d70e94..d8eac38010 100644 --- a/configs/pirelli_dpl10/nsh_highram/defconfig +++ b/configs/pirelli_dpl10/nsh_highram/defconfig @@ -390,7 +390,7 @@ CONFIG_SERIAL=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -CONFIG_ARCH_HAVE_OTHER_UART=y +CONFIG_OTHER_UART_SERIALDRIVER=y # # USART Configuration diff --git a/configs/sabre-6quad/nsh/defconfig b/configs/sabre-6quad/nsh/defconfig index 8c472fa229..25b14c99ff 100644 --- a/configs/sabre-6quad/nsh/defconfig +++ b/configs/sabre-6quad/nsh/defconfig @@ -449,7 +449,7 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sabre-6quad/smp/defconfig b/configs/sabre-6quad/smp/defconfig index 0510953598..2cd36db127 100644 --- a/configs/sabre-6quad/smp/defconfig +++ b/configs/sabre-6quad/smp/defconfig @@ -456,7 +456,7 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sam3u-ek/knsh/defconfig b/configs/sam3u-ek/knsh/defconfig index 0eaebc98d9..e7e5b4d898 100644 --- a/configs/sam3u-ek/knsh/defconfig +++ b/configs/sam3u-ek/knsh/defconfig @@ -525,7 +525,7 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sam3u-ek/nsh/defconfig b/configs/sam3u-ek/nsh/defconfig index b1a45954cb..028d86b604 100644 --- a/configs/sam3u-ek/nsh/defconfig +++ b/configs/sam3u-ek/nsh/defconfig @@ -512,7 +512,7 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sam3u-ek/nx/defconfig b/configs/sam3u-ek/nx/defconfig index f06159d02a..5a1d8b2466 100644 --- a/configs/sam3u-ek/nx/defconfig +++ b/configs/sam3u-ek/nx/defconfig @@ -539,7 +539,7 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sam3u-ek/nxwm/defconfig b/configs/sam3u-ek/nxwm/defconfig index e2fa3696f3..fb8be1e62e 100644 --- a/configs/sam3u-ek/nxwm/defconfig +++ b/configs/sam3u-ek/nxwm/defconfig @@ -585,7 +585,7 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sam4e-ek/nsh/defconfig b/configs/sam4e-ek/nsh/defconfig index aa4890172f..0215f96eb4 100644 --- a/configs/sam4e-ek/nsh/defconfig +++ b/configs/sam4e-ek/nsh/defconfig @@ -639,7 +639,7 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sam4e-ek/nxwm/defconfig b/configs/sam4e-ek/nxwm/defconfig index 4959ca9de8..ae9b420787 100644 --- a/configs/sam4e-ek/nxwm/defconfig +++ b/configs/sam4e-ek/nxwm/defconfig @@ -702,7 +702,7 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sam4e-ek/usbnsh/defconfig b/configs/sam4e-ek/usbnsh/defconfig index 0f89e255f5..3dfd080451 100644 --- a/configs/sam4e-ek/usbnsh/defconfig +++ b/configs/sam4e-ek/usbnsh/defconfig @@ -640,7 +640,7 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sam4l-xplained/nsh/defconfig b/configs/sam4l-xplained/nsh/defconfig index 553ddcdc18..9122bfc766 100644 --- a/configs/sam4l-xplained/nsh/defconfig +++ b/configs/sam4l-xplained/nsh/defconfig @@ -528,7 +528,7 @@ CONFIG_USART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sam4s-xplained-pro/nsh/defconfig b/configs/sam4s-xplained-pro/nsh/defconfig index 46f51cfada..76288e6675 100644 --- a/configs/sam4s-xplained-pro/nsh/defconfig +++ b/configs/sam4s-xplained-pro/nsh/defconfig @@ -580,7 +580,7 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sam4s-xplained/nsh/defconfig b/configs/sam4s-xplained/nsh/defconfig index dc05d24c73..583fa8d926 100644 --- a/configs/sam4s-xplained/nsh/defconfig +++ b/configs/sam4s-xplained/nsh/defconfig @@ -508,7 +508,7 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sama5d2-xult/nsh/defconfig b/configs/sama5d2-xult/nsh/defconfig index fd229275c7..076e2cddd3 100644 --- a/configs/sama5d2-xult/nsh/defconfig +++ b/configs/sama5d2-xult/nsh/defconfig @@ -592,7 +592,7 @@ CONFIG_USART4_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sama5d3-xplained/bridge/defconfig b/configs/sama5d3-xplained/bridge/defconfig index 6d86e70c68..59d6feb7a2 100644 --- a/configs/sama5d3-xplained/bridge/defconfig +++ b/configs/sama5d3-xplained/bridge/defconfig @@ -627,7 +627,7 @@ CONFIG_SERIAL=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -CONFIG_ARCH_HAVE_OTHER_UART=y +CONFIG_OTHER_UART_SERIALDRIVER=y # # USART Configuration diff --git a/configs/sama5d3-xplained/nsh/defconfig b/configs/sama5d3-xplained/nsh/defconfig index 115d6e3656..9e517d9edb 100644 --- a/configs/sama5d3-xplained/nsh/defconfig +++ b/configs/sama5d3-xplained/nsh/defconfig @@ -546,7 +546,7 @@ CONFIG_SERIAL=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -CONFIG_ARCH_HAVE_OTHER_UART=y +CONFIG_OTHER_UART_SERIALDRIVER=y # # USART Configuration diff --git a/configs/sama5d3x-ek/demo/defconfig b/configs/sama5d3x-ek/demo/defconfig index 3a86883eb8..d5feee4c2a 100644 --- a/configs/sama5d3x-ek/demo/defconfig +++ b/configs/sama5d3x-ek/demo/defconfig @@ -669,7 +669,7 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sama5d3x-ek/hello/defconfig b/configs/sama5d3x-ek/hello/defconfig index 5d871d1007..2e3a214022 100644 --- a/configs/sama5d3x-ek/hello/defconfig +++ b/configs/sama5d3x-ek/hello/defconfig @@ -527,7 +527,7 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sama5d3x-ek/norboot/defconfig b/configs/sama5d3x-ek/norboot/defconfig index cce692fb1d..d88c24e581 100644 --- a/configs/sama5d3x-ek/norboot/defconfig +++ b/configs/sama5d3x-ek/norboot/defconfig @@ -541,7 +541,7 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sama5d3x-ek/nsh/defconfig b/configs/sama5d3x-ek/nsh/defconfig index 28f18bd96d..c9fb27f122 100644 --- a/configs/sama5d3x-ek/nsh/defconfig +++ b/configs/sama5d3x-ek/nsh/defconfig @@ -545,7 +545,7 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sama5d3x-ek/nx/defconfig b/configs/sama5d3x-ek/nx/defconfig index e46a827069..05cb6bd949 100644 --- a/configs/sama5d3x-ek/nx/defconfig +++ b/configs/sama5d3x-ek/nx/defconfig @@ -586,7 +586,7 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sama5d3x-ek/nxplayer/defconfig b/configs/sama5d3x-ek/nxplayer/defconfig index bce0c754f6..7047ef2c75 100644 --- a/configs/sama5d3x-ek/nxplayer/defconfig +++ b/configs/sama5d3x-ek/nxplayer/defconfig @@ -644,7 +644,7 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sama5d3x-ek/nxwm/defconfig b/configs/sama5d3x-ek/nxwm/defconfig index 7bae2315f2..1375a49907 100644 --- a/configs/sama5d3x-ek/nxwm/defconfig +++ b/configs/sama5d3x-ek/nxwm/defconfig @@ -644,7 +644,7 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sama5d3x-ek/ov2640/defconfig b/configs/sama5d3x-ek/ov2640/defconfig index 87234c64cd..2b3bcd4104 100644 --- a/configs/sama5d3x-ek/ov2640/defconfig +++ b/configs/sama5d3x-ek/ov2640/defconfig @@ -612,7 +612,7 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sama5d4-ek/at25boot/defconfig b/configs/sama5d4-ek/at25boot/defconfig index 974fe6c01b..ece2235e63 100644 --- a/configs/sama5d4-ek/at25boot/defconfig +++ b/configs/sama5d4-ek/at25boot/defconfig @@ -605,7 +605,7 @@ CONFIG_USART3_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sama5d4-ek/bridge/defconfig b/configs/sama5d4-ek/bridge/defconfig index b597cfd080..6d3cc44b76 100644 --- a/configs/sama5d4-ek/bridge/defconfig +++ b/configs/sama5d4-ek/bridge/defconfig @@ -645,7 +645,7 @@ CONFIG_USART3_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sama5d4-ek/dramboot/defconfig b/configs/sama5d4-ek/dramboot/defconfig index 23d90c581f..d0e5a8da56 100644 --- a/configs/sama5d4-ek/dramboot/defconfig +++ b/configs/sama5d4-ek/dramboot/defconfig @@ -562,7 +562,7 @@ CONFIG_USART3_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sama5d4-ek/elf/defconfig b/configs/sama5d4-ek/elf/defconfig index 0e86c3b169..233ce84fc6 100644 --- a/configs/sama5d4-ek/elf/defconfig +++ b/configs/sama5d4-ek/elf/defconfig @@ -588,7 +588,7 @@ CONFIG_USART4_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sama5d4-ek/ipv6/defconfig b/configs/sama5d4-ek/ipv6/defconfig index 810e9f32a3..d0b3c36156 100644 --- a/configs/sama5d4-ek/ipv6/defconfig +++ b/configs/sama5d4-ek/ipv6/defconfig @@ -789,7 +789,7 @@ CONFIG_USART4_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sama5d4-ek/knsh/defconfig b/configs/sama5d4-ek/knsh/defconfig index 7a3486bea8..e2a4818b0b 100644 --- a/configs/sama5d4-ek/knsh/defconfig +++ b/configs/sama5d4-ek/knsh/defconfig @@ -617,7 +617,7 @@ CONFIG_USART4_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sama5d4-ek/nsh/defconfig b/configs/sama5d4-ek/nsh/defconfig index 4f59fa7ada..78afd6d449 100644 --- a/configs/sama5d4-ek/nsh/defconfig +++ b/configs/sama5d4-ek/nsh/defconfig @@ -791,7 +791,7 @@ CONFIG_USART4_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sama5d4-ek/nxwm/defconfig b/configs/sama5d4-ek/nxwm/defconfig index f840a9f9dc..5e3cb961d5 100644 --- a/configs/sama5d4-ek/nxwm/defconfig +++ b/configs/sama5d4-ek/nxwm/defconfig @@ -760,7 +760,7 @@ CONFIG_USART4_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sama5d4-ek/ramtest/defconfig b/configs/sama5d4-ek/ramtest/defconfig index 153037793a..812658acad 100644 --- a/configs/sama5d4-ek/ramtest/defconfig +++ b/configs/sama5d4-ek/ramtest/defconfig @@ -562,7 +562,7 @@ CONFIG_USART3_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/samd20-xplained/nsh/defconfig b/configs/samd20-xplained/nsh/defconfig index 6e03c08e36..1034f8f4ba 100644 --- a/configs/samd20-xplained/nsh/defconfig +++ b/configs/samd20-xplained/nsh/defconfig @@ -491,7 +491,7 @@ CONFIG_USART4_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/samd21-xplained/nsh/defconfig b/configs/samd21-xplained/nsh/defconfig index 0ce38b45a5..57dd571fb1 100644 --- a/configs/samd21-xplained/nsh/defconfig +++ b/configs/samd21-xplained/nsh/defconfig @@ -489,7 +489,7 @@ CONFIG_USART4_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/same70-xplained/netnsh/defconfig b/configs/same70-xplained/netnsh/defconfig index af584036e9..b075b8123f 100644 --- a/configs/same70-xplained/netnsh/defconfig +++ b/configs/same70-xplained/netnsh/defconfig @@ -676,7 +676,7 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/same70-xplained/nsh/defconfig b/configs/same70-xplained/nsh/defconfig index cfdfa0d664..c00de67abe 100644 --- a/configs/same70-xplained/nsh/defconfig +++ b/configs/same70-xplained/nsh/defconfig @@ -618,7 +618,7 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/saml21-xplained/nsh/defconfig b/configs/saml21-xplained/nsh/defconfig index 5c7b2554ef..6ba6ee32eb 100644 --- a/configs/saml21-xplained/nsh/defconfig +++ b/configs/saml21-xplained/nsh/defconfig @@ -477,7 +477,7 @@ CONFIG_USART4_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/samv71-xult/knsh/defconfig b/configs/samv71-xult/knsh/defconfig index 0a81b36de3..de6d5d57f6 100644 --- a/configs/samv71-xult/knsh/defconfig +++ b/configs/samv71-xult/knsh/defconfig @@ -633,7 +633,7 @@ CONFIG_UART3_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/samv71-xult/module/defconfig b/configs/samv71-xult/module/defconfig index 24cbcbf921..b55a4699a4 100644 --- a/configs/samv71-xult/module/defconfig +++ b/configs/samv71-xult/module/defconfig @@ -549,7 +549,7 @@ CONFIG_UART3_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/samv71-xult/mxtxplnd/defconfig b/configs/samv71-xult/mxtxplnd/defconfig index 8bf035722d..c62abbd119 100644 --- a/configs/samv71-xult/mxtxplnd/defconfig +++ b/configs/samv71-xult/mxtxplnd/defconfig @@ -666,7 +666,7 @@ CONFIG_USART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/samv71-xult/netnsh/defconfig b/configs/samv71-xult/netnsh/defconfig index 2679a4e87d..ccc9adb0d8 100644 --- a/configs/samv71-xult/netnsh/defconfig +++ b/configs/samv71-xult/netnsh/defconfig @@ -685,7 +685,7 @@ CONFIG_UART3_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/samv71-xult/nsh/defconfig b/configs/samv71-xult/nsh/defconfig index 9928909cc2..8734da8581 100644 --- a/configs/samv71-xult/nsh/defconfig +++ b/configs/samv71-xult/nsh/defconfig @@ -626,7 +626,7 @@ CONFIG_UART3_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/samv71-xult/nxwm/defconfig b/configs/samv71-xult/nxwm/defconfig index 2219025898..b331629d77 100644 --- a/configs/samv71-xult/nxwm/defconfig +++ b/configs/samv71-xult/nxwm/defconfig @@ -675,7 +675,7 @@ CONFIG_USART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/samv71-xult/vnc/defconfig b/configs/samv71-xult/vnc/defconfig index 10e81a69c0..8aad6db72b 100644 --- a/configs/samv71-xult/vnc/defconfig +++ b/configs/samv71-xult/vnc/defconfig @@ -687,7 +687,7 @@ CONFIG_UART3_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/samv71-xult/vnxwm/defconfig b/configs/samv71-xult/vnxwm/defconfig index f8da5a4d2a..6e9f662f49 100644 --- a/configs/samv71-xult/vnxwm/defconfig +++ b/configs/samv71-xult/vnxwm/defconfig @@ -690,7 +690,7 @@ CONFIG_UART3_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/shenzhou/nsh/defconfig b/configs/shenzhou/nsh/defconfig index a898e892fa..3297dca5ae 100644 --- a/configs/shenzhou/nsh/defconfig +++ b/configs/shenzhou/nsh/defconfig @@ -795,7 +795,7 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/shenzhou/nxwm/defconfig b/configs/shenzhou/nxwm/defconfig index 1a65817255..842129754b 100644 --- a/configs/shenzhou/nxwm/defconfig +++ b/configs/shenzhou/nxwm/defconfig @@ -864,7 +864,7 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/shenzhou/thttpd/defconfig b/configs/shenzhou/thttpd/defconfig index 8d2906964b..cbc5ad6cd5 100644 --- a/configs/shenzhou/thttpd/defconfig +++ b/configs/shenzhou/thttpd/defconfig @@ -847,7 +847,7 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sim/bas/defconfig b/configs/sim/bas/defconfig index 10612b3dc0..a20524034a 100644 --- a/configs/sim/bas/defconfig +++ b/configs/sim/bas/defconfig @@ -326,7 +326,7 @@ CONFIG_SERIAL=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sim/configdata/defconfig b/configs/sim/configdata/defconfig index 0314587f0e..3da0ca88e8 100644 --- a/configs/sim/configdata/defconfig +++ b/configs/sim/configdata/defconfig @@ -347,7 +347,7 @@ CONFIG_SERIAL=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sim/cxxtest/defconfig b/configs/sim/cxxtest/defconfig index e924e7800e..bd146760dc 100644 --- a/configs/sim/cxxtest/defconfig +++ b/configs/sim/cxxtest/defconfig @@ -338,7 +338,7 @@ CONFIG_SERIAL=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sim/mount/defconfig b/configs/sim/mount/defconfig index 5c4eb1d6e0..e95d92e04a 100644 --- a/configs/sim/mount/defconfig +++ b/configs/sim/mount/defconfig @@ -337,7 +337,7 @@ CONFIG_SERIAL=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sim/mtdpart/defconfig b/configs/sim/mtdpart/defconfig index a328762747..ac90d3010b 100644 --- a/configs/sim/mtdpart/defconfig +++ b/configs/sim/mtdpart/defconfig @@ -345,7 +345,7 @@ CONFIG_SERIAL=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sim/mtdrwb/defconfig b/configs/sim/mtdrwb/defconfig index 571f18533a..18f38462f0 100644 --- a/configs/sim/mtdrwb/defconfig +++ b/configs/sim/mtdrwb/defconfig @@ -376,7 +376,7 @@ CONFIG_SERIAL=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sim/nettest/defconfig b/configs/sim/nettest/defconfig index 3af47e06be..d5a3b82651 100644 --- a/configs/sim/nettest/defconfig +++ b/configs/sim/nettest/defconfig @@ -329,7 +329,7 @@ CONFIG_SERIAL=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sim/nsh/defconfig b/configs/sim/nsh/defconfig index 4e902cdd97..d486dc1b47 100644 --- a/configs/sim/nsh/defconfig +++ b/configs/sim/nsh/defconfig @@ -335,7 +335,7 @@ CONFIG_SERIAL=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sim/nsh2/defconfig b/configs/sim/nsh2/defconfig index bc5284cbb9..4ff288e484 100644 --- a/configs/sim/nsh2/defconfig +++ b/configs/sim/nsh2/defconfig @@ -335,7 +335,7 @@ CONFIG_SERIAL=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sim/nx/defconfig b/configs/sim/nx/defconfig index d5916dcf3f..14c4f15105 100644 --- a/configs/sim/nx/defconfig +++ b/configs/sim/nx/defconfig @@ -341,7 +341,7 @@ CONFIG_SERIAL=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sim/nx11/defconfig b/configs/sim/nx11/defconfig index 0294810ce6..5db318657f 100644 --- a/configs/sim/nx11/defconfig +++ b/configs/sim/nx11/defconfig @@ -342,7 +342,7 @@ CONFIG_SERIAL=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sim/nxffs/defconfig b/configs/sim/nxffs/defconfig index ef9da62a03..167222da6c 100644 --- a/configs/sim/nxffs/defconfig +++ b/configs/sim/nxffs/defconfig @@ -322,7 +322,7 @@ CONFIG_SERIAL=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sim/nxlines/defconfig b/configs/sim/nxlines/defconfig index f5203f2eab..b31cb37fa4 100644 --- a/configs/sim/nxlines/defconfig +++ b/configs/sim/nxlines/defconfig @@ -333,7 +333,7 @@ CONFIG_SERIAL=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sim/nxwm/defconfig b/configs/sim/nxwm/defconfig index 8742564c7f..1c872a8792 100644 --- a/configs/sim/nxwm/defconfig +++ b/configs/sim/nxwm/defconfig @@ -332,7 +332,7 @@ CONFIG_SERIAL=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sim/ostest/defconfig b/configs/sim/ostest/defconfig index f61883db30..b5065b098b 100644 --- a/configs/sim/ostest/defconfig +++ b/configs/sim/ostest/defconfig @@ -349,7 +349,7 @@ CONFIG_SERIAL=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sim/pashello/defconfig b/configs/sim/pashello/defconfig index 14ec247fe3..2fed08f743 100644 --- a/configs/sim/pashello/defconfig +++ b/configs/sim/pashello/defconfig @@ -314,7 +314,7 @@ CONFIG_SERIAL=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sim/touchscreen/defconfig b/configs/sim/touchscreen/defconfig index 81427b8052..5887fafd2a 100644 --- a/configs/sim/touchscreen/defconfig +++ b/configs/sim/touchscreen/defconfig @@ -364,7 +364,7 @@ CONFIG_SERIAL=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sim/traveler/defconfig b/configs/sim/traveler/defconfig index cd2c8b1874..86e5d9cc77 100644 --- a/configs/sim/traveler/defconfig +++ b/configs/sim/traveler/defconfig @@ -356,7 +356,7 @@ CONFIG_SERIAL=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sim/udgram/defconfig b/configs/sim/udgram/defconfig index 763bdaa487..e4b3854ac5 100644 --- a/configs/sim/udgram/defconfig +++ b/configs/sim/udgram/defconfig @@ -341,7 +341,7 @@ CONFIG_SERIAL=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sim/unionfs/defconfig b/configs/sim/unionfs/defconfig index f11a56efe5..5646c7bccd 100644 --- a/configs/sim/unionfs/defconfig +++ b/configs/sim/unionfs/defconfig @@ -326,7 +326,7 @@ CONFIG_SERIAL=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sim/ustream/defconfig b/configs/sim/ustream/defconfig index 474aa994af..14d9bde879 100644 --- a/configs/sim/ustream/defconfig +++ b/configs/sim/ustream/defconfig @@ -341,7 +341,7 @@ CONFIG_SERIAL=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/spark/composite/defconfig b/configs/spark/composite/defconfig index d78c09d01c..deade5be0d 100644 --- a/configs/spark/composite/defconfig +++ b/configs/spark/composite/defconfig @@ -753,7 +753,7 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/spark/nsh/defconfig b/configs/spark/nsh/defconfig index 53e251c717..abf2cc0c74 100644 --- a/configs/spark/nsh/defconfig +++ b/configs/spark/nsh/defconfig @@ -752,7 +752,7 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/spark/usbmsc/defconfig b/configs/spark/usbmsc/defconfig index 7c4e8c62fc..40f168ecb9 100644 --- a/configs/spark/usbmsc/defconfig +++ b/configs/spark/usbmsc/defconfig @@ -752,7 +752,7 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/spark/usbnsh/defconfig b/configs/spark/usbnsh/defconfig index eb2d2eea5a..98276db077 100644 --- a/configs/spark/usbnsh/defconfig +++ b/configs/spark/usbnsh/defconfig @@ -746,7 +746,7 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/spark/usbserial/defconfig b/configs/spark/usbserial/defconfig index 41c0c1fa21..384fabd4ef 100644 --- a/configs/spark/usbserial/defconfig +++ b/configs/spark/usbserial/defconfig @@ -750,7 +750,7 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm3210e-eval/buttons/defconfig b/configs/stm3210e-eval/buttons/defconfig index e6848e1f89..01a52f0289 100644 --- a/configs/stm3210e-eval/buttons/defconfig +++ b/configs/stm3210e-eval/buttons/defconfig @@ -699,7 +699,7 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm3210e-eval/composite/defconfig b/configs/stm3210e-eval/composite/defconfig index 3420565c80..e1bbc75a38 100644 --- a/configs/stm3210e-eval/composite/defconfig +++ b/configs/stm3210e-eval/composite/defconfig @@ -772,7 +772,7 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm3210e-eval/nsh/defconfig b/configs/stm3210e-eval/nsh/defconfig index 9bb9a5f3bc..9c49ac8d79 100644 --- a/configs/stm3210e-eval/nsh/defconfig +++ b/configs/stm3210e-eval/nsh/defconfig @@ -774,7 +774,7 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm3210e-eval/nsh2/defconfig b/configs/stm3210e-eval/nsh2/defconfig index 66b8badc40..6b8140c65e 100644 --- a/configs/stm3210e-eval/nsh2/defconfig +++ b/configs/stm3210e-eval/nsh2/defconfig @@ -831,7 +831,7 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm3210e-eval/nx/defconfig b/configs/stm3210e-eval/nx/defconfig index ee313594ee..ea4fb79de3 100644 --- a/configs/stm3210e-eval/nx/defconfig +++ b/configs/stm3210e-eval/nx/defconfig @@ -769,7 +769,7 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm3210e-eval/nxterm/defconfig b/configs/stm3210e-eval/nxterm/defconfig index 3faf96f681..ddbf57bf91 100644 --- a/configs/stm3210e-eval/nxterm/defconfig +++ b/configs/stm3210e-eval/nxterm/defconfig @@ -765,7 +765,7 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm3210e-eval/pm/defconfig b/configs/stm3210e-eval/pm/defconfig index baf09a83e3..c08457d8fb 100644 --- a/configs/stm3210e-eval/pm/defconfig +++ b/configs/stm3210e-eval/pm/defconfig @@ -806,7 +806,7 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm3210e-eval/usbmsc/defconfig b/configs/stm3210e-eval/usbmsc/defconfig index b04190c61b..8608819a2d 100644 --- a/configs/stm3210e-eval/usbmsc/defconfig +++ b/configs/stm3210e-eval/usbmsc/defconfig @@ -737,7 +737,7 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm3210e-eval/usbserial/defconfig b/configs/stm3210e-eval/usbserial/defconfig index b407c244d4..73fcaa4f96 100644 --- a/configs/stm3210e-eval/usbserial/defconfig +++ b/configs/stm3210e-eval/usbserial/defconfig @@ -713,7 +713,7 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm3220g-eval/dhcpd/defconfig b/configs/stm3220g-eval/dhcpd/defconfig index c16e35a82b..2e500266ce 100644 --- a/configs/stm3220g-eval/dhcpd/defconfig +++ b/configs/stm3220g-eval/dhcpd/defconfig @@ -766,7 +766,7 @@ CONFIG_USART3_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm3220g-eval/nettest/defconfig b/configs/stm3220g-eval/nettest/defconfig index 93d3dece48..e5b82e2731 100644 --- a/configs/stm3220g-eval/nettest/defconfig +++ b/configs/stm3220g-eval/nettest/defconfig @@ -767,7 +767,7 @@ CONFIG_USART3_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm3220g-eval/nsh/defconfig b/configs/stm3220g-eval/nsh/defconfig index cb9c296fd2..026d5f7d0e 100644 --- a/configs/stm3220g-eval/nsh/defconfig +++ b/configs/stm3220g-eval/nsh/defconfig @@ -831,7 +831,7 @@ CONFIG_USART3_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm3220g-eval/nsh2/defconfig b/configs/stm3220g-eval/nsh2/defconfig index 9f97e87db8..cbf5d4adb9 100644 --- a/configs/stm3220g-eval/nsh2/defconfig +++ b/configs/stm3220g-eval/nsh2/defconfig @@ -855,7 +855,7 @@ CONFIG_SERIAL=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm3220g-eval/nxwm/defconfig b/configs/stm3220g-eval/nxwm/defconfig index 15aef8b8ae..9fa572fec7 100644 --- a/configs/stm3220g-eval/nxwm/defconfig +++ b/configs/stm3220g-eval/nxwm/defconfig @@ -881,7 +881,7 @@ CONFIG_USART3_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm3220g-eval/telnetd/defconfig b/configs/stm3220g-eval/telnetd/defconfig index e0415e6c86..738ca2ab57 100644 --- a/configs/stm3220g-eval/telnetd/defconfig +++ b/configs/stm3220g-eval/telnetd/defconfig @@ -769,7 +769,7 @@ CONFIG_USART3_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm3240g-eval/dhcpd/defconfig b/configs/stm3240g-eval/dhcpd/defconfig index c35e27000d..e4fcfe4d1e 100644 --- a/configs/stm3240g-eval/dhcpd/defconfig +++ b/configs/stm3240g-eval/dhcpd/defconfig @@ -775,7 +775,7 @@ CONFIG_USART3_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm3240g-eval/discover/defconfig b/configs/stm3240g-eval/discover/defconfig index 31a1892156..35e267a0ba 100644 --- a/configs/stm3240g-eval/discover/defconfig +++ b/configs/stm3240g-eval/discover/defconfig @@ -798,7 +798,7 @@ CONFIG_USART3_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm3240g-eval/knxwm/defconfig b/configs/stm3240g-eval/knxwm/defconfig index 061aac6b43..9f9e8b6670 100644 --- a/configs/stm3240g-eval/knxwm/defconfig +++ b/configs/stm3240g-eval/knxwm/defconfig @@ -833,7 +833,7 @@ CONFIG_USART3_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm3240g-eval/nettest/defconfig b/configs/stm3240g-eval/nettest/defconfig index 610ca1be31..e308846a28 100644 --- a/configs/stm3240g-eval/nettest/defconfig +++ b/configs/stm3240g-eval/nettest/defconfig @@ -776,7 +776,7 @@ CONFIG_USART3_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm3240g-eval/nsh/defconfig b/configs/stm3240g-eval/nsh/defconfig index 2c196aef7c..4753f79a50 100644 --- a/configs/stm3240g-eval/nsh/defconfig +++ b/configs/stm3240g-eval/nsh/defconfig @@ -818,7 +818,7 @@ CONFIG_USART3_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm3240g-eval/nsh2/defconfig b/configs/stm3240g-eval/nsh2/defconfig index f187f1f3e2..68b6c07da7 100644 --- a/configs/stm3240g-eval/nsh2/defconfig +++ b/configs/stm3240g-eval/nsh2/defconfig @@ -865,7 +865,7 @@ CONFIG_SERIAL=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm3240g-eval/nxterm/defconfig b/configs/stm3240g-eval/nxterm/defconfig index 1f7313510c..37325cb201 100644 --- a/configs/stm3240g-eval/nxterm/defconfig +++ b/configs/stm3240g-eval/nxterm/defconfig @@ -856,7 +856,7 @@ CONFIG_USART3_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm3240g-eval/nxwm/defconfig b/configs/stm3240g-eval/nxwm/defconfig index eb8cd41b88..8502894b90 100644 --- a/configs/stm3240g-eval/nxwm/defconfig +++ b/configs/stm3240g-eval/nxwm/defconfig @@ -883,7 +883,7 @@ CONFIG_USART3_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm3240g-eval/telnetd/defconfig b/configs/stm3240g-eval/telnetd/defconfig index 89a9e56811..762057caee 100644 --- a/configs/stm3240g-eval/telnetd/defconfig +++ b/configs/stm3240g-eval/telnetd/defconfig @@ -778,7 +778,7 @@ CONFIG_USART3_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm3240g-eval/webserver/defconfig b/configs/stm3240g-eval/webserver/defconfig index 3a354ffe1e..73f147bd86 100644 --- a/configs/stm3240g-eval/webserver/defconfig +++ b/configs/stm3240g-eval/webserver/defconfig @@ -835,7 +835,7 @@ CONFIG_USART3_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm3240g-eval/xmlrpc/defconfig b/configs/stm3240g-eval/xmlrpc/defconfig index eed2e74eac..f554369996 100644 --- a/configs/stm3240g-eval/xmlrpc/defconfig +++ b/configs/stm3240g-eval/xmlrpc/defconfig @@ -793,7 +793,7 @@ CONFIG_USART3_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm32_tiny/nsh/defconfig b/configs/stm32_tiny/nsh/defconfig index 04c18e2a5b..4d6fe80db6 100644 --- a/configs/stm32_tiny/nsh/defconfig +++ b/configs/stm32_tiny/nsh/defconfig @@ -709,7 +709,7 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm32_tiny/usbnsh/defconfig b/configs/stm32_tiny/usbnsh/defconfig index 615661a59f..f41ed2a4c7 100644 --- a/configs/stm32_tiny/usbnsh/defconfig +++ b/configs/stm32_tiny/usbnsh/defconfig @@ -684,7 +684,7 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm32f103-minimum/nsh/defconfig b/configs/stm32f103-minimum/nsh/defconfig index 112024f44c..99ea938945 100644 --- a/configs/stm32f103-minimum/nsh/defconfig +++ b/configs/stm32f103-minimum/nsh/defconfig @@ -701,7 +701,7 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm32f103-minimum/usbnsh/defconfig b/configs/stm32f103-minimum/usbnsh/defconfig index 28a086c365..d585efcdaf 100644 --- a/configs/stm32f103-minimum/usbnsh/defconfig +++ b/configs/stm32f103-minimum/usbnsh/defconfig @@ -698,7 +698,7 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm32f3discovery/nsh/defconfig b/configs/stm32f3discovery/nsh/defconfig index 01a6528649..b93c3498c7 100644 --- a/configs/stm32f3discovery/nsh/defconfig +++ b/configs/stm32f3discovery/nsh/defconfig @@ -707,7 +707,7 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm32f3discovery/usbnsh/defconfig b/configs/stm32f3discovery/usbnsh/defconfig index 1d6fc16d75..65e440461e 100644 --- a/configs/stm32f3discovery/usbnsh/defconfig +++ b/configs/stm32f3discovery/usbnsh/defconfig @@ -730,7 +730,7 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm32f411e-disco/nsh/defconfig b/configs/stm32f411e-disco/nsh/defconfig index 91487c5e70..f9798b8b4c 100644 --- a/configs/stm32f411e-disco/nsh/defconfig +++ b/configs/stm32f411e-disco/nsh/defconfig @@ -699,7 +699,7 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm32f429i-disco/extflash/defconfig b/configs/stm32f429i-disco/extflash/defconfig index 62ce07c04c..9b287af9a8 100644 --- a/configs/stm32f429i-disco/extflash/defconfig +++ b/configs/stm32f429i-disco/extflash/defconfig @@ -805,7 +805,7 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm32f429i-disco/lcd/defconfig b/configs/stm32f429i-disco/lcd/defconfig index 651d9f6e1d..a08f4b3c95 100644 --- a/configs/stm32f429i-disco/lcd/defconfig +++ b/configs/stm32f429i-disco/lcd/defconfig @@ -777,7 +777,7 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm32f429i-disco/ltdc/defconfig b/configs/stm32f429i-disco/ltdc/defconfig index f55fce7af8..c92f562842 100644 --- a/configs/stm32f429i-disco/ltdc/defconfig +++ b/configs/stm32f429i-disco/ltdc/defconfig @@ -819,7 +819,7 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm32f429i-disco/nsh/defconfig b/configs/stm32f429i-disco/nsh/defconfig index f27c26bc1e..19f025f718 100644 --- a/configs/stm32f429i-disco/nsh/defconfig +++ b/configs/stm32f429i-disco/nsh/defconfig @@ -735,7 +735,7 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm32f429i-disco/usbmsc/defconfig b/configs/stm32f429i-disco/usbmsc/defconfig index dab3a48e94..787b971c75 100644 --- a/configs/stm32f429i-disco/usbmsc/defconfig +++ b/configs/stm32f429i-disco/usbmsc/defconfig @@ -759,7 +759,7 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm32f429i-disco/usbnsh/defconfig b/configs/stm32f429i-disco/usbnsh/defconfig index 5619ff645c..cdb9f816a1 100644 --- a/configs/stm32f429i-disco/usbnsh/defconfig +++ b/configs/stm32f429i-disco/usbnsh/defconfig @@ -743,7 +743,7 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm32f4discovery/cxxtest/defconfig b/configs/stm32f4discovery/cxxtest/defconfig index 197b9b0832..c066ec4d92 100644 --- a/configs/stm32f4discovery/cxxtest/defconfig +++ b/configs/stm32f4discovery/cxxtest/defconfig @@ -729,7 +729,7 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm32f4discovery/elf/defconfig b/configs/stm32f4discovery/elf/defconfig index 9ee41a8fd2..380e140539 100644 --- a/configs/stm32f4discovery/elf/defconfig +++ b/configs/stm32f4discovery/elf/defconfig @@ -729,7 +729,7 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm32f4discovery/ipv6/defconfig b/configs/stm32f4discovery/ipv6/defconfig index 1fc8d6d5de..dc0ad8bc87 100644 --- a/configs/stm32f4discovery/ipv6/defconfig +++ b/configs/stm32f4discovery/ipv6/defconfig @@ -839,7 +839,7 @@ CONFIG_SERIAL=y CONFIG_USART6_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm32f4discovery/kostest/defconfig b/configs/stm32f4discovery/kostest/defconfig index ba40ab8494..8186a529a8 100644 --- a/configs/stm32f4discovery/kostest/defconfig +++ b/configs/stm32f4discovery/kostest/defconfig @@ -737,7 +737,7 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm32f4discovery/netnsh/defconfig b/configs/stm32f4discovery/netnsh/defconfig index 8a70b69dc2..501b9af147 100644 --- a/configs/stm32f4discovery/netnsh/defconfig +++ b/configs/stm32f4discovery/netnsh/defconfig @@ -844,7 +844,7 @@ CONFIG_SERIAL=y CONFIG_USART6_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm32f4discovery/nsh/defconfig b/configs/stm32f4discovery/nsh/defconfig index 1051360e33..67b36f6bf7 100644 --- a/configs/stm32f4discovery/nsh/defconfig +++ b/configs/stm32f4discovery/nsh/defconfig @@ -744,7 +744,7 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm32f4discovery/nxlines/defconfig b/configs/stm32f4discovery/nxlines/defconfig index dde5b975c3..b3c3b96fe7 100644 --- a/configs/stm32f4discovery/nxlines/defconfig +++ b/configs/stm32f4discovery/nxlines/defconfig @@ -784,7 +784,7 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm32f4discovery/pm/defconfig b/configs/stm32f4discovery/pm/defconfig index 6694488704..f1fe7b04ae 100644 --- a/configs/stm32f4discovery/pm/defconfig +++ b/configs/stm32f4discovery/pm/defconfig @@ -750,7 +750,7 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm32f4discovery/posix_spawn/defconfig b/configs/stm32f4discovery/posix_spawn/defconfig index c8df3ce0fd..378411766c 100644 --- a/configs/stm32f4discovery/posix_spawn/defconfig +++ b/configs/stm32f4discovery/posix_spawn/defconfig @@ -729,7 +729,7 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm32f4discovery/rgbled/defconfig b/configs/stm32f4discovery/rgbled/defconfig index 7034b2796b..b015db193f 100644 --- a/configs/stm32f4discovery/rgbled/defconfig +++ b/configs/stm32f4discovery/rgbled/defconfig @@ -778,7 +778,7 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm32f4discovery/usbnsh/defconfig b/configs/stm32f4discovery/usbnsh/defconfig index 4147d1888a..bff1f81969 100644 --- a/configs/stm32f4discovery/usbnsh/defconfig +++ b/configs/stm32f4discovery/usbnsh/defconfig @@ -752,7 +752,7 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm32f4discovery/winbuild/defconfig b/configs/stm32f4discovery/winbuild/defconfig index d686989c41..aa65746a5e 100644 --- a/configs/stm32f4discovery/winbuild/defconfig +++ b/configs/stm32f4discovery/winbuild/defconfig @@ -679,7 +679,7 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm32f746g-disco/knsh/defconfig b/configs/stm32f746g-disco/knsh/defconfig index 48dd3b93cb..322c5220be 100644 --- a/configs/stm32f746g-disco/knsh/defconfig +++ b/configs/stm32f746g-disco/knsh/defconfig @@ -515,7 +515,7 @@ CONFIG_SERIAL=y CONFIG_USART6_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm32f746g-disco/netnsh/defconfig b/configs/stm32f746g-disco/netnsh/defconfig index e8a17317bf..16e82125a5 100644 --- a/configs/stm32f746g-disco/netnsh/defconfig +++ b/configs/stm32f746g-disco/netnsh/defconfig @@ -574,7 +574,7 @@ CONFIG_SERIAL=y CONFIG_USART6_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm32f746g-disco/nsh/defconfig b/configs/stm32f746g-disco/nsh/defconfig index 3675403ac6..a50b4c08f8 100644 --- a/configs/stm32f746g-disco/nsh/defconfig +++ b/configs/stm32f746g-disco/nsh/defconfig @@ -507,7 +507,7 @@ CONFIG_SERIAL=y CONFIG_USART6_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm32l476vg-disco/nsh/defconfig b/configs/stm32l476vg-disco/nsh/defconfig index 657a76fd4b..bd10662dfe 100644 --- a/configs/stm32l476vg-disco/nsh/defconfig +++ b/configs/stm32l476vg-disco/nsh/defconfig @@ -628,7 +628,7 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm32ldiscovery/nsh/defconfig b/configs/stm32ldiscovery/nsh/defconfig index b6fe71adfb..d0aa56aba7 100644 --- a/configs/stm32ldiscovery/nsh/defconfig +++ b/configs/stm32ldiscovery/nsh/defconfig @@ -690,7 +690,7 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/stm32vldiscovery/nsh/defconfig b/configs/stm32vldiscovery/nsh/defconfig index 7aad3fbfd0..edd007cacf 100644 --- a/configs/stm32vldiscovery/nsh/defconfig +++ b/configs/stm32vldiscovery/nsh/defconfig @@ -709,7 +709,7 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sure-pic32mx/nsh/defconfig b/configs/sure-pic32mx/nsh/defconfig index 2ea2329a44..25e91c17f2 100644 --- a/configs/sure-pic32mx/nsh/defconfig +++ b/configs/sure-pic32mx/nsh/defconfig @@ -504,7 +504,7 @@ CONFIG_UART2_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/sure-pic32mx/usbnsh/defconfig b/configs/sure-pic32mx/usbnsh/defconfig index b2a058432c..572454b95a 100644 --- a/configs/sure-pic32mx/usbnsh/defconfig +++ b/configs/sure-pic32mx/usbnsh/defconfig @@ -506,7 +506,7 @@ CONFIG_UART2_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/teensy-2.0/hello/defconfig b/configs/teensy-2.0/hello/defconfig index a0cb148489..8025d62e93 100644 --- a/configs/teensy-2.0/hello/defconfig +++ b/configs/teensy-2.0/hello/defconfig @@ -326,7 +326,7 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/teensy-2.0/nsh/defconfig b/configs/teensy-2.0/nsh/defconfig index 6f63eba4c9..058e74e9ff 100644 --- a/configs/teensy-2.0/nsh/defconfig +++ b/configs/teensy-2.0/nsh/defconfig @@ -337,7 +337,7 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/teensy-2.0/usbmsc/defconfig b/configs/teensy-2.0/usbmsc/defconfig index 4f6969d9ed..b38d5cad91 100644 --- a/configs/teensy-2.0/usbmsc/defconfig +++ b/configs/teensy-2.0/usbmsc/defconfig @@ -359,7 +359,7 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/teensy-3.x/nsh/defconfig b/configs/teensy-3.x/nsh/defconfig index ba0fb2b3c2..2b5dfa6aec 100644 --- a/configs/teensy-3.x/nsh/defconfig +++ b/configs/teensy-3.x/nsh/defconfig @@ -459,7 +459,7 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/teensy-lc/nsh/defconfig b/configs/teensy-lc/nsh/defconfig index a8443f0391..f19be23718 100644 --- a/configs/teensy-lc/nsh/defconfig +++ b/configs/teensy-lc/nsh/defconfig @@ -442,7 +442,7 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/tm4c123g-launchpad/nsh/defconfig b/configs/tm4c123g-launchpad/nsh/defconfig index 0db29f8f5d..454af5b842 100644 --- a/configs/tm4c123g-launchpad/nsh/defconfig +++ b/configs/tm4c123g-launchpad/nsh/defconfig @@ -474,7 +474,7 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/tm4c1294-launchpad/ipv6/defconfig b/configs/tm4c1294-launchpad/ipv6/defconfig index fdeb600618..d7d7d76412 100644 --- a/configs/tm4c1294-launchpad/ipv6/defconfig +++ b/configs/tm4c1294-launchpad/ipv6/defconfig @@ -504,7 +504,7 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/tm4c1294-launchpad/nsh/defconfig b/configs/tm4c1294-launchpad/nsh/defconfig index d7cc4c9299..6c504d9f42 100644 --- a/configs/tm4c1294-launchpad/nsh/defconfig +++ b/configs/tm4c1294-launchpad/nsh/defconfig @@ -541,7 +541,7 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/twr-k60n512/nsh/defconfig b/configs/twr-k60n512/nsh/defconfig index e6c4681ee7..ac65d4c025 100644 --- a/configs/twr-k60n512/nsh/defconfig +++ b/configs/twr-k60n512/nsh/defconfig @@ -443,7 +443,7 @@ CONFIG_UART3_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/u-blox-c027/nsh/defconfig b/configs/u-blox-c027/nsh/defconfig index 2fdda058bc..ca3feaaa15 100644 --- a/configs/u-blox-c027/nsh/defconfig +++ b/configs/u-blox-c027/nsh/defconfig @@ -583,7 +583,7 @@ CONFIG_UART3_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/ubw32/nsh/defconfig b/configs/ubw32/nsh/defconfig index 1093cc2204..b6ec91adbc 100644 --- a/configs/ubw32/nsh/defconfig +++ b/configs/ubw32/nsh/defconfig @@ -511,7 +511,7 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/viewtool-stm32f107/highpri/defconfig b/configs/viewtool-stm32f107/highpri/defconfig index eee4e0759e..c471b211f3 100644 --- a/configs/viewtool-stm32f107/highpri/defconfig +++ b/configs/viewtool-stm32f107/highpri/defconfig @@ -713,7 +713,7 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/viewtool-stm32f107/netnsh/defconfig b/configs/viewtool-stm32f107/netnsh/defconfig index a8414b13f6..a447f3b660 100644 --- a/configs/viewtool-stm32f107/netnsh/defconfig +++ b/configs/viewtool-stm32f107/netnsh/defconfig @@ -772,7 +772,7 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/viewtool-stm32f107/nsh/defconfig b/configs/viewtool-stm32f107/nsh/defconfig index 13d53cabf4..1a7b05a621 100644 --- a/configs/viewtool-stm32f107/nsh/defconfig +++ b/configs/viewtool-stm32f107/nsh/defconfig @@ -711,7 +711,7 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/z8encore000zco/ostest/defconfig b/configs/z8encore000zco/ostest/defconfig index b10682f15b..aa8fc95358 100644 --- a/configs/z8encore000zco/ostest/defconfig +++ b/configs/z8encore000zco/ostest/defconfig @@ -380,7 +380,7 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/z8f64200100kit/ostest/defconfig b/configs/z8f64200100kit/ostest/defconfig index ca73c23a13..df99499d71 100644 --- a/configs/z8f64200100kit/ostest/defconfig +++ b/configs/z8f64200100kit/ostest/defconfig @@ -380,7 +380,7 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/zkit-arm-1769/hello/defconfig b/configs/zkit-arm-1769/hello/defconfig index 33d115b299..4cbbb53954 100644 --- a/configs/zkit-arm-1769/hello/defconfig +++ b/configs/zkit-arm-1769/hello/defconfig @@ -479,7 +479,7 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/zkit-arm-1769/nsh/defconfig b/configs/zkit-arm-1769/nsh/defconfig index 7f10a4472b..250f73fecf 100644 --- a/configs/zkit-arm-1769/nsh/defconfig +++ b/configs/zkit-arm-1769/nsh/defconfig @@ -531,7 +531,7 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/zkit-arm-1769/nxhello/defconfig b/configs/zkit-arm-1769/nxhello/defconfig index c28a820c01..fb677a4b2f 100644 --- a/configs/zkit-arm-1769/nxhello/defconfig +++ b/configs/zkit-arm-1769/nxhello/defconfig @@ -573,7 +573,7 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/zkit-arm-1769/thttpd/defconfig b/configs/zkit-arm-1769/thttpd/defconfig index ea245dc1fe..5f7f9ab01a 100644 --- a/configs/zkit-arm-1769/thttpd/defconfig +++ b/configs/zkit-arm-1769/thttpd/defconfig @@ -478,7 +478,7 @@ CONFIG_UART0_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/zp214xpa/nsh/defconfig b/configs/zp214xpa/nsh/defconfig index 7f302699be..1fa5f238cc 100644 --- a/configs/zp214xpa/nsh/defconfig +++ b/configs/zp214xpa/nsh/defconfig @@ -385,7 +385,7 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/configs/zp214xpa/nxlines/defconfig b/configs/zp214xpa/nxlines/defconfig index ec394c3bd5..580c2a8070 100644 --- a/configs/zp214xpa/nxlines/defconfig +++ b/configs/zp214xpa/nxlines/defconfig @@ -424,7 +424,7 @@ CONFIG_UART1_SERIALDRIVER=y # CONFIG_USART6_SERIALDRIVER is not set # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_ARCH_HAVE_OTHER_UART is not set +# CONFIG_OTHER_UART_SERIALDRIVER is not set # # USART Configuration diff --git a/drivers/serial/Kconfig b/drivers/serial/Kconfig index f9bf3392e7..f524b2d7fb 100644 --- a/drivers/serial/Kconfig +++ b/drivers/serial/Kconfig @@ -443,7 +443,7 @@ config USART8_SERIALDRIVER bool default n -config ARCH_HAVE_OTHER_UART +config OTHER_UART_SERIALDRIVER bool default n select MCU_SERIAL @@ -609,8 +609,8 @@ config SERIAL_TERMIOS choice prompt "Serial console" - default NO_SERIAL_CONSOLE if !ARCH_HAVE_OTHER_UART - default OTHER_SERIAL_CONSOLE if ARCH_HAVE_OTHER_UART + default NO_SERIAL_CONSOLE if !OTHER_UART_SERIALDRIVER + default OTHER_SERIAL_CONSOLE if OTHER_UART_SERIALDRIVER depends on MCU_SERIAL #depends on DEV_CONSOLE - We may have serial console with no file system at all -- GitLab From 9ec104834aace58e88c792445f9337afde9537e4 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 25 May 2016 11:21:48 -0600 Subject: [PATCH 249/307] Remove CONFIG_USARTn_ISUART --- arch/arm/src/efm32/Kconfig | 9 +- arch/arm/src/sam34/sam_lowputc.c | 8 +- arch/arm/src/sam34/sam_serial.c | 8 +- arch/arm/src/sama5/sam_config.h | 20 +-- arch/arm/src/sama5/sam_flexcom_serial.c | 78 +++++------ arch/arm/src/sama5/sam_lowputc.c | 22 +-- arch/arm/src/sama5/sam_serial.c | 128 +++++++++--------- arch/arm/src/samdl/Kconfig | 6 - arch/arm/src/samdl/sam_config.h | 12 +- arch/arm/src/samv7/sam_config.h | 6 +- arch/arm/src/samv7/sam_serial.c | 70 +++++----- arch/arm/src/stm32f7/stm32_config.h | 6 +- arch/avr/src/at32uc3/Kconfig | 9 +- configs/amber/hello/defconfig | 1 - configs/arduino-due/README.txt | 12 +- configs/arduino-mega2560/hello/defconfig | 1 - configs/arduino-mega2560/nsh/defconfig | 1 - configs/avr32dev1/nsh/defconfig | 1 - configs/avr32dev1/ostest/defconfig | 1 - configs/cloudctrl/nsh/defconfig | 1 - configs/fire-stm32v2/nsh/defconfig | 2 - configs/hymini-stm32v/buttons/defconfig | 1 - configs/hymini-stm32v/nsh/defconfig | 1 - configs/hymini-stm32v/nsh2/defconfig | 1 - configs/hymini-stm32v/usbmsc/defconfig | 2 - configs/hymini-stm32v/usbnsh/defconfig | 1 - configs/hymini-stm32v/usbserial/defconfig | 2 - configs/lpc4330-xplorer/nsh/defconfig | 1 - configs/lpc4337-ws/nsh/defconfig | 1 - configs/lpc4357-evb/nsh/defconfig | 1 - configs/lpc4370-link2/nsh/defconfig | 1 - configs/maple/nsh/defconfig | 1 - configs/maple/nx/defconfig | 1 - configs/maple/usbnsh/defconfig | 1 - configs/micropendous3/hello/defconfig | 1 - configs/mikroe-stm32f4/fulldemo/defconfig | 1 - configs/mikroe-stm32f4/kostest/defconfig | 1 - configs/mikroe-stm32f4/nsh/defconfig | 1 - configs/mikroe-stm32f4/usbnsh/defconfig | 1 - configs/moteino-mega/hello/defconfig | 1 - configs/moteino-mega/nsh/defconfig | 1 - configs/nucleo-144/README.txt | 2 +- configs/nucleo-144/evalos/defconfig | 1 - configs/nucleo-144/nsh/defconfig | 1 - configs/nucleo-f4x1re/README.txt | 6 +- configs/nucleo-f4x1re/f401-nsh/defconfig | 1 - configs/nucleo-f4x1re/f411-nsh/defconfig | 1 - configs/nucleo-l476rg/README.txt | 6 +- configs/nucleo-l476rg/nsh/defconfig | 1 - configs/olimex-stm32-h405/usbnsh/defconfig | 1 - configs/olimex-stm32-h407/nsh/defconfig | 1 - configs/olimex-stm32-p107/nsh/defconfig | 1 - configs/olimex-stm32-p207/nsh/defconfig | 1 - configs/olimexino-stm32/can/defconfig | 1 - configs/olimexino-stm32/composite/defconfig | 2 - configs/olimexino-stm32/nsh/defconfig | 2 - configs/olimexino-stm32/smallnsh/defconfig | 1 - configs/olimexino-stm32/tiny/defconfig | 1 - configs/sam3u-ek/README.txt | 8 +- configs/sam4e-ek/README.txt | 8 +- configs/sam4e-ek/nsh/defconfig | 1 - configs/sam4e-ek/nxwm/defconfig | 1 - configs/sam4e-ek/src/sam_boot.c | 6 +- configs/sam4e-ek/usbnsh/defconfig | 1 - configs/sam4l-xplained/README.txt | 8 +- configs/sam4l-xplained/nsh/defconfig | 1 - configs/sam4s-xplained-pro/README.txt | 8 +- configs/sam4s-xplained-pro/nsh/defconfig | 1 - configs/sam4s-xplained/README.txt | 8 +- configs/sama5d2-xult/README.txt | 10 +- configs/sama5d2-xult/nsh/defconfig | 1 - configs/sama5d3-xplained/README.txt | 8 +- configs/sama5d3x-ek/README.txt | 8 +- configs/sama5d3x-ek/demo/defconfig | 1 - configs/sama5d3x-ek/hello/defconfig | 1 - configs/sama5d3x-ek/norboot/defconfig | 1 - configs/sama5d3x-ek/nsh/defconfig | 1 - configs/sama5d3x-ek/nx/defconfig | 1 - configs/sama5d3x-ek/nxplayer/defconfig | 1 - configs/sama5d3x-ek/nxwm/defconfig | 1 - configs/sama5d3x-ek/ov2640/defconfig | 1 - configs/sama5d4-ek/README.txt | 8 +- configs/sama5d4-ek/at25boot/defconfig | 1 - configs/sama5d4-ek/bridge/defconfig | 1 - configs/sama5d4-ek/dramboot/defconfig | 1 - configs/sama5d4-ek/elf/defconfig | 2 - configs/sama5d4-ek/ipv6/defconfig | 2 - configs/sama5d4-ek/knsh/defconfig | 2 - configs/sama5d4-ek/knsh/defconfig.ROMFS | 4 +- configs/sama5d4-ek/nsh/defconfig | 2 - configs/sama5d4-ek/nxwm/defconfig | 2 - configs/sama5d4-ek/ramtest/defconfig | 1 - configs/samd20-xplained/nsh/defconfig | 2 - configs/samd21-xplained/nsh/defconfig | 2 - configs/same70-xplained/README.txt | 2 +- configs/same70-xplained/netnsh/defconfig | 1 - configs/same70-xplained/nsh/defconfig | 1 - configs/saml21-xplained/nsh/defconfig | 2 - configs/samv71-xult/mxtxplnd/defconfig | 1 - configs/samv71-xult/nxwm/defconfig | 1 - configs/shenzhou/nsh/defconfig | 1 - configs/shenzhou/nxwm/defconfig | 1 - configs/shenzhou/thttpd/defconfig | 1 - configs/spark/composite/defconfig | 1 - configs/spark/nsh/defconfig | 1 - configs/spark/usbmsc/defconfig | 1 - configs/spark/usbnsh/defconfig | 1 - configs/spark/usbserial/defconfig | 1 - configs/stm3210e-eval/buttons/defconfig | 2 - configs/stm3210e-eval/composite/defconfig | 2 - configs/stm3210e-eval/nsh/defconfig | 2 - configs/stm3210e-eval/nsh2/defconfig | 2 - configs/stm3210e-eval/nx/defconfig | 2 - configs/stm3210e-eval/nxterm/defconfig | 2 - configs/stm3210e-eval/pm/defconfig | 2 - configs/stm3210e-eval/usbmsc/defconfig | 2 - configs/stm3210e-eval/usbserial/defconfig | 2 - configs/stm3220g-eval/dhcpd/defconfig | 1 - configs/stm3220g-eval/nettest/defconfig | 1 - configs/stm3220g-eval/nsh/defconfig | 1 - configs/stm3220g-eval/nxwm/defconfig | 1 - configs/stm3220g-eval/telnetd/defconfig | 1 - configs/stm3240g-eval/dhcpd/defconfig | 1 - configs/stm3240g-eval/discover/defconfig | 1 - configs/stm3240g-eval/knxwm/defconfig | 1 - configs/stm3240g-eval/nettest/defconfig | 1 - configs/stm3240g-eval/nsh/defconfig | 1 - configs/stm3240g-eval/nxterm/defconfig | 1 - configs/stm3240g-eval/nxwm/defconfig | 1 - configs/stm3240g-eval/telnetd/defconfig | 1 - configs/stm3240g-eval/webserver/defconfig | 1 - configs/stm3240g-eval/xmlrpc/defconfig | 1 - configs/stm32_tiny/nsh/defconfig | 1 - configs/stm32_tiny/usbnsh/defconfig | 1 - configs/stm32f103-minimum/nsh/defconfig | 1 - configs/stm32f103-minimum/usbnsh/defconfig | 1 - configs/stm32f3discovery/nsh/defconfig | 1 - configs/stm32f3discovery/usbnsh/defconfig | 1 - configs/stm32f411e-disco/nsh/defconfig | 1 - configs/stm32f429i-disco/extflash/defconfig | 1 - configs/stm32f429i-disco/lcd/defconfig | 1 - configs/stm32f429i-disco/ltdc/defconfig | 1 - configs/stm32f429i-disco/nsh/defconfig | 1 - configs/stm32f429i-disco/usbmsc/defconfig | 1 - configs/stm32f429i-disco/usbnsh/defconfig | 1 - configs/stm32f4discovery/cxxtest/defconfig | 1 - configs/stm32f4discovery/elf/defconfig | 1 - configs/stm32f4discovery/ipv6/defconfig | 1 - configs/stm32f4discovery/kostest/defconfig | 1 - configs/stm32f4discovery/netnsh/defconfig | 1 - configs/stm32f4discovery/nsh/defconfig | 1 - configs/stm32f4discovery/nxlines/defconfig | 1 - configs/stm32f4discovery/pm/defconfig | 1 - .../stm32f4discovery/posix_spawn/defconfig | 1 - configs/stm32f4discovery/rgbled/defconfig | 1 - configs/stm32f4discovery/usbnsh/defconfig | 1 - configs/stm32f4discovery/winbuild/defconfig | 1 - configs/stm32f746g-disco/knsh/defconfig | 1 - configs/stm32f746g-disco/netnsh/defconfig | 1 - configs/stm32f746g-disco/nsh/defconfig | 1 - configs/stm32l476vg-disco/README.txt | 6 +- configs/stm32l476vg-disco/nsh/defconfig | 1 - configs/stm32ldiscovery/nsh/defconfig | 1 - configs/stm32vldiscovery/nsh/defconfig | 1 - configs/teensy-2.0/hello/defconfig | 1 - configs/teensy-2.0/nsh/defconfig | 1 - configs/teensy-2.0/usbmsc/defconfig | 1 - configs/viewtool-stm32f107/highpri/defconfig | 1 - configs/viewtool-stm32f107/netnsh/defconfig | 1 - configs/viewtool-stm32f107/nsh/defconfig | 1 - drivers/serial/Kconfig | 103 ++++---------- 171 files changed, 270 insertions(+), 495 deletions(-) diff --git a/arch/arm/src/efm32/Kconfig b/arch/arm/src/efm32/Kconfig index e391183f97..ad1abfbfa0 100644 --- a/arch/arm/src/efm32/Kconfig +++ b/arch/arm/src/efm32/Kconfig @@ -157,20 +157,17 @@ config EFM32_BITBAND config EFM32_USART0 bool "USART0" default n - select USART0_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config EFM32_USART1 bool "USART1" default n - select USART1_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config EFM32_USART2 bool "USART2" default n depends on EFM32_HAVE_USART2 - select USART2_SERIALDRIVER select ARCH_HAVE_SERIAL_TERMIOS config EFM32_UART0 @@ -261,7 +258,7 @@ choice config EFM32_USART0_ISUART bool "USART0 is a UART" - select USART0_ISUART + select USART0_SERIALDRIVER select EFM32_USART_ISUART config EFM32_USART0_ISSPI @@ -277,7 +274,7 @@ choice config EFM32_USART1_ISUART bool "USART1 is a UART" - select USART1_ISUART + select USART1_SERIALDRIVER select EFM32_USART_ISUART config EFM32_USART1_ISSPI @@ -293,7 +290,7 @@ choice config EFM32_USART2_ISUART bool "USART2 is a UART" - select USART2_ISUART + select USART2_SERIALDRIVER select EFM32_USART_ISUART config EFM32_USART2_ISSPI diff --git a/arch/arm/src/sam34/sam_lowputc.c b/arch/arm/src/sam34/sam_lowputc.c index 88be9f0752..13d5046ef0 100644 --- a/arch/arm/src/sam34/sam_lowputc.c +++ b/arch/arm/src/sam34/sam_lowputc.c @@ -75,16 +75,16 @@ * for our purposes. */ -#ifndef CONFIG_USART0_ISUART +#ifndef CONFIG_USART0_SERIALDRIVER # undef CONFIG_SAM34_USART0 #endif -#ifndef CONFIG_USART1_ISUART +#ifndef CONFIG_USART1_SERIALDRIVER # undef CONFIG_SAM34_USART1 #endif -#ifndef CONFIG_USART2_ISUART +#ifndef CONFIG_USART2_SERIALDRIVER # undef CONFIG_SAM34_USART2 #endif -#ifndef CONFIG_USART3_ISUART +#ifndef CONFIG_USART3_SERIALDRIVER # undef CONFIG_SAM34_USART3 #endif diff --git a/arch/arm/src/sam34/sam_serial.c b/arch/arm/src/sam34/sam_serial.c index 306a1210ea..46df27954a 100644 --- a/arch/arm/src/sam34/sam_serial.c +++ b/arch/arm/src/sam34/sam_serial.c @@ -84,16 +84,16 @@ * for our purposes. */ -#ifndef CONFIG_USART0_ISUART +#ifndef CONFIG_USART0_SERIALDRIVER # undef CONFIG_SAM34_USART0 #endif -#ifndef CONFIG_USART1_ISUART +#ifndef CONFIG_USART1_SERIALDRIVER # undef CONFIG_SAM34_USART1 #endif -#ifndef CONFIG_USART2_ISUART +#ifndef CONFIG_USART2_SERIALDRIVER # undef CONFIG_SAM34_USART2 #endif -#ifndef CONFIG_USART3_ISUART +#ifndef CONFIG_USART3_SERIALDRIVER # undef CONFIG_SAM34_USART3 #endif diff --git a/arch/arm/src/sama5/sam_config.h b/arch/arm/src/sama5/sam_config.h index 650d6c1503..14ab9b8dcf 100644 --- a/arch/arm/src/sama5/sam_config.h +++ b/arch/arm/src/sama5/sam_config.h @@ -52,27 +52,27 @@ * for our purposes. */ -#ifndef CONFIG_USART0_ISUART +#ifndef CONFIG_USART0_SERIALDRIVER # undef CONFIG_SAMA5_USART0 # undef CONFIG_SAMA5_FLEXCOM0_USART # undef CONFIG_USART0_SERIAL_CONSOLE #endif -#ifndef CONFIG_USART1_ISUART +#ifndef CONFIG_USART1_SERIALDRIVER # undef CONFIG_SAMA5_USART1 # undef CONFIG_SAMA5_FLEXCOM1_USART # undef CONFIG_USART1_SERIAL_CONSOLE #endif -#ifndef CONFIG_USART2_ISUART +#ifndef CONFIG_USART2_SERIALDRIVER # undef CONFIG_SAMA5_USART2 # undef CONFIG_SAMA5_FLEXCOM2_USART # undef CONFIG_USART2_SERIAL_CONSOLE #endif -#ifndef CONFIG_USART3_ISUART +#ifndef CONFIG_USART3_SERIALDRIVER # undef CONFIG_SAMA5_USART3 # undef CONFIG_SAMA5_FLEXCOM3_USART # undef CONFIG_USART3_SERIAL_CONSOLE #endif -#ifndef CONFIG_USART4_ISUART +#ifndef CONFIG_USART4_SERIALDRIVER # undef CONFIG_SAMA5_USART4 # undef CONFIG_SAMA5_FLEXCOM4_USART # undef CONFIG_USART4_SERIAL_CONSOLE @@ -212,7 +212,7 @@ # define SAMA5_HAVE_UART_CONSOLE 1 # undef SAMA5_HAVE_USART_CONSOLE # undef SAMA5_HAVE_FLEXCOM_CONSOLE -#elif defined(CONFIG_USART0_SERIAL_CONSOLE) && defined(CONFIG_USART0_ISUART) +#elif defined(CONFIG_USART0_SERIAL_CONSOLE) && defined(CONFIG_USART0_SERIALDRIVER) # undef CONFIG_SAMA5_DBGU_CONSOLE # undef CONFIG_UART0_SERIAL_CONSOLE # undef CONFIG_UART1_SERIAL_CONSOLE @@ -227,7 +227,7 @@ # undef SAMA5_HAVE_UART_CONSOLE # define SAMA5_HAVE_USART_CONSOLE 1 # undef SAMA5_HAVE_FLEXCOM_CONSOLE -#elif defined(CONFIG_USART1_SERIAL_CONSOLE) && defined(CONFIG_USART1_ISUART) +#elif defined(CONFIG_USART1_SERIAL_CONSOLE) && defined(CONFIG_USART1_SERIALDRIVER) # undef CONFIG_SAMA5_DBGU_CONSOLE # undef CONFIG_UART0_SERIAL_CONSOLE # undef CONFIG_UART1_SERIAL_CONSOLE @@ -242,7 +242,7 @@ # undef SAMA5_HAVE_UART_CONSOLE # define SAMA5_HAVE_USART_CONSOLE 1 # undef SAMA5_HAVE_FLEXCOM_CONSOLE -#elif defined(CONFIG_USART2_SERIAL_CONSOLE) && defined(CONFIG_USART2_ISUART) +#elif defined(CONFIG_USART2_SERIAL_CONSOLE) && defined(CONFIG_USART2_SERIALDRIVER) # undef CONFIG_SAMA5_DBGU_CONSOLE # undef CONFIG_UART0_SERIAL_CONSOLE # undef CONFIG_UART1_SERIAL_CONSOLE @@ -257,7 +257,7 @@ # undef SAMA5_HAVE_UART_CONSOLE # define SAMA5_HAVE_USART_CONSOLE 1 # undef SAMA5_HAVE_FLEXCOM_CONSOLE -#elif defined(CONFIG_USART3_SERIAL_CONSOLE) && defined(CONFIG_USART3_ISUART) +#elif defined(CONFIG_USART3_SERIAL_CONSOLE) && defined(CONFIG_USART3_SERIALDRIVER) # undef CONFIG_SAMA5_DBGU_CONSOLE # undef CONFIG_UART0_SERIAL_CONSOLE # undef CONFIG_UART1_SERIAL_CONSOLE @@ -272,7 +272,7 @@ # undef SAMA5_HAVE_UART_CONSOLE # define SAMA5_HAVE_USART_CONSOLE 1 # undef SAMA5_HAVE_FLEXCOM_CONSOLE -#elif defined(CONFIG_USART4_SERIAL_CONSOLE) && defined(CONFIG_USART4_ISUART) +#elif defined(CONFIG_USART4_SERIAL_CONSOLE) && defined(CONFIG_USART4_SERIALDRIVER) # undef CONFIG_SAMA5_DBGU_CONSOLE # undef CONFIG_UART0_SERIAL_CONSOLE # undef CONFIG_UART1_SERIAL_CONSOLE diff --git a/arch/arm/src/sama5/sam_flexcom_serial.c b/arch/arm/src/sama5/sam_flexcom_serial.c index c65c1aab47..c0d4693ac8 100644 --- a/arch/arm/src/sama5/sam_flexcom_serial.c +++ b/arch/arm/src/sama5/sam_flexcom_serial.c @@ -120,19 +120,19 @@ # define FLEXUS4_ASSIGNED 1 #else # undef CONSOLE_DEV /* No console */ -# if defined(CONFIG_USART0_ISUART) +# if defined(CONFIG_USART0_SERIALDRIVER) # define TTYFC0_DEV g_flexus0port /* FLEXUS0 is ttyFC0 */ # define FLEXUS0_ASSIGNED 1 -# elif defined(CONFIG_USART1_ISUART) +# elif defined(CONFIG_USART1_SERIALDRIVER) # define TTYFC0_DEV g_flexus1port /* FLEXUS1 is ttyFC0 */ # define FLEXUS1_ASSIGNED 1 -# elif defined(CONFIG_USART2_ISUART) +# elif defined(CONFIG_USART2_SERIALDRIVER) # define TTYFC0_DEV g_flexus2port /* FLEXUS2 is ttyFC0 */ # define FLEXUS2_ASSIGNED 1 -# elif defined(CONFIG_USART3_ISUART) +# elif defined(CONFIG_USART3_SERIALDRIVER) # define TTYFC0_DEV g_flexus3port /* FLEXUS3 is ttyFC0 */ # define FLEXUS3_ASSIGNED 1 -# elif defined(CONFIG_USART4_ISUART) +# elif defined(CONFIG_USART4_SERIALDRIVER) # define TTYFC0_DEV g_flexus4port /* FLEXUS4 is ttyFC0 */ # define FLEXUS4_ASSIGNED 4 # endif @@ -140,19 +140,19 @@ /* Pick ttyFC1. This could be any of USART0-4 excluding the console UART. */ -#if defined(CONFIG_USART0_ISUART) && !defined(FLEXUS0_ASSIGNED) +#if defined(CONFIG_USART0_SERIALDRIVER) && !defined(FLEXUS0_ASSIGNED) # define TTYFC1_DEV g_flexus0port /* FLEXUS0 is ttyFC1 */ # define FLEXUS0_ASSIGNED 1 -#elif defined(CONFIG_USART1_ISUART) && !defined(FLEXUS1_ASSIGNED) +#elif defined(CONFIG_USART1_SERIALDRIVER) && !defined(FLEXUS1_ASSIGNED) # define TTYFC1_DEV g_flexus1port /* FLEXUS1 is ttyFC1 */ # define FLEXUS1_ASSIGNED 1 -#elif defined(CONFIG_USART2_ISUART) && !defined(FLEXUS2_ASSIGNED) +#elif defined(CONFIG_USART2_SERIALDRIVER) && !defined(FLEXUS2_ASSIGNED) # define TTYFC1_DEV g_flexus2port /* FLEXUS2 is ttyFC1 */ # define FLEXUS2_ASSIGNED 1 -#elif defined(CONFIG_USART3_ISUART) && !defined(FLEXUS3_ASSIGNED) +#elif defined(CONFIG_USART3_SERIALDRIVER) && !defined(FLEXUS3_ASSIGNED) # define TTYFC1_DEV g_flexus3port /* FLEXUS3 is ttyFC1 */ # define FLEXUS3_ASSIGNED 1 -#elif defined(CONFIG_USART4_ISUART) && !defined(FLEXUS4_ASSIGNED) +#elif defined(CONFIG_USART4_SERIALDRIVER) && !defined(FLEXUS4_ASSIGNED) # define TTYFC1_DEV g_flexus4port /* FLEXUS4 is ttyFC1 */ # define FLEXUS4_ASSIGNED 1 #endif @@ -162,16 +162,16 @@ * could also be the console. */ -#if defined(CONFIG_USART1_ISUART) && !defined(FLEXUS1_ASSIGNED) +#if defined(CONFIG_USART1_SERIALDRIVER) && !defined(FLEXUS1_ASSIGNED) # define TTYFC2_DEV g_flexus1port /* FLEXUS1 is ttyFC2 */ # define FLEXUS1_ASSIGNED 1 -#elif defined(CONFIG_USART2_ISUART) && !defined(FLEXUS2_ASSIGNED) +#elif defined(CONFIG_USART2_SERIALDRIVER) && !defined(FLEXUS2_ASSIGNED) # define TTYFC2_DEV g_flexus2port /* FLEXUS2 is ttyFC2 */ # define FLEXUS2_ASSIGNED 1 -#elif defined(CONFIG_USART3_ISUART) && !defined(FLEXUS3_ASSIGNED) +#elif defined(CONFIG_USART3_SERIALDRIVER) && !defined(FLEXUS3_ASSIGNED) # define TTYFC2_DEV g_flexus3port /* FLEXUS3 is ttyFC2 */ # define FLEXUS3_ASSIGNED 1 -#elif defined(CONFIG_USART4_ISUART) && !defined(USART4_ASSIGNED) +#elif defined(CONFIG_USART4_SERIALDRIVER) && !defined(USART4_ASSIGNED) # define TTYFC2_DEV g_flexus4port /* FLEXUS4 is ttyFC2 */ # define FLEXUS4_ASSIGNED 1 #endif @@ -181,13 +181,13 @@ * FLEXUS2-4 could also be the console. */ -#if defined(CONFIG_USART2_ISUART) && !defined(FLEXUS2_ASSIGNED) +#if defined(CONFIG_USART2_SERIALDRIVER) && !defined(FLEXUS2_ASSIGNED) # define TTYFC3_DEV g_flexus2port /* FLEXUS2 is ttyFC3 */ # define FLEXUS2_ASSIGNED 1 -#elif defined(CONFIG_USART3_ISUART) && !defined(FLEXUS3_ASSIGNED) +#elif defined(CONFIG_USART3_SERIALDRIVER) && !defined(FLEXUS3_ASSIGNED) # define TTYFC3_DEV g_flexus3port /* FLEXUS3 is ttyFC3 */ # define FLEXUS3_ASSIGNED 1 -#elif defined(CONFIG_USART4_ISUART) && !defined(FLEXUS4_ASSIGNED) +#elif defined(CONFIG_USART4_SERIALDRIVER) && !defined(FLEXUS4_ASSIGNED) # define TTYFC3_DEV g_flexus4port /* FLEXUS4 is ttyFC3 */ # define FLEXUS4_ASSIGNED 1 #endif @@ -197,10 +197,10 @@ * USART3-4 could also be the console. */ -#if defined(CONFIG_USART3_ISUART) && !defined(USART3_ASSIGNED) +#if defined(CONFIG_USART3_SERIALDRIVER) && !defined(USART3_ASSIGNED) # define TTYFC4_DEV g_flexus3port /* USART3 is ttyFC4 */ # define USART3_ASSIGNED 1 -#elif defined(CONFIG_USART4_ISUART) && !defined(USART4_ASSIGNED) +#elif defined(CONFIG_USART4_SERIALDRIVER) && !defined(USART4_ASSIGNED) # define TTYFC4_DEV g_flexus4port /* USART4 is ttyFC4 */ # define USART4_ASSIGNED 1 #endif @@ -234,19 +234,19 @@ struct flexus_dev_s ****************************************************************************/ static int flexus_interrupt(struct uart_dev_s *dev); -#ifdef CONFIG_USART0_ISUART +#ifdef CONFIG_USART0_SERIALDRIVER static int flexus0_interrupt(int irq, void *context); #endif -#ifdef CONFIG_USART1_ISUART +#ifdef CONFIG_USART1_SERIALDRIVER static int flexus1_interrupt(int irq, void *context); #endif -#ifdef CONFIG_USART2_ISUART +#ifdef CONFIG_USART2_SERIALDRIVER static int flexus2_interrupt(int irq, void *context); #endif -#ifdef CONFIG_USART3_ISUART +#ifdef CONFIG_USART3_SERIALDRIVER static int flexus3_interrupt(int irq, void *context); #endif -#ifdef CONFIG_USART4_ISUART +#ifdef CONFIG_USART4_SERIALDRIVER static int flexus4_interrupt(int irq, void *context); #endif @@ -288,30 +288,30 @@ static const struct uart_ops_s g_flexus_ops = /* I/O buffers */ -#ifdef CONFIG_USART0_ISUART +#ifdef CONFIG_USART0_SERIALDRIVER static char g_flexus0rxbuffer[CONFIG_USART0_RXBUFSIZE]; static char g_flexus0txbuffer[CONFIG_USART0_TXBUFSIZE]; #endif -#ifdef CONFIG_USART1_ISUART +#ifdef CONFIG_USART1_SERIALDRIVER static char g_flexus1rxbuffer[CONFIG_USART1_RXBUFSIZE]; static char g_flexus1txbuffer[CONFIG_USART1_TXBUFSIZE]; #endif -#ifdef CONFIG_USART2_ISUART +#ifdef CONFIG_USART2_SERIALDRIVER static char g_flexus2rxbuffer[CONFIG_USART2_RXBUFSIZE]; static char g_flexus2txbuffer[CONFIG_USART2_TXBUFSIZE]; #endif -#ifdef CONFIG_USART3_ISUART +#ifdef CONFIG_USART3_SERIALDRIVER static char g_flexus3rxbuffer[CONFIG_USART3_RXBUFSIZE]; static char g_flexus3txbuffer[CONFIG_USART3_TXBUFSIZE]; #endif -#ifdef CONFIG_USART4_ISUART +#ifdef CONFIG_USART4_SERIALDRIVER static char g_flexus4rxbuffer[CONFIG_USART4_RXBUFSIZE]; static char g_flexus4txbuffer[CONFIG_USART4_TXBUFSIZE]; #endif /* This describes the state of the USART0 port. */ -#ifdef CONFIG_USART0_ISUART +#ifdef CONFIG_USART0_SERIALDRIVER static struct flexus_dev_s g_flexus0priv = { .handler = flexus0_interrupt, @@ -345,7 +345,7 @@ static uart_dev_t g_flexus0port = /* This describes the state of the USART1 port. */ -#ifdef CONFIG_USART1_ISUART +#ifdef CONFIG_USART1_SERIALDRIVER static struct flexus_dev_s g_flexus1priv = { .handler = flexus1_interrupt, @@ -379,7 +379,7 @@ static uart_dev_t g_flexus1port = /* This describes the state of the USART2 port. */ -#ifdef CONFIG_USART2_ISUART +#ifdef CONFIG_USART2_SERIALDRIVER static struct flexus_dev_s g_flexus2priv = { .handler = flexus2_interrupt, @@ -413,7 +413,7 @@ static uart_dev_t g_flexus2port = /* This describes the state of the USART3 port. */ -#ifdef CONFIG_USART3_ISUART +#ifdef CONFIG_USART3_SERIALDRIVER static struct flexus_dev_s g_flexus3priv = { .handler = flexus3_interrupt, @@ -447,7 +447,7 @@ static uart_dev_t g_flexus3port = /* This describes the state of the USART4 port. */ -#ifdef CONFIG_USART4_ISUART +#ifdef CONFIG_USART4_SERIALDRIVER static struct flexus_dev_s g_flexus4priv = { .handler = flexus4_interrupt, @@ -613,31 +613,31 @@ static int flexus_interrupt(struct uart_dev_s *dev) * ****************************************************************************/ -#ifdef CONFIG_USART0_ISUART +#ifdef CONFIG_USART0_SERIALDRIVER static int flexus0_interrupt(int irq, void *context) { return flexus_interrupt(&g_flexus0port); } #endif -#ifdef CONFIG_USART1_ISUART +#ifdef CONFIG_USART1_SERIALDRIVER static int flexus1_interrupt(int irq, void *context) { return flexus_interrupt(&g_flexus1port); } #endif -#ifdef CONFIG_USART2_ISUART +#ifdef CONFIG_USART2_SERIALDRIVER static int flexus2_interrupt(int irq, void *context) { return flexus_interrupt(&g_flexus2port); } #endif -#ifdef CONFIG_USART3_ISUART +#ifdef CONFIG_USART3_SERIALDRIVER static int flexus3_interrupt(int irq, void *context) { return flexus_interrupt(&g_flexus3port); } #endif -#ifdef CONFIG_USART4_ISUART +#ifdef CONFIG_USART4_SERIALDRIVER static int flexus4_interrupt(int irq, void *context) { return flexus_interrupt(&g_flexus4port); diff --git a/arch/arm/src/sama5/sam_lowputc.c b/arch/arm/src/sama5/sam_lowputc.c index 84e7a37d21..f94f6f0516 100644 --- a/arch/arm/src/sama5/sam_lowputc.c +++ b/arch/arm/src/sama5/sam_lowputc.c @@ -379,7 +379,7 @@ void sam_lowsetup(void) #ifdef CONFIG_SAMA5_UART4 sam_uart4_enableclk(); #endif -#ifdef CONFIG_USART0_ISUART +#ifdef CONFIG_USART0_SERIALDRIVER sam_usart0_enableclk(); #endif #ifdef CONFIG_SAMA5_USART1 @@ -436,7 +436,7 @@ void sam_lowsetup(void) (void)sam_configpio(PIO_UART4_TXD); #endif -#if defined(CONFIG_USART0_ISUART) && defined(CONFIG_SAMA5_USART0) +#if defined(CONFIG_USART0_SERIALDRIVER) && defined(CONFIG_SAMA5_USART0) (void)sam_configpio(PIO_USART0_RXD); (void)sam_configpio(PIO_USART0_TXD); #ifdef CONFIG_USART0_OFLOWCONTROL @@ -447,7 +447,7 @@ void sam_lowsetup(void) #endif #endif -#if defined(CONFIG_USART1_ISUART) && defined(CONFIG_SAMA5_USART1) +#if defined(CONFIG_USART1_SERIALDRIVER) && defined(CONFIG_SAMA5_USART1) (void)sam_configpio(PIO_USART1_RXD); (void)sam_configpio(PIO_USART1_TXD); #ifdef CONFIG_USART1_OFLOWCONTROL @@ -458,7 +458,7 @@ void sam_lowsetup(void) #endif #endif -#if defined(CONFIG_USART2_ISUART) && defined(CONFIG_SAMA5_USART2) +#if defined(CONFIG_USART2_SERIALDRIVER) && defined(CONFIG_SAMA5_USART2) (void)sam_configpio(PIO_USART2_RXD); (void)sam_configpio(PIO_USART2_TXD); #ifdef CONFIG_USART2_OFLOWCONTROL @@ -469,7 +469,7 @@ void sam_lowsetup(void) #endif #endif -#if defined(CONFIG_USART3_ISUART) && defined(CONFIG_SAMA5_USART3) +#if defined(CONFIG_USART3_SERIALDRIVER) && defined(CONFIG_SAMA5_USART3) (void)sam_configpio(PIO_USART3_RXD); (void)sam_configpio(PIO_USART3_TXD); #ifdef CONFIG_USART3_OFLOWCONTROL @@ -480,7 +480,7 @@ void sam_lowsetup(void) #endif #endif -#if defined(CONFIG_USART4_ISUART) && defined(CONFIG_SAMA5_USART4) +#if defined(CONFIG_USART4_SERIALDRIVER) && defined(CONFIG_SAMA5_USART4) (void)sam_configpio(PIO_USART4_RXD); (void)sam_configpio(PIO_USART4_TXD); #ifdef CONFIG_USART4_OFLOWCONTROL @@ -500,7 +500,7 @@ void sam_lowsetup(void) * FLEXCOM_IO4 = RTS */ -#if defined(CONFIG_USART0_ISUART) && defined(CONFIG_SAMA5_FLEXCOM0_USART) +#if defined(CONFIG_USART0_SERIALDRIVER) && defined(CONFIG_SAMA5_FLEXCOM0_USART) (void)sam_configpio(PIO_FLEXCOM0_IO0); (void)sam_configpio(PIO_FLEXCOM0_IO1); #ifdef CONFIG_USART0_OFLOWCONTROL @@ -511,7 +511,7 @@ void sam_lowsetup(void) #endif #endif -#if defined(CONFIG_USART1_ISUART) && defined(CONFIG_SAMA5_FLEXCOM1_USART) +#if defined(CONFIG_USART1_SERIALDRIVER) && defined(CONFIG_SAMA5_FLEXCOM1_USART) (void)sam_configpio(PIO_FLEXCOM1_IO0); (void)sam_configpio(PIO_FLEXCOM1_IO1); #ifdef CONFIG_USART1_OFLOWCONTROL @@ -522,7 +522,7 @@ void sam_lowsetup(void) #endif #endif -#if defined(CONFIG_USART2_ISUART) && defined(CONFIG_SAMA5_FLEXCOM2_USART) +#if defined(CONFIG_USART2_SERIALDRIVER) && defined(CONFIG_SAMA5_FLEXCOM2_USART) (void)sam_configpio(PIO_FLEXCOM2_IO0); (void)sam_configpio(PIO_FLEXCOM2_IO1); #ifdef CONFIG_USART2_OFLOWCONTROL @@ -533,7 +533,7 @@ void sam_lowsetup(void) #endif #endif -#if defined(CONFIG_USART3_ISUART) && defined(CONFIG_SAMA5_FLEXCOM3_USART) +#if defined(CONFIG_USART3_SERIALDRIVER) && defined(CONFIG_SAMA5_FLEXCOM3_USART) (void)sam_configpio(PIO_FLEXCOM3_IO0); (void)sam_configpio(PIO_FLEXCOM3_IO1); #ifdef CONFIG_USART3_OFLOWCONTROL @@ -544,7 +544,7 @@ void sam_lowsetup(void) #endif #endif -#if defined(CONFIG_USART4_ISUART) && defined(CONFIG_SAMA5_FLEXCOM4_USART) +#if defined(CONFIG_USART4_SERIALDRIVER) && defined(CONFIG_SAMA5_FLEXCOM4_USART) (void)sam_configpio(PIO_FLEXCOM4_IO0); (void)sam_configpio(PIO_FLEXCOM4_IO1); #ifdef CONFIG_USART4_OFLOWCONTROL diff --git a/arch/arm/src/sama5/sam_serial.c b/arch/arm/src/sama5/sam_serial.c index 0083606dba..a73ac33cd2 100644 --- a/arch/arm/src/sama5/sam_serial.c +++ b/arch/arm/src/sama5/sam_serial.c @@ -167,19 +167,19 @@ # elif defined(CONFIG_SAMA5_UART4) # define TTYS0_DEV g_uart1port /* UART4 is ttyS0 */ # define UART4_ASSIGNED 1 -# elif defined(CONFIG_USART0_ISUART) +# elif defined(CONFIG_USART0_SERIALDRIVER) # define TTYS0_DEV g_usart0port /* USART0 is ttyS0 */ # define USART0_ASSIGNED 1 -# elif defined(CONFIG_USART1_ISUART) +# elif defined(CONFIG_USART1_SERIALDRIVER) # define TTYS0_DEV g_usart1port /* USART1 is ttyS0 */ # define USART1_ASSIGNED 1 -# elif defined(CONFIG_USART2_ISUART) +# elif defined(CONFIG_USART2_SERIALDRIVER) # define TTYS0_DEV g_usart2port /* USART2 is ttyS0 */ # define USART2_ASSIGNED 1 -# elif defined(CONFIG_USART3_ISUART) +# elif defined(CONFIG_USART3_SERIALDRIVER) # define TTYS0_DEV g_usart3port /* USART3 is ttyS0 */ # define USART3_ASSIGNED 1 -# elif defined(CONFIG_USART4_ISUART) +# elif defined(CONFIG_USART4_SERIALDRIVER) # define TTYS0_DEV g_usart4port /* USART4 is ttyS0 */ # define USART4_ASSIGNED 4 # endif @@ -202,19 +202,19 @@ #elif defined(CONFIG_SAMA5_UART4) && !defined(UART4_ASSIGNED) # define TTYS1_DEV g_uart1port /* UART4 is ttyS1 */ # define UART4_ASSIGNED 1 -#elif defined(CONFIG_USART0_ISUART) && !defined(USART0_ASSIGNED) +#elif defined(CONFIG_USART0_SERIALDRIVER) && !defined(USART0_ASSIGNED) # define TTYS1_DEV g_usart0port /* USART0 is ttyS1 */ # define USART0_ASSIGNED 1 -#elif defined(CONFIG_USART1_ISUART) && !defined(USART1_ASSIGNED) +#elif defined(CONFIG_USART1_SERIALDRIVER) && !defined(USART1_ASSIGNED) # define TTYS1_DEV g_usart1port /* USART1 is ttyS1 */ # define USART1_ASSIGNED 1 -#elif defined(CONFIG_USART2_ISUART) && !defined(USART2_ASSIGNED) +#elif defined(CONFIG_USART2_SERIALDRIVER) && !defined(USART2_ASSIGNED) # define TTYS1_DEV g_usart2port /* USART2 is ttyS1 */ # define USART2_ASSIGNED 1 -#elif defined(CONFIG_USART3_ISUART) && !defined(USART3_ASSIGNED) +#elif defined(CONFIG_USART3_SERIALDRIVER) && !defined(USART3_ASSIGNED) # define TTYS1_DEV g_usart3port /* USART3 is ttyS1 */ # define USART3_ASSIGNED 1 -#elif defined(CONFIG_USART4_ISUART) && !defined(USART4_ASSIGNED) +#elif defined(CONFIG_USART4_SERIALDRIVER) && !defined(USART4_ASSIGNED) # define TTYS1_DEV g_usart4port /* USART4 is ttyS1 */ # define USART4_ASSIGNED 1 #endif @@ -236,19 +236,19 @@ #elif defined(CONFIG_SAMA5_UART4) && !defined(UART4_ASSIGNED) # define TTYS2_DEV g_uart1port /* UART4 is ttyS2 */ # define UART4_ASSIGNED 1 -#elif defined(CONFIG_USART0_ISUART) && !defined(USART0_ASSIGNED) +#elif defined(CONFIG_USART0_SERIALDRIVER) && !defined(USART0_ASSIGNED) # define TTYS2_DEV g_usart0port /* USART0 is ttyS2 */ # define USART0_ASSIGNED 1 -#elif defined(CONFIG_USART1_ISUART) && !defined(USART1_ASSIGNED) +#elif defined(CONFIG_USART1_SERIALDRIVER) && !defined(USART1_ASSIGNED) # define TTYS2_DEV g_usart1port /* USART1 is ttyS2 */ # define USART1_ASSIGNED 1 -#elif defined(CONFIG_USART2_ISUART) && !defined(USART2_ASSIGNED) +#elif defined(CONFIG_USART2_SERIALDRIVER) && !defined(USART2_ASSIGNED) # define TTYS2_DEV g_usart2port /* USART2 is ttyS2 */ # define USART2_ASSIGNED 1 -#elif defined(CONFIG_USART3_ISUART) && !defined(USART3_ASSIGNED) +#elif defined(CONFIG_USART3_SERIALDRIVER) && !defined(USART3_ASSIGNED) # define TTYS2_DEV g_usart3port /* USART3 is ttyS2 */ # define USART3_ASSIGNED 1 -#elif defined(CONFIG_USART4_ISUART) && !defined(USART4_ASSIGNED) +#elif defined(CONFIG_USART4_SERIALDRIVER) && !defined(USART4_ASSIGNED) # define TTYS2_DEV g_usart4port /* USART4 is ttyS2 */ # define USART4_ASSIGNED 1 #endif @@ -267,19 +267,19 @@ #elif defined(CONFIG_SAMA5_UART4) && !defined(UART4_ASSIGNED) # define TTYS3_DEV g_uart1port /* UART4 is ttyS3 */ # define UART4_ASSIGNED 1 -#elif defined(CONFIG_USART0_ISUART) && !defined(USART0_ASSIGNED) +#elif defined(CONFIG_USART0_SERIALDRIVER) && !defined(USART0_ASSIGNED) # define TTYS3_DEV g_usart0port /* USART0 is ttyS3 */ # define USART0_ASSIGNED 1 -#elif defined(CONFIG_USART1_ISUART) && !defined(USART1_ASSIGNED) +#elif defined(CONFIG_USART1_SERIALDRIVER) && !defined(USART1_ASSIGNED) # define TTYS3_DEV g_usart1port /* USART1 is ttyS3 */ # define USART1_ASSIGNED 1 -#elif defined(CONFIG_USART2_ISUART) && !defined(USART2_ASSIGNED) +#elif defined(CONFIG_USART2_SERIALDRIVER) && !defined(USART2_ASSIGNED) # define TTYS3_DEV g_usart2port /* USART2 is ttyS3 */ # define USART2_ASSIGNED 1 -#elif defined(CONFIG_USART3_ISUART) && !defined(USART3_ASSIGNED) +#elif defined(CONFIG_USART3_SERIALDRIVER) && !defined(USART3_ASSIGNED) # define TTYS3_DEV g_usart3port /* USART3 is ttyS3 */ # define USART3_ASSIGNED 1 -#elif defined(CONFIG_USART4_ISUART) && !defined(USART4_ASSIGNED) +#elif defined(CONFIG_USART4_SERIALDRIVER) && !defined(USART4_ASSIGNED) # define TTYS3_DEV g_usart4port /* USART4 is ttyS3 */ # define USART4_ASSIGNED 1 #endif @@ -295,19 +295,19 @@ #elif defined(CONFIG_SAMA5_UART4) && !defined(UART4_ASSIGNED) # define TTYS4_DEV g_uart1port /* UART4 is ttyS4 */ # define UART4_ASSIGNED 1 -#elif defined(CONFIG_USART0_ISUART) && !defined(USART0_ASSIGNED) +#elif defined(CONFIG_USART0_SERIALDRIVER) && !defined(USART0_ASSIGNED) # define TTYS4_DEV g_usart0port /* USART0 is ttyS4 */ # define USART0_ASSIGNED 1 -#elif defined(CONFIG_USART1_ISUART) && !defined(USART1_ASSIGNED) +#elif defined(CONFIG_USART1_SERIALDRIVER) && !defined(USART1_ASSIGNED) # define TTYS4_DEV g_usart1port /* USART1 is ttyS4 */ # define USART1_ASSIGNED 1 -#elif defined(CONFIG_USART2_ISUART) && !defined(USART2_ASSIGNED) +#elif defined(CONFIG_USART2_SERIALDRIVER) && !defined(USART2_ASSIGNED) # define TTYS4_DEV g_usart2port /* USART2 is ttyS4 */ # define USART2_ASSIGNED 1 -#elif defined(CONFIG_USART3_ISUART) && !defined(USART3_ASSIGNED) +#elif defined(CONFIG_USART3_SERIALDRIVER) && !defined(USART3_ASSIGNED) # define TTYS4_DEV g_usart3port /* USART3 is ttyS4 */ # define USART3_ASSIGNED 1 -#elif defined(CONFIG_USART4_ISUART) && !defined(USART4_ASSIGNED) +#elif defined(CONFIG_USART4_SERIALDRIVER) && !defined(USART4_ASSIGNED) # define TTYS4_DEV g_usart4port /* USART4 is ttyS4 */ # define USART4_ASSIGNED 1 #endif @@ -320,19 +320,19 @@ #if defined(CONFIG_SAMA5_UART4) && !defined(UART4_ASSIGNED) # define TTYS5_DEV g_uart4port /* UART4 is ttyS5 */ # define UART1_ASSIGNED 1 -#elif defined(CONFIG_USART0_ISUART) && !defined(USART0_ASSIGNED) +#elif defined(CONFIG_USART0_SERIALDRIVER) && !defined(USART0_ASSIGNED) # define TTYS5_DEV g_usart0port /* USART0 is ttyS5 */ # define USART0_ASSIGNED 1 -#elif defined(CONFIG_USART1_ISUART) && !defined(USART1_ASSIGNED) +#elif defined(CONFIG_USART1_SERIALDRIVER) && !defined(USART1_ASSIGNED) # define TTYS5_DEV g_usart1port /* USART1 is ttyS5 */ # define USART1_ASSIGNED 1 -#elif defined(CONFIG_USART2_ISUART) && !defined(USART2_ASSIGNED) +#elif defined(CONFIG_USART2_SERIALDRIVER) && !defined(USART2_ASSIGNED) # define TTYS5_DEV g_usart2port /* USART2 is ttyS5 */ # define USART2_ASSIGNED 1 -#elif defined(CONFIG_USART3_ISUART) && !defined(USART3_ASSIGNED) +#elif defined(CONFIG_USART3_SERIALDRIVER) && !defined(USART3_ASSIGNED) # define TTYS5_DEV g_usart3port /* USART3 is ttyS5 */ # define USART3_ASSIGNED 1 -#elif defined(CONFIG_USART4_ISUART) && !defined(USART4_ASSIGNED) +#elif defined(CONFIG_USART4_SERIALDRIVER) && !defined(USART4_ASSIGNED) # define TTYS5_DEV g_usart4port /* USART4 is ttyS5 */ # define USART4_ASSIGNED 1 #endif @@ -342,19 +342,19 @@ * could also be the console. */ -#if defined(CONFIG_USART0_ISUART) && !defined(USART0_ASSIGNED) +#if defined(CONFIG_USART0_SERIALDRIVER) && !defined(USART0_ASSIGNED) # define TTYS6_DEV g_usart0port /* USART0 is ttyS6 */ # define USART0_ASSIGNED 1 -#elif defined(CONFIG_USART1_ISUART) && !defined(USART1_ASSIGNED) +#elif defined(CONFIG_USART1_SERIALDRIVER) && !defined(USART1_ASSIGNED) # define TTYS6_DEV g_usart1port /* USART1 is ttyS6 */ # define USART1_ASSIGNED 1 -#elif defined(CONFIG_USART2_ISUART) && !defined(USART2_ASSIGNED) +#elif defined(CONFIG_USART2_SERIALDRIVER) && !defined(USART2_ASSIGNED) # define TTYS6_DEV g_usart2port /* USART2 is ttyS6 */ # define USART2_ASSIGNED 1 -#elif defined(CONFIG_USART3_ISUART) && !defined(USART3_ASSIGNED) +#elif defined(CONFIG_USART3_SERIALDRIVER) && !defined(USART3_ASSIGNED) # define TTYS6_DEV g_usart3port /* USART3 is ttyS6 */ # define USART3_ASSIGNED 1 -#elif defined(CONFIG_USART4_ISUART) && !defined(USART4_ASSIGNED) +#elif defined(CONFIG_USART4_SERIALDRIVER) && !defined(USART4_ASSIGNED) # define TTYS6_DEV g_usart4port /* USART4 is ttyS6 */ # define USART4_ASSIGNED 1 #endif @@ -364,16 +364,16 @@ * USART1-4 could also be the console. */ -#if defined(CONFIG_USART1_ISUART) && !defined(USART1_ASSIGNED) +#if defined(CONFIG_USART1_SERIALDRIVER) && !defined(USART1_ASSIGNED) # define TTYS7_DEV g_usart1port /* USART1 is ttyS7 */ # define USART1_ASSIGNED 1 -#elif defined(CONFIG_USART2_ISUART) && !defined(USART2_ASSIGNED) +#elif defined(CONFIG_USART2_SERIALDRIVER) && !defined(USART2_ASSIGNED) # define TTYS7_DEV g_usart2port /* USART2 is ttyS7 */ # define USART2_ASSIGNED 1 -#elif defined(CONFIG_USART3_ISUART) && !defined(USART3_ASSIGNED) +#elif defined(CONFIG_USART3_SERIALDRIVER) && !defined(USART3_ASSIGNED) # define TTYS7_DEV g_usart3port /* USART3 is ttyS7 */ # define USART3_ASSIGNED 1 -#elif defined(CONFIG_USART4_ISUART) && !defined(USART4_ASSIGNED) +#elif defined(CONFIG_USART4_SERIALDRIVER) && !defined(USART4_ASSIGNED) # define TTYS7_DEV g_usart4port /* USART4 is ttyS7 */ # define USART4_ASSIGNED 1 #endif @@ -383,13 +383,13 @@ * USART2-4 could also be the console. */ -#if defined(CONFIG_USART2_ISUART) && !defined(USART2_ASSIGNED) +#if defined(CONFIG_USART2_SERIALDRIVER) && !defined(USART2_ASSIGNED) # define TTYS8_DEV g_usart2port /* USART2 is ttyS8 */ # define USART2_ASSIGNED 1 -#elif defined(CONFIG_USART3_ISUART) && !defined(USART3_ASSIGNED) +#elif defined(CONFIG_USART3_SERIALDRIVER) && !defined(USART3_ASSIGNED) # define TTYS8_DEV g_usart3port /* USART3 is ttyS8 */ # define USART3_ASSIGNED 1 -#elif defined(CONFIG_USART4_ISUART) && !defined(USART4_ASSIGNED) +#elif defined(CONFIG_USART4_SERIALDRIVER) && !defined(USART4_ASSIGNED) # define TTYS8_DEV g_usart4port /* USART4 is ttyS8 */ # define USART4_ASSIGNED 1 #endif @@ -399,10 +399,10 @@ * USART3-4 could also be the console. */ -#if defined(CONFIG_USART3_ISUART) && !defined(USART3_ASSIGNED) +#if defined(CONFIG_USART3_SERIALDRIVER) && !defined(USART3_ASSIGNED) # define TTYS9_DEV g_usart3port /* USART3 is ttyS9 */ # define USART3_ASSIGNED 1 -#elif defined(CONFIG_USART4_ISUART) && !defined(USART4_ASSIGNED) +#elif defined(CONFIG_USART4_SERIALDRIVER) && !defined(USART4_ASSIGNED) # define TTYS9_DEV g_usart4port /* USART4 is ttyS9 */ # define USART4_ASSIGNED 1 #endif @@ -451,19 +451,19 @@ static int up_uart3_interrupt(int irq, void *context); #ifdef CONFIG_SAMA5_UART4 static int up_uart4_interrupt(int irq, void *context); #endif -#ifdef CONFIG_USART0_ISUART +#ifdef CONFIG_USART0_SERIALDRIVER static int up_usart0_interrupt(int irq, void *context); #endif -#ifdef CONFIG_USART1_ISUART +#ifdef CONFIG_USART1_SERIALDRIVER static int up_usart1_interrupt(int irq, void *context); #endif -#ifdef CONFIG_USART2_ISUART +#ifdef CONFIG_USART2_SERIALDRIVER static int up_usart2_interrupt(int irq, void *context); #endif -#ifdef CONFIG_USART3_ISUART +#ifdef CONFIG_USART3_SERIALDRIVER static int up_usart3_interrupt(int irq, void *context); #endif -#ifdef CONFIG_USART4_ISUART +#ifdef CONFIG_USART4_SERIALDRIVER static int up_usart4_interrupt(int irq, void *context); #endif @@ -525,23 +525,23 @@ static char g_uart3txbuffer[CONFIG_UART3_TXBUFSIZE]; static char g_uart4rxbuffer[CONFIG_UART4_RXBUFSIZE]; static char g_uart4txbuffer[CONFIG_UART4_TXBUFSIZE]; #endif -#ifdef CONFIG_USART0_ISUART +#ifdef CONFIG_USART0_SERIALDRIVER static char g_usart0rxbuffer[CONFIG_USART0_RXBUFSIZE]; static char g_usart0txbuffer[CONFIG_USART0_TXBUFSIZE]; #endif -#ifdef CONFIG_USART1_ISUART +#ifdef CONFIG_USART1_SERIALDRIVER static char g_usart1rxbuffer[CONFIG_USART1_RXBUFSIZE]; static char g_usart1txbuffer[CONFIG_USART1_TXBUFSIZE]; #endif -#ifdef CONFIG_USART2_ISUART +#ifdef CONFIG_USART2_SERIALDRIVER static char g_usart2rxbuffer[CONFIG_USART2_RXBUFSIZE]; static char g_usart2txbuffer[CONFIG_USART2_TXBUFSIZE]; #endif -#ifdef CONFIG_USART3_ISUART +#ifdef CONFIG_USART3_SERIALDRIVER static char g_usart3rxbuffer[CONFIG_USART3_RXBUFSIZE]; static char g_usart3txbuffer[CONFIG_USART3_TXBUFSIZE]; #endif -#ifdef CONFIG_USART4_ISUART +#ifdef CONFIG_USART4_SERIALDRIVER static char g_usart4rxbuffer[CONFIG_USART4_RXBUFSIZE]; static char g_usart4txbuffer[CONFIG_USART4_TXBUFSIZE]; #endif @@ -753,7 +753,7 @@ static uart_dev_t g_uart4port = /* This describes the state of the USART0 port. */ -#ifdef CONFIG_USART0_ISUART +#ifdef CONFIG_USART0_SERIALDRIVER static struct up_dev_s g_usart0priv = { .handler = up_usart0_interrupt, @@ -787,7 +787,7 @@ static uart_dev_t g_usart0port = /* This describes the state of the USART1 port. */ -#ifdef CONFIG_USART1_ISUART +#ifdef CONFIG_USART1_SERIALDRIVER static struct up_dev_s g_usart1priv = { .handler = up_usart1_interrupt, @@ -821,7 +821,7 @@ static uart_dev_t g_usart1port = /* This describes the state of the USART2 port. */ -#ifdef CONFIG_USART2_ISUART +#ifdef CONFIG_USART2_SERIALDRIVER static struct up_dev_s g_usart2priv = { .handler = up_usart2_interrupt, @@ -855,7 +855,7 @@ static uart_dev_t g_usart2port = /* This describes the state of the USART3 port. */ -#ifdef CONFIG_USART3_ISUART +#ifdef CONFIG_USART3_SERIALDRIVER static struct up_dev_s g_usart3priv = { .handler = up_usart3_interrupt, @@ -889,7 +889,7 @@ static uart_dev_t g_usart3port = /* This describes the state of the USART4 port. */ -#ifdef CONFIG_USART4_ISUART +#ifdef CONFIG_USART4_SERIALDRIVER static struct up_dev_s g_usart4priv = { .handler = up_usart4_interrupt, @@ -1073,31 +1073,31 @@ static int up_uart4_interrupt(int irq, void *context) return up_interrupt(&g_uart4port); } #endif -#ifdef CONFIG_USART0_ISUART +#ifdef CONFIG_USART0_SERIALDRIVER static int up_usart0_interrupt(int irq, void *context) { return up_interrupt(&g_usart0port); } #endif -#ifdef CONFIG_USART1_ISUART +#ifdef CONFIG_USART1_SERIALDRIVER static int up_usart1_interrupt(int irq, void *context) { return up_interrupt(&g_usart1port); } #endif -#ifdef CONFIG_USART2_ISUART +#ifdef CONFIG_USART2_SERIALDRIVER static int up_usart2_interrupt(int irq, void *context) { return up_interrupt(&g_usart2port); } #endif -#ifdef CONFIG_USART3_ISUART +#ifdef CONFIG_USART3_SERIALDRIVER static int up_usart3_interrupt(int irq, void *context) { return up_interrupt(&g_usart3port); } #endif -#ifdef CONFIG_USART4_ISUART +#ifdef CONFIG_USART4_SERIALDRIVER static int up_usart4_interrupt(int irq, void *context) { return up_interrupt(&g_usart4port); diff --git a/arch/arm/src/samdl/Kconfig b/arch/arm/src/samdl/Kconfig index ea7a54a7fb..a890db6a0f 100644 --- a/arch/arm/src/samdl/Kconfig +++ b/arch/arm/src/samdl/Kconfig @@ -590,7 +590,6 @@ config SAMDL_SERCOM0_ISSPI config SAMDL_SERCOM0_ISUSART bool "USART" select USART0_SERIALDRIVER - select USART0_ISUART endchoice @@ -624,7 +623,6 @@ config SAMDL_SERCOM1_ISSPI config SAMDL_SERCOM1_ISUSART bool "USART" select USART1_SERIALDRIVER - select USART1_ISUART endchoice @@ -644,7 +642,6 @@ config SAMDL_SERCOM2_ISSPI config SAMDL_SERCOM2_ISUSART bool "USART" select USART2_SERIALDRIVER - select USART2_ISUART endchoice @@ -664,7 +661,6 @@ config SAMDL_SERCOM3_ISSPI config SAMDL_SERCOM3_ISUSART bool "USART" select USART3_SERIALDRIVER - select USART3_ISUART endchoice @@ -684,7 +680,6 @@ config SAMDL_SERCOM4_ISSPI config SAMDL_SERCOM4_ISUSART bool "USART" select USART4_SERIALDRIVER - select USART4_ISUART endchoice @@ -704,7 +699,6 @@ config SAMDL_SERCOM5_ISSPI config SAMDL_SERCOM5_ISUSART bool "USART" select USART5_SERIALDRIVER - select USART5_ISUART endchoice diff --git a/arch/arm/src/samdl/sam_config.h b/arch/arm/src/samdl/sam_config.h index 846e3291d3..db85694e5d 100644 --- a/arch/arm/src/samdl/sam_config.h +++ b/arch/arm/src/samdl/sam_config.h @@ -56,7 +56,7 @@ #define SAMDL_HAVE_USART5 1 #if !defined(CONFIG_SAMDL_SERCOM0) || !defined(CONFIG_SAMDL_SERCOM0_ISUSART) || \ - !defined(CONFIG_USART0_ISUART) + !defined(CONFIG_USART0_SERIALDRIVER) # undef SAMDL_HAVE_USART0 # undef CONFIG_SAMDL_SERCOM0_ISUSART # undef CONFIG_USART0_SERIAL_CONSOLE @@ -66,7 +66,7 @@ #endif #if !defined(CONFIG_SAMDL_SERCOM1) || !defined(CONFIG_SAMDL_SERCOM1_ISUSART) || \ - !defined(CONFIG_USART1_ISUART) + !defined(CONFIG_USART1_SERIALDRIVER) # undef SAMDL_HAVE_USART1 # undef CONFIG_SAMDL_SERCOM1_ISUSART # undef CONFIG_USART1_SERIAL_CONSOLE @@ -76,7 +76,7 @@ #endif #if !defined(CONFIG_SAMDL_SERCOM2) || !defined(CONFIG_SAMDL_SERCOM2_ISUSART) || \ - !defined(CONFIG_USART2_ISUART) + !defined(CONFIG_USART2_SERIALDRIVER) # undef SAMDL_HAVE_USART2 # undef CONFIG_SAMDL_SERCOM2_ISUSART # undef CONFIG_USART2_SERIAL_CONSOLE @@ -86,7 +86,7 @@ #endif #if !defined(CONFIG_SAMDL_SERCOM3) || !defined(CONFIG_SAMDL_SERCOM3_ISUSART) || \ - !defined(CONFIG_USART3_ISUART) + !defined(CONFIG_USART3_SERIALDRIVER) # undef SAMDL_HAVE_USART3 # undef CONFIG_SAMDL_SERCOM3_ISUSART # undef CONFIG_USART3_SERIAL_CONSOLE @@ -96,7 +96,7 @@ #endif #if !defined(CONFIG_SAMDL_SERCOM4) || !defined(CONFIG_SAMDL_SERCOM4_ISUSART) || \ - !defined(CONFIG_USART4_ISUART) + !defined(CONFIG_USART4_SERIALDRIVER) # undef SAMDL_HAVE_USART4 # undef CONFIG_SAMDL_SERCOM4_ISUSART # undef CONFIG_USART4_SERIAL_CONSOLE @@ -106,7 +106,7 @@ #endif #if !defined(CONFIG_SAMDL_SERCOM5) || !defined(CONFIG_SAMDL_SERCOM5_ISUSART) || \ - !defined(CONFIG_USART5_ISUART) + !defined(CONFIG_USART5_SERIALDRIVER) # undef SAMDL_HAVE_USART5 # undef CONFIG_SAMDL_SERCOM5_ISUSART # undef CONFIG_USART5_SERIAL_CONSOLE diff --git a/arch/arm/src/samv7/sam_config.h b/arch/arm/src/samv7/sam_config.h index 242c2eb503..05e6db84f1 100644 --- a/arch/arm/src/samv7/sam_config.h +++ b/arch/arm/src/samv7/sam_config.h @@ -113,19 +113,19 @@ * enabled for our purposes. */ -#if !defined(CONFIG_USART0_ISUART) && !defined(CONFIG_USART0_ISSPI) +#if !defined(CONFIG_USART0_SERIALDRIVER) && !defined(CONFIG_USART0_ISSPI) # undef CONFIG_SAMV7_USART0 # undef CONFIG_USART0_SERIAL_CONSOLE # undef CONFIG_USART0_IFLOWCONTROL #endif -#if !defined(CONFIG_USART1_ISUART) && !defined(CONFIG_USART1_ISSPI) +#if !defined(CONFIG_USART1_SERIALDRIVER) && !defined(CONFIG_USART1_ISSPI) # undef CONFIG_SAMV7_USART1 # undef CONFIG_USART1_SERIAL_CONSOLE # undef CONFIG_USART1_IFLOWCONTROL #endif -#if !defined(CONFIG_USART2_ISUART) && !defined(CONFIG_USART2_ISSPI) +#if !defined(CONFIG_USART2_SERIALDRIVER) && !defined(CONFIG_USART2_ISSPI) # undef CONFIG_SAMV7_USART2 # undef CONFIG_USART2_SERIAL_CONSOLE # undef CONFIG_USART2_IFLOWCONTROL diff --git a/arch/arm/src/samv7/sam_serial.c b/arch/arm/src/samv7/sam_serial.c index bb7827ea63..6744a72ce2 100644 --- a/arch/arm/src/samv7/sam_serial.c +++ b/arch/arm/src/samv7/sam_serial.c @@ -123,13 +123,13 @@ # elif defined(CONFIG_SAMV7_UART4) # define TTYS0_DEV g_uart4port /* UART4 is ttyS0 */ # define UART4_ASSIGNED 1 -# elif defined(CONFIG_SAMV7_USART0) && defined(CONFIG_USART0_ISUART) +# elif defined(CONFIG_SAMV7_USART0) && defined(CONFIG_USART0_SERIALDRIVER) # define TTYS0_DEV g_usart0port /* USART0 is ttyS0 */ # define USART0_ASSIGNED 1 -# elif defined(CONFIG_SAMV7_USART1) && defined(CONFIG_USART1_ISUART) +# elif defined(CONFIG_SAMV7_USART1) && defined(CONFIG_USART1_SERIALDRIVER) # define TTYS0_DEV g_usart1port /* USART1 is ttyS0 */ # define USART1_ASSIGNED 1 -# elif defined(CONFIG_SAMV7_USART2) && defined(CONFIG_USART2_ISUART) +# elif defined(CONFIG_SAMV7_USART2) && defined(CONFIG_USART2_SERIALDRIVER) # define TTYS0_DEV g_usart2port /* USART2 is ttyS0 */ # define USART2_ASSIGNED 1 # endif @@ -154,15 +154,15 @@ #elif defined(CONFIG_SAMV7_UART4) && !defined(UART4_ASSIGNED) # define TTYS1_DEV g_uart4port /* UART4 is ttyS1 */ # define UART4_ASSIGNED 1 -#elif defined(CONFIG_SAMV7_USART0) && defined(CONFIG_USART0_ISUART) && \ +#elif defined(CONFIG_SAMV7_USART0) && defined(CONFIG_USART0_SERIALDRIVER) && \ !defined(USART0_ASSIGNED) # define TTYS1_DEV g_usart0port /* USART0 is ttyS1 */ # define USART0_ASSIGNED 1 -#elif defined(CONFIG_SAMV7_USART1) && defined(CONFIG_USART1_ISUART) && \ +#elif defined(CONFIG_SAMV7_USART1) && defined(CONFIG_USART1_SERIALDRIVER) && \ !defined(USART1_ASSIGNED) # define TTYS1_DEV g_usart1port /* USART1 is ttyS1 */ # define USART1_ASSIGNED 1 -#elif defined(CONFIG_SAMV7_USART2) && defined(CONFIG_USART2_ISUART) && \ +#elif defined(CONFIG_SAMV7_USART2) && defined(CONFIG_USART2_SERIALDRIVER) && \ !defined(USART2_ASSIGNED) # define TTYS1_DEV g_usart2port /* USART2 is ttyS1 */ # define USART2_ASSIGNED 1 @@ -185,15 +185,15 @@ #elif defined(CONFIG_SAMV7_UART4) && !defined(UART4_ASSIGNED) # define TTYS2_DEV g_uart4port /* UART4 is ttyS2 */ # define UART4_ASSIGNED 1 -#elif defined(CONFIG_SAMV7_USART0) && defined(CONFIG_USART0_ISUART) && \ +#elif defined(CONFIG_SAMV7_USART0) && defined(CONFIG_USART0_SERIALDRIVER) && \ !defined(USART0_ASSIGNED) # define TTYS2_DEV g_usart0port /* USART0 is ttyS2 */ # define USART0_ASSIGNED 1 -#elif defined(CONFIG_SAMV7_USART1) && defined(CONFIG_USART1_ISUART) && \ +#elif defined(CONFIG_SAMV7_USART1) && defined(CONFIG_USART1_SERIALDRIVER) && \ !defined(USART1_ASSIGNED) # define TTYS2_DEV g_usart1port /* USART1 is ttyS2 */ # define USART1_ASSIGNED 1 -#elif defined(CONFIG_SAMV7_USART2) && defined(CONFIG_USART2_ISUART) && \ +#elif defined(CONFIG_SAMV7_USART2) && defined(CONFIG_USART2_SERIALDRIVER) && \ !defined(USART2_ASSIGNED) # define TTYS2_DEV g_usart2port /* USART2 is ttyS2 */ # define USART2_ASSIGNED 1 @@ -213,15 +213,15 @@ #elif defined(CONFIG_SAMV7_UART4) && !defined(UART4_ASSIGNED) # define TTYS3_DEV g_uart4port /* UART4 is ttyS3 */ # define UART4_ASSIGNED 1 -#elif defined(CONFIG_SAMV7_USART0) && defined(CONFIG_USART0_ISUART) && \ +#elif defined(CONFIG_SAMV7_USART0) && defined(CONFIG_USART0_SERIALDRIVER) && \ !defined(USART0_ASSIGNED) # define TTYS3_DEV g_usart0port /* USART0 is ttyS3 */ # define USART0_ASSIGNED 1 -#elif defined(CONFIG_SAMV7_USART1) && defined(CONFIG_USART1_ISUART) && \ +#elif defined(CONFIG_SAMV7_USART1) && defined(CONFIG_USART1_SERIALDRIVER) && \ !defined(USART1_ASSIGNED) # define TTYS3_DEV g_usart1port /* USART1 is ttyS3 */ # define USART1_ASSIGNED 1 -#elif defined(CONFIG_SAMV7_USART2) && defined(CONFIG_USART2_ISUART) && \ +#elif defined(CONFIG_SAMV7_USART2) && defined(CONFIG_USART2_SERIALDRIVER) && \ !defined(USART2_ASSIGNED) # define TTYS3_DEV g_usart2port /* USART2 is ttyS3 */ # define USART2_ASSIGNED 1 @@ -238,15 +238,15 @@ #elif defined(CONFIG_SAMV7_UART4) && !defined(UART4_ASSIGNED) # define TTYS4_DEV g_uart4port /* UART4 is ttyS4 */ # define UART4_ASSIGNED 1 -#elif defined(CONFIG_SAMV7_USART0) && defined(CONFIG_USART0_ISUART) && \ +#elif defined(CONFIG_SAMV7_USART0) && defined(CONFIG_USART0_SERIALDRIVER) && \ !defined(USART0_ASSIGNED) # define TTYS4_DEV g_usart0port /* USART0 is ttyS4 */ # define USART0_ASSIGNED 1 -#elif defined(CONFIG_SAMV7_USART1) && defined(CONFIG_USART1_ISUART) && \ +#elif defined(CONFIG_SAMV7_USART1) && defined(CONFIG_USART1_SERIALDRIVER) && \ !defined(USART1_ASSIGNED) # define TTYS4_DEV g_usart1port /* USART1 is ttyS4 */ # define USART1_ASSIGNED 1 -#elif defined(CONFIG_SAMV7_USART2) && defined(CONFIG_USART2_ISUART) && \ +#elif defined(CONFIG_SAMV7_USART2) && defined(CONFIG_USART2_SERIALDRIVER) && \ !defined(USART2_ASSIGNED) # define TTYS4_DEV g_usart2port /* USART2 is ttyS4 */ # define USART2_ASSIGNED 1 @@ -260,15 +260,15 @@ #if defined(CONFIG_SAMV7_UART4) && !defined(UART4_ASSIGNED) # define TTYS5_DEV g_uart4port /* UART4 is ttyS5 */ # define UART4_ASSIGNED 1 -#elif defined(CONFIG_SAMV7_USART0) && defined(CONFIG_USART0_ISUART) && \ +#elif defined(CONFIG_SAMV7_USART0) && defined(CONFIG_USART0_SERIALDRIVER) && \ !defined(USART0_ASSIGNED) # define TTYS5_DEV g_usart0port /* USART0 is ttyS5 */ # define USART0_ASSIGNED 1 -#elif defined(CONFIG_SAMV7_USART1) && defined(CONFIG_USART1_ISUART) && \ +#elif defined(CONFIG_SAMV7_USART1) && defined(CONFIG_USART1_SERIALDRIVER) && \ !defined(USART1_ASSIGNED) # define TTYS5_DEV g_usart1port /* USART1 is ttyS5 */ # define USART1_ASSIGNED 1 -#elif defined(CONFIG_SAMV7_USART2) && defined(CONFIG_USART2_ISUART) && \ +#elif defined(CONFIG_SAMV7_USART2) && defined(CONFIG_USART2_SERIALDRIVER) && \ !defined(USART2_ASSIGNED) # define TTYS5_DEV g_usart2port /* USART2 is ttyS5 */ # define USART2_ASSIGNED 1 @@ -279,15 +279,15 @@ * One of USART0-2 could also be the console. */ -#if defined(CONFIG_SAMV7_USART0) && defined(CONFIG_USART0_ISUART) && \ +#if defined(CONFIG_SAMV7_USART0) && defined(CONFIG_USART0_SERIALDRIVER) && \ !defined(USART0_ASSIGNED) # define TTYS6_DEV g_usart0port /* USART0 is ttyS6 */ # define USART0_ASSIGNED 1 -#elif defined(CONFIG_SAMV7_USART1) && defined(CONFIG_USART1_ISUART) && \ +#elif defined(CONFIG_SAMV7_USART1) && defined(CONFIG_USART1_SERIALDRIVER) && \ !defined(USART1_ASSIGNED) # define TTYS6_DEV g_usart1port /* USART1 is ttyS6 */ # define USART1_ASSIGNED 1 -#elif defined(CONFIG_SAMV7_USART2) && defined(CONFIG_USART2_ISUART) && \ +#elif defined(CONFIG_SAMV7_USART2) && defined(CONFIG_USART2_SERIALDRIVER) && \ !defined(USART2_ASSIGNED) # define TTYS6_DEV g_usart2port /* USART2 is ttyS6 */ # define USART2_ASSIGNED 1 @@ -298,11 +298,11 @@ * One of of USART1-2 could also be the console. */ -#if defined(CONFIG_SAMV7_USART1) && defined(CONFIG_USART1_ISUART) && \ +#if defined(CONFIG_SAMV7_USART1) && defined(CONFIG_USART1_SERIALDRIVER) && \ !defined(USART1_ASSIGNED) # define TTYS7_DEV g_usart1port /* USART1 is ttyS7 */ # define USART1_ASSIGNED 1 -#elif defined(CONFIG_SAMV7_USART2) && defined(CONFIG_USART2_ISUART) && \ +#elif defined(CONFIG_SAMV7_USART2) && defined(CONFIG_USART2_SERIALDRIVER) && \ !defined(USART2_ASSIGNED) # define TTYS7_DEV g_usart2port /* USART2 is ttyS7 */ # define USART2_ASSIGNED 1 @@ -369,13 +369,13 @@ static int sam_uart3_interrupt(int irq, void *context); #ifdef CONFIG_SAMV7_UART4 static int sam_uart4_interrupt(int irq, void *context); #endif -#if defined(CONFIG_SAMV7_USART0) && defined(CONFIG_USART0_ISUART) +#if defined(CONFIG_SAMV7_USART0) && defined(CONFIG_USART0_SERIALDRIVER) static int sam_usart0_interrupt(int irq, void *context); #endif -#if defined(CONFIG_SAMV7_USART1) && defined(CONFIG_USART1_ISUART) +#if defined(CONFIG_SAMV7_USART1) && defined(CONFIG_USART1_SERIALDRIVER) static int sam_usart1_interrupt(int irq, void *context); #endif -#if defined(CONFIG_SAMV7_USART2) && defined(CONFIG_USART2_ISUART) +#if defined(CONFIG_SAMV7_USART2) && defined(CONFIG_USART2_SERIALDRIVER) static int sam_usart2_interrupt(int irq, void *context); #endif static int sam_ioctl(struct file *filep, int cmd, unsigned long arg); @@ -432,15 +432,15 @@ static char g_uart3txbuffer[CONFIG_UART3_TXBUFSIZE]; static char g_uart4rxbuffer[CONFIG_UART4_RXBUFSIZE]; static char g_uart4txbuffer[CONFIG_UART4_TXBUFSIZE]; #endif -#if defined(CONFIG_SAMV7_USART0) && defined(CONFIG_USART0_ISUART) +#if defined(CONFIG_SAMV7_USART0) && defined(CONFIG_USART0_SERIALDRIVER) static char g_usart0rxbuffer[CONFIG_USART0_RXBUFSIZE]; static char g_usart0txbuffer[CONFIG_USART0_TXBUFSIZE]; #endif -#if defined(CONFIG_SAMV7_USART1) && defined(CONFIG_USART1_ISUART) +#if defined(CONFIG_SAMV7_USART1) && defined(CONFIG_USART1_SERIALDRIVER) static char g_usart1rxbuffer[CONFIG_USART1_RXBUFSIZE]; static char g_usart1txbuffer[CONFIG_USART1_TXBUFSIZE]; #endif -#if defined(CONFIG_SAMV7_USART2) && defined(CONFIG_USART2_ISUART) +#if defined(CONFIG_SAMV7_USART2) && defined(CONFIG_USART2_SERIALDRIVER) static char g_usart2rxbuffer[CONFIG_USART2_RXBUFSIZE]; static char g_usart2txbuffer[CONFIG_USART2_TXBUFSIZE]; #endif @@ -602,7 +602,7 @@ static uart_dev_t g_uart4port = /* This describes the state of the USART0 port. */ -#if defined(CONFIG_SAMV7_USART0) && defined(CONFIG_USART0_ISUART) +#if defined(CONFIG_SAMV7_USART0) && defined(CONFIG_USART0_SERIALDRIVER) static struct sam_dev_s g_usart0priv = { .usartbase = SAM_USART0_BASE, @@ -636,7 +636,7 @@ static uart_dev_t g_usart0port = /* This describes the state of the USART1 port. */ -#if defined(CONFIG_SAMV7_USART1) && defined(CONFIG_USART1_ISUART) +#if defined(CONFIG_SAMV7_USART1) && defined(CONFIG_USART1_SERIALDRIVER) static struct sam_dev_s g_usart1priv = { .usartbase = SAM_USART1_BASE, @@ -670,7 +670,7 @@ static uart_dev_t g_usart1port = /* This describes the state of the USART2 port. */ -#if defined(CONFIG_SAMV7_USART2) && defined(CONFIG_USART2_ISUART) +#if defined(CONFIG_SAMV7_USART2) && defined(CONFIG_USART2_SERIALDRIVER) static struct sam_dev_s g_usart2priv = { .usartbase = SAM_USART2_BASE, @@ -1115,19 +1115,19 @@ static int sam_uart4_interrupt(int irq, void *context) * ****************************************************************************/ -#if defined(CONFIG_SAMV7_USART0) && defined(CONFIG_USART0_ISUART) +#if defined(CONFIG_SAMV7_USART0) && defined(CONFIG_USART0_SERIALDRIVER) static int sam_usart0_interrupt(int irq, void *context) { return sam_interrupt(&g_usart0port); } #endif -#if defined(CONFIG_SAMV7_USART1) && defined(CONFIG_USART1_ISUART) +#if defined(CONFIG_SAMV7_USART1) && defined(CONFIG_USART1_SERIALDRIVER) static int sam_usart1_interrupt(int irq, void *context) { return sam_interrupt(&g_usart1port); } #endif -#if defined(CONFIG_SAMV7_USART2) && defined(CONFIG_USART2_ISUART) +#if defined(CONFIG_SAMV7_USART2) && defined(CONFIG_USART2_SERIALDRIVER) static int sam_usart2_interrupt(int irq, void *context) { return sam_interrupt(&g_usart2port); diff --git a/arch/arm/src/stm32f7/stm32_config.h b/arch/arm/src/stm32f7/stm32_config.h index 09762b9c6b..d26fee8713 100644 --- a/arch/arm/src/stm32f7/stm32_config.h +++ b/arch/arm/src/stm32f7/stm32_config.h @@ -113,13 +113,13 @@ * for our purposes. */ -#ifndef CONFIG_USART0_ISUART +#ifndef CONFIG_USART0_SERIALDRIVER # undef CONFIG_STM32F7_USART0 #endif -#ifndef CONFIG_USART1_ISUART +#ifndef CONFIG_USART1_SERIALDRIVER # undef CONFIG_STM32F7_USART1 #endif -#ifndef CONFIG_USART2_ISUART +#ifndef CONFIG_USART2_SERIALDRIVER # undef CONFIG_STM32F7_USART2 #endif diff --git a/arch/avr/src/at32uc3/Kconfig b/arch/avr/src/at32uc3/Kconfig index 1528a3682d..4f244e530c 100644 --- a/arch/avr/src/at32uc3/Kconfig +++ b/arch/avr/src/at32uc3/Kconfig @@ -73,18 +73,15 @@ menu "AT32U3 Peripheral Selections" config AVR32_USART0 bool "USART0" default n - select USART0_SERIALDRIVER config AVR32_USART1 bool "USART1" default n - select USART1_SERIALDRIVER config AVR32_USART2 bool "USART2" default n depends on ARCH_CHIP_AT32UC3B0 - select USART2_SERIALDRIVER endmenu # AT32U3 Peripheral Selections @@ -108,7 +105,7 @@ config AVR32_USART0_MODEM config AVR32_USART0_RS232 bool "USART0 is RS-232" - select USART0_ISUART + select USART0_SERIALDRIVER config AVR32_USART0_RS485 bool "USART0 is RS-485" @@ -140,7 +137,7 @@ config AVR32_USART1_MODEM config AVR32_USART1_RS232 bool "USART1 is RS-232" - select USART1_ISUART + select USART1_SERIALDRIVER config AVR32_USART1_RS485 bool "USART1 is RS-485" @@ -172,7 +169,7 @@ config AVR32_USART2_MODEM config AVR32_USART2_RS232 bool "USART2 is RS-232" - select USART2_ISUART + select USART2_SERIALDRIVER config AVR32_USART2_RS485 bool "USART2 is RS-485" diff --git a/configs/amber/hello/defconfig b/configs/amber/hello/defconfig index 776b8f2eef..5c62c54f88 100644 --- a/configs/amber/hello/defconfig +++ b/configs/amber/hello/defconfig @@ -243,7 +243,6 @@ CONFIG_USART0_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART0_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_USART0_SERIAL_CONSOLE=y # CONFIG_NO_SERIAL_CONSOLE is not set diff --git a/configs/arduino-due/README.txt b/configs/arduino-due/README.txt index 290c095ef3..e128fb71d6 100644 --- a/configs/arduino-due/README.txt +++ b/configs/arduino-due/README.txt @@ -822,10 +822,10 @@ Arduino DUE-specific Configuration Options CONFIG_SAM34_GPIOD_IRQ CONFIG_SAM34_GPIOE_IRQ CONFIG_SAM34_GPIOF_IRQ - CONFIG_USART0_ISUART - CONFIG_USART1_ISUART - CONFIG_USART2_ISUART - CONFIG_USART3_ISUART + CONFIG_USART0_SERIALDRIVER + CONFIG_USART1_SERIALDRIVER + CONFIG_USART2_SERIALDRIVER + CONFIG_USART3_SERIALDRIVER ST91SAM4S specific device driver settings @@ -885,7 +885,7 @@ Configurations Board Selection -> Peripheral CONFIG_SAM34_UART0=n : Disable UART0. Can't use with this shield CONFIG_SAM34_USART0=y : Enable USART0 - CONFIG_USART0_ISUART=y + CONFIG_USART0_SERIALDRIVER=y Device Drivers -> Serial CONFIG_USART0_SERIAL_CONSOLE=y : Configure the console on USART0 @@ -966,7 +966,7 @@ Configuration sub-directories Board Selection -> Peripheral CONFIG_SAM34_UART0=n : Disable UART0. Can't use with this shield CONFIG_SAM34_USART0=y : Enable USART0 - CONFIG_USART0_ISUART=y + CONFIG_USART0_SERIALDRIVER=y Device Drivers -> Serial CONFIG_USART0_SERIAL_CONSOLE=y : Configure the console on USART0 diff --git a/configs/arduino-mega2560/hello/defconfig b/configs/arduino-mega2560/hello/defconfig index 987dff0f7d..4459053ee1 100644 --- a/configs/arduino-mega2560/hello/defconfig +++ b/configs/arduino-mega2560/hello/defconfig @@ -327,7 +327,6 @@ CONFIG_USART0_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART0_ISUART=y CONFIG_MCU_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set # CONFIG_SERIAL_OFLOWCONTROL is not set diff --git a/configs/arduino-mega2560/nsh/defconfig b/configs/arduino-mega2560/nsh/defconfig index efca605df1..9aee289d6d 100644 --- a/configs/arduino-mega2560/nsh/defconfig +++ b/configs/arduino-mega2560/nsh/defconfig @@ -335,7 +335,6 @@ CONFIG_USART0_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART0_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/avr32dev1/nsh/defconfig b/configs/avr32dev1/nsh/defconfig index 77eced83ba..0f87f20046 100644 --- a/configs/avr32dev1/nsh/defconfig +++ b/configs/avr32dev1/nsh/defconfig @@ -281,7 +281,6 @@ CONFIG_USART1_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y CONFIG_USART1_SERIAL_CONSOLE=y diff --git a/configs/avr32dev1/ostest/defconfig b/configs/avr32dev1/ostest/defconfig index c0e4f0ff5c..6fc2eed59f 100644 --- a/configs/avr32dev1/ostest/defconfig +++ b/configs/avr32dev1/ostest/defconfig @@ -280,7 +280,6 @@ CONFIG_USART1_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_USART1_SERIAL_CONSOLE=y # CONFIG_NO_SERIAL_CONSOLE is not set diff --git a/configs/cloudctrl/nsh/defconfig b/configs/cloudctrl/nsh/defconfig index 3f94800d4b..1ad599bdb4 100644 --- a/configs/cloudctrl/nsh/defconfig +++ b/configs/cloudctrl/nsh/defconfig @@ -813,7 +813,6 @@ CONFIG_USART2_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART2_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y CONFIG_SERIAL_NPOLLWAITERS=2 diff --git a/configs/fire-stm32v2/nsh/defconfig b/configs/fire-stm32v2/nsh/defconfig index bf83254989..62c9eab594 100644 --- a/configs/fire-stm32v2/nsh/defconfig +++ b/configs/fire-stm32v2/nsh/defconfig @@ -819,8 +819,6 @@ CONFIG_USART2_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y -CONFIG_USART2_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/hymini-stm32v/buttons/defconfig b/configs/hymini-stm32v/buttons/defconfig index 81dc4c32ae..2de9a25b33 100644 --- a/configs/hymini-stm32v/buttons/defconfig +++ b/configs/hymini-stm32v/buttons/defconfig @@ -703,7 +703,6 @@ CONFIG_USART1_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/hymini-stm32v/nsh/defconfig b/configs/hymini-stm32v/nsh/defconfig index 6435625a70..2db32fd210 100644 --- a/configs/hymini-stm32v/nsh/defconfig +++ b/configs/hymini-stm32v/nsh/defconfig @@ -732,7 +732,6 @@ CONFIG_USART1_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/hymini-stm32v/nsh2/defconfig b/configs/hymini-stm32v/nsh2/defconfig index eaada2fb30..71705a0361 100644 --- a/configs/hymini-stm32v/nsh2/defconfig +++ b/configs/hymini-stm32v/nsh2/defconfig @@ -820,7 +820,6 @@ CONFIG_USART1_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/hymini-stm32v/usbmsc/defconfig b/configs/hymini-stm32v/usbmsc/defconfig index 8ba24dece5..be1eeeef98 100644 --- a/configs/hymini-stm32v/usbmsc/defconfig +++ b/configs/hymini-stm32v/usbmsc/defconfig @@ -727,8 +727,6 @@ CONFIG_USART2_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y -CONFIG_USART2_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/hymini-stm32v/usbnsh/defconfig b/configs/hymini-stm32v/usbnsh/defconfig index a8e5fefe5c..9cf98c3df9 100644 --- a/configs/hymini-stm32v/usbnsh/defconfig +++ b/configs/hymini-stm32v/usbnsh/defconfig @@ -706,7 +706,6 @@ CONFIG_USART1_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/hymini-stm32v/usbserial/defconfig b/configs/hymini-stm32v/usbserial/defconfig index 8f7b9144e6..4b242e01a5 100644 --- a/configs/hymini-stm32v/usbserial/defconfig +++ b/configs/hymini-stm32v/usbserial/defconfig @@ -712,8 +712,6 @@ CONFIG_USART2_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y -CONFIG_USART2_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/lpc4330-xplorer/nsh/defconfig b/configs/lpc4330-xplorer/nsh/defconfig index a3e6787ee5..a6a461ba6c 100644 --- a/configs/lpc4330-xplorer/nsh/defconfig +++ b/configs/lpc4330-xplorer/nsh/defconfig @@ -497,7 +497,6 @@ CONFIG_USART0_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART0_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y CONFIG_SERIAL_NPOLLWAITERS=2 diff --git a/configs/lpc4337-ws/nsh/defconfig b/configs/lpc4337-ws/nsh/defconfig index 76e4c657dd..4f36719c26 100644 --- a/configs/lpc4337-ws/nsh/defconfig +++ b/configs/lpc4337-ws/nsh/defconfig @@ -494,7 +494,6 @@ CONFIG_USART2_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART2_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y CONFIG_SERIAL_NPOLLWAITERS=2 diff --git a/configs/lpc4357-evb/nsh/defconfig b/configs/lpc4357-evb/nsh/defconfig index eabdacbbe5..e1f25c97d5 100644 --- a/configs/lpc4357-evb/nsh/defconfig +++ b/configs/lpc4357-evb/nsh/defconfig @@ -429,7 +429,6 @@ CONFIG_USART0_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART0_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y CONFIG_SERIAL_NPOLLWAITERS=2 diff --git a/configs/lpc4370-link2/nsh/defconfig b/configs/lpc4370-link2/nsh/defconfig index 8d46af3627..8a14cef067 100644 --- a/configs/lpc4370-link2/nsh/defconfig +++ b/configs/lpc4370-link2/nsh/defconfig @@ -492,7 +492,6 @@ CONFIG_USART2_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART2_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y CONFIG_SERIAL_NPOLLWAITERS=2 diff --git a/configs/maple/nsh/defconfig b/configs/maple/nsh/defconfig index 7cadcc1cae..5233c52690 100644 --- a/configs/maple/nsh/defconfig +++ b/configs/maple/nsh/defconfig @@ -693,7 +693,6 @@ CONFIG_USART1_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/maple/nx/defconfig b/configs/maple/nx/defconfig index 39241301fc..a6f7707e81 100644 --- a/configs/maple/nx/defconfig +++ b/configs/maple/nx/defconfig @@ -773,7 +773,6 @@ CONFIG_USART1_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/maple/usbnsh/defconfig b/configs/maple/usbnsh/defconfig index 3752fd47c9..42ace19439 100644 --- a/configs/maple/usbnsh/defconfig +++ b/configs/maple/usbnsh/defconfig @@ -700,7 +700,6 @@ CONFIG_USART1_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/micropendous3/hello/defconfig b/configs/micropendous3/hello/defconfig index 83b31bfeb6..a1a6f7ceec 100644 --- a/configs/micropendous3/hello/defconfig +++ b/configs/micropendous3/hello/defconfig @@ -251,7 +251,6 @@ CONFIG_USART1_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_USART1_SERIAL_CONSOLE=y # CONFIG_NO_SERIAL_CONSOLE is not set diff --git a/configs/mikroe-stm32f4/fulldemo/defconfig b/configs/mikroe-stm32f4/fulldemo/defconfig index da949f7c05..dc0899b6dd 100644 --- a/configs/mikroe-stm32f4/fulldemo/defconfig +++ b/configs/mikroe-stm32f4/fulldemo/defconfig @@ -878,7 +878,6 @@ CONFIG_USART2_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART2_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/mikroe-stm32f4/kostest/defconfig b/configs/mikroe-stm32f4/kostest/defconfig index 719709c2e3..92b18878d6 100644 --- a/configs/mikroe-stm32f4/kostest/defconfig +++ b/configs/mikroe-stm32f4/kostest/defconfig @@ -829,7 +829,6 @@ CONFIG_USART2_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART2_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/mikroe-stm32f4/nsh/defconfig b/configs/mikroe-stm32f4/nsh/defconfig index c30de1609b..506a161bbb 100644 --- a/configs/mikroe-stm32f4/nsh/defconfig +++ b/configs/mikroe-stm32f4/nsh/defconfig @@ -796,7 +796,6 @@ CONFIG_USART2_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART2_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/mikroe-stm32f4/usbnsh/defconfig b/configs/mikroe-stm32f4/usbnsh/defconfig index 3e81c9d216..12c9e850a9 100644 --- a/configs/mikroe-stm32f4/usbnsh/defconfig +++ b/configs/mikroe-stm32f4/usbnsh/defconfig @@ -805,7 +805,6 @@ CONFIG_USART2_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART2_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/moteino-mega/hello/defconfig b/configs/moteino-mega/hello/defconfig index f6ce9e582b..92218c71f2 100644 --- a/configs/moteino-mega/hello/defconfig +++ b/configs/moteino-mega/hello/defconfig @@ -300,7 +300,6 @@ CONFIG_USART0_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART0_ISUART=y CONFIG_MCU_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set # CONFIG_SERIAL_OFLOWCONTROL is not set diff --git a/configs/moteino-mega/nsh/defconfig b/configs/moteino-mega/nsh/defconfig index 2aece63792..3625027ae2 100644 --- a/configs/moteino-mega/nsh/defconfig +++ b/configs/moteino-mega/nsh/defconfig @@ -308,7 +308,6 @@ CONFIG_USART0_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART0_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/nucleo-144/README.txt b/configs/nucleo-144/README.txt index 77ca0f0170..e99cd427de 100644 --- a/configs/nucleo-144/README.txt +++ b/configs/nucleo-144/README.txt @@ -260,7 +260,7 @@ Serial Consoles Use make menuconfig to configure USART8 as the console: CONFIG_STM32F7_UART8=y - CONFIG_USART8_ISUART=y + CONFIG_USART8_SERIALDRIVER=y CONFIG_USART8_SERIAL_CONSOLE=y CONFIG_UART8_RXBUFSIZE=256 CONFIG_UART8_TXBUFSIZE=256 diff --git a/configs/nucleo-144/evalos/defconfig b/configs/nucleo-144/evalos/defconfig index 1fdee8d4ee..9944952cac 100644 --- a/configs/nucleo-144/evalos/defconfig +++ b/configs/nucleo-144/evalos/defconfig @@ -525,7 +525,6 @@ CONFIG_USART3_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART3_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/nucleo-144/nsh/defconfig b/configs/nucleo-144/nsh/defconfig index 218ea02fa2..cb59abca25 100644 --- a/configs/nucleo-144/nsh/defconfig +++ b/configs/nucleo-144/nsh/defconfig @@ -510,7 +510,6 @@ CONFIG_USART6_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART6_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/nucleo-f4x1re/README.txt b/configs/nucleo-f4x1re/README.txt index 066474d69e..4a84121a40 100644 --- a/configs/nucleo-f4x1re/README.txt +++ b/configs/nucleo-f4x1re/README.txt @@ -395,7 +395,7 @@ Serial Consoles To configure USART1 as the console: CONFIG_STM32_USART1=y - CONFIG_USART1_ISUART=y + CONFIG_USART1_SERIALDRIVER=y CONFIG_USART1_SERIAL_CONSOLE=y CONFIG_USART1_RXBUFSIZE=256 CONFIG_USART1_TXBUFSIZE=256 @@ -434,7 +434,7 @@ Serial Consoles To configure USART2 as the console: CONFIG_STM32_USART2=y - CONFIG_USART2_ISUART=y + CONFIG_USART2_SERIALDRIVER=y CONFIG_USART2_SERIAL_CONSOLE=y CONFIG_USART2_RXBUFSIZE=256 CONFIG_USART2_TXBUFSIZE=256 @@ -455,7 +455,7 @@ Serial Consoles To configure USART6 as the console: CONFIG_STM32_USART6=y - CONFIG_USART6_ISUART=y + CONFIG_USART6_SERIALDRIVER=y CONFIG_USART6_SERIAL_CONSOLE=y CONFIG_USART6_RXBUFSIZE=256 CONFIG_USART6_TXBUFSIZE=256 diff --git a/configs/nucleo-f4x1re/f401-nsh/defconfig b/configs/nucleo-f4x1re/f401-nsh/defconfig index d0b8683cd2..08158babad 100644 --- a/configs/nucleo-f4x1re/f401-nsh/defconfig +++ b/configs/nucleo-f4x1re/f401-nsh/defconfig @@ -708,7 +708,6 @@ CONFIG_USART2_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART2_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/nucleo-f4x1re/f411-nsh/defconfig b/configs/nucleo-f4x1re/f411-nsh/defconfig index 55c28f55b3..eabffcc9ee 100644 --- a/configs/nucleo-f4x1re/f411-nsh/defconfig +++ b/configs/nucleo-f4x1re/f411-nsh/defconfig @@ -710,7 +710,6 @@ CONFIG_USART2_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART2_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/nucleo-l476rg/README.txt b/configs/nucleo-l476rg/README.txt index ab8ff50b27..d576d83d88 100644 --- a/configs/nucleo-l476rg/README.txt +++ b/configs/nucleo-l476rg/README.txt @@ -377,7 +377,7 @@ Serial Consoles To configure USART1 as the console: CONFIG_STM32_USART1=y - CONFIG_USART1_ISUART=y + CONFIG_USART1_SERIALDRIVER=y CONFIG_USART1_SERIAL_CONSOLE=y CONFIG_USART1_RXBUFSIZE=256 CONFIG_USART1_TXBUFSIZE=256 @@ -416,7 +416,7 @@ Serial Consoles To configure USART2 as the console: CONFIG_STM32_USART2=y - CONFIG_USART2_ISUART=y + CONFIG_USART2_SERIALDRIVER=y CONFIG_USART2_SERIAL_CONSOLE=y CONFIG_USART2_RXBUFSIZE=256 CONFIG_USART2_TXBUFSIZE=256 @@ -437,7 +437,7 @@ Serial Consoles To configure USART6 as the console: CONFIG_STM32_USART6=y - CONFIG_USART6_ISUART=y + CONFIG_USART6_SERIALDRIVER=y CONFIG_USART6_SERIAL_CONSOLE=y CONFIG_USART6_RXBUFSIZE=256 CONFIG_USART6_TXBUFSIZE=256 diff --git a/configs/nucleo-l476rg/nsh/defconfig b/configs/nucleo-l476rg/nsh/defconfig index ea1bc23ad7..4f2c7c8da4 100644 --- a/configs/nucleo-l476rg/nsh/defconfig +++ b/configs/nucleo-l476rg/nsh/defconfig @@ -585,7 +585,6 @@ CONFIG_USART2_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART2_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/olimex-stm32-h405/usbnsh/defconfig b/configs/olimex-stm32-h405/usbnsh/defconfig index 08d6d0df6d..c4eb567066 100644 --- a/configs/olimex-stm32-h405/usbnsh/defconfig +++ b/configs/olimex-stm32-h405/usbnsh/defconfig @@ -772,7 +772,6 @@ CONFIG_USART3_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART3_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/olimex-stm32-h407/nsh/defconfig b/configs/olimex-stm32-h407/nsh/defconfig index 1ad8fcc624..a06e8ce6f7 100644 --- a/configs/olimex-stm32-h407/nsh/defconfig +++ b/configs/olimex-stm32-h407/nsh/defconfig @@ -732,7 +732,6 @@ CONFIG_USART2_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART2_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/olimex-stm32-p107/nsh/defconfig b/configs/olimex-stm32-p107/nsh/defconfig index e5be82f83f..fd28530029 100644 --- a/configs/olimex-stm32-p107/nsh/defconfig +++ b/configs/olimex-stm32-p107/nsh/defconfig @@ -799,7 +799,6 @@ CONFIG_USART2_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART2_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y CONFIG_SERIAL_NPOLLWAITERS=2 diff --git a/configs/olimex-stm32-p207/nsh/defconfig b/configs/olimex-stm32-p207/nsh/defconfig index b0bbad2369..af96f79417 100644 --- a/configs/olimex-stm32-p207/nsh/defconfig +++ b/configs/olimex-stm32-p207/nsh/defconfig @@ -839,7 +839,6 @@ CONFIG_USART3_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART3_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/olimexino-stm32/can/defconfig b/configs/olimexino-stm32/can/defconfig index 3ce198d053..acc1ef42ea 100644 --- a/configs/olimexino-stm32/can/defconfig +++ b/configs/olimexino-stm32/can/defconfig @@ -769,7 +769,6 @@ CONFIG_USART1_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y CONFIG_SERIAL_NPOLLWAITERS=2 diff --git a/configs/olimexino-stm32/composite/defconfig b/configs/olimexino-stm32/composite/defconfig index 4ce578d1b5..3403023d02 100644 --- a/configs/olimexino-stm32/composite/defconfig +++ b/configs/olimexino-stm32/composite/defconfig @@ -771,8 +771,6 @@ CONFIG_USART2_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y -CONFIG_USART2_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y CONFIG_SERIAL_NPOLLWAITERS=2 diff --git a/configs/olimexino-stm32/nsh/defconfig b/configs/olimexino-stm32/nsh/defconfig index 8a4fe99f49..b0c9ae6873 100644 --- a/configs/olimexino-stm32/nsh/defconfig +++ b/configs/olimexino-stm32/nsh/defconfig @@ -769,8 +769,6 @@ CONFIG_USART2_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y -CONFIG_USART2_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y CONFIG_SERIAL_NPOLLWAITERS=2 diff --git a/configs/olimexino-stm32/smallnsh/defconfig b/configs/olimexino-stm32/smallnsh/defconfig index 7f2d768429..aa6998750a 100644 --- a/configs/olimexino-stm32/smallnsh/defconfig +++ b/configs/olimexino-stm32/smallnsh/defconfig @@ -747,7 +747,6 @@ CONFIG_USART1_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y CONFIG_SERIAL_NPOLLWAITERS=2 diff --git a/configs/olimexino-stm32/tiny/defconfig b/configs/olimexino-stm32/tiny/defconfig index 43396831d7..2863be3880 100644 --- a/configs/olimexino-stm32/tiny/defconfig +++ b/configs/olimexino-stm32/tiny/defconfig @@ -751,7 +751,6 @@ CONFIG_USART1_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y CONFIG_MCU_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set # CONFIG_SERIAL_OFLOWCONTROL is not set diff --git a/configs/sam3u-ek/README.txt b/configs/sam3u-ek/README.txt index d2e92fb08b..2a03890a2c 100644 --- a/configs/sam3u-ek/README.txt +++ b/configs/sam3u-ek/README.txt @@ -379,10 +379,10 @@ SAM3U-EK-specific Configuration Options CONFIG_SAM34_GPIOA_IRQ CONFIG_SAM34_GPIOB_IRQ CONFIG_SAM34_GPIOC_IRQ - CONFIG_USART0_ISUART - CONFIG_USART1_ISUART - CONFIG_USART2_ISUART - CONFIG_USART3_ISUART + CONFIG_USART0_SERIALDRIVER + CONFIG_USART1_SERIALDRIVER + CONFIG_USART2_SERIALDRIVER + CONFIG_USART3_SERIALDRIVER CONFIG_SAM34_NAND - NAND memory SAM3U specific device driver settings diff --git a/configs/sam4e-ek/README.txt b/configs/sam4e-ek/README.txt index 22f9ab157b..90b979059e 100644 --- a/configs/sam4e-ek/README.txt +++ b/configs/sam4e-ek/README.txt @@ -1189,10 +1189,10 @@ SAM4E-EK-specific Configuration Options CONFIG_SAM34_GPIOP_IRQ CONFIG_SAM34_GPIOQ_IRQ - CONFIG_USART0_ISUART - CONFIG_USART1_ISUART - CONFIG_USART2_ISUART - CONFIG_USART3_ISUART + CONFIG_USART0_SERIALDRIVER + CONFIG_USART1_SERIALDRIVER + CONFIG_USART2_SERIALDRIVER + CONFIG_USART3_SERIALDRIVER SAM3U specific device driver settings diff --git a/configs/sam4e-ek/nsh/defconfig b/configs/sam4e-ek/nsh/defconfig index 0215f96eb4..869702660d 100644 --- a/configs/sam4e-ek/nsh/defconfig +++ b/configs/sam4e-ek/nsh/defconfig @@ -644,7 +644,6 @@ CONFIG_USART1_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/sam4e-ek/nxwm/defconfig b/configs/sam4e-ek/nxwm/defconfig index ae9b420787..5e2ebc17c0 100644 --- a/configs/sam4e-ek/nxwm/defconfig +++ b/configs/sam4e-ek/nxwm/defconfig @@ -707,7 +707,6 @@ CONFIG_USART1_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/sam4e-ek/src/sam_boot.c b/configs/sam4e-ek/src/sam_boot.c index d0dda097b0..f103a897d8 100644 --- a/configs/sam4e-ek/src/sam_boot.c +++ b/configs/sam4e-ek/src/sam_boot.c @@ -70,10 +70,10 @@ #ifdef CONFIG_SAM34_USART1 static inline void board_config_usart1(void) { -#if defined(CONFIG_USART1_ISUART) - (void)sam_configgpio(GPIO_RS232_ENABLE); -#else /* if defined(CONFIG_USART1_RS485) */ +#if defined(CONFIG_USART1_RS485) */ (void)sam_configgpio(GPIO_RS485_ENABLE); +#else /* if defined(CONFIG_USART1_SERIALDRIVER) */ + (void)sam_configgpio(GPIO_RS232_ENABLE); #endif } #else diff --git a/configs/sam4e-ek/usbnsh/defconfig b/configs/sam4e-ek/usbnsh/defconfig index 3dfd080451..58b643af0c 100644 --- a/configs/sam4e-ek/usbnsh/defconfig +++ b/configs/sam4e-ek/usbnsh/defconfig @@ -645,7 +645,6 @@ CONFIG_USART1_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/sam4l-xplained/README.txt b/configs/sam4l-xplained/README.txt index de3ef5a81c..a52b8ae8c4 100644 --- a/configs/sam4l-xplained/README.txt +++ b/configs/sam4l-xplained/README.txt @@ -566,10 +566,10 @@ SAM4L Xplained Pro-specific Configuration Options CONFIG_SAM34_GPIOA_IRQ CONFIG_SAM34_GPIOB_IRQ CONFIG_SAM34_GPIOC_IRQ - CONFIG_USART0_ISUART - CONFIG_USART1_ISUART - CONFIG_USART2_ISUART - CONFIG_USART3_ISUART + CONFIG_USART0_SERIALDRIVER + CONFIG_USART1_SERIALDRIVER + CONFIG_USART2_SERIALDRIVER + CONFIG_USART3_SERIALDRIVER ST91SAM4L specific device driver settings diff --git a/configs/sam4l-xplained/nsh/defconfig b/configs/sam4l-xplained/nsh/defconfig index 9122bfc766..223ce701c6 100644 --- a/configs/sam4l-xplained/nsh/defconfig +++ b/configs/sam4l-xplained/nsh/defconfig @@ -533,7 +533,6 @@ CONFIG_USART0_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART0_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/sam4s-xplained-pro/README.txt b/configs/sam4s-xplained-pro/README.txt index b0b76de1cd..83f19be929 100644 --- a/configs/sam4s-xplained-pro/README.txt +++ b/configs/sam4s-xplained-pro/README.txt @@ -464,10 +464,10 @@ SAM4S Xplained-specific Configuration Options CONFIG_GPIOA_IRQ CONFIG_GPIOB_IRQ CONFIG_GPIOC_IRQ - CONFIG_USART0_ISUART - CONFIG_USART1_ISUART - CONFIG_USART2_ISUART - CONFIG_USART3_ISUART + CONFIG_USART0_SERIALDRIVER + CONFIG_USART1_SERIALDRIVER + CONFIG_USART2_SERIALDRIVER + CONFIG_USART3_SERIALDRIVER ST91SAM4S specific device driver settings diff --git a/configs/sam4s-xplained-pro/nsh/defconfig b/configs/sam4s-xplained-pro/nsh/defconfig index 76288e6675..d5008bd41a 100644 --- a/configs/sam4s-xplained-pro/nsh/defconfig +++ b/configs/sam4s-xplained-pro/nsh/defconfig @@ -585,7 +585,6 @@ CONFIG_USART1_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/sam4s-xplained/README.txt b/configs/sam4s-xplained/README.txt index 4d49a0a5bf..d5af219e24 100644 --- a/configs/sam4s-xplained/README.txt +++ b/configs/sam4s-xplained/README.txt @@ -456,10 +456,10 @@ SAM4S Xplained-specific Configuration Options CONFIG_SAM34_GPIOA_IRQ CONFIG_SAM34_GPIOB_IRQ CONFIG_SAM34_GPIOC_IRQ - CONFIG_USART0_ISUART - CONFIG_USART1_ISUART - CONFIG_USART2_ISUART - CONFIG_USART3_ISUART + CONFIG_USART0_SERIALDRIVER + CONFIG_USART1_SERIALDRIVER + CONFIG_USART2_SERIALDRIVER + CONFIG_USART3_SERIALDRIVER ST91SAM4S specific device driver settings diff --git a/configs/sama5d2-xult/README.txt b/configs/sama5d2-xult/README.txt index 8adbabe7fd..9af903ada8 100644 --- a/configs/sama5d2-xult/README.txt +++ b/configs/sama5d2-xult/README.txt @@ -849,11 +849,11 @@ REVISIT: Unverified, cloned text from the SAMA5D4-EK README.txt CONFIG_SAMA5_PIOC_IRQ - Support PIOD interrupts CONFIG_SAMA5_PIOD_IRQ - Support PIOD interrupts - CONFIG_USART0_ISUART - Flexcom0 is configured as a UART - CONFIG_USART1_ISUART - Flexcom1 is configured as a UART - CONFIG_USART2_ISUART - Flexcom2 is configured as a UART - CONFIG_USART3_ISUART - Flexcom3 is configured as a UART - CONFIG_USART4_ISUART - Flexcom4 is configured as a UART + CONFIG_USART0_SERIALDRIVER - Flexcom0 is configured as a UART + CONFIG_USART1_SERIALDRIVER - Flexcom1 is configured as a UART + CONFIG_USART2_SERIALDRIVER - Flexcom2 is configured as a UART + CONFIG_USART3_SERIALDRIVER - Flexcom3 is configured as a UART + CONFIG_USART4_SERIALDRIVER - Flexcom4 is configured as a UART AT91SAMA5 specific device driver settings diff --git a/configs/sama5d2-xult/nsh/defconfig b/configs/sama5d2-xult/nsh/defconfig index 076e2cddd3..537cb8d4ea 100644 --- a/configs/sama5d2-xult/nsh/defconfig +++ b/configs/sama5d2-xult/nsh/defconfig @@ -597,7 +597,6 @@ CONFIG_USART4_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART4_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y CONFIG_SERIAL_NPOLLWAITERS=2 diff --git a/configs/sama5d3-xplained/README.txt b/configs/sama5d3-xplained/README.txt index 5421b218f9..93cfb9a6c2 100644 --- a/configs/sama5d3-xplained/README.txt +++ b/configs/sama5d3-xplained/README.txt @@ -2915,10 +2915,10 @@ SAMA5D3-Xplained Configuration Options CONFIG_SAMA5_PIOD_IRQ - Support PIOD interrupts CONFIG_SAMA5_PIOE_IRQ - Support PIOE interrupts - CONFIG_USART0_ISUART - USART0 is configured as a UART - CONFIG_USART1_ISUART - USART1 is configured as a UART - CONFIG_USART2_ISUART - USART2 is configured as a UART - CONFIG_USART3_ISUART - USART3 is configured as a UART + CONFIG_USART0_SERIALDRIVER - USART0 is configured as a UART + CONFIG_USART1_SERIALDRIVER - USART1 is configured as a UART + CONFIG_USART2_SERIALDRIVER - USART2 is configured as a UART + CONFIG_USART3_SERIALDRIVER - USART3 is configured as a UART AT91SAMA5 specific device driver settings diff --git a/configs/sama5d3x-ek/README.txt b/configs/sama5d3x-ek/README.txt index 3a7ebc5729..82a5c2fd4c 100644 --- a/configs/sama5d3x-ek/README.txt +++ b/configs/sama5d3x-ek/README.txt @@ -3240,10 +3240,10 @@ SAMA5D3x-EK Configuration Options CONFIG_SAMA5_PIOD_IRQ - Support PIOD interrupts CONFIG_SAMA5_PIOE_IRQ - Support PIOE interrupts - CONFIG_USART0_ISUART - USART0 is configured as a UART - CONFIG_USART1_ISUART - USART1 is configured as a UART - CONFIG_USART2_ISUART - USART2 is configured as a UART - CONFIG_USART3_ISUART - USART3 is configured as a UART + CONFIG_USART0_SERIALDRIVER - USART0 is configured as a UART + CONFIG_USART1_SERIALDRIVER - USART1 is configured as a UART + CONFIG_USART2_SERIALDRIVER - USART2 is configured as a UART + CONFIG_USART3_SERIALDRIVER - USART3 is configured as a UART AT91SAMA5 specific device driver settings diff --git a/configs/sama5d3x-ek/demo/defconfig b/configs/sama5d3x-ek/demo/defconfig index d5feee4c2a..fc3d188f89 100644 --- a/configs/sama5d3x-ek/demo/defconfig +++ b/configs/sama5d3x-ek/demo/defconfig @@ -674,7 +674,6 @@ CONFIG_USART1_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/sama5d3x-ek/hello/defconfig b/configs/sama5d3x-ek/hello/defconfig index 2e3a214022..0be49453e1 100644 --- a/configs/sama5d3x-ek/hello/defconfig +++ b/configs/sama5d3x-ek/hello/defconfig @@ -532,7 +532,6 @@ CONFIG_USART1_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y CONFIG_MCU_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set # CONFIG_SERIAL_OFLOWCONTROL is not set diff --git a/configs/sama5d3x-ek/norboot/defconfig b/configs/sama5d3x-ek/norboot/defconfig index d88c24e581..56b211c95f 100644 --- a/configs/sama5d3x-ek/norboot/defconfig +++ b/configs/sama5d3x-ek/norboot/defconfig @@ -546,7 +546,6 @@ CONFIG_USART1_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y CONFIG_MCU_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set # CONFIG_SERIAL_OFLOWCONTROL is not set diff --git a/configs/sama5d3x-ek/nsh/defconfig b/configs/sama5d3x-ek/nsh/defconfig index c9fb27f122..78c2073493 100644 --- a/configs/sama5d3x-ek/nsh/defconfig +++ b/configs/sama5d3x-ek/nsh/defconfig @@ -550,7 +550,6 @@ CONFIG_USART1_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/sama5d3x-ek/nx/defconfig b/configs/sama5d3x-ek/nx/defconfig index 05cb6bd949..7a4734bead 100644 --- a/configs/sama5d3x-ek/nx/defconfig +++ b/configs/sama5d3x-ek/nx/defconfig @@ -591,7 +591,6 @@ CONFIG_USART1_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/sama5d3x-ek/nxplayer/defconfig b/configs/sama5d3x-ek/nxplayer/defconfig index 7047ef2c75..7a1878be00 100644 --- a/configs/sama5d3x-ek/nxplayer/defconfig +++ b/configs/sama5d3x-ek/nxplayer/defconfig @@ -649,7 +649,6 @@ CONFIG_USART1_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/sama5d3x-ek/nxwm/defconfig b/configs/sama5d3x-ek/nxwm/defconfig index 1375a49907..5e533abf0d 100644 --- a/configs/sama5d3x-ek/nxwm/defconfig +++ b/configs/sama5d3x-ek/nxwm/defconfig @@ -649,7 +649,6 @@ CONFIG_USART1_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/sama5d3x-ek/ov2640/defconfig b/configs/sama5d3x-ek/ov2640/defconfig index 2b3bcd4104..c058dd759b 100644 --- a/configs/sama5d3x-ek/ov2640/defconfig +++ b/configs/sama5d3x-ek/ov2640/defconfig @@ -617,7 +617,6 @@ CONFIG_USART1_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y CONFIG_MCU_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set # CONFIG_SERIAL_OFLOWCONTROL is not set diff --git a/configs/sama5d4-ek/README.txt b/configs/sama5d4-ek/README.txt index 5f2e569a08..7e3f33bd3b 100644 --- a/configs/sama5d4-ek/README.txt +++ b/configs/sama5d4-ek/README.txt @@ -3526,10 +3526,10 @@ SAMA4D4-EK Configuration Options CONFIG_SAMA5_PIOD_IRQ - Support PIOD interrupts CONFIG_SAMA5_PIOE_IRQ - Support PIOE interrupts - CONFIG_USART0_ISUART - USART0 is configured as a UART - CONFIG_USART1_ISUART - USART1 is configured as a UART - CONFIG_USART2_ISUART - USART2 is configured as a UART - CONFIG_USART3_ISUART - USART3 is configured as a UART + CONFIG_USART0_SERIALDRIVER - USART0 is configured as a UART + CONFIG_USART1_SERIALDRIVER - USART1 is configured as a UART + CONFIG_USART2_SERIALDRIVER - USART2 is configured as a UART + CONFIG_USART3_SERIALDRIVER - USART3 is configured as a UART AT91SAMA5 specific device driver settings diff --git a/configs/sama5d4-ek/at25boot/defconfig b/configs/sama5d4-ek/at25boot/defconfig index ece2235e63..64151008f5 100644 --- a/configs/sama5d4-ek/at25boot/defconfig +++ b/configs/sama5d4-ek/at25boot/defconfig @@ -610,7 +610,6 @@ CONFIG_USART3_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART3_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/sama5d4-ek/bridge/defconfig b/configs/sama5d4-ek/bridge/defconfig index 6d3cc44b76..e777febe93 100644 --- a/configs/sama5d4-ek/bridge/defconfig +++ b/configs/sama5d4-ek/bridge/defconfig @@ -650,7 +650,6 @@ CONFIG_USART3_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART3_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y CONFIG_SERIAL_NPOLLWAITERS=2 diff --git a/configs/sama5d4-ek/dramboot/defconfig b/configs/sama5d4-ek/dramboot/defconfig index d0e5a8da56..f12701c0c5 100644 --- a/configs/sama5d4-ek/dramboot/defconfig +++ b/configs/sama5d4-ek/dramboot/defconfig @@ -567,7 +567,6 @@ CONFIG_USART3_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART3_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/sama5d4-ek/elf/defconfig b/configs/sama5d4-ek/elf/defconfig index 233ce84fc6..b598b3f7cc 100644 --- a/configs/sama5d4-ek/elf/defconfig +++ b/configs/sama5d4-ek/elf/defconfig @@ -593,8 +593,6 @@ CONFIG_USART4_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART3_ISUART=y -CONFIG_USART4_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y CONFIG_SERIAL_NPOLLWAITERS=2 diff --git a/configs/sama5d4-ek/ipv6/defconfig b/configs/sama5d4-ek/ipv6/defconfig index d0b3c36156..347761f235 100644 --- a/configs/sama5d4-ek/ipv6/defconfig +++ b/configs/sama5d4-ek/ipv6/defconfig @@ -794,8 +794,6 @@ CONFIG_USART4_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART3_ISUART=y -CONFIG_USART4_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y CONFIG_SERIAL_NPOLLWAITERS=2 diff --git a/configs/sama5d4-ek/knsh/defconfig b/configs/sama5d4-ek/knsh/defconfig index e2a4818b0b..1992f4004b 100644 --- a/configs/sama5d4-ek/knsh/defconfig +++ b/configs/sama5d4-ek/knsh/defconfig @@ -622,8 +622,6 @@ CONFIG_USART4_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART3_ISUART=y -CONFIG_USART4_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y CONFIG_SERIAL_NPOLLWAITERS=2 diff --git a/configs/sama5d4-ek/knsh/defconfig.ROMFS b/configs/sama5d4-ek/knsh/defconfig.ROMFS index bdfbc4f2d3..a069c2d2a7 100644 --- a/configs/sama5d4-ek/knsh/defconfig.ROMFS +++ b/configs/sama5d4-ek/knsh/defconfig.ROMFS @@ -512,8 +512,8 @@ CONFIG_USART4_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART3_ISUART=y -CONFIG_USART4_ISUART=y +CONFIG_USART3_SERIALDRIVER=y +CONFIG_USART4_SERIALDRIVER=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y CONFIG_SERIAL_NPOLLWAITERS=2 diff --git a/configs/sama5d4-ek/nsh/defconfig b/configs/sama5d4-ek/nsh/defconfig index 78afd6d449..eeab2f0131 100644 --- a/configs/sama5d4-ek/nsh/defconfig +++ b/configs/sama5d4-ek/nsh/defconfig @@ -796,8 +796,6 @@ CONFIG_USART4_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART3_ISUART=y -CONFIG_USART4_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y CONFIG_SERIAL_NPOLLWAITERS=2 diff --git a/configs/sama5d4-ek/nxwm/defconfig b/configs/sama5d4-ek/nxwm/defconfig index 5e3cb961d5..33173d299d 100644 --- a/configs/sama5d4-ek/nxwm/defconfig +++ b/configs/sama5d4-ek/nxwm/defconfig @@ -765,8 +765,6 @@ CONFIG_USART4_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART3_ISUART=y -CONFIG_USART4_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y CONFIG_SERIAL_NPOLLWAITERS=2 diff --git a/configs/sama5d4-ek/ramtest/defconfig b/configs/sama5d4-ek/ramtest/defconfig index 812658acad..4490b66233 100644 --- a/configs/sama5d4-ek/ramtest/defconfig +++ b/configs/sama5d4-ek/ramtest/defconfig @@ -567,7 +567,6 @@ CONFIG_USART3_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART3_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/samd20-xplained/nsh/defconfig b/configs/samd20-xplained/nsh/defconfig index 1034f8f4ba..5df5b16c4d 100644 --- a/configs/samd20-xplained/nsh/defconfig +++ b/configs/samd20-xplained/nsh/defconfig @@ -496,8 +496,6 @@ CONFIG_USART4_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART3_ISUART=y -CONFIG_USART4_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/samd21-xplained/nsh/defconfig b/configs/samd21-xplained/nsh/defconfig index 57dd571fb1..1610bf7397 100644 --- a/configs/samd21-xplained/nsh/defconfig +++ b/configs/samd21-xplained/nsh/defconfig @@ -494,8 +494,6 @@ CONFIG_USART4_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART3_ISUART=y -CONFIG_USART4_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/same70-xplained/README.txt b/configs/same70-xplained/README.txt index 9a0ed6fa83..548e496e0a 100644 --- a/configs/same70-xplained/README.txt +++ b/configs/same70-xplained/README.txt @@ -1139,7 +1139,7 @@ NOTES: USART1. UART3 might be a good option (the Arduino RXD/TXD): -CONFIG_SAMV7_USART1=y - -CONFIG_USART1_ISUART=y + -CONFIG_USART1_SERIALDRIVER=y -CONFIG_USART1_SERIAL_CONSOLE=y -CONFIG_USART1_RXBUFSIZE=256 -CONFIG_USART1_TXBUFSIZE=256 diff --git a/configs/same70-xplained/netnsh/defconfig b/configs/same70-xplained/netnsh/defconfig index b075b8123f..17951d79a8 100644 --- a/configs/same70-xplained/netnsh/defconfig +++ b/configs/same70-xplained/netnsh/defconfig @@ -681,7 +681,6 @@ CONFIG_USART1_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/same70-xplained/nsh/defconfig b/configs/same70-xplained/nsh/defconfig index c00de67abe..7a425dcb80 100644 --- a/configs/same70-xplained/nsh/defconfig +++ b/configs/same70-xplained/nsh/defconfig @@ -623,7 +623,6 @@ CONFIG_USART1_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/saml21-xplained/nsh/defconfig b/configs/saml21-xplained/nsh/defconfig index 6ba6ee32eb..c44ddac15a 100644 --- a/configs/saml21-xplained/nsh/defconfig +++ b/configs/saml21-xplained/nsh/defconfig @@ -482,8 +482,6 @@ CONFIG_USART4_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART3_ISUART=y -CONFIG_USART4_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/samv71-xult/mxtxplnd/defconfig b/configs/samv71-xult/mxtxplnd/defconfig index c62abbd119..93136214de 100644 --- a/configs/samv71-xult/mxtxplnd/defconfig +++ b/configs/samv71-xult/mxtxplnd/defconfig @@ -671,7 +671,6 @@ CONFIG_USART0_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART0_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/samv71-xult/nxwm/defconfig b/configs/samv71-xult/nxwm/defconfig index b331629d77..7bba67ff6e 100644 --- a/configs/samv71-xult/nxwm/defconfig +++ b/configs/samv71-xult/nxwm/defconfig @@ -680,7 +680,6 @@ CONFIG_USART0_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART0_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/shenzhou/nsh/defconfig b/configs/shenzhou/nsh/defconfig index 3297dca5ae..8e63767f22 100644 --- a/configs/shenzhou/nsh/defconfig +++ b/configs/shenzhou/nsh/defconfig @@ -800,7 +800,6 @@ CONFIG_USART2_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART2_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/shenzhou/nxwm/defconfig b/configs/shenzhou/nxwm/defconfig index 842129754b..99442a110a 100644 --- a/configs/shenzhou/nxwm/defconfig +++ b/configs/shenzhou/nxwm/defconfig @@ -869,7 +869,6 @@ CONFIG_USART2_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART2_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/shenzhou/thttpd/defconfig b/configs/shenzhou/thttpd/defconfig index cbc5ad6cd5..916a8502d3 100644 --- a/configs/shenzhou/thttpd/defconfig +++ b/configs/shenzhou/thttpd/defconfig @@ -852,7 +852,6 @@ CONFIG_USART2_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART2_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y CONFIG_SERIAL_NPOLLWAITERS=2 diff --git a/configs/spark/composite/defconfig b/configs/spark/composite/defconfig index deade5be0d..58cc681e27 100644 --- a/configs/spark/composite/defconfig +++ b/configs/spark/composite/defconfig @@ -758,7 +758,6 @@ CONFIG_USART2_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART2_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/spark/nsh/defconfig b/configs/spark/nsh/defconfig index abf2cc0c74..8ca981562b 100644 --- a/configs/spark/nsh/defconfig +++ b/configs/spark/nsh/defconfig @@ -757,7 +757,6 @@ CONFIG_USART2_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART2_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/spark/usbmsc/defconfig b/configs/spark/usbmsc/defconfig index 40f168ecb9..67c57e2c13 100644 --- a/configs/spark/usbmsc/defconfig +++ b/configs/spark/usbmsc/defconfig @@ -757,7 +757,6 @@ CONFIG_USART2_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART2_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/spark/usbnsh/defconfig b/configs/spark/usbnsh/defconfig index 98276db077..19fed07df8 100644 --- a/configs/spark/usbnsh/defconfig +++ b/configs/spark/usbnsh/defconfig @@ -751,7 +751,6 @@ CONFIG_USART2_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART2_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/spark/usbserial/defconfig b/configs/spark/usbserial/defconfig index 384fabd4ef..10d28c0afd 100644 --- a/configs/spark/usbserial/defconfig +++ b/configs/spark/usbserial/defconfig @@ -755,7 +755,6 @@ CONFIG_USART2_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART2_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/stm3210e-eval/buttons/defconfig b/configs/stm3210e-eval/buttons/defconfig index 01a52f0289..79afddd8b7 100644 --- a/configs/stm3210e-eval/buttons/defconfig +++ b/configs/stm3210e-eval/buttons/defconfig @@ -704,8 +704,6 @@ CONFIG_USART2_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y -CONFIG_USART2_ISUART=y CONFIG_MCU_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set # CONFIG_SERIAL_OFLOWCONTROL is not set diff --git a/configs/stm3210e-eval/composite/defconfig b/configs/stm3210e-eval/composite/defconfig index e1bbc75a38..e5412ac4b5 100644 --- a/configs/stm3210e-eval/composite/defconfig +++ b/configs/stm3210e-eval/composite/defconfig @@ -777,8 +777,6 @@ CONFIG_USART2_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y -CONFIG_USART2_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/stm3210e-eval/nsh/defconfig b/configs/stm3210e-eval/nsh/defconfig index 9c49ac8d79..8c4cdcd5b9 100644 --- a/configs/stm3210e-eval/nsh/defconfig +++ b/configs/stm3210e-eval/nsh/defconfig @@ -779,8 +779,6 @@ CONFIG_USART2_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y -CONFIG_USART2_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/stm3210e-eval/nsh2/defconfig b/configs/stm3210e-eval/nsh2/defconfig index 6b8140c65e..e4868e0d8f 100644 --- a/configs/stm3210e-eval/nsh2/defconfig +++ b/configs/stm3210e-eval/nsh2/defconfig @@ -836,8 +836,6 @@ CONFIG_USART2_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y -CONFIG_USART2_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/stm3210e-eval/nx/defconfig b/configs/stm3210e-eval/nx/defconfig index ea4fb79de3..0229e097f3 100644 --- a/configs/stm3210e-eval/nx/defconfig +++ b/configs/stm3210e-eval/nx/defconfig @@ -774,8 +774,6 @@ CONFIG_USART2_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y -CONFIG_USART2_ISUART=y CONFIG_MCU_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set # CONFIG_SERIAL_OFLOWCONTROL is not set diff --git a/configs/stm3210e-eval/nxterm/defconfig b/configs/stm3210e-eval/nxterm/defconfig index ddbf57bf91..15309beafb 100644 --- a/configs/stm3210e-eval/nxterm/defconfig +++ b/configs/stm3210e-eval/nxterm/defconfig @@ -770,8 +770,6 @@ CONFIG_USART2_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y -CONFIG_USART2_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/stm3210e-eval/pm/defconfig b/configs/stm3210e-eval/pm/defconfig index c08457d8fb..372ead7465 100644 --- a/configs/stm3210e-eval/pm/defconfig +++ b/configs/stm3210e-eval/pm/defconfig @@ -811,8 +811,6 @@ CONFIG_USART2_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y -CONFIG_USART2_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/stm3210e-eval/usbmsc/defconfig b/configs/stm3210e-eval/usbmsc/defconfig index 8608819a2d..3a85f542b5 100644 --- a/configs/stm3210e-eval/usbmsc/defconfig +++ b/configs/stm3210e-eval/usbmsc/defconfig @@ -742,8 +742,6 @@ CONFIG_USART2_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y -CONFIG_USART2_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/stm3210e-eval/usbserial/defconfig b/configs/stm3210e-eval/usbserial/defconfig index 73fcaa4f96..dc7cda266e 100644 --- a/configs/stm3210e-eval/usbserial/defconfig +++ b/configs/stm3210e-eval/usbserial/defconfig @@ -718,8 +718,6 @@ CONFIG_USART2_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y -CONFIG_USART2_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/stm3220g-eval/dhcpd/defconfig b/configs/stm3220g-eval/dhcpd/defconfig index 2e500266ce..6d2dd3d130 100644 --- a/configs/stm3220g-eval/dhcpd/defconfig +++ b/configs/stm3220g-eval/dhcpd/defconfig @@ -771,7 +771,6 @@ CONFIG_USART3_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART3_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/stm3220g-eval/nettest/defconfig b/configs/stm3220g-eval/nettest/defconfig index e5b82e2731..ee753d9d28 100644 --- a/configs/stm3220g-eval/nettest/defconfig +++ b/configs/stm3220g-eval/nettest/defconfig @@ -772,7 +772,6 @@ CONFIG_USART3_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART3_ISUART=y CONFIG_MCU_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set # CONFIG_SERIAL_OFLOWCONTROL is not set diff --git a/configs/stm3220g-eval/nsh/defconfig b/configs/stm3220g-eval/nsh/defconfig index 026d5f7d0e..0046e360d2 100644 --- a/configs/stm3220g-eval/nsh/defconfig +++ b/configs/stm3220g-eval/nsh/defconfig @@ -836,7 +836,6 @@ CONFIG_USART3_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART3_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/stm3220g-eval/nxwm/defconfig b/configs/stm3220g-eval/nxwm/defconfig index 9fa572fec7..40a6f16790 100644 --- a/configs/stm3220g-eval/nxwm/defconfig +++ b/configs/stm3220g-eval/nxwm/defconfig @@ -886,7 +886,6 @@ CONFIG_USART3_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART3_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/stm3220g-eval/telnetd/defconfig b/configs/stm3220g-eval/telnetd/defconfig index 738ca2ab57..c0ea09b3bd 100644 --- a/configs/stm3220g-eval/telnetd/defconfig +++ b/configs/stm3220g-eval/telnetd/defconfig @@ -774,7 +774,6 @@ CONFIG_USART3_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART3_ISUART=y CONFIG_MCU_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set # CONFIG_SERIAL_OFLOWCONTROL is not set diff --git a/configs/stm3240g-eval/dhcpd/defconfig b/configs/stm3240g-eval/dhcpd/defconfig index e4fcfe4d1e..472b435492 100644 --- a/configs/stm3240g-eval/dhcpd/defconfig +++ b/configs/stm3240g-eval/dhcpd/defconfig @@ -780,7 +780,6 @@ CONFIG_USART3_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART3_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/stm3240g-eval/discover/defconfig b/configs/stm3240g-eval/discover/defconfig index 35e267a0ba..2c2b237587 100644 --- a/configs/stm3240g-eval/discover/defconfig +++ b/configs/stm3240g-eval/discover/defconfig @@ -803,7 +803,6 @@ CONFIG_USART3_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART3_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/stm3240g-eval/knxwm/defconfig b/configs/stm3240g-eval/knxwm/defconfig index 9f9e8b6670..9bc3e7f8d1 100644 --- a/configs/stm3240g-eval/knxwm/defconfig +++ b/configs/stm3240g-eval/knxwm/defconfig @@ -838,7 +838,6 @@ CONFIG_USART3_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART3_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/stm3240g-eval/nettest/defconfig b/configs/stm3240g-eval/nettest/defconfig index e308846a28..d8aadc97fc 100644 --- a/configs/stm3240g-eval/nettest/defconfig +++ b/configs/stm3240g-eval/nettest/defconfig @@ -781,7 +781,6 @@ CONFIG_USART3_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART3_ISUART=y CONFIG_MCU_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set # CONFIG_SERIAL_OFLOWCONTROL is not set diff --git a/configs/stm3240g-eval/nsh/defconfig b/configs/stm3240g-eval/nsh/defconfig index 4753f79a50..430629d9fd 100644 --- a/configs/stm3240g-eval/nsh/defconfig +++ b/configs/stm3240g-eval/nsh/defconfig @@ -823,7 +823,6 @@ CONFIG_USART3_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART3_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/stm3240g-eval/nxterm/defconfig b/configs/stm3240g-eval/nxterm/defconfig index 37325cb201..1ce9db616c 100644 --- a/configs/stm3240g-eval/nxterm/defconfig +++ b/configs/stm3240g-eval/nxterm/defconfig @@ -861,7 +861,6 @@ CONFIG_USART3_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART3_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/stm3240g-eval/nxwm/defconfig b/configs/stm3240g-eval/nxwm/defconfig index 8502894b90..db49bdef41 100644 --- a/configs/stm3240g-eval/nxwm/defconfig +++ b/configs/stm3240g-eval/nxwm/defconfig @@ -888,7 +888,6 @@ CONFIG_USART3_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART3_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/stm3240g-eval/telnetd/defconfig b/configs/stm3240g-eval/telnetd/defconfig index 762057caee..ac29812963 100644 --- a/configs/stm3240g-eval/telnetd/defconfig +++ b/configs/stm3240g-eval/telnetd/defconfig @@ -783,7 +783,6 @@ CONFIG_USART3_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART3_ISUART=y CONFIG_MCU_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set # CONFIG_SERIAL_OFLOWCONTROL is not set diff --git a/configs/stm3240g-eval/webserver/defconfig b/configs/stm3240g-eval/webserver/defconfig index 73f147bd86..646d9bce1e 100644 --- a/configs/stm3240g-eval/webserver/defconfig +++ b/configs/stm3240g-eval/webserver/defconfig @@ -840,7 +840,6 @@ CONFIG_USART3_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART3_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/stm3240g-eval/xmlrpc/defconfig b/configs/stm3240g-eval/xmlrpc/defconfig index f554369996..9768965985 100644 --- a/configs/stm3240g-eval/xmlrpc/defconfig +++ b/configs/stm3240g-eval/xmlrpc/defconfig @@ -798,7 +798,6 @@ CONFIG_USART3_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART3_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y CONFIG_SERIAL_NPOLLWAITERS=2 diff --git a/configs/stm32_tiny/nsh/defconfig b/configs/stm32_tiny/nsh/defconfig index 4d6fe80db6..854d8b8fe9 100644 --- a/configs/stm32_tiny/nsh/defconfig +++ b/configs/stm32_tiny/nsh/defconfig @@ -714,7 +714,6 @@ CONFIG_USART1_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y CONFIG_SERIAL_NPOLLWAITERS=2 diff --git a/configs/stm32_tiny/usbnsh/defconfig b/configs/stm32_tiny/usbnsh/defconfig index f41ed2a4c7..930370b72a 100644 --- a/configs/stm32_tiny/usbnsh/defconfig +++ b/configs/stm32_tiny/usbnsh/defconfig @@ -689,7 +689,6 @@ CONFIG_USART1_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/stm32f103-minimum/nsh/defconfig b/configs/stm32f103-minimum/nsh/defconfig index 99ea938945..7a6a1b1a50 100644 --- a/configs/stm32f103-minimum/nsh/defconfig +++ b/configs/stm32f103-minimum/nsh/defconfig @@ -706,7 +706,6 @@ CONFIG_USART1_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y CONFIG_SERIAL_NPOLLWAITERS=2 diff --git a/configs/stm32f103-minimum/usbnsh/defconfig b/configs/stm32f103-minimum/usbnsh/defconfig index d585efcdaf..bc956ebb70 100644 --- a/configs/stm32f103-minimum/usbnsh/defconfig +++ b/configs/stm32f103-minimum/usbnsh/defconfig @@ -703,7 +703,6 @@ CONFIG_USART1_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/stm32f3discovery/nsh/defconfig b/configs/stm32f3discovery/nsh/defconfig index b93c3498c7..8b933dc816 100644 --- a/configs/stm32f3discovery/nsh/defconfig +++ b/configs/stm32f3discovery/nsh/defconfig @@ -712,7 +712,6 @@ CONFIG_USART2_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART2_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/stm32f3discovery/usbnsh/defconfig b/configs/stm32f3discovery/usbnsh/defconfig index 65e440461e..0e4d84ecb5 100644 --- a/configs/stm32f3discovery/usbnsh/defconfig +++ b/configs/stm32f3discovery/usbnsh/defconfig @@ -735,7 +735,6 @@ CONFIG_USART2_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART2_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/stm32f411e-disco/nsh/defconfig b/configs/stm32f411e-disco/nsh/defconfig index f9798b8b4c..f8811cc2f4 100644 --- a/configs/stm32f411e-disco/nsh/defconfig +++ b/configs/stm32f411e-disco/nsh/defconfig @@ -704,7 +704,6 @@ CONFIG_USART2_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART2_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/stm32f429i-disco/extflash/defconfig b/configs/stm32f429i-disco/extflash/defconfig index 9b287af9a8..29d4d4ea4d 100644 --- a/configs/stm32f429i-disco/extflash/defconfig +++ b/configs/stm32f429i-disco/extflash/defconfig @@ -810,7 +810,6 @@ CONFIG_USART1_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/stm32f429i-disco/lcd/defconfig b/configs/stm32f429i-disco/lcd/defconfig index a08f4b3c95..7c6de91967 100644 --- a/configs/stm32f429i-disco/lcd/defconfig +++ b/configs/stm32f429i-disco/lcd/defconfig @@ -782,7 +782,6 @@ CONFIG_USART1_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/stm32f429i-disco/ltdc/defconfig b/configs/stm32f429i-disco/ltdc/defconfig index c92f562842..a7882e2201 100644 --- a/configs/stm32f429i-disco/ltdc/defconfig +++ b/configs/stm32f429i-disco/ltdc/defconfig @@ -824,7 +824,6 @@ CONFIG_USART1_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/stm32f429i-disco/nsh/defconfig b/configs/stm32f429i-disco/nsh/defconfig index 19f025f718..e5061d7b10 100644 --- a/configs/stm32f429i-disco/nsh/defconfig +++ b/configs/stm32f429i-disco/nsh/defconfig @@ -740,7 +740,6 @@ CONFIG_USART1_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/stm32f429i-disco/usbmsc/defconfig b/configs/stm32f429i-disco/usbmsc/defconfig index 787b971c75..8ba6d3498e 100644 --- a/configs/stm32f429i-disco/usbmsc/defconfig +++ b/configs/stm32f429i-disco/usbmsc/defconfig @@ -764,7 +764,6 @@ CONFIG_USART1_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/stm32f429i-disco/usbnsh/defconfig b/configs/stm32f429i-disco/usbnsh/defconfig index cdb9f816a1..2fcacfac99 100644 --- a/configs/stm32f429i-disco/usbnsh/defconfig +++ b/configs/stm32f429i-disco/usbnsh/defconfig @@ -748,7 +748,6 @@ CONFIG_USART1_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/stm32f4discovery/cxxtest/defconfig b/configs/stm32f4discovery/cxxtest/defconfig index c066ec4d92..ff82464253 100644 --- a/configs/stm32f4discovery/cxxtest/defconfig +++ b/configs/stm32f4discovery/cxxtest/defconfig @@ -734,7 +734,6 @@ CONFIG_USART2_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART2_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/stm32f4discovery/elf/defconfig b/configs/stm32f4discovery/elf/defconfig index 380e140539..0aed80c795 100644 --- a/configs/stm32f4discovery/elf/defconfig +++ b/configs/stm32f4discovery/elf/defconfig @@ -734,7 +734,6 @@ CONFIG_USART2_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART2_ISUART=y CONFIG_MCU_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set # CONFIG_SERIAL_OFLOWCONTROL is not set diff --git a/configs/stm32f4discovery/ipv6/defconfig b/configs/stm32f4discovery/ipv6/defconfig index dc0ad8bc87..cf084013ad 100644 --- a/configs/stm32f4discovery/ipv6/defconfig +++ b/configs/stm32f4discovery/ipv6/defconfig @@ -844,7 +844,6 @@ CONFIG_USART6_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART6_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/stm32f4discovery/kostest/defconfig b/configs/stm32f4discovery/kostest/defconfig index 8186a529a8..75ea757002 100644 --- a/configs/stm32f4discovery/kostest/defconfig +++ b/configs/stm32f4discovery/kostest/defconfig @@ -742,7 +742,6 @@ CONFIG_USART2_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART2_ISUART=y CONFIG_MCU_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set # CONFIG_SERIAL_OFLOWCONTROL is not set diff --git a/configs/stm32f4discovery/netnsh/defconfig b/configs/stm32f4discovery/netnsh/defconfig index 501b9af147..819ccc8abb 100644 --- a/configs/stm32f4discovery/netnsh/defconfig +++ b/configs/stm32f4discovery/netnsh/defconfig @@ -849,7 +849,6 @@ CONFIG_USART6_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART6_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/stm32f4discovery/nsh/defconfig b/configs/stm32f4discovery/nsh/defconfig index 67b36f6bf7..ada9987412 100644 --- a/configs/stm32f4discovery/nsh/defconfig +++ b/configs/stm32f4discovery/nsh/defconfig @@ -749,7 +749,6 @@ CONFIG_USART2_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART2_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/stm32f4discovery/nxlines/defconfig b/configs/stm32f4discovery/nxlines/defconfig index b3c3b96fe7..446ec54c27 100644 --- a/configs/stm32f4discovery/nxlines/defconfig +++ b/configs/stm32f4discovery/nxlines/defconfig @@ -789,7 +789,6 @@ CONFIG_USART2_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART2_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/stm32f4discovery/pm/defconfig b/configs/stm32f4discovery/pm/defconfig index f1fe7b04ae..d2499cde60 100644 --- a/configs/stm32f4discovery/pm/defconfig +++ b/configs/stm32f4discovery/pm/defconfig @@ -755,7 +755,6 @@ CONFIG_USART2_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART2_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/stm32f4discovery/posix_spawn/defconfig b/configs/stm32f4discovery/posix_spawn/defconfig index 378411766c..02452b3557 100644 --- a/configs/stm32f4discovery/posix_spawn/defconfig +++ b/configs/stm32f4discovery/posix_spawn/defconfig @@ -734,7 +734,6 @@ CONFIG_USART2_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART2_ISUART=y CONFIG_MCU_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set # CONFIG_SERIAL_OFLOWCONTROL is not set diff --git a/configs/stm32f4discovery/rgbled/defconfig b/configs/stm32f4discovery/rgbled/defconfig index b015db193f..f9c11a58b4 100644 --- a/configs/stm32f4discovery/rgbled/defconfig +++ b/configs/stm32f4discovery/rgbled/defconfig @@ -783,7 +783,6 @@ CONFIG_USART2_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART2_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/stm32f4discovery/usbnsh/defconfig b/configs/stm32f4discovery/usbnsh/defconfig index bff1f81969..bceb08eac9 100644 --- a/configs/stm32f4discovery/usbnsh/defconfig +++ b/configs/stm32f4discovery/usbnsh/defconfig @@ -757,7 +757,6 @@ CONFIG_USART2_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART2_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/stm32f4discovery/winbuild/defconfig b/configs/stm32f4discovery/winbuild/defconfig index aa65746a5e..079f197c1f 100644 --- a/configs/stm32f4discovery/winbuild/defconfig +++ b/configs/stm32f4discovery/winbuild/defconfig @@ -684,7 +684,6 @@ CONFIG_USART2_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART2_ISUART=y CONFIG_MCU_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set # CONFIG_SERIAL_OFLOWCONTROL is not set diff --git a/configs/stm32f746g-disco/knsh/defconfig b/configs/stm32f746g-disco/knsh/defconfig index 322c5220be..6edc370a23 100644 --- a/configs/stm32f746g-disco/knsh/defconfig +++ b/configs/stm32f746g-disco/knsh/defconfig @@ -520,7 +520,6 @@ CONFIG_USART6_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART6_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/stm32f746g-disco/netnsh/defconfig b/configs/stm32f746g-disco/netnsh/defconfig index 16e82125a5..efd988abdf 100644 --- a/configs/stm32f746g-disco/netnsh/defconfig +++ b/configs/stm32f746g-disco/netnsh/defconfig @@ -579,7 +579,6 @@ CONFIG_USART6_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART6_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/stm32f746g-disco/nsh/defconfig b/configs/stm32f746g-disco/nsh/defconfig index a50b4c08f8..fdac7f8dd6 100644 --- a/configs/stm32f746g-disco/nsh/defconfig +++ b/configs/stm32f746g-disco/nsh/defconfig @@ -512,7 +512,6 @@ CONFIG_USART6_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART6_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/stm32l476vg-disco/README.txt b/configs/stm32l476vg-disco/README.txt index f6f0479ad5..e8355e79bc 100644 --- a/configs/stm32l476vg-disco/README.txt +++ b/configs/stm32l476vg-disco/README.txt @@ -379,7 +379,7 @@ Serial Consoles To configure USART1 as the console: CONFIG_STM32_USART1=y - CONFIG_USART1_ISUART=y + CONFIG_USART1_SERIALDRIVER=y CONFIG_USART1_SERIAL_CONSOLE=y CONFIG_USART1_RXBUFSIZE=256 CONFIG_USART1_TXBUFSIZE=256 @@ -418,7 +418,7 @@ Serial Consoles To configure USART2 as the console: CONFIG_STM32_USART2=y - CONFIG_USART2_ISUART=y + CONFIG_USART2_SERIALDRIVER=y CONFIG_USART2_SERIAL_CONSOLE=y CONFIG_USART2_RXBUFSIZE=256 CONFIG_USART2_TXBUFSIZE=256 @@ -439,7 +439,7 @@ Serial Consoles To configure USART6 as the console: CONFIG_STM32_USART6=y - CONFIG_USART6_ISUART=y + CONFIG_USART6_SERIALDRIVER=y CONFIG_USART6_SERIAL_CONSOLE=y CONFIG_USART6_RXBUFSIZE=256 CONFIG_USART6_TXBUFSIZE=256 diff --git a/configs/stm32l476vg-disco/nsh/defconfig b/configs/stm32l476vg-disco/nsh/defconfig index bd10662dfe..1b79946f71 100644 --- a/configs/stm32l476vg-disco/nsh/defconfig +++ b/configs/stm32l476vg-disco/nsh/defconfig @@ -633,7 +633,6 @@ CONFIG_USART2_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART2_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/stm32ldiscovery/nsh/defconfig b/configs/stm32ldiscovery/nsh/defconfig index d0aa56aba7..c81b4344ab 100644 --- a/configs/stm32ldiscovery/nsh/defconfig +++ b/configs/stm32ldiscovery/nsh/defconfig @@ -695,7 +695,6 @@ CONFIG_USART1_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/stm32vldiscovery/nsh/defconfig b/configs/stm32vldiscovery/nsh/defconfig index edd007cacf..19ac81a47d 100644 --- a/configs/stm32vldiscovery/nsh/defconfig +++ b/configs/stm32vldiscovery/nsh/defconfig @@ -714,7 +714,6 @@ CONFIG_USART1_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/teensy-2.0/hello/defconfig b/configs/teensy-2.0/hello/defconfig index 8025d62e93..423049ad66 100644 --- a/configs/teensy-2.0/hello/defconfig +++ b/configs/teensy-2.0/hello/defconfig @@ -331,7 +331,6 @@ CONFIG_USART1_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y CONFIG_MCU_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set # CONFIG_SERIAL_OFLOWCONTROL is not set diff --git a/configs/teensy-2.0/nsh/defconfig b/configs/teensy-2.0/nsh/defconfig index 058e74e9ff..eaf3e24cc9 100644 --- a/configs/teensy-2.0/nsh/defconfig +++ b/configs/teensy-2.0/nsh/defconfig @@ -342,7 +342,6 @@ CONFIG_USART1_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set diff --git a/configs/teensy-2.0/usbmsc/defconfig b/configs/teensy-2.0/usbmsc/defconfig index b38d5cad91..b185f2467c 100644 --- a/configs/teensy-2.0/usbmsc/defconfig +++ b/configs/teensy-2.0/usbmsc/defconfig @@ -364,7 +364,6 @@ CONFIG_USART1_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y CONFIG_MCU_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set # CONFIG_SERIAL_OFLOWCONTROL is not set diff --git a/configs/viewtool-stm32f107/highpri/defconfig b/configs/viewtool-stm32f107/highpri/defconfig index c471b211f3..00dd939849 100644 --- a/configs/viewtool-stm32f107/highpri/defconfig +++ b/configs/viewtool-stm32f107/highpri/defconfig @@ -718,7 +718,6 @@ CONFIG_USART1_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y CONFIG_SERIAL_NPOLLWAITERS=2 diff --git a/configs/viewtool-stm32f107/netnsh/defconfig b/configs/viewtool-stm32f107/netnsh/defconfig index a447f3b660..d937ddfe50 100644 --- a/configs/viewtool-stm32f107/netnsh/defconfig +++ b/configs/viewtool-stm32f107/netnsh/defconfig @@ -777,7 +777,6 @@ CONFIG_USART1_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y CONFIG_SERIAL_NPOLLWAITERS=2 diff --git a/configs/viewtool-stm32f107/nsh/defconfig b/configs/viewtool-stm32f107/nsh/defconfig index 1a7b05a621..f3e15c40ed 100644 --- a/configs/viewtool-stm32f107/nsh/defconfig +++ b/configs/viewtool-stm32f107/nsh/defconfig @@ -716,7 +716,6 @@ CONFIG_USART1_SERIALDRIVER=y # # USART Configuration # -CONFIG_USART1_ISUART=y CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y CONFIG_SERIAL_NPOLLWAITERS=2 diff --git a/drivers/serial/Kconfig b/drivers/serial/Kconfig index f524b2d7fb..ef4858171d 100644 --- a/drivers/serial/Kconfig +++ b/drivers/serial/Kconfig @@ -410,104 +410,53 @@ config SCI1_SERIALDRIVER config USART0_SERIALDRIVER bool default n + select MCU_SERIAL config USART1_SERIALDRIVER bool default n + select MCU_SERIAL config USART2_SERIALDRIVER bool default n + select MCU_SERIAL config USART3_SERIALDRIVER bool default n + select MCU_SERIAL config USART4_SERIALDRIVER bool default n + select MCU_SERIAL config USART5_SERIALDRIVER bool default n + select MCU_SERIAL config USART6_SERIALDRIVER bool default n + select MCU_SERIAL config USART7_SERIALDRIVER bool default n + select MCU_SERIAL config USART8_SERIALDRIVER bool default n + select MCU_SERIAL config OTHER_UART_SERIALDRIVER bool default n select MCU_SERIAL -# -# USARTn configuration. Is the USART configured to behave like a UART? -# - -comment "USART Configuration" - -config USART0_ISUART - bool "USART0 is a UART" - default y - depends on USART0_SERIALDRIVER - select MCU_SERIAL - -config USART1_ISUART - bool "USART1 is a UART" - default y - depends on USART1_SERIALDRIVER - select MCU_SERIAL - -config USART2_ISUART - bool "USART2 is a UART" - default y - depends on USART2_SERIALDRIVER - select MCU_SERIAL - -config USART3_ISUART - bool "USART3 is a UART" - default y - depends on USART3_SERIALDRIVER - select MCU_SERIAL - -config USART4_ISUART - bool "USART4 is a UART" - default y - depends on USART4_SERIALDRIVER - select MCU_SERIAL - -config USART5_ISUART - bool "USART5 is a UART" - default y - depends on USART5_SERIALDRIVER - select MCU_SERIAL - -config USART6_ISUART - bool "USART6 is a UART" - default y - depends on USART6_SERIALDRIVER - select MCU_SERIAL - -config USART7_ISUART - bool "USART7 is a UART" - default y - depends on USART7_SERIALDRIVER - select MCU_SERIAL - -config USART8_ISUART - bool "USART8 is a UART" - default y - depends on USART8_SERIALDRIVER - select MCU_SERIAL - config MCU_SERIAL bool default n @@ -624,7 +573,7 @@ config UART0_SERIAL_CONSOLE config USART0_SERIAL_CONSOLE bool "USART0" - depends on USART0_ISUART + depends on USART0_SERIALDRIVER config UART1_SERIAL_CONSOLE bool "UART1" @@ -632,7 +581,7 @@ config UART1_SERIAL_CONSOLE config USART1_SERIAL_CONSOLE bool "USART1" - depends on USART1_ISUART + depends on USART1_SERIALDRIVER config UART2_SERIAL_CONSOLE bool "UART2" @@ -640,7 +589,7 @@ config UART2_SERIAL_CONSOLE config USART2_SERIAL_CONSOLE bool "USART2" - depends on USART2_ISUART + depends on USART2_SERIALDRIVER config UART3_SERIAL_CONSOLE bool "UART3" @@ -656,7 +605,7 @@ config UART4_SERIAL_CONSOLE config USART4_SERIAL_CONSOLE bool "USART4" - depends on USART4_ISUART + depends on USART4_SERIALDRIVER config UART5_SERIAL_CONSOLE bool "UART5" @@ -664,7 +613,7 @@ config UART5_SERIAL_CONSOLE config USART5_SERIAL_CONSOLE bool "USART5" - depends on USART5_ISUART + depends on USART5_SERIALDRIVER config UART6_SERIAL_CONSOLE bool "UART6" @@ -672,7 +621,7 @@ config UART6_SERIAL_CONSOLE config USART6_SERIAL_CONSOLE bool "USART6" - depends on USART6_ISUART + depends on USART6_SERIALDRIVER config UART7_SERIAL_CONSOLE bool "UART7" @@ -680,7 +629,7 @@ config UART7_SERIAL_CONSOLE config USART7_SERIAL_CONSOLE bool "USART7" - depends on USART7_ISUART + depends on USART7_SERIALDRIVER config UART8_SERIAL_CONSOLE bool "UART8" @@ -688,7 +637,7 @@ config UART8_SERIAL_CONSOLE config USART8_SERIAL_CONSOLE bool "USART8" - depends on USART8_ISUART + depends on USART8_SERIALDRIVER config SCI0_SERIAL_CONSOLE bool "SCI0" @@ -841,7 +790,7 @@ config UART0_DMA endmenu menu "USART0 Configuration" - depends on USART0_ISUART + depends on USART0_SERIALDRIVER config USART0_RXBUFSIZE int "Receive buffer size" @@ -971,7 +920,7 @@ config UART1_DMA endmenu menu "USART1 Configuration" - depends on USART1_ISUART + depends on USART1_SERIALDRIVER config USART1_RXBUFSIZE int "Receive buffer size" @@ -1101,7 +1050,7 @@ config UART2_DMA endmenu menu "USART2 Configuration" - depends on USART2_ISUART + depends on USART2_SERIALDRIVER config USART2_RXBUFSIZE int "Receive buffer size" @@ -1230,7 +1179,7 @@ config UART3_DMA endmenu menu "USART3 Configuration" - depends on USART3_ISUART + depends on USART3_SERIALDRIVER config USART3_RXBUFSIZE int "Receive buffer size" @@ -1360,7 +1309,7 @@ config UART4_DMA endmenu menu "USART4 Configuration" - depends on USART4_ISUART + depends on USART4_SERIALDRIVER config USART4_RXBUFSIZE int "Receive buffer size" @@ -1490,7 +1439,7 @@ config UART5_DMA endmenu menu "USART5 Configuration" - depends on USART5_ISUART + depends on USART5_SERIALDRIVER config USART5_RXBUFSIZE int "Receive buffer size" @@ -1555,7 +1504,7 @@ config USART5_DMA endmenu menu "USART6 Configuration" - depends on USART6_ISUART + depends on USART6_SERIALDRIVER config USART6_RXBUFSIZE int "Receive buffer size" @@ -1685,7 +1634,7 @@ config UART6_DMA endmenu menu "USART7 Configuration" - depends on USART7_ISUART + depends on USART7_SERIALDRIVER config USART7_RXBUFSIZE int "Receive buffer size" @@ -1815,7 +1764,7 @@ config UART7_DMA endmenu menu "USART8 Configuration" - depends on USART8_ISUART + depends on USART8_SERIALDRIVER config USART8_RXBUFSIZE int "Receive buffer size" -- GitLab From 0252909fc9ec0ec3224bbec1cf30e3750d2987d4 Mon Sep 17 00:00:00 2001 From: ziggurat29 Date: Wed, 25 May 2016 13:09:52 -0500 Subject: [PATCH 250/307] altered pin defs for I2C pins; these needed to be specified as open-drain (otherwise they are push-pull) --- configs/nucleo-l476rg/include/board.h | 8 ++++---- configs/stm32l476vg-disco/include/board.h | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/configs/nucleo-l476rg/include/board.h b/configs/nucleo-l476rg/include/board.h index cc132e838b..0c3131abc3 100644 --- a/configs/nucleo-l476rg/include/board.h +++ b/configs/nucleo-l476rg/include/board.h @@ -109,15 +109,15 @@ * but are normally-high GPIOs. */ -#define GPIO_I2C1_SCL GPIO_I2C1_SCL_2 -#define GPIO_I2C1_SDA GPIO_I2C1_SDA_2 +#define GPIO_I2C1_SCL (GPIO_I2C1_SCL_2|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET) +#define GPIO_I2C1_SDA (GPIO_I2C1_SDA_2|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET) #define GPIO_I2C1_SCL_GPIO \ (GPIO_OUTPUT|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN8) #define GPIO_I2C1_SDA_GPIO \ (GPIO_OUTPUT|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN9) -#define GPIO_I2C2_SCL GPIO_I2C2_SCL_1 -#define GPIO_I2C2_SDA GPIO_I2C2_SDA_1 +#define GPIO_I2C2_SCL (GPIO_I2C2_SCL_1|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET) +#define GPIO_I2C2_SDA (GPIO_I2C2_SDA_1|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET) #define GPIO_I2C2_SCL_GPIO \ (GPIO_OUTPUT|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN10) #define GPIO_I2C2_SDA_GPIO \ diff --git a/configs/stm32l476vg-disco/include/board.h b/configs/stm32l476vg-disco/include/board.h index c3e1efd354..c05f74a7e5 100644 --- a/configs/stm32l476vg-disco/include/board.h +++ b/configs/stm32l476vg-disco/include/board.h @@ -115,8 +115,8 @@ * */ -#define GPIO_I2C1_SCL GPIO_I2C1_SCL_1 -#define GPIO_I2C1_SDA GPIO_I2C1_SDA_1 +#define GPIO_I2C1_SCL (GPIO_I2C1_SCL_1|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET) +#define GPIO_I2C1_SDA (GPIO_I2C1_SDA_1|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET) #define GPIO_I2C1_SCL_GPIO \ (GPIO_OUTPUT|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN6) #define GPIO_I2C1_SDA_GPIO \ @@ -126,8 +126,8 @@ #if 0 -#define GPIO_I2C2_SCL GPIO_I2C2_SCL_1 -#define GPIO_I2C2_SDA GPIO_I2C2_SDA_1 +#define GPIO_I2C2_SCL (GPIO_I2C2_SCL_1|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET) +#define GPIO_I2C2_SDA (GPIO_I2C2_SDA_1|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET) #define GPIO_I2C2_SCL_GPIO \ (GPIO_OUTPUT|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN10) #define GPIO_I2C2_SDA_GPIO \ -- GitLab From 397d228b2a723c63d3fd146670c4d7683ff64b0d Mon Sep 17 00:00:00 2001 From: ziggurat29 Date: Wed, 25 May 2016 13:11:43 -0500 Subject: [PATCH 251/307] let nucleo (stm32l4) support proc fs for info useful for debug --- configs/nucleo-l476rg/src/nucleo-l476rg.h | 10 ++++++++++ configs/nucleo-l476rg/src/stm32_appinit.c | 19 +++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/configs/nucleo-l476rg/src/nucleo-l476rg.h b/configs/nucleo-l476rg/src/nucleo-l476rg.h index 7f1ef0feef..d35d247349 100644 --- a/configs/nucleo-l476rg/src/nucleo-l476rg.h +++ b/configs/nucleo-l476rg/src/nucleo-l476rg.h @@ -52,9 +52,19 @@ ************************************************************************************/ /* Configuration ********************************************************************/ +#define HAVE_PROC 1 #define HAVE_RTC_DRIVER 1 #define HAVE_MMCSD 1 +#if !defined(CONFIG_FS_PROCFS) +# undef HAVE_PROC +#endif + +#if defined(HAVE_PROC) && defined(CONFIG_DISABLE_MOUNTPOINT) +# warning Mountpoints disabled. No procfs support +# undef HAVE_PROC +#endif + /* Check if we can support the RTC driver */ #if !defined(CONFIG_RTC) || !defined(CONFIG_RTC_DRIVER) diff --git a/configs/nucleo-l476rg/src/stm32_appinit.c b/configs/nucleo-l476rg/src/stm32_appinit.c index 1e1bad7d9e..34c579dbb1 100644 --- a/configs/nucleo-l476rg/src/stm32_appinit.c +++ b/configs/nucleo-l476rg/src/stm32_appinit.c @@ -39,7 +39,11 @@ #include +#include +#include #include +#include +#include #include #include @@ -118,6 +122,21 @@ int board_app_initialize(uintptr_t arg) cpuload_initialize_once(); #endif +#ifdef HAVE_PROC + /* mount the proc filesystem */ + + syslog(LOG_INFO, "Mounting procfs to /proc\n"); + + ret = mount(NULL, CONFIG_NSH_PROC_MOUNTPOINT, "procfs", 0, NULL); + if (ret < 0) + { + syslog(LOG_ERR, + "ERROR: Failed to mount the PROC filesystem: %d (%d)\n", + ret, errno); + return ret; + } +#endif + #ifdef HAVE_RTC_DRIVER /* Instantiate the STM32L4 lower-half RTC driver */ -- GitLab From 4a63a7760a548eb2c3a686d00cec2012ece5bf43 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 25 May 2016 12:31:32 -0600 Subject: [PATCH 252/307] STM32: Hook 1-Wire driver into the build system --- arch/arm/include/stm32/stm32f10xxx_irq.h | 2 +- arch/arm/src/stm32/Kconfig | 221 +- arch/arm/src/stm32/Make.defs | 4 + arch/arm/src/stm32/chip/stm32f10xxx_vectors.h | 2 +- arch/arm/src/stm32/stm32_1wire.c | 2671 +++++++++-------- arch/arm/src/stm32/stm32_1wire.h | 176 +- arch/arm/src/stm32/stm32_lowputc.c | 8 +- arch/arm/src/stm32/stm32_serial.c | 112 +- arch/arm/src/stm32/stm32_uart.h | 141 +- 9 files changed, 1764 insertions(+), 1573 deletions(-) diff --git a/arch/arm/include/stm32/stm32f10xxx_irq.h b/arch/arm/include/stm32/stm32f10xxx_irq.h index 3c62e1e2ea..29f07b0fd8 100644 --- a/arch/arm/include/stm32/stm32f10xxx_irq.h +++ b/arch/arm/include/stm32/stm32f10xxx_irq.h @@ -120,7 +120,7 @@ # define STM32_IRQ_TIM5 (66) /* 50: TIM5 global interrupt */ # define STM32_IRQ_SPI3 (67) /* 51: SPI3 global interrupt */ # define STM32_IRQ_UART4 (68) /* 52: USART2 global interrupt */ -# define STM32_IRQ_UART5 (69) /* 53: USART5 global interrupt */ +# define STM32_IRQ_UART5 (69) /* 53: UART5 global interrupt */ # define STM32_IRQ_TIM6 (70) /* 54: TIM6 global interrupt */ # define STM32_IRQ_TIM7 (71) /* 55: TIM7 global interrupt */ # define STM32_IRQ_DMA2CH1 (72) /* 56: DMA2 Channel 1 global interrupt */ diff --git a/arch/arm/src/stm32/Kconfig b/arch/arm/src/stm32/Kconfig index c4e722f4ba..ee4da50e45 100644 --- a/arch/arm/src/stm32/Kconfig +++ b/arch/arm/src/stm32/Kconfig @@ -2160,63 +2160,47 @@ config STM32_TSC config STM32_USART1 bool "USART1" default n - select USART1_SERIALDRIVER - select ARCH_HAVE_SERIAL_TERMIOS select STM32_USART config STM32_USART2 bool "USART2" default n - select USART2_SERIALDRIVER - select ARCH_HAVE_SERIAL_TERMIOS select STM32_USART config STM32_USART3 bool "USART3" default n depends on STM32_HAVE_USART3 - select ARCH_HAVE_SERIAL_TERMIOS - select USART3_SERIALDRIVER select STM32_USART config STM32_UART4 bool "UART4" default n depends on STM32_HAVE_UART4 - select ARCH_HAVE_SERIAL_TERMIOS - select UART4_SERIALDRIVER select STM32_USART config STM32_UART5 bool "UART5" default n depends on STM32_HAVE_UART5 - select ARCH_HAVE_SERIAL_TERMIOS - select UART5_SERIALDRIVER select STM32_USART config STM32_USART6 bool "USART6" default n depends on STM32_HAVE_USART6 - select ARCH_HAVE_SERIAL_TERMIOS - select USART6_SERIALDRIVER select STM32_USART config STM32_UART7 bool "UART7" default n depends on STM32_HAVE_UART7 - select ARCH_HAVE_SERIAL_TERMIOS - select UART7_SERIALDRIVER select STM32_USART config STM32_UART8 bool "UART8" default n depends on STM32_HAVE_UART8 - select ARCH_HAVE_SERIAL_TERMIOS - select UART8_SERIALDRIVER select STM32_USART config STM32_USB @@ -5414,13 +5398,37 @@ endmenu config STM32_USART bool +config STM32_SERIALDRIVER + bool + +config STM32_1WIREDRIVER + bool + menu "U[S]ART Configuration" depends on STM32_USART +choice + prompt "USART1 Driver Configuration" + default STM32_USART1_SERIALDRIVER + depends on STM32_USART1 + +config STM32_USART1_SERIALDRIVER + bool "Standard serial driver" + select USART1_SERIALDRIVER + select ARCH_HAVE_SERIAL_TERMIOS + select STM32_SERIALDRIVER + +config STM32_USART1_1WIREDRIVER + bool "1-Wire driver" + select STM32_1WIREDRIVER + +endchoice # USART1 Driver Configuration + +if STM32_USART1_SERIALDRIVER + config USART1_RS485 bool "RS-485 on USART1" default n - depends on STM32_USART1 ---help--- Enable RS-485 interface on USART1. Your board config will have to provide GPIO_USART1_RS485_DIR pin definition. Currently it cannot be @@ -5438,14 +5446,34 @@ config USART1_RS485_DIR_POLARITY config USART1_RXDMA bool "USART1 Rx DMA" default n - depends on STM32_USART1 && (((STM32_STM32F10XX || STM32_STM32L15XX) && STM32_DMA1) || (!STM32_STM32F10XX && STM32_DMA2)) + depends on (((STM32_STM32F10XX || STM32_STM32L15XX) && STM32_DMA1) || (!STM32_STM32F10XX && STM32_DMA2)) ---help--- In high data rate usage, Rx DMA may eliminate Rx overrun errors +endif # STM32_USART1_SERIALDRIVER + +choice + prompt "USART2 Driver Configuration" + default STM32_USART2_SERIALDRIVER + depends on STM32_USART2 + +config STM32_USART2_SERIALDRIVER + bool "Standard serial driver" + select USART2_SERIALDRIVER + select ARCH_HAVE_SERIAL_TERMIOS + select STM32_SERIALDRIVER + +config STM32_USART2_1WIREDRIVER + bool "1-Wire driver" + select STM32_1WIREDRIVER + +endchoice # USART2 Driver Configuration + +if STM32_USART2_SERIALDRIVER + config USART2_RS485 bool "RS-485 on USART2" default n - depends on STM32_USART2 ---help--- Enable RS-485 interface on USART2. Your board config will have to provide GPIO_USART2_RS485_DIR pin definition. Currently it cannot be @@ -5463,14 +5491,34 @@ config USART2_RS485_DIR_POLARITY config USART2_RXDMA bool "USART2 Rx DMA" default n - depends on STM32_USART2 && STM32_DMA1 + depends on STM32_DMA1 ---help--- In high data rate usage, Rx DMA may eliminate Rx overrun errors +endif # STM32_USART2_SERIALDRIVER + +choice + prompt "USART3 Driver Configuration" + default STM32_USART3_SERIALDRIVER + depends on STM32_USART3 + +config STM32_USART3_SERIALDRIVER + bool "Standard serial driver" + select USART3_SERIALDRIVER + select ARCH_HAVE_SERIAL_TERMIOS + select STM32_SERIALDRIVER + +config STM32_USART3_1WIREDRIVER + bool "1-Wire driver" + select STM32_1WIREDRIVER + +endchoice # USART3 Driver Configuration + +if STM32_USART3_SERIALDRIVER + config USART3_RS485 bool "RS-485 on USART3" default n - depends on STM32_USART3 ---help--- Enable RS-485 interface on USART3. Your board config will have to provide GPIO_USART3_RS485_DIR pin definition. Currently it cannot be @@ -5488,14 +5536,34 @@ config USART3_RS485_DIR_POLARITY config USART3_RXDMA bool "USART3 Rx DMA" default n - depends on STM32_USART3 && STM32_DMA1 + depends on STM32_DMA1 ---help--- In high data rate usage, Rx DMA may eliminate Rx overrun errors +endif # STM32_USART3_SERIALDRIVER + +choice + prompt "UART4 Driver Configuration" + default STM32_UART4_SERIALDRIVER + depends on STM32_UART4 + +config STM32_UART4_SERIALDRIVER + bool "Standard serial driver" + select UART4_SERIALDRIVER + select ARCH_HAVE_SERIAL_TERMIOS + select STM32_SERIALDRIVER + +config STM32_UART4_1WIREDRIVER + bool "1-Wire driver" + select STM32_1WIREDRIVER + +endchoice # UART1 Driver Configuration + +if STM32_UART4_SERIALDRIVER + config UART4_RS485 bool "RS-485 on UART4" default n - depends on STM32_UART4 ---help--- Enable RS-485 interface on UART4. Your board config will have to provide GPIO_UART4_RS485_DIR pin definition. Currently it cannot be @@ -5513,14 +5581,34 @@ config UART4_RS485_DIR_POLARITY config UART4_RXDMA bool "UART4 Rx DMA" default n - depends on STM32_UART4 && STM32_DMA1 + depends on STM32_DMA1 ---help--- In high data rate usage, Rx DMA may eliminate Rx overrun errors +endif # STM32_UART4_SERIALDRIVER + +choice + prompt "UART5 Driver Configuration" + default STM32_UART5_SERIALDRIVER + depends on STM32_UART5 + +config STM32_UART5_SERIALDRIVER + bool "Standard serial driver" + select UART5_SERIALDRIVER + select ARCH_HAVE_SERIAL_TERMIOS + select STM32_SERIALDRIVER + +config STM32_UART5_1WIREDRIVER + bool "1-Wire driver" + select STM32_1WIREDRIVER + +endchoice # UART5 Driver Configuration + +if STM32_UART5_SERIALDRIVER + config UART5_RS485 bool "RS-485 on UART5" default n - depends on STM32_UART5 ---help--- Enable RS-485 interface on UART5. Your board config will have to provide GPIO_UART5_RS485_DIR pin definition. Currently it cannot be @@ -5538,14 +5626,34 @@ config UART5_RS485_DIR_POLARITY config UART5_RXDMA bool "UART5 Rx DMA" default n - depends on STM32_UART5 && STM32_DMA1 + depends on STM32_DMA1 ---help--- In high data rate usage, Rx DMA may eliminate Rx overrun errors +endif # STM32_UART5_SERIALDRIVER + +choice + prompt "USART6 Driver Configuration" + default STM32_USART6_SERIALDRIVER + depends on STM32_USART6 + +config STM32_USART6_SERIALDRIVER + bool "Standard serial driver" + select USART6_SERIALDRIVER + select ARCH_HAVE_SERIAL_TERMIOS + select STM32_SERIALDRIVER + +config STM32_USART6_1WIREDRIVER + bool "1-Wire driver" + select STM32_1WIREDRIVER + +endchoice # USART6 Driver Configuration + +if STM32_USART6_SERIALDRIVER + config USART6_RS485 bool "RS-485 on USART6" default n - depends on STM32_USART6 ---help--- Enable RS-485 interface on USART6. Your board config will have to provide GPIO_USART6_RS485_DIR pin definition. Currently it cannot be @@ -5563,14 +5671,34 @@ config USART6_RS485_DIR_POLARITY config USART6_RXDMA bool "USART6 Rx DMA" default n - depends on STM32_USART6 && STM32_DMA2 + depends on STM32_DMA2 ---help--- In high data rate usage, Rx DMA may eliminate Rx overrun errors +endif # STM32_USART6_SERIALDRIVER + +choice + prompt "UART7 Driver Configuration" + default STM32_UART7_SERIALDRIVER + depends on STM32_UART7 + +config STM32_UART7_SERIALDRIVER + bool "Standard serial driver" + select UART7_SERIALDRIVER + select ARCH_HAVE_SERIAL_TERMIOS + select STM32_SERIALDRIVER + +config STM32_UART7_1WIREDRIVER + bool "1-Wire driver" + select STM32_1WIREDRIVER + +endchoice # UART7 Driver Configuration + +if STM32_UART7_SERIALDRIVER + config UART7_RS485 bool "RS-485 on UART7" default n - depends on STM32_UART7 ---help--- Enable RS-485 interface on UART7. Your board config will have to provide GPIO_UART7_RS485_DIR pin definition. Currently it cannot be @@ -5588,14 +5716,34 @@ config UART7_RS485_DIR_POLARITY config UART7_RXDMA bool "UART7 Rx DMA" default n - depends on STM32_UART7 && STM32_DMA2 + depends on STM32_DMA2 ---help--- In high data rate usage, Rx DMA may eliminate Rx overrun errors +endif # STM32_UART7_SERIALDRIVER + +choice + prompt "UART8 Driver Configuration" + default STM32_UART8_SERIALDRIVER + depends on STM32_UART7 + +config STM32_UART8_SERIALDRIVER + bool "Standard serial driver" + select UART8_SERIALDRIVER + select ARCH_HAVE_SERIAL_TERMIOS + select STM32_SERIALDRIVER + +config STM32_UART8_1WIREDRIVER + bool "1-Wire driver" + select STM32_1WIREDRIVER + +endchoice # UART8 Driver Configuration + +if STM32_UART8_SERIALDRIVER + config UART8_RS485 bool "RS-485 on UART8" default n - depends on STM32_UART8 ---help--- Enable RS-485 interface on UART8. Your board config will have to provide GPIO_UART8_RS485_DIR pin definition. Currently it cannot be @@ -5613,10 +5761,14 @@ config UART8_RS485_DIR_POLARITY config UART8_RXDMA bool "UART8 Rx DMA" default n - depends on STM32_UART8 && STM32_DMA2 + depends on STM32_DMA2 ---help--- In high data rate usage, Rx DMA may eliminate Rx overrun errors +endif # STM32_UART8_SERIALDRIVER + +if STM32_SERIALDRIVER + config SERIAL_DISABLE_REORDERING bool "Disable reordering of ttySx devices." depends on STM32_USART1 || STM32_USART2 || STM32_USART3 || STM32_UART4 || STM32_UART5 || STM32_USART6 || STM32_UART7 || STM32_UART8 @@ -5661,8 +5813,6 @@ config STM32_SERIALBRK_BSDCOMPAT on because the SW starts the break and then the HW automatically clears the break. This makes it is difficult to sent a long break. -endmenu # U[S]ART Configuration - config STM32_USART_SINGLEWIRE bool "Single Wire Support" default n @@ -5671,6 +5821,9 @@ config STM32_USART_SINGLEWIRE Enable single wire UART support. The option enables support for the TIOCSSINGLEWIRE ioctl in the STM32 serial driver. +endif # STM32_SERIALDRIVER +endmenu # U[S]ART Configuration + menu "SPI Configuration" depends on STM32_SPI diff --git a/arch/arm/src/stm32/Make.defs b/arch/arm/src/stm32/Make.defs index 64034976b5..3d225f31ef 100644 --- a/arch/arm/src/stm32/Make.defs +++ b/arch/arm/src/stm32/Make.defs @@ -211,6 +211,10 @@ ifeq ($(CONFIG_DAC),y) CHIP_CSRCS += stm32_dac.c endif +ifeq ($(CONFIG_STM32_1WIREDRIVER),y) +CHIP_CSRCS += stm32_1wire.c +endif + ifeq ($(CONFIG_STM32_RNG),y) CHIP_CSRCS += stm32_rng.c endif diff --git a/arch/arm/src/stm32/chip/stm32f10xxx_vectors.h b/arch/arm/src/stm32/chip/stm32f10xxx_vectors.h index 24822c37d3..0af150638a 100644 --- a/arch/arm/src/stm32/chip/stm32f10xxx_vectors.h +++ b/arch/arm/src/stm32/chip/stm32f10xxx_vectors.h @@ -110,7 +110,7 @@ UNUSED(STM32_IRQ_RESERVED6) /* Vector 16+49: Reserved 6 */ VECTOR(stm32_tim5, STM32_IRQ_TIM5) /* Vector 16+50: TIM5 global interrupt */ VECTOR(stm32_spi3, STM32_IRQ_SPI3) /* Vector 16+51: SPI3 global interrupt */ VECTOR(stm32_uart4, STM32_IRQ_UART4) /* Vector 16+52: USART2 global interrupt */ -VECTOR(stm32_uart5, STM32_IRQ_UART5) /* Vector 16+53: USART5 global interrupt */ +VECTOR(stm32_uart5, STM32_IRQ_UART5) /* Vector 16+53: UART5 global interrupt */ VECTOR(stm32_tim6, STM32_IRQ_TIM6) /* Vector 16+54: TIM6 global interrupt */ VECTOR(stm32_tim7, STM32_IRQ_TIM7) /* Vector 16+55: TIM7 global interrupt */ VECTOR(stm32_dma2ch1, STM32_IRQ_DMA2CH1) /* Vector 16+56: DMA2 Channel 1 global interrupt */ diff --git a/arch/arm/src/stm32/stm32_1wire.c b/arch/arm/src/stm32/stm32_1wire.c index d81feb7999..018ff32c6f 100644 --- a/arch/arm/src/stm32/stm32_1wire.c +++ b/arch/arm/src/stm32/stm32_1wire.c @@ -1,1333 +1,1338 @@ -/**************************************************************************** - * arch/arm/src/stm32/stm32_1wire.c - * - * Copyright (C) 2016 Aleksandr Vyhovanec. All rights reserved. - * Author: Aleksandr Vyhovanec - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name NuttX nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ****************************************************************************/ - -/* Links: - * https://www.maximintegrated.com/en/app-notes/index.mvp/id/214 - */ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include - -#include - -#include "up_arch.h" - -#include "stm32_rcc.h" -#include "stm32_1wire.h" - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -#define BUS_TIMEOUT 5 /* tv_sec */ - -#define RESET_BAUD 9600 -#define RESET_TX 0xF0 -#define TIMESLOT_BAUD 115200 -#define READ_TX 0xFF -#define READ_RX1 0xFF -#define WRITE_TX0 0x00 -#define WRITE_TX1 0xFF - -#define PIN_OPENDRAIN(GPIO) ((GPIO) | GPIO_OPENDRAIN) - -/**************************************************************************** - * Private Types - ****************************************************************************/ - -/* 1-Wire bus task */ - -enum stm32_1wire_msg_e -{ - ONEWIRETASK_NONE = 0, - ONEWIRETASK_RESET, - ONEWIRETASK_WRITE, - ONEWIRETASK_READ -}; - -struct stm32_1wire_msg_s -{ - enum stm32_1wire_msg_e task; /* Task */ - uint8_t *buffer; /* Task buffer */ - int buflen; /* Buffer length */ -}; - -/* 1-Wire device hardware configuration */ - -struct stm32_1wire_config_s -{ - const uint32_t usartbase; /* Base address of USART registers */ - const uint32_t apbclock; /* PCLK 1 or 2 frequency */ - const uint32_t data_pin; /* GPIO configuration for DATA */ - const uint8_t irq; /* IRQ associated with this USART */ - int (*const vector)(int irq, void *context); /* Interrupt handler */ -}; - -/* 1-Wire device Private Data */ - -struct stm32_1wire_priv_s -{ - const struct stm32_1wire_config_s *config; /* Port configuration */ - volatile int refs; /* Referernce count */ - sem_t sem_excl; /* Mutual exclusion semaphore */ - sem_t sem_isr; /* Interrupt wait semaphore */ - int baud; /* Baud rate */ - const struct stm32_1wire_msg_s *msgs; /* Messages data */ - uint8_t *byte; /* Current byte */ - uint8_t bit; /* Current bit */ - volatile int result; /* Exchange result */ -}; - -/* 1-Wire device, Instance */ - -struct stm32_1wire_inst_s -{ - const struct onewire_ops_s *ops; /* Standard 1-Wire operations */ - struct stm32_1wire_priv_s *priv; /* Common driver private data structure */ -}; - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -static inline uint32_t stm32_1wire_in(struct stm32_1wire_priv_s *priv, int offset); -static inline void stm32_1wire_out(struct stm32_1wire_priv_s *priv, int offset, uint32_t value); -static int stm32_1wire_recv(struct stm32_1wire_priv_s *priv); -static void stm32_1wire_send(struct stm32_1wire_priv_s *priv, int ch); -static void stm32_1wire_set_baud(struct stm32_1wire_priv_s *priv); -static void stm32_1wire_set_apb_clock(struct stm32_1wire_priv_s *priv, bool on); -static int stm32_1wire_init(FAR struct stm32_1wire_priv_s *priv); -static int stm32_1wire_deinit(FAR struct stm32_1wire_priv_s *priv); -static inline void stm32_1wire_sem_init(FAR struct stm32_1wire_priv_s *priv); -static inline void stm32_1wire_sem_destroy(FAR struct stm32_1wire_priv_s *priv); -static inline void stm32_1wire_sem_wait(FAR struct stm32_1wire_priv_s *priv); -static inline void stm32_1wire_sem_post(FAR struct stm32_1wire_priv_s *priv); -static int stm32_1wire_process(struct stm32_1wire_priv_s *priv, - FAR const struct stm32_1wire_msg_s *msgs, int count); -static int stm32_1wire_isr(struct stm32_1wire_priv_s *priv); - -#ifdef CONFIG_STM32_1WIRE1 -static int up_interrupt_1wire1(int irq, void *context); -#endif -#ifdef CONFIG_STM32_1WIRE2 -static int up_interrupt_1wire2(int irq, void *context); -#endif -#ifdef CONFIG_STM32_1WIRE3 -static int up_interrupt_1wire3(int irq, void *context); -#endif -#ifdef CONFIG_STM32_1WIRE4 -static int up_interrupt_1wire4(int irq, void *context); -#endif -#ifdef CONFIG_STM32_1WIRE5 -static int up_interrupt_1wire5(int irq, void *context); -#endif -#ifdef CONFIG_STM32_1WIRE6 -static int up_interrupt_1wire6(int irq, void *context); -#endif -#ifdef CONFIG_STM32_1WIRE7 -static int up_interrupt_1wire7(int irq, void *context); -#endif -#ifdef CONFIG_STM32_1WIRE8 -static int up_interrupt_1wire8(int irq, void *context); -#endif - -static int stm32_1wire_reset(FAR struct onewire_dev_s *dev); -static int stm32_1wire_write(FAR struct onewire_dev_s *dev, - const uint8_t *buffer, int buflen); -static int stm32_1wire_read(FAR struct onewire_dev_s *dev, uint8_t *buffer, - int buflen); -static int stm32_1wire_exchange(FAR struct onewire_dev_s *dev, bool reset, - const uint8_t *txbuffer, int txbuflen, - uint8_t *rxbuffer, int rxbuflen); - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/* 1-Wire device structures */ - -#ifdef CONFIG_STM32_1WIRE1 - -static const struct stm32_1wire_config_s stm32_1wire1_config = -{ - .usartbase = STM32_USART1_BASE, - .apbclock = STM32_PCLK2_FREQUENCY, - .data_pin = PIN_OPENDRAIN(GPIO_USART1_TX), - .irq = STM32_IRQ_USART1, - .vector = up_interrupt_1wire1, -}; - -static struct stm32_1wire_priv_s stm32_1wire1_priv = -{ - .config = &stm32_1wire1_config, - .refs = 0, - .msgs = NULL -}; - -#endif - -#ifdef CONFIG_STM32_1WIRE2 - -static const struct stm32_1wire_config_s stm32_1wire2_config = -{ - .usartbase = STM32_USART2_BASE, - .apbclock = STM32_PCLK1_FREQUENCY, - .data_pin = PIN_OPENDRAIN(GPIO_USART2_TX), - .irq = STM32_IRQ_USART2, - .vector = up_interrupt_1wire2, -}; - -static struct stm32_1wire_priv_s stm32_1wire2_priv = -{ - .config = &stm32_1wire2_config, - .refs = 0, - .msgs = NULL -}; - -#endif - -#ifdef CONFIG_STM32_1WIRE3 - -static const struct stm32_1wire_config_s stm32_1wire3_config = -{ - .usartbase = STM32_USART3_BASE, - .apbclock = STM32_PCLK1_FREQUENCY, - .data_pin = PIN_OPENDRAIN(GPIO_USART3_TX), - .irq = STM32_IRQ_USART3, - .vector = up_interrupt_1wire3, -}; - -static struct stm32_1wire_priv_s stm32_1wire3_priv = -{ - .config = &stm32_1wire3_config, - .refs = 0, - .msgs = NULL -}; - -#endif - -#ifdef CONFIG_STM32_1WIRE4 - -static const struct stm32_1wire_config_s stm32_1wire4_config = -{ - .usartbase = STM32_USART4_BASE, - .apbclock = STM32_PCLK1_FREQUENCY, - .data_pin = PIN_OPENDRAIN(GPIO_USART4_TX), - .irq = STM32_IRQ_USART4, - .vector = up_interrupt_1wire4, -}; - -static struct stm32_1wire_priv_s stm32_1wire4_priv = -{ - .config = &stm32_1wire4_config, - .refs = 0, - .msgs = NULL -}; - -#endif - -#ifdef CONFIG_STM32_1WIRE5 - -static const struct stm32_1wire_config_s stm32_1wire5_config = -{ - .usartbase = STM32_USART5_BASE, - .apbclock = STM32_PCLK1_FREQUENCY, - .data_pin = PIN_OPENDRAIN(GPIO_USART5_TX), - .irq = STM32_IRQ_USART5, - .vector = up_interrupt_1wire5, -}; - -static struct stm32_1wire_priv_s stm32_1wire5_priv = -{ - .config = &stm32_1wire5_config, - .refs = 0, - .msgs = NULL -}; - -#endif - -#ifdef CONFIG_STM32_1WIRE6 - -static const struct stm32_1wire_config_s stm32_1wire6_config = -{ - .usartbase = STM32_USART6_BASE, - .apbclock = STM32_PCLK2_FREQUENCY, - .data_pin = PIN_OPENDRAIN(GPIO_USART6_TX), - .irq = STM32_IRQ_USART6, - .vector = up_interrupt_1wire6, -}; - -static struct stm32_1wire_priv_s stm32_1wire6_priv = -{ - .config = &stm32_1wire6_config, - .refs = 0, - .msgs = NULL -}; - -#endif - -#ifdef CONFIG_STM32_1WIRE7 - -static const struct stm32_1wire_config_s stm32_1wire7_config = -{ - .usartbase = STM32_USART7_BASE, - .apbclock = STM32_PCLK1_FREQUENCY, - .data_pin = PIN_OPENDRAIN(GPIO_USART7_TX), - .irq = STM32_IRQ_USART7, - .vector = up_interrupt_1wire7, -}; - -static struct stm32_1wire_priv_s stm32_1wire7_priv = -{ - .config = &stm32_1wire7_config, - .refs = 0, - .msgs = NULL -}; - -#endif - -#ifdef CONFIG_STM32_1WIRE8 - -static const struct stm32_1wire_config_s stm32_1wire8_config = -{ - .usartbase = STM32_USART8_BASE, - .apbclock = STM32_PCLK1_FREQUENCY, - .data_pin = PIN_OPENDRAIN(GPIO_USART8_TX), - .irq = STM32_IRQ_USART8, - .vector = up_interrupt_1wire8, -}; - -static struct stm32_1wire_priv_s stm32_1wire8_priv = -{ - .config = &stm32_1wire8_config, - .refs = 0, - .msgs = NULL -}; - -#endif - -/* Device Structures, Instantiation */ - -static const struct onewire_ops_s stm32_1wire_ops = -{ - .reset = stm32_1wire_reset, - .write = stm32_1wire_write, - .read = stm32_1wire_read, - .exchange = stm32_1wire_exchange -}; - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: stm32_1wire_in - ****************************************************************************/ - -static inline uint32_t stm32_1wire_in(struct stm32_1wire_priv_s *priv, - int offset) -{ - return getreg32(priv->config->usartbase + offset); -} - -/**************************************************************************** - * Name: stm32_1wire_out - ****************************************************************************/ - -static inline void stm32_1wire_out(struct stm32_1wire_priv_s *priv, - int offset, uint32_t value) -{ - putreg32(value, priv->config->usartbase + offset); -} - -/**************************************************************************** - * Name: stm32_1wire_recv - * - * Description: - * This method will recv one byte on the USART - * - ****************************************************************************/ - -static int stm32_1wire_recv(struct stm32_1wire_priv_s *priv) -{ - return stm32_1wire_in(priv, STM32_USART_RDR_OFFSET) & 0xff; -} - -/**************************************************************************** - * Name: stm32_1wire_send - * - * Description: - * This method will send one byte on the USART - * - ****************************************************************************/ - -static void stm32_1wire_send(struct stm32_1wire_priv_s *priv, int ch) -{ - stm32_1wire_out(priv, STM32_USART_TDR_OFFSET, (uint32_t)(ch & 0xff)); -} - -/**************************************************************************** - * Name: stm32_1wire_set_baud - * - * Description: - * Set the serial line baud. - * - ****************************************************************************/ - -static void stm32_1wire_set_baud(struct stm32_1wire_priv_s *priv) -{ -#if defined(CONFIG_STM32_STM32F30XX) || defined(CONFIG_STM32_STM32F37XX) - /* This first implementation is for U[S]ARTs that support oversampling - * by 8 in additional to the standard oversampling by 16. - */ - - uint32_t usartdiv8; - uint32_t cr1; - uint32_t brr; - - /* In case of oversampling by 8, the equation is: - * - * baud = 2 * fCK / usartdiv8 - * usartdiv8 = 2 * fCK / baud - */ - - usartdiv8 = ((priv->config->apbclock << 1) + (priv->baud >> 1)) / priv->baud; - - /* Baud rate for standard USART (SPI mode included): - * - * In case of oversampling by 16, the equation is: - * baud = fCK / usartdiv16 - * usartdiv16 = fCK / baud - * = 2 * usartdiv8 - */ - - /* Use oversamply by 8 only if the divisor is small. But what is small? */ - - cr1 = stm32_1wire_in(priv, STM32_USART_CR1_OFFSET); - if (usartdiv8 > 100) - { - /* Use usartdiv16 */ - - brr = (usartdiv8 + 1) >> 1; - - /* Clear oversampling by 8 to enable oversampling by 16 */ - - cr1 &= ~USART_CR1_OVER8; - } - else - { - DEBUGASSERT(usartdiv8 >= 8); - - /* Perform mysterious operations on bits 0-3 */ - - brr = ((usartdiv8 & 0xfff0) | ((usartdiv8 & 0x000f) >> 1)); - - /* Set oversampling by 8 */ - - cr1 |= USART_CR1_OVER8; - } - - stm32_1wire_out(priv, STM32_USART_CR1_OFFSET, cr1); - stm32_1wire_out(priv, STM32_USART_BRR_OFFSET, brr); - -#else - - /* This second implementation is for U[S]ARTs that support fractional - * dividers. - */ - - uint32_t usartdiv32; - uint32_t mantissa; - uint32_t fraction; - uint32_t brr; - - /* Configure the USART Baud Rate. The baud rate for the receiver and - * transmitter (Rx and Tx) are both set to the same value as programmed - * in the Mantissa and Fraction values of USARTDIV. - * - * baud = fCK / (16 * usartdiv) - * usartdiv = fCK / (16 * baud) - * - * Where fCK is the input clock to the peripheral (PCLK1 for USART2, 3, 4, 5 - * or PCLK2 for USART1) - * - * First calculate (NOTE: all stand baud values are even so dividing by two - * does not lose precision): - * - * usartdiv32 = 32 * usartdiv = fCK / (baud/2) - */ - - usartdiv32 = priv->config->apbclock / (priv->baud >> 1); - - /* The mantissa part is then */ - - mantissa = usartdiv32 >> 5; - brr = mantissa << USART_BRR_MANT_SHIFT; - - /* The fractional remainder (with rounding) */ - - fraction = (usartdiv32 - (mantissa << 5) + 1) >> 1; - brr |= fraction << USART_BRR_FRAC_SHIFT; - stm32_1wire_out(priv, STM32_USART_BRR_OFFSET, brr); -#endif -} - -/**************************************************************************** - * Name: stm32_1wire_set_apb_clock - * - * Description: - * Enable or disable APB clock for the USART peripheral - * - * Input parameters: - * priv - A reference to the 1-Wire driver state structure - * on - Enable clock if 'on' is 'true' and disable if 'false' - * - ****************************************************************************/ - -static void stm32_1wire_set_apb_clock(struct stm32_1wire_priv_s *priv, - bool on) -{ - const struct stm32_1wire_config_s *config = priv->config; - uint32_t rcc_en; - uint32_t regaddr; - - /* Determine which USART to configure */ - - switch (config->usartbase) - { - default: - return; - -#ifdef CONFIG_STM32_1WIRE1 - case STM32_USART1_BASE: - rcc_en = RCC_APB2ENR_USART1EN; - regaddr = STM32_RCC_APB2ENR; - break; -#endif -#ifdef CONFIG_STM32_1WIRE2 - case STM32_USART2_BASE: - rcc_en = RCC_APB1ENR_USART2EN; - regaddr = STM32_RCC_APB1ENR; - break; -#endif -#ifdef CONFIG_STM32_1WIRE3 - case STM32_USART3_BASE: - rcc_en = RCC_APB1ENR_USART3EN; - regaddr = STM32_RCC_APB1ENR; - break; -#endif -#ifdef CONFIG_STM32_UART4 - case STM32_UART4_BASE: - rcc_en = RCC_APB1ENR_UART4EN; - regaddr = STM32_RCC_APB1ENR; - break; -#endif -#ifdef CONFIG_STM32_UART5 - case STM32_UART5_BASE: - rcc_en = RCC_APB1ENR_UART5EN; - regaddr = STM32_RCC_APB1ENR; - break; -#endif -#ifdef CONFIG_STM32_1WIRE6 - case STM32_USART6_BASE: - rcc_en = RCC_APB2ENR_USART6EN; - regaddr = STM32_RCC_APB2ENR; - break; -#endif -#ifdef CONFIG_STM32_UART7 - case STM32_UART7_BASE: - rcc_en = RCC_APB1ENR_UART7EN; - regaddr = STM32_RCC_APB1ENR; - break; -#endif -#ifdef CONFIG_STM32_UART8 - case STM32_UART8_BASE: - rcc_en = RCC_APB1ENR_UART8EN; - regaddr = STM32_RCC_APB1ENR; - break; -#endif - } - - /* Enable/disable APB 1/2 clock for USART */ - - if (on) - { - modifyreg32(regaddr, 0, rcc_en); - } - else - { - modifyreg32(regaddr, rcc_en, 0); - } -} - -/**************************************************************************** - * Name: stm32_1wire_init - * - * Description: - * Setup the 1-Wire hardware, ready for operation with defaults - * - ****************************************************************************/ - -static int stm32_1wire_init(FAR struct stm32_1wire_priv_s *priv) -{ - const struct stm32_1wire_config_s *config = priv->config; - uint32_t regval; - int ret; - - /* Enable USART APB1/2 clock */ - - stm32_1wire_set_apb_clock(priv, true); - - /* Configure CR2 */ - /* Clear STOP, CLKEN, CPOL, CPHA, LBCL, and interrupt enable bits */ - /* Set LBDIE */ - - regval = stm32_1wire_in(priv, STM32_USART_CR2_OFFSET); - regval &= ~(USART_CR2_STOP_MASK | USART_CR2_CLKEN | USART_CR2_CPOL | - USART_CR2_CPHA | USART_CR2_LBCL | USART_CR2_LBDIE); - regval |= USART_CR2_LBDIE; - stm32_1wire_out(priv, STM32_USART_CR2_OFFSET, regval); - - /* Configure CR1 */ - /* Clear TE, REm, all interrupt enable bits, PCE, PS and M */ - /* Set RXNEIE */ - - regval = stm32_1wire_in(priv, STM32_USART_CR1_OFFSET); - regval &= ~(USART_CR1_TE | USART_CR1_RE | USART_CR1_ALLINTS | - USART_CR1_PCE | USART_CR1_PS | USART_CR1_M); - regval |= USART_CR1_RXNEIE; - stm32_1wire_out(priv, STM32_USART_CR1_OFFSET, regval); - - /* Configure CR3 */ - /* Clear CTSE, RTSE, and all interrupt enable bits */ - /* Set ONEBIT, HDSEL and EIE */ - - regval = stm32_1wire_in(priv, STM32_USART_CR3_OFFSET); - regval &= ~(USART_CR3_CTSIE | USART_CR3_CTSE | USART_CR3_RTSE | USART_CR3_EIE); - regval |= (USART_CR3_ONEBIT | USART_CR3_HDSEL | USART_CR3_EIE); - stm32_1wire_out(priv, STM32_USART_CR3_OFFSET, regval); - - /* Set baud rate */ - - priv->baud = RESET_BAUD; - stm32_1wire_set_baud(priv); - - /* Enable Rx, Tx, and the USART */ - - regval = stm32_1wire_in(priv, STM32_USART_CR1_OFFSET); - regval |= (USART_CR1_UE | USART_CR1_TE | USART_CR1_RE); - stm32_1wire_out(priv, STM32_USART_CR1_OFFSET, regval); - - /* Configure pins for USART use */ - - stm32_configgpio(config->data_pin); - - ret = irq_attach(config->irq, config->vector); - if (ret == OK) - { - up_enable_irq(config->irq); - } - - return ret; -} - -/**************************************************************************** - * Name: stm32_1wire_deinit - * - * Description: - * Shutdown the 1-Wire hardware - * - ****************************************************************************/ - -static int stm32_1wire_deinit(FAR struct stm32_1wire_priv_s *priv) -{ - const struct stm32_1wire_config_s *config = priv->config; - uint32_t regval; - - up_disable_irq(config->irq); - irq_detach(config->irq); - - /* Unconfigure GPIO pins */ - - stm32_unconfiggpio(config->data_pin); - - /* Disable RXNEIE, Rx, Tx, and the USART */ - - regval = stm32_1wire_in(priv, STM32_USART_CR1_OFFSET); - regval &= ~(USART_CR1_UE | USART_CR1_TE | USART_CR1_RE | USART_CR1_RXNEIE); - stm32_1wire_out(priv, STM32_USART_CR1_OFFSET, regval); - - /* Clear LBDIE */ - - regval = stm32_1wire_in(priv, STM32_USART_CR2_OFFSET); - regval &= ~USART_CR2_LBDIE; - stm32_1wire_out(priv, STM32_USART_CR2_OFFSET, regval); - - /* Clear ONEBIT, HDSEL and EIE */ - - regval = stm32_1wire_in(priv, STM32_USART_CR3_OFFSET); - regval &= ~(USART_CR3_ONEBIT | USART_CR3_HDSEL | USART_CR3_EIE); - stm32_1wire_out(priv, STM32_USART_CR3_OFFSET, regval); - - /* Disable USART APB1/2 clock */ - - stm32_1wire_set_apb_clock(priv, false); - - return OK; -} - -/**************************************************************************** - * Name: stm32_1wire_sem_init - * - * Description: - * Initialize semaphores - * - ****************************************************************************/ - -static inline void stm32_1wire_sem_init(FAR struct stm32_1wire_priv_s *priv) -{ - sem_init(&priv->sem_excl, 0, 1); - sem_init(&priv->sem_isr, 0, 0); -} - -/**************************************************************************** - * Name: stm32_1wire_sem_destroy - * - * Description: - * Destroy semaphores. - * - ****************************************************************************/ - -static inline void stm32_1wire_sem_destroy(FAR struct stm32_1wire_priv_s *priv) -{ - sem_destroy(&priv->sem_excl); - sem_destroy(&priv->sem_isr); -} - -/**************************************************************************** - * Name: stm32_1wire_sem_wait - * - * Description: - * Take the exclusive access, waiting as necessary - * - ****************************************************************************/ - -static inline void stm32_1wire_sem_wait(FAR struct stm32_1wire_priv_s *priv) -{ - while (sem_wait(&priv->sem_excl) != 0) - { - ASSERT(errno == EINTR); - } -} - -/**************************************************************************** - * Name: stm32_1wire_sem_post - * - * Description: - * Release the mutual exclusion semaphore - * - ****************************************************************************/ - -static inline void stm32_1wire_sem_post(FAR struct stm32_1wire_priv_s *priv) -{ - sem_post(&priv->sem_excl); -} - -/**************************************************************************** - * Name: stm32_1wire_exec - * - * Description: - * Execute 1-Wire task - ****************************************************************************/ -static int stm32_1wire_process(struct stm32_1wire_priv_s *priv, - FAR const struct stm32_1wire_msg_s *msgs, - int count) -{ - irqstate_t irqs; - struct timespec abstime; - int ret; - - /* Lock out other clients */ - - stm32_1wire_sem_wait(priv); - - priv->result = ERROR; - - for (int indx = 0; indx < count; indx++) - { - switch (msgs[indx].task) - { - case ONEWIRETASK_NONE: - priv->result = OK; - break; - - case ONEWIRETASK_RESET: - /* Set baud rate */ - - priv->baud = RESET_BAUD; - stm32_1wire_set_baud(priv); - - /* Atomic */ - - irqs = irqsave(); - priv->msgs = &msgs[indx]; - stm32_1wire_send(priv, RESET_TX); - irqrestore(irqs); - - /* Wait */ - - clock_gettime(CLOCK_REALTIME, &abstime); - abstime.tv_sec += BUS_TIMEOUT; - sem_timedwait(&priv->sem_isr, &abstime); /* break on timeout if TX line closed to GND */ - break; - - case ONEWIRETASK_WRITE: - /* Set baud rate */ - - priv->baud = TIMESLOT_BAUD; - stm32_1wire_set_baud(priv); - - /* Atomic */ - - irqs = irqsave(); - priv->msgs = &msgs[indx]; - priv->byte = priv->msgs->buffer; - priv->bit = 0; - stm32_1wire_send(priv, (*priv->byte & (1 << priv->bit)) ? WRITE_TX1 : WRITE_TX0); - irqrestore(irqs); - - /* Wait */ - - clock_gettime(CLOCK_REALTIME, &abstime); - abstime.tv_sec += BUS_TIMEOUT; - sem_timedwait(&priv->sem_isr, &abstime); /* break on timeout if TX line closed to GND */ - break; - - case ONEWIRETASK_READ: - /* Set baud rate */ - - priv->baud = TIMESLOT_BAUD; - stm32_1wire_set_baud(priv); - - /* Atomic */ - - irqs = irqsave(); - priv->msgs = &msgs[indx]; - priv->byte = priv->msgs->buffer; - priv->bit = 0; - stm32_1wire_send(priv, READ_TX); - irqrestore(irqs); - - /* Wait */ - - clock_gettime(CLOCK_REALTIME, &abstime); - abstime.tv_sec += BUS_TIMEOUT; - sem_timedwait(&priv->sem_isr, &abstime); /* break on timeout if TX line closed to GND */ - break; - } - - if (priv->result != OK) /* break if error */ - { - break; - } - } - - /* Atomic */ - - irqs = irqsave(); - priv->msgs = NULL; - ret = priv->result; - irqrestore(irqs); - - /* Release the port for re-use by other clients */ - - stm32_1wire_sem_post(priv); - - return ret; -} - -/**************************************************************************** - * Name: stm32_1wire_isr - * - * Description: - * Common Interrupt Service Routine - ****************************************************************************/ - -static int stm32_1wire_isr(struct stm32_1wire_priv_s *priv) -{ - uint32_t sr, dr; - - /* Get the masked USART status word. */ - - sr = stm32_1wire_in(priv, STM32_USART_SR_OFFSET); - - /* Receive loop */ - - if ((sr & USART_SR_RXNE) != 0) - { - dr = stm32_1wire_recv(priv); - - if (priv->msgs != NULL) - { - switch (priv->msgs->task) - { - case ONEWIRETASK_NONE: - break; - - case ONEWIRETASK_RESET: - priv->msgs = NULL; - priv->result = (dr != RESET_TX) ? OK : -ENODEV; /* if read RESET_TX then no slave */ - sem_post(&priv->sem_isr); - break; - - case ONEWIRETASK_WRITE: - if (++priv->bit >= 8) - { - priv->bit = 0; - if (++priv->byte >= (priv->msgs->buffer + priv->msgs->buflen)) /* Done? */ - { - priv->msgs = NULL; - priv->result = OK; - sem_post(&priv->sem_isr); - break; - } - } - - /* Send next bit */ - - stm32_1wire_send(priv, (*priv->byte & (1 << priv->bit)) ? WRITE_TX1 : WRITE_TX0); - break; - - case ONEWIRETASK_READ: - if (dr == READ_RX1) - { - *priv->byte |= (1 << priv->bit); - } - else - { - *priv->byte &= ~(1 << priv->bit); - } - - if (++priv->bit >= 8) - { - priv->bit = 0; - if (++priv->byte >= (priv->msgs->buffer + priv->msgs->buflen)) /* Done? */ - { - priv->msgs = NULL; - priv->result = OK; - sem_post(&priv->sem_isr); - break; - } - } - - /* Recv next bit */ - - stm32_1wire_send(priv, READ_TX); - break; - } - } - } - - /* Bounce check. */ - - if ((sr & (USART_SR_ORE | USART_SR_NE | USART_SR_FE)) != 0) - { -#if defined(CONFIG_STM32_STM32F30XX) || defined(CONFIG_STM32_STM32F37XX) - /* These errors are cleared by writing the corresponding bit to the - * interrupt clear register (ICR). - */ - - stm32_1wire_out(priv, STM32_USART_ICR_OFFSET, - (USART_ICR_NCF | USART_ICR_ORECF | USART_ICR_FECF)); -#else - /* If an error occurs, read from DR to clear the error (data has - * been lost). If ORE is set along with RXNE then it tells you - * that the byte *after* the one in the data register has been - * lost, but the data register value is correct. That case will - * be handled above if interrupts are enabled. Otherwise, that - * good byte will be lost. - */ - - (void)stm32_1wire_recv(priv); -#endif - - if (priv->msgs != NULL) - { - priv->msgs = NULL; - priv->result = ERROR; - sem_post(&priv->sem_isr); - } - } - - /* Bounce check. LIN break detection */ - - if ((sr & USART_SR_LBD) != 0) - { - sr &= ~USART_SR_LBD; - stm32_1wire_out(priv, STM32_USART_SR_OFFSET, sr); - - if (priv->msgs != NULL) - { - priv->msgs = NULL; - priv->result = ERROR; - sem_post(&priv->sem_isr); - } - } - - return OK; -} - -#ifdef CONFIG_STM32_1WIRE1 -static int up_interrupt_1wire1(int irq, void *context) -{ - return stm32_1wire_isr(&stm32_1wire1_priv); -} -#endif -#ifdef CONFIG_STM32_1WIRE2 -static int up_interrupt_1wire2(int irq, void *context) -{ - return stm32_1wire_isr(&stm32_1wire2_priv); -} -#endif -#ifdef CONFIG_STM32_1WIRE3 -static int up_interrupt_1wire3(int irq, void *context) -{ - return stm32_1wire_isr(&stm32_1wire3_priv); -} -#endif -#ifdef CONFIG_STM32_1WIRE4 -static int up_interrupt_1wire4(int irq, void *context) -{ - return stm32_1wire_isr(&stm32_1wire4_priv); -} -#endif -#ifdef CONFIG_STM32_1WIRE5 -static int up_interrupt_1wire5(int irq, void *context) -{ - return stm32_1wire_isr(&stm32_1wire5_priv); -} -#endif -#ifdef CONFIG_STM32_1WIRE6 -static int up_interrupt_1wire6(int irq, void *context) -{ - return stm32_1wire_isr(&stm32_1wire6_priv); -} -#endif -#ifdef CONFIG_STM32_1WIRE7 -static int up_interrupt_1wire7(int irq, void *context) -{ - return stm32_1wire_isr(&stm32_1wire7_priv); -} -#endif -#ifdef CONFIG_STM32_1WIRE8 -static int up_interrupt_1wire8(int irq, void *context) -{ - return stm32_1wire_isr(&stm32_1wire8_priv); -} -#endif - -/**************************************************************************** - * Name: stm32_1wire_reset - * - * Description: - * 1-Wire reset pulse and presence detect. - * - ****************************************************************************/ - -static int stm32_1wire_reset(FAR struct onewire_dev_s *dev) -{ - struct stm32_1wire_priv_s *priv = ((struct stm32_1wire_inst_s *)dev)->priv; - const struct stm32_1wire_msg_s msgs[1] = - { - [0].task = ONEWIRETASK_RESET - }; - - return stm32_1wire_process(priv, msgs, 1); -} - -/**************************************************************************** - * Name: stm32_1wire_write - * - * Description: - * Write 1-Wire data - * - ****************************************************************************/ - -static int stm32_1wire_write(FAR struct onewire_dev_s *dev, const uint8_t *buffer, - int buflen) -{ - struct stm32_1wire_priv_s *priv = ((struct stm32_1wire_inst_s *)dev)->priv; - const struct stm32_1wire_msg_s msgs[1] = - { - [0].task = ONEWIRETASK_WRITE, - [0].buffer = (uint8_t *)buffer, - [0].buflen = buflen - }; - - return stm32_1wire_process(priv, msgs, 1); -} - -/**************************************************************************** - * Name: stm32_1wire_read - * - * Description: - * Read 1-Wire data - * - ****************************************************************************/ - -static int stm32_1wire_read(FAR struct onewire_dev_s *dev, uint8_t *buffer, int buflen) -{ - struct stm32_1wire_priv_s *priv = ((struct stm32_1wire_inst_s *)dev)->priv; - const struct stm32_1wire_msg_s msgs[1] = - { - [0].task = ONEWIRETASK_READ, - [0].buffer = buffer, - [0].buflen = buflen - }; - - return stm32_1wire_process(priv, msgs, 1); -} - -/**************************************************************************** - * Name: stm32_1wire_exchange - * - * Description: - * 1-Wire reset pulse and presence detect, - * Write 1-Wire data, - * Read 1-Wire data - * - ****************************************************************************/ - -static int stm32_1wire_exchange(FAR struct onewire_dev_s *dev, bool reset, - const uint8_t *txbuffer, int txbuflen, - uint8_t *rxbuffer, int rxbuflen) - -{ - int result = ERROR; - struct stm32_1wire_priv_s *priv = ((struct stm32_1wire_inst_s *)dev)->priv; - - if (reset) - { - const struct stm32_1wire_msg_s msgs[3] = - { - [0].task = ONEWIRETASK_RESET, - - [1].task = ONEWIRETASK_WRITE, - [1].buffer = (uint8_t *)txbuffer, - [1].buflen = txbuflen, - - [2].task = ONEWIRETASK_READ, - [2].buffer = rxbuffer, - [2].buflen = rxbuflen - }; - - result = stm32_1wire_process(priv, msgs, 3); - } - else - { - const struct stm32_1wire_msg_s msgs[2] = - { - [0].task = ONEWIRETASK_WRITE, - [0].buffer = (uint8_t *)txbuffer, - [0].buflen = txbuflen, - - [1].task = ONEWIRETASK_READ, - [1].buffer = rxbuffer, - [1].buflen = rxbuflen - }; - - result = stm32_1wire_process(priv, msgs, 2); - } - return result; -} - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: up_1wireinitialize - * - * Description: - * Initialize one 1-Wire port - * - ****************************************************************************/ - -FAR struct onewire_dev_s *up_1wireinitialize(int port) -{ - struct stm32_1wire_priv_s *priv = NULL; /* Private data of device with multiple instances */ - struct stm32_1wire_inst_s *inst = NULL; /* Device, single instance */ - int irqs; - - /* Get 1-Wire private structure */ - - switch (port) - { -#ifdef CONFIG_STM32_1WIRE1 - case 1: - priv = &stm32_1wire1_priv; - break; -#endif -#ifdef CONFIG_STM32_1WIRE2 - case 2: - priv = &stm32_1wire2_priv; - break; -#endif -#ifdef CONFIG_STM32_1WIRE3 - case 3: - priv = &stm32_1wire3_priv; - break; -#endif -#ifdef CONFIG_STM32_1WIRE4 - case 4: - priv = &stm32_1wire4_priv; - break; -#endif -#ifdef CONFIG_STM32_1WIRE5 - case 5: - priv = &stm32_1wire5_priv; - break; -#endif -#ifdef CONFIG_STM32_1WIRE6 - case 6: - priv = &stm32_1wire6_priv; - break; -#endif -#ifdef CONFIG_STM32_1WIRE7 - case 7: - priv = &stm32_1wire7_priv; - break; -#endif -#ifdef CONFIG_STM32_1WIRE8 - case 8: - priv = &stm32_1wire8_priv; - break; -#endif - default: - return NULL; - } - - /* Allocate instance */ - - if (!(inst = kmm_malloc(sizeof(struct stm32_1wire_inst_s)))) - { - return NULL; - } - - /* Initialize instance */ - - inst->ops = &stm32_1wire_ops; - inst->priv = priv; - - /* Initialize private data for the first time, increment reference count, - * power-up hardware and configure GPIOs. - */ - - irqs = irqsave(); - - if (priv->refs++ == 0) - { - stm32_1wire_sem_init(priv); - stm32_1wire_init(priv); - } - - irqrestore(irqs); - return (struct onewire_dev_s *)inst; -} - -/**************************************************************************** - * Name: up_1wireuninitialize - * - * Description: - * Uninitialize an 1-Wire port - * - ****************************************************************************/ - -int up_1wireuninitialize(FAR struct onewire_dev_s *dev) -{ - struct stm32_1wire_priv_s *priv = ((struct stm32_1wire_inst_s *)dev)->priv; - int irqs; - - ASSERT(dev); - - /* Decrement reference count and check for underflow */ - - if (priv->refs == 0) - { - return ERROR; - } - - irqs = irqsave(); - - if (--priv->refs) - { - irqrestore(irqs); - kmm_free(priv); - return OK; - } - - irqrestore(irqs); - - /* Disable power and other HW resource (GPIO's) */ - - stm32_1wire_deinit(priv); - - /* Release unused resources */ - - stm32_1wire_sem_destroy(priv); - - /* Free instance */ - - kmm_free(dev); - return OK; -} +/**************************************************************************** + * arch/arm/src/stm32/stm32_1wire.c + * + * Copyright (C) 2016 Aleksandr Vyhovanec. All rights reserved. + * Author: Aleksandr Vyhovanec + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +/* Links: + * https://www.maximintegrated.com/en/app-notes/index.mvp/id/214 + */ + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include + +#include "up_arch.h" + +#include "stm32_rcc.h" +#include "stm32_1wire.h" + +#ifdef HAVE_1WIREDRIVER + +/**************************************************************************** + * Pre-processor Definitions + ****************************************************************************/ + +#define BUS_TIMEOUT 5 /* tv_sec */ + +#define RESET_BAUD 9600 +#define RESET_TX 0xF0 +#define TIMESLOT_BAUD 115200 +#define READ_TX 0xFF +#define READ_RX1 0xFF +#define WRITE_TX0 0x00 +#define WRITE_TX1 0xFF + +#define PIN_OPENDRAIN(GPIO) ((GPIO) | GPIO_OPENDRAIN) + +/**************************************************************************** + * Private Types + ****************************************************************************/ + +/* 1-Wire bus task */ + +enum stm32_1wire_msg_e +{ + ONEWIRETASK_NONE = 0, + ONEWIRETASK_RESET, + ONEWIRETASK_WRITE, + ONEWIRETASK_READ +}; + +struct stm32_1wire_msg_s +{ + enum stm32_1wire_msg_e task; /* Task */ + uint8_t *buffer; /* Task buffer */ + int buflen; /* Buffer length */ +}; + +/* 1-Wire device hardware configuration */ + +struct stm32_1wire_config_s +{ + const uint32_t usartbase; /* Base address of USART registers */ + const uint32_t apbclock; /* PCLK 1 or 2 frequency */ + const uint32_t data_pin; /* GPIO configuration for DATA */ + const uint8_t irq; /* IRQ associated with this USART */ + int (*const vector)(int irq, void *context); /* Interrupt handler */ +}; + +/* 1-Wire device Private Data */ + +struct stm32_1wire_priv_s +{ + const struct stm32_1wire_config_s *config; /* Port configuration */ + volatile int refs; /* Referernce count */ + sem_t sem_excl; /* Mutual exclusion semaphore */ + sem_t sem_isr; /* Interrupt wait semaphore */ + int baud; /* Baud rate */ + const struct stm32_1wire_msg_s *msgs; /* Messages data */ + uint8_t *byte; /* Current byte */ + uint8_t bit; /* Current bit */ + volatile int result; /* Exchange result */ +}; + +/* 1-Wire device, Instance */ + +struct stm32_1wire_inst_s +{ + const struct onewire_ops_s *ops; /* Standard 1-Wire operations */ + struct stm32_1wire_priv_s *priv; /* Common driver private data structure */ +}; + +/**************************************************************************** + * Private Function Prototypes + ****************************************************************************/ + +static inline uint32_t stm32_1wire_in(struct stm32_1wire_priv_s *priv, int offset); +static inline void stm32_1wire_out(struct stm32_1wire_priv_s *priv, int offset, uint32_t value); +static int stm32_1wire_recv(struct stm32_1wire_priv_s *priv); +static void stm32_1wire_send(struct stm32_1wire_priv_s *priv, int ch); +static void stm32_1wire_set_baud(struct stm32_1wire_priv_s *priv); +static void stm32_1wire_set_apb_clock(struct stm32_1wire_priv_s *priv, bool on); +static int stm32_1wire_init(FAR struct stm32_1wire_priv_s *priv); +static int stm32_1wire_deinit(FAR struct stm32_1wire_priv_s *priv); +static inline void stm32_1wire_sem_init(FAR struct stm32_1wire_priv_s *priv); +static inline void stm32_1wire_sem_destroy(FAR struct stm32_1wire_priv_s *priv); +static inline void stm32_1wire_sem_wait(FAR struct stm32_1wire_priv_s *priv); +static inline void stm32_1wire_sem_post(FAR struct stm32_1wire_priv_s *priv); +static int stm32_1wire_process(struct stm32_1wire_priv_s *priv, + FAR const struct stm32_1wire_msg_s *msgs, int count); +static int stm32_1wire_isr(struct stm32_1wire_priv_s *priv); + +#ifdef CONFIG_STM32_USART1_1WIREDRIVER +static int up_interrupt_1wire1(int irq, void *context); +#endif +#ifdef CONFIG_STM32_USART2_1WIREDRIVER +static int up_interrupt_1wire2(int irq, void *context); +#endif +#ifdef CONFIG_STM32_USART3_1WIREDRIVER +static int up_interrupt_1wire3(int irq, void *context); +#endif +#ifdef CONFIG_STM32_UART4_1WIREDRIVER +static int up_interrupt_1wire4(int irq, void *context); +#endif +#ifdef CONFIG_STM32_UART5_1WIREDRIVER +static int up_interrupt_1wire5(int irq, void *context); +#endif +#ifdef CONFIG_STM32_USART6_1WIREDRIVER +static int up_interrupt_1wire6(int irq, void *context); +#endif +#ifdef CONFIG_STM32_UART7_1WIREDRIVER +static int up_interrupt_1wire7(int irq, void *context); +#endif +#ifdef CONFIG_STM32_UART8_1WIREDRIVER +static int up_interrupt_1wire8(int irq, void *context); +#endif + +static int stm32_1wire_reset(FAR struct onewire_dev_s *dev); +static int stm32_1wire_write(FAR struct onewire_dev_s *dev, + const uint8_t *buffer, int buflen); +static int stm32_1wire_read(FAR struct onewire_dev_s *dev, uint8_t *buffer, + int buflen); +static int stm32_1wire_exchange(FAR struct onewire_dev_s *dev, bool reset, + const uint8_t *txbuffer, int txbuflen, + uint8_t *rxbuffer, int rxbuflen); + +/**************************************************************************** + * Private Data + ****************************************************************************/ + +/* 1-Wire device structures */ + +#ifdef CONFIG_STM32_USART1_1WIREDRIVER + +static const struct stm32_1wire_config_s stm32_1wire1_config = +{ + .usartbase = STM32_USART1_BASE, + .apbclock = STM32_PCLK2_FREQUENCY, + .data_pin = PIN_OPENDRAIN(GPIO_USART1_TX), + .irq = STM32_IRQ_USART1, + .vector = up_interrupt_1wire1, +}; + +static struct stm32_1wire_priv_s stm32_1wire1_priv = +{ + .config = &stm32_1wire1_config, + .refs = 0, + .msgs = NULL +}; + +#endif + +#ifdef CONFIG_STM32_USART2_1WIREDRIVER + +static const struct stm32_1wire_config_s stm32_1wire2_config = +{ + .usartbase = STM32_USART2_BASE, + .apbclock = STM32_PCLK1_FREQUENCY, + .data_pin = PIN_OPENDRAIN(GPIO_USART2_TX), + .irq = STM32_IRQ_USART2, + .vector = up_interrupt_1wire2, +}; + +static struct stm32_1wire_priv_s stm32_1wire2_priv = +{ + .config = &stm32_1wire2_config, + .refs = 0, + .msgs = NULL +}; + +#endif + +#ifdef CONFIG_STM32_USART3_1WIREDRIVER + +static const struct stm32_1wire_config_s stm32_1wire3_config = +{ + .usartbase = STM32_USART3_BASE, + .apbclock = STM32_PCLK1_FREQUENCY, + .data_pin = PIN_OPENDRAIN(GPIO_USART3_TX), + .irq = STM32_IRQ_USART3, + .vector = up_interrupt_1wire3, +}; + +static struct stm32_1wire_priv_s stm32_1wire3_priv = +{ + .config = &stm32_1wire3_config, + .refs = 0, + .msgs = NULL +}; + +#endif + +#ifdef CONFIG_STM32_UART4_1WIREDRIVER + +static const struct stm32_1wire_config_s stm32_1wire4_config = +{ + .usartbase = STM32_UART4_BASE, + .apbclock = STM32_PCLK1_FREQUENCY, + .data_pin = PIN_OPENDRAIN(GPIO_UART4_TX), + .irq = STM32_IRQ_UART4, + .vector = up_interrupt_1wire4, +}; + +static struct stm32_1wire_priv_s stm32_1wire4_priv = +{ + .config = &stm32_1wire4_config, + .refs = 0, + .msgs = NULL +}; + +#endif + +#ifdef CONFIG_STM32_UART5_1WIREDRIVER + +static const struct stm32_1wire_config_s stm32_1wire5_config = +{ + .usartbase = STM32_UART5_BASE, + .apbclock = STM32_PCLK1_FREQUENCY, + .data_pin = PIN_OPENDRAIN(GPIO_UART5_TX), + .irq = STM32_IRQ_UART5, + .vector = up_interrupt_1wire5, +}; + +static struct stm32_1wire_priv_s stm32_1wire5_priv = +{ + .config = &stm32_1wire5_config, + .refs = 0, + .msgs = NULL +}; + +#endif + +#ifdef CONFIG_STM32_USART6_1WIREDRIVER + +static const struct stm32_1wire_config_s stm32_1wire6_config = +{ + .usartbase = STM32_USART6_BASE, + .apbclock = STM32_PCLK2_FREQUENCY, + .data_pin = PIN_OPENDRAIN(GPIO_USART6_TX), + .irq = STM32_IRQ_USART6, + .vector = up_interrupt_1wire6, +}; + +static struct stm32_1wire_priv_s stm32_1wire6_priv = +{ + .config = &stm32_1wire6_config, + .refs = 0, + .msgs = NULL +}; + +#endif + +#ifdef CONFIG_STM32_UART7_1WIREDRIVER + +static const struct stm32_1wire_config_s stm32_1wire7_config = +{ + .usartbase = STM32_UART7_BASE, + .apbclock = STM32_PCLK1_FREQUENCY, + .data_pin = PIN_OPENDRAIN(GPIO_UART7_TX), + .irq = STM32_IRQ_UART7, + .vector = up_interrupt_1wire7, +}; + +static struct stm32_1wire_priv_s stm32_1wire7_priv = +{ + .config = &stm32_1wire7_config, + .refs = 0, + .msgs = NULL +}; + +#endif + +#ifdef CONFIG_STM32_UART8_1WIREDRIVER + +static const struct stm32_1wire_config_s stm32_1wire8_config = +{ + .usartbase = STM32_UART8_BASE, + .apbclock = STM32_PCLK1_FREQUENCY, + .data_pin = PIN_OPENDRAIN(GPIO_UART8_TX), + .irq = STM32_IRQ_UART8, + .vector = up_interrupt_1wire8, +}; + +static struct stm32_1wire_priv_s stm32_1wire8_priv = +{ + .config = &stm32_1wire8_config, + .refs = 0, + .msgs = NULL +}; + +#endif + +/* Device Structures, Instantiation */ + +static const struct onewire_ops_s stm32_1wire_ops = +{ + .reset = stm32_1wire_reset, + .write = stm32_1wire_write, + .read = stm32_1wire_read, + .exchange = stm32_1wire_exchange +}; + +/**************************************************************************** + * Private Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: stm32_1wire_in + ****************************************************************************/ + +static inline uint32_t stm32_1wire_in(struct stm32_1wire_priv_s *priv, + int offset) +{ + return getreg32(priv->config->usartbase + offset); +} + +/**************************************************************************** + * Name: stm32_1wire_out + ****************************************************************************/ + +static inline void stm32_1wire_out(struct stm32_1wire_priv_s *priv, + int offset, uint32_t value) +{ + putreg32(value, priv->config->usartbase + offset); +} + +/**************************************************************************** + * Name: stm32_1wire_recv + * + * Description: + * This method will recv one byte on the USART + * + ****************************************************************************/ + +static int stm32_1wire_recv(struct stm32_1wire_priv_s *priv) +{ + return stm32_1wire_in(priv, STM32_USART_RDR_OFFSET) & 0xff; +} + +/**************************************************************************** + * Name: stm32_1wire_send + * + * Description: + * This method will send one byte on the USART + * + ****************************************************************************/ + +static void stm32_1wire_send(struct stm32_1wire_priv_s *priv, int ch) +{ + stm32_1wire_out(priv, STM32_USART_TDR_OFFSET, (uint32_t)(ch & 0xff)); +} + +/**************************************************************************** + * Name: stm32_1wire_set_baud + * + * Description: + * Set the serial line baud. + * + ****************************************************************************/ + +static void stm32_1wire_set_baud(struct stm32_1wire_priv_s *priv) +{ +#if defined(CONFIG_STM32_STM32F30XX) || defined(CONFIG_STM32_STM32F37XX) + /* This first implementation is for U[S]ARTs that support oversampling + * by 8 in additional to the standard oversampling by 16. + */ + + uint32_t usartdiv8; + uint32_t cr1; + uint32_t brr; + + /* In case of oversampling by 8, the equation is: + * + * baud = 2 * fCK / usartdiv8 + * usartdiv8 = 2 * fCK / baud + */ + + usartdiv8 = ((priv->config->apbclock << 1) + (priv->baud >> 1)) / priv->baud; + + /* Baud rate for standard USART (SPI mode included): + * + * In case of oversampling by 16, the equation is: + * baud = fCK / usartdiv16 + * usartdiv16 = fCK / baud + * = 2 * usartdiv8 + */ + + /* Use oversamply by 8 only if the divisor is small. But what is small? */ + + cr1 = stm32_1wire_in(priv, STM32_USART_CR1_OFFSET); + if (usartdiv8 > 100) + { + /* Use usartdiv16 */ + + brr = (usartdiv8 + 1) >> 1; + + /* Clear oversampling by 8 to enable oversampling by 16 */ + + cr1 &= ~USART_CR1_OVER8; + } + else + { + DEBUGASSERT(usartdiv8 >= 8); + + /* Perform mysterious operations on bits 0-3 */ + + brr = ((usartdiv8 & 0xfff0) | ((usartdiv8 & 0x000f) >> 1)); + + /* Set oversampling by 8 */ + + cr1 |= USART_CR1_OVER8; + } + + stm32_1wire_out(priv, STM32_USART_CR1_OFFSET, cr1); + stm32_1wire_out(priv, STM32_USART_BRR_OFFSET, brr); + +#else + + /* This second implementation is for U[S]ARTs that support fractional + * dividers. + */ + + uint32_t usartdiv32; + uint32_t mantissa; + uint32_t fraction; + uint32_t brr; + + /* Configure the USART Baud Rate. The baud rate for the receiver and + * transmitter (Rx and Tx) are both set to the same value as programmed + * in the Mantissa and Fraction values of USARTDIV. + * + * baud = fCK / (16 * usartdiv) + * usartdiv = fCK / (16 * baud) + * + * Where fCK is the input clock to the peripheral (PCLK1 for USART2, 3, 4, 5 + * or PCLK2 for USART1) + * + * First calculate (NOTE: all stand baud values are even so dividing by two + * does not lose precision): + * + * usartdiv32 = 32 * usartdiv = fCK / (baud/2) + */ + + usartdiv32 = priv->config->apbclock / (priv->baud >> 1); + + /* The mantissa part is then */ + + mantissa = usartdiv32 >> 5; + brr = mantissa << USART_BRR_MANT_SHIFT; + + /* The fractional remainder (with rounding) */ + + fraction = (usartdiv32 - (mantissa << 5) + 1) >> 1; + brr |= fraction << USART_BRR_FRAC_SHIFT; + stm32_1wire_out(priv, STM32_USART_BRR_OFFSET, brr); +#endif +} + +/**************************************************************************** + * Name: stm32_1wire_set_apb_clock + * + * Description: + * Enable or disable APB clock for the USART peripheral + * + * Input parameters: + * priv - A reference to the 1-Wire driver state structure + * on - Enable clock if 'on' is 'true' and disable if 'false' + * + ****************************************************************************/ + +static void stm32_1wire_set_apb_clock(struct stm32_1wire_priv_s *priv, + bool on) +{ + const struct stm32_1wire_config_s *config = priv->config; + uint32_t rcc_en; + uint32_t regaddr; + + /* Determine which USART to configure */ + + switch (config->usartbase) + { + default: + return; + +#ifdef CONFIG_STM32_USART1_1WIREDRIVER + case STM32_USART1_BASE: + rcc_en = RCC_APB2ENR_USART1EN; + regaddr = STM32_RCC_APB2ENR; + break; +#endif +#ifdef CONFIG_STM32_USART2_1WIREDRIVER + case STM32_USART2_BASE: + rcc_en = RCC_APB1ENR_USART2EN; + regaddr = STM32_RCC_APB1ENR; + break; +#endif +#ifdef CONFIG_STM32_USART3_1WIREDRIVER + case STM32_USART3_BASE: + rcc_en = RCC_APB1ENR_USART3EN; + regaddr = STM32_RCC_APB1ENR; + break; +#endif +#ifdef CONFIG_STM32_UART4 + case STM32_UART4_BASE: + rcc_en = RCC_APB1ENR_UART4EN; + regaddr = STM32_RCC_APB1ENR; + break; +#endif +#ifdef CONFIG_STM32_UART5 + case STM32_UART5_BASE: + rcc_en = RCC_APB1ENR_UART5EN; + regaddr = STM32_RCC_APB1ENR; + break; +#endif +#ifdef CONFIG_STM32_USART6_1WIREDRIVER + case STM32_USART6_BASE: + rcc_en = RCC_APB2ENR_USART6EN; + regaddr = STM32_RCC_APB2ENR; + break; +#endif +#ifdef CONFIG_STM32_UART7 + case STM32_UART7_BASE: + rcc_en = RCC_APB1ENR_UART7EN; + regaddr = STM32_RCC_APB1ENR; + break; +#endif +#ifdef CONFIG_STM32_UART8 + case STM32_UART8_BASE: + rcc_en = RCC_APB1ENR_UART8EN; + regaddr = STM32_RCC_APB1ENR; + break; +#endif + } + + /* Enable/disable APB 1/2 clock for USART */ + + if (on) + { + modifyreg32(regaddr, 0, rcc_en); + } + else + { + modifyreg32(regaddr, rcc_en, 0); + } +} + +/**************************************************************************** + * Name: stm32_1wire_init + * + * Description: + * Setup the 1-Wire hardware, ready for operation with defaults + * + ****************************************************************************/ + +static int stm32_1wire_init(FAR struct stm32_1wire_priv_s *priv) +{ + const struct stm32_1wire_config_s *config = priv->config; + uint32_t regval; + int ret; + + /* Enable USART APB1/2 clock */ + + stm32_1wire_set_apb_clock(priv, true); + + /* Configure CR2 */ + /* Clear STOP, CLKEN, CPOL, CPHA, LBCL, and interrupt enable bits */ + /* Set LBDIE */ + + regval = stm32_1wire_in(priv, STM32_USART_CR2_OFFSET); + regval &= ~(USART_CR2_STOP_MASK | USART_CR2_CLKEN | USART_CR2_CPOL | + USART_CR2_CPHA | USART_CR2_LBCL | USART_CR2_LBDIE); + regval |= USART_CR2_LBDIE; + stm32_1wire_out(priv, STM32_USART_CR2_OFFSET, regval); + + /* Configure CR1 */ + /* Clear TE, REm, all interrupt enable bits, PCE, PS and M */ + /* Set RXNEIE */ + + regval = stm32_1wire_in(priv, STM32_USART_CR1_OFFSET); + regval &= ~(USART_CR1_TE | USART_CR1_RE | USART_CR1_ALLINTS | + USART_CR1_PCE | USART_CR1_PS | USART_CR1_M); + regval |= USART_CR1_RXNEIE; + stm32_1wire_out(priv, STM32_USART_CR1_OFFSET, regval); + + /* Configure CR3 */ + /* Clear CTSE, RTSE, and all interrupt enable bits */ + /* Set ONEBIT, HDSEL and EIE */ + + regval = stm32_1wire_in(priv, STM32_USART_CR3_OFFSET); + regval &= ~(USART_CR3_CTSIE | USART_CR3_CTSE | USART_CR3_RTSE | USART_CR3_EIE); + regval |= (USART_CR3_ONEBIT | USART_CR3_HDSEL | USART_CR3_EIE); + stm32_1wire_out(priv, STM32_USART_CR3_OFFSET, regval); + + /* Set baud rate */ + + priv->baud = RESET_BAUD; + stm32_1wire_set_baud(priv); + + /* Enable Rx, Tx, and the USART */ + + regval = stm32_1wire_in(priv, STM32_USART_CR1_OFFSET); + regval |= (USART_CR1_UE | USART_CR1_TE | USART_CR1_RE); + stm32_1wire_out(priv, STM32_USART_CR1_OFFSET, regval); + + /* Configure pins for USART use */ + + stm32_configgpio(config->data_pin); + + ret = irq_attach(config->irq, config->vector); + if (ret == OK) + { + up_enable_irq(config->irq); + } + + return ret; +} + +/**************************************************************************** + * Name: stm32_1wire_deinit + * + * Description: + * Shutdown the 1-Wire hardware + * + ****************************************************************************/ + +static int stm32_1wire_deinit(FAR struct stm32_1wire_priv_s *priv) +{ + const struct stm32_1wire_config_s *config = priv->config; + uint32_t regval; + + up_disable_irq(config->irq); + irq_detach(config->irq); + + /* Unconfigure GPIO pins */ + + stm32_unconfiggpio(config->data_pin); + + /* Disable RXNEIE, Rx, Tx, and the USART */ + + regval = stm32_1wire_in(priv, STM32_USART_CR1_OFFSET); + regval &= ~(USART_CR1_UE | USART_CR1_TE | USART_CR1_RE | USART_CR1_RXNEIE); + stm32_1wire_out(priv, STM32_USART_CR1_OFFSET, regval); + + /* Clear LBDIE */ + + regval = stm32_1wire_in(priv, STM32_USART_CR2_OFFSET); + regval &= ~USART_CR2_LBDIE; + stm32_1wire_out(priv, STM32_USART_CR2_OFFSET, regval); + + /* Clear ONEBIT, HDSEL and EIE */ + + regval = stm32_1wire_in(priv, STM32_USART_CR3_OFFSET); + regval &= ~(USART_CR3_ONEBIT | USART_CR3_HDSEL | USART_CR3_EIE); + stm32_1wire_out(priv, STM32_USART_CR3_OFFSET, regval); + + /* Disable USART APB1/2 clock */ + + stm32_1wire_set_apb_clock(priv, false); + + return OK; +} + +/**************************************************************************** + * Name: stm32_1wire_sem_init + * + * Description: + * Initialize semaphores + * + ****************************************************************************/ + +static inline void stm32_1wire_sem_init(FAR struct stm32_1wire_priv_s *priv) +{ + sem_init(&priv->sem_excl, 0, 1); + sem_init(&priv->sem_isr, 0, 0); +} + +/**************************************************************************** + * Name: stm32_1wire_sem_destroy + * + * Description: + * Destroy semaphores. + * + ****************************************************************************/ + +static inline void stm32_1wire_sem_destroy(FAR struct stm32_1wire_priv_s *priv) +{ + sem_destroy(&priv->sem_excl); + sem_destroy(&priv->sem_isr); +} + +/**************************************************************************** + * Name: stm32_1wire_sem_wait + * + * Description: + * Take the exclusive access, waiting as necessary + * + ****************************************************************************/ + +static inline void stm32_1wire_sem_wait(FAR struct stm32_1wire_priv_s *priv) +{ + while (sem_wait(&priv->sem_excl) != 0) + { + ASSERT(errno == EINTR); + } +} + +/**************************************************************************** + * Name: stm32_1wire_sem_post + * + * Description: + * Release the mutual exclusion semaphore + * + ****************************************************************************/ + +static inline void stm32_1wire_sem_post(FAR struct stm32_1wire_priv_s *priv) +{ + sem_post(&priv->sem_excl); +} + +/**************************************************************************** + * Name: stm32_1wire_exec + * + * Description: + * Execute 1-Wire task + ****************************************************************************/ +static int stm32_1wire_process(struct stm32_1wire_priv_s *priv, + FAR const struct stm32_1wire_msg_s *msgs, + int count) +{ + irqstate_t irqs; + struct timespec abstime; + int indx; + int ret; + + /* Lock out other clients */ + + stm32_1wire_sem_wait(priv); + + priv->result = ERROR; + + for (indx = 0; indx < count; indx++) + { + switch (msgs[indx].task) + { + case ONEWIRETASK_NONE: + priv->result = OK; + break; + + case ONEWIRETASK_RESET: + /* Set baud rate */ + + priv->baud = RESET_BAUD; + stm32_1wire_set_baud(priv); + + /* Atomic */ + + irqs = enter_critical_section(); + priv->msgs = &msgs[indx]; + stm32_1wire_send(priv, RESET_TX); + leave_critical_section(irqs); + + /* Wait */ + + clock_gettime(CLOCK_REALTIME, &abstime); + abstime.tv_sec += BUS_TIMEOUT; + sem_timedwait(&priv->sem_isr, &abstime); /* break on timeout if TX line closed to GND */ + break; + + case ONEWIRETASK_WRITE: + /* Set baud rate */ + + priv->baud = TIMESLOT_BAUD; + stm32_1wire_set_baud(priv); + + /* Atomic */ + + irqs = enter_critical_section(); + priv->msgs = &msgs[indx]; + priv->byte = priv->msgs->buffer; + priv->bit = 0; + stm32_1wire_send(priv, (*priv->byte & (1 << priv->bit)) ? WRITE_TX1 : WRITE_TX0); + leave_critical_section(irqs); + + /* Wait */ + + clock_gettime(CLOCK_REALTIME, &abstime); + abstime.tv_sec += BUS_TIMEOUT; + sem_timedwait(&priv->sem_isr, &abstime); /* break on timeout if TX line closed to GND */ + break; + + case ONEWIRETASK_READ: + /* Set baud rate */ + + priv->baud = TIMESLOT_BAUD; + stm32_1wire_set_baud(priv); + + /* Atomic */ + + irqs = enter_critical_section(); + priv->msgs = &msgs[indx]; + priv->byte = priv->msgs->buffer; + priv->bit = 0; + stm32_1wire_send(priv, READ_TX); + leave_critical_section(irqs); + + /* Wait */ + + clock_gettime(CLOCK_REALTIME, &abstime); + abstime.tv_sec += BUS_TIMEOUT; + sem_timedwait(&priv->sem_isr, &abstime); /* break on timeout if TX line closed to GND */ + break; + } + + if (priv->result != OK) /* break if error */ + { + break; + } + } + + /* Atomic */ + + irqs = enter_critical_section(); + priv->msgs = NULL; + ret = priv->result; + leave_critical_section(irqs); + + /* Release the port for re-use by other clients */ + + stm32_1wire_sem_post(priv); + + return ret; +} + +/**************************************************************************** + * Name: stm32_1wire_isr + * + * Description: + * Common Interrupt Service Routine + ****************************************************************************/ + +static int stm32_1wire_isr(struct stm32_1wire_priv_s *priv) +{ + uint32_t sr, dr; + + /* Get the masked USART status word. */ + + sr = stm32_1wire_in(priv, STM32_USART_SR_OFFSET); + + /* Receive loop */ + + if ((sr & USART_SR_RXNE) != 0) + { + dr = stm32_1wire_recv(priv); + + if (priv->msgs != NULL) + { + switch (priv->msgs->task) + { + case ONEWIRETASK_NONE: + break; + + case ONEWIRETASK_RESET: + priv->msgs = NULL; + priv->result = (dr != RESET_TX) ? OK : -ENODEV; /* if read RESET_TX then no slave */ + sem_post(&priv->sem_isr); + break; + + case ONEWIRETASK_WRITE: + if (++priv->bit >= 8) + { + priv->bit = 0; + if (++priv->byte >= (priv->msgs->buffer + priv->msgs->buflen)) /* Done? */ + { + priv->msgs = NULL; + priv->result = OK; + sem_post(&priv->sem_isr); + break; + } + } + + /* Send next bit */ + + stm32_1wire_send(priv, (*priv->byte & (1 << priv->bit)) ? WRITE_TX1 : WRITE_TX0); + break; + + case ONEWIRETASK_READ: + if (dr == READ_RX1) + { + *priv->byte |= (1 << priv->bit); + } + else + { + *priv->byte &= ~(1 << priv->bit); + } + + if (++priv->bit >= 8) + { + priv->bit = 0; + if (++priv->byte >= (priv->msgs->buffer + priv->msgs->buflen)) /* Done? */ + { + priv->msgs = NULL; + priv->result = OK; + sem_post(&priv->sem_isr); + break; + } + } + + /* Recv next bit */ + + stm32_1wire_send(priv, READ_TX); + break; + } + } + } + + /* Bounce check. */ + + if ((sr & (USART_SR_ORE | USART_SR_NE | USART_SR_FE)) != 0) + { +#if defined(CONFIG_STM32_STM32F30XX) || defined(CONFIG_STM32_STM32F37XX) + /* These errors are cleared by writing the corresponding bit to the + * interrupt clear register (ICR). + */ + + stm32_1wire_out(priv, STM32_USART_ICR_OFFSET, + (USART_ICR_NCF | USART_ICR_ORECF | USART_ICR_FECF)); +#else + /* If an error occurs, read from DR to clear the error (data has + * been lost). If ORE is set along with RXNE then it tells you + * that the byte *after* the one in the data register has been + * lost, but the data register value is correct. That case will + * be handled above if interrupts are enabled. Otherwise, that + * good byte will be lost. + */ + + (void)stm32_1wire_recv(priv); +#endif + + if (priv->msgs != NULL) + { + priv->msgs = NULL; + priv->result = ERROR; + sem_post(&priv->sem_isr); + } + } + + /* Bounce check. LIN break detection */ + + if ((sr & USART_SR_LBD) != 0) + { + sr &= ~USART_SR_LBD; + stm32_1wire_out(priv, STM32_USART_SR_OFFSET, sr); + + if (priv->msgs != NULL) + { + priv->msgs = NULL; + priv->result = ERROR; + sem_post(&priv->sem_isr); + } + } + + return OK; +} + +#ifdef CONFIG_STM32_USART1_1WIREDRIVER +static int up_interrupt_1wire1(int irq, void *context) +{ + return stm32_1wire_isr(&stm32_1wire1_priv); +} +#endif +#ifdef CONFIG_STM32_USART2_1WIREDRIVER +static int up_interrupt_1wire2(int irq, void *context) +{ + return stm32_1wire_isr(&stm32_1wire2_priv); +} +#endif +#ifdef CONFIG_STM32_USART3_1WIREDRIVER +static int up_interrupt_1wire3(int irq, void *context) +{ + return stm32_1wire_isr(&stm32_1wire3_priv); +} +#endif +#ifdef CONFIG_STM32_UART4_1WIREDRIVER +static int up_interrupt_1wire4(int irq, void *context) +{ + return stm32_1wire_isr(&stm32_1wire4_priv); +} +#endif +#ifdef CONFIG_STM32_UART5_1WIREDRIVER +static int up_interrupt_1wire5(int irq, void *context) +{ + return stm32_1wire_isr(&stm32_1wire5_priv); +} +#endif +#ifdef CONFIG_STM32_USART6_1WIREDRIVER +static int up_interrupt_1wire6(int irq, void *context) +{ + return stm32_1wire_isr(&stm32_1wire6_priv); +} +#endif +#ifdef CONFIG_STM32_UART7_1WIREDRIVER +static int up_interrupt_1wire7(int irq, void *context) +{ + return stm32_1wire_isr(&stm32_1wire7_priv); +} +#endif +#ifdef CONFIG_STM32_UART8_1WIREDRIVER +static int up_interrupt_1wire8(int irq, void *context) +{ + return stm32_1wire_isr(&stm32_1wire8_priv); +} +#endif + +/**************************************************************************** + * Name: stm32_1wire_reset + * + * Description: + * 1-Wire reset pulse and presence detect. + * + ****************************************************************************/ + +static int stm32_1wire_reset(FAR struct onewire_dev_s *dev) +{ + struct stm32_1wire_priv_s *priv = ((struct stm32_1wire_inst_s *)dev)->priv; + const struct stm32_1wire_msg_s msgs[1] = + { + [0].task = ONEWIRETASK_RESET + }; + + return stm32_1wire_process(priv, msgs, 1); +} + +/**************************************************************************** + * Name: stm32_1wire_write + * + * Description: + * Write 1-Wire data + * + ****************************************************************************/ + +static int stm32_1wire_write(FAR struct onewire_dev_s *dev, const uint8_t *buffer, + int buflen) +{ + struct stm32_1wire_priv_s *priv = ((struct stm32_1wire_inst_s *)dev)->priv; + const struct stm32_1wire_msg_s msgs[1] = + { + [0].task = ONEWIRETASK_WRITE, + [0].buffer = (uint8_t *)buffer, + [0].buflen = buflen + }; + + return stm32_1wire_process(priv, msgs, 1); +} + +/**************************************************************************** + * Name: stm32_1wire_read + * + * Description: + * Read 1-Wire data + * + ****************************************************************************/ + +static int stm32_1wire_read(FAR struct onewire_dev_s *dev, uint8_t *buffer, int buflen) +{ + struct stm32_1wire_priv_s *priv = ((struct stm32_1wire_inst_s *)dev)->priv; + const struct stm32_1wire_msg_s msgs[1] = + { + [0].task = ONEWIRETASK_READ, + [0].buffer = buffer, + [0].buflen = buflen + }; + + return stm32_1wire_process(priv, msgs, 1); +} + +/**************************************************************************** + * Name: stm32_1wire_exchange + * + * Description: + * 1-Wire reset pulse and presence detect, + * Write 1-Wire data, + * Read 1-Wire data + * + ****************************************************************************/ + +static int stm32_1wire_exchange(FAR struct onewire_dev_s *dev, bool reset, + const uint8_t *txbuffer, int txbuflen, + uint8_t *rxbuffer, int rxbuflen) + +{ + int result = ERROR; + struct stm32_1wire_priv_s *priv = ((struct stm32_1wire_inst_s *)dev)->priv; + + if (reset) + { + const struct stm32_1wire_msg_s msgs[3] = + { + [0].task = ONEWIRETASK_RESET, + + [1].task = ONEWIRETASK_WRITE, + [1].buffer = (uint8_t *)txbuffer, + [1].buflen = txbuflen, + + [2].task = ONEWIRETASK_READ, + [2].buffer = rxbuffer, + [2].buflen = rxbuflen + }; + + result = stm32_1wire_process(priv, msgs, 3); + } + else + { + const struct stm32_1wire_msg_s msgs[2] = + { + [0].task = ONEWIRETASK_WRITE, + [0].buffer = (uint8_t *)txbuffer, + [0].buflen = txbuflen, + + [1].task = ONEWIRETASK_READ, + [1].buffer = rxbuffer, + [1].buflen = rxbuflen + }; + + result = stm32_1wire_process(priv, msgs, 2); + } + return result; +} + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: up_1wireinitialize + * + * Description: + * Initialize one 1-Wire port + * + ****************************************************************************/ + +FAR struct onewire_dev_s *up_1wireinitialize(int port) +{ + struct stm32_1wire_priv_s *priv = NULL; /* Private data of device with multiple instances */ + struct stm32_1wire_inst_s *inst = NULL; /* Device, single instance */ + int irqs; + + /* Get 1-Wire private structure */ + + switch (port) + { +#ifdef CONFIG_STM32_USART1_1WIREDRIVER + case 1: + priv = &stm32_1wire1_priv; + break; +#endif +#ifdef CONFIG_STM32_USART2_1WIREDRIVER + case 2: + priv = &stm32_1wire2_priv; + break; +#endif +#ifdef CONFIG_STM32_USART3_1WIREDRIVER + case 3: + priv = &stm32_1wire3_priv; + break; +#endif +#ifdef CONFIG_STM32_UART4_1WIREDRIVER + case 4: + priv = &stm32_1wire4_priv; + break; +#endif +#ifdef CONFIG_STM32_UART5_1WIREDRIVER + case 5: + priv = &stm32_1wire5_priv; + break; +#endif +#ifdef CONFIG_STM32_USART6_1WIREDRIVER + case 6: + priv = &stm32_1wire6_priv; + break; +#endif +#ifdef CONFIG_STM32_UART7_1WIREDRIVER + case 7: + priv = &stm32_1wire7_priv; + break; +#endif +#ifdef CONFIG_STM32_UART8_1WIREDRIVER + case 8: + priv = &stm32_1wire8_priv; + break; +#endif + default: + return NULL; + } + + /* Allocate instance */ + + if (!(inst = kmm_malloc(sizeof(struct stm32_1wire_inst_s)))) + { + return NULL; + } + + /* Initialize instance */ + + inst->ops = &stm32_1wire_ops; + inst->priv = priv; + + /* Initialize private data for the first time, increment reference count, + * power-up hardware and configure GPIOs. + */ + + irqs = enter_critical_section(); + + if (priv->refs++ == 0) + { + stm32_1wire_sem_init(priv); + stm32_1wire_init(priv); + } + + leave_critical_section(irqs); + return (struct onewire_dev_s *)inst; +} + +/**************************************************************************** + * Name: up_1wireuninitialize + * + * Description: + * Uninitialize an 1-Wire port + * + ****************************************************************************/ + +int up_1wireuninitialize(FAR struct onewire_dev_s *dev) +{ + struct stm32_1wire_priv_s *priv = ((struct stm32_1wire_inst_s *)dev)->priv; + int irqs; + + ASSERT(dev); + + /* Decrement reference count and check for underflow */ + + if (priv->refs == 0) + { + return ERROR; + } + + irqs = enter_critical_section(); + + if (--priv->refs) + { + leave_critical_section(irqs); + kmm_free(priv); + return OK; + } + + leave_critical_section(irqs); + + /* Disable power and other HW resource (GPIO's) */ + + stm32_1wire_deinit(priv); + + /* Release unused resources */ + + stm32_1wire_sem_destroy(priv); + + /* Free instance */ + + kmm_free(dev); + return OK; +} + +#endif /* HAVE_1WIREDRIVER */ diff --git a/arch/arm/src/stm32/stm32_1wire.h b/arch/arm/src/stm32/stm32_1wire.h index 3052849ac0..b8bb398923 100644 --- a/arch/arm/src/stm32/stm32_1wire.h +++ b/arch/arm/src/stm32/stm32_1wire.h @@ -1,113 +1,63 @@ -/************************************************************************************ - * arch/arm/src/stm32/stm32_1wire.h - * - * Copyright (C) 2016 Aleksandr Vyhovanec. All rights reserved. - * Author: Aleksandr Vyhovanec - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name NuttX nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ************************************************************************************/ - -#ifndef __ARCH_ARM_SRC_STM32_STM32_1WIRE_H -#define __ARCH_ARM_SRC_STM32_STM32_1WIRE_H - -/************************************************************************************ - * Included Files - ************************************************************************************/ - -#include - -#include "chip.h" - -#if defined(CONFIG_STM32_STM32L15XX) -# include "chip/stm32l15xxx_uart.h" -#elif defined(CONFIG_STM32_STM32F10XX) -# include "chip/stm32f10xxx_uart.h" -#elif defined(CONFIG_STM32_STM32F20XX) -# include "chip/stm32f20xxx_uart.h" -#elif defined(CONFIG_STM32_STM32F30XX) || defined(CONFIG_STM32_STM32F37XX) -# include "chip/stm32f30xxx_uart.h" -#elif defined(CONFIG_STM32_STM32F40XX) -# include "chip/stm32f40xxx_uart.h" -#else -# error "Unsupported STM32 UART" -#endif - -/************************************************************************************ - * Pre-processor Definitions - ************************************************************************************/ - -/* Check 1-Wire and U(S)ART conflicting */ - -#if defined(CONFIG_STM32_1WIRE1) && defined(CONFIG_STM32_USART1) -# undef CONFIG_STM32_1WIRE1 -#endif -#if defined(CONFIG_STM32_1WIRE2) && defined(CONFIG_STM32_USART2) -# undef CONFIG_STM32_1WIRE2 -#endif -#if defined(CONFIG_STM32_1WIRE3) && defined(CONFIG_STM32_USART3) -# undef CONFIG_STM32_1WIRE3 -#endif -#if defined(CONFIG_STM32_1WIRE4) && defined(CONFIG_STM32_UART4) -# undef CONFIG_STM32_1WIRE4 -#endif -#if defined(CONFIG_STM32_1WIRE5) && defined(CONFIG_STM32_UART5) -# undef CONFIG_STM32_1WIRE5 -#endif -#if defined(CONFIG_STM32_1WIRE6) && defined(CONFIG_STM32_USART6) -# undef CONFIG_STM32_1WIRE6 -#endif -#if defined(CONFIG_STM32_1WIRE7) && defined(CONFIG_STM32_UART7) -# undef CONFIG_STM32_1WIRE7 -#endif -#if defined(CONFIG_STM32_1WIRE8) && defined(CONFIG_STM32_UART8) -# undef CONFIG_STM32_1WIRE8 -#endif - -/* Is there a 1-Wire enabled? */ - -#if defined(CONFIG_STM32_1WIRE1) || defined(CONFIG_STM32_1WIRE2) || \ - defined(CONFIG_STM32_1WIRE3) || defined(CONFIG_STM32_1WIRE4) || \ - defined(CONFIG_STM32_1WIRE5) || defined(CONFIG_STM32_1WIRE6) || \ - defined(CONFIG_STM32_1WIRE7) || defined(CONFIG_STM32_1WIRE8) -# define HAVE_1WIRE 1 -#endif - -/************************************************************************************ - * Public Types - ************************************************************************************/ - -/************************************************************************************ - * Public Data - ************************************************************************************/ - -/************************************************************************************ - * Public Functions - ************************************************************************************/ - -#endif /* __ARCH_ARM_SRC_STM32_STM32_1WIRE_H */ +/************************************************************************************ + * arch/arm/src/stm32/stm32_1wire.h + * + * Copyright (C) 2016 Aleksandr Vyhovanec. All rights reserved. + * Author: Aleksandr Vyhovanec + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ************************************************************************************/ + +#ifndef __ARCH_ARM_SRC_STM32_STM32_1WIRE_H +#define __ARCH_ARM_SRC_STM32_STM32_1WIRE_H + +/************************************************************************************ + * Included Files + ************************************************************************************/ + +#include + +#include "stm32_uart.h" + +/************************************************************************************ + * Pre-processor Definitions + ************************************************************************************/ + +/************************************************************************************ + * Public Types + ************************************************************************************/ + +/************************************************************************************ + * Public Data + ************************************************************************************/ + +/************************************************************************************ + * Public Functions + ************************************************************************************/ + +#endif /* __ARCH_ARM_SRC_STM32_STM32_1WIRE_H */ diff --git a/arch/arm/src/stm32/stm32_lowputc.c b/arch/arm/src/stm32/stm32_lowputc.c index fcde5cd477..0bffb74808 100644 --- a/arch/arm/src/stm32/stm32_lowputc.c +++ b/arch/arm/src/stm32/stm32_lowputc.c @@ -436,7 +436,7 @@ void up_lowputc(char ch) void stm32_lowsetup(void) { -#if defined(HAVE_UART) +#if defined(HAVE_SERIALDRIVER) uint32_t mapr; #if defined(HAVE_CONSOLE) && !defined(CONFIG_SUPPRESS_UART_CONFIG) uint32_t cr; @@ -559,7 +559,7 @@ void stm32_lowsetup(void) putreg32(cr, STM32_CONSOLE_BASE + STM32_USART_CR1_OFFSET); #endif /* HAVE_CONSOLE && !CONFIG_SUPPRESS_UART_CONFIG */ -#endif /* HAVE_UART */ +#endif /* HAVE_SERIALDRIVER */ } #elif defined(CONFIG_STM32_STM32L15XX) || defined(CONFIG_STM32_STM32F20XX) || \ @@ -568,7 +568,7 @@ void stm32_lowsetup(void) void stm32_lowsetup(void) { -#if defined(HAVE_UART) +#if defined(HAVE_SERIALDRIVER) #if defined(HAVE_CONSOLE) && !defined(CONFIG_SUPPRESS_UART_CONFIG) uint32_t cr; #endif @@ -638,7 +638,7 @@ void stm32_lowsetup(void) putreg32(cr, STM32_CONSOLE_BASE + STM32_USART_CR1_OFFSET); #endif /* HAVE_CONSOLE && !CONFIG_SUPPRESS_UART_CONFIG */ -#endif /* HAVE_UART */ +#endif /* HAVE_SERIALDRIVER */ } #else diff --git a/arch/arm/src/stm32/stm32_serial.c b/arch/arm/src/stm32/stm32_serial.c index f1fc2baf1b..eeb5a846a7 100644 --- a/arch/arm/src/stm32/stm32_serial.c +++ b/arch/arm/src/stm32/stm32_serial.c @@ -272,7 +272,7 @@ #endif #ifdef USE_SERIALDRIVER -#ifdef HAVE_UART +#ifdef HAVE_SERIALDRIVER /**************************************************************************** * Private Types @@ -386,28 +386,28 @@ static int up_pm_prepare(struct pm_callback_s *cb, int domain, enum pm_state_e pmstate); #endif -#ifdef CONFIG_STM32_USART1 +#ifdef CONFIG_STM32_USART1_SERIALDRIVER static int up_interrupt_usart1(int irq, void *context); #endif -#ifdef CONFIG_STM32_USART2 +#ifdef CONFIG_STM32_USART2_SERIALDRIVER static int up_interrupt_usart2(int irq, void *context); #endif -#ifdef CONFIG_STM32_USART3 +#ifdef CONFIG_STM32_USART3_SERIALDRIVER static int up_interrupt_usart3(int irq, void *context); #endif -#ifdef CONFIG_STM32_UART4 +#ifdef CONFIG_STM32_UART4_SERIALDRIVER static int up_interrupt_uart4(int irq, void *context); #endif -#ifdef CONFIG_STM32_UART5 +#ifdef CONFIG_STM32_UART5_SERIALDRIVER static int up_interrupt_uart5(int irq, void *context); #endif -#ifdef CONFIG_STM32_USART6 +#ifdef CONFIG_STM32_USART6_SERIALDRIVER static int up_interrupt_usart6(int irq, void *context); #endif -#ifdef CONFIG_STM32_UART7 +#ifdef CONFIG_STM32_UART7_SERIALDRIVER static int up_interrupt_uart7(int irq, void *context); #endif -#ifdef CONFIG_STM32_UART8 +#ifdef CONFIG_STM32_UART8_SERIALDRIVER static int up_interrupt_uart8(int irq, void *context); #endif @@ -459,7 +459,7 @@ static const struct uart_ops_s g_uart_dma_ops = /* I/O buffers */ -#ifdef CONFIG_STM32_USART1 +#ifdef CONFIG_STM32_USART1_SERIALDRIVER static char g_usart1rxbuffer[CONFIG_USART1_RXBUFSIZE]; static char g_usart1txbuffer[CONFIG_USART1_TXBUFSIZE]; # ifdef CONFIG_USART1_RXDMA @@ -467,7 +467,7 @@ static char g_usart1rxfifo[RXDMA_BUFFER_SIZE]; # endif #endif -#ifdef CONFIG_STM32_USART2 +#ifdef CONFIG_STM32_USART2_SERIALDRIVER static char g_usart2rxbuffer[CONFIG_USART2_RXBUFSIZE]; static char g_usart2txbuffer[CONFIG_USART2_TXBUFSIZE]; # ifdef CONFIG_USART2_RXDMA @@ -475,7 +475,7 @@ static char g_usart2rxfifo[RXDMA_BUFFER_SIZE]; # endif #endif -#ifdef CONFIG_STM32_USART3 +#ifdef CONFIG_STM32_USART3_SERIALDRIVER static char g_usart3rxbuffer[CONFIG_USART3_RXBUFSIZE]; static char g_usart3txbuffer[CONFIG_USART3_TXBUFSIZE]; # ifdef CONFIG_USART3_RXDMA @@ -483,7 +483,7 @@ static char g_usart3rxfifo[RXDMA_BUFFER_SIZE]; # endif #endif -#ifdef CONFIG_STM32_UART4 +#ifdef CONFIG_STM32_UART4_SERIALDRIVER static char g_uart4rxbuffer[CONFIG_UART4_RXBUFSIZE]; static char g_uart4txbuffer[CONFIG_UART4_TXBUFSIZE]; # ifdef CONFIG_UART4_RXDMA @@ -491,7 +491,7 @@ static char g_uart4rxfifo[RXDMA_BUFFER_SIZE]; # endif #endif -#ifdef CONFIG_STM32_UART5 +#ifdef CONFIG_STM32_UART5_SERIALDRIVER static char g_uart5rxbuffer[CONFIG_UART5_RXBUFSIZE]; static char g_uart5txbuffer[CONFIG_UART5_TXBUFSIZE]; # ifdef CONFIG_UART5_RXDMA @@ -499,7 +499,7 @@ static char g_uart5rxfifo[RXDMA_BUFFER_SIZE]; # endif #endif -#ifdef CONFIG_STM32_USART6 +#ifdef CONFIG_STM32_USART6_SERIALDRIVER static char g_usart6rxbuffer[CONFIG_USART6_RXBUFSIZE]; static char g_usart6txbuffer[CONFIG_USART6_TXBUFSIZE]; # ifdef CONFIG_USART6_RXDMA @@ -507,7 +507,7 @@ static char g_usart6rxfifo[RXDMA_BUFFER_SIZE]; # endif #endif -#ifdef CONFIG_STM32_UART7 +#ifdef CONFIG_STM32_UART7_SERIALDRIVER static char g_uart7rxbuffer[CONFIG_UART7_RXBUFSIZE]; static char g_uart7txbuffer[CONFIG_UART7_TXBUFSIZE]; # ifdef CONFIG_UART7_RXDMA @@ -515,7 +515,7 @@ static char g_uart7rxfifo[RXDMA_BUFFER_SIZE]; # endif #endif -#ifdef CONFIG_STM32_UART8 +#ifdef CONFIG_STM32_UART8_SERIALDRIVER static char g_uart8rxbuffer[CONFIG_UART8_RXBUFSIZE]; static char g_uart8txbuffer[CONFIG_UART8_TXBUFSIZE]; # ifdef CONFIG_UART8_RXDMA @@ -525,7 +525,7 @@ static char g_uart8rxfifo[RXDMA_BUFFER_SIZE]; /* This describes the state of the STM32 USART1 ports. */ -#ifdef CONFIG_STM32_USART1 +#ifdef CONFIG_STM32_USART1_SERIALDRIVER static struct up_dev_s g_usart1priv = { .dev = @@ -587,7 +587,7 @@ static struct up_dev_s g_usart1priv = /* This describes the state of the STM32 USART2 port. */ -#ifdef CONFIG_STM32_USART2 +#ifdef CONFIG_STM32_USART2_SERIALDRIVER static struct up_dev_s g_usart2priv = { .dev = @@ -649,7 +649,7 @@ static struct up_dev_s g_usart2priv = /* This describes the state of the STM32 USART3 port. */ -#ifdef CONFIG_STM32_USART3 +#ifdef CONFIG_STM32_USART3_SERIALDRIVER static struct up_dev_s g_usart3priv = { .dev = @@ -711,7 +711,7 @@ static struct up_dev_s g_usart3priv = /* This describes the state of the STM32 UART4 port. */ -#ifdef CONFIG_STM32_UART4 +#ifdef CONFIG_STM32_UART4_SERIALDRIVER static struct up_dev_s g_uart4priv = { .dev = @@ -777,7 +777,7 @@ static struct up_dev_s g_uart4priv = /* This describes the state of the STM32 UART5 port. */ -#ifdef CONFIG_STM32_UART5 +#ifdef CONFIG_STM32_UART5_SERIALDRIVER static struct up_dev_s g_uart5priv = { .dev = @@ -843,7 +843,7 @@ static struct up_dev_s g_uart5priv = /* This describes the state of the STM32 USART6 port. */ -#ifdef CONFIG_STM32_USART6 +#ifdef CONFIG_STM32_USART6_SERIALDRIVER static struct up_dev_s g_usart6priv = { .dev = @@ -905,7 +905,7 @@ static struct up_dev_s g_usart6priv = /* This describes the state of the STM32 UART7 port. */ -#ifdef CONFIG_STM32_UART7 +#ifdef CONFIG_STM32_UART7_SERIALDRIVER static struct up_dev_s g_uart7priv = { .dev = @@ -940,11 +940,11 @@ static struct up_dev_s g_uart7priv = .usartbase = STM32_UART7_BASE, .tx_gpio = GPIO_UART7_TX, .rx_gpio = GPIO_UART7_RX, -#if defined(CONFIG_SERIAL_OFLOWCONTROL) && defined(CONFIG_USART7_OFLOWCONTROL) +#if defined(CONFIG_SERIAL_OFLOWCONTROL) && defined(CONFIG_UART7_OFLOWCONTROL) .oflow = true, .cts_gpio = GPIO_UART7_CTS, #endif -#if defined(CONFIG_SERIAL_IFLOWCONTROL) && defined(CONFIG_USART7_IFLOWCONTROL) +#if defined(CONFIG_SERIAL_IFLOWCONTROL) && defined(CONFIG_UART7_IFLOWCONTROL) .iflow = true, .rts_gpio = GPIO_UART7_RTS, #endif @@ -967,7 +967,7 @@ static struct up_dev_s g_uart7priv = /* This describes the state of the STM32 UART8 port. */ -#ifdef CONFIG_STM32_UART8 +#ifdef CONFIG_STM32_UART8_SERIALDRIVER static struct up_dev_s g_uart8priv = { .dev = @@ -1002,11 +1002,11 @@ static struct up_dev_s g_uart8priv = .usartbase = STM32_UART8_BASE, .tx_gpio = GPIO_UART8_TX, .rx_gpio = GPIO_UART8_RX, -#if defined(CONFIG_SERIAL_OFLOWCONTROL) && defined(CONFIG_USART8_OFLOWCONTROL) +#if defined(CONFIG_SERIAL_OFLOWCONTROL) && defined(CONFIG_UART8_OFLOWCONTROL) .oflow = true, .cts_gpio = GPIO_UART8_CTS, #endif -#if defined(CONFIG_SERIAL_IFLOWCONTROL) && defined(CONFIG_USART8_IFLOWCONTROL) +#if defined(CONFIG_SERIAL_IFLOWCONTROL) && defined(CONFIG_UART8_IFLOWCONTROL) .iflow = true, .rts_gpio = GPIO_UART8_RTS, #endif @@ -1031,28 +1031,28 @@ static struct up_dev_s g_uart8priv = static struct up_dev_s * const uart_devs[STM32_NUSART] = { -#ifdef CONFIG_STM32_USART1 +#ifdef CONFIG_STM32_USART1_SERIALDRIVER [0] = &g_usart1priv, #endif -#ifdef CONFIG_STM32_USART2 +#ifdef CONFIG_STM32_USART2_SERIALDRIVER [1] = &g_usart2priv, #endif -#ifdef CONFIG_STM32_USART3 +#ifdef CONFIG_STM32_USART3_SERIALDRIVER [2] = &g_usart3priv, #endif -#ifdef CONFIG_STM32_UART4 +#ifdef CONFIG_STM32_UART4_SERIALDRIVER [3] = &g_uart4priv, #endif -#ifdef CONFIG_STM32_UART5 +#ifdef CONFIG_STM32_UART5_SERIALDRIVER [4] = &g_uart5priv, #endif -#ifdef CONFIG_STM32_USART6 +#ifdef CONFIG_STM32_USART6_SERIALDRIVER [5] = &g_usart6priv, #endif -#ifdef CONFIG_STM32_UART7 +#ifdef CONFIG_STM32_UART7_SERIALDRIVER [6] = &g_uart7priv, #endif -#ifdef CONFIG_STM32_UART8 +#ifdef CONFIG_STM32_UART8_SERIALDRIVER [7] = &g_uart8priv, #endif }; @@ -1376,49 +1376,49 @@ static void up_set_apb_clock(struct uart_dev_s *dev, bool on) { default: return; -#ifdef CONFIG_STM32_USART1 +#ifdef CONFIG_STM32_USART1_SERIALDRIVER case STM32_USART1_BASE: rcc_en = RCC_APB2ENR_USART1EN; regaddr = STM32_RCC_APB2ENR; break; #endif -#ifdef CONFIG_STM32_USART2 +#ifdef CONFIG_STM32_USART2_SERIALDRIVER case STM32_USART2_BASE: rcc_en = RCC_APB1ENR_USART2EN; regaddr = STM32_RCC_APB1ENR; break; #endif -#ifdef CONFIG_STM32_USART3 +#ifdef CONFIG_STM32_USART3_SERIALDRIVER case STM32_USART3_BASE: rcc_en = RCC_APB1ENR_USART3EN; regaddr = STM32_RCC_APB1ENR; break; #endif -#ifdef CONFIG_STM32_UART4 +#ifdef CONFIG_STM32_UART4_SERIALDRIVER case STM32_UART4_BASE: rcc_en = RCC_APB1ENR_UART4EN; regaddr = STM32_RCC_APB1ENR; break; #endif -#ifdef CONFIG_STM32_UART5 +#ifdef CONFIG_STM32_UART5_SERIALDRIVER case STM32_UART5_BASE: rcc_en = RCC_APB1ENR_UART5EN; regaddr = STM32_RCC_APB1ENR; break; #endif -#ifdef CONFIG_STM32_USART6 +#ifdef CONFIG_STM32_USART6_SERIALDRIVER case STM32_USART6_BASE: rcc_en = RCC_APB2ENR_USART6EN; regaddr = STM32_RCC_APB2ENR; break; #endif -#ifdef CONFIG_STM32_UART7 +#ifdef CONFIG_STM32_UART7_SERIALDRIVER case STM32_UART7_BASE: rcc_en = RCC_APB1ENR_UART7EN; regaddr = STM32_RCC_APB1ENR; break; #endif -#ifdef CONFIG_STM32_UART8 +#ifdef CONFIG_STM32_UART8_SERIALDRIVER case STM32_UART8_BASE: rcc_en = RCC_APB1ENR_UART8EN; regaddr = STM32_RCC_APB1ENR; @@ -2579,56 +2579,56 @@ static bool up_txready(struct uart_dev_s *dev) * ****************************************************************************/ -#ifdef CONFIG_STM32_USART1 +#ifdef CONFIG_STM32_USART1_SERIALDRIVER static int up_interrupt_usart1(int irq, void *context) { return up_interrupt_common(&g_usart1priv); } #endif -#ifdef CONFIG_STM32_USART2 +#ifdef CONFIG_STM32_USART2_SERIALDRIVER static int up_interrupt_usart2(int irq, void *context) { return up_interrupt_common(&g_usart2priv); } #endif -#ifdef CONFIG_STM32_USART3 +#ifdef CONFIG_STM32_USART3_SERIALDRIVER static int up_interrupt_usart3(int irq, void *context) { return up_interrupt_common(&g_usart3priv); } #endif -#ifdef CONFIG_STM32_UART4 +#ifdef CONFIG_STM32_UART4_SERIALDRIVER static int up_interrupt_uart4(int irq, void *context) { return up_interrupt_common(&g_uart4priv); } #endif -#ifdef CONFIG_STM32_UART5 +#ifdef CONFIG_STM32_UART5_SERIALDRIVER static int up_interrupt_uart5(int irq, void *context) { return up_interrupt_common(&g_uart5priv); } #endif -#ifdef CONFIG_STM32_USART6 +#ifdef CONFIG_STM32_USART6_SERIALDRIVER static int up_interrupt_usart6(int irq, void *context) { return up_interrupt_common(&g_usart6priv); } #endif -#ifdef CONFIG_STM32_UART7 +#ifdef CONFIG_STM32_UART7_SERIALDRIVER static int up_interrupt_uart7(int irq, void *context) { return up_interrupt_common(&g_uart7priv); } #endif -#ifdef CONFIG_STM32_UART8 +#ifdef CONFIG_STM32_UART8_SERIALDRIVER static int up_interrupt_uart8(int irq, void *context) { return up_interrupt_common(&g_uart8priv); @@ -2771,7 +2771,7 @@ static int up_pm_prepare(struct pm_callback_s *cb, int domain, return OK; } #endif -#endif /* HAVE_UART */ +#endif /* HAVE_SERIALDRIVER */ #endif /* USE_SERIALDRIVER */ /**************************************************************************** @@ -2793,7 +2793,7 @@ static int up_pm_prepare(struct pm_callback_s *cb, int domain, #ifdef USE_EARLYSERIALINIT void up_earlyserialinit(void) { -#ifdef HAVE_UART +#ifdef HAVE_SERIALDRIVER unsigned i; /* Disable all USART interrupts */ @@ -2826,7 +2826,7 @@ void up_earlyserialinit(void) void up_serialinit(void) { -#ifdef HAVE_UART +#ifdef HAVE_SERIALDRIVER char devname[16]; unsigned i; unsigned minor = 0; diff --git a/arch/arm/src/stm32/stm32_uart.h b/arch/arm/src/stm32/stm32_uart.h index 56ae303543..76fc41e0ba 100644 --- a/arch/arm/src/stm32/stm32_uart.h +++ b/arch/arm/src/stm32/stm32_uart.h @@ -90,18 +90,97 @@ # undef CONFIG_STM32_USART1 #endif -/* Is there a USART enabled? */ +/* Sanity checks */ -#if defined(CONFIG_STM32_USART1) || defined(CONFIG_STM32_USART2) || \ - defined(CONFIG_STM32_USART3) || defined(CONFIG_STM32_UART4) || \ - defined(CONFIG_STM32_UART5) || defined(CONFIG_STM32_USART6) || \ - defined(CONFIG_STM32_UART7) || defined(CONFIG_STM32_UART8) -# define HAVE_UART 1 +#if !defined(CONFIG_STM32_USART1) +# undef CONFIG_STM32_USART1_SERIALDRIVER +# undef CONFIG_STM32_USART1_1WIREDRIVER +#endif +#if !defined(CONFIG_STM32_USART2) +# undef CONFIG_STM32_USART2_SERIALDRIVER +# undef CONFIG_STM32_USART2_1WIREDRIVER +#endif +#if !defined(CONFIG_STM32_USART3) +# undef CONFIG_STM32_USART3_SERIALDRIVER +# undef CONFIG_STM32_USART3_1WIREDRIVER +#endif +#if !defined(CONFIG_STM32_UART4) +# undef CONFIG_STM32_UART4_SERIALDRIVER +# undef CONFIG_STM32_UART4_1WIREDRIVER +#endif +#if !defined(CONFIG_STM32_UART5) +# undef CONFIG_STM32_UART5_SERIALDRIVER +# undef CONFIG_STM32_UART5_1WIREDRIVER +#endif +#if !defined(CONFIG_STM32_USART6) +# undef CONFIG_STM32_USART6_SERIALDRIVER +# undef CONFIG_STM32_USART6_1WIREDRIVER +#endif +#if !defined(CONFIG_STM32_UART7) +# undef CONFIG_STM32_UART7_SERIALDRIVER +# undef CONFIG_STM32_UART7_1WIREDRIVER +#endif +#if !defined(CONFIG_STM32_UART8) +# undef CONFIG_STM32_UART8_SERIALDRIVER +# undef CONFIG_STM32_UART8_1WIREDRIVER +#endif + +/* Check 1-Wire and U(S)ART conflicts */ + +#if defined(CONFIG_STM32_USART1_1WIREDRIVER) && defined(CONFIG_STM32_USART1_SERIALDRIVER) +# error Both CONFIG_STM32_USART1_1WIREDRIVER and CONFIG_STM32_USART1_SERIALDRIVER defined +# undef CONFIG_STM32_USART1_1WIREDRIVER +#endif +#if defined(CONFIG_STM32_USART2_1WIREDRIVER) && defined(CONFIG_STM32_USART2_SERIALDRIVER) +# error Both CONFIG_STM32_USART2_1WIREDRIVER and CONFIG_STM32_USART2_SERIALDRIVER defined +# undef CONFIG_STM32_USART2_1WIREDRIVER +#endif +#if defined(CONFIG_STM32_USART3_1WIREDRIVER) && defined(CONFIG_STM32_USART3_SERIALDRIVER) +# error Both CONFIG_STM32_USART3_1WIREDRIVER and CONFIG_STM32_USART3_SERIALDRIVER defined +# undef CONFIG_STM32_USART3_1WIREDRIVER +#endif +#if defined(CONFIG_STM32_UART4_1WIREDRIVER) && defined(CONFIG_STM32_UART4_SERIALDRIVER) +# error Both CONFIG_STM32_UART4_1WIREDRIVER and CONFIG_STM32_UART4_SERIALDRIVER defined +# undef CONFIG_STM32_UART4_1WIREDRIVER +#endif +#if defined(CONFIG_STM32_UART5_1WIREDRIVER) && defined(CONFIG_STM32_UART5_SERIALDRIVER) +# error Both CONFIG_STM32_UART5_1WIREDRIVER and CONFIG_STM32_UART5_SERIALDRIVER defined +# undef CONFIG_STM32_UART5_1WIREDRIVER +#endif +#if defined(CONFIG_STM32_USART6_1WIREDRIVER) && defined(CONFIG_STM32_USART6_SERIALDRIVER) +# error Both CONFIG_STM32_USART6_1WIREDRIVER and CONFIG_STM32_USART6_SERIALDRIVER defined +# undef CONFIG_STM32_USART6_1WIREDRIVER +#endif +#if defined(CONFIG_STM32_UART7_1WIREDRIVER) && defined(CONFIG_STM32_UART7_SERIALDRIVER) +# error Both CONFIG_STM32_UART7_1WIREDRIVER and CONFIG_STM32_UART7_SERIALDRIVER defined +# undef CONFIG_STM32_UART7_1WIREDRIVER +#endif +#if defined(CONFIG_STM32_UART8_1WIREDRIVER) && defined(CONFIG_STM32_UART8_SERIALDRIVER) +# error Both CONFIG_STM32_UART8_1WIREDRIVER and CONFIG_STM32_UART8_SERIALDRIVER defined +# undef CONFIG_STM32_UART8_1WIREDRIVER +#endif + +/* Is the serial driver enabled? */ + +#if defined(CONFIG_STM32_USART1_SERIALDRIVER) || defined(CONFIG_STM32_USART2_SERIALDRIVER) || \ + defined(CONFIG_STM32_USART3_SERIALDRIVER) || defined(CONFIG_STM32_UART4_SERIALDRIVER) || \ + defined(CONFIG_STM32_UART5_SERIALDRIVER) || defined(CONFIG_STM32_USART6_SERIALDRIVER) || \ + defined(CONFIG_STM32_UART7_SERIALDRIVER) || defined(CONFIG_STM32_UART8_SERIALDRIVER) +# define HAVE_SERIALDRIVER 1 +#endif + +/* Is the 1-Wire driver? */ + +#if defined(CONFIG_STM32_USART1_1WIREDRIVER) || defined(CONFIG_STM32_USART2_1WIREDRIVER) || \ + defined(CONFIG_STM32_USART3_1WIREDRIVER) || defined(CONFIG_STM32_UART4_1WIREDRIVER) || \ + defined(CONFIG_STM32_UART5_1WIREDRIVER) || defined(CONFIG_STM32_USART6_1WIREDRIVER) || \ + defined(CONFIG_STM32_UART7_1WIREDRIVER) || defined(CONFIG_STM32_UART8_1WIREDRIVER) +# define HAVE_1WIREDRIVER 1 #endif /* Is there a serial console? */ -#if defined(CONFIG_USART1_SERIAL_CONSOLE) && defined(CONFIG_STM32_USART1) +#if defined(CONFIG_USART1_SERIAL_CONSOLE) && defined(CONFIG_STM32_USART1_SERIALDRIVER) # undef CONFIG_USART2_SERIAL_CONSOLE # undef CONFIG_USART3_SERIAL_CONSOLE # undef CONFIG_UART4_SERIAL_CONSOLE @@ -111,7 +190,7 @@ # undef CONFIG_UART8_SERIAL_CONSOLE # define CONSOLE_UART 1 # define HAVE_CONSOLE 1 -#elif defined(CONFIG_USART2_SERIAL_CONSOLE) && defined(CONFIG_STM32_USART2) +#elif defined(CONFIG_USART2_SERIAL_CONSOLE) && defined(CONFIG_STM32_USART2_SERIALDRIVER) # undef CONFIG_USART1_SERIAL_CONSOLE # undef CONFIG_USART3_SERIAL_CONSOLE # undef CONFIG_UART4_SERIAL_CONSOLE @@ -121,7 +200,7 @@ # undef CONFIG_UART8_SERIAL_CONSOLE # define CONSOLE_UART 2 # define HAVE_CONSOLE 1 -#elif defined(CONFIG_USART3_SERIAL_CONSOLE) && defined(CONFIG_STM32_USART3) +#elif defined(CONFIG_USART3_SERIAL_CONSOLE) && defined(CONFIG_STM32_USART3_SERIALDRIVER) # undef CONFIG_USART1_SERIAL_CONSOLE # undef CONFIG_USART2_SERIAL_CONSOLE # undef CONFIG_UART4_SERIAL_CONSOLE @@ -131,7 +210,7 @@ # undef CONFIG_UART8_SERIAL_CONSOLE # define CONSOLE_UART 3 # define HAVE_CONSOLE 1 -#elif defined(CONFIG_UART4_SERIAL_CONSOLE) && defined(CONFIG_STM32_UART4) +#elif defined(CONFIG_UART4_SERIAL_CONSOLE) && defined(CONFIG_STM32_UART4_SERIALDRIVER) # undef CONFIG_USART1_SERIAL_CONSOLE # undef CONFIG_USART2_SERIAL_CONSOLE # undef CONFIG_USART3_SERIAL_CONSOLE @@ -141,7 +220,7 @@ # undef CONFIG_UART8_SERIAL_CONSOLE # define CONSOLE_UART 4 # define HAVE_CONSOLE 1 -#elif defined(CONFIG_UART5_SERIAL_CONSOLE) && defined(CONFIG_STM32_UART5) +#elif defined(CONFIG_UART5_SERIAL_CONSOLE) && defined(CONFIG_STM32_UART5_SERIALDRIVER) # undef CONFIG_USART1_SERIAL_CONSOLE # undef CONFIG_USART2_SERIAL_CONSOLE # undef CONFIG_USART3_SERIAL_CONSOLE @@ -151,7 +230,7 @@ # undef CONFIG_UART8_SERIAL_CONSOLE # define CONSOLE_UART 5 # define HAVE_CONSOLE 1 -#elif defined(CONFIG_USART6_SERIAL_CONSOLE) && defined(CONFIG_STM32_USART6) +#elif defined(CONFIG_USART6_SERIAL_CONSOLE) && defined(CONFIG_STM32_USART6_SERIALDRIVER) # undef CONFIG_USART1_SERIAL_CONSOLE # undef CONFIG_USART2_SERIAL_CONSOLE # undef CONFIG_USART3_SERIAL_CONSOLE @@ -161,7 +240,7 @@ # undef CONFIG_UART8_SERIAL_CONSOLE # define CONSOLE_UART 6 # define HAVE_CONSOLE 1 -#elif defined(CONFIG_UART7_SERIAL_CONSOLE) && defined(CONFIG_STM32_UART7) +#elif defined(CONFIG_UART7_SERIAL_CONSOLE) && defined(CONFIG_STM32_UART7_SERIALDRIVER) # undef CONFIG_USART1_SERIAL_CONSOLE # undef CONFIG_USART2_SERIAL_CONSOLE # undef CONFIG_USART3_SERIAL_CONSOLE @@ -172,7 +251,7 @@ # undef CONFIG_UART8_SERIAL_CONSOLE # define CONSOLE_UART 7 # define HAVE_CONSOLE 1 -#elif defined(CONFIG_UART8_SERIAL_CONSOLE) && defined(CONFIG_STM32_UART8) +#elif defined(CONFIG_UART8_SERIAL_CONSOLE) && defined(CONFIG_STM32_UART8_SERIALDRIVER) # undef CONFIG_USART1_SERIAL_CONSOLE # undef CONFIG_USART2_SERIAL_CONSOLE # undef CONFIG_USART3_SERIAL_CONSOLE @@ -197,7 +276,7 @@ /* DMA support is only provided if CONFIG_ARCH_DMA is in the NuttX configuration */ -#if !defined(HAVE_UART) || !defined(CONFIG_ARCH_DMA) +#if !defined(HAVE_SERIALDRIVER) || !defined(CONFIG_ARCH_DMA) # undef CONFIG_USART1_RXDMA # undef CONFIG_USART2_RXDMA # undef CONFIG_USART3_RXDMA @@ -210,35 +289,35 @@ /* Disable the DMA configuration on all unused USARTs */ -#ifndef CONFIG_STM32_USART1 +#ifndef CONFIG_STM32_USART1_SERIALDRIVER # undef CONFIG_USART1_RXDMA #endif -#ifndef CONFIG_STM32_USART2 +#ifndef CONFIG_STM32_USART2_SERIALDRIVER # undef CONFIG_USART2_RXDMA #endif -#ifndef CONFIG_STM32_USART3 +#ifndef CONFIG_STM32_USART3_SERIALDRIVER # undef CONFIG_USART3_RXDMA #endif -#ifndef CONFIG_STM32_UART4 +#ifndef CONFIG_STM32_UART4_SERIALDRIVER # undef CONFIG_UART4_RXDMA #endif -#ifndef CONFIG_STM32_UART5 +#ifndef CONFIG_STM32_UART5_SERIALDRIVER # undef CONFIG_UART5_RXDMA #endif -#ifndef CONFIG_STM32_USART6 +#ifndef CONFIG_STM32_USART6_SERIALDRIVER # undef CONFIG_USART6_RXDMA #endif -#ifndef CONFIG_STM32_UART7 +#ifndef CONFIG_STM32_UART7_SERIALDRIVER # undef CONFIG_UART7_RXDMA #endif -#ifndef CONFIG_STM32_UART8 +#ifndef CONFIG_STM32_UART8_SERIALDRIVER # undef CONFIG_UART8_RXDMA #endif @@ -276,21 +355,21 @@ /* Is DMA used on all (enabled) USARTs */ #define SERIAL_HAVE_ONLY_DMA 1 -#if defined(CONFIG_STM32_USART1) && !defined(CONFIG_USART1_RXDMA) +#if defined(CONFIG_STM32_USART1_SERIALDRIVER) && !defined(CONFIG_USART1_RXDMA) # undef SERIAL_HAVE_ONLY_DMA -#elif defined(CONFIG_STM32_USART2) && !defined(CONFIG_USART2_RXDMA) +#elif defined(CONFIG_STM32_USART2_SERIALDRIVER) && !defined(CONFIG_USART2_RXDMA) # undef SERIAL_HAVE_ONLY_DMA -#elif defined(CONFIG_STM32_USART3) && !defined(CONFIG_USART3_RXDMA) +#elif defined(CONFIG_STM32_USART3_SERIALDRIVER) && !defined(CONFIG_USART3_RXDMA) # undef SERIAL_HAVE_ONLY_DMA -#elif defined(CONFIG_STM32_UART4) && !defined(CONFIG_UART4_RXDMA) +#elif defined(CONFIG_STM32_UART4_SERIALDRIVER) && !defined(CONFIG_UART4_RXDMA) # undef SERIAL_HAVE_ONLY_DMA -#elif defined(CONFIG_STM32_UART5) && !defined(CONFIG_UART5_RXDMA) +#elif defined(CONFIG_STM32_UART5_SERIALDRIVER) && !defined(CONFIG_UART5_RXDMA) # undef SERIAL_HAVE_ONLY_DMA -#elif defined(CONFIG_STM32_USART6) && !defined(CONFIG_USART6_RXDMA) +#elif defined(CONFIG_STM32_USART6_SERIALDRIVER) && !defined(CONFIG_USART6_RXDMA) # undef SERIAL_HAVE_ONLY_DMA -#elif defined(CONFIG_STM32_UART7) && !defined(CONFIG_UART7_RXDMA) +#elif defined(CONFIG_STM32_UART7_SERIALDRIVER) && !defined(CONFIG_UART7_RXDMA) # undef SERIAL_HAVE_ONLY_DMA -#elif defined(CONFIG_STM32_UART8) && !defined(CONFIG_UART8_RXDMA) +#elif defined(CONFIG_STM32_UART8_SERIALDRIVER) && !defined(CONFIG_UART8_RXDMA) # undef SERIAL_HAVE_ONLY_DMA #endif -- GitLab From d89eefc6a58d1736fe949e7c446a2e9714a85983 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 25 May 2016 12:39:28 -0600 Subject: [PATCH 253/307] Refresh all STM32 configurations --- configs/cloudctrl/nsh/defconfig | 17 +++++++-- configs/fire-stm32v2/nsh/defconfig | 19 ++++++++-- configs/hymini-stm32v/buttons/defconfig | 18 ++++++--- configs/hymini-stm32v/nsh/defconfig | 17 +++++++-- configs/hymini-stm32v/nsh2/defconfig | 20 +++++++--- configs/hymini-stm32v/usbmsc/defconfig | 26 +++++++++++-- configs/hymini-stm32v/usbnsh/defconfig | 26 ++++++++++--- configs/hymini-stm32v/usbserial/defconfig | 14 +++++-- configs/maple/nsh/defconfig | 19 +++++++--- configs/maple/nx/defconfig | 31 +++++++++++++--- configs/maple/usbnsh/defconfig | 27 +++++++++++--- configs/mikroe-stm32f4/fulldemo/defconfig | 25 ++++++++++--- configs/mikroe-stm32f4/kostest/defconfig | 23 +++++++++--- configs/mikroe-stm32f4/nsh/defconfig | 20 ++++++++-- configs/mikroe-stm32f4/nx/defconfig | 10 +++++ configs/mikroe-stm32f4/nxlines/defconfig | 10 +++++ configs/mikroe-stm32f4/nxtext/defconfig | 10 +++++ configs/mikroe-stm32f4/usbnsh/defconfig | 22 ++++++++--- configs/nucleo-f303re/adc/defconfig | 9 +++++ configs/nucleo-f303re/can/defconfig | 9 +++++ configs/nucleo-f303re/nxlines/defconfig | 11 ++++++ configs/nucleo-f303re/pwm/defconfig | 9 +++++ configs/nucleo-f303re/serialrx/defconfig | 17 +++++++-- configs/nucleo-f4x1re/f401-nsh/defconfig | 18 ++++++--- configs/nucleo-f4x1re/f411-nsh/defconfig | 18 ++++++--- configs/olimex-stm32-h405/usbnsh/defconfig | 19 +++++++--- configs/olimex-stm32-h407/nsh/defconfig | 18 ++++++--- configs/olimex-stm32-p107/nsh/defconfig | 20 +++++++--- configs/olimex-stm32-p207/nsh/defconfig | 18 +++++++-- configs/olimexino-stm32/can/defconfig | 18 +++++++-- configs/olimexino-stm32/composite/defconfig | 23 +++++++++--- configs/olimexino-stm32/nsh/defconfig | 21 ++++++++--- configs/olimexino-stm32/smallnsh/defconfig | 18 +++++++-- configs/olimexino-stm32/tiny/defconfig | 18 +++++++-- configs/shenzhou/nsh/defconfig | 17 +++++++-- configs/shenzhou/nxwm/defconfig | 19 ++++++++-- configs/shenzhou/thttpd/defconfig | 19 ++++++++-- configs/spark/composite/defconfig | 22 ++++++++--- configs/spark/nsh/defconfig | 23 +++++++++--- configs/spark/usbmsc/defconfig | 20 +++++++--- configs/spark/usbnsh/defconfig | 29 ++++++++++++--- configs/spark/usbserial/defconfig | 29 ++++++++++++--- configs/stm3210e-eval/buttons/defconfig | 14 +++++-- configs/stm3210e-eval/composite/defconfig | 16 ++++++-- configs/stm3210e-eval/nsh/defconfig | 16 ++++++-- configs/stm3210e-eval/nsh2/defconfig | 18 +++++++-- configs/stm3210e-eval/nx/defconfig | 15 ++++++-- configs/stm3210e-eval/nxterm/defconfig | 15 ++++++-- configs/stm3210e-eval/pm/defconfig | 16 ++++++-- configs/stm3210e-eval/usbmsc/defconfig | 14 +++++-- configs/stm3210e-eval/usbserial/defconfig | 14 +++++-- configs/stm3220g-eval/dhcpd/defconfig | 18 ++++++--- configs/stm3220g-eval/nettest/defconfig | 18 ++++++--- configs/stm3220g-eval/nsh/defconfig | 20 +++++++--- configs/stm3220g-eval/nsh2/defconfig | 15 ++++++-- configs/stm3220g-eval/nxwm/defconfig | 21 ++++++++--- configs/stm3220g-eval/telnetd/defconfig | 18 ++++++--- configs/stm3240g-eval/dhcpd/defconfig | 10 +++-- configs/stm3240g-eval/discover/defconfig | 10 +++-- configs/stm3240g-eval/knxwm/defconfig | 14 ++++--- configs/stm3240g-eval/nettest/defconfig | 10 +++-- configs/stm3240g-eval/nsh/defconfig | 11 +++--- configs/stm3240g-eval/nsh2/defconfig | 9 ++--- configs/stm3240g-eval/nxterm/defconfig | 13 ++++--- configs/stm3240g-eval/nxwm/defconfig | 14 ++++--- configs/stm3240g-eval/telnetd/defconfig | 10 +++-- configs/stm3240g-eval/webserver/defconfig | 13 ++++--- configs/stm3240g-eval/xmlrpc/defconfig | 10 +++-- configs/stm32_tiny/nsh/defconfig | 18 +++++++-- configs/stm32_tiny/usbnsh/defconfig | 28 +++++++++++--- configs/stm32f103-minimum/nsh/defconfig | 9 +++-- configs/stm32f103-minimum/usbnsh/defconfig | 9 +++-- configs/stm32f3discovery/nsh/defconfig | 26 ++++++++++--- configs/stm32f3discovery/usbnsh/defconfig | 12 ++++-- configs/stm32f411e-disco/nsh/defconfig | 14 ++----- configs/stm32f429i-disco/extflash/defconfig | 19 ++++++++-- configs/stm32f429i-disco/lcd/defconfig | 19 +++++++--- configs/stm32f429i-disco/ltdc/defconfig | 19 +++++++--- configs/stm32f429i-disco/nsh/defconfig | 18 ++++++--- configs/stm32f429i-disco/usbmsc/defconfig | 17 +++++++-- configs/stm32f429i-disco/usbnsh/defconfig | 19 +++++++--- configs/stm32f4discovery/cxxtest/defconfig | 18 ++++++--- configs/stm32f4discovery/elf/defconfig | 18 ++++++--- configs/stm32f4discovery/ipv6/defconfig | 17 +++++++-- configs/stm32f4discovery/kostest/defconfig | 18 ++++++--- configs/stm32f4discovery/netnsh/defconfig | 12 ++++-- configs/stm32f4discovery/nsh/defconfig | 18 ++++++--- configs/stm32f4discovery/nxlines/defconfig | 19 +++++++--- configs/stm32f4discovery/pm/defconfig | 37 ++++++++++++++++--- .../stm32f4discovery/posix_spawn/defconfig | 18 ++++++--- configs/stm32f4discovery/rgbled/defconfig | 18 ++++++--- configs/stm32f4discovery/usbnsh/defconfig | 19 +++++++--- configs/stm32ldiscovery/nsh/defconfig | 18 ++++++--- configs/stm32vldiscovery/nsh/defconfig | 18 ++++++--- configs/viewtool-stm32f107/highpri/defconfig | 10 +++-- configs/viewtool-stm32f107/netnsh/defconfig | 10 +++-- configs/viewtool-stm32f107/nsh/defconfig | 10 +++-- 97 files changed, 1249 insertions(+), 424 deletions(-) diff --git a/configs/cloudctrl/nsh/defconfig b/configs/cloudctrl/nsh/defconfig index 1ad599bdb4..ece509d9cf 100644 --- a/configs/cloudctrl/nsh/defconfig +++ b/configs/cloudctrl/nsh/defconfig @@ -80,6 +80,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -98,6 +99,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -119,6 +121,7 @@ CONFIG_ARCH_CORTEXM3=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -126,6 +129,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y # CONFIG_ARMV7M_LAZYFPU is not set # CONFIG_ARCH_HAVE_FPU is not set # CONFIG_ARCH_HAVE_DPFPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -136,6 +140,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARW is not set # CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDW is not set @@ -246,6 +251,7 @@ CONFIG_ARCH_CHIP_STM32F107VC=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -417,13 +423,17 @@ CONFIG_STM32_JTAG_FULL_ENABLE=y # CONFIG_STM32_TIM5_CAP is not set # CONFIG_STM32_TIM8_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART2_SERIALDRIVER=y +# CONFIG_STM32_USART2_1WIREDRIVER is not set # CONFIG_USART2_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # @@ -809,10 +819,6 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y CONFIG_SERIAL_NPOLLWAITERS=2 @@ -1075,6 +1081,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set CONFIG_LIBC_NETDB=y # CONFIG_NETDB_HOSTFILE is not set CONFIG_NETDB_DNSCLIENT=y @@ -1215,6 +1223,7 @@ CONFIG_EXAMPLES_NSH=y # CONFIG_NETUTILS_CHAT is not set # CONFIG_NETUTILS_CODECS is not set # CONFIG_NETUTILS_DHCPD is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_FTPD is not set # CONFIG_NETUTILS_JSON is not set diff --git a/configs/fire-stm32v2/nsh/defconfig b/configs/fire-stm32v2/nsh/defconfig index 62c9eab594..c45b204918 100644 --- a/configs/fire-stm32v2/nsh/defconfig +++ b/configs/fire-stm32v2/nsh/defconfig @@ -80,6 +80,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -98,6 +99,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -119,6 +121,7 @@ CONFIG_ARCH_CORTEXM3=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -126,6 +129,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y # CONFIG_ARMV7M_LAZYFPU is not set # CONFIG_ARCH_HAVE_FPU is not set # CONFIG_ARCH_HAVE_DPFPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -136,6 +140,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARW is not set # CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDW is not set @@ -248,6 +253,7 @@ CONFIG_ARCH_CHIP_STM32F103VE=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -424,14 +430,20 @@ CONFIG_STM32_JTAG_FULL_ENABLE=y # CONFIG_STM32_TIM5_CAP is not set # CONFIG_STM32_TIM8_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART1_SERIALDRIVER=y +# CONFIG_STM32_USART1_1WIREDRIVER is not set # CONFIG_USART1_RS485 is not set +CONFIG_STM32_USART2_SERIALDRIVER=y +# CONFIG_STM32_USART2_1WIREDRIVER is not set # CONFIG_USART2_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # @@ -815,10 +827,6 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -1129,6 +1137,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set CONFIG_LIBC_NETDB=y # CONFIG_NETDB_HOSTFILE is not set CONFIG_NETDB_DNSCLIENT=y @@ -1259,6 +1269,7 @@ CONFIG_EXAMPLES_NSH=y # CONFIG_NETUTILS_CODECS is not set # CONFIG_NETUTILS_DHCPC is not set # CONFIG_NETUTILS_DHCPD is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/hymini-stm32v/buttons/defconfig b/configs/hymini-stm32v/buttons/defconfig index 2de9a25b33..3141e0c160 100644 --- a/configs/hymini-stm32v/buttons/defconfig +++ b/configs/hymini-stm32v/buttons/defconfig @@ -76,6 +76,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -94,6 +95,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -115,6 +117,7 @@ CONFIG_ARCH_CORTEXM3=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -122,6 +125,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y # CONFIG_ARMV7M_LAZYFPU is not set # CONFIG_ARCH_HAVE_FPU is not set # CONFIG_ARCH_HAVE_DPFPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -132,6 +136,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set # CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set @@ -238,6 +243,7 @@ CONFIG_ARCH_CHIP_STM32F103VC=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -408,13 +414,17 @@ CONFIG_STM32_JTAG_DISABLE=y # CONFIG_STM32_TIM5_CAP is not set # CONFIG_STM32_TIM8_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART1_SERIALDRIVER=y +# CONFIG_STM32_USART1_1WIREDRIVER is not set # CONFIG_USART1_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set CONFIG_STM32_HAVE_RTC_COUNTER=y # CONFIG_STM32_HAVE_RTC_SUBSECONDS is not set @@ -699,10 +709,6 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -840,6 +846,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # @@ -924,7 +932,6 @@ CONFIG_EXAMPLES_BUTTONS_NAME7="Button 7" # CONFIG_EXAMPLES_TIFF is not set # CONFIG_EXAMPLES_TOUCHSCREEN is not set # CONFIG_EXAMPLES_WEBSERVER is not set -# CONFIG_EXAMPLES_USBSERIAL is not set # CONFIG_EXAMPLES_USBTERM is not set # CONFIG_EXAMPLES_WATCHDOG is not set @@ -960,6 +967,7 @@ CONFIG_EXAMPLES_BUTTONS_NAME7="Button 7" # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/hymini-stm32v/nsh/defconfig b/configs/hymini-stm32v/nsh/defconfig index 2db32fd210..69662e887c 100644 --- a/configs/hymini-stm32v/nsh/defconfig +++ b/configs/hymini-stm32v/nsh/defconfig @@ -76,6 +76,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -94,6 +95,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -115,6 +117,7 @@ CONFIG_ARCH_CORTEXM3=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -122,6 +125,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y # CONFIG_ARMV7M_LAZYFPU is not set # CONFIG_ARCH_HAVE_FPU is not set # CONFIG_ARCH_HAVE_DPFPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -132,6 +136,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set # CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set @@ -240,6 +245,7 @@ CONFIG_ARCH_CHIP_STM32F103VC=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -411,13 +417,17 @@ CONFIG_STM32_JTAG_DISABLE=y # CONFIG_STM32_TIM5_CAP is not set # CONFIG_STM32_TIM8_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART1_SERIALDRIVER=y +# CONFIG_STM32_USART1_1WIREDRIVER is not set # CONFIG_USART1_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # @@ -728,10 +738,6 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -877,6 +883,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # CONFIG_NETDB_HOSTFILE is not set @@ -989,6 +997,7 @@ CONFIG_EXAMPLES_NSH=y # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/hymini-stm32v/nsh2/defconfig b/configs/hymini-stm32v/nsh2/defconfig index 71705a0361..e36492fc6a 100644 --- a/configs/hymini-stm32v/nsh2/defconfig +++ b/configs/hymini-stm32v/nsh2/defconfig @@ -76,6 +76,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -94,6 +95,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -115,6 +117,7 @@ CONFIG_ARCH_CORTEXM3=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -122,6 +125,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y # CONFIG_ARMV7M_LAZYFPU is not set # CONFIG_ARCH_HAVE_FPU is not set # CONFIG_ARCH_HAVE_DPFPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -132,6 +136,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set # CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set @@ -240,6 +245,7 @@ CONFIG_ARCH_CHIP_STM32F103VC=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -418,13 +424,17 @@ CONFIG_STM32_JTAG_DISABLE=y # CONFIG_STM32_TIM5_CAP is not set # CONFIG_STM32_TIM8_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART1_SERIALDRIVER=y +# CONFIG_STM32_USART1_1WIREDRIVER is not set # CONFIG_USART1_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # @@ -816,10 +826,6 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -856,7 +862,6 @@ CONFIG_USBDEV_MAXPOWER=100 # CONFIG_ARCH_USBDEV_STALLQUEUE is not set CONFIG_USBDEV_TRACE=y CONFIG_USBDEV_TRACE_NRECORDS=128 -# CONFIG_USBDEV_TRACE_STRINGS is not set # CONFIG_USBDEV_TRACE_INITIALIDSET is not set # @@ -951,6 +956,7 @@ CONFIG_NX_LCDDRIVER=y CONFIG_NX_NPLANES=1 CONFIG_NX_BGCOLOR=0x0 # CONFIG_NX_WRITEONLY is not set +# CONFIG_NX_UPDATE is not set # # Supported Pixel Depths @@ -1095,6 +1101,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # CONFIG_NETDB_HOSTFILE is not set @@ -1190,6 +1198,7 @@ CONFIG_EXAMPLES_NXIMAGE=y CONFIG_EXAMPLES_NXIMAGE_VPLANE=0 CONFIG_EXAMPLES_NXIMAGE_DEVNO=0 CONFIG_EXAMPLES_NXIMAGE_BPP=16 +# CONFIG_EXAMPLES_NXIMAGE_GREYSCALE is not set # CONFIG_EXAMPLES_NXIMAGE_XSCALEp5 is not set CONFIG_EXAMPLES_NXIMAGE_XSCALE1p0=y # CONFIG_EXAMPLES_NXIMAGE_XSCALE1p5 is not set @@ -1265,6 +1274,7 @@ CONFIG_EXAMPLES_TOUCHSCREEN_ARCHINIT=y # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/hymini-stm32v/usbmsc/defconfig b/configs/hymini-stm32v/usbmsc/defconfig index be1eeeef98..a38efa7b82 100644 --- a/configs/hymini-stm32v/usbmsc/defconfig +++ b/configs/hymini-stm32v/usbmsc/defconfig @@ -76,6 +76,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -94,6 +95,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -115,6 +117,7 @@ CONFIG_ARCH_CORTEXM3=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -122,6 +125,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y # CONFIG_ARMV7M_LAZYFPU is not set # CONFIG_ARCH_HAVE_FPU is not set # CONFIG_ARCH_HAVE_DPFPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -132,6 +136,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL=y @@ -240,6 +245,7 @@ CONFIG_ARCH_CHIP_STM32F103VC=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -413,14 +419,20 @@ CONFIG_STM32_JTAG_DISABLE=y # CONFIG_STM32_TIM5_CAP is not set # CONFIG_STM32_TIM8_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART1_SERIALDRIVER=y +# CONFIG_STM32_USART1_1WIREDRIVER is not set # CONFIG_USART1_RS485 is not set +CONFIG_STM32_USART2_SERIALDRIVER=y +# CONFIG_STM32_USART2_1WIREDRIVER is not set # CONFIG_USART2_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # @@ -525,7 +537,14 @@ CONFIG_ARCH_HAVE_IRQBUTTONS=y # Board-Specific Options # CONFIG_LIB_BOARDCTL=y +# CONFIG_BOARDCTL_RESET is not set +# CONFIG_BOARDCTL_UNIQUEID is not set CONFIG_BOARDCTL_USBDEVCTRL=y +# CONFIG_BOARDCTL_TSCTEST is not set +# CONFIG_BOARDCTL_ADCTEST is not set +# CONFIG_BOARDCTL_PWMTEST is not set +# CONFIG_BOARDCTL_GRAPHICS is not set +# CONFIG_BOARDCTL_IOCTL is not set # # RTOS Features @@ -723,10 +742,6 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -920,6 +935,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # CONFIG_NETDB_HOSTFILE is not set @@ -1031,6 +1048,7 @@ CONFIG_LIB_SENDFILE_BUFSIZE=512 # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/hymini-stm32v/usbnsh/defconfig b/configs/hymini-stm32v/usbnsh/defconfig index 9cf98c3df9..d744b1a2ca 100644 --- a/configs/hymini-stm32v/usbnsh/defconfig +++ b/configs/hymini-stm32v/usbnsh/defconfig @@ -76,6 +76,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -94,6 +95,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -115,6 +117,7 @@ CONFIG_ARCH_CORTEXM3=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -122,6 +125,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y # CONFIG_ARMV7M_LAZYFPU is not set # CONFIG_ARCH_HAVE_FPU is not set # CONFIG_ARCH_HAVE_DPFPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -132,6 +136,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set # CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set @@ -238,6 +243,7 @@ CONFIG_ARCH_CHIP_STM32F103VC=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -408,13 +414,17 @@ CONFIG_STM32_JTAG_DISABLE=y # CONFIG_STM32_TIM5_CAP is not set # CONFIG_STM32_TIM8_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART1_SERIALDRIVER=y +# CONFIG_STM32_USART1_1WIREDRIVER is not set # CONFIG_USART1_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set CONFIG_STM32_HAVE_RTC_COUNTER=y # CONFIG_STM32_HAVE_RTC_SUBSECONDS is not set @@ -516,7 +526,14 @@ CONFIG_NSH_MMCSDMINOR=0 # Board-Specific Options # CONFIG_LIB_BOARDCTL=y +# CONFIG_BOARDCTL_RESET is not set +# CONFIG_BOARDCTL_UNIQUEID is not set CONFIG_BOARDCTL_USBDEVCTRL=y +# CONFIG_BOARDCTL_TSCTEST is not set +# CONFIG_BOARDCTL_ADCTEST is not set +# CONFIG_BOARDCTL_PWMTEST is not set +# CONFIG_BOARDCTL_GRAPHICS is not set +# CONFIG_BOARDCTL_IOCTL is not set # # RTOS Features @@ -702,10 +719,6 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -759,8 +772,8 @@ CONFIG_CDCACM_EPBULKOUT_HSSIZE=512 CONFIG_CDCACM_EPBULKIN=2 CONFIG_CDCACM_EPBULKIN_FSSIZE=64 CONFIG_CDCACM_EPBULKIN_HSSIZE=512 -CONFIG_CDCACM_NWRREQS=4 CONFIG_CDCACM_NRDREQS=4 +CONFIG_CDCACM_NWRREQS=4 CONFIG_CDCACM_BULKIN_REQLEN=96 CONFIG_CDCACM_RXBUFSIZE=256 CONFIG_CDCACM_TXBUFSIZE=256 @@ -885,6 +898,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # @@ -1005,6 +1020,7 @@ CONFIG_EXAMPLES_NSH=y # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/hymini-stm32v/usbserial/defconfig b/configs/hymini-stm32v/usbserial/defconfig index 4b242e01a5..6183ec98d4 100644 --- a/configs/hymini-stm32v/usbserial/defconfig +++ b/configs/hymini-stm32v/usbserial/defconfig @@ -117,6 +117,7 @@ CONFIG_ARCH_CORTEXM3=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -135,6 +136,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL=y @@ -241,6 +243,7 @@ CONFIG_ARCH_CHIP_STM32F103VC=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -412,14 +415,20 @@ CONFIG_STM32_JTAG_DISABLE=y # CONFIG_STM32_TIM5_CAP is not set # CONFIG_STM32_TIM8_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART1_SERIALDRIVER=y +# CONFIG_STM32_USART1_1WIREDRIVER is not set # CONFIG_USART1_RS485 is not set +CONFIG_STM32_USART2_SERIALDRIVER=y +# CONFIG_STM32_USART2_1WIREDRIVER is not set # CONFIG_USART2_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set CONFIG_STM32_HAVE_RTC_COUNTER=y # CONFIG_STM32_HAVE_RTC_SUBSECONDS is not set @@ -708,10 +717,6 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -1006,6 +1011,7 @@ CONFIG_EXAMPLES_USBSERIAL_BUFSIZE=512 # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/maple/nsh/defconfig b/configs/maple/nsh/defconfig index 5233c52690..54ebb6d22e 100644 --- a/configs/maple/nsh/defconfig +++ b/configs/maple/nsh/defconfig @@ -76,6 +76,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -94,6 +95,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -115,6 +117,7 @@ CONFIG_ARCH_CORTEXM3=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -122,6 +125,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y # CONFIG_ARMV7M_LAZYFPU is not set # CONFIG_ARCH_HAVE_FPU is not set # CONFIG_ARCH_HAVE_DPFPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -132,6 +136,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set # CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set @@ -238,6 +243,7 @@ CONFIG_ARCH_CHIP_STM32F103CB=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -405,13 +411,17 @@ CONFIG_STM32_JTAG_DISABLE=y # CONFIG_STM32_TIM5_CAP is not set # CONFIG_STM32_TIM8_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART1_SERIALDRIVER=y +# CONFIG_STM32_USART1_1WIREDRIVER is not set # CONFIG_USART1_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set CONFIG_STM32_HAVE_RTC_COUNTER=y # CONFIG_STM32_HAVE_RTC_SUBSECONDS is not set @@ -689,10 +699,6 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -729,7 +735,6 @@ CONFIG_USBDEV_MAXPOWER=100 # CONFIG_ARCH_USBDEV_STALLQUEUE is not set CONFIG_USBDEV_TRACE=y CONFIG_USBDEV_TRACE_NRECORDS=32 -# CONFIG_USBDEV_TRACE_STRINGS is not set # CONFIG_USBDEV_TRACE_INITIALIDSET is not set # @@ -859,6 +864,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # @@ -935,7 +942,6 @@ CONFIG_EXAMPLES_NSH=y # CONFIG_EXAMPLES_TIFF is not set # CONFIG_EXAMPLES_TOUCHSCREEN is not set # CONFIG_EXAMPLES_WEBSERVER is not set -# CONFIG_EXAMPLES_USBSERIAL is not set # CONFIG_EXAMPLES_USBTERM is not set # CONFIG_EXAMPLES_WATCHDOG is not set @@ -971,6 +977,7 @@ CONFIG_EXAMPLES_NSH=y # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/maple/nx/defconfig b/configs/maple/nx/defconfig index a6f7707e81..b60f26e071 100644 --- a/configs/maple/nx/defconfig +++ b/configs/maple/nx/defconfig @@ -76,6 +76,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -94,6 +95,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -115,6 +117,7 @@ CONFIG_ARCH_CORTEXM3=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -122,6 +125,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y # CONFIG_ARMV7M_LAZYFPU is not set # CONFIG_ARCH_HAVE_FPU is not set # CONFIG_ARCH_HAVE_DPFPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -132,6 +136,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set # CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set @@ -238,6 +243,7 @@ CONFIG_ARCH_CHIP_STM32F103CB=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -414,13 +420,17 @@ CONFIG_STM32_JTAG_DISABLE=y # CONFIG_STM32_TIM5_CAP is not set # CONFIG_STM32_TIM8_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART1_SERIALDRIVER=y +# CONFIG_STM32_USART1_1WIREDRIVER is not set # CONFIG_USART1_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # @@ -539,7 +549,14 @@ CONFIG_NSH_MMCSDMINOR=0 # CONFIG_MAPLE_MINI=y CONFIG_LIB_BOARDCTL=y +# CONFIG_BOARDCTL_RESET is not set +# CONFIG_BOARDCTL_UNIQUEID is not set CONFIG_BOARDCTL_USBDEVCTRL=y +# CONFIG_BOARDCTL_TSCTEST is not set +# CONFIG_BOARDCTL_ADCTEST is not set +# CONFIG_BOARDCTL_PWMTEST is not set +# CONFIG_BOARDCTL_GRAPHICS is not set +# CONFIG_BOARDCTL_IOCTL is not set # # RTOS Features @@ -728,6 +745,7 @@ CONFIG_LCD_LANDSCAPE=y # Alphanumeric/Segment LCD Devices # # CONFIG_LCD_LCD1602 is not set +# CONFIG_LCD_BACKPACK is not set # # LED Support @@ -769,10 +787,6 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -809,7 +823,6 @@ CONFIG_USBDEV_MAXPOWER=100 # CONFIG_ARCH_USBDEV_STALLQUEUE is not set CONFIG_USBDEV_TRACE=y CONFIG_USBDEV_TRACE_NRECORDS=32 -# CONFIG_USBDEV_TRACE_STRINGS is not set # CONFIG_USBDEV_TRACE_INITIALIDSET is not set # @@ -829,8 +842,8 @@ CONFIG_CDCACM_EPBULKOUT_HSSIZE=512 CONFIG_CDCACM_EPBULKIN=2 CONFIG_CDCACM_EPBULKIN_FSSIZE=64 CONFIG_CDCACM_EPBULKIN_HSSIZE=512 -CONFIG_CDCACM_NWRREQS=4 CONFIG_CDCACM_NRDREQS=4 +CONFIG_CDCACM_NWRREQS=4 CONFIG_CDCACM_BULKIN_REQLEN=96 CONFIG_CDCACM_RXBUFSIZE=256 CONFIG_CDCACM_TXBUFSIZE=256 @@ -901,6 +914,7 @@ CONFIG_NX_LCDDRIVER=y CONFIG_NX_NPLANES=1 CONFIG_NX_BGCOLOR=0x0 # CONFIG_NX_WRITEONLY is not set +# CONFIG_NX_UPDATE is not set # # Supported Pixel Depths @@ -1043,6 +1057,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # @@ -1101,6 +1117,7 @@ CONFIG_EXAMPLES_NX_DEFAULT_FONT=y CONFIG_EXAMPLES_NX_BPP=1 # CONFIG_EXAMPLES_NX_RAWWINDOWS is not set CONFIG_EXAMPLES_NX_TOOLBAR_HEIGHT=16 +# CONFIG_EXAMPLES_NX_EXTERNINIT is not set # CONFIG_EXAMPLES_NXTERM is not set # CONFIG_EXAMPLES_NXFFS is not set CONFIG_EXAMPLES_NXHELLO=y @@ -1117,6 +1134,7 @@ CONFIG_EXAMPLES_NXHELLO_DEFAULT_COLORS=y # Example Font Configuration # CONFIG_EXAMPLES_NXHELLO_DEFAULT_FONT=y +# CONFIG_EXAMPLES_NXHELLO_EXTERNINIT is not set # CONFIG_EXAMPLES_NXIMAGE is not set # CONFIG_EXAMPLES_NXLINES is not set # CONFIG_EXAMPLES_NXTEXT is not set @@ -1176,6 +1194,7 @@ CONFIG_EXAMPLES_NXHELLO_DEFAULT_FONT=y # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/maple/usbnsh/defconfig b/configs/maple/usbnsh/defconfig index 42ace19439..fe4466fd04 100644 --- a/configs/maple/usbnsh/defconfig +++ b/configs/maple/usbnsh/defconfig @@ -76,6 +76,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -94,6 +95,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -115,6 +117,7 @@ CONFIG_ARCH_CORTEXM3=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -122,6 +125,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y # CONFIG_ARMV7M_LAZYFPU is not set # CONFIG_ARCH_HAVE_FPU is not set # CONFIG_ARCH_HAVE_DPFPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -132,6 +136,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set # CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set @@ -238,6 +243,7 @@ CONFIG_ARCH_CHIP_STM32F103CB=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -405,13 +411,17 @@ CONFIG_STM32_JTAG_DISABLE=y # CONFIG_STM32_TIM5_CAP is not set # CONFIG_STM32_TIM8_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART1_SERIALDRIVER=y +# CONFIG_STM32_USART1_1WIREDRIVER is not set # CONFIG_USART1_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set CONFIG_STM32_HAVE_RTC_COUNTER=y # CONFIG_STM32_HAVE_RTC_SUBSECONDS is not set @@ -514,7 +524,14 @@ CONFIG_NSH_MMCSDMINOR=0 # CONFIG_MAPLE_MINI=y CONFIG_LIB_BOARDCTL=y +# CONFIG_BOARDCTL_RESET is not set +# CONFIG_BOARDCTL_UNIQUEID is not set CONFIG_BOARDCTL_USBDEVCTRL=y +# CONFIG_BOARDCTL_TSCTEST is not set +# CONFIG_BOARDCTL_ADCTEST is not set +# CONFIG_BOARDCTL_PWMTEST is not set +# CONFIG_BOARDCTL_GRAPHICS is not set +# CONFIG_BOARDCTL_IOCTL is not set # # RTOS Features @@ -696,10 +713,6 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -736,7 +749,6 @@ CONFIG_USBDEV_MAXPOWER=100 # CONFIG_ARCH_USBDEV_STALLQUEUE is not set CONFIG_USBDEV_TRACE=y CONFIG_USBDEV_TRACE_NRECORDS=32 -# CONFIG_USBDEV_TRACE_STRINGS is not set # CONFIG_USBDEV_TRACE_INITIALIDSET is not set # @@ -756,8 +768,8 @@ CONFIG_CDCACM_EPBULKOUT_HSSIZE=512 CONFIG_CDCACM_EPBULKIN=2 CONFIG_CDCACM_EPBULKIN_FSSIZE=64 CONFIG_CDCACM_EPBULKIN_HSSIZE=512 -CONFIG_CDCACM_NWRREQS=4 CONFIG_CDCACM_NRDREQS=4 +CONFIG_CDCACM_NWRREQS=4 CONFIG_CDCACM_BULKIN_REQLEN=96 CONFIG_CDCACM_RXBUFSIZE=256 CONFIG_CDCACM_TXBUFSIZE=256 @@ -885,6 +897,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # @@ -997,6 +1011,7 @@ CONFIG_EXAMPLES_NSH=y # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/mikroe-stm32f4/fulldemo/defconfig b/configs/mikroe-stm32f4/fulldemo/defconfig index dc0899b6dd..65b3ac8069 100644 --- a/configs/mikroe-stm32f4/fulldemo/defconfig +++ b/configs/mikroe-stm32f4/fulldemo/defconfig @@ -76,6 +76,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -94,6 +95,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -115,6 +117,7 @@ CONFIG_ARCH_CORTEXM4=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -123,6 +126,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y CONFIG_ARCH_HAVE_FPU=y # CONFIG_ARCH_HAVE_DPFPU is not set # CONFIG_ARCH_FPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -133,6 +137,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set # CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set @@ -239,6 +244,7 @@ CONFIG_ARMV7M_HAVE_STACKCHECK=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -443,14 +449,18 @@ CONFIG_STM32_DMACAPABLE=y # ADC Configuration # CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART2_SERIALDRIVER=y +# CONFIG_STM32_USART2_1WIREDRIVER is not set # CONFIG_USART2_RS485 is not set # CONFIG_USART2_RXDMA is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # @@ -719,6 +729,7 @@ CONFIG_SPI_CALLBACK=y CONFIG_RTC=y CONFIG_RTC_DATETIME=y CONFIG_RTC_ALARM=y +CONFIG_RTC_NALARMS=1 # CONFIG_RTC_DRIVER is not set # CONFIG_RTC_EXTERNAL is not set # CONFIG_WATCHDOG is not set @@ -825,10 +836,12 @@ CONFIG_RAMMTD_ERASESTATE=0xff # CONFIG_MTD_AT45DB is not set CONFIG_MTD_M25P=y CONFIG_M25P_SPIMODE=0 +CONFIG_M25P_SPIFREQUENCY=20000000 CONFIG_M25P_MANUFACTURER=0x1C CONFIG_M25P_MEMORY_TYPE=0x31 CONFIG_M25P_SUBSECTOR_ERASE=y # CONFIG_MTD_S25FL1 is not set +# CONFIG_MTD_N25QXXX is not set CONFIG_MTD_SMART=y # CONFIG_SMART_DEV_LOOP is not set CONFIG_MTD_SMART_SECTOR_SIZE=512 @@ -841,6 +854,7 @@ CONFIG_MTD_SMART_WEAR_LEVEL=y # CONFIG_MTD_RAMTRON is not set # CONFIG_MTD_SST25 is not set # CONFIG_MTD_SST25XX is not set +# CONFIG_MTD_SST26 is not set # CONFIG_MTD_SST39FV is not set # CONFIG_MTD_W25 is not set # CONFIG_EEPROM is not set @@ -874,10 +888,6 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -931,8 +941,8 @@ CONFIG_CDCACM_EPBULKOUT_HSSIZE=512 CONFIG_CDCACM_EPBULKIN=2 CONFIG_CDCACM_EPBULKIN_FSSIZE=64 CONFIG_CDCACM_EPBULKIN_HSSIZE=512 -CONFIG_CDCACM_NWRREQS=4 CONFIG_CDCACM_NRDREQS=4 +CONFIG_CDCACM_NWRREQS=4 CONFIG_CDCACM_BULKIN_REQLEN=96 CONFIG_CDCACM_RXBUFSIZE=256 CONFIG_CDCACM_TXBUFSIZE=256 @@ -1015,6 +1025,7 @@ CONFIG_NX_LCDDRIVER=y CONFIG_NX_NPLANES=1 CONFIG_NX_BGCOLOR=0x0 # CONFIG_NX_WRITEONLY is not set +# CONFIG_NX_UPDATE is not set # # Supported Pixel Depths @@ -1217,6 +1228,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # CONFIG_NETDB_HOSTFILE is not set @@ -1372,6 +1385,7 @@ CONFIG_FSUTILS_MKSMARTFS=y # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set @@ -1512,6 +1526,7 @@ CONFIG_NXWIDGETS_LISTENERSTACK=2048 # NXWidget Configuration # CONFIG_NXWIDGETS_BPP=16 +# CONFIG_NXWIDGETS_GREYSCALE is not set CONFIG_NXWIDGETS_SIZEOFCHAR=1 # diff --git a/configs/mikroe-stm32f4/kostest/defconfig b/configs/mikroe-stm32f4/kostest/defconfig index 92b18878d6..53c51bc66f 100644 --- a/configs/mikroe-stm32f4/kostest/defconfig +++ b/configs/mikroe-stm32f4/kostest/defconfig @@ -81,6 +81,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -99,6 +100,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -120,6 +122,7 @@ CONFIG_ARCH_CORTEXM4=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -128,6 +131,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y CONFIG_ARCH_HAVE_FPU=y # CONFIG_ARCH_HAVE_DPFPU is not set # CONFIG_ARCH_FPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y CONFIG_ARM_MPU=y CONFIG_ARM_MPU_NREGIONS=8 @@ -139,6 +143,7 @@ CONFIG_ARM_MPU_NREGIONS=8 # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set # CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set @@ -245,6 +250,7 @@ CONFIG_ARMV7M_HAVE_STACKCHECK=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -448,13 +454,17 @@ CONFIG_ARCH_BOARD_STM32_CUSTOM_CLOCKCONFIG=y # ADC Configuration # CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART2_SERIALDRIVER=y +# CONFIG_STM32_USART2_1WIREDRIVER is not set # CONFIG_USART2_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # @@ -722,6 +732,7 @@ CONFIG_SPI_EXCHANGE=y CONFIG_RTC=y CONFIG_RTC_DATETIME=y CONFIG_RTC_ALARM=y +CONFIG_RTC_NALARMS=1 # CONFIG_RTC_DRIVER is not set # CONFIG_RTC_EXTERNAL is not set # CONFIG_WATCHDOG is not set @@ -776,10 +787,12 @@ CONFIG_RAMMTD_ERASESTATE=0xff # CONFIG_MTD_AT45DB is not set CONFIG_MTD_M25P=y CONFIG_M25P_SPIMODE=0 +CONFIG_M25P_SPIFREQUENCY=20000000 CONFIG_M25P_MANUFACTURER=0x1C CONFIG_M25P_MEMORY_TYPE=0x31 CONFIG_M25P_SUBSECTOR_ERASE=y # CONFIG_MTD_S25FL1 is not set +# CONFIG_MTD_N25QXXX is not set CONFIG_MTD_SMART=y # CONFIG_SMART_DEV_LOOP is not set CONFIG_MTD_SMART_SECTOR_SIZE=512 @@ -792,6 +805,7 @@ CONFIG_MTD_SMART_WEAR_LEVEL=y # CONFIG_MTD_RAMTRON is not set # CONFIG_MTD_SST25 is not set # CONFIG_MTD_SST25XX is not set +# CONFIG_MTD_SST26 is not set # CONFIG_MTD_SST39FV is not set # CONFIG_MTD_W25 is not set # CONFIG_EEPROM is not set @@ -825,10 +839,6 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -882,8 +892,8 @@ CONFIG_CDCACM_EPBULKOUT_HSSIZE=512 CONFIG_CDCACM_EPBULKIN=2 CONFIG_CDCACM_EPBULKIN_FSSIZE=64 CONFIG_CDCACM_EPBULKIN_HSSIZE=512 -CONFIG_CDCACM_NWRREQS=4 CONFIG_CDCACM_NRDREQS=4 +CONFIG_CDCACM_NWRREQS=4 CONFIG_CDCACM_BULKIN_REQLEN=96 CONFIG_CDCACM_RXBUFSIZE=256 CONFIG_CDCACM_TXBUFSIZE=256 @@ -1026,6 +1036,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # CONFIG_NETDB_HOSTFILE is not set @@ -1155,6 +1167,7 @@ CONFIG_FSUTILS_MKSMARTFS=y # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/mikroe-stm32f4/nsh/defconfig b/configs/mikroe-stm32f4/nsh/defconfig index 506a161bbb..ed18e9a0b9 100644 --- a/configs/mikroe-stm32f4/nsh/defconfig +++ b/configs/mikroe-stm32f4/nsh/defconfig @@ -76,6 +76,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -94,6 +95,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -115,6 +117,7 @@ CONFIG_ARCH_CORTEXM4=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -123,6 +126,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y CONFIG_ARCH_HAVE_FPU=y # CONFIG_ARCH_HAVE_DPFPU is not set # CONFIG_ARCH_FPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -133,6 +137,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set # CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set @@ -239,6 +244,7 @@ CONFIG_ARMV7M_HAVE_STACKCHECK=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -435,13 +441,17 @@ CONFIG_ARCH_BOARD_STM32_CUSTOM_CLOCKCONFIG=y # CONFIG_STM32_TIM13_CAP is not set # CONFIG_STM32_TIM14_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART2_SERIALDRIVER=y +# CONFIG_STM32_USART2_1WIREDRIVER is not set # CONFIG_USART2_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # @@ -744,10 +754,12 @@ CONFIG_RAMMTD_ERASESTATE=0xff # CONFIG_MTD_AT45DB is not set CONFIG_MTD_M25P=y CONFIG_M25P_SPIMODE=0 +CONFIG_M25P_SPIFREQUENCY=20000000 CONFIG_M25P_MANUFACTURER=0x1C CONFIG_M25P_MEMORY_TYPE=0x31 CONFIG_M25P_SUBSECTOR_ERASE=y # CONFIG_MTD_S25FL1 is not set +# CONFIG_MTD_N25QXXX is not set CONFIG_MTD_SMART=y # CONFIG_SMART_DEV_LOOP is not set CONFIG_MTD_SMART_SECTOR_SIZE=512 @@ -760,6 +772,7 @@ CONFIG_MTD_SMART_WEAR_LEVEL=y # CONFIG_MTD_RAMTRON is not set # CONFIG_MTD_SST25 is not set # CONFIG_MTD_SST25XX is not set +# CONFIG_MTD_SST26 is not set # CONFIG_MTD_SST39FV is not set # CONFIG_MTD_W25 is not set # CONFIG_EEPROM is not set @@ -792,10 +805,6 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -953,6 +962,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # CONFIG_NETDB_HOSTFILE is not set @@ -1086,6 +1097,7 @@ CONFIG_FSUTILS_MKSMARTFS=y # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/mikroe-stm32f4/nx/defconfig b/configs/mikroe-stm32f4/nx/defconfig index bdb7a11c41..e0bd19efdd 100644 --- a/configs/mikroe-stm32f4/nx/defconfig +++ b/configs/mikroe-stm32f4/nx/defconfig @@ -76,6 +76,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -94,6 +95,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -115,6 +117,7 @@ CONFIG_ARCH_CORTEXM4=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -123,6 +126,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y CONFIG_ARCH_HAVE_FPU=y # CONFIG_ARCH_HAVE_DPFPU is not set # CONFIG_ARCH_FPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -133,6 +137,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set # CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set @@ -238,6 +243,7 @@ CONFIG_ARMV7M_HAVE_STACKCHECK=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -790,6 +796,7 @@ CONFIG_NX_LCDDRIVER=y CONFIG_NX_NPLANES=1 CONFIG_NX_BGCOLOR=0x0 # CONFIG_NX_WRITEONLY is not set +# CONFIG_NX_UPDATE is not set # # Supported Pixel Depths @@ -936,6 +943,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # @@ -1066,6 +1075,7 @@ CONFIG_EXAMPLES_NX_TOOLBAR_HEIGHT=16 # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/mikroe-stm32f4/nxlines/defconfig b/configs/mikroe-stm32f4/nxlines/defconfig index f1251731bb..61f68f82d8 100644 --- a/configs/mikroe-stm32f4/nxlines/defconfig +++ b/configs/mikroe-stm32f4/nxlines/defconfig @@ -76,6 +76,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -94,6 +95,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -115,6 +117,7 @@ CONFIG_ARCH_CORTEXM4=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -123,6 +126,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y CONFIG_ARCH_HAVE_FPU=y # CONFIG_ARCH_HAVE_DPFPU is not set # CONFIG_ARCH_FPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -133,6 +137,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set # CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set @@ -238,6 +243,7 @@ CONFIG_ARMV7M_HAVE_STACKCHECK=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -790,6 +796,7 @@ CONFIG_NX_LCDDRIVER=y CONFIG_NX_NPLANES=1 CONFIG_NX_BGCOLOR=0x0 # CONFIG_NX_WRITEONLY is not set +# CONFIG_NX_UPDATE is not set # # Supported Pixel Depths @@ -935,6 +942,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # @@ -1068,6 +1077,7 @@ CONFIG_EXAMPLES_NXLINES_BPP=16 # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/mikroe-stm32f4/nxtext/defconfig b/configs/mikroe-stm32f4/nxtext/defconfig index 7e01d3ae99..06e3ab7ab2 100644 --- a/configs/mikroe-stm32f4/nxtext/defconfig +++ b/configs/mikroe-stm32f4/nxtext/defconfig @@ -76,6 +76,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -94,6 +95,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -115,6 +117,7 @@ CONFIG_ARCH_CORTEXM4=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -123,6 +126,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y CONFIG_ARCH_HAVE_FPU=y # CONFIG_ARCH_HAVE_DPFPU is not set # CONFIG_ARCH_FPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -133,6 +137,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set # CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set @@ -238,6 +243,7 @@ CONFIG_ARMV7M_HAVE_STACKCHECK=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -790,6 +796,7 @@ CONFIG_NX_LCDDRIVER=y CONFIG_NX_NPLANES=1 CONFIG_NX_BGCOLOR=0x0 # CONFIG_NX_WRITEONLY is not set +# CONFIG_NX_UPDATE is not set # # Supported Pixel Depths @@ -935,6 +942,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # @@ -1077,6 +1086,7 @@ CONFIG_EXAMPLES_NXTEXT_DEFAULT_FONT=y # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/mikroe-stm32f4/usbnsh/defconfig b/configs/mikroe-stm32f4/usbnsh/defconfig index 12c9e850a9..ae0211b6ad 100644 --- a/configs/mikroe-stm32f4/usbnsh/defconfig +++ b/configs/mikroe-stm32f4/usbnsh/defconfig @@ -76,6 +76,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -94,6 +95,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -115,6 +117,7 @@ CONFIG_ARCH_CORTEXM4=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -123,6 +126,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y CONFIG_ARCH_HAVE_FPU=y # CONFIG_ARCH_HAVE_DPFPU is not set # CONFIG_ARCH_FPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -133,6 +137,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set # CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set @@ -239,6 +244,7 @@ CONFIG_ARMV7M_HAVE_STACKCHECK=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -435,13 +441,17 @@ CONFIG_ARCH_BOARD_STM32_CUSTOM_CLOCKCONFIG=y # CONFIG_STM32_TIM13_CAP is not set # CONFIG_STM32_TIM14_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART2_SERIALDRIVER=y +# CONFIG_STM32_USART2_1WIREDRIVER is not set # CONFIG_USART2_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # @@ -752,10 +762,12 @@ CONFIG_RAMMTD_ERASESTATE=0xff # CONFIG_MTD_AT45DB is not set CONFIG_MTD_M25P=y CONFIG_M25P_SPIMODE=0 +CONFIG_M25P_SPIFREQUENCY=20000000 CONFIG_M25P_MANUFACTURER=0x1C CONFIG_M25P_MEMORY_TYPE=0x31 CONFIG_M25P_SUBSECTOR_ERASE=y # CONFIG_MTD_S25FL1 is not set +# CONFIG_MTD_N25QXXX is not set CONFIG_MTD_SMART=y # CONFIG_SMART_DEV_LOOP is not set CONFIG_MTD_SMART_SECTOR_SIZE=512 @@ -768,6 +780,7 @@ CONFIG_MTD_SMART_WEAR_LEVEL=y # CONFIG_MTD_RAMTRON is not set # CONFIG_MTD_SST25 is not set # CONFIG_MTD_SST25XX is not set +# CONFIG_MTD_SST26 is not set # CONFIG_MTD_SST39FV is not set # CONFIG_MTD_W25 is not set # CONFIG_EEPROM is not set @@ -801,10 +814,6 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -858,8 +867,8 @@ CONFIG_CDCACM_EPBULKOUT_HSSIZE=512 CONFIG_CDCACM_EPBULKIN=2 CONFIG_CDCACM_EPBULKIN_FSSIZE=64 CONFIG_CDCACM_EPBULKIN_HSSIZE=512 -CONFIG_CDCACM_NWRREQS=4 CONFIG_CDCACM_NRDREQS=4 +CONFIG_CDCACM_NWRREQS=4 CONFIG_CDCACM_BULKIN_REQLEN=96 CONFIG_CDCACM_RXBUFSIZE=256 CONFIG_CDCACM_TXBUFSIZE=256 @@ -1002,6 +1011,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # CONFIG_NETDB_HOSTFILE is not set @@ -1135,6 +1146,7 @@ CONFIG_FSUTILS_MKSMARTFS=y # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/nucleo-f303re/adc/defconfig b/configs/nucleo-f303re/adc/defconfig index 5932a9fe6f..4a26a328f9 100644 --- a/configs/nucleo-f303re/adc/defconfig +++ b/configs/nucleo-f303re/adc/defconfig @@ -76,6 +76,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -94,6 +95,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -115,6 +117,7 @@ CONFIG_ARCH_CORTEXM4=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -123,6 +126,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y CONFIG_ARCH_HAVE_FPU=y # CONFIG_ARCH_HAVE_DPFPU is not set # CONFIG_ARCH_FPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -133,6 +137,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set # CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set @@ -238,6 +243,7 @@ CONFIG_ARCH_CHIP_STM32F303RE=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -805,6 +811,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # @@ -918,6 +926,7 @@ CONFIG_EXAMPLES_ADC_SWTRIG=y # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/nucleo-f303re/can/defconfig b/configs/nucleo-f303re/can/defconfig index df3f7c0a93..3fe7a7e6ff 100644 --- a/configs/nucleo-f303re/can/defconfig +++ b/configs/nucleo-f303re/can/defconfig @@ -76,6 +76,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -94,6 +95,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -115,6 +117,7 @@ CONFIG_ARCH_CORTEXM4=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -123,6 +126,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y CONFIG_ARCH_HAVE_FPU=y # CONFIG_ARCH_HAVE_DPFPU is not set # CONFIG_ARCH_FPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -133,6 +137,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set # CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set @@ -243,6 +248,7 @@ CONFIG_ARCH_CHIP_STM32F303RE=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -807,6 +813,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # @@ -920,6 +928,7 @@ CONFIG_EXAMPLES_CAN_READWRITE=y # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/nucleo-f303re/nxlines/defconfig b/configs/nucleo-f303re/nxlines/defconfig index ddcbc7c5d3..6ea676faa0 100644 --- a/configs/nucleo-f303re/nxlines/defconfig +++ b/configs/nucleo-f303re/nxlines/defconfig @@ -76,6 +76,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -94,6 +95,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -115,6 +117,7 @@ CONFIG_ARCH_CORTEXM4=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -123,6 +126,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y CONFIG_ARCH_HAVE_FPU=y # CONFIG_ARCH_HAVE_DPFPU is not set # CONFIG_ARCH_FPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -133,6 +137,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set # CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set @@ -240,6 +245,7 @@ CONFIG_ARCH_CHIP_STM32F303RE=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -821,6 +827,7 @@ CONFIG_NX_LCDDRIVER=y CONFIG_NX_NPLANES=1 CONFIG_NX_BGCOLOR=0x0 # CONFIG_NX_WRITEONLY is not set +# CONFIG_NX_UPDATE is not set # # Supported Pixel Depths @@ -963,6 +970,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # @@ -989,6 +998,7 @@ CONFIG_LIB_SENDFILE_BUFSIZE=512 # Examples # # CONFIG_EXAMPLES_BUTTONS is not set +# CONFIG_EXAMPLES_CAN is not set # CONFIG_EXAMPLES_CHAT is not set # CONFIG_EXAMPLES_CONFIGDATA is not set # CONFIG_EXAMPLES_CPUHOG is not set @@ -1079,6 +1089,7 @@ CONFIG_EXAMPLES_NXLINES_EXTERNINIT=y # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/nucleo-f303re/pwm/defconfig b/configs/nucleo-f303re/pwm/defconfig index af0ecd9cbc..08973aff2a 100644 --- a/configs/nucleo-f303re/pwm/defconfig +++ b/configs/nucleo-f303re/pwm/defconfig @@ -76,6 +76,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -94,6 +95,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -115,6 +117,7 @@ CONFIG_ARCH_CORTEXM4=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -123,6 +126,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y CONFIG_ARCH_HAVE_FPU=y # CONFIG_ARCH_HAVE_DPFPU is not set # CONFIG_ARCH_FPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -133,6 +137,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set # CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set @@ -238,6 +243,7 @@ CONFIG_ARCH_CHIP_STM32F303RE=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -812,6 +818,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # @@ -933,6 +941,7 @@ CONFIG_EXAMPLES_PWM_CHANNEL2=2 # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/nucleo-f303re/serialrx/defconfig b/configs/nucleo-f303re/serialrx/defconfig index a61dab1965..2203ccbe87 100644 --- a/configs/nucleo-f303re/serialrx/defconfig +++ b/configs/nucleo-f303re/serialrx/defconfig @@ -76,6 +76,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -94,6 +95,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -115,6 +117,7 @@ CONFIG_ARCH_CORTEXM4=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -123,6 +126,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y CONFIG_ARCH_HAVE_FPU=y # CONFIG_ARCH_HAVE_DPFPU is not set # CONFIG_ARCH_FPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -133,6 +137,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set # CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set @@ -239,6 +244,7 @@ CONFIG_ARCH_CHIP_STM32F303RE=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -413,13 +419,17 @@ CONFIG_STM32_JTAG_SW_ENABLE=y # CONFIG_STM32_TIM4_CAP is not set # CONFIG_STM32_TIM8_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_UART4_SERIALDRIVER=y +# CONFIG_STM32_UART4_1WIREDRIVER is not set # CONFIG_UART4_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # CONFIG_STM32_HAVE_RTC_COUNTER is not set # CONFIG_STM32_HAVE_RTC_SUBSECONDS is not set @@ -712,10 +722,6 @@ CONFIG_UART4_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -857,6 +863,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # @@ -974,6 +982,7 @@ CONFIG_EXAMPLES_SERIALRX_PRINTSTR=y # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/nucleo-f4x1re/f401-nsh/defconfig b/configs/nucleo-f4x1re/f401-nsh/defconfig index 08158babad..bdacfd5723 100644 --- a/configs/nucleo-f4x1re/f401-nsh/defconfig +++ b/configs/nucleo-f4x1re/f401-nsh/defconfig @@ -76,6 +76,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -94,6 +95,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -115,6 +117,7 @@ CONFIG_ARCH_CORTEXM4=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -123,6 +126,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y CONFIG_ARCH_HAVE_FPU=y # CONFIG_ARCH_HAVE_DPFPU is not set # CONFIG_ARCH_FPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -133,6 +137,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL=y @@ -239,6 +244,7 @@ CONFIG_ARMV7M_HAVE_STACKCHECK=y # CONFIG_ARCH_CHIP_STM32F373VC is not set CONFIG_ARCH_CHIP_STM32F401RE=y # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -410,13 +416,17 @@ CONFIG_STM32_JTAG_SW_ENABLE=y # CONFIG_STM32_TIM10_CAP is not set # CONFIG_STM32_TIM11_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART2_SERIALDRIVER=y +# CONFIG_STM32_USART2_1WIREDRIVER is not set # CONFIG_USART2_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # CONFIG_STM32_HAVE_RTC_COUNTER is not set # CONFIG_STM32_HAVE_RTC_SUBSECONDS is not set @@ -704,10 +714,6 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -851,6 +857,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # @@ -938,7 +946,6 @@ CONFIG_EXAMPLES_NSH_CXXINITIALIZE=y # CONFIG_EXAMPLES_TIFF is not set # CONFIG_EXAMPLES_TOUCHSCREEN is not set # CONFIG_EXAMPLES_WEBSERVER is not set -# CONFIG_EXAMPLES_USBSERIAL is not set # CONFIG_EXAMPLES_USBTERM is not set # CONFIG_EXAMPLES_WATCHDOG is not set @@ -974,6 +981,7 @@ CONFIG_EXAMPLES_NSH_CXXINITIALIZE=y # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/nucleo-f4x1re/f411-nsh/defconfig b/configs/nucleo-f4x1re/f411-nsh/defconfig index eabffcc9ee..1192acfa94 100644 --- a/configs/nucleo-f4x1re/f411-nsh/defconfig +++ b/configs/nucleo-f4x1re/f411-nsh/defconfig @@ -76,6 +76,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -94,6 +95,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -115,6 +117,7 @@ CONFIG_ARCH_CORTEXM4=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -123,6 +126,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y CONFIG_ARCH_HAVE_FPU=y # CONFIG_ARCH_HAVE_DPFPU is not set # CONFIG_ARCH_FPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -133,6 +137,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL=y @@ -239,6 +244,7 @@ CONFIG_ARMV7M_HAVE_STACKCHECK=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set CONFIG_ARCH_CHIP_STM32F411RE=y +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -412,13 +418,17 @@ CONFIG_STM32_JTAG_SW_ENABLE=y # CONFIG_STM32_TIM10_CAP is not set # CONFIG_STM32_TIM11_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART2_SERIALDRIVER=y +# CONFIG_STM32_USART2_1WIREDRIVER is not set # CONFIG_USART2_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # CONFIG_STM32_HAVE_RTC_COUNTER is not set # CONFIG_STM32_HAVE_RTC_SUBSECONDS is not set @@ -706,10 +716,6 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -853,6 +859,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # @@ -940,7 +948,6 @@ CONFIG_EXAMPLES_NSH_CXXINITIALIZE=y # CONFIG_EXAMPLES_TIFF is not set # CONFIG_EXAMPLES_TOUCHSCREEN is not set # CONFIG_EXAMPLES_WEBSERVER is not set -# CONFIG_EXAMPLES_USBSERIAL is not set # CONFIG_EXAMPLES_USBTERM is not set # CONFIG_EXAMPLES_WATCHDOG is not set @@ -976,6 +983,7 @@ CONFIG_EXAMPLES_NSH_CXXINITIALIZE=y # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/olimex-stm32-h405/usbnsh/defconfig b/configs/olimex-stm32-h405/usbnsh/defconfig index c4eb567066..5ba6d946fc 100644 --- a/configs/olimex-stm32-h405/usbnsh/defconfig +++ b/configs/olimex-stm32-h405/usbnsh/defconfig @@ -76,6 +76,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -94,6 +95,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -115,6 +117,7 @@ CONFIG_ARCH_CORTEXM4=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -123,6 +126,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y CONFIG_ARCH_HAVE_FPU=y # CONFIG_ARCH_HAVE_DPFPU is not set # CONFIG_ARCH_FPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -133,6 +137,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set # CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set @@ -245,6 +250,7 @@ CONFIG_CAN_TSEG2=8 # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set CONFIG_ARCH_CHIP_STM32F405RG=y # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -450,13 +456,17 @@ CONFIG_STM32_ADC1_TIMTRIG=0 # ADC Configuration # CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART3_SERIALDRIVER=y +# CONFIG_STM32_USART3_1WIREDRIVER is not set # CONFIG_USART3_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # CONFIG_STM32_HAVE_RTC_COUNTER is not set # CONFIG_STM32_HAVE_RTC_SUBSECONDS is not set @@ -768,10 +778,6 @@ CONFIG_USART3_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -825,8 +831,8 @@ CONFIG_CDCACM_EPBULKOUT_HSSIZE=512 CONFIG_CDCACM_EPBULKIN=2 CONFIG_CDCACM_EPBULKIN_FSSIZE=64 CONFIG_CDCACM_EPBULKIN_HSSIZE=512 -CONFIG_CDCACM_NWRREQS=4 CONFIG_CDCACM_NRDREQS=4 +CONFIG_CDCACM_NWRREQS=4 CONFIG_CDCACM_BULKIN_REQLEN=96 CONFIG_CDCACM_RXBUFSIZE=256 CONFIG_CDCACM_TXBUFSIZE=256 @@ -954,6 +960,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # @@ -1099,6 +1107,7 @@ CONFIG_EXAMPLES_NSH_CXXINITIALIZE=y # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/olimex-stm32-h407/nsh/defconfig b/configs/olimex-stm32-h407/nsh/defconfig index a06e8ce6f7..808193295b 100644 --- a/configs/olimex-stm32-h407/nsh/defconfig +++ b/configs/olimex-stm32-h407/nsh/defconfig @@ -76,6 +76,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -94,6 +95,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -115,6 +117,7 @@ CONFIG_ARCH_CORTEXM4=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -123,6 +126,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y CONFIG_ARCH_HAVE_FPU=y # CONFIG_ARCH_HAVE_DPFPU is not set # CONFIG_ARCH_FPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -133,6 +137,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set # CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set @@ -239,6 +244,7 @@ CONFIG_ARMV7M_HAVE_STACKCHECK=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -434,13 +440,17 @@ CONFIG_STM32_JTAG_SW_ENABLE=y # CONFIG_STM32_TIM13_CAP is not set # CONFIG_STM32_TIM14_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART2_SERIALDRIVER=y +# CONFIG_STM32_USART2_1WIREDRIVER is not set # CONFIG_USART2_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # CONFIG_STM32_HAVE_RTC_COUNTER is not set # CONFIG_STM32_HAVE_RTC_SUBSECONDS is not set @@ -728,10 +738,6 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -883,6 +889,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # CONFIG_NETDB_HOSTFILE is not set @@ -971,7 +979,6 @@ CONFIG_EXAMPLES_NSH_CXXINITIALIZE=y # CONFIG_EXAMPLES_TIFF is not set # CONFIG_EXAMPLES_TOUCHSCREEN is not set # CONFIG_EXAMPLES_WEBSERVER is not set -# CONFIG_EXAMPLES_USBSERIAL is not set # CONFIG_EXAMPLES_USBTERM is not set # CONFIG_EXAMPLES_WATCHDOG is not set @@ -1009,6 +1016,7 @@ CONFIG_EXAMPLES_NSH_CXXINITIALIZE=y # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/olimex-stm32-p107/nsh/defconfig b/configs/olimex-stm32-p107/nsh/defconfig index fd28530029..6f02ee2d93 100644 --- a/configs/olimex-stm32-p107/nsh/defconfig +++ b/configs/olimex-stm32-p107/nsh/defconfig @@ -76,6 +76,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -94,6 +95,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -115,6 +117,7 @@ CONFIG_ARCH_CORTEXM3=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -122,6 +125,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y # CONFIG_ARMV7M_LAZYFPU is not set # CONFIG_ARCH_HAVE_FPU is not set # CONFIG_ARCH_HAVE_DPFPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -132,6 +136,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL=y @@ -240,6 +245,7 @@ CONFIG_ARCH_CHIP_STM32F107VC=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -409,13 +415,17 @@ CONFIG_STM32_JTAG_FULL_ENABLE=y # CONFIG_STM32_TIM5_CAP is not set # CONFIG_STM32_TIM8_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART2_SERIALDRIVER=y +# CONFIG_STM32_USART2_1WIREDRIVER is not set # CONFIG_USART2_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set CONFIG_STM32_HAVE_RTC_COUNTER=y # CONFIG_STM32_HAVE_RTC_SUBSECONDS is not set @@ -718,10 +728,12 @@ CONFIG_MTD=y # CONFIG_MTD_AT45DB is not set # CONFIG_MTD_M25P is not set # CONFIG_MTD_S25FL1 is not set +# CONFIG_MTD_N25QXXX is not set # CONFIG_MTD_SMART is not set # CONFIG_MTD_RAMTRON is not set # CONFIG_MTD_SST25 is not set # CONFIG_MTD_SST25XX is not set +# CONFIG_MTD_SST26 is not set # CONFIG_MTD_SST39FV is not set # CONFIG_MTD_W25 is not set # CONFIG_EEPROM is not set @@ -795,10 +807,6 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y CONFIG_SERIAL_NPOLLWAITERS=2 @@ -1052,6 +1060,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set CONFIG_LIBC_NETDB=y CONFIG_NETDB_DNSCLIENT=y CONFIG_NETDB_DNSCLIENT_ENTRIES=8 @@ -1140,7 +1150,6 @@ CONFIG_EXAMPLES_NSH=y # CONFIG_EXAMPLES_UDPBLASTER is not set # CONFIG_EXAMPLES_DISCOVER is not set # CONFIG_EXAMPLES_WEBSERVER is not set -# CONFIG_EXAMPLES_USBSERIAL is not set # CONFIG_EXAMPLES_USBTERM is not set # CONFIG_EXAMPLES_WATCHDOG is not set # CONFIG_EXAMPLES_XMLRPC is not set @@ -1179,6 +1188,7 @@ CONFIG_EXAMPLES_NSH=y # CONFIG_NETUTILS_CHAT is not set # CONFIG_NETUTILS_CODECS is not set # CONFIG_NETUTILS_DHCPD is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_FTPD is not set # CONFIG_NETUTILS_JSON is not set diff --git a/configs/olimex-stm32-p207/nsh/defconfig b/configs/olimex-stm32-p207/nsh/defconfig index af96f79417..cd9c9a3aeb 100644 --- a/configs/olimex-stm32-p207/nsh/defconfig +++ b/configs/olimex-stm32-p207/nsh/defconfig @@ -76,6 +76,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -94,6 +95,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -115,6 +117,7 @@ CONFIG_ARCH_CORTEXM3=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -122,6 +125,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y # CONFIG_ARMV7M_LAZYFPU is not set # CONFIG_ARCH_HAVE_FPU is not set # CONFIG_ARCH_HAVE_DPFPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -132,6 +136,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set # CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set @@ -247,6 +252,7 @@ CONFIG_ARCH_CHIP_STM32F207ZE=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -451,13 +457,17 @@ CONFIG_STM32_ADC1_TIMTRIG=0 # ADC Configuration # CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART3_SERIALDRIVER=y +# CONFIG_STM32_USART3_1WIREDRIVER is not set # CONFIG_USART3_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # CONFIG_STM32_HAVE_RTC_COUNTER is not set # CONFIG_STM32_HAVE_RTC_SUBSECONDS is not set @@ -835,10 +845,6 @@ CONFIG_USART3_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -1101,6 +1107,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set CONFIG_LIBC_NETDB=y CONFIG_NETDB_DNSCLIENT=y CONFIG_NETDB_DNSCLIENT_ENTRIES=8 @@ -1163,6 +1171,7 @@ CONFIG_EXAMPLES_BUTTONS_NAME4="Button 4" CONFIG_EXAMPLES_BUTTONS_NAME5="Button 5" CONFIG_EXAMPLES_BUTTONS_NAME6="Button 6" CONFIG_EXAMPLES_BUTTONS_NAME7="Button 7" +# CONFIG_EXAMPLES_CAN is not set # CONFIG_EXAMPLES_CHAT is not set # CONFIG_EXAMPLES_CONFIGDATA is not set # CONFIG_EXAMPLES_CPUHOG is not set @@ -1253,6 +1262,7 @@ CONFIG_EXAMPLES_NSH_CXXINITIALIZE=y # # CONFIG_NETUTILS_CODECS is not set # CONFIG_NETUTILS_DHCPD is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/olimexino-stm32/can/defconfig b/configs/olimexino-stm32/can/defconfig index acc1ef42ea..866967575e 100644 --- a/configs/olimexino-stm32/can/defconfig +++ b/configs/olimexino-stm32/can/defconfig @@ -76,6 +76,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -94,6 +95,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -115,6 +117,7 @@ CONFIG_ARCH_CORTEXM3=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y CONFIG_ARMV7M_USEBASEPRI=y CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -122,6 +125,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y # CONFIG_ARMV7M_LAZYFPU is not set # CONFIG_ARCH_HAVE_FPU is not set # CONFIG_ARCH_HAVE_DPFPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -132,6 +136,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL=y @@ -243,6 +248,7 @@ CONFIG_ARCH_CHIP_STM32F103RB=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -431,13 +437,17 @@ CONFIG_STM32_FORCEPOWER=y # ADC Configuration # CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART1_SERIALDRIVER=y +# CONFIG_STM32_USART1_1WIREDRIVER is not set # CONFIG_USART1_RS485 is not set CONFIG_SERIAL_DISABLE_REORDERING=y CONFIG_STM32_FLOWCONTROL_BROKEN=y +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # @@ -765,10 +775,6 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y CONFIG_SERIAL_NPOLLWAITERS=2 @@ -923,6 +929,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=0 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # CONFIG_NETDB_HOSTFILE is not set @@ -957,6 +965,7 @@ CONFIG_BUILTIN_PROXY_STACKSIZE=768 # # CAN Utilities # +# CONFIG_CANUTILS_LIBCANARD is not set # # Examples @@ -1058,6 +1067,7 @@ CONFIG_EXAMPLES_NSH=y # # CONFIG_NETUTILS_CHAT is not set # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/olimexino-stm32/composite/defconfig b/configs/olimexino-stm32/composite/defconfig index 3403023d02..bb7055ac68 100644 --- a/configs/olimexino-stm32/composite/defconfig +++ b/configs/olimexino-stm32/composite/defconfig @@ -76,6 +76,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -94,6 +95,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -115,6 +117,7 @@ CONFIG_ARCH_CORTEXM3=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y CONFIG_ARMV7M_USEBASEPRI=y CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -122,6 +125,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y # CONFIG_ARMV7M_LAZYFPU is not set # CONFIG_ARCH_HAVE_FPU is not set # CONFIG_ARCH_HAVE_DPFPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -132,6 +136,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL=y @@ -238,6 +243,7 @@ CONFIG_ARCH_CHIP_STM32F103RB=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -426,16 +432,22 @@ CONFIG_STM32_DMACAPABLE=y # # CONFIG_STM32_ADC1_DMA is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART1_SERIALDRIVER=y +# CONFIG_STM32_USART1_1WIREDRIVER is not set # CONFIG_USART1_RS485 is not set # CONFIG_USART1_RXDMA is not set +CONFIG_STM32_USART2_SERIALDRIVER=y +# CONFIG_STM32_USART2_1WIREDRIVER is not set # CONFIG_USART2_RS485 is not set # CONFIG_USART2_RXDMA is not set CONFIG_SERIAL_DISABLE_REORDERING=y CONFIG_STM32_FLOWCONTROL_BROKEN=y +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # @@ -767,10 +779,6 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y CONFIG_SERIAL_NPOLLWAITERS=2 @@ -851,8 +859,8 @@ CONFIG_CDCACM_EPBULKOUT_HSSIZE=64 CONFIG_CDCACM_EPBULKIN=2 CONFIG_CDCACM_EPBULKIN_FSSIZE=64 CONFIG_CDCACM_EPBULKIN_HSSIZE=64 -CONFIG_CDCACM_NWRREQS=2 CONFIG_CDCACM_NRDREQS=2 +CONFIG_CDCACM_NWRREQS=2 CONFIG_CDCACM_BULKIN_REQLEN=96 CONFIG_CDCACM_RXBUFSIZE=96 CONFIG_CDCACM_TXBUFSIZE=96 @@ -1009,6 +1017,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=0 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # CONFIG_NETDB_HOSTFILE is not set @@ -1043,7 +1053,7 @@ CONFIG_BUILTIN_PROXY_STACKSIZE=768 # # CAN Utilities # -# CONFIG_CANUTILS_UAVCAN is not set +# CONFIG_CANUTILS_LIBUAVCAN is not set # # Examples @@ -1151,6 +1161,7 @@ CONFIG_EXAMPLES_NSH=y # # CONFIG_NETUTILS_CHAT is not set # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/olimexino-stm32/nsh/defconfig b/configs/olimexino-stm32/nsh/defconfig index b0c9ae6873..bff7b46119 100644 --- a/configs/olimexino-stm32/nsh/defconfig +++ b/configs/olimexino-stm32/nsh/defconfig @@ -76,6 +76,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -94,6 +95,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -115,6 +117,7 @@ CONFIG_ARCH_CORTEXM3=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y CONFIG_ARMV7M_USEBASEPRI=y CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -122,6 +125,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y # CONFIG_ARMV7M_LAZYFPU is not set # CONFIG_ARCH_HAVE_FPU is not set # CONFIG_ARCH_HAVE_DPFPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -132,6 +136,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL=y @@ -238,6 +243,7 @@ CONFIG_ARCH_CHIP_STM32F103RB=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -426,16 +432,22 @@ CONFIG_STM32_DMACAPABLE=y # # CONFIG_STM32_ADC1_DMA is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART1_SERIALDRIVER=y +# CONFIG_STM32_USART1_1WIREDRIVER is not set # CONFIG_USART1_RS485 is not set # CONFIG_USART1_RXDMA is not set +CONFIG_STM32_USART2_SERIALDRIVER=y +# CONFIG_STM32_USART2_1WIREDRIVER is not set # CONFIG_USART2_RS485 is not set # CONFIG_USART2_RXDMA is not set CONFIG_SERIAL_DISABLE_REORDERING=y CONFIG_STM32_FLOWCONTROL_BROKEN=y +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # @@ -765,10 +777,6 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y CONFIG_SERIAL_NPOLLWAITERS=2 @@ -937,6 +945,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=0 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # CONFIG_NETDB_HOSTFILE is not set @@ -971,7 +981,7 @@ CONFIG_BUILTIN_PROXY_STACKSIZE=768 # # CAN Utilities # -# CONFIG_CANUTILS_UAVCAN is not set +# CONFIG_CANUTILS_LIBUAVCAN is not set # # Examples @@ -1079,6 +1089,7 @@ CONFIG_EXAMPLES_NSH=y # # CONFIG_NETUTILS_CHAT is not set # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/olimexino-stm32/smallnsh/defconfig b/configs/olimexino-stm32/smallnsh/defconfig index aa6998750a..1429b4c2b4 100644 --- a/configs/olimexino-stm32/smallnsh/defconfig +++ b/configs/olimexino-stm32/smallnsh/defconfig @@ -76,6 +76,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -94,6 +95,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -115,6 +117,7 @@ CONFIG_ARCH_CORTEXM3=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y CONFIG_ARMV7M_USEBASEPRI=y CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -122,6 +125,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y # CONFIG_ARMV7M_LAZYFPU is not set # CONFIG_ARCH_HAVE_FPU is not set # CONFIG_ARCH_HAVE_DPFPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -132,6 +136,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL=y @@ -243,6 +248,7 @@ CONFIG_ARCH_CHIP_STM32F103RB=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -423,13 +429,17 @@ CONFIG_STM32_FORCEPOWER=y # CONFIG_STM32_TIM5_CAP is not set # CONFIG_STM32_TIM8_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART1_SERIALDRIVER=y +# CONFIG_STM32_USART1_1WIREDRIVER is not set # CONFIG_USART1_RS485 is not set CONFIG_SERIAL_DISABLE_REORDERING=y # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # @@ -743,10 +753,6 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y CONFIG_SERIAL_NPOLLWAITERS=2 @@ -891,6 +897,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=0 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # @@ -924,6 +932,7 @@ CONFIG_BUILTIN_PROXY_STACKSIZE=768 # # CAN Utilities # +# CONFIG_CANUTILS_LIBCANARD is not set # # Examples @@ -1020,6 +1029,7 @@ CONFIG_EXAMPLES_NSH=y # # CONFIG_NETUTILS_CHAT is not set # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/olimexino-stm32/tiny/defconfig b/configs/olimexino-stm32/tiny/defconfig index 2863be3880..4fe4bb5a90 100644 --- a/configs/olimexino-stm32/tiny/defconfig +++ b/configs/olimexino-stm32/tiny/defconfig @@ -76,6 +76,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -94,6 +95,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -115,6 +117,7 @@ CONFIG_ARCH_CORTEXM3=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y CONFIG_ARMV7M_USEBASEPRI=y CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -122,6 +125,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y # CONFIG_ARMV7M_LAZYFPU is not set # CONFIG_ARCH_HAVE_FPU is not set # CONFIG_ARCH_HAVE_DPFPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -132,6 +136,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL=y @@ -243,6 +248,7 @@ CONFIG_ARCH_CHIP_STM32F103RB=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -423,13 +429,17 @@ CONFIG_STM32_FORCEPOWER=y # CONFIG_STM32_TIM5_CAP is not set # CONFIG_STM32_TIM8_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART1_SERIALDRIVER=y +# CONFIG_STM32_USART1_1WIREDRIVER is not set # CONFIG_USART1_RS485 is not set CONFIG_SERIAL_DISABLE_REORDERING=y CONFIG_STM32_FLOWCONTROL_BROKEN=y +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # @@ -747,10 +757,6 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set # CONFIG_SERIAL_OFLOWCONTROL is not set @@ -888,6 +894,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=0 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # @@ -921,6 +929,7 @@ CONFIG_BUILTIN_PROXY_STACKSIZE=768 # # CAN Utilities # +# CONFIG_CANUTILS_LIBCANARD is not set # # Examples @@ -1016,6 +1025,7 @@ CONFIG_EXAMPLES_CAN_READWRITE=y # # CONFIG_NETUTILS_CHAT is not set # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/shenzhou/nsh/defconfig b/configs/shenzhou/nsh/defconfig index 8e63767f22..3ae18ae27e 100644 --- a/configs/shenzhou/nsh/defconfig +++ b/configs/shenzhou/nsh/defconfig @@ -76,6 +76,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -94,6 +95,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -115,6 +117,7 @@ CONFIG_ARCH_CORTEXM3=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -122,6 +125,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y # CONFIG_ARMV7M_LAZYFPU is not set # CONFIG_ARCH_HAVE_FPU is not set # CONFIG_ARCH_HAVE_DPFPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -132,6 +136,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set # CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set @@ -238,6 +243,7 @@ CONFIG_ARCH_CHIP_STM32F107VC=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -409,13 +415,17 @@ CONFIG_STM32_JTAG_FULL_ENABLE=y # CONFIG_STM32_TIM5_CAP is not set # CONFIG_STM32_TIM8_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART2_SERIALDRIVER=y +# CONFIG_STM32_USART2_1WIREDRIVER is not set # CONFIG_USART2_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # @@ -796,10 +806,6 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -1061,6 +1067,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set CONFIG_LIBC_NETDB=y # CONFIG_NETDB_HOSTFILE is not set CONFIG_NETDB_DNSCLIENT=y @@ -1199,6 +1207,7 @@ CONFIG_EXAMPLES_NSH=y # # CONFIG_NETUTILS_CODECS is not set # CONFIG_NETUTILS_DHCPD is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/shenzhou/nxwm/defconfig b/configs/shenzhou/nxwm/defconfig index 99442a110a..a59049abed 100644 --- a/configs/shenzhou/nxwm/defconfig +++ b/configs/shenzhou/nxwm/defconfig @@ -80,6 +80,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -98,6 +99,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -119,6 +121,7 @@ CONFIG_ARCH_CORTEXM3=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -126,6 +129,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y # CONFIG_ARMV7M_LAZYFPU is not set # CONFIG_ARCH_HAVE_FPU is not set # CONFIG_ARCH_HAVE_DPFPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -136,6 +140,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARW is not set # CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDW is not set @@ -246,6 +251,7 @@ CONFIG_ARCH_CHIP_STM32F107VC=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -417,13 +423,17 @@ CONFIG_STM32_JTAG_FULL_ENABLE=y # CONFIG_STM32_TIM5_CAP is not set # CONFIG_STM32_TIM8_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART2_SERIALDRIVER=y +# CONFIG_STM32_USART2_1WIREDRIVER is not set # CONFIG_USART2_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # @@ -865,10 +875,6 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -1063,6 +1069,7 @@ CONFIG_NX_LCDDRIVER=y CONFIG_NX_NPLANES=1 CONFIG_NX_BGCOLOR=0x0 CONFIG_NX_WRITEONLY=y +# CONFIG_NX_UPDATE is not set # # Supported Pixel Depths @@ -1229,6 +1236,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set CONFIG_LIBC_NETDB=y CONFIG_NETDB_DNSCLIENT=y CONFIG_NETDB_DNSCLIENT_ENTRIES=4 @@ -1359,6 +1368,7 @@ CONFIG_HAVE_CXXINITIALIZE=y # # CONFIG_NETUTILS_CODECS is not set # CONFIG_NETUTILS_DHCPD is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set @@ -1527,6 +1537,7 @@ CONFIG_NXWIDGETS_LISTENERSTACK=1596 # NXWidget Configuration # CONFIG_NXWIDGETS_BPP=16 +# CONFIG_NXWIDGETS_GREYSCALE is not set CONFIG_NXWIDGETS_SIZEOFCHAR=1 # diff --git a/configs/shenzhou/thttpd/defconfig b/configs/shenzhou/thttpd/defconfig index 916a8502d3..89c3735931 100644 --- a/configs/shenzhou/thttpd/defconfig +++ b/configs/shenzhou/thttpd/defconfig @@ -103,6 +103,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -121,6 +122,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -142,6 +144,7 @@ CONFIG_ARCH_CORTEXM3=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -149,6 +152,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y # CONFIG_ARMV7M_LAZYFPU is not set # CONFIG_ARCH_HAVE_FPU is not set # CONFIG_ARCH_HAVE_DPFPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set # CONFIG_DEBUG_HARDFAULT is not set @@ -160,6 +164,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set # CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set @@ -267,6 +272,7 @@ CONFIG_ARCH_CHIP_STM32F107VC=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -438,13 +444,17 @@ CONFIG_STM32_JTAG_FULL_ENABLE=y # CONFIG_STM32_TIM5_CAP is not set # CONFIG_STM32_TIM8_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART2_SERIALDRIVER=y +# CONFIG_STM32_USART2_1WIREDRIVER is not set # CONFIG_USART2_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # @@ -762,10 +772,12 @@ CONFIG_MTD=y # CONFIG_MTD_AT45DB is not set # CONFIG_MTD_M25P is not set # CONFIG_MTD_S25FL1 is not set +# CONFIG_MTD_N25QXXX is not set # CONFIG_MTD_SMART is not set # CONFIG_MTD_RAMTRON is not set # CONFIG_MTD_SST25 is not set # CONFIG_MTD_SST25XX is not set +# CONFIG_MTD_SST26 is not set # CONFIG_MTD_SST39FV is not set CONFIG_MTD_W25=y CONFIG_W25_SPIMODE=0 @@ -848,10 +860,6 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y CONFIG_SERIAL_NPOLLWAITERS=2 @@ -1116,6 +1124,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set CONFIG_LIBC_NETDB=y # CONFIG_NETDB_HOSTFILE is not set CONFIG_NETDB_DNSCLIENT=y @@ -1264,6 +1274,7 @@ CONFIG_EXAMPLES_THTTPD_NETMASK=0xffffff00 # CONFIG_NETUTILS_CODECS is not set # CONFIG_NETUTILS_DHCPC is not set # CONFIG_NETUTILS_DHCPD is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_FTPD is not set # CONFIG_NETUTILS_JSON is not set diff --git a/configs/spark/composite/defconfig b/configs/spark/composite/defconfig index 58cc681e27..0db4b8554e 100644 --- a/configs/spark/composite/defconfig +++ b/configs/spark/composite/defconfig @@ -76,6 +76,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -94,6 +95,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -115,6 +117,7 @@ CONFIG_ARCH_CORTEXM3=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -122,6 +125,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y # CONFIG_ARMV7M_LAZYFPU is not set # CONFIG_ARCH_HAVE_FPU is not set # CONFIG_ARCH_HAVE_DPFPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -132,6 +136,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL=y @@ -238,6 +243,7 @@ CONFIG_ARCH_CHIP_STM32F103CB=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -407,14 +413,18 @@ CONFIG_STM32_DISABLE_IDLE_SLEEP_DURING_DEBUG=y # CONFIG_STM32_TIM5_CAP is not set # CONFIG_STM32_TIM8_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART2_SERIALDRIVER=y +# CONFIG_STM32_USART2_1WIREDRIVER is not set # CONFIG_USART2_RS485 is not set # CONFIG_USART2_RXDMA is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # @@ -710,6 +720,7 @@ CONFIG_MTD_BYTE_WRITE=y # CONFIG_MTD_AT45DB is not set # CONFIG_MTD_M25P is not set # CONFIG_MTD_S25FL1 is not set +# CONFIG_MTD_N25QXXX is not set # CONFIG_MTD_SMART is not set # CONFIG_MTD_RAMTRON is not set CONFIG_MTD_SST25=y @@ -720,6 +731,7 @@ CONFIG_SST25_SECTOR512=y # CONFIG_SST25_SLOWWRITE is not set # CONFIG_SST25_SLOWREAD is not set # CONFIG_MTD_SST25XX is not set +# CONFIG_MTD_SST26 is not set # CONFIG_MTD_SST39FV is not set # CONFIG_MTD_W25 is not set # CONFIG_EEPROM is not set @@ -754,10 +766,6 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -794,7 +802,6 @@ CONFIG_USBDEV_MAXPOWER=100 # CONFIG_ARCH_USBDEV_STALLQUEUE is not set CONFIG_USBDEV_TRACE=y CONFIG_USBDEV_TRACE_NRECORDS=32 -CONFIG_USBDEV_TRACE_STRINGS=y # CONFIG_USBDEV_TRACE_INITIALIDSET is not set # @@ -826,8 +833,8 @@ CONFIG_CDCACM_EPBULKOUT_HSSIZE=64 CONFIG_CDCACM_EPBULKIN=2 CONFIG_CDCACM_EPBULKIN_FSSIZE=64 CONFIG_CDCACM_EPBULKIN_HSSIZE=64 -CONFIG_CDCACM_NWRREQS=2 CONFIG_CDCACM_NRDREQS=2 +CONFIG_CDCACM_NWRREQS=2 CONFIG_CDCACM_BULKIN_REQLEN=96 CONFIG_CDCACM_RXBUFSIZE=96 CONFIG_CDCACM_TXBUFSIZE=96 @@ -1001,6 +1008,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=0 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # CONFIG_NETDB_HOSTFILE is not set @@ -1122,6 +1131,7 @@ CONFIG_EXAMPLES_NSH=y # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/spark/nsh/defconfig b/configs/spark/nsh/defconfig index 8ca981562b..a5f8963ab4 100644 --- a/configs/spark/nsh/defconfig +++ b/configs/spark/nsh/defconfig @@ -76,6 +76,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -94,6 +95,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -115,6 +117,7 @@ CONFIG_ARCH_CORTEXM3=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -122,6 +125,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y # CONFIG_ARMV7M_LAZYFPU is not set # CONFIG_ARCH_HAVE_FPU is not set # CONFIG_ARCH_HAVE_DPFPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -132,6 +136,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL=y @@ -238,6 +243,7 @@ CONFIG_ARCH_CHIP_STM32F103CB=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -407,14 +413,18 @@ CONFIG_STM32_DISABLE_IDLE_SLEEP_DURING_DEBUG=y # CONFIG_STM32_TIM5_CAP is not set # CONFIG_STM32_TIM8_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART2_SERIALDRIVER=y +# CONFIG_STM32_USART2_1WIREDRIVER is not set # CONFIG_USART2_RS485 is not set # CONFIG_USART2_RXDMA is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # @@ -529,6 +539,7 @@ CONFIG_SPARK_FLASH_MINOR=0 CONFIG_LIB_BOARDCTL=y # CONFIG_BOARDCTL_RESET is not set # CONFIG_BOARDCTL_UNIQUEID is not set +# CONFIG_BOARDCTL_USBDEVCTRL is not set # CONFIG_BOARDCTL_TSCTEST is not set # CONFIG_BOARDCTL_ADCTEST is not set # CONFIG_BOARDCTL_PWMTEST is not set @@ -709,6 +720,7 @@ CONFIG_MTD_BYTE_WRITE=y # CONFIG_MTD_AT45DB is not set # CONFIG_MTD_M25P is not set # CONFIG_MTD_S25FL1 is not set +# CONFIG_MTD_N25QXXX is not set # CONFIG_MTD_SMART is not set # CONFIG_MTD_RAMTRON is not set CONFIG_MTD_SST25=y @@ -719,6 +731,7 @@ CONFIG_SST25_SECTOR512=y # CONFIG_SST25_SLOWWRITE is not set # CONFIG_SST25_SLOWREAD is not set # CONFIG_MTD_SST25XX is not set +# CONFIG_MTD_SST26 is not set # CONFIG_MTD_SST39FV is not set # CONFIG_MTD_W25 is not set # CONFIG_EEPROM is not set @@ -753,10 +766,6 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -793,7 +802,6 @@ CONFIG_USBDEV_MAXPOWER=100 # CONFIG_ARCH_USBDEV_STALLQUEUE is not set CONFIG_USBDEV_TRACE=y CONFIG_USBDEV_TRACE_NRECORDS=32 -# CONFIG_USBDEV_TRACE_STRINGS is not set # CONFIG_USBDEV_TRACE_INITIALIDSET is not set # @@ -825,8 +833,8 @@ CONFIG_CDCACM_EPBULKOUT_HSSIZE=512 CONFIG_CDCACM_EPBULKIN=2 CONFIG_CDCACM_EPBULKIN_FSSIZE=64 CONFIG_CDCACM_EPBULKIN_HSSIZE=512 -CONFIG_CDCACM_NWRREQS=4 CONFIG_CDCACM_NRDREQS=4 +CONFIG_CDCACM_NWRREQS=4 CONFIG_CDCACM_BULKIN_REQLEN=100 CONFIG_CDCACM_RXBUFSIZE=100 CONFIG_CDCACM_TXBUFSIZE=80 @@ -1000,6 +1008,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=0 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # CONFIG_NETDB_HOSTFILE is not set @@ -1121,6 +1131,7 @@ CONFIG_EXAMPLES_NSH=y # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/spark/usbmsc/defconfig b/configs/spark/usbmsc/defconfig index 67c57e2c13..ae97bcd86c 100644 --- a/configs/spark/usbmsc/defconfig +++ b/configs/spark/usbmsc/defconfig @@ -76,6 +76,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -94,6 +95,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -115,6 +117,7 @@ CONFIG_ARCH_CORTEXM3=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -122,6 +125,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y # CONFIG_ARMV7M_LAZYFPU is not set # CONFIG_ARCH_HAVE_FPU is not set # CONFIG_ARCH_HAVE_DPFPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -132,6 +136,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL=y @@ -238,6 +243,7 @@ CONFIG_ARCH_CHIP_STM32F103CB=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -407,14 +413,18 @@ CONFIG_STM32_DISABLE_IDLE_SLEEP_DURING_DEBUG=y # CONFIG_STM32_TIM5_CAP is not set # CONFIG_STM32_TIM8_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART2_SERIALDRIVER=y +# CONFIG_STM32_USART2_1WIREDRIVER is not set # CONFIG_USART2_RS485 is not set # CONFIG_USART2_RXDMA is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # @@ -710,6 +720,7 @@ CONFIG_MTD_BYTE_WRITE=y # CONFIG_MTD_AT45DB is not set # CONFIG_MTD_M25P is not set # CONFIG_MTD_S25FL1 is not set +# CONFIG_MTD_N25QXXX is not set # CONFIG_MTD_SMART is not set # CONFIG_MTD_RAMTRON is not set CONFIG_MTD_SST25=y @@ -720,6 +731,7 @@ CONFIG_SST25_SECTOR512=y # CONFIG_SST25_SLOWWRITE is not set # CONFIG_SST25_SLOWREAD is not set # CONFIG_MTD_SST25XX is not set +# CONFIG_MTD_SST26 is not set # CONFIG_MTD_SST39FV is not set # CONFIG_MTD_W25 is not set # CONFIG_EEPROM is not set @@ -753,10 +765,6 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -793,7 +801,6 @@ CONFIG_USBDEV_MAXPOWER=100 # CONFIG_ARCH_USBDEV_STALLQUEUE is not set CONFIG_USBDEV_TRACE=y CONFIG_USBDEV_TRACE_NRECORDS=32 -CONFIG_USBDEV_TRACE_STRINGS=y # CONFIG_USBDEV_TRACE_INITIALIDSET is not set # @@ -965,6 +972,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=0 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # CONFIG_NETDB_HOSTFILE is not set @@ -1086,6 +1095,7 @@ CONFIG_EXAMPLES_NSH=y # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/spark/usbnsh/defconfig b/configs/spark/usbnsh/defconfig index 19fed07df8..5c7f49052d 100644 --- a/configs/spark/usbnsh/defconfig +++ b/configs/spark/usbnsh/defconfig @@ -76,6 +76,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -94,6 +95,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -115,6 +117,7 @@ CONFIG_ARCH_CORTEXM3=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -122,6 +125,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y # CONFIG_ARMV7M_LAZYFPU is not set # CONFIG_ARCH_HAVE_FPU is not set # CONFIG_ARCH_HAVE_DPFPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -132,6 +136,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL=y @@ -238,6 +243,7 @@ CONFIG_ARCH_CHIP_STM32F103CB=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -407,14 +413,18 @@ CONFIG_STM32_DISABLE_IDLE_SLEEP_DURING_DEBUG=y # CONFIG_STM32_TIM5_CAP is not set # CONFIG_STM32_TIM8_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART2_SERIALDRIVER=y +# CONFIG_STM32_USART2_1WIREDRIVER is not set # CONFIG_USART2_RS485 is not set # CONFIG_USART2_RXDMA is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # @@ -526,7 +536,14 @@ CONFIG_SPARK_FLASH_SPI=2 CONFIG_SPARK_FLASH_MINOR=0 # CONFIG_SPARK_FLASH_PART is not set CONFIG_LIB_BOARDCTL=y +# CONFIG_BOARDCTL_RESET is not set +# CONFIG_BOARDCTL_UNIQUEID is not set CONFIG_BOARDCTL_USBDEVCTRL=y +# CONFIG_BOARDCTL_TSCTEST is not set +# CONFIG_BOARDCTL_ADCTEST is not set +# CONFIG_BOARDCTL_PWMTEST is not set +# CONFIG_BOARDCTL_GRAPHICS is not set +# CONFIG_BOARDCTL_IOCTL is not set # # RTOS Features @@ -704,6 +721,7 @@ CONFIG_MTD_BYTE_WRITE=y # CONFIG_MTD_AT45DB is not set # CONFIG_MTD_M25P is not set # CONFIG_MTD_S25FL1 is not set +# CONFIG_MTD_N25QXXX is not set # CONFIG_MTD_SMART is not set # CONFIG_MTD_RAMTRON is not set CONFIG_MTD_SST25=y @@ -714,6 +732,7 @@ CONFIG_SST25_SPIFREQUENCY=20000000 # CONFIG_SST25_SLOWWRITE is not set # CONFIG_SST25_SLOWREAD is not set # CONFIG_MTD_SST25XX is not set +# CONFIG_MTD_SST26 is not set # CONFIG_MTD_SST39FV is not set # CONFIG_MTD_W25 is not set # CONFIG_EEPROM is not set @@ -747,10 +766,6 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -787,7 +802,6 @@ CONFIG_USBDEV_MAXPOWER=100 # CONFIG_ARCH_USBDEV_STALLQUEUE is not set CONFIG_USBDEV_TRACE=y CONFIG_USBDEV_TRACE_NRECORDS=32 -# CONFIG_USBDEV_TRACE_STRINGS is not set # CONFIG_USBDEV_TRACE_INITIALIDSET is not set # @@ -807,8 +821,8 @@ CONFIG_CDCACM_EPBULKOUT_HSSIZE=512 CONFIG_CDCACM_EPBULKIN=2 CONFIG_CDCACM_EPBULKIN_FSSIZE=64 CONFIG_CDCACM_EPBULKIN_HSSIZE=512 -CONFIG_CDCACM_NWRREQS=4 CONFIG_CDCACM_NRDREQS=4 +CONFIG_CDCACM_NWRREQS=4 CONFIG_CDCACM_BULKIN_REQLEN=96 CONFIG_CDCACM_RXBUFSIZE=256 CONFIG_CDCACM_TXBUFSIZE=256 @@ -944,6 +958,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # CONFIG_NETDB_HOSTFILE is not set @@ -1060,6 +1076,7 @@ CONFIG_EXAMPLES_NSH=y # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/spark/usbserial/defconfig b/configs/spark/usbserial/defconfig index 10d28c0afd..aba09edc98 100644 --- a/configs/spark/usbserial/defconfig +++ b/configs/spark/usbserial/defconfig @@ -76,6 +76,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -94,6 +95,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -115,6 +117,7 @@ CONFIG_ARCH_CORTEXM3=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -122,6 +125,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y # CONFIG_ARMV7M_LAZYFPU is not set # CONFIG_ARCH_HAVE_FPU is not set # CONFIG_ARCH_HAVE_DPFPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -132,6 +136,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL=y @@ -238,6 +243,7 @@ CONFIG_ARCH_CHIP_STM32F103CB=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -407,14 +413,18 @@ CONFIG_STM32_DISABLE_IDLE_SLEEP_DURING_DEBUG=y # CONFIG_STM32_TIM5_CAP is not set # CONFIG_STM32_TIM8_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART2_SERIALDRIVER=y +# CONFIG_STM32_USART2_1WIREDRIVER is not set # CONFIG_USART2_RS485 is not set # CONFIG_USART2_RXDMA is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # @@ -526,7 +536,14 @@ CONFIG_SPARK_FLASH_SPI=2 CONFIG_SPARK_FLASH_MINOR=0 # CONFIG_SPARK_FLASH_PART is not set CONFIG_LIB_BOARDCTL=y +# CONFIG_BOARDCTL_RESET is not set +# CONFIG_BOARDCTL_UNIQUEID is not set CONFIG_BOARDCTL_USBDEVCTRL=y +# CONFIG_BOARDCTL_TSCTEST is not set +# CONFIG_BOARDCTL_ADCTEST is not set +# CONFIG_BOARDCTL_PWMTEST is not set +# CONFIG_BOARDCTL_GRAPHICS is not set +# CONFIG_BOARDCTL_IOCTL is not set # # RTOS Features @@ -707,6 +724,7 @@ CONFIG_MTD_BYTE_WRITE=y # CONFIG_MTD_AT45DB is not set # CONFIG_MTD_M25P is not set # CONFIG_MTD_S25FL1 is not set +# CONFIG_MTD_N25QXXX is not set # CONFIG_MTD_SMART is not set # CONFIG_MTD_RAMTRON is not set CONFIG_MTD_SST25=y @@ -717,6 +735,7 @@ CONFIG_SST25_SECTOR512=y # CONFIG_SST25_SLOWWRITE is not set # CONFIG_SST25_SLOWREAD is not set # CONFIG_MTD_SST25XX is not set +# CONFIG_MTD_SST26 is not set # CONFIG_MTD_SST39FV is not set # CONFIG_MTD_W25 is not set # CONFIG_EEPROM is not set @@ -751,10 +770,6 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -791,7 +806,6 @@ CONFIG_USBDEV_MAXPOWER=100 # CONFIG_ARCH_USBDEV_STALLQUEUE is not set CONFIG_USBDEV_TRACE=y CONFIG_USBDEV_TRACE_NRECORDS=32 -CONFIG_USBDEV_TRACE_STRINGS=y # CONFIG_USBDEV_TRACE_INITIALIDSET is not set # @@ -811,8 +825,8 @@ CONFIG_CDCACM_EPBULKOUT_HSSIZE=64 CONFIG_CDCACM_EPBULKIN=2 CONFIG_CDCACM_EPBULKIN_FSSIZE=64 CONFIG_CDCACM_EPBULKIN_HSSIZE=64 -CONFIG_CDCACM_NWRREQS=4 CONFIG_CDCACM_NRDREQS=4 +CONFIG_CDCACM_NWRREQS=4 CONFIG_CDCACM_BULKIN_REQLEN=96 CONFIG_CDCACM_RXBUFSIZE=40 CONFIG_CDCACM_TXBUFSIZE=40 @@ -968,6 +982,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=0 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # CONFIG_NETDB_HOSTFILE is not set @@ -1095,6 +1111,7 @@ CONFIG_EXAMPLES_USBSERIAL_TRACEINTERRUPTS=y # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/stm3210e-eval/buttons/defconfig b/configs/stm3210e-eval/buttons/defconfig index 79afddd8b7..11783f5652 100644 --- a/configs/stm3210e-eval/buttons/defconfig +++ b/configs/stm3210e-eval/buttons/defconfig @@ -121,6 +121,7 @@ CONFIG_ARCH_CORTEXM3=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -139,6 +140,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARW is not set # CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDW is not set @@ -249,6 +251,7 @@ CONFIG_ARCH_CHIP_STM32F103ZE=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -421,14 +424,20 @@ CONFIG_STM32_JTAG_FULL_ENABLE=y # CONFIG_STM32_TIM5_CAP is not set # CONFIG_STM32_TIM8_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART1_SERIALDRIVER=y +# CONFIG_STM32_USART1_1WIREDRIVER is not set # CONFIG_USART1_RS485 is not set +CONFIG_STM32_USART2_SERIALDRIVER=y +# CONFIG_STM32_USART2_1WIREDRIVER is not set # CONFIG_USART2_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set CONFIG_STM32_HAVE_RTC_COUNTER=y # CONFIG_STM32_HAVE_RTC_SUBSECONDS is not set @@ -700,10 +709,6 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set # CONFIG_SERIAL_OFLOWCONTROL is not set @@ -970,6 +975,7 @@ CONFIG_EXAMPLES_BUTTONS_NAME7="UP" # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/stm3210e-eval/composite/defconfig b/configs/stm3210e-eval/composite/defconfig index e5412ac4b5..d4664da422 100644 --- a/configs/stm3210e-eval/composite/defconfig +++ b/configs/stm3210e-eval/composite/defconfig @@ -121,6 +121,7 @@ CONFIG_ARCH_CORTEXM3=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -139,6 +140,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARW is not set # CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDW is not set @@ -251,6 +253,7 @@ CONFIG_ARCH_CHIP_STM32F103ZE=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -424,14 +427,20 @@ CONFIG_STM32_JTAG_FULL_ENABLE=y # CONFIG_STM32_TIM5_CAP is not set # CONFIG_STM32_TIM8_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART1_SERIALDRIVER=y +# CONFIG_STM32_USART1_1WIREDRIVER is not set # CONFIG_USART1_RS485 is not set +CONFIG_STM32_USART2_SERIALDRIVER=y +# CONFIG_STM32_USART2_1WIREDRIVER is not set # CONFIG_USART2_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # @@ -735,10 +744,12 @@ CONFIG_MTD=y # CONFIG_MTD_AT45DB is not set # CONFIG_MTD_M25P is not set # CONFIG_MTD_S25FL1 is not set +# CONFIG_MTD_N25QXXX is not set # CONFIG_MTD_SMART is not set # CONFIG_MTD_RAMTRON is not set # CONFIG_MTD_SST25 is not set # CONFIG_MTD_SST25XX is not set +# CONFIG_MTD_SST26 is not set # CONFIG_MTD_SST39FV is not set # CONFIG_MTD_W25 is not set # CONFIG_EEPROM is not set @@ -773,10 +784,6 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -1118,6 +1125,7 @@ CONFIG_ARCH_HAVE_TLS=y # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/stm3210e-eval/nsh/defconfig b/configs/stm3210e-eval/nsh/defconfig index 8c4cdcd5b9..bc1df0013a 100644 --- a/configs/stm3210e-eval/nsh/defconfig +++ b/configs/stm3210e-eval/nsh/defconfig @@ -121,6 +121,7 @@ CONFIG_ARCH_CORTEXM3=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -139,6 +140,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARW is not set # CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC is not set CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y # CONFIG_ARMV7M_TOOLCHAIN_CODEREDW is not set @@ -252,6 +254,7 @@ CONFIG_ARCH_CHIP_STM32F103ZE=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -425,14 +428,20 @@ CONFIG_STM32_JTAG_FULL_ENABLE=y # CONFIG_STM32_TIM5_CAP is not set # CONFIG_STM32_TIM8_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART1_SERIALDRIVER=y +# CONFIG_STM32_USART1_1WIREDRIVER is not set # CONFIG_USART1_RS485 is not set +CONFIG_STM32_USART2_SERIALDRIVER=y +# CONFIG_STM32_USART2_1WIREDRIVER is not set # CONFIG_USART2_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # @@ -738,10 +747,12 @@ CONFIG_MTD=y # CONFIG_MTD_AT45DB is not set # CONFIG_MTD_M25P is not set # CONFIG_MTD_S25FL1 is not set +# CONFIG_MTD_N25QXXX is not set # CONFIG_MTD_SMART is not set # CONFIG_MTD_RAMTRON is not set # CONFIG_MTD_SST25 is not set # CONFIG_MTD_SST25XX is not set +# CONFIG_MTD_SST26 is not set # CONFIG_MTD_SST39FV is not set # CONFIG_MTD_W25 is not set # CONFIG_EEPROM is not set @@ -775,10 +786,6 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -1076,6 +1083,7 @@ CONFIG_EXAMPLES_NSH=y # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/stm3210e-eval/nsh2/defconfig b/configs/stm3210e-eval/nsh2/defconfig index e4868e0d8f..c222587561 100644 --- a/configs/stm3210e-eval/nsh2/defconfig +++ b/configs/stm3210e-eval/nsh2/defconfig @@ -121,6 +121,7 @@ CONFIG_ARCH_CORTEXM3=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -139,6 +140,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARW is not set # CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDW is not set @@ -251,6 +253,7 @@ CONFIG_ARCH_CHIP_STM32F103ZE=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -426,14 +429,20 @@ CONFIG_STM32_JTAG_FULL_ENABLE=y # CONFIG_STM32_TIM5_CAP is not set # CONFIG_STM32_TIM8_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART1_SERIALDRIVER=y +# CONFIG_STM32_USART1_1WIREDRIVER is not set # CONFIG_USART1_RS485 is not set +CONFIG_STM32_USART2_SERIALDRIVER=y +# CONFIG_STM32_USART2_1WIREDRIVER is not set # CONFIG_USART2_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # @@ -752,6 +761,7 @@ CONFIG_LCD_RPORTRAIT=y # Alphanumeric/Segment LCD Devices # # CONFIG_LCD_LCD1602 is not set +# CONFIG_LCD_BACKPACK is not set # # LED Support @@ -795,10 +805,12 @@ CONFIG_MTD=y # CONFIG_MTD_AT45DB is not set # CONFIG_MTD_M25P is not set # CONFIG_MTD_S25FL1 is not set +# CONFIG_MTD_N25QXXX is not set # CONFIG_MTD_SMART is not set # CONFIG_MTD_RAMTRON is not set # CONFIG_MTD_SST25 is not set # CONFIG_MTD_SST25XX is not set +# CONFIG_MTD_SST26 is not set # CONFIG_MTD_SST39FV is not set # CONFIG_MTD_W25 is not set # CONFIG_EEPROM is not set @@ -832,10 +844,6 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -978,6 +986,7 @@ CONFIG_NX_LCDDRIVER=y CONFIG_NX_NPLANES=1 CONFIG_NX_BGCOLOR=0x0 # CONFIG_NX_WRITEONLY is not set +# CONFIG_NX_UPDATE is not set # # Supported Pixel Depths @@ -1275,6 +1284,7 @@ CONFIG_EXAMPLES_NXHELLO_FONTID=6 # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/stm3210e-eval/nx/defconfig b/configs/stm3210e-eval/nx/defconfig index 0229e097f3..2554b724aa 100644 --- a/configs/stm3210e-eval/nx/defconfig +++ b/configs/stm3210e-eval/nx/defconfig @@ -121,6 +121,7 @@ CONFIG_ARCH_CORTEXM3=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -139,6 +140,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARW is not set # CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDW is not set @@ -249,6 +251,7 @@ CONFIG_ARCH_CHIP_STM32F103ZE=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -424,14 +427,20 @@ CONFIG_STM32_JTAG_FULL_ENABLE=y # CONFIG_STM32_TIM5_CAP is not set # CONFIG_STM32_TIM8_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART1_SERIALDRIVER=y +# CONFIG_STM32_USART1_1WIREDRIVER is not set # CONFIG_USART1_RS485 is not set +CONFIG_STM32_USART2_SERIALDRIVER=y +# CONFIG_STM32_USART2_1WIREDRIVER is not set # CONFIG_USART2_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # @@ -770,10 +779,6 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set # CONFIG_SERIAL_OFLOWCONTROL is not set @@ -886,6 +891,7 @@ CONFIG_NX_LCDDRIVER=y CONFIG_NX_NPLANES=1 CONFIG_NX_BGCOLOR=0x0 # CONFIG_NX_WRITEONLY is not set +# CONFIG_NX_UPDATE is not set # # Supported Pixel Depths @@ -1150,6 +1156,7 @@ CONFIG_EXAMPLES_NX_TOOLBAR_HEIGHT=16 # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/stm3210e-eval/nxterm/defconfig b/configs/stm3210e-eval/nxterm/defconfig index 15309beafb..4a19b0a255 100644 --- a/configs/stm3210e-eval/nxterm/defconfig +++ b/configs/stm3210e-eval/nxterm/defconfig @@ -121,6 +121,7 @@ CONFIG_ARCH_CORTEXM3=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -139,6 +140,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARW is not set # CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDW is not set @@ -249,6 +251,7 @@ CONFIG_ARCH_CHIP_STM32F103ZE=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -422,14 +425,20 @@ CONFIG_STM32_JTAG_FULL_ENABLE=y # CONFIG_STM32_TIM5_CAP is not set # CONFIG_STM32_TIM8_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART1_SERIALDRIVER=y +# CONFIG_STM32_USART1_1WIREDRIVER is not set # CONFIG_USART1_RS485 is not set +CONFIG_STM32_USART2_SERIALDRIVER=y +# CONFIG_STM32_USART2_1WIREDRIVER is not set # CONFIG_USART2_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set CONFIG_STM32_HAVE_RTC_COUNTER=y # CONFIG_STM32_HAVE_RTC_SUBSECONDS is not set @@ -766,10 +775,6 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -870,6 +875,7 @@ CONFIG_NX_LCDDRIVER=y CONFIG_NX_NPLANES=1 CONFIG_NX_BGCOLOR=0x0 # CONFIG_NX_WRITEONLY is not set +# CONFIG_NX_UPDATE is not set # # Supported Pixel Depths @@ -1151,6 +1157,7 @@ CONFIG_EXAMPLES_NXTERM=y # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/stm3210e-eval/pm/defconfig b/configs/stm3210e-eval/pm/defconfig index 372ead7465..4acbe0d3a7 100644 --- a/configs/stm3210e-eval/pm/defconfig +++ b/configs/stm3210e-eval/pm/defconfig @@ -121,6 +121,7 @@ CONFIG_ARCH_CORTEXM3=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -139,6 +140,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARW is not set # CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDW is not set @@ -249,6 +251,7 @@ CONFIG_ARCH_CHIP_STM32F103ZE=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -425,14 +428,20 @@ CONFIG_STM32_JTAG_FULL_ENABLE=y # CONFIG_STM32_TIM5_CAP is not set # CONFIG_STM32_TIM8_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART1_SERIALDRIVER=y +# CONFIG_STM32_USART1_1WIREDRIVER is not set # CONFIG_USART1_RS485 is not set +CONFIG_STM32_USART2_SERIALDRIVER=y +# CONFIG_STM32_USART2_1WIREDRIVER is not set # CONFIG_USART2_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set CONFIG_STM32_HAVE_RTC_COUNTER=y # CONFIG_STM32_HAVE_RTC_SUBSECONDS is not set @@ -703,6 +712,7 @@ CONFIG_RTC=y CONFIG_RTC_HIRES=y CONFIG_RTC_FREQUENCY=16384 CONFIG_RTC_ALARM=y +CONFIG_RTC_NALARMS=1 # CONFIG_RTC_DRIVER is not set # CONFIG_RTC_EXTERNAL is not set # CONFIG_WATCHDOG is not set @@ -807,10 +817,6 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -911,6 +917,7 @@ CONFIG_NX_LCDDRIVER=y CONFIG_NX_NPLANES=1 CONFIG_NX_BGCOLOR=0x0 # CONFIG_NX_WRITEONLY is not set +# CONFIG_NX_UPDATE is not set # # Supported Pixel Depths @@ -1203,6 +1210,7 @@ CONFIG_EXAMPLES_NXHELLO_FONTID=6 # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/stm3210e-eval/usbmsc/defconfig b/configs/stm3210e-eval/usbmsc/defconfig index 3a85f542b5..001c83e4f5 100644 --- a/configs/stm3210e-eval/usbmsc/defconfig +++ b/configs/stm3210e-eval/usbmsc/defconfig @@ -117,6 +117,7 @@ CONFIG_ARCH_CORTEXM3=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -135,6 +136,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set # CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set @@ -244,6 +246,7 @@ CONFIG_ARCH_CHIP_STM32F103ZE=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -417,14 +420,20 @@ CONFIG_STM32_JTAG_FULL_ENABLE=y # CONFIG_STM32_TIM5_CAP is not set # CONFIG_STM32_TIM8_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART1_SERIALDRIVER=y +# CONFIG_STM32_USART1_1WIREDRIVER is not set # CONFIG_USART1_RS485 is not set +CONFIG_STM32_USART2_SERIALDRIVER=y +# CONFIG_STM32_USART2_1WIREDRIVER is not set # CONFIG_USART2_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # @@ -738,10 +747,6 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -1048,6 +1053,7 @@ CONFIG_ARCH_HAVE_TLS=y # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/stm3210e-eval/usbserial/defconfig b/configs/stm3210e-eval/usbserial/defconfig index dc7cda266e..4e6b606f27 100644 --- a/configs/stm3210e-eval/usbserial/defconfig +++ b/configs/stm3210e-eval/usbserial/defconfig @@ -117,6 +117,7 @@ CONFIG_ARCH_CORTEXM3=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -135,6 +136,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set # CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set @@ -242,6 +244,7 @@ CONFIG_ARCH_CHIP_STM32F103ZE=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -414,14 +417,20 @@ CONFIG_STM32_JTAG_FULL_ENABLE=y # CONFIG_STM32_TIM5_CAP is not set # CONFIG_STM32_TIM8_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART1_SERIALDRIVER=y +# CONFIG_STM32_USART1_1WIREDRIVER is not set # CONFIG_USART1_RS485 is not set +CONFIG_STM32_USART2_SERIALDRIVER=y +# CONFIG_STM32_USART2_1WIREDRIVER is not set # CONFIG_USART2_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set CONFIG_STM32_HAVE_RTC_COUNTER=y # CONFIG_STM32_HAVE_RTC_SUBSECONDS is not set @@ -714,10 +723,6 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -1012,6 +1017,7 @@ CONFIG_EXAMPLES_USBSERIAL_BUFSIZE=512 # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/stm3220g-eval/dhcpd/defconfig b/configs/stm3220g-eval/dhcpd/defconfig index 6d2dd3d130..1a09df8349 100644 --- a/configs/stm3220g-eval/dhcpd/defconfig +++ b/configs/stm3220g-eval/dhcpd/defconfig @@ -80,6 +80,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -98,6 +99,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -119,6 +121,7 @@ CONFIG_ARCH_CORTEXM3=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -126,6 +129,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y # CONFIG_ARMV7M_LAZYFPU is not set # CONFIG_ARCH_HAVE_FPU is not set # CONFIG_ARCH_HAVE_DPFPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -136,6 +140,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARW is not set # CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDW is not set @@ -246,6 +251,7 @@ CONFIG_ARCH_CHIP_STM32F207IG=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -438,13 +444,17 @@ CONFIG_STM32_JTAG_FULL_ENABLE=y # CONFIG_STM32_TIM13_CAP is not set # CONFIG_STM32_TIM14_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART3_SERIALDRIVER=y +# CONFIG_STM32_USART3_1WIREDRIVER is not set # CONFIG_USART3_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # CONFIG_STM32_HAVE_RTC_COUNTER is not set # CONFIG_STM32_HAVE_RTC_SUBSECONDS is not set @@ -767,10 +777,6 @@ CONFIG_USART3_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -1001,6 +1007,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # CONFIG_NETDB_DNSCLIENT is not set @@ -1089,7 +1097,6 @@ CONFIG_EXAMPLES_DHCPD_NETMASK=0xffffff00 # CONFIG_EXAMPLES_UDPBLASTER is not set # CONFIG_EXAMPLES_DISCOVER is not set # CONFIG_EXAMPLES_WEBSERVER is not set -# CONFIG_EXAMPLES_USBSERIAL is not set # CONFIG_EXAMPLES_USBTERM is not set # CONFIG_EXAMPLES_WATCHDOG is not set @@ -1139,6 +1146,7 @@ CONFIG_NETUTILS_DHCPD_NETMASK=0xffffff00 CONFIG_NETUTILS_DHCPD_DNSIP=0x08080808 CONFIG_NETUTILS_DHCPD_OFFERTIME=3600 CONFIG_NETUTILS_DHCPD_DECLINETIME=3600 +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/stm3220g-eval/nettest/defconfig b/configs/stm3220g-eval/nettest/defconfig index ee753d9d28..59d9ac24fa 100644 --- a/configs/stm3220g-eval/nettest/defconfig +++ b/configs/stm3220g-eval/nettest/defconfig @@ -80,6 +80,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -98,6 +99,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -119,6 +121,7 @@ CONFIG_ARCH_CORTEXM3=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -126,6 +129,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y # CONFIG_ARMV7M_LAZYFPU is not set # CONFIG_ARCH_HAVE_FPU is not set # CONFIG_ARCH_HAVE_DPFPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -136,6 +140,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARW is not set # CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDW is not set @@ -246,6 +251,7 @@ CONFIG_ARCH_CHIP_STM32F207IG=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -438,13 +444,17 @@ CONFIG_STM32_JTAG_FULL_ENABLE=y # CONFIG_STM32_TIM13_CAP is not set # CONFIG_STM32_TIM14_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART3_SERIALDRIVER=y +# CONFIG_STM32_USART3_1WIREDRIVER is not set # CONFIG_USART3_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # CONFIG_STM32_HAVE_RTC_COUNTER is not set # CONFIG_STM32_HAVE_RTC_SUBSECONDS is not set @@ -768,10 +778,6 @@ CONFIG_USART3_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set # CONFIG_SERIAL_OFLOWCONTROL is not set @@ -1006,6 +1012,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # @@ -1100,7 +1108,6 @@ CONFIG_EXAMPLES_NETTEST_CLIENTIP=0x0a000001 # CONFIG_EXAMPLES_TIFF is not set # CONFIG_EXAMPLES_TOUCHSCREEN is not set # CONFIG_EXAMPLES_WEBSERVER is not set -# CONFIG_EXAMPLES_USBSERIAL is not set # CONFIG_EXAMPLES_USBTERM is not set # CONFIG_EXAMPLES_WATCHDOG is not set # CONFIG_EXAMPLES_WGET is not set @@ -1137,6 +1144,7 @@ CONFIG_EXAMPLES_NETTEST_CLIENTIP=0x0a000001 # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/stm3220g-eval/nsh/defconfig b/configs/stm3220g-eval/nsh/defconfig index 0046e360d2..aca94bb076 100644 --- a/configs/stm3220g-eval/nsh/defconfig +++ b/configs/stm3220g-eval/nsh/defconfig @@ -76,6 +76,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -94,6 +95,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -115,6 +117,7 @@ CONFIG_ARCH_CORTEXM3=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -122,6 +125,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y # CONFIG_ARMV7M_LAZYFPU is not set # CONFIG_ARCH_HAVE_FPU is not set # CONFIG_ARCH_HAVE_DPFPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -132,6 +136,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set # CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set @@ -238,6 +243,7 @@ CONFIG_ARCH_CHIP_STM32F207IG=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -431,13 +437,17 @@ CONFIG_STM32_JTAG_FULL_ENABLE=y # CONFIG_STM32_TIM13_CAP is not set # CONFIG_STM32_TIM14_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART3_SERIALDRIVER=y +# CONFIG_STM32_USART3_1WIREDRIVER is not set # CONFIG_USART3_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # @@ -755,10 +765,12 @@ CONFIG_MTD=y # CONFIG_MTD_AT45DB is not set # CONFIG_MTD_M25P is not set # CONFIG_MTD_S25FL1 is not set +# CONFIG_MTD_N25QXXX is not set # CONFIG_MTD_SMART is not set # CONFIG_MTD_RAMTRON is not set # CONFIG_MTD_SST25 is not set # CONFIG_MTD_SST25XX is not set +# CONFIG_MTD_SST26 is not set # CONFIG_MTD_SST39FV is not set # CONFIG_MTD_W25 is not set # CONFIG_EEPROM is not set @@ -832,10 +844,6 @@ CONFIG_USART3_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -1097,6 +1105,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set CONFIG_LIBC_NETDB=y # CONFIG_NETDB_HOSTFILE is not set CONFIG_NETDB_DNSCLIENT=y @@ -1198,7 +1208,6 @@ CONFIG_EXAMPLES_NSH_CXXINITIALIZE=y # CONFIG_EXAMPLES_UDPBLASTER is not set # CONFIG_EXAMPLES_DISCOVER is not set # CONFIG_EXAMPLES_WEBSERVER is not set -# CONFIG_EXAMPLES_USBSERIAL is not set # CONFIG_EXAMPLES_USBTERM is not set # CONFIG_EXAMPLES_WATCHDOG is not set @@ -1238,6 +1247,7 @@ CONFIG_EXAMPLES_NSH_CXXINITIALIZE=y # CONFIG_NETUTILS_CODECS is not set # CONFIG_NETUTILS_DHCPC is not set # CONFIG_NETUTILS_DHCPD is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/stm3220g-eval/nsh2/defconfig b/configs/stm3220g-eval/nsh2/defconfig index cbf5d4adb9..b689019b01 100644 --- a/configs/stm3220g-eval/nsh2/defconfig +++ b/configs/stm3220g-eval/nsh2/defconfig @@ -80,6 +80,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -98,6 +99,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -119,6 +121,7 @@ CONFIG_ARCH_CORTEXM3=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -126,6 +129,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y # CONFIG_ARMV7M_LAZYFPU is not set # CONFIG_ARCH_HAVE_FPU is not set # CONFIG_ARCH_HAVE_DPFPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -136,6 +140,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARW is not set # CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDW is not set @@ -247,6 +252,7 @@ CONFIG_ARCH_CHIP_STM32F207IG=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -778,10 +784,12 @@ CONFIG_MTD=y # CONFIG_MTD_AT45DB is not set # CONFIG_MTD_M25P is not set # CONFIG_MTD_S25FL1 is not set +# CONFIG_MTD_N25QXXX is not set # CONFIG_MTD_SMART is not set # CONFIG_MTD_RAMTRON is not set # CONFIG_MTD_SST25 is not set # CONFIG_MTD_SST25XX is not set +# CONFIG_MTD_SST26 is not set # CONFIG_MTD_SST39FV is not set # CONFIG_MTD_W25 is not set # CONFIG_EEPROM is not set @@ -856,10 +864,6 @@ CONFIG_SERIAL=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# # CONFIG_MCU_SERIAL is not set # CONFIG_STANDARD_SERIAL is not set # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -1110,6 +1114,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set CONFIG_LIBC_NETDB=y # CONFIG_NETDB_HOSTFILE is not set CONFIG_NETDB_DNSCLIENT=y @@ -1252,6 +1258,7 @@ CONFIG_EXAMPLES_NSH_CXXINITIALIZE=y # CONFIG_NETUTILS_CODECS is not set # CONFIG_NETUTILS_DHCPC is not set # CONFIG_NETUTILS_DHCPD is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_FTPD is not set # CONFIG_NETUTILS_JSON is not set diff --git a/configs/stm3220g-eval/nxwm/defconfig b/configs/stm3220g-eval/nxwm/defconfig index 40a6f16790..fadce2d0ab 100644 --- a/configs/stm3220g-eval/nxwm/defconfig +++ b/configs/stm3220g-eval/nxwm/defconfig @@ -80,6 +80,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -98,6 +99,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -119,6 +121,7 @@ CONFIG_ARCH_CORTEXM3=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -126,6 +129,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y # CONFIG_ARMV7M_LAZYFPU is not set # CONFIG_ARCH_HAVE_FPU is not set # CONFIG_ARCH_HAVE_DPFPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -136,6 +140,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARW is not set # CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDW is not set @@ -246,6 +251,7 @@ CONFIG_ARCH_CHIP_STM32F207IG=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -440,13 +446,17 @@ CONFIG_STM32_JTAG_FULL_ENABLE=y # CONFIG_STM32_TIM13_CAP is not set # CONFIG_STM32_TIM14_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART3_SERIALDRIVER=y +# CONFIG_STM32_USART3_1WIREDRIVER is not set # CONFIG_USART3_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # @@ -792,6 +802,7 @@ CONFIG_LCD_LANDSCAPE=y # Alphanumeric/Segment LCD Devices # # CONFIG_LCD_LCD1602 is not set +# CONFIG_LCD_BACKPACK is not set # # LED Support @@ -882,10 +893,6 @@ CONFIG_USART3_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -1087,6 +1094,7 @@ CONFIG_NX_LCDDRIVER=y CONFIG_NX_NPLANES=1 CONFIG_NX_BGCOLOR=0x0 CONFIG_NX_WRITEONLY=y +# CONFIG_NX_UPDATE is not set # # Supported Pixel Depths @@ -1255,6 +1263,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set CONFIG_LIBC_NETDB=y # CONFIG_NETDB_HOSTFILE is not set # CONFIG_NETDB_DNSCLIENT is not set @@ -1343,7 +1353,6 @@ CONFIG_HAVE_CXXINITIALIZE=y # CONFIG_EXAMPLES_UDPBLASTER is not set # CONFIG_EXAMPLES_DISCOVER is not set # CONFIG_EXAMPLES_WEBSERVER is not set -# CONFIG_EXAMPLES_USBSERIAL is not set # CONFIG_EXAMPLES_USBTERM is not set # CONFIG_EXAMPLES_WATCHDOG is not set # CONFIG_EXAMPLES_WGET is not set @@ -1383,6 +1392,7 @@ CONFIG_HAVE_CXXINITIALIZE=y # # CONFIG_NETUTILS_CODECS is not set # CONFIG_NETUTILS_DHCPD is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set @@ -1549,6 +1559,7 @@ CONFIG_NXWIDGETS_LISTENERSTACK=2048 # NXWidget Configuration # CONFIG_NXWIDGETS_BPP=16 +# CONFIG_NXWIDGETS_GREYSCALE is not set CONFIG_NXWIDGETS_SIZEOFCHAR=1 # diff --git a/configs/stm3220g-eval/telnetd/defconfig b/configs/stm3220g-eval/telnetd/defconfig index c0ea09b3bd..2e65dced62 100644 --- a/configs/stm3220g-eval/telnetd/defconfig +++ b/configs/stm3220g-eval/telnetd/defconfig @@ -80,6 +80,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -98,6 +99,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -119,6 +121,7 @@ CONFIG_ARCH_CORTEXM3=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -126,6 +129,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y # CONFIG_ARMV7M_LAZYFPU is not set # CONFIG_ARCH_HAVE_FPU is not set # CONFIG_ARCH_HAVE_DPFPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -136,6 +140,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARW is not set # CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDW is not set @@ -246,6 +251,7 @@ CONFIG_ARCH_CHIP_STM32F207IG=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -438,13 +444,17 @@ CONFIG_STM32_JTAG_FULL_ENABLE=y # CONFIG_STM32_TIM13_CAP is not set # CONFIG_STM32_TIM14_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART3_SERIALDRIVER=y +# CONFIG_STM32_USART3_1WIREDRIVER is not set # CONFIG_USART3_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # CONFIG_STM32_HAVE_RTC_COUNTER is not set # CONFIG_STM32_HAVE_RTC_SUBSECONDS is not set @@ -770,10 +780,6 @@ CONFIG_USART3_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set # CONFIG_SERIAL_OFLOWCONTROL is not set @@ -1008,6 +1014,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # @@ -1097,7 +1105,6 @@ CONFIG_EXAMPLES_TELNETD_CLIENTSTACKSIZE=2048 # CONFIG_EXAMPLES_TIFF is not set # CONFIG_EXAMPLES_TOUCHSCREEN is not set # CONFIG_EXAMPLES_WEBSERVER is not set -# CONFIG_EXAMPLES_USBSERIAL is not set # CONFIG_EXAMPLES_USBTERM is not set # CONFIG_EXAMPLES_WATCHDOG is not set # CONFIG_EXAMPLES_WGET is not set @@ -1134,6 +1141,7 @@ CONFIG_EXAMPLES_TELNETD_CLIENTSTACKSIZE=2048 # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/stm3240g-eval/dhcpd/defconfig b/configs/stm3240g-eval/dhcpd/defconfig index 472b435492..e78e731217 100644 --- a/configs/stm3240g-eval/dhcpd/defconfig +++ b/configs/stm3240g-eval/dhcpd/defconfig @@ -252,6 +252,7 @@ CONFIG_ARMV7M_HAVE_STACKCHECK=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -447,13 +448,17 @@ CONFIG_STM32_JTAG_FULL_ENABLE=y # CONFIG_STM32_TIM13_CAP is not set # CONFIG_STM32_TIM14_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART3_SERIALDRIVER=y +# CONFIG_STM32_USART3_1WIREDRIVER is not set # CONFIG_USART3_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # CONFIG_STM32_HAVE_RTC_COUNTER is not set # CONFIG_STM32_HAVE_RTC_SUBSECONDS is not set @@ -776,10 +781,6 @@ CONFIG_USART3_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -1149,6 +1150,7 @@ CONFIG_NETUTILS_DHCPD_NETMASK=0xffffff00 CONFIG_NETUTILS_DHCPD_DNSIP=0x08080808 CONFIG_NETUTILS_DHCPD_OFFERTIME=3600 CONFIG_NETUTILS_DHCPD_DECLINETIME=3600 +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/stm3240g-eval/discover/defconfig b/configs/stm3240g-eval/discover/defconfig index 2c2b237587..6e6116857e 100644 --- a/configs/stm3240g-eval/discover/defconfig +++ b/configs/stm3240g-eval/discover/defconfig @@ -244,6 +244,7 @@ CONFIG_ARMV7M_HAVE_STACKCHECK=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -440,13 +441,17 @@ CONFIG_STM32_JTAG_FULL_ENABLE=y # CONFIG_STM32_TIM13_CAP is not set # CONFIG_STM32_TIM14_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART3_SERIALDRIVER=y +# CONFIG_STM32_USART3_1WIREDRIVER is not set # CONFIG_USART3_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # @@ -799,10 +804,6 @@ CONFIG_USART3_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -1204,6 +1205,7 @@ CONFIG_EXAMPLES_DISCOVER_NETMASK=0xffffff00 # CONFIG_NETUTILS_CODECS is not set CONFIG_NETUTILS_DHCPC=y # CONFIG_NETUTILS_DHCPD is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/stm3240g-eval/knxwm/defconfig b/configs/stm3240g-eval/knxwm/defconfig index 9bc3e7f8d1..fe098b72e1 100644 --- a/configs/stm3240g-eval/knxwm/defconfig +++ b/configs/stm3240g-eval/knxwm/defconfig @@ -259,6 +259,7 @@ CONFIG_ARMV7M_HAVE_STACKCHECK=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -456,13 +457,17 @@ CONFIG_STM32_JTAG_FULL_ENABLE=y # CONFIG_STM32_TIM13_CAP is not set # CONFIG_STM32_TIM14_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART3_SERIALDRIVER=y +# CONFIG_STM32_USART3_1WIREDRIVER is not set # CONFIG_USART3_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # @@ -725,7 +730,6 @@ CONFIG_I2C_POLLED=y CONFIG_RTC=y CONFIG_RTC_DATETIME=y # CONFIG_RTC_ALARM is not set -CONFIG_RTC_NALARMS=2 # CONFIG_RTC_DRIVER is not set # CONFIG_RTC_EXTERNAL is not set # CONFIG_WATCHDOG is not set @@ -793,6 +797,7 @@ CONFIG_LCD_LANDSCAPE=y # Alphanumeric/Segment LCD Devices # # CONFIG_LCD_LCD1602 is not set +# CONFIG_LCD_BACKPACK is not set # # LED Support @@ -834,10 +839,6 @@ CONFIG_USART3_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -930,6 +931,7 @@ CONFIG_NX_LCDDRIVER=y CONFIG_NX_NPLANES=1 CONFIG_NX_BGCOLOR=0x0 # CONFIG_NX_WRITEONLY is not set +# CONFIG_NX_UPDATE is not set # # Supported Pixel Depths @@ -1211,6 +1213,7 @@ CONFIG_CXX_NEWLONG=y # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set @@ -1239,6 +1242,7 @@ CONFIG_NXWIDGETS_LISTENERSTACK=2048 # NXWidget Configuration # CONFIG_NXWIDGETS_BPP=16 +# CONFIG_NXWIDGETS_GREYSCALE is not set CONFIG_NXWIDGETS_SIZEOFCHAR=1 # diff --git a/configs/stm3240g-eval/nettest/defconfig b/configs/stm3240g-eval/nettest/defconfig index d8aadc97fc..d8f93001ea 100644 --- a/configs/stm3240g-eval/nettest/defconfig +++ b/configs/stm3240g-eval/nettest/defconfig @@ -252,6 +252,7 @@ CONFIG_ARMV7M_HAVE_STACKCHECK=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -447,13 +448,17 @@ CONFIG_STM32_JTAG_FULL_ENABLE=y # CONFIG_STM32_TIM13_CAP is not set # CONFIG_STM32_TIM14_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART3_SERIALDRIVER=y +# CONFIG_STM32_USART3_1WIREDRIVER is not set # CONFIG_USART3_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # CONFIG_STM32_HAVE_RTC_COUNTER is not set # CONFIG_STM32_HAVE_RTC_SUBSECONDS is not set @@ -777,10 +782,6 @@ CONFIG_USART3_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set # CONFIG_SERIAL_OFLOWCONTROL is not set @@ -1147,6 +1148,7 @@ CONFIG_EXAMPLES_NETTEST_CLIENTIP=0x0a000001 # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/stm3240g-eval/nsh/defconfig b/configs/stm3240g-eval/nsh/defconfig index 430629d9fd..7456227bc7 100644 --- a/configs/stm3240g-eval/nsh/defconfig +++ b/configs/stm3240g-eval/nsh/defconfig @@ -252,6 +252,7 @@ CONFIG_ARMV7M_HAVE_STACKCHECK=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -448,13 +449,17 @@ CONFIG_STM32_JTAG_FULL_ENABLE=y # CONFIG_STM32_TIM13_CAP is not set # CONFIG_STM32_TIM14_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART3_SERIALDRIVER=y +# CONFIG_STM32_USART3_1WIREDRIVER is not set # CONFIG_USART3_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # @@ -724,7 +729,6 @@ CONFIG_I2C_DRIVER=y CONFIG_RTC=y CONFIG_RTC_DATETIME=y # CONFIG_RTC_ALARM is not set -CONFIG_RTC_NALARMS=2 # CONFIG_RTC_DRIVER is not set # CONFIG_RTC_EXTERNAL is not set # CONFIG_WATCHDOG is not set @@ -819,10 +823,6 @@ CONFIG_USART3_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -1226,6 +1226,7 @@ CONFIG_EXAMPLES_NSH_CXXINITIALIZE=y # CONFIG_NETUTILS_CODECS is not set # CONFIG_NETUTILS_DHCPC is not set # CONFIG_NETUTILS_DHCPD is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/stm3240g-eval/nsh2/defconfig b/configs/stm3240g-eval/nsh2/defconfig index 68b6c07da7..1752213148 100644 --- a/configs/stm3240g-eval/nsh2/defconfig +++ b/configs/stm3240g-eval/nsh2/defconfig @@ -253,6 +253,7 @@ CONFIG_SDIO_DMA=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -733,7 +734,6 @@ CONFIG_I2C_DRIVER=y CONFIG_RTC=y CONFIG_RTC_DATETIME=y # CONFIG_RTC_ALARM is not set -CONFIG_RTC_NALARMS=2 # CONFIG_RTC_DRIVER is not set # CONFIG_RTC_EXTERNAL is not set # CONFIG_WATCHDOG is not set @@ -788,10 +788,12 @@ CONFIG_MTD=y # CONFIG_MTD_AT45DB is not set # CONFIG_MTD_M25P is not set # CONFIG_MTD_S25FL1 is not set +# CONFIG_MTD_N25QXXX is not set # CONFIG_MTD_SMART is not set # CONFIG_MTD_RAMTRON is not set # CONFIG_MTD_SST25 is not set # CONFIG_MTD_SST25XX is not set +# CONFIG_MTD_SST26 is not set # CONFIG_MTD_SST39FV is not set # CONFIG_MTD_W25 is not set # CONFIG_EEPROM is not set @@ -866,10 +868,6 @@ CONFIG_SERIAL=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# # CONFIG_MCU_SERIAL is not set # CONFIG_STANDARD_SERIAL is not set # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -1264,6 +1262,7 @@ CONFIG_EXAMPLES_NSH_CXXINITIALIZE=y # CONFIG_NETUTILS_CODECS is not set # CONFIG_NETUTILS_DHCPC is not set # CONFIG_NETUTILS_DHCPD is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_FTPD is not set # CONFIG_NETUTILS_JSON is not set diff --git a/configs/stm3240g-eval/nxterm/defconfig b/configs/stm3240g-eval/nxterm/defconfig index 1ce9db616c..8a947a2bb2 100644 --- a/configs/stm3240g-eval/nxterm/defconfig +++ b/configs/stm3240g-eval/nxterm/defconfig @@ -252,6 +252,7 @@ CONFIG_ARMV7M_HAVE_STACKCHECK=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -449,13 +450,17 @@ CONFIG_STM32_FSMC_SRAM=y # CONFIG_STM32_TIM13_CAP is not set # CONFIG_STM32_TIM14_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART3_SERIALDRIVER=y +# CONFIG_STM32_USART3_1WIREDRIVER is not set # CONFIG_USART3_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # @@ -727,7 +732,6 @@ CONFIG_I2C_DRIVER=y CONFIG_RTC=y CONFIG_RTC_DATETIME=y # CONFIG_RTC_ALARM is not set -CONFIG_RTC_NALARMS=2 # CONFIG_RTC_DRIVER is not set # CONFIG_RTC_EXTERNAL is not set # CONFIG_WATCHDOG is not set @@ -774,6 +778,7 @@ CONFIG_LCD_LANDSCAPE=y # Alphanumeric/Segment LCD Devices # # CONFIG_LCD_LCD1602 is not set +# CONFIG_LCD_BACKPACK is not set # # LED Support @@ -857,10 +862,6 @@ CONFIG_USART3_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -1056,6 +1057,7 @@ CONFIG_NX_LCDDRIVER=y CONFIG_NX_NPLANES=1 CONFIG_NX_BGCOLOR=0x0 # CONFIG_NX_WRITEONLY is not set +# CONFIG_NX_UPDATE is not set # # Supported Pixel Depths @@ -1360,6 +1362,7 @@ CONFIG_EXAMPLES_NXTERM=y # CONFIG_NETUTILS_CODECS is not set # CONFIG_NETUTILS_DHCPC is not set # CONFIG_NETUTILS_DHCPD is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/stm3240g-eval/nxwm/defconfig b/configs/stm3240g-eval/nxwm/defconfig index db49bdef41..e3e15ad43e 100644 --- a/configs/stm3240g-eval/nxwm/defconfig +++ b/configs/stm3240g-eval/nxwm/defconfig @@ -252,6 +252,7 @@ CONFIG_ARMV7M_HAVE_STACKCHECK=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -449,13 +450,17 @@ CONFIG_STM32_JTAG_FULL_ENABLE=y # CONFIG_STM32_TIM13_CAP is not set # CONFIG_STM32_TIM14_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART3_SERIALDRIVER=y +# CONFIG_STM32_USART3_1WIREDRIVER is not set # CONFIG_USART3_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # @@ -733,7 +738,6 @@ CONFIG_I2C_POLLED=y CONFIG_RTC=y CONFIG_RTC_DATETIME=y # CONFIG_RTC_ALARM is not set -CONFIG_RTC_NALARMS=2 # CONFIG_RTC_DRIVER is not set # CONFIG_RTC_EXTERNAL is not set # CONFIG_WATCHDOG is not set @@ -801,6 +805,7 @@ CONFIG_LCD_LANDSCAPE=y # Alphanumeric/Segment LCD Devices # # CONFIG_LCD_LCD1602 is not set +# CONFIG_LCD_BACKPACK is not set # # LED Support @@ -884,10 +889,6 @@ CONFIG_USART3_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -1089,6 +1090,7 @@ CONFIG_NX_LCDDRIVER=y CONFIG_NX_NPLANES=1 CONFIG_NX_BGCOLOR=0x0 # CONFIG_NX_WRITEONLY is not set +# CONFIG_NX_UPDATE is not set # # Supported Pixel Depths @@ -1393,6 +1395,7 @@ CONFIG_HAVE_CXXINITIALIZE=y # # CONFIG_NETUTILS_CODECS is not set # CONFIG_NETUTILS_DHCPD is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set @@ -1561,6 +1564,7 @@ CONFIG_NXWIDGETS_LISTENERSTACK=2048 # NXWidget Configuration # CONFIG_NXWIDGETS_BPP=16 +# CONFIG_NXWIDGETS_GREYSCALE is not set CONFIG_NXWIDGETS_SIZEOFCHAR=1 # diff --git a/configs/stm3240g-eval/telnetd/defconfig b/configs/stm3240g-eval/telnetd/defconfig index ac29812963..b2cc945bdd 100644 --- a/configs/stm3240g-eval/telnetd/defconfig +++ b/configs/stm3240g-eval/telnetd/defconfig @@ -252,6 +252,7 @@ CONFIG_ARMV7M_HAVE_STACKCHECK=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -447,13 +448,17 @@ CONFIG_STM32_JTAG_FULL_ENABLE=y # CONFIG_STM32_TIM13_CAP is not set # CONFIG_STM32_TIM14_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART3_SERIALDRIVER=y +# CONFIG_STM32_USART3_1WIREDRIVER is not set # CONFIG_USART3_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # CONFIG_STM32_HAVE_RTC_COUNTER is not set # CONFIG_STM32_HAVE_RTC_SUBSECONDS is not set @@ -779,10 +784,6 @@ CONFIG_USART3_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set # CONFIG_SERIAL_OFLOWCONTROL is not set @@ -1144,6 +1145,7 @@ CONFIG_EXAMPLES_TELNETD_CLIENTSTACKSIZE=2048 # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/stm3240g-eval/webserver/defconfig b/configs/stm3240g-eval/webserver/defconfig index 646d9bce1e..d610711289 100644 --- a/configs/stm3240g-eval/webserver/defconfig +++ b/configs/stm3240g-eval/webserver/defconfig @@ -244,6 +244,7 @@ CONFIG_ARMV7M_HAVE_STACKCHECK=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -440,13 +441,17 @@ CONFIG_STM32_CCMEXCLUDE=y # CONFIG_STM32_TIM13_CAP is not set # CONFIG_STM32_TIM14_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART3_SERIALDRIVER=y +# CONFIG_STM32_USART3_1WIREDRIVER is not set # CONFIG_USART3_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # @@ -714,7 +719,6 @@ CONFIG_I2C_POLLED=y CONFIG_RTC=y CONFIG_RTC_DATETIME=y # CONFIG_RTC_ALARM is not set -CONFIG_RTC_NALARMS=2 # CONFIG_RTC_DRIVER is not set # CONFIG_RTC_EXTERNAL is not set # CONFIG_WATCHDOG is not set @@ -757,10 +761,12 @@ CONFIG_MTD=y # CONFIG_MTD_AT45DB is not set # CONFIG_MTD_M25P is not set # CONFIG_MTD_S25FL1 is not set +# CONFIG_MTD_N25QXXX is not set # CONFIG_MTD_SMART is not set # CONFIG_MTD_RAMTRON is not set # CONFIG_MTD_SST25 is not set # CONFIG_MTD_SST25XX is not set +# CONFIG_MTD_SST26 is not set # CONFIG_MTD_SST39FV is not set # CONFIG_MTD_W25 is not set # CONFIG_EEPROM is not set @@ -836,10 +842,6 @@ CONFIG_USART3_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -1245,6 +1247,7 @@ CONFIG_EXAMPLES_WEBSERVER_NOMAC=y # # CONFIG_NETUTILS_CODECS is not set # CONFIG_NETUTILS_DHCPD is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/stm3240g-eval/xmlrpc/defconfig b/configs/stm3240g-eval/xmlrpc/defconfig index 9768965985..010bb5d881 100644 --- a/configs/stm3240g-eval/xmlrpc/defconfig +++ b/configs/stm3240g-eval/xmlrpc/defconfig @@ -244,6 +244,7 @@ CONFIG_ARMV7M_HAVE_STACKCHECK=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -440,13 +441,17 @@ CONFIG_STM32_JTAG_FULL_ENABLE=y # CONFIG_STM32_TIM13_CAP is not set # CONFIG_STM32_TIM14_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART3_SERIALDRIVER=y +# CONFIG_STM32_USART3_1WIREDRIVER is not set # CONFIG_USART3_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # @@ -794,10 +799,6 @@ CONFIG_USART3_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y CONFIG_SERIAL_NPOLLWAITERS=2 @@ -1203,6 +1204,7 @@ CONFIG_EXAMPLES_XMLRPC_NETMASK=0xffffff00 # CONFIG_NETUTILS_CODECS is not set CONFIG_NETUTILS_DHCPC=y # CONFIG_NETUTILS_DHCPD is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_FTPD is not set # CONFIG_NETUTILS_JSON is not set diff --git a/configs/stm32_tiny/nsh/defconfig b/configs/stm32_tiny/nsh/defconfig index 854d8b8fe9..488ebd637b 100644 --- a/configs/stm32_tiny/nsh/defconfig +++ b/configs/stm32_tiny/nsh/defconfig @@ -76,6 +76,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -94,6 +95,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -115,6 +117,7 @@ CONFIG_ARCH_CORTEXM3=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -122,6 +125,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y # CONFIG_ARMV7M_LAZYFPU is not set # CONFIG_ARCH_HAVE_FPU is not set # CONFIG_ARCH_HAVE_DPFPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -132,6 +136,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set # CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set @@ -239,6 +244,7 @@ CONFIG_ARCH_CHIP_STM32F103C8=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -407,13 +413,17 @@ CONFIG_STM32_DISABLE_IDLE_SLEEP_DURING_DEBUG=y # CONFIG_STM32_TIM5_CAP is not set # CONFIG_STM32_TIM8_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART1_SERIALDRIVER=y +# CONFIG_STM32_USART1_1WIREDRIVER is not set # CONFIG_USART1_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # @@ -502,6 +512,7 @@ CONFIG_RAM_SIZE=20480 # Board Selection # CONFIG_ARCH_BOARD_STM32_TINY=y +# CONFIG_ARCH_BOARD_STM32F103_MINIMUM is not set # CONFIG_ARCH_BOARD_CUSTOM is not set CONFIG_ARCH_BOARD="stm32_tiny" @@ -710,10 +721,6 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y CONFIG_SERIAL_NPOLLWAITERS=2 @@ -866,6 +873,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # @@ -979,6 +988,7 @@ CONFIG_EXAMPLES_NSH=y # # CONFIG_NETUTILS_CHAT is not set # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/stm32_tiny/usbnsh/defconfig b/configs/stm32_tiny/usbnsh/defconfig index 930370b72a..18a9cdab67 100644 --- a/configs/stm32_tiny/usbnsh/defconfig +++ b/configs/stm32_tiny/usbnsh/defconfig @@ -76,6 +76,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -94,6 +95,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -115,6 +117,7 @@ CONFIG_ARCH_CORTEXM3=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -122,6 +125,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y # CONFIG_ARMV7M_LAZYFPU is not set # CONFIG_ARCH_HAVE_FPU is not set # CONFIG_ARCH_HAVE_DPFPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -132,6 +136,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set # CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set @@ -238,6 +243,7 @@ CONFIG_ARCH_CHIP_STM32F103C8=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -405,13 +411,17 @@ CONFIG_STM32_JTAG_FULL_ENABLE=y # CONFIG_STM32_TIM5_CAP is not set # CONFIG_STM32_TIM8_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART1_SERIALDRIVER=y +# CONFIG_STM32_USART1_1WIREDRIVER is not set # CONFIG_USART1_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set CONFIG_STM32_HAVE_RTC_COUNTER=y # CONFIG_STM32_HAVE_RTC_SUBSECONDS is not set @@ -495,6 +505,7 @@ CONFIG_RAM_SIZE=20480 # Board Selection # CONFIG_ARCH_BOARD_STM32_TINY=y +# CONFIG_ARCH_BOARD_STM32F103_MINIMUM is not set # CONFIG_ARCH_BOARD_CUSTOM is not set CONFIG_ARCH_BOARD="stm32_tiny" @@ -509,7 +520,14 @@ CONFIG_NSH_MMCSDMINOR=0 # Board-Specific Options # CONFIG_LIB_BOARDCTL=y +# CONFIG_BOARDCTL_RESET is not set +# CONFIG_BOARDCTL_UNIQUEID is not set CONFIG_BOARDCTL_USBDEVCTRL=y +# CONFIG_BOARDCTL_TSCTEST is not set +# CONFIG_BOARDCTL_ADCTEST is not set +# CONFIG_BOARDCTL_PWMTEST is not set +# CONFIG_BOARDCTL_GRAPHICS is not set +# CONFIG_BOARDCTL_IOCTL is not set # # RTOS Features @@ -685,10 +703,6 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -725,7 +739,6 @@ CONFIG_USBDEV_MAXPOWER=100 # CONFIG_ARCH_USBDEV_STALLQUEUE is not set CONFIG_USBDEV_TRACE=y CONFIG_USBDEV_TRACE_NRECORDS=32 -# CONFIG_USBDEV_TRACE_STRINGS is not set # CONFIG_USBDEV_TRACE_INITIALIDSET is not set # @@ -745,8 +758,8 @@ CONFIG_CDCACM_EPBULKOUT_HSSIZE=512 CONFIG_CDCACM_EPBULKIN=2 CONFIG_CDCACM_EPBULKIN_FSSIZE=64 CONFIG_CDCACM_EPBULKIN_HSSIZE=512 -CONFIG_CDCACM_NWRREQS=4 CONFIG_CDCACM_NRDREQS=4 +CONFIG_CDCACM_NWRREQS=4 CONFIG_CDCACM_BULKIN_REQLEN=96 CONFIG_CDCACM_RXBUFSIZE=256 CONFIG_CDCACM_TXBUFSIZE=256 @@ -874,6 +887,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # @@ -986,6 +1001,7 @@ CONFIG_EXAMPLES_NSH=y # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/stm32f103-minimum/nsh/defconfig b/configs/stm32f103-minimum/nsh/defconfig index 7a6a1b1a50..c489f2182c 100644 --- a/configs/stm32f103-minimum/nsh/defconfig +++ b/configs/stm32f103-minimum/nsh/defconfig @@ -243,6 +243,7 @@ CONFIG_ARCH_CHIP_STM32F103C8=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -410,10 +411,13 @@ CONFIG_STM32_DISABLE_IDLE_SLEEP_DURING_DEBUG=y # CONFIG_STM32_TIM5_CAP is not set # CONFIG_STM32_TIM8_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART1_SERIALDRIVER=y +# CONFIG_STM32_USART1_1WIREDRIVER is not set # CONFIG_USART1_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set @@ -702,10 +706,6 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y CONFIG_SERIAL_NPOLLWAITERS=2 @@ -965,6 +965,7 @@ CONFIG_EXAMPLES_NSH=y # # CONFIG_NETUTILS_CHAT is not set # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/stm32f103-minimum/usbnsh/defconfig b/configs/stm32f103-minimum/usbnsh/defconfig index bc956ebb70..84579e2f49 100644 --- a/configs/stm32f103-minimum/usbnsh/defconfig +++ b/configs/stm32f103-minimum/usbnsh/defconfig @@ -243,6 +243,7 @@ CONFIG_ARCH_CHIP_STM32F103C8=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -410,10 +411,13 @@ CONFIG_STM32_JTAG_FULL_ENABLE=y # CONFIG_STM32_TIM5_CAP is not set # CONFIG_STM32_TIM8_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART1_SERIALDRIVER=y +# CONFIG_STM32_USART1_1WIREDRIVER is not set # CONFIG_USART1_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set @@ -699,10 +703,6 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -1001,6 +1001,7 @@ CONFIG_EXAMPLES_NSH=y # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/stm32f3discovery/nsh/defconfig b/configs/stm32f3discovery/nsh/defconfig index 8b933dc816..9c48a2059a 100644 --- a/configs/stm32f3discovery/nsh/defconfig +++ b/configs/stm32f3discovery/nsh/defconfig @@ -80,6 +80,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -98,6 +99,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -119,6 +121,7 @@ CONFIG_ARCH_CORTEXM4=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -127,6 +130,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y CONFIG_ARCH_HAVE_FPU=y # CONFIG_ARCH_HAVE_DPFPU is not set # CONFIG_ARCH_FPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -137,6 +141,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARW is not set # CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDW is not set @@ -247,6 +252,7 @@ CONFIG_ARCH_CHIP_STM32F303VC=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -418,13 +424,17 @@ CONFIG_STM32_JTAG_SW_ENABLE=y # CONFIG_STM32_TIM4_CAP is not set # CONFIG_STM32_TIM8_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART2_SERIALDRIVER=y +# CONFIG_STM32_USART2_1WIREDRIVER is not set # CONFIG_USART2_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # CONFIG_STM32_HAVE_RTC_COUNTER is not set # CONFIG_STM32_HAVE_RTC_SUBSECONDS is not set @@ -526,7 +536,14 @@ CONFIG_NSH_MMCSDMINOR=0 # Board-Specific Options # CONFIG_LIB_BOARDCTL=y +# CONFIG_BOARDCTL_RESET is not set +# CONFIG_BOARDCTL_UNIQUEID is not set CONFIG_BOARDCTL_USBDEVCTRL=y +# CONFIG_BOARDCTL_TSCTEST is not set +# CONFIG_BOARDCTL_ADCTEST is not set +# CONFIG_BOARDCTL_PWMTEST is not set +# CONFIG_BOARDCTL_GRAPHICS is not set +# CONFIG_BOARDCTL_IOCTL is not set # # RTOS Features @@ -708,10 +725,6 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -765,8 +778,8 @@ CONFIG_CDCACM_EPBULKOUT_HSSIZE=512 CONFIG_CDCACM_EPBULKIN=2 CONFIG_CDCACM_EPBULKIN_FSSIZE=64 CONFIG_CDCACM_EPBULKIN_HSSIZE=512 -CONFIG_CDCACM_NWRREQS=4 CONFIG_CDCACM_NRDREQS=4 +CONFIG_CDCACM_NWRREQS=4 CONFIG_CDCACM_BULKIN_REQLEN=96 CONFIG_CDCACM_RXBUFSIZE=256 CONFIG_CDCACM_TXBUFSIZE=256 @@ -895,6 +908,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # @@ -1018,6 +1033,7 @@ CONFIG_EXAMPLES_NSH_CXXINITIALIZE=y # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/stm32f3discovery/usbnsh/defconfig b/configs/stm32f3discovery/usbnsh/defconfig index 0e4d84ecb5..ed5e23a9d9 100644 --- a/configs/stm32f3discovery/usbnsh/defconfig +++ b/configs/stm32f3discovery/usbnsh/defconfig @@ -121,6 +121,7 @@ CONFIG_ARCH_CORTEXM4=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -140,6 +141,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARW is not set # CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDW is not set @@ -250,6 +252,7 @@ CONFIG_ARCH_CHIP_STM32F303VC=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -422,13 +425,17 @@ CONFIG_STM32_JTAG_SW_ENABLE=y # CONFIG_STM32_TIM4_CAP is not set # CONFIG_STM32_TIM8_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART2_SERIALDRIVER=y +# CONFIG_STM32_USART2_1WIREDRIVER is not set # CONFIG_USART2_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # @@ -731,10 +738,6 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -1044,6 +1047,7 @@ CONFIG_EXAMPLES_NSH_CXXINITIALIZE=y # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/stm32f411e-disco/nsh/defconfig b/configs/stm32f411e-disco/nsh/defconfig index f8811cc2f4..e9719959a9 100644 --- a/configs/stm32f411e-disco/nsh/defconfig +++ b/configs/stm32f411e-disco/nsh/defconfig @@ -418,10 +418,13 @@ CONFIG_STM32_JTAG_SW_ENABLE=y # CONFIG_STM32_TIM10_CAP is not set # CONFIG_STM32_TIM11_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART2_SERIALDRIVER=y +# CONFIG_STM32_USART2_1WIREDRIVER is not set # CONFIG_USART2_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set @@ -700,10 +703,6 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -883,12 +882,6 @@ CONFIG_BUILTIN_PROXY_STACKSIZE=1024 # CAN Utilities # -# -# Custom -# -# CONFIG_CUSTOM_BRIDGE is not set -# CONFIG_CUSTOM_J1939 is not set - # # Examples # @@ -976,6 +969,7 @@ CONFIG_EXAMPLES_NSH=y # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/stm32f429i-disco/extflash/defconfig b/configs/stm32f429i-disco/extflash/defconfig index 29d4d4ea4d..f1601ff527 100644 --- a/configs/stm32f429i-disco/extflash/defconfig +++ b/configs/stm32f429i-disco/extflash/defconfig @@ -76,6 +76,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -94,6 +95,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -115,6 +117,7 @@ CONFIG_ARCH_CORTEXM4=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -123,6 +126,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y CONFIG_ARCH_HAVE_FPU=y # CONFIG_ARCH_HAVE_DPFPU is not set # CONFIG_ARCH_FPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -133,6 +137,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set # CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set @@ -239,6 +244,7 @@ CONFIG_ARMV7M_HAVE_STACKCHECK=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -440,13 +446,17 @@ CONFIG_STM32_FSMC_SRAM=y # CONFIG_STM32_TIM13_CAP is not set # CONFIG_STM32_TIM14_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART1_SERIALDRIVER=y +# CONFIG_STM32_USART1_1WIREDRIVER is not set # CONFIG_USART1_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # @@ -757,6 +767,7 @@ CONFIG_RAMMTD_ERASESTATE=0xff # CONFIG_MTD_AT45DB is not set # CONFIG_MTD_M25P is not set # CONFIG_MTD_S25FL1 is not set +# CONFIG_MTD_N25QXXX is not set CONFIG_MTD_SMART=y # CONFIG_SMART_DEV_LOOP is not set CONFIG_MTD_SMART_SECTOR_SIZE=512 @@ -773,6 +784,7 @@ CONFIG_SST25XX_SPIMODE=0 CONFIG_SST25XX_SPIFREQUENCY=20000000 CONFIG_SST25XX_MANUFACTURER=0xBF CONFIG_SST25XX_MEMORY_TYPE=0x25 +# CONFIG_MTD_SST26 is not set # CONFIG_MTD_SST39FV is not set # CONFIG_MTD_W25 is not set # CONFIG_EEPROM is not set @@ -806,10 +818,6 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -972,6 +980,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # CONFIG_NETDB_HOSTFILE is not set @@ -1103,6 +1113,7 @@ CONFIG_FSUTILS_MKSMARTFS=y # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/stm32f429i-disco/lcd/defconfig b/configs/stm32f429i-disco/lcd/defconfig index 7c6de91967..7d399bb399 100644 --- a/configs/stm32f429i-disco/lcd/defconfig +++ b/configs/stm32f429i-disco/lcd/defconfig @@ -77,6 +77,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -95,6 +96,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -116,6 +118,7 @@ CONFIG_ARCH_CORTEXM4=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -124,6 +127,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y CONFIG_ARCH_HAVE_FPU=y # CONFIG_ARCH_HAVE_DPFPU is not set # CONFIG_ARCH_FPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -134,6 +138,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL=y @@ -240,6 +245,7 @@ CONFIG_ARMV7M_HAVE_STACKCHECK=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -440,13 +446,17 @@ CONFIG_STM32_FSMC_SRAM=y # CONFIG_STM32_TIM13_CAP is not set # CONFIG_STM32_TIM14_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART1_SERIALDRIVER=y +# CONFIG_STM32_USART1_1WIREDRIVER is not set # CONFIG_USART1_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # CONFIG_STM32_HAVE_RTC_COUNTER is not set # CONFIG_STM32_HAVE_RTC_SUBSECONDS is not set @@ -778,10 +788,6 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -868,6 +874,7 @@ CONFIG_NX_LCDDRIVER=y CONFIG_NX_NPLANES=1 CONFIG_NX_BGCOLOR=0x0 # CONFIG_NX_WRITEONLY is not set +# CONFIG_NX_UPDATE is not set # # Supported Pixel Depths @@ -1016,6 +1023,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # @@ -1123,7 +1132,6 @@ CONFIG_EXAMPLES_NX_NOTIFYSIGNO=4 # CONFIG_EXAMPLES_TIFF is not set # CONFIG_EXAMPLES_TOUCHSCREEN is not set # CONFIG_EXAMPLES_WEBSERVER is not set -# CONFIG_EXAMPLES_USBSERIAL is not set # CONFIG_EXAMPLES_USBTERM is not set # CONFIG_EXAMPLES_WATCHDOG is not set @@ -1159,6 +1167,7 @@ CONFIG_EXAMPLES_NX_NOTIFYSIGNO=4 # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/stm32f429i-disco/ltdc/defconfig b/configs/stm32f429i-disco/ltdc/defconfig index a7882e2201..f4eb8234c7 100644 --- a/configs/stm32f429i-disco/ltdc/defconfig +++ b/configs/stm32f429i-disco/ltdc/defconfig @@ -102,6 +102,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -120,6 +121,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -141,6 +143,7 @@ CONFIG_ARCH_CORTEXM4=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -149,6 +152,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y CONFIG_ARCH_HAVE_FPU=y # CONFIG_ARCH_HAVE_DPFPU is not set # CONFIG_ARCH_FPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set # CONFIG_DEBUG_HARDFAULT is not set @@ -160,6 +164,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL=y @@ -266,6 +271,7 @@ CONFIG_ARMV7M_HAVE_STACKCHECK=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -468,13 +474,17 @@ CONFIG_STM32_FSMC_SRAM=y # CONFIG_STM32_TIM13_CAP is not set # CONFIG_STM32_TIM14_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART1_SERIALDRIVER=y +# CONFIG_STM32_USART1_1WIREDRIVER is not set # CONFIG_USART1_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # @@ -820,10 +830,6 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -919,6 +925,7 @@ CONFIG_NX_NPLANES=1 CONFIG_NX_BGCOLOR=0x0 # CONFIG_NX_ANTIALIASING is not set # CONFIG_NX_WRITEONLY is not set +# CONFIG_NX_UPDATE is not set # # Supported Pixel Depths @@ -1063,6 +1070,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # CONFIG_NETDB_HOSTFILE is not set @@ -1159,7 +1168,6 @@ CONFIG_EXAMPLES_NX_TOOLBAR_HEIGHT=16 # CONFIG_EXAMPLES_TIFF is not set # CONFIG_EXAMPLES_TOUCHSCREEN is not set # CONFIG_EXAMPLES_WEBSERVER is not set -# CONFIG_EXAMPLES_USBSERIAL is not set # CONFIG_EXAMPLES_USBTERM is not set # CONFIG_EXAMPLES_WATCHDOG is not set @@ -1197,6 +1205,7 @@ CONFIG_EXAMPLES_NX_TOOLBAR_HEIGHT=16 # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/stm32f429i-disco/nsh/defconfig b/configs/stm32f429i-disco/nsh/defconfig index e5061d7b10..37e776417d 100644 --- a/configs/stm32f429i-disco/nsh/defconfig +++ b/configs/stm32f429i-disco/nsh/defconfig @@ -76,6 +76,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -94,6 +95,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -115,6 +117,7 @@ CONFIG_ARCH_CORTEXM4=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -123,6 +126,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y CONFIG_ARCH_HAVE_FPU=y # CONFIG_ARCH_HAVE_DPFPU is not set # CONFIG_ARCH_FPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -133,6 +137,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set # CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set @@ -239,6 +244,7 @@ CONFIG_ARMV7M_HAVE_STACKCHECK=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -439,13 +445,17 @@ CONFIG_STM32_FSMC_SRAM=y # CONFIG_STM32_TIM13_CAP is not set # CONFIG_STM32_TIM14_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART1_SERIALDRIVER=y +# CONFIG_STM32_USART1_1WIREDRIVER is not set # CONFIG_USART1_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # CONFIG_STM32_HAVE_RTC_COUNTER is not set # CONFIG_STM32_HAVE_RTC_SUBSECONDS is not set @@ -736,10 +746,6 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -885,6 +891,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # @@ -972,7 +980,6 @@ CONFIG_EXAMPLES_NSH_CXXINITIALIZE=y # CONFIG_EXAMPLES_TIFF is not set # CONFIG_EXAMPLES_TOUCHSCREEN is not set # CONFIG_EXAMPLES_WEBSERVER is not set -# CONFIG_EXAMPLES_USBSERIAL is not set # CONFIG_EXAMPLES_USBTERM is not set # CONFIG_EXAMPLES_WATCHDOG is not set @@ -1008,6 +1015,7 @@ CONFIG_EXAMPLES_NSH_CXXINITIALIZE=y # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/stm32f429i-disco/usbmsc/defconfig b/configs/stm32f429i-disco/usbmsc/defconfig index 8ba6d3498e..802ff5915b 100644 --- a/configs/stm32f429i-disco/usbmsc/defconfig +++ b/configs/stm32f429i-disco/usbmsc/defconfig @@ -76,6 +76,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -94,6 +95,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -115,6 +117,7 @@ CONFIG_ARCH_CORTEXM4=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -123,6 +126,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y CONFIG_ARCH_HAVE_FPU=y # CONFIG_ARCH_HAVE_DPFPU is not set # CONFIG_ARCH_FPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -133,6 +137,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set # CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set @@ -242,6 +247,7 @@ CONFIG_ARMV7M_HAVE_STACKCHECK=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -442,13 +448,17 @@ CONFIG_STM32_FSMC_SRAM=y # CONFIG_STM32_TIM13_CAP is not set # CONFIG_STM32_TIM14_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART1_SERIALDRIVER=y +# CONFIG_STM32_USART1_1WIREDRIVER is not set # CONFIG_USART1_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # CONFIG_STM32_HAVE_RTC_COUNTER is not set # CONFIG_STM32_HAVE_RTC_SUBSECONDS is not set @@ -760,10 +770,6 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -926,6 +932,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # CONFIG_NETDB_HOSTFILE is not set @@ -1053,6 +1061,7 @@ CONFIG_EXAMPLES_NSH_CXXINITIALIZE=y # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/stm32f429i-disco/usbnsh/defconfig b/configs/stm32f429i-disco/usbnsh/defconfig index 2fcacfac99..0a9deac046 100644 --- a/configs/stm32f429i-disco/usbnsh/defconfig +++ b/configs/stm32f429i-disco/usbnsh/defconfig @@ -76,6 +76,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -94,6 +95,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -115,6 +117,7 @@ CONFIG_ARCH_CORTEXM4=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -123,6 +126,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y CONFIG_ARCH_HAVE_FPU=y # CONFIG_ARCH_HAVE_DPFPU is not set # CONFIG_ARCH_FPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -133,6 +137,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set # CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set @@ -239,6 +244,7 @@ CONFIG_ARMV7M_HAVE_STACKCHECK=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -439,13 +445,17 @@ CONFIG_STM32_FSMC_SRAM=y # CONFIG_STM32_TIM13_CAP is not set # CONFIG_STM32_TIM14_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART1_SERIALDRIVER=y +# CONFIG_STM32_USART1_1WIREDRIVER is not set # CONFIG_USART1_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # CONFIG_STM32_HAVE_RTC_COUNTER is not set # CONFIG_STM32_HAVE_RTC_SUBSECONDS is not set @@ -744,10 +754,6 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -801,8 +807,8 @@ CONFIG_CDCACM_EPBULKOUT_HSSIZE=512 CONFIG_CDCACM_EPBULKIN=2 CONFIG_CDCACM_EPBULKIN_FSSIZE=64 CONFIG_CDCACM_EPBULKIN_HSSIZE=512 -CONFIG_CDCACM_NWRREQS=4 CONFIG_CDCACM_NRDREQS=4 +CONFIG_CDCACM_NWRREQS=4 CONFIG_CDCACM_BULKIN_REQLEN=96 CONFIG_CDCACM_RXBUFSIZE=256 CONFIG_CDCACM_TXBUFSIZE=256 @@ -941,6 +947,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # CONFIG_NETDB_HOSTFILE is not set @@ -1068,6 +1076,7 @@ CONFIG_EXAMPLES_NSH_CXXINITIALIZE=y # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/stm32f4discovery/cxxtest/defconfig b/configs/stm32f4discovery/cxxtest/defconfig index ff82464253..7a4a6262ad 100644 --- a/configs/stm32f4discovery/cxxtest/defconfig +++ b/configs/stm32f4discovery/cxxtest/defconfig @@ -80,6 +80,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -98,6 +99,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -119,6 +121,7 @@ CONFIG_ARCH_CORTEXM4=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -127,6 +130,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y CONFIG_ARCH_HAVE_FPU=y # CONFIG_ARCH_HAVE_DPFPU is not set # CONFIG_ARCH_FPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -137,6 +141,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARW is not set # CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDW is not set @@ -247,6 +252,7 @@ CONFIG_ARMV7M_HAVE_STACKCHECK=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -442,13 +448,17 @@ CONFIG_STM32_JTAG_SW_ENABLE=y # CONFIG_STM32_TIM13_CAP is not set # CONFIG_STM32_TIM14_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART2_SERIALDRIVER=y +# CONFIG_STM32_USART2_1WIREDRIVER is not set # CONFIG_USART2_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # CONFIG_STM32_HAVE_RTC_COUNTER is not set # CONFIG_STM32_HAVE_RTC_SUBSECONDS is not set @@ -730,10 +740,6 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -867,6 +873,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # @@ -951,7 +959,6 @@ CONFIG_EXAMPLES_CXXTEST_CXXINITIALIZE=y # CONFIG_EXAMPLES_TIFF is not set # CONFIG_EXAMPLES_TOUCHSCREEN is not set # CONFIG_EXAMPLES_WEBSERVER is not set -# CONFIG_EXAMPLES_USBSERIAL is not set # CONFIG_EXAMPLES_USBTERM is not set # CONFIG_EXAMPLES_WATCHDOG is not set @@ -987,6 +994,7 @@ CONFIG_EXAMPLES_CXXTEST_CXXINITIALIZE=y # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/stm32f4discovery/elf/defconfig b/configs/stm32f4discovery/elf/defconfig index 0aed80c795..d31cbd08ca 100644 --- a/configs/stm32f4discovery/elf/defconfig +++ b/configs/stm32f4discovery/elf/defconfig @@ -80,6 +80,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -98,6 +99,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -119,6 +121,7 @@ CONFIG_ARCH_CORTEXM4=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y CONFIG_ARMV7M_USEBASEPRI=y CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -127,6 +130,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y CONFIG_ARCH_HAVE_FPU=y # CONFIG_ARCH_HAVE_DPFPU is not set # CONFIG_ARCH_FPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -137,6 +141,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARW is not set # CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDW is not set @@ -248,6 +253,7 @@ CONFIG_ARMV7M_HAVE_STACKCHECK=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -443,13 +449,17 @@ CONFIG_STM32_CCMEXCLUDE=y # CONFIG_STM32_TIM13_CAP is not set # CONFIG_STM32_TIM14_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART2_SERIALDRIVER=y +# CONFIG_STM32_USART2_1WIREDRIVER is not set # CONFIG_USART2_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # CONFIG_STM32_HAVE_RTC_COUNTER is not set # CONFIG_STM32_HAVE_RTC_SUBSECONDS is not set @@ -730,10 +740,6 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set # CONFIG_SERIAL_OFLOWCONTROL is not set @@ -881,6 +887,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # CONFIG_NETDB_HOSTFILE is not set @@ -968,7 +976,6 @@ CONFIG_EXAMPLES_ELF_DEVPATH="/dev/ram0" # CONFIG_EXAMPLES_TOUCHSCREEN is not set # CONFIG_EXAMPLES_WEBSERVER is not set # CONFIG_EXAMPLES_UNIONFS is not set -# CONFIG_EXAMPLES_USBSERIAL is not set # CONFIG_EXAMPLES_USBTERM is not set # CONFIG_EXAMPLES_WATCHDOG is not set @@ -1007,6 +1014,7 @@ CONFIG_EXAMPLES_ELF_DEVPATH="/dev/ram0" # # CONFIG_NETUTILS_CHAT is not set # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/stm32f4discovery/ipv6/defconfig b/configs/stm32f4discovery/ipv6/defconfig index cf084013ad..9c276b4e9b 100644 --- a/configs/stm32f4discovery/ipv6/defconfig +++ b/configs/stm32f4discovery/ipv6/defconfig @@ -80,6 +80,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -98,6 +99,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -119,6 +121,7 @@ CONFIG_ARCH_CORTEXM4=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -127,6 +130,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y CONFIG_ARCH_HAVE_FPU=y # CONFIG_ARCH_HAVE_DPFPU is not set # CONFIG_ARCH_FPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -137,6 +141,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARW is not set # CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDW is not set @@ -249,6 +254,7 @@ CONFIG_SDIO_DMA=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -446,14 +452,18 @@ CONFIG_STM32_DMACAPABLE=y # CONFIG_STM32_TIM13_CAP is not set # CONFIG_STM32_TIM14_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART6_SERIALDRIVER=y +# CONFIG_STM32_USART6_1WIREDRIVER is not set # CONFIG_USART6_RS485 is not set # CONFIG_USART6_RXDMA is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # @@ -840,10 +850,6 @@ CONFIG_USART6_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -1115,6 +1121,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set CONFIG_LIBC_NETDB=y # CONFIG_NETDB_HOSTFILE is not set # CONFIG_NETDB_DNSCLIENT is not set @@ -1247,6 +1255,7 @@ CONFIG_EXAMPLES_NSH_CXXINITIALIZE=y # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/stm32f4discovery/kostest/defconfig b/configs/stm32f4discovery/kostest/defconfig index 75ea757002..c3f1854877 100644 --- a/configs/stm32f4discovery/kostest/defconfig +++ b/configs/stm32f4discovery/kostest/defconfig @@ -85,6 +85,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -103,6 +104,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -124,6 +126,7 @@ CONFIG_ARCH_CORTEXM4=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -132,6 +135,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y CONFIG_ARCH_HAVE_FPU=y # CONFIG_ARCH_HAVE_DPFPU is not set # CONFIG_ARCH_FPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y CONFIG_ARM_MPU=y CONFIG_ARM_MPU_NREGIONS=8 @@ -143,6 +147,7 @@ CONFIG_ARM_MPU_NREGIONS=8 # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARW is not set # CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDW is not set @@ -253,6 +258,7 @@ CONFIG_ARMV7M_HAVE_STACKCHECK=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -448,13 +454,17 @@ CONFIG_STM32_JTAG_SW_ENABLE=y # CONFIG_STM32_TIM13_CAP is not set # CONFIG_STM32_TIM14_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART2_SERIALDRIVER=y +# CONFIG_STM32_USART2_1WIREDRIVER is not set # CONFIG_USART2_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # CONFIG_STM32_HAVE_RTC_COUNTER is not set # CONFIG_STM32_HAVE_RTC_SUBSECONDS is not set @@ -738,10 +748,6 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set # CONFIG_SERIAL_OFLOWCONTROL is not set @@ -875,6 +881,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # @@ -952,7 +960,6 @@ CONFIG_EXAMPLES_OSTEST_WAITRESULT=y # CONFIG_EXAMPLES_TIFF is not set # CONFIG_EXAMPLES_TOUCHSCREEN is not set # CONFIG_EXAMPLES_WEBSERVER is not set -# CONFIG_EXAMPLES_USBSERIAL is not set # CONFIG_EXAMPLES_USBTERM is not set # CONFIG_EXAMPLES_WATCHDOG is not set @@ -988,6 +995,7 @@ CONFIG_EXAMPLES_OSTEST_WAITRESULT=y # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/stm32f4discovery/netnsh/defconfig b/configs/stm32f4discovery/netnsh/defconfig index 819ccc8abb..21fa2ec42f 100644 --- a/configs/stm32f4discovery/netnsh/defconfig +++ b/configs/stm32f4discovery/netnsh/defconfig @@ -121,6 +121,7 @@ CONFIG_ARCH_CORTEXM4=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -140,6 +141,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARW is not set # CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDW is not set @@ -252,6 +254,7 @@ CONFIG_SDIO_DMA=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -449,14 +452,18 @@ CONFIG_STM32_DMACAPABLE=y # CONFIG_STM32_TIM13_CAP is not set # CONFIG_STM32_TIM14_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART6_SERIALDRIVER=y +# CONFIG_STM32_USART6_1WIREDRIVER is not set # CONFIG_USART6_RS485 is not set # CONFIG_USART6_RXDMA is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # @@ -845,10 +852,6 @@ CONFIG_USART6_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -1265,6 +1268,7 @@ CONFIG_EXAMPLES_NSH_CXXINITIALIZE=y # CONFIG_NETUTILS_CODECS is not set # CONFIG_NETUTILS_DHCPC is not set # CONFIG_NETUTILS_DHCPD is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/stm32f4discovery/nsh/defconfig b/configs/stm32f4discovery/nsh/defconfig index ada9987412..e57c9fd05e 100644 --- a/configs/stm32f4discovery/nsh/defconfig +++ b/configs/stm32f4discovery/nsh/defconfig @@ -80,6 +80,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -98,6 +99,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -119,6 +121,7 @@ CONFIG_ARCH_CORTEXM4=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -127,6 +130,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y CONFIG_ARCH_HAVE_FPU=y # CONFIG_ARCH_HAVE_DPFPU is not set # CONFIG_ARCH_FPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -137,6 +141,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARW is not set # CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDW is not set @@ -247,6 +252,7 @@ CONFIG_ARMV7M_HAVE_STACKCHECK=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -443,13 +449,17 @@ CONFIG_STM32_JTAG_SW_ENABLE=y # CONFIG_STM32_TIM13_CAP is not set # CONFIG_STM32_TIM14_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART2_SERIALDRIVER=y +# CONFIG_STM32_USART2_1WIREDRIVER is not set # CONFIG_USART2_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # @@ -745,10 +755,6 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -900,6 +906,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # CONFIG_NETDB_HOSTFILE is not set @@ -988,7 +996,6 @@ CONFIG_EXAMPLES_NSH_CXXINITIALIZE=y # CONFIG_EXAMPLES_TIFF is not set # CONFIG_EXAMPLES_TOUCHSCREEN is not set # CONFIG_EXAMPLES_WEBSERVER is not set -# CONFIG_EXAMPLES_USBSERIAL is not set # CONFIG_EXAMPLES_USBTERM is not set # CONFIG_EXAMPLES_WATCHDOG is not set @@ -1026,6 +1033,7 @@ CONFIG_EXAMPLES_NSH_CXXINITIALIZE=y # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/stm32f4discovery/nxlines/defconfig b/configs/stm32f4discovery/nxlines/defconfig index 446ec54c27..284eef1c4c 100644 --- a/configs/stm32f4discovery/nxlines/defconfig +++ b/configs/stm32f4discovery/nxlines/defconfig @@ -80,6 +80,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -98,6 +99,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -119,6 +121,7 @@ CONFIG_ARCH_CORTEXM4=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -127,6 +130,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y CONFIG_ARCH_HAVE_FPU=y # CONFIG_ARCH_HAVE_DPFPU is not set # CONFIG_ARCH_FPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -137,6 +141,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARW is not set # CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDW is not set @@ -247,6 +252,7 @@ CONFIG_ARMV7M_HAVE_STACKCHECK=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -444,13 +450,17 @@ CONFIG_STM32_JTAG_SW_ENABLE=y # CONFIG_STM32_TIM13_CAP is not set # CONFIG_STM32_TIM14_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART2_SERIALDRIVER=y +# CONFIG_STM32_USART2_1WIREDRIVER is not set # CONFIG_USART2_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # @@ -785,10 +795,6 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -882,6 +888,7 @@ CONFIG_NX_LCDDRIVER=y CONFIG_NX_NPLANES=1 CONFIG_NX_BGCOLOR=0x0 # CONFIG_NX_WRITEONLY is not set +# CONFIG_NX_UPDATE is not set # # Supported Pixel Depths @@ -1027,6 +1034,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # CONFIG_NETDB_HOSTFILE is not set @@ -1120,7 +1129,6 @@ CONFIG_EXAMPLES_NXLINES_BPP=16 # CONFIG_EXAMPLES_TIFF is not set # CONFIG_EXAMPLES_TOUCHSCREEN is not set # CONFIG_EXAMPLES_WEBSERVER is not set -# CONFIG_EXAMPLES_USBSERIAL is not set # CONFIG_EXAMPLES_USBTERM is not set # CONFIG_EXAMPLES_WATCHDOG is not set @@ -1158,6 +1166,7 @@ CONFIG_EXAMPLES_NXLINES_BPP=16 # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/stm32f4discovery/pm/defconfig b/configs/stm32f4discovery/pm/defconfig index d2499cde60..f9444cbdbe 100644 --- a/configs/stm32f4discovery/pm/defconfig +++ b/configs/stm32f4discovery/pm/defconfig @@ -80,6 +80,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -98,6 +99,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -119,6 +121,7 @@ CONFIG_ARCH_CORTEXM4=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -127,6 +130,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y CONFIG_ARCH_HAVE_FPU=y # CONFIG_ARCH_HAVE_DPFPU is not set # CONFIG_ARCH_FPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -137,6 +141,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARW is not set # CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDW is not set @@ -247,6 +252,7 @@ CONFIG_ARMV7M_HAVE_STACKCHECK=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -443,13 +449,17 @@ CONFIG_STM32_JTAG_SW_ENABLE=y # CONFIG_STM32_TIM13_CAP is not set # CONFIG_STM32_TIM14_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART2_SERIALDRIVER=y +# CONFIG_STM32_USART2_1WIREDRIVER is not set # CONFIG_USART2_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # CONFIG_STM32_HAVE_RTC_COUNTER is not set # CONFIG_STM32_HAVE_RTC_SUBSECONDS is not set @@ -700,6 +710,7 @@ CONFIG_ARCH_HAVE_I2CRESET=y CONFIG_RTC=y CONFIG_RTC_DATETIME=y CONFIG_RTC_ALARM=y +CONFIG_RTC_NALARMS=1 # CONFIG_RTC_DRIVER is not set # CONFIG_RTC_EXTERNAL is not set # CONFIG_WATCHDOG is not set @@ -723,6 +734,24 @@ CONFIG_RTC_ALARM=y # CONFIG_EEPROM is not set # CONFIG_PIPES is not set CONFIG_PM=y +CONFIG_PM_SLICEMS=100 +CONFIG_PM_NDOMAINS=1 +CONFIG_PM_MEMORY=2 +CONFIG_PM_COEFN=1 +CONFIG_PM_COEF1=1 +CONFIG_PM_COEF2=1 +CONFIG_PM_COEF3=1 +CONFIG_PM_COEF4=1 +CONFIG_PM_COEF5=1 +CONFIG_PM_IDLEENTER_THRESH=1 +CONFIG_PM_IDLEEXIT_THRESH=2 +CONFIG_PM_IDLEENTER_COUNT=30 +CONFIG_PM_STANDBYENTER_THRESH=1 +CONFIG_PM_STANDBYEXIT_THRESH=2 +CONFIG_PM_STANDBYENTER_COUNT=50 +CONFIG_PM_SLEEPENTER_THRESH=1 +CONFIG_PM_SLEEPEXIT_THRESH=2 +CONFIG_PM_SLEEPENTER_COUNT=70 # CONFIG_POWER is not set # CONFIG_SENSORS is not set # CONFIG_SERCOMM_CONSOLE is not set @@ -751,10 +780,6 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -906,6 +931,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # CONFIG_NETDB_HOSTFILE is not set @@ -995,7 +1022,6 @@ CONFIG_EXAMPLES_NSH_CXXINITIALIZE=y # CONFIG_EXAMPLES_TIFF is not set # CONFIG_EXAMPLES_TOUCHSCREEN is not set # CONFIG_EXAMPLES_WEBSERVER is not set -# CONFIG_EXAMPLES_USBSERIAL is not set # CONFIG_EXAMPLES_USBTERM is not set # CONFIG_EXAMPLES_WATCHDOG is not set @@ -1033,6 +1059,7 @@ CONFIG_EXAMPLES_NSH_CXXINITIALIZE=y # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/stm32f4discovery/posix_spawn/defconfig b/configs/stm32f4discovery/posix_spawn/defconfig index 02452b3557..2eaef40473 100644 --- a/configs/stm32f4discovery/posix_spawn/defconfig +++ b/configs/stm32f4discovery/posix_spawn/defconfig @@ -80,6 +80,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -98,6 +99,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -119,6 +121,7 @@ CONFIG_ARCH_CORTEXM4=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -127,6 +130,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y CONFIG_ARCH_HAVE_FPU=y # CONFIG_ARCH_HAVE_DPFPU is not set # CONFIG_ARCH_FPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -137,6 +141,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARW is not set # CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDW is not set @@ -248,6 +253,7 @@ CONFIG_ARMV7M_HAVE_STACKCHECK=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -443,13 +449,17 @@ CONFIG_STM32_CCMEXCLUDE=y # CONFIG_STM32_TIM13_CAP is not set # CONFIG_STM32_TIM14_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART2_SERIALDRIVER=y +# CONFIG_STM32_USART2_1WIREDRIVER is not set # CONFIG_USART2_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # CONFIG_STM32_HAVE_RTC_COUNTER is not set # CONFIG_STM32_HAVE_RTC_SUBSECONDS is not set @@ -730,10 +740,6 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set # CONFIG_SERIAL_OFLOWCONTROL is not set @@ -884,6 +890,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # CONFIG_NETDB_HOSTFILE is not set @@ -970,7 +978,6 @@ CONFIG_EXAMPLES_POSIXSPAWN_DEVPATH="/dev/ram0" # CONFIG_EXAMPLES_TOUCHSCREEN is not set # CONFIG_EXAMPLES_WEBSERVER is not set # CONFIG_EXAMPLES_UNIONFS is not set -# CONFIG_EXAMPLES_USBSERIAL is not set # CONFIG_EXAMPLES_USBTERM is not set # CONFIG_EXAMPLES_WATCHDOG is not set @@ -1009,6 +1016,7 @@ CONFIG_EXAMPLES_POSIXSPAWN_DEVPATH="/dev/ram0" # # CONFIG_NETUTILS_CHAT is not set # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/stm32f4discovery/rgbled/defconfig b/configs/stm32f4discovery/rgbled/defconfig index f9c11a58b4..2702367671 100644 --- a/configs/stm32f4discovery/rgbled/defconfig +++ b/configs/stm32f4discovery/rgbled/defconfig @@ -102,6 +102,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -120,6 +121,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -141,6 +143,7 @@ CONFIG_ARCH_CORTEXM4=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -149,6 +152,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y CONFIG_ARCH_HAVE_FPU=y # CONFIG_ARCH_HAVE_DPFPU is not set # CONFIG_ARCH_FPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set # CONFIG_DEBUG_HARDFAULT is not set @@ -160,6 +164,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set # CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set @@ -266,6 +271,7 @@ CONFIG_ARMV7M_HAVE_STACKCHECK=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -475,13 +481,17 @@ CONFIG_STM32_TIM3_CHMODE=0 # CONFIG_STM32_TIM13_CAP is not set # CONFIG_STM32_TIM14_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART2_SERIALDRIVER=y +# CONFIG_STM32_USART2_1WIREDRIVER is not set # CONFIG_USART2_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # @@ -779,10 +789,6 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -935,6 +941,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # CONFIG_NETDB_HOSTFILE is not set @@ -1026,7 +1034,6 @@ CONFIG_EXAMPLES_RGBLED_STACKSIZE=2048 # CONFIG_EXAMPLES_TIFF is not set # CONFIG_EXAMPLES_TOUCHSCREEN is not set # CONFIG_EXAMPLES_WEBSERVER is not set -# CONFIG_EXAMPLES_USBSERIAL is not set # CONFIG_EXAMPLES_USBTERM is not set # CONFIG_EXAMPLES_WATCHDOG is not set @@ -1064,6 +1071,7 @@ CONFIG_EXAMPLES_RGBLED_STACKSIZE=2048 # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/stm32f4discovery/usbnsh/defconfig b/configs/stm32f4discovery/usbnsh/defconfig index bceb08eac9..66134476b7 100644 --- a/configs/stm32f4discovery/usbnsh/defconfig +++ b/configs/stm32f4discovery/usbnsh/defconfig @@ -80,6 +80,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -98,6 +99,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -119,6 +121,7 @@ CONFIG_ARCH_CORTEXM4=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -127,6 +130,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y CONFIG_ARCH_HAVE_FPU=y # CONFIG_ARCH_HAVE_DPFPU is not set # CONFIG_ARCH_FPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -137,6 +141,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARW is not set # CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDW is not set @@ -247,6 +252,7 @@ CONFIG_ARMV7M_HAVE_STACKCHECK=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -443,13 +449,17 @@ CONFIG_STM32_JTAG_SW_ENABLE=y # CONFIG_STM32_TIM13_CAP is not set # CONFIG_STM32_TIM14_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART2_SERIALDRIVER=y +# CONFIG_STM32_USART2_1WIREDRIVER is not set # CONFIG_USART2_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # @@ -753,10 +763,6 @@ CONFIG_USART2_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -810,8 +816,8 @@ CONFIG_CDCACM_EPBULKOUT_HSSIZE=512 CONFIG_CDCACM_EPBULKIN=2 CONFIG_CDCACM_EPBULKIN_FSSIZE=64 CONFIG_CDCACM_EPBULKIN_HSSIZE=512 -CONFIG_CDCACM_NWRREQS=4 CONFIG_CDCACM_NRDREQS=4 +CONFIG_CDCACM_NWRREQS=4 CONFIG_CDCACM_BULKIN_REQLEN=96 CONFIG_CDCACM_RXBUFSIZE=256 CONFIG_CDCACM_TXBUFSIZE=256 @@ -949,6 +955,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # CONFIG_NETDB_HOSTFILE is not set @@ -1075,6 +1083,7 @@ CONFIG_EXAMPLES_NSH_CXXINITIALIZE=y # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/stm32ldiscovery/nsh/defconfig b/configs/stm32ldiscovery/nsh/defconfig index c81b4344ab..d497e5e5d9 100644 --- a/configs/stm32ldiscovery/nsh/defconfig +++ b/configs/stm32ldiscovery/nsh/defconfig @@ -80,6 +80,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -98,6 +99,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -119,6 +121,7 @@ CONFIG_ARCH_CORTEXM3=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -126,6 +129,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y # CONFIG_ARMV7M_LAZYFPU is not set # CONFIG_ARCH_HAVE_FPU is not set # CONFIG_ARCH_HAVE_DPFPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -136,6 +140,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARW is not set # CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDW is not set @@ -246,6 +251,7 @@ CONFIG_ARCH_CHIP_STM32L152RB=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -412,13 +418,17 @@ CONFIG_STM32_JTAG_SW_ENABLE=y # CONFIG_STM32_TIM10_CAP is not set # CONFIG_STM32_TIM11_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART1_SERIALDRIVER=y +# CONFIG_STM32_USART1_1WIREDRIVER is not set # CONFIG_USART1_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set # CONFIG_STM32_HAVE_RTC_COUNTER is not set CONFIG_STM32_HAVE_RTC_SUBSECONDS=y @@ -691,10 +701,6 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -823,6 +829,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # @@ -894,7 +902,6 @@ CONFIG_EXAMPLES_NSH=y # CONFIG_EXAMPLES_TIFF is not set # CONFIG_EXAMPLES_TOUCHSCREEN is not set # CONFIG_EXAMPLES_WEBSERVER is not set -# CONFIG_EXAMPLES_USBSERIAL is not set # CONFIG_EXAMPLES_USBTERM is not set # CONFIG_EXAMPLES_WATCHDOG is not set @@ -930,6 +937,7 @@ CONFIG_EXAMPLES_NSH=y # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/stm32vldiscovery/nsh/defconfig b/configs/stm32vldiscovery/nsh/defconfig index 19ac81a47d..d1911fb961 100644 --- a/configs/stm32vldiscovery/nsh/defconfig +++ b/configs/stm32vldiscovery/nsh/defconfig @@ -80,6 +80,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_DM320 is not set # CONFIG_ARCH_CHIP_EFM32 is not set # CONFIG_ARCH_CHIP_IMX1 is not set +# CONFIG_ARCH_CHIP_IMX6 is not set # CONFIG_ARCH_CHIP_KINETIS is not set # CONFIG_ARCH_CHIP_KL is not set # CONFIG_ARCH_CHIP_LM is not set @@ -98,6 +99,7 @@ CONFIG_ARCH="arm" # CONFIG_ARCH_CHIP_SAMV7 is not set CONFIG_ARCH_CHIP_STM32=y # CONFIG_ARCH_CHIP_STM32F7 is not set +# CONFIG_ARCH_CHIP_STM32L4 is not set # CONFIG_ARCH_CHIP_STR71X is not set # CONFIG_ARCH_CHIP_TMS570 is not set # CONFIG_ARCH_CHIP_MOXART is not set @@ -119,6 +121,7 @@ CONFIG_ARCH_CORTEXM3=y # CONFIG_ARCH_CORTEXR7F is not set CONFIG_ARCH_FAMILY="armv7-m" CONFIG_ARCH_CHIP="stm32" +# CONFIG_ARM_TOOLCHAIN_IAR is not set CONFIG_ARM_TOOLCHAIN_GNU=y # CONFIG_ARMV7M_USEBASEPRI is not set CONFIG_ARCH_HAVE_CMNVECTOR=y @@ -126,6 +129,7 @@ CONFIG_ARMV7M_CMNVECTOR=y # CONFIG_ARMV7M_LAZYFPU is not set # CONFIG_ARCH_HAVE_FPU is not set # CONFIG_ARCH_HAVE_DPFPU is not set +# CONFIG_ARCH_HAVE_TRUSTZONE is not set CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARM_MPU is not set @@ -136,6 +140,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y # CONFIG_ARMV7M_HAVE_DCACHE is not set # CONFIG_ARMV7M_HAVE_ITCM is not set # CONFIG_ARMV7M_HAVE_DTCM is not set +# CONFIG_ARMV7M_TOOLCHAIN_IARW is not set # CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_ARMV7M_TOOLCHAIN_CODEREDW is not set @@ -246,6 +251,7 @@ CONFIG_ARCH_CHIP_STM32F100RB=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -415,13 +421,17 @@ CONFIG_STM32_JTAG_FULL_ENABLE=y # CONFIG_STM32_TIM13_CAP is not set # CONFIG_STM32_TIM14_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART1_SERIALDRIVER=y +# CONFIG_STM32_USART1_1WIREDRIVER is not set # CONFIG_USART1_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set CONFIG_STM32_HAVE_RTC_COUNTER=y # CONFIG_STM32_HAVE_RTC_SUBSECONDS is not set @@ -710,10 +720,6 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y # CONFIG_SERIAL_IFLOWCONTROL is not set @@ -866,6 +872,8 @@ CONFIG_ARCH_LOWPUTC=y CONFIG_LIB_SENDFILE_BUFSIZE=512 # CONFIG_ARCH_ROMGETC is not set # CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set +CONFIG_ARCH_HAVE_TLS=y +# CONFIG_TLS is not set # CONFIG_LIBC_NETDB is not set # CONFIG_NETDB_HOSTFILE is not set @@ -944,7 +952,6 @@ CONFIG_EXAMPLES_NSH=y # CONFIG_EXAMPLES_TIFF is not set # CONFIG_EXAMPLES_TOUCHSCREEN is not set # CONFIG_EXAMPLES_WEBSERVER is not set -# CONFIG_EXAMPLES_USBSERIAL is not set # CONFIG_EXAMPLES_USBTERM is not set # CONFIG_EXAMPLES_WATCHDOG is not set @@ -982,6 +989,7 @@ CONFIG_EXAMPLES_NSH=y # Network Utilities # # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/viewtool-stm32f107/highpri/defconfig b/configs/viewtool-stm32f107/highpri/defconfig index 00dd939849..0fcfc13a51 100644 --- a/configs/viewtool-stm32f107/highpri/defconfig +++ b/configs/viewtool-stm32f107/highpri/defconfig @@ -251,6 +251,7 @@ CONFIG_ARCH_CHIP_STM32F103VC=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -421,13 +422,17 @@ CONFIG_STM32_JTAG_FULL_ENABLE=y # CONFIG_STM32_TIM5_CAP is not set # CONFIG_STM32_TIM8_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART1_SERIALDRIVER=y +# CONFIG_STM32_USART1_1WIREDRIVER is not set # CONFIG_USART1_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set CONFIG_STM32_HAVE_RTC_COUNTER=y # CONFIG_STM32_HAVE_RTC_SUBSECONDS is not set @@ -714,10 +719,6 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y CONFIG_SERIAL_NPOLLWAITERS=2 @@ -971,6 +972,7 @@ CONFIG_ARCH_HAVE_TLS=y # # CONFIG_NETUTILS_CHAT is not set # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set diff --git a/configs/viewtool-stm32f107/netnsh/defconfig b/configs/viewtool-stm32f107/netnsh/defconfig index d937ddfe50..f6f1b6b4d1 100644 --- a/configs/viewtool-stm32f107/netnsh/defconfig +++ b/configs/viewtool-stm32f107/netnsh/defconfig @@ -251,6 +251,7 @@ CONFIG_ARCH_CHIP_STM32F107VC=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -420,13 +421,17 @@ CONFIG_STM32_JTAG_FULL_ENABLE=y # CONFIG_STM32_TIM5_CAP is not set # CONFIG_STM32_TIM8_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART1_SERIALDRIVER=y +# CONFIG_STM32_USART1_1WIREDRIVER is not set # CONFIG_USART1_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set CONFIG_STM32_HAVE_RTC_COUNTER=y # CONFIG_STM32_HAVE_RTC_SUBSECONDS is not set @@ -773,10 +778,6 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y CONFIG_SERIAL_NPOLLWAITERS=2 @@ -1161,6 +1162,7 @@ CONFIG_EXAMPLES_NSH=y # CONFIG_NETUTILS_CODECS is not set CONFIG_NETUTILS_DHCPC=y # CONFIG_NETUTILS_DHCPD is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_FTPD is not set # CONFIG_NETUTILS_JSON is not set diff --git a/configs/viewtool-stm32f107/nsh/defconfig b/configs/viewtool-stm32f107/nsh/defconfig index f3e15c40ed..eac5f7d914 100644 --- a/configs/viewtool-stm32f107/nsh/defconfig +++ b/configs/viewtool-stm32f107/nsh/defconfig @@ -251,6 +251,7 @@ CONFIG_ARCH_CHIP_STM32F107VC=y # CONFIG_ARCH_CHIP_STM32F373VC is not set # CONFIG_ARCH_CHIP_STM32F401RE is not set # CONFIG_ARCH_CHIP_STM32F411RE is not set +# CONFIG_ARCH_CHIP_STM32F411VE is not set # CONFIG_ARCH_CHIP_STM32F405RG is not set # CONFIG_ARCH_CHIP_STM32F405VG is not set # CONFIG_ARCH_CHIP_STM32F405ZG is not set @@ -419,13 +420,17 @@ CONFIG_STM32_JTAG_FULL_ENABLE=y # CONFIG_STM32_TIM5_CAP is not set # CONFIG_STM32_TIM8_CAP is not set CONFIG_STM32_USART=y +CONFIG_STM32_SERIALDRIVER=y # # U[S]ART Configuration # +CONFIG_STM32_USART1_SERIALDRIVER=y +# CONFIG_STM32_USART1_1WIREDRIVER is not set # CONFIG_USART1_RS485 is not set # CONFIG_SERIAL_DISABLE_REORDERING is not set # CONFIG_STM32_FLOWCONTROL_BROKEN is not set +# CONFIG_STM32_USART_BREAKS is not set # CONFIG_STM32_USART_SINGLEWIRE is not set CONFIG_STM32_HAVE_RTC_COUNTER=y # CONFIG_STM32_HAVE_RTC_SUBSECONDS is not set @@ -712,10 +717,6 @@ CONFIG_USART1_SERIALDRIVER=y # CONFIG_USART7_SERIALDRIVER is not set # CONFIG_USART8_SERIALDRIVER is not set # CONFIG_OTHER_UART_SERIALDRIVER is not set - -# -# USART Configuration -# CONFIG_MCU_SERIAL=y CONFIG_STANDARD_SERIAL=y CONFIG_SERIAL_NPOLLWAITERS=2 @@ -975,6 +976,7 @@ CONFIG_EXAMPLES_NSH=y # # CONFIG_NETUTILS_CHAT is not set # CONFIG_NETUTILS_CODECS is not set +# CONFIG_NETUTILS_ESP8266 is not set # CONFIG_NETUTILS_FTPC is not set # CONFIG_NETUTILS_JSON is not set # CONFIG_NETUTILS_SMTP is not set -- GitLab From 4afc4964edd8d0da5889d81c2236e00c95488bdb Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 25 May 2016 13:05:03 -0600 Subject: [PATCH 254/307] SAM34 TWI: Missing semicolon --- arch/arm/src/sama5/sam_twi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/src/sama5/sam_twi.c b/arch/arm/src/sama5/sam_twi.c index c9b17e11e2..14df0f62a4 100644 --- a/arch/arm/src/sama5/sam_twi.c +++ b/arch/arm/src/sama5/sam_twi.c @@ -1200,7 +1200,7 @@ static void twi_hw_initialize(struct twi_dev_s *priv, uint32_t frequency) /* Set the initial TWI data transfer frequency */ - priv->frequency = 0 + priv->frequency = 0; twi_setfrequency(priv, frequency); /* Enable Interrupts */ -- GitLab From 78e08bbeeafad21df415191c7b3cb882ca2db08e Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 25 May 2016 13:29:01 -0600 Subject: [PATCH 255/307] Purely cosmetic change from review of last PR --- arch/arm/src/common/up_createstack.c | 2 +- configs/nucleo-l476rg/include/board.h | 31 ++++++++++++++--------- configs/nucleo-l476rg/src/stm32_appinit.c | 4 +-- 3 files changed, 22 insertions(+), 15 deletions(-) diff --git a/arch/arm/src/common/up_createstack.c b/arch/arm/src/common/up_createstack.c index eb5986835f..c3aa9d7adb 100644 --- a/arch/arm/src/common/up_createstack.c +++ b/arch/arm/src/common/up_createstack.c @@ -264,7 +264,7 @@ int up_create_stack(FAR struct tcb_s *tcb, size_t stack_size, uint8_t ttype) * water marks. */ - stack_base = (uintptr_t)tcb->stack_alloc_ptr + sizeof(struct tls_info_s); + stack_base = (uintptr_t)tcb->stack_alloc_ptr + sizeof(struct tls_info_s); stack_size = tcb->adj_stack_size - sizeof(struct tls_info_s); up_stack_color((FAR void *)stack_base, stack_size); diff --git a/configs/nucleo-l476rg/include/board.h b/configs/nucleo-l476rg/include/board.h index 0c3131abc3..32462f2477 100644 --- a/configs/nucleo-l476rg/include/board.h +++ b/configs/nucleo-l476rg/include/board.h @@ -1,7 +1,7 @@ /************************************************************************************ * configs/nucleo-l476rg/include/board.h * - * Copyright (C) 2014 Gregory Nutt. All rights reserved. + * Copyright (C) 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -64,7 +64,7 @@ /* Values defined in arch/arm/src/stm32l4/chip/stm32l4x6xx_dma.h */ -#define DMACHAN_SDMMC DMACHAN_SDMMC_1 /* 2 choices */ +#define DMACHAN_SDMMC DMACHAN_SDMMC_1 /* 2 choices */ #define DMACHAN_SPI1_RX DMACHAN_SPI1_RX_1 /* 2 choices */ #define DMACHAN_SPI1_TX DMACHAN_SPI1_TX_1 /* 2 choices */ @@ -109,22 +109,29 @@ * but are normally-high GPIOs. */ -#define GPIO_I2C1_SCL (GPIO_I2C1_SCL_2|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET) -#define GPIO_I2C1_SDA (GPIO_I2C1_SDA_2|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET) +#define GPIO_I2C1_SCL \ + (GPIO_I2C1_SCL_2 | GPIO_OPENDRAIN | GPIO_SPEED_50MHz | GPIO_OUTPUT_SET) +#define GPIO_I2C1_SDA \ + (GPIO_I2C1_SDA_2 | GPIO_OPENDRAIN | GPIO_SPEED_50MHz | GPIO_OUTPUT_SET) #define GPIO_I2C1_SCL_GPIO \ - (GPIO_OUTPUT|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN8) + (GPIO_OUTPUT | GPIO_OPENDRAIN | GPIO_SPEED_50MHz | GPIO_OUTPUT_SET | \ + GPIO_PORTB | GPIO_PIN8) #define GPIO_I2C1_SDA_GPIO \ - (GPIO_OUTPUT|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN9) + (GPIO_OUTPUT | GPIO_OPENDRAIN | GPIO_SPEED_50MHz | GPIO_OUTPUT_SET | \ + GPIO_PORTB | GPIO_PIN9) -#define GPIO_I2C2_SCL (GPIO_I2C2_SCL_1|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET) -#define GPIO_I2C2_SDA (GPIO_I2C2_SDA_1|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET) +#define GPIO_I2C2_SCL \ + (GPIO_I2C2_SCL_1 | GPIO_OPENDRAIN | GPIO_SPEED_50MHz | GPIO_OUTPUT_SET) +#define GPIO_I2C2_SDA \ + (GPIO_I2C2_SDA_1 | GPIO_OPENDRAIN | GPIO_SPEED_50MHz | GPIO_OUTPUT_SET) #define GPIO_I2C2_SCL_GPIO \ - (GPIO_OUTPUT|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN10) + (GPIO_OUTPUT | GPIO_OPENDRAIN | GPIO_SPEED_50MHz | GPIO_OUTPUT_SET | \ + GPIO_PORTB | GPIO_PIN10) #define GPIO_I2C2_SDA_GPIO \ - (GPIO_OUTPUT|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN11) + (GPIO_OUTPUT | GPIO_OPENDRAIN | GPIO_SPEED_50MHz | GPIO_OUTPUT_SET | \ + GPIO_PORTB | GPIO_PIN11) -/* SPI - */ +/* SPI */ #define GPIO_SPI1_MISO GPIO_SPI1_MISO_1 #define GPIO_SPI1_MOSI GPIO_SPI1_MOSI_1 diff --git a/configs/nucleo-l476rg/src/stm32_appinit.c b/configs/nucleo-l476rg/src/stm32_appinit.c index 34c579dbb1..96190c07c5 100644 --- a/configs/nucleo-l476rg/src/stm32_appinit.c +++ b/configs/nucleo-l476rg/src/stm32_appinit.c @@ -1,7 +1,7 @@ /**************************************************************************** * configs/nucleo-l476rg/src/stm32_appinit.c * - * Copyright (C) 2014, 2016 Gregory Nutt. All rights reserved. + * Copyright (C) 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -123,7 +123,7 @@ int board_app_initialize(uintptr_t arg) #endif #ifdef HAVE_PROC - /* mount the proc filesystem */ + /* Mount the proc filesystem */ syslog(LOG_INFO, "Mounting procfs to /proc\n"); -- GitLab From 880b59aa269bdf6db233a5b36bac3c694e8ed4bd Mon Sep 17 00:00:00 2001 From: Sebastien Lorquet Date: Wed, 25 May 2016 13:43:44 -0600 Subject: [PATCH 256/307] Additional configuration option to enable SST26 driver debug output. Using comming FS debug output generates too much output. --- drivers/mtd/Kconfig | 5 ++++ drivers/mtd/sst26.c | 67 +++++++++++++++++++++++++++------------------ 2 files changed, 46 insertions(+), 26 deletions(-) diff --git a/drivers/mtd/Kconfig b/drivers/mtd/Kconfig index 89f130ccb1..a15c01d7f6 100644 --- a/drivers/mtd/Kconfig +++ b/drivers/mtd/Kconfig @@ -814,6 +814,11 @@ config SST26_MEMORY_TYPE The memory type for SST26VF0xx series is 0x26, but this can be modified if needed to support compatible devices from different manufacturers. +config SST26_DEBUG + bool "Debug output from the SST26 driver" + depends on DEBUG_FS + default n + endif # MTD_SST26 config MTD_SST39FV diff --git a/drivers/mtd/sst26.c b/drivers/mtd/sst26.c index 6790af7376..94226064cc 100644 --- a/drivers/mtd/sst26.c +++ b/drivers/mtd/sst26.c @@ -205,6 +205,20 @@ #define SST26_DUMMY 0xa5 +/* Debug ****************************************************************************/ + +#ifdef CONFIG_SST26_DEBUG +# define sstdbg(format, ...) dbg(format, ##__VA_ARGS__) +# define sstlldbg(format, ...) lldbg(format, ##__VA_ARGS__) +# define sstvdbg(format, ...) vdbg(format, ##__VA_ARGS__) +# define sstllvdbg(format, ...) llvdbg(format, ##__VA_ARGS__) +#else +# define sstdbg(x...) +# define sstlldbg(x...) +# define sstvdbg(x...) +# define sstllvdbg(x...) +#endif + /************************************************************************************ * Private Types ************************************************************************************/ @@ -307,7 +321,7 @@ static inline int sst26_readid(struct sst26_dev_s *priv) uint16_t memory; uint16_t capacity; - fvdbg("priv: %p\n", priv); + sstvdbg("priv: %p\n", priv); /* Lock the SPI bus, configure the bus, and select this FLASH part. */ @@ -402,7 +416,7 @@ static void sst26_waitwritecomplete(struct sst26_dev_s *priv) } while ((status & SST26_SR_WIP) != 0); - fvdbg("Complete\n"); + sstvdbg("Complete\n"); } /************************************************************************************ @@ -425,7 +439,7 @@ static void sst26_globalunlock(struct sst26_dev_s *priv) SPI_SELECT(priv->dev, SPIDEV_FLASH, false); - fvdbg("Device unlocked.\n"); + sstvdbg("Device unlocked.\n"); } /************************************************************************************ @@ -446,7 +460,7 @@ static void sst26_writeenable(struct sst26_dev_s *priv) SPI_SELECT(priv->dev, SPIDEV_FLASH, false); - fvdbg("Enabled\n"); + sstvdbg("Enabled\n"); } /************************************************************************************ @@ -459,7 +473,7 @@ static void sst26_sectorerase(struct sst26_dev_s *priv, off_t sector, uint8_t ty offset = sector << priv->sectorshift; - fvdbg("sector: %08lx\n", (long)sector); + sstvdbg("sector: %08lx\n", (long)sector); /* Send write enable instruction */ @@ -490,7 +504,7 @@ static void sst26_sectorerase(struct sst26_dev_s *priv, off_t sector, uint8_t ty sst26_waitwritecomplete(priv); - fvdbg("Erased\n"); + sstvdbg("Erased\n"); } /************************************************************************************ @@ -499,7 +513,7 @@ static void sst26_sectorerase(struct sst26_dev_s *priv, off_t sector, uint8_t ty static inline int sst26_chiperase(struct sst26_dev_s *priv) { - fvdbg("priv: %p\n", priv); + sstvdbg("priv: %p\n", priv); /* Send write enable instruction */ @@ -519,7 +533,7 @@ static inline int sst26_chiperase(struct sst26_dev_s *priv) sst26_waitwritecomplete(priv); - fvdbg("Return: OK\n"); + sstvdbg("Return: OK\n"); return OK; } @@ -532,7 +546,7 @@ static inline void sst26_pagewrite(struct sst26_dev_s *priv, { off_t offset = page << priv->pageshift; - fvdbg("page: %08lx offset: %08lx\n", (long)page, (long)offset); + sstvdbg("page: %08lx offset: %08lx\n", (long)page, (long)offset); /* Enable the write access to the FLASH */ @@ -562,7 +576,7 @@ static inline void sst26_pagewrite(struct sst26_dev_s *priv, sst26_waitwritecomplete(priv); - fvdbg("Written\n"); + sstvdbg("Written\n"); } /************************************************************************************ @@ -574,7 +588,7 @@ static inline void sst26_bytewrite(struct sst26_dev_s *priv, FAR const uint8_t *buffer, off_t offset, uint16_t count) { - fvdbg("offset: %08lx count:%d\n", (long)offset, count); + sstvdbg("offset: %08lx count:%d\n", (long)offset, count); /* Enable the write access to the FLASH */ @@ -605,7 +619,7 @@ static inline void sst26_bytewrite(struct sst26_dev_s *priv, sst26_waitwritecomplete(priv); - fvdbg("Written\n"); + sstvdbg("Written\n"); } #endif @@ -620,7 +634,7 @@ static int sst26_erase(FAR struct mtd_dev_s *dev, off_t startblock, size_t nbloc FAR struct sst26_dev_s *priv = (FAR struct sst26_dev_s *)dev; size_t blocksleft = nblocks; - fvdbg("startblock: %08lx nblocks: %d\n", (long)startblock, (int)nblocks); + sstvdbg("startblock: %08lx nblocks: %d\n", (long)startblock, (int)nblocks); /* Lock access to the SPI bus until we complete the erase */ @@ -650,7 +664,7 @@ static ssize_t sst26_bread(FAR struct mtd_dev_s *dev, off_t startblock, FAR struct sst26_dev_s *priv = (FAR struct sst26_dev_s *)dev; ssize_t nbytes; - fvdbg("startblock: %08lx nblocks: %d\n", (long)startblock, (int)nblocks); + sstvdbg("startblock: %08lx nblocks: %d\n", (long)startblock, (int)nblocks); /* On this device, we can handle the block read just like the byte-oriented read */ @@ -675,7 +689,7 @@ static ssize_t sst26_bwrite(FAR struct mtd_dev_s *dev, off_t startblock, size_t size_t blocksleft = nblocks; size_t pagesize = 1 << priv->pageshift; - fvdbg("startblock: %08lx nblocks: %d\n", (long)startblock, (int)nblocks); + sstvdbg("startblock: %08lx nblocks: %d\n", (long)startblock, (int)nblocks); /* Lock the SPI bus and write each page to FLASH */ @@ -700,7 +714,7 @@ static ssize_t sst26_read(FAR struct mtd_dev_s *dev, off_t offset, size_t nbytes { FAR struct sst26_dev_s *priv = (FAR struct sst26_dev_s *)dev; - fvdbg("offset: %08lx nbytes: %d\n", (long)offset, (int)nbytes); + sstvdbg("offset: %08lx nbytes: %d\n", (long)offset, (int)nbytes); /* Lock the SPI bus and select this FLASH part */ @@ -717,7 +731,8 @@ static ssize_t sst26_read(FAR struct mtd_dev_s *dev, off_t offset, size_t nbytes (void)SPI_SEND(priv->dev, (offset >> 8) & 0xff); (void)SPI_SEND(priv->dev, offset & 0xff); - /* dummy read */ + /* Dummy read */ + (void)SPI_SEND(priv->dev, SST26_DUMMY); /* Then read all of the requested bytes */ @@ -728,7 +743,7 @@ static ssize_t sst26_read(FAR struct mtd_dev_s *dev, off_t offset, size_t nbytes SPI_SELECT(priv->dev, SPIDEV_FLASH, false); sst26_unlock(priv->dev); - fvdbg("return nbytes: %d\n", (int)nbytes); + sstvdbg("return nbytes: %d\n", (int)nbytes); return nbytes; } @@ -748,7 +763,7 @@ static ssize_t sst26_write(FAR struct mtd_dev_s *dev, off_t offset, size_t nbyte int pagesize; int bytestowrite; - fvdbg("offset: %08lx nbytes: %d\n", (long)offset, (int)nbytes); + sstvdbg("offset: %08lx nbytes: %d\n", (long)offset, (int)nbytes); /* We must test if the offset + count crosses one or more pages * and perform individual writes. The devices can only write in @@ -815,7 +830,7 @@ static int sst26_ioctl(FAR struct mtd_dev_s *dev, int cmd, unsigned long arg) FAR struct sst26_dev_s *priv = (FAR struct sst26_dev_s *)dev; int ret = -EINVAL; /* Assume good command with bad parameters */ - fvdbg("cmd: %d \n", cmd); + sstvdbg("cmd: %d \n", cmd); switch (cmd) { @@ -839,8 +854,8 @@ static int sst26_ioctl(FAR struct mtd_dev_s *dev, int cmd, unsigned long arg) ret = OK; - fvdbg("blocksize: %d erasesize: %d neraseblocks: %d\n", - geo->blocksize, geo->erasesize, geo->neraseblocks); + sstvdbg("blocksize: %d erasesize: %d neraseblocks: %d\n", + geo->blocksize, geo->erasesize, geo->neraseblocks); } } break; @@ -861,7 +876,7 @@ static int sst26_ioctl(FAR struct mtd_dev_s *dev, int cmd, unsigned long arg) break; } - fvdbg("return %d\n", ret); + sstvdbg("return %d\n", ret); return ret; } @@ -884,7 +899,7 @@ FAR struct mtd_dev_s *sst26_initialize_spi(FAR struct spi_dev_s *dev) FAR struct sst26_dev_s *priv; int ret; - fvdbg("dev: %p\n", dev); + sstvdbg("dev: %p\n", dev); /* Allocate a state structure (we allocate the structure instead of using * a fixed, static allocation so that we can handle multiple FLASH devices. @@ -921,7 +936,7 @@ FAR struct mtd_dev_s *sst26_initialize_spi(FAR struct spi_dev_s *dev) { /* Unrecognized! Discard all of that work we just did and return NULL */ - fdbg("Unrecognized\n"); + sstdbg("Unrecognized\n"); kmm_free(priv); priv = NULL; } @@ -941,6 +956,6 @@ FAR struct mtd_dev_s *sst26_initialize_spi(FAR struct spi_dev_s *dev) /* Return the implementation-specific state structure as the MTD device */ - fvdbg("Return %p\n", priv); + sstvdbg("Return %p\n", priv); return (FAR struct mtd_dev_s *)priv; } -- GitLab From add152bf24b7ccf4f86a0256fc37a691ca4998a2 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 25 May 2016 14:07:59 -0600 Subject: [PATCH 257/307] Update README --- ChangeLog | 17 ++++++++++++++++- arch/arm/src/stm32/Kconfig | 4 ++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 86d67549f2..910c764f3f 100755 --- a/ChangeLog +++ b/ChangeLog @@ -11787,7 +11787,18 @@ CONFIG_BOARDCTL_RESET is defined. From David Sidrane (2016-05-23). * arch/arm/include/lpc43xx and src/lpc43xx: Adds definitions for the LPC4337jet100 chip. From Alexander Vasiljev (2016-05-24). - * Many files: Add an argument to board_app_initialize() (2016-05-24). + * Many files: board_app_initialize() now accepts an argument that may + be used to support initialization in different configurations + (2016-05-24). + * arch/arm/src/samv7: Remove disabling of whole USB on suspend of USBHS. + This fix removes the disabling of the whole USB peripheral on suspend + interrupt. Its enough to freeze the clock instead. When disabling the + whole peripheral, the next wakeup-interrupt comes up with an disabled + clocking. The unfreeze clock has no effect, because the master clock + is disabled. This makes all registers, including the IDR unwriteable + and the IRQ falls in an endless loop blocking the whole system. + Furthermore the disabling of the peripheral clock prevents hotplugging + or reconnecting the USB. From Frank Benkert (2015-05-25). * drivers/lcd: Add support for PCF8574 LCD Backpack driver. This driver supports an interface board that is based on the PCF8574 io expander and supports the HD44780-based (or compatible) LCD modules. There @@ -11795,3 +11806,7 @@ the same, save wiring and minor features like jumpers for I2C addresses. This driver supports known and unknown variants. From Dave (ziggurat29, 2013-6-26). + * arch/arm/stm32: Add support for a custom 1-wire driver. The serial + driver already supports a 1-wire interface, but this driver uses the + same serial logic to implement a lower half driver much like the I2C + lower half driver. From Aleksandr Vyhovanec (2015-05-25). diff --git a/arch/arm/src/stm32/Kconfig b/arch/arm/src/stm32/Kconfig index ee4da50e45..1da3821f82 100644 --- a/arch/arm/src/stm32/Kconfig +++ b/arch/arm/src/stm32/Kconfig @@ -5407,6 +5407,8 @@ config STM32_1WIREDRIVER menu "U[S]ART Configuration" depends on STM32_USART +comment "U[S]ART Device Configuration" + choice prompt "USART1 Driver Configuration" default STM32_USART1_SERIALDRIVER @@ -5769,6 +5771,8 @@ endif # STM32_UART8_SERIALDRIVER if STM32_SERIALDRIVER +comment "Serial Driver Configuration" + config SERIAL_DISABLE_REORDERING bool "Disable reordering of ttySx devices." depends on STM32_USART1 || STM32_USART2 || STM32_USART3 || STM32_UART4 || STM32_UART5 || STM32_USART6 || STM32_UART7 || STM32_UART8 -- GitLab From d31aefe4ef55873cb81862f289ae74d767ee6e85 Mon Sep 17 00:00:00 2001 From: "Paul A. Patience" Date: Wed, 25 May 2016 13:18:05 -0400 Subject: [PATCH 258/307] STM32 CAN: Add support for both RX FIFOs --- arch/arm/src/stm32/chip/stm32_can.h | 9 +- arch/arm/src/stm32/stm32_can.c | 290 ++++++++++++++++++---------- 2 files changed, 196 insertions(+), 103 deletions(-) diff --git a/arch/arm/src/stm32/chip/stm32_can.h b/arch/arm/src/stm32/chip/stm32_can.h index d64332d1d9..6b4a12a855 100644 --- a/arch/arm/src/stm32/chip/stm32_can.h +++ b/arch/arm/src/stm32/chip/stm32_can.h @@ -75,8 +75,11 @@ #define STM32_CAN_MCR_OFFSET 0x0000 /* CAN master control register */ #define STM32_CAN_MSR_OFFSET 0x0004 /* CAN master status register */ #define STM32_CAN_TSR_OFFSET 0x0008 /* CAN transmit status register */ + +#define STM32_CAN_RFR_OFFSET(m) (0x000c+((m)<<2)) #define STM32_CAN_RF0R_OFFSET 0x000c /* CAN receive FIFO 0 register */ #define STM32_CAN_RF1R_OFFSET 0x0010 /* CAN receive FIFO 1 register */ + #define STM32_CAN_IER_OFFSET 0x0014 /* CAN interrupt enable register */ #define STM32_CAN_ESR_OFFSET 0x0018 /* CAN error status register */ #define STM32_CAN_BTR_OFFSET 0x001c /* CAN bit timing register */ @@ -127,8 +130,8 @@ #define STM32_CAN_FFA1R_OFFSET 0x0214 /* CAN filter FIFO assignment register */ #define STM32_CAN_FA1R_OFFSET 0x021c /* CAN filter activation register */ -/* There are 14 or 28 filter banks (depending) on the device. Each filter bank is - * composed of two 32-bit registers, CAN_FiR: +/* There are 14 or 28 filter banks (depending) on the device. + * Each filter bank is composed of two 32-bit registers, CAN_FiR: * F0R1 Offset 0x240 * F0R2 Offset 0x244 * F1R1 Offset 0x248 @@ -445,7 +448,7 @@ /* CAN filter master register */ -#define CAN_FMR_FINIT (1 << 0) /* Bit 0: Filter Init Mode */ +#define CAN_FMR_FINIT (1 << 0) /* Bit 0: Filter Init Mode */ #if defined(CONFIG_STM32_CONNECTIVITYLINE) || defined(CONFIG_STM32_STM32F20XX) || defined(CONFIG_STM32_STM32F40XX) # define CAN_FMR_CAN2SB_SHIFT (8) /* Bits 13-8: CAN2 start bank */ # define CAN_FMR_CAN2SB_MASK (0x3f << CAN_FMR_CAN2SB_SHIFT) diff --git a/arch/arm/src/stm32/stm32_can.c b/arch/arm/src/stm32/stm32_can.c index 8628b2fa79..8cb61decf1 100644 --- a/arch/arm/src/stm32/stm32_can.c +++ b/arch/arm/src/stm32/stm32_can.c @@ -4,6 +4,9 @@ * Copyright (C) 2011, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * + * Copyright (C) 2016 Omni Hoverboards Inc. All rights reserved. + * Author: Paul Alexander Patience + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -103,13 +106,13 @@ struct stm32_can_s { - uint8_t port; /* CAN port number (1 or 2) */ - uint8_t canrx0; /* CAN RX FIFO 0 IRQ number */ - uint8_t cantx; /* CAN TX IRQ number */ - uint8_t filter; /* Filter number */ - uint32_t base; /* Base address of the CAN control registers */ - uint32_t fbase; /* Base address of the CAN filter registers */ - uint32_t baud; /* Configured baud */ + uint8_t port; /* CAN port number (1 or 2) */ + uint8_t canrx[2]; /* CAN RX FIFO 0/1 IRQ number */ + uint8_t cantx; /* CAN TX IRQ number */ + uint8_t filter; /* Filter number */ + uint32_t base; /* Base address of the CAN control registers */ + uint32_t fbase; /* Base address of the CAN filter registers */ + uint32_t baud; /* Configured baud */ }; /**************************************************************************** @@ -118,14 +121,19 @@ struct stm32_can_s /* CAN Register access */ -static uint32_t can_getreg(struct stm32_can_s *priv, int offset); -static uint32_t can_getfreg(struct stm32_can_s *priv, int offset); -static void can_putreg(struct stm32_can_s *priv, int offset, uint32_t value); -static void can_putfreg(struct stm32_can_s *priv, int offset, uint32_t value); +static uint32_t can_getreg(FAR struct stm32_can_s *priv, int offset); +static uint32_t can_getfreg(FAR struct stm32_can_s *priv, int offset); +static void can_putreg(FAR struct stm32_can_s *priv, int offset, + uint32_t value); +static void can_putfreg(FAR struct stm32_can_s *priv, int offset, + uint32_t value); #ifdef CONFIG_CAN_REGDEBUG -static void can_dumpctrlregs(struct stm32_can_s *priv, FAR const char *msg); -static void can_dumpmbregs(struct stm32_can_s *priv, FAR const char *msg); -static void can_dumpfiltregs(struct stm32_can_s *priv, FAR const char *msg); +static void can_dumpctrlregs(FAR struct stm32_can_s *priv, + FAR const char *msg); +static void can_dumpmbregs(FAR struct stm32_can_s *priv, + FAR const char *msg); +static void can_dumpfiltregs(FAR struct stm32_can_s *priv, + FAR const char *msg); #else # define can_dumpctrlregs(priv,msg) # define can_dumpmbregs(priv,msg) @@ -147,14 +155,16 @@ static bool can_txempty(FAR struct can_dev_s *dev); /* CAN interrupt handling */ -static int can_rx0interrupt(int irq, void *context); -static int can_txinterrupt(int irq, void *context); +static int can_rxinterrupt(int irq, FAR void *context, int rxmb); +static int can_rx0interrupt(int irq, FAR void *context); +static int can_rx1interrupt(int irq, FAR void *context); +static int can_txinterrupt(int irq, FAR void *context); /* Initialization */ -static int can_bittiming(struct stm32_can_s *priv); -static int can_cellinit(struct stm32_can_s *priv); -static int can_filterinit(struct stm32_can_s *priv); +static int can_bittiming(FAR struct stm32_can_s *priv); +static int can_cellinit(FAR struct stm32_can_s *priv); +static int can_filterinit(FAR struct stm32_can_s *priv); /**************************************************************************** * Private Data @@ -178,7 +188,11 @@ static const struct can_ops_s g_canops = static struct stm32_can_s g_can1priv = { .port = 1, - .canrx0 = STM32_IRQ_CAN1RX0, + .canrx = + { + STM32_IRQ_CAN1RX0, + STM32_IRQ_CAN1RX1, + }, .cantx = STM32_IRQ_CAN1TX, .filter = 0, .base = STM32_CAN1_BASE, @@ -197,7 +211,11 @@ static struct can_dev_s g_can1dev = static struct stm32_can_s g_can2priv = { .port = 2, - .canrx0 = STM32_IRQ_CAN2RX0, + .canrx = + { + STM32_IRQ_CAN2RX0, + STM32_IRQ_CAN2RX1, + }, .cantx = STM32_IRQ_CAN2TX, .filter = CAN_NFILTERS / 2, .base = STM32_CAN2_BASE, @@ -285,23 +303,23 @@ static uint32_t can_vgetreg(uint32_t addr) return val; } -static uint32_t can_getreg(struct stm32_can_s *priv, int offset) +static uint32_t can_getreg(FAR struct stm32_can_s *priv, int offset) { return can_vgetreg(priv->base + offset); } -static uint32_t can_getfreg(struct stm32_can_s *priv, int offset) +static uint32_t can_getfreg(FAR struct stm32_can_s *priv, int offset) { return can_vgetreg(priv->fbase + offset); } #else -static uint32_t can_getreg(struct stm32_can_s *priv, int offset) +static uint32_t can_getreg(FAR struct stm32_can_s *priv, int offset) { return getreg32(priv->base + offset); } -static uint32_t can_getfreg(struct stm32_can_s *priv, int offset) +static uint32_t can_getfreg(FAR struct stm32_can_s *priv, int offset) { return getreg32(priv->fbase + offset); } @@ -338,23 +356,27 @@ static void can_vputreg(uint32_t addr, uint32_t value) putreg32(value, addr); } -static void can_putreg(struct stm32_can_s *priv, int offset, uint32_t value) +static void can_putreg(FAR struct stm32_can_s *priv, int offset, + uint32_t value) { can_vputreg(priv->base + offset, value); } -static void can_putfreg(struct stm32_can_s *priv, int offset, uint32_t value) +static void can_putfreg(FAR struct stm32_can_s *priv, int offset, + uint32_t value) { can_vputreg(priv->fbase + offset, value); } #else -static void can_putreg(struct stm32_can_s *priv, int offset, uint32_t value) +static void can_putreg(FAR struct stm32_can_s *priv, int offset, + uint32_t value) { putreg32(value, priv->base + offset); } -static void can_putfreg(struct stm32_can_s *priv, int offset, uint32_t value) +static void can_putfreg(FAR struct stm32_can_s *priv, int offset, + uint32_t value) { putreg32(value, priv->fbase + offset); } @@ -375,7 +397,8 @@ static void can_putfreg(struct stm32_can_s *priv, int offset, uint32_t value) ****************************************************************************/ #ifdef CONFIG_CAN_REGDEBUG -static void can_dumpctrlregs(struct stm32_can_s *priv, FAR const char *msg) +static void can_dumpctrlregs(FAR struct stm32_can_s *priv, + FAR const char *msg) { if (msg) { @@ -419,7 +442,8 @@ static void can_dumpctrlregs(struct stm32_can_s *priv, FAR const char *msg) ****************************************************************************/ #ifdef CONFIG_CAN_REGDEBUG -static void can_dumpmbregs(struct stm32_can_s *priv, FAR const char *msg) +static void can_dumpmbregs(FAR struct stm32_can_s *priv, + FAR const char *msg) { if (msg) { @@ -479,7 +503,8 @@ static void can_dumpmbregs(struct stm32_can_s *priv, FAR const char *msg) ****************************************************************************/ #ifdef CONFIG_CAN_REGDEBUG -static void can_dumpfiltregs(struct stm32_can_s *priv, FAR const char *msg) +static void can_dumpfiltregs(FAR struct stm32_can_s *priv, + FAR const char *msg) { int i; @@ -553,8 +578,8 @@ static void can_reset(FAR struct can_dev_s *dev) return; } - /* Disable interrupts momentary to stop any ongoing CAN event processing and - * to prevent any concurrent access to the AHB1RSTR register. + /* Disable interrupts momentarily to stop any ongoing CAN event processing + * and to prevent any concurrent access to the AHB1RSTR register. */ flags = enter_critical_section(); @@ -592,7 +617,8 @@ static int can_setup(FAR struct can_dev_s *dev) FAR struct stm32_can_s *priv = dev->cd_priv; int ret; - canllvdbg("CAN%d RX0 irq: %d TX irq: %d\n", priv->port, priv->canrx0, priv->cantx); + canllvdbg("CAN%d RX0 irq: %d RX1 irq: %d TX irq: %d\n", + priv->port, priv->canrx[0], priv->canrx[1], priv->cantx); /* CAN cell initialization */ @@ -616,28 +642,41 @@ static int can_setup(FAR struct can_dev_s *dev) } can_dumpfiltregs(priv, "After filter initialization"); - /* Attach the CAN RX FIFO 0 interrupt and TX interrupts. The others are not used */ + /* Attach the CAN RX FIFO 0/1 interrupts and TX interrupts. + * The others are not used. + */ + + ret = irq_attach(priv->canrx[0], can_rx0interrupt); + if (ret < 0) + { + canlldbg("Failed to attach CAN%d RX0 IRQ (%d)", + priv->port, priv->canrx[0]); + return ret; + } - ret = irq_attach(priv->canrx0, can_rx0interrupt); + ret = irq_attach(priv->canrx[1], can_rx1interrupt); if (ret < 0) { - canlldbg("Failed to attach CAN%d RX0 IRQ (%d)", priv->port, priv->canrx0); + canlldbg("Failed to attach CAN%d RX1 IRQ (%d)", + priv->port, priv->canrx[1]); return ret; } ret = irq_attach(priv->cantx, can_txinterrupt); if (ret < 0) { - canlldbg("Failed to attach CAN%d TX IRQ (%d)", priv->port, priv->cantx); + canlldbg("Failed to attach CAN%d TX IRQ (%d)", + priv->port, priv->cantx); return ret; } - /* Enable the interrupts at the NVIC. Interrupts arestill disabled in + /* Enable the interrupts at the NVIC. Interrupts are still disabled in * the CAN module. Since we coming out of reset here, there should be * no pending interrupts. */ - up_enable_irq(priv->canrx0); + up_enable_irq(priv->canrx[0]); + up_enable_irq(priv->canrx[1]); up_enable_irq(priv->cantx); return OK; } @@ -663,14 +702,16 @@ static void can_shutdown(FAR struct can_dev_s *dev) canllvdbg("CAN%d\n", priv->port); - /* Disable the RX FIFO 0 and TX interrupts */ + /* Disable the RX FIFO 0/1 and TX interrupts */ - up_disable_irq(priv->canrx0); + up_disable_irq(priv->canrx[0]); + up_disable_irq(priv->canrx[1]); up_disable_irq(priv->cantx); - /* Detach the RX FIFO 0 and TX interrupts */ + /* Detach the RX FIFO 0/1 and TX interrupts */ - irq_detach(priv->canrx0); + irq_detach(priv->canrx[0]); + irq_detach(priv->canrx[1]); irq_detach(priv->cantx); /* And reset the hardware */ @@ -699,16 +740,16 @@ static void can_rxint(FAR struct can_dev_s *dev, bool enable) canllvdbg("CAN%d enable: %d\n", priv->port, enable); - /* Enable/disable the FIFO 0 message pending interrupt */ + /* Enable/disable the FIFO 0/1 message pending interrupt */ regval = can_getreg(priv, STM32_CAN_IER_OFFSET); if (enable) { - regval |= CAN_IER_FMPIE0; + regval |= CAN_IER_FMPIE0 | CAN_IER_FMPIE1; } else { - regval &= ~CAN_IER_FMPIE0; + regval &= ~(CAN_IER_FMPIE0 | CAN_IER_FMPIE1); } can_putreg(priv, STM32_CAN_IER_OFFSET, regval); } @@ -817,7 +858,8 @@ static int can_send(FAR struct can_dev_s *dev, FAR struct can_msg_s *msg) int dlc; int txmb; - canllvdbg("CAN%d ID: %d DLC: %d\n", priv->port, msg->cm_hdr.ch_id, msg->cm_hdr.ch_dlc); + canllvdbg("CAN%d ID: %d DLC: %d\n", + priv->port, msg->cm_hdr.ch_id, msg->cm_hdr.ch_dlc); /* Select one empty transmit mailbox */ @@ -843,7 +885,8 @@ static int can_send(FAR struct can_dev_s *dev, FAR struct can_msg_s *msg) /* Clear TXRQ, RTR, IDE, EXID, and STID fields */ regval = can_getreg(priv, STM32_CAN_TIR_OFFSET(txmb)); - regval &= ~(CAN_TIR_TXRQ | CAN_TIR_RTR | CAN_TIR_IDE | CAN_TIR_EXID_MASK | CAN_TIR_STID_MASK); + regval &= ~(CAN_TIR_TXRQ | CAN_TIR_RTR | CAN_TIR_IDE | + CAN_TIR_EXID_MASK | CAN_TIR_STID_MASK); can_putreg(priv, STM32_CAN_TIR_OFFSET(txmb), regval); /* Set up the ID, standard 11-bit or extended 29-bit. */ @@ -886,17 +929,17 @@ static int can_send(FAR struct can_dev_s *dev, FAR struct can_msg_s *msg) if (dlc > 1) { - tmp = (uint32_t)*ptr++; + tmp = (uint32_t)*ptr++; regval |= tmp << CAN_TDLR_DATA1_SHIFT; if (dlc > 2) { - tmp = (uint32_t)*ptr++; + tmp = (uint32_t)*ptr++; regval |= tmp << CAN_TDLR_DATA2_SHIFT; if (dlc > 3) { - tmp = (uint32_t)*ptr++; + tmp = (uint32_t)*ptr++; regval |= tmp << CAN_TDLR_DATA3_SHIFT; } } @@ -912,17 +955,17 @@ static int can_send(FAR struct can_dev_s *dev, FAR struct can_msg_s *msg) if (dlc > 5) { - tmp = (uint32_t)*ptr++; + tmp = (uint32_t)*ptr++; regval |= tmp << CAN_TDHR_DATA5_SHIFT; if (dlc > 6) { - tmp = (uint32_t)*ptr++; + tmp = (uint32_t)*ptr++; regval |= tmp << CAN_TDHR_DATA6_SHIFT; if (dlc > 7) { - tmp = (uint32_t)*ptr++; + tmp = (uint32_t)*ptr++; regval |= tmp << CAN_TDHR_DATA7_SHIFT; } } @@ -970,11 +1013,7 @@ static bool can_txready(FAR struct can_dev_s *dev) regval = can_getreg(priv, STM32_CAN_TSR_OFFSET); canllvdbg("CAN%d TSR: %08x\n", priv->port, regval); - if ((regval & CAN_ALL_MAILBOXES) != 0) - { - return true; - } - return false; + return (regval & CAN_ALL_MAILBOXES) != 0; } /**************************************************************************** @@ -1005,29 +1044,26 @@ static bool can_txempty(FAR struct can_dev_s *dev) regval = can_getreg(priv, STM32_CAN_TSR_OFFSET); canllvdbg("CAN%d TSR: %08x\n", priv->port, regval); - if ((regval & CAN_ALL_MAILBOXES) == CAN_ALL_MAILBOXES) - { - return true; - } - return false; + return (regval & CAN_ALL_MAILBOXES) == CAN_ALL_MAILBOXES; } /**************************************************************************** - * Name: can_rx0interrupt + * Name: can_rxinterrupt * * Description: - * CAN RX FIFO 0 interrupt handler + * CAN RX FIFO 0/1 interrupt handler * * Input Parameters: * irq - The IRQ number of the interrupt. * context - The register state save array at the time of the interrupt. + * rxmb - The RX mailbox number. * * Returned Value: * Zero on success; a negated errno on failure * ****************************************************************************/ -static int can_rx0interrupt(int irq, void *context) +static int can_rxinterrupt(int irq, FAR void *context, int rxmb) { FAR struct can_dev_s *dev = NULL; FAR struct stm32_can_s *priv; @@ -1038,11 +1074,11 @@ static int can_rx0interrupt(int irq, void *context) int ret; #if defined(CONFIG_STM32_CAN1) && defined(CONFIG_STM32_CAN2) - if (g_can1priv.canrx0 == irq) + if (g_can1priv.canrx[rxmb] == irq) { dev = &g_can1dev; } - else if (g_can2priv.canrx0 == irq) + else if (g_can2priv.canrx[rxmb] == irq) { dev = &g_can2dev; } @@ -1057,9 +1093,9 @@ static int can_rx0interrupt(int irq, void *context) #endif priv = dev->cd_priv; - /* Verify that a message is pending in FIFO 0 */ + /* Verify that a message is pending in the FIFO */ - regval = can_getreg(priv, STM32_CAN_RF0R_OFFSET); + regval = can_getreg(priv, STM32_CAN_RFR_OFFSET(rxmb)); npending = (regval & CAN_RFR_FMP_MASK) >> CAN_RFR_FMP_SHIFT; if (npending < 1) { @@ -1067,11 +1103,18 @@ static int can_rx0interrupt(int irq, void *context) return OK; } - can_dumpmbregs(priv, "RX0 interrupt"); + if (rxmb == 0) + { + can_dumpmbregs(priv, "RX0 interrupt"); + } + else + { + can_dumpmbregs(priv, "RX1 interrupt"); + } /* Get the CAN identifier. */ - regval = can_getreg(priv, STM32_CAN_RI0R_OFFSET); + regval = can_getreg(priv, STM32_CAN_RIR_OFFSET(rxmb)); #ifdef CONFIG_CAN_EXTID if ((regval & CAN_RIR_IDE) != 0) @@ -1104,22 +1147,22 @@ static int can_rx0interrupt(int irq, void *context) /* Extract the RTR bit */ - hdr.ch_rtr = (regval & CAN_RIR_RTR) != 0 ? true : false; + hdr.ch_rtr = (regval & CAN_RIR_RTR) != 0; /* Get the DLC */ - regval = can_getreg(priv, STM32_CAN_RDT0R_OFFSET); + regval = can_getreg(priv, STM32_CAN_RDTR_OFFSET(rxmb)); hdr.ch_dlc = (regval & CAN_RDTR_DLC_MASK) >> CAN_RDTR_DLC_SHIFT; /* Save the message data */ - regval = can_getreg(priv, STM32_CAN_RDL0R_OFFSET); + regval = can_getreg(priv, STM32_CAN_RDLR_OFFSET(rxmb)); data[0] = (regval & CAN_RDLR_DATA0_MASK) >> CAN_RDLR_DATA0_SHIFT; data[1] = (regval & CAN_RDLR_DATA1_MASK) >> CAN_RDLR_DATA1_SHIFT; data[2] = (regval & CAN_RDLR_DATA2_MASK) >> CAN_RDLR_DATA2_SHIFT; data[3] = (regval & CAN_RDLR_DATA3_MASK) >> CAN_RDLR_DATA3_SHIFT; - regval = can_getreg(priv, STM32_CAN_RDH0R_OFFSET); + regval = can_getreg(priv, STM32_CAN_RDHR_OFFSET(rxmb)); data[4] = (regval & CAN_RDHR_DATA4_MASK) >> CAN_RDHR_DATA4_SHIFT; data[5] = (regval & CAN_RDHR_DATA5_MASK) >> CAN_RDHR_DATA5_SHIFT; data[6] = (regval & CAN_RDHR_DATA6_MASK) >> CAN_RDHR_DATA6_SHIFT; @@ -1129,17 +1172,57 @@ static int can_rx0interrupt(int irq, void *context) ret = can_receive(dev, &hdr, data); - /* Release the FIFO0 */ + /* Release the FIFO */ #ifndef CONFIG_CAN_EXTID errout: #endif - regval = can_getreg(priv, STM32_CAN_RF0R_OFFSET); + regval = can_getreg(priv, STM32_CAN_RFR_OFFSET(rxmb)); regval |= CAN_RFR_RFOM; - can_putreg(priv, STM32_CAN_RF0R_OFFSET, regval); + can_putreg(priv, STM32_CAN_RFR_OFFSET(rxmb), regval); return ret; } +/**************************************************************************** + * Name: can_rx0interrupt + * + * Description: + * CAN RX FIFO 0 interrupt handler + * + * Input Parameters: + * irq - The IRQ number of the interrupt. + * context - The register state save array at the time of the interrupt. + * + * Returned Value: + * Zero on success; a negated errno on failure + * + ****************************************************************************/ + +static int can_rx0interrupt(int irq, FAR void *context) +{ + return can_rxinterrupt(irq, context, 0); +} + +/**************************************************************************** + * Name: can_rx1interrupt + * + * Description: + * CAN RX FIFO 1 interrupt handler + * + * Input Parameters: + * irq - The IRQ number of the interrupt. + * context - The register state save array at the time of the interrupt. + * + * Returned Value: + * Zero on success; a negated errno on failure + * + ****************************************************************************/ + +static int can_rx1interrupt(int irq, FAR void *context) +{ + return can_rxinterrupt(irq, context, 1); +} + /**************************************************************************** * Name: can_txinterrupt * @@ -1155,7 +1238,7 @@ errout: * ****************************************************************************/ -static int can_txinterrupt(int irq, void *context) +static int can_txinterrupt(int irq, FAR void *context) { FAR struct can_dev_s *dev = NULL; FAR struct stm32_can_s *priv; @@ -1304,7 +1387,7 @@ static int can_txinterrupt(int irq, void *context) * ****************************************************************************/ -static int can_bittiming(struct stm32_can_s *priv) +static int can_bittiming(FAR struct stm32_can_s *priv) { uint32_t tmp; uint32_t brp; @@ -1401,7 +1484,7 @@ static int can_bittiming(struct stm32_can_s *priv) * ****************************************************************************/ -static int can_cellinit(struct stm32_can_s *priv) +static int can_cellinit(FAR struct stm32_can_s *priv) { volatile uint32_t timeout; uint32_t regval; @@ -1415,11 +1498,6 @@ static int can_cellinit(struct stm32_can_s *priv) regval &= ~CAN_MCR_SLEEP; can_putreg(priv, STM32_CAN_MCR_OFFSET, regval); - /* Configure CAN behavior. Priority driven request order, not message ID. */ - - regval |= CAN_MCR_TXFP; - can_putreg(priv, STM32_CAN_MCR_OFFSET, regval); - /* Enter initialization mode */ regval |= CAN_MCR_INRQ; @@ -1457,7 +1535,8 @@ static int can_cellinit(struct stm32_can_s *priv) */ regval = can_getreg(priv, STM32_CAN_MCR_OFFSET); - regval &= ~(CAN_MCR_TXFP | CAN_MCR_RFLM | CAN_MCR_NART | CAN_MCR_AWUM | CAN_MCR_ABOM | CAN_MCR_TTCM); + regval &= ~(CAN_MCR_TXFP | CAN_MCR_RFLM | CAN_MCR_NART | + CAN_MCR_AWUM | CAN_MCR_ABOM | CAN_MCR_TTCM); can_putreg(priv, STM32_CAN_MCR_OFFSET, regval); /* Configure bit timing. */ @@ -1492,7 +1571,8 @@ static int can_cellinit(struct stm32_can_s *priv) if (timeout < 1) { - canlldbg("ERROR: Timed out waiting to exit initialization mode: %08x\n", regval); + canlldbg("ERROR: Timed out waiting to exit initialization mode: %08x\n", + regval); return -ETIMEDOUT; } return OK; @@ -1531,7 +1611,7 @@ static int can_cellinit(struct stm32_can_s *priv) * ****************************************************************************/ -static int can_filterinit(struct stm32_can_s *priv) +static int can_filterinit(FAR struct stm32_can_s *priv) { uint32_t regval; uint32_t bitmask; @@ -1540,7 +1620,7 @@ static int can_filterinit(struct stm32_can_s *priv) /* Get the bitmask associated with the filter used by this CAN block */ - bitmask = ((uint32_t)1) << priv->filter; + bitmask = (uint32_t)1 << priv->filter; /* Enter filter initialization mode */ @@ -1548,6 +1628,17 @@ static int can_filterinit(struct stm32_can_s *priv) regval |= CAN_FMR_FINIT; can_putfreg(priv, STM32_CAN_FMR_OFFSET, regval); + /* Assign half the filters to CAN1, half to CAN2 */ + +#if defined(CONFIG_STM32_CONNECTIVITYLINE) || \ + defined(CONFIG_STM32_STM32F20XX) || \ + defined(CONFIG_STM32_STM32F40XX) + regval = can_getfreg(priv, STM32_CAN_FMR_OFFSET); + regval &= CAN_FMR_CAN2SB_MASK; + regval |= (CAN_NFILTERS / 2) << CAN_FMR_CAN2SB_SHIFT; + can_putfreg(priv, STM32_CAN_FMR_OFFSET, regval); +#endif + /* Disable the filter */ regval = can_getfreg(priv, STM32_CAN_FA1R_OFFSET); @@ -1560,12 +1651,12 @@ static int can_filterinit(struct stm32_can_s *priv) regval |= bitmask; can_putfreg(priv, STM32_CAN_FS1R_OFFSET, regval); - /* There are 14 or 28 filter banks (depending) on the device. Each filter bank is - * composed of two 32-bit registers, CAN_FiR: + /* There are 14 or 28 filter banks (depending) on the device. + * Each filter bank is composed of two 32-bit registers, CAN_FiR: */ - can_putfreg(priv, STM32_CAN_FIR_OFFSET(priv->filter, 1), 0); - can_putfreg(priv, STM32_CAN_FIR_OFFSET(priv->filter, 2), 0); + can_putfreg(priv, STM32_CAN_FIR_OFFSET(priv->filter, 1), 0); + can_putfreg(priv, STM32_CAN_FIR_OFFSET(priv->filter, 2), 0); /* Set Id/Mask mode for the filter */ @@ -1613,7 +1704,7 @@ static int can_filterinit(struct stm32_can_s *priv) FAR struct can_dev_s *stm32_caninitialize(int port) { - struct can_dev_s *dev = NULL; + FAR struct can_dev_s *dev = NULL; canvdbg("CAN%d\n", port); @@ -1662,4 +1753,3 @@ FAR struct can_dev_s *stm32_caninitialize(int port) } #endif /* CONFIG_CAN && (CONFIG_STM32_CAN1 || CONFIG_STM32_CAN2) */ - -- GitLab From 1746e8aad3151c45fa3bc39ed78d80b7b742142e Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 25 May 2016 15:29:19 -0600 Subject: [PATCH 259/307] SAM4E-EK: Fix dangle right comment introduced in recent commit --- configs/sam4e-ek/src/sam_boot.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/configs/sam4e-ek/src/sam_boot.c b/configs/sam4e-ek/src/sam_boot.c index f103a897d8..ba95e74654 100644 --- a/configs/sam4e-ek/src/sam_boot.c +++ b/configs/sam4e-ek/src/sam_boot.c @@ -47,10 +47,6 @@ #include "up_arch.h" #include "sam4e-ek.h" -/************************************************************************************ - * Pre-processor Definitions - ************************************************************************************/ - /************************************************************************************ * Private Functions ************************************************************************************/ @@ -70,7 +66,7 @@ #ifdef CONFIG_SAM34_USART1 static inline void board_config_usart1(void) { -#if defined(CONFIG_USART1_RS485) */ +#if defined(CONFIG_USART1_RS485) (void)sam_configgpio(GPIO_RS485_ENABLE); #else /* if defined(CONFIG_USART1_SERIALDRIVER) */ (void)sam_configgpio(GPIO_RS232_ENABLE); -- GitLab From 003c2c737ac3678887a53f5986feaee45fea75c0 Mon Sep 17 00:00:00 2001 From: ziggurat29 Date: Wed, 25 May 2016 18:43:37 -0500 Subject: [PATCH 260/307] get I2C working. some more work regarding clocking computation is needed, as is some inhertited 'todo's from the basis code. but it does work with the devices tested so far. --- arch/arm/src/stm32l4/Make.defs | 2 +- arch/arm/src/stm32l4/stm32l4_i2c.c | 216 +++++++++++++++-------------- 2 files changed, 115 insertions(+), 103 deletions(-) diff --git a/arch/arm/src/stm32l4/Make.defs b/arch/arm/src/stm32l4/Make.defs index 84acfadd1a..d7b602efe4 100644 --- a/arch/arm/src/stm32l4/Make.defs +++ b/arch/arm/src/stm32l4/Make.defs @@ -141,12 +141,12 @@ CHIP_CSRCS += stm32l4_exti_pwr.c endif ifeq ($(CONFIG_RTC),y) -CHIP_CSRCS += stm32l4_rtcc.c ifeq ($(CONFIG_RTC_ALARM),y) CHIP_CSRCS += stm32l4_exti_alarm.c endif ifeq ($(CONFIG_RTC_DRIVER),y) CHIP_CSRCS += stm32l4_rtc_lowerhalf.c +CHIP_CSRCS += stm32l4_rtcc.c endif endif diff --git a/arch/arm/src/stm32l4/stm32l4_i2c.c b/arch/arm/src/stm32l4/stm32l4_i2c.c index 3a394cda75..7e083a31ac 100644 --- a/arch/arm/src/stm32l4/stm32l4_i2c.c +++ b/arch/arm/src/stm32l4/stm32l4_i2c.c @@ -1,22 +1,14 @@ /************************************************************************************ - * arch/arm/src/stm32l4/stm32f3xx_i2c.c + * arch/arm/src/stm32l4/stm32l4_i2c.c * STM32L4 I2C driver - based on STM32F3 I2C Hardware Layer - Device Driver * * Copyright (C) 2011 Uros Platise. All rights reserved. * Author: Uros Platise - * - * With extensions and modifications for the F1, F2, and F4 by: - * * Copyright (C) 2011-2013, 2016 Gregory Nutt. All rights reserved. * Author: Gregroy Nutt - * - * And this version for the STM32 F3 by - * * Author: John Wharington - * - * Modified for STM32L4 by - * * Author: Sebastien Lorquet + * Author: dev@ziggurat29.com * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -96,6 +88,7 @@ #include "up_arch.h" +#include "stm32l4_gpio.h" #include "stm32l4_rcc.h" #include "stm32l4_i2c.h" #include "stm32l4_waste.h" @@ -103,9 +96,6 @@ /* At least one I2C peripheral must be enabled */ #if defined(CONFIG_STM32L4_I2C1) || defined(CONFIG_STM32L4_I2C2) || defined(CONFIG_STM32L4_I2C3) -/* This implementation is for the STM32 F1, F2, and F4 only */ - -#if defined(CONFIG_STM32L4_STM32F30XX) /************************************************************************************ * Pre-processor Definitions @@ -138,12 +128,10 @@ #endif #define I2C_OUTPUT \ - (GPIO_OUTPUT | GPIO_OUTPUT_SET | GPIO_CNF_OUTOD | GPIO_MODE_50MHz) + (GPIO_OUTPUT | GPIO_OUTPUT_SET | GPIO_OPENDRAIN | GPIO_SPEED_50MHz) #define MKI2C_OUTPUT(p) \ (((p) & (GPIO_PORT_MASK | GPIO_PIN_MASK)) | I2C_OUTPUT) -/* Register setting unique to the STM32F30xx */ - #define I2C_CR1_TXRX \ (I2C_CR1_RXIE | I2C_CR1_TXIE) #define I2C_CR1_ALLINTS \ @@ -246,7 +234,7 @@ struct stm32l4_i2c_priv_s { const struct i2c_ops_s *ops; /* Standard I2C operations */ const struct stm32l4_i2c_config_s *config; /* Port configuration */ - int refs; /* Referernce count */ + int refs; /* Reference count */ sem_t sem_excl; /* Mutual exclusion semaphore */ #ifndef CONFIG_I2C_POLLED sem_t sem_isr; /* Interrupt wait semaphore */ @@ -279,15 +267,10 @@ struct stm32l4_i2c_priv_s * Private Function Prototypes ************************************************************************************/ -static inline uint16_t stm32l4_i2c_getreg(FAR struct stm32l4_i2c_priv_s *priv, - uint8_t offset); -static inline void stm32l4_i2c_putreg(FAR struct stm32l4_i2c_priv_s *priv, uint8_t offset, - uint16_t value); +static inline uint32_t stm32l4_i2c_getreg32(FAR struct stm32l4_i2c_priv_s *priv, + uint8_t offset); static inline void stm32l4_i2c_putreg32(FAR struct stm32l4_i2c_priv_s *priv, uint8_t offset, uint32_t value); -static inline void stm32l4_i2c_modifyreg(FAR struct stm32l4_i2c_priv_s *priv, - uint8_t offset, uint16_t clearbits, - uint16_t setbits); static inline void stm32l4_i2c_modifyreg32(FAR struct stm32l4_i2c_priv_s *priv, uint8_t offset, uint32_t clearbits, uint32_t setbits); @@ -351,8 +334,8 @@ const struct i2c_ops_s stm32l4_i2c_ops = static const struct stm32l4_i2c_config_s stm32l4_i2c1_config = { .base = STM32L4_I2C1_BASE, - .clk_bit = RCC_APB1ENR_I2C1EN, - .reset_bit = RCC_APB1RSTR_I2C1RST, + .clk_bit = RCC_APB1ENR1_I2C1EN, + .reset_bit = RCC_APB1RSTR1_I2C1RST, .scl_pin = GPIO_I2C1_SCL, .sda_pin = GPIO_I2C1_SDA, #ifndef CONFIG_I2C_POLLED @@ -441,20 +424,6 @@ struct stm32l4_i2c_priv_s stm32l4_i2c3_priv = * Private Functions ************************************************************************************/ -/************************************************************************************ - * Name: stm32l4_i2c_getreg - * - * Description: - * Get a 16-bit register value by offset - * - ************************************************************************************/ - -static inline uint16_t stm32l4_i2c_getreg(FAR struct stm32l4_i2c_priv_s *priv, - uint8_t offset) -{ - return getreg16(priv->config->base + offset); -} - /************************************************************************************ * Name: stm32l4_i2c_getreg32 * @@ -469,20 +438,6 @@ static inline uint32_t stm32l4_i2c_getreg32(FAR struct stm32l4_i2c_priv_s *priv, return getreg32(priv->config->base + offset); } -/************************************************************************************ - * Name: stm32l4_i2c_putreg - * - * Description: - * Put a 16-bit register value by offset - * - ************************************************************************************/ - -static inline void stm32l4_i2c_putreg(FAR struct stm32l4_i2c_priv_s *priv, uint8_t offset, - uint16_t value) -{ - putreg16(value, priv->config->base + offset); -} - /************************************************************************************ * Name: stm32l4_i2c_putreg32 * @@ -497,21 +452,6 @@ static inline void stm32l4_i2c_putreg32(FAR struct stm32l4_i2c_priv_s *priv, putreg32(value, priv->config->base + offset); } -/************************************************************************************ - * Name: stm32l4_i2c_modifyreg - * - * Description: - * Modify a 16-bit register value by offset - * - ************************************************************************************/ - -static inline void stm32l4_i2c_modifyreg(FAR struct stm32l4_i2c_priv_s *priv, - uint8_t offset, uint16_t clearbits, - uint16_t setbits) -{ - modifyreg16(priv->config->base + offset, clearbits, setbits); -} - /************************************************************************************ * Name: stm32l4_i2c_modifyreg32 * @@ -615,7 +555,6 @@ static inline int stm32l4_i2c_sem_waitdone(FAR struct stm32l4_i2c_priv_s *priv) { struct timespec abstime; irqstate_t flags; - uint32_t regval; int ret; flags = enter_critical_section(); @@ -866,7 +805,7 @@ static inline void stm32l4_i2c_sem_waitstop(FAR struct stm32l4_i2c_priv_s *priv) /* Check for timeout error */ - sr = stm32l4_i2c_getreg(priv, STM32L4_I2C_ISR_OFFSET); + sr = stm32l4_i2c_getreg32(priv, STM32L4_I2C_ISR_OFFSET); if ((sr & I2C_INT_TIMEOUT) != 0) { return; @@ -1065,6 +1004,23 @@ static void stm32l4_i2c_setclock(FAR struct stm32l4_i2c_priv_s *priv, uint32_t f uint8_t scl_h_period; uint8_t scl_l_period; + /* XXX haque; these are the only freqs we support at the moment, until we can compute the values ourself */ + + if (frequency == 10000) + {} + else if (frequency == 100000) + {} + else if (frequency == 400000) + {} + else + { +#if 1 + frequency = 1000000; +#else + frequency = 500000; +#endif + } + /* Has the I2C bus frequency changed? */ if (frequency != priv->frequency) @@ -1079,41 +1035,101 @@ static void stm32l4_i2c_setclock(FAR struct stm32l4_i2c_priv_s *priv, uint32_t f /* Update timing and control registers */ - /* TODO: speed/timing calcs */ -#warning "check set filters before timing, see RM0316" - - /* values from 100khz at 8mhz i2c clock */ - - /* prescaler */ - /* t_presc= (presc+1)*t_i2cclk */ - /* RM0316 */ + /* TODO: speed/timing calcs, taking into consideration + * STM32L4_PCLK1_FREQUENCY, or SYSCLK, or HSI16 + * clock source, RCC_CCIPR, I2CxSEL, 0 = PCKL, 1 = SCLK, 2 = HSI16, 3 = reserved +#warning "check set filters before timing, see RM0351 35.4.4 p 1112" + * analog filter; suppress spikes up to 50 ns in fast-mode and fast-mode plus + * ANFOFF cr1 + * DNF cr1; 1-15 I2CCLK periods + */ + /* RM0351 35.4.9 p 1140 */ if (frequency == 10000) { - presc = 0x01; - scl_l_period = 0xc7; - scl_h_period = 0xc3; - h_time = 0x02; - s_time = 0x04; +#if 1 + /* 10 KHz values from I2C timing tool with clock 80mhz */ + + presc = 0x0b; /* PRESC - (+1) prescale I2CCLK */ + scl_l_period = 0xff; /* SCLL - SCL low period in master mode */ + scl_h_period = 0xba; /* SCLH - SCL high period in master mode */ + h_time = 0x00; /* SDADEL - (+1) data hold time after SCL falling edge */ + s_time = 0x01; /* SCLDEL - (+1) data setup time from SDA edge to SCL rising edge */ + +#else + /* 10 KHz values from datasheet with clock 8mhz */ + + presc = 0x03; /* PRESC - (+1) prescale I2CCLK */ + scl_l_period = 0xc7; /* SCLL - SCL low period in master mode */ + scl_h_period = 0xc3; /* SCLH - SCL high period in master mode */ + h_time = 0x02; /* SDADEL - (+1) data hold time after SCL falling edge */ + s_time = 0x04; /* SCLDEL - (+1) data setup time from SDA edge to SCL rising edge */ +#endif } else if (frequency == 100000) { - /* values from datasheet with clock 8mhz */ +#if 1 + /* 100 KHz values from I2C timing tool with clock 80mhz */ + + presc = 0x01; /* PRESC - (+1) prescale I2CCLK */ + scl_l_period = 0xe7; /* SCLL - SCL low period in master mode */ + scl_h_period = 0x9b; /* SCLH - SCL high period in master mode */ + h_time = 0x00; /* SDADEL - (+1) data hold time after SCL falling edge */ + s_time = 0x0d; /* SCLDEL - (+1) data setup time from SDA edge to SCL rising edge */ +#else + /* 100 KHz values from datasheet with clock 8mhz */ presc = 0x01; scl_l_period = 0x13; scl_h_period = 0x0f; h_time = 0x02; s_time = 0x04; +#endif } - else + else if (frequency == 400000) { +#if 1 + /* 400 KHz values from I2C timing tool for clock of 80mhz */ + + presc = 0x01; /* PRESC - (+1) prescale I2CCLK */ + scl_l_period = 0x43; /* SCLL - SCL low period in master mode */ + scl_h_period = 0x13; /* SCLH - SCL high period in master mode */ + h_time = 0x00; /* SDADEL - (+1) data hold time after SCL falling edge */ + s_time = 0x07; /* SCLDEL - (+1) data setup time from SDA edge to SCL rising edge */ +#else + /* 400 KHz values from datasheet for clock of 8mhz */ + presc = 0x00; scl_l_period = 0x09; scl_h_period = 0x03; h_time = 0x01; s_time = 0x03; +#endif } + else + { +#if 1 + /* 1000 KHhz values from I2C timing tool for clock of 80mhz */ + + presc = 0x01; /* PRESC - (+1) prescale I2CCLK */ + scl_l_period = 0x14; /* SCLL - SCL low period in master mode */ + scl_h_period = 0x13; /* SCLH - SCL high period in master mode */ + h_time = 0x00; /* SDADEL - (+1) data hold time after SCL falling edge */ + s_time = 0x05; /* SCLDEL - (+1) data setup time from SDA edge to SCL rising edge */ + + frequency = 1000000; +#else + /* 500 KHhz values from datasheet for clock of 8mhz */ + + presc = 0x00; + scl_l_period = 0x06; + scl_h_period = 0x03; + h_time = 0x00; + s_time = 0x01; + + frequency = 500000; +#endif + } uint32_t timingr = (presc << I2C_TIMINGR_PRESC_SHIFT) | @@ -1124,10 +1140,6 @@ static void stm32l4_i2c_setclock(FAR struct stm32l4_i2c_priv_s *priv, uint32_t f stm32l4_i2c_putreg32(priv, STM32L4_I2C_TIMINGR_OFFSET, timingr); - /* Bit 14 of OAR1 must be configured and kept at 1 */ - - stm32l4_i2c_putreg(priv, STM32L4_I2C_OAR1_OFFSET, I2C_OAR1_ONE); - /* Re-enable the peripheral (or not) */ if (pe) @@ -1318,7 +1330,7 @@ static int stm32l4_i2c_isr(struct stm32l4_i2c_priv_s *priv) /* Send a byte */ stm32l4_i2c_traceevent(priv, I2CEVENT_SENDBYTE, priv->dcnt); - stm32l4_i2c_putreg(priv, STM32L4_I2C_TXDR_OFFSET, *priv->ptr++); + stm32l4_i2c_putreg32(priv, STM32L4_I2C_TXDR_OFFSET, *priv->ptr++); priv->dcnt--; } } @@ -1354,7 +1366,7 @@ static int stm32l4_i2c_isr(struct stm32l4_i2c_priv_s *priv) #endif /* Receive a byte */ - *priv->ptr++ = stm32l4_i2c_getreg(priv, STM32L4_I2C_RXDR_OFFSET); + *priv->ptr++ = (uint8_t) stm32l4_i2c_getreg32(priv, STM32L4_I2C_RXDR_OFFSET); /* Disable acknowledge when last byte is to be received */ @@ -1554,9 +1566,9 @@ static int stm32l4_i2c_init(FAR struct stm32l4_i2c_priv_s *priv) /* Enable power and reset the peripheral */ - modifyreg32(STM32L4_RCC_APB1ENR, 0, priv->config->clk_bit); - modifyreg32(STM32L4_RCC_APB1RSTR, 0, priv->config->reset_bit); - modifyreg32(STM32L4_RCC_APB1RSTR, priv->config->reset_bit, 0); + modifyreg32(STM32L4_RCC_APB1ENR1, 0, priv->config->clk_bit); + modifyreg32(STM32L4_RCC_APB1RSTR1, 0, priv->config->reset_bit); + modifyreg32(STM32L4_RCC_APB1RSTR1, priv->config->reset_bit, 0); /* Configure pins */ @@ -1588,8 +1600,8 @@ static int stm32l4_i2c_init(FAR struct stm32l4_i2c_priv_s *priv) priv->frequency = 0; - /* TODO: f303 i2c clock source RCC_CFGR3 */ - /* RCC_CFGR3_I2C1SW (default is HSI clock) */ + /* TODO: i2c clock source RCC_CCIPR */ + /* RCC_CCIPR I2CxSEL (default is PCLK clock) */ stm32l4_i2c_setclock(priv, 100000); @@ -1629,7 +1641,7 @@ static int stm32l4_i2c_deinit(FAR struct stm32l4_i2c_priv_s *priv) /* Disable clocking */ - modifyreg32(STM32L4_RCC_APB1ENR, priv->config->clk_bit, 0); + modifyreg32(STM32L4_RCC_APB1ENR1, priv->config->clk_bit, 0); return OK; } @@ -1713,8 +1725,8 @@ static int stm32l4_i2c_transfer(FAR struct i2c_master_s *dev, FAR struct i2c_msg status = stm32l4_i2c_getstatus(priv); ret = -ETIMEDOUT; - i2cdbg("Timed out: CR1: %04x status: %08x\n", - stm32l4_i2c_getreg(priv, STM32L4_I2C_CR1_OFFSET), status); + i2cdbg("Timed out: CR1: %08x status: %08x\n", + stm32l4_i2c_getreg32(priv, STM32L4_I2C_CR1_OFFSET), status); /* "Note: When the STOP, START or PEC bit is set, the software must * not perform any write access to I2C_CR1 before this bit is @@ -1836,6 +1848,7 @@ static int stm32l4_i2c_transfer(FAR struct i2c_master_s *dev, FAR struct i2c_msg #ifdef CONFIG_I2C_RESET static int stm32l4_i2c_reset(FAR struct i2c_master_s * dev) { + FAR struct stm32l4_i2c_priv_s *priv = (struct stm32l4_i2c_priv_s *)dev; unsigned int clock_count; unsigned int stretch_count; uint32_t scl_gpio; @@ -1962,7 +1975,7 @@ out: FAR struct i2c_master_s *stm32l4_i2cbus_initialize(int port) { struct stm32l4_i2c_priv_s * priv = NULL; /* private data of device with multiple instances */ - irqtate_t flags; + irqstate_t flags; #if STM32L4_PCLK1_FREQUENCY < 4000000 # warning STM32L4_I2C_INIT: Peripheral clock must be at least 4 MHz to support 400 kHz operation. @@ -2054,6 +2067,5 @@ int stm32l4_i2cbus_uninitialize(FAR struct i2c_master_s * dev) return OK; } -#endif /* CONFIG_STM32L4_STM32F30XX */ #endif /* CONFIG_STM32L4_I2C1 || CONFIG_STM32L4_I2C2 || CONFIG_STM32L4_I2C3 */ -- GitLab From 3603dc6218c3624288a4fc6c1cce9d322a757b09 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 25 May 2016 17:56:47 -0600 Subject: [PATCH 261/307] 1-wire: Initialization/uninitialization functions are not use MCU-independent up_ naming. Should use STM32-specific stm32_ naming. These are not globally accessible but only accessible from STM32 board logic. --- arch/arm/src/stm32/stm32_1wire.c | 76 +++++++++++++++++++------------- arch/arm/src/stm32/stm32_1wire.h | 36 +++++++++++++++ include/nuttx/1wire.h | 49 -------------------- 3 files changed, 82 insertions(+), 79 deletions(-) diff --git a/arch/arm/src/stm32/stm32_1wire.c b/arch/arm/src/stm32/stm32_1wire.c index 018ff32c6f..4c0fa6c0f7 100644 --- a/arch/arm/src/stm32/stm32_1wire.c +++ b/arch/arm/src/stm32/stm32_1wire.c @@ -159,28 +159,28 @@ static int stm32_1wire_process(struct stm32_1wire_priv_s *priv, static int stm32_1wire_isr(struct stm32_1wire_priv_s *priv); #ifdef CONFIG_STM32_USART1_1WIREDRIVER -static int up_interrupt_1wire1(int irq, void *context); +static int stm32_interrupt_1wire1(int irq, void *context); #endif #ifdef CONFIG_STM32_USART2_1WIREDRIVER -static int up_interrupt_1wire2(int irq, void *context); +static int stm32_interrupt_1wire2(int irq, void *context); #endif #ifdef CONFIG_STM32_USART3_1WIREDRIVER -static int up_interrupt_1wire3(int irq, void *context); +static int stm32_interrupt_1wire3(int irq, void *context); #endif #ifdef CONFIG_STM32_UART4_1WIREDRIVER -static int up_interrupt_1wire4(int irq, void *context); +static int stm32_interrupt_1wire4(int irq, void *context); #endif #ifdef CONFIG_STM32_UART5_1WIREDRIVER -static int up_interrupt_1wire5(int irq, void *context); +static int stm32_interrupt_1wire5(int irq, void *context); #endif #ifdef CONFIG_STM32_USART6_1WIREDRIVER -static int up_interrupt_1wire6(int irq, void *context); +static int stm32_interrupt_1wire6(int irq, void *context); #endif #ifdef CONFIG_STM32_UART7_1WIREDRIVER -static int up_interrupt_1wire7(int irq, void *context); +static int stm32_interrupt_1wire7(int irq, void *context); #endif #ifdef CONFIG_STM32_UART8_1WIREDRIVER -static int up_interrupt_1wire8(int irq, void *context); +static int stm32_interrupt_1wire8(int irq, void *context); #endif static int stm32_1wire_reset(FAR struct onewire_dev_s *dev); @@ -206,7 +206,7 @@ static const struct stm32_1wire_config_s stm32_1wire1_config = .apbclock = STM32_PCLK2_FREQUENCY, .data_pin = PIN_OPENDRAIN(GPIO_USART1_TX), .irq = STM32_IRQ_USART1, - .vector = up_interrupt_1wire1, + .vector = stm32_interrupt_1wire1, }; static struct stm32_1wire_priv_s stm32_1wire1_priv = @@ -226,7 +226,7 @@ static const struct stm32_1wire_config_s stm32_1wire2_config = .apbclock = STM32_PCLK1_FREQUENCY, .data_pin = PIN_OPENDRAIN(GPIO_USART2_TX), .irq = STM32_IRQ_USART2, - .vector = up_interrupt_1wire2, + .vector = stm32_interrupt_1wire2, }; static struct stm32_1wire_priv_s stm32_1wire2_priv = @@ -246,7 +246,7 @@ static const struct stm32_1wire_config_s stm32_1wire3_config = .apbclock = STM32_PCLK1_FREQUENCY, .data_pin = PIN_OPENDRAIN(GPIO_USART3_TX), .irq = STM32_IRQ_USART3, - .vector = up_interrupt_1wire3, + .vector = stm32_interrupt_1wire3, }; static struct stm32_1wire_priv_s stm32_1wire3_priv = @@ -266,7 +266,7 @@ static const struct stm32_1wire_config_s stm32_1wire4_config = .apbclock = STM32_PCLK1_FREQUENCY, .data_pin = PIN_OPENDRAIN(GPIO_UART4_TX), .irq = STM32_IRQ_UART4, - .vector = up_interrupt_1wire4, + .vector = stm32_interrupt_1wire4, }; static struct stm32_1wire_priv_s stm32_1wire4_priv = @@ -286,7 +286,7 @@ static const struct stm32_1wire_config_s stm32_1wire5_config = .apbclock = STM32_PCLK1_FREQUENCY, .data_pin = PIN_OPENDRAIN(GPIO_UART5_TX), .irq = STM32_IRQ_UART5, - .vector = up_interrupt_1wire5, + .vector = stm32_interrupt_1wire5, }; static struct stm32_1wire_priv_s stm32_1wire5_priv = @@ -306,7 +306,7 @@ static const struct stm32_1wire_config_s stm32_1wire6_config = .apbclock = STM32_PCLK2_FREQUENCY, .data_pin = PIN_OPENDRAIN(GPIO_USART6_TX), .irq = STM32_IRQ_USART6, - .vector = up_interrupt_1wire6, + .vector = stm32_interrupt_1wire6, }; static struct stm32_1wire_priv_s stm32_1wire6_priv = @@ -326,7 +326,7 @@ static const struct stm32_1wire_config_s stm32_1wire7_config = .apbclock = STM32_PCLK1_FREQUENCY, .data_pin = PIN_OPENDRAIN(GPIO_UART7_TX), .irq = STM32_IRQ_UART7, - .vector = up_interrupt_1wire7, + .vector = stm32_interrupt_1wire7, }; static struct stm32_1wire_priv_s stm32_1wire7_priv = @@ -346,7 +346,7 @@ static const struct stm32_1wire_config_s stm32_1wire8_config = .apbclock = STM32_PCLK1_FREQUENCY, .data_pin = PIN_OPENDRAIN(GPIO_UART8_TX), .irq = STM32_IRQ_UART8, - .vector = up_interrupt_1wire8, + .vector = stm32_interrupt_1wire8, }; static struct stm32_1wire_priv_s stm32_1wire8_priv = @@ -1031,49 +1031,49 @@ static int stm32_1wire_isr(struct stm32_1wire_priv_s *priv) } #ifdef CONFIG_STM32_USART1_1WIREDRIVER -static int up_interrupt_1wire1(int irq, void *context) +static int stm32_interrupt_1wire1(int irq, void *context) { return stm32_1wire_isr(&stm32_1wire1_priv); } #endif #ifdef CONFIG_STM32_USART2_1WIREDRIVER -static int up_interrupt_1wire2(int irq, void *context) +static int stm32_interrupt_1wire2(int irq, void *context) { return stm32_1wire_isr(&stm32_1wire2_priv); } #endif #ifdef CONFIG_STM32_USART3_1WIREDRIVER -static int up_interrupt_1wire3(int irq, void *context) +static int stm32_interrupt_1wire3(int irq, void *context) { return stm32_1wire_isr(&stm32_1wire3_priv); } #endif #ifdef CONFIG_STM32_UART4_1WIREDRIVER -static int up_interrupt_1wire4(int irq, void *context) +static int stm32_interrupt_1wire4(int irq, void *context) { return stm32_1wire_isr(&stm32_1wire4_priv); } #endif #ifdef CONFIG_STM32_UART5_1WIREDRIVER -static int up_interrupt_1wire5(int irq, void *context) +static int stm32_interrupt_1wire5(int irq, void *context) { return stm32_1wire_isr(&stm32_1wire5_priv); } #endif #ifdef CONFIG_STM32_USART6_1WIREDRIVER -static int up_interrupt_1wire6(int irq, void *context) +static int stm32_interrupt_1wire6(int irq, void *context) { return stm32_1wire_isr(&stm32_1wire6_priv); } #endif #ifdef CONFIG_STM32_UART7_1WIREDRIVER -static int up_interrupt_1wire7(int irq, void *context) +static int stm32_interrupt_1wire7(int irq, void *context) { return stm32_1wire_isr(&stm32_1wire7_priv); } #endif #ifdef CONFIG_STM32_UART8_1WIREDRIVER -static int up_interrupt_1wire8(int irq, void *context) +static int stm32_interrupt_1wire8(int irq, void *context) { return stm32_1wire_isr(&stm32_1wire8_priv); } @@ -1199,14 +1199,23 @@ static int stm32_1wire_exchange(FAR struct onewire_dev_s *dev, bool reset, ****************************************************************************/ /**************************************************************************** - * Name: up_1wireinitialize + * Name: stm32_1wireinitialize * * Description: - * Initialize one 1-Wire port + * Initialize the selected 1-Wire port. And return a unique instance of struct + * struct onewire_dev_s. This function may be called to obtain multiple + * instances of the interface, each of which may be set up with a + * different frequency and slave address. + * + * Input Parameter: + * Port number (for hardware that has multiple 1-Wire interfaces) + * + * Returned Value: + * Valid 1-Wire device structure reference on succcess; a NULL on failure * ****************************************************************************/ -FAR struct onewire_dev_s *up_1wireinitialize(int port) +FAR struct onewire_dev_s *stm32_1wireinitialize(int port) { struct stm32_1wire_priv_s *priv = NULL; /* Private data of device with multiple instances */ struct stm32_1wire_inst_s *inst = NULL; /* Device, single instance */ @@ -1289,14 +1298,21 @@ FAR struct onewire_dev_s *up_1wireinitialize(int port) } /**************************************************************************** - * Name: up_1wireuninitialize + * Name: stm32_1wireuninitialize * * Description: - * Uninitialize an 1-Wire port + * De-initialize the selected 1-Wire port, and power down the device. + * + * Input Parameter: + * Device structure as returned by the stm32_1wireinitialize() + * + * Returned Value: + * OK on success, ERROR when internal reference count mismatch or dev + * points to invalid hardware device. * ****************************************************************************/ -int up_1wireuninitialize(FAR struct onewire_dev_s *dev) +int stm32_1wireuninitialize(FAR struct onewire_dev_s *dev) { struct stm32_1wire_priv_s *priv = ((struct stm32_1wire_inst_s *)dev)->priv; int irqs; diff --git a/arch/arm/src/stm32/stm32_1wire.h b/arch/arm/src/stm32/stm32_1wire.h index b8bb398923..46fd34affa 100644 --- a/arch/arm/src/stm32/stm32_1wire.h +++ b/arch/arm/src/stm32/stm32_1wire.h @@ -60,4 +60,40 @@ * Public Functions ************************************************************************************/ +/**************************************************************************** + * Name: stm32_1wireinitialize + * + * Description: + * Initialize the selected 1-Wire port. And return a unique instance of struct + * struct onewire_dev_s. This function may be called to obtain multiple + * instances of the interface, each of which may be set up with a + * different frequency and slave address. + * + * Input Parameter: + * Port number (for hardware that has multiple 1-Wire interfaces) + * + * Returned Value: + * Valid 1-Wire device structure reference on succcess; a NULL on failure + * + ****************************************************************************/ + +FAR struct onewire_dev_s *stm32_1wireinitialize(int port); + +/**************************************************************************** + * Name: stm32_1wireuninitialize + * + * Description: + * De-initialize the selected 1-Wire port, and power down the device. + * + * Input Parameter: + * Device structure as returned by the stm32_1wireinitialize() + * + * Returned Value: + * OK on success, ERROR when internal reference count mismatch or dev + * points to invalid hardware device. + * + ****************************************************************************/ + +int stm32_1wireuninitialize(FAR struct onewire_dev_s *dev); + #endif /* __ARCH_ARM_SRC_STM32_STM32_1WIRE_H */ diff --git a/include/nuttx/1wire.h b/include/nuttx/1wire.h index fe2dd87a7b..2879d03089 100644 --- a/include/nuttx/1wire.h +++ b/include/nuttx/1wire.h @@ -163,53 +163,4 @@ struct onewire_dev_s * Public Functions ****************************************************************************/ -#if defined(__cplusplus) -#define EXTERN extern "C" -extern "C" -{ -#else -#define EXTERN extern -#endif - -/**************************************************************************** - * Name: up_1wireinitialize - * - * Description: - * Initialize the selected 1-Wire port. And return a unique instance of struct - * struct onewire_dev_s. This function may be called to obtain multiple - * instances of the interface, each of which may be set up with a - * different frequency and slave address. - * - * Input Parameter: - * Port number (for hardware that has multiple 1-Wire interfaces) - * - * Returned Value: - * Valid 1-Wire device structure reference on succcess; a NULL on failure - * - ****************************************************************************/ - -FAR struct onewire_dev_s *up_1wireinitialize(int port); - -/**************************************************************************** - * Name: up_1wireuninitialize - * - * Description: - * De-initialize the selected 1-Wire port, and power down the device. - * - * Input Parameter: - * Device structure as returned by the up_1wireinitialize() - * - * Returned Value: - * OK on success, ERROR when internal reference count mismatch or dev - * points to invalid hardware device. - * - ****************************************************************************/ - -int up_1wireuninitialize(FAR struct onewire_dev_s *dev); - -#undef EXTERN -#if defined(__cplusplus) -} -#endif - #endif /* __INCLUDE_NUTTX_1WIRE_H */ -- GitLab From 783bab6c8226d0fc9d40feba27e033f4622715eb Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Wed, 25 May 2016 18:04:39 -0600 Subject: [PATCH 262/307] Costmetic changes from review of last PR --- arch/arm/src/stm32/stm32_1wire.h | 14 +----------- arch/arm/src/stm32l4/stm32l4_i2c.c | 34 ++++++++++++++++++------------ 2 files changed, 21 insertions(+), 27 deletions(-) diff --git a/arch/arm/src/stm32/stm32_1wire.h b/arch/arm/src/stm32/stm32_1wire.h index 46fd34affa..24cfe45592 100644 --- a/arch/arm/src/stm32/stm32_1wire.h +++ b/arch/arm/src/stm32/stm32_1wire.h @@ -45,19 +45,7 @@ #include "stm32_uart.h" /************************************************************************************ - * Pre-processor Definitions - ************************************************************************************/ - -/************************************************************************************ - * Public Types - ************************************************************************************/ - -/************************************************************************************ - * Public Data - ************************************************************************************/ - -/************************************************************************************ - * Public Functions + * Public Function Prototypes ************************************************************************************/ /**************************************************************************** diff --git a/arch/arm/src/stm32l4/stm32l4_i2c.c b/arch/arm/src/stm32l4/stm32l4_i2c.c index 7e083a31ac..452b125e36 100644 --- a/arch/arm/src/stm32l4/stm32l4_i2c.c +++ b/arch/arm/src/stm32l4/stm32l4_i2c.c @@ -268,9 +268,9 @@ struct stm32l4_i2c_priv_s ************************************************************************************/ static inline uint32_t stm32l4_i2c_getreg32(FAR struct stm32l4_i2c_priv_s *priv, - uint8_t offset); -static inline void stm32l4_i2c_putreg32(FAR struct stm32l4_i2c_priv_s *priv, uint8_t offset, - uint32_t value); + uint8_t offset); +static inline void stm32l4_i2c_putreg32(FAR struct stm32l4_i2c_priv_s *priv, + uint8_t offset, uint32_t value); static inline void stm32l4_i2c_modifyreg32(FAR struct stm32l4_i2c_priv_s *priv, uint8_t offset, uint32_t clearbits, uint32_t setbits); @@ -285,13 +285,14 @@ static inline void stm32l4_i2c_sem_init(FAR struct stm32l4_i2c_priv_s *priv); static inline void stm32l4_i2c_sem_destroy(FAR struct stm32l4_i2c_priv_s *priv); #ifdef CONFIG_I2C_TRACE static void stm32l4_i2c_tracereset(FAR struct stm32l4_i2c_priv_s *priv); -static void stm32l4_i2c_tracenew(FAR struct stm32l4_i2c_priv_s *priv, uint32_t status); +static void stm32l4_i2c_tracenew(FAR struct stm32l4_i2c_priv_s *priv, + uint32_t status); static void stm32l4_i2c_traceevent(FAR struct stm32l4_i2c_priv_s *priv, - enum stm32l4_trace_e event, uint32_t parm); + enum stm32l4_trace_e event, uint32_t parm); static void stm32l4_i2c_tracedump(FAR struct stm32l4_i2c_priv_s *priv); #endif /* CONFIG_I2C_TRACE */ static void stm32l4_i2c_setclock(FAR struct stm32l4_i2c_priv_s *priv, - uint32_t frequency); + uint32_t frequency); static inline void stm32l4_i2c_sendstart(FAR struct stm32l4_i2c_priv_s *priv); static inline void stm32l4_i2c_clrstart(FAR struct stm32l4_i2c_priv_s *priv); static inline void stm32l4_i2c_sendstop(FAR struct stm32l4_i2c_priv_s *priv); @@ -310,8 +311,8 @@ static int stm32l4_i2c3_isr(int irq, void *context); #endif static int stm32l4_i2c_init(FAR struct stm32l4_i2c_priv_s *priv); static int stm32l4_i2c_deinit(FAR struct stm32l4_i2c_priv_s *priv); -static int stm32l4_i2c_transfer(FAR struct i2c_master_s *dev, FAR struct i2c_msg_s *msgs, - int count); +static int stm32l4_i2c_transfer(FAR struct i2c_master_s *dev, + FAR struct i2c_msg_s *msgs, int count); #ifdef CONFIG_I2C_RESET static int stm32l4_i2c_reset(FAR struct i2c_master_s *dev); #endif @@ -1004,22 +1005,27 @@ static void stm32l4_i2c_setclock(FAR struct stm32l4_i2c_priv_s *priv, uint32_t f uint8_t scl_h_period; uint8_t scl_l_period; - /* XXX haque; these are the only freqs we support at the moment, until we can compute the values ourself */ + /* XXX haque; these are the only freqs we support at the moment, until we can + * compute the values ourself. + */ if (frequency == 10000) - {} + { + } else if (frequency == 100000) - {} + { + } else if (frequency == 400000) - {} + { + } else - { + { #if 1 frequency = 1000000; #else frequency = 500000; #endif - } + } /* Has the I2C bus frequency changed? */ -- GitLab From e57a6d14c300e156e29d372dee7d713794fe37ce Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 26 May 2016 07:21:14 -0600 Subject: [PATCH 263/307] lcd/Kconfig, Make.defs: Remove dependency of CONFIG_LCD_NXDRIVER for building non-graphic, SLCD drivers. --- configs/sabre-6quad/README.txt | 5 ++++- drivers/Kconfig | 15 -------------- drivers/lcd/Kconfig | 36 ++++++++++++++++++++++++++++++++-- drivers/lcd/Make.defs | 17 +++++++++++++++- 4 files changed, 54 insertions(+), 19 deletions(-) diff --git a/configs/sabre-6quad/README.txt b/configs/sabre-6quad/README.txt index 016d4cc6df..122f28e8d4 100644 --- a/configs/sabre-6quad/README.txt +++ b/configs/sabre-6quad/README.txt @@ -555,7 +555,10 @@ Open Issues: PMD_SECT_DOM(0) | PMD_SECT_XN) #define MMU_STRONGLY_ORDERED (PMD_TYPE_SECT | PMD_SECT_AP_RW1 | \ -3. Assertions. On a fatal assertions, other CPUs need to be stopped. +3. Assertions. On a fatal assertions, other CPUs need to be stopped. The SCR, + however, only supports disabling CPUs 1 through 3. Perhaps if the assertion + occurs on CPUn, n > 0, then it should use and SGI to perform the assertion + on CPU0 always. From CPU0, CPU1-3 can be disabled. 4. Caching probabaly interferes with spinlocks as they are currently implemented. Waiting on a cached copy of the spinlock may result in a hang or a failure to diff --git a/drivers/Kconfig b/drivers/Kconfig index 75c162dbb8..df45c0d172 100644 --- a/drivers/Kconfig +++ b/drivers/Kconfig @@ -373,22 +373,7 @@ if IOEXPANDER source drivers/ioexpander/Kconfig endif # IOEXPANDER -menuconfig LCD - bool "LCD Driver Support" - default n - select NX_LCDDRIVER if NX - ---help--- - Drivers for parallel and serial LCD and OLED type devices. These - drivers support interfaces as defined in include/nuttx/lcd/lcd.h - - This selection is necessary to enable support for LCD drivers in - drivers/lcd as well as for board-specific LCD drivers in the configs/ - subdirectories. - -if LCD source drivers/lcd/Kconfig -endif # LCD - source drivers/leds/Kconfig menuconfig MMCSD diff --git a/drivers/lcd/Kconfig b/drivers/lcd/Kconfig index 7aba2f5452..441e6fba26 100644 --- a/drivers/lcd/Kconfig +++ b/drivers/lcd/Kconfig @@ -3,7 +3,23 @@ # see the file kconfig-language.txt in the NuttX tools repository. # -comment "Common LCD Settings" +menu "LCD Driver Support" + +menuconfig LCD + bool "Graphic LCD Driver Support" + default n + select NX_LCDDRIVER if NX + ---help--- + Drivers for parallel and serial LCD and OLED type devices. These + drivers support interfaces as defined in include/nuttx/lcd/lcd.h + + This selection is necessary to enable support for LCD drivers in + drivers/lcd as well as for board-specific LCD drivers in the configs/ + subdirectories. + +if LCD + +comment "Common Graphipc LCD Settings" config LCD_CONSOLE bool "LCD console output" @@ -990,8 +1006,21 @@ config LCD_RA8875_EXTENDED driver anyway. endif # LCD_RA8875 +endif # LCD -comment "Alphanumeric/Segment LCD Devices" +menuconfig SLCD + bool "Alphanumeric/Segment LCD Devices" + default n + ---help--- + Drivers for Alphanumeric ans Segment LCDs (SLCDs). These + drivers support interfaces as defined in include/nuttx/lcd/slcd_ioctl.h + amd slcd_codec.h + + This selection is necessary to enable support for SLCD drivers in + drivers/lcd as well as for board-specific LCD drivers in the configs/ + subdirectories. + +if SLCD config LCD_LCD1602 bool "LCD 1602" @@ -1018,3 +1047,6 @@ config LCD_BACKPACK This driver supports known and unknown variants. See pcf8574_lcd_backpack_readme.txt + +endif # SLCD +endmenu # LCD Driver Support diff --git a/drivers/lcd/Make.defs b/drivers/lcd/Make.defs index fd9bdc4bc2..890e3bb9e5 100644 --- a/drivers/lcd/Make.defs +++ b/drivers/lcd/Make.defs @@ -37,7 +37,7 @@ ifeq ($(CONFIG_NX_LCDDRIVER),y) -# Include LCD drivers +# Include Graphics LCD drivers ifeq ($(CONFIG_LCD_P14201),y) CSRCS += p14201.c @@ -103,6 +103,8 @@ ifeq ($(CONFIG_LCD_RA8875),y) CSRCS += ra8875.c endif +# Include Alphanumeric/Segment LCD drivers too + ifeq ($(CONFIG_LCD_BACKPACK),y) CSRCS += pcf8574_lcd_backpack.c endif @@ -112,5 +114,18 @@ endif DEPPATH += --dep-path lcd VPATH += :lcd CFLAGS += ${shell $(INCDIR) $(INCDIROPT) "$(CC)" $(TOPDIR)$(DELIM)drivers$(DELIM)lcd} + +else ifeq ($(CONFIG_SLCD),y) + +# Include Alphanumeric/Segment LCD drivers only + +ifeq ($(CONFIG_LCD_BACKPACK),y) + CSRCS += pcf8574_lcd_backpack.c endif +# Include LCD driver build support + +DEPPATH += --dep-path lcd +VPATH += :lcd +CFLAGS += ${shell $(INCDIR) $(INCDIROPT) "$(CC)" $(TOPDIR)$(DELIM)drivers$(DELIM)lcd} +endif -- GitLab From aa7a981674557dd40073f4cd0c39f19c47426016 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 26 May 2016 08:37:40 -0600 Subject: [PATCH 264/307] Update some comments --- configs/nucleo-f4x1re/src/stm32_ajoystick.c | 5 ++- configs/sama5d3-xplained/src/sam_ajoystick.c | 5 ++- fs/vfs/fs_close.c | 1 + fs/vfs/fs_dup.c | 8 ----- fs/vfs/fs_dup2.c | 8 ----- include/nuttx/fs/fs.h | 34 -------------------- 6 files changed, 9 insertions(+), 52 deletions(-) diff --git a/configs/nucleo-f4x1re/src/stm32_ajoystick.c b/configs/nucleo-f4x1re/src/stm32_ajoystick.c index 9d79e99cc7..5079c98acd 100644 --- a/configs/nucleo-f4x1re/src/stm32_ajoystick.c +++ b/configs/nucleo-f4x1re/src/stm32_ajoystick.c @@ -465,7 +465,10 @@ int board_ajoy_initialize(void) return ret; } - /* Open the ADC driver for reading */ + /* Open the ADC driver for reading. + * REVISIT: This can't work! The file descriptor is only valid in the + * task that opened the file. Not useful for a sharable driver. + */ g_adcfd = open("/dev/adc0", O_RDONLY); if (g_adcfd < 0) diff --git a/configs/sama5d3-xplained/src/sam_ajoystick.c b/configs/sama5d3-xplained/src/sam_ajoystick.c index 20c24c424e..dcb941593b 100644 --- a/configs/sama5d3-xplained/src/sam_ajoystick.c +++ b/configs/sama5d3-xplained/src/sam_ajoystick.c @@ -416,7 +416,10 @@ int sam_ajoy_initialization(void) return ret; } - /* Open the ADC driver for reading */ + /* Open the ADC driver for reading. + * REVISIT: This can't work! The file descriptor is only valid in the + * task that opened the file. Not useful for a sharable driver. + */ g_adcfd = open("/dev/adc0", O_RDONLY); if (g_adcfd < 0) diff --git a/fs/vfs/fs_close.c b/fs/vfs/fs_close.c index b784b2c9e0..d54e5da9cc 100644 --- a/fs/vfs/fs_close.c +++ b/fs/vfs/fs_close.c @@ -122,6 +122,7 @@ int close(int fd) err = -ret; goto errout; } + return OK; #endif diff --git a/fs/vfs/fs_dup.c b/fs/vfs/fs_dup.c index 03b8b751ab..7e8096663d 100644 --- a/fs/vfs/fs_dup.c +++ b/fs/vfs/fs_dup.c @@ -46,14 +46,6 @@ #include #include "inode/inode.h" -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ diff --git a/fs/vfs/fs_dup2.c b/fs/vfs/fs_dup2.c index c81e7b6eae..02ed1cbecc 100644 --- a/fs/vfs/fs_dup2.c +++ b/fs/vfs/fs_dup2.c @@ -52,14 +52,6 @@ #if CONFIG_NFILE_DESCRIPTORS > 0 && defined(CONFIG_NET) && CONFIG_NSOCKET_DESCRIPTORS > 0 -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ diff --git a/include/nuttx/fs/fs.h b/include/nuttx/fs/fs.h index 8de9a1b095..b82f128e27 100644 --- a/include/nuttx/fs/fs.h +++ b/include/nuttx/fs/fs.h @@ -364,7 +364,6 @@ extern "C" #define EXTERN extern #endif -/* fs_inode.c ***************************************************************/ /**************************************************************************** * Name: fs_initialize * @@ -376,7 +375,6 @@ extern "C" void fs_initialize(void); -/* fs_foreachmountpoint.c ***************************************************/ /**************************************************************************** * Name: foreach_mountpoint * @@ -401,7 +399,6 @@ void fs_initialize(void); int foreach_mountpoint(foreach_mountpoint_t handler, FAR void *arg); #endif -/* fs_registerdriver.c ******************************************************/ /**************************************************************************** * Name: register_driver * @@ -428,7 +425,6 @@ int foreach_mountpoint(foreach_mountpoint_t handler, FAR void *arg); int register_driver(FAR const char *path, FAR const struct file_operations *fops, mode_t mode, FAR void *priv); -/* fs_registerblockdriver.c *************************************************/ /**************************************************************************** * Name: register_blockdriver * @@ -458,7 +454,6 @@ int register_blockdriver(FAR const char *path, FAR void *priv); #endif -/* fs_unregisterdriver.c ****************************************************/ /**************************************************************************** * Name: unregister_driver * @@ -469,7 +464,6 @@ int register_blockdriver(FAR const char *path, int unregister_driver(const char *path); -/* fs_unregisterblockdriver.c ***********************************************/ /**************************************************************************** * Name: unregister_blockdriver * @@ -480,7 +474,6 @@ int unregister_driver(const char *path); int unregister_blockdriver(const char *path); -/* fs_open.c ****************************************************************/ /**************************************************************************** * Name: inode_checkflags * @@ -491,7 +484,6 @@ int unregister_blockdriver(const char *path); int inode_checkflags(FAR struct inode *inode, int oflags); -/* fs_files.c ***************************************************************/ /**************************************************************************** * Name: files_initlist * @@ -529,7 +521,6 @@ void files_releaselist(FAR struct filelist *list); int file_dup2(FAR struct file *filep1, FAR struct file *filep2); #endif -/* fs_filedup.c *************************************************************/ /**************************************************************************** * Name: fs_dupfd OR dup * @@ -561,7 +552,6 @@ int fs_dupfd(int fd, int minfd); int file_dup(FAR struct file *filep, int minfd); -/* fs_filedup2.c ************************************************************/ /**************************************************************************** * Name: fs_dupfd2 OR dup2 * @@ -584,7 +574,6 @@ int fs_dupfd2(int fd1, int fd2); #endif #endif -/* fs_openblockdriver.c *****************************************************/ /**************************************************************************** * Name: open_blockdriver * @@ -613,7 +602,6 @@ int open_blockdriver(FAR const char *pathname, int mountflags, FAR struct inode **ppinode); #endif -/* fs_closeblockdriver.c ****************************************************/ /**************************************************************************** * Name: close_blockdriver * @@ -635,7 +623,6 @@ int open_blockdriver(FAR const char *pathname, int mountflags, int close_blockdriver(FAR struct inode *inode); #endif -/* fs/vfs/fs_ioctl.c ********************************************************/ /**************************************************************************** * Name: fs_ioctl * @@ -669,7 +656,6 @@ int close_blockdriver(FAR struct inode *inode); int fs_ioctl(int fd, int req, unsigned long arg); #endif -/* fs_fdopen.c **************************************************************/ /**************************************************************************** * Name: fs_fdopen * @@ -684,7 +670,6 @@ struct tcb_s; /* Forward reference */ FAR struct file_struct *fs_fdopen(int fd, int oflags, FAR struct tcb_s *tcb); #endif -/* libc/stdio/lib_fflush.c *************************************************/ /**************************************************************************** * Name: lib_flushall * @@ -698,7 +683,6 @@ FAR struct file_struct *fs_fdopen(int fd, int oflags, FAR struct tcb_s *tcb); int lib_flushall(FAR struct streamlist *list); #endif -/* libc/misc/lib_sendfile.c *************************************************/ /**************************************************************************** * Name: lib_sendfile * @@ -711,7 +695,6 @@ int lib_flushall(FAR struct streamlist *list); ssize_t lib_sendfile(int outfd, int infd, off_t *offset, size_t count); #endif -/* fs/fs_getfilep.c *********************************************************/ /**************************************************************************** * Name: fs_getfilep * @@ -734,7 +717,6 @@ ssize_t lib_sendfile(int outfd, int infd, off_t *offset, size_t count); FAR struct file *fs_getfilep(int fd); #endif -/* fs/fs_read.c *************************************************************/ /**************************************************************************** * Name: file_read * @@ -749,7 +731,6 @@ FAR struct file *fs_getfilep(int fd); ssize_t file_read(FAR struct file *filep, FAR void *buf, size_t nbytes); #endif -/* fs/fs_write.c ************************************************************/ /**************************************************************************** * Name: file_write * @@ -764,7 +745,6 @@ ssize_t file_read(FAR struct file *filep, FAR void *buf, size_t nbytes); ssize_t file_write(FAR struct file *filep, FAR const void *buf, size_t nbytes); #endif -/* fs/fs_pread.c ************************************************************/ /**************************************************************************** * Name: file_pread * @@ -780,7 +760,6 @@ ssize_t file_pread(FAR struct file *filep, FAR void *buf, size_t nbytes, off_t offset); #endif -/* fs/fs_pwrite.c ***********************************************************/ /**************************************************************************** * Name: file_pwrite * @@ -796,7 +775,6 @@ ssize_t file_pwrite(FAR struct file *filep, FAR const void *buf, size_t nbytes, off_t offset); #endif -/* fs/fs_lseek.c ************************************************************/ /**************************************************************************** * Name: file_seek * @@ -811,7 +789,6 @@ ssize_t file_pwrite(FAR struct file *filep, FAR const void *buf, off_t file_seek(FAR struct file *filep, off_t offset, int whence); #endif -/* fs/fs_fsync.c ************************************************************/ /**************************************************************************** * Name: file_fsync * @@ -826,7 +803,6 @@ off_t file_seek(FAR struct file *filep, off_t offset, int whence); int file_fsync(FAR struct file *filep); #endif -/* fs/fs_fcntl.c ************************************************************/ /**************************************************************************** * Name: file_vfcntl * @@ -841,7 +817,6 @@ int file_fsync(FAR struct file *filep); int file_vfcntl(FAR struct file *filep, int cmd, va_list ap); #endif -/* fs/fs_poll.c *************************************************************/ /**************************************************************************** * Function: file_poll * @@ -864,7 +839,6 @@ int file_vfcntl(FAR struct file *filep, int cmd, va_list ap); int file_poll(int fd, FAR struct pollfd *fds, bool setup); #endif -/* drivers/dev_null.c *******************************************************/ /**************************************************************************** * Name: devnull_register * @@ -875,7 +849,6 @@ int file_poll(int fd, FAR struct pollfd *fds, bool setup); void devnull_register(void); -/* crypto/cryptodev.c *******************************************************/ /**************************************************************************** * Name: devcrypto_register * @@ -886,7 +859,6 @@ void devnull_register(void); void devcrypto_register(void); -/* drivers/dev_zero.c *******************************************************/ /**************************************************************************** * Name: devzero_register * @@ -897,7 +869,6 @@ void devcrypto_register(void); void devzero_register(void); -/* drivers/bch/bchdev_register.c ********************************************/ /**************************************************************************** * Name: bchdev_register * @@ -910,7 +881,6 @@ void devzero_register(void); int bchdev_register(FAR const char *blkdev, FAR const char *chardev, bool readonly); -/* drivers/bch/bchdev_unregister.c ******************************************/ /**************************************************************************** * Name: bchdev_unregister * @@ -926,7 +896,6 @@ int bchdev_unregister(FAR const char *chardev); * are incompatible. One and only one access method should be implemented. */ -/* drivers/bch/bchlib_setup.c ***********************************************/ /**************************************************************************** * Name: bchlib_setup * @@ -938,7 +907,6 @@ int bchdev_unregister(FAR const char *chardev); int bchlib_setup(FAR const char *blkdev, bool readonly, FAR void **handle); -/* drivers/bch/bchlib_teardown.c ********************************************/ /**************************************************************************** * Name: bchlib_teardown * @@ -950,7 +918,6 @@ int bchlib_setup(FAR const char *blkdev, bool readonly, FAR void **handle); int bchlib_teardown(FAR void *handle); -/* drivers/bch/bchlib_read.c ************************************************/ /**************************************************************************** * Name: bchlib_read * @@ -963,7 +930,6 @@ int bchlib_teardown(FAR void *handle); ssize_t bchlib_read(FAR void *handle, FAR char *buffer, size_t offset, size_t len); -/* drivers/bch/bchlib_write.c ***********************************************/ /**************************************************************************** * Name: bchlib_write * -- GitLab From 5cc2fba4189da904ce58fc8189e4dcc9e2e09ca0 Mon Sep 17 00:00:00 2001 From: "Paul A. Patience" Date: Thu, 26 May 2016 11:11:09 -0400 Subject: [PATCH 265/307] libuavcan: Forgot to change define --- configs/nucleo-f303re/src/stm32_boot.c | 2 +- configs/stm32f4discovery/src/stm32_boot.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/configs/nucleo-f303re/src/stm32_boot.c b/configs/nucleo-f303re/src/stm32_boot.c index 783a231f7c..6410d202d0 100644 --- a/configs/nucleo-f303re/src/stm32_boot.c +++ b/configs/nucleo-f303re/src/stm32_boot.c @@ -86,7 +86,7 @@ void stm32_boardinitialize(void) } #endif -#ifdef CONFIG_CANUTILS_UAVCAN +#ifdef CONFIG_CANUTILS_LIBUAVCAN (void)stm32_configgpio(GPIO_CAN1_RX); (void)stm32_configgpio(GPIO_CAN1_TX); #endif diff --git a/configs/stm32f4discovery/src/stm32_boot.c b/configs/stm32f4discovery/src/stm32_boot.c index 888317b1ce..41eb13dcc7 100644 --- a/configs/stm32f4discovery/src/stm32_boot.c +++ b/configs/stm32f4discovery/src/stm32_boot.c @@ -104,10 +104,10 @@ void stm32_boardinitialize(void) } #endif -#ifdef CONFIG_CANUTILS_UAVCAN +#ifdef CONFIG_CANUTILS_LIBUAVCAN (void)stm32_configgpio(GPIO_CAN1_RX); (void)stm32_configgpio(GPIO_CAN1_TX); -# if CONFIG_UAVCAN_STM32_NUM_IFACES > 1 +# if CONFIG_LIBUAVCAN_STM32_NUM_IFACES > 1 (void)stm32_configgpio(GPIO_CAN2_RX); (void)stm32_configgpio(GPIO_CAN2_TX); # endif -- GitLab From 001715d57b21ca850020c9b487d6b17d0597c618 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 26 May 2016 09:41:50 -0600 Subject: [PATCH 266/307] FS: Add logic to detach a file structure from a file descriptor. This is for use only within the OS. It permits an open file or driver to be used across multiple threads. --- ChangeLog | 3 + configs/nucleo-f4x1re/src/stm32_ajoystick.c | 37 ++-- configs/nucleo-l476rg/src/stm32_ajoystick.c | 36 +-- configs/sama5d3-xplained/src/sam_ajoystick.c | 36 +-- fs/inode/Make.defs | 2 +- fs/inode/fs_filedetach.c | 217 +++++++++++++++++++ fs/inode/fs_files.c | 8 +- fs/vfs/fs_close.c | 2 +- include/nuttx/fs/fs.h | 48 +++- 9 files changed, 339 insertions(+), 50 deletions(-) create mode 100644 fs/inode/fs_filedetach.c diff --git a/ChangeLog b/ChangeLog index 910c764f3f..dab311760b 100755 --- a/ChangeLog +++ b/ChangeLog @@ -11810,3 +11810,6 @@ driver already supports a 1-wire interface, but this driver uses the same serial logic to implement a lower half driver much like the I2C lower half driver. From Aleksandr Vyhovanec (2015-05-25). + * fs/: Add logic to detach a file structure from a file descriptor. + This is for use only within the OS. It permits an open file or driver + to be used across multiple threads (2016-05-26). diff --git a/configs/nucleo-f4x1re/src/stm32_ajoystick.c b/configs/nucleo-f4x1re/src/stm32_ajoystick.c index 5079c98acd..61eaccf244 100644 --- a/configs/nucleo-f4x1re/src/stm32_ajoystick.c +++ b/configs/nucleo-f4x1re/src/stm32_ajoystick.c @@ -46,6 +46,7 @@ #include #include +#include #include #include "stm32_gpio.h" @@ -108,10 +109,6 @@ AJOY_BUTTON_7_BIT ) #endif -/**************************************************************************** - * Private Types - ****************************************************************************/ - /**************************************************************************** * Private Function Prototypes ****************************************************************************/ @@ -158,9 +155,9 @@ static const struct ajoy_lowerhalf_s g_ajoylower = }; #ifndef NO_JOYSTICK_ADC -/* Descriptor for the open ADC driver */ +/* Thread-independent file structure for the open ADC driver */ -static int g_adcfd = -1; +static struct file g_adcfile; #endif /* Current interrupt handler and argument */ @@ -209,7 +206,7 @@ static int ajoy_sample(FAR const struct ajoy_lowerhalf_s *lower, * channels are enabled). */ - nread = read(g_adcfd, adcmsg, MAX_ADC_CHANNELS * sizeof(struct adc_msg_s)); + nread = file_read(&g_adcfile, adcmsg, MAX_ADC_CHANNELS * sizeof(struct adc_msg_s)); if (nread < 0) { int errcode = get_errno(); @@ -454,6 +451,8 @@ int board_ajoy_initialize(void) int i; #ifndef NO_JOYSTICK_ADC + int fd; + ivdbg("Initialize ADC driver: /dev/adc0\n"); /* Initialize ADC. We will need this to read the ADC inputs */ @@ -465,18 +464,27 @@ int board_ajoy_initialize(void) return ret; } - /* Open the ADC driver for reading. - * REVISIT: This can't work! The file descriptor is only valid in the - * task that opened the file. Not useful for a sharable driver. - */ + /* Open the ADC driver for reading. */ - g_adcfd = open("/dev/adc0", O_RDONLY); - if (g_adcfd < 0) + fd = open("/dev/adc0", O_RDONLY); + if (fd < 0) { int errcode = get_errno(); idbg("ERROR: Failed to open /dev/adc0: %d\n", errcode); return -errcode; } + + /* Detach the file structure from the file descriptor so that it can be + * used on any thread. + */ + + ret = file_detach(fd, &g_adcfile); + if (ret < 0) + { + idbg("ERROR: Failed to detach from file descriptor: %d\n", ret); + (void)close(fd); + return ret; + } #endif /* Configure the GPIO pins as interrupting inputs. NOTE: This is @@ -500,8 +508,7 @@ int board_ajoy_initialize(void) { idbg("ERROR: ajoy_register failed: %d\n", ret); #ifndef NO_JOYSTICK_ADC - close(g_adcfd); - g_adcfd = -1; + file_close_detached(&g_adcfile); #endif } diff --git a/configs/nucleo-l476rg/src/stm32_ajoystick.c b/configs/nucleo-l476rg/src/stm32_ajoystick.c index 53d58a77d9..bd57040a78 100644 --- a/configs/nucleo-l476rg/src/stm32_ajoystick.c +++ b/configs/nucleo-l476rg/src/stm32_ajoystick.c @@ -1,7 +1,7 @@ /**************************************************************************** * configs/nucleo-f3x1re/src/stm32_ajoystick.c * - * Copyright (C) 2014 Gregory Nutt. All rights reserved. + * Copyright (C) 2014, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -45,6 +45,7 @@ #include #include +#include #include #include "stm32l4_gpio.h" @@ -107,10 +108,6 @@ AJOY_BUTTON_7_BIT ) #endif -/**************************************************************************** - * Private Types - ****************************************************************************/ - /**************************************************************************** * Private Function Prototypes ****************************************************************************/ @@ -157,9 +154,9 @@ static const struct ajoy_lowerhalf_s g_ajoylower = }; #ifndef NO_JOYSTICK_ADC -/* Descriptor for the open ADC driver */ +/* Thread-independent file structure for the open ADC driver */ -static int g_adcfd = -1; +static struct file g_adcfile; #endif /* Current interrupt handler and argument */ @@ -208,7 +205,7 @@ static int ajoy_sample(FAR const struct ajoy_lowerhalf_s *lower, * channels are enabled). */ - nread = read(g_adcfd, adcmsg, MAX_ADC_CHANNELS * sizeof(struct adc_msg_s)); + nread = file_read(&g_adcfile, adcmsg, MAX_ADC_CHANNELS * sizeof(struct adc_msg_s)); if (nread < 0) { int errcode = get_errno(); @@ -453,6 +450,8 @@ int board_ajoy_initialize(void) int i; #ifndef NO_JOYSTICK_ADC + int fd; + ivdbg("Initialize ADC driver: /dev/adc0\n"); /* Initialize ADC. We will need this to read the ADC inputs */ @@ -464,15 +463,27 @@ int board_ajoy_initialize(void) return ret; } - /* Open the ADC driver for reading */ + /* Open the ADC driver for reading. */ - g_adcfd = open("/dev/adc0", O_RDONLY); - if (g_adcfd < 0) + fd = open("/dev/adc0", O_RDONLY); + if (fd < 0) { int errcode = get_errno(); idbg("ERROR: Failed to open /dev/adc0: %d\n", errcode); return -errcode; } + + /* Detach the file structure from the file descriptor so that it can be + * used on any thread. + */ + + ret = file_detach(fd, &g_adcfile); + if (ret < 0) + { + idbg("ERROR: Failed to detach from file descriptor: %d\n", ret); + (void)close(fd); + return ret; + } #endif /* Configure the GPIO pins as interrupting inputs. NOTE: This is @@ -496,8 +507,7 @@ int board_ajoy_initialize(void) { idbg("ERROR: ajoy_register failed: %d\n", ret); #ifndef NO_JOYSTICK_ADC - close(g_adcfd); - g_adcfd = -1; + file_close_detached(&g_adcfile); #endif } diff --git a/configs/sama5d3-xplained/src/sam_ajoystick.c b/configs/sama5d3-xplained/src/sam_ajoystick.c index dcb941593b..d05f46eeaf 100644 --- a/configs/sama5d3-xplained/src/sam_ajoystick.c +++ b/configs/sama5d3-xplained/src/sam_ajoystick.c @@ -46,6 +46,7 @@ #include #include +#include #include #include "sam_pio.h" @@ -93,10 +94,6 @@ AJOY_BUTTON_5_BIT | AJOY_BUTTON_6_BIT | \ AJOY_BUTTON_7_BIT ) -/**************************************************************************** - * Private Types - ****************************************************************************/ - /**************************************************************************** * Private Function Prototypes ****************************************************************************/ @@ -141,9 +138,9 @@ static const struct ajoy_lowerhalf_s g_ajoylower = .al_enable = ajoy_enable, }; -/* Descriptor for the open ADC driver */ +/* Thread-independent file structure for the open ADC driver */ -static int g_adcfd = -1; +static struct file g_adcfile; /* Current interrupt handler and argument */ @@ -190,7 +187,7 @@ static int ajoy_sample(FAR const struct ajoy_lowerhalf_s *lower, * channels are enabled). */ - nread = read(g_adcfd, adcmsg, SAM_ADC_NCHANNELS * sizeof(struct adc_msg_s)); + nread = file_read(&g_adcfile, adcmsg, MAX_ADC_CHANNELS * sizeof(struct adc_msg_s)); if (nread < 0) { int errcode = get_errno(); @@ -405,6 +402,7 @@ static int ajoy_interrupt(int irq, FAR void *context) int sam_ajoy_initialization(void) { int ret; + int fd; int i; /* Initialize ADC. We will need this to read the ADC inputs */ @@ -416,19 +414,28 @@ int sam_ajoy_initialization(void) return ret; } - /* Open the ADC driver for reading. - * REVISIT: This can't work! The file descriptor is only valid in the - * task that opened the file. Not useful for a sharable driver. - */ + /* Open the ADC driver for reading. */ - g_adcfd = open("/dev/adc0", O_RDONLY); - if (g_adcfd < 0) + fd = open("/dev/adc0", O_RDONLY); + if (fd < 0) { int errcode = get_errno(); idbg("ERROR: Failed to open /dev/adc0: %d\n", errcode); return -errcode; } + /* Detach the file structure from the file descriptor so that it can be + * used on any thread. + */ + + ret = file_detach(fd, &g_adcfile); + if (ret < 0) + { + idbg("ERROR: Failed to detach from file descriptor: %d\n", ret); + (void)close(fd); + return ret; + } + /* Configure the GPIO pins as interrupting inputs. */ for (i = 0; i < AJOY_NGPIOS; i++) @@ -452,8 +459,7 @@ int sam_ajoy_initialization(void) if (ret < 0) { idbg("ERROR: ajoy_register failed: %d\n", ret); - close(g_adcfd); - g_adcfd = -1; + file_close_detached(&g_adcfile); } return ret; diff --git a/fs/inode/Make.defs b/fs/inode/Make.defs index 1450245105..753a0706ee 100644 --- a/fs/inode/Make.defs +++ b/fs/inode/Make.defs @@ -39,7 +39,7 @@ ifneq ($(CONFIG_NFILE_DESCRIPTORS),0) CSRCS += fs_files.c fs_foreachinode.c fs_inode.c fs_inodeaddref.c CSRCS += fs_inodebasename.c fs_inodefind.c fs_inoderelease.c -CSRCS += fs_inoderemove.c fs_inodereserve.c +CSRCS += fs_inoderemove.c fs_inodereserve.c fs_filedetach.c # Include inode/utils build support diff --git a/fs/inode/fs_filedetach.c b/fs/inode/fs_filedetach.c new file mode 100644 index 0000000000..8b13250cbc --- /dev/null +++ b/fs/inode/fs_filedetach.c @@ -0,0 +1,217 @@ +/**************************************************************************** + * fs/inode/fs_filedetach.c + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include + +#include +#include +#include + +#include +#include + +#include "inode/inode.h" + +/**************************************************************************** + * Private Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: _files_semtake + ****************************************************************************/ + +static inline void _files_semtake(FAR struct filelist *list) +{ + /* Take the semaphore (perhaps waiting) */ + + while (sem_wait(&list->fl_sem) != 0) + { + /* The only case that an error should occur here is if + * the wait was awakened by a signal. + */ + + DEBUGASSERT(get_errno() == EINTR); + } +} + +/**************************************************************************** + * Name: _files_semgive + ****************************************************************************/ + +#define _files_semgive(list) sem_post(&list->fl_sem) + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: file_detach + * + * Description: + * This function is used to device drivers to create a task-independent + * handle to an entity in the file system. file_detach() duplicates the + * 'struct file' that underlies the file descriptor, then closes the file + * descriptor. + * + * This function will fail if fd is not a valid file descriptor. In + * particular, it will fail if fd is a socket descriptor. + * + * Input Parameters: + * fd - The file descriptor to be detached. This descriptor will be + * closed and invalid if the file was successfully detached. + * filep - A pointer to a user provided memory location in which to + * received the duplicated, detached file structure. + * + * Returned Value: + * Zero (OK) is returned on success; A negated errno value is returned on + * any failure to indicate the nature of the failure. + * + ****************************************************************************/ + +#if CONFIG_NFILE_DESCRIPTORS > 0 +int file_detach(int fd, FAR struct file *filep) +{ + FAR struct filelist *list; + FAR struct file *parent; + + /* Verify the file descriptor range */ + + if (fd < 0 || fd >= CONFIG_NFILE_DESCRIPTORS) + { + /* Not a file descriptor (might be a socket descriptor) */ + + return -EBADF; + } + + /* Get the thread-specific file list. It should never be NULL in this + * context. + */ + + list = sched_getfiles(); + DEBUGASSERT(list != NULL); + + /* If the file was properly opened, there should be an inode assigned */ + + _files_semtake(list); + parent = &list->fl_files[fd]; + if (parent->f_inode == NULL) + { + /* File is not open */ + + _files_semgive(list); + return -EBADF; + } + + /* Duplicate the 'struct file' content into the user-provided file + * structure. + */ + + filep->f_oflags = parent->f_oflags; + filep->f_pos = parent->f_pos; + filep->f_inode = parent->f_inode; + filep->f_priv = parent->f_priv; + + /* Release the file descriptore *without* calling the drive close method + * and without decrementing the inode reference count. That will be done + * in file_close_detached(). + */ + + parent->f_oflags = 0; + parent->f_pos = 0; + parent->f_inode = NULL; + parent->f_priv = NULL; + + _files_semgive(list); + return OK; +} +#endif + +/**************************************************************************** + * Name: file_close_detached + * + * Description: + * Close a file that was previously detached with file_detach(). + * + * REVISIT: This is essentially the same as _files_close() + * + * Input Parameters: + * filep - A pointer to a user provided memory location containing the + * open file data returned by file_detach(). + * + * Returned Value: + * Zero (OK) is returned on success; A negated errno value is returned on + * any failure to indicate the nature of the failure. + * + ****************************************************************************/ + +int file_close_detached(FAR struct file *filep) +{ + struct inode *inode; + int ret = OK; + + DEBUGASSERT(filep != NULL); + inode = filep->f_inode; + + /* Check if the struct file is open (i.e., assigned an inode) */ + + if (inode) + { + /* Close the file, driver, or mountpoint. */ + + if (inode->u.i_ops && inode->u.i_ops->close) + { + /* Perform the close operation */ + + ret = inode->u.i_ops->close(filep); + } + + /* And release the inode */ + + inode_release(inode); + + /* Reset the user file struct instance so that it cannot be reused. */ + + filep->f_oflags = 0; + filep->f_pos = 0; + filep->f_inode = NULL; + filep->f_priv = NULL; + } + + return ret; +} diff --git a/fs/inode/fs_files.c b/fs/inode/fs_files.c index 84f78ee400..7c4665640e 100644 --- a/fs/inode/fs_files.c +++ b/fs/inode/fs_files.c @@ -65,7 +65,7 @@ static void _files_semtake(FAR struct filelist *list) while (sem_wait(&list->fl_sem) != 0) { - /* The only case that an error should occr here is if + /* The only case that an error should occur here is if * the wait was awakened by a signal. */ @@ -362,9 +362,9 @@ int files_close(int fd) /* If the file was properly opened, there should be an inode assigned */ if (fd < 0 || fd >= CONFIG_NFILE_DESCRIPTORS || !list->fl_files[fd].f_inode) - { - return -EBADF; - } + { + return -EBADF; + } /* Perform the protected close operation */ diff --git a/fs/vfs/fs_close.c b/fs/vfs/fs_close.c index d54e5da9cc..3a52d0c086 100644 --- a/fs/vfs/fs_close.c +++ b/fs/vfs/fs_close.c @@ -105,7 +105,7 @@ int close(int fd) #if CONFIG_NFILE_DESCRIPTORS > 0 /* Close the driver or mountpoint. NOTES: (1) there is no - * exclusion mechanism here , the driver or mountpoint must be + * exclusion mechanism here, the driver or mountpoint must be * able to handle concurrent operations internally, (2) The driver * may have been opened numerous times (for different file * descriptors) and must also handle being closed numerous times. diff --git a/include/nuttx/fs/fs.h b/include/nuttx/fs/fs.h index b82f128e27..b415725ee8 100644 --- a/include/nuttx/fs/fs.h +++ b/include/nuttx/fs/fs.h @@ -532,7 +532,7 @@ int file_dup2(FAR struct file *filep1, FAR struct file *filep2); * function IS dup(). * * This alternative naming is used when dup could operate on both file and - * socket descritors to avoid drawing unused socket support into the link. + * socket descriptors to avoid drawing unused socket support into the link. * ****************************************************************************/ @@ -574,6 +574,52 @@ int fs_dupfd2(int fd1, int fd2); #endif #endif +/**************************************************************************** + * Name: file_detach + * + * Description: + * This function is used to device drivers to create a task-independent + * handle to an entity in the file system. file_detach() duplicates the + * 'struct file' that underlies the file descriptor, then closes the file + * descriptor. + * + * This function will fail if fd is not a valid file descriptor. In + * particular, it will fail if fd is a socket descriptor. + * + * Input Parameters: + * fd - The file descriptor to be detached. This descriptor will be + * closed and invalid if the file was successfully detached. + * filep - A pointer to a user provided memory location in which to + * received the duplicated, detached file structure. + * + * Returned Value: + * Zero (OK) is returned on success; A negated errno value is returned on + * any failure to indicate the nature of the failure. + * + ****************************************************************************/ + +#if CONFIG_NFILE_DESCRIPTORS > 0 +int file_detach(int fd, FAR struct file *filep); +#endif + +/**************************************************************************** + * Name: file_close_detached + * + * Description: + * Close a file that was previously detached with file_detach(). + * + * Input Parameters: + * filep - A pointer to a user provided memory location containing the + * open file data returned by file_detach(). + * + * Returned Value: + * Zero (OK) is returned on success; A negated errno value is returned on + * any failure to indicate the nature of the failure. + * + ****************************************************************************/ + +int file_close_detached(FAR struct file *filep); + /**************************************************************************** * Name: open_blockdriver * -- GitLab From b630d48175d44e8e35571cabf7833a377d87ef9a Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 26 May 2016 11:32:26 -0600 Subject: [PATCH 267/307] Add bind method to the ADC lower-half interface --- drivers/analog/adc.c | 50 ++++++++++-- drivers/analog/ads1255.c | 153 +++++++++++++++++++++++++++++-------- include/nuttx/analog/adc.h | 49 +++++++----- 3 files changed, 194 insertions(+), 58 deletions(-) diff --git a/drivers/analog/adc.c b/drivers/analog/adc.c index ff6031ee68..7c20c112b9 100644 --- a/drivers/analog/adc.c +++ b/drivers/analog/adc.c @@ -1,9 +1,10 @@ /**************************************************************************** * drivers/analog/adc.c * + * Copyright (C) 2008-2009, 2016 Gregory Nutt. All rights reserved. * Copyright (C) 2011 Li Zhuoyi. All rights reserved. * Author: Li Zhuoyi - * History: 0.1 2011-08-04 initial version + * Gregory Nutt * * Derived from drivers/can.c * @@ -70,12 +71,14 @@ static int adc_close(FAR struct file *filep); static ssize_t adc_read(FAR struct file *fielp, FAR char *buffer, size_t buflen); static int adc_ioctl(FAR struct file *filep, int cmd, unsigned long arg); +static int adc_receive(FAR struct adc_dev_s *dev, uint8_t ch, + int32_t data); /**************************************************************************** * Private Data ****************************************************************************/ -static const struct file_operations adc_fops = +static const struct file_operations g_adc_fops = { adc_open, /* open */ adc_close, /* close */ @@ -88,6 +91,11 @@ static const struct file_operations adc_fops = #endif }; +static const struct adc_callback_s g_adc_callback = +{ + adc_receive /* au_receive */ +}; + /**************************************************************************** * Private Functions ****************************************************************************/ @@ -361,15 +369,11 @@ static int adc_ioctl(FAR struct file *filep, int cmd, unsigned long arg) return ret; } -/**************************************************************************** - * Public Functions - ****************************************************************************/ - /**************************************************************************** * Name: adc_receive ****************************************************************************/ -int adc_receive(FAR struct adc_dev_s *dev, uint8_t ch, int32_t data) +static int adc_receive(FAR struct adc_dev_s *dev, uint8_t ch, int32_t data) { FAR struct adc_fifo_s *fifo = &dev->ad_recv; int nexttail; @@ -408,12 +412,30 @@ int adc_receive(FAR struct adc_dev_s *dev, uint8_t ch, int32_t data) return err; } +/**************************************************************************** + * Public Functions + ****************************************************************************/ + /**************************************************************************** * Name: adc_register ****************************************************************************/ int adc_register(FAR const char *path, FAR struct adc_dev_s *dev) { + int ret; + + DEBUGASSERT(path != NULL && dev != NULL); + + /* Bind the upper-half callbacks to the lower half ADC driver */ + + DEBUGASSERT(dev->ad_ops != NULL && dev->ad_ops->ao_bind != NULL); + ret = dev->ad_ops->ao_bind(dev, &g_adc_callback); + if (ret < 0) + { + adbg("ERROR: Failed to bind callbacks: %d\n", ret) + return ret; + } + /* Initialize the ADC device structure */ dev->ad_ocount = 0; @@ -421,7 +443,19 @@ int adc_register(FAR const char *path, FAR struct adc_dev_s *dev) sem_init(&dev->ad_recv.af_sem, 0, 0); sem_init(&dev->ad_closesem, 0, 1); + /* Reset the ADC hardware */ + + DEBUGASSERT(dev->ad_ops->ao_reset != NULL); dev->ad_ops->ao_reset(dev); - return register_driver(path, &adc_fops, 0444, dev); + /* Register the ADC character driver */ + + ret = register_driver(path, &g_adc_fops, 0444, dev); + if (ret < 0) + { + sem_destroy(&dev->ad_recv.af_sem); + sem_destroy(&dev->ad_closesem); + } + + return ret; } diff --git a/drivers/analog/ads1255.c b/drivers/analog/ads1255.c index 432b7dd766..3b69e09a0e 100644 --- a/drivers/analog/ads1255.c +++ b/drivers/analog/ads1255.c @@ -1,10 +1,10 @@ /************************************************************************************ * arch/drivers/analog/ads1255.c * + * Copyright (C) 2010, 2016 Gregory Nutt. All rights reserved. * Copyright (C) 2011 Li Zhuoyi. All rights reserved. * Author: Li Zhuoyi - * History: 0.1 2011-08-05 initial version - * 0.2 2011-08-25 fix bug in g_adcdev (cd_ops -> ad_ops,cd_priv -> ad_priv) + * Gregory Nutt * * This file is a part of NuttX: * @@ -47,6 +47,7 @@ #include #include #include +#include #include #include @@ -105,8 +106,9 @@ * ad_private Types ****************************************************************************/ -struct up_dev_s +struct ads1255_dev_s { + FAR const struct adc_callback_s *cb; uint8_t channel; uint32_t sps; uint8_t pga; @@ -123,6 +125,8 @@ struct up_dev_s /* ADC methods */ +static int adc_bind(FAR struct adc_dev_s *dev, + FAR const struct adc_callback_s *callback); static void adc_reset(FAR struct adc_dev_s *dev); static int adc_setup(FAR struct adc_dev_s *dev); static void adc_shutdown(FAR struct adc_dev_s *dev); @@ -143,7 +147,7 @@ static const struct adc_ops_s g_adcops = .ao_ioctl = adc_ioctl /* ao_read */ }; -static struct up_dev_s g_adcpriv = +static struct ads1255_dev_s g_adcpriv = { .mux = (const uint8_t []) { @@ -190,16 +194,44 @@ static uint8_t getspsreg(uint16_t sps) } /**************************************************************************** - * ad_private Functions + * Private Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: adc_bind + * + * Description: + * Bind the upper-half driver callbacks to the lower-half implementation. This + * must be called early in order to receive ADC event notifications. + * + ****************************************************************************/ + +static int adc_bind(FAR struct adc_dev_s *dev, + FAR const struct adc_callback_s *callback) +{ + FAR struct ads1255_dev_s *priv = (FAR struct ads1255_dev_s *)dev->ad_priv; + + DEBUGASSERT(priv != NULL); + priv->cb = callback; + return OK; +} + +/**************************************************************************** + * Name: adc_reset + * + * Description: + * Reset the ADC device. Called early to initialize the hardware. This + * is called, before ao_setup() and on error conditions. + * ****************************************************************************/ -/* Reset the ADC device. Called early to initialize the hardware. This - * is called, before ao_setup() and on error conditions. - */ static void adc_reset(FAR struct adc_dev_s *dev) { - FAR struct up_dev_s *priv = (FAR struct up_dev_s *)dev->ad_priv; - FAR struct spi_dev_s *spi = priv->spi; + FAR struct ads1255_dev_s *priv = (FAR struct ads1255_dev_s *)dev->ad_priv; + FAR struct spi_dev_s *spi; + + DEBUGASSERT(priv != NULL && priv->spi != NULL); + spi = priv->spi; SPI_SETMODE(spi, SPIDEV_MODE1); SPI_SETBITS(spi, 8); @@ -213,18 +245,27 @@ static void adc_reset(FAR struct adc_dev_s *dev) SPI_SELECT(spi, priv->devno, false); } -/* Configure the ADC. This method is called the first time that the ADC - * device is opened. This will occur when the port is first opened. - * This setup includes configuring and attaching ADC interrupts. Interrupts - * are all disabled upon return. - */ +/**************************************************************************** + * Name: adc_setup + * + * Description: + * Configure the ADC. This method is called the first time that the ADC + * device is opened. This will occur when the port is first opened. + * This setup includes configuring and attaching ADC interrupts. Interrupts + * are all disabled upon return. + * + ****************************************************************************/ -static int adc_setup(FAR struct adc_dev_s *dev) +static int adc_setup(FAR struct adc_dev_s *dev) { - FAR struct up_dev_s *priv = (FAR struct up_dev_s *)dev->ad_priv; - FAR struct spi_dev_s *spi = priv->spi; - int ret = irq_attach(priv->irq, adc_interrupt); + FAR struct ads1255_dev_s *priv = (FAR struct ads1255_dev_s *)dev->ad_priv; + FAR struct spi_dev_s *spi; + int ret; + DEBUGASSERT(priv != NULL && priv->spi != NULL); + spi = priv->spi; + + ret = irq_attach(priv->irq, adc_interrupt); if (ret == OK) { SPI_SELECT(spi, priv->devno, true); @@ -251,22 +292,39 @@ static int adc_setup(FAR struct adc_dev_s *dev) return ret; } -/* Disable the ADC. This method is called when the ADC device is closed. - * This method reverses the operation the setup method. - */ +/**************************************************************************** + * Name: adc_shutdown + * + * Description: + * Disable the ADC. This method is called when the ADC device is closed. + * This method reverses the operation the setup method. + * + ****************************************************************************/ static void adc_shutdown(FAR struct adc_dev_s *dev) { - FAR struct up_dev_s *priv = (FAR struct up_dev_s *)dev->ad_priv; + FAR struct ads1255_dev_s *priv = (FAR struct ads1255_dev_s *)dev->ad_priv; + + DEBUGASSERT(priv != NULL); + up_disable_irq(priv->irq); irq_detach(priv->irq); } -/* Call to enable or disable RX interrupts */ +/**************************************************************************** + * Name: adc_rxint + * + * Description: + * Call to enable or disable RX interrupts + * + ****************************************************************************/ static void adc_rxint(FAR struct adc_dev_s *dev, bool enable) { - FAR struct up_dev_s *priv = (FAR struct up_dev_s *)dev->ad_priv; + FAR struct ads1255_dev_s *priv = (FAR struct ads1255_dev_s *)dev->ad_priv; + + DEBUGASSERT(priv != NULL); + if (enable) { up_enable_irq(priv->irq); @@ -277,21 +335,42 @@ static void adc_rxint(FAR struct adc_dev_s *dev, bool enable) } } -/* All ioctl calls will be routed through this method */ +/**************************************************************************** + * Name: adc_ioctl + * + * Description: + * All ioctl calls will be routed through this method + * + ****************************************************************************/ -static int adc_ioctl(FAR struct adc_dev_s *dev, int cmd, unsigned long arg) +static int adc_ioctl(FAR struct adc_dev_s *dev, int cmd, unsigned long arg) { dbg("Fix me:Not Implemented\n"); return 0; } +/**************************************************************************** + * Name: adc_interrupt + * + * Description: + * ADC interrupt handler + * + ****************************************************************************/ + static int adc_interrupt(int irq, void *context) { - FAR struct up_dev_s *priv = (FAR struct up_dev_s *)g_adcdev.ad_priv; - FAR struct spi_dev_s *spi = priv->spi; + FAR struct ads1255_dev_s *priv = (FAR struct ads1255_dev_s *)g_adcdev.ad_priv; + FAR struct spi_dev_s *spi; unsigned char buf[4]; unsigned char ch; + DEBUGASSERT(priv != NULL && priv->spi != NULL); + spi = priv->spi; + + /* REVISIT: Cannot perform SPI operations from an interrupt handler! + * Need to use the high priority work queue. + */ + SPI_SELECT(spi, priv->devno, true); SPI_SEND(spi, ADS125X_RDATA); up_udelay(10); @@ -316,7 +395,16 @@ static int adc_interrupt(int irq, void *context) SPI_SEND(spi, ADS125X_WAKEUP); SPI_SELECT(spi, priv->devno, false); - adc_receive(&g_adcdev, priv->channel, *(int32_t *)buf); + /* Verify that the upper-half driver has bound its callback functions */ + + if (priv->cb != NULL) + { + /* Perform the data received callback */ + + DEBUGASSERT(priv->cb->au_receive != NULL); + priv->cb->au_receive(&g_adcdev, priv->channel, *(int32_t *)buf); + } + return OK; } @@ -341,10 +429,13 @@ static int adc_interrupt(int irq, void *context) FAR struct adc_dev_s *up_ads1255initialize(FAR struct spi_dev_s *spi, unsigned int devno) { - FAR struct up_dev_s *priv = (FAR struct up_dev_s *)g_adcdev.ad_priv; + FAR struct ads1255_dev_s *priv = (FAR struct ads1255_dev_s *)g_adcdev.ad_priv; + + DEBUGASSERT(spi != NULL); /* Driver state data */ + priv->cb = NULL; priv->spi = spi; priv->devno = devno; return &g_adcdev; diff --git a/include/nuttx/analog/adc.h b/include/nuttx/analog/adc.h index 04db97626c..aae75649f1 100644 --- a/include/nuttx/analog/adc.h +++ b/include/nuttx/analog/adc.h @@ -75,6 +75,27 @@ /************************************************************************************ * Public Types ************************************************************************************/ +/* These are callbacks to notify the upper-half driver of ADC events */ + +struct adc_dev_s; +struct adc_callback_s +{ + /* This method is called from the lower half, platform-specific ADC logic when + * new ADC sample data is available. + * + * Input Parameters: + * dev - The ADC device structure that was previously registered by adc_register() + * ch - And ID for the ADC channel number that generated the data + * data - The actual converted data from the channel. + * + * Returned Value: + * Zero on success; a negated errno value on failure. + */ + + CODE int (*au_receive)(FAR struct adc_dev_s *dev, uint8_t ch, int32_t data); +}; + +/* This describes on ADC message */ struct adc_msg_s { @@ -82,6 +103,8 @@ struct adc_msg_s int32_t am_data; /* ADC convert result (4 bytes) */ } packed_struct; +/* This describes a FIFO of ADC messages */ + struct adc_fifo_s { sem_t af_sem; /* Counting semaphore */ @@ -99,6 +122,13 @@ struct adc_fifo_s struct adc_dev_s; struct adc_ops_s { + /* Bind the upper-half driver callbacks to the lower-half implementation. This + * must be called early in order to receive ADC event notifications. + */ + + CODE int (*ao_bind)(FAR struct adc_dev_s *dev, + FAR const struct adc_callback_s *callback); + /* Reset the ADC device. Called early to initialize the hardware. This * is called, before ao_setup() and on error conditions. */ @@ -188,25 +218,6 @@ extern "C" int adc_register(FAR const char *path, FAR struct adc_dev_s *dev); -/************************************************************************************ - * Name: adc_receive - * - * Description: - * This function is called from the lower half, platform-specific ADC logic when - * new ADC sample data is available. - * - * Input Parameters: - * dev - The ADC device structure that was previously registered by adc_register() - * ch - And ID for the ADC channel number that generated the data - * data - The actualy converted data from the channel. - * - * Returned Value: - * Zero on success; a negated errno value on failure. - * - ************************************************************************************/ - -int adc_receive(FAR struct adc_dev_s *dev, uint8_t ch, int32_t data); - /************************************************************************************ * Platform-Independent "Lower Half" ADC Driver Interfaces ************************************************************************************/ -- GitLab From 9d6845b7eced385e962e7c2700556c3b20dde12a Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 26 May 2016 11:57:18 -0600 Subject: [PATCH 268/307] Add ADC bind method to the EFM32 and LPC17xx ADC drivers --- arch/arm/src/efm32/efm32_adc.c | 51 ++++++++++++++++++++++++++------ arch/arm/src/lpc17xx/lpc17_adc.c | 41 +++++++++++++++++++++++-- drivers/analog/ads1255.c | 9 +++--- 3 files changed, 86 insertions(+), 15 deletions(-) diff --git a/arch/arm/src/efm32/efm32_adc.c b/arch/arm/src/efm32/efm32_adc.c index 102384ff3d..032f92a655 100644 --- a/arch/arm/src/efm32/efm32_adc.c +++ b/arch/arm/src/efm32/efm32_adc.c @@ -2,7 +2,9 @@ * arch/arm/src/efm32/efm32_adc.c * * Copyright (C) 2014 Bouteville Pierre-Noel. All rights reserved. + * Copyright (C) 2016 Gregory Nutt. All rights reserved. * Authors: Bouteville Pierre-Noel + * Gregory Nutt * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -100,6 +102,7 @@ struct efm32_dev_s { + FAR const struct adc_callback_s *cb; uint8_t irq; /* Interrupt generated by this ADC block */ uint8_t nchannels; /* Number of channels */ uint8_t current; /* Current ADC channel being converted */ @@ -124,6 +127,8 @@ static int adc_interrupt(FAR struct adc_dev_s *dev); /* ADC Driver Methods */ +static int adc_bind(FAR struct adc_dev_s *dev, + FAR const struct adc_callback_s *callback); static void adc_reset(FAR struct adc_dev_s *dev); static int adc_setup(FAR struct adc_dev_s *dev); static void adc_shutdown(FAR struct adc_dev_s *dev); @@ -148,6 +153,7 @@ static void adc_startconv(FAR struct efm32_dev_s *priv, bool enable); static const struct adc_ops_s g_adcops = { + .ao_bind = adc_bind, .ao_reset = adc_reset, .ao_setup = adc_setup, .ao_shutdown = adc_shutdown, @@ -790,7 +796,7 @@ static void adc_startconv(struct efm32_dev_s *priv, bool enable) #endif /**************************************************************************** - * Name: adc_reset + * Name: adc_hw_reset * * Description: * Deinitializes the ADCx peripheral registers to their default @@ -873,6 +879,25 @@ static void adc_enable(FAR struct efm32_dev_s *priv, bool enable) adc_putreg(priv, EFM32_ADC_CR2_OFFSET, regval); } +/**************************************************************************** + * Name: adc_bind + * + * Description: + * Bind the upper-half driver callbacks to the lower-half implementation. This + * must be called early in order to receive ADC event notifications. + * + ****************************************************************************/ + +static int adc_bind(FAR struct adc_dev_s *dev, + FAR const struct adc_callback_s *callback) +{ + FAR struct efm32_dev_s *priv = (FAR struct efm32_dev_s *)dev->ad_priv; + + DEBUGASSERT(priv != NULL); + priv->cb = callback; + return OK; +} + /**************************************************************************** * Name: adc_reset * @@ -1180,14 +1205,21 @@ static int adc_interrupt(FAR struct adc_dev_s *dev) value = adc_getreg(priv, EFM32_ADC_DR_OFFSET); value &= ADC_DR_DATA_MASK; - /* Give the ADC data to the ADC driver. adc_receive accepts 3 parameters: - * - * 1) The first is the ADC device instance for this ADC block. - * 2) The second is the channel number for the data, and - * 3) The third is the converted data for the channel. - */ + /* Verify that the upper-half driver has bound its callback functions */ - adc_receive(dev, priv->chanlist[priv->current], value); + if (priv->cb != NULL) + { + /* Give the ADC data to the ADC driver. The ADC receive method + * accepts 3 parameters: + * + * 1) The first is the ADC device instance for this ADC block. + * 2) The second is the channel number for the data, and + * 3) The third is the converted data for the channel. + */ + + DEBUGASSERT(priv->cb->au_receive != NULL); + priv->cb->au_receive(dev, priv->chanlist[priv->current], value); + } /* Set the channel number of the next channel that will complete conversion */ @@ -1272,7 +1304,8 @@ struct adc_dev_s *efm32_adcinitialize(int intf, const uint8_t *chanlist, int nch /* Configure the selected ADC */ - priv = dev->ad_priv; + priv = dev->ad_priv; + priv->cb = NULL; DEBUGASSERT(nchannels <= ADC_MAX_SAMPLES); priv->nchannels = nchannels; diff --git a/arch/arm/src/lpc17xx/lpc17_adc.c b/arch/arm/src/lpc17xx/lpc17_adc.c index 9d761c6afa..98afd8b1ae 100644 --- a/arch/arm/src/lpc17xx/lpc17_adc.c +++ b/arch/arm/src/lpc17xx/lpc17_adc.c @@ -2,8 +2,9 @@ * arch/arm/src/lpc17xx/lpc17_adc.c * * Copyright (C) 2011 Li Zhuoyi. All rights reserved. + * Copyright (C) 2016 Gregory Nutt. All rights reserved. * Author: Li Zhuoyi - * History: 0.1 2011-08-05 initial version + * Gregory Nutt * * This file is a part of NuttX: * @@ -87,6 +88,7 @@ struct up_dev_s { + FAR const struct adc_callback_s *cb; uint8_t mask; uint32_t sps; int irq; @@ -100,6 +102,8 @@ struct up_dev_s /* ADC methods */ +static int adc_bind(FAR struct adc_dev_s *dev, + FAR const struct adc_callback_s *callback); static void adc_reset(FAR struct adc_dev_s *dev); static int adc_setup(FAR struct adc_dev_s *dev); static void adc_shutdown(FAR struct adc_dev_s *dev); @@ -113,6 +117,7 @@ static int adc_interrupt(int irq, void *context); static const struct adc_ops_s g_adcops = { + .ao_bind = adc_bind, .ao_reset = adc_reset, .ao_setup = adc_setup, .ao_shutdown = adc_shutdown, @@ -137,6 +142,25 @@ static struct adc_dev_s g_adcdev = * Private Functions ****************************************************************************/ +/**************************************************************************** + * Name: adc_bind + * + * Description: + * Bind the upper-half driver callbacks to the lower-half implementation. This + * must be called early in order to receive ADC event notifications. + * + ****************************************************************************/ + +static int adc_bind(FAR struct adc_dev_s *dev, + FAR const struct adc_callback_s *callback) +{ + FAR struct up_dev_s *priv = (FAR struct up_dev_s *)dev->ad_priv; + + DEBUGASSERT(priv != NULL); + priv->cb = callback; + return OK; +} + /**************************************************************************** * Name: adc_reset * @@ -384,7 +408,19 @@ static int adc_interrupt(int irq, void *context) { value = priv->buf[ch] / priv->count[ch]; value <<= 15; - adc_receive(&g_adcdev, ch, value); + + /* Verify that the upper-half driver has bound its callback + * functions. + */ + + if (priv->cb != NULL) + { + /* Perform the data received callback */ + + DEBUGASSERT(priv->cb->au_receive != NULL); + priv->cb->au_receive(&g_adcdev, ch, value); + } + priv->buf[ch] = 0; priv->count[ch] = 0; } @@ -596,6 +632,7 @@ static int adc_interrupt(int irq, void *context) FAR struct adc_dev_s *lpc17_adcinitialize(void) { + g_adcdev.cb = NULL; return &g_adcdev; } diff --git a/drivers/analog/ads1255.c b/drivers/analog/ads1255.c index 3b69e09a0e..8fbe3921ab 100644 --- a/drivers/analog/ads1255.c +++ b/drivers/analog/ads1255.c @@ -140,11 +140,12 @@ static int adc_interrupt(int irq, void *context); static const struct adc_ops_s g_adcops = { - .ao_reset = adc_reset, /* ao_reset */ - .ao_setup = adc_setup, /* ao_setup */ + .ao_bind = adc_bind, /* ao_bind */ + .ao_reset = adc_reset, /* ao_reset */ + .ao_setup = adc_setup, /* ao_setup */ .ao_shutdown = adc_shutdown, /* ao_shutdown */ - .ao_rxint = adc_rxint, /* ao_rxint */ - .ao_ioctl = adc_ioctl /* ao_read */ + .ao_rxint = adc_rxint, /* ao_rxint */ + .ao_ioctl = adc_ioctl /* ao_read */ }; static struct ads1255_dev_s g_adcpriv = -- GitLab From 957634519db23879ada0be321fe2808f2f73e5e8 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 26 May 2016 12:04:17 -0600 Subject: [PATCH 269/307] Missed a few adc_receive calls in the LPC17xx ADC driver. That design has several. --- arch/arm/src/lpc17xx/lpc17_adc.c | 56 +++++++++++++++++++------------- 1 file changed, 34 insertions(+), 22 deletions(-) diff --git a/arch/arm/src/lpc17xx/lpc17_adc.c b/arch/arm/src/lpc17xx/lpc17_adc.c index 98afd8b1ae..011b0aada5 100644 --- a/arch/arm/src/lpc17xx/lpc17_adc.c +++ b/arch/arm/src/lpc17xx/lpc17_adc.c @@ -51,6 +51,7 @@ #include #include #include +#include #include #include @@ -100,6 +101,8 @@ struct up_dev_s * Private Function Prototypes ****************************************************************************/ +static void adc_receive(FAR struct up_dev_s *priv, uint8_t ch, int32_t data); + /* ADC methods */ static int adc_bind(FAR struct adc_dev_s *dev, @@ -142,6 +145,27 @@ static struct adc_dev_s g_adcdev = * Private Functions ****************************************************************************/ +/**************************************************************************** + * Name: adc_receive + * + * Description: + * Provide received ADC dat to the upper-half driver. + * + ****************************************************************************/ + +static void adc_receive(FAR struct up_dev_s *priv, uint8_t ch, int32_t data) +{ + /* Verify that the upper-half driver has bound its callback functions. */ + + if (priv->cb != NULL) + { + /* Perform the data received callback */ + + DEBUGASSERT(priv->cb->au_receive != NULL); + priv->cb->au_receive(&g_adcdev, ch, data); + } +} + /**************************************************************************** * Name: adc_bind * @@ -408,19 +432,7 @@ static int adc_interrupt(int irq, void *context) { value = priv->buf[ch] / priv->count[ch]; value <<= 15; - - /* Verify that the upper-half driver has bound its callback - * functions. - */ - - if (priv->cb != NULL) - { - /* Perform the data received callback */ - - DEBUGASSERT(priv->cb->au_receive != NULL); - priv->cb->au_receive(&g_adcdev, ch, value); - } - + adc_receive(priv, ch, value); priv->buf[ch] = 0; priv->count[ch] = 0; } @@ -445,7 +457,7 @@ static int adc_interrupt(int irq, void *context) { value = priv->buf[ch] / priv->count[ch]; value <<= 15; - adc_receive(&g_adcdev, ch, value); + adc_receive(priv, ch, value); priv->buf[ch] = 0; priv->count[ch] = 0; } @@ -482,7 +494,7 @@ static int adc_interrupt(int irq, void *context) #else /* CONFIG_ADC_WORKER_THREAD */ if ((regVal) & (1 << 31)) { - adc_receive(&g_adcdev, 0, (regVal >> 4) & 0xFFF); + adc_receive(priv, 0, (regVal >> 4) & 0xFFF); } #endif /* CONFIG_ADC_WORKER_THREAD */ @@ -509,7 +521,7 @@ static int adc_interrupt(int irq, void *context) #else /* CONFIG_ADC_WORKER_THREAD */ if ((regVal) & (1 << 31)) { - adc_receive(&g_adcdev, 1, (regVal >> 4) & 0xFFF); + adc_receive(priv, 1, (regVal >> 4) & 0xFFF); } #endif /* CONFIG_ADC_WORKER_THREAD */ @@ -536,7 +548,7 @@ static int adc_interrupt(int irq, void *context) #else /* CONFIG_ADC_WORKER_THREAD */ if ((regVal) & (1 << 31)) { - adc_receive(&g_adcdev, 2, (regVal >> 4) & 0xFFF); + adc_receive(priv, 2, (regVal >> 4) & 0xFFF); } #endif /* CONFIG_ADC_WORKER_THREAD */ @@ -548,7 +560,7 @@ static int adc_interrupt(int irq, void *context) regVal = getreg32(LPC17_ADC_DR3); if ((regVal) & (1 << 31)) { - adc_receive(&g_adcdev, 3, (regVal >> 4) & 0xFFF); + adc_receive(priv, 3, (regVal >> 4) & 0xFFF); } } @@ -557,7 +569,7 @@ static int adc_interrupt(int irq, void *context) regVal = getreg32(LPC17_ADC_DR4); if ((regVal) & (1 << 31)) { - adc_receive(&g_adcdev, 4, (regVal >> 4) & 0xFFF); + adc_receive(priv, 4, (regVal >> 4) & 0xFFF); } } @@ -566,7 +578,7 @@ static int adc_interrupt(int irq, void *context) regVal = getreg32(LPC17_ADC_DR5); if ((regVal) & (1 << 31)) { - adc_receive(&g_adcdev, 5, (regVal >> 4) & 0xFFF); + adc_receive(priv, 5, (regVal >> 4) & 0xFFF); } } @@ -575,7 +587,7 @@ static int adc_interrupt(int irq, void *context) regVal = getreg32(LPC17_ADC_DR6); if ((regVal) & (1 << 31)) { - adc_receive(&g_adcdev, 6, (regVal >> 4) & 0xFFF); + adc_receive(priv, 6, (regVal >> 4) & 0xFFF); } } @@ -584,7 +596,7 @@ static int adc_interrupt(int irq, void *context) regVal = getreg32(LPC17_ADC_DR7); if ((regVal) & (1 << 31)) { - adc_receive(&g_adcdev, 7, (regVal >> 4) & 0xFFF); + adc_receive(priv, 7, (regVal >> 4) & 0xFFF); } } -- GitLab From f8f7b7582c174149974fd2ceb35c56777cc9f7a9 Mon Sep 17 00:00:00 2001 From: "Paul A. Patience" Date: Thu, 26 May 2016 12:01:15 -0400 Subject: [PATCH 270/307] Silence some warnings --- drivers/dev_null.c | 11 +++--- drivers/dev_zero.c | 11 +++--- drivers/leds/userled_upper.c | 11 +++--- drivers/loop/losetup.c | 15 ++++---- drivers/pipes/pipe_common.c | 67 +++++++++++++++++++----------------- drivers/serial/lowconsole.c | 11 +++--- drivers/serial/serial.c | 7 ++-- drivers/syslog/ramlog.c | 25 ++++++++------ drivers/timers/timer.c | 7 ++-- libc/string/lib_strcasestr.c | 2 +- libc/string/lib_strstr.c | 2 +- mm/mm_heap/mm_extend.c | 4 +-- 12 files changed, 100 insertions(+), 73 deletions(-) diff --git a/drivers/dev_null.c b/drivers/dev_null.c index eca30dd8e1..ff535df344 100644 --- a/drivers/dev_null.c +++ b/drivers/dev_null.c @@ -65,15 +65,18 @@ static int devnull_poll(FAR struct file *filep, FAR struct pollfd *fds, static const struct file_operations devnull_fops = { - 0, /* open */ - 0, /* close */ + NULL, /* open */ + NULL, /* close */ devnull_read, /* read */ devnull_write, /* write */ - 0, /* seek */ - 0 /* ioctl */ + NULL, /* seek */ + NULL /* ioctl */ #ifndef CONFIG_DISABLE_POLL , devnull_poll /* poll */ #endif +#ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS + , NULL /* unlink */ +#endif }; /**************************************************************************** diff --git a/drivers/dev_zero.c b/drivers/dev_zero.c index 0bb31688be..5a0ce66925 100644 --- a/drivers/dev_zero.c +++ b/drivers/dev_zero.c @@ -65,15 +65,18 @@ static int devzero_poll(FAR struct file *filep, FAR struct pollfd *fds, static const struct file_operations devzero_fops = { - 0, /* open */ - 0, /* close */ + NULL, /* open */ + NULL, /* close */ devzero_read, /* read */ devzero_write, /* write */ - 0, /* seek */ - 0 /* ioctl */ + NULL, /* seek */ + NULL /* ioctl */ #ifndef CONFIG_DISABLE_POLL , devzero_poll /* poll */ #endif +#ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS + , NULL /* unlink */ +#endif }; /**************************************************************************** diff --git a/drivers/leds/userled_upper.c b/drivers/leds/userled_upper.c index 5c8f0a0997..68fd8d5f7a 100644 --- a/drivers/leds/userled_upper.c +++ b/drivers/leds/userled_upper.c @@ -140,12 +140,15 @@ static const struct file_operations userled_fops = { userled_open, /* open */ userled_close, /* close */ - 0, /* read */ + NULL, /* read */ userled_write, /* write */ - 0, /* seek */ + NULL, /* seek */ userled_ioctl /* ioctl */ #ifndef CONFIG_DISABLE_POLL - , 0 /* poll */ + , NULL /* poll */ +#endif +#ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS + , NULL /* unlink */ #endif }; @@ -441,7 +444,7 @@ static int userled_ioctl(FAR struct file *filep, int cmd, unsigned long arg) /* Check that a valid LED is being set */ - if (led < 8 * sizeof(userled_set_t) && + if ((size_t)led < 8 * sizeof(userled_set_t) && (priv->lu_supported & (1 << led)) != 0) { /* Update the LED state */ diff --git a/drivers/loop/losetup.c b/drivers/loop/losetup.c index dadd44891c..ccc75a7971 100644 --- a/drivers/loop/losetup.c +++ b/drivers/loop/losetup.c @@ -107,16 +107,19 @@ static int loop_geometry(FAR struct inode *inode, static const struct block_operations g_bops = { - loop_open, /* open */ - loop_close, /* close */ - loop_read, /* read */ + loop_open, /* open */ + loop_close, /* close */ + loop_read, /* read */ #ifdef CONFIG_FS_WRITABLE - loop_write, /* write */ + loop_write, /* write */ #else - NULL, /* write */ + NULL, /* write */ #endif loop_geometry, /* geometry */ - NULL /* ioctl */ + NULL /* ioctl */ +#ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS + , NULL /* unlink */ +#endif }; /**************************************************************************** diff --git a/drivers/pipes/pipe_common.c b/drivers/pipes/pipe_common.c index a7676571eb..862d244527 100644 --- a/drivers/pipes/pipe_common.c +++ b/drivers/pipes/pipe_common.c @@ -92,7 +92,7 @@ static void pipecommon_semtake(sem_t *sem); * Name: pipecommon_semtake ****************************************************************************/ -static void pipecommon_semtake(sem_t *sem) +static void pipecommon_semtake(FAR sem_t *sem) { while (sem_wait(sem) != 0) { @@ -109,7 +109,8 @@ static void pipecommon_semtake(sem_t *sem) ****************************************************************************/ #ifndef CONFIG_DISABLE_POLL -static void pipecommon_pollnotify(FAR struct pipe_dev_s *dev, pollevent_t eventset) +static void pipecommon_pollnotify(FAR struct pipe_dev_s *dev, + pollevent_t eventset) { int i; @@ -120,7 +121,7 @@ static void pipecommon_pollnotify(FAR struct pipe_dev_s *dev, pollevent_t events for (i = 0; i < CONFIG_DEV_PIPE_NPOLLWAITERS; i++) { - struct pollfd *fds = dev->d_fds[i]; + FAR struct pollfd *fds = dev->d_fds[i]; if (fds) { fds->revents |= eventset & (fds->events | POLLERR | POLLHUP); @@ -158,7 +159,7 @@ FAR struct pipe_dev_s *pipecommon_allocdev(void) /* Allocate a private structure to manage the pipe */ - dev = (struct pipe_dev_s *)kmm_malloc(sizeof(struct pipe_dev_s)); + dev = (FAR struct pipe_dev_s *)kmm_malloc(sizeof(struct pipe_dev_s)); if (dev) { /* Initialize the private structure */ @@ -190,10 +191,10 @@ void pipecommon_freedev(FAR struct pipe_dev_s *dev) int pipecommon_open(FAR struct file *filep) { - FAR struct inode *inode = filep->f_inode; - FAR struct pipe_dev_s *dev = inode->i_private; - int sval; - int ret; + FAR struct inode *inode = filep->f_inode; + FAR struct pipe_dev_s *dev = inode->i_private; + int sval; + int ret; DEBUGASSERT(dev != NULL); @@ -302,9 +303,9 @@ int pipecommon_open(FAR struct file *filep) int pipecommon_close(FAR struct file *filep) { - struct inode *inode = filep->f_inode; - struct pipe_dev_s *dev = inode->i_private; - int sval; + FAR struct inode *inode = filep->f_inode; + FAR struct pipe_dev_s *dev = inode->i_private; + int sval; DEBUGASSERT(dev && dev->d_refs > 0); @@ -408,14 +409,14 @@ int pipecommon_close(FAR struct file *filep) ssize_t pipecommon_read(FAR struct file *filep, FAR char *buffer, size_t len) { - struct inode *inode = filep->f_inode; - struct pipe_dev_s *dev = inode->i_private; + FAR struct inode *inode = filep->f_inode; + FAR struct pipe_dev_s *dev = inode->i_private; #ifdef CONFIG_DEV_PIPEDUMP - FAR uint8_t *start = (FAR uint8_t *)buffer; + FAR uint8_t *start = (FAR uint8_t *)buffer; #endif - ssize_t nread = 0; - int sval; - int ret; + ssize_t nread = 0; + int sval; + int ret; DEBUGASSERT(dev); @@ -467,7 +468,7 @@ ssize_t pipecommon_read(FAR struct file *filep, FAR char *buffer, size_t len) /* Then return whatever is available in the pipe (which is at least one byte) */ nread = 0; - while (nread < len && dev->d_wrndx != dev->d_rdndx) + while ((size_t)nread < len && dev->d_wrndx != dev->d_rdndx) { *buffer++ = dev->d_buffer[dev->d_rdndx]; if (++dev->d_rdndx >= CONFIG_DEV_PIPE_SIZE) @@ -497,14 +498,15 @@ ssize_t pipecommon_read(FAR struct file *filep, FAR char *buffer, size_t len) * Name: pipecommon_write ****************************************************************************/ -ssize_t pipecommon_write(FAR struct file *filep, FAR const char *buffer, size_t len) +ssize_t pipecommon_write(FAR struct file *filep, FAR const char *buffer, + size_t len) { - struct inode *inode = filep->f_inode; - struct pipe_dev_s *dev = inode->i_private; - ssize_t nwritten = 0; - ssize_t last; - int nxtwrndx; - int sval; + FAR struct inode *inode = filep->f_inode; + FAR struct pipe_dev_s *dev = inode->i_private; + ssize_t nwritten = 0; + ssize_t last; + int nxtwrndx; + int sval; DEBUGASSERT(dev); pipe_dumpbuffer("To PIPE:", (FAR uint8_t *)buffer, len); @@ -559,7 +561,8 @@ ssize_t pipecommon_write(FAR struct file *filep, FAR const char *buffer, size_t /* Is the write complete? */ - if (++nwritten >= len) + nwritten++; + if ((size_t)nwritten >= len) { /* Yes.. Notify all of the waiting readers that more data is available */ @@ -717,7 +720,7 @@ int pipecommon_poll(FAR struct file *filep, FAR struct pollfd *fds, { /* This is a request to tear down the poll. */ - struct pollfd **slot = (struct pollfd **)fds->priv; + FAR struct pollfd **slot = (FAR struct pollfd **)fds->priv; #ifdef CONFIG_DEBUG if (!slot) @@ -745,9 +748,9 @@ errout: int pipecommon_ioctl(FAR struct file *filep, int cmd, unsigned long arg) { - FAR struct inode *inode = filep->f_inode; - struct pipe_dev_s *dev = inode->i_private; - int ret = -EINVAL; + FAR struct inode *inode = filep->f_inode; + FAR struct pipe_dev_s *dev = inode->i_private; + int ret = -EINVAL; #ifdef CONFIG_DEBUG /* Some sanity checking */ @@ -792,7 +795,7 @@ int pipecommon_ioctl(FAR struct file *filep, int cmd, unsigned long arg) count = dev->d_wrndx - dev->d_rdndx; } - *(int *)arg = count; + *(FAR int *)arg = count; ret = 0; } break; @@ -812,7 +815,7 @@ int pipecommon_ioctl(FAR struct file *filep, int cmd, unsigned long arg) count = ((CONFIG_DEV_PIPE_SIZE - dev->d_wrndx) + dev->d_rdndx) - 1; } - *(int *)arg = count; + *(FAR int *)arg = count; ret = 0; } break; diff --git a/drivers/serial/lowconsole.c b/drivers/serial/lowconsole.c index c6228d79a6..c3be859661 100644 --- a/drivers/serial/lowconsole.c +++ b/drivers/serial/lowconsole.c @@ -70,14 +70,17 @@ static int lowconsole_ioctl(struct file *filep, int cmd, unsigned long arg); static const struct file_operations g_consoleops = { - 0, /* open */ - 0, /* close */ + NULL, /* open */ + NULL, /* close */ lowconsole_read, /* read */ lowconsole_write, /* write */ - 0, /* seek */ + NULL, /* seek */ lowconsole_ioctl /* ioctl */ #ifndef CONFIG_DISABLE_POLL - , 0 /* poll */ + , NULL /* poll */ +#endif +#ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS + , NULL /* unlink */ #endif }; diff --git a/drivers/serial/serial.c b/drivers/serial/serial.c index 2e13f3790a..2de293d0b0 100644 --- a/drivers/serial/serial.c +++ b/drivers/serial/serial.c @@ -103,6 +103,9 @@ static const struct file_operations g_serialops = #ifndef CONFIG_DISABLE_POLL , uart_poll /* poll */ #endif +#ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS + , NULL /* unlink */ +#endif }; /************************************************************************************ @@ -487,7 +490,7 @@ static ssize_t uart_write(FAR struct file *filep, FAR const char *buffer, * interrupted transfer. */ - if (buflen < nwritten) + if (buflen < (size_t)nwritten) { /* Some data was transferred. Return the number of bytes that * were successfully transferred. @@ -557,7 +560,7 @@ static ssize_t uart_read(FAR struct file *filep, FAR char *buffer, size_t buflen * data from the end of the buffer. */ - while (recvd < buflen) + while ((size_t)recvd < buflen) { #ifdef CONFIG_SERIAL_REMOVABLE /* If the removable device is no longer connected, refuse to read any diff --git a/drivers/syslog/ramlog.c b/drivers/syslog/ramlog.c index ea8e035ce7..1025500987 100644 --- a/drivers/syslog/ramlog.c +++ b/drivers/syslog/ramlog.c @@ -123,14 +123,17 @@ static int ramlog_poll(FAR struct file *filep, FAR struct pollfd *fds, static const struct file_operations g_ramlogfops = { - 0, /* open */ - 0, /* close */ - ramlog_read, /* read */ - ramlog_write, /* write */ - 0, /* seek */ - 0 /* ioctl */ + NULL, /* open */ + NULL, /* close */ + ramlog_read, /* read */ + ramlog_write, /* write */ + NULL, /* seek */ + NULL /* ioctl */ #ifndef CONFIG_DISABLE_POLL - , ramlog_poll /* poll */ + , ramlog_poll /* poll */ +#endif +#ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS + , NULL /* unlink */ #endif }; @@ -206,7 +209,7 @@ static void ramlog_pollnotify(FAR struct ramlog_dev_s *priv, static int ramlog_addchar(FAR struct ramlog_dev_s *priv, char ch) { irqstate_t flags; - int nexthead; + size_t nexthead; /* Disable interrupts (in case we are NOT called from interrupt handler) */ @@ -271,7 +274,7 @@ static ssize_t ramlog_read(FAR struct file *filep, FAR char *buffer, size_t len) /* Loop until something is read */ - for (nread = 0; nread < len; ) + for (nread = 0; (size_t)nread < len; ) { /* Get the next byte from the buffer */ @@ -437,7 +440,7 @@ static ssize_t ramlog_write(FAR struct file *filep, FAR const char *buffer, size * interrupts. */ - for (nwritten = 0; nwritten < len; nwritten++) + for (nwritten = 0; (size_t)nwritten < len; nwritten++) { /* Get the next character to output */ @@ -529,7 +532,7 @@ int ramlog_poll(FAR struct file *filep, FAR struct pollfd *fds, bool setup) FAR struct inode *inode = filep->f_inode; FAR struct ramlog_dev_s *priv; pollevent_t eventset; - int ndx; + size_t ndx; int ret; int i; diff --git a/drivers/timers/timer.c b/drivers/timers/timer.c index 4e4e4d94f8..afdd39a39e 100644 --- a/drivers/timers/timer.c +++ b/drivers/timers/timer.c @@ -114,10 +114,13 @@ static const struct file_operations g_timerops = timer_close, /* close */ timer_read, /* read */ timer_write, /* write */ - 0, /* seek */ + NULL, /* seek */ timer_ioctl /* ioctl */ #ifndef CONFIG_DISABLE_POLL - , 0 /* poll */ + , NULL /* poll */ +#endif +#ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS + , NULL /* unlink */ #endif }; diff --git a/libc/string/lib_strcasestr.c b/libc/string/lib_strcasestr.c index 0a56c73180..ab8df1eede 100644 --- a/libc/string/lib_strcasestr.c +++ b/libc/string/lib_strcasestr.c @@ -73,7 +73,7 @@ FAR char *strcasestr(FAR const char *str, FAR const char *substr) { FAR const char *candidate; /* Candidate in str with matching start character */ char ch; /* First character of the substring */ - int len; /* The length of the substring */ + size_t len; /* The length of the substring */ /* Special case the empty substring */ diff --git a/libc/string/lib_strstr.c b/libc/string/lib_strstr.c index 06404402a9..adb1a4e829 100644 --- a/libc/string/lib_strstr.c +++ b/libc/string/lib_strstr.c @@ -49,7 +49,7 @@ FAR char *strstr(FAR const char *str, FAR const char *substr) { FAR const char *candidate; /* Candidate in str with matching start character */ char ch; /* First character of the substring */ - int len; /* The length of the substring */ + size_t len; /* The length of the substring */ /* Special case the empty substring */ diff --git a/mm/mm_heap/mm_extend.c b/mm/mm_heap/mm_extend.c index 46c1fe0feb..b10eea5a44 100644 --- a/mm/mm_heap/mm_extend.c +++ b/mm/mm_heap/mm_extend.c @@ -74,9 +74,9 @@ void mm_extend(FAR struct mm_heap_s *heap, FAR void *mem, size_t size, DEBUGASSERT(heap && mem); #if CONFIG_MM_REGIONS > 1 - DEBUGASSERT(size >= MIN_EXTEND && (unsigned)region < heap->mm_nregions); + DEBUGASSERT(size >= MIN_EXTEND && (size_t)region < (size_t)heap->mm_nregions); #else - DEBUGASSERT(size >= MIN_EXTEND && (unsigned)region == 0); + DEBUGASSERT(size >= MIN_EXTEND && region == 0); #endif /* Make sure that the memory region are properly aligned */ -- GitLab From 2f5221ed91cffb6492ab3c9fa3c2201f12a87f9a Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 26 May 2016 12:19:17 -0600 Subject: [PATCH 271/307] Add ADC bind method to the LPC43xx and SAMA5Dx ADC drivers --- arch/arm/src/lpc17xx/lpc17_adc.c | 1 - arch/arm/src/lpc43xx/lpc43_adc.c | 41 +++++++++++++++++++++++++-- arch/arm/src/sama5/sam_adc.c | 48 ++++++++++++++++++++++++++++++-- 3 files changed, 84 insertions(+), 6 deletions(-) diff --git a/arch/arm/src/lpc17xx/lpc17_adc.c b/arch/arm/src/lpc17xx/lpc17_adc.c index 011b0aada5..490b25bf80 100644 --- a/arch/arm/src/lpc17xx/lpc17_adc.c +++ b/arch/arm/src/lpc17xx/lpc17_adc.c @@ -644,7 +644,6 @@ static int adc_interrupt(int irq, void *context) FAR struct adc_dev_s *lpc17_adcinitialize(void) { - g_adcdev.cb = NULL; return &g_adcdev; } diff --git a/arch/arm/src/lpc43xx/lpc43_adc.c b/arch/arm/src/lpc43xx/lpc43_adc.c index 487c0b5cf3..4286451f11 100644 --- a/arch/arm/src/lpc43xx/lpc43_adc.c +++ b/arch/arm/src/lpc43xx/lpc43_adc.c @@ -7,8 +7,9 @@ * Ported from from the LPC17 version: * * Copyright(C) 2011 Li Zhuoyi. All rights reserved. + * Copyright(C) 2016 Gregory Nutt. All rights reserved. * Author: Li Zhuoyi - * History: 0.1 2011-08-05 initial version + * Gregory Nutt * * This file is a part of NuttX: * @@ -55,6 +56,7 @@ #include #include #include +#include #include #include @@ -112,6 +114,7 @@ struct up_dev_s { + FAR const struct adc_callback_s *cb; uint8_t mask; uint8_t mask_int; uint32_t freq; @@ -126,6 +129,8 @@ struct up_dev_s /* ADC methods */ +static int adc_bind(FAR struct adc_dev_s *dev, + FAR const struct adc_callback_s *callback); static void adc_reset(FAR struct adc_dev_s *dev); static int adc_setup(FAR struct adc_dev_s *dev); static void adc_shutdown(FAR struct adc_dev_s *dev); @@ -139,6 +144,7 @@ static int adc_interrupt(int irq, void *context); static const struct adc_ops_s g_adcops = { + .ao_bind = adc_bind, .ao_reset = adc_reset, .ao_setup = adc_setup, .ao_shutdown = adc_shutdown, @@ -166,6 +172,25 @@ static struct adc_dev_s g_adcdev = * Private Functions ****************************************************************************/ +/**************************************************************************** + * Name: adc_bind + * + * Description: + * Bind the upper-half driver callbacks to the lower-half implementation. This + * must be called early in order to receive ADC event notifications. + * + ****************************************************************************/ + +static int adc_bind(FAR struct adc_dev_s *dev, + FAR const struct adc_callback_s *callback) +{ + FAR struct up_dev_s *priv = (FAR struct up_dev_s *)dev->ad_priv; + + DEBUGASSERT(priv != NULL); + priv->cb = callback; + return OK; +} + /**************************************************************************** * Name: adc_reset * @@ -454,8 +479,20 @@ static int adc_interrupt(int irq, void *context) { if (priv->mask & (1 << i)) { + int32_t data; + regval = getreg32(LPC43_ADC0_DR(i)); - adc_receive(&g_adcdev, i,(regval&ADC_DR_VVREF_MASK)>>ADC_DR_VVREF_SHIFT); + data = (regval & ADC_DR_VVREF_MASK) >> ADC_DR_VVREF_SHIFT; + + /* Verify that the upper-half driver has bound its callback functions */ + + if (priv->cb != NULL) + { + /* Perform the data received callback */ + + DEBUGASSERT(priv->cb->au_receive != NULL); + priv->cb->au_receive(&g_adcdev, i, data); + } } } diff --git a/arch/arm/src/sama5/sam_adc.c b/arch/arm/src/sama5/sam_adc.c index 261434229e..68565bc502 100644 --- a/arch/arm/src/sama5/sam_adc.c +++ b/arch/arm/src/sama5/sam_adc.c @@ -57,6 +57,7 @@ #include #include #include +#include #include #include @@ -378,6 +379,7 @@ struct sam_adc_s { + FAR const struct adc_callback_s *cb; sem_t exclsem; /* Supports exclusive access to the ADC interface */ bool initialized; /* The ADC driver is already initialized */ uint32_t frequency; /* ADC clock frequency */ @@ -446,6 +448,8 @@ static int sam_adc_interrupt(int irq, void *context); /* ADC methods */ #ifdef SAMA5_ADC_HAVE_CHANNELS +static int sam_adc_bind(FAR struct adc_dev_s *dev, + FAR const struct adc_callback_s *callback); static void sam_adc_reset(struct adc_dev_s *dev); static int sam_adc_setup(struct adc_dev_s *dev); static void sam_adc_shutdown(struct adc_dev_s *dev); @@ -477,6 +481,7 @@ static void sam_adc_channels(struct sam_adc_s *priv); static const struct adc_ops_s g_adcops = { + .ao_bind = sam_adc_bind, .ao_reset = sam_adc_reset, .ao_setup = sam_adc_setup, .ao_shutdown = sam_adc_shutdown, @@ -664,9 +669,15 @@ static void sam_adc_dmadone(void *arg) chan = (int)((*buffer & ADC_LCDR_CHANB_MASK) >> ADC_LCDR_CHANB_SHIFT); sample = ((*buffer & ADC_LCDR_DATA_MASK) >> ADC_LCDR_DATA_SHIFT); - /* And give the sample data to the ADC upper half */ + /* Verify that the upper-half driver has bound its callback functions */ - (void)adc_receive(priv->dev, chan, sample); + if (priv->cb != NULL) + { + /* Give the sample data to the ADC upper half */ + + DEBUGASSERT(priv->cb->au_receive != NULL); + priv->cb->au_receive(priv->dev, chan, sample); + } } } @@ -858,7 +869,17 @@ static void sam_adc_endconversion(void *arg) /* Read the ADC sample and pass it to the upper half */ regval = sam_adc_getreg(priv, SAM_ADC_CDR(chan)); - (void)adc_receive(priv->dev, chan, regval & ADC_CDR_DATA_MASK); + + /* Verify that the upper-half driver has bound its callback functions */ + + if (priv->cb != NULL) + { + /* Perform the data received callback */ + + DEBUGASSERT(priv->cb->au_receive != NULL); + priv->cb->au_receive(priv->dev, chan, regval & ADC_CDR_DATA_MASK); + } + pending &= ~bit; } } @@ -954,6 +975,26 @@ static int sam_adc_interrupt(int irq, void *context) /**************************************************************************** * ADC methods ****************************************************************************/ + +/**************************************************************************** + * Name: sam_adc_bind + * + * Description: + * Bind the upper-half driver callbacks to the lower-half implementation. This + * must be called early in order to receive ADC event notifications. + * + ****************************************************************************/ + +static int sam_adc_bind(FAR struct adc_dev_s *dev, + FAR const struct adc_callback_s *callback) +{ + struct sam_adc_s *priv = (struct sam_adc_s *)dev->ad_priv; + + DEBUGASSERT(priv != NULL); + priv->cb = callback; + return OK; +} + /**************************************************************************** * Name: sam_adc_reset * @@ -1980,6 +2021,7 @@ struct adc_dev_s *sam_adc_initialize(void) /* Initialize the private ADC device data structure */ sem_init(&priv->exclsem, 0, 1); + priv->cb = NULL; priv->dev = &g_adcdev; #ifdef CONFIG_SAMA5_ADC_DMA -- GitLab From 8f2a660c8b16c9bd3c4cb530d571410cd86dd1fa Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 26 May 2016 12:25:54 -0600 Subject: [PATCH 272/307] Add ADC bind method to the STM32 ADC drivers --- arch/arm/src/stm32/stm32_adc.c | 46 ++++++++++++++++++++++++++++------ 1 file changed, 38 insertions(+), 8 deletions(-) diff --git a/arch/arm/src/stm32/stm32_adc.c b/arch/arm/src/stm32/stm32_adc.c index a2d97cf51c..81205714aa 100644 --- a/arch/arm/src/stm32/stm32_adc.c +++ b/arch/arm/src/stm32/stm32_adc.c @@ -272,6 +272,7 @@ struct stm32_dev_s { + FAR const struct adc_callback_s *cb; uint8_t irq; /* Interrupt generated by this ADC block */ uint8_t nchannels; /* Number of channels */ uint8_t cchannels; /* Number of configured channels */ @@ -364,6 +365,8 @@ static int adc123_interrupt(int irq, FAR void *context); /* ADC Driver Methods */ +static int adc_bind(FAR struct adc_dev_s *dev, + FAR const struct adc_callback_s *callback); static void adc_reset(FAR struct adc_dev_s *dev); static int adc_setup(FAR struct adc_dev_s *dev); static void adc_shutdown(FAR struct adc_dev_s *dev); @@ -412,6 +415,7 @@ static void adc_startconv(FAR struct stm32_dev_s *priv, bool enable); static const struct adc_ops_s g_adcops = { + .ao_bind = adc_bind, #if defined(CONFIG_STM32_STM32L15XX) && \ (STM32_CFGR_PLLSRC != 0 || STM32_SYSCLK_SW != RCC_CFGR_SW_HSI) .ao_reset = adc_reset_hsi_disable, @@ -1660,6 +1664,25 @@ static void adc_dmaconvcallback(DMA_HANDLE handle, uint8_t isr, FAR void *arg) } #endif +/**************************************************************************** + * Name: adc_bind + * + * Description: + * Bind the upper-half driver callbacks to the lower-half implementation. This + * must be called early in order to receive ADC event notifications. + * + ****************************************************************************/ + +static int adc_bind(FAR struct adc_dev_s *dev, + FAR const struct adc_callback_s *callback) +{ + FAR struct stm32_dev_s *priv = (FAR struct stm32_dev_s *)dev->ad_priv; + + DEBUGASSERT(priv != NULL); + priv->cb = callback; + return OK; +} + /**************************************************************************** * Name: adc_reset * @@ -2702,15 +2725,21 @@ static int adc_interrupt(FAR struct adc_dev_s *dev) data = adc_getreg(priv, STM32_ADC_DR_OFFSET) & ADC_DR_RDATA_MASK; - /* Give the ADC data to the ADC driver. adc_receive() accepts 3 - * parameters: - * - * 1) The first is the ADC device instance for this ADC block. - * 2) The second is the channel number for the data, and - * 3) The third is the converted data for the channel. - */ + /* Verify that the upper-half driver has bound its callback functions */ - adc_receive(dev, priv->chanlist[priv->current], data); + if (priv->cb != NULL) + { + /* Give the ADC data to the ADC driver. The ADC receive() method + * accepts 3 parameters: + * + * 1) The first is the ADC device instance for this ADC block. + * 2) The second is the channel number for the data, and + * 3) The third is the converted data for the channel. + */ + + DEBUGASSERT(priv->cb->au_receive != NULL); + priv->cb->au_receive(dev, priv->chanlist[priv->current], data); + } /* Set the channel number of the next channel that will complete * conversion. @@ -2995,6 +3024,7 @@ struct adc_dev_s *stm32_adcinitialize(int intf, FAR const uint8_t *chanlist, DEBUGASSERT(cchannels <= ADC_MAX_SAMPLES); + priv->cb = NULL; priv->cchannels = cchannels; memcpy(priv->chanlist, chanlist, cchannels); -- GitLab From aa05767a00c1fda42c467841a7a4089ac6af118a Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 26 May 2016 12:39:22 -0600 Subject: [PATCH 273/307] Add ADC bind method to the Tiva ADC drivers --- arch/arm/src/tiva/tiva_adc.h | 28 +++++++------- arch/arm/src/tiva/tiva_adclow.c | 67 +++++++++++++++++++++++++++------ 2 files changed, 70 insertions(+), 25 deletions(-) diff --git a/arch/arm/src/tiva/tiva_adc.h b/arch/arm/src/tiva/tiva_adc.h index c6fc9ac2e0..b5ba304518 100644 --- a/arch/arm/src/tiva/tiva_adc.h +++ b/arch/arm/src/tiva/tiva_adc.h @@ -125,32 +125,32 @@ struct tiva_adc_step_cfg_s { - uint8_t adc; /* Parent peripheral */ - uint8_t sse; /* Parent sample sequencer (SSE) */ - uint8_t step; /* Which step in the sequencer */ - uint8_t shold; /* Sample and hold time */ - uint8_t flags; /* Last step? Interrupt enabled? - * Internal temperature sensor? */ - uint8_t ain; /* Which analog input */ + uint8_t adc; /* Parent peripheral */ + uint8_t sse; /* Parent sample sequencer (SSE) */ + uint8_t step; /* Which step in the sequencer */ + uint8_t shold; /* Sample and hold time */ + uint8_t flags; /* Last step? Interrupt enabled? + * Internal temperature sensor? */ + uint8_t ain; /* Which analog input */ }; /* Sample Sequencer configuration options */ struct tiva_adc_sse_cfg_s { - uint8_t priority; /* Conversion priority, 0-3 no duplicates */ - uint8_t trigger; /* Trigger source */ + uint8_t priority; /* Conversion priority, 0-3 no duplicates */ + uint8_t trigger; /* Trigger source */ }; /* ADC peripheral configuration options */ struct tiva_adc_cfg_s { - uint8_t adc; /* ADC peripheral number */ - bool sse[4]; /* active SSEs in a bitmask */ - struct tiva_adc_sse_cfg_s ssecfg[4]; /* SSE configuration */ - uint8_t steps; /* Size of the stepcfg array */ - struct tiva_adc_step_cfg_s *stepcfg; /* Step configuration array */ + uint8_t adc; /* ADC peripheral number */ + bool sse[4]; /* active SSEs in a bitmask */ + struct tiva_adc_sse_cfg_s ssecfg[4]; /* SSE configuration */ + uint8_t steps; /* Size of the stepcfg array */ + struct tiva_adc_step_cfg_s *stepcfg; /* Step configuration array */ }; /**************************************************************************** diff --git a/arch/arm/src/tiva/tiva_adclow.c b/arch/arm/src/tiva/tiva_adclow.c index 7b2f8e2d9d..e8a9d53d5c 100644 --- a/arch/arm/src/tiva/tiva_adclow.c +++ b/arch/arm/src/tiva/tiva_adclow.c @@ -1,8 +1,10 @@ /**************************************************************************** * arch/arm/src/tiva/tiva_adclow.c * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. * Copyright (C) 2015 TRD2 Inc. All rights reserved. * Author: Calvin Maguranis + * Gregory Nutt * * References: * @@ -67,8 +69,8 @@ #include #include #include -#include #include +#include #include @@ -135,6 +137,8 @@ /* Upper level ADC driver ***************************************************/ +static int tiva_adc_bind(FAR struct adc_dev_s *dev, + FAR const struct adc_callback_s *callback); static void tiva_adc_reset(struct adc_dev_s *dev); static int tiva_adc_setup(struct adc_dev_s *dev); static void tiva_adc_shutdown(struct adc_dev_s *dev); @@ -149,6 +153,7 @@ static int tiva_adc_ioctl(struct adc_dev_s *dev, int cmd, unsigned long arg); static const struct adc_ops_s g_adcops = { + .ao_bind = tiva_adc_bind, .ao_reset = tiva_adc_reset, .ao_setup = tiva_adc_setup, .ao_shutdown = tiva_adc_shutdown, @@ -163,6 +168,7 @@ static const struct adc_ops_s g_adcops = struct tiva_adc_s { struct adc_dev_s *dev; + const struct adc_callback_s *cb; bool cfg; /* Configuration state */ bool ena; /* Operation state */ uint8_t devno; /* ADC device number */ @@ -373,6 +379,25 @@ static void tiva_adc_irqinitialize(struct tiva_adc_cfg_s *cfg) #endif } +/**************************************************************************** + * Name: tiva_adc_bind + * + * Description: + * Bind the upper-half driver callbacks to the lower-half implementation. This + * must be called early in order to receive ADC event notifications. + * + ****************************************************************************/ + +static int tiva_adc_bind(FAR struct adc_dev_s *dev, + FAR const struct adc_callback_s *callback) +{ + struct tiva_adc_s *priv = (struct tiva_adc_s *)dev->ad_priv; + + DEBUGASSERT(priv != NULL); + priv->cb = callback; + return OK; +} + /**************************************************************************** * Name: tiva_adc_reset * @@ -559,11 +584,20 @@ static int tiva_adc_ioctl(struct adc_dev_s *dev, int cmd, unsigned long arg) fifo_count = tiva_adc_sse_data(priv->devno, sse, buf); - for (i = 0; i < fifo_count; ++i) + /* Verify that the upper-half driver has bound its callback functions */ + + if (priv->cb != NULL) { - (void)adc_receive(dev, - tiva_adc_get_ain(priv->devno, sse, i), - buf[i]); + DEBUGASSERT(priv->cb->au_receive != NULL); + + for (i = 0; i < fifo_count; ++i) + { + /* Perform the data received callback */ + + priv->cb->au_receive(dev, + tiva_adc_get_ain(priv->devno, sse, i), + buf[i]); + } } /* Release our lock on the ADC structure */ @@ -651,18 +685,28 @@ static void tiva_adc_read(void *arg) /* This is a serious error: indicates invalid pointer indirection * and should cause a full system stop. */ + alldbg("PANIC!!! Invalid ADC device number given %d\n", sse->adc); PANIC(); return; } - for (i = 0; i < fifo_count; ++i) + /* Verify that the upper-half driver has bound its callback functions */ + + if (priv->cb != NULL) { - (void)adc_receive(dev, - tiva_adc_get_ain(sse->adc, sse->num, i), - buf[i]); - avdbg("AIN%d=0x%04x\n", - tiva_adc_get_ain(sse->adc, sse->num, i), buf[i]); + DEBUGASSERT(priv->cb->au_receive != NULL); + + for (i = 0; i < fifo_count; ++i) + { + /* Perform the data received callback */ + + priv->cb->au_receive(dev, + tiva_adc_get_ain(sse->adc, sse->num, i), + buf[i]); + avdbg("AIN%d = 0x%04x\n", + tiva_adc_get_ain(sse->adc, sse->num, i), buf[i]); + } } /* Exit, re-enabling ADC interrupts */ @@ -858,6 +902,7 @@ int tiva_adc_initialize(const char *devpath, struct tiva_adc_cfg_s *cfg, /* Now we are initialized */ adc->ena = true; + adc->cb = NULL; #ifdef CONFIG_DEBUG_ANALOG tiva_adc_runtimeobj_vals(); -- GitLab From 31ac3f51232d55ce754a1aecee516e895a7a6966 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 26 May 2016 12:42:34 -0600 Subject: [PATCH 274/307] STM32 ADC: Missed on adc_receive --- arch/arm/src/stm32/stm32_adc.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/arch/arm/src/stm32/stm32_adc.c b/arch/arm/src/stm32/stm32_adc.c index 81205714aa..4b81f63145 100644 --- a/arch/arm/src/stm32/stm32_adc.c +++ b/arch/arm/src/stm32/stm32_adc.c @@ -1645,15 +1645,22 @@ static void adc_dmaconvcallback(DMA_HANDLE handle, uint8_t isr, FAR void *arg) FAR struct stm32_dev_s *priv = (FAR struct stm32_dev_s *)dev->ad_priv; int i; - for (i = 0; i < priv->nchannels; i++) + /* Verify that the upper-half driver has bound its callback functions */ + + if (priv->cb != NULL) { - adc_receive(dev, priv->current, priv->dmabuffer[priv->current]); - priv->current++; - if (priv->current >= priv->nchannels) + DEBUGASSERT(priv->cb->au_receive != NULL); + + for (i = 0; i < priv->nchannels; i++) { - /* Restart the conversion sequence from the beginning */ + priv->cb->au_receive(dev, priv->current, priv->dmabuffer[priv->current]); + priv->current++; + if (priv->current >= priv->nchannels) + { + /* Restart the conversion sequence from the beginning */ - priv->current = 0; + priv->current = 0; + } } } -- GitLab From 1571575d54af14e29d4283d39a6c8643065f89de Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 26 May 2016 13:40:22 -0600 Subject: [PATCH 275/307] Perhaps this is a little clearer --- drivers/lcd/Make.defs | 35 ++++++++++++++--------------------- 1 file changed, 14 insertions(+), 21 deletions(-) diff --git a/drivers/lcd/Make.defs b/drivers/lcd/Make.defs index 890e3bb9e5..3eb60c791c 100644 --- a/drivers/lcd/Make.defs +++ b/drivers/lcd/Make.defs @@ -33,11 +33,9 @@ # ############################################################################ -# Don't build anything if there is no NX support for LCD drivers - ifeq ($(CONFIG_NX_LCDDRIVER),y) -# Include Graphics LCD drivers +# Include support for Graphics LCD drivers ifeq ($(CONFIG_LCD_P14201),y) CSRCS += p14201.c @@ -102,30 +100,25 @@ endif ifeq ($(CONFIG_LCD_RA8875),y) CSRCS += ra8875.c endif +endif # CONFIG_NX_LCDDRIVER -# Include Alphanumeric/Segment LCD drivers too - -ifeq ($(CONFIG_LCD_BACKPACK),y) - CSRCS += pcf8574_lcd_backpack.c -endif - -# Include LCD driver build support +ifeq ($(CONFIG_SLCD),y) -DEPPATH += --dep-path lcd -VPATH += :lcd -CFLAGS += ${shell $(INCDIR) $(INCDIROPT) "$(CC)" $(TOPDIR)$(DELIM)drivers$(DELIM)lcd} - -else ifeq ($(CONFIG_SLCD),y) - -# Include Alphanumeric/Segment LCD drivers only +# Include support for Alphanumeric/Segment LCD drivers ifeq ($(CONFIG_LCD_BACKPACK),y) CSRCS += pcf8574_lcd_backpack.c endif +endif # CONFIG_SLCD -# Include LCD driver build support +# Include LCD driver build support (the nested if-then-else implements an OR) -DEPPATH += --dep-path lcd -VPATH += :lcd -CFLAGS += ${shell $(INCDIR) $(INCDIROPT) "$(CC)" $(TOPDIR)$(DELIM)drivers$(DELIM)lcd} +ifeq ($(CONFIG_NX_LCDDRIVER),y) + DEPPATH += --dep-path lcd + VPATH += :lcd + CFLAGS += ${shell $(INCDIR) $(INCDIROPT) "$(CC)" $(TOPDIR)$(DELIM)drivers$(DELIM)lcd} +else ifeq ($(CONFIG_SLCD),y) + DEPPATH += --dep-path lcd + VPATH += :lcd + CFLAGS += ${shell $(INCDIR) $(INCDIROPT) "$(CC)" $(TOPDIR)$(DELIM)drivers$(DELIM)lcd} endif -- GitLab From d2caa93f1ac23010dc681c9d29f7f0490a48702b Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 26 May 2016 13:42:35 -0600 Subject: [PATCH 276/307] ADS1255 Driver: Must not do SPI access from interrupt handler. Use the worker thread instead. --- drivers/analog/Kconfig | 1 + drivers/analog/ads1255.c | 59 ++++++++++++++++++++++++++++++++++------ 2 files changed, 51 insertions(+), 9 deletions(-) diff --git a/drivers/analog/Kconfig b/drivers/analog/Kconfig index bc05480422..5c68f518e7 100644 --- a/drivers/analog/Kconfig +++ b/drivers/analog/Kconfig @@ -46,6 +46,7 @@ config ADC_ADS125X bool "TI ADS1255/ADS1256 support" default n select SPI + select SCHED_HPWORK if ADC_ADS125X diff --git a/drivers/analog/ads1255.c b/drivers/analog/ads1255.c index 8fbe3921ab..0f380a4058 100644 --- a/drivers/analog/ads1255.c +++ b/drivers/analog/ads1255.c @@ -39,6 +39,10 @@ * ************************************************************************************/ +/**************************************************************************** + * Included Files + ****************************************************************************/ + #include #include @@ -50,13 +54,17 @@ #include #include -#include #include +#include #include #include #if defined(CONFIG_ADC_ADS1255) +/**************************************************************************** + * Pre-processor Definitions + ****************************************************************************/ + #define ADS125X_BUFON 0x02 #define ADS125X_BUFOFF 0x00 @@ -103,12 +111,14 @@ #endif /**************************************************************************** - * ad_private Types + * Private Types ****************************************************************************/ struct ads1255_dev_s { FAR const struct adc_callback_s *cb; + FAR struct spi_dev_s *spi; /* Cached SPI device reference */ + struct work_s work; uint8_t channel; uint32_t sps; uint8_t pga; @@ -116,11 +126,10 @@ struct ads1255_dev_s const uint8_t *mux; int irq; int devno; - FAR struct spi_dev_s *spi; /* Cached SPI device reference */ }; /**************************************************************************** - * ad_private Function Prototypes + * Private Function Prototypes ****************************************************************************/ /* ADC methods */ @@ -132,10 +141,14 @@ static int adc_setup(FAR struct adc_dev_s *dev); static void adc_shutdown(FAR struct adc_dev_s *dev); static void adc_rxint(FAR struct adc_dev_s *dev, bool enable); static int adc_ioctl(FAR struct adc_dev_s *dev, int cmd, unsigned long arg); + +/* Interrupt handling */ + +static void adc_worker(FAR void *arg); static int adc_interrupt(int irq, void *context); /**************************************************************************** - * ad_private Data + * Private Data ****************************************************************************/ static const struct adc_ops_s g_adcops = @@ -351,16 +364,16 @@ static int adc_ioctl(FAR struct adc_dev_s *dev, int cmd, unsigned long arg) } /**************************************************************************** - * Name: adc_interrupt + * Name: adc_worker * * Description: - * ADC interrupt handler + * ADC interrupt work * ****************************************************************************/ -static int adc_interrupt(int irq, void *context) +static void adc_worker(FAR void *arg) { - FAR struct ads1255_dev_s *priv = (FAR struct ads1255_dev_s *)g_adcdev.ad_priv; + FAR struct ads1255_dev_s *priv = (FAR struct ads1255_dev_s *)arg; FAR struct spi_dev_s *spi; unsigned char buf[4]; unsigned char ch; @@ -406,6 +419,34 @@ static int adc_interrupt(int irq, void *context) priv->cb->au_receive(&g_adcdev, priv->channel, *(int32_t *)buf); } + /* Re-enable ADC interrupts */ + + up_enable_irq(priv->irq); +} + +/**************************************************************************** + * Name: adc_interrupt + * + * Description: + * ADC interrupt handler + * + ****************************************************************************/ + +static int adc_interrupt(int irq, void *context) +{ + FAR struct ads1255_dev_s *priv = (FAR struct ads1255_dev_s *)g_adcdev.ad_priv; + + DEBUGASSERT(priv != NULL); + + /* Disable further ADC interrupts until the worker thread has executed. */ + + up_disable_irq(priv->irq); + + /* Schedule the ADC work for the worker thread. Whent he sample has been + * processed, the ADC interrupt will be re-enabled. + */ + + DEBUGVERIFY(work_queue(HPWORK, &priv->work, adc_worker, priv, 0)); return OK; } -- GitLab From d5a4f858931df808c6ee50fceedcfbd18f6afd3a Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 26 May 2016 14:00:33 -0600 Subject: [PATCH 277/307] ADS1255 Driver: Must also lock the SPI bus before using it. --- drivers/analog/ads1255.c | 49 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 45 insertions(+), 4 deletions(-) diff --git a/drivers/analog/ads1255.c b/drivers/analog/ads1255.c index 0f380a4058..adb8933b38 100644 --- a/drivers/analog/ads1255.c +++ b/drivers/analog/ads1255.c @@ -132,6 +132,9 @@ struct ads1255_dev_s * Private Function Prototypes ****************************************************************************/ +static void adc_lock(FAR struct spi_dev_s *spi); +static void adc_unlock(FAR struct spi_dev_s *spi); + /* ADC methods */ static int adc_bind(FAR struct adc_dev_s *dev, @@ -211,6 +214,36 @@ static uint8_t getspsreg(uint16_t sps) * Private Functions ****************************************************************************/ +/**************************************************************************** + * Name: adc_lock + * + * Description: + * Lock and configure the SPI bus. + * + ****************************************************************************/ + +static void adc_lock(FAR struct spi_dev_s *spi) +{ + (void)SPI_LOCK(spi, true); + SPI_SETMODE(spi, SPIDEV_MODE1); + SPI_SETBITS(spi, 8); + (void)SPI_HWFEATURES(spi, 0); + SPI_SETFREQUENCY(spi, CONFIG_ADS1255_FREQUENCY); +} + +/**************************************************************************** + * Name: adc_unlock + * + * Description: + * Unlock the SPI bus. + * + ****************************************************************************/ + +static void adc_unlock(FAR struct spi_dev_s *spi) +{ + (void)SPI_LOCK(spi, false); +} + /**************************************************************************** * Name: adc_bind * @@ -247,16 +280,16 @@ static void adc_reset(FAR struct adc_dev_s *dev) DEBUGASSERT(priv != NULL && priv->spi != NULL); spi = priv->spi; - SPI_SETMODE(spi, SPIDEV_MODE1); - SPI_SETBITS(spi, 8); - (void)SPI_HWFEATURES(spi, 0); - SPI_SETFREQUENCY(spi, CONFIG_ADS1255_FREQUENCY); + adc_lock(spi); usleep(1000); + SPI_SELECT(spi, priv->devno, true); SPI_SEND(spi, ADS125X_WREG + 0x03); /* WRITE SPS REG */ SPI_SEND(spi, 0x00); /* count=1 */ SPI_SEND(spi, 0x63); SPI_SELECT(spi, priv->devno, false); + + adc_unlock(spi); } /**************************************************************************** @@ -282,6 +315,8 @@ static int adc_setup(FAR struct adc_dev_s *dev) ret = irq_attach(priv->irq, adc_interrupt); if (ret == OK) { + adc_lock(spi); + SPI_SELECT(spi, priv->devno, true); SPI_SEND(spi, ADS125X_WREG); /* WRITE REG from 0 */ SPI_SEND(spi, 0x03); /* count=4+1 */ @@ -300,6 +335,8 @@ static int adc_setup(FAR struct adc_dev_s *dev) usleep(1000); SPI_SEND(spi, ADS125X_SELFCAL); SPI_SELECT(spi, priv->devno, false); + + adc_unlock(spi); up_enable_irq(priv->irq); } @@ -385,6 +422,8 @@ static void adc_worker(FAR void *arg) * Need to use the high priority work queue. */ + adc_lock(spi); + SPI_SELECT(spi, priv->devno, true); SPI_SEND(spi, ADS125X_RDATA); up_udelay(10); @@ -409,6 +448,8 @@ static void adc_worker(FAR void *arg) SPI_SEND(spi, ADS125X_WAKEUP); SPI_SELECT(spi, priv->devno, false); + adc_unlock(spi); + /* Verify that the upper-half driver has bound its callback functions */ if (priv->cb != NULL) -- GitLab From 3e7b2d617a019d8ed756fdde8135147268cfadcb Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 26 May 2016 14:56:10 -0600 Subject: [PATCH 278/307] All drivers that use SPI must call SPI_LOCK and SPI_UNLOCK. This is not optional. --- drivers/analog/ad5410.c | 108 +++++++++++++++++++++++++++++++------ drivers/analog/ads1242.c | 80 ++++++++++++++++++++------- drivers/sensors/max31855.c | 36 +++++++++++++ drivers/sensors/max6675.c | 36 +++++++++++++ 4 files changed, 226 insertions(+), 34 deletions(-) diff --git a/drivers/analog/ad5410.c b/drivers/analog/ad5410.c index 33da3c7661..58db6a7cea 100644 --- a/drivers/analog/ad5410.c +++ b/drivers/analog/ad5410.c @@ -1,9 +1,10 @@ /************************************************************************************ * arch/drivers/analog/ad5410.c * + * Copyright (C) 2010, 2016 Gregory Nutt. All rights reserved. * Copyright (C) 2011 Li Zhuoyi. All rights reserved. * Author: Li Zhuoyi - * History: 0.1 2011-08-05 initial version + * Gregory Nutt * * This file is a part of NuttX: * @@ -85,6 +86,9 @@ struct up_dev_s * ad_private Function Prototypes ****************************************************************************/ +static void dac_lock(FAR struct spi_dev_s *spi); +static void dac_unlock(FAR struct spi_dev_s *spi); + /* DAC methods */ static void dac_reset(FAR struct dac_dev_s *dev); @@ -121,64 +125,136 @@ static struct dac_dev_s g_dacdev = * ad_private Functions ****************************************************************************/ -/* Reset the DAC device. Called early to initialize the hardware. This - * is called, before ao_setup() and on error conditions. - */ +/**************************************************************************** + * Name: dac_lock + * + * Description: + * Lock and configure the SPI bus. + * + ****************************************************************************/ + +static void dac_lock(FAR struct spi_dev_s *spi) +{ + (void)SPI_LOCK(spi, true); + SPI_SETMODE(spi, SPIDEV_MODE0); + SPI_SETBITS(spi, 8); + (void)SPI_HWFEATURES(spi, 0); + SPI_SETFREQUENCY(spi, 400000); +} + +/**************************************************************************** + * Name: dac_unlock + * + * Description: + * Unlock the SPI bus. + * + ****************************************************************************/ + +static void dac_unlock(FAR struct spi_dev_s *spi) +{ + (void)SPI_LOCK(spi, false); +} + +/**************************************************************************** + * Name: dac_reset + * + * Description: + * Reset the DAC device. Called early to initialize the hardware. This + * is called, before ao_setup() and on error conditions. + * + ****************************************************************************/ static void dac_reset(FAR struct dac_dev_s *dev) { } -/* Configure the DAC. This method is called the first time that the DAC - * device is opened. This will occur when the port is first opened. - * This setup includes configuring and attaching DAC interrupts. Interrupts - * are all disabled upon return. - */ +/**************************************************************************** + * Name: dac_setup + * + * Description: + * Configure the DAC. This method is called the first time that the DAC + * device is opened. This will occur when the port is first opened. + * This setup includes configuring and attaching DAC interrupts. Interrupts + * are all disabled upon return. + * + ****************************************************************************/ static int dac_setup(FAR struct dac_dev_s *dev) { FAR struct up_dev_s *priv = (FAR struct up_dev_s *)dev->ad_priv; FAR struct spi_dev_s *spi = priv->spi; + dac_lock(spi); + SPI_SELECT(spi, priv->devno, true); SPI_SEND(spi, AD5410_REG_CMD); SPI_SEND(spi, (AD5410_CMD_OUTEN | AD5410_CMD_420MA) >> 8); SPI_SEND(spi, AD5410_CMD_OUTEN | AD5410_CMD_420MA); SPI_SELECT(spi, priv->devno, false); + + dac_unlock(spi); return OK; } -/* Disable the DAC. This method is called when the DAC device is closed. - * This method reverses the operation the setup method. - */ +/**************************************************************************** + * Name: dac_shutdown + * + * Description: + * Disable the DAC. This method is called when the DAC device is closed. + * This method reverses the operation the setup method. + * + ****************************************************************************/ static void dac_shutdown(FAR struct dac_dev_s *dev) { } -/* Call to enable or disable TX interrupts */ +/**************************************************************************** + * Name: dac_txint + * + * Description: + * Call to enable or disable TX interrupts + * + ****************************************************************************/ static void dac_txint(FAR struct dac_dev_s *dev, bool enable) { } -static int dac_send(FAR struct dac_dev_s *dev, FAR struct dac_msg_s *msg) +/**************************************************************************** + * Name: dac_send + * + * Description: + * + ****************************************************************************/ + +static int dac_send(FAR struct dac_dev_s *dev, FAR struct dac_msg_s *msg) { FAR struct up_dev_s *priv = (FAR struct up_dev_s *)dev->ad_priv; FAR struct spi_dev_s *spi = priv->spi; + dac_lock(spi); + SPI_SELECT(spi, priv->devno, true); SPI_SEND(spi, AD5410_REG_WR); SPI_SEND(spi, (uint8_t)(msg->am_data >> 24)); SPI_SEND(spi, (uint8_t)(msg->am_data >> 16)); SPI_SELECT(spi, priv->devno, false); + + dac_unlock(spi); dac_txdone(&g_dacdev); return 0; } -/* All ioctl calls will be routed through this method */ +/**************************************************************************** + * Name: dac_ioctl + * + * Description: + * All ioctl calls will be routed through this method + * + ****************************************************************************/ -static int dac_ioctl(FAR struct dac_dev_s *dev, int cmd, unsigned long arg) +static int dac_ioctl(FAR struct dac_dev_s *dev, int cmd, unsigned long arg) { dbg("Fix me:Not Implemented\n"); return 0; diff --git a/drivers/analog/ads1242.c b/drivers/analog/ads1242.c index 93b82942c2..ccd9c0d18d 100644 --- a/drivers/analog/ads1242.c +++ b/drivers/analog/ads1242.c @@ -2,8 +2,10 @@ * drivers/sensors/ads1242.c * Character driver for the MCP3426 Differential Input 16 Bit Delta/Sigma ADC * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. * Copyright (C) 2015 DS-Automotion GmbH. All rights reserved. * Author: Alexander Entinger + * Gregory Nutt * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -70,6 +72,8 @@ struct ads1242_dev_s /* SPI Helpers */ +static void ads1242_lock(FAR struct spi_dev_s *spi); +static void ads1242_unlock(FAR struct spi_dev_s *spi); static void ads1242_reset(FAR struct ads1242_dev_s *dev); static void ads1242_performSelfGainCalibration( FAR struct ads1242_dev_s *dev); @@ -128,19 +132,50 @@ static const struct file_operations g_ads1242_fops = * Private Functions ****************************************************************************/ +/**************************************************************************** + * Name: ads1242_lock + * + * Description: + * Lock and configure the SPI bus. + * + ****************************************************************************/ + +static void ads1242_lock(FAR struct spi_dev_s *spi) +{ + (void)SPI_LOCK(spi, true); + SPI_SETMODE(spi, ADS1242_SPI_MODE); + SPI_SETBITS(spi, 8); + (void)SPI_HWFEATURES(spi, 0); + SPI_SETFREQUENCY(spi, ADS1242_SPI_FREQUENCY); +} + +/**************************************************************************** + * Name: ads1242_unlock + * + * Description: + * Unlock the SPI bus. + * + ****************************************************************************/ + +static void ads1242_unlock(FAR struct spi_dev_s *spi) +{ + (void)SPI_LOCK(spi, false); +} + /**************************************************************************** * Name: ads1242_reset ****************************************************************************/ static void ads1242_reset(FAR struct ads1242_dev_s *dev) { - SPI_SELECT(dev->spi, 0, true); /* Set nADC_SPI_CS to low which selects the ADS1242 */ + ads1242_lock(dev->spi); + SPI_SELECT(dev->spi, 0, true); /* Set nADC_SPI_CS to low which selects the ADS1242 */ SPI_SEND(dev->spi, ADS1242_CMD_RESET);/* Issue reset command */ - SPI_SELECT(dev->spi, 0, false); /* Set nADC_SPI_CS to high which deselects the ADS1242 */ - up_mdelay(100); /* Wait a little so the device has time to perform a proper reset */ + + ads1242_unlock(dev->spi); } /**************************************************************************** @@ -149,11 +184,13 @@ static void ads1242_reset(FAR struct ads1242_dev_s *dev) static void ads1242_performSelfGainCalibration(FAR struct ads1242_dev_s *dev) { - SPI_SELECT(dev->spi, 0, true); + ads1242_lock(dev->spi); + SPI_SELECT(dev->spi, 0, true); SPI_SEND(dev->spi, ADS1242_CMD_SELF_GAIN_CALIB); - SPI_SELECT(dev->spi, 0, false); + + ads1242_unlock(dev->spi); } /**************************************************************************** @@ -162,11 +199,13 @@ static void ads1242_performSelfGainCalibration(FAR struct ads1242_dev_s *dev) static void ads1242_performSelfOffsetCalibration(FAR struct ads1242_dev_s *dev) { - SPI_SELECT(dev->spi, 0, true); + ads1242_lock(dev->spi); + SPI_SELECT(dev->spi, 0, true); SPI_SEND(dev->spi, ADS1242_CMD_SELF_OFFSET_CALIB); - SPI_SELECT(dev->spi, 0, false); + + ads1242_unlock(dev->spi); } /**************************************************************************** @@ -176,11 +215,13 @@ static void ads1242_performSelfOffsetCalibration(FAR struct ads1242_dev_s *dev) static void ads1242_performSystemOffsetCalibration(FAR struct ads1242_dev_s *dev) { - SPI_SELECT(dev->spi, 0, true); + ads1242_lock(dev->spi); + SPI_SELECT(dev->spi, 0, true); SPI_SEND(dev->spi, ADS1242_CMD_SYSTEM_OFFSET_CALIB); - SPI_SELECT(dev->spi, 0, false); + + ads1242_unlock(dev->spi); } /**************************************************************************** @@ -190,8 +231,9 @@ ads1242_performSystemOffsetCalibration(FAR struct ads1242_dev_s *dev) static void ads1242_read_conversion_result(FAR struct ads1242_dev_s *dev, FAR uint32_t *conversion_result) { - SPI_SELECT(dev->spi, 0, true); + ads1242_lock(dev->spi); + SPI_SELECT(dev->spi, 0, true); SPI_SEND(dev->spi, ADS1242_CMD_READ_DATA); /* Delay between last SCLK edge for DIN and first SCLK edge for DOUT: @@ -212,6 +254,8 @@ static void ads1242_read_conversion_result(FAR struct ads1242_dev_s *dev, *conversion_result |= ((uint32_t)(SPI_SEND(dev->spi, 0xFF))) << 0; SPI_SELECT(dev->spi, 0, false); + + ads1242_unlock(dev->spi); } /**************************************************************************** @@ -227,11 +271,15 @@ static void ads1242_read_conversion_result(FAR struct ads1242_dev_s *dev, static void ads1242_write_reg(FAR struct ads1242_dev_s *dev, uint8_t const reg_addr, uint8_t const reg_value) { + ads1242_lock(dev->spi); + SPI_SELECT(dev->spi, 0, true); SPI_SEND(dev->spi, ADS1242_CMD_WRITE_REGISTER | reg_addr); SPI_SEND(dev->spi, 0x00); /* Write 1 Byte */ SPI_SEND(dev->spi, reg_value); SPI_SELECT(dev->spi, 0, false); + + ads1242_unlock(dev->spi); } /**************************************************************************** @@ -248,6 +296,8 @@ static void ads1242_write_reg(FAR struct ads1242_dev_s *dev, static void ads1242_read_reg(FAR struct ads1242_dev_s *dev, uint8_t const reg_addr, FAR uint8_t *reg_value) { + ads1242_lock(dev->spi); + SPI_SELECT(dev->spi, 0, true); SPI_SEND(dev->spi, ADS1242_CMD_READ_REGISTER | reg_addr); SPI_SEND(dev->spi, 0x00); /* Read 1 Byte */ @@ -261,6 +311,8 @@ static void ads1242_read_reg(FAR struct ads1242_dev_s *dev, *reg_value = SPI_SEND(dev->spi, 0xFF); SPI_SELECT(dev->spi, 0, false); + + ads1242_unlock(dev->spi); } /**************************************************************************** @@ -562,14 +614,6 @@ int ads1242_register(FAR const char *devpath, FAR struct spi_dev_s *spi, kmm_free(priv); } - /* setup SPI frequency */ - - SPI_SETFREQUENCY(spi, ADS1242_SPI_FREQUENCY); - - /* Setup SPI mode */ - - SPI_SETMODE(spi, ADS1242_SPI_MODE); - return ret; } diff --git a/drivers/sensors/max31855.c b/drivers/sensors/max31855.c index c239d9688d..d3e5b8e8f6 100644 --- a/drivers/sensors/max31855.c +++ b/drivers/sensors/max31855.c @@ -83,6 +83,9 @@ struct max31855_dev_s * Private Function Prototypes ****************************************************************************/ +static void max31855_lock(FAR struct spi_dev_s *spi); +static void max31855_unlock(FAR struct spi_dev_s *spi); + /* Character driver methods */ static int max31855_open(FAR struct file *filep); @@ -112,6 +115,37 @@ static const struct file_operations g_max31855fops = /**************************************************************************** * Private Functions ****************************************************************************/ + +/**************************************************************************** + * Name: max31855_lock + * + * Description: + * Lock and configure the SPI bus. + * + ****************************************************************************/ + +static void max31855_lock(FAR struct spi_dev_s *spi) +{ + (void)SPI_LOCK(spi, true); + SPI_SETMODE(spi, SPIDEV_MODE0); + SPI_SETBITS(spi, 8); + (void)SPI_HWFEATURES(spi, 0); + SPI_SETFREQUENCY(spi, 400000); +} + +/**************************************************************************** + * Name: max31855_unlock + * + * Description: + * Unlock the SPI bus. + * + ****************************************************************************/ + +static void max31855_unlock(FAR struct spi_dev_s *spi) +{ + (void)SPI_LOCK(spi, false); +} + /**************************************************************************** * Name: max31855_open * @@ -167,6 +201,7 @@ static ssize_t max31855_read(FAR struct file *filep, FAR char *buffer, size_t bu /* Enable MAX31855's chip select */ + max31855_lock(priv->spi); SPI_SELECT(priv->spi, SPIDEV_TEMPERATURE, true); /* Read temperature */ @@ -176,6 +211,7 @@ static ssize_t max31855_read(FAR struct file *filep, FAR char *buffer, size_t bu /* Disable MAX31855's chip select */ SPI_SELECT(priv->spi, SPIDEV_TEMPERATURE, false); + max31855_unlock(priv->spi); regval = (regmsb & 0xFF000000) >> 24; regval |= (regmsb & 0xFF0000) >> 8; diff --git a/drivers/sensors/max6675.c b/drivers/sensors/max6675.c index 38aa6c18a7..329f5185c5 100644 --- a/drivers/sensors/max6675.c +++ b/drivers/sensors/max6675.c @@ -80,6 +80,9 @@ struct max6675_dev_s * Private Function Prototypes ****************************************************************************/ +static void max6675_lock(FAR struct spi_dev_s *spi) +static void max6675_unlock(FAR struct spi_dev_s *spi) + /* Character driver methods */ static int max6675_open(FAR struct file *filep); @@ -108,6 +111,37 @@ static const struct file_operations g_max6675fops = /**************************************************************************** * Private Functions ****************************************************************************/ + +/**************************************************************************** + * Name: max6675_lock + * + * Description: + * Lock and configure the SPI bus. + * + ****************************************************************************/ + +static void max6675_lock(FAR struct spi_dev_s *spi) +{ + (void)SPI_LOCK(spi, true); + SPI_SETMODE(spi, SPIDEV_MODE0); + SPI_SETBITS(spi, 8); + (void)SPI_HWFEATURES(spi, 0); + SPI_SETFREQUENCY(spi, 400000); +} + +/**************************************************************************** + * Name: max6675_unlock + * + * Description: + * Unlock the SPI bus. + * + ****************************************************************************/ + +static void max6675_unlock(FAR struct spi_dev_s *spi) +{ + (void)SPI_LOCK(spi, false); +} + /**************************************************************************** * Name: max6675_open * @@ -163,6 +197,7 @@ static ssize_t max6675_read(FAR struct file *filep, FAR char *buffer, size_t buf /* Enable MAX6675's chip select */ + max6675_lock(priv->spi); SPI_SELECT(priv->spi, SPIDEV_TEMPERATURE, true); /* Read temperature */ @@ -172,6 +207,7 @@ static ssize_t max6675_read(FAR struct file *filep, FAR char *buffer, size_t buf /* Disable MAX6675's chip select */ SPI_SELECT(priv->spi, SPIDEV_TEMPERATURE, false); + max6675_unlock(priv->spi); regval = (regmsb & 0xFF00) >> 8; regval |= (regmsb & 0xFF) << 8; -- GitLab From 3d3b7b542218a8c9955ccde581b7648e9b19fa5a Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 27 May 2016 06:46:33 -0600 Subject: [PATCH 279/307] EFM32, STM32, TIVA: Allow lower half driver to build if any ADC is selected. Should not depend on CONFIG_ADC. --- arch/arm/src/efm32/efm32_adc.c | 6 +++--- arch/arm/src/stm32/Make.defs | 2 +- arch/arm/src/stm32/stm32_adc.c | 4 ++-- arch/arm/src/tiva/tiva_adc.h | 9 ++------- arch/arm/src/tiva/tiva_adclow.c | 4 ++-- 5 files changed, 10 insertions(+), 15 deletions(-) diff --git a/arch/arm/src/efm32/efm32_adc.c b/arch/arm/src/efm32/efm32_adc.c index 032f92a655..53cb731ad6 100644 --- a/arch/arm/src/efm32/efm32_adc.c +++ b/arch/arm/src/efm32/efm32_adc.c @@ -65,9 +65,9 @@ #include "efm32.h" #include "efm32_adc.h" -/* ADC "upper half" support must be enabled */ +/* ADC "lower half" support must be enabled */ -#ifdef CONFIG_ADC +#ifdef CONFIG_EFM32_ADC /* Some ADC peripheral must be enabled */ @@ -1316,4 +1316,4 @@ struct adc_dev_s *efm32_adcinitialize(int intf, const uint8_t *chanlist, int nch #endif /* CONFIG_EFM32_EFM32GG */ #endif /* CONFIG_EFM32_ADC1 */ -#endif /* CONFIG_ADC */ +#endif /* CONFIG_EFM32_ADC */ diff --git a/arch/arm/src/stm32/Make.defs b/arch/arm/src/stm32/Make.defs index 3d225f31ef..98c1bad646 100644 --- a/arch/arm/src/stm32/Make.defs +++ b/arch/arm/src/stm32/Make.defs @@ -203,7 +203,7 @@ CHIP_CSRCS += stm32_rtc_lowerhalf.c endif endif -ifeq ($(CONFIG_ADC),y) +ifeq ($(CONFIG_STM32_ADC),y) CHIP_CSRCS += stm32_adc.c endif diff --git a/arch/arm/src/stm32/stm32_adc.c b/arch/arm/src/stm32/stm32_adc.c index 4b81f63145..c24a98dbc7 100644 --- a/arch/arm/src/stm32/stm32_adc.c +++ b/arch/arm/src/stm32/stm32_adc.c @@ -69,7 +69,7 @@ /* ADC "upper half" support must be enabled */ -#ifdef CONFIG_ADC +#ifdef CONFIG_STM32_ADC /* Some ADC peripheral must be enabled */ @@ -3046,4 +3046,4 @@ struct adc_dev_s *stm32_adcinitialize(int intf, FAR const uint8_t *chanlist, #endif /* CONFIG_STM32_ADC1 || CONFIG_STM32_ADC2 || * CONFIG_STM32_ADC3 || CONFIG_STM32_ADC4 */ -#endif /* CONFIG_ADC */ +#endif /* CONFIG_STM32_ADC */ diff --git a/arch/arm/src/tiva/tiva_adc.h b/arch/arm/src/tiva/tiva_adc.h index b5ba304518..693252ad35 100644 --- a/arch/arm/src/tiva/tiva_adc.h +++ b/arch/arm/src/tiva/tiva_adc.h @@ -165,16 +165,11 @@ extern "C" #define EXTERN extern #endif -/**************************************************************************** - * Inline Functions - ****************************************************************************/ - /**************************************************************************** * Public Function Prototypes ****************************************************************************/ -/* Only allow access to upper level ADC drivers if they are enabled */ -#ifdef CONFIG_ADC +#ifdef CONFIG_TIVA_ADC /**************************************************************************** * Driver Function Prototypes @@ -228,7 +223,7 @@ void tiva_adc_lock(FAR struct tiva_adc_s *priv, int sse); void tiva_adc_unlock(FAR struct tiva_adc_s *priv, int sse); -#endif /* CONFIG_ADC */ +#endif /* CONFIG_TIVA_ADC */ /**************************************************************************** * Library Function Prototypes diff --git a/arch/arm/src/tiva/tiva_adclow.c b/arch/arm/src/tiva/tiva_adclow.c index e8a9d53d5c..7a0b5509ce 100644 --- a/arch/arm/src/tiva/tiva_adclow.c +++ b/arch/arm/src/tiva/tiva_adclow.c @@ -82,7 +82,7 @@ #include "chip/tiva_pinmap.h" #include "chip/tiva_syscontrol.h" -#if defined (CONFIG_TIVA_ADC) && defined (CONFIG_ADC) +#ifdef CONFIG_TIVA_ADC /**************************************************************************** * Pre-processor Definitions @@ -1086,4 +1086,4 @@ static void tiva_adc_dump_dev(void) } #endif -#endif /* CONFIG_TIVA_ADC && CONFIG_ADC */ +#endif /* CONFIG_TIVA_ADC */ -- GitLab From 41412d0ce9b8eeb198d3428a7541d7a77b4b01c0 Mon Sep 17 00:00:00 2001 From: Pierre-noel Bouteville Date: Fri, 27 May 2016 07:05:20 -0600 Subject: [PATCH 280/307] * fix a bug in crc computation for ms583730 * implement POSIX read. --- drivers/sensors/ms58xx.c | 167 +++++++++++++++++++++++++-------- include/nuttx/sensors/ms58xx.h | 6 ++ 2 files changed, 133 insertions(+), 40 deletions(-) diff --git a/drivers/sensors/ms58xx.c b/drivers/sensors/ms58xx.c index 410a391a72..1cbcdc37e9 100644 --- a/drivers/sensors/ms58xx.c +++ b/drivers/sensors/ms58xx.c @@ -139,7 +139,7 @@ struct ms58xx_dev_s ****************************************************************************/ /* CRC Calculation */ -static uint8_t ms58xx_crc(FAR uint16_t *src, uint8_t crcIndex); +static uint8_t ms58xx_crc(FAR uint16_t *src, uint8_t crcndx, uint16_t crcmask); /* I2C Helpers */ @@ -200,7 +200,7 @@ static const struct file_operations g_fops = * ****************************************************************************/ -static uint8_t ms58xx_crc(FAR uint16_t *src, uint8_t crcIndex) +static uint8_t ms58xx_crc(FAR uint16_t *src, uint8_t crcndx, uint16_t crcmask) { uint16_t cnt; uint16_t n_rem; @@ -208,8 +208,8 @@ static uint8_t ms58xx_crc(FAR uint16_t *src, uint8_t crcIndex) uint8_t n_bit; n_rem = 0x00; - crc_read = src[crcIndex]; - src[crcIndex] = (0xff00 & (src[7])); + crc_read = src[crcndx]; + src[crcndx] &= ~crcmask; for (cnt = 0; cnt < 16; cnt++) { @@ -236,7 +236,7 @@ static uint8_t ms58xx_crc(FAR uint16_t *src, uint8_t crcIndex) } n_rem = (0x000F & (n_rem >> 12)); - src[crcIndex] = crc_read; + src[crcndx] = crc_read; return (n_rem ^ 0x00); } @@ -369,24 +369,73 @@ static int ms58xx_readadc(FAR struct ms58xx_dev_s *priv, FAR uint32_t *adc) *adc = (uint32_t)buffer[0] << 16 | (uint32_t)buffer[1] << 8 | (uint32_t)buffer[2]; + sndbg("adc: %06x ret: %d\n", *adc, ret); return ret; } /**************************************************************************** - * Name: ms58xx_setosr + * Name: ms58xx_setosr_1 * * Description: * Set the oversampling ratio. * ****************************************************************************/ -static int ms58xx_setosr(FAR struct ms58xx_dev_s *priv, uint16_t osr) +static int ms58xx_setosr_1(FAR struct ms58xx_dev_s *priv, uint16_t osr) { int ret = OK; + switch (osr) + { + case 256: + priv->delay = 600; + priv->osr = 0x0; + break; - sndbg("osr: %04x\n", osr); + case 512: + priv->delay = 1170; + priv->osr = 0x2; + break; + + case 1024: + priv->delay = 2280; + priv->osr = 0x4; + break; + case 2048: + priv->delay = 4540; + priv->osr = 0x6; + break; + + case 4096: + priv->delay = 9040; + priv->osr = 0x8; + break; + + case 8192: + priv->delay = 18080; + priv->osr = 0xA; + break; + + default: + ret = -EINVAL; + break; + } + + return ret; +} + +/**************************************************************************** + * Name: ms58xx_setosr_2 + * + * Description: + * Set the oversampling ratio. + * + ****************************************************************************/ + +static int ms58xx_setosr_2(FAR struct ms58xx_dev_s *priv, uint16_t osr) +{ + int ret = OK; switch (osr) { case 256: @@ -409,26 +458,6 @@ static int ms58xx_setosr(FAR struct ms58xx_dev_s *priv, uint16_t osr) priv->delay = 9040; break; - case 8192: - switch (priv->model) - { - case MS58XX_MODEL_MS5805_02: - case MS58XX_MODEL_MS5837_30: - priv->delay = 18080; - break; - - case MS58XX_MODEL_MS5803_02: - case MS58XX_MODEL_MS5803_05: - case MS58XX_MODEL_MS5803_07: - case MS58XX_MODEL_MS5803_14: - case MS58XX_MODEL_MS5803_30: - case MS58XX_MODEL_MS5806_02: - default: - ret = -EINVAL; - break; - } - break; - default: ret = -EINVAL; break; @@ -442,6 +471,44 @@ static int ms58xx_setosr(FAR struct ms58xx_dev_s *priv, uint16_t osr) return ret; } +/**************************************************************************** + * Name: ms58xx_setosr + * + * Description: + * Set the oversampling ratio. + * + ****************************************************************************/ + +static int ms58xx_setosr(FAR struct ms58xx_dev_s *priv, uint16_t osr) +{ + int ret = OK; + + sndbg("osr: %04x\n", osr); + + switch (priv->model) + { + case MS58XX_MODEL_MS5805_02: + case MS58XX_MODEL_MS5837_30: + ret = ms58xx_setosr_1(priv,osr); + break; + + case MS58XX_MODEL_MS5803_02: + case MS58XX_MODEL_MS5803_05: + case MS58XX_MODEL_MS5803_07: + case MS58XX_MODEL_MS5803_14: + case MS58XX_MODEL_MS5803_30: + case MS58XX_MODEL_MS5806_02: + ret = ms58xx_setosr_2(priv,osr); + break; + + default: + ret = -EINVAL; + break; + } + + return ret; +} + /**************************************************************************** * Name: ms58xx_readprom * @@ -499,7 +566,7 @@ static int ms58xx_readprom(FAR struct ms58xx_dev_s *priv) crcmask = (uint16_t)0xf << crcshift; crc = (uint8_t)((prom[crcindex] & crcmask) >> crcshift); - if (crc != ms58xx_crc(prom, crcindex)) + if (crc != ms58xx_crc(prom, crcindex, crcmask)) { sndbg("crc mismatch\n"); return -ENODEV; @@ -787,7 +854,27 @@ static int ms58xx_close(FAR struct file *filep) static ssize_t ms58xx_read(FAR struct file *filep, FAR char *buffer, size_t buflen) { - return 0; + ssize_t size; + FAR struct inode *inode = filep->f_inode; + FAR struct ms58xx_dev_s *priv = inode->i_private; + FAR struct ms58xx_measure_s *p = (FAR struct ms58xx_measure_s *)buffer; + + size = buflen; + while (size >= sizeof(*p)) + { + if (ms58xx_measure(priv) < 0) + { + return -1; + } + + p->temperature = priv->temp; + p->pressure = priv->press; + + p++; + size -= sizeof(*p); + } + + return size; } /**************************************************************************** @@ -907,16 +994,16 @@ int ms58xx_register(FAR const char *devpath, FAR struct i2c_master_s *i2c, /* Sanity check */ DEBUGASSERT(i2c != NULL); - DEBUGASSERT((model == MS58XX_MODEL_MS5803_02 || - model == MS58XX_MODEL_MS5803_05 || - model == MS58XX_MODEL_MS5803_07 || - model == MS58XX_MODEL_MS5803_14 || - model == MS58XX_MODEL_MS5803_30 || - model == MS58XX_MODEL_MS5806_02) && - (addr == MS58XX_ADDR0 || addr == MS58XX_ADDR1) || - (model == MS58XX_MODEL_MS5805_02 || - model == MS58XX_MODEL_MS5837_30) && - addr == MS58XX_ADDR0); + DEBUGASSERT(((model == MS58XX_MODEL_MS5803_02 || + model == MS58XX_MODEL_MS5803_05 || + model == MS58XX_MODEL_MS5803_07 || + model == MS58XX_MODEL_MS5803_14 || + model == MS58XX_MODEL_MS5803_30 || + model == MS58XX_MODEL_MS5806_02) && + (addr == MS58XX_ADDR0 || addr == MS58XX_ADDR1)) || + ((model == MS58XX_MODEL_MS5805_02 || + model == MS58XX_MODEL_MS5837_30) && + addr == MS58XX_ADDR0)); /* Initialize the device's structure */ diff --git a/include/nuttx/sensors/ms58xx.h b/include/nuttx/sensors/ms58xx.h index fb20a3b212..62525d31a6 100644 --- a/include/nuttx/sensors/ms58xx.h +++ b/include/nuttx/sensors/ms58xx.h @@ -87,6 +87,12 @@ enum ms58xx_model_e MS58XX_MODEL_MS5837_30 = 7 }; +struct ms58xx_measure_s +{ + int32_t temperature; /* in Degree x100 */ + int32_t pressure; /* in mBar x10 */ +}; + struct i2c_master_s; /**************************************************************************** -- GitLab From 55d704e3c266db3034e9f374cd2a2df3902f8f6e Mon Sep 17 00:00:00 2001 From: Pierre-noel Bouteville Date: Fri, 27 May 2016 07:16:30 -0600 Subject: [PATCH 281/307] ADC: In adc.h, exclude upper half fields if common upper half is not used (CONFIG_ADC not defined). --- include/nuttx/analog/adc.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/nuttx/analog/adc.h b/include/nuttx/analog/adc.h index aae75649f1..235ade4192 100644 --- a/include/nuttx/analog/adc.h +++ b/include/nuttx/analog/adc.h @@ -169,11 +169,13 @@ struct adc_ops_s struct adc_dev_s { +#ifdef CONFIG_ADC uint8_t ad_ocount; /* The number of times the device has been opened */ uint8_t ad_nrxwaiters; /* Number of threads waiting to enqueue a message */ sem_t ad_closesem; /* Locks out new opens while close is in progress */ sem_t ad_recvsem; /* Used to wakeup user waiting for space in ad_recv.buffer */ struct adc_fifo_s ad_recv; /* Describes receive FIFO */ +#endif FAR const struct adc_ops_s *ad_ops; /* Arch-specific operations */ FAR void *ad_priv; /* Used by the arch-specific logic */ }; -- GitLab From 23f4f04448ababfa054aca3de5b2867c540fb6ef Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 27 May 2016 07:50:06 -0600 Subject: [PATCH 282/307] Costmetic update to some comments --- include/nuttx/analog/adc.h | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/include/nuttx/analog/adc.h b/include/nuttx/analog/adc.h index 235ade4192..f08687a5a4 100644 --- a/include/nuttx/analog/adc.h +++ b/include/nuttx/analog/adc.h @@ -159,8 +159,8 @@ struct adc_ops_s }; /* This is the device structure used by the driver. The caller of - * adc_register() must allocate and initialize this structure. The - * calling logic need only set all fields to zero except: + * adc_register() must allocate and initialize this structure. The calling + * logic need only set all fields to zero except: * * The elements of 'ad_ops', and 'ad_priv' * @@ -170,12 +170,17 @@ struct adc_ops_s struct adc_dev_s { #ifdef CONFIG_ADC + /* Fields managed by common upper half ADC logic */ + uint8_t ad_ocount; /* The number of times the device has been opened */ uint8_t ad_nrxwaiters; /* Number of threads waiting to enqueue a message */ sem_t ad_closesem; /* Locks out new opens while close is in progress */ sem_t ad_recvsem; /* Used to wakeup user waiting for space in ad_recv.buffer */ struct adc_fifo_s ad_recv; /* Describes receive FIFO */ #endif + + /* Fields provided by lower half ADC logic */ + FAR const struct adc_ops_s *ad_ops; /* Arch-specific operations */ FAR void *ad_priv; /* Used by the arch-specific logic */ }; -- GitLab From d44ecbcfbb5f1739956d2d9c0b7787ddd27226c2 Mon Sep 17 00:00:00 2001 From: Stefan Kolb Date: Fri, 27 May 2016 07:51:50 -0600 Subject: [PATCH 283/307] =?UTF-8?q?This=20is=20a=20fix=20to=20a=20problem?= =?UTF-8?q?=20in=20the=20handling=20of=20the=20oneshot=20timer.=20Due=20to?= =?UTF-8?q?=20a=20wrong=20assumption=20concerning=20the=20behavior=20direc?= =?UTF-8?q?tly=20after=20the=20start=20of=20the=20timer/counter=20the=20fu?= =?UTF-8?q?nction=20sam=5Foneshot=5Fcancel(=E2=80=A6)=20calculates=20the?= =?UTF-8?q?=20wrong=20remaining=20time.=20The=20code=20assumes=20that=20th?= =?UTF-8?q?e=20counter=20register=20is=20zero=20directly=20after=20the=20s?= =?UTF-8?q?tart=20of=20the=20timer,=20but=20this=20is=20not=20true.=20To?= =?UTF-8?q?=20start=20the=20time/counter=20a=20software=20trigger=20is=20i?= =?UTF-8?q?nvoked,=20this=20trigger=20starts=20the=20timer/count=20and=20s?= =?UTF-8?q?ets=20the=20counter=20register=20to=20zero,=20but=20the=20reset?= =?UTF-8?q?=20of=20the=20counter=20register=20is=20not=20performed=20insta?= =?UTF-8?q?ntly.=20According=20to=20the=20datasheet:=20=E2=80=9CThe=20coun?= =?UTF-8?q?ter=20can=20be=20reset=20by=20a=20trigger.=20In=20this=20case,?= =?UTF-8?q?=20the=20counter=20value=20passes=20to=20zero=20on=20the=20next?= =?UTF-8?q?=20valid=20edge=20of=20the=20selected=20clock.=E2=80=9D=20Thus?= =?UTF-8?q?=20the=20counter=20is=20set=20to=20zero=20between=200=20and=20U?= =?UTF-8?q?SEC=5FPER=5FTICK=20microseconds=20after=20the=20clock=20was=20s?= =?UTF-8?q?tarted.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In my fix I use the freerun count value to determine if at least one tick passed since the start of the timer and thus if the value of the oneshot counter is correct. I also tried to use the function up_timer_gettime(…) to achieve this but, at least if compiled with no optimization the problem vanishes without using the value of the function, the function call takes too long. Another problem treated in the fix is that if the oneshot timer/counter is canceled, we only know the remaining time with a precision of USEC_PER_TICK microseconds. This means the calculated remaining time is between 0 and USEC_PER_TICK microseconds too long. To fix this I subtract one tick if the calculated remaining time is greater than one tick and otherwise set the remaining time to zero. By doing so the measured times are much more precise as without it. --- arch/arm/src/samv7/Kconfig | 1 + arch/arm/src/samv7/sam_oneshot.c | 67 +++++++++++++++++++++++++------ arch/arm/src/samv7/sam_oneshot.h | 20 +++++++-- arch/arm/src/samv7/sam_tickless.c | 6 +-- 4 files changed, 75 insertions(+), 19 deletions(-) diff --git a/arch/arm/src/samv7/Kconfig b/arch/arm/src/samv7/Kconfig index 6cb41c0304..7a7d75c840 100644 --- a/arch/arm/src/samv7/Kconfig +++ b/arch/arm/src/samv7/Kconfig @@ -1514,6 +1514,7 @@ endif # SAMV7_TC3 config SAMV7_ONESHOT bool "TC one-shot wrapper" + depends on SAMV7_FREERUN default n if !SCHED_TICKLESS default y if SCHED_TICKLESS ---help--- diff --git a/arch/arm/src/samv7/sam_oneshot.c b/arch/arm/src/samv7/sam_oneshot.c index 34fa89843e..76c4ee1a41 100644 --- a/arch/arm/src/samv7/sam_oneshot.c +++ b/arch/arm/src/samv7/sam_oneshot.c @@ -60,6 +60,7 @@ #include #include "sam_oneshot.h" +#include "sam_freerun.h" #ifdef CONFIG_SAMV7_ONESHOT @@ -124,10 +125,11 @@ static void sam_oneshot_handler(TC_HANDLE tch, void *arg, uint32_t sr) /* Forward the event, clearing out any vestiges */ - oneshot_handler = (oneshot_handler_t)oneshot->handler; - oneshot->handler = NULL; - oneshot_arg = (void *)oneshot->arg; - oneshot->arg = NULL; + oneshot_handler = (oneshot_handler_t)oneshot->handler; + oneshot->handler = NULL; + oneshot_arg = (void *)oneshot->arg; + oneshot->arg = NULL; + oneshot->start_count = 0; oneshot_handler(oneshot_arg); } @@ -224,10 +226,11 @@ int sam_oneshot_initialize(struct sam_oneshot_s *oneshot, int chan, * success. */ - oneshot->chan = chan; - oneshot->running = false; - oneshot->handler = NULL; - oneshot->arg = NULL; + oneshot->chan = chan; + oneshot->running = false; + oneshot->handler = NULL; + oneshot->arg = NULL; + oneshot->start_count = 0; return OK; } @@ -251,8 +254,8 @@ int sam_oneshot_initialize(struct sam_oneshot_s *oneshot, int chan, * ****************************************************************************/ -int sam_oneshot_start(struct sam_oneshot_s *oneshot, oneshot_handler_t handler, - void *arg, const struct timespec *ts) +int sam_oneshot_start(struct sam_oneshot_s *oneshot, struct sam_freerun_s *freerun, + oneshot_handler_t handler, void *arg, const struct timespec *ts) { uint64_t usec; uint64_t regval; @@ -270,7 +273,7 @@ int sam_oneshot_start(struct sam_oneshot_s *oneshot, oneshot_handler_t handler, /* Yes.. then cancel it */ tcvdbg("Already running... cancelling\n"); - (void)sam_oneshot_cancel(oneshot, NULL); + (void)sam_oneshot_cancel(oneshot, freerun, NULL); } /* Save the new handler and its argument */ @@ -309,6 +312,26 @@ int sam_oneshot_start(struct sam_oneshot_s *oneshot, oneshot_handler_t handler, sam_tc_start(oneshot->tch); + /* The function sam_tc_start() starts the timer/counter by setting the + * bits TC_CCR_CLKEN and TC_CCR_SWTRG in the channel control register. + * The first one enables the timer/counter the latter performs an + * software trigger, which starts the clock and sets the counter + * register to zero. This reset is performed with the next valid edge + * of the selected clock. Thus it can take up USEC_PER_TICK microseconds + * until the counter register becomes zero. + * + * If the timer is canceled within this period the counter register holds + * the counter value for the last timer/counter run. To circumvent this + * the counter value of the freerun timer/counter is stored at each start + * of the oneshot timer/counter. + * + * The function up_timer_gettime() could also be used for this but it takes + * too long. If up_timer_gettime() is called within this function the problem + * vanishes at least if compiled with no optimisation. + */ + + oneshot->start_count = sam_tc_getcounter(freerun->tch); + /* Enable interrupts. We should get the callback when the interrupt * occurs. */ @@ -343,7 +366,8 @@ int sam_oneshot_start(struct sam_oneshot_s *oneshot, oneshot_handler_t handler, * ****************************************************************************/ -int sam_oneshot_cancel(struct sam_oneshot_s *oneshot, struct timespec *ts) +int sam_oneshot_cancel(struct sam_oneshot_s *oneshot, struct sam_freerun_s *freerun, + struct timespec *ts) { irqstate_t flags; uint64_t usec; @@ -384,6 +408,17 @@ int sam_oneshot_cancel(struct sam_oneshot_s *oneshot, struct timespec *ts) count = sam_tc_getcounter(oneshot->tch); rc = sam_tc_getregister(oneshot->tch, TC_REGC); + /* In the case the timer/counter was canceled very short after its start, + * the counter register can hold the wrong value (the value of the last + * run). To prevent this the counter value is set to zero if not at + * least on tick passed since the start of the timer/counter. + */ + + if (count > 0 && sam_tc_getcounter(freerun->tch) == oneshot->start_count) + { + count = 0; + } + /* Now we can disable the interrupt and stop the timer. */ sam_tc_attach(oneshot->tch, NULL, NULL, 0); @@ -432,6 +467,14 @@ int sam_oneshot_cancel(struct sam_oneshot_s *oneshot, struct timespec *ts) usec = (((uint64_t)(rc - count)) * USEC_PER_SEC) / sam_tc_divfreq(oneshot->tch); + /* Each time the timer/counter is canceled the time calculated from + * the two registers (counter and REGC) is accurate up to an error + * between 0 and USEC_PER_TICK microseconds. To correct this error + * one tick which means USEC_PER_TICK microseconds are subtracted. + */ + + usec = usec > USEC_PER_TICK ? usec - USEC_PER_TICK : 0; + /* Return the time remaining in the correct form */ sec = usec / USEC_PER_SEC; diff --git a/arch/arm/src/samv7/sam_oneshot.h b/arch/arm/src/samv7/sam_oneshot.h index 62efde8047..25fb414c14 100644 --- a/arch/arm/src/samv7/sam_oneshot.h +++ b/arch/arm/src/samv7/sam_oneshot.h @@ -46,7 +46,7 @@ #include #include "sam_tc.h" - +#include "sam_freerun.h" #ifdef CONFIG_SAMV7_ONESHOT /**************************************************************************** @@ -82,6 +82,11 @@ struct sam_oneshot_s volatile oneshot_handler_t handler; /* Oneshot expiration callback */ volatile void *arg; /* The argument that will accompany * the callback */ + volatile uint32_t start_count; /* Stores the value of the freerun counter, + * at each start of the onshot timer. Is neccesary + * to find out if the onshot counter was updated + * correctly at the time of the call to + * sam_oneshot_cancel or not. */ }; /**************************************************************************** @@ -157,6 +162,9 @@ int sam_oneshot_max_delay(struct sam_oneshot_s *oneshot, uint64_t *usec); * oneshot Caller allocated instance of the oneshot state structure. This * structure must have been previously initialized via a call to * sam_oneshot_initialize(); + * freerun Caller allocated instance of the freerun state structure. This + * structure must have been previously initialized via a call to + * sam_freerun_initialize(); * handler The function to call when when the oneshot timer expires. * arg An opaque argument that will accompany the callback. * ts Provides the duration of the one shot timer. @@ -167,8 +175,8 @@ int sam_oneshot_max_delay(struct sam_oneshot_s *oneshot, uint64_t *usec); * ****************************************************************************/ -int sam_oneshot_start(struct sam_oneshot_s *oneshot, oneshot_handler_t handler, - void *arg, const struct timespec *ts); +int sam_oneshot_start(struct sam_oneshot_s *oneshot, struct sam_freerun_s *freerun, + oneshot_handler_t handler, void *arg, const struct timespec *ts); /**************************************************************************** * Name: sam_oneshot_cancel @@ -183,6 +191,9 @@ int sam_oneshot_start(struct sam_oneshot_s *oneshot, oneshot_handler_t handler, * oneshot Caller allocated instance of the oneshot state structure. This * structure must have been previously initialized via a call to * sam_oneshot_initialize(); + * freerun Caller allocated instance of the freerun state structure. This + * structure must have been previously initialized via a call to + * sam_freerun_initialize(); * ts The location in which to return the time remaining on the * oneshot timer. A time of zero is returned if the timer is * not running. @@ -194,7 +205,8 @@ int sam_oneshot_start(struct sam_oneshot_s *oneshot, oneshot_handler_t handler, * ****************************************************************************/ -int sam_oneshot_cancel(struct sam_oneshot_s *oneshot, struct timespec *ts); +int sam_oneshot_cancel(struct sam_oneshot_s *oneshot, struct sam_freerun_s *freerun, + struct timespec *ts); #undef EXTERN #ifdef __cplusplus diff --git a/arch/arm/src/samv7/sam_tickless.c b/arch/arm/src/samv7/sam_tickless.c index 33cbc948c1..3d1a7ad95a 100644 --- a/arch/arm/src/samv7/sam_tickless.c +++ b/arch/arm/src/samv7/sam_tickless.c @@ -363,8 +363,8 @@ int up_timer_gettime(FAR struct timespec *ts) int up_timer_cancel(FAR struct timespec *ts) { - return ONESHOT_INITIALIZED(&g_tickless.oneshot) ? - sam_oneshot_cancel(&g_tickless.oneshot, ts) : + return ONESHOT_INITIALIZED(&g_tickless.oneshot) && FREERUN_INITIALIZED(&g_tickless.freerun) ? + sam_oneshot_cancel(&g_tickless.oneshot, &g_tickless.freerun, ts) : -EAGAIN; } @@ -396,7 +396,7 @@ int up_timer_cancel(FAR struct timespec *ts) int up_timer_start(FAR const struct timespec *ts) { return ONESHOT_INITIALIZED(&g_tickless.oneshot) ? - sam_oneshot_start(&g_tickless.oneshot, sam_oneshot_handler, NULL, ts) : + sam_oneshot_start(&g_tickless.oneshot, &g_tickless.freerun, sam_oneshot_handler, NULL, ts) : -EAGAIN; } #endif /* CONFIG_SCHED_TICKLESS */ -- GitLab From b4354cf13053f62b118c89acb12f5152bb847689 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 27 May 2016 07:58:03 -0600 Subject: [PATCH 284/307] Stefan Kolb's change to the SAMV7 Oneshot Timer (commit d44ecbcfbb5f1739956d2d9c0b7787ddd27226c2) should also be applied to the SAMA5 oneshot time since the drivers are identical. Here are the commit commits from Stefan's original change: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit "This is a fix to a problem in the handling of the oneshot timer. Due to a wrong assumption concerning the behavior directly after the start of the timer/counter the function sam_oneshot_cancel(…) calculates the wrong remaining time. The code assumes that the counter register is zero directly after the start of the timer, but this is not true. To start the time/counter a software trigger is invoked, this trigger starts the timer/count and sets the counter register to zero, but the reset of the counter register is not performed instantly. According to the datasheet: “The counter can be reset by a trigger. In this case, the counter value passes to zero on the next valid edge of the selected clock.” Thus the counter is set to zero between 0 and USEC_PER_TICK microseconds after the clock was started. "In my fix I use the freerun count value to determine if at least one tick passed since the start of the timer and thus if the value of the oneshot counter is correct. I also tried to use the function up_timer_gettime(…) to achieve this but, at least if compiled with no optimization the problem vanishes without using the value of the function, the function call takes too long. "Another problem treated in the fix is that if the oneshot timer/counter is canceled, we only know the remaining time with a precision of USEC_PER_TICK microseconds. This means the calculated remaining time is between 0 and USEC_PER_TICK microseconds too long. To fix this I subtract one tick if the calculated remaining time is greater than one tick and otherwise set the remaining time to zero. By doing so the measured times are much more precise as without it." --- arch/arm/src/sama5/Kconfig | 1 + arch/arm/src/sama5/sam_oneshot.c | 67 +++++++++++++++++++++++++------ arch/arm/src/sama5/sam_oneshot.h | 20 +++++++-- arch/arm/src/sama5/sam_tickless.c | 6 +-- 4 files changed, 75 insertions(+), 19 deletions(-) diff --git a/arch/arm/src/sama5/Kconfig b/arch/arm/src/sama5/Kconfig index a60e9a00e8..b2701131bc 100644 --- a/arch/arm/src/sama5/Kconfig +++ b/arch/arm/src/sama5/Kconfig @@ -3866,6 +3866,7 @@ endif # SAMA5_TC2 config SAMA5_ONESHOT bool "TC one-shot wrapper" + depends on SAMA5_FREERUN default n if !SCHED_TICKLESS default y if SCHED_TICKLESS ---help--- diff --git a/arch/arm/src/sama5/sam_oneshot.c b/arch/arm/src/sama5/sam_oneshot.c index c86224155a..c6d0a79ef5 100644 --- a/arch/arm/src/sama5/sam_oneshot.c +++ b/arch/arm/src/sama5/sam_oneshot.c @@ -59,6 +59,7 @@ #include #include "sam_oneshot.h" +#include "sam_freerun.h" #ifdef CONFIG_SAMA5_ONESHOT @@ -123,10 +124,11 @@ static void sam_oneshot_handler(TC_HANDLE tch, void *arg, uint32_t sr) /* Forward the event, clearing out any vestiges */ - oneshot_handler = (oneshot_handler_t)oneshot->handler; - oneshot->handler = NULL; - oneshot_arg = (void *)oneshot->arg; - oneshot->arg = NULL; + oneshot_handler = (oneshot_handler_t)oneshot->handler; + oneshot->handler = NULL; + oneshot_arg = (void *)oneshot->arg; + oneshot->arg = NULL; + oneshot->start_count = 0; oneshot_handler(oneshot_arg); } @@ -223,10 +225,11 @@ int sam_oneshot_initialize(struct sam_oneshot_s *oneshot, int chan, * success. */ - oneshot->chan = chan; - oneshot->running = false; - oneshot->handler = NULL; - oneshot->arg = NULL; + oneshot->chan = chan; + oneshot->running = false; + oneshot->handler = NULL; + oneshot->arg = NULL; + oneshot->start_count = 0; return OK; } @@ -250,8 +253,8 @@ int sam_oneshot_initialize(struct sam_oneshot_s *oneshot, int chan, * ****************************************************************************/ -int sam_oneshot_start(struct sam_oneshot_s *oneshot, oneshot_handler_t handler, - void *arg, const struct timespec *ts) +int sam_oneshot_start(struct sam_oneshot_s *oneshot, struct sam_freerun_s *freerun, + oneshot_handler_t handler, void *arg, const struct timespec *ts) { uint64_t usec; uint64_t regval; @@ -269,7 +272,7 @@ int sam_oneshot_start(struct sam_oneshot_s *oneshot, oneshot_handler_t handler, /* Yes.. then cancel it */ tcvdbg("Already running... cancelling\n"); - (void)sam_oneshot_cancel(oneshot, NULL); + (void)sam_oneshot_cancel(oneshot, freerun, NULL); } /* Save the new handler and its argument */ @@ -308,6 +311,26 @@ int sam_oneshot_start(struct sam_oneshot_s *oneshot, oneshot_handler_t handler, sam_tc_start(oneshot->tch); + /* The function sam_tc_start() starts the timer/counter by setting the + * bits TC_CCR_CLKEN and TC_CCR_SWTRG in the channel control register. + * The first one enables the timer/counter the latter performs an + * software trigger, which starts the clock and sets the counter + * register to zero. This reset is performed with the next valid edge + * of the selected clock. Thus it can take up USEC_PER_TICK microseconds + * until the counter register becomes zero. + * + * If the timer is canceled within this period the counter register holds + * the counter value for the last timer/counter run. To circumvent this + * the counter value of the freerun timer/counter is stored at each start + * of the oneshot timer/counter. + * + * The function up_timer_gettime() could also be used for this but it takes + * too long. If up_timer_gettime() is called within this function the problem + * vanishes at least if compiled with no optimisation. + */ + + oneshot->start_count = sam_tc_getcounter(freerun->tch); + /* Enable interrupts. We should get the callback when the interrupt * occurs. */ @@ -342,7 +365,8 @@ int sam_oneshot_start(struct sam_oneshot_s *oneshot, oneshot_handler_t handler, * ****************************************************************************/ -int sam_oneshot_cancel(struct sam_oneshot_s *oneshot, struct timespec *ts) +int sam_oneshot_cancel(struct sam_oneshot_s *oneshot, struct sam_freerun_s *freerun, + struct timespec *ts) { irqstate_t flags; uint64_t usec; @@ -383,6 +407,17 @@ int sam_oneshot_cancel(struct sam_oneshot_s *oneshot, struct timespec *ts) count = sam_tc_getcounter(oneshot->tch); rc = sam_tc_getregister(oneshot->tch, TC_REGC); + /* In the case the timer/counter was canceled very short after its start, + * the counter register can hold the wrong value (the value of the last + * run). To prevent this the counter value is set to zero if not at + * least on tick passed since the start of the timer/counter. + */ + + if (count > 0 && sam_tc_getcounter(freerun->tch) == oneshot->start_count) + { + count = 0; + } + /* Now we can disable the interrupt and stop the timer. */ sam_tc_attach(oneshot->tch, NULL, NULL, 0); @@ -431,6 +466,14 @@ int sam_oneshot_cancel(struct sam_oneshot_s *oneshot, struct timespec *ts) usec = (((uint64_t)(rc - count)) * USEC_PER_SEC) / sam_tc_divfreq(oneshot->tch); + /* Each time the timer/counter is canceled the time calculated from + * the two registers (counter and REGC) is accurate up to an error + * between 0 and USEC_PER_TICK microseconds. To correct this error + * one tick which means USEC_PER_TICK microseconds are subtracted. + */ + + usec = usec > USEC_PER_TICK ? usec - USEC_PER_TICK : 0; + /* Return the time remaining in the correct form */ sec = usec / USEC_PER_SEC; diff --git a/arch/arm/src/sama5/sam_oneshot.h b/arch/arm/src/sama5/sam_oneshot.h index 4fefe9fe11..2e488d0d61 100644 --- a/arch/arm/src/sama5/sam_oneshot.h +++ b/arch/arm/src/sama5/sam_oneshot.h @@ -46,7 +46,7 @@ #include #include "sam_tc.h" - +#include "sam_freerun.h" #ifdef CONFIG_SAMA5_ONESHOT /**************************************************************************** @@ -82,6 +82,11 @@ struct sam_oneshot_s volatile oneshot_handler_t handler; /* Oneshot expiration callback */ volatile void *arg; /* The argument that will accompany * the callback */ + volatile uint32_t start_count; /* Stores the value of the freerun counter, + * at each start of the onshot timer. Is neccesary + * to find out if the onshot counter was updated + * correctly at the time of the call to + * sam_oneshot_cancel or not. */ }; /**************************************************************************** @@ -134,6 +139,9 @@ int sam_oneshot_initialize(struct sam_oneshot_s *oneshot, int chan, * oneshot Caller allocated instance of the oneshot state structure. This * structure must have been previously initialized via a call to * sam_oneshot_initialize(); + * freerun Caller allocated instance of the freerun state structure. This + * structure must have been previously initialized via a call to + * sam_freerun_initialize(); * handler The function to call when when the oneshot timer expires. * arg An opaque argument that will accompany the callback. * ts Provides the duration of the one shot timer. @@ -144,8 +152,8 @@ int sam_oneshot_initialize(struct sam_oneshot_s *oneshot, int chan, * ****************************************************************************/ -int sam_oneshot_start(struct sam_oneshot_s *oneshot, oneshot_handler_t handler, - void *arg, const struct timespec *ts); +int sam_oneshot_start(struct sam_oneshot_s *oneshot, struct sam_freerun_s *freerun, + oneshot_handler_t handler, void *arg, const struct timespec *ts); /**************************************************************************** * Name: sam_oneshot_cancel @@ -160,6 +168,9 @@ int sam_oneshot_start(struct sam_oneshot_s *oneshot, oneshot_handler_t handler, * oneshot Caller allocated instance of the oneshot state structure. This * structure must have been previously initialized via a call to * sam_oneshot_initialize(); + * freerun Caller allocated instance of the freerun state structure. This + * structure must have been previously initialized via a call to + * sam_freerun_initialize(); * ts The location in which to return the time remaining on the * oneshot timer. A time of zero is returned if the timer is * not running. @@ -171,7 +182,8 @@ int sam_oneshot_start(struct sam_oneshot_s *oneshot, oneshot_handler_t handler, * ****************************************************************************/ -int sam_oneshot_cancel(struct sam_oneshot_s *oneshot, struct timespec *ts); +int sam_oneshot_cancel(struct sam_oneshot_s *oneshot, struct sam_freerun_s *freerun, + struct timespec *ts); #undef EXTERN #ifdef __cplusplus diff --git a/arch/arm/src/sama5/sam_tickless.c b/arch/arm/src/sama5/sam_tickless.c index a785266a5d..70cecb1217 100644 --- a/arch/arm/src/sama5/sam_tickless.c +++ b/arch/arm/src/sama5/sam_tickless.c @@ -377,8 +377,8 @@ int up_timer_gettime(FAR struct timespec *ts) int up_timer_cancel(FAR struct timespec *ts) { - return ONESHOT_INITIALIZED(&g_tickless.oneshot) ? - sam_oneshot_cancel(&g_tickless.oneshot, ts) : + return ONESHOT_INITIALIZED(&g_tickless.oneshot) && FREERUN_INITIALIZED(&g_tickless.freerun) ? + sam_oneshot_cancel(&g_tickless.oneshot, &g_tickless.freerun, ts) : -EAGAIN; } @@ -410,7 +410,7 @@ int up_timer_cancel(FAR struct timespec *ts) int up_timer_start(FAR const struct timespec *ts) { return ONESHOT_INITIALIZED(&g_tickless.oneshot) ? - sam_oneshot_start(&g_tickless.oneshot, sam_oneshot_handler, NULL, ts) : + sam_oneshot_start(&g_tickless.oneshot, &g_tickless.freerun, sam_oneshot_handler, NULL, ts) : -EAGAIN; } #endif /* CONFIG_SCHED_TICKLESS */ -- GitLab From 7d538d19bf17f0ba7220414b7cdc43c280e4d8a9 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 27 May 2016 10:53:27 -0600 Subject: [PATCH 285/307] Costmetic changes to comments and style --- drivers/analog/Kconfig | 10 ++++++++++ include/nuttx/analog/adc.h | 15 +++++++-------- include/nuttx/i2c/i2c_master.h | 6 +++--- 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/drivers/analog/Kconfig b/drivers/analog/Kconfig index 5c68f518e7..20d99f8acb 100644 --- a/drivers/analog/Kconfig +++ b/drivers/analog/Kconfig @@ -11,6 +11,16 @@ config ADC not only Analog-to-Digital Converters (ADC) but also amplifiers and analog multiplexers. + This selection enables: + + - The upper half, device-independent ADC character driver, and + - Selection of common lower half ADC drivers. + + MCU-specific, lower half drivers may be selected independently of + CONFIG_ADC. However, if CONFIG_ADC is selected, then it is assume + that lower half ADC drivers will be used only with the commoun ADC + upper half driver. + if ADC config ADC_FIFOSIZE diff --git a/include/nuttx/analog/adc.h b/include/nuttx/analog/adc.h index f08687a5a4..0044c03364 100644 --- a/include/nuttx/analog/adc.h +++ b/include/nuttx/analog/adc.h @@ -1,10 +1,10 @@ /************************************************************************************ * include/nuttx/analog/adc.h * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. * Copyright (C) 2011 Li Zhuoyi. All rights reserved. * Author: Li Zhuoyi - * History: 0.1 2011-08-04 initial version - * 0.2 remove ao_read + * Gregory Nutt * * Derived from include/nuttx/can.h * @@ -186,11 +186,7 @@ struct adc_dev_s }; /************************************************************************************ - * Public Data - ************************************************************************************/ - -/************************************************************************************ - * Public Functions + * Public Function Prototypes ************************************************************************************/ #if defined(__cplusplus) @@ -201,6 +197,7 @@ extern "C" /************************************************************************************ * "Upper-Half" ADC Driver Interfaces ************************************************************************************/ + /************************************************************************************ * Name: adc_register * @@ -228,6 +225,7 @@ int adc_register(FAR const char *path, FAR struct adc_dev_s *dev); /************************************************************************************ * Platform-Independent "Lower Half" ADC Driver Interfaces ************************************************************************************/ + /************************************************************************************ * Name: up_ads1255initialize * @@ -236,7 +234,8 @@ int adc_register(FAR const char *path, FAR struct adc_dev_s *dev); * ************************************************************************************/ -FAR struct adc_dev_s *up_ads1255initialize(FAR struct spi_dev_s *spi, unsigned int devno); +FAR struct adc_dev_s *up_ads1255initialize(FAR struct spi_dev_s *spi, + unsigned int devno); #if defined(__cplusplus) } diff --git a/include/nuttx/i2c/i2c_master.h b/include/nuttx/i2c/i2c_master.h index 1938bcbfa1..c3684398ee 100644 --- a/include/nuttx/i2c/i2c_master.h +++ b/include/nuttx/i2c/i2c_master.h @@ -155,10 +155,10 @@ struct i2c_master_s; struct i2c_msg_s; struct i2c_ops_s { - int (*transfer)(FAR struct i2c_master_s *dev, FAR struct i2c_msg_s *msgs, - int count); + CODE int (*transfer)(FAR struct i2c_master_s *dev, + FAR struct i2c_msg_s *msgs, int count); #ifdef CONFIG_I2C_RESET - int (*reset)(FAR struct i2c_master_s *dev); + CODE int (*reset)(FAR struct i2c_master_s *dev); #endif }; -- GitLab From 5c6cd17d469f7a22cb072a8a08b411dff19ba331 Mon Sep 17 00:00:00 2001 From: Konstantin Berezenko Date: Fri, 27 May 2016 08:54:04 -0700 Subject: [PATCH 286/307] Add support for SPI 4 and 5 on stm32f411 chips --- arch/arm/include/stm32/chip.h | 4 ++-- arch/arm/src/stm32/chip/stm32f40xxx_pinmap.h | 8 +++++-- arch/arm/src/stm32/chip/stm32f40xxx_rcc.h | 24 +++++++++++++++----- 3 files changed, 26 insertions(+), 10 deletions(-) diff --git a/arch/arm/include/stm32/chip.h b/arch/arm/include/stm32/chip.h index 94e572b0ad..98d0073c50 100644 --- a/arch/arm/include/stm32/chip.h +++ b/arch/arm/include/stm32/chip.h @@ -1568,7 +1568,7 @@ # define STM32_NGTIMNDMA 3 /* 16-bit general timers TIM9-11 without DMA */ # define STM32_NBTIM 0 /* No basic timers */ # define STM32_NDMA 2 /* DMA1-2 with 8 streams each*/ -# define STM32_NSPI 4 /* SPI1-4 */ +# define STM32_NSPI 5 /* SPI1-5 */ # define STM32_NI2S 2 /* I2S1-2 (multiplexed with SPI2-3) */ # define STM32_NUSART 6 /* Actually only 3: USART1, 2 and 6 */ # define STM32_NI2C 3 /* I2C1-3 */ @@ -1606,7 +1606,7 @@ # define STM32_NGTIMNDMA 3 /* 16-bit general timers TIM9-11 without DMA */ # define STM32_NBTIM 0 /* No basic timers */ # define STM32_NDMA 2 /* DMA1-2 with 8 streams each*/ -# define STM32_NSPI 4 /* SPI1-4 */ +# define STM32_NSPI 5 /* SPI1-5 */ # define STM32_NI2S 2 /* I2S1-2 (multiplexed with SPI2-3) */ # define STM32_NUSART 6 /* Actually only 3: USART1, 2 and 6 */ # define STM32_NI2C 3 /* I2C1-3 */ diff --git a/arch/arm/src/stm32/chip/stm32f40xxx_pinmap.h b/arch/arm/src/stm32/chip/stm32f40xxx_pinmap.h index d8fbe7346c..c0f675aa02 100644 --- a/arch/arm/src/stm32/chip/stm32f40xxx_pinmap.h +++ b/arch/arm/src/stm32/chip/stm32f40xxx_pinmap.h @@ -628,7 +628,8 @@ #endif #if defined(CONFIG_STM32_STM32F427) || defined(CONFIG_STM32_STM32F429) || \ - defined(CONFIG_STM32_STM32F446) || defined(CONFIG_STM32_STM32F469) + defined(CONFIG_STM32_STM32F446) || defined(CONFIG_STM32_STM32F469) || \ + defined(CONFIG_STM32_STM32F411) # define GPIO_SPI4_MISO_1 (GPIO_ALT|GPIO_AF5|GPIO_SPEED_50MHz|GPIO_PORTE|GPIO_PIN5) # define GPIO_SPI4_MISO_2 (GPIO_ALT|GPIO_AF5|GPIO_SPEED_50MHz|GPIO_PORTE|GPIO_PIN13) # define GPIO_SPI4_MOSI_1 (GPIO_ALT|GPIO_AF5|GPIO_SPEED_50MHz|GPIO_PORTE|GPIO_PIN6) @@ -643,7 +644,7 @@ #endif #if defined(CONFIG_STM32_STM32F427) || defined(CONFIG_STM32_STM32F429) || \ - defined(CONFIG_STM32_STM32F469) + defined(CONFIG_STM32_STM32F469) || defined(CONFIG_STM32_STM32F411) # define GPIO_SPI5_MISO_1 (GPIO_ALT|GPIO_AF5|GPIO_SPEED_50MHz|GPIO_PORTF|GPIO_PIN8) # define GPIO_SPI5_MISO_2 (GPIO_ALT|GPIO_AF5|GPIO_SPEED_50MHz|GPIO_PORTH|GPIO_PIN7) # define GPIO_SPI5_MOSI_1 (GPIO_ALT|GPIO_AF5|GPIO_SPEED_50MHz|GPIO_PORTF|GPIO_PIN9) @@ -652,7 +653,10 @@ # define GPIO_SPI5_NSS_2 (GPIO_ALT|GPIO_AF5|GPIO_SPEED_50MHz|GPIO_PORTH|GPIO_PIN5) # define GPIO_SPI5_SCK_1 (GPIO_ALT|GPIO_AF5|GPIO_SPEED_50MHz|GPIO_PORTF|GPIO_PIN7) # define GPIO_SPI5_SCK_2 (GPIO_ALT|GPIO_AF5|GPIO_SPEED_50MHz|GPIO_PORTH|GPIO_PIN6) +#endif +#if defined(CONFIG_STM32_STM32F427) || defined(CONFIG_STM32_STM32F429) || \ + defined(CONFIG_STM32_STM32F469) # define GPIO_SPI6_MISO (GPIO_ALT|GPIO_AF5|GPIO_SPEED_50MHz|GPIO_PORTG|GPIO_PIN12) # define GPIO_SPI6_MOSI (GPIO_ALT|GPIO_AF5|GPIO_SPEED_50MHz|GPIO_PORTG|GPIO_PIN14) # define GPIO_SPI6_NSS (GPIO_ALT|GPIO_AF5|GPIO_SPEED_50MHz|GPIO_PORTG|GPIO_PIN8) diff --git a/arch/arm/src/stm32/chip/stm32f40xxx_rcc.h b/arch/arm/src/stm32/chip/stm32f40xxx_rcc.h index a81f798c18..cccbedbf50 100644 --- a/arch/arm/src/stm32/chip/stm32f40xxx_rcc.h +++ b/arch/arm/src/stm32/chip/stm32f40xxx_rcc.h @@ -356,7 +356,8 @@ #define RCC_APB2RSTR_SDIORST (1 << 11) /* Bit 11: SDIO reset */ #define RCC_APB2RSTR_SPI1RST (1 << 12) /* Bit 12: SPI1 reset */ #if defined(CONFIG_STM32_STM32F427) || defined(CONFIG_STM32_STM32F429) || \ - defined(CONFIG_STM32_STM32F446) || defined(CONFIG_STM32_STM32F469) + defined(CONFIG_STM32_STM32F446) || defined(CONFIG_STM32_STM32F469) || \ + defined(CONFIG_STM32_STM32F411) # define RCC_APB2RSTR_SPI4RST (1 << 13) /* Bit 13: SPI4 reset */ #endif #define RCC_APB2RSTR_SYSCFGRST (1 << 14) /* Bit 14: System configuration controller reset */ @@ -364,8 +365,11 @@ #define RCC_APB2RSTR_TIM10RST (1 << 17) /* Bit 17: TIM10 reset */ #define RCC_APB2RSTR_TIM11RST (1 << 18) /* Bit 18: TIM11 reset */ #if defined(CONFIG_STM32_STM32F427) || defined(CONFIG_STM32_STM32F429) || \ - defined(CONFIG_STM32_STM32F469) + defined(CONFIG_STM32_STM32F469) || defined(CONFIG_STM32_STM32F411) # define RCC_APB2RSTR_SPI5RST (1 << 20) /* Bit 20: SPI 5 reset */ +#endif +#if defined(CONFIG_STM32_STM32F427) || defined(CONFIG_STM32_STM32F429) || \ + defined(CONFIG_STM32_STM32F469) # define RCC_APB2RSTR_SPI6RST (1 << 21) /* Bit 21: SPI 6 reset */ #endif #if defined(CONFIG_STM32_STM32F427) || defined(CONFIG_STM32_STM32F429) || \ @@ -500,7 +504,8 @@ #define RCC_APB2ENR_SDIOEN (1 << 11) /* Bit 11: SDIO clock enable */ #define RCC_APB2ENR_SPI1EN (1 << 12) /* Bit 12: SPI1 clock enable */ #if defined(CONFIG_STM32_STM32F427) || defined(CONFIG_STM32_STM32F429) || \ - defined(CONFIG_STM32_STM32F446) || defined(CONFIG_STM32_STM32F469) + defined(CONFIG_STM32_STM32F446) || defined(CONFIG_STM32_STM32F469) || \ + defined(CONFIG_STM32_STM32F411) # define RCC_APB2ENR_SPI4EN (1 << 13) /* Bit 13: SPI4 clock enable */ #endif #define RCC_APB2ENR_SYSCFGEN (1 << 14) /* Bit 14: System configuration controller clock enable */ @@ -508,8 +513,11 @@ #define RCC_APB2ENR_TIM10EN (1 << 17) /* Bit 17: TIM10 clock enable */ #define RCC_APB2ENR_TIM11EN (1 << 18) /* Bit 18: TIM11 clock enable */ #if defined(CONFIG_STM32_STM32F427) || defined(CONFIG_STM32_STM32F429) || \ - defined(CONFIG_STM32_STM32F469) + defined(CONFIG_STM32_STM32F469) || defined(CONFIG_STM32_STM32F411) # define RCC_APB2ENR_SPI5EN (1 << 20) /* Bit 20: SPI5 clock enable */ +#endif +#if defined(CONFIG_STM32_STM32F427) || defined(CONFIG_STM32_STM32F429) || \ + defined(CONFIG_STM32_STM32F469) # define RCC_APB2ENR_SPI6EN (1 << 21) /* Bit 21: SPI6 clock enable */ #endif #if defined(CONFIG_STM32_STM32F427) || defined(CONFIG_STM32_STM32F429) || \ @@ -649,7 +657,8 @@ #define RCC_APB2LPENR_SDIOLPEN (1 << 11) /* Bit 11: SDIO clock enable during Sleep mode */ #define RCC_APB2LPENR_SPI1LPEN (1 << 12) /* Bit 12: SPI1 clock enable during Sleep mode */ #if defined(CONFIG_STM32_STM32F427) || defined(CONFIG_STM32_STM32F429) || \ - defined(CONFIG_STM32_STM32F446) || defined(CONFIG_STM32_STM32F469) + defined(CONFIG_STM32_STM32F446) || defined(CONFIG_STM32_STM32F469) || \ + defined(CONFIG_STM32_STM32F411) # define RCC_APB2LPENR_SPI4LPEN (1 << 13) /* Bit 13: SPI4 clock enable during Sleep mode */ #endif #define RCC_APB2LPENR_SYSCFGLPEN (1 << 14) /* Bit 14: System configuration controller clock enable during Sleep mode */ @@ -657,8 +666,11 @@ #define RCC_APB2LPENR_TIM10LPEN (1 << 17) /* Bit 17: TIM10 clock enable during Sleep mode */ #define RCC_APB2LPENR_TIM11LPEN (1 << 18) /* Bit 18: TIM11 clock enable during Sleep mode */ #if defined(CONFIG_STM32_STM32F427) || defined(CONFIG_STM32_STM32F429) || \ - defined(CONFIG_STM32_STM32F469) + defined(CONFIG_STM32_STM32F469) || defined(CONFIG_STM32_STM32F411) # define RCC_APB2LPENR_SPI5LPEN (1 << 20) /* Bit 20: SPI5 clock enable during Sleep mode */ +#endif +#if defined(CONFIG_STM32_STM32F427) || defined(CONFIG_STM32_STM32F429) || \ + defined(CONFIG_STM32_STM32F469) # define RCC_APB2LPENR_SPI6LPEN (1 << 21) /* Bit 21: SPI6 clock enable during Sleep mode */ #endif #if defined(CONFIG_STM32_STM32F427) || defined(CONFIG_STM32_STM32F429) || \ -- GitLab From 607dd3bec545a67ec579950881f4e9d69d591d98 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Fri, 27 May 2016 14:43:33 -0600 Subject: [PATCH 287/307] Spell check TODO list --- TODO | 53 ++++++++++++++++++++++++++--------------------------- 1 file changed, 26 insertions(+), 27 deletions(-) diff --git a/TODO b/TODO index 290dc13ef4..3bb3d4aaaa 100644 --- a/TODO +++ b/TODO @@ -1,11 +1,11 @@ -NuttX TODO List (Last updated March 31, 2016) +NuttX TODO List (Last updated May 27, 2016) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This file summarizes known NuttX bugs, limitations, inconsistencies with standards, things that could be improved, and ideas for enhancements. This TODO list does not include issues associated with individual boar ports. See -altheso individual README.txt files in the configs/ sub-directories for -issues reated to each board port. +also the individual README.txt files in the configs/ sub-directories for +issues related to each board port. nuttx/ @@ -70,7 +70,7 @@ o Task/Scheduler (sched/) Title: GET_ENVIRON_PTR() Description: get_environ_ptr() (sched/sched_getenvironptr.c) is not implemented. The representation of the environment strings selected for - NutX is not compatible with the operation. Some significant + NuttX is not compatible with the operation. Some significant re-design would be required to implement this function and that effort is thought to be not worth the result. Status: Open. No change is planned. @@ -81,7 +81,7 @@ o Task/Scheduler (sched/) Status: Open Priority: Low -- There is no plan to implement this. - Title: INCOMPATIBILITES WITH execv() AND execl() + Title: INCOMPATIBILITIES WITH execv() AND execl() Description: Simplified 'execl()' and 'execv()' functions are provided by NuttX. NuttX does not support processes and hence the concept of overlaying a tasks process image with a new process image @@ -175,7 +175,7 @@ o Task/Scheduler (sched/) Yahoo! Groups message 7726: "I think that the system should be required to handle pthread_cancel safely in all cases. In the NuttX model, a task is like a Unix - process and a pthread is like a Unix thread. Cancelling + process and a pthread is like a Unix thread. Canceling threads should always be safe (or at least as unsafe) as under Unix because the model is complete for pthreads... @@ -188,7 +188,7 @@ o Task/Scheduler (sched/) "The patch I just incorporated is also insufficient. It works only if the serial driver is shut down when the - thread is cancelled. But what if there are other open + thread is canceled. But what if there are other open references to the driver? Then the driver will not be shut down, the semaphores will not be re-initialized, and the semaphore counts will still be off by one. @@ -202,7 +202,7 @@ o Task/Scheduler (sched/) hooks so that given a semaphore it can traverse all holders. What is needed would be logic so that given a task, you can traverse all semaphores held by the task, - releasing each semaphore cound held by the exiting task. + releasing each semaphore count held by the exiting task. Nothing like this exists now so that solution is not imminent. @@ -228,16 +228,15 @@ o Task/Scheduler (sched/) hidden behind simple accessor functions and so the internal data structures can be changed if need with very little impact. - - Explicity refereence to the list strucutre are hidden behnid + Explicitly reference to the list structure are hidden behind the macro this_task(). Status: Open Priority: Low. Things are just the way that we want them for the way that NuttX is used today. -o Memory Managment (mm/) - ^^^^^^^^^^^^^^^^^^^^^^ +o Memory Management (mm/) + ^^^^^^^^^^^^^^^^^^^^^^^ Title: FREE MEMORY ON TASK EXIT Description: Add an option to free all memory allocated by a task when the @@ -390,7 +389,7 @@ o pthreads (sched/pthreads) Priority: Low -- about zero, probably not that useful. Priority inheritance is already supported and is a much better solution. And it turns out that priority protection is just about as complex as priority inheritance. - Exerpted from my post in a Linked-In discussion: + Excerpted from my post in a Linked-In discussion: "I started to implement this HLS/"PCP" semaphore in an RTOS that I work with (http://www.nuttx.org) and I discovered after doing the @@ -784,7 +783,7 @@ o Binary loaders (binfmt/) to get fixed as needed for Windows native tool builds. Title: TOOLCHAIN COMPATIBILITY PROBLEM - Descripton: The older 4.3.3 compiler generates GOTOFF relocations to the constant + Description: The older 4.3.3 compiler generates GOTOFF relocations to the constant strings, like: .L3: @@ -794,7 +793,7 @@ o Binary loaders (binfmt/) .word .LC3(GOTOFF) .word .LC4(GOTOFF) - Where .LC0, LC1, LC2, LC3, and .LC4 are the labels correponding to strings in + Where .LC0, LC1, LC2, LC3, and .LC4 are the labels corresponding to strings in the .rodata.str1.1 section. One consequence of this is that .rodata must reside in D-Space since it will addressed relative to the GOT (see the section entitled "Read-Only Data in RAM" at @@ -880,7 +879,7 @@ o Network (net/, drivers/net) RFC3678 (IGMPv3) suggests ioctl() commands to do this (SIOCSIPMSFILTER) but also status that those APIs are historic. NuttX implements these ioctl commands, but is non-standard because: (1) It does not support IGMPv3, and - (2) it looks up drivers by their device name (eg., "eth0") vs IP address. + (2) it looks up drivers by their device name (e.g., "eth0") vs IP address. Linux uses setsockopt() to control multicast group membership using the IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP options. It also looks up drivers @@ -896,7 +895,7 @@ o Network (net/, drivers/net) that connection may time out. How should this be handled? Should the connection be removed from the backlog if it is times out or is closed? Or should it remain in the backlog with a status indication so that accept() - can fail when it encounteres the invalid connection? + can fail when it encounters the invalid connection? Status: Open Priority: Medium. Important on slow applications that will not accept connections promptly. @@ -975,7 +974,7 @@ o Network (net/, drivers/net) it is no longer needed. Perhaps there should be a delayed call to unlink() (using a watchdog or the work queue). If the driver is re-opened, the delayed unlink could be - cancelled? Needs more thought. + canceled? Needs more thought. NOTE: This is not an issue for Unix domain streams sockets: The end-of-life of the FIFO is well determined when sockets are disconnected and support for that case is fully implemented. @@ -1020,7 +1019,7 @@ o USB (drivers/usbdev, drivers/usbhost) that involves delays. This needs to be redesigned to eliminate these delays. See logic conditioned on CONFIG_USBMSC_RACEWAR. - If queuing of stall requests is supported by DCD then this workaround + If queuing of stall requests is supported by the DCD then this workaround is not required. In this case, (1) the stall is not sent until all write requests preceding the stall request are sent, (2) the stall is sent, and then after the stall is cleared, (3) all write requests @@ -1135,7 +1134,7 @@ o USB (drivers/usbdev, drivers/usbhost) Priority: Medium-Low Title: USB CDC/ACM HOST CLASS DRIVER - Desciption: A CDC/ACM host class driver has been added. This has been + Description: A CDC/ACM host class driver has been added. This has been testing by running the USB CDC/ACM host on an Olimex LPC1766STK and using the configs/stm3210e-eval/usbserial configuration (using the CDC/ACM device side driver). There @@ -1374,7 +1373,7 @@ o File system / Generic drivers (fs/, drivers/) Priority: Medium Title: UNIFIED DESCRIPTOR REPRESENTATION - Descripton: There are two separate ranges of descriptors for file and + Description: There are two separate ranges of descriptors for file and socket descriptors: if a descriptor is in one range then it is recognized as a file descriptor; if it is in another range then it is recognized as a socket descriptor. These separate @@ -1410,7 +1409,7 @@ o File system / Generic drivers (fs/, drivers/) Status: Open Priority: Low - Title: FAT LONG FILENAME COMPATIBILTY + Title: FAT LONG FILENAME COMPATIBILITY Description: Recently there have been reports that file with long file names created by NuttX don't have long file names when viewed on Windows. The long file name support has been around for a @@ -1423,7 +1422,7 @@ o File system / Generic drivers (fs/, drivers/) Description: I have seen cases where (1) long file names are enabled, but (2) a short file name is created like: - nsh> echo "This is another thest" >/mnt/sdcard/another.txt + nsh> echo "This is another test" >/mnt/sdcard/another.txt But then on subsequent 'ls' operations, the file does not appear: @@ -1472,7 +1471,7 @@ o File system / Generic drivers (fs/, drivers/) 4) When comparing the checksum in the long file name entry with the checksum of the short file name, the - checksum fails and the entire directlry sequence is + checksum fails and the entire directory sequence is ignored by readder() logic. This the file does not appear in the 'ls'. @@ -1539,7 +1538,7 @@ o Graphics subsystem (graphics/) Priority: Low, the need has not yet arisen. Title: PER-WINDOW FRAMEBUFFERS - Description: One of the most awkard things to handle in the NX windowing + Description: One of the most awkward things to handle in the NX windowing system is the re-draw callback. This is difficult because it requires ad hoc, custom logic to be able to do the redrawing in most cases. @@ -1765,7 +1764,7 @@ o ARM (arch/arm/) But this has not been proven to be a solution. - UPDATE: Other ARM architectures have a similer issue. + UPDATE: Other ARM architectures have a similar issue. Status: Open Priority: Low. The conditions of continuous interrupts is really the problem. @@ -1823,7 +1822,7 @@ o NuttShell (NSH) (apps/nshlib) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Title: IFCONFIG AND MULTIPLE NETWORK INTERFACES - Descripton: The ifconfig command will not behave correctly if an interface + Description: The ifconfig command will not behave correctly if an interface is provided and there are multiple interfaces. It should only show status for the single interface on the command line; it will still show status for all interfaces. -- GitLab From ceaad0f3397ab496a412b2d65e389dbc00d8feb9 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 28 May 2016 12:22:35 -0600 Subject: [PATCH 288/307] Upate TODO list --- TODO | 78 ++++++++++++++++++++++++++++++++---------------------------- 1 file changed, 41 insertions(+), 37 deletions(-) diff --git a/TODO b/TODO index 3bb3d4aaaa..eeb3e6d29d 100644 --- a/TODO +++ b/TODO @@ -1,4 +1,4 @@ -NuttX TODO List (Last updated May 27, 2016) +NuttX TODO List (Last updated May 28, 2016) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This file summarizes known NuttX bugs, limitations, inconsistencies with @@ -7,14 +7,14 @@ TODO list does not include issues associated with individual boar ports. See also the individual README.txt files in the configs/ sub-directories for issues related to each board port. -nuttx/ +nuttx/: (13) Task/Scheduler (sched/) (1) Memory Management (mm/) (3) Signals (sched/signal, arch/) (2) pthreads (sched/pthread) (0) Message Queues (sched/mqueue) - (8) Kernel/Protected Build + (9) Kernel/Protected Build (3) C++ Support (6) Binary loaders (binfmt/) (12) Network (net/, drivers/net) @@ -23,16 +23,16 @@ nuttx/ (11) Libraries (libc/, libm/) (11) File system/Generic drivers (fs/, drivers/) (8) Graphics subsystem (graphics/) - (1) Pascal add-on (pcode/) (1) Build system / Toolchains - (4) Linux/Cywgin simulation (arch/sim) + (3) Linux/Cywgin simulation (arch/sim) (4) ARM (arch/arm/) -apps/ +apps/ and other Add-Ons: (3) Network Utilities (apps/netutils/) (2) NuttShell (NSH) (apps/nshlib) (1) System libraries apps/system (apps/system) + (1) Pascal add-on (pcode/) (4) Other Applications & Tests (apps/examples/) o Task/Scheduler (sched/) @@ -588,8 +588,21 @@ o Kernel/Protected Build interrupt level callbacks into applications. This, of course, will never work in anything but a non-secure, flat build. Status: Open - Priority: Medium. The driver is only usable with all of its features in a FLAT build. - + Priority: Medium. The driver is only usable with all of its features + in a FLAT build. + + Title: USER MODE TASKS CAN MODIFY PRIVILEGED TASKS + Description: Certain interfaces, such as sched_setparam(), + sched_setscheduler(), etc. can be used by user mode tasks to + modify the behavior of priviledged kernel threads. + task_delete() could even be used to kill a kernel thread. + For a truly secure system. Privileges need to be checked in + every interface that permits one thread to modify the + properties of another thread. + Status: Open + Priority: Low for most embedded systems but would be a critical need if + NuttX were used in a secure system. + o C++ Support ^^^^^^^^^^^ @@ -1566,26 +1579,6 @@ o Graphics subsystem (graphics/) Priority: Low, not a serious issue but worth noting. There is no plan to change this behavior. -o Pascal Add-On (pcode/) - ^^^^^^^^^^^^^^^^^^^^^^ - - Title: P-CODES IN MEMORY UNTESTED - Description: Need APIs to verify execution of P-Code from memory buffer. - Status: Open - Priority: Low - - Title: SMALLER LOADER AND OBJECT FORMAT - Description: Loader and object format may be too large for some small - memory systems. Consider ways to reduce memory footprint. - Status: Open - Priority: Medium - - Title: PDBG - Description: Move the the pascal p-code debugger into the NuttX apps/ tree - where it can be used from the NSH command line. - Status: Open - Priority: Low - o Build system ^^^^^^^^^^^^ @@ -1608,15 +1601,6 @@ o Other drivers (drivers/) o Linux/Cywgin simulation (arch/sim) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Title: SIMULATOR NETWORKING SUPPORT - Description: I never did get networking to work on the sim Linux target. On Linux, - it tries to use the tap device (/dev/net/tun) to emulate an Ethernet - NIC, but I never got it correctly integrated with the NuttX networking. - NOTE: On Cygwin, the build uses the Cygwin WPCAP library and is, at - least, partially functional (it has never been rigorously tested). - Status: Open - Priority: Low (unless you want to test networking features on the simulation). - Title: SIMULATOR HAS NO INTERRUPTS (NON-PREMPTIBLE) Description: The current simulator implementation is has no interrupts and, hence, is non-preemptible. Also, without simulated interrupt, there can @@ -1847,6 +1831,26 @@ o System libraries apps/system (apps/system) Priority: Low (unless you are using mixed C-buffered I/O with readline and fgetc, for example). +o Pascal Add-On (pcode/) + ^^^^^^^^^^^^^^^^^^^^^^ + + Title: P-CODES IN MEMORY UNTESTED + Description: Need APIs to verify execution of P-Code from memory buffer. + Status: Open + Priority: Low + + Title: SMALLER LOADER AND OBJECT FORMAT + Description: Loader and object format may be too large for some small + memory systems. Consider ways to reduce memory footprint. + Status: Open + Priority: Medium + + Title: PDBG + Description: Move the the pascal p-code debugger into the NuttX apps/ tree + where it can be used from the NSH command line. + Status: Open + Priority: Low + o Other Applications & Tests (apps/examples/) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -- GitLab From 13b53d87a9415f4e284a844ca4bc7fa9c7ea907b Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 28 May 2016 12:23:05 -0600 Subject: [PATCH 289/307] i.MX6: Add ECSPI header file --- arch/arm/src/imx1/imx_cspi.h | 4 +- arch/arm/src/imx6/chip/imx_ecspi.h | 344 +++++++++++++++++++++++++++++ 2 files changed, 346 insertions(+), 2 deletions(-) create mode 100644 arch/arm/src/imx6/chip/imx_ecspi.h diff --git a/arch/arm/src/imx1/imx_cspi.h b/arch/arm/src/imx1/imx_cspi.h index 4a43e55469..842a4ca111 100644 --- a/arch/arm/src/imx1/imx_cspi.h +++ b/arch/arm/src/imx1/imx_cspi.h @@ -74,7 +74,7 @@ #define IMX_CSPI1_SPIDMA (IMX_CSPI1_VBASE + CSPI_DMA_OFFSET) #define IMX_CSPI1_SPIRESET (IMX_CSPI1_VBASE + CSPI_RESET_OFFSET) -/* CSPI1 */ +/* CSPI2 */ #define IMX_CSPI2_RXD (IMX_CSPI2_VBASE + CSPI_RXD_OFFSET) #define IMX_CSPI2_TXD (IMX_CSPI2_VBASE + CSPI_TXD_OFFSET) @@ -138,7 +138,7 @@ /* CSPI Sample Period Control Register */ #define CSPI_SPCR_WAIT_SHIFT 0 -#define CSPI_SPCR_WAIT_MASK (0x7ff << CSPI_CTRL_DATARATE_SHIFT) +#define CSPI_SPCR_WAIT_MASK (0x7ff << CSPI_SPCR_WAIT_SHIFT) #define CSPI_SPCR_CSRC (1 << 15) /* Bit 15: 1:32768 or 32 kHz clock source */ /* CSPI DMA Control Register */ diff --git a/arch/arm/src/imx6/chip/imx_ecspi.h b/arch/arm/src/imx6/chip/imx_ecspi.h new file mode 100644 index 0000000000..c6a568786f --- /dev/null +++ b/arch/arm/src/imx6/chip/imx_ecspi.h @@ -0,0 +1,344 @@ +/************************************************************************************ + * arch/arm/src/imx6/imx_ecspi.h + * + * Copyright (C) 2009-2010, 2015-2016 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ************************************************************************************/ + +#ifndef __ARCH_ARM_IMX6_ECSPI_H +#define __ARCH_ARM_IMX6_ECSPI_H + +/************************************************************************************ + * Included Files + ************************************************************************************/ + +#ifndef __ASSEMBLY__ +# include +# include +# include +#endif + +/************************************************************************************ + * Pre-processor Definitions + ************************************************************************************/ + +/* ECSPI Register Offsets ***********************************************************/ + +#define ECSPI_RXDATA_OFFSET 0x0000 /* Receive Data Register */ +#define ECSPI_TXDATA_OFFSET 0x0004 /* Transmit Data Register */ +#define ECSPI_CONREG_OFFSET 0x0008 /* Control Register */ +#define ECSPI_CONFIGREG_OFFSET 0x000c /* Configuration Register */ +#define ECSPI_INTREG_OFFSET 0x0010 /* Interrupt Control Register */ +#define ECSPI_DMAREG_OFFSET 0x0014 /* DMA Control Register */ +#define ECSPI_STATREG_OFFSET 0x0018 /* Status Register */ +#define ECSPI_PERIODREG_OFFSET 0x001c /* Sample Period Control Register */ +#define ECSPI_TESTREG_OFFSET 0x0020 /* Test Control Register */ +#define ECSPI_MSGDATA_OFFSET 0x0040 /* Message Data Register */ + +/* ECSPI Register Addresses *********************************************************/ + +/* ECSPI1 */ + +#define IMX_ECSPI1_RXDATA (IMX_ECSPI1_VBASE + ECSPI_RXDATA_OFFSET) +#define IMX_ECSPI1_TXDATA (IMX_ECSPI1_VBASE + ECSPI_TXDATA_OFFSET) +#define IMX_ECSPI1_CONREG (IMX_ECSPI1_VBASE + ECSPI_CONREG_OFFSET) +#define IMX_ECSPI1_CONFIGREG (IMX_ECSPI1_VBASE + ECSPI_CONFIGREG_OFFSET) +#define IMX_ECSPI1_INTREG (IMX_ECSPI1_VBASE + ECSPI_INTREG_OFFSET) +#define IMX_ECSPI1_DMAREG (IMX_ECSPI1_VBASE + ECSPI_DMAREG_OFFSET) +#define IMX_ECSPI1_STATREG (IMX_ECSPI1_VBASE + ECSPI_STATREG_OFFSET) +#define IMX_ECSPI1_PERIODREG (IMX_ECSPI1_VBASE + ECSPI_PERIODREG_OFFSET) +#define IMX_ECSPI1_TESTREG (IMX_ECSPI1_VBASE + ECSPI_TESTREG_OFFSET) +#define IMX_ECSPI1_MSGDATA (IMX_ECSPI1_VBASE + ECSPI_MSGDATA_OFFSET) + +/* ECSPI2 */ + +#define IMX_ECSPI2_RXDATA (IMX_ECSPI2_VBASE + ECSPI_RXDATA_OFFSET) +#define IMX_ECSPI2_TXDATA (IMX_ECSPI2_VBASE + ECSPI_TXDATA_OFFSET) +#define IMX_ECSPI2_CONREG (IMX_ECSPI2_VBASE + ECSPI_CONREG_OFFSET) +#define IMX_ECSPI2_CONFIGREG (IMX_ECSPI2_VBASE + ECSPI_CONFIGREG_OFFSET) +#define IMX_ECSPI2_INTREG (IMX_ECSPI2_VBASE + ECSPI_INTREG_OFFSET) +#define IMX_ECSPI2_DMAREG (IMX_ECSPI2_VBASE + ECSPI_DMAREG_OFFSET) +#define IMX_ECSPI2_STATREG (IMX_ECSPI2_VBASE + ECSPI_STATREG_OFFSET) +#define IMX_ECSPI2_PERIODREG (IMX_ECSPI2_VBASE + ECSPI_PERIODREG_OFFSET) +#define IMX_ECSPI2_TESTREG (IMX_ECSPI2_VBASE + ECSPI_TESTREG_OFFSET) +#define IMX_ECSPI2_MSGDATA (IMX_ECSPI2_VBASE + ECSPI_MSGDATA_OFFSET) + +/* ECSPI3 */ + +#define IMX_ECSPI3_RXDATA (IMX_ECSPI3_VBASE + ECSPI_RXDATA_OFFSET) +#define IMX_ECSPI3_TXDATA (IMX_ECSPI3_VBASE + ECSPI_TXDATA_OFFSET) +#define IMX_ECSPI3_CONREG (IMX_ECSPI3_VBASE + ECSPI_CONREG_OFFSET) +#define IMX_ECSPI3_CONFIGREG (IMX_ECSPI3_VBASE + ECSPI_CONFIGREG_OFFSET) +#define IMX_ECSPI3_INTREG (IMX_ECSPI3_VBASE + ECSPI_INTREG_OFFSET) +#define IMX_ECSPI3_DMAREG (IMX_ECSPI3_VBASE + ECSPI_DMAREG_OFFSET) +#define IMX_ECSPI3_STATREG (IMX_ECSPI3_VBASE + ECSPI_STATREG_OFFSET) +#define IMX_ECSPI3_PERIODREG (IMX_ECSPI3_VBASE + ECSPI_PERIODREG_OFFSET) +#define IMX_ECSPI3_TESTREG (IMX_ECSPI3_VBASE + ECSPI_TESTREG_OFFSET) +#define IMX_ECSPI3_MSGDATA (IMX_ECSPI3_VBASE + ECSPI_MSGDATA_OFFSET) + +/* ECSPI4 */ + +#define IMX_ECSPI4_RXDATA (IMX_ECSPI4_VBASE + ECSPI_RXDATA_OFFSET) +#define IMX_ECSPI4_TXDATA (IMX_ECSPI4_VBASE + ECSPI_TXDATA_OFFSET) +#define IMX_ECSPI4_CONREG (IMX_ECSPI4_VBASE + ECSPI_CONREG_OFFSET) +#define IMX_ECSPI4_CONFIGREG (IMX_ECSPI4_VBASE + ECSPI_CONFIGREG_OFFSET) +#define IMX_ECSPI4_INTREG (IMX_ECSPI4_VBASE + ECSPI_INTREG_OFFSET) +#define IMX_ECSPI4_DMAREG (IMX_ECSPI4_VBASE + ECSPI_DMAREG_OFFSET) +#define IMX_ECSPI4_STATREG (IMX_ECSPI4_VBASE + ECSPI_STATREG_OFFSET) +#define IMX_ECSPI4_PERIODREG (IMX_ECSPI4_VBASE + ECSPI_PERIODREG_OFFSET) +#define IMX_ECSPI4_TESTREG (IMX_ECSPI4_VBASE + ECSPI_TESTREG_OFFSET) +#define IMX_ECSPI4_MSGDATA (IMX_ECSPI4_VBASE + ECSPI_MSGDATA_OFFSET) + +/* ECSPI5 */ + +#define IMX_ECSPI5_RXDATA (IMX_ECSPI5_VBASE + ECSPI_RXDATA_OFFSET) +#define IMX_ECSPI5_TXDATA (IMX_ECSPI5_VBASE + ECSPI_TXDATA_OFFSET) +#define IMX_ECSPI5_CONREG (IMX_ECSPI5_VBASE + ECSPI_CONREG_OFFSET) +#define IMX_ECSPI5_CONFIGREG (IMX_ECSPI5_VBASE + ECSPI_CONFIGREG_OFFSET) +#define IMX_ECSPI5_INTREG (IMX_ECSPI5_VBASE + ECSPI_INTREG_OFFSET) +#define IMX_ECSPI5_DMAREG (IMX_ECSPI5_VBASE + ECSPI_DMAREG_OFFSET) +#define IMX_ECSPI5_STATREG (IMX_ECSPI5_VBASE + ECSPI_STATREG_OFFSET) +#define IMX_ECSPI5_PERIODREG (IMX_ECSPI5_VBASE + ECSPI_PERIODREG_OFFSET) +#define IMX_ECSPI5_TESTREG (IMX_ECSPI5_VBASE + ECSPI_TESTREG_OFFSET) +#define IMX_ECSPI5_MSGDATA (IMX_ECSPI5_VBASE + ECSPI_MSGDATA_OFFSET) + +/* ECSPI Register Bit Definitions ***************************************************/ + +/* Control Register */ + +#define ECSPI_CONREG_EN (1 << 0) /* Bit 0: SPI Block enable control */ +#define ECSPI_CONREG_HT (1 << 1) /* Bit 1: Hardware trigger enable */ +#define ECSPI_CONREG_XCH (1 << 2) /* Bit 2: SPI Exchange bit */ +#define ECSPI_CONREG_SMC (1 << 3) /* Bit 3: Start mode control */ +#define ECSPI_CONREG_CHMODE_SHIFT (4) /* Bits 4-7: SPI Channel mode */ +#define ECSPI_CONREG_CHMODE_MASK (15 << ECSPI_CONREG_CHMODE_SHIFT) +# define ECSPI_CONREG_CH0MASTER (1 << ECSPI_CONREG_CHMODE_SHIFT) /* Channel 0 master mode */ +# define ECSPI_CONREG_CH1MASTER (2 << ECSPI_CONREG_CHMODE_SHIFT) /* Channel 1 master mode */ +# define ECSPI_CONREG_CH2MASTER (4 << ECSPI_CONREG_CHMODE_SHIFT) /* Channel 2 master mode */ +# define ECSPI_CONREG_CH3MASTER (8 << ECSPI_CONREG_CHMODE_SHIFT) /* Channel 3 master mode */ +#define ECSPI_CONREG_POSTDIV_SHIFT (8) /* Bits 8-11: SPI Post divider */ +#define ECSPI_CONREG_POSTDIV_MASK (15 << ECSPI_CONREG_POSTDIV_SHIFT) +# define ECSPI_CONREG_POSTDIV(n) ((uint32_t)(n) << ECSPI_CONREG_POSTDIV_SHIFT) +#define ECSPI_CONREG_PREDIV_SHIFT (12) /* Bits 12-15: SPI Pre divider */ +#define ECSPI_CONREG_PREDIV_MASK (15 << ECSPI_CONREG_PREDIV_SHIFT) +# define ECSPI_CONREG_PREDIV(n) ((uint32_t)(n) << ECSPI_CONREG_PREDIV_SHIFT) +#define ECSPI_CONREG_DRCTL_SHIFT 16 /* Bits 16-17: SPI Data ready control */ +#define ECSPI_CONREG_DRCTL_MASK (3 << ECSPI_CONREG_DRCTL_SHIFT) +# define ECSPI_CONREG_DRCTL_IGNRDY (0 << ECSPI_CONREG_DRCTL_SHIFT) +# define ECSPI_CONREG_DRCTL_FALLING (1 << ECSPI_CONREG_DRCTL_SHIFT) +# define ECSPI_CONREG_DRCTL_ACTVLOW (2 << ECSPI_CONREG_DRCTL_SHIFT) +#define ECSPI_CONREG_CHSEL_SHIFT (18) /* Bits 18-19: SPI Channel select bits */ +#define ECSPI_CONREG_CHSEL_MASK (3 << ECSPI_CONREG_CHSEL_SHIFT) +# define ECSPI_CONREG_CHSEL_SS0 (0 << ECSPI_CONREG_CHSEL_SHIFT) /* Channel 0 select (SS0) */ +# define ECSPI_CONREG_CHSEL_SS1 (1 << ECSPI_CONREG_CHSEL_SHIFT) /* Channel 1 select (SS1) */ +# define ECSPI_CONREG_CHSEL_SS2 (2 << ECSPI_CONREG_CHSEL_SHIFT) /* Channel 2 select (SS2) */ +# define ECSPI_CONREG_CHSEL_SS3 (3 << ECSPI_CONREG_CHSEL_SHIFT) /* Channel 3 select (SS3) */ +#define ECSPI_CONREG_BURSTLEN_SHIFT (20) /* Bits 20-31: Burst length */ +#define ECSPI_CONREG_BURSTLEN_MASK (0xfff << ECSPI_CONREG_BURSTLEN_SHIFT) +# define ECSPI_CONREG_BURSTLEN(n) ((uint32_t)(n) << ECSPI_CONREG_BURSTLEN_SHIFT) + +/* Configuration Register */ + +#define ECSPI_CONFIGREG_SCLKPHA_SHIFT (0) /* Bits 0-3: SPI Clock/Data Phase Control */ +#define ECSPI_CONFIGREG_SCLKPHA_MASK (15 << ECSPI_CONFIGREG_SCLKPHA_SHIFT) +# define ECSPI_CONFIGREG_CH0PHA (1 << ECSPI_CONFIGREG_SCLKPHA_SHIFT) /* Channel 0 SCLK Phase */ +# define ECSPI_CONFIGREG_CH1PHA (2 << ECSPI_CONFIGREG_SCLKPHA_SHIFT) /* Channel 1 SCLK Phase */ +# define ECSPI_CONFIGREG_CH2PHA (4 << ECSPI_CONFIGREG_SCLKPHA_SHIFT) /* Channel 2 SCLK Phase */ +# define ECSPI_CONFIGREG_CH3PHA (8 << ECSPI_CONFIGREG_SCLKPHA_SHIFT) /* Channel 3 SCLK Phase */ +#define ECSPI_CONFIGREG_SCLKPOL_SHIFT (4) /* Bits 4-7: SPI Clock polarity control */ +#define ECSPI_CONFIGREG_SCLKPOL_MASK (15 << ECSPI_CONFIGREG_SCLKPOL_SHIFT) +# define ECSPI_CONFIGREG_CH0POL (1 << ECSPI_CONFIGREG_SCLKPOL_SHIFT) /* Channel 0 SCLK polarity */ +# define ECSPI_CONFIGREG_CH1POL (2 << ECSPI_CONFIGREG_SCLKPOL_SHIFT) /* Channel 1 SCLK polarity */ +# define ECSPI_CONFIGREG_CH2POL (4 << ECSPI_CONFIGREG_SCLKPOL_SHIFT) /* Channel 2 SCLK polarity */ +# define ECSPI_CONFIGREG_CH3POL (8 << ECSPI_CONFIGREG_SCLKPOL_SHIFT) /* Channel 3 SCLK polarity */ +#define ECSPI_CONFIGREG_SSCTL_SHIFT (8) /* Bits 8-11: SPI SS Wave form select */ +#define ECSPI_CONFIGREG_SSCTL_MASK (15 << ECSPI_CONFIGREG_SSCTL_SHIFT) +# define ECSPI_CONFIGREG_CH0SSCTRL (1 << ECSPI_CONFIGREG_SSCTL_SHIFT) /* Channel 0 SS control */ +# define ECSPI_CONFIGREG_CH1SSCTRL (2 << ECSPI_CONFIGREG_SSCTL_SHIFT) /* Channel 1 SS control */ +# define ECSPI_CONFIGREG_CH2SSCTRL (4 << ECSPI_CONFIGREG_SSCTL_SHIFT) /* Channel 2 SS control */ +# define ECSPI_CONFIGREG_CH3SSCTRL (8 << ECSPI_CONFIGREG_SSCTL_SHIFT) /* Channel 3 SS control */ +#define ECSPI_CONFIGREG_SSPOL_SHIFT (12) /* Bits 12-15: SPI SS Polarity select */ +#define ECSPI_CONFIGREG_SSPOL_MASK (15 << ECSPI_CONFIGREG_SSPOL_SHIFT) +# define ECSPI_CONFIGREG_CH0SSPOL (1 << ECSPI_CONFIGREG_CHMODE_SHIFT) /* Channel 0 SS polarity */ +# define ECSPI_CONFIGREG_CH1SSPOL (2 << ECSPI_CONFIGREG_CHMODE_SHIFT) /* Channel 1 SS polarity */ +# define ECSPI_CONFIGREG_CH2SSPOL (4 << ECSPI_CONFIGREG_CHMODE_SHIFT) /* Channel 2 SS polarity */ +# define ECSPI_CONFIGREG_CH3SSPOL (8 << ECSPI_CONFIGREG_CHMODE_SHIFT) /* Channel 3 SS polarity */ +#define ECSPI_CONFIGREG_DATCTL_SHIFT (16) /* Bits 16-19: Data control */ +#define ECSPI_CONFIGREG_DATCTL_MASK (15 << ECSPI_CONFIGREG_DATCTL_SHIFT) +# define ECSPI_CONFIGREG_CH0DATLOW (1 << ECSPI_CONFIGREG_DATCTL_SHIFT) /* Channel 0 SS low when inactive */ +# define ECSPI_CONFIGREG_CH1DATLOW (2 << ECSPI_CONFIGREG_DATCTL_SHIFT) /* Channel 1 SS low when inactive */ +# define ECSPI_CONFIGREG_CH2DATLOW (4 << ECSPI_CONFIGREG_DATCTL_SHIFT) /* Channel 2 SS low when inactive */ +# define ECSPI_CONFIGREG_CH3DATLOW (8 << ECSPI_CONFIGREG_DATCTL_SHIFT) /* Channel 3 SS low when inactive */ +#define ECSPI_CONFIGREG_SCLKCTL_SHIFT (20) /* Bits 20-23: SCLK Control */ +#define ECSPI_CONFIGREG_SCLKCTL_MASK (15 << ECSPI_CONFIGREG_SCLKCTL_SHIFT) +# define ECSPI_CONFIGREG_CH0SCLKLOW (1 << ECSPI_CONFIGREG_SCLKCTL_SHIFT) /* Channel 0 SCLK low when inactive */ +# define ECSPI_CONFIGREG_CH1SCLKLOW (2 << ECSPI_CONFIGREG_SCLKCTL_SHIFT) /* Channel 1 SCLK low when inactive */ +# define ECSPI_CONFIGREG_CH2SCLKLOW (4 << ECSPI_CONFIGREG_SCLKCTL_SHIFT) /* Channel 2 SCLK low when inactive */ +# define ECSPI_CONFIGREG_CH3SCLKLOW (8 << ECSPI_CONFIGREG_SCLKCTL_SHIFT) /* Channel 3 SCLK low when inactive */ +#define ECSPI_CONFIGREG_HTLEN_SHIFT (24) /* Bits 24-28: HT Length */ +#define ECSPI_CONFIGREG_HTLEN_MASK (15 << ECSPI_CONFIGREG_HTLEN_SHIFT) +# define ECSPI_CONFIGREG_HTLEN(n) ((uint32_t)(n) << ECSPI_CONFIGREG_HTLEN_SHIFT) + /* Bits 29-31: Reserved */ + +/* Interrupt Control Register and Status Register */ + +#define ECSPI_INTREG_TE (1 << 0) /* Bit 0: TXFIFO Empty Interrupt */ +#define ECSPI_INTREG_TDR (1 << 1) /* Bit 1: TXFIFO Data Request Interrupt */ +#define ECSPI_INTREG_TF (1 << 2) /* Bit 2: TXFIFO Full Interrupt */ +#define ECSPI_INTREG_RR (1 << 3) /* Bit 3: RXFIFO Data Ready Interrupt */ +#define ECSPI_INTREG_RDR (1 << 4) /* Bit 4: RXFIFO Data Request Interrupt enable */ +#define ECSPI_INTREG_RF (1 << 5) /* Bit 5: RXFIFO Full Interrupt */ +#define ECSPI_INTREG_RO (1 << 6) /* Bit 6: RXFIFO Overflow Interrupt */ +#define ECSPI_INTREG_TC (1 << 7) /* Bit 7: Transfer Completed Interrupt enable */ + /* Bits 8-31: Reserved */ + +/* ECSPI DMA Control Register */ + +#define ECSPI_DMAREG_TXTHRES_SHIFT (0) /* Bits 0-5: TX Threshold */ +#define ECSPI_DMAREG_TXTHRES_MASK (0x3f << ECSPI_DMAREG_TXTHRES_SHIFT) +# define ECSPI_DMAREG_TXTHRES(n) ((uint32_t)(n) << ECSPI_DMAREG_TXTHRES_SHIFT) + /* Bit 6: Reserved */ +#define ECSPI_DMAREG_TEDEN (1 << 7) /* Bit 7: TXFIFO Empty DMA request enable */ + /* Bits 8-15: Reserved */ +#define ECSPI_DMAREG_RXTHRES_SHIFT (16) /* Bits 16-21: RX Threshold */ +#define ECSPI_DMAREG_RXTHRES_MASK (0x3f << ECSPI_DMAREG_RXTHRES_SHIFT) +# define ECSPI_DMAREG_RXTHRES(n) ((uint32_t)(n) << ECSPI_DMAREG_RXTHRES_SHIFT) + /* Bit 22: Reserved */ +#define ECSPI_DMAREG_RXDEN (1 << 23) /* Bit 23: RXFIFO DMA request enable */ +#define ECSPI_DMAREG_RXLEN_SHIFT (24) /* Bits 24-29: RX DMA length */ +#define ECSPI_DMAREG_RXLEN_MASK (0x3f << ECSPI_DMAREG_RXLEN_SHIFT) +# define ECSPI_DMAREG_RXLEN(n) ((uint32_t)(n) << ECSPI_DMAREG_RXLEN_SHIFT) + /* Bit 30: Reserved */ +#define ECSPI_DMAREG_RXTDEN (1 << 31) /* Bit 31: RXFIFO Tail DMA request enable + +/* ECSPI Sample Period Control Register */ + +#define ECSPI_PERIODREG_PERIOD_SHIFT (0) /* Bits 0-14: Sample Period Control */ +#define ECSPI_PERIODREG_PERIOD_MASK (0x7fff << ECSPI_PERIODREG_PERIOD_SHIFT) +# define ECSPI_PERIODREG_PERIOD(n) ((uint32_t)(n) << ECSPI_PERIODREG_PERIOD_SHIFT) +#define ECSPI_PERIODREG_CSRC (1 << 15) /* Bit 15: Clock source control */ +#define ECSPI_PERIODREG_CSDCTL_SHIFT (16) /* Bits 16-21: Chip Select delay control */ +#define ECSPI_PERIODREG_CSDCTL_MASK (0x3f << ECSPI_PERIODREG_CSDCTL_SHIFT) +# define ECSPI_PERIODREG_CSDCTL(n) ((uint32_t)(n) << ECSPI_PERIODREG_CSDCTL_SHIFT) + /* Bits 22-31: Reserved */ + +/* Test Control Register */ + +#define ECSPI_TESTREG_TXCNT_SHIFT (0) /* Bits 0-6: TXFIFO Counter */ +#define ECSPI_TESTREG_TXCNT_MASK (0x7f << ECSPI_TESTREG_TXCNT_SHIFT) +# define ECSPI_TESTREG_TXCNT(n) ((uint32_t)(n) << ECSPI_TESTREG_TXCNT_SHIFT) + /* Bit 7: Reserved */ +#define ECSPI_TESTREG_RXCNT_SHIFT (8) /* Bits 8-14: RXFIFO Counter */ +#define ECSPI_TESTREG_RXCNT_MASK (0x7f << ECSPI_TESTREG_RXCNT_SHIFT) +# define ECSPI_TESTREG_RXCNT(n) ((uint32_t)(n) << ECSPI_TESTREG_RXCNT_SHIFT) + /* Bits 15-30: Reserved */ +#define ECSPI_TESTREG_LBC (1 << 31) /* Bit 31: Loop Back Control */ + +/* Message Data Register (32-bit message data) */ + +/************************************************************************************ + * Public Data + ************************************************************************************/ + +#ifndef __ASSEMBLY__ +#ifdef __cplusplus +#define EXTERN extern "C" +extern "C" +{ +#else +#define EXTERN extern +#endif /* __cplusplus */ + +/************************************************************************************ + * Public Functions + ************************************************************************************/ + +struct spi_dev_s; /* Forward reference */ +enum spi_dev_e; /* Forward reference */ + +/************************************************************************************ + * Name: imx_spibus_initialize + * + * Description: + * Initialize common parts the selected SPI port. Initialization of + * chip select GPIOs must have been performed by board specific logic + * prior to calling this function. Specifically: GPIOs should have + * been configured for output, and all chip selects disabled. + * + * One GPIO, SS (PB2 on the eZ8F091) is reserved as a chip select. However, + * If multiple devices on on the bus, then multiple chip selects will be + * required. Theregore, all GPIO chip management is deferred to board- + * specific logic. + * + * Input Parameter: + * Port number (for hardware that has mutiple SPI interfaces) + * + * Returned Value: + * Valid SPI device structre reference on succcess; a NULL on failure + * + ************************************************************************************/ + +FAR struct spi_dev_s *imx_spibus_initialize(int port); + +/************************************************************************************ + * The external functions, imx_spiselect, imx_spistatus, and imx_cmddaa must be + * provided by board-specific logic. These are implementations of the select and + * status methods of the SPI interface defined by struct spi_ops_s (see + * include/nuttx/spi/spi.h). All other methods (including imx_spibus_initialize()) are + * provided by common logic. To use this common SPI logic on your board: + * + * 1. Provide imx_spiselect() and imx_spistatus() functions in your board-specific + * logic. This function will perform chip selection and status operations using + * GPIOs in the way your board is configured. + * 2. If CONFIG_SPI_CMDDATA is defined in your NuttX configuration, provide the + * imx_spicmddata() function in your board-specific logic. This function will + * perform cmd/data selection operations using GPIOs in the way your board is + * configured. + * 3. Add a call to imx_spibus_initialize() in your low level initialization logic + * 4. The handle returned by imx_spibus_initialize() may then be used to bind the + * SPI driver to higher level logic (e.g., calling mmcsd_spislotinitialize(), + * for example, will bind the SPI driver to the SPI MMC/SD driver). + * + ************************************************************************************/ + +void imx_spiselect(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected); +uint8_t imx_spistatus(FAR struct spi_dev_s *dev, enum spi_dev_e devid); +#ifdef CONFIG_SPI_CMDDATA +int imx_spicmddata(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool cmd); +#endif + +#undef EXTERN +#ifdef __cplusplus +} +#endif /* __cplusplus */ +#endif /* __ASSEMBLY__ */ + +#endif /* __ARCH_ARM_IMX6_ECSPI_H */ -- GitLab From 16cb0a9205f92bfda2c0185cfb3af78b6090f5c9 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 28 May 2016 17:10:58 -0600 Subject: [PATCH 290/307] i.MX6: Divide ported i.MX1/L CSPI header file into two header files --- arch/arm/src/imx6/chip/imx_ecspi.h | 226 ++++++++++------------------- arch/arm/src/imx6/imx_ecspi.h | 132 +++++++++++++++++ 2 files changed, 210 insertions(+), 148 deletions(-) create mode 100644 arch/arm/src/imx6/imx_ecspi.h diff --git a/arch/arm/src/imx6/chip/imx_ecspi.h b/arch/arm/src/imx6/chip/imx_ecspi.h index c6a568786f..21ed32186d 100644 --- a/arch/arm/src/imx6/chip/imx_ecspi.h +++ b/arch/arm/src/imx6/chip/imx_ecspi.h @@ -33,18 +33,15 @@ * ************************************************************************************/ -#ifndef __ARCH_ARM_IMX6_ECSPI_H -#define __ARCH_ARM_IMX6_ECSPI_H +#ifndef __ARCH_ARM_IMX6_CHIP_ECSPI_H +#define __ARCH_ARM_IMX6_CHIP_ECSPI_H /************************************************************************************ * Included Files ************************************************************************************/ -#ifndef __ASSEMBLY__ -# include -# include -# include -#endif +#include +#include "chip/imx_memorymap.h" /************************************************************************************ * Pre-processor Definitions @@ -52,83 +49,83 @@ /* ECSPI Register Offsets ***********************************************************/ -#define ECSPI_RXDATA_OFFSET 0x0000 /* Receive Data Register */ -#define ECSPI_TXDATA_OFFSET 0x0004 /* Transmit Data Register */ -#define ECSPI_CONREG_OFFSET 0x0008 /* Control Register */ -#define ECSPI_CONFIGREG_OFFSET 0x000c /* Configuration Register */ -#define ECSPI_INTREG_OFFSET 0x0010 /* Interrupt Control Register */ -#define ECSPI_DMAREG_OFFSET 0x0014 /* DMA Control Register */ -#define ECSPI_STATREG_OFFSET 0x0018 /* Status Register */ -#define ECSPI_PERIODREG_OFFSET 0x001c /* Sample Period Control Register */ -#define ECSPI_TESTREG_OFFSET 0x0020 /* Test Control Register */ -#define ECSPI_MSGDATA_OFFSET 0x0040 /* Message Data Register */ +#define ECSPI_RXDATA_OFFSET 0x0000 /* Receive Data Register */ +#define ECSPI_TXDATA_OFFSET 0x0004 /* Transmit Data Register */ +#define ECSPI_CONREG_OFFSET 0x0008 /* Control Register */ +#define ECSPI_CONFIGREG_OFFSET 0x000c /* Configuration Register */ +#define ECSPI_INTREG_OFFSET 0x0010 /* Interrupt Control Register */ +#define ECSPI_DMAREG_OFFSET 0x0014 /* DMA Control Register */ +#define ECSPI_STATREG_OFFSET 0x0018 /* Status Register */ +#define ECSPI_PERIODREG_OFFSET 0x001c /* Sample Period Control Register */ +#define ECSPI_TESTREG_OFFSET 0x0020 /* Test Control Register */ +#define ECSPI_MSGDATA_OFFSET 0x0040 /* Message Data Register */ /* ECSPI Register Addresses *********************************************************/ /* ECSPI1 */ -#define IMX_ECSPI1_RXDATA (IMX_ECSPI1_VBASE + ECSPI_RXDATA_OFFSET) -#define IMX_ECSPI1_TXDATA (IMX_ECSPI1_VBASE + ECSPI_TXDATA_OFFSET) -#define IMX_ECSPI1_CONREG (IMX_ECSPI1_VBASE + ECSPI_CONREG_OFFSET) -#define IMX_ECSPI1_CONFIGREG (IMX_ECSPI1_VBASE + ECSPI_CONFIGREG_OFFSET) -#define IMX_ECSPI1_INTREG (IMX_ECSPI1_VBASE + ECSPI_INTREG_OFFSET) -#define IMX_ECSPI1_DMAREG (IMX_ECSPI1_VBASE + ECSPI_DMAREG_OFFSET) -#define IMX_ECSPI1_STATREG (IMX_ECSPI1_VBASE + ECSPI_STATREG_OFFSET) -#define IMX_ECSPI1_PERIODREG (IMX_ECSPI1_VBASE + ECSPI_PERIODREG_OFFSET) -#define IMX_ECSPI1_TESTREG (IMX_ECSPI1_VBASE + ECSPI_TESTREG_OFFSET) -#define IMX_ECSPI1_MSGDATA (IMX_ECSPI1_VBASE + ECSPI_MSGDATA_OFFSET) +#define IMX_ECSPI1_RXDATA (IMX_ECSPI1_VBASE + ECSPI_RXDATA_OFFSET) +#define IMX_ECSPI1_TXDATA (IMX_ECSPI1_VBASE + ECSPI_TXDATA_OFFSET) +#define IMX_ECSPI1_CONREG (IMX_ECSPI1_VBASE + ECSPI_CONREG_OFFSET) +#define IMX_ECSPI1_CONFIGREG (IMX_ECSPI1_VBASE + ECSPI_CONFIGREG_OFFSET) +#define IMX_ECSPI1_INTREG (IMX_ECSPI1_VBASE + ECSPI_INTREG_OFFSET) +#define IMX_ECSPI1_DMAREG (IMX_ECSPI1_VBASE + ECSPI_DMAREG_OFFSET) +#define IMX_ECSPI1_STATREG (IMX_ECSPI1_VBASE + ECSPI_STATREG_OFFSET) +#define IMX_ECSPI1_PERIODREG (IMX_ECSPI1_VBASE + ECSPI_PERIODREG_OFFSET) +#define IMX_ECSPI1_TESTREG (IMX_ECSPI1_VBASE + ECSPI_TESTREG_OFFSET) +#define IMX_ECSPI1_MSGDATA (IMX_ECSPI1_VBASE + ECSPI_MSGDATA_OFFSET) /* ECSPI2 */ -#define IMX_ECSPI2_RXDATA (IMX_ECSPI2_VBASE + ECSPI_RXDATA_OFFSET) -#define IMX_ECSPI2_TXDATA (IMX_ECSPI2_VBASE + ECSPI_TXDATA_OFFSET) -#define IMX_ECSPI2_CONREG (IMX_ECSPI2_VBASE + ECSPI_CONREG_OFFSET) -#define IMX_ECSPI2_CONFIGREG (IMX_ECSPI2_VBASE + ECSPI_CONFIGREG_OFFSET) -#define IMX_ECSPI2_INTREG (IMX_ECSPI2_VBASE + ECSPI_INTREG_OFFSET) -#define IMX_ECSPI2_DMAREG (IMX_ECSPI2_VBASE + ECSPI_DMAREG_OFFSET) -#define IMX_ECSPI2_STATREG (IMX_ECSPI2_VBASE + ECSPI_STATREG_OFFSET) -#define IMX_ECSPI2_PERIODREG (IMX_ECSPI2_VBASE + ECSPI_PERIODREG_OFFSET) -#define IMX_ECSPI2_TESTREG (IMX_ECSPI2_VBASE + ECSPI_TESTREG_OFFSET) -#define IMX_ECSPI2_MSGDATA (IMX_ECSPI2_VBASE + ECSPI_MSGDATA_OFFSET) +#define IMX_ECSPI2_RXDATA (IMX_ECSPI2_VBASE + ECSPI_RXDATA_OFFSET) +#define IMX_ECSPI2_TXDATA (IMX_ECSPI2_VBASE + ECSPI_TXDATA_OFFSET) +#define IMX_ECSPI2_CONREG (IMX_ECSPI2_VBASE + ECSPI_CONREG_OFFSET) +#define IMX_ECSPI2_CONFIGREG (IMX_ECSPI2_VBASE + ECSPI_CONFIGREG_OFFSET) +#define IMX_ECSPI2_INTREG (IMX_ECSPI2_VBASE + ECSPI_INTREG_OFFSET) +#define IMX_ECSPI2_DMAREG (IMX_ECSPI2_VBASE + ECSPI_DMAREG_OFFSET) +#define IMX_ECSPI2_STATREG (IMX_ECSPI2_VBASE + ECSPI_STATREG_OFFSET) +#define IMX_ECSPI2_PERIODREG (IMX_ECSPI2_VBASE + ECSPI_PERIODREG_OFFSET) +#define IMX_ECSPI2_TESTREG (IMX_ECSPI2_VBASE + ECSPI_TESTREG_OFFSET) +#define IMX_ECSPI2_MSGDATA (IMX_ECSPI2_VBASE + ECSPI_MSGDATA_OFFSET) /* ECSPI3 */ -#define IMX_ECSPI3_RXDATA (IMX_ECSPI3_VBASE + ECSPI_RXDATA_OFFSET) -#define IMX_ECSPI3_TXDATA (IMX_ECSPI3_VBASE + ECSPI_TXDATA_OFFSET) -#define IMX_ECSPI3_CONREG (IMX_ECSPI3_VBASE + ECSPI_CONREG_OFFSET) -#define IMX_ECSPI3_CONFIGREG (IMX_ECSPI3_VBASE + ECSPI_CONFIGREG_OFFSET) -#define IMX_ECSPI3_INTREG (IMX_ECSPI3_VBASE + ECSPI_INTREG_OFFSET) -#define IMX_ECSPI3_DMAREG (IMX_ECSPI3_VBASE + ECSPI_DMAREG_OFFSET) -#define IMX_ECSPI3_STATREG (IMX_ECSPI3_VBASE + ECSPI_STATREG_OFFSET) -#define IMX_ECSPI3_PERIODREG (IMX_ECSPI3_VBASE + ECSPI_PERIODREG_OFFSET) -#define IMX_ECSPI3_TESTREG (IMX_ECSPI3_VBASE + ECSPI_TESTREG_OFFSET) -#define IMX_ECSPI3_MSGDATA (IMX_ECSPI3_VBASE + ECSPI_MSGDATA_OFFSET) +#define IMX_ECSPI3_RXDATA (IMX_ECSPI3_VBASE + ECSPI_RXDATA_OFFSET) +#define IMX_ECSPI3_TXDATA (IMX_ECSPI3_VBASE + ECSPI_TXDATA_OFFSET) +#define IMX_ECSPI3_CONREG (IMX_ECSPI3_VBASE + ECSPI_CONREG_OFFSET) +#define IMX_ECSPI3_CONFIGREG (IMX_ECSPI3_VBASE + ECSPI_CONFIGREG_OFFSET) +#define IMX_ECSPI3_INTREG (IMX_ECSPI3_VBASE + ECSPI_INTREG_OFFSET) +#define IMX_ECSPI3_DMAREG (IMX_ECSPI3_VBASE + ECSPI_DMAREG_OFFSET) +#define IMX_ECSPI3_STATREG (IMX_ECSPI3_VBASE + ECSPI_STATREG_OFFSET) +#define IMX_ECSPI3_PERIODREG (IMX_ECSPI3_VBASE + ECSPI_PERIODREG_OFFSET) +#define IMX_ECSPI3_TESTREG (IMX_ECSPI3_VBASE + ECSPI_TESTREG_OFFSET) +#define IMX_ECSPI3_MSGDATA (IMX_ECSPI3_VBASE + ECSPI_MSGDATA_OFFSET) /* ECSPI4 */ -#define IMX_ECSPI4_RXDATA (IMX_ECSPI4_VBASE + ECSPI_RXDATA_OFFSET) -#define IMX_ECSPI4_TXDATA (IMX_ECSPI4_VBASE + ECSPI_TXDATA_OFFSET) -#define IMX_ECSPI4_CONREG (IMX_ECSPI4_VBASE + ECSPI_CONREG_OFFSET) -#define IMX_ECSPI4_CONFIGREG (IMX_ECSPI4_VBASE + ECSPI_CONFIGREG_OFFSET) -#define IMX_ECSPI4_INTREG (IMX_ECSPI4_VBASE + ECSPI_INTREG_OFFSET) -#define IMX_ECSPI4_DMAREG (IMX_ECSPI4_VBASE + ECSPI_DMAREG_OFFSET) -#define IMX_ECSPI4_STATREG (IMX_ECSPI4_VBASE + ECSPI_STATREG_OFFSET) -#define IMX_ECSPI4_PERIODREG (IMX_ECSPI4_VBASE + ECSPI_PERIODREG_OFFSET) -#define IMX_ECSPI4_TESTREG (IMX_ECSPI4_VBASE + ECSPI_TESTREG_OFFSET) -#define IMX_ECSPI4_MSGDATA (IMX_ECSPI4_VBASE + ECSPI_MSGDATA_OFFSET) +#define IMX_ECSPI4_RXDATA (IMX_ECSPI4_VBASE + ECSPI_RXDATA_OFFSET) +#define IMX_ECSPI4_TXDATA (IMX_ECSPI4_VBASE + ECSPI_TXDATA_OFFSET) +#define IMX_ECSPI4_CONREG (IMX_ECSPI4_VBASE + ECSPI_CONREG_OFFSET) +#define IMX_ECSPI4_CONFIGREG (IMX_ECSPI4_VBASE + ECSPI_CONFIGREG_OFFSET) +#define IMX_ECSPI4_INTREG (IMX_ECSPI4_VBASE + ECSPI_INTREG_OFFSET) +#define IMX_ECSPI4_DMAREG (IMX_ECSPI4_VBASE + ECSPI_DMAREG_OFFSET) +#define IMX_ECSPI4_STATREG (IMX_ECSPI4_VBASE + ECSPI_STATREG_OFFSET) +#define IMX_ECSPI4_PERIODREG (IMX_ECSPI4_VBASE + ECSPI_PERIODREG_OFFSET) +#define IMX_ECSPI4_TESTREG (IMX_ECSPI4_VBASE + ECSPI_TESTREG_OFFSET) +#define IMX_ECSPI4_MSGDATA (IMX_ECSPI4_VBASE + ECSPI_MSGDATA_OFFSET) /* ECSPI5 */ -#define IMX_ECSPI5_RXDATA (IMX_ECSPI5_VBASE + ECSPI_RXDATA_OFFSET) -#define IMX_ECSPI5_TXDATA (IMX_ECSPI5_VBASE + ECSPI_TXDATA_OFFSET) -#define IMX_ECSPI5_CONREG (IMX_ECSPI5_VBASE + ECSPI_CONREG_OFFSET) -#define IMX_ECSPI5_CONFIGREG (IMX_ECSPI5_VBASE + ECSPI_CONFIGREG_OFFSET) -#define IMX_ECSPI5_INTREG (IMX_ECSPI5_VBASE + ECSPI_INTREG_OFFSET) -#define IMX_ECSPI5_DMAREG (IMX_ECSPI5_VBASE + ECSPI_DMAREG_OFFSET) -#define IMX_ECSPI5_STATREG (IMX_ECSPI5_VBASE + ECSPI_STATREG_OFFSET) -#define IMX_ECSPI5_PERIODREG (IMX_ECSPI5_VBASE + ECSPI_PERIODREG_OFFSET) -#define IMX_ECSPI5_TESTREG (IMX_ECSPI5_VBASE + ECSPI_TESTREG_OFFSET) -#define IMX_ECSPI5_MSGDATA (IMX_ECSPI5_VBASE + ECSPI_MSGDATA_OFFSET) +#define IMX_ECSPI5_RXDATA (IMX_ECSPI5_VBASE + ECSPI_RXDATA_OFFSET) +#define IMX_ECSPI5_TXDATA (IMX_ECSPI5_VBASE + ECSPI_TXDATA_OFFSET) +#define IMX_ECSPI5_CONREG (IMX_ECSPI5_VBASE + ECSPI_CONREG_OFFSET) +#define IMX_ECSPI5_CONFIGREG (IMX_ECSPI5_VBASE + ECSPI_CONFIGREG_OFFSET) +#define IMX_ECSPI5_INTREG (IMX_ECSPI5_VBASE + ECSPI_INTREG_OFFSET) +#define IMX_ECSPI5_DMAREG (IMX_ECSPI5_VBASE + ECSPI_DMAREG_OFFSET) +#define IMX_ECSPI5_STATREG (IMX_ECSPI5_VBASE + ECSPI_STATREG_OFFSET) +#define IMX_ECSPI5_PERIODREG (IMX_ECSPI5_VBASE + ECSPI_PERIODREG_OFFSET) +#define IMX_ECSPI5_TESTREG (IMX_ECSPI5_VBASE + ECSPI_TESTREG_OFFSET) +#define IMX_ECSPI5_MSGDATA (IMX_ECSPI5_VBASE + ECSPI_MSGDATA_OFFSET) /* ECSPI Register Bit Definitions ***************************************************/ @@ -208,18 +205,20 @@ # define ECSPI_CONFIGREG_HTLEN(n) ((uint32_t)(n) << ECSPI_CONFIGREG_HTLEN_SHIFT) /* Bits 29-31: Reserved */ -/* Interrupt Control Register and Status Register */ +/* Common Interrupt Control Register and Status Register */ -#define ECSPI_INTREG_TE (1 << 0) /* Bit 0: TXFIFO Empty Interrupt */ -#define ECSPI_INTREG_TDR (1 << 1) /* Bit 1: TXFIFO Data Request Interrupt */ -#define ECSPI_INTREG_TF (1 << 2) /* Bit 2: TXFIFO Full Interrupt */ -#define ECSPI_INTREG_RR (1 << 3) /* Bit 3: RXFIFO Data Ready Interrupt */ -#define ECSPI_INTREG_RDR (1 << 4) /* Bit 4: RXFIFO Data Request Interrupt enable */ -#define ECSPI_INTREG_RF (1 << 5) /* Bit 5: RXFIFO Full Interrupt */ -#define ECSPI_INTREG_RO (1 << 6) /* Bit 6: RXFIFO Overflow Interrupt */ -#define ECSPI_INTREG_TC (1 << 7) /* Bit 7: Transfer Completed Interrupt enable */ +#define ECSPI_INT_TE (1 << 0) /* Bit 0: TXFIFO Empty Interrupt */ +#define ECSPI_INT_TDR (1 << 1) /* Bit 1: TXFIFO Data Request Interrupt */ +#define ECSPI_INT_TF (1 << 2) /* Bit 2: TXFIFO Full Interrupt */ +#define ECSPI_INT_RR (1 << 3) /* Bit 3: RXFIFO Data Ready Interrupt */ +#define ECSPI_INT_RDR (1 << 4) /* Bit 4: RXFIFO Data Request Interrupt enable */ +#define ECSPI_INT_RF (1 << 5) /* Bit 5: RXFIFO Full Interrupt */ +#define ECSPI_INT_RO (1 << 6) /* Bit 6: RXFIFO Overflow Interrupt */ +#define ECSPI_INT_TC (1 << 7) /* Bit 7: Transfer Completed Interrupt enable */ /* Bits 8-31: Reserved */ +#define ECSPI_INT_ALL 0x000000ff + /* ECSPI DMA Control Register */ #define ECSPI_DMAREG_TXTHRES_SHIFT (0) /* Bits 0-5: TX Threshold */ @@ -237,7 +236,7 @@ #define ECSPI_DMAREG_RXLEN_MASK (0x3f << ECSPI_DMAREG_RXLEN_SHIFT) # define ECSPI_DMAREG_RXLEN(n) ((uint32_t)(n) << ECSPI_DMAREG_RXLEN_SHIFT) /* Bit 30: Reserved */ -#define ECSPI_DMAREG_RXTDEN (1 << 31) /* Bit 31: RXFIFO Tail DMA request enable +#define ECSPI_DMAREG_RXTDEN (1 << 31) /* Bit 31: RXFIFO Tail DMA request enable */ /* ECSPI Sample Period Control Register */ @@ -268,77 +267,8 @@ * Public Data ************************************************************************************/ -#ifndef __ASSEMBLY__ -#ifdef __cplusplus -#define EXTERN extern "C" -extern "C" -{ -#else -#define EXTERN extern -#endif /* __cplusplus */ - /************************************************************************************ - * Public Functions + * Public Function Prototypes ************************************************************************************/ -struct spi_dev_s; /* Forward reference */ -enum spi_dev_e; /* Forward reference */ - -/************************************************************************************ - * Name: imx_spibus_initialize - * - * Description: - * Initialize common parts the selected SPI port. Initialization of - * chip select GPIOs must have been performed by board specific logic - * prior to calling this function. Specifically: GPIOs should have - * been configured for output, and all chip selects disabled. - * - * One GPIO, SS (PB2 on the eZ8F091) is reserved as a chip select. However, - * If multiple devices on on the bus, then multiple chip selects will be - * required. Theregore, all GPIO chip management is deferred to board- - * specific logic. - * - * Input Parameter: - * Port number (for hardware that has mutiple SPI interfaces) - * - * Returned Value: - * Valid SPI device structre reference on succcess; a NULL on failure - * - ************************************************************************************/ - -FAR struct spi_dev_s *imx_spibus_initialize(int port); - -/************************************************************************************ - * The external functions, imx_spiselect, imx_spistatus, and imx_cmddaa must be - * provided by board-specific logic. These are implementations of the select and - * status methods of the SPI interface defined by struct spi_ops_s (see - * include/nuttx/spi/spi.h). All other methods (including imx_spibus_initialize()) are - * provided by common logic. To use this common SPI logic on your board: - * - * 1. Provide imx_spiselect() and imx_spistatus() functions in your board-specific - * logic. This function will perform chip selection and status operations using - * GPIOs in the way your board is configured. - * 2. If CONFIG_SPI_CMDDATA is defined in your NuttX configuration, provide the - * imx_spicmddata() function in your board-specific logic. This function will - * perform cmd/data selection operations using GPIOs in the way your board is - * configured. - * 3. Add a call to imx_spibus_initialize() in your low level initialization logic - * 4. The handle returned by imx_spibus_initialize() may then be used to bind the - * SPI driver to higher level logic (e.g., calling mmcsd_spislotinitialize(), - * for example, will bind the SPI driver to the SPI MMC/SD driver). - * - ************************************************************************************/ - -void imx_spiselect(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected); -uint8_t imx_spistatus(FAR struct spi_dev_s *dev, enum spi_dev_e devid); -#ifdef CONFIG_SPI_CMDDATA -int imx_spicmddata(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool cmd); -#endif - -#undef EXTERN -#ifdef __cplusplus -} -#endif /* __cplusplus */ -#endif /* __ASSEMBLY__ */ - -#endif /* __ARCH_ARM_IMX6_ECSPI_H */ +#endif /* __ARCH_ARM_IMX6_CHIP_ECSPI_H */ diff --git a/arch/arm/src/imx6/imx_ecspi.h b/arch/arm/src/imx6/imx_ecspi.h new file mode 100644 index 0000000000..b0166e28a9 --- /dev/null +++ b/arch/arm/src/imx6/imx_ecspi.h @@ -0,0 +1,132 @@ +/************************************************************************************ + * arch/arm/src/imx6/imx_ecspi.h + * + * Copyright (C) 2016 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ************************************************************************************/ + +#ifndef __ARCH_ARM_IMX6_ECSPI_H +#define __ARCH_ARM_IMX6_ECSPI_H + +/************************************************************************************ + * Included Files + ************************************************************************************/ + +#include + +#include +#include +#include + +#include "chip/imx_ecspi.h" + +/************************************************************************************ + * Pre-processor Definitions + ************************************************************************************/ + +/************************************************************************************ + * Public Data + ************************************************************************************/ + +#ifndef __ASSEMBLY__ +#ifdef __cplusplus +#define EXTERN extern "C" +extern "C" +{ +#else +#define EXTERN extern +#endif /* __cplusplus */ + +/************************************************************************************ + * Public Function Prototypes + ************************************************************************************/ + +struct spi_dev_s; /* Forward reference */ +enum spi_dev_e; /* Forward reference */ + +/************************************************************************************ + * Name: imx_spibus_initialize + * + * Description: + * Initialize common parts the selected SPI port. Initialization of + * chip select GPIOs must have been performed by board specific logic + * prior to calling this function. Specifically: GPIOs should have + * been configured for output, and all chip selects disabled. + * + * One GPIO, SS (PB2 on the eZ8F091) is reserved as a chip select. However, + * If multiple devices on on the bus, then multiple chip selects will be + * required. Theregore, all GPIO chip management is deferred to board- + * specific logic. + * + * Input Parameter: + * Port number (for hardware that has mutiple SPI interfaces) + * + * Returned Value: + * Valid SPI device structre reference on succcess; a NULL on failure + * + ************************************************************************************/ + +FAR struct spi_dev_s *imx_spibus_initialize(int port); + +/************************************************************************************ + * The external functions, imx_spiselect, imx_spistatus, and imx_cmddaa must be + * provided by board-specific logic. These are implementations of the select and + * status methods of the SPI interface defined by struct spi_ops_s (see + * include/nuttx/spi/spi.h). All other methods (including imx_spibus_initialize()) are + * provided by common logic. To use this common SPI logic on your board: + * + * 1. Provide imx_spiselect() and imx_spistatus() functions in your board-specific + * logic. This function will perform chip selection and status operations using + * GPIOs in the way your board is configured. + * 2. If CONFIG_SPI_CMDDATA is defined in your NuttX configuration, provide the + * imx_spicmddata() function in your board-specific logic. This function will + * perform cmd/data selection operations using GPIOs in the way your board is + * configured. + * 3. Add a call to imx_spibus_initialize() in your low level initialization logic + * 4. The handle returned by imx_spibus_initialize() may then be used to bind the + * SPI driver to higher level logic (e.g., calling mmcsd_spislotinitialize(), + * for example, will bind the SPI driver to the SPI MMC/SD driver). + * + ************************************************************************************/ + +void imx_spiselect(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected); +uint8_t imx_spistatus(FAR struct spi_dev_s *dev, enum spi_dev_e devid); +#ifdef CONFIG_SPI_CMDDATA +int imx_spicmddata(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool cmd); +#endif + +#undef EXTERN +#ifdef __cplusplus +} +#endif /* __cplusplus */ +#endif /* __ASSEMBLY__ */ + +#endif /* __ARCH_ARM_IMX6_ECSPI_H */ -- GitLab From 0b17b1feb340d6f1547e55b020e483ad1739020d Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 28 May 2016 17:42:29 -0600 Subject: [PATCH 291/307] i.MX6: Add ECSPI configuration logic. Updated ECSPI header files --- arch/arm/src/imx6/Kconfig | 29 +++++++++++++++ arch/arm/src/imx6/chip/imx_ecspi.h | 60 +++++++++++++++--------------- arch/arm/src/imx6/imx_ecspi.h | 40 ++++++++++++++++++-- 3 files changed, 96 insertions(+), 33 deletions(-) diff --git a/arch/arm/src/imx6/Kconfig b/arch/arm/src/imx6/Kconfig index 8296c1a2ae..f49dde32bf 100644 --- a/arch/arm/src/imx6/Kconfig +++ b/arch/arm/src/imx6/Kconfig @@ -54,8 +54,37 @@ config IMX6_HAVE_HDCP endmenu # "iMX.6 Chip Selection" +config IMX6_ECSPI + bool + default n + menu "iMX.6 Peripheral Selection" +config IMX6_ECSPI1 + bool "ECSPI1" + default n + select IMX6_ECSPI + +config IMX6_ECSPI2 + bool "ECSPI2" + default n + select IMX6_ECSPI + +config IMX6_ECSPI3 + bool "ECSPI3" + default n + select IMX6_ECSPI + +config IMX6_ECSPI4 + bool "ECSPI4" + default n + select IMX6_ECSPI + +config IMX6_ECSPI5 + bool "ECSPI5" + default n + select IMX6_ECSPI + config IMX6_UART1 bool "UART1" default n diff --git a/arch/arm/src/imx6/chip/imx_ecspi.h b/arch/arm/src/imx6/chip/imx_ecspi.h index 21ed32186d..e034ef737c 100644 --- a/arch/arm/src/imx6/chip/imx_ecspi.h +++ b/arch/arm/src/imx6/chip/imx_ecspi.h @@ -131,36 +131,36 @@ /* Control Register */ -#define ECSPI_CONREG_EN (1 << 0) /* Bit 0: SPI Block enable control */ -#define ECSPI_CONREG_HT (1 << 1) /* Bit 1: Hardware trigger enable */ -#define ECSPI_CONREG_XCH (1 << 2) /* Bit 2: SPI Exchange bit */ -#define ECSPI_CONREG_SMC (1 << 3) /* Bit 3: Start mode control */ -#define ECSPI_CONREG_CHMODE_SHIFT (4) /* Bits 4-7: SPI Channel mode */ -#define ECSPI_CONREG_CHMODE_MASK (15 << ECSPI_CONREG_CHMODE_SHIFT) -# define ECSPI_CONREG_CH0MASTER (1 << ECSPI_CONREG_CHMODE_SHIFT) /* Channel 0 master mode */ -# define ECSPI_CONREG_CH1MASTER (2 << ECSPI_CONREG_CHMODE_SHIFT) /* Channel 1 master mode */ -# define ECSPI_CONREG_CH2MASTER (4 << ECSPI_CONREG_CHMODE_SHIFT) /* Channel 2 master mode */ -# define ECSPI_CONREG_CH3MASTER (8 << ECSPI_CONREG_CHMODE_SHIFT) /* Channel 3 master mode */ -#define ECSPI_CONREG_POSTDIV_SHIFT (8) /* Bits 8-11: SPI Post divider */ -#define ECSPI_CONREG_POSTDIV_MASK (15 << ECSPI_CONREG_POSTDIV_SHIFT) -# define ECSPI_CONREG_POSTDIV(n) ((uint32_t)(n) << ECSPI_CONREG_POSTDIV_SHIFT) -#define ECSPI_CONREG_PREDIV_SHIFT (12) /* Bits 12-15: SPI Pre divider */ -#define ECSPI_CONREG_PREDIV_MASK (15 << ECSPI_CONREG_PREDIV_SHIFT) -# define ECSPI_CONREG_PREDIV(n) ((uint32_t)(n) << ECSPI_CONREG_PREDIV_SHIFT) -#define ECSPI_CONREG_DRCTL_SHIFT 16 /* Bits 16-17: SPI Data ready control */ -#define ECSPI_CONREG_DRCTL_MASK (3 << ECSPI_CONREG_DRCTL_SHIFT) -# define ECSPI_CONREG_DRCTL_IGNRDY (0 << ECSPI_CONREG_DRCTL_SHIFT) -# define ECSPI_CONREG_DRCTL_FALLING (1 << ECSPI_CONREG_DRCTL_SHIFT) -# define ECSPI_CONREG_DRCTL_ACTVLOW (2 << ECSPI_CONREG_DRCTL_SHIFT) -#define ECSPI_CONREG_CHSEL_SHIFT (18) /* Bits 18-19: SPI Channel select bits */ -#define ECSPI_CONREG_CHSEL_MASK (3 << ECSPI_CONREG_CHSEL_SHIFT) -# define ECSPI_CONREG_CHSEL_SS0 (0 << ECSPI_CONREG_CHSEL_SHIFT) /* Channel 0 select (SS0) */ -# define ECSPI_CONREG_CHSEL_SS1 (1 << ECSPI_CONREG_CHSEL_SHIFT) /* Channel 1 select (SS1) */ -# define ECSPI_CONREG_CHSEL_SS2 (2 << ECSPI_CONREG_CHSEL_SHIFT) /* Channel 2 select (SS2) */ -# define ECSPI_CONREG_CHSEL_SS3 (3 << ECSPI_CONREG_CHSEL_SHIFT) /* Channel 3 select (SS3) */ -#define ECSPI_CONREG_BURSTLEN_SHIFT (20) /* Bits 20-31: Burst length */ -#define ECSPI_CONREG_BURSTLEN_MASK (0xfff << ECSPI_CONREG_BURSTLEN_SHIFT) -# define ECSPI_CONREG_BURSTLEN(n) ((uint32_t)(n) << ECSPI_CONREG_BURSTLEN_SHIFT) +#define ECSPI_CONREG_EN (1 << 0) /* Bit 0: SPI Block enable control */ +#define ECSPI_CONREG_HT (1 << 1) /* Bit 1: Hardware trigger enable */ +#define ECSPI_CONREG_XCH (1 << 2) /* Bit 2: SPI Exchange bit */ +#define ECSPI_CONREG_SMC (1 << 3) /* Bit 3: Start mode control */ +#define ECSPI_CONREG_CHMODE_SHIFT (4) /* Bits 4-7: SPI Channel mode */ +#define ECSPI_CONREG_CHMODE_MASK (15 << ECSPI_CONREG_CHMODE_SHIFT) +# define ECSPI_CONREG_CH0MASTER (1 << ECSPI_CONREG_CHMODE_SHIFT) /* Channel 0 master mode */ +# define ECSPI_CONREG_CH1MASTER (2 << ECSPI_CONREG_CHMODE_SHIFT) /* Channel 1 master mode */ +# define ECSPI_CONREG_CH2MASTER (4 << ECSPI_CONREG_CHMODE_SHIFT) /* Channel 2 master mode */ +# define ECSPI_CONREG_CH3MASTER (8 << ECSPI_CONREG_CHMODE_SHIFT) /* Channel 3 master mode */ +#define ECSPI_CONREG_POSTDIV_SHIFT (8) /* Bits 8-11: SPI Post divider */ +#define ECSPI_CONREG_POSTDIV_MASK (15 << ECSPI_CONREG_POSTDIV_SHIFT) +# define ECSPI_CONREG_POSTDIV(n) ((uint32_t)(n) << ECSPI_CONREG_POSTDIV_SHIFT) +#define ECSPI_CONREG_PREDIV_SHIFT (12) /* Bits 12-15: SPI Pre divider */ +#define ECSPI_CONREG_PREDIV_MASK (15 << ECSPI_CONREG_PREDIV_SHIFT) +# define ECSPI_CONREG_PREDIV(n) ((uint32_t)(n) << ECSPI_CONREG_PREDIV_SHIFT) +#define ECSPI_CONREG_DRCTL_SHIFT 16 /* Bits 16-17: SPI Data ready control */ +#define ECSPI_CONREG_DRCTL_MASK (3 << ECSPI_CONREG_DRCTL_SHIFT) +# define ECSPI_CONREG_DRCTL_IGNRDY (0 << ECSPI_CONREG_DRCTL_SHIFT) +# define ECSPI_CONREG_DRCTL_FALLING (1 << ECSPI_CONREG_DRCTL_SHIFT) +# define ECSPI_CONREG_DRCTL_ACTVLOW (2 << ECSPI_CONREG_DRCTL_SHIFT) +#define ECSPI_CONREG_CHSEL_SHIFT (18) /* Bits 18-19: SPI Channel select bits */ +#define ECSPI_CONREG_CHSEL_MASK (3 << ECSPI_CONREG_CHSEL_SHIFT) +# define ECSPI_CONREG_CHSEL_SS0 (0 << ECSPI_CONREG_CHSEL_SHIFT) /* Channel 0 select (SS0) */ +# define ECSPI_CONREG_CHSEL_SS1 (1 << ECSPI_CONREG_CHSEL_SHIFT) /* Channel 1 select (SS1) */ +# define ECSPI_CONREG_CHSEL_SS2 (2 << ECSPI_CONREG_CHSEL_SHIFT) /* Channel 2 select (SS2) */ +# define ECSPI_CONREG_CHSEL_SS3 (3 << ECSPI_CONREG_CHSEL_SHIFT) /* Channel 3 select (SS3) */ +#define ECSPI_CONREG_BURSTLEN_SHIFT (20) /* Bits 20-31: Burst length */ +#define ECSPI_CONREG_BURSTLEN_MASK (0xfff << ECSPI_CONREG_BURSTLEN_SHIFT) +# define ECSPI_CONREG_BURSTLEN(n) ((uint32_t)(n) << ECSPI_CONREG_BURSTLEN_SHIFT) /* Configuration Register */ diff --git a/arch/arm/src/imx6/imx_ecspi.h b/arch/arm/src/imx6/imx_ecspi.h index b0166e28a9..40ca57c465 100644 --- a/arch/arm/src/imx6/imx_ecspi.h +++ b/arch/arm/src/imx6/imx_ecspi.h @@ -117,10 +117,44 @@ FAR struct spi_dev_s *imx_spibus_initialize(int port); * ************************************************************************************/ -void imx_spiselect(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected); -uint8_t imx_spistatus(FAR struct spi_dev_s *dev, enum spi_dev_e devid); +#ifdef CONFIG_IMX6_ECSPI1 +void imx_spi1select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected); +uint8_t imx_spi1status(FAR struct spi_dev_s *dev, enum spi_dev_e devid); #ifdef CONFIG_SPI_CMDDATA -int imx_spicmddata(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool cmd); +int imx_spi1cmddata(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool cmd); +#endif +#endif + +#ifdef CONFIG_IMX6_ECSPI2 +void imx_spi2select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected); +uint8_t imx_spi2status(FAR struct spi_dev_s *dev, enum spi_dev_e devid); +#ifdef CONFIG_SPI_CMDDATA +int imx_spi2cmddata(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool cmd); +#endif +#endif + +#ifdef CONFIG_IMX6_ECSPI3 +void imx_spi3select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected); +uint8_t imx_spi3status(FAR struct spi_dev_s *dev, enum spi_dev_e devid); +#ifdef CONFIG_SPI_CMDDATA +int imx_spi3cmddata(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool cmd); +#endif +#endif + +#ifdef CONFIG_IMX6_ECSPI4 +void imx_spi4select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected); +uint8_t imx_spi4status(FAR struct spi_dev_s *dev, enum spi_dev_e devid); +#ifdef CONFIG_SPI_CMDDATA +int imx_spi4cmddata(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool cmd); +#endif +#endif + +#ifdef CONFIG_IMX6_ECSPI5 +void imx_spi5select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected); +uint8_t imx_spi5status(FAR struct spi_dev_s *dev, enum spi_dev_e devid); +#ifdef CONFIG_SPI_CMDDATA +int imx_spi5cmddata(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool cmd); +#endif #endif #undef EXTERN -- GitLab From 9071a22c285051e817125b491c93d9644d9e4593 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 29 May 2016 08:25:05 -0600 Subject: [PATCH 292/307] Cosmetic fix to spacing --- arch/arm/src/sama5/sam_oneshot.h | 1 + arch/arm/src/samv7/sam_oneshot.h | 1 + 2 files changed, 2 insertions(+) diff --git a/arch/arm/src/sama5/sam_oneshot.h b/arch/arm/src/sama5/sam_oneshot.h index 2e488d0d61..0443fcd693 100644 --- a/arch/arm/src/sama5/sam_oneshot.h +++ b/arch/arm/src/sama5/sam_oneshot.h @@ -47,6 +47,7 @@ #include "sam_tc.h" #include "sam_freerun.h" + #ifdef CONFIG_SAMA5_ONESHOT /**************************************************************************** diff --git a/arch/arm/src/samv7/sam_oneshot.h b/arch/arm/src/samv7/sam_oneshot.h index 25fb414c14..6c4e42337f 100644 --- a/arch/arm/src/samv7/sam_oneshot.h +++ b/arch/arm/src/samv7/sam_oneshot.h @@ -47,6 +47,7 @@ #include "sam_tc.h" #include "sam_freerun.h" + #ifdef CONFIG_SAMV7_ONESHOT /**************************************************************************** -- GitLab From fa10927dcc582ec3fabf21354571cb319ff934ed Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 29 May 2016 08:25:41 -0600 Subject: [PATCH 293/307] Stefan Kolb's change to the SAMV7 Oneshot Timer (commit d44ecbcfbb5f1739956d2d9c0b7787ddd27226c2) should also be applied to the SAM3/4 oneshot time since the drivers are identical. Here are the commit commits from Stefan's original change: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit "This is a fix to a problem in the handling of the oneshot timer. Due to a wrong assumption concerning the behavior directly after the start of the timer/counter the function sam_oneshot_cancel(…) calculates the wrong remaining time. The code assumes that the counter register is zero directly after the start of the timer, but this is not true. To start the time/counter a software trigger is invoked, this trigger starts the timer/count and sets the counter register to zero, but the reset of the counter register is not performed instantly. According to the datasheet: “The counter can be reset by a trigger. In this case, the counter value passes to zero on the next valid edge of the selected clock.” Thus the counter is set to zero between 0 and USEC_PER_TICK microseconds after the clock was started. "In my fix I use the freerun count value to determine if at least one tick passed since the start of the timer and thus if the value of the oneshot counter is correct. I also tried to use the function up_timer_gettime(…) to achieve this but, at least if compiled with no optimization the problem vanishes without using the value of the function, the function call takes too long. "Another problem treated in the fix is that if the oneshot timer/counter is canceled, we only know the remaining time with a precision of USEC_PER_TICK microseconds. This means the calculated remaining time is between 0 and USEC_PER_TICK microseconds too long. To fix this I subtract one tick if the calculated remaining time is greater than one tick and otherwise set the remaining time to zero. By doing so the measured times are much more precise as without it." --- arch/arm/src/sam34/Kconfig | 1 + arch/arm/src/sam34/sam4cm_oneshot.c | 67 +++++++++++++++++++++++----- arch/arm/src/sam34/sam4cm_oneshot.h | 19 ++++++-- arch/arm/src/sam34/sam4cm_tickless.c | 6 +-- 4 files changed, 75 insertions(+), 18 deletions(-) diff --git a/arch/arm/src/sam34/Kconfig b/arch/arm/src/sam34/Kconfig index ed14f21ade..b704da5674 100644 --- a/arch/arm/src/sam34/Kconfig +++ b/arch/arm/src/sam34/Kconfig @@ -1060,6 +1060,7 @@ config SAM34_TC5_TIOB config SAM34_ONESHOT bool "TC one-shot wrapper" + depends on SAM34_FREERUN default n if !SCHED_TICKLESS default y if SCHED_TICKLESS ---help--- diff --git a/arch/arm/src/sam34/sam4cm_oneshot.c b/arch/arm/src/sam34/sam4cm_oneshot.c index a793350d66..eeda41bc8e 100644 --- a/arch/arm/src/sam34/sam4cm_oneshot.c +++ b/arch/arm/src/sam34/sam4cm_oneshot.c @@ -58,6 +58,7 @@ #include #include "sam4cm_oneshot.h" +#include "sam4cm_freerun.h" #ifdef CONFIG_SAM34_ONESHOT @@ -106,10 +107,11 @@ static void sam_oneshot_handler(TC_HANDLE tch, void *arg, uint32_t sr) /* Forward the event, clearing out any vestiges */ - oneshot_handler = (oneshot_handler_t)oneshot->handler; - oneshot->handler = NULL; - oneshot_arg = (void *)oneshot->arg; - oneshot->arg = NULL; + oneshot_handler = (oneshot_handler_t)oneshot->handler; + oneshot->handler = NULL; + oneshot_arg = (void *)oneshot->arg; + oneshot->arg = NULL; + oneshot->start_count = 0; oneshot_handler(oneshot_arg); } @@ -206,10 +208,11 @@ int sam_oneshot_initialize(struct sam_oneshot_s *oneshot, int chan, * success. */ - oneshot->chan = chan; - oneshot->running = false; - oneshot->handler = NULL; - oneshot->arg = NULL; + oneshot->chan = chan; + oneshot->running = false; + oneshot->handler = NULL; + oneshot->arg = NULL; + oneshot->start_count = 0; return OK; } @@ -248,8 +251,8 @@ int sam_oneshot_max_delay(struct sam_oneshot_s *oneshot, uint64_t *usec) * ****************************************************************************/ -int sam_oneshot_start(struct sam_oneshot_s *oneshot, oneshot_handler_t handler, - void *arg, const struct timespec *ts) +int sam_oneshot_start(struct sam_oneshot_s *oneshot, struct sam_freerun_s *freerun, + oneshot_handler_t handler, void *arg, const struct timespec *ts) { uint64_t usec; uint64_t regval; @@ -267,7 +270,7 @@ int sam_oneshot_start(struct sam_oneshot_s *oneshot, oneshot_handler_t handler, /* Yes.. then cancel it */ tcvdbg("Already running... cancelling\n"); - (void)sam_oneshot_cancel(oneshot, NULL); + (void)sam_oneshot_cancel(oneshot, freerun, NULL); } /* Save the new handler and its argument */ @@ -306,6 +309,26 @@ int sam_oneshot_start(struct sam_oneshot_s *oneshot, oneshot_handler_t handler, sam_tc_start(oneshot->tch); + /* The function sam_tc_start() starts the timer/counter by setting the + * bits TC_CCR_CLKEN and TC_CCR_SWTRG in the channel control register. + * The first one enables the timer/counter the latter performs an + * software trigger, which starts the clock and sets the counter + * register to zero. This reset is performed with the next valid edge + * of the selected clock. Thus it can take up USEC_PER_TICK microseconds + * until the counter register becomes zero. + * + * If the timer is canceled within this period the counter register holds + * the counter value for the last timer/counter run. To circumvent this + * the counter value of the freerun timer/counter is stored at each start + * of the oneshot timer/counter. + * + * The function up_timer_gettime() could also be used for this but it takes + * too long. If up_timer_gettime() is called within this function the problem + * vanishes at least if compiled with no optimisation. + */ + + oneshot->start_count = sam_tc_getcounter(freerun->tch); + /* Enable interrupts. We should get the callback when the interrupt * occurs. */ @@ -340,7 +363,8 @@ int sam_oneshot_start(struct sam_oneshot_s *oneshot, oneshot_handler_t handler, * ****************************************************************************/ -int sam_oneshot_cancel(struct sam_oneshot_s *oneshot, struct timespec *ts) +int sam_oneshot_cancel(struct sam_oneshot_s *oneshot, struct sam_freerun_s *freerun, + struct timespec *ts) { irqstate_t flags; uint64_t usec; @@ -381,6 +405,17 @@ int sam_oneshot_cancel(struct sam_oneshot_s *oneshot, struct timespec *ts) count = sam_tc_getcounter(oneshot->tch); rc = sam_tc_getregister(oneshot->tch, TC_REGC); + /* In the case the timer/counter was canceled very short after its start, + * the counter register can hold the wrong value (the value of the last + * run). To prevent this the counter value is set to zero if not at + * least on tick passed since the start of the timer/counter. + */ + + if (count > 0 && sam_tc_getcounter(freerun->tch) == oneshot->start_count) + { + count = 0; + } + /* Now we can disable the interrupt and stop the timer. */ sam_tc_attach(oneshot->tch, NULL, NULL, 0); @@ -429,6 +464,14 @@ int sam_oneshot_cancel(struct sam_oneshot_s *oneshot, struct timespec *ts) usec = (((uint64_t)(rc - count)) * USEC_PER_SEC) / sam_tc_divfreq(oneshot->tch); + /* Each time the timer/counter is canceled the time calculated from + * the two registers (counter and REGC) is accurate up to an error + * between 0 and USEC_PER_TICK microseconds. To correct this error + * one tick which means USEC_PER_TICK microseconds are subtracted. + */ + + usec = usec > USEC_PER_TICK ? usec - USEC_PER_TICK : 0; + /* Return the time remaining in the correct form */ sec = usec / USEC_PER_SEC; diff --git a/arch/arm/src/sam34/sam4cm_oneshot.h b/arch/arm/src/sam34/sam4cm_oneshot.h index 3c3266b5db..d7dc7a18ee 100644 --- a/arch/arm/src/sam34/sam4cm_oneshot.h +++ b/arch/arm/src/sam34/sam4cm_oneshot.h @@ -46,6 +46,7 @@ #include #include "sam4cm_tc.h" +#include "sam4cm_freerun.h" #ifdef CONFIG_SAM34_ONESHOT @@ -82,6 +83,11 @@ struct sam_oneshot_s volatile oneshot_handler_t handler; /* Oneshot expiration callback */ volatile void *arg; /* The argument that will accompany * the callback */ + volatile uint32_t start_count; /* Stores the value of the freerun counter, + * at each start of the onshot timer. Is neccesary + * to find out if the onshot counter was updated + * correctly at the time of the call to + * sam_oneshot_cancel or not. */ }; /**************************************************************************** @@ -136,6 +142,9 @@ int sam_oneshot_max_delay(struct sam_oneshot_s *oneshot, uint64_t *usec); * oneshot Caller allocated instance of the oneshot state structure. This * structure must have been previously initialized via a call to * sam_oneshot_initialize(); + * freerun Caller allocated instance of the freerun state structure. This + * structure must have been previously initialized via a call to + * sam_freerun_initialize(); * handler The function to call when when the oneshot timer expires. * arg An opaque argument that will accompany the callback. * ts Provides the duration of the one shot timer. @@ -146,8 +155,8 @@ int sam_oneshot_max_delay(struct sam_oneshot_s *oneshot, uint64_t *usec); * ****************************************************************************/ -int sam_oneshot_start(struct sam_oneshot_s *oneshot, oneshot_handler_t handler, - void *arg, const struct timespec *ts); +int sam_oneshot_start(struct sam_oneshot_s *oneshot, struct sam_freerun_s *freerun, + oneshot_handler_t handler, void *arg, const struct timespec *ts); /**************************************************************************** * Name: sam_oneshot_cancel @@ -162,6 +171,9 @@ int sam_oneshot_start(struct sam_oneshot_s *oneshot, oneshot_handler_t handler, * oneshot Caller allocated instance of the oneshot state structure. This * structure must have been previously initialized via a call to * sam_oneshot_initialize(); + * freerun Caller allocated instance of the freerun state structure. This + * structure must have been previously initialized via a call to + * sam_freerun_initialize(); * ts The location in which to return the time remaining on the * oneshot timer. A time of zero is returned if the timer is * not running. @@ -173,7 +185,8 @@ int sam_oneshot_start(struct sam_oneshot_s *oneshot, oneshot_handler_t handler, * ****************************************************************************/ -int sam_oneshot_cancel(struct sam_oneshot_s *oneshot, struct timespec *ts); +int sam_oneshot_cancel(struct sam_oneshot_s *oneshot, struct sam_freerun_s *freerun, + struct timespec *ts); #undef EXTERN #ifdef __cplusplus diff --git a/arch/arm/src/sam34/sam4cm_tickless.c b/arch/arm/src/sam34/sam4cm_tickless.c index 0495241331..7d13e8756e 100644 --- a/arch/arm/src/sam34/sam4cm_tickless.c +++ b/arch/arm/src/sam34/sam4cm_tickless.c @@ -365,8 +365,8 @@ int up_timer_gettime(FAR struct timespec *ts) int up_timer_cancel(FAR struct timespec *ts) { - return ONESHOT_INITIALIZED(&g_tickless.oneshot) ? - sam_oneshot_cancel(&g_tickless.oneshot, ts) : + return ONESHOT_INITIALIZED(&g_tickless.oneshot) && FREERUN_INITIALIZED(&g_tickless.freerun) ? + sam_oneshot_cancel(&g_tickless.oneshot, &g_tickless.freerun, ts) : -EAGAIN; } @@ -398,7 +398,7 @@ int up_timer_cancel(FAR struct timespec *ts) int up_timer_start(FAR const struct timespec *ts) { return ONESHOT_INITIALIZED(&g_tickless.oneshot) ? - sam_oneshot_start(&g_tickless.oneshot, sam_oneshot_handler, NULL, ts) : + sam_oneshot_start(&g_tickless.oneshot, &g_tickless.freerun, sam_oneshot_handler, NULL, ts) : -EAGAIN; } #endif /* CONFIG_SCHED_TICKLESS */ -- GitLab From 4643fcdfd81df6cd5cd65d43e903399e5d88078e Mon Sep 17 00:00:00 2001 From: ziggurat29 Date: Sun, 29 May 2016 11:09:00 -0500 Subject: [PATCH 294/307] correct logic hazard in latch and load nybble; was transitioning control lines at the same time as enable, causing spurious behaviour on less-tolerant displays improve timing parameters in init sequences for better display compatibility correct (row,col) -> address calculation; affects 4-line displays update comments in header and readme --- drivers/lcd/pcf8574_lcd_backpack.c | 34 ++++++++++++++------- drivers/lcd/pcf8574_lcd_backpack_readme.txt | 21 ++++++++----- include/nuttx/lcd/pcf8574_lcd_backpack.h | 9 ++++-- 3 files changed, 43 insertions(+), 21 deletions(-) diff --git a/drivers/lcd/pcf8574_lcd_backpack.c b/drivers/lcd/pcf8574_lcd_backpack.c index 09ccdfcd2b..c06a0951dd 100644 --- a/drivers/lcd/pcf8574_lcd_backpack.c +++ b/drivers/lcd/pcf8574_lcd_backpack.c @@ -63,9 +63,9 @@ /* timing characteristics of the LCD interface */ -#define DELAY_US_NYBBLE0 200 -#define DELAY_US_NYBBLE1 100 -#define DELAY_US_WRITE 35 +#define DELAY_US_NYBBLE0 20 +#define DELAY_US_NYBBLE1 10 +#define DELAY_US_WRITE 40 #define DELAY_US_HOMECLEAR 1500 /* HD44780 commands */ @@ -259,7 +259,7 @@ static inline uint8_t rc2addr(FAR struct pcf8574_lcd_dev_s *priv, * of first line, and fourth line is a continuation of second. */ - return (row - 2) * 0x40 + (col - priv->cfg.cols); + return (row - 2) * 0x40 + (col + priv->cfg.cols); } } @@ -383,9 +383,14 @@ static void latch_nybble(FAR struct pcf8574_lcd_dev_s *priv, uint8_t nybble, en_bit = 1 << priv->cfg.en; rs_bit = rs ? (1 << priv->cfg.rs) : 0; - /* Put the nybble, preserving backlight, reset R/~W and set EN and maybe RS */ + /* Put the nybble, preserving backlight, reset R/~W and maybe RS */ - lcddata = prepare_nybble(priv, nybble) | priv->bl_bit | en_bit | rs_bit; + lcddata = prepare_nybble(priv, nybble) | priv->bl_bit | rs_bit; + pca8574_write(priv, lcddata); + + /* Now set EN */ + + lcddata |= en_bit; pca8574_write(priv, lcddata); up_udelay(DELAY_US_NYBBLE0); /* setup */ @@ -419,9 +424,14 @@ static uint8_t load_nybble(FAR struct pcf8574_lcd_dev_s *priv, bool rs) rs_bit = rs ? (1 << priv->cfg.rs) : 0; rw_bit = 1 << priv->cfg.rw; - /* Put highs on the data lines, preserve, set R/~W and set EN and maybe RS */ + /* Put highs on the data lines, preserve, set R/~W and maybe RS */ + + lcddata = prepare_nybble(priv, 0x0f) | priv->bl_bit | rw_bit | rs_bit; + pca8574_write(priv, lcddata); + + /* Now set EN */ - lcddata = prepare_nybble(priv, 0x0f) | priv->bl_bit | en_bit | rw_bit | rs_bit; + lcddata |= en_bit; pca8574_write(priv, lcddata); up_udelay(DELAY_US_NYBBLE0); /* setup */ @@ -538,7 +548,7 @@ static void lcd_init(FAR struct pcf8574_lcd_dev_s *priv) { /* Wait for more than 15 ms after Vcc for the LCD to stabilize */ - usleep(20000); + usleep(50000); /* Perform the init sequence. This sequence of commands is constructed so * that it will get the device into nybble mode irrespective of what state @@ -548,7 +558,7 @@ static void lcd_init(FAR struct pcf8574_lcd_dev_s *priv) * the remainder of operations. */ - /* Send Command 0x30, set 8-bit mode, and wait > 4.1 ms*/ + /* Send Command 0x30, set 8-bit mode, and wait > 4.1 ms */ latch_nybble(priv, 0x30>>4, false); usleep(5000); @@ -556,15 +566,17 @@ static void lcd_init(FAR struct pcf8574_lcd_dev_s *priv) /* Send Command 0x30, set 8-bit mode, and wait > 100 us */ latch_nybble(priv, 0x30>>4, false); - usleep(200); + usleep(5000); /* Send Command 0x30, set 8-bit mode */ latch_nybble(priv, 0x30>>4, false); + usleep(200); /* now Function set: Set interface to be 4 bits long (only 1 cycle write for the first time). */ latch_nybble(priv, 0x20>>4, false); + usleep(5000); /* Function set: DL=0;Interface is 4 bits, N=1 (2 Lines), F=0 (5x8 dots font) */ diff --git a/drivers/lcd/pcf8574_lcd_backpack_readme.txt b/drivers/lcd/pcf8574_lcd_backpack_readme.txt index d5573ea377..edae94e0b6 100644 --- a/drivers/lcd/pcf8574_lcd_backpack_readme.txt +++ b/drivers/lcd/pcf8574_lcd_backpack_readme.txt @@ -225,7 +225,7 @@ Example of programming a character image: Now character '\x04' will display as an 'up arrow'. Note, you might consider avoiding the use of code point 0x00 unless -absolutely needed, because the embedded nul character can cause +you absolutely need it, because the embedded nul character can cause problems. The driver, and write() apis are binary, and unaffected, but things like printf() and puts() assume C-style strings, and are affected. @@ -237,9 +237,16 @@ Troubleshooting bus timeouts that suggest a non-responsive slave. * Check your board wiring and configuration specification. Buzz out the lines if you have to. -* Con't forget to check the 'contrast' potentiometer. The voltage - at the central wiper should be approximately 0.29 V. The useful - range of voltages at this pin is very narrow, and outside that - range there will be nothing visible on the display, so most of the - turn range of the pot is non-useful. Much of human life has been - wasted in the rediscovery of this farcically idiotic +* Remember to set the (ros,cols) geometry in pcf8574_lcd_backpack_config_s + before registration of the driver, since this cannot be determined + programmatically. +* If the driver registration step seems to 'hang' it could be the I2C + driver performing retries due to no response from the LCD backpack. Check + the address. Turning on debug output for I2C can help make this visible. +* Don't forget to check the 'contrast' potentiometer. The voltage at the + central wiper should be approximately 0.3 V - 2.4 V, but the actual value + is is dependent on the physics of the attached LCD module. The useful + range of voltages at this pin for any given LCD is quite narrow, and + outside that range there will be nothing visible on the display, so most + of the turn range of the pot is non-useful. It's less 'contrast' and + more 'LCD segment drive bias'. diff --git a/include/nuttx/lcd/pcf8574_lcd_backpack.h b/include/nuttx/lcd/pcf8574_lcd_backpack.h index 437d71d64f..abbe6f9701 100644 --- a/include/nuttx/lcd/pcf8574_lcd_backpack.h +++ b/include/nuttx/lcd/pcf8574_lcd_backpack.h @@ -58,12 +58,15 @@ * Pretty much anything on the market except 4x40, which really consists of two * separate 2x40 controllers, and the I2C backpack doesn't support those due * to the second 'E' line being needed. + * Additionally, you still need to set the (row,col) geometry explicitly, since + * there is not a means of determining this dynamically. * Consider these 'informative'. - * XXX Note, actual testing has been done on LCD_I2C_BACKPACK_CFG_MJKDZ only, - * the others come from online research. + * XXX Note, actual testing has been done on LCD_I2C_BACKPACK_CFG_MJKDZ + * and LCD_I2C_BACKPACK_CFG_SAINSMART only, the others come from online + * research. */ -/* board marked 'mjkdz' */ +/* board marked 'mjkdz' and Arduino-IIC-LCD GY-LCD-V1 */ #define LCD_I2C_BACKPACK_CFG_MJKDZ {0x20,4,5,6,0,1,2,3,7,false,0,0} -- GitLab From 815bea77ea4b6ed10741862cb33e4315282a84d2 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 29 May 2016 10:23:06 -0600 Subject: [PATCH 295/307] i.MX6: Update ECSPI header file --- arch/arm/src/imx6/chip/imx_ecspi.h | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/arch/arm/src/imx6/chip/imx_ecspi.h b/arch/arm/src/imx6/chip/imx_ecspi.h index e034ef737c..2d7864132d 100644 --- a/arch/arm/src/imx6/chip/imx_ecspi.h +++ b/arch/arm/src/imx6/chip/imx_ecspi.h @@ -141,10 +141,26 @@ # define ECSPI_CONREG_CH1MASTER (2 << ECSPI_CONREG_CHMODE_SHIFT) /* Channel 1 master mode */ # define ECSPI_CONREG_CH2MASTER (4 << ECSPI_CONREG_CHMODE_SHIFT) /* Channel 2 master mode */ # define ECSPI_CONREG_CH3MASTER (8 << ECSPI_CONREG_CHMODE_SHIFT) /* Channel 3 master mode */ -#define ECSPI_CONREG_POSTDIV_SHIFT (8) /* Bits 8-11: SPI Post divider */ +#define ECSPI_CONREG_POSTDIV_SHIFT (8) /* Bits 8-11: SPI Post divider (exponent) */ #define ECSPI_CONREG_POSTDIV_MASK (15 << ECSPI_CONREG_POSTDIV_SHIFT) -# define ECSPI_CONREG_POSTDIV(n) ((uint32_t)(n) << ECSPI_CONREG_POSTDIV_SHIFT) -#define ECSPI_CONREG_PREDIV_SHIFT (12) /* Bits 12-15: SPI Pre divider */ +# define ECSPI_CONREG_POSTDIV_EXP(n) ((uint32_t)(n) << ECSPI_CONREG_POSTDIV_SHIFT) +# define ECSPI_CONREG_POSTDIV_1 (0 << ECSPI_CONREG_POSTDIV_SHIFT) /* Divide by 2*0 */ +# define ECSPI_CONREG_POSTDIV_2 (1 << ECSPI_CONREG_POSTDIV_SHIFT) /* Divide by 2*1 */ +# define ECSPI_CONREG_POSTDIV_4 (2 << ECSPI_CONREG_POSTDIV_SHIFT) /* Divide by 2*2 */ +# define ECSPI_CONREG_POSTDIV_8 (3 << ECSPI_CONREG_POSTDIV_SHIFT) /* Divide by 2*3 */ +# define ECSPI_CONREG_POSTDIV_16 (4 << ECSPI_CONREG_POSTDIV_SHIFT) /* Divide by 2*4 */ +# define ECSPI_CONREG_POSTDIV_32 (5 << ECSPI_CONREG_POSTDIV_SHIFT) /* Divide by 2*5 */ +# define ECSPI_CONREG_POSTDIV_64 (6 << ECSPI_CONREG_POSTDIV_SHIFT) /* Divide by 2*6 */ +# define ECSPI_CONREG_POSTDIV_128 (7 << ECSPI_CONREG_POSTDIV_SHIFT) /* Divide by 2*7 */ +# define ECSPI_CONREG_POSTDIV_256 (8 << ECSPI_CONREG_POSTDIV_SHIFT) /* Divide by 2*8 */ +# define ECSPI_CONREG_POSTDIV_512 (9 << ECSPI_CONREG_POSTDIV_SHIFT) /* Divide by 2*9 */ +# define ECSPI_CONREG_POSTDIV_1024 (10 << ECSPI_CONREG_POSTDIV_SHIFT) /* Divide by 2*10 */ +# define ECSPI_CONREG_POSTDIV_2048 (11 << ECSPI_CONREG_POSTDIV_SHIFT) /* Divide by 2*11 */ +# define ECSPI_CONREG_POSTDIV_4096 (12 << ECSPI_CONREG_POSTDIV_SHIFT) /* Divide by 2*12 */ +# define ECSPI_CONREG_POSTDIV_8192 (13 << ECSPI_CONREG_POSTDIV_SHIFT) /* Divide by 2*13 */ +# define ECSPI_CONREG_POSTDIV_16384 (14 << ECSPI_CONREG_POSTDIV_SHIFT) /* Divide by 2*14 */ +# define ECSPI_CONREG_POSTDIV_32768 (15 << ECSPI_CONREG_POSTDIV_SHIFT) /* Divide by 2*15 */ +#define ECSPI_CONREG_PREDIV_SHIFT (12) /* Bits 12-15: SPI Pre divider (minus 1) */ #define ECSPI_CONREG_PREDIV_MASK (15 << ECSPI_CONREG_PREDIV_SHIFT) # define ECSPI_CONREG_PREDIV(n) ((uint32_t)(n) << ECSPI_CONREG_PREDIV_SHIFT) #define ECSPI_CONREG_DRCTL_SHIFT 16 /* Bits 16-17: SPI Data ready control */ -- GitLab From 5c6c7bd60d37313eb6b393f5f1117d27dd47a635 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20St=C3=BChn?= Date: Sun, 29 May 2016 13:45:40 -0600 Subject: [PATCH 296/307] Fix recently introduced problem with build of ADC driver with analog debug enabled. --- drivers/analog/adc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/analog/adc.c b/drivers/analog/adc.c index 7c20c112b9..3dc8a4e42c 100644 --- a/drivers/analog/adc.c +++ b/drivers/analog/adc.c @@ -432,7 +432,7 @@ int adc_register(FAR const char *path, FAR struct adc_dev_s *dev) ret = dev->ad_ops->ao_bind(dev, &g_adc_callback); if (ret < 0) { - adbg("ERROR: Failed to bind callbacks: %d\n", ret) + adbg("ERROR: Failed to bind callbacks: %d\n", ret); return ret; } -- GitLab From bb7a57968164dfda4269e5390b32895ae160a989 Mon Sep 17 00:00:00 2001 From: ziggurat29 Date: Sun, 29 May 2016 14:53:37 -0500 Subject: [PATCH 297/307] fleshed out rest of fileops interface; read now takes into consideration current file position (so the display can be read in multiple operations, and indiate EOF correctly), seek (really just to facilitate rewind), and unlink (to facilitate dropping from system at runtime). --- drivers/lcd/pcf8574_lcd_backpack.c | 229 +++++++++++++++++++++++++++-- 1 file changed, 218 insertions(+), 11 deletions(-) diff --git a/drivers/lcd/pcf8574_lcd_backpack.c b/drivers/lcd/pcf8574_lcd_backpack.c index c06a0951dd..a8e288c6cc 100644 --- a/drivers/lcd/pcf8574_lcd_backpack.c +++ b/drivers/lcd/pcf8574_lcd_backpack.c @@ -86,6 +86,8 @@ # define lcdvdbg(x...) #endif +#define MAX_OPENCNT (255) /* Limit of uint8_t */ + /**************************************************************************** * Private Types ****************************************************************************/ @@ -95,6 +97,8 @@ struct pcf8574_lcd_dev_s FAR struct i2c_master_s *i2c; /* I2C interface */ struct pcf8574_lcd_backpack_config_s cfg; /* gpio configuration */ uint8_t bl_bit; /* current backlight bit */ + uint8_t refs; /* Number of references */ + uint8_t unlinked; /* We are unlinked, so teardown on last close */ sem_t sem_excl; /* mutex */ }; @@ -117,12 +121,16 @@ static ssize_t pcf8574_lcd_read(FAR struct file *filep, FAR char *buffer, size_t buflen); static ssize_t pcf8574_lcd_write(FAR struct file *filep, FAR const char *buffer, size_t buflen); +static off_t pcf8574_lcd_seek(FAR struct file *filep, off_t offset, int whence); static int pcf8574_lcd_ioctl(FAR struct file *filep, int cmd, unsigned long arg); #ifndef CONFIG_DISABLE_POLL static int pcf8574lcd_poll(FAR struct file *filep, FAR struct pollfd *fds, bool setup); #endif +#ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS +static int pcf8574_lcd_unlink(FAR struct inode *inode); +#endif /**************************************************************************** * Private Data @@ -134,12 +142,14 @@ static const struct file_operations g_pcf8574_lcd_fops = pcf8574_lcd_close, /* close */ pcf8574_lcd_read, /* read */ pcf8574_lcd_write, /* write */ - 0, /* seek */ + pcf8574_lcd_seek, /* seek */ pcf8574_lcd_ioctl, /* ioctl */ #ifndef CONFIG_DISABLE_POLL pcf8574lcd_poll, /* poll */ #endif - 0 /* unlink */ +#ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS + pcf8574_lcd_unlink /* unlink */ +#endif }; /**************************************************************************** @@ -1000,6 +1010,53 @@ static int lcd_getstream(FAR struct lib_instream_s *instream) return EOF; } +/**************************************************************************** + * Name: lcd_fpos_to_curpos + * + * Description: + * Convert a file logical offset to a screen cursor pos (row,col). This + * discounts 'synthesized' line feeds at the end of screen lines. + * + ****************************************************************************/ + +static void lcd_fpos_to_curpos(FAR struct pcf8574_lcd_dev_s *priv, + off_t fpos, uint8_t *row, uint8_t *col, bool* onlf) +{ + int virtcols; + + virtcols = (priv->cfg.cols + 1); + + /* Determine if this is a 'virtual' position (on the synthetic LF) */ + + *onlf = (priv->cfg.cols == fpos % virtcols); + + /* Adjust off any preceding synthetic LF's to get linear position */ + + fpos -= fpos / virtcols; + + /* Compute row/col from linear position */ + + *row = fpos / priv->cfg.cols; + *col = fpos % priv->cfg.cols; +} + +/**************************************************************************** + * Name: lcd_curpos_to_fpos + * + * Description: + * Convert a screen cursor pos (row,col) to a file logical offset. This + * includes 'synthesized' line feeds at the end of screen lines. + * + ****************************************************************************/ + +static void lcd_curpos_to_fpos(FAR struct pcf8574_lcd_dev_s *priv, + uint8_t row, uint8_t col, off_t* fpos) +{ + /* the logical file position is the linear position plus any synthetic LF */ + + *fpos = (row * priv->cfg.cols) + col + row; +} + /**************************************************************************** * Name: pcf8574_lcd_open * @@ -1010,6 +1067,22 @@ static int lcd_getstream(FAR struct lib_instream_s *instream) static int pcf8574_lcd_open(FAR struct file *filep) { + FAR struct inode *inode = filep->f_inode; + FAR struct pcf8574_lcd_dev_s *priv = (FAR struct pcf8574_lcd_dev_s *)inode->i_private; + + /* Increment the reference count */ + + sem_wait(&priv->sem_excl); + if (priv->refs == MAX_OPENCNT) + { + return -EMFILE; + } + else + { + priv->refs++; + } + + sem_post(&priv->sem_excl); return OK; } @@ -1023,7 +1096,35 @@ static int pcf8574_lcd_open(FAR struct file *filep) static int pcf8574_lcd_close(FAR struct file *filep) { - return OK; + FAR struct inode *inode = filep->f_inode; + FAR struct pcf8574_lcd_dev_s *priv = (FAR struct pcf8574_lcd_dev_s *)inode->i_private; + int ret; + + /* Decrement the reference count */ + + sem_wait(&priv->sem_excl); + + if (priv->refs == 0) + { + ret = -EIO; + } + else + { + priv->refs--; + + /* If we had previously unlinked, but there were open references at the + * time, we need to do the final teardown now. + */ + + if (priv->refs == 0 && priv->unlinked) + { + /* We have no real teardown at present */ + } + ret = OK; + } + + sem_post(&priv->sem_excl); + return ret; } /**************************************************************************** @@ -1031,7 +1132,8 @@ static int pcf8574_lcd_close(FAR struct file *filep) * * Description: * This simply reads as much of the display memory as possible. This is - * probably not very interesting. + * generally not very interesting, but we do it in a way that allows us to + * 'cat' the LCD contents via the shell. * ****************************************************************************/ @@ -1044,22 +1146,44 @@ static ssize_t pcf8574_lcd_read(FAR struct file *filep, FAR char *buffer, uint8_t addr; uint8_t row; uint8_t col; + bool onlf; sem_wait(&priv->sem_excl); /* Get current cursor position so we can restore it */ (void)lcd_read_busy_addr(priv, &addr); - addr2rc(priv, addr, &row, &col); - /* Just read the entire display into the given buffer, as much as possible */ + /* Convert file position to row/col address and position DDADDR there */ - nIdx = 0; - row = 0; - col = 0; + lcd_fpos_to_curpos(priv, filep->f_pos, &row, &col, &onlf); + lcd_set_curpos(priv, row, col); + + /* Read as much of the display as possible */ + nIdx = 0; while (nIdx < buflen && row < priv->cfg.rows) { + /* Synthesize end-of-line LF and advance to start of next row */ + + if (onlf) + { + /* Synthesize LF for all but last row */ + + if ( row < priv->cfg.rows-1) + { + buffer[nIdx] = '\x0a'; + onlf = false; + ++filep->f_pos; + ++nIdx; + } + ++row; + col = 0; + continue; + } + + /* If we are at start of line we will need to update DDRAM address */ + if (0 == col) { lcd_set_curpos(priv, row, 0); @@ -1067,12 +1191,15 @@ static ssize_t pcf8574_lcd_read(FAR struct file *filep, FAR char *buffer, buffer[nIdx] = lcd_getdata(priv); + ++filep->f_pos; ++nIdx; ++col; + + /* If we are now at the end of a line, we setup for the synthetic LF */ + if (priv->cfg.cols == col) { - ++row; - col = 0; + onlf = true; } } @@ -1226,10 +1353,62 @@ static ssize_t pcf8574_lcd_write(FAR struct file *filep, } } + /* Wherever we wound up, update our logical file pos to reflect it */ + + lcd_curpos_to_fpos(priv, row, col, &filep->f_pos); + sem_post(&priv->sem_excl); return buflen; } +/**************************************************************************** + * Name: pcf8574_lcd_seek + * + * Description: + * Seek the logical file pointer to the specified position. This is + * probably not very interesting except possibly for (SEEK_SET, 0) to + * rewind the pointer for a subsequent read(). + * The file pointer is logical, and includes synthesized LF chars at the + * end of the display lines. + * + ****************************************************************************/ + +static off_t pcf8574_lcd_seek(FAR struct file *filep, off_t offset, int whence) +{ + FAR struct inode *inode = filep->f_inode; + FAR struct pcf8574_lcd_dev_s *priv = (FAR struct pcf8574_lcd_dev_s *)inode->i_private; + int maxpos; + + sem_wait(&priv->sem_excl); + + maxpos = priv->cfg.rows * priv->cfg.cols + (priv->cfg.rows - 1); + switch (whence) + { + case SEEK_CUR: + filep->f_pos += offset; + if (filep->f_pos > maxpos) + filep->f_pos = maxpos; + break; + + case SEEK_SET: + filep->f_pos = offset; + if (filep->f_pos > maxpos) + filep->f_pos = maxpos; + break; + + case SEEK_END: + filep->f_pos = maxpos; + break; + + default: + /* Return EINVAL if the whence argument is invalid */ + filep->f_pos = -EINVAL; + } + + sem_post(&priv->sem_excl); + return filep->f_pos; +} + /**************************************************************************** * Name: pcf8574_lcd_ioctl * @@ -1349,6 +1528,32 @@ static int pcf8574lcd_poll(FAR struct file *filep, FAR struct pollfd *fds, } #endif +/**************************************************************************** + * Name: pcf8574_lcd_unlink + ****************************************************************************/ + +#ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS +static int pcf8574_lcd_unlink(FAR struct inode *inode) +{ + FAR struct pcf8574_lcd_dev_s *priv = (FAR struct pcf8574_lcd_dev_s *)inode->i_private; + int ret = OK; + + sem_wait(&priv->sem_excl); + + priv->unlinked = true; + + /* If there are no open references to the driver then tear it down now */ + if (priv->refs == 0) + { + /* We have no real teardown at present */ + ret = OK; + } + + sem_post(&priv->sem_excl); + return ret; +} +#endif + /**************************************************************************** * Public Functions ****************************************************************************/ @@ -1395,6 +1600,8 @@ int pcf8574_lcd_backpack_register(FAR const char *devpath, priv->i2c = i2c; priv->cfg = *cfg; priv->bl_bit = priv->cfg.bl_active_high ? 0 : (1 << priv->cfg.bl); + priv->refs = 0; + priv->unlinked = false; sem_init(&priv->sem_excl, 0, 1); /* Initialize */ -- GitLab From f65616f872f2e3ea653ebb107db66951a13c27da Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 30 May 2016 09:16:08 -0600 Subject: [PATCH 298/307] Replace confusing references to uIP with just 'the network' --- TODO | 6 ++++++ arch/arm/src/c5471/c5471_ethernet.c | 24 ++++++++++++------------ arch/arm/src/imx6/Make.defs | 4 ++++ arch/arm/src/kinetis/kinetis_enet.c | 14 +++++++------- arch/arm/src/lpc43xx/lpc43_ethernet.c | 16 ++++++++-------- arch/arm/src/sam34/sam_emac.c | 18 +++++++++--------- arch/arm/src/sama5/sam_emaca.c | 18 +++++++++--------- arch/arm/src/sama5/sam_emacb.c | 18 +++++++++--------- arch/arm/src/sama5/sam_gmac.c | 18 +++++++++--------- arch/arm/src/stm32/stm32_eth.c | 20 ++++++++++---------- arch/arm/src/stm32f7/stm32_ethernet.c | 20 ++++++++++---------- arch/arm/src/tiva/lm3s_ethernet.c | 18 +++++++++--------- arch/arm/src/tiva/tm4c_ethernet.c | 20 ++++++++++---------- 13 files changed, 112 insertions(+), 102 deletions(-) diff --git a/TODO b/TODO index eeb3e6d29d..b131d0205e 100644 --- a/TODO +++ b/TODO @@ -599,6 +599,12 @@ o Kernel/Protected Build For a truly secure system. Privileges need to be checked in every interface that permits one thread to modify the properties of another thread. + + NOTE: It would be a simple matter to simply disable user + threads from modifying privileged threads. However, you + might also want to be able to modify privileged threads from + user tasks with certain permissions. Permissions is a much + more complex issue. Status: Open Priority: Low for most embedded systems but would be a critical need if NuttX were used in a secure system. diff --git a/arch/arm/src/c5471/c5471_ethernet.c b/arch/arm/src/c5471/c5471_ethernet.c index 11c157f35f..5d1ddb6863 100644 --- a/arch/arm/src/c5471/c5471_ethernet.c +++ b/arch/arm/src/c5471/c5471_ethernet.c @@ -331,9 +331,9 @@ struct c5471_driver_s uint32_t c_rxdropped; /* Packets dropped because of size */ #endif - /* This holds the information visible to uIP/NuttX */ + /* This holds the information visible to the NuttX network */ - struct net_driver_s c_dev; /* Interface understood by uIP */ + struct net_driver_s c_dev; /* Interface understood by the network */ }; /**************************************************************************** @@ -960,7 +960,7 @@ static int c5471_transmit(struct c5471_driver_s *c5471) * Function: c5471_txpoll * * Description: - * The transmitter is available, check if uIP has any outgoing packets ready + * The transmitter is available, check if the network has any outgoing packets ready * to send. This is a callback from devif_poll(). devif_poll() may be called: * * 1. When the preceding TX packet send is complete, @@ -1162,7 +1162,7 @@ static void c5471_receive(struct c5471_driver_s *c5471) int j = 0; /* Walk the newly received packet contained within the EIM and transfer - * its contents to the uIP buffer. This frees up the memory contained within + * its contents to the network buffer. This frees up the memory contained within * the EIM for additional packets that might be received later from the network. */ @@ -1185,7 +1185,7 @@ static void c5471_receive(struct c5471_driver_s *c5471) framelen = (getreg32(c5471->c_txcpudesc) & EIM_TXDESC_BYTEMASK); packetlen += framelen; - /* Check if the received packet will fit within the uIP packet buffer */ + /* Check if the received packet will fit within the network packet buffer */ if (packetlen < (CONFIG_NET_ETH_MTU + 4)) { @@ -1234,7 +1234,7 @@ static void c5471_receive(struct c5471_driver_s *c5471) c5471_inctxcpu(c5471); } - /* Adjust the packet length to remove the CRC bytes that uIP doesn't care about. */ + /* Adjust the packet length to remove the CRC bytes that the network doesn't care about. */ packetlen -= 4; @@ -1244,8 +1244,8 @@ static void c5471_receive(struct c5471_driver_s *c5471) c5471->c_rxpackets++; #endif - /* If we successfully transferred the data into the uIP buffer, then pass it on - * to uIP for processing. + /* If we successfully transferred the data into the network buffer, then pass it on + * to the network for processing. */ if (packetlen > 0 && packetlen < CONFIG_NET_ETH_MTU) @@ -1496,7 +1496,7 @@ static void c5471_txdone(struct c5471_driver_s *c5471) wd_cancel(c5471->c_txtimeout); - /* Then poll uIP for new XMIT data */ + /* Then poll the network for new XMIT data */ (void)devif_poll(&c5471->c_dev, c5471_txpoll); } @@ -1615,7 +1615,7 @@ static void c5471_txtimeout(int argc, uint32_t arg, ...) c5471_ifdown(&c5471->c_dev); c5471_ifup(&c5471->c_dev); - /* Then poll uIP for new XMIT data */ + /* Then poll the network for new XMIT data */ (void)devif_poll(&c5471->c_dev, c5471_txpoll); } @@ -1647,7 +1647,7 @@ static void c5471_polltimer(int argc, uint32_t arg, ...) if ((EIM_TXDESC_OWN_HOST & getreg32(c5471->c_rxcpudesc)) == 0) { - /* If so, update TCP timing states and poll uIP for new XMIT data */ + /* If so, update TCP timing states and poll the network for new XMIT data */ (void)devif_timer(&c5471->c_dev, c5471_txpoll); } @@ -1811,7 +1811,7 @@ static int c5471_txavail(struct net_driver_s *dev) if ((EIM_TXDESC_OWN_HOST & getreg32(c5471->c_rxcpudesc)) == 0) { - /* If so, then poll uIP for new XMIT data */ + /* If so, then poll the network for new XMIT data */ (void)devif_poll(&c5471->c_dev, c5471_txpoll); } diff --git a/arch/arm/src/imx6/Make.defs b/arch/arm/src/imx6/Make.defs index 3f949158e3..47b36a5f1a 100644 --- a/arch/arm/src/imx6/Make.defs +++ b/arch/arm/src/imx6/Make.defs @@ -150,3 +150,7 @@ CHIP_CSRCS += imx_serial.c imx_lowputc.c ifeq ($(CONFIG_SMP),y) CHIP_CSRCS += imx_cpuboot.c endif + +ifeq ($(CONFIG_IMX6_ECSPI),y) +CHIP_CSRCS += imx_ecspi.c +endif diff --git a/arch/arm/src/kinetis/kinetis_enet.c b/arch/arm/src/kinetis/kinetis_enet.c index 95e511546f..0a05346055 100644 --- a/arch/arm/src/kinetis/kinetis_enet.c +++ b/arch/arm/src/kinetis/kinetis_enet.c @@ -165,9 +165,9 @@ struct kinetis_driver_s struct enet_desc_s *txdesc; /* A pointer to the list of TX descriptor */ struct enet_desc_s *rxdesc; /* A pointer to the list of RX descriptors */ - /* This holds the information visible to uIP/NuttX */ + /* This holds the information visible to the NuttX network */ - struct net_driver_s dev; /* Interface understood by uIP */ + struct net_driver_s dev; /* Interface understood by the network */ /* The DMA descriptors. A unaligned uint8_t is used to allocate the * memory; 16 is added to assure that we can meet the descriptor alignment @@ -435,7 +435,7 @@ static int kinetis_transmit(FAR struct kinetis_driver_s *priv) * Function: kinetis_txpoll * * Description: - * The transmitter is available, check if uIP has any outgoing packets ready + * The transmitter is available, check if the network has any outgoing packets ready * to send. This is a callback from devif_poll(). devif_poll() may be called: * * 1. When the preceding TX packet send is complete, @@ -731,7 +731,7 @@ static void kinetis_txdone(FAR struct kinetis_driver_s *priv) putreg32(regval, KINETIS_ENET_EIMR); } - /* There should be space for a new TX in any event. Poll uIP for new XMIT + /* There should be space for a new TX in any event. Poll the network for new XMIT * data */ @@ -848,7 +848,7 @@ static void kinetis_txtimeout(int argc, uint32_t arg, ...) (void)kinetis_ifdown(&priv->dev); (void)kinetis_ifup(&priv->dev); - /* Then poll uIP for new XMIT data */ + /* Then poll the network for new XMIT data */ (void)devif_poll(&priv->dev, kinetis_txpoll); } @@ -881,7 +881,7 @@ static void kinetis_polltimer(int argc, uint32_t arg, ...) if (!kinetics_txringfull(priv)) { - /* If so, update TCP timing states and poll uIP for new XMIT data. Hmmm.. + /* If so, update TCP timing states and poll the network for new XMIT data. Hmmm.. * might be bug here. Does this mean if there is a transmit in progress, * we will missing TCP time state updates? */ @@ -1112,7 +1112,7 @@ static int kinetis_txavail(struct net_driver_s *dev) if (!kinetics_txringfull(priv)) { - /* No, there is space for another transfer. Poll uIP for new + /* No, there is space for another transfer. Poll the network for new * XMIT data. */ diff --git a/arch/arm/src/lpc43xx/lpc43_ethernet.c b/arch/arm/src/lpc43xx/lpc43_ethernet.c index 733a161c2b..cca1e89766 100644 --- a/arch/arm/src/lpc43xx/lpc43_ethernet.c +++ b/arch/arm/src/lpc43xx/lpc43_ethernet.c @@ -522,9 +522,9 @@ struct lpc43_ethmac_s struct work_s work; /* For deferring work to the work queue */ #endif - /* This holds the information visible to uIP/NuttX */ + /* This holds the information visible to the NuttX network */ - struct net_driver_s dev; /* Interface understood by uIP */ + struct net_driver_s dev; /* Interface understood by the network */ /* Used to track transmit and receive descriptors */ @@ -928,7 +928,7 @@ static int lpc43_transmit(FAR struct lpc43_ethmac_s *priv) struct eth_txdesc_s *txdesc; struct eth_txdesc_s *txfirst; - /* The internal (optimal) uIP buffer size may be configured to be larger + /* The internal (optimal) network buffer size may be configured to be larger * than the Ethernet buffer size. */ @@ -1114,7 +1114,7 @@ static int lpc43_transmit(FAR struct lpc43_ethmac_s *priv) * Function: lpc43_txpoll * * Description: - * The transmitter is available, check if uIP has any outgoing packets ready + * The transmitter is available, check if the network has any outgoing packets ready * to send. This is a callback from devif_poll(). devif_poll() may be called: * * 1. When the preceding TX packet send is complete, @@ -1520,7 +1520,7 @@ static int lpc43_recvframe(FAR struct lpc43_ethmac_s *priv) buffer = lpc43_allocbuffer(priv); /* Take the buffer from the RX descriptor of the first free - * segment, put it into the uIP device structure, then replace + * segment, put it into the network device structure, then replace * the buffer in the RX descriptor with the newly allocated * buffer. */ @@ -1602,7 +1602,7 @@ static void lpc43_receive(FAR struct lpc43_ethmac_s *priv) pkt_input(&priv->dev); #endif - /* Check if the packet is a valid size for the uIP buffer configuration + /* Check if the packet is a valid size for the network buffer configuration * (this should not happen) */ @@ -1888,7 +1888,7 @@ static void lpc43_txdone(FAR struct lpc43_ethmac_s *priv) lpc43_disableint(priv, ETH_DMAINT_TI); } - /* Then poll uIP for new XMIT data */ + /* Then poll the network for new XMIT data */ lpc43_dopoll(priv); } @@ -2120,7 +2120,7 @@ static inline void lpc43_txtimeout_process(FAR struct lpc43_ethmac_s *priv) lpc43_ifdown(&priv->dev); lpc43_ifup(&priv->dev); - /* Then poll uIP for new XMIT data */ + /* Then poll the network for new XMIT data */ lpc43_dopoll(priv); } diff --git a/arch/arm/src/sam34/sam_emac.c b/arch/arm/src/sam34/sam_emac.c index d33f1d8aab..c11332586a 100644 --- a/arch/arm/src/sam34/sam_emac.c +++ b/arch/arm/src/sam34/sam_emac.c @@ -278,9 +278,9 @@ struct sam_emac_s struct work_s work; /* For deferring work to the work queue */ #endif - /* This holds the information visible to uIP/NuttX */ + /* This holds the information visible to the NuttX network */ - struct net_driver_s dev; /* Interface understood by uIP */ + struct net_driver_s dev; /* Interface understood by the network */ /* Used to track transmit and receive descriptors */ @@ -841,7 +841,7 @@ static int sam_transmit(struct sam_emac_s *priv) * Function: sam_txpoll * * Description: - * The transmitter is available, check if uIP has any outgoing packets ready + * The transmitter is available, check if the network has any outgoing packets ready * to send. This is a callback from devif_poll(). devif_poll() may be called: * * 1. When the preceding TX packet send is complete, @@ -951,7 +951,7 @@ static void sam_dopoll(struct sam_emac_s *priv) if (sam_txfree(priv) > 0) { - /* If we have the descriptor, then poll uIP for new XMIT data. */ + /* If we have the descriptor, then poll the network for new XMIT data. */ (void)devif_poll(dev, sam_txpoll); } @@ -1201,7 +1201,7 @@ static void sam_receive(struct sam_emac_s *priv) { sam_dumppacket("Received packet", dev->d_buf, dev->d_len); - /* Check if the packet is a valid size for the uIP buffer configuration + /* Check if the packet is a valid size for the network buffer configuration * (this should not happen) */ @@ -1403,7 +1403,7 @@ static void sam_txdone(struct sam_emac_s *priv) sam_putreg(priv, SAM_EMAC_IER, EMAC_INT_RCOMP); } - /* Then poll uIP for new XMIT data */ + /* Then poll the network for new XMIT data */ sam_dopoll(priv); } @@ -1734,7 +1734,7 @@ static inline void sam_txtimeout_process(FAR struct sam_emac_s *priv) sam_ifdown(&priv->dev); sam_ifup(&priv->dev); - /* Then poll uIP for new XMIT data */ + /* Then poll the network for new XMIT data */ sam_dopoll(priv); } @@ -1844,7 +1844,7 @@ static inline void sam_poll_process(FAR struct sam_emac_s *priv) if (sam_txfree(priv) > 0) { - /* Update TCP timing states and poll uIP for new XMIT data. */ + /* Update TCP timing states and poll the network for new XMIT data. */ (void)devif_timer(dev, sam_txpoll); } @@ -2083,7 +2083,7 @@ static inline void sam_txavail_process(FAR struct sam_emac_s *priv) if (priv->ifup) { - /* Poll uIP for new XMIT data */ + /* Poll the network for new XMIT data */ sam_dopoll(priv); } diff --git a/arch/arm/src/sama5/sam_emaca.c b/arch/arm/src/sama5/sam_emaca.c index 5d3ad03e60..a4f895760d 100644 --- a/arch/arm/src/sama5/sam_emaca.c +++ b/arch/arm/src/sama5/sam_emaca.c @@ -267,9 +267,9 @@ struct sam_emac_s WDOG_ID txpoll; /* TX poll timer */ WDOG_ID txtimeout; /* TX timeout timer */ - /* This holds the information visible to uIP/NuttX */ + /* This holds the information visible to the NuttX network */ - struct net_driver_s dev; /* Interface understood by uIP */ + struct net_driver_s dev; /* Interface understood by the network */ /* Used to track transmit and receive descriptors */ @@ -817,7 +817,7 @@ static int sam_transmit(struct sam_emac_s *priv) * Function: sam_txpoll * * Description: - * The transmitter is available, check if uIP has any outgoing packets ready + * The transmitter is available, check if the network has any outgoing packets ready * to send. This is a callback from devif_poll(). devif_poll() may be called: * * 1. When the preceding TX packet send is complete, @@ -926,7 +926,7 @@ static void sam_dopoll(struct sam_emac_s *priv) if (sam_txfree(priv) > 0) { - /* If we have the descriptor, then poll uIP for new XMIT data. */ + /* If we have the descriptor, then poll the network for new XMIT data. */ (void)devif_poll(dev, sam_txpoll); } @@ -1206,7 +1206,7 @@ static void sam_receive(struct sam_emac_s *priv) { sam_dumppacket("Received packet", dev->d_buf, dev->d_len); - /* Check if the packet is a valid size for the uIP buffer configuration + /* Check if the packet is a valid size for the network buffer configuration * (this should not happen) */ @@ -1410,7 +1410,7 @@ static void sam_txdone(struct sam_emac_s *priv) sam_putreg(priv, SAM_EMAC_IER, EMAC_INT_RCOMP); } - /* Then poll uIP for new XMIT data */ + /* Then poll the network for new XMIT data */ sam_dopoll(priv); } @@ -1633,7 +1633,7 @@ static void sam_txtimeout(int argc, uint32_t arg, ...) sam_ifdown(&priv->dev); sam_ifup(&priv->dev); - /* Then poll uIP for new XMIT data */ + /* Then poll the network for new XMIT data */ sam_dopoll(priv); } @@ -1667,7 +1667,7 @@ static void sam_polltimer(int argc, uint32_t arg, ...) if (sam_txfree(priv) > 0) { - /* Update TCP timing states and poll uIP for new XMIT data. */ + /* Update TCP timing states and poll the network for new XMIT data. */ (void)devif_timer(dev, sam_txpoll); } @@ -1837,7 +1837,7 @@ static int sam_txavail(struct net_driver_s *dev) if (priv->ifup) { - /* Poll uIP for new XMIT data */ + /* Poll the network for new XMIT data */ sam_dopoll(priv); } diff --git a/arch/arm/src/sama5/sam_emacb.c b/arch/arm/src/sama5/sam_emacb.c index fccc2d51f0..270acd635b 100644 --- a/arch/arm/src/sama5/sam_emacb.c +++ b/arch/arm/src/sama5/sam_emacb.c @@ -421,9 +421,9 @@ struct sam_emac_s struct work_s work; /* For deferring work to the work queue */ #endif - /* This holds the information visible to uIP/NuttX */ + /* This holds the information visible to the NuttX network */ - struct net_driver_s dev; /* Interface understood by uIP */ + struct net_driver_s dev; /* Interface understood by the network */ /* Constant and configured attributes of the EMAC */ @@ -1180,7 +1180,7 @@ static int sam_transmit(struct sam_emac_s *priv) * Function: sam_txpoll * * Description: - * The transmitter is available, check if uIP has any outgoing packets ready + * The transmitter is available, check if the network has any outgoing packets ready * to send. This is a callback from devif_poll(). devif_poll() may be called: * * 1. When the preceding TX packet send is complete, @@ -1290,7 +1290,7 @@ static void sam_dopoll(struct sam_emac_s *priv) if (sam_txfree(priv) > 0) { - /* If we have the descriptor, then poll uIP for new XMIT data. */ + /* If we have the descriptor, then poll the network for new XMIT data. */ (void)devif_poll(dev, sam_txpoll); } @@ -1569,7 +1569,7 @@ static void sam_receive(struct sam_emac_s *priv) { sam_dumppacket("Received packet", dev->d_buf, dev->d_len); - /* Check if the packet is a valid size for the uIP buffer configuration + /* Check if the packet is a valid size for the network buffer configuration * (this should not happen) */ @@ -1797,7 +1797,7 @@ static void sam_txdone(struct sam_emac_s *priv) sam_putreg(priv, SAM_EMAC_IER_OFFSET, EMAC_INT_RCOMP); } - /* Then poll uIP for new XMIT data */ + /* Then poll the network for new XMIT data */ sam_dopoll(priv); } @@ -2154,7 +2154,7 @@ static inline void sam_txtimeout_process(FAR struct sam_emac_s *priv) sam_ifdown(&priv->dev); sam_ifup(&priv->dev); - /* Then poll uIP for new XMIT data */ + /* Then poll the network for new XMIT data */ sam_dopoll(priv); } @@ -2264,7 +2264,7 @@ static inline void sam_poll_process(FAR struct sam_emac_s *priv) if (sam_txfree(priv) > 0) { - /* Update TCP timing states and poll uIP for new XMIT data. */ + /* Update TCP timing states and poll the network for new XMIT data. */ (void)devif_timer(dev, sam_txpoll); } @@ -2511,7 +2511,7 @@ static inline void sam_txavail_process(FAR struct sam_emac_s *priv) if (priv->ifup) { - /* Poll uIP for new XMIT data */ + /* Poll the network for new XMIT data */ sam_dopoll(priv); } diff --git a/arch/arm/src/sama5/sam_gmac.c b/arch/arm/src/sama5/sam_gmac.c index 8426e7dcb3..7db62d10db 100644 --- a/arch/arm/src/sama5/sam_gmac.c +++ b/arch/arm/src/sama5/sam_gmac.c @@ -193,9 +193,9 @@ struct sam_gmac_s WDOG_ID txpoll; /* TX poll timer */ WDOG_ID txtimeout; /* TX timeout timer */ - /* This holds the information visible to uIP/NuttX */ + /* This holds the information visible to the NuttX network */ - struct net_driver_s dev; /* Interface understood by uIP */ + struct net_driver_s dev; /* Interface understood by the network */ /* Used to track transmit and receive descriptors */ @@ -749,7 +749,7 @@ static int sam_transmit(struct sam_gmac_s *priv) * Function: sam_txpoll * * Description: - * The transmitter is available, check if uIP has any outgoing packets ready + * The transmitter is available, check if the network has any outgoing packets ready * to send. This is a callback from devif_poll(). devif_poll() may be called: * * 1. When the preceding TX packet send is complete, @@ -858,7 +858,7 @@ static void sam_dopoll(struct sam_gmac_s *priv) if (sam_txfree(priv) > 0) { - /* If we have the descriptor, then poll uIP for new XMIT data. */ + /* If we have the descriptor, then poll the network for new XMIT data. */ (void)devif_poll(dev, sam_txpoll); } @@ -1136,7 +1136,7 @@ static void sam_receive(struct sam_gmac_s *priv) { sam_dumppacket("Received packet", dev->d_buf, dev->d_len); - /* Check if the packet is a valid size for the uIP buffer configuration + /* Check if the packet is a valid size for the network buffer configuration * (this should not happen) */ @@ -1338,7 +1338,7 @@ static void sam_txdone(struct sam_gmac_s *priv) sam_putreg(priv, SAM_GMAC_IER, GMAC_INT_RCOMP); } - /* Then poll uIP for new XMIT data */ + /* Then poll the network for new XMIT data */ sam_dopoll(priv); } @@ -1585,7 +1585,7 @@ static void sam_txtimeout(int argc, uint32_t arg, ...) sam_ifdown(&priv->dev); sam_ifup(&priv->dev); - /* Then poll uIP for new XMIT data */ + /* Then poll the network for new XMIT data */ sam_dopoll(priv); } @@ -1619,7 +1619,7 @@ static void sam_polltimer(int argc, uint32_t arg, ...) if (sam_txfree(priv) > 0) { - /* Update TCP timing states and poll uIP for new XMIT data. */ + /* Update TCP timing states and poll the network for new XMIT data. */ (void)devif_timer(dev, sam_txpoll); } @@ -1792,7 +1792,7 @@ static int sam_txavail(struct net_driver_s *dev) if (priv->ifup) { - /* Poll uIP for new XMIT data */ + /* Poll the network for new XMIT data */ sam_dopoll(priv); } diff --git a/arch/arm/src/stm32/stm32_eth.c b/arch/arm/src/stm32/stm32_eth.c index 7b06b9a368..c7a4abc044 100644 --- a/arch/arm/src/stm32/stm32_eth.c +++ b/arch/arm/src/stm32/stm32_eth.c @@ -585,9 +585,9 @@ struct stm32_ethmac_s struct work_s work; /* For deferring work to the work queue */ #endif - /* This holds the information visible to uIP/NuttX */ + /* This holds the information visible to the NuttX network */ - struct net_driver_s dev; /* Interface understood by uIP */ + struct net_driver_s dev; /* Interface understood by the network */ /* Used to track transmit and receive descriptors */ @@ -993,7 +993,7 @@ static int stm32_transmit(FAR struct stm32_ethmac_s *priv) struct eth_txdesc_s *txdesc; struct eth_txdesc_s *txfirst; - /* The internal (optimal) uIP buffer size may be configured to be larger + /* The internal (optimal) network buffer size may be configured to be larger * than the Ethernet buffer size. */ @@ -1179,7 +1179,7 @@ static int stm32_transmit(FAR struct stm32_ethmac_s *priv) * Function: stm32_txpoll * * Description: - * The transmitter is available, check if uIP has any outgoing packets ready + * The transmitter is available, check if the network has any outgoing packets ready * to send. This is a callback from devif_poll(). devif_poll() may be called: * * 1. When the preceding TX packet send is complete, @@ -1321,7 +1321,7 @@ static void stm32_dopoll(FAR struct stm32_ethmac_s *priv) if ((priv->txhead->tdes0 & ETH_TDES0_OWN) == 0 && priv->txhead->tdes2 == 0) { - /* If we have the descriptor, then poll uIP for new XMIT data. + /* If we have the descriptor, then poll the network for new XMIT data. * Allocate a buffer for the poll. */ @@ -1585,7 +1585,7 @@ static int stm32_recvframe(FAR struct stm32_ethmac_s *priv) buffer = stm32_allocbuffer(priv); /* Take the buffer from the RX descriptor of the first free - * segment, put it into the uIP device structure, then replace + * segment, put it into the network device structure, then replace * the buffer in the RX descriptor with the newly allocated * buffer. */ @@ -1667,7 +1667,7 @@ static void stm32_receive(FAR struct stm32_ethmac_s *priv) pkt_input(&priv->dev); #endif - /* Check if the packet is a valid size for the uIP buffer configuration + /* Check if the packet is a valid size for the network buffer configuration * (this should not happen) */ @@ -1955,7 +1955,7 @@ static void stm32_txdone(FAR struct stm32_ethmac_s *priv) stm32_disableint(priv, ETH_DMAINT_TI); } - /* Then poll uIP for new XMIT data */ + /* Then poll the network for new XMIT data */ stm32_dopoll(priv); } @@ -2321,7 +2321,7 @@ static inline void stm32_poll_process(FAR struct stm32_ethmac_s *priv) if (dev->d_buf) { - /* Update TCP timing states and poll uIP for new XMIT data. + /* Update TCP timing states and poll the network for new XMIT data. */ (void)devif_timer(dev, stm32_txpoll); @@ -2551,7 +2551,7 @@ static inline void stm32_txavail_process(FAR struct stm32_ethmac_s *priv) if (priv->ifup) { - /* Poll uIP for new XMIT data */ + /* Poll the network for new XMIT data */ stm32_dopoll(priv); } diff --git a/arch/arm/src/stm32f7/stm32_ethernet.c b/arch/arm/src/stm32f7/stm32_ethernet.c index 4cf496a4eb..4e6664ade1 100644 --- a/arch/arm/src/stm32f7/stm32_ethernet.c +++ b/arch/arm/src/stm32f7/stm32_ethernet.c @@ -609,9 +609,9 @@ struct stm32_ethmac_s struct work_s work; /* For deferring work to the work queue */ #endif - /* This holds the information visible to uIP/NuttX */ + /* This holds the information visible to the NuttX network */ - struct net_driver_s dev; /* Interface understood by uIP */ + struct net_driver_s dev; /* Interface understood by the network */ /* Used to track transmit and receive descriptors */ @@ -1041,7 +1041,7 @@ static int stm32_transmit(struct stm32_ethmac_s *priv) struct eth_txdesc_s *txdesc; struct eth_txdesc_s *txfirst; - /* The internal (optimal) uIP buffer size may be configured to be larger + /* The internal (optimal) network buffer size may be configured to be larger * than the Ethernet buffer size. */ @@ -1249,7 +1249,7 @@ static int stm32_transmit(struct stm32_ethmac_s *priv) * Function: stm32_txpoll * * Description: - * The transmitter is available, check if uIP has any outgoing packets ready + * The transmitter is available, check if the network has any outgoing packets ready * to send. This is a callback from devif_poll(). devif_poll() may be called: * * 1. When the preceding TX packet send is complete, @@ -1391,7 +1391,7 @@ static void stm32_dopoll(struct stm32_ethmac_s *priv) if ((priv->txhead->tdes0 & ETH_TDES0_OWN) == 0 && priv->txhead->tdes2 == 0) { - /* If we have the descriptor, then poll uIP for new XMIT data. + /* If we have the descriptor, then poll the network for new XMIT data. * Allocate a buffer for the poll. */ @@ -1675,7 +1675,7 @@ static int stm32_recvframe(struct stm32_ethmac_s *priv) buffer = stm32_allocbuffer(priv); /* Take the buffer from the RX descriptor of the first free - * segment, put it into the uIP device structure, then replace + * segment, put it into the network device structure, then replace * the buffer in the RX descriptor with the newly allocated * buffer. */ @@ -1778,7 +1778,7 @@ static void stm32_receive(struct stm32_ethmac_s *priv) pkt_input(&priv->dev); #endif - /* Check if the packet is a valid size for the uIP buffer configuration + /* Check if the packet is a valid size for the network buffer configuration * (this should not happen) */ @@ -2072,7 +2072,7 @@ static void stm32_txdone(struct stm32_ethmac_s *priv) stm32_disableint(priv, ETH_DMAINT_TI); } - /* Then poll uIP for new XMIT data */ + /* Then poll the network for new XMIT data */ stm32_dopoll(priv); } @@ -2437,7 +2437,7 @@ static inline void stm32_poll_process(struct stm32_ethmac_s *priv) if (dev->d_buf) { - /* Update TCP timing states and poll uIP for new XMIT data. + /* Update TCP timing states and poll the network for new XMIT data. */ (void)devif_timer(dev, stm32_txpoll); @@ -2667,7 +2667,7 @@ static inline void stm32_txavail_process(struct stm32_ethmac_s *priv) if (priv->ifup) { - /* Poll uIP for new XMIT data */ + /* Poll the network for new XMIT data */ stm32_dopoll(priv); } diff --git a/arch/arm/src/tiva/lm3s_ethernet.c b/arch/arm/src/tiva/lm3s_ethernet.c index 5544e25442..0acaeb3c07 100644 --- a/arch/arm/src/tiva/lm3s_ethernet.c +++ b/arch/arm/src/tiva/lm3s_ethernet.c @@ -187,9 +187,9 @@ struct tiva_driver_s WDOG_ID ld_txpoll; /* TX poll timer */ WDOG_ID ld_txtimeout; /* TX timeout timer */ - /* This holds the information visible to uIP/NuttX */ + /* This holds the information visible to the NuttX network */ - struct net_driver_s ld_dev; /* Interface understood by uIP */ + struct net_driver_s ld_dev; /* Interface understood by the network */ }; /**************************************************************************** @@ -558,7 +558,7 @@ static int tiva_transmit(struct tiva_driver_s *priv) * Function: tiva_txpoll * * Description: - * The transmitter is available, check if uIP has any outgoing packets ready + * The transmitter is available, check if the network has any outgoing packets ready * to send. This is a callback from devif_poll(). devif_poll() may be called: * * 1. When the preceding TX packet send is complete, @@ -677,7 +677,7 @@ static void tiva_receive(struct tiva_driver_s *priv) /* Check if the pktlen is valid. It should be large enough to hold * an Ethernet header and small enough to fit entirely in the I/O * buffer. Six is subtracted to acount for the 2-byte length/type - * and 4 byte FCS that are not copied into the uIP packet. + * and 4 byte FCS that are not copied into the network packet. */ if (pktlen > (CONFIG_NET_ETH_MTU + 6) || pktlen <= (ETH_HDRLEN + 6)) @@ -752,7 +752,7 @@ static void tiva_receive(struct tiva_driver_s *priv) } } - /* Pass the packet length to uIP MINUS 2 bytes for the length and + /* Pass the packet length to the network MINUS 2 bytes for the length and * 4 bytes for the FCS. */ @@ -905,7 +905,7 @@ static void tiva_txdone(struct tiva_driver_s *priv) DEBUGASSERT((tiva_ethin(priv, TIVA_MAC_TR_OFFSET) & MAC_TR_NEWTX) == 0); - /* Then poll uIP for new XMIT data */ + /* Then poll the network for new XMIT data */ (void)devif_poll(&priv->ld_dev, tiva_txpoll); } @@ -1033,7 +1033,7 @@ static void tiva_txtimeout(int argc, uint32_t arg, ...) tiva_ifdown(&priv->ld_dev); tiva_ifup(&priv->ld_dev); - /* Then poll uIP for new XMIT data */ + /* Then poll the network for new XMIT data */ (void)devif_poll(&priv->ld_dev, tiva_txpoll); } @@ -1069,7 +1069,7 @@ static void tiva_polltimer(int argc, uint32_t arg, ...) if ((tiva_ethin(priv, TIVA_MAC_TR_OFFSET) & MAC_TR_NEWTX) == 0) { - /* If so, update TCP timing states and poll uIP for new XMIT data */ + /* If so, update TCP timing states and poll the network for new XMIT data */ (void)devif_timer(&priv->ld_dev, tiva_txpoll); @@ -1353,7 +1353,7 @@ static int tiva_txavail(struct net_driver_s *dev) flags = enter_critical_section(); if (priv->ld_bifup && (tiva_ethin(priv, TIVA_MAC_TR_OFFSET) & MAC_TR_NEWTX) == 0) { - /* If the interface is up and we can use the Tx FIFO, then poll uIP + /* If the interface is up and we can use the Tx FIFO, then poll the network * for new Tx data */ diff --git a/arch/arm/src/tiva/tm4c_ethernet.c b/arch/arm/src/tiva/tm4c_ethernet.c index d8e73bec3a..eeb36a32ec 100644 --- a/arch/arm/src/tiva/tm4c_ethernet.c +++ b/arch/arm/src/tiva/tm4c_ethernet.c @@ -630,7 +630,7 @@ struct tiva_ethmac_s xcpt_t handler; /* Attached PHY interrupt handler */ #endif - /* This holds the information visible to uIP/NuttX */ + /* This holds the information visible to the NuttX network */ struct net_driver_s dev; /* Interface understood by network subsystem */ @@ -1032,7 +1032,7 @@ static int tiva_transmit(FAR struct tiva_ethmac_s *priv) struct emac_txdesc_s *txdesc; struct emac_txdesc_s *txfirst; - /* The internal (optimal) uIP buffer size may be configured to be larger + /* The internal (optimal) network buffer size may be configured to be larger * than the Ethernet buffer size. */ @@ -1218,7 +1218,7 @@ static int tiva_transmit(FAR struct tiva_ethmac_s *priv) * Function: tiva_txpoll * * Description: - * The transmitter is available, check if uIP has any outgoing packets ready + * The transmitter is available, check if the network has any outgoing packets ready * to send. This is a callback from devif_poll(). devif_poll() may be called: * * 1. When the preceding TX packet send is complete, @@ -1360,7 +1360,7 @@ static void tiva_dopoll(FAR struct tiva_ethmac_s *priv) if ((priv->txhead->tdes0 & EMAC_TDES0_OWN) == 0 && priv->txhead->tdes2 == 0) { - /* If we have the descriptor, then poll uIP for new XMIT data. + /* If we have the descriptor, then poll the network for new XMIT data. * Allocate a buffer for the poll. */ @@ -1624,7 +1624,7 @@ static int tiva_recvframe(FAR struct tiva_ethmac_s *priv) buffer = tiva_allocbuffer(priv); /* Take the buffer from the RX descriptor of the first free - * segment, put it into the uIP device structure, then replace + * segment, put it into the network device structure, then replace * the buffer in the RX descriptor with the newly allocated * buffer. */ @@ -1706,7 +1706,7 @@ static void tiva_receive(FAR struct tiva_ethmac_s *priv) pkt_input(&priv->dev); #endif - /* Check if the packet is a valid size for the uIP buffer configuration + /* Check if the packet is a valid size for the network buffer configuration * (this should not happen) */ @@ -1980,7 +1980,7 @@ static void tiva_txdone(FAR struct tiva_ethmac_s *priv) tiva_disableint(priv, EMAC_DMAINT_TI); } - /* Then poll uIP for new XMIT data */ + /* Then poll the network for new XMIT data */ tiva_dopoll(priv); } @@ -2228,7 +2228,7 @@ static inline void tiva_txtimeout_process(FAR struct tiva_ethmac_s *priv) tiva_ifdown(&priv->dev); tiva_ifup(&priv->dev); - /* Then poll uIP for new XMIT data */ + /* Then poll the network for new XMIT data */ tiva_dopoll(priv); } @@ -2362,7 +2362,7 @@ static inline void tiva_poll_process(FAR struct tiva_ethmac_s *priv) if (dev->d_buf) { - /* Update TCP timing states and poll uIP for new XMIT data. + /* Update TCP timing states and poll the network for new XMIT data. */ (void)devif_timer(dev, tiva_txpoll); @@ -2592,7 +2592,7 @@ static inline void tiva_txavail_process(FAR struct tiva_ethmac_s *priv) if (priv->ifup) { - /* Poll uIP for new XMIT data */ + /* Poll the network for new XMIT data */ tiva_dopoll(priv); } -- GitLab From 4f208600aa366d99fcea96609146c101d09c2f13 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 30 May 2016 09:31:44 -0600 Subject: [PATCH 299/307] Replace confusing references to uIP with just 'the network' --- net/Kconfig | 2 +- net/arp/arp.h | 2 +- net/arp/arp_table.c | 2 +- net/devif/devif.h | 4 ++-- net/devif/devif_poll.c | 8 ++++---- net/pkt/Kconfig | 6 +++--- net/route/net_foreachroute.c | 4 ++-- net/socket/net_close.c | 14 +++++++------- net/socket/net_sendfile.c | 2 +- net/socket/recvfrom.c | 4 ++-- net/tcp/tcp_accept.c | 4 ++-- net/tcp/tcp_callback.c | 2 +- net/tcp/tcp_conn.c | 2 +- net/tcp/tcp_input.c | 2 +- net/tcp/tcp_send_unbuffered.c | 2 +- net/udp/udp.h | 2 +- net/udp/udp_conn.c | 2 +- 17 files changed, 32 insertions(+), 32 deletions(-) diff --git a/net/Kconfig b/net/Kconfig index 6d98fc77dc..3f454f4288 100644 --- a/net/Kconfig +++ b/net/Kconfig @@ -44,7 +44,7 @@ config NET_MULTIBUFFER bool "Use multiple device-side I/O buffers" default n ---help--- - Traditionally, the uIP stacl has used a single buffer for all + Traditionally, the uIP-based stack has used a single buffer for all incoming and outgoing traffic. If this configuration is selected, then the driver can manage multiple I/O buffers and can, for example, be filling one input buffer while sending another output diff --git a/net/arp/arp.h b/net/arp/arp.h index b32490b411..ba62f7893b 100644 --- a/net/arp/arp.h +++ b/net/arp/arp.h @@ -382,7 +382,7 @@ void arp_notify(in_addr_t ipaddr); * * Assumptions * Interrupts are disabled; Returned value will become unstable when - * interrupts are re-enabled or if any other uIP APIs are called. + * interrupts are re-enabled or if any other network APIs are called. * ****************************************************************************/ diff --git a/net/arp/arp_table.c b/net/arp/arp_table.c index bdb27ad79d..928ed59019 100644 --- a/net/arp/arp_table.c +++ b/net/arp/arp_table.c @@ -260,7 +260,7 @@ void arp_hdr_update(FAR uint16_t *pipaddr, FAR uint8_t *ethaddr) * * Assumptions * Interrupts are disabled; Returned value will become unstable when - * interrupts are re-enabled or if any other uIP APIs are called. + * interrupts are re-enabled or if any other network APIs are called. * ****************************************************************************/ diff --git a/net/devif/devif.h b/net/devif/devif.h index 2251ffcad0..bca0987896 100644 --- a/net/devif/devif.h +++ b/net/devif/devif.h @@ -426,8 +426,8 @@ uint16_t devif_dev_event(FAR struct net_driver_s *dev, void *pvconn, * processing can send data. * * The amount of data that actually is sent out after a call to this - * function is determined by the maximum amount of data TCP allows. uIP - * will automatically crop the data so that only the appropriate + * function is determined by the maximum amount of data TCP allows. The + * network will automatically crop the data so that only the appropriate * amount of data is sent. The mss field of the TCP connection structure * can be used to determine the amount of data that actually will be sent. * diff --git a/net/devif/devif_poll.c b/net/devif/devif_poll.c index 3ec68be4f3..928b779fb3 100644 --- a/net/devif/devif_poll.c +++ b/net/devif/devif_poll.c @@ -296,7 +296,7 @@ static inline int devif_poll_tcp_timer(FAR struct net_driver_s *dev, * Function: devif_poll * * Description: - * This function will traverse each active uIP connection structure and + * This function will traverse each active network connection structure and * will perform network polling operations. devif_poll() may be called * asynchronously with the network driver can accept another outgoing * packet. @@ -307,7 +307,7 @@ static inline int devif_poll_tcp_timer(FAR struct net_driver_s *dev, * should do only if it cannot accept further write data). * * When the callback function is called, there may be an outbound packet - * waiting for service in the uIP packet buffer, and if so the d_len field + * waiting for service in the device packet buffer, and if so the d_len field * is set to a value larger than zero. The device driver should then send * out the packet. * @@ -400,7 +400,7 @@ int devif_poll(FAR struct net_driver_s *dev, devif_poll_callback_t callback) * Function: devif_timer * * Description: - * These function will traverse each active uIP connection structure and + * These function will traverse each active network connection structure and * perform network timer operations. The Ethernet driver MUST implement * logic to periodically call devif_timer(). * @@ -410,7 +410,7 @@ int devif_poll(FAR struct net_driver_s *dev, devif_poll_callback_t callback) * should do only if it cannot accept further write data). * * When the callback function is called, there may be an outbound packet - * waiting for service in the uIP packet buffer, and if so the d_len field + * waiting for service in the device packet buffer, and if so the d_len field * is set to a value larger than zero. The device driver should then send * out the packet. * diff --git a/net/pkt/Kconfig b/net/pkt/Kconfig index 2fc26442dd..ae9c7891f5 100644 --- a/net/pkt/Kconfig +++ b/net/pkt/Kconfig @@ -13,9 +13,9 @@ config NET_PKT Packet sockets allow receiving and transmitting frames without a transport protocol in between. Frames received are copied into - a packet socket tap before they enter uIP. Data written into a - packet socket will bypass uIP altogether and be placed in the - transmission buffer of the network interface driver. + a packet socket tap before they enter the network. Data written into + a packet socket will bypass the network altogether and be placed in + the transmission buffer of the network interface driver. if NET_PKT diff --git a/net/route/net_foreachroute.c b/net/route/net_foreachroute.c index 13c154f539..1c5789dd64 100644 --- a/net/route/net_foreachroute.c +++ b/net/route/net_foreachroute.c @@ -91,7 +91,7 @@ int net_foreachroute(route_handler_t handler, FAR void *arg) ret = handler(route, arg); } - /* Unlock uIP */ + /* Unlock the network */ net_unlock(save); return ret; @@ -122,7 +122,7 @@ int net_foreachroute_ipv6(route_handler_ipv6_t handler, FAR void *arg) ret = handler(route, arg); } - /* Unlock uIP */ + /* Unlock the network */ net_unlock(save); return ret; diff --git a/net/socket/net_close.c b/net/socket/net_close.c index f439811b85..f03a9caeea 100644 --- a/net/socket/net_close.c +++ b/net/socket/net_close.c @@ -136,10 +136,10 @@ static inline int close_timeout(FAR struct tcp_close_s *pstate) * Function: netclose_interrupt * * Description: - * Handle uIP callback events. + * Handle network callback events. * * Parameters: - * conn - uIP TCP connection structure + * conn - TCP connection structure * * Returned Value: * None @@ -320,7 +320,7 @@ static inline void netclose_txnotify(FAR struct socket *psock, * Break any current TCP connection * * Parameters: - * conn - uIP TCP connection structure + * conn - TCP connection structure * * Returned Value: * None @@ -428,7 +428,7 @@ static inline int netclose_disconnect(FAR struct socket *psock) /* Free the connection */ conn->crefs = 0; /* No more references on the connection */ - tcp_free(conn); /* Free uIP resources */ + tcp_free(conn); /* Free network resources */ /* Get the result of the close */ @@ -517,7 +517,7 @@ int psock_close(FAR struct socket *psock) goto errout; } - /* We perform the uIP close operation only if this is the last count on + /* We perform the close operation only if this is the last count on * the socket. (actually, I think the socket crefs only takes the values * 0 and 1 right now). * @@ -527,7 +527,7 @@ int psock_close(FAR struct socket *psock) if (psock->s_crefs <= 1 && psock->s_conn != NULL) { - /* Perform uIP side of the close depending on the protocol type */ + /* Perform local side of the close depending on the protocol type */ switch (psock->s_type) { @@ -649,7 +649,7 @@ int psock_close(FAR struct socket *psock) /* Yes... free the connection structure */ conn->crefs = 0; /* No more references on the connection */ - pkt_free(psock->s_conn); /* Free uIP resources */ + pkt_free(psock->s_conn); /* Free network resources */ } else { diff --git a/net/socket/net_sendfile.c b/net/socket/net_sendfile.c index a8b7b9f162..d5fde26023 100644 --- a/net/socket/net_sendfile.c +++ b/net/socket/net_sendfile.c @@ -402,7 +402,7 @@ static uint16_t sendfile_interrupt(FAR struct net_driver_s *dev, FAR void *pvcon dev->d_sndlen = sndlen; - /* Set the sequence number for this packet. NOTE: uIP updates + /* Set the sequence number for this packet. NOTE: The network updates * sndseq on recept of ACK *before* this function is called. In that * case sndseq will point to the next unacknowledge byte (which might * have already been sent). We will overwrite the value of sndseq diff --git a/net/socket/recvfrom.c b/net/socket/recvfrom.c index 0125975393..9bc234f541 100644 --- a/net/socket/recvfrom.c +++ b/net/socket/recvfrom.c @@ -1692,8 +1692,8 @@ static ssize_t tcp_recvfrom(FAR struct socket *psock, FAR void *buf, size_t len, } } - /* In general, this uIP-based implementation will not support non-blocking - * socket operations... except in a few cases: Here for TCP receive with read-ahead + /* In general, this implementation will not support non-blocking socket + * operations... except in a few cases: Here for TCP receive with read-ahead * enabled. If this socket is configured as non-blocking then return EAGAIN * if no data was obtained from the read-ahead buffers. */ diff --git a/net/tcp/tcp_accept.c b/net/tcp/tcp_accept.c index a37db211db..ced4f0d659 100644 --- a/net/tcp/tcp_accept.c +++ b/net/tcp/tcp_accept.c @@ -250,8 +250,8 @@ int psock_tcp_accept(FAR struct socket *psock, FAR struct sockaddr *addr, accept_tcpsender(psock, state.acpt_newconn, addr, addrlen); } - /* In general, this uIP-based implementation will not support non-blocking - * socket operations... except in a few cases: Here for TCP accept with + /* In general, this implementation will not support non-blocking socket + * operations... except in a few cases: Here for TCP accept with * backlog enabled. If this socket is configured as non-blocking then * return EAGAIN if there is no pending connection in the backlog. */ diff --git a/net/tcp/tcp_callback.c b/net/tcp/tcp_callback.c index 73c6175fee..ac43091923 100644 --- a/net/tcp/tcp_callback.c +++ b/net/tcp/tcp_callback.c @@ -147,7 +147,7 @@ uint16_t tcp_callback(FAR struct net_driver_s *dev, FAR struct tcp_conn_s *conn, uint16_t flags) { /* Preserve the TCP_ACKDATA, TCP_CLOSE, and TCP_ABORT in the response. - * These is needed by uIP to handle responses and buffer state. The + * These is needed by the network to handle responses and buffer state. The * TCP_NEWDATA indication will trigger the ACK response, but must be * explicitly set in the callback. */ diff --git a/net/tcp/tcp_conn.c b/net/tcp/tcp_conn.c index 6cc9950fc0..efc6527cc5 100644 --- a/net/tcp/tcp_conn.c +++ b/net/tcp/tcp_conn.c @@ -73,7 +73,7 @@ * Private Data ****************************************************************************/ -/* The array containing all uIP TCP connections. */ +/* The array containing all TCP connections. */ static struct tcp_conn_s g_tcp_connections[CONFIG_NET_TCP_CONNS]; diff --git a/net/tcp/tcp_input.c b/net/tcp/tcp_input.c index 97bcb402fd..19c207f655 100644 --- a/net/tcp/tcp_input.c +++ b/net/tcp/tcp_input.c @@ -376,7 +376,7 @@ found: ackseq = tcp_getsequence(tcp->ackno); /* Check how many of the outstanding bytes have been acknowledged. For - * a most uIP send operation, this should always be true. However, + * most send operations, this should always be true. However, * the send() API sends data ahead when it can without waiting for * the ACK. In this case, the 'ackseq' could be less than then the * new sequence number. diff --git a/net/tcp/tcp_send_unbuffered.c b/net/tcp/tcp_send_unbuffered.c index 6d5c608ba3..53365e3f68 100644 --- a/net/tcp/tcp_send_unbuffered.c +++ b/net/tcp/tcp_send_unbuffered.c @@ -518,7 +518,7 @@ static uint16_t tcpsend_interrupt(FAR struct net_driver_s *dev, if ((pstate->snd_sent - pstate->snd_acked + sndlen) < conn->winsize) { - /* Set the sequence number for this packet. NOTE: uIP updates + /* Set the sequence number for this packet. NOTE: The network updates * sndseq on receipt of ACK *before* this function is called. In that * case sndseq will point to the next unacknowledged byte (which might * have already been sent). We will overwrite the value of sndseq diff --git a/net/udp/udp.h b/net/udp/udp.h index 91447d2596..f8584bff0b 100644 --- a/net/udp/udp.h +++ b/net/udp/udp.h @@ -74,7 +74,7 @@ * Public Type Definitions ****************************************************************************/ -/* Representation of a uIP UDP connection */ +/* Representation of a UDP connection */ struct devif_callback_s; /* Forward reference */ struct udp_hdr_s; /* Forward reference */ diff --git a/net/udp/udp_conn.c b/net/udp/udp_conn.c index ddd599382e..1f5ecd095c 100644 --- a/net/udp/udp_conn.c +++ b/net/udp/udp_conn.c @@ -76,7 +76,7 @@ * Private Data ****************************************************************************/ -/* The array containing all uIP UDP connections. */ +/* The array containing all UDP connections. */ struct udp_conn_s g_udp_connections[CONFIG_NET_UDP_CONNS]; -- GitLab From 44353f320c9dec87097e0aa677d239607b3b7264 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 30 May 2016 09:37:34 -0600 Subject: [PATCH 300/307] Replace confusing references to uIP with just 'the network' --- drivers/net/cs89x0.c | 12 +++++------ drivers/net/dm90x0.c | 16 +++++++-------- drivers/net/e1000.c | 10 ++++----- drivers/net/enc28j60.c | 38 +++++++++++++++++----------------- drivers/net/encx24j600.c | 44 ++++++++++++++++++++-------------------- drivers/net/ftmac100.c | 14 ++++++------- drivers/net/loopback.c | 4 ++-- drivers/net/slip.c | 12 +++++------ drivers/net/tun.c | 12 +++++------ 9 files changed, 81 insertions(+), 81 deletions(-) diff --git a/drivers/net/cs89x0.c b/drivers/net/cs89x0.c index dfaf2d6384..be6a890d1b 100644 --- a/drivers/net/cs89x0.c +++ b/drivers/net/cs89x0.c @@ -314,7 +314,7 @@ static int cs89x0_transmit(struct cs89x0_driver_s *cs89x0) * Function: cs89x0_txpoll * * Description: - * The transmitter is available, check if uIP has any outgoing packets ready + * The transmitter is available, check if the network has any outgoing packets ready * to send. This is a callback from devif_poll(). devif_poll() may be called: * * 1. When the preceding TX packet send is complete, @@ -436,7 +436,7 @@ static void cs89x0_receive(FAR struct cs89x0_driver_s *cs89x0, uint16_t isq) return; } - /* Check if the packet is a valid size for the uIP buffer configuration */ + /* Check if the packet is a valid size for the network buffer configuration */ if (rxlength > ???) { @@ -618,7 +618,7 @@ static void cs89x0_txdone(struct cs89x0_driver_s *cs89x0, uint16_t isq) wd_cancel(cs89x0->cs_txtimeout); - /* Then poll uIP for new XMIT data */ + /* Then poll the network for new XMIT data */ (void)devif_poll(&cs89x0->cs_dev, cs89x0_txpoll); } @@ -759,7 +759,7 @@ static void cs89x0_txtimeout(int argc, uint32_t arg, ...) /* Then reset the hardware */ #warning "Missing logic" - /* Then poll uIP for new XMIT data */ + /* Then poll the network for new XMIT data */ (void)devif_poll(&cs89x0->cs_dev, cs89x0_txpoll); } @@ -788,7 +788,7 @@ static void cs89x0_polltimer(int argc, uint32_t arg, ...) /* Check if there is room in the send another TXr packet. */ #warning "Missing logic" - /* If so, update TCP timing states and poll uIP for new XMIT data */ + /* If so, update TCP timing states and poll the network for new XMIT data */ (void)devif_timer(&cs89x0->cs_dev, cs89x0_txpoll); @@ -909,7 +909,7 @@ static int cs89x0_txavail(struct net_driver_s *dev) /* Check if there is room in the hardware to hold another outgoing packet. */ #warning "Missing logic" - /* If so, then poll uIP for new XMIT data */ + /* If so, then poll the network for new XMIT data */ (void)devif_poll(&cs89x0->cs_dev, cs89x0_txpoll); } diff --git a/drivers/net/dm90x0.c b/drivers/net/dm90x0.c index caaf0c1872..c1807b5303 100644 --- a/drivers/net/dm90x0.c +++ b/drivers/net/dm90x0.c @@ -309,7 +309,7 @@ struct dm9x_driver_s void (*dm_write)(const uint8_t *ptr, int len); void (*dm_discard)(int len); - /* This holds the information visible to uIP/NuttX */ + /* This holds the information visible to the NuttX network */ struct net_driver_s dm_dev; }; @@ -737,7 +737,7 @@ static int dm9x_transmit(struct dm9x_driver_s *dm9x) * Function: dm9x_txpoll * * Description: - * The transmitter is available, check if uIP has any outgoing packets ready + * The transmitter is available, check if the network has any outgoing packets ready * to send. This is a callback from devif_poll(). devif_poll() may be called: * * 1. When the preceding TX packet send is complete, @@ -873,7 +873,7 @@ static void dm9x_receive(FAR struct dm9x_driver_s *dm9x) dm9x->dm_discard(rx.desc.rx_len); } - /* Also check if the packet is a valid size for the uIP configuration */ + /* Also check if the packet is a valid size for the network configuration */ else if (rx.desc.rx_len < ETH_HDRLEN || rx.desc.rx_len > (CONFIG_NET_ETH_MTU + 2)) { @@ -886,7 +886,7 @@ static void dm9x_receive(FAR struct dm9x_driver_s *dm9x) } else { - /* Good packet... Copy the packet data out of SRAM and pass it one to uIP */ + /* Good packet... Copy the packet data out of SRAM and pass it one to the network */ dm9x->dm_dev.d_len = rx.desc.rx_len; dm9x->dm_read(dm9x->dm_dev.d_buf, rx.desc.rx_len); @@ -1065,7 +1065,7 @@ static void dm9x_txdone(struct dm9x_driver_s *dm9x) wd_cancel(dm9x->dm_txtimeout); } - /* Then poll uIP for new XMIT data */ + /* Then poll the network for new XMIT data */ (void)devif_poll(&dm9x->dm_dev, dm9x_txpoll); } @@ -1222,7 +1222,7 @@ static void dm9x_txtimeout(int argc, uint32_t arg, ...) dm9x_reset(dm9x); - /* Then poll uIP for new XMIT data */ + /* Then poll the network for new XMIT data */ (void)devif_poll(&dm9x->dm_dev, dm9x_txpoll); } @@ -1264,7 +1264,7 @@ static void dm9x_polltimer(int argc, uint32_t arg, ...) if (dm9x->dm_ntxpending < 1 || (dm9x->dm_b100M && dm9x->dm_ntxpending < 2)) { - /* If so, update TCP timing states and poll uIP for new XMIT data */ + /* If so, update TCP timing states and poll the network for new XMIT data */ (void)devif_timer(&dm9x->dm_dev, dm9x_txpoll); } @@ -1470,7 +1470,7 @@ static int dm9x_txavail(struct net_driver_s *dev) if (dm9x->dm_ntxpending < 1 || (dm9x->dm_b100M && dm9x->dm_ntxpending < 2)) { - /* If so, then poll uIP for new XMIT data */ + /* If so, then poll the network for new XMIT data */ (void)devif_poll(&dm9x->dm_dev, dm9x_txpoll); } diff --git a/drivers/net/e1000.c b/drivers/net/e1000.c index 11a4452989..e7f3e2385c 100644 --- a/drivers/net/e1000.c +++ b/drivers/net/e1000.c @@ -127,7 +127,7 @@ struct e1000_dev WDOG_ID txpoll; /* TX poll timer */ WDOG_ID txtimeout; /* TX timeout timer */ - /* This holds the information visible to uIP/NuttX */ + /* This holds the information visible to the NuttX network */ struct net_driver_s netdev; /* Interface understood by networking layer */ }; @@ -462,7 +462,7 @@ static int e1000_transmit(struct e1000_dev *e1000) * Function: e1000_txpoll * * Description: - * The transmitter is available, check if uIP has any outgoing packets ready + * The transmitter is available, check if the network has any outgoing packets ready * to send. This is a callback from devif_poll(). devif_poll() may be called: * * 1. When the preceding TX packet send is complete, @@ -570,7 +570,7 @@ static void e1000_receive(struct e1000_dev *e1000) goto next; } - /* Check if the packet is a valid size for the uIP buffer configuration */ + /* Check if the packet is a valid size for the network buffer configuration */ /* get the number of actual data-bytes in this packet */ @@ -728,7 +728,7 @@ static void e1000_txtimeout(int argc, uint32_t arg, ...) e1000_init(e1000); - /* Then poll uIP for new XMIT data */ + /* Then poll the network for new XMIT data */ (void)devif_poll(&e1000->netdev, e1000_txpoll); } @@ -765,7 +765,7 @@ static void e1000_polltimer(int argc, uint32_t arg, ...) return; } - /* If so, update TCP timing states and poll uIP for new XMIT data. Hmmm.. + /* If so, update TCP timing states and poll the network for new XMIT data. Hmmm.. * might be bug here. Does this mean if there is a transmit in progress, * we will missing TCP time state updates? */ diff --git a/drivers/net/enc28j60.c b/drivers/net/enc28j60.c index 2ae3a01ebd..df1fe7db47 100644 --- a/drivers/net/enc28j60.c +++ b/drivers/net/enc28j60.c @@ -252,9 +252,9 @@ struct enc_driver_s FAR struct spi_dev_s *spi; - /* This holds the information visible to uIP/NuttX */ + /* This holds the information visible to the NuttX network */ - struct net_driver_s dev; /* Interface understood by uIP */ + struct net_driver_s dev; /* Interface understood by the network */ }; /**************************************************************************** @@ -1154,7 +1154,7 @@ static int enc_transmit(FAR struct enc_driver_s *priv) * Function: enc_txpoll * * Description: - * The transmitter is available, check if uIP has any outgoing packets ready + * The transmitter is available, check if the network has any outgoing packets ready * to send. This is a callback from devif_poll(). devif_poll() may be called: * * 1. When the preceding TX packet send is complete, @@ -1168,7 +1168,7 @@ static int enc_transmit(FAR struct enc_driver_s *priv) * OK on success; a negated errno on failure * * Assumptions: - * Interrupts are enabled but the caller holds the uIP lock. + * Interrupts are enabled but the caller holds the network lock. * ****************************************************************************/ @@ -1261,7 +1261,7 @@ static void enc_linkstatus(FAR struct enc_driver_s *priv) * None * * Assumptions: - * Interrupts are enabled but the caller holds the uIP lock. + * Interrupts are enabled but the caller holds the network lock. * ****************************************************************************/ @@ -1288,7 +1288,7 @@ static void enc_txif(FAR struct enc_driver_s *priv) (void)wd_start(priv->txpoll, ENC_WDDELAY, enc_polltimer, 1, (wdparm_t)priv); - /* Then poll uIP for new XMIT data */ + /* Then poll the network for new XMIT data */ (void)devif_poll(&priv->dev, enc_txpoll); } @@ -1362,7 +1362,7 @@ static void enc_rxerif(FAR struct enc_driver_s *priv) * Function: enc_rxdispatch * * Description: - * Give the newly received packet to uIP. + * Give the newly received packet to the network. * * Parameters: * priv - Reference to the driver state structure @@ -1371,7 +1371,7 @@ static void enc_rxerif(FAR struct enc_driver_s *priv) * None * * Assumptions: - * Interrupts are enabled but the caller holds the uIP lock. + * Interrupts are enabled but the caller holds the network lock. * ****************************************************************************/ @@ -1502,7 +1502,7 @@ static void enc_rxdispatch(FAR struct enc_driver_s *priv) * None * * Assumptions: - * Interrupts are enabled but the caller holds the uIP lock. + * Interrupts are enabled but the caller holds the network lock. * ****************************************************************************/ @@ -1578,7 +1578,7 @@ static void enc_pktif(FAR struct enc_driver_s *priv) enc_rdbuffer(priv, priv->dev.d_buf, priv->dev.d_len); enc_dumppacket("Received Packet", priv->dev.d_buf, priv->dev.d_len); - /* Dispatch the packet to uIP */ + /* Dispatch the packet to the network */ enc_rxdispatch(priv); } @@ -1620,7 +1620,7 @@ static void enc_irqworker(FAR void *arg) DEBUGASSERT(priv); - /* Get exclusive access to both uIP and the SPI bus. */ + /* Get exclusive access to both the network and the SPI bus. */ lock = net_lock(); enc_lock(priv); @@ -1810,7 +1810,7 @@ static void enc_irqworker(FAR void *arg) enc_bfsgreg(priv, ENC_EIE, EIE_INTIE); - /* Release lock on the SPI bus and uIP */ + /* Release lock on the SPI bus and the network */ enc_unlock(priv); net_unlock(lock); @@ -1881,7 +1881,7 @@ static void enc_toworker(FAR void *arg) nlldbg("Tx timeout\n"); DEBUGASSERT(priv); - /* Get exclusive access to uIP */ + /* Get exclusive access to the network */ lock = net_lock(); @@ -1899,11 +1899,11 @@ static void enc_toworker(FAR void *arg) DEBUGASSERT(ret == OK); UNUSED(ret); - /* Then poll uIP for new XMIT data */ + /* Then poll the network for new XMIT data */ (void)devif_poll(&priv->dev, enc_txpoll); - /* Release lock on uIP */ + /* Release lock on the network */ net_unlock(lock); } @@ -1973,7 +1973,7 @@ static void enc_pollworker(FAR void *arg) DEBUGASSERT(priv); - /* Get exclusive access to both uIP and the SPI bus. */ + /* Get exclusive access to both the network and the SPI bus. */ lock = net_lock(); enc_lock(priv); @@ -1986,7 +1986,7 @@ static void enc_pollworker(FAR void *arg) if ((enc_rdgreg(priv, ENC_ECON1) & ECON1_TXRTS) == 0) { - /* Yes.. update TCP timing states and poll uIP for new XMIT data. Hmmm.. + /* Yes.. update TCP timing states and poll the network for new XMIT data. Hmmm.. * looks like a bug here to me. Does this mean if there is a transmit * in progress, we will missing TCP time state updates? */ @@ -1994,7 +1994,7 @@ static void enc_pollworker(FAR void *arg) (void)devif_timer(&priv->dev, enc_txpoll); } - /* Release lock on the SPI bus and uIP */ + /* Release lock on the SPI bus and the network */ enc_unlock(priv); net_unlock(lock); @@ -2212,7 +2212,7 @@ static int enc_txavail(struct net_driver_s *dev) if ((enc_rdgreg(priv, ENC_ECON1) & ECON1_TXRTS) == 0) { - /* The interface is up and TX is idle; poll uIP for new XMIT data */ + /* The interface is up and TX is idle; poll the network for new XMIT data */ (void)devif_poll(&priv->dev, enc_txpoll); } diff --git a/drivers/net/encx24j600.c b/drivers/net/encx24j600.c index aae63dcebb..c341c5486f 100644 --- a/drivers/net/encx24j600.c +++ b/drivers/net/encx24j600.c @@ -265,9 +265,9 @@ struct enc_driver_s FAR struct spi_dev_s *spi; - /* This holds the information visible to uIP/NuttX */ + /* This holds the information visible to the NuttX network */ - struct net_driver_s dev; /* Interface understood by uIP */ + struct net_driver_s dev; /* Interface understood by the network */ }; /**************************************************************************** @@ -1081,7 +1081,7 @@ static int enc_transmit(FAR struct enc_driver_s *priv) * * Assumptions: * A packet is available in d_buf. - * Interrupts are enabled but the caller holds the uIP lock. + * Interrupts are enabled but the caller holds the network lock. * ****************************************************************************/ @@ -1138,7 +1138,7 @@ static int enc_txenqueue(FAR struct enc_driver_s *priv) * Function: enc_txpoll * * Description: - * Enqueues uIP packets if available. + * Enqueues network packets if available. * This is a callback from devif_poll(). devif_poll() may be called: * * 1. When the preceding TX packet send is complete, @@ -1152,7 +1152,7 @@ static int enc_txenqueue(FAR struct enc_driver_s *priv) * OK on success; a negated errno on failure * * Assumptions: - * Interrupts are enabled but the caller holds the uIP lock. + * Interrupts are enabled but the caller holds the network lock. * ****************************************************************************/ @@ -1273,7 +1273,7 @@ static void enc_linkstatus(FAR struct enc_driver_s *priv) * None * * Assumptions: - * Interrupts are enabled but the caller holds the uIP lock. + * Interrupts are enabled but the caller holds the network lock. * ****************************************************************************/ @@ -1322,7 +1322,7 @@ static void enc_txif(FAR struct enc_driver_s *priv) * None * * Assumptions: - * Interrupts are enabled but the caller holds the uIP lock. + * Interrupts are enabled but the caller holds the network lock. * ****************************************************************************/ @@ -1362,7 +1362,7 @@ static void enc_rxldpkt(FAR struct enc_driver_s *priv, * A free rx descriptor * * Assumptions: - * Interrupts are enabled but the caller holds the uIP lock. + * Interrupts are enabled but the caller holds the network lock. * ****************************************************************************/ @@ -1395,7 +1395,7 @@ static struct enc_descr_s *enc_rxgetdescr(FAR struct enc_driver_s *priv) * None * * Assumptions: - * Interrupts are enabled but the caller holds the uIP lock. + * Interrupts are enabled but the caller holds the network lock. * ****************************************************************************/ @@ -1443,7 +1443,7 @@ static void enc_rxrmpkt(FAR struct enc_driver_s *priv, FAR struct enc_descr_s *d * Function: enc_rxdispatch * * Description: - * Give the newly received packet to uIP. + * Give the newly received packet to the network. * * Parameters: * priv - Reference to the driver state structure @@ -1452,7 +1452,7 @@ static void enc_rxrmpkt(FAR struct enc_driver_s *priv, FAR struct enc_descr_s *d * None * * Assumptions: - * Interrupts are enabled but the caller holds the uIP lock. + * Interrupts are enabled but the caller holds the network lock. * ****************************************************************************/ @@ -1633,7 +1633,7 @@ static void enc_rxdispatch(FAR struct enc_driver_s *priv) * None * * Assumptions: - * Interrupts are enabled but the caller holds the uIP lock. + * Interrupts are enabled but the caller holds the network lock. * ****************************************************************************/ @@ -1763,7 +1763,7 @@ static void enc_pktif(FAR struct enc_driver_s *priv) * None * * Assumptions: - * Interrupts are enabled but the caller holds the uIP lock. + * Interrupts are enabled but the caller holds the network lock. * ****************************************************************************/ @@ -1832,7 +1832,7 @@ static void enc_irqworker(FAR void *arg) DEBUGASSERT(priv); - /* Get exclusive access to both uIP and the SPI bus. */ + /* Get exclusive access to both the network and the SPI bus. */ lock = net_lock(); enc_lock(priv); @@ -1975,7 +1975,7 @@ static void enc_irqworker(FAR void *arg) enc_bfs(priv, ENC_EIE, EIE_INTIE); - /* Release lock on the SPI bus and uIP */ + /* Release lock on the SPI bus and the network */ enc_unlock(priv); net_unlock(lock); @@ -2046,7 +2046,7 @@ static void enc_toworker(FAR void *arg) nlldbg("Tx timeout\n"); DEBUGASSERT(priv); - /* Get exclusive access to uIP. */ + /* Get exclusive access to the network. */ lock = net_lock(); @@ -2064,11 +2064,11 @@ static void enc_toworker(FAR void *arg) DEBUGASSERT(ret == OK); (void)ret; - /* Then poll uIP for new XMIT data */ + /* Then poll the network for new XMIT data */ (void)devif_poll(&priv->dev, enc_txpoll); - /* Release uIP */ + /* Release the network */ net_unlock(lock); } @@ -2138,7 +2138,7 @@ static void enc_pollworker(FAR void *arg) DEBUGASSERT(priv); - /* Get exclusive access to both uIP and the SPI bus. */ + /* Get exclusive access to both the network and the SPI bus. */ lock = net_lock(); enc_lock(priv); @@ -2151,7 +2151,7 @@ static void enc_pollworker(FAR void *arg) if ((enc_rdreg(priv, ENC_ECON1) & ECON1_TXRTS) == 0) { - /* Yes.. update TCP timing states and poll uIP for new XMIT data. Hmmm.. + /* Yes.. update TCP timing states and poll the network for new XMIT data. Hmmm.. * looks like a bug here to me. Does this mean if there is a transmit * in progress, we will missing TCP time state updates? */ @@ -2159,7 +2159,7 @@ static void enc_pollworker(FAR void *arg) (void)devif_timer(&priv->dev, enc_txpoll); } - /* Release lock on the SPI bus and uIP */ + /* Release lock on the SPI bus and the network */ enc_unlock(priv); net_unlock(lock); @@ -2381,7 +2381,7 @@ static int enc_txavail(struct net_driver_s *dev) if ((enc_rdreg(priv, ENC_ECON1) & ECON1_TXRTS) == 0) { - /* The interface is up and TX is idle; poll uIP for new XMIT data */ + /* The interface is up and TX is idle; poll the network for new XMIT data */ (void)devif_poll(&priv->dev, enc_txpoll); } diff --git a/drivers/net/ftmac100.c b/drivers/net/ftmac100.c index fdf23a87e1..9cbdba7022 100644 --- a/drivers/net/ftmac100.c +++ b/drivers/net/ftmac100.c @@ -171,9 +171,9 @@ struct ftmac100_driver_s struct work_s ft_work; /* For deferring work to the work queue */ #endif - /* This holds the information visible to uIP/NuttX */ + /* This holds the information visible to the NuttX network */ - struct net_driver_s ft_dev; /* Interface understood by uIP */ + struct net_driver_s ft_dev; /* Interface understood by the network */ }; /**************************************************************************** @@ -331,7 +331,7 @@ static int ftmac100_transmit(FAR struct ftmac100_driver_s *priv) * Function: ftmac100_txpoll * * Description: - * The transmitter is available, check if uIP has any outgoing packets + * The transmitter is available, check if the network has any outgoing packets * ready to send. This is a callback from devif_poll(). devif_poll() may * be called: * @@ -849,7 +849,7 @@ static void ftmac100_txdone(FAR struct ftmac100_driver_s *priv) (void)wd_start(priv->ft_txpoll, FTMAC100_WDDELAY, ftmac100_poll_expiry, 1, (wdparm_t)priv); - /* Then poll uIP for new XMIT data */ + /* Then poll the network for new XMIT data */ (void)devif_poll(&priv->ft_dev, ftmac100_txpoll); } @@ -1089,7 +1089,7 @@ static inline void ftmac100_txtimeout_process(FAR struct ftmac100_driver_s *priv nvdbg("TXTIMEOUT\n"); - /* Then poll uIP for new XMIT data */ + /* Then poll the network for new XMIT data */ (void)devif_poll(&priv->ft_dev, ftmac100_txpoll); } @@ -1195,7 +1195,7 @@ static inline void ftmac100_poll_process(FAR struct ftmac100_driver_s *priv) * the TX poll if he are unable to accept another packet for transmission. */ - /* If so, update TCP timing states and poll uIP for new XMIT data. Hmmm.. + /* If so, update TCP timing states and poll the network for new XMIT data. Hmmm.. * might be bug here. Does this mean if there is a transmit in progress, * we will missing TCP time state updates? */ @@ -1421,7 +1421,7 @@ static inline void ftmac100_txavail_process(FAR struct ftmac100_driver_s *priv) { /* Check if there is room in the hardware to hold another outgoing packet. */ - /* If so, then poll uIP for new XMIT data */ + /* If so, then poll the network for new XMIT data */ (void)devif_poll(&priv->ft_dev, ftmac100_txpoll); } diff --git a/drivers/net/loopback.c b/drivers/net/loopback.c index 3b750b8051..5b275474d0 100644 --- a/drivers/net/loopback.c +++ b/drivers/net/loopback.c @@ -99,9 +99,9 @@ struct lo_driver_s WDOG_ID lo_polldog; /* TX poll timer */ struct work_s lo_work; /* For deferring work to the work queue */ - /* This holds the information visible to uIP/NuttX */ + /* This holds the information visible to the NuttX network */ - struct net_driver_s lo_dev; /* Interface understood by uIP */ + struct net_driver_s lo_dev; /* Interface understood by the network */ }; /**************************************************************************** diff --git a/drivers/net/slip.c b/drivers/net/slip.c index c02ebb0e93..3691580341 100644 --- a/drivers/net/slip.c +++ b/drivers/net/slip.c @@ -146,11 +146,11 @@ struct slip_driver_s uint16_t rxlen; /* The number of bytes in rxbuf */ pid_t rxpid; /* Receiver thread ID */ pid_t txpid; /* Transmitter thread ID */ - sem_t waitsem; /* Mutually exclusive access to uIP */ + sem_t waitsem; /* Mutually exclusive access to the network */ - /* This holds the information visible to uIP/NuttX */ + /* This holds the information visible to the NuttX network */ - struct net_driver_s dev; /* Interface understood by uIP */ + struct net_driver_s dev; /* Interface understood by the network */ uint8_t rxbuf[CONFIG_NET_SLIP_MTU + 2]; uint8_t txbuf[CONFIG_NET_SLIP_MTU + 2]; }; @@ -378,7 +378,7 @@ static int slip_transmit(FAR struct slip_driver_s *priv) * Function: slip_txpoll * * Description: - * Check if uIP has any outgoing packets ready to send. This is a + * Check if the network has any outgoing packets ready to send. This is a * callback from devif_poll(). devif_poll() may be called: * * 1. When the preceding TX packet send is complete, or @@ -471,7 +471,7 @@ static void slip_txtask(int argc, FAR char *argv[]) if (priv->bifup) { - /* Get exclusive access to uIP (if it it is already being used + /* Get exclusive access to the network (if it it is already being used * slip_rxtask, then we have to wait). */ @@ -725,7 +725,7 @@ static int slip_rxtask(int argc, FAR char *argv[]) { NETDEV_RXIPV4(&priv->dev); - /* Handle the IP input. Get exclusive access to uIP. */ + /* Handle the IP input. Get exclusive access to the network. */ slip_semtake(priv); priv->dev.d_buf = priv->rxbuf; diff --git a/drivers/net/tun.c b/drivers/net/tun.c index 1221b56ad8..9435f4a617 100644 --- a/drivers/net/tun.c +++ b/drivers/net/tun.c @@ -129,9 +129,9 @@ struct tun_device_s sem_t waitsem; sem_t read_wait_sem; - /* This holds the information visible to uIP/NuttX */ + /* This holds the information visible to the NuttX network */ - struct net_driver_s dev; /* Interface understood by uIP */ + struct net_driver_s dev; /* Interface understood by the network */ }; struct tun_driver_s @@ -345,7 +345,7 @@ static int tun_transmit(FAR struct tun_device_s *priv) * Function: tun_txpoll * * Description: - * The transmitter is available, check if uIP has any outgoing packets + * The transmitter is available, check if the network has any outgoing packets * ready to send. This is a callback from devif_poll(). devif_poll() may * be called: * @@ -498,7 +498,7 @@ static void tun_txdone(FAR struct tun_device_s *priv) NETDEV_TXDONE(&priv->dev); - /* Then poll uIP for new XMIT data */ + /* Then poll the network for new XMIT data */ priv->dev.d_buf = priv->read_buf; (void)devif_poll(&priv->dev, tun_txpoll); @@ -529,7 +529,7 @@ static void tun_poll_process(FAR struct tun_device_s *priv) if (priv->read_d_len == 0) { - /* If so, poll uIP for new XMIT data. */ + /* If so, poll the network for new XMIT data. */ priv->dev.d_buf = priv->read_buf; (void)devif_timer(&priv->dev, tun_txpoll); @@ -746,7 +746,7 @@ static int tun_txavail(struct net_driver_s *dev) if (priv->bifup) { - /* Poll uIP for new XMIT data */ + /* Poll the network for new XMIT data */ priv->dev.d_buf = priv->read_buf; (void)devif_poll(&priv->dev, tun_txpoll); -- GitLab From 9b4cec922852511b4a0b41f4ced8b6841ac826ac Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 30 May 2016 09:51:15 -0600 Subject: [PATCH 301/307] Replace confusing references to uIP with just 'the network' --- include/netinet/arp.h | 6 +++--- include/nuttx/net/cs89x0.h | 4 ++-- include/nuttx/net/icmp.h | 2 +- include/nuttx/net/icmpv6.h | 2 +- include/nuttx/net/igmp.h | 2 +- include/nuttx/net/ip.h | 2 +- include/nuttx/net/net.h | 9 +++++---- include/nuttx/net/netconfig.h | 18 +++++++++--------- include/nuttx/net/netdev.h | 33 +++++++++++++++++---------------- include/nuttx/net/tcp.h | 8 ++++---- include/nuttx/net/udp.h | 8 ++++---- 11 files changed, 48 insertions(+), 46 deletions(-) diff --git a/include/netinet/arp.h b/include/netinet/arp.h index caaa3e64b4..1ed14a6a67 100644 --- a/include/netinet/arp.h +++ b/include/netinet/arp.h @@ -102,9 +102,9 @@ extern "C" ****************************************************************************/ /* If CONFIG_NET_ARPIOCTLS is defined then the semi-standard ioctl commands - * described above are supported. If not, you can call the uIP ARP interfaces - * directly in a very non-standard way. See include/nuttx/net/arp.h for - * prototypes. + * described above are supported. If not, you can call the network ARP + * interfaces directly in a very non-standard way. See + * include/nuttx/net/arp.h for prototypes. */ #undef EXTERN diff --git a/include/nuttx/net/cs89x0.h b/include/nuttx/net/cs89x0.h index 9d92a19311..5629a8f479 100644 --- a/include/nuttx/net/cs89x0.h +++ b/include/nuttx/net/cs89x0.h @@ -86,9 +86,9 @@ struct cs89x0_driver_s uint32_t cs_txunderrun; /* Count of Tx underrun errors */ #endif - /* This holds the information visible to uIP/NuttX */ + /* This holds the information visible to the NuttX network */ - struct net_driver_s cs_dev; /* Interface understood by uIP */ + struct net_driver_s cs_dev; /* Interface understood by the network */ }; /**************************************************************************** diff --git a/include/nuttx/net/icmp.h b/include/nuttx/net/icmp.h index f64895afc4..875deaae42 100644 --- a/include/nuttx/net/icmp.h +++ b/include/nuttx/net/icmp.h @@ -1,6 +1,6 @@ /**************************************************************************** * include/nuttx/net/icmp.h - * Header file for the uIP ICMP stack. + * Header file for the NuttX ICMP stack. * * Copyright (C) 2007-2009, 2012, 2014 Gregory Nutt. All rights reserved. * Author: Gregory Nutt diff --git a/include/nuttx/net/icmpv6.h b/include/nuttx/net/icmpv6.h index af17c4b95b..d303cfa848 100644 --- a/include/nuttx/net/icmpv6.h +++ b/include/nuttx/net/icmpv6.h @@ -1,6 +1,6 @@ /**************************************************************************** * include/nuttx/net/icmpv6.h - * Header file for the uIP ICMPv6 stack. + * Header file for the NuttX ICMPv6 stack. * * Copyright (C) 2007-2009, 2012, 2014 Gregory Nutt. All rights reserved. * Author: Gregory Nutt diff --git a/include/nuttx/net/igmp.h b/include/nuttx/net/igmp.h index 68028daeea..d0620dbc7b 100644 --- a/include/nuttx/net/igmp.h +++ b/include/nuttx/net/igmp.h @@ -1,7 +1,7 @@ /**************************************************************************** * include/nuttx/net/igmp.h * The definitions in this header file are intended only for internal use - * by the NuttX port of the uIP stack. + * by the NuttX network stack. * * Copyright (C) 2010, 2012, 2014 Gregory Nutt. All rights reserved. * Author: Gregory Nutt diff --git a/include/nuttx/net/ip.h b/include/nuttx/net/ip.h index 6a494bd283..6a07edd585 100644 --- a/include/nuttx/net/ip.h +++ b/include/nuttx/net/ip.h @@ -1,7 +1,7 @@ /**************************************************************************** * include/nuttx/net/ip.h * - * The uIP header file contains IP-related definitions for a number of C + * This header file contains IP-related definitions for a number of C * macros that are used by applications as well as internally by the * OS networking logic. * diff --git a/include/nuttx/net/net.h b/include/nuttx/net/net.h index e95c9e82a7..4fadfd2c8f 100644 --- a/include/nuttx/net/net.h +++ b/include/nuttx/net/net.h @@ -222,10 +222,11 @@ void net_initialize(void); /**************************************************************************** * Critical section management. The NuttX configuration setting - * CONFIG_NET_NOINTS indicates that uIP not called from the interrupt level. - * If CONFIG_NET_NOINTS is defined, then these will map to semaphore - * controls. Otherwise, it assumed that uIP will be called from interrupt - * level handling and these will map to interrupt enable/disable controls. + * CONFIG_NET_NOINTS indicates that the network stack not called from the + * interrupt level. If CONFIG_NET_NOINTS is defined, then these will map + * to semaphore controls. Otherwise, it assumed that the stack will be + * called from interrupt level handling and these will map to interrupt + * enable/disable controls. * * * If CONFIG_NET_NOINTS is defined, then semaphore based locking is used: diff --git a/include/nuttx/net/netconfig.h b/include/nuttx/net/netconfig.h index f65b1c478d..e00b75da91 100644 --- a/include/nuttx/net/netconfig.h +++ b/include/nuttx/net/netconfig.h @@ -1,10 +1,10 @@ /**************************************************************************** * include/nuttx/net/netconfig.h - * Configuration options for NuttX uIP-based networking. + * Configuration options for NuttX networking. * - * This file is used for tweaking various configuration options for - * uIP. This is most assuring the correct default values are provided and - * that configured options are valid. + * This file is used for tweaking various configuration options for the + * network. This is most assuring the correct default values are provided + * and that configured options are valid. * * Note: Network configuration options the netconfig.h should not be changed, * but rather the per-project defconfig file. @@ -72,8 +72,8 @@ /* Layer 2 Configuration Options ********************************************/ -/* The default data link layer for uIP is Ethernet. If CONFIG_NET_SLIP is - * defined in the NuttX header file, then SLIP will be supported. The basic +/* The default data link laye is Ethernet. If CONFIG_NET_SLIP is defined in + * the NuttX header file, then SLIP will be supported. The basic * differences between the SLIP and Ethernet configurations is that when SLIP * is selected: * @@ -204,7 +204,7 @@ /* IP configuration options */ -/* The IP TTL (time to live) of IP packets sent by uIP. +/* The IP TTL (time to live) of IP packets sent by the network stack. * * This should normally not be changed. */ @@ -494,7 +494,7 @@ #ifndef CONFIG_NET_ARPTAB_SIZE /* The size of the ARP table. * - * This option should be set to a larger value if this uIP node will + * This option should be set to a larger value if this network node will * have many connections from the local network. */ @@ -532,7 +532,7 @@ /* Statistics datatype * * This typedef defines the dataype used for keeping statistics in - * uIP. + * the network. */ typedef uint16_t net_stats_t; diff --git a/include/nuttx/net/netdev.h b/include/nuttx/net/netdev.h index de6e997faf..7ef7cc62d7 100644 --- a/include/nuttx/net/netdev.h +++ b/include/nuttx/net/netdev.h @@ -1,6 +1,7 @@ /**************************************************************************** * include/nuttx/net/netdev.h - * Defines architecture-specific device driver interfaces to the uIP network. + * Defines architecture-specific device driver interfaces to the NuttX + * network. * * Copyright (C) 2007, 2009, 2011-2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt @@ -232,9 +233,9 @@ struct net_driver_s * headers from this buffer. The size of the link level headers is * configured by the NET_LL_HDRLEN(dev) define. * - * uIP will handle only a single buffer for both incoming and outgoing - * packets. However, the drive design may be concurrently send and - * filling separate, break-off buffers if CONFIG_NET_MULTIBUFFER is + * The network will handle only a single buffer for both incoming and + * outgoing packets. However, the driver design may be concurrently send + * and filling separate, break-off buffers if CONFIG_NET_MULTIBUFFER is * defined. That buffer management must be controlled by the driver. */ @@ -266,7 +267,7 @@ struct net_driver_s * * Holds the length of the packet in the d_buf buffer. * - * When the network device driver calls the uIP input function, + * When the network device driver calls the network input function, * d_len should be set to the length of the packet in the d_buf * buffer. * @@ -353,10 +354,10 @@ typedef int (*devif_poll_callback_t)(FAR struct net_driver_s *dev); ****************************************************************************/ /**************************************************************************** - * uIP device driver functions + * Network device driver functions * * These functions are used by a network device driver for interacting - * with uIP. + * with the NuttX network. * * Process an incoming IP packet. * @@ -383,9 +384,9 @@ typedef int (*devif_poll_callback_t)(FAR struct net_driver_s *dev); * } * } * - * Note: If you are writing a uIP device driver that needs ARP - * (Address Resolution Protocol), e.g., when running uIP over - * Ethernet, you will need to call the uIP ARP code before calling + * Note: If you are writing a network device driver that needs ARP + * (Address Resolution Protocol), e.g., when running the network over + * Ethernet, you will need to call the network ARP code before calling * this function: * * #define BUF ((struct eth_hdr_s *)&dev->d_buf[0]) @@ -424,8 +425,8 @@ int ipv6_input(FAR struct net_driver_s *dev); /**************************************************************************** * Polling of connections * - * These functions will traverse each active uIP connection structure and - * perform appropriate operations: devif_timer() will perform TCP timer + * These functions will traverse each active network connection structure + * and perform appropriate operations: devif_timer() will perform TCP timer * operations (and UDP polling operations); devif_poll() will perform TCP * and UDP polling operations. The CAN driver MUST implement logic to * periodically call devif_timer(); devif_poll() may be called asynchronously @@ -437,7 +438,7 @@ int ipv6_input(FAR struct net_driver_s *dev); * value (which it should do only if it cannot accept further write data). * * When the callback function is called, there may be an outbound packet - * waiting for service in the uIP packet buffer, and if so the d_len field + * waiting for service in the device packet buffer, and if so the d_len field * is set to a value larger than zero. The device driver should then send * out the packet. * @@ -455,9 +456,9 @@ int ipv6_input(FAR struct net_driver_s *dev); * ... * devif_poll(dev, driver_callback); * - * Note: If you are writing a uIP device driver that needs ARP (Address - * Resolution Protocol), e.g., when running uIP over Ethernet, you will - * need to call the arp_out() function in the callback function + * Note: If you are writing a network device driver that needs ARP (Address + * Resolution Protocol), e.g., when running the networ over Ethernet, you + * will need to call the arp_out() function in the callback function * before sending the packet: * * int driver_callback(FAR struct net_driver_s *dev) diff --git a/include/nuttx/net/tcp.h b/include/nuttx/net/tcp.h index 02dfa885cd..fd26d7ba5e 100644 --- a/include/nuttx/net/tcp.h +++ b/include/nuttx/net/tcp.h @@ -1,10 +1,10 @@ /**************************************************************************** * include/nuttx/net/tcp.h - * Header file for the uIP TCP/IP stack. + * Header file for the NuttX TCP/IP stack. * - * The uIP TCP/IP stack header file contains definitions for a number - * of C macros that are used by uIP programs as well as internal uIP - * structures, TCP/IP header structures and function declarations. + * This TCP/IP stack header file contains definitions for a number of C + * macros that are used by internal network structures, TCP/IP header + * structures and function declarations. * * Copyright (C) 2007, 2009-2010, 2012-2014 Gregory Nutt. All rights * reserved. diff --git a/include/nuttx/net/udp.h b/include/nuttx/net/udp.h index 24b47452f5..6d73cdae10 100644 --- a/include/nuttx/net/udp.h +++ b/include/nuttx/net/udp.h @@ -1,10 +1,10 @@ /**************************************************************************** * include/nuttx/net/udp.h - * Header file for the uIP UDP stack. + * Header file for the NuttX UDP stack. * - * The uIP UDP stack header file contains definitions for a number - * of C macros that are used by uIP programs as well as internal uIP - * structures, UDP header structures and function declarations. + * The UDP stack header file contains definitions for a number of C macros + * that are used by the internal network structures, UDP header structures + * and function declarations. * * Copyright (C) 2007, 2009, 2012, 2014 Gregory Nutt. All rights reserved. * Author: Gregory Nutt -- GitLab From 50d640a102433d73b521f651c8b8057408a34653 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 30 May 2016 09:51:46 -0600 Subject: [PATCH 302/307] Typo fix --- include/nuttx/net/arp.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/nuttx/net/arp.h b/include/nuttx/net/arp.h index 236053ce70..cf04895f76 100644 --- a/include/nuttx/net/arp.h +++ b/include/nuttx/net/arp.h @@ -5,7 +5,7 @@ * Copyright (C) 2007, 2009-2012, 2015-2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * - * Derived from uIP with has a similar BSD-styple license: + * Derived from uIP with has a similar BSD-style license: * * Author: Adam Dunkels * Copyright (c) 2001-2003, Adam Dunkels. -- GitLab From 5ef3e3e2158c8c65c1d76feaa5e62a60ad4dd8d3 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 30 May 2016 11:52:07 -0600 Subject: [PATCH 303/307] Replace confusing references to uIP with just 'the network' --- COPYING | 2 +- Documentation/NuttxPortingGuide.html | 3 +- Documentation/NuttxUserGuide.html | 5 +- arch/README.txt | 211 ++++++------------ arch/hc/src/m9s12/m9s12_ethernet.c | 19 +- arch/mips/src/pic32mx/pic32mx-ethernet.c | 25 ++- arch/mips/src/pic32mz/pic32mz-ethernet.c | 25 ++- arch/z80/src/ez80/ez80_emac.c | 19 +- configs/dk-tm4c129x/src/tm4c_ethernet.c | 2 +- configs/eagle100/src/lm_ethernet.c | 2 +- configs/ekk-lm3s9b96/src/lm_ethernet.c | 2 +- configs/lm3s6432-s2e/src/lm_ethernet.c | 2 +- configs/lm3s6965-ek/src/lm_ethernet.c | 2 +- configs/lm3s8962-ek/src/lm_ethernet.c | 2 +- .../tm4c1294-launchpad/src/tm4c_ethernet.c | 2 +- libc/netdb/lib_dnsquery.c | 4 +- 16 files changed, 127 insertions(+), 200 deletions(-) diff --git a/COPYING b/COPYING index 1c82d0ca20..a8113ab027 100644 --- a/COPYING +++ b/COPYING @@ -93,7 +93,7 @@ has a similar BSD style license: IGMP ^^^^ -IGMP support, if enabled in uIP, adds additional logic by Steve Reynolds: +IGMP support, if enabled, adds additional logic by Steve Reynolds: Copyright (c) 2002 CITEL Technologies Ltd. All rights reserved. diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index ff3990c9d9..9fc2e5e9e2 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -4901,8 +4901,7 @@ int kbd_decode(FAR struct lib_instream_s *stream, FAR struct kbd_getstate_s *sta

      include/nuttx/net/netdev.h. All structures and APIs needed to work with Ethernet drivers are provided in this header file. - The structure struct net_driver_s defines the interface and is passed to uIP via - netdev_register(). + The structure struct net_driver_s defines the interface and is passed to the network via netdev_register().

    • diff --git a/Documentation/NuttxUserGuide.html b/Documentation/NuttxUserGuide.html index a91959e198..3766eba646 100644 --- a/Documentation/NuttxUserGuide.html +++ b/Documentation/NuttxUserGuide.html @@ -8755,9 +8755,8 @@ FAR void *mmap(FAR void *start, size_t length, int prot, int flags, int fd, off_

      - NuttX includes a simple interface layer based on uIP (see http://www.sics.se). - NuttX supports subset of a standard socket interface to uIP. - These network feature can be enabled by settings in the architecture configuration file. + NuttX supports a BSD-compatible socket interface layer. + These socket interface can be enabled by settings in the architecture configuration file. Those socket APIs are discussed in the following paragraphs.

        diff --git a/arch/README.txt b/arch/README.txt index df34133df9..114f2f6f1e 100644 --- a/arch/README.txt +++ b/arch/README.txt @@ -134,6 +134,8 @@ src/Makefile Supported Architectures ^^^^^^^^^^^^^^^^^^^^^^^ +NOTE: nuttx/Documentation/NuttX.html for current information about the +state of these MCU ports. arch/sim - Linux/Cygwin simulation A user-mode port of NuttX to the x86 Linux platform is available. @@ -145,135 +147,68 @@ arch/arm - ARM-based micro-controllers This directory holds common ARM architectures. At present, this includes the following subdirectories: - arch/arm/include and arch/arm/src/common - Common ARM/Cortex-M3 logic. - - arch/arm/src/arm and arch/arm/include/arm - Common ARM-specific logic - - arch/arm/src/armv7-m and arch/arm/include/armv7-m - Common ARMv7-M logic (Cortex-M3 and Cortex-M4) - - arch/arm/include/c5471 and arch/arm/src/c5471 - TI TMS320C5471 (also called TMS320DM180 or just C5471). - NuttX operates on the ARM7 of this dual core processor. This port - complete, verified, and included in the NuttX release 0.1.1. - - arch/arm/include/calypso and arch/arm/src/calypso - TI "Calypso" MCU used in various cell phones (and, in particular, - by the Osmocom-bb project). Like the c5471, NuttX operates on the - ARM7 of this dual core processor. This port was contributed by - Denis Carilki and includes the work of Denis, Alan Carvalho de Assis, - and Stefan Richter. Calypso support first appeared in NuttX-6.17. - - arch/arm/include/dm320 and arch/arm/src/dm320 - TI TMS320DM320 (also called just DM320). - NuttX operates on the ARM9EJS of this dual core processor. This port - complete, verified, and included in the NuttX release 0.2.1. - - arch/arm/include/imx and arch/arm/src/imx - Freescale MC9328MX1 or i.MX1. This port uses the Freescale MX1ADS - development board with a GNU arm-elf toolchain* under either Linux or Cygwin. - STATUS: This port has stalled because of development tool issues. Coding - is complete on the basic port (timer, serial console, SPI). - - arch/arm/include/lm and arch/arm/src/lm - These directories contain support for the Luminary LM3S/4F family. The - initial, release of this port was included in NuttX version 0.4.6. The - current port includes timer, serial console, Ethernet, SSI, and microSD - support. There are working configurations the NuttX OS test, to run the - NuttShell (NSH), the NuttX networking test, and the uIP web server. - - arch/arm/include/lpc214x and arch/arm/src/lpc214x - These directories provide support for NXP LPC214x family of - ARM7TDMI processors. This port boots and passes the OS test (examples/ostest). - The port is complete and verifed. As of NuttX 0.3.17, the port includes: - timer interrupts, serial console, USB driver, and SPI-based MMC/SD card - support. A verifed NuttShell (NSH) configuration is also available. - - arch/arm/include/lpc2378 and arch/arm/src/lpc2378. - NXP LPC2378. Support is provided for the NXP LPC2378 MCU. This port was - contributed by Rommel Marcelo is was first released in NuttX-5.3. - STATUS: This port boots and passes the OS test (examples/ostest) and - includes a working implementation of the NuttShell (NSH). The port is - complete and verified. As of NuttX 5.3, the port includes only basic - timer interrupts and serial console support. - - arch/arm/include/lpc31xx and arch/arm/src/lpc31xx - These directories provide support for NXP LPC31xx family of - ARM926EJ-S processors. The port for the NXP LPC3131 was first - released in NuttX-5.1 (but was not functional until NuttX-5.2). - STATUS: The basic EA3131 port is complete and verified in NuttX-5.2 - This basic port includes basic boot-up, serial console, and timer - interrupts. This port was extended in NuttX 5.3 with a USB high - speed driver contributed by David Hewson. This port has been - verified using the NuttX OS test, USB serial and mass storage tests - and includes a working implementation of the NuttShell ((NSH)). - - This port was later extended to support additional members of the - LPC31xx family including, specifically, the LPC3152. - - arch/arm/include/sam3u and arch/arm/src/sam3u - Atmel AT91SAM3U. This port is for Atmel AT91SAM3U4E MCU. - STATUS: The basic AT91SAM3U port was released in NuttX version 5.1. - The basic port includes boot-up logic, interrupt driven serial - console, and system timer interrupts. That release passes the - NuttX OS test and is proven to have a valid OS implementation. A - onfiguration to support the NuttShell is also included. - - arch/arm/include/stm32 and arch/arm/src/stm32 - These directories contain support for the STMicro STM32 F1, F2, and - F4 families. - - STATUS: The basic STM32 F1 port was released in NuttX version 0.4.12. - and has continued to develop consistently over time. It now includes - support for the F2 and F4 families and a rich offering of peripheral - drivers. - - arch/arm/include/str71x and arch/arm/src/str71x - These directories provide support for the STMicro STR71x processors. - Coding is complete on the basic port (boot logic, system time, serial console), - but no testing has been performed due to some problems I am having with my - JTAG wiggler and OpenOCD on Linux. + Architecture Support + arch/arm/include and arch/arm/src/common + arch/arm/src/arm and arch/arm/include/arm + arch/arm/src/armv7-a and arch/arm/include/armv7-a + arch/arm/src/armv7-m and arch/arm/include/armv7-m + arch/arm/src/armv7-r and arch/arm/include/armv7-4 + + MCU support + arch/arm/include/c5471 and arch/arm/src/c5471 + arch/arm/include/calypso and arch/arm/src/calypso + arch/arm/include/dm320 and arch/arm/src/dm320 + arch/arm/include/efm32 and arch/arm/src/efm32 + arch/arm/include/imx1 and arch/arm/src/imx1 + arch/arm/include/imx6 and arch/arm/src/imx6 + arch/arm/include/kinetis and arch/arm/src/kinetis + arch/arm/include/kl and arch/arm/src/kl + arch/arm/include/lpc11xx and arch/arm/src/lpc11xx + arch/arm/include/lpc17xx and arch/arm/src/lpc17xx + arch/arm/include/lpc214x and arch/arm/src/lpc214x + arch/arm/include/lpc2378 and arch/arm/src/lpc2378. + arch/arm/include/lpc31xx and arch/arm/src/lpc31xx + arch/arm/include/lpc43xx and arch/arm/src/lpc43xx + arch/arm/include/moxart and arch/arm/src/moxart + arch/arm/include/nuc1xx and arch/arm/src/nuc1xx + arch/arm/include/sam34 and arch/arm/src/sam34 + arch/arm/include/sama45 and arch/arm/src/sama5 + arch/arm/include/samdl and arch/arm/src/samdl + arch/arm/include/samv7 and arch/arm/src/samv7 + arch/arm/include/stm32 and arch/arm/src/stm32 + arch/arm/include/stm32f7 and arch/arm/src/stm32f7 + arch/arm/include/stm32l4 and arch/arm/src/stm32l4 + arch/arm/include/str71x and arch/arm/src/str71x + arch/arm/include/tiva and arch/arm/src/tiva + arch/arm/include/tms570 and arch/arm/src/tms570 arch/avr This directory is dedicated to ports to the Atmel AVR (8-bit) and AVR32 (32-bit) MCU families. STATUS: Under development. - arch/avr/include/avr and arch/avr/src/avr - Common support for all 8-bit AVR MCUs + Architecture Support + arch/avr/include/avr and arch/avr/src/avr + arch/avr/include/avr32 and arch/avr/src/avr32 - arch/avr/include/atmega and arch/avr/src/atmega - Support specifically for the AVR ATMega family (specifically only for - the ATMega128 at the moment). - - arch/avr/include/at90usb and arch/avr/src/at90usb - Support specifically for the AVR AT90USB646, 647, 1286, and 1287 family. - - arch/avr/include/avr32 and arch/avr/src/avr32 - Common support for all AVR32 MCUs - - arch/avr/include/at32uc3 and arch/avr/src/at32uc3 - Support specifically for the AT32UC3Bxxx family (specifically only for - the AT32UC3B0256 at the moment). + MCU support + arch/avr/include/atmega and arch/avr/src/atmega + arch/avr/include/at90usb and arch/avr/src/at90usb + arch/avr/include/at32uc3 and arch/avr/src/at32uc3 arch/hc This directory is dedicated to ports to the Freescale HC family. arch/arm/include/m9s12 and arch/arm/src/m9s12 - These directories provide support for the Freescale mc9s12x family. - STATUS: Fragments of this port were first released in nuttx-5.0 and - the port was "code-complete" as nuttx-5.18. However, the final - verification effort has been stalled because of higher priority tasks. arch/mips This directory is dedicated to ports to the MIPS family. - arch/mips/include/mips32 and arch/mips/src/mips32 - Common support for all MIPS32 architectures + Architecture Support + arch/mips/include/mips32 and arch/mips/src/mips32 - arch/mips/include/pic32mx and arch/mips/src/pic32mx - Support for all MicroChip PIC32MX architectures + MCU support + arch/mips/include/pic32mx and arch/mips/src/pic32mx + arch/mips/include/pic32mz and arch/mips/src/pic32mz arch/rgmp @@ -288,52 +223,42 @@ arch/rgmp arch/sh - SuperH and related Hitachi/Renesas microcontrollers - arch/sh/include and arch/sh/src/common - Common SuperH logic. + Architecture Support + arch/sh/include and arch/sh/src/common - arch/sh/include/shs and arch/sh/src/sh1 - Support for the SH-1 processor. + MCU support + arch/sh/include/m16c and arch/sh/src/m16c + arch/sh/include/sh1 and arch/sh/src/sh1 arch/x86 - Intel x86 architectures This directory holds related, 32- and 64-bit architectures from Intel. At present, this includes the following subdirectories: - arch/x86/include and arch/x86/src/common - Common x86 logic. + Architecture Support + arch/x86/include and arch/x86/src/common - arch/x86/include/i486 and arch/x86/src/i486 - These directories hold definitions and logic appropriate for any - instantiation of the 32-bit i486 architecture. - - arch/x86/include/qemu and arch/x86/src/qemu - This is the implementation of NuttX on the QEMU x86 simulation. + MCU support + arch/x86/include/i486 and arch/x86/src/i486 + arch/x86/include/qemu and arch/x86/src/qemu arch/z16 - ZiLOG 16-bit processors This directory holds related, 16-bit architectures from ZiLOG. At present, this includes the following subdirectories: - arch/z16/include and arch/z16/src/common - Common microcontroller logic. + Architecture Support + arch/z16/include and arch/z16/src/common - arch/z16/include/z16f and arch/z16/src/z16f - ZiLOG z16f Microcontroller. - STATUS: Released in nuttx-0.3.7. Fully functional other than issues - addressed in ${TOPDIR}/TODO. + MCU support + arch/z16/include/z16f and arch/z16/src/z16f arch/z80 - ZiLOG 8-bit microcontrollers This directory holds related, 8-bit architectures from ZiLOG. At present, this includes the following subdirectories: - arch/z80/include and arch/z80/src/common - Common microcontroller logic. - - arch/z80/include/z80 and arch/z80/src/z80 - Classic ZiLOG z80 Microcontroller. - STATUS: Functional with no known defects. There are still several - OS features that have not yet been tested (e.g., networking). - - arch/z80/include/z8 and arch/z80/src/z8 - ZiLOG Z8Encore! Microcontroller + Architecture Support + arch/z80/include and arch/z80/src/common - arch/z80/include/ez80 and arch/z80/src/ez80 - ZiLOG ez80 Acclaim! Microcontroller + MCU support + arch/z80/include/z80 and arch/z80/src/z80 + arch/z80/include/z8 and arch/z80/src/z8 + arch/z80/include/ez80 and arch/z80/src/ez80 diff --git a/arch/hc/src/m9s12/m9s12_ethernet.c b/arch/hc/src/m9s12/m9s12_ethernet.c index 0f02c88aed..ad3e1ef6b8 100644 --- a/arch/hc/src/m9s12/m9s12_ethernet.c +++ b/arch/hc/src/m9s12/m9s12_ethernet.c @@ -97,9 +97,9 @@ struct emac_driver_s WDOG_ID d_txpoll; /* TX poll timer */ WDOG_ID d_txtimeout; /* TX timeout timer */ - /* This holds the information visible to uIP/NuttX */ + /* This holds the information visible to the NuttX network */ - struct net_driver_s d_dev; /* Interface understood by uIP */ + struct net_driver_s d_dev; /* Interface understood by the network */ }; /**************************************************************************** @@ -185,8 +185,9 @@ static int emac_transmit(FAR struct emac_driver_s *priv) * Function: emac_txpoll * * Description: - * The transmitter is available, check if uIP has any outgoing packets ready - * to send. This is a callback from devif_poll(). devif_poll() may be called: + * The transmitter is available, check if the network has any outgoing + * packets ready to send. This is a callback from devif_poll(). + * devif_poll() may be called: * * 1. When the preceding TX packet send is complete, * 2. When the preceding TX packet send timesout and the interface is reset @@ -276,7 +277,7 @@ static void emac_receive(FAR struct emac_driver_s *priv) { /* Check for errors and update statistics */ - /* Check if the packet is a valid size for the uIP buffer configuration */ + /* Check if the packet is a valid size for the network buffer configuration */ /* Copy the data data from the hardware to priv->d_dev.d_buf. Set * amount of data in priv->d_dev.d_len @@ -413,7 +414,7 @@ static void emac_txdone(FAR struct emac_driver_s *priv) wd_cancel(priv->d_txtimeout); - /* Then poll uIP for new XMIT data */ + /* Then poll the network for new XMIT data */ (void)devif_poll(&priv->d_dev, emac_txpoll); } @@ -484,7 +485,7 @@ static void emac_txtimeout(int argc, uint32_t arg, ...) /* Then reset the hardware */ - /* Then poll uIP for new XMIT data */ + /* Then poll the network for new XMIT data */ (void)devif_poll(&priv->d_dev, emac_txpoll); } @@ -515,7 +516,7 @@ static void emac_polltimer(int argc, uint32_t arg, ...) * the TX poll if he are unable to accept another packet for transmission. */ - /* If so, update TCP timing states and poll uIP for new XMIT data. Hmmm.. + /* If so, update TCP timing states and poll the network for new XMIT data. Hmmm.. * might be bug here. Does this mean if there is a transmit in progress, * we will missing TCP time state updates? */ @@ -644,7 +645,7 @@ static int emac_txavail(struct net_driver_s *dev) { /* Check if there is room in the hardware to hold another outgoing packet. */ - /* If so, then poll uIP for new XMIT data */ + /* If so, then poll the network for new XMIT data */ (void)devif_poll(&priv->d_dev, emac_txpoll); } diff --git a/arch/mips/src/pic32mx/pic32mx-ethernet.c b/arch/mips/src/pic32mx/pic32mx-ethernet.c index eae7719bd4..4c11f5c660 100644 --- a/arch/mips/src/pic32mx/pic32mx-ethernet.c +++ b/arch/mips/src/pic32mx/pic32mx-ethernet.c @@ -319,9 +319,9 @@ struct pic32mx_driver_s sq_queue_t pd_freebuffers; /* The free buffer list */ - /* This holds the information visible to uIP/NuttX */ + /* This holds the information visible to the NuttX network */ - struct net_driver_s pd_dev; /* Interface understood by uIP */ + struct net_driver_s pd_dev; /* Interface understood by the network */ /* Descriptors and packet buffers */ @@ -1024,7 +1024,7 @@ static int pic32mx_transmit(struct pic32mx_driver_s *priv) /* Find the next available TX descriptor. We are guaranteed that is will * not fail by upstream logic that assures that a TX packet is available - * before polling uIP. + * before polling the network. */ txdesc = pic32mx_txdesc(priv); @@ -1080,8 +1080,9 @@ static int pic32mx_transmit(struct pic32mx_driver_s *priv) * Function: pic32mx_txpoll * * Description: - * The transmitter is available, check if uIP has any outgoing packets ready - * to send. This is a callback from devif_poll(). devif_poll() may be called: + * The transmitter is available, check if the network has any outgoing + * packets ready to send. This is a callback from devif_poll(). + * devif_poll() may be called: * * 1. When the preceding TX packet send is complete, * 2. When the preceding TX packet send timesout and the interface is reset @@ -1172,7 +1173,7 @@ static int pic32mx_txpoll(struct net_driver_s *dev) * Function: pic32mx_poll * * Description: - * Perform the uIP poll. + * Perform the network poll. * * Parameters: * priv - Reference to the driver state structure @@ -1220,7 +1221,7 @@ static void pic32mx_poll(struct pic32mx_driver_s *priv) * Function: pic32mx_timerpoll * * Description: - * Perform the uIP timer poll. + * Perform the network timer poll. * * Parameters: * priv - Reference to the driver state structure @@ -1634,11 +1635,11 @@ static void pic32mx_txdone(struct pic32mx_driver_s *priv) pic32mx_putreg(priv->pd_inten, PIC32MX_ETH_IEN); } - /* Otherwise poll uIP for new XMIT data */ + /* Otherwise poll the network for new XMIT data */ else { - /* Perform the uIP poll */ + /* Perform the network poll */ pic32mx_poll(priv); } @@ -1848,7 +1849,7 @@ static void pic32mx_txtimeout(int argc, uint32_t arg, ...) (void)pic32mx_ifup(&priv->pd_dev); - /* Then poll uIP for new XMIT data (We are guaranteed to have a free + /* Then poll the network for new XMIT data (We are guaranteed to have a free * buffer here). */ @@ -1884,7 +1885,7 @@ static void pic32mx_polltimer(int argc, uint32_t arg, ...) if (pic32mx_txdesc(priv) != NULL) { - /* If so, update TCP timing states and poll uIP for new XMIT data. Hmmm.. + /* If so, update TCP timing states and poll the network for new XMIT data. Hmmm.. * might be bug here. Does this mean if there is a transmit in progress, * we will missing TCP time state updates? */ @@ -2281,7 +2282,7 @@ static int pic32mx_txavail(struct net_driver_s *dev) if (pic32mx_txdesc(priv) != NULL) { - /* If so, then poll uIP for new XMIT data. First allocate a buffer + /* If so, then poll the network for new XMIT data. First allocate a buffer * to perform the poll */ diff --git a/arch/mips/src/pic32mz/pic32mz-ethernet.c b/arch/mips/src/pic32mz/pic32mz-ethernet.c index 6b45f1ea02..7d531efde9 100644 --- a/arch/mips/src/pic32mz/pic32mz-ethernet.c +++ b/arch/mips/src/pic32mz/pic32mz-ethernet.c @@ -337,9 +337,9 @@ struct pic32mz_driver_s sq_queue_t pd_freebuffers; /* The free buffer list */ - /* This holds the information visible to uIP/NuttX */ + /* This holds the information visible to the NuttX network */ - struct net_driver_s pd_dev; /* Interface understood by uIP */ + struct net_driver_s pd_dev; /* Interface understood by the network */ /* Descriptors and packet buffers */ @@ -1042,7 +1042,7 @@ static int pic32mz_transmit(struct pic32mz_driver_s *priv) /* Find the next available TX descriptor. We are guaranteed that is will * not fail by upstream logic that assures that a TX packet is available - * before polling uIP. + * before polling the network. */ txdesc = pic32mz_txdesc(priv); @@ -1098,8 +1098,9 @@ static int pic32mz_transmit(struct pic32mz_driver_s *priv) * Function: pic32mz_txpoll * * Description: - * The transmitter is available, check if uIP has any outgoing packets ready - * to send. This is a callback from devif_poll(). devif_poll() may be called: + * The transmitter is available, check if the network has any outgoing + * packets ready to send. This is a callback from devif_poll(). + * devif_poll() may be called: * * 1. When the preceding TX packet send is complete, * 2. When the preceding TX packet send timesout and the interface is reset @@ -1190,7 +1191,7 @@ static int pic32mz_txpoll(struct net_driver_s *dev) * Function: pic32mz_poll * * Description: - * Perform the uIP poll. + * Perform the network poll. * * Parameters: * priv - Reference to the driver state structure @@ -1238,7 +1239,7 @@ static void pic32mz_poll(struct pic32mz_driver_s *priv) * Function: pic32mz_timerpoll * * Description: - * Perform the uIP timer poll. + * Perform the network timer poll. * * Parameters: * priv - Reference to the driver state structure @@ -1651,11 +1652,11 @@ static void pic32mz_txdone(struct pic32mz_driver_s *priv) pic32mz_putreg(priv->pd_inten, PIC32MZ_ETH_IEN); } - /* Otherwise poll uIP for new XMIT data */ + /* Otherwise poll the network for new XMIT data */ else { - /* Perform the uIP poll */ + /* Perform the network poll */ pic32mz_poll(priv); } @@ -1865,7 +1866,7 @@ static void pic32mz_txtimeout(int argc, uint32_t arg, ...) (void)pic32mz_ifup(&priv->pd_dev); - /* Then poll uIP for new XMIT data (We are guaranteed to have a free + /* Then poll the network for new XMIT data (We are guaranteed to have a free * buffer here). */ @@ -1901,7 +1902,7 @@ static void pic32mz_polltimer(int argc, uint32_t arg, ...) if (pic32mz_txdesc(priv) != NULL) { - /* If so, update TCP timing states and poll uIP for new XMIT data. Hmmm.. + /* If so, update TCP timing states and poll the network for new XMIT data. Hmmm.. * might be bug here. Does this mean if there is a transmit in progress, * we will missing TCP time state updates? */ @@ -2304,7 +2305,7 @@ static int pic32mz_txavail(struct net_driver_s *dev) if (pic32mz_txdesc(priv) != NULL) { - /* If so, then poll uIP for new XMIT data. First allocate a buffer + /* If so, then poll the network for new XMIT data. First allocate a buffer * to perform the poll */ diff --git a/arch/z80/src/ez80/ez80_emac.c b/arch/z80/src/ez80/ez80_emac.c index 2b1b5834fe..0584aa0464 100644 --- a/arch/z80/src/ez80/ez80_emac.c +++ b/arch/z80/src/ez80/ez80_emac.c @@ -325,9 +325,9 @@ struct ez80emac_driver_s struct ez80mac_statistics_s stat; #endif - /* This holds the information visible to uIP/NuttX */ + /* This holds the information visible to the NuttX network */ - struct net_driver_s dev; /* Interface understood by uIP */ + struct net_driver_s dev; /* Interface understood by the network */ }; /**************************************************************************** @@ -1055,8 +1055,9 @@ static int ez80emac_transmit(struct ez80emac_driver_s *priv) * Function: ez80emac_txpoll * * Description: - * The transmitter is available, check if uIP has any outgoing packets ready - * to send. This is a callback from devif_poll(). devif_poll() may be called: + * The transmitter is available, check if the network has any outgoing + * packets ready to send. This is a callback from devif_poll(). + * devif_poll() may be called: * * 1. When the preceding TX packet send is complete, * 2. When the preceding TX packet send timesout and the interface is reset @@ -1228,7 +1229,7 @@ static int ez80emac_receive(struct ez80emac_driver_s *priv) } /* We have a good packet. Check if the packet is a valid size - * for the uIP buffer configuration (I routinely see + * for the network buffer configuration (I routinely see */ if (rxdesc->pktsize > CONFIG_NET_ETH_MTU) @@ -1669,7 +1670,7 @@ static void ez80emac_txtimeout(int argc, uint32_t arg, ...) ez80emac_ifup(&priv->dev); leave_critical_section(flags); - /* Then poll uIP for new XMIT data */ + /* Then poll the network for new XMIT data */ (void)devif_poll(&priv->dev, ez80emac_txpoll); } @@ -1695,7 +1696,7 @@ static void ez80emac_polltimer(int argc, uint32_t arg, ...) { struct ez80emac_driver_s *priv = (struct ez80emac_driver_s *)arg; - /* Poll uIP for new XMIT data */ + /* Poll the network for new XMIT data */ (void)devif_timer(&priv->dev, ez80emac_txpoll); @@ -1882,7 +1883,7 @@ static int ez80emac_txavail(struct net_driver_s *dev) /* Check if there is room in the hardware to hold another outgoing packet. */ - /* If so, then poll uIP for new XMIT data */ + /* If so, then poll the network for new XMIT data */ (void)devif_poll(&priv->dev, ez80emac_txpoll); } @@ -2256,7 +2257,7 @@ errout: * Add one MAC address to the multi-cast hash table * * Parameters: - * dev - Reference to the uIP driver state structure + * dev - Reference to the network driver state structure * mac - The MAC address to add * enable - true: Enable filtering on this address; false: disable * diff --git a/configs/dk-tm4c129x/src/tm4c_ethernet.c b/configs/dk-tm4c129x/src/tm4c_ethernet.c index 9394a4522b..8594d75559 100644 --- a/configs/dk-tm4c129x/src/tm4c_ethernet.c +++ b/configs/dk-tm4c129x/src/tm4c_ethernet.c @@ -87,7 +87,7 @@ void tiva_ethernetmac(struct ether_addr *ethaddr) nlldbg("user: %06x:%06x\n", user1 & 0x00ffffff, user0 & 0x00ffffff); DEBUGASSERT(user0 != 0xffffffff && user1 != 0xffffffff); - /* Re-format that MAC address the way that uIP expects to see it */ + /* Re-format that MAC address the way that the network expects to see it */ ethaddr->ether_addr_octet[0] = ((user0 >> 0) & 0xff); ethaddr->ether_addr_octet[1] = ((user0 >> 8) & 0xff); diff --git a/configs/eagle100/src/lm_ethernet.c b/configs/eagle100/src/lm_ethernet.c index 62f073697c..7a33e1af6c 100644 --- a/configs/eagle100/src/lm_ethernet.c +++ b/configs/eagle100/src/lm_ethernet.c @@ -86,7 +86,7 @@ void tiva_ethernetmac(struct ether_addr *ethaddr) nlldbg("user: %06x:%06x\n", user1 & 0x00ffffff, user0 & 0x00ffffff); DEBUGASSERT(user0 != 0xffffffff && user1 != 0xffffffff); - /* Re-format that MAC address the way that uIP expects to see it */ + /* Re-format that MAC address the way that the network expects to see it */ ethaddr->ether_addr_octet[0] = ((user0 >> 0) & 0xff); ethaddr->ether_addr_octet[1] = ((user0 >> 8) & 0xff); diff --git a/configs/ekk-lm3s9b96/src/lm_ethernet.c b/configs/ekk-lm3s9b96/src/lm_ethernet.c index 622a972b3e..c3627e4a16 100644 --- a/configs/ekk-lm3s9b96/src/lm_ethernet.c +++ b/configs/ekk-lm3s9b96/src/lm_ethernet.c @@ -87,7 +87,7 @@ void tiva_ethernetmac(struct ether_addr *ethaddr) nlldbg("user: %06x:%06x\n", user1 & 0x00ffffff, user0 & 0x00ffffff); DEBUGASSERT(user0 != 0xffffffff && user1 != 0xffffffff); - /* Re-format that MAC address the way that uIP expects to see it */ + /* Re-format that MAC address the way that the network expects to see it */ ethaddr->ether_addr_octet[0] = ((user0 >> 0) & 0xff); ethaddr->ether_addr_octet[1] = ((user0 >> 8) & 0xff); diff --git a/configs/lm3s6432-s2e/src/lm_ethernet.c b/configs/lm3s6432-s2e/src/lm_ethernet.c index 2d6bb5a088..c10d261adc 100644 --- a/configs/lm3s6432-s2e/src/lm_ethernet.c +++ b/configs/lm3s6432-s2e/src/lm_ethernet.c @@ -86,7 +86,7 @@ void tiva_ethernetmac(struct ether_addr *ethaddr) nlldbg("user: %06x:%06x\n", user1 & 0x00ffffff, user0 & 0x00ffffff); DEBUGASSERT(user0 != 0xffffffff && user1 != 0xffffffff); - /* Re-format that MAC address the way that uIP expects to see it */ + /* Re-format that MAC address the way that the network expects to see it */ ethaddr->ether_addr_octet[0] = ((user0 >> 0) & 0xff); ethaddr->ether_addr_octet[1] = ((user0 >> 8) & 0xff); diff --git a/configs/lm3s6965-ek/src/lm_ethernet.c b/configs/lm3s6965-ek/src/lm_ethernet.c index 6d4d62f5fa..4a467dd459 100644 --- a/configs/lm3s6965-ek/src/lm_ethernet.c +++ b/configs/lm3s6965-ek/src/lm_ethernet.c @@ -86,7 +86,7 @@ void tiva_ethernetmac(struct ether_addr *ethaddr) nlldbg("user: %06x:%06x\n", user1 & 0x00ffffff, user0 & 0x00ffffff); DEBUGASSERT(user0 != 0xffffffff && user1 != 0xffffffff); - /* Re-format that MAC address the way that uIP expects to see it */ + /* Re-format that MAC address the way that the network expects to see it */ ethaddr->ether_addr_octet[0] = ((user0 >> 0) & 0xff); ethaddr->ether_addr_octet[1] = ((user0 >> 8) & 0xff); diff --git a/configs/lm3s8962-ek/src/lm_ethernet.c b/configs/lm3s8962-ek/src/lm_ethernet.c index fb5db9e152..a6d4da70e9 100644 --- a/configs/lm3s8962-ek/src/lm_ethernet.c +++ b/configs/lm3s8962-ek/src/lm_ethernet.c @@ -86,7 +86,7 @@ void tiva_ethernetmac(struct ether_addr *ethaddr) nlldbg("user: %06x:%06x\n", user1 & 0x00ffffff, user0 & 0x00ffffff); DEBUGASSERT(user0 != 0xffffffff && user1 != 0xffffffff); - /* Re-format that MAC address the way that uIP expects to see it */ + /* Re-format that MAC address the way that the network expects to see it */ ethaddr->ether_addr_octet[0] = ((user0 >> 0) & 0xff); ethaddr->ether_addr_octet[1] = ((user0 >> 8) & 0xff); diff --git a/configs/tm4c1294-launchpad/src/tm4c_ethernet.c b/configs/tm4c1294-launchpad/src/tm4c_ethernet.c index f668660342..3b70b23853 100644 --- a/configs/tm4c1294-launchpad/src/tm4c_ethernet.c +++ b/configs/tm4c1294-launchpad/src/tm4c_ethernet.c @@ -87,7 +87,7 @@ void tiva_ethernetmac(struct ether_addr *ethaddr) nlldbg("user: %06x:%06x\n", user1 & 0x00ffffff, user0 & 0x00ffffff); DEBUGASSERT(user0 != 0xffffffff && user1 != 0xffffffff); - /* Re-format that MAC address the way that uIP expects to see it */ + /* Re-format that MAC address the way that the network expects to see it */ ethaddr->ether_addr_octet[0] = ((user0 >> 0) & 0xff); ethaddr->ether_addr_octet[1] = ((user0 >> 8) & 0xff); diff --git a/libc/netdb/lib_dnsquery.c b/libc/netdb/lib_dnsquery.c index 54a5046fab..c29437c7b2 100644 --- a/libc/netdb/lib_dnsquery.c +++ b/libc/netdb/lib_dnsquery.c @@ -2,8 +2,8 @@ * libc/netdb/lib_dnsquery.c * DNS host name to IP address resolver. * - * The uIP DNS resolver functions are used to lookup a hostname and - * map it to a numerical IP address. + * The DNS resolver functions are used to lookup a hostname and map it to a + * numerical IP address. * * Copyright (C) 2007, 2009, 2012, 2014-2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt -- GitLab From 39c1e3aba23b308e871501f4a105a1ccd7cb495d Mon Sep 17 00:00:00 2001 From: Pierre-noel Bouteville Date: Mon, 30 May 2016 11:58:22 -0600 Subject: [PATCH 304/307] Allow to not use all channet in a lower part of PWM --- arch/arm/src/stm32/stm32_pwm.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/arch/arm/src/stm32/stm32_pwm.c b/arch/arm/src/stm32/stm32_pwm.c index 8779d18692..76783804ea 100644 --- a/arch/arm/src/stm32/stm32_pwm.c +++ b/arch/arm/src/stm32/stm32_pwm.c @@ -1314,6 +1314,15 @@ static int pwm_timer(FAR struct stm32_pwmtimer_s *priv, duty = info->channels[i].duty; channel = info->channels[i].channel; + /* A value of zero means to skip this channel */ + + if (channel == 0) + { + continue; + } + + /* Find the channel */ + for (j = 0; j < PWM_NCHANNELS; j++) { if (priv->channels[j].channel == channel) -- GitLab From 6940fe9655838a3d7b8f7e13248048e999c17913 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 30 May 2016 13:31:19 -0600 Subject: [PATCH 305/307] Update ChangeLog --- ChangeLog | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/ChangeLog b/ChangeLog index dab311760b..7722d45c88 100755 --- a/ChangeLog +++ b/ChangeLog @@ -11813,3 +11813,59 @@ * fs/: Add logic to detach a file structure from a file descriptor. This is for use only within the OS. It permits an open file or driver to be used across multiple threads (2016-05-26). + * arch/arm/src/stm32l4: Get I2C working for STM32L4. From Dave + (ziggurat29) (2016-05-25). + * fs/ and include/nuttx/fs: Add logic to detach a file structure from a + file descriptor. This is for use only within the OS. It permits an + open file or driver to be used across multiple threads. (2016-05-26). + * drivers/analog/adc.c, include/nuttx/analog/adc.h, and all ADC lower + half drivers: No longer uses global adc_receive() call. Added a new + bind() method to the ADC interface. Now the ADC upper half driver + will register its receipt-of-data callback. This change allows the + ADC lower half driver to be used with a differ ADC upper half + (2016-05-26). + * drivers/analog/ads1255.c: Must not do SPI access from interrupt + handler. Use the worker thread instead. Must also lock the SPI bus + before using it. (2015-05-26). + * drivers/: Several SPI-based drivers modified. All drivers that use + SPI must call SPI_LOCK and SPI_UNLOCK. This is not optional + (2016-05-26). + * drivers/sensosrs: Fix a bug in crc computation for ms583730. + Implement POSIX read (2016-05-27). + * arch/arm/src/samv7: This is a fix to a problem in the handling of the + oneshot timer. Due to a wrong assumption concerning the behavior + directly after the start of the timer/counter the function + sam_oneshot_cancel(…) calculates the wrong remaining time. The code + assumes that the counter register is zero directly after the start of + the timer, but this is not true. To start the time/counter a software + trigger is invoked, this trigger starts the timer/count and sets the + counter register to zero, but the reset of the counter register is not + performed instantly. According to the datasheet: "The counter can be + reset by a trigger. In this case, the counter value passes to zero on + the next valid edge of the selected clock.” Thus the counter is set to + zero between 0 and USEC_PER_TICK microseconds after the clock was + started. + In my fix I use the freerun count value to determine if at least one + tick passed since the start of the timer and thus if the value of the + oneshot counter is correct. I also tried to use the function + up_timer_gettime(…) to achieve this but, at least if compiled with no + optimization the problem vanishes without using the value of the + function, the function call takes too long. + Another problem treated in the fix is that if the oneshot timer/counter + is canceled, we only know the remaining time with a precision of + USEC_PER_TICK microseconds. This means the calculated remaining time + is between 0 and USEC_PER_TICK microseconds too long. To fix this I + subtract one tick if the calculated remaining time is greater than one + tick and otherwise set the remaining time to zero. By doing so the + measured times are much more precise as without it. From Stefan Kolb + (2016-05-27). + * arch/arm/src/sama5: Stefan Kolb's change to the SAMV7 Oneshot Timer + should also be applied to the SAMA5 oneshot time since the drivers are + identical (2016-05-27). + * arch/arm/src/stm32l4: Add support for SPI 4 and 5 on stm32f411 chips. + From Konstantin Berezenko (2016-05-27). + * arch/arm/src/sam34: Stefan Kolb's change to the SAMV7 Oneshot Timer + should also be applied to the SAM3/4 oneshot time since the drivers + are identical (2016-05-29). + * arch/arm/src/stm32: Allow to not use all channel in a lower part of + PWM. From Pierre-noel Bouteville (2016-05-30). -- GitLab From f06a06952fa63dac3adf1c811b80b374c014a413 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 31 May 2016 06:22:10 -0600 Subject: [PATCH 306/307] LPC43xx: 1KB is 1024, not 1025. Noted by phreakuencies. --- arch/arm/include/lpc43xx/chip.h | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/arch/arm/include/lpc43xx/chip.h b/arch/arm/include/lpc43xx/chip.h index a88559df21..4592117de1 100644 --- a/arch/arm/include/lpc43xx/chip.h +++ b/arch/arm/include/lpc43xx/chip.h @@ -322,8 +322,8 @@ # define LPC43_NADC10_CHANNELS (8) /* Eight ADC channels */ # undef LPC43_NADC12 /* No 12-bit ADC controllers */ #elif defined(CONFIG_ARCH_CHIP_LPC4337JBD144) -# define LPC43_FLASH_BANKA_SIZE (512*1025) /* 1024Kb FLASH */ -# define LPC43_FLASH_BANKB_SIZE (512*1025) +# define LPC43_FLASH_BANKA_SIZE (512*1024) /* 1024Kb FLASH */ +# define LPC43_FLASH_BANKB_SIZE (512*1024) # define LPC43_LOCSRAM_BANK0_SIZE (32*1024) /* 72Kb Local SRAM */ # define LPC43_LOCSRAM_BANK1_SIZE (40*1024) # define LPC43_AHBSRAM_BANK0_SIZE (48*1024) /* 64Kb AHB SRAM */ @@ -426,8 +426,8 @@ # define LPC43_NADC10_CHANNELS (8) /* Eight ADC channels */ # undef LPC43_NADC12 /* No 12-bit ADC controllers */ #elif defined(CONFIG_ARCH_CHIP_LPC4353FBD208) -# define LPC43_FLASH_BANKA_SIZE (256*1025) /* 512Kb FLASH */ -# define LPC43_FLASH_BANKB_SIZE (256*1025) +# define LPC43_FLASH_BANKA_SIZE (256*1024) /* 512Kb FLASH */ +# define LPC43_FLASH_BANKB_SIZE (256*1024) # define LPC43_LOCSRAM_BANK0_SIZE (32*1024) /* 72Kb Local SRAM */ # define LPC43_LOCSRAM_BANK1_SIZE (40*1024) # define LPC43_AHBSRAM_BANK0_SIZE (48*1024) /* 64Kb AHB SRAM */ @@ -452,8 +452,8 @@ # define LPC43_NADC10_CHANNELS (8) /* Eight ADC channels */ # undef LPC43_NADC12 /* No 12-bit ADC controllers */ #elif defined(CONFIG_ARCH_CHIP_LPC4353FET180) -# define LPC43_FLASH_BANKA_SIZE (256*1025) /* 512Kb FLASH */ -# define LPC43_FLASH_BANKB_SIZE (256*1025) +# define LPC43_FLASH_BANKA_SIZE (256*1024) /* 512Kb FLASH */ +# define LPC43_FLASH_BANKB_SIZE (256*1024) # define LPC43_LOCSRAM_BANK0_SIZE (32*1024) /* 72Kb Local SRAM */ # define LPC43_LOCSRAM_BANK1_SIZE (40*1024) # define LPC43_AHBSRAM_BANK0_SIZE (48*1024) /* 64Kb AHB SRAM */ @@ -478,8 +478,8 @@ # define LPC43_NADC10_CHANNELS (8) /* Eight ADC channels */ # undef LPC43_NADC12 /* No 12-bit ADC controllers */ #elif defined(CONFIG_ARCH_CHIP_LPC4353FET256) -# define LPC43_FLASH_BANKA_SIZE (256*1025) /* 512Kb FLASH */ -# define LPC43_FLASH_BANKB_SIZE (256*1025) +# define LPC43_FLASH_BANKA_SIZE (256*1024) /* 512Kb FLASH */ +# define LPC43_FLASH_BANKB_SIZE (256*1024) # define LPC43_LOCSRAM_BANK0_SIZE (32*1024) /* 72Kb Local SRAM */ # define LPC43_LOCSRAM_BANK1_SIZE (40*1024) # define LPC43_AHBSRAM_BANK0_SIZE (48*1024) /* 64Kb AHB SRAM */ @@ -504,8 +504,8 @@ # define LPC43_NADC10_CHANNELS (8) /* Eight ADC channels */ # undef LPC43_NADC12 /* No 12-bit ADC controllers */ #elif defined(CONFIG_ARCH_CHIP_LPC4357FET180) -# define LPC43_FLASH_BANKA_SIZE (512*1025) /* 1024Kb FLASH */ -# define LPC43_FLASH_BANKB_SIZE (512*1025) +# define LPC43_FLASH_BANKA_SIZE (512*1024) /* 1024Kb FLASH */ +# define LPC43_FLASH_BANKB_SIZE (512*1024) # define LPC43_LOCSRAM_BANK0_SIZE (32*1024) /* 72Kb Local SRAM */ # define LPC43_LOCSRAM_BANK1_SIZE (40*1024) # define LPC43_AHBSRAM_BANK0_SIZE (48*1024) /* 64Kb AHB SRAM */ @@ -530,8 +530,8 @@ # define LPC43_NADC10_CHANNELS (8) /* Eight ADC channels */ # undef LPC43_NADC12 /* No 12-bit ADC controllers */ #elif defined(CONFIG_ARCH_CHIP_LPC4357FBD208) -# define LPC43_FLASH_BANKA_SIZE (512*1025) /* 1024Kb FLASH */ -# define LPC43_FLASH_BANKB_SIZE (512*1025) +# define LPC43_FLASH_BANKA_SIZE (512*1024) /* 1024Kb FLASH */ +# define LPC43_FLASH_BANKB_SIZE (512*1024) # define LPC43_LOCSRAM_BANK0_SIZE (32*1024) /* 72Kb Local SRAM */ # define LPC43_LOCSRAM_BANK1_SIZE (40*1024) # define LPC43_AHBSRAM_BANK0_SIZE (48*1024) /* 64Kb AHB SRAM */ @@ -556,8 +556,8 @@ # define LPC43_NADC10_CHANNELS (8) /* Eight ADC channels */ # undef LPC43_NADC12 /* No 12-bit ADC controllers */ #elif defined(CONFIG_ARCH_CHIP_LPC4357FET256) -# define LPC43_FLASH_BANKA_SIZE (512*1025) /* 1024Kb FLASH */ -# define LPC43_FLASH_BANKB_SIZE (512*1025) +# define LPC43_FLASH_BANKA_SIZE (512*1024) /* 1024Kb FLASH */ +# define LPC43_FLASH_BANKB_SIZE (512*1024) # define LPC43_LOCSRAM_BANK0_SIZE (32*1024) /* 72Kb Local SRAM */ # define LPC43_LOCSRAM_BANK1_SIZE (40*1024) # define LPC43_AHBSRAM_BANK0_SIZE (48*1024) /* 64Kb AHB SRAM */ -- GitLab From 4f81a60ef662886009f8a596485f6dafeb58d064 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 31 May 2016 06:31:04 -0600 Subject: [PATCH 307/307] Add a NAN test on 'x' in asin function of lib_asin.c. Suggested by Pierre-noel Bouteville. --- libc/math/lib_asin.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libc/math/lib_asin.c b/libc/math/lib_asin.c index 08a2dc9573..2f45a24a1d 100644 --- a/libc/math/lib_asin.c +++ b/libc/math/lib_asin.c @@ -3,7 +3,7 @@ * * This file is a part of NuttX: * - * Copyright (C) 2012, 2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2012, 2015-2016 Gregory Nutt. All rights reserved. * Ported by: Darcy Gong * * It derives from the Rhombs OS math library by Nick Johnson which has @@ -55,7 +55,7 @@ double asin(double x) /* Verify that the input value is in the domain of the function */ - if (x < -1.0 || x > 1.0) + if (x < -1.0 || x > 1.0 || isnan(x)) { return NAN; } -- GitLab